1 引言
工业设备通信通常涉及到很多硬件和软件产品以及用于连通标准计算机平台(个人计算机或工作站)和工业自动化应用设备的协议,而且所使用设备和协议的种类繁多。因此CONTROL ENGINEERING China版权所有,大部分自动化应用设备都希望执行简单的串行命令,并希望这些命令同个人计算机或者附加的串行端口板上的标准串行端口兼容。RS-232是目前PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。由于RS-232的发送端与接收端之间有公共信号地,所以它不能使用双端信号,否则,共模噪声会耦合到信号系统中。RS-232标准规定,其最大距离仅为15m,信号传输速率最高为20kbit/s。
CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一,一个由CAN总线构成的单一网络受到网络硬件电气特性的限制。CAN作为一种多主方式的串行通讯总线,其基本设计规范
表1 CAN总线系统任意两节鼎足之势之间的最大距离
位速率/kbps 1000 500 250 125 100
最大距离/m 40 130 270 530 620
位速率/kbps 50 20 10 5
最大距离/m 1300 3300 6700 10000
由此可见控制工程网版权所有,无论从实时性、适应性、灵活性,还是可靠性上来看,CAN总线都是一种比RS-232更为优秀的串行总线。当两台串口设备的相距较远,不能直接用RS-232把它们连接起来时CONTROL ENGINEERING China版权所有,就可以把RS-232转换为CAN,通过CAN总线来实现串口设备的网络互连。
但是控制工程网版权所有,RS-232和CAN在电平和帧格式上都是很大的不同。具体表现如下:
R S-232标准电平采用负逻辑,规定+3V~+15V之间的任意电平为逻辑“0”电平,-3V~-15V之间的任意电平为逻辑“1”电平。而CAN信号则使用差分电压传送,两条信号线称为“CAN_H”和“CAM_L”,静态时均为2.5V左右www.cechina.cn,此时的状态表示为逻辑“1”,也可以叫做“隐性”;用CAN_H比CAN_L高表示逻辑“0”,称为“显性”。显性时,通常电压值为:CAN_H=3.5V,CAN_L=1.5V;
RS-232串口的帧格式为:一位起始位,八位数据位,一位可编程的第九位(此位为发送和接收的地址/数据位),一位停止位。而CAN的数据帧格式为:帧信息+ID+数据(可分为标准帧和扩展帧两种格式)。
因此CONTROL ENGINEERING China版权所有,设计时就需要有一个微控制器来实现电平和帧格式等的转换。
2 RS-232到CAN转换的硬件设计
在设计RS-232到CAN的转换装置时,用单片机AT89C52作为微处理器;用SJA1000作为CAN微控制器,SJA1000中集成了CAN协议的物理层和数据链路层功能,可被动局面对通信数据的帧处理;AT82C250作为CAN控制器和物理总线之间的接口,用于提供总线的差动发送能力和CAN控制器的差动接收能力,通过AT82C250的引脚3可选择三种不同的工作方式(高速、斜率控制和待机)。其中引脚3接地时为高速方式;高速光隔用6N137实现,其作用是防止串入信号干扰;MAX232用来完成232电平到微控制器接口芯片TTL电平的转换。具体的硬件接口电路参见SJA1000的有关资源,这里不再多做说明。但有以下几点需要注意。
(1)CAN总线两端接有一个120Ω的电阻,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。但