一种基于协议的提高RS 485 总线实时性的设计方案

时间:2022-03-17来源:佚名

目前已有的一些研究采用硬件改造和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,新方法大大提高了系统的实时性。

从节点帧长度为155 B 的紧急事件平均响应时间如图3所示,从图中可以得到同样的结论。

4 结语

本文提出一种基于协议的提高RS 485总线实时性设计方案,通过理论分析和实验验证表明:在从节点实时性信息整体产生间隔大于一个轮询周期的情况下,响应时间最大可以缩短为传统轮询方式响应时间的1/N( N 为从节点数量)。该方案非常适用于像气体数据采集这样的数据量大、数据变化缓慢、突变数据实时性要求高的场合。而且采用该方案不需要额外资源、不需要改造硬件,只需要进行简单的程序修改即可实现现有系统的升级,简单实用,具有广阔的应用前景。

本文由大比特收集整理(www.big-bit.com)

    相关阅读

    城市亮化工程如何设计才能具有层次感?

    城市亮化工程 的主要目地是为夜间带来一体化照明,考虑基础的视觉识别规定,自然环境照明的光层级与光线总数的多少相关,假如空间中的自然环境照明比工作照明低许多 ,在工作...
    2022-10-11
    城市亮化工程如何设计才能具有层次感?

    城市道路照明工程主要有哪些?

    在城市建设中,道路照明 是必不可少的基础设施,也是城市夜景的重要组成部分。在某种程度上,它还反映了城市的经济实力,社会进步和现代化的标志。它为夜间在城市中的车辆和行...
    2022-07-12
    城市道路照明工程主要有哪些?

    安全出口指示标志灯为什么是绿色而不是红色?

    对于安全出口指示标志灯相信大家都不陌生,我们在日常生活中在任何公众场所的紧急疏散的安全出口都可以看到这个安全出口指示标志灯,大家有没有想过安全出口的指示标志为什么...
    2022-05-21
    安全出口指示标志灯为什么是绿色而不是红色?

    路灯照明合理的布置方式

    路灯的布置方式主要有单侧布置、双侧交错布置、双侧对称布置、中心对称布置、横向悬索布置五种形式,随着城市道路的不断拓宽,平交路口转弯半径越来越大,根据《城市道路亮化...
    2022-07-15

    泛光照明工程是什么?应用范围有哪些?

    很多人提及 泛光照明工程 会有一些生疏,不理解泛光照明包含哪些,也不知道 泛光照明工程 跟普通照明工程有哪些不一样。 实际上泛光照明工程便是归属于城市景观照明工程或环境...
    2022-10-17
    泛光照明工程是什么?应用范围有哪些?

    消防应急灯的寿命有多长?一般可以使用多长时间?

    对于消防应急灯的使用寿命相信很多人都想了解这个问题,因为消防应急灯安装了就不需要时时刻刻盯着,这需要定时检查就可以了,但是很多人都不知道消防应急灯的寿命有多长,不...
    2022-05-21
    消防应急灯的寿命有多长?一般可以使用多长时间?

    快投派智能无线投屏器,让无线互联更加简单便捷

    没有WiFi的情况下可以进行无线投屏吗? 长期使用投屏功能的人,或多或少都知道自己的手机可以通过【无线投屏】【屏幕镜像】功能,直接连接到智能电视或无线投屏器,下意识地认...
    2022-05-11
    快投派智能无线投屏器,让无线互联更加简单便捷

    广场照明的设计技巧

    广场照明设计 主要包括休闲广场、集会活动广场、商业广场的照明设计。 1)休闲广场。主要是为人们提供休息、社交和举行小型文化娱乐活动的地方,由于人们活动方式不同,有些区...
    2022-07-15

    网站栏目