一种RS-485总线自定义通信协议及其应用_第1页
一种RS-485总线自定义通信协议及其应用_第2页
一种RS-485总线自定义通信协议及其应用_第3页
一种RS-485总线自定义通信协议及其应用_第4页
一种RS-485总线自定义通信协议及其应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种rs-485总线自定义通信协议及其应用 摘要:rs 485总线是集散控制系统常用的组网方法,但具体的通信协议并没有一个统一的标准。本文详细 讨论-种基于rs-485总线通信协议的设计,具有可靠、编程实现简单、易扩展等特点,能够很容易地移植 到其它系统中;结合一个电力参数实时监测系统实例,介绍木协议的具体应用。关键词:rs-185通信协议集散控制系统1概述图1基于rs-485自疋乂协议的分层模型通常,一个集散控制系统由一个主控计 算机(上位机)和一系列基于仇的前端智能仪器(下位机)构成,它们之.间再通过一定的物理媒介连接 在一起,以完成必要的通信功能。对于一个特定的测控系统而言,所要测控的对

2、象和所采取的测控算法是 个冇个性的东西;而上位机和下位机z间的通信可以看作是一系列命令流利数据流的流动,所采用的通信 协议是用来保证传输过程的可靠和高效,是具有共性的,能够也应该有一个统一的设计标准。在集散控制系统中,普遍采用rs-485总线作为底层通信接口。它具冇稳定可靠、编程简单、纟ii网快速、价 格低廉的优点,但在协议设计实现方面并没有一个统一的规范,导致不同的控制系统常常采川不同的通信 协议。因此,有必要结合我们的工作实践,设计一种有通用性的高效可靠的协议,从而简化基于rs-485的 分布式测试系统通信部分的设计,既能够保证通信的稳定可靠,又能够把精力集屮到测控系统算法的设计前端机(m

3、cs-51)图2 rs-485通信网络的拓扑结构通信协议的设计通常采用分层的机构,如iso的0s1参考模型。这里也采用分层的结构來描述我们自 定义的基于rs-485总线的通信协议,如图1所示。图1屮,物理层是利用物理媒介实现物理连接的功能描述和执行连接的规程,捉供用于建立、保持和断开物设定总的循环次数匸n(接收失败丽)理连接的机械的、电气的、功能的和过程的条件;图3接收程序receive流程图数据链路层用于建立、维持和拆除链路连接,实现无差错传输的功能;应用层针对不同的应用,利用链路层提供 的服务,完成不同通信节点之间的通信。下面结合每-层讨论这种口定义协议的貝体设计,重点介绍如何实现可靠高效

4、的通信,如何处理通信中错 误,如何编程实现。2协议的设计2.1物理层协议设计rs-485通信网络是一种总线式的结构,如图2所示。上位机(以pc为例)和下位机(以基于mcs-51的科能 仪器为例)都挂在通信总线上,物理层的通信协议山rs-485标准和mcs-51的多机通信方式共同方式。2. 1. 1 eia rs-485标准rs-485是工业界使用最为广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络; 具有传输距离远(最大传输距离1200m),传输速率快(1200 m时为100kb/s),抗千扰能力强,布线简单等 优点。2.1.2 mcs-51串口的多机通信方式mcs-5

5、1具有多机通信功能。当串口以方式2 (或方式3)接收时,若sm2 (多机控制位)为,这时只接收第 9位为1的串行数据(把笫9位为1的串行字节称为地址,把第9位为9的串行字节称为数据);当sm2=0时,不 顾哀应(1b)元荼硕良威也)恼体(1255b)虑皿层数据寢)论笫9位为何值都接收。图4数据链路层帧结构这种功能使得基于mcs-51的智能仪器能够方便地通过rs-485接口芯片组成网络。2.1.3物理层的功能物理层耍完成发送及接收字节流的任务,但对传输过程的可靠性不做出保证,而由高层协议來保证。物理 层为链路层提供接口(以子程序的形式来描述),包wi send子程序(功能为发送一个字节)及rec

