非确定时序的多设备异波特率串行通信的研究

2016-03-17 03:58:41赵国军
计算机应用与软件 2016年2期
关键词:轮询波特率通信协议

景 程 赵国军

(浙江工业大学特种设备制造与先进加工技术教育部重点实验室 浙江 杭州 310014)



非确定时序的多设备异波特率串行通信的研究

景程赵国军*

(浙江工业大学特种设备制造与先进加工技术教育部重点实验室浙江 杭州 310014)

摘要RS485是一种常规的通信总线,多设备通信一般采用主从式通信。但具体应用时,有些从设备对主设备询问的应答时间不确定,且应答时间无法更改。为此选取了一个主设备和三个从设备组成的模型进行研究,其中三个从设备分别具有不同的特性:能定时应答主设备询问和固定波特率的从设备,能定时应答主设备询问和波特率可设的从设备,以及非确定时间应答主设备询问和波特率可设的从设备。在此基础上提出三种通用的非确定时序的主从式多设备通信协议,并搭建平台进行了测试。结果显示传统的轮询通信协议在现场应用时难以满足实时性要求高的场合,采用插值异波特率通信协议能提高非确定时序的主从式多设备通信的效率,而且避免某些从设备误收数据,同时该通信协议可以适用于其他本身不能自动仲裁的现场总线通信。

关键词非确定时序主从式RS485

RESEARCH ON MULTI-DEVICE SERIAL COMMUNICATION IN DIFFERENT BAUD RATES WITH NON-DETERMINISTIC TIME SEQUENCE

Jing ChengZhao Guojun*

(Key Laboratory of Special Equipment and Advanced Manufacturing Technology, Ministry of Education, Zhejiang University of Technology, Hangzhou 310014, Zhejiang, China)

AbstractRS485 is a conventional communication bus, the multi-device communications generally use master-slave communication. But in specific applications, there are some slave equipments whose response time to master equipments’ inquiries are uncertain, and their response time cannot be changed. Therefore, the paper selects a model which consists of one master equipment and three slave equipments for studying, in it three slave equipments have different features respectively: the one makes timing response to master equipment’s inquiry and has fixed baud rate, the other makes timing response to master equipment’s inquiry but its baud rate can be set, and another one responds to master equipment’s inquiry in non-deterministic timing and its baud rate can be set as well. Based on this model we propose three common non-deterministic timing master-slave multi-device communication protocols, and build a platform to test them. Result shows that the traditional polling communication protocol is difficult to satisfy the occasions with high real-time performance demand when on-site applying, and to use interpolation different baud rate communication protocol can improve the efficiency of master-slave multi-device communication with non-deterministic timing, and prevents some of slave equipments from mistakenly receiving data, meanwhile the protocol can be applied to other field bus communication which cannot automatically arbitrating by themselves.

KeywordsNon-deterministic timingMaster-slaveRS485

0引言

RS485总线因其物理结构实现简单、传输距离远、传输速度较快、抗干扰能力强被广泛应用在工业控制领域[1]。RS485在应用层一般采用命令/应答方式,在多机主从式通信时需设计良好的通信协议[2]。武汉理工大学提供了一种改进的RS485主从通信方式,即把普通轮询改为多播轮询(一问多答),主设备发出的询问,各从设备根据设置的应答时间依次应答[3]。中煤科工集团常州自动化研究院设计了基于类令牌环的RS485多主通信协议模块,正常情况下通信节点按令牌顺序轮流与主控机交互数据,当设备有紧急情况需要抢先上传数据时,可在抢发时间内抢占RS485总线[4]。但在实际现场应用时,有些从设备对主设备询问的应答时间是不确定的,并且出厂时就确定了,无法更改。

