论文部分内容阅读
摘要:随着近年汽车产业的快速发展,电子产品广泛应用于汽车仪表,随着汽车中电子单元的增加,网络越来越复杂,ECU在通信时,可能由于其他节点未上线或出现故障而造成信息丢失,所以需要专门的网络管理组件对车载网络进行管理,以达到车载网络信息传输准确性、安全性的目的。
关键词:汽车仪表;网络管理;一致性测试;系统设计
1 汽车仪表NM协议一致性测试项目分析
车载网络中每个ECU节点有唯一地址编号。OS-EK/VDX直接网络管理按照ECU地址递增顺序构造逻辑环,并采用逻辑环机制监控网络各ECU节点正常模式、睡眠模式及错误处理模式之间的状态切换,实现对网络节点的协同管理。AUTOSAR网络管理采用分布式直接网络管理策略,根据网络管理协议数据单元(NMPDU)接收情况来监控网络状态。OSEK/VDX和AUTOSAR的NMPDU均包含地址域、控制域和数据域三个部分。地址域指定通信双方ECU节点地址;操作域说明具体报文类型,OSEK/VDX网络管理报文有Alive、Ring和Limphome3种报文,AUTOSAR网络管理主要有RepeatMessage和Nor-malOperation两种报文;数据域指定报文附加信息(可选)。NM协议一致性测试主要分为物理层、网络层和通信层测试3个部分。物理层测试通过操控某些物理模块来模拟物理干扰(如CAN干扰或电压干扰等),测试ECU节点的干扰恢复能力。网络层测试主要监控ECU节点网络状态切换,如唤醒、休眠或者逻辑环建立等。通信层测试主要测试汽车仪表网络管理报文的周期、类型或其他参数等。各层常用测试用例及所涉及到的信号类型见表1。
2 NM协议一致性测试系统设计与实现
2.1 下位机测试仪的硬件设计
下位机测试仪选用STM32F105RCT6作为主控芯片,硬件框架见图1。其主要功能模块包括物理层程控电压模块、物理层干扰模拟(含电压干扰和CAN干扰)、CAN通信模块、显示报警模块、定时器实时控制模块。
程控电压模块:选用LM2596-ADJ(简称ADJ)芯片输出程控可调电压。ADJ芯片内含基准稳压器(1.23V),通过ADJ输出引脚、地线和主控芯片DAC引脚分别相对于反馈引脚FB接一个电阻R1、R2和R3,电阻阻值根据需求进行计算和设计。控制数模转换器的输出电压,实现ADJ变换器输出电压的调整。
2.2 基于TSCN脚本的测试用例编写
以某款汽车仪表物理CAN干扰一致性测试用例为例,介绍基于TSCN的测试用例脚本编写过程。
2.2.1 测试目的该款汽车仪表ECU节点(地址:X430)正常通信时,测试CAN干扰后的通信恢复能力。
2.2.2 测试步骤
(1)通过CAN高和CAN低短路产生CAN干扰;(2)延时1s;(3)CAN高和CAN低短路恢复正常,消除干扰;(4)检测Busoff恢复时间内是否接收Limphome报文,如果接受到,测试合格返回通过信号;如果没接受到,测试不合格返回失败信号。
2.2.3 预期结果
(1)总线短路后,若停止收发报文则说明总线进入Busoff状态,干扰模拟测试成功,否则失败;(2)干扰消除后,测试仪在Busoff恢复时间(200ms)内接收到第一帧Limphome报文,则说明CAN干扰恢复测试符合测试协议标准,否则测试不合格。
2.3 TSCN脚本驱动的NM协议一致性自动测试
下位机测试仪采用解释执行方式顺序执行。脚本中指令语句的合理存储是脚本有效执行的关键。TSCN测试脚本从上至下由若干条指令语句组成,指令语句分为基础指令和复合指令两类。测试脚本对应的指令数据存储结构如下:
#includeMaxsizeComm200
//基础指令数据结构
typedefstructbaseCom
{charmainKey[10];charsubKey[10];charparamData[100];structbaseComm*nextComm;};
typedefstruct//命令行数据结构
{charcomType[10];charcommCondiiton[50];structbaseCom*condition0pter;structbaseComm*success0pter;structbaseComm*fail0pter;}
commandLine;commandLinecom[MaxsizeComm];
经分析不难发现,在执行过程中IF或者WHILE等复合指令语句实际上是依据一定邏辑条件控制多条基础指令语句组合执行。如果将基础指令语句看作逻辑条件恒为真的特殊复合指令语句,这样两类指令语句就可以统一用命令行(commandLine)结构描述。commandLine结构包含5个数据子项,前两项描述指令语句的类型和执行条件,后三项分别是基础指令baseComm链表的头指针域,描述条件判断、条件成立和不成立时要执行的多个基础测试指令集合。基础指令语句对应的commandLine结构中,commCondi-tion子项默认为’\0’,conditionOpter和failOpter指针默认NULL;WHILE复合语句对应的commandLine结构中,failOpter指针默认为NULL。基础测试指令采用baseComm结构体描述,分别对应VOL、IO、TIMER、CAN和RESULT等基础指令的主关键字、次关键字和参数信息。TSCN脚本中所有指令语句从上至下依次存储到comm结构顺序表中。基于以上指令存储结构,用例脚本解释执行算法如下:
先取出当前指令语句的指令类型,如果是基础指令,直接执行成功指令集,如果不是,判断是否为IF语句;如果为IF语句,直接执行条件指令集,然后根据结果对比条件文本串,满足条件时则执行成功指令集,不满足则执行失败指令集;如果不是IF语句,则为WHILE语句,条件指令集执行后,结果满足条件时,会执行成功指令集,进而跳转到条件指令集继续执行,如果条件指令集执行后结果不满足条件,执行失败指令集,而后判断下一条指令。
3结语
实验结果表明:该系统能有效实现汽车仪表网络管理协议在物理层、网络层和通信层上的一致性自动测试,而且平均测试耗时明显减少,测试效率提高。
参考文献:
[1] 吴伟,马继周,张志敏.基于AUTOSAR标准的网络管理协议的设计[J].汽车实用技术,2012(9):10-13.
(作者单位:长城汽车股份有限公司-哈弗技术中心)
第一作者简介:王乐乐,男,汉,河北保定,本科,助理工程师,汽车电子电器开发。
关键词:汽车仪表;网络管理;一致性测试;系统设计
1 汽车仪表NM协议一致性测试项目分析
车载网络中每个ECU节点有唯一地址编号。OS-EK/VDX直接网络管理按照ECU地址递增顺序构造逻辑环,并采用逻辑环机制监控网络各ECU节点正常模式、睡眠模式及错误处理模式之间的状态切换,实现对网络节点的协同管理。AUTOSAR网络管理采用分布式直接网络管理策略,根据网络管理协议数据单元(NMPDU)接收情况来监控网络状态。OSEK/VDX和AUTOSAR的NMPDU均包含地址域、控制域和数据域三个部分。地址域指定通信双方ECU节点地址;操作域说明具体报文类型,OSEK/VDX网络管理报文有Alive、Ring和Limphome3种报文,AUTOSAR网络管理主要有RepeatMessage和Nor-malOperation两种报文;数据域指定报文附加信息(可选)。NM协议一致性测试主要分为物理层、网络层和通信层测试3个部分。物理层测试通过操控某些物理模块来模拟物理干扰(如CAN干扰或电压干扰等),测试ECU节点的干扰恢复能力。网络层测试主要监控ECU节点网络状态切换,如唤醒、休眠或者逻辑环建立等。通信层测试主要测试汽车仪表网络管理报文的周期、类型或其他参数等。各层常用测试用例及所涉及到的信号类型见表1。
2 NM协议一致性测试系统设计与实现
2.1 下位机测试仪的硬件设计
下位机测试仪选用STM32F105RCT6作为主控芯片,硬件框架见图1。其主要功能模块包括物理层程控电压模块、物理层干扰模拟(含电压干扰和CAN干扰)、CAN通信模块、显示报警模块、定时器实时控制模块。
程控电压模块:选用LM2596-ADJ(简称ADJ)芯片输出程控可调电压。ADJ芯片内含基准稳压器(1.23V),通过ADJ输出引脚、地线和主控芯片DAC引脚分别相对于反馈引脚FB接一个电阻R1、R2和R3,电阻阻值根据需求进行计算和设计。控制数模转换器的输出电压,实现ADJ变换器输出电压的调整。
2.2 基于TSCN脚本的测试用例编写
以某款汽车仪表物理CAN干扰一致性测试用例为例,介绍基于TSCN的测试用例脚本编写过程。
2.2.1 测试目的该款汽车仪表ECU节点(地址:X430)正常通信时,测试CAN干扰后的通信恢复能力。
2.2.2 测试步骤
(1)通过CAN高和CAN低短路产生CAN干扰;(2)延时1s;(3)CAN高和CAN低短路恢复正常,消除干扰;(4)检测Busoff恢复时间内是否接收Limphome报文,如果接受到,测试合格返回通过信号;如果没接受到,测试不合格返回失败信号。
2.2.3 预期结果
(1)总线短路后,若停止收发报文则说明总线进入Busoff状态,干扰模拟测试成功,否则失败;(2)干扰消除后,测试仪在Busoff恢复时间(200ms)内接收到第一帧Limphome报文,则说明CAN干扰恢复测试符合测试协议标准,否则测试不合格。
2.3 TSCN脚本驱动的NM协议一致性自动测试
下位机测试仪采用解释执行方式顺序执行。脚本中指令语句的合理存储是脚本有效执行的关键。TSCN测试脚本从上至下由若干条指令语句组成,指令语句分为基础指令和复合指令两类。测试脚本对应的指令数据存储结构如下:
#includeMaxsizeComm200
//基础指令数据结构
typedefstructbaseCom
{charmainKey[10];charsubKey[10];charparamData[100];structbaseComm*nextComm;};
typedefstruct//命令行数据结构
{charcomType[10];charcommCondiiton[50];structbaseCom*condition0pter;structbaseComm*success0pter;structbaseComm*fail0pter;}
commandLine;commandLinecom[MaxsizeComm];
经分析不难发现,在执行过程中IF或者WHILE等复合指令语句实际上是依据一定邏辑条件控制多条基础指令语句组合执行。如果将基础指令语句看作逻辑条件恒为真的特殊复合指令语句,这样两类指令语句就可以统一用命令行(commandLine)结构描述。commandLine结构包含5个数据子项,前两项描述指令语句的类型和执行条件,后三项分别是基础指令baseComm链表的头指针域,描述条件判断、条件成立和不成立时要执行的多个基础测试指令集合。基础指令语句对应的commandLine结构中,commCondi-tion子项默认为’\0’,conditionOpter和failOpter指针默认NULL;WHILE复合语句对应的commandLine结构中,failOpter指针默认为NULL。基础测试指令采用baseComm结构体描述,分别对应VOL、IO、TIMER、CAN和RESULT等基础指令的主关键字、次关键字和参数信息。TSCN脚本中所有指令语句从上至下依次存储到comm结构顺序表中。基于以上指令存储结构,用例脚本解释执行算法如下:
先取出当前指令语句的指令类型,如果是基础指令,直接执行成功指令集,如果不是,判断是否为IF语句;如果为IF语句,直接执行条件指令集,然后根据结果对比条件文本串,满足条件时则执行成功指令集,不满足则执行失败指令集;如果不是IF语句,则为WHILE语句,条件指令集执行后,结果满足条件时,会执行成功指令集,进而跳转到条件指令集继续执行,如果条件指令集执行后结果不满足条件,执行失败指令集,而后判断下一条指令。
3结语
实验结果表明:该系统能有效实现汽车仪表网络管理协议在物理层、网络层和通信层上的一致性自动测试,而且平均测试耗时明显减少,测试效率提高。
参考文献:
[1] 吴伟,马继周,张志敏.基于AUTOSAR标准的网络管理协议的设计[J].汽车实用技术,2012(9):10-13.
(作者单位:长城汽车股份有限公司-哈弗技术中心)
第一作者简介:王乐乐,男,汉,河北保定,本科,助理工程师,汽车电子电器开发。