6、eive子 程序(功能为接收一个字节)。发送程序比较简单,接收程序的流程如图3所示(以mcs-51为例)。采川循环查询ri标志位的方式,可以 在规定的时间内(即在规定的循环次数内)实现一个字节的接收。规定时间的长短山循环次数决定。如果 在规定的时间内未收到,则视为通信失败。2.2数据链路层协议设计数据链路层的基木通信单位是帖,帧结构如图4所示。receiveframey 程序图5发送7接收帧的程序流程图*帧长度域为每一帧的第一个字节,用來说明帧体的长度。*兀余帧长度域是可选的,它是帧长度域的重复,可以用來检查在传输过程屮帧长度域是否存在传输错误。*帧体域用來封装來自上层(应用层)的数据报,长度

7、是1255b,链路层对这一部分不做处理,由应用层 处理。链路层可以采用如下方法进行差错处理。首先,帧长度域的引入可以方便程序的设计,同时也能够起到一 定的检查错误的功能,可以发现传输过程中丢失字节的错误,并且丢弄缓冲区接收错误的字节。首次,可 以釆用兀余字节的方法,对关键字节(帧长度)发送两次,只有接收到的两个帧长度字节一致时才认为接 收到的是正确的。此外,对发送的每个字节可以采用crc校验等方法进行校验。链路层向上层(应用层)提供的接口 (以子程序的形式来描述)类型域qb):兀余类型域(ib)数押i字节(1-255或254b)图6应用层数据报的结构为sendframe (功能是发送一帧)和r

8、ccciveframc (功能是接收一帧),程序流程如图5所示,其中利川了下层(物理层)提供的接口。2. 3应用层协议设计应用层是协议的最拓层,它的设计对于不同的应用可以有所不同,但是也存在很多通用性的原则。应用层 数据报的格式如图6所示。*类型域用来指定数据报的类型,一共可以表示256种类型,英中,0用来表示数据;其它256种用来表示命 令。*兀余类型域是可选的,它的作用是检查类型域在传输过程中是否存在错误。*数据域是通信中传输的采集数据、系统参数等。数据报可以分成两类:命令型数据报(类型域不为0)和数据型数据报(类型域为0)。具体的命令可以根据 具体的应用來设计,由具体程序负责解释。应用层

9、也个有一定的差错检查能力:首先,它引入了兀余类型字节;其次,数据域字节也可以采用crc校 验等方法进行校验。 町发送复位帧卢匕4仲u内是舌牧到二个 frame?上位机程序;下位机地址4-1发送i:传存储 数据的命令帧在规定存僦接收的数据接收失 肌结東厂接收成功.结束tframc?y寸间内是否收到二世复位帙?是发i结束帧?卜位机用序图7上位机收集下位机存储数据流程3协议的具体实现及应用在设计基于rs-485的分布式测控系统时.在上位机呼叫卜位机地址z后就可利用本协议的规范來设计具体 的通信流程。基于木协议的通信可以有两种机制。一种是面向握手的,即每发出-帧,总是要等待确认帧,否则将认为 是通信出

10、错。这是一种可靠的通信方式,适合传输系统命令和一些非常重耍的系统参数。另-种是无握手 的,即发送方假设接收方总是接收正确,从而无须等待确认帧就不停地发送,适介大量前端采集数据的发 送。这种机制的优点是发送过程简单、快速,缺点是不能保证传输过程的可猱性。另外,接收方倘若在规定的时间内不能接收到数据,则可以发送复位帧,同时接收方的程序冋到通信程序 的开始,并淸空缓冲区的数据;而发送方的收到复位帧后也回到通信程序的开始,并清空缓冲区中的数据。 然后,双方重新同步。命令帧:命令悚 | olh | oflh | 复立帧| 0】h | of2h |发送数揭的命令i olh | of4h | 发送緒朿| olh of8h j数据帧:帧氏(ib) i ooh(炎吃)采卑的数忆|图8帧格式木协议已经成功地运用到一个分布式电力参数监测系统屮,不仅简化通佶程序的设计,而口保证了通 信的高效和町靠。该系统基于rs-485总线的网络拓扑结构与图2类似。下位机负责现场的电力量的采样和 存储,:位机负责循环呼叫下位机,以了解现场情况是否正常,并且每帧一定时间收集下位机存储的数据, 并对数据进行分析管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论