技术新讯 > 控制调节装置的制造及其应用技术 > 控制器变量读写方法、装置、车辆控制器和介质与流程  >  正文

控制器变量读写方法、装置、车辆控制器和介质与流程

  • 国知局
  • 2024-07-31 23:49:15

本发明涉及控制器测试,特别涉及一种控制器变量读写方法、装置、车辆控制器和可读存储介质。

背景技术:

1、在汽车控制器的软件开发、测试以及售后问题排查的过程中,常常需要让软件运行在特定的逻辑并不断更改输入变量的数值,以验证软件相关逻辑的正确性。目前,主要通过以下两种方式:

2、(1)使用专业的芯片调试器

3、使用专业的芯片调试器,只需在将芯片调试器连接电脑后,通过芯片调试器实时对待测控制器软件的变量进行读写操作,通过读写待测控制器的ram(random-accessmemory,内存,也称为随机存储器)就可对待测控制器软件进行调试与测试,看似简单易行。然而,对于芯片调试器的使用有着较为严格的限制条件:首先,专业的芯片调试器不仅价格非常昂贵,而且不同的控制器(比如采用的芯片不同)往往需要不同的芯片调试器,这就导致某一类型的芯片调试器的数量有限,其真实的使用频率其实并不高;其次,使用芯片调试器对待测控制器软件调试需要专业的操作人员(通常只有底层软件工程师才掌握相关测试技能),不仅上手难度较高,而且若操作不当,可能会造成待测控制器的永久性损坏。这对于其他非专业人员(如售后质量、标定工程师等)来说并不适用,这也限制了芯片调试器的使用范围。最后,需要将芯片调试器连接在待测控制器的芯片的调试端口(比如jtag,jointtest action group)上,而通常情况下,控制器都有气密性与防水等级的要求,这就需要对控制器进行“开盖”操作。开盖就意味着待测控制器及相关功能电路模块的报废,因此芯片调试器也不适用于售后件的问题调试。

4、(2)制作测试软件,模拟待测试情景

5、具体地,可以先专门制作一版对应待测逻辑并修改特殊变量的临时测试软件,提供给测试工程师对待测控制器软件进行测试。通常情况下软件工程师会把需要更改的变量赋予一个可变标定量来实现这一操作。而该方法存在以下两个弊端:一方面,现如今汽车软件的编译过程往往非常复杂,一次编译少则需要几十分钟,多则数小时,常常给开发以及测试人员带来不便。另一方面,这种临时测试软件由于仅针对待测控制器软件中的特定待测逻辑且修改的是针对该特定待测逻辑相关的特殊变量,因此,临时测试软件的编译只是一次性的操作,若再测试待测控制器软件中的另一段待测逻辑,或者需要调整另一个变量的数值时,就需要软件工程师重新编译临时测试软件(通常情况下,测试软件集成在汽车软件中)。这样的临时测试软件在整个项目开发、测试周期中,可能要制作上百次之多,最终可能导致测试所需的时间甚至比开发的时间还要漫长,费时且费力。

6、除此之外,在进行控制器软件的测试时,也常常借助xcp(universal calibrationprotocol)标定协议在线修改待测控制器软件的标定量(芯片的标定数据段)。xcp标定协议是汽车控制器必备的基础通讯协议,它可以帮助软件开发人员在线更改待测控制器软件中的标定量,以及读取a2l(asam mcd-2mc language,标定量描述文件)文件中所定义的ram中的变量数值。相比于专业的芯片调试器而言,标定设备的价格低廉,运用范围广,上手简单,可以说是汽车电子从业人员的必备技能。然而,xcp标定协议依然存在着诸多限制。举例而言,使用标定设备只能读取定义在a2l文件中定义的变量,而这种变量一般只存在于应用层软件(asw,application software)中,对于底层软件(bsw,basic software)中的全局变量(不在a2l文件中,只存在于map文件中,map文件是测试软件经编译器编译之后,生成的程序、数据及io空间信息的一种映射文件),由于不在a2l文件上,通过标定设备就无法直接读取。不仅如此,测试软件也不能像芯片调试器那样,直接修改ram区域内的变量。

7、需要说明的是,公开于该发明背景技术部分的信息仅仅旨在加深对本发明一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。

技术实现思路

1、本发明的目的在于在控制器软件测试时现有技术中存在的芯片控制器价格昂贵、对操作人员要求高、可能会造成待测控制器的永久性损坏及适用场景有限、临时测试软件效率低及无法读取底层软件中的全局变量等其中的一个或多个问题,提供一种控制器变量读写方法、装置、车辆控制器和介质,本发明无需增加任何硬件成本,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。

2、为了达到上述目的,本发明通过以下技术方案实现,一种控制器变量读写方法,由待测控制器执行,所述控制器变量读写方法,包括:

3、接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;

4、在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;

5、根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。

6、可选地,控制器变量读写方法,还包括:

7、使能所述待测控制器的标定测试开关;

8、所述判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:

9、判定所述标定测试开关是否为使能状态,若是,则在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址。

