现在已有的一些研讨选用硬件改造和CSMA/CD的办法使体系具有多主结构,然后进步实时性,可是完成较为杂乱。提出一种根据协议的进步RS 485总线实时性的设计计划,该计划不需求修正硬件,不需求额定资源,只需求进行简略的程序修正。试验成果标明该计划能有用进步体系的实时性。
0 导言
RS 485 总线具有结构简略、本钱低价、通讯速率高、传输距离远等许多长处,因此被广泛应用于工厂自动化、工业操控、安全监控等范畴。RS 485一般选用半双工的通讯办法,即在整个网络中任一时刻只能有一个节点处于发送状况并向总线发送数据,假如有两个或两个以上节点一起向总线发送数据,将会导致一切发送的数据发送失利,即所谓的总线抵触。
为了防止总线抵触,整个RS 485 通讯体系一般由一个主节点、多个从节点组成。数据通讯一般选用主节点轮询各个从节点的办法。各个从节点有自己的通讯地址,只要主节点轮询帧中的地址信息与自己的地址相一起,此从节点才会进行应对,其他从节点则疏忽此帧,不做任何处理。这种传统的主从调度办法尽管不会引起总线抵触,可是也存在着一些局限性。从节点需求发送数据有必要比及主节点轮询到本身,体系的通讯功率较低,总线的运用率也较低。每个从节点在一个轮询周期中只要一次发送数据的时机,有实时性要求的信息得不到及时发送,体系的实时性较差。
为了进步RS 485 通讯体系的实时性,现在国内外已进行了一些研讨作业,大多选用对RS 485 进行软硬件改造使其具有多主结构的办法,使得从节点能够随机发送数据。提出的完成办法是将RS 485接口芯片的数据接纳引脚经过一反相器接到CPU的外部中止引脚,用触发中止的办法判别总线上是否有数据传输,一起结合定时器中止判别总线是否闲暇;假如总线闲暇就取得总线操控权发送数据,然后用监听自己发送数据的办法判别是否发生总线抵触,假如发生抵触,则随机延时一段时刻,再从头侦听发送。的办法也与之相似。这些办法一般需求额定的硬件资源,需求对原设备进行硬件改造;办法中说到的磕碰处理一般都选用CSMA/CD的随机退避算法,完成较为杂乱,并且时刻不行估计,不能确保实时性要求。
本文提出一种根据协议的新办法,该办法不需求改造硬件、不需求额定占用资源,只需求对软件作简略的修正就能晋级RS 485 通讯体系,进步从节点自主发送数据的才能,然后进步体系的通讯功率和实时性。
1 作业原理
通讯体系依旧选用一个主节点、多个从节点的结构,主节点每次在轮询完一个从节点今后,留出一段空地时刻给从节点按需自动上传信息。从节点假如有实时性要求的信息需求上传,除了在主节点轮询到本身时能够上传,在空地时也能上传。首要规则从节点在空地上传数据的先后顺序,即上传时机的获取机制,一种办法是按优先级分配时刻片,从节点只能在获取了规则的发送时机时运用空地上传数据。假如在一个空地中,有多个从节点需求上传数据,从节点需求在等候归于自己的发送时机时侦听总线的状况,假如侦听到总线上已经有其他节点进行了数据传输,则从节点有必要抛弃这次空地上传的时机,等候下次空地。
经过理论剖析能够比较本文提出的新办法与传统的轮询办法的实时性。一个传输单元由1 位开始位、8 位数据位、1位校验位、1位中止位组成,一个传输单元的传输时刻称为字节时刻Tbyte ,波特率为baudrate ,则:
设主节点发送的轮询帧长度为Lmaster ,从节点回复的数据帧长度固定为Lslave ,从节点数量为N ,假定一切从节点都正常,去除收发状况切换、帧距离、程序处理等时刻影响,则一个轮询周期Tcycle 抱负的理论值为:
若选用本文提出的新办法,假定从节点的有实时性要求的信息均匀需 x(0 ? x ? N – 1) 次空地才能够获取总线,则呼应时刻Tresponse′ 均匀值为:
当x = N – 1 时,呼应时刻Tresponse′ 最大值为:
选用新办法的实时数据均匀呼应时刻更短,体系的实时性更好。
由式(3)与式(6)可知,选用新办法的呼应时刻在最差状况下比传统轮询办法的最差状况的呼应时刻更长,大约为其2倍。归纳上述剖析,新办法与传统办法的实时性由均匀所需空地次数x 决议,新办法适用于各从节点的有实时性要求的信息发生的时刻比较离散,磕碰较少的场合。
2 软件完成
与传统轮询办法比较,新办法的软件完成的首要不同是从节点空地时刻的处理。其首要包含两部分,一部分为总线状况侦听,一部分为空地中发送时机的获取判别,流程图如图1所示。总线状况侦听的详细完成办法有许多种,能够运用串口中止来侦测总线是否有数据传输,不需求额定运用其他资源。串口在完好接纳完一个字节数据后会发生一个中止,所以假如从节点在等候自己的时段时发生了串口接纳中止,则标明总线上有数据传输,总线为繁忙状况。
3 试验与剖析
本文针对上述办法进行了试验测验。试验环境为:
1个主节点、16个从节点、波特率为1 200 b/s、从节点固定帧长度。有实时性要求的紧迫数据选用随机发生的办法,发生的时刻距离为1~2 min.对每个从节点从紧迫事件发生到获取总线的时刻进行计时,得到紧迫事件的呼应时刻,继续运转1 h,然后每个从节点对各自的一切呼应时刻求均匀值。从节点帧长度为25 B的紧迫事件均匀呼应时刻如图2所示。其间,实线指示选用上述新办法的测验成果,虚线指示选用传统轮询办法的测验成果。由图可见,选用新办法的一切从节点的均匀呼应时刻在500 ms以内,而选用传统轮询办法从节点均匀呼应时刻都大于1 500 ms,较大的乃至大于3 000 ms,新办法大大进步了体系的实时性。