卓 巖 白 濤
(1.上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240;2.深圳中廣核工程設(shè)計(jì)有限公司,廣東 深圳 518172)
基于PTP協(xié)議的提高工業(yè)以太網(wǎng)時(shí)鐘同步精度的方法研究
卓 巖1白 濤2
(1.上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240;2.深圳中廣核工程設(shè)計(jì)有限公司,廣東 深圳 518172)
介紹了PTP系統(tǒng)模型及其時(shí)間傳播過(guò)程、點(diǎn)對(duì)點(diǎn)透明時(shí)鐘的精確時(shí)鐘同步原理,應(yīng)用點(diǎn)延時(shí)機(jī)制計(jì)算路徑延時(shí)。針對(duì)晶振頻率漂移對(duì)硬件打時(shí)間戳的影響,用頻率補(bǔ)償算法來(lái)獲得更準(zhǔn)確的時(shí)間戳,從而提高工業(yè)以太網(wǎng)的時(shí)鐘同步精度。
時(shí)鐘同步 精度 PTP協(xié)議 頻率漂移 透明時(shí)鐘
目前工業(yè)以太網(wǎng)的同步技術(shù)越來(lái)越多地應(yīng)用于工業(yè)控制領(lǐng)域與測(cè)量系統(tǒng)[1]。所謂時(shí)鐘同步就是系統(tǒng)內(nèi)各節(jié)點(diǎn)與時(shí)鐘源的時(shí)間同步技術(shù)。目前廣泛采用的時(shí)間同步協(xié)議主要有網(wǎng)絡(luò)時(shí)間(NTP)同步和精確時(shí)鐘同步(PTP)協(xié)議,可達(dá)到亞微秒級(jí)同步誤差。但高要求的計(jì)量系統(tǒng)和事件序列分析/控制系統(tǒng)往往需要高精度的同步技術(shù),尤其對(duì)于同時(shí)發(fā)生的事件,需要實(shí)現(xiàn)納秒級(jí)的精確同步測(cè)量。以太網(wǎng)的時(shí)鐘同步關(guān)鍵技術(shù)之一是同步消息包時(shí)間戳的精確性。
時(shí)間戳的精確性取決于消息包靠近物理層的程度,影響時(shí)間戳精度的因素有晶振的穩(wěn)定性、物理層特性、時(shí)間戳分辨率、消息包收發(fā)時(shí)的抖動(dòng)、網(wǎng)絡(luò)結(jié)構(gòu)與負(fù)荷。針對(duì)消息包收發(fā)時(shí)的抖動(dòng)和晶振穩(wěn)定性對(duì)時(shí)間戳精度的影響,文獻(xiàn)[2]提出Kalman濾波算法估計(jì)消息包收發(fā)時(shí)的延時(shí)抖動(dòng),假設(shè)延時(shí)抖動(dòng)服從正態(tài)分布,而在實(shí)際應(yīng)用中時(shí)間戳值和消息包收發(fā)時(shí)的延時(shí)抖動(dòng)值并不服從正態(tài)分布;文獻(xiàn)[3]使用軟件打時(shí)間戳的方法,提出自適應(yīng)指數(shù)平滑的時(shí)鐘同步算法,同步精度能夠達(dá)到100μs;文獻(xiàn)[4]采用DP83640芯片使用硬件打時(shí)間戳的方法,設(shè)備的同步時(shí)間源選擇GPS,能達(dá)到納秒級(jí)同步精度。
筆者采用Broadcom帶IEEE 1588功能的物理層芯片,并且芯片帶有專(zhuān)門(mén)寄存器存儲(chǔ)收發(fā)消息的時(shí)間戳偏移量,使用在MAC層與PHY層之間硬件打時(shí)間戳的方法,以保證時(shí)間戳的高精確性。針對(duì)晶振穩(wěn)定性、消息包收發(fā)時(shí)的抖動(dòng)對(duì)消息包傳輸延時(shí)計(jì)算和時(shí)間戳精度的影響,提出基于PTP協(xié)議的頻率補(bǔ)償算法,減小頻率漂移對(duì)同步精度的影響,使同步精度能夠達(dá)到納秒級(jí)。
IEEE 1588標(biāo)準(zhǔn)定義了5種基本設(shè)備類(lèi)型[5],分別是普通時(shí)鐘(OC)、邊界時(shí)鐘(BC)、點(diǎn)到點(diǎn)透明時(shí)鐘(TC)、端到端透明時(shí)鐘和管理節(jié)點(diǎn)。每一個(gè)PTP系統(tǒng)不一定包含所有設(shè)備類(lèi)型。筆者研究的PTP系統(tǒng)模型是包含有透明時(shí)鐘的線性拓?fù)浣Y(jié)構(gòu)。
1.1點(diǎn)對(duì)點(diǎn)透明時(shí)鐘模型
點(diǎn)對(duì)點(diǎn)透明時(shí)鐘的模型如圖1所示,點(diǎn)對(duì)點(diǎn)透明時(shí)鐘端口只支持點(diǎn)延時(shí)測(cè)量機(jī)制。主時(shí)鐘只需要發(fā)送Sync和Fellow_Up消息,并接收Pdelay_Req消息。
計(jì)算駐留時(shí)間和鏈路延時(shí)的時(shí)間戳是由本地時(shí)鐘產(chǎn)生的,從時(shí)鐘通過(guò)駐留時(shí)間和鏈路延時(shí)計(jì)算接收到Sync消息的主時(shí)鐘時(shí)間。本地時(shí)鐘打時(shí)間戳?xí)r會(huì)產(chǎn)生抖動(dòng),所以由主時(shí)鐘和透明時(shí)鐘的頻率比引起的最大誤差是不可忽略的,如果主時(shí)鐘和本地時(shí)鐘的頻率比偏差為0.02%,則測(cè)得的駐留時(shí)間誤差為0.02%。假設(shè)駐留時(shí)間為1ms,則最大誤差為200ns,對(duì)于工業(yè)以太網(wǎng)這樣的誤差是不可接受的。有兩種減小時(shí)鐘誤差的方法,一種方法是使本地時(shí)鐘頻率等于主時(shí)鐘頻率,圖1中所示的RC模塊通過(guò)估計(jì)本地時(shí)鐘的比率來(lái)調(diào)整本地時(shí)鐘晶振頻率使本地時(shí)鐘和主時(shí)鐘的比率相同;另一種方法不調(diào)整本地時(shí)鐘晶振的頻率,本地時(shí)鐘是一種自由狀態(tài),如圖1中RE1模塊。
圖1 點(diǎn)對(duì)點(diǎn)透明時(shí)鐘模型
筆者所提的頻率補(bǔ)償算法是基于上文提到的本地時(shí)鐘等于主時(shí)鐘的一種改進(jìn)算法,通過(guò)頻率補(bǔ)償因子(RCF)減小頻率偏差引起的抖動(dòng),同時(shí)減小溫度等因素造成的晶振頻率漂移,得到盡可能準(zhǔn)確的時(shí)間戳,減小駐留時(shí)間和鏈路延時(shí)的計(jì)算誤差,提高時(shí)鐘的同步精度。
1.2PTP系統(tǒng)模型
PTP協(xié)議建立的是主從拓?fù)浣Y(jié)構(gòu),在圖2中,最優(yōu)時(shí)鐘(GM)有著最好的精確性和穩(wěn)定性,最優(yōu)時(shí)鐘的時(shí)間被當(dāng)做整個(gè)PTP域的參考時(shí)間。PTP系統(tǒng)中第n個(gè)節(jié)點(diǎn)的傳播時(shí)間是n個(gè)鏈路延時(shí)和橋延時(shí)之和。路徑延時(shí)包括線路延時(shí)和報(bào)文在發(fā)送端和接收端的抖動(dòng)。
PTP協(xié)議基于同步消息傳播和接收時(shí)的最精確的匹配時(shí)間,從時(shí)鐘通過(guò)與主時(shí)鐘交換同步消息而與主時(shí)鐘達(dá)到同步。同步消息發(fā)送與鏈路延時(shí)測(cè)量如圖3所示。
圖2 PTP模型拓?fù)浣Y(jié)構(gòu)與延時(shí)
圖3 同步消息發(fā)送與鏈路延時(shí)測(cè)量
2.1同步消息發(fā)送機(jī)制
為了讓計(jì)數(shù)器的值能夠加減,必須讓時(shí)間值轉(zhuǎn)化為同一時(shí)間基準(zhǔn)。這里引入頻率補(bǔ)償因子(RFC)的概念,RFC是兩個(gè)時(shí)鐘的頻率比值,用rx/y表示x和y之間的頻率比。兩個(gè)時(shí)鐘之間理想的頻率比rx/y=fx/fy。在圖3a中頻率比rn為:
(1)
2.2延時(shí)消息發(fā)送機(jī)制
PTP協(xié)議有兩種延時(shí)測(cè)量機(jī)制,延時(shí)請(qǐng)求-響應(yīng)機(jī)制和點(diǎn)延時(shí)機(jī)制。圖3b是點(diǎn)延時(shí)機(jī)制測(cè)量?jī)蓚€(gè)端口間的傳播時(shí)間。請(qǐng)求端n向應(yīng)答端n-1周期性地發(fā)送Pdelay_Req消息,并打入時(shí)間戳t1(j),n-1接收到Pdelay_Req消息,記錄接收到的時(shí)間t2(j)并立刻向從時(shí)鐘n發(fā)送Pdelay_Resp消息,并打入時(shí)間戳t3(j),從時(shí)鐘n接收到Pdelay_Resp消息,并記錄接收的時(shí)間t4(j)。鏈路延時(shí)為:
(2)
其中,c是Pdelay_Resp消息中校正域的值。
3.1延時(shí)的計(jì)算
PTP消息在網(wǎng)絡(luò)中傳播產(chǎn)生的延時(shí)可根據(jù)圖3a計(jì)算,橋延時(shí)是PTP消息在一個(gè)時(shí)鐘中駐留的時(shí)間:
(3)
鏈路延時(shí)是PTP消息在兩個(gè)節(jié)點(diǎn)之間傳播的時(shí)間,在圖3b中從時(shí)鐘n向從時(shí)鐘n-1發(fā)送一個(gè)請(qǐng)求報(bào)文并記錄消息離開(kāi)的時(shí)間t1(j)。節(jié)點(diǎn)n-1收到請(qǐng)求消息并發(fā)送應(yīng)答報(bào)文,節(jié)點(diǎn)n-1有兩個(gè)時(shí)間點(diǎn),一是收到請(qǐng)求消息時(shí)間t2(j),二是發(fā)送應(yīng)答消息時(shí)間t3(j)。節(jié)點(diǎn)n-1應(yīng)答延時(shí)的本地時(shí)間表達(dá)式為:
(4)
節(jié)點(diǎn)n請(qǐng)求延時(shí)的本地時(shí)間表達(dá)式為:
(5)
兩個(gè)節(jié)點(diǎn)之間的頻率補(bǔ)償因子RCF的估計(jì)值為:
(6)
鏈路延時(shí)的表達(dá)式為:
(7)
(8)
其中H表示選擇的連續(xù)Sync消息的個(gè)數(shù)。
3.2頻率補(bǔ)償同步算法
當(dāng)從時(shí)鐘接收到Sync消息,從時(shí)鐘n首先根據(jù)接收到的兩個(gè)相鄰Sync消息中主時(shí)鐘計(jì)數(shù)器的值和本地時(shí)鐘計(jì)數(shù)器的值計(jì)算頻率補(bǔ)償因子RCF,計(jì)算公式為:
(9)
(10)
3.3頻率補(bǔ)償算法應(yīng)用
頻率補(bǔ)償算法在工業(yè)以太網(wǎng)時(shí)鐘同步中,可以提高網(wǎng)絡(luò)時(shí)鐘的同步精度。在利用點(diǎn)延時(shí)機(jī)制計(jì)算鏈路延時(shí)時(shí),頻率補(bǔ)償算法可以用到校正域的計(jì)算中,用式(2)計(jì)算鏈路延時(shí)時(shí),頻率補(bǔ)償算法能夠減小由于抖動(dòng)造成的鏈路延時(shí)和駐留時(shí)間的計(jì)算誤差。網(wǎng)絡(luò)中加入透明時(shí)鐘后,用頻率補(bǔ)償算法計(jì)算駐留時(shí)間,能夠減小計(jì)算多個(gè)時(shí)鐘的延時(shí)而引入的誤差,從而提高時(shí)鐘同步的精度。
隨著工業(yè)以太網(wǎng)在工業(yè)現(xiàn)場(chǎng)得到越來(lái)越多的應(yīng)用,網(wǎng)絡(luò)的復(fù)雜度和數(shù)據(jù)交換速度增加,提高網(wǎng)絡(luò)中時(shí)鐘同步精度成為熱點(diǎn)。筆者參考目前應(yīng)用廣泛的精確時(shí)鐘同步協(xié)議(PTP)建立了包含透明時(shí)鐘的PTP系統(tǒng)模型,討論了硬件打時(shí)間戳晶振穩(wěn)定性對(duì)延時(shí)計(jì)算的影響,并介紹了一種頻率補(bǔ)償算法,消除頻率漂移對(duì)延時(shí)計(jì)算的影響,從而提高時(shí)鐘的同步精度。
[1] 關(guān)松青,肖昌炎,夏曉榮.IEEE 1588協(xié)議在工業(yè)以太網(wǎng)中的實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2011,37(6):237~238.
[2] 趙小嬌.隨機(jī)信號(hào)建模和濾波在時(shí)間同步中的應(yīng)用[D].北京:北京航空航天大學(xué),2012.
[3] 謝太君.分布式系統(tǒng)高精度時(shí)鐘同步的研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2015.
[4] Giorgi G,Narduzzi C.Performance Analysis of Kalman-Filter-Based Clock Synchronization in IEEE 1588 Networks[C].2009 International Symposium on Precision Clock Synchronization for Measurement,Control and Communication.Brescia:IEEE,2009:2902~2909.
[5] IEEE 1588,Precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S].Geneva:International Electrotechnical Commission,2009.
ResearchofImprovingIndustrialEthernetClockSynchronizationAccuracyBasedonPTPProtocol
ZHUO Yan1, BAI Tao2
(1.SchoolofElectronicInformationandElectricalEngineering,ShanghaiJiaotongUniversity,Shanghai200240,China;2.ChinaNuclearPowerEngineeringDesignCo.,Ltd.,Shenzhen518172,China)
Both system model and PTP time propagation process was described, including the principle of peer-to-peer transparent clock’s accurate clock synchronization and making use of delay mechanism to calculate path delay. Regarding crystal oscillator frequency deviation’s effect on hardware timestamp, the frequency compensation algorithm was adopted to obtain a more accurate timestamps to improve industrial Ethernet clock synchronization accuracy.
clock synchronization, accuracy, PTP protocol, frequency drift, transparent clock
TP393
A
1000-3932(2016)09-0949-04
2016-07-13(修改稿)