10、可选地,判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:

11、按照预设读写周期,对接收到的每一个所述读写指令,执行以下步骤:

12、判断所述待读写变量的所述目标地址是否在所述存储单元的有效地址范围内:

13、若是,则判定所述目标地址合法;并执行以下操作之一:

14、根据所述目标地址,读取所述待读写变量在所述存储单元中的实时值以及将所述读写结果设置为所述实时值;

15、或者将所述目标值写入所述存储单元中的所述目标地址处以及根据写入操作的返回结果将所述读写结果设置为写入成功或写入失败;

16、若否,则将所述读写结果设置为无效操作。

17、可选地,所述将所述目标值写入所述目标地址,包括:

18、采用写冲突预设规避策略将所述目标值写入所述目标地址。

19、可选地,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,包括:

20、在对所述目标地址有写入操作的功能模块对所述目标地址的写入操作全部完成之后,再将所述目标值写入所述目标地址。

21、可选地,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,包括:

22、失能对所述目标地址有写入操作的功能模块;

23、将所述目标值写入所述目标地址。

24、可选地,所述预先设定的数据交互协议包括xcp标定协议;所述待测控制器包括车辆控制器;

25、所述根据预先设定的数据交互协议将读写结果反馈至所述读写请求端,包括:

26、将所述读写反馈结果写回至在a2l文件对应的预设标定变量中,并通过所述车辆控制器的xcp通信接口返回至所述读写请求端。

27、为了实现上述目的,本发明还提供了一种设置在待测控制器内的控制器变量读写装置,所述控制器变量读写装置包括:

28、读写指令接收模块,被配置为接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;

29、读写指令执行模块,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;

30、读写结果反馈模块,被配置为根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。

31、为了实现上述目的,本发明还提供了一种车辆控制器,所述车辆控制器包括xcp通信接口、xcp标定协议栈、读写处理模块以及存储单元;

32、所述xcp通信接口,被配置为接收读写请求端发送的读写操作信息,并将所述读写操作信息发送至所述xcp标定协议栈;

33、所述xcp协议标定栈,被配置为对所述读写操作信息进行解析,得到所述读写指令,并将所述读写指令发送至所述读写处理模块;所述读写指令包括待读写变量在所述存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;

34、所述读写处理模块,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;以及通过所述xcp通信接口将读写结果反馈至所述读写请求端。

35、为了实现上述目的,本发明还提供了另一种车辆控制器,所述车辆控制器包括上述的控制器变量读写装置;或者所述车辆控制器包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如上述任一项所述的控制器变量读写方法。

36、为了实现上述目的,本发明还提供了一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的控制器变量读写方法。

37、与现有技术相比,本发明提供的控制器变量读写方法、装置、车辆控制器和可读存储介质,具有以下优点:

38、本发明提供的控制器变量读写方法,由待测控制器执行,所述控制器变量读写方法,首先接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;然后在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;最后根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。由此,本发明提供的控制器变量读写方法,由待测控制器(比如车辆控制器)执行,无须增加任何硬件成本,就能够根据读写请求端发送的读写操作信息(读取待读取变量的实时值或写入目标变量的目标值或使能/失能标定测试开关),执行相应的读取或写入操作,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。进一步地,本发明提供的控制器变量读写方法,仅对判定所述目标地址合法后的待读取变量进行读取或写入对应的目标值,从而不仅能有效避免对非法目标地址的读取返回错误值,更能有效避免对非法目标地址的误写入导致待测控制器发生异常,从而能够保证写入操作的安全性。

39、进一步地,本发明提供的控制器变量读写方法还进一步包括:使能所述待测控制器的标定测试开关。且在判定所述标定测试开关为使能状态且在判定所述目标地址合法后,才对所述目标地址进行读取或将所述目标值写入所述目标地址,而标定测试开关可以根据标定测试需要动态使能(比如在需要执行控制器变量读写方法之前打开(使能)标定测试开关,在不需要执行控制器变量读写方法时关闭(失能)标定测试开关),由此,可以通过编写程序代码将本发明提供的控制器变量读写方法嵌入到待测控制器软件的源文件中一同编译而无需再制作临时测试软件,从而能够减少测试过程中反复修改测试软件以及重复编译控制器软件的过程,从而显著缩短控制器软件的测试周期并提高测试效率。

40、进一步地,本发明提供的控制器变量读写方法,采用写冲突预设规避策略将所述目标值写入所述目标地址,能够显著提升本发明提供的控制器变量读写方法的可靠性和稳定性,从而进一步提升控制器测试的效率。

41、由于本发明提供的控制器变量读写装置、车辆控制器和可读存储介质,与本发明提供的控制器变量读写方法属于同一发明构思,因此,本发明提供的控制器变量读写装置、车辆控制器和可读存储介质至少具有本发明提供的控制器变量读写方法的所有优点,详细的内容请参见上文关于控制器变量读写方法的有益效果的相关描述,在此,不再一一赘述。

本文地址:https://www.jishuxx.com/zhuanli/20240730/198676.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。