OSEK NM 功能测试

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:

  1. ECU1,ECU3是仿真节点,ECU2是真实节点。

  2. 上位机模拟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报文

    • 实测值:500ms

  • 后续80毫秒内发出应用报文

    • 实测值:20ms

3.4.2 Ttyp

  • 2个Ring报文之间的时间间隔

  • 典型值-100ms

    • Min-70ms

    • Max-110ms

  • 测试步骤

    • step0: 建立Ring报文

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

  • step 1 循环100次Ring报文,测试T1是否在范围内。

3.4.3 Tmax

  • 2个Ring报文之间的最大时间间隔。

  • 典型值 260ms

    • 最小值 220ms

    • 最大值 284ms

  • 测试步骤

    • step0:建立Ring报文

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

  • step1: Delay 1.2*Tmax

  • step2: expected: ECU2 into NmReset and re-send alive message.

3.4.4 Terror

  • 2个LimpHome报文之间的最大时间间隔。

  • 典型值 1000ms

    • 最小值 950ms

    • 最大值 1050ms

  • 测试步骤

    • step0:单节点上电进入LimpHome模式

    • step1: 查看LimpHome报文发送间隔时间。

3.4.5 Twbs

  • 从睡眠请求接收到进入睡眠模式的时间。

  • 典型值 1500ms

  • 测试步骤

  • step0:Ring报文建立。发出KL15关闭。

  • step1:ECU1,ECU3根据时间响应SI = 1;

  • step2: SA=1发出,计算从SA=1,到最后一个应用报文终止的时间。

3.4.6 tSleepRequestMin_N

  • 进入Normal状态后请求睡眠的最短时间。

    • 典型值 5000ms

    • 最小值 4000ms

    • 最大值 6000ms

  • 测试步骤

    • step0:Ring报文建立。发出KL15关闭。

      • step1:立刻触发SI=0网管报文持续发出。

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

  • 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进入休眠状态。计算从KL5发出到SA=1的时间。

3.4.7 tsleepRequestMin_L

  • 进入LimpHome状态后请求睡眠的最短时间。

    • 典型值 5000ms

    • 最小值 4000ms

    • 最大值 6000ms

  • 测试步骤

    • step0:单节点上电,进入LimpHome模式。发出KL15关闭报文。

      • step1:立刻触发SI=0网管报文持续发出。

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

  • 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进入休眠状态。计算从KL5发出到SA=1的时间。

3.5 异常Ring报文干扰

  • 测试目的

测试DUT连续接收到Ring报文后(指向自身地址或非自身地址)的行为是否满足NM标准的要求。

  • 评价标准

DUT未发送指向后继节点的Ring报文前又接收到一帧Ring报文(指向自身地址),DUT将以第二帧Ring报文为准,TTyp时间后发送指向后继节点的Ring报文。

  • 测试步骤

    • step0 : 发送alive报文

    • step1 :ECU1发出Ring报文

    • step2:间隔0.5*Ttyp时间,ECU1重新发送Ring报文。

    • step3:

      • ecpecte:ECU2可以再TTyp时间后发出Ring报文。

3.6 节点Skip功能测试

根据OsekVDX NM 2.5.2规范,节点需要具有监测自身是否被跳过的能力,如果检测到被跳过,则重新发送alive报文,申请加入。过程如下图:

  • 测试步骤:

    • step0: 建立Ring环。

    • step1:ECU1发送异常Ring报文,目的地址指向ECU3,ECU2被跳过。

    • step2:等待ECU2重新发出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

  • 10
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
OSEK NMOSEK Network Management)是一种用于汽车电子系统中的网络管理协议。它是基于OSEK/VDX标准的一部分,旨在提供一种可靠的通信机制,用于在汽车电子系统中管理网络节点之间的通信。 OSEK NM定义了一套规范,用于实现网络节点之间的通信和管理。它包括以下主要功能: 1. 网络节点的识别和管理:OSEK NM允许每个网络节点具有唯一的标识符,并提供了一种机制来管理节点的加入和离开网络。 2. 网络节点之间的通信:OSEK NM提供了一种可靠的通信机制,用于在网络节点之间传输数据。它使用了一种基于事件触发的机制,当节点需要发送数据时,它触发一个事件,其他节点可以通过监听这个事件来接收数据。 3. 网络节点状态的监测:OSEK NM提供了一种机制来监测网络节点的状态,包括节点是否在线、节点是否可用等。这对于系统的故障诊断和网络管理非常重要。 关于测试用例,针对OSEK NM的测试可以包括以下方面: 1. 节点加入和离开网络的测试:测试节点加入和离开网络的情况,包括正常情况和异常情况,例如节点加入网络时的冲突处理、节点离开网络时的清理操作等。 2. 数据传输的测试:测试节点之间的数据传输是否可靠和准确,包括数据的发送和接收过程、数据的完整性和正确性等。 3. 节点状态监测的测试:测试节点状态监测功能是否正常工作,包括节点在线状态的监测、节点可用性的监测等。 4. 异常情况下的测试:测试在异常情况下,如网络故障或节点故障时,系统的容错和恢复能力。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值