付道俊 劉 巍 陳源寶
(武漢第二船舶設(shè)計研究所 武漢 430064)
?
一種適用于RS485總線時鐘同步協(xié)議*
付道俊 劉 巍 陳源寶
(武漢第二船舶設(shè)計研究所 武漢 430064)
RS485總線被廣泛應(yīng)用于分布式控制領(lǐng)域,隨著對控制精度需求地不斷提高,分布式控制系統(tǒng)時鐘同步成為一項核心技術(shù)。論文在IEEE 1588協(xié)議的基礎(chǔ)上,提出了一種適用于RS485總線的時鐘同步協(xié)議,定義了協(xié)議主要幀結(jié)構(gòu),并經(jīng)過試驗平臺的驗證,驗證了協(xié)議的正確性。
時間同步; RS485; IEEE 1588
Class Number TP273
RS485總線網(wǎng)絡(luò)憑借組建成本低、可靠性高、分布范圍較大等特點[1~3],在分布式控制系統(tǒng)中得到廣泛應(yīng)用。隨著近年來對控制精度要求不斷地提升,時鐘同步技術(shù)成為分布式控制系統(tǒng)的核心技術(shù),如何保留投資,在原有RS485總線網(wǎng)絡(luò)上增加時鐘同步服務(wù),具有積極的意義。
本文在IEEE 1588協(xié)議[4~5]的基礎(chǔ)上提出一種適用于RS485總線的時鐘同步協(xié)議,由于協(xié)議運行于應(yīng)用層,可以很好地兼容現(xiàn)有系統(tǒng),便于在現(xiàn)有系統(tǒng)上實現(xiàn)時鐘同步服務(wù)地升級。
IEEE1588協(xié)議的全稱是“網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時鐘同步協(xié)議(IEEE 1588 Precision Clock Synchronization Protocol)”,簡稱PTP(Precision Timing Protocol)。其主要原理,是通過一個同步信號周期性的對網(wǎng)絡(luò)中所有節(jié)點的時鐘進行校正同步,可以使基于以太網(wǎng)的分布式系統(tǒng)達(dá)到精確同步[6~10]。
在RS485總線網(wǎng)絡(luò)中選取一個節(jié)點作為主鐘節(jié)點,其余節(jié)點時鐘與主鐘節(jié)點進行時鐘同步。如圖1所示。
時鐘同步協(xié)議主要包括五類數(shù)據(jù)幀,分別是時鐘快速同步幀,時鐘偏移計算參考幀,時鐘偏移計算幀,線路延遲計算請求幀,線路延遲計算回應(yīng)幀。時鐘同步方法如下:
時鐘同步流程如下:
1) RS485總線主鐘節(jié)點將時間信息(時間記為TZ1)通過時鐘快速同步幀向所有RS485總線從鐘節(jié)點進行廣播;
圖1 RS485總線時鐘同步原理圖
2) RS485總線從鐘節(jié)點接收時鐘快速同步幀,并將本地時間(時間記為TC1)調(diào)整至與時鐘快速同步幀一致,即TC1=TZ1,實現(xiàn)時鐘粗同步;
3) RS485總線主鐘節(jié)點向所有RS485總線從鐘節(jié)點廣播時鐘偏移計算參考幀,并記錄下發(fā)送幀的時間(時間記為TZ2);
5) RS485總線從鐘節(jié)點接收時鐘偏移計算參考幀,記錄該幀到達(dá)時間(時間記為TC2);
6) RS485總線主鐘節(jié)點將時間信息TZ2通過時鐘偏移計算幀向所有RS485總線從鐘節(jié)點進行廣播;
7) RS485總線從鐘節(jié)點接收時鐘偏移計算幀,存儲該幀時間信息TZ2;
8) RS485總線從鐘節(jié)點,如從鐘節(jié)點1,向RS485總線主鐘節(jié)點發(fā)送線路延遲計算請求幀,并記錄下發(fā)送該幀的時間(時間記為TC3);
9) RS485總線主鐘節(jié)點接收線路延遲計算請求幀,記錄該幀到達(dá)時間(時間記為TZ3);
知識的積累和消化的過程,也是思想理論創(chuàng)造者生成即成長的過程。這種創(chuàng)造能力是在接受、理解和反思已有思想理論的歷程中實現(xiàn)的,相應(yīng)的人的認(rèn)知結(jié)構(gòu)是“T”型的。在這里,總體上說,人的認(rèn)知的廣度是與認(rèn)知的深度成正比的。知識的儲備既要有廣度,又要有深度,能夠較好地結(jié)合二者。所以,廣博的知識、不羈的想象、豐富的經(jīng)驗、批判的反思、抽象的概括、邏輯的分析等等,都是要著力加以培養(yǎng)的。打下廣闊而又全面的知識基礎(chǔ),將為未來專業(yè)發(fā)展提供扎實而又充分的前提。如何處理好這“一橫”“一縱”關(guān)系,形成適當(dāng)?shù)闹R結(jié)構(gòu),需要學(xué)者審時度勢的智慧。
10) RS485總線主鐘節(jié)點將時間信息TZ3通過線路延遲計算回應(yīng)幀發(fā)送至RS485總線從鐘節(jié)點1;
11) RS485總線從鐘節(jié)點1接收線路延遲計算回應(yīng)幀,存儲該幀時間信息TZ3;
12) RS485總線從鐘節(jié)點1,已知時間信息TC2、TZ2、TC3,TZ3,則:
TC2=TZ2+Toffset+Tdelay1
(1)
TZ3=TC3-Toffset+Tdelay2
(2)
其中Toffset為RS485總線從鐘節(jié)點1與RS485總線主鐘節(jié)點的時鐘偏差,Tdelay1為RS485總線主鐘節(jié)點至RS485總線從鐘節(jié)點1線路延遲,Tdelay2為RS485總線從鐘節(jié)點1至RS485總線主鐘節(jié)點的線路延遲;鑒于在同一RS485總線中,Tdelay1與Tdelay2為近似相同,故:
Toffset=(TC2-TZ2+TC3-TZ3)/2
(3)
其它RS485總線從鐘節(jié)點時鐘過程與RS485總線從鐘節(jié)點1時鐘同步過程類似。
4.1 幀結(jié)構(gòu)
時鐘同步協(xié)議包括的五類數(shù)據(jù)幀均采用9字節(jié),其中時鐘快速同步幀結(jié)構(gòu)定義如表1所示。
表1 時鐘快速同步幀定義表
其中:EQ[8:1]表明節(jié)點號,主鐘節(jié)點為0xff;FD1為1表明該幀為時鐘快速同步幀;FD2為1表明該幀為時鐘偏移計算參考幀;FD3為1表明該幀為時鐘偏移計算幀;FD4為1表明該幀為線路延遲計算請求幀;FD5為1表明該幀為線路延遲計算回應(yīng)幀;TY[8:1]表明2000年以后的年份,取值范圍[0,255],表明年份[2000,2255];TM[8:1]表明月數(shù),取值范圍[1,12];TD[8:1]表明天數(shù),取值范圍[1,31];TH[8:1]表明小時數(shù),取值范圍[0:23];TM[8:1]表明分鐘數(shù),取值范圍[0:59];TS[8:1]表明秒數(shù),取值范圍[0:59];TMS[8:1]表明10毫秒數(shù),取值范圍[0:100]。
表2 時鐘偏移計算參考幀,時鐘偏移計算幀,線路延遲計算請求幀,線路延遲計算回應(yīng)幀定義表
其中:EQ[8:1]表明節(jié)點號,主鐘節(jié)點為0xff;FD1為1表明該幀為時鐘快速同步幀;FD2為1表明該幀為時鐘偏移計算參考幀;FD3為1表明該幀為時鐘偏移計算幀;FD4為1表明該幀為線路延遲計算請求幀;FD5為1表明該幀為線路延遲計算回應(yīng)幀;TD[8:1]表明天數(shù),取值范圍[1,31];TH[8:1]表明小時數(shù),取值范圍[0:23];TM[8:1]表明分鐘數(shù),取值范圍[0:59];TS[8:1]表明秒數(shù),取值范圍[0:59];TN[32:1]表明一秒以內(nèi)的納秒數(shù),取值范圍[0,1000000000)。
4.2 測試環(huán)境與結(jié)果
采用三臺PC機配置三塊RS485接口卡作為協(xié)議運行環(huán)境,采用C語言編程搭建協(xié)議驗證環(huán)境。經(jīng)過測試,時鐘同步精度優(yōu)于1ms,驗證了協(xié)議正確性和可行性。
本文在IEEE 1588協(xié)議的基礎(chǔ)上提出了一種適用于RS485總線時鐘同步協(xié)議,定義了五類同步幀的幀結(jié)構(gòu),并通過實驗驗證了本協(xié)議的正確性和可行性。
[1] 馮子陵,俞建新.RS485總線通信協(xié)議的設(shè)計與實現(xiàn)[J].計算機工程,2012,38(20):215-218.
[2] 徐敏航,葉蓓.多路RS485板的開發(fā)與應(yīng)用[J].中國修船,2013,26(5):33-37.
[3] 王新剛,朱彬若,王夢溪,等.提高低壓電力用戶用電信息采集系統(tǒng)本地通信成功率的探討[J].電測與儀表,2013,50(573):17-20.
[4] IEEE Std 1588 TM-2002 Standard for a precision clock synchronization protocol for networked measurement and control systems[S]. 2002.
[5] IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control System. IEEE Instrumentation and Measurement Society[C].2008.
[6] 曾慶華.精確時鐘同步協(xié)議分析及實現(xiàn)[J].微型電腦應(yīng)用,2012,28(10):41-44.
[7] RYAN Z, MIKKEL H, RADIM B. The impact of Network Latency on the Synchronization of Real-World IEEE1588-2008 Devices[J]. ISPCS 2010 international IEEE Symposiumon Precision Clock Synchronization for Measurement, Control and Communication,2010,10:12-16.
[8] Jiho Han, Deog-Kyoon Jeong. Practical Considerations in the Design and Implementation of Time Synchronization Systems Using IEEE-1588[J]. IEEE Applications & Practice Magazine,2009,47(11):82-86.
[9] Liu X Q, Chen Y, Liang S. Improvement of precise time synhronization algorithm based on IEEE 1588[C]//International Conference on Computer, Mechatronics, Control and Electronic Engineering,2010:70-73.
[10] Sungwon Lee. An Enhanced IEEE 1588 Time Synchronization Algorithm for Asymmetric Communication Link using Block Brust Transmission[J]. IEEE Communication Letters,2008,12(9):687-689.
A Time Synchronization Protocol for RS485 Bus
FU Daojun LIU Wei CHEN Yuanbao
(Wuhan Second Ship Design and Research Institute, Wuhan 430064)
The RS485 bus is widely used in the field of distributed control. As the precision demand enhanced, the time synchronization of the control system becomes a key technology. Based on the IEEE 1588 protocol, a method is presented for the time synchronization for RS485 bus. This paper defines the main frame structure and the protocol, and the protocol is verified through the test on verification platform.
time synchronization, RS485, IEEE 1588
2014年11月11日,
2014年12月28日
付道俊,男,碩士,工程師,研究方向:艦船測控技術(shù)。劉巍,男,工程師,研究方向:艦船控制。陳源寶,男,博士,工程師,研究方向:艦船信息。
TP273
10.3969/j.issn1672-9730.2015.05.026