从事汽车相关行业的小伙伴们,都知道CAN总线,它是当今汽车各电控单元之间通信的总线标准,现在几乎所有的汽车厂家都选择使用CAN总线通信。CAN总线起初便是基于BOSCH公司为了解决汽车的电子控制单元增多带来的布线空间矛盾、汽车重量增加等诸多问题而诞生的。同时,CAN总线将汽车内部各电控单元之间连接成一个局域网络,实现了信息的共享,大大减少了汽车的线束。
本文引用地址:相比于,目前流行的以太网和485总线,CAN总线具有以下的特点:总线访问——非破坏性仲裁的载波侦听、多路访问、冲突避免;多主机广播式结构,自动优先级仲裁,实时性很强;传输错误自动重发,自动CRC校验接收,数据出错率极低;差分信号传输抗干扰能力强,适合汽车内部强干扰的环境;硬件报文滤波功能,减轻CPU负担。
基于以上的特点,CAN总线能保证实时可靠的数据传输,保证汽车整车网络的通讯正常,在新能源汽车行业具有不可替代的地位。
汽车内部挂有很多的ECU节点,当其中一个节点发生故障进入总线关闭状态时,会很大程度上影响整车CAN网络的通讯。例如,当汽车发生碰撞时,传感器将电信号传送给安全气囊ECU,将信号进行处理,当确定需要打开安全气囊时,ECU会立即发出点火信号,气体发生器才会充满气囊,对驾驶员和乘客提供安全保护。若此时安全气囊ECU处于总线关闭状态,则无法正常弹出气囊,会导致严重后果。
CAN控制器可以判断出错误的类型是总线上暂时的数据错误(如外部干扰等)还是持续的数据错误(如单元内部故障、驱动器故障、断线、短路等)。由此,当总线上发生持续数据错误时,CAN控制器内部的错误计数器累积到总线关闭的阀值,可将引起此故障单元从总线上隔离出去,不参与跟总线其他节点的网络通信。
引起错误的原因大多是由物理故障引起的,主要是CAN线路产生的。其中包括:CAN_H开路、CAN_L开路、CAN_H对CAN_L短路/开路、CAN_L对VBAT短路、CAN_H对GND短路、CAN_L对GND短路、终端电阻开路等。
除了物理层线路因素,还有可能因为CAN控制器或收发器等元器件故障导致。同时,也有可能是由于CAN总线信号干扰导致的CAN信号收发不正确,严重时会导致不能正常发送报文,从而更容易导致CAN总线关闭。
例如,新能源汽车通常是指纯电动汽车或者混合动力汽车,其特色是使用电池、电容来存储能力,然后通过逆变的方式变成交流,带动电动机驱动车辆。逆变产生的巨大电流形成强干扰,串扰到CAN总线上,导致控制器死机、损坏或者通讯中断,车辆运行不稳定。
如果出现了BUS OFF,总线上的节点需要做一些动作,例如重启CAN控制器或是重新上电,但是这些都只是一些补救措施,最根本的还是需要找到引起BUS OFF的根源。
当发生CAN总线关闭时,我们可以检查BUS OFF寄存器的值,对CAN控制器的驱动及相关寄存器进行初始化操作。初始化完成后,CAN总线关闭故障就会立即解除。为了避免该节点在CAN网络中频繁发生总线关闭问题,建议在初始化后,不要立即对外发送CAN报文。
上文也提到过,由于汽车内部存在强干扰,也会导致CAN总线关闭。针对这种现象,我们通过以下方式进行处理:由于汽车内部存在强电流产生的空间磁干扰,应该将CAN线缆双绞程度加大;CAN接口设计采用CTM1051隔离收发器、隔离限幅,防止ECU死机;CAN接口增加磁环、共模电感等效果好的感性防护器件;外接专用的信号保护器消除干扰,如ZF-12Y2;使用网桥中继设备CANBridge对部分强干扰源进行隔离。
综合上述,汽车CAN总线关闭故障发生时,应分析物理层包括CAN线路、CAN控制器及收发器、CAN信号干扰等外在因素,同时分析CAN寄存器及软件处理,重新初始化CAN驱动和恢复正常后,定时尝试往外发送报文。新能源汽车在发送总线关闭情况时,我们也希望能够有对应的CAN报文去分析,尤其是针对偶发性的故障时,我们更需要有可靠的CAN报文来作为判断依据。
广州致远电子有限公司推出CAN网络总线“黑匣子”,我们称之为CANDTU,CANDTU集成有2路或4路符合ISO11898标准的独立CAN-bus通道,并可标配存储介质为32G高速SD卡,可以进行长时间记录、条件记录、预触发记录和定时记录等多种模式,并可以将记录的数据转换为CSV格式,或者CANOE、CANScope等各种主流分析软件的格式供后期处理分析。
CANDTU可以长时间记录CAN报文,以便于工程师查找数据,但是对于网络稳定性和偶发性故障无法进行定位和分析。