1 概述
在工业操控体系中,集散操控是现在最常用的丈量操控办法。一般,一个集散操控体系由一个主控计算机(上位机)和一系列依据MCU的前端智能仪器(下位机)构成,它们之间再经过必定的物理前言衔接在一起,以完结必要的通讯功用。关于一个特定的测控体系而言,所要测控的目标和所采纳的测控算法是个有特性的东西;而上位机和下位机之间的通讯可以看作是一系列指令流和数据流的活动,所选用的通讯协议是用来确保传输进程的牢靠和高效,是具有共性的,可以也应该有一个共同的规划标准。
在集散操控体系中,遍及选用RS-485总线作为底层通讯接口。它具有安稳牢靠、编程简略、组网快速、价格低廉的长处,但在协议规划完结方面并没有一个共同的标准,导致不同的操控体系常常选用不同的通讯协议。因而,有必要结合咱们的作业实践,规划一种有通用性的高效牢靠的协议,然后简化依据RS-485的分布式测验体系通讯部分的规划,既可以确保通讯的安稳牢靠,又可以把精力会集到测控体系算法的规划上。
通讯协议的规划一般选用分层的组织,如ISO的OSI参阅模型。这儿也选用分层的结构来描绘咱们自定义的依据RS-485总线的通讯协议,如图1所示。
图1中,物理层是运用物理前言完结物理衔接的功用描绘和履行衔接的规程,供给用于树立、坚持和断开物理衔接的机械的、电气的、功用的和进程的条件;数据链路层用于树立、保持和撤除链路衔接,完结无过失传输的功用;运用层针对不同的运用,运用链路层供给的服务,完结不同通讯节点之间的通讯。
下面结合每一层评论这种自定义协议的详细规划,要点介绍怎么完结牢靠高效的通讯,怎么处理通讯中过错,怎么编程完结。
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-51具有多机通讯功用。当串口以办法2(或办法3)接纳时,若SM2(多机操控位)为1,这时只接纳第9位为1的串行数据(把第9位为1的串行字节称为地址,把第9位为9的串行字节称为数据);当SM2=0时,不管第9位为何值都接纳。
这种功用使得依据MCS-51的智能仪器可以便利地经过RS-485接口芯片组成网络。
2.1.3 物理层的功用
物理层要完结发送及接纳字节省的使命,但对传输进程的牢靠性不做出确保,而由高层协议来确保。物理层为链路层供给接口(以子程序的办法来描绘),包含Send子程序(功用为发送一个字节)及Receive子程序(功用为接纳一个字节)。
发送程序比较简略,接纳程序的流程如图3所示(以MCS-51为例)。选用循环查询RI标志位的办法,可以在规则的时刻内(即在规则的循环次数内)完结一个字节的接纳。规则时刻的长短由循环次数决议。如果在规则的时刻内未收到,则视为通讯失利。
2.2 数据链路层协议规划
数据链路层的根本通讯单位是帖,帧结构如图4所示。
*帧长度域为每一帧的第一个字节,用来阐明帧体的长度。
*冗余帧长度域是可选的,它是帧长度域的重复,可以用来查看在传输进程中帧长度域是否存在传输过错。
*帧体域用来封装来自上层(运用层)的数据报,长度是1~255B,链路层对这一部分不做处理,由运用层处理。
链路层可以选用如下办法进行过失处理。首要,帧长度域的引进可以便利程序的规划,一起也可以起到必定的查看过错的功用,可以发现传输进程中丢掉字节的过错,而且丢掉缓冲区接纳过错的字节。初次,可以选用冗余字节的办法,对要害字节(帧长度)发送两次,只要接纳到的两个帧长度字节共一起才以为接纳到的是正确的。此外,对发送的每个字节可以选用CRC校验等办法进行校验。
链路层向上层(运用层)供给的接口(以子程序的办法来描绘)为SendFrame(功用是发送一帧)和ReceiveFrame(功用是接纳一帧),程序流程如图5所示,其间运用了基层(物理层)供给的接口。
2.3 运用层协议规划
运用层是协议的最高层,它的规划关于不同的运用可以有所不同,可是也存在许多通用性的准则。运用层数据报的格局如图6所示。
*类型域用来指定数据报的类型,总共可以表明256种类型,其间,0用来表明数据;其它256种用来表明指令。
*冗余类型域是可选的,它的作用是查看类型域在传输进程中是否存在过错。
*数据域是通讯中传输的搜集数据、体系参数等。
数据报可以分红两类:指令型数据报(类型域不为0)和数据型数据报(类型域为0)。详细的指令可以依据详细的运用来规划,由详细程序担任解说。
运用层也个有必定的过失查看才能:首要,它引进了冗余类型字节;其次,数据域字节也可以选用CRC校验等办法进行校验。
3 协议的详细完结及运用
在规划依据RS-485的分布式测控体系时,在上位机呼叫下位机地址之后就可运用本协议的标准来规划详细的通讯流程。
依据本协议的通讯可以有两种机制。一种是面向握手的,即每宣布一帧,总是要等候承认帧,否则将以为是通讯犯错。这是一种牢靠的通讯办法,合适传输体系指令和一些非常重要的体系参数。另一种是无握手的,即发送方假定接纳方总是接纳正确,然后无须等候承认帧就不停地发送,合适很多前端搜集数据的发送。这种机制的长处是发送进程简略、快速,缺陷是不能确保传输进程的牢靠性。
别的,接纳方倘若在规则的时刻内不能接纳到数据,则可以发送复位帧,一起接纳方的程序回到通讯程序的开端,并清空缓冲区的数据;而发送方的收到复位帧后也回到通讯程序的开端,并清空缓冲区中的数据。然后,两边从头同步。
本协议现已成功地运用到一个分布式电力参数监测体系中,不只简化通讯程序的规划,而且确保了通讯的高效和牢靠。该体系依据RS-485总线的网络拓扑结构与图2相似。下位机担任现场的电力气的采样和存储,上位机担任循环呼叫下位机,以了解现场状况是否正常,而且每帧必定时刻搜集下位机存储的数据,并对数据进行剖析办理。上位机搜集下位机数据的程序流程如图7所示。
由于传输数据数量比较大,所以通讯进程选用了无握手办法,以简化程序规划,进步通讯速度。通讯两边在接纳时运用了复位帧,以确保在失掉同步后及时康复。帧格局如图8所示(没运用冗余字节)。
试验证明,本协议具有编程简略、通讯牢靠、易于扩展的长处,可以有效地推行到依据RS-485的分布式测控体系中。