万字梳理从物理层到链路层的CAN测试用例

文摘   2025-01-06 07:25   上海  
目录

1 引言

2 物理层测试

    2.1 终端电阻测试
    2.2 隐形/显性输出电压
    2.3信号沿测试
    2.4电容测试
    2.5地偏移测试
    2.6输入内阻测试
    2.7内部差分电阻测试

 

    

2.8 ECU

过压/欠压范围测试
    2.9信号质量
    2.10容错性能测试

3 数据链路层

    3.1数据帧格式

    3.2 位定时测试

    3.3 采样点

    3.4 高负载通信测试



1 引言

CAN标准分为底层标准(物理层和数据链路层)和上层标准(应用层)两大类。

CAN分层

CAN底层标准主要是ISO 11898系列的国际标准,也就是说不同厂商在CAN总线的物理层和数据链路层定义基本相同;而上层标准,涉及到例如流控制、设备寻址和大数据块传输控制等,不同应用领域或制造商会有不同的做法,没有统一的国际标准。

Layered architecture of CAN

如上图所示:物理层(Physical layer)定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准,而数据链路层(Data link layer)由逻辑链路控制(Logical Link control,LLC)和媒体访问控制(Medium Access control,MAC)组成,其中LLC完成过滤、过载通知和管理恢复等功能,MAC完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。

本文主要聚焦于OEM对CAN标准的测试,也就是物理层和数据链路层的测试规范。

2 物理层

2.1 终端电阻测试

验证终端电阻阻值是否符合要求。

终端电阻测试示例
测试步骤:

  • 1)DUT电源断开;

  • 2)万用表测量CANH和CANL间的终端电阻阻值。

评价标准:根据ISO11898-5的描述,处于终端的节点,其终端电阻的取值范围如下所示。
终端电阻取值范围:电阻值应符合上图终端电阻取值范围的要求.
2.2 隐形/显性输出电压

DUT隐形/显性位输出电压必须遵循CAN通信需求规范规定的数值(未加特殊说明的情况下,CANScope均指示波器).

测试步骤如下所示:

  • 1) 配置CANoe、CANscope的位定时参数与DUT相匹配;

  • 2) CANoe为接收节点;

  • 3) DUT上电;

  • 4) CANscope监测DUT的输出报文,记录DUT输出报文在隐性和显性状态下的电压值(vCAN_H、vCAN_L对GND电压、差分电压vDiff)。

评价标准下边两个表分别为ISO11898对于显性和隐形电压的规定,OEM基本遵循这一规则。
DC parameters for dominant state of CAN node

 DC parameters for recessive state of CAN node

2 .3 信号沿测试

信号上升沿/下降沿跳变斜率必须遵循CAN通信需求规范规定的数值。

 

测试步骤如下所示:

  • 1) 配置示波器的位定时参数与DUT相匹配;

  • 2) 将DUT与示波器共GND;

  • 3) 设置DUT供电电压为12V,等待5s至总线通信稳定。

测量并记录DUT信号上升沿/下降沿时间(10%~90%的上升与下降时间)。

总线上升沿、下降沿时间示意图
评价标准:下表为某OEM要求的500K通讯速率下的上升沿与下降沿的时间要求。

2 .4电容测试

CAN电容测试的主要目的是确保CAN节点的输入电容符合设计规范,以避免总线波形畸变和通讯错误。

负载放电电容时间定义τ= 0.721 * (t2 - t1)
Cbusin和Cin测试原理

 

Cdiff测试原理

最后可根据公式计算得到如下值:

Cbusin = τ/Ri

Cin = τ/2Ri

Cdiff = Cbusin - Cin.

当然这样的测试方法,有着比较大的局限性,只能看一个波形的放电时间进行测量和计算,人工误差较大,通过多次的统计,然后进行平均,非常消耗时间。另外由于电容属于非线性器件,使用方波测量,无法有效排除直流分量。因此我们也可以购买专业的设备(这里就不打广告了)。

评价标准下表为GMW3122对电容的规定。
2.5 地偏移测试

测试DUT的地偏移特性是否符合规范要求。

 

测试环境说明:

  • 1) 对于非终端型DUT,需同时配置R1与R2;

  • 2) 可调电源 Vsupply1 与 Vsupply2 的正极相连,负极相互隔离。

测试步骤如下所示:

  • 1)配置CANoe的位定时参数与DUT相匹配,CANoe仅作为接收节点;

  • 2) DUT1上电,供电电压为12 V;

  • 3) DUT2上电,供电电压为10 V;

  • 4) CANoe监测总线上的报文,验证DUT1与DUT2是否可正常进行通信而不产生错误帧;

  • 5) DUT1和DUT2断电;

  • 6) DUT1上电,供应电压为12V;

  • 7) DUT2上电,供电电压为14V;

  • 8) CANoe监测总线上的报文,验证DUT1与DUT2是否可正常进行通信而不产生错误

评价标准:DUT在达到地偏移量为±2V期间(即10V和14V时),应必须保持正常通信行为,可正确发送并接收总线报文。
2.6 输入内阻测试

