1 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本质上仅仅是一个物理层规范,其帧格局彻底由用户自己界说。终究在RS485总线中传输还是以帧为单位,其间包含了地址信息。RS485设备会主动依据接纳到的帧,主动判别该帧是否发往本节点,然后做出相应处理。因而,在RS485设备要发送数据时,RS485-CAN总线转化器只需把RS485总线的数据进行帧打包后送入CAN的数据帧中,然后发送到CAN网络上;而RS485设备在接纳数据时,RS485-CAN总线转化器则把RS485总线的数据帧从接纳到的CAN数据帧中提取出来,发往RS485设备即可。