针对这种情况,本文提出非确定时序的多设备异波特率串行通信的研究,取三种从设备,一种是能定时应答主设备询问和固定波特率的从设备,一种是能定时应答主设备询问和波特率可设的从设备,一种是非确定时间应答主设备询问和波特率可设的从设备,以设计一个主设备与这三种从设备通信的通信协议为基础,提出三种通用的非确定时序的主从式多设备通信协议,并搭建平台测试。测试结果显示传统的轮询方案在现场应用时难以满足实时性要求高的场合,采用插值异波特率方案能提高非确定时序的主从式多设备通信的效率,而且避免某些从设备误收数据,同时适用于其他本身不能自动仲裁的现场总线通信。

1通信协议设计理论分析

假设主设备K和三个从设备(分别记作A、B和C)采用主从方式利用RS485总线进行通信。其中,三个从设备对主设备K的询问应答时间不可设置,但是从设备B和C的通信波特率可设置。

进一步假设:

1. 主设备K和从设备A通信一次,有NA帧。A对每帧应答时间固定,为 tA。主设备K收到应答后,经过tK1后发送下一帧。通信周期T(K,A)=TA(tK1在符合从设备A实时性的要求下,可由主设备软件程序设置适当值,一旦tK1确定,TA就确定了)。见图1所示。

图1 主设备与从设备A的通信示意图

2. 主设备K和从设备B通信一次,有4帧,从设备B的应答时间不固定且时间长,如表1所示:其中B收到第一帧后,有可能在tB1时间点应答,若没有在这个时间点应答则在(tB2,tB3)时间范围内应答;B收到第二帧和第三帧后,分别在(tB4,tB5)和(tB6,tB7)时间范围内后应答; B收到第四帧数据后,在tB8后应答。

主设备K在收到从设备B数据 TK2后,接着发送下一帧。通信周期T(K,B)=TB(TK2在满足从设备B的实时性要求的情况下可由主设备软件程序设置,当 TK2和通信波特率为确定值时,TB仍为不确定值)。

表1 从设备B的应答时间

3. 主设备K和从设备C通信一次,有NC帧,从设备C每帧应答时间固定,为tC。K收到应答经过tK3后,发送下一帧。通信周期T(K,A)=TC(tK3在满足从设备C的实时性要求的情况下可由主设备软件程序设置,当tK3和通信波特率为确定值时,TC为确定值)。

通信协议方案选择:根据上述的条件,制定了以下3种通信协议方案。

通信协议方案1:采用轮询的方法。主设备K轮流跟每个从设备通信,通信一次周期为TP1(TP1≈TA+TB+TC,与每个从设备通信的时间间隔和一个轮询结束到下一个轮询的时间可由主设备软件设置适当值)。如图2所示。

图2 轮询方案通信示意图

通信协议方案2:采用插值异波特率的方法,与每个从设备通信采用不同的波特率,将从设备A与主设备K的通信,插入到从设备B与K的通信中。插入的通信周期个数 NCR由从设备B的应答时间决定,计算方法如下所示:

(1)

通信示意如图3所示:主设备K发送第一帧给从设备B后,K先与A通信N1次,再等待B应答,如果在时间点tB1,B没有应答,则K继续和A通信N2次,然后等待B应答。收到B应答后,K发送第二帧询问B,接着又插入与A的通信,依次类推。直到K与B通信完成,再轮询K与C的通信。这种方案的通信一次周期为TP2(TP2≈TB+TC,与从设备C通信的时间间隔和一个轮询结束到下一个轮询的时间可由主设备软件设置适当值)。

图3 方案2通信协议示意图

通信协议方案3:采用插值异波特率方法,与每个从设备通信采用不同的波特率,将从设备AC与主设备K的通信,插入到B与K的通信中。插入的通信周期个数 MCR由B的应答时间决定,如下式所示:

(2)

通信的协议示意如图4所示:主设备K发送第一帧给B后,K先与AC通信M1次,再等待B应答,如果在时间点tB1,B没有应答,则K继续和AC通信M2次,然后等待B应答。收到B应答后,K发送第二帧询问B,接着插入与A的通信,依次类推。这种方案的通信一次周期为 TP3(TP3=TB,一个轮询结束到下一个轮询的时间可由主设备软件设置适当值)。

