景 程 趙國軍
(浙江工業(yè)大學(xué)特種設(shè)備制造與先進(jìn)加工技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室 浙江 杭州 310014)
?
非確定時序的多設(shè)備異波特率串行通信的研究
景程趙國軍*
(浙江工業(yè)大學(xué)特種設(shè)備制造與先進(jìn)加工技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室浙江 杭州 310014)
摘要RS485是一種常規(guī)的通信總線,多設(shè)備通信一般采用主從式通信。但具體應(yīng)用時,有些從設(shè)備對主設(shè)備詢問的應(yīng)答時間不確定,且應(yīng)答時間無法更改。為此選取了一個主設(shè)備和三個從設(shè)備組成的模型進(jìn)行研究,其中三個從設(shè)備分別具有不同的特性:能定時應(yīng)答主設(shè)備詢問和固定波特率的從設(shè)備,能定時應(yīng)答主設(shè)備詢問和波特率可設(shè)的從設(shè)備,以及非確定時間應(yīng)答主設(shè)備詢問和波特率可設(shè)的從設(shè)備。在此基礎(chǔ)上提出三種通用的非確定時序的主從式多設(shè)備通信協(xié)議,并搭建平臺進(jìn)行了測試。結(jié)果顯示傳統(tǒng)的輪詢通信協(xié)議在現(xiàn)場應(yīng)用時難以滿足實(shí)時性要求高的場合,采用插值異波特率通信協(xié)議能提高非確定時序的主從式多設(shè)備通信的效率,而且避免某些從設(shè)備誤收數(shù)據(jù),同時該通信協(xié)議可以適用于其他本身不能自動仲裁的現(xiàn)場總線通信。
關(guān)鍵詞非確定時序主從式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總線因其物理結(jié)構(gòu)實(shí)現(xiàn)簡單、傳輸距離遠(yuǎn)、傳輸速度較快、抗干擾能力強(qiáng)被廣泛應(yīng)用在工業(yè)控制領(lǐng)域[1]。RS485在應(yīng)用層一般采用命令/應(yīng)答方式,在多機(jī)主從式通信時需設(shè)計(jì)良好的通信協(xié)議[2]。武漢理工大學(xué)提供了一種改進(jìn)的RS485主從通信方式,即把普通輪詢改為多播輪詢(一問多答),主設(shè)備發(fā)出的詢問,各從設(shè)備根據(jù)設(shè)置的應(yīng)答時間依次應(yīng)答[3]。中煤科工集團(tuán)常州自動化研究院設(shè)計(jì)了基于類令牌環(huán)的RS485多主通信協(xié)議模塊,正常情況下通信節(jié)點(diǎn)按令牌順序輪流與主控機(jī)交互數(shù)據(jù),當(dāng)設(shè)備有緊急情況需要搶先上傳數(shù)據(jù)時,可在搶發(fā)時間內(nèi)搶占RS485總線[4]。但在實(shí)際現(xiàn)場應(yīng)用時,有些從設(shè)備對主設(shè)備詢問的應(yīng)答時間是不確定的,并且出廠時就確定了,無法更改。
針對這種情況,本文提出非確定時序的多設(shè)備異波特率串行通信的研究,取三種從設(shè)備,一種是能定時應(yīng)答主設(shè)備詢問和固定波特率的從設(shè)備,一種是能定時應(yīng)答主設(shè)備詢問和波特率可設(shè)的從設(shè)備,一種是非確定時間應(yīng)答主設(shè)備詢問和波特率可設(shè)的從設(shè)備,以設(shè)計(jì)一個主設(shè)備與這三種從設(shè)備通信的通信協(xié)議為基礎(chǔ),提出三種通用的非確定時序的主從式多設(shè)備通信協(xié)議,并搭建平臺測試。測試結(jié)果顯示傳統(tǒng)的輪詢方案在現(xiàn)場應(yīng)用時難以滿足實(shí)時性要求高的場合,采用插值異波特率方案能提高非確定時序的主從式多設(shè)備通信的效率,而且避免某些從設(shè)備誤收數(shù)據(jù),同時適用于其他本身不能自動仲裁的現(xiàn)場總線通信。
1通信協(xié)議設(shè)計(jì)理論分析
假設(shè)主設(shè)備K和三個從設(shè)備(分別記作A、B和C)采用主從方式利用RS485總線進(jìn)行通信。其中,三個從設(shè)備對主設(shè)備K的詢問應(yīng)答時間不可設(shè)置,但是從設(shè)備B和C的通信波特率可設(shè)置。
進(jìn)一步假設(shè):
1. 主設(shè)備K和從設(shè)備A通信一次,有NA幀。A對每幀應(yīng)答時間固定,為 tA。主設(shè)備K收到應(yīng)答后,經(jīng)過tK1后發(fā)送下一幀。通信周期T(K,A)=TA(tK1在符合從設(shè)備A實(shí)時性的要求下,可由主設(shè)備軟件程序設(shè)置適當(dāng)值,一旦tK1確定,TA就確定了)。見圖1所示。
圖1 主設(shè)備與從設(shè)備A的通信示意圖
2. 主設(shè)備K和從設(shè)備B通信一次,有4幀,從設(shè)備B的應(yīng)答時間不固定且時間長,如表1所示:其中B收到第一幀后,有可能在tB1時間點(diǎn)應(yīng)答,若沒有在這個時間點(diǎn)應(yīng)答則在(tB2,tB3)時間范圍內(nèi)應(yīng)答;B收到第二幀和第三幀后,分別在(tB4,tB5)和(tB6,tB7)時間范圍內(nèi)后應(yīng)答; B收到第四幀數(shù)據(jù)后,在tB8后應(yīng)答。
主設(shè)備K在收到從設(shè)備B數(shù)據(jù) TK2后,接著發(fā)送下一幀。通信周期T(K,B)=TB(TK2在滿足從設(shè)備B的實(shí)時性要求的情況下可由主設(shè)備軟件程序設(shè)置,當(dāng) TK2和通信波特率為確定值時,TB仍為不確定值)。
表1 從設(shè)備B的應(yīng)答時間
3. 主設(shè)備K和從設(shè)備C通信一次,有NC幀,從設(shè)備C每幀應(yīng)答時間固定,為tC。K收到應(yīng)答經(jīng)過tK3后,發(fā)送下一幀。通信周期T(K,A)=TC(tK3在滿足從設(shè)備C的實(shí)時性要求的情況下可由主設(shè)備軟件程序設(shè)置,當(dāng)tK3和通信波特率為確定值時,TC為確定值)。
通信協(xié)議方案選擇:根據(jù)上述的條件,制定了以下3種通信協(xié)議方案。
通信協(xié)議方案1:采用輪詢的方法。主設(shè)備K輪流跟每個從設(shè)備通信,通信一次周期為TP1(TP1≈TA+TB+TC,與每個從設(shè)備通信的時間間隔和一個輪詢結(jié)束到下一個輪詢的時間可由主設(shè)備軟件設(shè)置適當(dāng)值)。如圖2所示。
圖2 輪詢方案通信示意圖
通信協(xié)議方案2:采用插值異波特率的方法,與每個從設(shè)備通信采用不同的波特率,將從設(shè)備A與主設(shè)備K的通信,插入到從設(shè)備B與K的通信中。插入的通信周期個數(shù) NCR由從設(shè)備B的應(yīng)答時間決定,計(jì)算方法如下所示:
(1)
通信示意如圖3所示:主設(shè)備K發(fā)送第一幀給從設(shè)備B后,K先與A通信N1次,再等待B應(yīng)答,如果在時間點(diǎn)tB1,B沒有應(yīng)答,則K繼續(xù)和A通信N2次,然后等待B應(yīng)答。收到B應(yīng)答后,K發(fā)送第二幀詢問B,接著又插入與A的通信,依次類推。直到K與B通信完成,再輪詢K與C的通信。這種方案的通信一次周期為TP2(TP2≈TB+TC,與從設(shè)備C通信的時間間隔和一個輪詢結(jié)束到下一個輪詢的時間可由主設(shè)備軟件設(shè)置適當(dāng)值)。
圖3 方案2通信協(xié)議示意圖
通信協(xié)議方案3:采用插值異波特率方法,與每個從設(shè)備通信采用不同的波特率,將從設(shè)備AC與主設(shè)備K的通信,插入到B與K的通信中。插入的通信周期個數(shù) MCR由B的應(yīng)答時間決定,如下式所示:
(2)
通信的協(xié)議示意如圖4所示:主設(shè)備K發(fā)送第一幀給B后,K先與AC通信M1次,再等待B應(yīng)答,如果在時間點(diǎn)tB1,B沒有應(yīng)答,則K繼續(xù)和AC通信M2次,然后等待B應(yīng)答。收到B應(yīng)答后,K發(fā)送第二幀詢問B,接著插入與A的通信,依次類推。這種方案的通信一次周期為 TP3(TP3=TB,一個輪詢結(jié)束到下一個輪詢的時間可由主設(shè)備軟件設(shè)置適當(dāng)值)。
如果參與通信對象滿足假設(shè)條件1:TP1 2具體工程實(shí)現(xiàn)及分析 此模型的測試平臺是基于電梯轎廂控制器與轎廂串行板和指紋模塊的主從通信系統(tǒng)。主設(shè)備是電梯轎廂控制器,從設(shè)備分別為轎廂串行板和指紋模塊。轎廂串行板負(fù)責(zé)轎廂內(nèi)的各種信號的通信和處理,例如開關(guān)門信號、樓層顯示信號等,實(shí)時性要求比較高。指紋模塊用于某些私密性比較高的樓層呼梯,指紋的特征提取與指紋匹配都是比較耗時[5]。電梯轎廂控制器與轎廂串行板和指紋模塊采用RS485總線通信,轎廂串行板的波特率固定為38 400 bps,指紋模塊的波特率可設(shè),兩個從設(shè)備的應(yīng)答時間都不可設(shè)。搭建平臺如圖5所示:1是電梯控制器,2是轎廂串行板,3是指紋模塊,4是電梯轎廂控制器。 圖5 測試平臺 電梯轎廂控制器選用的由意法半導(dǎo)體(ST)公司推出的STM32F107系列的芯片[6],使用的是ARM的Cortex-M3內(nèi)核[7]。電梯轎廂控制器與轎廂串行板通信一次,需通信3幀數(shù)據(jù)。轎廂串行板在收到電梯轎廂控制器數(shù)據(jù)1 ms后,應(yīng)答電梯轎廂控制器數(shù)據(jù)。轎廂控制器收到應(yīng)答數(shù)據(jù)3 ms后,接著發(fā)送下一幀數(shù)據(jù),通信周期為TSLP=33 ms。通信波形如圖6所示:黑框內(nèi)為電梯轎廂控制器與轎廂串行板通信一次的波形。 圖6 電梯轎廂控制器與轎廂串行板通信波形 電梯轎廂控制器與指紋模塊通信一次,需通信3幀數(shù)據(jù),分別為指紋圖像的獲取、指紋特征提取和指紋匹配[8]。由于指紋模塊的特殊性,指紋模塊的應(yīng)答時間不確定。如表2所示:當(dāng)電梯轎廂控制器發(fā)送第一幀給指紋模塊時,如果指紋模塊沒有獲取到指紋,則在220 ms時應(yīng)答電梯轎廂控制器,告之沒有獲取到指紋,如果指紋模塊獲取到指紋,則在(510,560)(單位ms)時間范圍內(nèi)應(yīng)答電梯轎廂控制器,告之獲取到指紋。當(dāng)指紋模塊沒有獲取到指紋時,電梯轎廂會一直通信第一幀,詢問指紋模塊是否獲取到指紋,直到指紋模塊獲取到指紋,才會接著通信第二幀和第三幀。 表2 指紋模塊每幀通信時間 電梯轎廂控制器與指紋通信3幀的周期TZW為范圍(1080,1320)(單位為ms),如果采用方案1即輪詢方法,電梯轎廂控制器先跟轎廂串行板通信,再與指紋模塊通信,則不能滿足轎廂串行板的實(shí)時性要求。所以采用插值異波特率方法,將電梯轎廂控制器與轎廂串行板的通信插入到轎廂控制器與指紋模塊的通信中。根據(jù)式(1),在保證足夠的通信時序余量的前提下,制定電梯轎廂控制器與轎廂串行板和指紋模塊通信示意如圖7所示:DTn(n=1,2,3)是指電梯轎廂控制器發(fā)送給指紋模塊的第n幀。ZWn(n=0,1,2,3)是指指紋模塊應(yīng)答給電梯控制器的第n幀。SLP是指電梯轎廂控制器與轎廂串行板的一個完整通信周期。 圖7 通信協(xié)議方案示意圖 由圖7可知通信過程如下:電梯轎廂控制器先發(fā)第一幀DT1給指紋模塊,再跟轎廂串行板通信5次,等待指紋模塊應(yīng)答,回復(fù)ZW0;如果指紋模塊沒有應(yīng)答,則繼續(xù)和轎廂串行板通信5次,等待指紋模塊應(yīng)答回復(fù)ZW1;當(dāng)指紋模塊應(yīng)答后,轎廂控制器發(fā)第二幀ZD2給指紋模塊,接著和轎廂串行板通信13次,之后等待指紋模塊應(yīng)答;當(dāng)指紋模塊應(yīng)答回復(fù)ZW2后,電梯轎廂控制器發(fā)送第三幀DT3給轎廂串行板,因?yàn)榈谌龓讣y模塊應(yīng)答較快,則不插入轎廂串行板通信,直接等待指紋模塊應(yīng)答;當(dāng)指紋模塊應(yīng)答回復(fù)ZW3后,一次完整的電梯轎廂控制器與轎廂串行板和指紋模塊通信結(jié)束,整個周期TS=TZW。一個輪詢結(jié)束到下一個輪詢的時間可由主設(shè)備軟件設(shè)置適當(dāng)值。由于電梯轎廂控制器有自發(fā)自收機(jī)制,即電梯轎廂控制器發(fā)送出去的數(shù)據(jù),在接收端都能收到。所以測電梯轎廂控制器的接收端時可收到整個通信的波形,測指紋模塊的發(fā)送端時可收到到指紋的應(yīng)答回復(fù)電梯轎廂控制器波形,實(shí)際測試到的通信波形如圖8所示。 圖8 實(shí)測通信波形 如圖8所示:圖中位于上方的是整個通信的波形,位于下方的是指紋模塊應(yīng)答電梯轎廂控制器波形。當(dāng)一直沒有指紋呼梯時,電梯轎廂控制器與指紋模塊連續(xù)通信第一幀;當(dāng)一直有指紋呼梯時,電梯轎廂控制器與指紋模塊循環(huán)通信3幀。從整個通信波形可以看出,電梯轎廂控制器與轎廂串行板和指紋模塊通信時序緊湊,在最大程序上保證了系統(tǒng)的通信效率。 在測試過程中發(fā)現(xiàn),雖然指紋模塊與轎廂串行板的協(xié)議不一樣,但是根據(jù)指紋的不同,指紋模塊在應(yīng)答電梯轎廂控制器詢問指紋是否匹配的時候,會存在回復(fù)的數(shù)據(jù)幀里包含有轎廂串行板通信協(xié)議幀頭的現(xiàn)象。測試過程中,當(dāng)指紋模塊采用和交響串行板相同的波特率時,轎廂串行板會誤收指紋的數(shù)據(jù),為保證系統(tǒng)通信效率,指紋模塊應(yīng)采用與轎廂串行板不同的波特率。 3結(jié)語 本文在對通信協(xié)議進(jìn)行分析的基礎(chǔ)上提出一個主設(shè)備與三個從設(shè)備通信的模型,重點(diǎn)提出了插值異波特率通信協(xié)議。實(shí)際應(yīng)用時可以根據(jù)實(shí)際情況和插值異波特率原理,對本文所提出的通信協(xié)議進(jìn)行變通,例如本文所搭建的測試平臺。 結(jié)合測試結(jié)果,傳統(tǒng)的輪詢通信協(xié)議在現(xiàn)場應(yīng)用時難以滿足實(shí)時性要求高的場合,插值異波特率能提高非確定時序的主從式多設(shè)備通信的效率,而且避免某些從設(shè)備誤收數(shù)據(jù),同時該通信協(xié)議可以適用于其他本身不能自動仲裁的現(xiàn)場總線通信。 參考文獻(xiàn) [1] 郝濤,陸宣博.基于RS485主從串口通訊協(xié)議的設(shè)計(jì)[J].裝備制造技術(shù),2013(3):38-40. [2] 曹志凱,江青茵,鄭振耀,等.基于RS485總線的網(wǎng)絡(luò)控制通訊軟件設(shè)計(jì)及應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(13):243-245. [3] 周鵬,李艷艷.提高RS485總線主從通訊效率的軟件設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(8):70-73. [4] 王樹豐,方斌,程大偉,等.基于類令牌環(huán)的RS485多主通信協(xié)議模塊設(shè)計(jì)[J].工礦自動化,2013,39(12):17-20. [5] 李俊偉,周立儉,崔雪梅.基于改進(jìn)基準(zhǔn)點(diǎn)定位的指紋匹配算法[J].計(jì)算機(jī)工程,2011,37(12):164-166. [6] STMicroelectronics group of companies, STM32F107 Datasheet Revision4.0[R].2009. [7] 宋巖.ARM Cortex-M3權(quán)威指南[M].北京:北京航空航天大學(xué)出版社,2009. [8] Alama M S,Akhteruzzamana M, Cherrrib A K.Real-time fingerprint identification[J].Optics & Laser Technology,2004,36(3):191-196. 中圖分類號TP3 文獻(xiàn)標(biāo)識碼A DOI:10.3969/j.issn.1000-386x.2016.02.028 收稿日期:2014-08-01。景程,碩士生,主研領(lǐng)域:電梯控制系統(tǒng)及信號處理。趙國軍,教授。