CAN总线报文丢失故障及其判定方法
- 格式:doc
- 大小:16.00 KB
- 文档页数:3
CAN总线报文丢失故障及其判定方法
作者:何晔
来源:《科技视界》2015年第33期
【摘要】随着CAN总线在汽车工业的发展普及,整车排放、安全及娱乐等性能对CAN 总线通讯质量的要求越来越高。
因此,CAN总线工作状态的监控与诊断也日渐重要。
检测CAN总线报文接收就是一种监控CAN总线工作状态的有效方法。
本文在研究报文丢失故障原因的基础上提出一种报文丢失故障判定方法。
该方法能及时正确的检测出报文丢失故障,从而反映整车CAN网络工作状态。
【关键词】CAN总线;网络故障;故障诊断
0 前言
随着汽车电子技术的发展,CAN总线被越来越多的用作车载总线网络。
CAN总线技术可以实现各ECU(Electronic Control Unit 电子控制单元)之间的信息共享,减少不必要的线束和传感器。
但是,随着CAN总线负载率越来越高,以及电动、混动汽车内高压零部件导致整车电磁环境恶化等原因,ECU之间数据交互越来越容易受到影响,经常出现ECU收不到所需报文的情况。
某些ECU不能正常接收所需的总线信号时,ECU会进入故障运行模式,为确保安全性而降低性能、增大排放,甚至是禁止车辆行驶。
由此可见,适时并准确的诊断出报文丢失故障至关重要。
在长期的实践经验及理论分析的基础上,本文提出一种汽车CAN总线报文丢失故障的判定方法。
该方法不但能检测出连续丢失报文的故障,还能检测出间歇性丢失报文和报文接收超时的故障,提高ECU报文丢失故障检测的准确性,有助于监控CAN总线状态并提升整车性能。
1 故障发生原因
从ECU通讯方式及整车环境分析,报文丢失故障发生原因一般可以分成以下三类。
1.1 整车环境
整车电压及电磁环境对CAN总线报文的传输有很大影响。
ECU的正常工作电压一般为9-16V,汽车蓄电池只有在发动机启动的情况下,才能保持长期稳定的12V左右的电压输出。
然而,汽车在发动机不启动的情况下,蓄电池没有能量输
入,而此时用电器件却可能正常工作。
汽车长时间运行于此种工况下,蓄电池的输出电压会不足以维持ECU工作,从而导致报文丢失情况的出现。
随着电动、混动汽车的推广,越来越多的高压零部件被安装到汽车上,导致整车电磁环境愈发复杂。
比如,当DC/AC 逆变器、DC/DC 充电机等工作时会产生极大的电磁干扰,因ECU 往往是电磁干扰的敏感单元,从而造成某些控制单元的通讯节点发生异常。
具体反映为通讯节点接收不到信息,某些单元数据帧丢失,整车总线上由于接收错误造成的大量故障帧,进而导致整车通讯故障[1]。
1.2 CAN总线网络
整车上搭载ECU的增加导致CAN总线的负载率越来越高,报文传输延时越来越大,而当接收单元接收到的报文的延时过大,报文就会失去时效性,接收节点将其视为报文丢失情况处理。
另外,CAN总线CAN_H和CAN_L 短路断路也会导致报文丢失情况的发生。
[2]
1.3 节点故障
节点即整车CAN网络中的ECU。
节点故障导致报文丢失的原因主要分为软件故障和硬件故障两方面。
软件故障即传输协议或软件程序有缺陷或冲突,从而使车载网络系统通讯出现混乱或无法工作。
硬件故障一般由于通讯芯片或集成电路故障,造成车载网络系统无法正常工作。
[3]
2 报文丢失判定系统设计
根据前述故障原因分析。
报文丢失故障在时序上,可能是连续的,比如蓄电池电压输出;也可能是间断的,比如通信线路虚短或虚断情况下的CAN总线通信异常;在周期性上,可能完全收不到报文,比如电控单元失效;可能是报文延时超出电控单元可承受范围,比如负载率等导致的报文延时,也可能是在电控单元可承受范围内的延时,此种情况下若仍报故障,则会因条件过于严格而影响汽车的经济实用性。
为了使电控单元不但能够记录连续性报文丢失和间断性报文丢失,并且能够准确适度记录报文丢失故障。
本文提出如下图一所示的多重标准的故障判定系统。
针对CAN总线报文丢失故障的判定,设置了四个参数。
第一个是定时器T1,T1的值为待接收CAN报文的周期,用来周期性判断报文是否接收到。
第二个是定时器T2,T2的值决定了系统对报文丢失时间误差的容忍度。
系统设计冗余度越大,T2的取值就可以越大。
实际开发中,根据整车设计目标及ECU的性能确定适当的数值。
第三个是报文丢失计数器,用来表征报文丢失的严重程度。
计数器上限值越大,系统判定报文丢失的条件就越强。
报文丢失计数器的上限值可以根据ECU的重要程度而取不同的值,比如EMS(Engine Management System,发动机管理系统)等对排放、动力以及安全性影响较大的ECU,可以将此值设得较小,音响娱乐系统等舒适性、娱乐性相关的ECU,可以将此值设得较大。
在本文中以将此值设为20,即报文丢失计数器取值范围为0-20。
第四个是报文丢失故障标志位,取值范围为0-1,用来表示报文丢失故障的判定结果。
其初始值为0。
当ECU开始工作时,通过复位并使能定时器T1,开始检测报文丢失故障。
当T1时间到,ECU会检测是否接收到待收报文。
如果收到,则表示报文在当前检测循环内接收正常,将报文丢失计数器减2后开始下一检测循环;(若此时报文丢失计数器小于或等于2,则直接将报文丢失计数减为0)如果没有接收到报文,表示CAN总线状态未确定,需要参考其他条件才能做进一步的判断。
在T1时间内未收到报文的情况下,ECU复位并使能定时器T2。
T2 时间到,ECU再次检查是否收到待收报文。
如果仍未收到,则可以确定报文接收状态异常,将文丢失计数器的值加4后开始下一检测循环。
(若此时报文丢失计数器大于或等于16,则直接将报文丢失计数增加到20)如果收到,则表示报文在当前检测循环内接收正常,将报文丢失计数器减2后开始下一检测循环。
(若此时报文丢失计数器小于或等于2,则直接将报文丢失计数减为0)
当报文丢失计数器的值到达20,将报文丢失故障标志位置1,表示故障发生。
当报文丢失计数器的值到达0,则将报文丢失故障标志位置0,表示故障消失。
3 结语
本文根据报文丢失故障的成因特点,提出了报文丢失故障判定方法。
此方法不但能检测出报文连续丢失的故障,还能检测出间歇性丢失报文和报文超时的故障,减少ECU漏报、误报报文丢失故障情况的发生,使ECU能及时准确记录故障情况,保证整车安全运行。
【参考文献】
[1]赵枫,吴成加.混合动力客车CAN总线通信系统故障与抗干扰的研究[J].客车技术与研究,2014,5:13-16.。