RS485 上下位机多机通信网络系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RS485上下位机多机通信网络系统设计
吴桂林,郑建勇
(东南大学电气工程学院,江苏南京,210096)
Design of Communication Network System Between Upper and Lower Computers Based on RS485
WU Gui-lin, ZHENG Jian-yong
(Electrical Engineering Institute of South East University, Nanjing 210096, China)
摘要:本文介绍了基于RS485总线构建的半双工、主从式上下位机多机通信网络,以PC 机为主机,51系列单片机为从机,使用VB6.0的MSComm控件实现PC机与单片机的多机通信,给出了RS485通信网络接口的硬件设计和软件设计,最后详细地分析了通信的可靠性问题,并给出相关的解决方法。

关键词:RS485;MSComm控件;多机通信;通信可靠性
中图分类号:TP393 文献标识码:B
Abstract: A Half-Duplex、Master-Slave multi-communication network system based on RS485 bus is presented in this paper. The master is PC while the slave is MCS-51. The communication between them is realized by using the MSComm control in VB6.0. The hardware interface and software interface of this system is designed. Then, a detailed analysis about the reliability of communication is presented and some methods and suggests are given.
Key words: RS485; MSComm control; multi-communication; reliability of communication
1、引言
RS485总线通讯方式以其简洁灵活、硬件接口简单、软件易实现、性价比较高、传输距离较远、误码率较低、抗干扰能力强等优点在工业控制系统中特别是中小型数据采集和控制系统得到了广泛的应用。

本文介绍了基于RS485主从式多机串口通信网络的构建,硬件上设计了上位机RS232与RS485无源转换电路和下位机RS485通信接口电路,RS232与RS485转换器无需发送/接收控制端,具有自动跟踪数据流向功能,下位机RS485通信接口电路具有抗随机干扰、瞬态干扰和故障保护功能;软件上使用VB6.0的MSComm控件和单片机C51实现了上下位机的多机通信;最后就可能影响通信可靠性的几个问题做了分析并给出解决方法,以供设计或现场调试参考。

2、总体框图
图2-1 系统总体框图
如图2-1所示,RS485采用差分信号传输方式,通信总线为两根线:A和B。

PC机串口
的负逻辑RS232电平经RS232与RS485转换模块转换为标准的RS485电平,各下位机模块经RS485通信接口电路分别挂接在系统通信总线上,然后在软件上规约上下位机的通信协议即可实现多机通信。

3、硬件设计
3.1 下位机RS485通信接口设计
本电路采用MAX485作为RS485总线的驱动芯片,如图3-1所示,将/RE和DE短接,由MCS-51的P1.0端口经反相器控制半双工通信时接收和发送的状态切换。

三极管Q1及电阻R1、R2构成反相电路;R3、R4为总线空闲时的箝位电阻,抗随机干扰用;R7为阻抗匹配电阻,以减小信号反射;R5、R6及四个快恢复稳压管D1~D4均为保护和抗干扰用,保护元件的作用将在后续的通信可靠性分析部分作详细说明。

图3-1 下位机RS485通信接口电路
3.2 上位机RS232与RS485通信转换模块设计
RS-232与RS-485转换器主要包括了电源、232电平转换、485电路三部分,如图3-2所示,电源部分设计为无源方式,从PC机串口的DTR(4脚)和RTS(7脚)窃取,也可以在VCC和GND引出端外接电源,以提供更高的驱动电流。

使用PC机串口的TXD(3脚)线和MAX232的通道2以及反相器(Q1与R1、R2构成)来控制MAX485的发送和接收状态的切换,平时MAX232的9脚输出高电平,经Q1倒相后,使MAX485的/RE和DE为低电平而处于数据接收状态,当PC机发送数据时,MAX232的9号引脚输出低电平,经Q1倒相后,使MAX485的/RE和DE为高电平而处于数据发送状态,这样就实现自动切换数据流向功能。

图3-2 上位机RS232与RS485转换电路
4、软件设计
4.1 主从式多机通信协议约定
主从式多机通信中,必须为每个从机分配不同的地址,主机通过发送地址与从机取得联络后再与该从机进行数据帧或命令帧的交互,MCS-51中可通过灵活地控制串行口控制器SCON的SM2位和发送/接收的第9位TB8/RB8来区分地址或数据信息。

本系统中以PC机为主机,使用VB6.0的MSComm控件与单片机通信,PC机要区分下发的是地址信息还是数据信息,是通过设置MSComm控件的Settings属性中的奇偶校验位来巧妙实现的。

发送地址时设置为M,即Settings =“9600,M,8,1”,则主机发送地址时置发送的第9位为1;发送数据时,设置为S,则主机在每个字节数据时置发送的第9位为0,具体通信协议总结如下:
(1)PC机MSComm控件的Settings属性设置为“9600,M,8,1”,准备发送地址,所有从机置SM2 = 1,处于地址监听状态,等待主机联络。

(2) PC机下发某个从机的地址,所有从机接收到地址后与自身的地址号相比较,地址相同的从机清除RI,置TB8 = 1,将本机地址返回,然后清除SM2,准备接收主机下发的命令;地址不同的从机不改变SM2,继续处于地址监听状态。

(3)PC机接收到从机返回的地址,修改属性Settings =“9600,S,8,1”准备下发命令,若地址校验正确则下发正常命令;若校验出错,发送复位命令,结束本次通信。

