基于SJA1000的CAN通信系统的设计-PLC技术网(www.plcjs.com)-可编程控制器技术门户


基于SJA1000的CAN通信系统的设计

(点击题目可以在互联网中搜索该题目的相关内容)
日期:2006-4-28 10:20:52     来源:本文摘自《PLC&FA》   作者: 点击:
点击【】,可以选择字体的大小,以便你阅读.

1  引言
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的硬件原理图


3  硬件设计原理框图
硬件设计原理框图参见图2。其中,从控制器选择MSP430F149。MSP430是TI公司最新出产的一种具有超低功耗的功能强大的16位单片机,MSP430F149是该系列中的一种型号。

图2     硬件设计原理框图


3.1  MSP430单片机的优点
(1) 超低功耗,MSP430F149运行在1MHz时钟条件下时,工作电流视工作模式不同为0.1~400μA,工作电压为1.8~3.6V。
(2) 具有强大的处理能力,采用RISC指令集,只需简洁的27条指令,高度正交指令结构,处理内核功能强大并且非常灵活。
(3) 超低功耗的数控振荡器技术,可以实现频率调节和无晶体运行。外接时钟频率范围为32768Hz~8MHz,并且可以实现分频。从低功耗模式到运行模式的唤醒时间仅为6μs.4程序代码空间为60KB+256字节的FLASH,2k字节的RAM。采用串行在线编程方式,为用户编译程序和控制参数提供灵活的空间。5MSP430F149具有强大的中断功能,48个I/O引脚,它的I/O与传统的I/O不同,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使得功能口和通用I/O口复用,在对同一个I/O口进行操作前要选择其要实现的功能,这样大大的增强了端口的功能和灵活性,我们就是利用I/O口来实现对CAN总线控制器的控制的。由于MSP430F149具有以上的特点,十分适合开发的要求,所以选用其作为系统的主芯片。收发器选择PHILIPS公司的PCA82C250。

本新闻共2页,当前在第11 2  

上一篇: 用C语言实现PLC和上位机的串行通讯
下一: 基于CAN总线的蓄电池组检测传感器设计与实现