检测DUT CAN端口的内阻是否满足规范要求。

图中Ri表示匹配测试电阻,默认阻值为5kΩ。测试步骤如下所示:
  • 1)DUT处于正常工作状态;

  • 2)调节可控电源输出为-2V或者7V(U),记录此时的电压V;

  • 3)CANH和CANL开路时,使用示波器测量CAN_H与CAN_L的隐性输出电压;

  • 4)按照公式计算DUT的CAN_H与CAN_L的输入内阻值。

  • Rin_H = Ri * (VCAN_H - V) /(V-U)

  • Rin_L = Ri * (VCAN_L - V) / (V-U)

评价标准ISO11898关于输入内阻的规定.
2.7 内部差分电阻测试

 

测试步骤如下所示:

  • 1)DUT处于正常工作状态;

  • 2)调节可控电源输出为5V;

  • 3)使用示波器测量CAN_H与CAN_L的隐性输出电压;

  • 4)按照公式计算DUT的CAN_H与CAN_L的内部差分内阻值。

  • Rdiff = Ri * (Vdiff - V) / (V- U)

  • 式中:Vdiff表示CANL和CANH开路时的差分电压;

  • V表示上图测试时使用CANScope测出的电压;

  • U表示可控电源的电压(可控电源实际电压);

  • Ri为120Ω(DUT含终端电阻)或者10KΩ(DUT不含终端电阻)。

评价标准:最终根据ISO11898,差分电阻应符合下列标准。

 

2.8 ECU过压/欠压范围测试

2.8.1过压测试

测试步骤如下所示配置CANoe的位定时参数与DUT相匹配;
  • 1)设置DUT供电电压为12V,等待5s至总线通信稳定;

  • 2)以0.1V步长逐渐增加供电电压,若DUT出现错误帧,记录出现错误帧电压vError,若DUT停止通信,记录停止通信电压vStop,并标记为U1;

  • 附注:供电电压升至19V,如果DUT还能够正常通信,则停止升高供电电压,并结束本测试项;

  • 3)控制器停止通信后,以0.1V步长逐渐减小供电电压,记录DUT重新恢复通信电压vStart,并标记为U2;

评价标准:下边列举某OEM的要求,如下表所示。
阻值

最小值

标称值

最大值

U2

17.0 V

-

17.5 V

U1-U2

0.3 V

-

-

2.8.2 欠压测试
测试步骤

  • 1)配置CANoe的位定时参数与DUT相匹配;

  • 2)设置DUT供电电压为12V,等待5s至总线通信稳定;

  • 3)以0.1V步长逐渐减小供电电压,若DUT出现错误帧,记录出现错误帧电压vError,4)若DUT停止通信,记录停止通信电压vStop,并标记为U3;

控制器停止通信后,以0.1V步长逐渐增加供电电压,记录DUT重新恢复通信电压vStart,并标记为U4。

评价标准:下边列举某OEM的要求,如下表所示。
阻值

最小值

标称值

最大值

U4

6.5 V

-

7.2 V

U4-U3

0.3 V

-

-

2.9信号质量

图中当DUT为非终端节点时,1和2都要存在,当DUT为终端节点时,只要1即可。

测试步骤如下所示:

  • 1)设置C1=C2=0pF,C3=100pF;

  • 2)使用示波器截取一帧报文,挑选其中最差的一个bit(除ACK场之外);

  • 3)按照下图测量信号参数;

  • 4)将设置更改为C1=C2=5.6nF,C3=2.7nF;

  • 5)执行步骤2~3。

评价标准某OEM的要求为:50%位时间之后,CAN总线电压偏差应≤+/- 5%.
2.10 容错性能测试

2.10.1 CANH/CANL开路时的容错性能

验证在总线开路后DUT通信状况;当故障消除后,DUT能否正常通信且无错误帧产生。

测试步骤

  • 1) 配置CANoe的位定时参数与DUT相匹配,CANoe为接收节点;

  • 2) DUT上电;

  • 3) DUT开始通信以后,分别将DUT的CAN_H线开路、CAN_L线开路以及

  • CAN_H/CAN_L线同时开路;

  • 4) CANoe监测总线上的通信,记录通信状况;

  • 5)将故障消除;

  • 6) CANoe监测总线上的通信。

评价标准:在CAN_H或/和CAN_L开路后,CANoe会监测到错误帧或无任何报文同时也没有错误帧;当故障消除后,总线应在OEM规定时间(如300ms)内恢复通信正常且无错误帧。
2.10.2 CANH/CANL对地短路时的容错性能

验证CAN_H和/或CAN_L对地短路后DUT是否损坏;故障消除后,DUT能否正常通信且无错误帧产生。

测试步骤

  • 1)配置CANoe的位定时参数与DUT匹配,CANoe作为接收节点;

  • 2) DUT上电;

  • 3)在开始通信以后,将CAN_H线、CAN_L线以及CAN_H/CAN_L同时与地短路;

  • 4) CANoe监测总线上的通信;

  • 5)将故障消除;

  • 6) CANoe监测总线上的通信。

