重型商用车CAN总线通讯平台的设计
电源、地或负载的短路。当结温超过160℃时,两个发送器输出端极限电流将减小,从而限制了芯片的温升,实现了过热保护。同时,PCA82C250芯片采用了双线差分驱动,有助于抑制汽车在恶劣电器环境下的瞬变干扰。
CAN总线接口电路的设计在遵循SAE J1939协议的同时,要考虑对接口电路进行一定抗干扰和保护措施。连接XC164CM单片机与PCA82C250芯片的硬件电路设计如图2所示。
XC164CM单片机具有两个独立的CAN节点A、B,故选用两片PCA82C250分别与其引脚的TxD端与RxD端相连,总线连接的CAN节点1、2分别代表发动机电控单元和AMT的电控单元,数据由CAN节点1和CAN节点2发出,经过该通讯平台后传给另一个节点。SAE J1939协议中需要使用屏蔽双绞线作为CAN总线的通讯导线,选用PCA82C250的高速工作模式,只要将Rs引脚直接接低电平即可实现。
根据SAE J1939-11中要求,线性总线的主要中枢链路的每个终端都必须以一个合适的电阻来结束,用以提供CAN_H和CAN_L导线的正确终端,其取值范围应在110W~130W之间,额定值为120W。实际设计时在PCA82C250的CANH与CANL之间接入一个阻值为120W的电阻RL作为CAN总线抑制反射的终端电阻。CAN_H和CAN_L与地之间各并联一个30pF的电容,可以起到滤除总线上的高频干扰的作用,并且具有一定的防电磁辐射能力。
电路设计时考虑到进一步提高总线节点的抗干扰能力,有时在CAN控制器和CAN驱动器之间加入光耦器件,并使用隔离电源供电。但是增加光耦也会增加总线节点的循环延迟,信号在每个节点要从发送和接收路径通过这些器件两次,这将减少当位速率给定时可使用的最大的总线长度。
CAN通讯平台软件流程
软件的设计工作主要是基于底层硬件的CAN控制器驱动程序设计,该部分主要是面向CAN控制器的硬件系统的配置和CAN报文帧的收发处理,从而提供了面向通信层的服务功能,这由CAN模块的初始化函数和CAN报文帧的发送接收函数来完成。
实车验证
将已开发CAN通讯硬件平台搭载在解放牌平头柴油牵引车上,断开AMT电控单元与发动机和制动系统之间的CAN总线,接入CAN通讯平台后进行实车测试,试验场地为长直坡道。重型车先平路起步后上坡,连续换挡至最高档位并最终制动,整个实验过程中没有出现控制错误,车辆能够正常工作,利用串口传递数据观测总线实时的信息流,得到了部分通讯数据(略)。
CAN通讯平台上接受和发送的报文均符合SAE J1939协议,包含了在CAN通讯平台上接收和发送到来自发动机、AMT以及制动系统的部分报文内容,先举例说明一组来自发动机的报文如表2所示。
一条报文包含8字节的数据域,除了上述内容占据的字节之外,其余位均作保留位。从这些数据可以看到发动机电子控制器的周期性发送,并且只有在CAN通讯平台接收到更新的数据后,才会向总线发送更新的报文内容,避免给总线带来负担。
结语
本文从CAN总线和SAE J1939协议特点和原理的介绍入手,通过设计符合J1939通讯协议的硬件和软件模块,实现了在重型车上利用该CAN通讯平台完成数据实时传递与共享的功能,并且在实车上通过了发动机、变速箱和制动系统三方通讯的验证,为使用J1939协议开发CAN通讯平台提供了一定的思路。
- 基于MPC564的发动机电控单元硬件设计(06-11)
- 嵌入式OSEK配置器的设计与实现(10-13)