CAN总线是国际上应用最广泛的现场总线之一。最早是由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信协议。CAN总线的应用范围遍及从高速网络到低成本的多线路网络,广泛应用于控制系统中的各检测和执行机构之间的数据通信。现场总线领域中,CAN总线得到了计算机芯片商的广泛支持,他们纷纷推出直接带有CAN接口的微处理器 (MCU)芯片。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高的抗电磁干扰性,而且能够检测出产生的任何错误。CAN网络具有如下特点:网络上任意一个节点均可在任意时刻主动向网络上的其它节点发送信息,而不分主从;采用非破坏性总线仲裁技术,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据;具有点对点,一点对多点及全局广播传送接收数据的功能;通讯距离最远可达10km(5kbps),通讯速率最高可达1Mbps(40m),网络节点数实际可达110个,每一帧的有效字节数最多为8个,这样传输时间短,受干扰的概率低;通讯介质采用廉价的双绞线即可,无特殊要求;每帧信息都有CRC校验及其它检错措施,数据出错率极低,可靠性极高;在传输信息出错严重时,节点可自动切断它与总线的联系,以使总线上的其它操作不受影响。
2 SJA1000独立控制器简介
目前广泛流行的 CAN总线器件有两大类:一类是独立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如P8SC582及16位微控制器87C196CA/CB等。我们选用PHILIPS公司的SJA1000CAN控制器以及82C250总线收发器,见图1。主要是考虑到SJA1000支持CAN2.0A/B规约。而82C250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。
PHILIPS公司的SJA1000是符合CAN2.0B协议的总线控制器,它是应用于汽车和一般工业环境的独立CAN 总线控制器。由于硬件和软件的兼容它将会替代PCA82C200,它与PCA82C200 相比具有更先进的特征因此特别适合于轿车内的电子模块传感器制动器的连接和通用工业应用中特别是系统优化系统诊断和系统维护时特别重要。SJA1000具有完成CAN通信协议所要求的全部特性。经过简单总线连接的SJA1000可完成CAN总线的物理层和数据链路层的所有功能。其硬件与软件设计可兼容基本 CAN模式(BasicCAN)和新增加的增强CAN模式(PeliCAN)CAN2.0B协议。SJA1000的主要特性为:
(1) 管脚及电气特性与独立CAN总线控制器PCA82C200兼容;
(2) 软件与PCA82C200兼容(缺省为基本CAN模式);
(3) 扩展接收缓冲器(64字节FIFO);
(4) 支持CAN2.0B协议;
(5) 同时支持11位和29位标识符;
(6) 位通讯速率为1Mbits/s;
(7) 增强CAN模式(PeliCAN);
(8) 采用24MHz时钟频率;
(9) 支持多种微处理器接口;
(10) 可编程CAN输出驱动配置;支持热插拔;工作温度范围为-40~+125℃。

图1 SJA1000的硬件原理图


