文档详情

基于485通信多点数据采集组网

ss****gk
实名认证
店铺
DOC
169KB
约10页
文档ID:233985553
基于485通信多点数据采集组网_第1页
1/10

基于485通信多点数据采集组网摘 要:工业自动化中远程控制很适合用RS-485组网文章 以总线型多点数据采集系统为例,介绍了用RS-485构 成主从机方式通信网络的一般组网方法关键词:RS-485;网络协议;总线拓扑;主从方式;数据采 集系统一、概述在数据通信、计算机网络以及工业上的分布式控制系统中,经常 需要采用串行通信来达到远程信息交换的目的冃前,有多种接口标 准可用于串行通信,包括RS-232、RS-422、RS-423和RS-485⑵ 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电平信号。

两条传输线通常 使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收 灵敏度也相当高同时,最大传输速率和最大传输距离也大大提高 如果以1 OKbps速率传输数据时传输距离可达1 2m ,而用1 00Kbps 时传输距离可达1-2kmo如果降低波特率,传输距离还可进一步提 高另外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仅能保证在物理层上二进制信号流的畅通为了能 使具体的命令、数据在网络上正确地传输,在数据链路层必须提供一 定的网络协议,保证在物理层的比特流出现错误时进行检测和校止, 同时实现生成数据帧和命令帧的功能主机发出的信息分为地址和数据,它们必须区分开单片机⑴串 行口模式3是波特率可变的9位通信方式,可编程位(TB8 )由主 机单片机自动打包区别地址和数据,TB8为1表示地址字节,否则 是数据字节从机接收时则根据这一位来区别地址和数据。

通信开始前,所有的从机处于复位状态,监听主机的地址呼叫FFH的呼叫地址将使所有的从机复位这时的从机只对TB8为1的 地址字节敏感,对数据字节不予理睬如果有地址呼叫,则中断所有 的从机每个从机都把接收到的呼叫地址和本机地址相比较,如果相 符,则该从机开始接收数据帧其他从机则保持不变,后面的数据字 节由于TB8为0,它们不接收,继续监听地址呼叫通信的从机完 成通信后自动转入复位状态通信的数据长度必定大于一个字节,必须将他们合成一帧网络 数据协议帧的格式如表1所示表1网络数据协议长度数据包(数据1……数据N)CRC校验码1字节N字节2字节第一部分只有一个字节,代表该帧的长度为N +2第二部分是N 个数据的数据包具体地说,当主机发给从机的时候,数据包包括命 令字及参数;当从机回送给主机的时候,包括状态字以及必要的数据 最后一部分是采用 CCITT (Consultative CommitteeInternational for Telephony and Telegraph, 国际电扌艮咨 询委员会)的CRC (Cyclic Redundancy Cheek,循环冗余校验) 码,长度是两个字节。

三、服务软件按照网络?议的帧格式编写的通信软件通过物理层最终完成主机 与从机之间的数据交换在总线型拓扑结构构成的分布式数据采集系 统中,主机和各从机间传送的命令和数据是二进制的直接传送,并且 从机还要完成采集数据和控制的任务,主机要完成集中处理的任务, 所以服务软件要使主机和各从机协调一致地工作,尽量减小通信对其 他工作的影响下面以单片机构成的总线型多点数据采集系统为例,给出用C51 编写的RS-485通信部分服务软件1、主机程序# define uchar unsigned charsbit tr=p1.4:void main ()//初始化PCON=0; //SMODE=0TMOD=0x20; //定时器1设为模式2,作为串行口的波特率 发生器EA=O; //禁止定时器中断TH1 = 0xf3;TL1 = 0xf3; //定时起始值,6MHz晶振时波特率为1200bpsSCON=Oxd8; //串行口模式3, TB8= 1发送地址呼叫TR1 = 1; //启动定时器1while (TI = 0) ; //等待发送结朿TI = 0;}//发送子程序uchar SendMsg (uchar msg,uchar len5uchar I Dnum )//msg:发送缓冲区指针;lem要发送的数据长度;IDrwm:从 机号{• • •TB8= 1;tr=1;SBUF=0xff; //复位从机while (Tl = 0);TI = 0;SBUF=IDnum; //呼叫从机while (Tl = 0);TI = 0;tr=0;while (RI = 0) ; //等待从机回应RI = 0; //清除串行口中断标志//下面是数据帧TB8=0;tr=1;SBUF= len+ 2;while (Tl = 0)TI = 0for (i= 0;i< len;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=O;rs=SBUF;if(rs= Oxff) //是复位命令{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具有性能优异、组 网简单的优点,它在集中控制系统、分布式控制系统中的应用相当广 泛,特别是在要求远距离传输的应用中由于其硬件电路已比较成熟, 设计中的问题主要集中在网络协议和服务软件的设计上网络协议是保证通信畅通的关键,在…定程度上也影响着网络通 信的可靠性,即它必须能够抵抗实际运作环境的干扰另外通信只是 整个系统中的一个部分,系统还必须完成诸如数据采集和控制的功 能这就要求通信占用尽量少的时间,以求达到整个系统的高效率 在通信数据量一定的情况下,采用较高的波特率当然比较好,但高的 波特率必定要降低传输距离,在实际应用中必须仔细衡量更好的办 法就是釆用数据压缩算法,在传输前对数据进行压缩,可使通信数据 量大大减少,网络效率成倍提高。

下载提示
相似文档
正为您匹配相似的精品文档