如果参与通信对象满足假设条件1:TP1

2具体工程实现及分析

此模型的测试平台是基于电梯轿厢控制器与轿厢串行板和指纹模块的主从通信系统。主设备是电梯轿厢控制器,从设备分别为轿厢串行板和指纹模块。轿厢串行板负责轿厢内的各种信号的通信和处理,例如开关门信号、楼层显示信号等,实时性要求比较高。指纹模块用于某些私密性比较高的楼层呼梯,指纹的特征提取与指纹匹配都是比较耗时[5]。电梯轿厢控制器与轿厢串行板和指纹模块采用RS485总线通信,轿厢串行板的波特率固定为38 400 bps,指纹模块的波特率可设,两个从设备的应答时间都不可设。搭建平台如图5所示:1是电梯控制器,2是轿厢串行板,3是指纹模块,4是电梯轿厢控制器。

图5 测试平台

电梯轿厢控制器选用的由意法半导体(ST)公司推出的STM32F107系列的芯片[6],使用的是ARM的Cortex-M3内核[7]。电梯轿厢控制器与轿厢串行板通信一次,需通信3帧数据。轿厢串行板在收到电梯轿厢控制器数据1 ms后,应答电梯轿厢控制器数据。轿厢控制器收到应答数据3 ms后,接着发送下一帧数据,通信周期为TSLP=33 ms。通信波形如图6所示:黑框内为电梯轿厢控制器与轿厢串行板通信一次的波形。

图6 电梯轿厢控制器与轿厢串行板通信波形

电梯轿厢控制器与指纹模块通信一次,需通信3帧数据,分别为指纹图像的获取、指纹特征提取和指纹匹配[8]。由于指纹模块的特殊性,指纹模块的应答时间不确定。如表2所示:当电梯轿厢控制器发送第一帧给指纹模块时,如果指纹模块没有获取到指纹,则在220 ms时应答电梯轿厢控制器,告之没有获取到指纹,如果指纹模块获取到指纹,则在(510,560)(单位ms)时间范围内应答电梯轿厢控制器,告之获取到指纹。当指纹模块没有获取到指纹时,电梯轿厢会一直通信第一帧,询问指纹模块是否获取到指纹,直到指纹模块获取到指纹,才会接着通信第二帧和第三帧。

表2 指纹模块每帧通信时间

电梯轿厢控制器与指纹通信3帧的周期TZW为范围(1080,1320)(单位为ms),如果采用方案1即轮询方法,电梯轿厢控制器先跟轿厢串行板通信,再与指纹模块通信,则不能满足轿厢串行板的实时性要求。所以采用插值异波特率方法,将电梯轿厢控制器与轿厢串行板的通信插入到轿厢控制器与指纹模块的通信中。根据式(1),在保证足够的通信时序余量的前提下,制定电梯轿厢控制器与轿厢串行板和指纹模块通信示意如图7所示:DTn(n=1,2,3)是指电梯轿厢控制器发送给指纹模块的第n帧。ZWn(n=0,1,2,3)是指指纹模块应答给电梯控制器的第n帧。SLP是指电梯轿厢控制器与轿厢串行板的一个完整通信周期。

图7 通信协议方案示意图

由图7可知通信过程如下:电梯轿厢控制器先发第一帧DT1给指纹模块,再跟轿厢串行板通信5次,等待指纹模块应答,回复ZW0;如果指纹模块没有应答,则继续和轿厢串行板通信5次,等待指纹模块应答回复ZW1;当指纹模块应答后,轿厢控制器发第二帧ZD2给指纹模块,接着和轿厢串行板通信13次,之后等待指纹模块应答;当指纹模块应答回复ZW2后,电梯轿厢控制器发送第三帧DT3给轿厢串行板,因为第三帧指纹模块应答较快,则不插入轿厢串行板通信,直接等待指纹模块应答;当指纹模块应答回复ZW3后,一次完整的电梯轿厢控制器与轿厢串行板和指纹模块通信结束,整个周期TS=TZW。一个轮询结束到下一个轮询的时间可由主设备软件设置适当值。由于电梯轿厢控制器有自发自收机制,即电梯轿厢控制器发送出去的数据,在接收端都能收到。所以测电梯轿厢控制器的接收端时可收到整个通信的波形,测指纹模块的发送端时可收到到指纹的应答回复电梯轿厢控制器波形,实际测试到的通信波形如图8所示。

