微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用RS-485构成总线型多点数据采集系统

用RS-485构成总线型多点数据采集系统

时间:06-04 来源:互联网 点击:
摘 要:工业自动化中远程控制很适合用RS-485组网。文章以总线型多点数据采集系统为例,介绍了用RS-485构成主从机方式通信网络的一般组网方法。

关键词:RS-485;网络协议;总线拓扑;主从方式;数据采集系统

一、概述

在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。目前,有多种接口标准可用于串行通信,包括RS-232、RS-422、RS-423和RS-485[2]。RS232是最早的串行接口标准,在短距离、较低波特率串行通信中得到了广泛应用。其后发展起来的RS-422、RS-485是平衡传送的电气标准,比起RS-232非平衡的传送方式在电气指标上有了大幅度的提高。

RS-485串行接口的电气标准实际上是RS-422的变型,它属于七层OSI(Open System Interconnection,开放系统互连)模型物理层的协议标准。由于性能优异、结构简单、组网容易,RS-485总线标准得到了越来越广泛的应用。其互连方式如图1所示。

图1 RS-485互连示意图


RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。另外RS-485实现了多点互连,最多可达32台驱动器和32接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。下面以RS-485总线型网络为原型,介绍它的软硬件构成。

二、RS-485总线型多点互连设计

1、硬件电路设计

图2 RS-485总线型网络原理图


分布式多点数据采集系统或集中控制系统的网络拓扑一般采用总线方式,传送数据采用主从站的方法。图2所示是用RS-485构成的总线型网络系统,采用主从方式进行多机通信。主机可以是PC机、工控机或单片机,从机一般是单片机。每个从机拥有自己固定的地址,由主机控制完成网上的每一次通信。R为平衡电阻,通常取为120欧。

开始时所有从机复位,即处于监听状态,等待主机的呼叫。当主机向网上发出某一从机的地址时,所有从机接收到该地址并与自己的地址相比较。如果相符,说明主机在呼叫自己,应发回应答信号,表示准备好开始接收后面的命令和数据;否则不予理睬,继续监听呼叫地址。主机收到从机的应答后,则开始一次通信。通信完毕,从机继续处于监听状态,等待呼叫。

图3 单片机的RS-485接口

采用单片机和RS-485接口的原理图如图3所示。由于使用半双工方式,RS-485接口芯片采用的是SN75LBC184集成电路。这是具有瞬变高压抑制功能的芯片,能抗雷击、静电放电,避免因交流电故障引起的非正常高压脉冲冲击。A、B为RS-485总线接口,DI是发送端,RO为接收端,分别与单片机串行口的TXD、RXD连接,RE、DE为收发使能端,由单片机的 P1.4口作为收发控制。数据采集或控制信号的输出通过P0口进行,P2的口线可用来控制A/D或D/A转换。

2、网络协议

SN75LBC184仅能保证在物理层上二进制信号流的畅通。为了能使具体的命令、数据在网络上正确地传输,在数据链路层必须提供一定的网络协议,保证在物理层的比特流出现错误时进行检测和校正,同时实现生成数据帧和命令帧的功能。

主机发出的信息分为地址和数据,它们必须区分开。单片机[1]串行口模式3是波特率可变的9位通信方式,可编程位(TB8)由主机单片机自动打包区别地址和数据,TB8为1表示地址字节,否则是数据字节。从机接收时则根据这一位来区别地址和数据。

通信开始前,所有的从机处于复位状态,监听主机的地址呼叫。FFH的呼叫地址将使所有的从机复位。这时的从机只对TB8为1的地址字节敏感,对数据字节不予理睬。如果有地址呼叫,则中断所有的从机。每个从机都把接收到的呼叫地址和本机地址相比较,如果相符,则该从机开始接收数据帧。其他从机则保持不变,后面的数据字节由于TB8为0,它们不接收,继续监听地址呼叫。通信的从机完成通信后自动转入复位状态。

通信的数据长度必定大于一个字节,必须将他们合成一帧。网络数据协议帧的格式如表1所示。

表1 网络数据协议


第一部分只有一个字节,代表该帧的长度为N+2。第二部分是N个数据的数据包。具体地说,当主机发给从机的时候,数据包包括命令字及参数;当从机回送给主机的时候,包括状态字以及必要的数据。最后一部分是采用CCITT(Consultative Committee International for Telephony and Telegraph,国际电报电话咨询委员会)的CRC(Cyclic Redundancy Cheek,循环冗余校验)码,长度是两个字节。

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

网站地图

Top