作者:侯faulds_534 | 来源:互联网 | 2024-11-08 19:20
本文针对OSEK网络管理功能进行全面测试分析。在新入职某公司后,由于公司需要开发OSEKNM(OSEK网络管理)功能,而市场上缺乏成熟且经济实惠的商业解决方案,因此我们决定自主开发。在开发过程中,通过网络资源获取了相关开源代码,并对其进行了深入研究和优化。测试结果表明,该开源代码在功能实现和性能表现方面均达到了预期目标,为公司的OSEKNM系统开发提供了有力支持。
1.背景知识
最近入职某公司后,公司需要开发OSEK NM,由于没有购买成熟的商业软件,需要自己开发,我通过网路找到某开源代码进行移植实现后,对功能测试case进行记录。
需要相关咨询的,可以联系我。E-mail:gsh1992@qq.com
某项目网络管理报文CAN ID 0x500~0x57F
CAN ID | CAN Data |
0x05 | SA | DA | CF | Data | Data | Data | Data | Data | Data |
表1. 网络管理报文帧格式
2.测试结构
Note:
-
ECU1,ECU3是仿真节点,ECU2是真实节点。
-
上位机模拟2个ECU(ECU1,ECU3)和真实ECU(ECU2)进行通信交互,实现测试方案所需流程。
2.1 相关网络参数
CAN波特率:500kbps
ECU Num | CAN ID (offset+SA) |
ECU1 | 0x541 |
ECU2 | 0x54C |
ECU3 | 0x54F |
表2 ECU CAN ID
2.2 报文类型
Alive报文
541 41 01 00 00 00 00 00 00
54C 4c 01 00 00 00 00 00 00
54F 4F 01 00 00 00 00 00 00
Ring SI=0
541 4c 02 00 00 00 00 00 00
54C 4f 02 00 00 00 00 00 00
54F 41 02 00 00 00 00 00 00
Goto sleep ring SI=1
541 4c 12 00 00 00 00 00 00
54C 4f 12 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
Ring SI=1 SA=1
541 4c 32 00 00 00 00 00 00
3.测试方案
3.1.ECU上电建立Ring
step0:每个ECU自动发出Alive上线报文,SA=DA=Self
541 41 01 00 00 00 00 00 00
54C 4c 01 00 00 00 00 00 00
54F 4F 01 00 00 00 00 00 00
Delay Ttyp(100ms)
step1:ECU根据Alive报文,正确发出Ring报文。
541 4c 02 00 00 00 00 00 00
54C 4f 02 00 00 00 00 00 00
54F 41 02 00 00 00 00 00 00
step2:ECU1 发出应用报文
3.2 网络关闭
step0:发出KL15关闭。Ring报文建立。Delay(1.2*tSleepRequestMin_N).
step1:ECU0不满足睡眠条件,ECU1,ECU2满足睡眠条件。网管报文持续发出。
541 4c 02 00 00 00 00 00 00
54C 4f 12 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
step2:ECU0,ECU1,ECU2满足睡眠条件。
541 4c 12 00 00 00 00 00 00
54C 4f 12 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
step3:ECU0确认睡眠条件
541 4c 32 00 00 00 00 00 00
step4:所有报文停止发送,ECU进入休眠状态。
3.3 单节点上电进入LimpHome模式
详细参见海马 网络管理设计规范 图7。
3.4 时间参数测试
3.4.1 ECU上电时间参数
-
上电200ms内发出alive报文
-
后续80毫秒内发出应用报文
-
实测值:20ms
-
3.4.2 Ttyp
541 41 01 00 00 00 00 00 00
54C 4c 01 00 00 00 00 00 00 该报文和上一个报文的间隔时间 T1
54F 4F 01 00 00 00 00 00 00
3.4.3 Tmax
541 41 01 00 00 00 00 00 00
54C 4c 01 00 00 00 00 00 00
54F 4F 01 00 00 00 00 00 00
3.4.4 Terror
3.4.5 Twbs
3.4.6 tSleepRequestMin_N
-
进入Normal状态后请求睡眠的最短时间。
-
典型值 5000ms
-
最小值 4000ms
-
最大值 6000ms
-
测试步骤
541 4c 12 00 00 00 00 00 00
54C 4f 02 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
541 4c 12 00 00 00 00 00 00
54C 4f 12 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
541 4c 32 00 00 00 00 00 00
3.4.7 tsleepRequestMin_L
-
进入LimpHome状态后请求睡眠的最短时间。
-
典型值 5000ms
-
最小值 4000ms
-
最大值 6000ms
-
测试步骤
541 4c 12 00 00 00 00 00 00
54C 4f 02 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
541 4c 12 00 00 00 00 00 00
54C 4f 12 00 00 00 00 00 00
54F 41 12 00 00 00 00 00 00
541 4c 32 00 00 00 00 00 00
3.5 异常Ring报文干扰
测试DUT连续接收到Ring报文后(指向自身地址或非自身地址)的行为是否满足NM标准的要求。
DUT未发送指向后继节点的Ring报文前又接收到一帧Ring报文(指向自身地址),DUT将以第二帧Ring报文为准,TTyp时间后发送指向后继节点的Ring报文。
3.6 节点Skip功能测试
根据OsekVDX NM 2.5.2规范,节点需要具有监测自身是否被跳过的能力,如果检测到被跳过,则重新发送alive报文,申请加入。过程如下图:
4.测试结果
ID | Test Case | Test Result | Note |
3.1 | ECU上电建立Ring | Test Pssed | |
3.2 | 网络关闭 | Test Pssed | |
3.3 | 单节点上电进入LimpHome | Test Pssed | |
3.4.1 | ECU上电时间参数 | Failed | |
3.4.2 | Ttyp时间参数 | Test Pssed | |
3.4.3 | Tmax时间参数 | Test Pssed | |
3.4.4 | Terror时间参数 | Test Pssed | |
3.4.5 | Twbs时间参数 | Test Pssed | |
3.4.6 | tSleepRequestMin_N时间参数 | Test Pssed | |
3.4.7 | tSleepRequestMin_L时间参数 | Test Pssed | |
3.5 | 异常Ring报文干扰 | Test Pssed | |
3.6 | 节点Skip功能测试 | Test Pssed | |
Note:
1.测试结果:Test Pssed Not Test Failed