今天简单给大家介绍下OSEKNM的测试项目,整个测试过程均采用CANoe(或其他可以收发CAN报文的设备),将待测ECU(以下称为DUT)和CANoe连接,建立正常通信,完整的OSEK测试项目大概有30个,这里列举10个左右给大家学习参考,测试方法省略,后面的文章会给大家介绍一个基于CANoe开发的OSEK网络管理测试工程,可以仿真运行虚拟节点建立OSEK逻辑环,更深入的学习和测试OSEK网络管理的原理。
正常网络管理通讯测试
1、逻辑环建立
测试目的
验证DUT被本地事件唤醒后,是否可以建立稳定的逻辑环。
评价标准
DUT可以与模拟节点建立稳定的逻辑环;
2、异常Ring报文干扰
测试目的
测试DUT连续接收到Ring报文后(指向自身地址或非自身地址)的行为是否满足NM标准的要求。
评价标准
DUT未发送指向后继节点的Ring报文前又接收到一帧Ring报文(指向自身地址),DUT将以第二帧Ring报文为准,TTyp时间后发送指向后继节点的Ring报文。
3、Ring报文超时
测试目的
测试DUT在逻辑环中被跳过后的响应是否满足NM标准的要求。
评价标准
DUT发送Alive报文。
4、转换至睡眠状态
测试目的
验证当DUT的应用程序不需要CAN通讯时,DUT是否可以进入网络休眠状态。
评价标准
测试一:DUT发送Sleep.Ind=1的Ring报文,接收到模拟节点发送的Sleep.Ind=1的报文后发送Sleep.Ack=1的Ring报文,停止发送报文,进入睡眠;
测试二:DUT发送Sleep.Ind=1的Ring报文,接收到模拟节点发送的Sleep.Ack=1的Ring报文后停止发送报文,进入睡眠。
5、Limphome状态行为
测试目的
验证当模拟节点掉线时,DUT是否进入Limphome状态。
评价标准
1)DUT可以进入Limphome状态;
2)收到网络管理报文后,DUT立刻发送Alive报文与应用报文且无错误帧;
3)睡眠条件满足后,DUT发送Sleep.Ind=1的Limphome报文。
6、TType/TMax/TError时间参数测试
测试目的
测试DUT的Alive报文与Ring报文之间的时间参数TTyp、测试DUT的Ring和下一帧Alive报文之间的时间参数TMax、测量时间参数TError是否满足协议要求的网络管理时间参数。
评价标准
7、NMNormal状态下TWaitBusSleep时间参数测试
测试目的
测试DUT由NMNormal进入NMBusSleep时TWaitBusSleep是否符合网络管理要求。
评价标准
步骤6中DUT停止发送应用报文和网络管理报文。T[WaitBusSleep].minTWaitBusSleepT[WaitBusSleep].max。
8、DUT被跳过
测试目的
测试DUT在逻辑环中被跳过后的响应是否满足NM标准的要求。
评价标准
DUT发送Sleep.Ind=0的Alive报文。
9、Normal状态下发NM报文睡眠中断
测试目的
验证DUT在normal状态下的睡眠中断是否正确。
评价标准
1.DUT发送Alive报文;
2.DUT发送应用报文。
10、Normal状态下本地事件睡眠中断
测试目的
验证DUT在normal状态下的睡眠中断是否正确。
评价标准
1.DUT发送Alive报文;
2.DUT发送应用报文。
11、Normal状态下APPL报文睡眠中断
测试目的
验证DUT在normal状态下的睡眠中断是否正确。
评价标准
DUT不发送任何报文;PS:LimpHome状态下的睡眠中断测试方法一样,只是先让ECU进入LimpHome状态而已。
12、LimpHome复位1(模拟发送Alive报文)
测试目的
验证DUT从LimpHome状态转换到Reset状态是否满足NM标准的要求。
评价标准
1.步骤6中,DUT立刻发送Alive报文;
2.睡眠条件满足后,DUT发送Sleep.Ind=1的Limphome报文;
给大家分享一张自己总结的图片,里面涵盖了OSEKNM的全部流程。今天的分享就到这里。欢迎大家扫文末的