您的位置 首页 方案

用RS-485构成总线型多点数据收集体系

工业自动化中远程控制很适合用RS-485组网。文章以总线型多点数据采集系统为例,介绍了用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所示。

图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,循环冗余校验)码,长度是两个字节。

三、服务软件

依照网络?议的帧格局编写的通讯软件经过物理层终究完结主机与从机之间的数据交流。在总线型拓扑结构构成的分布式数据收集体系中,主机和各从机间传送的指令和数据是二进制的直接传送,而且从机还要完结收集数据和操控的使命,主机要完结会集处理的使命,所以服务软件要使主机和各从机和谐一致地作业,尽量减小通讯对其他作业的影响。

下面以单片机构成的总线型多点数据收集体系为例,给出用C51编写的RS-485通讯部分服务软件。

1、主机程序

#define uchar unsigned char

sbit tr=p1.4:

void main()

{

//初始化

PCON=0; //SMODE=0

TMOD=0x20; //守时器1设为形式2,作为串行口的波特率发生器

EA=0; //制止守时器中止

TH1=0xf3;

TL1=0xf3; //守时起始值,6MHz晶振时波特率为1200bps

SCON=0xd8; //串行口形式3,TB8=1发送地址呼叫

TR1=1; //发动守时器1

while(TI=0); //等候发送完毕

TI=0;

}

//发送子程序

uchar SendMsg(uchar msg,uchar len,uchar IDnum)

//msg:发送缓冲区指针;len:要发送的数据长度;IDnum:从机号

{

TB8=1;

tr=1;

SBUF=0xff; //复位从机

while(TI=0);

TI=0;

SBUF=IDnum; //呼叫从机

while(TI=0);

TI=0;

tr=0;

while(RI=0); //等候从机回应 RI=0; //铲除串行口中止标志

//下面是数据帧

TB8=0;

tr=1;

SBUF=len+2;

while(TI=0)

TI=0

for(i=0;i

{

SBUF=*(msg+i);

while(TI=0);

TI=0;

}

//下面核算 @#@冗余校验码并发送

//等候从机回应,看是否接纳正确

return 0; //正确回来

}

2、从机程序

#define ADDRESS 0x01

sbit tr=P1.4;

//中止接纳程序

void sevice-serial(void)interrupt 4 using 1

{

uchar rs;

RI=0;

ES=0; //关串行口中止

tr=0;

rs=SBUF;

if(rs=0xff) //是复位指令

{

SM2=1;

ES=1;

return;

}

if(rs!=ADDRESS) //不是呼叫本机

{

ES=1;

return;

}

SM2=0;

tr=1;

SBUF=ADDRESS; //用本机地址作为应对

while(TI=0);

TI=0;

tr=0;

//下面开端接纳

}

四、完毕语

本文侧重评论了用RS-485构成网络体系的根本组网方法,当然在详细的运用中还会有一些改变。因为RS-485具有功用优异、组网简略的长处,它在会集操控体系、分布式操控体系中的运用适当广泛,特别是在要求远间隔传输的运用中。因为其硬件电路已比较老练,规划中的问题首要会集在网络协议和服务软件的规划上。 网络协议是确保通讯疏通的要害,在必定程度上也影响着网络通讯的可靠性,即它有必要可以反抗实践运作环境的搅扰。别的通讯仅仅整个体系中的一个部分,体系还有必要完结比如数据收集和操控的功用。这就要求通讯占用尽量少的时刻,以求到达整个体系的高功率。在通讯数据量必定的情况下,选用较高的波特率当然比较好,但高的波特率必定要下降传输间隔,在实践运用中有必要细心衡量。更好的方法便是选用数据紧缩算法,在传输前对数据进行紧缩,可使通讯数据量大大削减,网络功率成倍进步。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/199129.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部