什么是CAN一致性测试?

2024-04-11 08:32:33·  来源:汽车电控知识  
 

一致性测试是指用来检验一个实体(元件、部件、系统)是否符合相关规范的测试流程。所以CAN一致性测试就是指测试CAN节点是否符合CAN的通讯协议规范


CAN总线的开发设计有相应的一系列规范,如ISO 11898、ISO 14229、ISO 15765、OSEK、AUTOSAR网络管理规范等等。


为什么大家都按照统一的规范设计,还会出现偏差,还需要一致性测试呢?


首先,不同的工程师对规范的理解可能有差异,这些差异会导致设计问题。


另外,在产品的硬件设计过程中由于PCB上元器件的布局布线不同也会导致硬件参数偏差问题。


最后,软件的运行机制和硬件的电路特性,还会引入一些系统问题,比如时序不准。


这些问题轻的会导致总线出现偶发错误帧,重的会导致通信相关功能失效。为了消除安全隐患,保证产品的通信质量,缩小CAN网络中的节点差异,提高CAN网络的抗干扰能力,就需要在批量生产前进行CAN的一致性测试。


CAN的一致性测试按通信协议层次主要分为三层:物理层数据链路层应用层


1.物理层


物理层的一致性测试主要是电阻、电容特性,电平值,阈值,边沿时间,容错性能等通信介质物理特性相关的测试,这部分对总线的影响很大,所以是一致性测试中最重要的部分。


比如输出电压测试,"隐性"状态下,总线差分电压范围应为-1~0.5V(典型值0V);"显性"状态下,总线差分电压范围应为0.9~5.0V(典型值2.0V)。如果“隐性”电平大于0.9V,会使总线误入持续的“显性”状态,导致总线故障


假如实测“显性“电平为1.2V,说明该节点驱动能力较弱,虽然1.2V也在正常范围内,但是在强电磁干扰的环境下,共模干扰会串扰到CAN总线中使该电平变为0.9V以下,容易出现电平翻转(“显性”变“隐性”),进而导致该节点总线故障


图片

输出电压幅值引起错误


节点故障后会频繁发出错误帧,在CAN总线中,虽然错误帧不被接收,但是依然会占用总线的带宽,会导致其他正常节点发送延迟


2.数据链路层


数据链路层的一致性测试主要是位时间,采样点,帧格式,DLC等关于通信介质中的数据排列和组织。


比如采样点的测试,采样点是CAN接收节点判断信号逻辑的位置,CAN通讯属于异步通讯,需要通过不断的重新同步才能保证接收节点的采样准确。


若采样点太靠前,则因为总线中寄生电容的原因,容易发生采样错误;若采样点太靠后,则因为SJW原因,会引起接收节点同步跳转宽度的调整(调整自身时钟进行匹配),调整不好就容易出现错误;所以对采样点的测试很重要。采样点是由CAN节点软件通过内部寄存器设置的,外部设备如何知道,或者说如何测试呢?


其实道理也很简单,那就是对1个位时间段中每个时间点分别施加干扰,如果某个时间点的干扰被CAN节点检测到了,就说明此时间点是采样点。


图片

通过施加干扰信号测试采样点


通过测试设备设置偏移时间持续时间,比如从位时间的10%开始施加干扰,每次递增1%,持续干扰到100%。


图片

从位时间的10%施加干扰到100%


规范定义的采样点范围是75%≤采样点≤83.4%,所以实际采样点应该都设置在后半个位时间,有时为了节省时间,可以从位时间的中间(比如45%位置开始施加干扰;施加干扰的过程中查看设备统计记录的错误报文,出现错误报文干扰点就是采样点。


此外,CAN节点的采样值是否准确还与波特率(计算位时间)的误差范围有关,波特率的抖动范围不能过大。比如500k的波特率(位时间2us),如果抖动后,位时间变为1.8us或2.2us,将导致采样点的逻辑判断错误而出现总线故障。


图片

波特率抖动

根据规范要求,每个节点的位时间误差范围应满足t=2us±3%。


3.应用层


应用层的一致性测试包含的内容比较多,基本项是报文周期报文类型。此外还有网络管理、诊断、刷写和网关路由等。其中很多内容是主机厂自定义的。


周期性的报文需要测验周期时长的偏差是否满足规范,是否出现超差或丢帧的现象,通常周期时间≤20ms时,偏差不大于±20%,周期时间>20ms时,偏差不大于±10%;事件类型的报文需要在干扰条件下进行看是否会造成发送失败情况。


测量CAN总线的Bus Off状态是一个常见的测试项。CAN节点发生错误次数超过设定的阈值时,节点将进入Bus off状态并停止发送和接收CAN消息,此时需要通过特定的过程(快恢复和慢恢复策略)来恢复正常通信。


测试设备(干扰仪)可以通过模拟错误帧、错误位、错误定时器等方式来引发CAN节点进入Bus off状态。通过观察CAN节点的状态变化和相应的错误计数器,可以判断CAN节点是否可以进入Bus off状态。


小结:


针对一致性测试问题点的理解和分析有利于研发阶段问题的排查和定位。比如物理层测试问题,可以定位到CAN总线发外围电路设计采样点测试问题,可以定位到位时间的组成设计;Bus off快慢恢复测试问题,可以定位到累加的错误计数器引起的状态转换错误。


CAN的一致性测试需要使用专用的测试设备和专业的测试用例。通过CAN的一致性测试,可以保证产品的通信质量,提高CAN网络的抗干扰能力缩小各网络节点差异,从而提升整车的网络通信环境!

分享到:
 
反对 0 举报 0 收藏 1 评论 0
沪ICP备11026620号