一种基于VECTOR CAN 工具的整车CAN 总线故障正向诊断方法
2021-03-31董庆大吴明瞭李红涛
董庆大, 杜 威, 吴明瞭, 李红涛
(东风汽车股份有限公司商品研发院, 湖北 武汉 430057)
当前现代汽车已经从传统汽车逐步向智能网联汽车转型,同时提出了“五化”的概念,即轻量化、电动化、智能化、网联化、共享化,标志着汽车正迈向一个新的时代。传统的汽车由于功能单一、结构简单,整车CAN网络节点数量较少,总线的数据流受到的干扰很小,总线故障诊断也相对简单,一般可以采用简单的反向流程排查故障,即故障节点排除法方案,当断开某个节点故障消失时可以初步判断故障是由这个控制器引起的。随着汽车电动化、智能化、娱乐化的发展,单一CAN网络上的节点越来越多,节点数量已经由4~5个增加到10个以上,各节点对整车网络中各控制器干扰的因素增多,如果还采用反向故障节点排除法,不但故障诊断时间长,还无法找到造成CAN故障的原因。具体遇到的问题可能为:①某CAN节点波特率与整车CAN不一致;②某CAN节点CAN_H和CAN_L线束反接;③CAN_H和CAN_L与电源或搭铁短接;④某节点报文出现填充位故障;⑤CAN总线ID报文冲突。
1 术语定义
1) CAN:控制器局域网络 (Controller Area Network,CAN) 的简称。
2) CAN_H:CAN网络中的CAN_H线,ISO 11898-2中定义规定电压标称值,隐性时为2.5V,显性时为3.5V。
3) CAN_L:CAN网络中的CAN_L线。ISO 11898-2中定义的CAN_L线输出电压标称值,隐性时为2.5V,显性时为1.5V。
4) CRC:循环冗余检查,在一帧报文中加入冗余检查位可保证报文正确。接收方通过CRC可判断报文是否有错。
5) ACK应答:接收方成功接收到数据,那么会回复一个ACK数据。
6) CANoe:德国Vector公司为汽车总线开发和测试的工具。
7) CANScope:德国Vector公司开发的CAN总线物理层测试工具。
8) CAN节点:能够挂接在CAN总线上的单元,并能通过CAN总线实现各个节点间的通信。
9) 标识符:每帧CAN报文都有一个唯一的标识符,用ID标识。
10) Bus Off:总线关闭状态,处于Bus Off状态的节点会从总线断开,既不发送报文,也不接收报文。
2 CAN总线概况
一般来讲,整车厂按照正向V模式开发流程开发整车CAN总线。整车厂提供功能需求规范、功能分配、网络设计、ECU需求,零部件供应商按要求进行ECU开发后,将样件交给整车厂进行CAN单元、CAN网络集成、功能测试、诊断测试等,确保样件符合要求,如图1所示。
3 CAN总线故障介绍
CAN总线故障按照错误类型可分为主动错误和被动错误。按照故障行为又可以分为本地故障和全局故障。
3.1 CAN总线错误类型
图2为CAN节点错误状态图,其中REC为接收错误计数器、TEC为发送错误计数器,当接收错误或发送错误>127时,主动错误转换成被动错误;反之,当接收错误或发送错误<128时,被动错误又转换成主动错误;如果主动错误>255,则CAN节点处于Bus-off状态,此时需要复位或重新配置才能恢复CAN通信。
图1 CAN总线开发示意图
图2 CAN节点错误状态图
3.2 总线故障行为
3.2.1 本地故障
所有ECU节点应有容错性能。
1) ECU任何内部错误都不应影响总线通信 (发送错误帧或者把总线钳位在“显性”状态)。
2) ECU功能不应对总线高负载率影响,也不应把ECU置于不安全状态。
3) 总线错误帧不应影响ECU内部功能,也不应把ECU置于不安全状态。
4) ECU启动期间,不应干扰其他ECU的正常通信。
3.2.2 全局故障
表1所示的全局故障及其他未定义故障移除时,在没有任何操作时,ECU应在600ms内自动恢复正常工作。如果ECU规范有其他时间要求,应在ECU规范要求的时间内恢复正常工作。
3.3 CAN总线诊断工具
为了快速地对整车网络进行故障诊断,需要用到VECTOR公司的CANoe、CANScope两种CAN工具对整车CAN网络总线测试。
表1 总线短路故障
1) 用CANoe来监测总线故障报文ID,可直接定位到故障报文ID。
2) 用CANoe来监测总线故障报文周期,可直接定位到异常周期报文ID。
3) 对无法用CANoe定位的故障帧,可以通过CANScope示波器来查看CAN物理层,定位是哪块出现的错误。
4 实车测试验证
4.1 故障类型1——CAN节点波特率与整车总线不一致
如果直接用整车总线CAN波特率去监测总线数据,可以监测到错误帧,但无法判断是哪个节点发出的。如某车型整车CAN 波特率为250kb/s,但是T-BOX 远程信息终端为500kb/s,可以设定CAN总线波特率为250kb/s进行测试。当总线的波特率正常值为250kb/s时,总线出现故障帧的情况(ECC故障),导致总线负载率爆表 (90%),导致T-BOX的报文发送不出来(图3和图4)。因此,我们判定是某个控制器的波特率设置故障。接着将总线负载率调至500kb/s的波特率(图5和图6)。
图3 CAN总线波特率设置
在CANoe 的trace 界 面 上,发 现 只 有0x3B1、0x3B2、0x3B3报文出现在总线界面上,并且此报文是T-BOX的报文。因此,经过分析该条报文就是在总线出现故障帧的报文。
4.2 故障类型2——ECU节点CAN总线反接
对东风某商用车进行测试验证,将倒车雷达控制器的CAN_H、CAN_L线与整车CAN线反接。如图7所示。
结构性制约因素中,费用太高 (包括管理费用、交通费用、设备费用、露营费用等各项休闲活动中的费用支出)、缺乏时间、场地/设施拥挤和交通不便在调查中出现频繁 (图7)。这些因素影响范围广,几乎涵盖女性、老年人、少数民族群体等各种人群。比较少提及的因素诸如活动不适宜等针对特定人群的制约因素以及公园标识不科学、管理缺乏监管等休闲服务与管理方面的制约。
从CANoe中采集的总线报文可以分析得出:Trace界面出现一条故障帧,其他控制器向总线发送的报文均正常。经报文内容分析,总线缺少倒车雷达报文信号。
图4 250kb/s波特率监测情况
图5 500kb/s波特率监测设置
图6 500kb/s波特率报文情况
图7 控制器CAN线反接报文情况
当把测试工具的CAN线反接时,整车网络只出现一条报文信息,并且通过CANScope 的波形图可以看出,存在CAN_H 和CAN_L 的电平。红色线为CAN_H,绿色线为CAN_L。如图8和图9所示。
图8 CAN_H和CAN_L反接监测界面
图9 CAN_H和CAN_L反接波形
通过以上结论,可以得出:当总线出现错误帧时,我们可以将测试工具的CAN_H和CAN_L反接,用CANOe进行测试,定位相应的报文信息,进而快速找出相应节点故障。
4.3 故障类型3——CAN总线容错性能
CAN线的容错包括CAN_H与CAN_L短路、CAN_H与电源短路、CAN_H与搭铁短路、CAN_L与电源短路,都会导致整车无报文且无故障帧。利用工具示波器抓捕4种状态的信号,如图10所示。
图10 总线容错波形图
以上示波器电平信号以及CANoe的分析总结见表2。
4.4 故障类型4——报文位填充故障等
当CAN总线上出现错误帧时,我们可以根据CANOe工具对错误帧报文进一步分析,通过trace窗口打开错误帧的详细内容,可根据对应的错误代码识别相应的原因,针对性进行处理。具体如图11所示,可以定位到错误来自0x200报文。
表2 CAN线容错表
图11 位填充错误
4.5 故障类型5——总线报文ID冲突
当拔掉其中一个控制器后,报文恢复正常,如图14所示。
因此,可以根据报文定义快速找出相应问题的节点控制器。
5 结束语
1) 目前主机厂大部分排查总线问题还是通过拔各个控制器的插接件,来一个个定位节点,该手段效率低。采用基于VECTOR CAN工具的整车CAN总线故障正向诊断方法,可以快速定位故障节点。
2) 该方法已经在东风某款商用车成功测试验证,为生产现场排查故障提供有力依据和手段。
图12 报文ID冲突监控图
图13 相同报文信号发送
图14 正常报文监测图
3) 本研究方法可以适用的范围十分广泛,不仅仅局限于商用车,还可适用于任何CAN通信的汽车平台。