CAN总线简介CAN是Controller Area Network 的缩写,目前CAN总线被广泛的应用在汽车电子领域和工业的现场总线中,相比于RS485而言,CAN总线具有如下特点:
通信速率可达到1Mbps(通信距离小于40米);
通信距离可达10Km(通信速率小于5Kbps);
无主从之分,任意节点之间可以进行数据交互;
仲裁机制明显,多节点同时通信不会造成总线拥堵;
错误处理机制丰富,可保证CAN通信的稳定可靠;
标识符ID有标准帧(11位ID)和扩展帧(29位ID)之分;
硬件设计思路本文主要介绍片上CAN接口电路的设计,不讨论SJA1000的硬件设计。
现在mcu种类繁多,片上资源丰富,很多8位、32位单片机都带有片上CAN资源,所以用户在使用片上CAN总线时主要考虑选择合适的电平转换芯片就可以,这样可大大降低设计的难度,而且还能提高硬件的稳定性。
在用单片机设计CAN接口电路的时候,必须要考虑电平的转换情况,所以有两个问题你要有概念:
单片机的电平是TTL电平;
CAN的电平是以CANH、CANL两线之间的差分电压定义的;
TTL电平与CAN电平不兼容;
所以在设计电路的时候,必须想到要电平转换,这也是该电路的设计核心,幸好很多半导体公司都替你想好了,所以你只需要选择一款合适的CAN收发器芯片就可以了。常用的CAN收发器芯片有:42675,PCA82C250等。
CAN典型电路以片上CAN资源为核心,配合CAN收发芯片所设计的电路如下:
从图中可以看出,CAN接口电路非常简单,这种接口类的技术,一般硬件电路教简单,麻烦的是协议。
抗干扰设计
通讯隔离
为了提高CAN总线的稳定性,一般将CAN总线与单片机网络隔离开来,与RS485电路不同的是,CAN总线与单片机相关的引脚只有两个,所以使用一个双通道数字隔离芯片就可以完成了,隔离电路如下图所示。
限流保护
防止CAN总线的电流过大将芯片烧坏,可以在总线上串入自恢复保险丝,当电流过大时,保险丝熔断,电流恢复正常时保险丝自恢复。