评价标准:在CAN_H或/和CAN_L与地短路后,CANoe会监测到错误帧或无任何报文同时也没有错误帧;当故障消除后,总线应在OEM规定时间(如300ms)内恢复通信正常且无错误帧。
2.10.3 CANH/CANL对电源短路时的容错性能

验证CAN_H和/或CAN_L对电源短路后DUT是否损坏;当故障消除后,DUT能否正常通信且无错误帧产生。

测试步骤

  • 1)配置CANoe的位定时参数与DUT相匹配,CANoe作为接收节点;

  • 2) DUT上电;

  • 3) DUT开始通信以后,将CAN_H线、CAN_L线以及CAN_H/CAN_L同时与电源短路;

  • 4) CANoe监测总线上的通信;

  • 5)将故障消除;

  • 6) CANoe监测总线上的通信。

评价标准:在CAN_H和/或CAN_L与电源短路后,CANoe会监测到错误帧或无任何报文同时也没有错误帧;当故障消除后,总线应在OEM规定时间(如300ms)内恢复通信正常且无错误帧。
2.10.4 CANH对CANL短路的容错性能

验证 CAN_H对CAN_L短路后DUT是否损坏;故障消除后,DUT能否正常通信且无错误帧产生。

测试步骤

  • 1)配置CANoe的位定时参数与DUT相匹配,CANoe作为接收节点;

  • 2) DUT上电;

  • 3) DUT开始通信以后,将CAN_H线与CAN_L短路;

  • 4) CANoe监测总线上的通信;

  • 5)将故障消除;

  • 6) CANoe监测总线上的通信。

评价标准:在 CAN_H与CAN_L短路后,CANoe会监测到错误帧或无任何报文同时也没有错误帧;当故障消除后,总线应在OEM规定时间(如300ms)内恢复通信正常且无错误帧。
3 数据链路层

3.1数据帧格式

假设项目中的CAN都是标准帧,且是CANFD的。那么需要测试CAN在接收到CANFD帧时的表现及非CANFD的表现,具体如下所示。

3.1.1预期帧接收/发送

  • 1)配置CANoe的位定时参数与DUT相匹配;

  • 2) DUT上电;

  • 3) CANoe监测DUT发送的CAN报文,验证DUT发送的所有CAN报文的类型是否都

  • 是CANFD的标准帧格式的;

  • 4)利用CANoe发送CANFD标准帧的数据帧,监测总线是否有错误帧同时监测DUT是否有响应(如发送事件报文等。

评价标准:DUT接收到ID位0x~7FF之间的CANFD报文都能够正常通信,无错误帧产生。
3.1.2 非预期帧接收
测试步骤
  • 1)配置CANoe的位定时参数与DUT相匹配;

  • 2) DUT上电;

  • 3)利用CANoe发送非CANFD数据帧,监测总线是否有错误帧同时监测 DUT是否有响应(如发送事件报文等).

评价标准:DUT接收到其它帧格式的报文时不应发送错误帧同时DUT不做任何响应。
3.2 位定时测试

验证DUT位定时参数是否满足通信要求。

测试环境

1)如果DUT未集成终端电阻,则电路需要连接图中 “1” 和 “2” 终端网络;

2)如果DUT集成了120Ω 的终端电阻,则电路只需要连接图中“1”终端网络。

测试步骤

  • 1)配置CANscope的位定时参数与DUT相匹配,并且设置CANoe使得CANoe作为接收节点;

  • 2) DUT上电等待5s至总线通信稳定;

  • 3)通过CANscope测量总线的位定时,如果DUT只发送事件触发报文,则可以通过产生相应的事件来触发DUT发送报文;

  • 4)使用示波器获取DUT发送的任一帧报文并计算tBit(针对500K的传输速率):

  • 将第一条测量线置于SOF上升沿0.5V处;

  • 将第二条测量线置于ACK下降沿0.9V处;

  • 记录两条测量线之间的时间间隔时间tMark;

  • 计算两条测量线之间的位数nBitnumber;

  • 5)计算位时间:tBit = tMark / nBitnumber。

评价标准
参数

符号

单位

最小值

标称值

最大值

位定时(500k)

tBit

ns

1997

2000

2003

3.3 采样点

见<<CAN总线不可不知的采样点知识>>.

3.4 高负载通信测试

以下针对CAN标准帧的测试步骤,扩展帧大家可以类推。

测试步骤

  • 1)设置DUT供电电压为12V并上电,等待5 s至总线通信稳定;

  • 2)case1使用CANoe仿真发送优先级低的报文(ID为0x7FF),使总线负载达到90%以上;

  • 3)case2使用CANoe仿真发送优先级高的报文(ID为0x1),使总线负载达到90%以上.

评价标准

Case1:干扰前后,DUT均正常发送所有报文;

Case2:干扰中,DUT不一定正常发送所有报文,负载恢复正常时,DUT通信状态正常。

谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章