在20世纪80年代初,德国的BOSCH公司提出了用CAN总线(Controller Area Network,控制器局域网)来解决汽车内部的复杂硬件信号接线。CAN总线以其低成本、高可靠性、实时性、抗干扰能力强等特点得到了广泛的应用,1993年ISO正式颁布了ISO11898CAN高速应用标准和ISO11519CAN低速应用标准,这为CAN总线的标准化、规范化铺平了道路。CAN总线主要具有以下特性:
(1)CAN采用多主方式工作,网络上任意节点均可以在任意时刻主动地向网络上的其他节点发送信息而不分主从,通讯方式灵活且无需站地址等节点信息。
(2)CAN网络上的信息可分成不同的优先级,满足不同的实时性要求;高优先级的数据最多可在134μm内得到传输。
(3)CAN的直接通信距离最远可达10 km(速率5 kb/s以下);通讯速率最高可达1 Mb/s(此时通信距离为40 m)。
(4)CAN只需通过报文滤波即可以实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。
(5)CAN采用非破坏性总线裁决技术(CSMA/CD),在多个节点对总线发送信息出现冲突时,低优先级的节点会主动退出发送而保证高优先级的节点的信息传输,因此大大节省了总线冲突裁决时间,最重要的是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能)。
(6)CAN协议废除了传统的站地址编码,而对通讯数据块进行编码,使网络中的节点个数在理论上不受限制。
(7)CAN总线具有极好的检错效果,CAN的每帧信息都具有CRC校验和其他检错措施,保证了错误的输出率极低。
(8)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线以上其他节点的操作不受影响。
2 基本硬件介绍
本文所涉及的通信系统相关工业控制系统框图如图1所示。
其中,CAN总线通过PC适配卡与上位机相连,各CAN节点都可与上位机通信,同时互相之间也可以通信。考虑到系统的可靠性与安全性,建议上位机采用工控机,当然在要求可靠性与安全性相对较低的场合也可以考虑采用PC机。CAN总线控制器是以在一块可编程芯片上的逻辑电路的组合来提供与微处理器的物理线路的接口。通过对他的编程,CPU可以设置他的工作方式,控制他的工作状态,进行数据的发送和接收,把网络应用层建立在他的基础之上。CAN控制器目前主要有两大类:一类是独立控制器,如PHILIPS公司的PCA82C200,SJA1000,INTEL公司的82526,82527等;另外一类是内部带有CAN控制器的微处理器,如P8XC591等。我们采用的是PHILIPS公司的SJA1000控制器以及TJA1050总线驱动器。