微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 现场总线CANbus与RS-485之间透明转换的实现

现场总线CANbus与RS-485之间透明转换的实现

时间:01-26 来源:电子技术应用 点击:

现场总线技术以其独有的技术优势和特点,在现代分布式测量与控制技术领域中的应用已愈来愈广泛。各种现场总线的主控制器一般都内嵌有相当完善的、开放式的互联通信协议,它具有通信速度快、误码率低、开发设计简单及网络使用维护方便等诸多特点,是实现网络化现场测量与控制技术的一个发展方向。但目前,在许多现场已投入使用的测量与控制系统中,各仪器设备或装置之间通信所使用的仍是传统的RS-485或RS-422总线。在不断投入新型现场总线系统的同时,要在短期内改造或淘汰那些旧系统是不现实的。况且,在许多应用场合,新老系统中主机的控制算法及功能是相似或兼容的,所以在一定时欷新老总线系统同时并存是客观的现实需要。对此,若能将新老仪器设备或装置通过一种透明转换装置而有机地柔合在一起,去掉老系统中重复的部分,是一种很好的选择。

1 CANbus简述

CAN现场总线技术是德国BOSCH公司于80年代初为解决现代汽车业众多的控制与测试仪器之间的数据交换而开发,目前已逐步应用到其它领域的一种符合国际标准的串行数据通信协议。CAN的主要技术特点有:

(1)对等网络结构,网络上任意节点可在任意时刻向网络其它节点发送信息,不分主从,通信方式灵活。

(2)采用非破坏性总线仲裁技术,网络中的节点可以分成不同的优先级,当多个节点同时向网络上传送信息时,优先级低的节点主动暂停数据发送,而优先级高的节眯可不受影响地继续传送数据。之后,按优先级高低,其它节点在总线空闲时依次进行被暂停的数据传送,有效地避免了总线冲突。

(3)每一帧的有效字节数最多为8个,帧传送时间短,受干扰概率小,重发时间短。每一帧信息都有CRC校验及其它检错措施,通信误码率低。

(4)网络节点的错误严重的情况下,具有自动关闭总线接口的功能,避免影响总线上的其它节点的正常操作。

(5)通信距离最远达10km(5kB/s),通信速率最高可达到1MB/s(40M),节点数目实际可达110个。通信介质采用双绞线,也可用光纤。

2 实现方法

CAN 现场总线与RS-485总线的主要区别是:CAN总线是以帧为单位进行数据通信的,且每帧均携带对应的ID标示符,而RS-485是以字节为单位进行数据通信,不带任何其它附属信息。如果不考虑帧中的ID标示符,那么这二种总线传输的信息就可以认为完全相同。考虑到绝大多数应用CAN总线的场合都不可能分配完系统中的ID标示符资源,因而在系统中可以另分配一至多个ID标示符给RS-485总线数据,即给总线透明转换电路所用,收、发数据的ID标识符可以不相同。CAN总线系统中的公用主控设备一般被设置成直通状态,它可通过发送、接收具有不同ID标示符的不同数据帧,方便地对网络中的各种设备进行管理和控制。对那些纯粹靠帧数据本身而忽略ID标志符的系统来说,这种不同总线之间的转换更加简单。

实现二种总线之间的透明转换的基本过程是这样的:电路加电进入正常状态后,首先以电路中保存的参数(如未初始化则以缺省参数)对二个总线通信端口分别进行初始化,并将所有通讯端口设置成中断接收工作方式,在启动内部看门狗(SWatchdog)后,电路等待外来数据的中断。一旦某一总线端口有有效数据进入,电路首先将这些数据读入内部数据缓冲区,置相关内部标志,关闭其它端口的中断,以使接收端数据能及时被接收到。在下一数据到来之前,电路将及时通过另一端口将缓冲区中的数据转发出却,直到缓冲区空。在这种转换过程中,如果数据是自CANBUS一端流入,则电路只将帧内数据读入到缓冲区。相反,则电路在转发数据之前自动按设置将设定ID标示符加到发送信息中,一旦转换过程结束,所有端口又被允许中断接收。电路中缓冲区一般可配置8k~32K字节的静态 RAM。

在未进入转换工作时,电路允许参数设置端口的设置中断进入。参数设置包括:设置RS-485的通信波特率(当然端口数据格式也可设);设置CANBUS的通信波特率、接收码(accept-code)、屏蔽字(mask-code)、发送标示符。参数设置好后将立即生效,通过该端口还可查询当前电路中的各运行参数值。电路工作的主工流程图如图1所示。

3 实际电路

图2 是一种可选的线路原理示意图。电路中使用的单片机是ATMEL传颂的AT89S8252,它是一种内带8K Flash RAM、2K EEPROM、同

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top