首页 > 其他分享 >车载测试系列:CAN故障诊断测试

车载测试系列:CAN故障诊断测试

时间:2022-12-02 12:01:42浏览次数:48  
标签:掉线 被测 车载 故障诊断 故障 ECU 测试 ID

几乎所有的ECU,都要做CAN方面的测试,BCM、EMS、VCU、BSG、BMS、TCU、EPS、ADAS等,只要带CAN端口,都需要做这样的测试,几乎所有OEM都要求供应商CAN测试。

诊断通信定义

对于绝大多数车企而言,诊断通讯的定义沿用的是UDS框架,只是所定义内容各自略有不同。

读故障请求示意图

假如诊断通信所用的ID分别为0x703(CANoe→被测ECU)和0x723,那么:

CANoe读取被测ECU的故障值的方式为:发数据 “03 22 DE 62”,然后被测ECU返回ID 0x723,数据区首先包含返回的估值字节数,然后按照类似dbc的Multiplexer的定义方式,用滚动ID的方式,返回各个ECU的故障值

CANoe读清除被测ECU的故障值的方式为:发数据 “04 14 ”,然后被测ECU返回ID 0x723,数据区包含清除结果,或成功清除,或者需要等待,正在清除中。

清除故障命令,所返回的结果,要么成功,要么等待中,但是读取故障,返回的值比较复杂,需按照类似dbc的Multiplexer的定义方式,将结果拼接成一个长数据,再根据故障位置的定义,从对应的位置去索引故障状态结果的值。

一般而言,由于整车功能规划和通信协议矩阵的变化,对于被测ECU,所接收的ID是不固定的,不同项目、不同车型平台之间很容易出现变动。但是所接收的ID来自于哪些ECU,是比较固定的,再加上ID的数量要远多于ECU的数量,所以,被测ECU返回的“拼接数组”,在全行业看,是以发送方控制器为基本单元进行索引的,而不是以发送方发送的ID。换句话说,被测ECU所接收的其中2个ID,如果来自同一个控制器,则它们两个分别掉线之后从被测ECU返回的诊断故障数据,是完全一样的。

CAN故障诊断测试包含哪些项?

假如被测ECU接收了15个ID,每个ID都有自己的周期,那么,如果某一个ID掉线了(包括长期掉线和短暂掉线),ECU应该怎么处理?报什么故障值?如果是短暂掉线,报文又恢复了,又该报什么故障值?

整车一般有一个总控模块,当它发的某个信号为1的时候,其他模块才能激活故障记录功能,如果发0,其他模块禁止记录故障,这个总控模块一般为BCM或者网关。那么,就需要检查一下,它发0的时候,其它是不是真的没有记录,它发1的时候,是不是真的记录了,有没有做到“令行禁止”?

当CAN总线被CANstress持续干扰(比如RTR位被干扰),被测ECU busoff了,之后再取消干扰,被测ECU有没有自动bus off recovery,且正常工作?再检测到故障时(比如某个ID掉线了),有没有正常记录掉线故障值?能不能正常返回故障?

当所接收的报文的DLC和定义的不一样时,被测ECU应对其抛弃,认为没有接收到正确报文,按照掉线处理。读取故障时,应能返回正确的故障。它实际上有没有做到这样?

当被测ECU持续接收不到ACK时,应当报发送错误,但不应当有错误帧,也不应当bus off,而是该怎么工作还怎么工作。它实际上有没有实现这个要求?

测试方案设计

 

PC:需要安装LabVIEW和CANoe,且CANoe需要能正常调用框图中所有Vector体系内的硬件。即CANoe的CAPL语言要能正常调用这些硬件。

VN1640:在本系统的功能为记录总线数据。

CAN卡:用于和被测ECU之间收发报文,是上图测试方案的核心部件。因为牵涉到多周期报文的发送,在CAPL中实现非常繁琐,而且需要按照Multiplexer的定义方式拼接信息数组,所以需要该CAN卡能够较好地支持底层调用。