(4)从机接收到命令后进行命令分析,若为复位命令,则立即置SM2 = 1,结束本次通信并进入地址侦听状态;若为发送命令,则组织数据帧并上传给主机;若为接收命令,则等待接收主机下发的数据帧;发送或接收完毕后置SM2 = 1,继续地址侦听,等待下轮通信。

(5)主机根据刚下发的命令字继续执行相应操作:组织数据帧并下发或等待接收从机上传的数据帧,发送或接收完毕后修改MSComm的Settings属性为“9600,M,8,1”,退出本次通信,准备进行下一轮的通信。

4.2 上下位机通信程序流程图
图4-1 上位机通信流程图 图4-2 下位机通信流程图
5、通信可靠性分析及解决方法
5.1 信号传输问题
通信过程中,传输线路阻抗不连续或阻抗不匹配将会引起信号的反射,反射信号与原信号叠加将导致数据的误码率增加甚至无法正常通信。

解决的方法是增加匹配电阻,以减少反射信号、吸收噪声。

由于现场RS485网络的通信载体一般采用双绞线,它的特性阻抗为120Ω左右,如图2-1所示,可在位于总线两端的差分端口A与B之间跨接120Ω匹配电阻。

5.2 总线冲突问题
RS485收发器由/RE和DE两个端子控制发送和接收的切换,/RE和DE一般由MCU的某个IO端口控制。

系统上电时,MCU的IO端口复位为1,这时所有从机都处于发送状态,都想获得总线的使用权,导致总线冲突。

解决的方法是/RE和DE端采用MCU的IO端口经反相器控制,如图3-1所示,三极管Q1及电阻R1、R2构成最简单的反相电路,经反相后系统上电时所有从机均处于接收状态,不会出现总线仲裁。

另外,在软件上必须给每个从机分配不同的时间片,保证每个从机分时与主机通信,避免冲突。

5.3 瞬态干扰问题
在实际应用环境中,一般在切换大功率感性负载如电机、变压器、继电器或闪电过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏通信接口电路。

解决的方法如图3-1所示,在总线输出端接入D1~D4快恢复稳压管TVS,将瞬态高电压箝位在一定的电压范围之内,以保护通信接口。

另外也可使用气体放电管等瞬态抑制元件,将危害性的瞬态能量旁路到大地,消除瞬态浪涌干扰。

5.4 共模干扰问题
现场中主机和各从机分别安装在不同的地点,由不同的电源供电,因此主机和各从机模块分别有各自的参考地,并且可能存在地电位差,引入共模电压。

RS485收发器只有-7~12V 的共模电压范围,超出这个范围,网络无法正常工作。

解决的方法可如图3-1所示,四个TVS也具有抗共模干扰作用,当系统共模电压超过范围时,TVS将共模电压箝位,保护接口电路。

更有效的方法是使用带隔离的DC-DC变换器将系统电源和RS485收发器的电源隔离,使用光耦将信号隔离,然后将各个模块隔离侧的信号地相连,可彻底消除共模电压的影响。

5.5 节点故障问题
雷击、线路浪涌等原因可能会导致RS485收发器损坏,通信网络中只要有一个从机节点故障,就可能使整个系统瘫痪,严重影响通信的可靠性。

解决的方法之一是选择抗雷击或带故障保护的芯片如MAX487E、SN75276等;其二是加入二级保护电路,例如使用光耦将各个节点的接入端与系统总线隔离;另一个简单有效的方法如图3-1所示,可在各从机模块的通信出口端和系统总线之间串入10~20欧姆的电阻,这样即使某一节点故障击穿也能保证一定的节点阻抗,不至于将总线拉死。

6、结束语
本系统的硬件和软件部分均已调试通过,实际应用中运行良好,通信的可靠性较高。

根据实际的应用场合,选择合适的RS485驱动芯片,稍做修改即可继承运用,成本较低,因此本系统在一般的工业控制系统中具有较好的运用价值;另外本文就RS485通信可靠性的几个问题做了分析,并提出解决方法,具有较高的参考价值。

本文作者创新点:自制简单的RS232与RS485转换器,能自动跟踪数据流向,可供参考;比较完整地设计了RS485网络,根据实际经验阐述了通信可靠性问题的解决方法。

参考文献:
[1] 高春艳,刘彬彬.Visual Basic控件参考大全.北京:人民邮电出版社,2006.12
[2] 陈斌.基于RS-485的单片机多机通信技术.电子产品世界,2005年第13期
[3] 徐然,项小东.PC机与多单片机串行通信系统.科学技术与工程第5卷第12期,2005.6
[4] 王金城,王旭,席剑辉.一种基于RS-485的远程通讯系统软件实现.微计算机信息,2001.17(9):38-40
作者简介:吴桂林(1982-),男,汉族,江西上饶人,东南大学硕士研究生,主要从事电力电子与电力传动的研究。

郑建勇(1966-),男,汉族,江苏南京人,教授,博士生导师,主要从事电力电子与电力传动的研究。

Biography: Wu Gui-lin(1982-), male, the Han nationality, Shangrao,Jiangxi province, master graduate student in South East University, major in power electronic and drive. ZHENG Jian-yong(1966-), male, the Han nationality, Nanjing,Jiangsu province, professor, doctor's mentor, research on power electronic and drive.
通信地址:(210096 江苏省南京市四牌楼2号东南大学文昌8舍606室)吴桂林。

相关文档
最新文档