电动汽车CAN通信故障检修探讨
2023-12-29秦航
摘要:近几年,随着新能源电动汽车产业的迅速发展,越来越多的车辆电子控制系统和通信系统用于控制车辆的各种运行参数。随着控制室数目的增多,各控制室之间的信息交流也日益频繁,采用线作为点对点的连接方式难以满足上述交换所需的数据量,所以串行数据传送的方法是必要的。CAN总线可以改变汽车内部点与点之间的传统通信模式,使内部电路复杂化。CAN总线是目前汽车电子控制系统中通用的通用总线,它在汽车尤其是在新能源和智能网联汽车中得到了广泛的应用。基于此,以电力机车为例,对其CAN通信故障的检修方法进行了分析。
关键词:电动汽车;CAN通信故障;检修
中图分类号:U472 收稿日期:2023-06-19
DOI:10.19999/j.cnki.1004-0226.2023.11.028
1 前言
当前,我国汽车电子控制技术发展迅速,具有功能多样化、技术集成、系统集成、车载网络化等特点。早在20世纪80年代初,德国博世公司就提出用CAN(局域网控制器)控制局域网来解决机器中复杂的硬件电路。CAN总线是采用ISO11898标准协议、高频传输、多模式操作和不受控制的套利总线。当两个ECM同时传输信息时,优先级较低的节点会自动终止信息,优先级较高的节点可以不受干扰地传输数据,实现多个ECM之间的通信。CAN总线耦合广泛应用于汽车,特别是在新能源汽车和控制论汽车中。
2 CAN总线故障机理
2.1 控制单元(ECM)引起的CAN总线故障
汽车CAN总线的关键部件是具有通信集成电路的ECM,其工作电压为10.5~15.0 V。当车辆供电系统运行电压低于此范围时,某些需要高工作电压的电控装置会暂时停机,导致整个CAN总线暂时不能通信[1]。
2.2 数据链路故障
汽车CAN总线的数据线路(或通信线路)发生故障,例如,线路短路、断路、线路物理特性造成信号的衰减、畸变等,将导致多个电子控制装置不能正常工作,或者由于ECM系统的错误操作,CAN总线不能正常工作[2]。
2.3 ECM故障
在CAN总线中,节点是ECM和总线之间的连接点,其主要表现为CAN通信协定或软件程式的不完善或冲突,致使CAN总线通信不畅或不能正常工作,通常是成批发生的,不能进行修理[3]。
3 干扰源对CAN总线通信干扰机理
在车载计算机发出命令时,各种开关、继电器、马达控制器等感性装置在执行命令时,会因车辆内部电路的电流被切断而产生极高的瞬变电压,这种电压会以导电耦合的形式通过车辆供电进入其他电子装置,使CAN收发信机的供电电压受到干扰,使CAN总线的数据传送波形失真。如果该干扰超出了CAN总线的共模电压容限(-12~7 V),则会产生CAN总线的数据传送误差。比如,如果电动车的长度超过10 m,那么CAN总线收发机的工作模式电压就会达到10 V,这个电压会导致CAN的收发机直接烧毁。在电动车的电力系统运行期间,通过DC-AC变换,将电压输入马达驱动器,马达驱动车辆向前行驶,并带动空调压缩机制冷。当电动车在山坡上行驶时,马达驱动的能量恢复系统会将DC-AC变换的方式反馈到蓄电池上[4]。
4 监控方法概述
4.1 监控单元选择
随着科技的进步,车载电子产品的种类也在不断增加,很多电子产品都要进行数据交换,使得汽车上的通信节点数量不断增加。如果各节点共享相同的CAN总线,会导致总线拥塞,所以在CAN总线的设计中,要根据通信结构、节点功能和实时性的需求,将CAN总线分为多个节点。除了通过CAN总线从其他节点获取控制决策信息外,还必须通过CAN总线向每个模块发送命令,以控制车辆的运行和电源。
4.2 帧接收监控方法
每个数据帧都是定期传输的,所以如果某个帧没有在指定的时间段被接收,就表示这个帧发生了丢失,或者是发送这个帧的节点失败了。本文提出一种为每一帧分别设定计时器的计时器数目,并共享相同时间周期的计时器。也就是说,除了通过CAN总线从其他节点获取决策信息外,还必须通过CAN总线向每个模块发送命令,以控制车辆和电源管理。因此,总线控制器(VCU)通常同时存在于CAN总线中,充当CAN网络的网关,实现总线之间的数据交互[5]。
a.接收处理。
当整个车辆控制器收到一定的数据帧后,就会脱离当前的工作,进入接收中断,并在接收中断中对数据进行清零。本文通过表1中4个帧的案例来说明这种监测方法。首先判定帧ID,在A帧ID时,描述从MCU(MCU)传输到车辆控制模块的帧数据,并分析和更新帧中数字的值以清除它们。如果不是A,继续定义B的帧ID。请注意,C和D不需要完全控制车辆,所以在接收到这两个帧时,只需将它们的计数变量值清零,无需分析。如果有其他的框架,则按照上面的方式来处理[6]。
b.故障诊断。
当整个车辆控制器接收到一定的数据帧时,将从目前的工作中分离出来,进入接收中断,在接收中断时进行数据的清零。本文以表1中4个框为例,对此进行了分析。首先确定帧ID,当A帧ID时,说明该帧数据是MCU传送到整个车辆控制器的电机速度,并对帧A内的计数变量值清零;若不是A,则继续确定帧ID是B。注意C和D并不要求进行整个车辆的控制,因此在收到这两个帧后,不需要进行任何分析,就可以把他们的计数变量数值清零。如有其他框架,请遵循上述方法[7]。
4.3 节点心跳监控方法
每个节点都要建立一个周期的心跳任务,通过增加自己的心率,将心跳信号传送到CAN中。当一个节点的心跳信号没有改变时,就表明这个节点已经出现故障[8]。
a.接收处理。
整车控制器在接收到一定的数据帧后,会脱离当前的任务,进入接收中断对接的接收帧,如果是心跳帧,就会更新对应的心跳值。本文通过表2中4个帧的案例来说明这种监测方法。首先判定帧ID,如果帧ID是A,则表示帧数据是MCU向整车控制器传输的马达速度,而不是心跳,所以仅分析和更新这一帧;如果帧ID是B,则表示这个帧是由MCU向整车控制器传输的心跳值,所以分析这个心跳帧,并对MCU的脉搏值进行更新;如果帧ID是C,则表示帧数据是BMS向仪表传输的单元电压,因为是非脉搏帧,并且不需要整车控制器来获取,所以对帧进行滤波,而不进行处理。如果有其他的框架,则按照上面的方式来处理[9]。
b.故障诊断。
首先确定节点A的当前心跳是否与先前的诊断作业一致。如果这两个值相同,则节点AA的心跳率从以前的诊断任务到现在的错误诊断没有变化,则节点AAA的变量计数器值将增加1。如果不相等,表示A节点在此期间收到了新的心跳,那么A节点还在工作,并能正常工作。如果节点的心率是正常的,则该变量的数值会持续的下降,为了确保该变量的数值总是大于或等于0,必须对该变量进行处理,即在判定该变量数值为负的情况下,将该变量的数值归为0。在节点计数变量完成后,还要进行故障诊断。当它的数值大于第二个阈值时,A节点的通信失效级别设置为第二级;当它的数值大于1级时,通信失效级别设置为第一级;如果它的数值低于第一个阈值,就表示A节点通信的异常没有被监测,并且把它的失效级别设为0。如果存在其他节点,可以按照上面所说的方法进行诊断。但是每个节点的脉冲周期都会有很大的差异,所以需要对故障阈值做出相应的调整[10]。
5 软件驱动程序设计
在CAN总线受到干扰时,CAN数据包的传输也会受到干扰,从而造成CAN控制器的传输缓存阻塞,使CAN数据包的传输不能正常进行。传统的抗干扰软件设计方法是将CAN控制器的传输变为单程传输,也就是关闭CAN的重传功能,从而在强干扰情况下进行无阻塞传输,CAN控制器利用接收端应用层的应答来确定CAN传输包是否已经抵达[11]。
5.1 CAN总线错误处理软件设计
通过底层驱动,实现对CAN总线链路的自动重传和正确的差错处理,实现实时和访问的最优均衡。为了防止由于自身的原因,比如硬件故障,导致CAN总线中的其他普通节点的通信受到干扰。CAN总线规格说明中,每一CAN控制器都有一个传输误差计数器(TEC:传输误差计数)和一个接收误差计数器(REC:接受误差计数)。CAN控制器依据计数值的不同定义错误,得出不同设备故障状态的CAN节点。若CAN节点在强干扰时连续发送失败,则CAN控制器的发送差错计数将会自动增至255。这时CAN控制器会进入“断开”状态。CAN控制器在总线关机状态下无法进行发送和接收。在没有经过处理的情况下,CAN节点很难再进行正常的收发。该方案采用智能的循环快速修复与缓慢复原的过程,并给出了详细的设计流程。在快速恢复过程中,最多只能进行5次快速恢复,当5次快速恢复后节点仍处于Bus-off状态时,就需要进行缓慢的恢复过程。采用这种智能的错误处理方法和快速恢复机制能够快速地排除由于外界的干扰而造成的总线关机。
5.2 正确发送CAN报文软件设计
智能错误恢复机制可以防止程序因总线中断而连续发送,增加错误传输密度,从而提高数据传输成功的概率。由于CAN控制器底部的自动转发模式,每个CAN节点有32次转发,自动转发间隔仅为3~8 [μs]。因此,系统将以总线第一次关闭的时间作为节点,并将其作为传输失败的标志,以便判断是否重新传输,确保CAN数据包的传输成功[12]。
6 结语
在车辆的故障诊断和处理中,应严格遵循安全操作规程,尤其是新能源汽车的高压安全和保护工作;在进行维修工作时,应遵循先简单后复杂、能不拆就不拆、能拆小件不拆组装、先看故障码优先的原则。在对汽车网络故障进行维修之前,必须确保与数据总线连接的ECM没有出现任何故障。故障不会对数据总线的通信造成直接的影响,但是由于某些信息的丢失,会对整个系统的性能造成一定的影响。
这种功能失效将间接地影响到数据总线系统,从而影响到ECM的通信。如果出现了功能上的问题,首先要解决这个问题,然后把它记录下来,最后把所有的ECM都清理掉。当车载网络出现故障时,通过汽车计算机故障诊断系统的网关,无法找到一台或多台ECM,或多台ECM与一台ECM失联,首先要检查车载网络的拓扑结构,确认ECM是否存在于车载网络中,然后将ECM的电源保险丝拔下,通过CAN信号的电平,就可以迅速找到问题的根源。
参考文献:
[1]陈龙华,李洪林,杨汉立,等.基于CAN总线纯电动汽车的整车控制器[J].计算机科学,2022,49(增1):802-807.
[2]戴梦萍,纪永秋.电动汽车CAN通信故障检修[J].内燃机与配件,2021(21):154-155.
[3]李继武.基于CAN总线的电动汽车空调控制教学平台设计[J].汽车零部件,2021(10):43-47.
[4]汪俊.2019款比亚迪E5电动汽车CAN网络系统结构及故障诊断[J].汽车电器,2021(10):68-72.
[5]董碧成,石春,吴刚.基于AUTOSAR的电动汽车中央控制单元CAN通信软件开发[J].仪表技术,2021(4):65-70.
[6]王勇,李亚菲,陈雪鸿,等.电动汽车CAN协议的重放攻击与防御方法[J].上海电力大学学报,2021,37(4):395-401+406.
[7]刘敏,黄敏思,何苏利.基于CAN总线的电动汽车抗电磁干扰系统设计[J].自动化与仪器仪表,2021(6):51-54+58.
[8]董碧成.基于AUTOSAR的电动汽车中央控制单元CAN通信模块研制[D].合肥:中国科学技术大学,2021.
[9]孟鑫,唐妍,谢佶宏,等.电动汽车CAN网络测试设备研究[J].时代汽车,2020(16):69-70.
[10]孙常林,李琳,邢合理.电动汽车动力CAN总线系统故障分析与研究[J].产业创新研究,2020(8):109-110.
[11]李玮,王晶.纯电动汽车电机控制器CAN通信丢失故障处理方法[J].北京汽车,2020(1):35-38.
[12]许瑞统,臧震,熊保平,等.燃油汽车改制为纯电动汽车CAN协议应用层的开发与实现[J].科技视界,2019(36):121-124.
作者简介:
秦航,男,1987年生,讲师,研究方向为汽车检测与维修、职业技术教育。