可编程电源:用于给被测ECU供电,如果公司内部有Vector系列的可编程电源,可通过CAPL调用,那可以直接应用。如没有,可以采购更便宜的可编程电源,通过LabVIEW调用亦可。

CANstress:给被测ECU制造总线干扰,属于关键设备,建议采用Vector的。

案例说明

假设要测试VCU控制器,VCU控制器共接收25个ID(见图1),测试让ID逐个掉线,然后读取被测对象返回的故障值,再使掉线的ID恢复,然后再清除故障,掉线时长分别为:T1,T2,T3,T4,相应返回故障值的期望也会有区别,然后把所有ID轮一遍。

  1. LabView调用电源,重启被测对象
  2. 按照定义好的ID,周期,DLC,向被测ECU发送报文
  3. 执行for循环,对所有ID执行四次掉线,时长分别为:T1,T2,T3,T4,并分别读取故障、核对故障、清除故障

LabView和CANoe之间,可以通过软件之间的调用关系来挖出,这些参数载CAPL中以变量形式存在,可以充分挖掘CAPL高级功能。可以把CAPL做出标准化功能模块,用LabView灵活调用即可。

图1

标签:掉线,被测,车载,故障诊断,故障,ECU,测试,ID
From: https://www.cnblogs.com/laoluoits/p/16944035.html

相关文章

  • 车载测试系列:UDS诊断服务(三)
    ECU在进行诊断系统设计时,并不要求ECU要开发所有的诊断服务,只需根据各公司ECU的系统功能需求选择性开发即可。UDS诊断服务是根据特有的诊断CAN报文实现的。以下根据实际项目......
  • 车载测试系列:UDS诊断服务(二)
    诊断请求格式UDS的服务包含6大类,共26种。每种服务都有自己独立SID。SID:ServiceIdentifier,诊断服务ID。按不同服务类型,诊断请求格式有三种:格式1:[SID]+[Sub-Functio......
  • 车载测试系列:基于CANoe的UDS诊断测试
    针对新款车型,OEM会提出新车型的诊断需求,形成诊断需求规范。车内控制器由不同供应商提供。供应商根据需求规范来完成其功能实现。功能实现是否正确需要进行诊断测试验证。......
  • 车载测试系列:CAN报文之Intel格式与Motorola格式
    CAN通讯矩阵中关于信号排列格式ByteOrder的字段,其作用为:描述字节排布顺序。取值包含:Intel、MotorolaLSB、MotorolaMSB、Motorolasequential。LSB:leastsignificant......
  • 车载测试系列:CANoe功能介绍
    CANoe(CANopenenvironment)是德国Vetor公司推出的一款用于总线开发的设备。主要是用于CAN总线的开发、仿真、测试和分析。后来随着总线技术的发展,CANoe不仅限于CAN类型的总......
  • 车载测试系列:DBC文件格式解析
    DBC文件:CAN报文的数据库。用来描述CAN网络节点间数据通讯的文件,包含了CAN总线协议中协议数据及其所代表的具体意义。可以用来监测与分析CAN网络上的报文数据,也可以用来模......
  • 车载测试系列:CAN协议之波特率
    位时序分解CAN协议把每一个数据位的时序都分解成了若干个段。其中包括SS、PTS、PBS1、PBS2段,这四段加起来即为一个CAN数据位的长度。分解后最小的时间单位为Tq,一个完整的......
  • 火山引擎 DataTester 揭秘:字节如何用 A/B 测试,解决增长问题的?
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群上线六年,字节跳动的短视频产品——抖音已成为许多人记录美好生活的平台。除......
  • junit之测试顺序
    BriefJunit4.11里增加了指定测试方法执行顺序的特性测试类的执行顺序可通过对测试类添加注解“@FixMethodOrder(value)”来指定,其中value为执行顺序三种执行顺序可......
  • 2022 ios APP最新iOS开发上架测试教程
     本文详细介绍最新的在windows上进行iosapp开发编译打包安装到手机测试的完整流程。介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios开发描述文件等。2.Ap......