CAN总线节点电路的设计与实现
CAN(Controller Area Network)即控制器局域网络。由于其具有较强的抗干扰能力、通讯中没有地址的概念及节点数不受限制等优点,已经被广泛应用于汽车、数控机床、仪器仪表、现场总线控制等领域。在CAN总线的节点设计中,目前应用较多的是通过单片机的控制来实现。有的单片机已经嵌入了CAN控制器的功能,比如Philips的P8XC592,Motorola的68HC05X4等,但这类单片机的应用并不普及,而且价格相对较高。对于目前应用最为普及、价格也很便宜的MCS-51系列单片机,本身并不嵌有CAN控制器的功能。下面就给出一种基于MCS-51单片机和SJA1000的CAN总线节点设计方法。
1 CAN总线简介
CAN 总线是现场总线的一种,它是德国Bosch 公司在1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯总线。它与其它总线最大的区别是两个节点之间传送信息时报文中没有地址信息,而是对不同性质的数据加以标识。在通讯时,以全网广播为基础,各接收节点根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。虽然CAN总线最初是为在汽车行业应用而开发的,但由于其具有很强的纠错能力,支持差分收发,因而适合高噪声环境,而且传输距离比较远。另外,象Philips,Motorola,Intel等半导体制造商相继开发出了支持CAN协议的集成芯片,更是推动了CAN总线的应用。目前,CAN总线在数控机床、医疗设备、工业控制等领域也取得了广泛的应用。1993年,国际标准化组织正式颁布了CAN总线的国际标准ISO11898。其具体特性如下:
(1)CAN网络上的节点信息可以分成不同的优先级,用来满足不同的实时要求。
(2)CAN为多主工作方式,网络上任一节点均可在任意时刻主动地向网络上的其他节点发送信息,而不分主从。
(3)当多个节点同时向总线发送信息时,CAN采用非破坏性总线仲裁技术,低优先级的节点会依此退出发送,而最高优先级的节点正常发送,不会受到任何影响,极大地节省了总线冲突仲裁时间。
(4)发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送。
(5)CAN的直接通讯距离最远可达到10km(速率5kbps以下),通讯速率最高可以达到1Mbps(此时通讯距离最长为40m)。
(6)CAN的每帧信息都有CRC校验及其它检错措施,保证了出错率很低。
(7)CAN节点在错误严重的情况下具有自动关闭,退出总线的功能,从而使总线上的其它接点不受影响。SOC开发平台360元 单片机开发系统498元 单片机学习板138 无线nRF-9E5模块100元 51单片机试验开发板238元 Genius NSP通用编程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9开发板800
2 SJA1000的介绍
SJA1000是Philips生产的独立CAN总线控制器,它是早期的PCA82C200的替代产品。它与PCA82C200在管脚、电气特性上完全兼容,不仅有和PCA82C200一样的基本CAN(BasicCAN)工作模式,而且新增加了增强CAN(PeliCAN)工作模式,这种模式支持具有很多新特性的CAN2.0B协议。经过简单连接和正确设置的SJA1000,能自动完成CAN总线物理层和数据链路层的所有功能,对于单片机来说,只要把它看成一个基本的I/O设备即可,使用非常简单、方便。SJA1000的主要特性如下:
(1)扩展的接受缓冲器(64字节,先进先出FIFO)。
(2)和CAN2.0B协议兼容。
(3)同时支持11位和29位识别码。
(4)位速率最高可达1Mbits/s。
(5)支持多种微处理器接口。
(6)增强的温度适应性。
3 节点硬件电路设计说明
目前广泛流行的CAN器件分两大类,一类是独立的CAN控制器,如PCA82C200、SJA1000等,另一类就是带有CAN功能的微控制器,如Philips的P8XC592,Motorola的68HC05X4等。考虑芯片的市场普及程度、开发工具及成本等因素,在这次设计中选用单片机AT89C51为核心,SJA1000为CAN控制器,同时还使用了PCA82C250,它是CAN控制器的接口芯片。从功能上来分,SJA1000主要完成CAN的通讯协议,实现报文的装配和拆分、接收信息的过滤和校验等。PCA82C250则是实现CAN控制器和通讯线路的物理连接,提高CAN总线的驱动能力和可靠性。具体电路如下图所示,虽然整个电路比较简单,但结合本人设计、现场调试的体会,给出下面几点说明。
评论