RS485-CAN转换器的设计
RS485 是一种平衡传输方式的串行接口标准,采用半双工异步数据通信方式。基于在RS485 总线上只能有一个主机的特点,它往往应用在集中控制枢纽和分散控制单元之间。同时RS485 的总线效率低,系统的实时性差,通信的可靠性低,后期维护成本高,网络工程调试复杂,传输距离不理想,单总线可挂接的节点少等缺点也局限了其应用。
CAN(Controller Area Network,控制器局域网)现场总线是一种由带CAN 控制器组成的高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一。它的总线长度最远可达10 千米(速率5Kbps 以下),数据传输速率最高可达1Mbps(通讯距离40 米以内)。它在多主方式下工作,不分主从。采用非破坏总线仲裁技术,即使网络负载很重也不会出现网络瘫痪现象。此外,CAN 的每帧信息都有CRC 校验和其它检错措施,有很好的检错效果。由于CAN 总线具备以上优点,它目前已经被广泛应用到汽车电子、电力系统、航空工业和自动工作等领域中,并形成了国际标准,被公认为几种最有前途的现场总线之一。
一时间完全放弃RS485网络系统是有困难的,尤其是在已经具有现成的硬件网络中。因此考虑一种折中的方法,就是在保留现有RS485系统硬件结构的基础上,添加一个CAN总线接口,从而实现RS485网络与CAN网络的互联。
2 系统硬件设计
RS485-CAN转换器硬件设计框图如图1所示,整个硬件系统分为5个模块:微控制器模块,基本模块,CAN接口模块,RS485模块和储存模块。其中CAN接口模块的CAN控制器的选用要依据微控制器模块,如果选择的微控制器中集成了CAN控制器,则无需外接CAN控制器,否则需要外接CAN控制器。
2.1 微控制器模块,基本模块以及储存模块
这三个模块的设计属于常规设计,因此省去具体的电路图。需要说明的是微控制器可以选择内部集成了CAN 控制器的单片机,但是本设计基于系统成本,性价比以及微控制器的应用普遍性的考虑,使用的是ATMEL 的AT89C52 单片机;基本模块主要是完成微控制器的外围电路设计,主要包括电源和晶振以及复位电路等;储存模块主要是用来储存系统的配置信息,如CAN 波特率,RS485 波特率等,要求的储存空间较小,1K 的片外EEPROM 足够使用,当然也可以选择自带EEPROM 的微处理器。
图1:系统硬件设计框图
2.2 CAN 接口模块
CAN 接口模块包括总线控制器和收发器两部分。CAN 总线控制器选择的是SJA1000,它是Philips 公司推出的一款完全符合CAN 总线协议规定的CAN 控制器,可完成报文控制,数据滤波等CAN 控制器功能,SJA1000 不仅兼容PCA82C200 支持的BasicCAN(CANBUS2.0A)模式,还支持功能更强的PeliCAN(CANBUS 2.0B)模式;收发器选择的是TJA1050,它是CAN 协议控制器和物理总线的接口,是一种标准的高速CAN 收发器。
图2:CAN 模块电路图
如图2所示SJA1000的AD0-AD7与单片机的数据总线相连,P2.0引脚作为SJA1000的片选使能端,由ALE,WR,RD控制SJA1000的数据的发送和接收。11脚MODE接高电平,选用51系列的8位微控制器的Intel二分频模式。16脚是中断信号,接单片机的外部中断引脚。TX1脚悬空,RX1脚的电位必须维持在0.5VCC以上,否则将不能形成CAN总线所要求的电平逻辑。
高速光耦6N137提高了总线节点的抗干扰能力,TVS能避免数据受到不必要的外界影响并能保护元器件;另外在总线两端的设备加120欧姆的匹配电阻会使数据通信的抗干扰性以及可靠性大大加强,CANH和CANL与地之间并联两个30PF的小电容,可以滤除总线上的高频干扰并且具有一定的防电磁辐射的能力。这些额外的保护电路同样适合RS485模块的设计。
2.3 RS485 接口模块
RS485 接口模块采用MAX485 芯片作为总线收发器,它是+5V 低功耗半双工器件。MAX485 的驱动器输出是差分输出,完全满足RS485 串行协议的要求,兼容工业标准规范,符合RS485 串行协议的电气规范。电路连接如图3。
图 3:RS485 模块电路图
3 系统软件设计
本系统的软件设计除了实现单个模块的驱动程序以外,最主要的就是实现两种网络间不同协议的转换。CAN协议参考模型中定义了物理层和数据链路层,RS485协议参考模型中只定义了物理层。因此建立图4所示的协议模型。
CAN的帧格式中,有一个标识符域,CAN控制器的全局滤波器会检测这个标识域,决定是否接收本帧数据。由于RS485网络上,所有节点都会同时收到数据,因此可以为所有的RS485从设备设定同一个标识符。一个CAN节点若要发送数据给RS485设备,只需在该帧把标识符域设定为相应的标识符即可;RS485本质上仅仅是一个物理层标准,其帧格式完全由用户
RS485CAN转换 相关文章:
- RS485-CAN 转换器的设计(12-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)