图8 实测通信波形

如图8所示:图中位于上方的是整个通信的波形,位于下方的是指纹模块应答电梯轿厢控制器波形。当一直没有指纹呼梯时,电梯轿厢控制器与指纹模块连续通信第一帧;当一直有指纹呼梯时,电梯轿厢控制器与指纹模块循环通信3帧。从整个通信波形可以看出,电梯轿厢控制器与轿厢串行板和指纹模块通信时序紧凑,在最大程序上保证了系统的通信效率。

在测试过程中发现,虽然指纹模块与轿厢串行板的协议不一样,但是根据指纹的不同,指纹模块在应答电梯轿厢控制器询问指纹是否匹配的时候,会存在回复的数据帧里包含有轿厢串行板通信协议帧头的现象。测试过程中,当指纹模块采用和交响串行板相同的波特率时,轿厢串行板会误收指纹的数据,为保证系统通信效率,指纹模块应采用与轿厢串行板不同的波特率。

3结语

本文在对通信协议进行分析的基础上提出一个主设备与三个从设备通信的模型,重点提出了插值异波特率通信协议。实际应用时可以根据实际情况和插值异波特率原理,对本文所提出的通信协议进行变通,例如本文所搭建的测试平台。

结合测试结果,传统的轮询通信协议在现场应用时难以满足实时性要求高的场合,插值异波特率能提高非确定时序的主从式多设备通信的效率,而且避免某些从设备误收数据,同时该通信协议可以适用于其他本身不能自动仲裁的现场总线通信。

参考文献

[1] 郝涛,陆宣博.基于RS485主从串口通讯协议的设计[J].装备制造技术,2013(3):38-40.

[2] 曹志凯,江青茵,郑振耀,等.基于RS485总线的网络控制通讯软件设计及应用[J].计算机工程与应用,2002,38(13):243-245.

[3] 周鹏,李艳艳.提高RS485总线主从通讯效率的软件设计[J].单片机与嵌入式系统应用,2008(8):70-73.

[4] 王树丰,方斌,程大伟,等.基于类令牌环的RS485多主通信协议模块设计[J].工矿自动化,2013,39(12):17-20.

[5] 李俊伟,周立俭,崔雪梅.基于改进基准点定位的指纹匹配算法[J].计算机工程,2011,37(12):164-166.

[6] STMicroelectronics group of companies, STM32F107 Datasheet Revision4.0[R].2009.

[7] 宋岩.ARM Cortex-M3权威指南[M].北京:北京航空航天大学出版社,2009.

[8] Alama M S,Akhteruzzamana M, Cherrrib A K.Real-time fingerprint identification[J].Optics & Laser Technology,2004,36(3):191-196.

中图分类号TP3

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.02.028

收稿日期:2014-08-01。景程,硕士生,主研领域:电梯控制系统及信号处理。赵国军,教授。

猜你喜欢
轮询波特率通信协议
CAN 总线波特率自适应程序设计
智能制造(2020年5期)2020-07-03 06:24:00
基于等概率的ASON业务授权设计∗
基于FPGA的异步串行通信波特率容错设计
电子测试(2018年7期)2018-05-16 06:27:18
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
依托站点状态的两级轮询控制系统时延特性分析
自动化学报(2016年8期)2016-04-16 03:38:56
基于NS-3的PLC多频通信协议仿真平台设计与实现
电测与仪表(2016年2期)2016-04-12 00:24:52
利用时间轮询方式操作DDR3实现多模式下数据重排
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介
C*Core芯片SCI串口波特率容限优化