文档详情

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

发布:2016-12-27约3.05千字共7页下载文档
文本预览下载声明
用RS-485构成总线型多点数据采集系统 摘 要:工业自动化中远程控制很适合用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所示。 RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。另外RS-485实现了多点互连,最多可达32台驱动器和32接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。下面以RS-485总线型网络为原型,介绍它的软硬件构成。 RS-485总线型多点互连设计 1、硬件电路设计 2所示是用RS-485构成的总线型网络系统,采用主从方式进行多机通信。主机可以是PC机、工控机或单片机,从机一般是单片机。每个从机拥有自己固定的地址,由主机控制完成网上的每一次通信。R为平衡电阻,通常取为120欧。 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所示。N+2。第二部分是N个数据的数据包。具体地说,当主机发给从机的时候,数据包包括命令字及参数;当从机回送给主机的时候,包括状态字以及必要的数据。最后一部分是采用CCITT(Consultative Committee International for Telephony and Telegraph,国际电报电话咨询委员会)的CRC(Cyclic Redundancy Cheek,循环冗余校验)码,长度是两个字节。 按照网络?议的帧格式编写的通信软件通过物理层最终完成主机与从机之间的数据交换。在总线型拓扑结构构成的分布式数据采集系统中,主机和各从机间传送的命令和数据是二进制的直接传送,并且从机还要完成采集数据和控制的任务,主机要完成集中处理的任务,所以服务软件要使主机和各从机协调一致地工作,尽量减小通信对其他工作的影响。 C51编写的RS-485通信部分服务软件。 1、主机程序 #define uchar unsigned char ... sbit tr=p1.4: void main() { //初始化 PCON=0; //SMODE=0 TMOD=0x2
显示全部
相似文档