如何进行CAN总线高效测试?
技术干货 2022.09.02

CAN总线自BOSCH公司发明以来,在汽车通信网络中的应用得到了广泛认可。随着汽车电子技术的发展,车上的电子模块越来越多,汽车内部的CAN总线节点也随之增多。一般汽车内部CAN节点少则10个,多则30-40个,在对这些CAN节点进行测试的时候,工作内容复杂,且对测试人员技术要求较高。如何在保证产品质量的同时,快速推出产品,是OEM亟待解决的难题。因此,自动化测试技术作为汽车产品质量验证的重要手段变得至关重要。


针对上述问题,怿星科技自研的Neptune CAN总线自动化测试系统提供了有效的解决方案,下面跟着小编详细了解一下。

首先,简单介绍一下CAN总线测试内容。通常情况下CAN总线测试分为物理层测试、数据链路层测试、应用层测试、容错性测试几个部分。


01  物理层测试

主要有以下内容,其中位时间、信号跳变斜率、电阻测试关注较多,也比较容易出问题。在后文详细介绍位时间和信号跳变斜率测试。


测试点

测试目的

测试条件

显隐性电平

CAN总线对逻辑信号的识别依赖于信号电平,若CANH和CANL线上电平过高或过低,都会影响总线状态的判断,则需要验证在显性、隐性状态时,CANH   和 CANL 线上电平是否满足设计要求

示波器

信号跳变斜率

验证DUT的 CAN电平信号上升/下降斜率是否满足设计要求

示波器

高低压通信范围

验证DUT的高压和低压通信工作范围是否满足设计要求

 

_

位时间

总线波特率与位时间成反比,位时间由波特率确定,要求误差±0.5%,测试验证DUT的位时间是否满足设计要求

示波器

终端电阻

ISO11898-2要求在高速CAN总线两端接终端电阻(一般为120Ω)以消除反射,对低速CAN没有端接要求。因此,需要验证DUT终端电阻和非终端电阻配置是否符合设计要求

万用表

地偏移

验证DUT在地电压发生偏移时,通信是否正常

地漂电源

 

▷ 位时间测试

在介绍位时间测试之前,先简单回顾一下CAN数据帧格式,如下图所示:


如何进行CAN总线高效测试?(图1)

测试目的:

主要验证DUT发送报文的位时间精度以及DUT对接收到的报文的位时间精度容错能力。

测试方法:

通常选取DUT发送的其中1个CAN标准数据帧,使用示波器抓取整帧报文波形,计算从测试起始位到测试结束位的间隔时间,然后求平均值。测试起始位和结束位可以是帧起始位、仲裁段位、控制段位、数据段位、CRC段位、ACK段、帧结束位等。

测试结果:

下面是使用示波器自动抓取的测试截图(从SOF起始位到ID段的结束位,测量方式为差分信号输入):


如何进行CAN总线高效测试?(图2)

 

▷ 跳变斜率测试

测试目的:

主要验证DUT的CAN总线信号上升斜率和下降斜率是否满足要求。

测试方法:

通常选取DUT发送的其中1个CAN标准数据帧,使用示波器抓取整帧报文波形(包括CANH、CANL以及CANH和CANL之间差分信号波形),然后分析计算仲裁段或数据段内的所有跳变沿变化时间(信号从10%上升到90%或者从90%下降到10%间隔时间)。

测试结果:

下面是使用示波器自动抓取的测试截图(测量方式为差分信号输入):


如何进行CAN总线高效测试?(图3)

 

02  数据链路层测试

主要有以下内容,其中采样点、BusOff测试关注较多,在后文详细介绍采样点测试。


测试点

测试目的

测试条件

采样点

验证DUT的采样点设置是否满足设计要求

VH6501干扰仪

ACK应答

验证开启/关闭总线ACK应答时,DUT通信处理机制是否满足设计要求

 

_

报文重发

验证DUT产生发送错误后,能否立即重发该报文

VH6501干扰仪

BusOff

验证DUT快恢复策略是否满足设计要求

VH6501干扰仪

高负载

验证在总线高负载情况下,DUT是否会出现丢帧现象

 

_

最大填充位报文

验证在总线上仿真发送最大填充位报文,DUT通信是否正常

 

_

 

▷ 采样点测试

测试目的:

主要验证DUT的采样点设置范围是否满足要求。


测试方法:

通常是使用测试工具在CAN总线上发送特定干扰报文,然后检测DUT是否会发送错误帧。本文中选取的测试方法是使用Vector的VH6501设备进行干扰,周期发送高优先级报文,在每个周期,微调CRC_DEL位长度,使其缩短1个VH6501时钟长度,并同时将后一位ACK_Slot位长度增加1个VH6501时钟长度。

