CAN总线的基本概念和设计要素
扫描二维码
随时随地手机看文章
CAN总线(Controller Area Network)设计涉及多个关键方面,包括硬件设计、软件实现、通信协议以及实际应用中的挑战和解决方案。
CAN总线的基本概念和设计要素
CAN总线是一种多主机的串行通信协议,由德国BOSCH公司开发,主要用于现代汽车中的电子控制单元(ECU)之间的数据交换。CAN总线具有以下主要特点:
多主站操作:任何节点都可以在任何时刻发送消息,不分主次。
非破坏性仲裁:当多个节点同时发送消息时,优先级高的节点可以继续传输,低优先级的节点会退出发送。
灵活的通信介质:可以使用双绞线、同轴电缆或光导纤维。
高通信速率:最高可达1Mbps,但实际应用中通常在500kbps左右。
强抗干扰能力:采用差分信号传输,具有很高的电磁兼容性。
错误处理:支持CRC校验,能够检测和纠正错误1。
CAN总线的硬件设计
CAN硬件电路主要包括物理层和数据链路层。物理层负责信号的传输与接收,是确保CAN总线性能的关键。物理层特性包括电平标准和终端电阻的作用。CAN总线使用差分信号进行数据传输,电平标准有高速CAN和低速容错CAN。高速CAN适用于高实时性和高速率的应用,如汽车发动机控制系统;低速容错CAN则适用于低速率但需要高可靠性的应用,如车身控制系统2。
CAN总线的软件实现和调试
基于FPGA的CAN总线控制器设计包括协议解析、通信控制器程序的基本框架和具体实现。程序通过仿真与测试进行验证。CAN总线通过报文滤波实现点对点、一点对多点及全局广播等几种方式传送数据,无需专门的调度。数据采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果13。
实际应用中的挑战和解决方案
在实际应用中,CAN总线设计面临的主要挑战包括电磁干扰、总线冲突和错误处理。为了解决这些问题,可以采用以下策略:
电磁屏蔽:使用屏蔽双绞线或光纤来减少电磁干扰。
终端电阻匹配:在总线两端添加终端电阻,减少反射和信号衰减。
错误检测与纠正:采用CRC校验和错误处理机制,确保数据传输的可靠性12。
一、定位干扰原因
当总线有干扰时,有经验的工程师能够迅速定位,但是对于新手来说却很麻烦。造成总线干扰的原因有很多,比如通过电磁辐射耦合到通讯电缆中、屏蔽线接地没处理好、隔离了通讯没有隔离电源等。通过下图我们可以推导出,现场的干扰不是通过电磁辐射进来,整车的网络也没有干扰,基本可以断定干扰就是电机驱动器的CAN通讯没隔离好。
图1 定位干扰原因
二、消除延时误差的方法
为了减小延时,增加通讯距离和降低通讯错误率,我们可以采取以下措施:
采用磁隔离的CTM1051方案设计接口收发电路;
用较粗的导线代替细导线,标准为1.5线缆(延迟为5ns/m);
使用镀金或镀银的线缆;
增加网桥中继设备CANBridge延长通讯距离;
采用光纤传输,如致远电子的CANHUB-AF1S1,同等波特率可延长1倍通讯距离。
三、信号地(CAN-GND)
1、信号地概念
信号地也称为隔离地,为使电子设备工作时有一个统一的参考电位,避免有害电磁场的干扰,使设备稳定可靠的工作,设备中的信号电路统一参考地,即CAN-GND。
2、信号地处理
许多实际应用中,设计者常直接将每个节点的参考地接于本地的大地,作为信号的返回地,看似正常可靠的做法,却存在极大的隐患!
信号地(CAN-GND)正确的接法主要分为两种:
单屏蔽层线缆:如果线缆是单屏蔽层,信号地理想接法是使用专门的信号线将所有节点信号地连接,起到参考地的作用。但如果缺少信号地线,亦可将所有节点信号地都连接到屏蔽层,但这样屏蔽效果亦差强人意。
图2 带有屏蔽层双绞线
图3 含信号地线双绞线连接方式
图4 信号地与屏蔽层连接方式
双屏蔽层线缆:当使用双层屏蔽电缆时,需要将所有节点信号地连接到内屏蔽层,若使用非屏蔽线进行数据传输时,请保持信号地管脚悬空处理。
图5 双屏蔽层信号地处理方式
所有节点信号地接到屏蔽层或者双屏蔽层的内层后,屏蔽层处理方式注意为单点接地,不可多点接地,否则会在信号地线上形成地环流。
另外,单点接地时为了加大供电地和信号地之间的隔离电阻,阻止共地阻抗电路耦合产生的电磁干扰,注意采用隔离浮地设计,通过阻容方式将屏蔽层与外壳隔离。
图6 未进行单点接地处理的报文受到电磁干扰