历史上的今天
今天是:2025年03月23日(星期日)
2020年03月23日 | CAN总线在新能源汽车中的应用
2020-03-23 来源:ZLG致远电子
从事汽车相关行业的小伙伴们,都知道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报文,以便于工程师查找数据,但是对于网络稳定性和偶发性故障无法进行定位和分析。
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:08 编辑 眼看大赛越开越进,不知准备参加控制类的兄弟们是如何准备的?大赛今年有啥呢?期待吧!!!, … 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:46 编辑 非常高兴能有这个机会与大家一起交流一些经验,谈一些我在电子设计竞赛方面的感受,希望我们能够共同进步。 在这里我要先给大家讲一段我的亲身经历。.......我下定了要学好电子技术的决心,并 ...… 查看全部问答> |
|
如题,在eeworld上下了一tec-2模拟机老显示Dead cycle!!! A0800 MOV R2,0A MOV R0,30 CALL 009B INC R0 EDC R2 JR NZ,0804 RET G0800 dead cycle… 查看全部问答> |
|
功能是读取edit控件中显示的内容,将内容存储到txt文件中 现在文件可以创建,也可以写入,就是打开txt文件显示乱码。 请教明白人 谢谢 void CDATASTOREDlg::OnSave() { UpdateData(TRUE); SYSTEMTIME Time;  ...… 查看全部问答> |
|
我用555电路做1KHZ信号源,测试正确,CD4522做可调1000分频,测试也正确,可一与4046连接,输出就不对了,调拨盘调也没反应。电路是这样的。仿真也在附件里,希望懂的人能帮我调调,非常感谢。… 查看全部问答> |
|
DSP320F2812可以下载程序,但是CCS里点运行DSP不执行程序 今天焊完板子,电源都没问题,也能够通过CSS下载程序,但是点“运行”之后,DSP不能执行程序。我用的直流源供电,如果DSP能够跑程序的话,应该会有0.2A左右的电流,但是电源上显示的还是只有0.06A。程序在开发板上跑没有问题,所以程序应该没有问题 ...… 查看全部问答> |




