基于RS485总线的串口令牌环通信的研究

   2024-03-11 互联网720
核心提示:  1 引言  在数据通信、计算机网络以及工业上的分布式控制检测系统中,经常采用串行通信来完成信息交换。这类系统要求用最少

  1 引言

  在数据通信、计算机网络以及工业上的分布式控制检测系统中,经常采用串行通信来完成信息交换。这类系统要求用最少的信号线来完成通信任务,由于 RS485具有性能优异、组网简单的优点,在集中控制系统、分布式控制系统中的应用相当广泛,特别是在要求远距离传输的应用中[1]。 RS485总线通信需要一对信号线,最远的传输距离大约为1200米,如果加上中继器则通信传输距离还可以延长。由于RS485总线与RS232串口的电 平信号不一致,计算机的RS232串口必须通过RS232/RS485转换接口芯片与RS485总线连接在一起。

  典型的控制检测系统中通常有上位机和下位机,下位机常常由单片机或嵌入式芯片为核心的数据采集电路模块构成,而PC机通常当成上位机使用,它们之间 通过RS232/RS485通信来完成数据通信传输和数据分析处理显示等应用。这种上位机和多台下位机构成的控制检测网络中,下位机采集到的数据最终传输到上位机,因此采集数据的有效控制和传输成为非常重要的问题。本文针对RS232/RS485串口通信构成的网络结构和通信方式进行了分析,并结合桥梁检测应用实例设计了一种基于RS485总线的串口令牌环网络通信协议。

  2 串口通信网络拓扑结构

  常用的拓扑结构有总线型和环型结构。这两种拓扑结构的一个共同特点是节点共用通信介质及使用广播式通信方式。[2]

  2.1 总线型拓扑结构

  总线型结构由RS485总线连接而成,其结构如图1所示,下位机由单片机或嵌入式芯片构成的多个分布式排列的智能测控设备组成,这些设备包括串口接口电路,所有的TXD端连接在RS485总线的同一信号线上,所有的RXD端连接在另外一根信号线上。上位机的RS232串口接入RS232/RS485 转换器,其RS485的TXD/RXD分别接入到RS485总线上的对应信号线上,这样上位机和所有下位机都是并联接入在两根信号线上,从而构成基于 RS485总线的总线型通信网络拓扑结构。

  2.2 环型拓扑结构

 

  环型结构是在RS485总线上将上位机和多个下位机串联起来构成一个环路通信网络。此网络无路径选择问题。为了提高通信的抗干扰能力,采用20mA 电流环串行通信接口,20mA电流环具有较强的抗干扰能力,同时也可以延长通信距离。在较强的工业干扰条件下,以9600波特率进行通信,任意两台下位机 之间的安全通信距离可达1600m。所有下位机和上位机之间仅需两条连接线,依次将前一个下位机或上位机的串口TXD端接到后一台的RXD端,最终组成一 个环型通信网络[3],其拓扑结构如图2所示。

  3 串口令牌环通信结构

  3.1 串口通信网的类型研究

  总线型结构在物理连接上稳定可靠,但上位机(主机)和下位机(从机)之间的通信传输共用两根信号线,这样需要设计合理的通信协议来控制数据的传输。比较典型的采用主从结构的通信模式:从机不主动发送命令或数据,一切都由主机控制,各从机之间也不通信,即使有信息交换也必须通过主机转发[1]。 而环型结构网络可按照物理连接顺序进行数据传输,数据与指令的传输是单向的,为了避免冲突常在这种结构中采用令牌环介质访问控制。但当某节点(上位机和下 位机均简称为节点)出现通信故障时,将影响整个网络的数据通信。

  为了克服以上两种结构中的弊端,我们结合了这两种结构的特点,在总线型结构基础上通过设计一种基于RS485令牌总线的串口令牌环网络通信协议来实 现稳定可靠的数据通信。

  3.2 令牌总线网拓扑结构

  IEEE802.4标准所描述的令牌总线网,物理结构为总线型结构,逻辑结构为环型结构,采用令牌法进行存取控制,对总线使用权的分配建立虚拟逻辑环[4]。令牌是在网络上传递的起标志作用可识别的数据帧,拥有令牌的通信节点可占有通信介质,完成一次数据通信过程,随后令牌必须被传到逻辑环上的下一节点,使网络上其他节点都可获得通信介质占有权。

  图3为基于RS485总线的令牌总线网络结构,一台主机和多台从机通过串口连接在相同的RS485的通信总线上。每个节点的地址由两部分组成:物理地址和逻辑地址。物理地址是唯一的。逻辑地址是在加入环网时由主机分配的号码,它是赋予令牌和拥有令牌的标识。

  图3 串口令牌总线拓扑结构

  (图中为了简洁用一根线代替数据线)

  该网络按照节点号顺序连接成一个逻辑环(运行中可能会变动)。运行期间环中有一个令牌帧绕环传递(按节点号递增顺序传递),只有拥有令牌的节点才有数据发送权,令牌持有者在完成通信任务或持令牌超时时,将令牌传递给自己的下一节点移交发送数据权。这样任何时刻只有一个节点能够得到令牌,避免了多机同 时发送数据而产生冲突。

  4 串口令牌环通信协议

  该网络物理结构是总线型的,所以每个节点发送的数据帧,其余节点均可收到。节点在收到数据帧后检查目的地址是否为本机地址或广播地址,如果相同则接收处理。协议中规定主机的物理地址和逻辑地址均设为0x00。每个从机节点都设有下一节点物理地址ID,如果该从机收到一个属于自己的令牌帧,在发送完数 据后应该将令牌发送到它的下一节点,下一节点的处理类似。本文设计的协议中均以物理地址为准,而令牌传递在从机之间按下一节点地址为准,在主机中按逻辑地址升序发送令牌。

 

  4.1 协议帧结构设计

  串行通信是以字节为单位进行发送与接收,因此该通信协议的字段以字节为单位。为了区分帧数据,每帧开头设置一个字节的空前导帧头,表示新协议帧的开始。对于某些变长数据帧可定义FF为帧尾。为了判断帧数据的有效性通常加入一个字节的校验和SUM。按照协议帧结构的设计功能不同,可以划分为命令指令帧 和数据帧两种结构。

  (1)广播时间指令帧

  广播指令定义为F0,对网络中各从机节点的时间进行同步,都以主机时间为基准,当环网络中从机节点接收到该指令帧时,修改自己当前时间为同步时间。

  (2)令牌指令帧

  令牌指令定义为FB,主机和从机用来控制RS485令牌总线上发送数据的权限,当目的地址接收到该帧时表示可使用总线发送数据,如果该节点有数据则回传数据给主机。

  (3)从机回传数据帧

  回传数据指令定义为FC,该数据帧是当从机接收到令牌,并且该机上存在数据需要回传送给主机时,由从机按照此格式发送数据给主机。

  (4)回传应答指令帧

  应答指令定义为FD,主机接收到某从机发送来的数据后,主机给从机的回应应答消息,目的地址即为相应的从机地址,一个字节的ACK应答结果为确认正 常或出错重传。

  (5)更新下一节点地址指令帧

  更新指令定义为FE,当主机判断认为某从机脱离令牌环网,给该从机的上一跳节点发送更新此节点的下一跳为脱离环网的节点的下一跳,使整个环网保持快速通信、避免阻塞。

  4.2 协议工作原理

  该协议借鉴了轮询技术来共享RS485总线,并加入了令牌环的产生、维护控制和令牌传递,主机和从机通信采用了ARQ停等协议,从机之间只是简单的令牌传递。[5]

  4.2.1 令牌环网的初始化建立

  当主机和从机开始运行时,所有从机的下一跳的逻辑地址初始为0xFF,主机的下一跳为0x00,即主机自成一单环。主机已知从机物理地址及逻辑地址,按从机列表顺序选择一个没有加入环网络的从机,给其发送FE指令尝试加入网络,确定该从机的下一跳节点。加入第一个从机节点的下一跳为主机地址,加入第二个从机节点的下一跳为加入第一个从机地址,依此类推。开始时由主机主动请求从机入网,若从机都为正常状态则很快建立令牌环网络。而对于故障节点,请求 加入在规定时间或次数内都失败则放弃该节点。

 

  4.2.2 令牌环网的正常工作

  正常工作情况下各从机处于侦听总线状态,主机或从机发出传令牌指令,各从机都可收到,若从机与令牌指令的目的地址不匹,该从机不反应,若匹配则该从机做出如下响应:

  (1)若该从机有数据要回送给主机,则给主机发回传数据帧指令。若主机收到的数据出错,则要求从机重传。从机收到应答帧后判断是否重传,若<


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