由于CRC_DEL位固定位隐性位,ACK_Slot位固定位显性位,当ACK_Slot显性位移到DUT采样点位置时,就会被DUT采样到并判定CRC_DEL位为显性位,DUT检测为格式错误,就会向总线发送错误帧,测试工具检测到DUT发送的错误帧时,则结束测试,并记录调整的次数为n,然后根据调整次数计算出DUT的采样点。

具体计算方法如下:

以CAN总线500Kbps速率为例,一个位时间为2000ns(1/500K),VH6501时钟频率为160MHZ,每个VH6501时钟长度为6.25ns(1/160M),则DUT采样点:Sample = (2000 - 6.25 * n) / 2000。

 

测试结果:

VH6501干扰过程,如下图所示:

如何进行CAN总线高效测试?(图4)


03  应用层测试

主要有以下内容,在后文详细介绍报文周期测试。


测试点

测试目的

测试条件

消息标识符

CAN总线通过ID仲裁,发送数据,因此,需要验证DUT所有发送报文ID与数据库定义是否一致

解析数据库

数据长度

验证DUT所有发送报文DLC与数据库定义是否一致

解析数据库

报文周期偏移

验证DUT所有发送周期报文的周期偏移是否满足设计要求

解析数据库

信号初始值

验证DUT发送的报文信号初始值和数据库是否一致

解析数据库

未使用位填充

验证DUT发送的报文未使用位填充数据值和数据库是否一致

解析数据库

接收报文

验证仿真数据库定义的接收节点为DUT的所有报文,DUT通信是否正常

解析数据库

 

▷ 报文周期偏移测试

测试目的:

主要验证在单节点测试环境下,DUT发送的周期报文偏移是否在±10%以内。

测试方法:

待DUT通信稳定后,使用CANoe持续监控总线一段时间(至少是10分钟),记录在此期间接收到的所有周期报文的发送时间,然后计算每个周期报文的发送间隔最小值、最大值、平均值。

测试结果:

判断每个周期报文发送间隔最小值、最大值、平均值的周期偏移误差均在数据库定义周期的±10%以内。


04  容错性测试

主要有以下内容:


测试点

测试目的

测试条件

CANH/L短电源

验证DUT在CANH/L对电源短路时处理机制是否满足要求,并确认通信恢复时间参数是否满足设计要求

容错性测试环境

CANH/L短地

验证DUT在CANH/L对地短路时处理机制是否满足要求,并确认通信恢复时间参数是否满足设计要求

容错性测试环境

CANH与CANL短路

验证DUT在CANH与CANL短路时处理机制是否满足要求,并确认通信恢复时间参数是否满足设计要求

容错性测试环境

CANH/L断路

验证DUT在CANH/L断路时处理机制是否满足要求,并确认通信恢复时间参数是否满足设计要求

容错性测试环境

DUT掉电源

验证DUT在与电源断开时处理机制是否满足要求,并确认通信恢复时间参数是否满足设计要求

容错性测试环境

DUT掉地

验证DUT在与地断开时处理机制是否满足要求,并确认通信恢复时间参数是否满足设计要求

容错性测试环境

 

CAN总线自动化测试系统架构

为保证测试的高效执行,自动化测试执行是必要的,我们的CAN总线自动化测试系统由测试软件、测试硬件系统、DUT被测系统组成。

如何进行CAN总线高效测试?(图5)

 

测试软件:

自动化测试操作管理软件,用户可以进行测试参数配置、测试用例选择、测试执行、测试报告管理和Log记录及分析等。

测试硬件系统:

主要功能是模拟硬件测试环境,进行DUT电源控制、I/O信号控制及仿真、报文监控及仿真、CAN总线故障注入、CAN总线信号采集、CAN总线干扰等。一次可同时部署多个DUT,程序自动切换测试,实现高效便捷操作。

DUT被测系统:

被测CAN总线节点,符合ISO11898标准的CAN/CANFD节点。

这套怿星自研的Neptune CAN总线自动化测试系统不但能提高测试覆盖度,自适应不同测试环境,大幅减少测试工作量,而且操作简单,对测试人员的技术要求较低,同时还具备其他特点:

· 集成多种测试功能,CANFD节点通信测试、LIN主/从节点通信测试、Autosar CAN网络管理测试、CAN/CANFD/LIN诊断、刷写、通信路由、诊断路由测试等

· 支持二次开发功能,提供了丰富的API接口,支持Excel/LDF/DBC/ARXML文件解析等

 

对此,感兴趣的小伙伴可以联系我们进行咨询!

>>扫码查看详细配置<<

Neptune CAN自动化测试系统

如何进行CAN总线高效测试?(图6)

 



关注怿星科技公众号,获取更多资讯 


如何进行CAN总线高效测试?(图7)