楊傳順 袁 建 李國華
(江蘇自動化研究所,江蘇 連云港 222006)
隨著分布式控制系統(tǒng)應(yīng)用范圍的廣泛增長和應(yīng)用規(guī)模的不斷擴(kuò)大,通過系統(tǒng)網(wǎng)絡(luò)特別是控制系統(tǒng)中廣泛應(yīng)用的以太網(wǎng)傳遞和同步系統(tǒng)內(nèi)各分散節(jié)點(diǎn)的時鐘變得越來越重要。
系統(tǒng)對時鐘的應(yīng)用主要有兩種:基于絕對時間的應(yīng)用和基于頻率的應(yīng)用。絕對時間用于記錄系統(tǒng)內(nèi)事項(xiàng)發(fā)生的次序;頻率用于控制器、執(zhí)行器以及傳感器的同步采樣、反饋和執(zhí)行。
基于此,工業(yè)界一直在致力于解決以太網(wǎng)定時同步能力不足的問題。1992年推出的基于軟件控制方式的網(wǎng)絡(luò)時間協(xié)議(network time protocol,NTP),同步精度可以達(dá)到200 μs,但是不能滿足測量儀器和工業(yè)控制所需的精度。為了提高分布網(wǎng)絡(luò)中定時同步的精度,美國工業(yè)界成立了網(wǎng)絡(luò)精確時鐘同步委員會,于2002年底推出了IEEE 1588標(biāo)準(zhǔn)[1]。該標(biāo)準(zhǔn)的精確時鐘同步協(xié)議在時鐘同步方面取得了重大進(jìn)展,2008年推出了該標(biāo)準(zhǔn)的2.0版,國際電工協(xié)會也把此標(biāo)準(zhǔn)納入到了IEC標(biāo)準(zhǔn)中,對應(yīng)的標(biāo)準(zhǔn)是IEC 61588[2]。
IEEE 1588標(biāo)準(zhǔn)的全稱是網(wǎng)絡(luò)測量和控制系統(tǒng)的精確時鐘同步協(xié)議(precision time protocol,PTP)。PTP和NTP技術(shù)一樣,具有配置容易、收斂快速以及對網(wǎng)絡(luò)帶寬和資源消耗少等優(yōu)點(diǎn)。它的主要原理是通過一個同步信號周期性地對網(wǎng)絡(luò)中所有節(jié)點(diǎn)的時鐘進(jìn)行校正,可以使基于以太網(wǎng)的分布式系統(tǒng)時鐘達(dá)到高精度同步。
在IEEE 1588標(biāo)準(zhǔn)中,系統(tǒng)內(nèi)的時鐘分為普通時鐘和邊界時鐘兩種。只有1個PTP通信端口的時鐘是普通時鐘;有2個及以上PTP通信端口的時鐘是邊界時鐘。每個PTP端口的狀態(tài)有9種,主要的3種狀態(tài)是:主狀態(tài)(PTP_MASTER)、從狀態(tài)(PTP_SLAVE)和被動狀態(tài)(PTP_PASSIVE)。PTP端口處于主狀態(tài)的時鐘稱為主時鐘(grandmaster clock,GMC),處于從狀態(tài)的時鐘稱為從時鐘,主時鐘負(fù)責(zé)同步系統(tǒng)內(nèi)所有的從時鐘。如果PTP端口處于被動狀態(tài),則意味著對應(yīng)的時鐘不參與時鐘同步。
理論上任何時鐘都能實(shí)現(xiàn)主時鐘和從時鐘的功能,但一個系統(tǒng)內(nèi)只能有一個主時鐘,整個系統(tǒng)中的最優(yōu)時鐘為主時鐘,它具有最好的穩(wěn)定性和精確性等。根據(jù)各節(jié)點(diǎn)的時鐘精度、級別以及通用協(xié)調(diào)時間(universal time coordinated,UTC)的可追溯性等,系統(tǒng)采用最優(yōu)主時鐘算法來自動選擇系統(tǒng)內(nèi)的主時鐘。典型的主從時鐘關(guān)系示意圖如圖1所示。
圖1 主從時鐘關(guān)系示意圖Fig.1 Relationship between master and slave clocks
PTP的參考體系結(jié)構(gòu)如圖2所示[3],協(xié)議層包含3個通信接口:端口接口、時間戳接口和時鐘接口。端口接口用來分配和接收PTP信息。時間戳接口通過對同步報(bào)文加蓋時間戳來實(shí)現(xiàn)精確時鐘同步,可以根據(jù)精度要求決定采用是硬件還是軟件產(chǎn)生的時間戳。時鐘接口能夠?qū)Ρ镜貢r鐘進(jìn)行讀寫操作,達(dá)到絕對時間和頻率與主時鐘的同步。該接口包含了與時鐘同步質(zhì)量(如精確度、穩(wěn)定度等)密切相關(guān)的控制算法。
圖2 PTP參考體系結(jié)構(gòu)Fig.2 PTP reference architecture
精確時鐘同步協(xié)議(PTP)采用分層的主從模式進(jìn)行時鐘同步,同步的基本原理是對發(fā)出和接收的報(bào)文時間進(jìn)行記錄,每條報(bào)文都有時間戳信息。主時鐘周期性發(fā)布時間同步報(bào)文,從時鐘根據(jù)接收到的同步報(bào)文的時間戳信息,計(jì)算出主從線路報(bào)文傳輸?shù)臅r間延遲和主從時鐘的時鐘偏移,并相應(yīng)地調(diào)整本地時間,使從時鐘保持與主時鐘一致的頻率與相位。系統(tǒng)據(jù)此實(shí)現(xiàn)主從時鐘的頻率同步和時間同步。時鐘同步的精度主要依賴于計(jì)數(shù)器頻率的準(zhǔn)確性和鏈路的對稱性[4]。
PTP定義了4種多點(diǎn)傳送的報(bào)文:同步報(bào)文、跟隨報(bào)文、延遲請求報(bào)文和延遲應(yīng)答報(bào)文。這些報(bào)文的交互順序如圖3所示,收到的信息回應(yīng)與時鐘當(dāng)前的狀態(tài)有關(guān)。
圖3 偏移和延遲的測量Fig.3 Measurement of time offset and delay
為了描述分布式控制系統(tǒng)的時鐘同步問題,我們以一個主時鐘和一個從時鐘的同步過程為例,其具體算法說明如下。
①主時鐘按照定義的間隔時間(缺省是2 s)周期性地向從時鐘發(fā)送“同步報(bào)文”,這個報(bào)文的時間戳是主時鐘打上的預(yù)計(jì)發(fā)送時間。該報(bào)文在接收端由從時鐘記錄下接收時間ts1。PTP支持由硬件輔助在物理層或接近物理層的位置檢測和記錄時間戳,以便提高同步時鐘的精度。
②主時鐘向從時鐘發(fā)送“跟隨報(bào)文”,此報(bào)文包含先前的同步報(bào)文準(zhǔn)確的發(fā)送時間tm1。
假設(shè)系統(tǒng)的網(wǎng)絡(luò)延遲時間為tDelay,從時鐘和主時鐘的偏移時間為tOffset,則:
③從時鐘向主時鐘發(fā)送“延時請求報(bào)文”(延時請求報(bào)文的間隔是獨(dú)立設(shè)置的),報(bào)文發(fā)送后由從時鐘記下準(zhǔn)確的發(fā)送時間ts2,在主時鐘端記錄準(zhǔn)確的接收時間tm2。
④主時鐘向從時鐘返回一個“延時響應(yīng)報(bào)文”,此報(bào)文包含先前的“延時請求報(bào)文”的準(zhǔn)確接收時間tm2,從時鐘利用這個接收時間和由它記錄的發(fā)送時間ts2,可以得到:
根據(jù)網(wǎng)絡(luò)鏈路的對稱性,由式(1)和式(2)可以計(jì)算出報(bào)文傳輸?shù)钠骄舆t時間:
⑤重復(fù)步驟①,由主時鐘發(fā)送新的同步報(bào)文,可以在從時鐘端得到新的同步報(bào)文的接收時間ts3。
⑥重復(fù)步驟②,由主時鐘發(fā)送新的跟隨報(bào)文,可以得到新的同步報(bào)文的準(zhǔn)確發(fā)送時間tm3。
則主從時鐘的偏移為:
根據(jù)求出的偏移tOffset和延遲tDelay,如果目前的從時鐘時間為tsOld,則可以計(jì)算出目前應(yīng)該同步到的新的從時鐘時間tsNew:
據(jù)此,在接下來的一個同步周期內(nèi),就可以實(shí)現(xiàn)從時鐘和主時鐘的同步。以上是整個時鐘同步過程的具體步驟。
在實(shí)際的分布式應(yīng)用中,同步報(bào)文和跟隨報(bào)文的發(fā)送是按照定義的時間間隔周期性發(fā)送的,延遲請求報(bào)文和延遲應(yīng)答報(bào)文發(fā)送間隔可以是不規(guī)則的,其測量間隔時間(缺省值是4~60 s之間的隨機(jī)值)比偏移值測量間隔時間要大[5],這樣做可以減輕網(wǎng)絡(luò)尤其是終端設(shè)備的負(fù)荷。
IEEE 1588采用時間分布機(jī)制和時間調(diào)度概念,系統(tǒng)內(nèi)的從時鐘設(shè)備可使用普通振蕩器,通過軟件調(diào)度與主時鐘保持同步。
速率校正通過測量每個報(bào)文從主時鐘開始與到達(dá)從時鐘之間的差異,計(jì)算出從時鐘頻率相對于主時鐘頻率的一個基本比值來校正頻率差。由于報(bào)文延時偏差可能很明顯,有可能使任何單一的速率測量有很大的不精確性,因此,可以利用平均路徑延時測量來檢測短時報(bào)文,并使用這些報(bào)文檢測從時鐘對主時鐘的頻率偏移[6]。
為避免從時鐘的抖動和振蕩,維持時鐘的單調(diào)性,精確時鐘同步協(xié)議(PTP)沒有立即用前面得到的時鐘偏差直接調(diào)整本地時鐘,而是把對PTP節(jié)點(diǎn)本地時鐘的校正處理看作一個鎖相環(huán),通過一個環(huán)路濾波器轉(zhuǎn)換為一個對可變頻率振蕩器的控制量來控制振蕩器的振蕩頻率,從而間接調(diào)整系統(tǒng)的從時鐘[7]。
PTP可以由軟件記錄報(bào)文的發(fā)送時間戳和接收時間戳,也可以由硬件記錄。如圖4所示,PTP支持在物理鏈路層A、驅(qū)動程序?qū)覤和應(yīng)用軟件層C處檢測和記錄報(bào)文發(fā)送和接收的時間戳。越靠近物理鏈路層,同步精度越高;越靠近應(yīng)用軟件層,同步精度越低。早期的網(wǎng)絡(luò)時間協(xié)議(NTP)是只有軟件控制的同步協(xié)議,只在應(yīng)用軟件層打上時間戳,因此同步的精度不高;而PTP為了提高系統(tǒng)的時鐘同步精度,既使用軟件,也使用硬件和軟件配合,能獲得更精確的定時同步。PTP支持硬件輔助在物理鏈路層檢測和記錄報(bào)文的時間,從而把報(bào)文從驅(qū)動程序到應(yīng)用軟件處理的不確定時間延遲排除在系統(tǒng)精度的分析之外[8]。
圖4 報(bào)文時間戳的檢測和記錄Fig.4 Detection and record of message timestamp
目前已有多種芯片和微控制器支持PTP時間戳硬件實(shí)現(xiàn),常見的有美國國家半導(dǎo)體的DP83640芯片、Silicon Labs公司生產(chǎn)的Si5315芯片和飛思卡爾的ColdFire MPU等,也可以采用FPGA設(shè)計(jì)實(shí)現(xiàn)。當(dāng)采用硬件輔助檢測和記錄PTP報(bào)文的時間戳?xí)r,即在以太網(wǎng)物理層(PHY)中放置這些器件,一旦線路上有PTP包,即被這些器件讀?。?]。因此,支持PTP時間戳的硬件功能實(shí)現(xiàn)是保證時間同步精度的關(guān)鍵器件。采用此設(shè)計(jì)方法的一個優(yōu)點(diǎn)是僅需替換掉以太網(wǎng)物理層并增加IEEE 1588 PTP軟件,便可將這種解決方案添加到已有的產(chǎn)品設(shè)計(jì)中,從而避免轉(zhuǎn)換到新的處理器系列或開發(fā)輔助FPGA的復(fù)雜過程。
采用DP83640芯片實(shí)現(xiàn)以太網(wǎng)時鐘同步的系統(tǒng)結(jié)構(gòu)圖如圖5所示。
圖5 系統(tǒng)結(jié)構(gòu)圖Fig.5 Structure of the system
當(dāng)采用PTP時,本地時鐘相對于主時鐘的同步時鐘精度可由PTP的標(biāo)準(zhǔn)差(或稱均方差)表示,PTP的標(biāo)準(zhǔn)差基于Allan標(biāo)準(zhǔn)差,Allan標(biāo)準(zhǔn)差σy(τ)的估計(jì)如式(6)所示:
式中:xk、xk+1、xk+2為對應(yīng)時間 tk、tk+ τ、tk+2τ的樣本測量值;τ為樣本測量的時間間隔;N為樣本總數(shù)。Allan標(biāo)準(zhǔn)差是對時基振蕩器頻率變化的二階統(tǒng)計(jì),PTP標(biāo)準(zhǔn)差則是對測量時鐘和本地參考時鐘的偏差統(tǒng)計(jì),PTP方差定義為:
由式(6)和式(7)可得PTP的標(biāo)準(zhǔn)差無偏估計(jì)的計(jì)算如式(8)所示:
式中:xk、xk+1、xk+2為對應(yīng)時間 tk、tk+ τ、tk+2τ的測量值;τ為樣本測量的時間間隔;N為樣本總數(shù)。
測試系統(tǒng)時鐘同步精度的方法有多種,最常用的是通過示波器觀察秒脈沖信號(pulse per second,PPS)的波形[10]。
為了使測試的精度能夠滿足實(shí)際的工程應(yīng)用,對不同情況下的以太網(wǎng)網(wǎng)絡(luò)負(fù)載分別進(jìn)行了相應(yīng)的測試,測試系統(tǒng)的組成如圖6所示。
圖6 同步精度測試系統(tǒng)的組成Fig.6 Compositions of the test system for synchronization accuracy
設(shè)置主時鐘和從時鐘在某一頻率點(diǎn)產(chǎn)生一個時鐘輸出,然后比較這兩路時鐘信號。采用秒脈沖測量是由于秒脈沖信號一般從數(shù)字輸出中產(chǎn)生,雖然會對同步結(jié)果增添額外的誤差,但是附加的誤差僅會影響數(shù)字輸入和輸出,而不是同步時鐘本身,因此不會包括在同步測量中[11]。時鐘同步精度秒脈沖測試結(jié)果如表1所示。
表1 測試結(jié)果Tab.1 Test result
由表1可知,當(dāng)網(wǎng)絡(luò)負(fù)載在80%時,從時鐘和主時鐘的同步精度在28.0 ns的標(biāo)準(zhǔn)差內(nèi),完全能夠滿足分布式控制系統(tǒng)的時鐘需求。
隨著分布式測量和控制系統(tǒng)控制節(jié)點(diǎn)規(guī)模的不斷增大,節(jié)點(diǎn)間的距離分散化和數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)化,使節(jié)點(diǎn)間的時鐘同步變得愈加重要。依靠傳統(tǒng)的專用線纜的方式同步系統(tǒng)時鐘,只會增加系統(tǒng)的復(fù)雜性、降低系統(tǒng)的可靠性。
IEEE 1588精確時鐘同步協(xié)議的出現(xiàn),為分布式測控系統(tǒng)的時鐘同步提供了一種切實(shí)可行的途徑。由于PTP的應(yīng)用建立在系統(tǒng)的通信網(wǎng)絡(luò)(不局限于以太網(wǎng))上[12],不需要為時鐘的傳遞布置特別的網(wǎng)絡(luò),只需在原有網(wǎng)絡(luò)上添加時鐘同步報(bào)文。這些報(bào)文只占用少許的網(wǎng)絡(luò)資源,它們和控制數(shù)據(jù)包或其他信息包共享網(wǎng)絡(luò),具有較低的網(wǎng)絡(luò)開銷,在不需要太多資源的情況下,就能實(shí)現(xiàn)微秒級的高精度時鐘同步[13]。
IEEE 1588標(biāo)準(zhǔn)的精確時鐘協(xié)議,代表了控制網(wǎng)絡(luò)時鐘同步技術(shù)發(fā)展的新趨勢,值得進(jìn)一步的研究和應(yīng)用推廣。
[1]IEEE Instrumentation and Measurement Society.IEEE Std 1588-2008 IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S].New York,NY 10016-5997,IEEE-SA Standards Board,2008.
[2]International Electrotechnical Commission.IEC 61588-2009 Precision clock synchronization protocol for networked measurement and control systems[S].IEC under Licence from IEEE,ISBN2-8316-1026-3,2009.
[3]Mahmood A,Gaderer G.Timestamping for IEEE 1588 based clock synchronization in wireless LAN[C]//ISPCS 2009 International IEEE Symposium on Precision Clock Synchronization for Measurement,Control and Communication.Italy,2009:63-68.
[4]Rodrigues S.IEEE 1588 and synchronous Ethernet in telecom[C]//ISPCS 2007 International IEEE Symposium on Precision Clock Synchronization forMeasurement,Controland Communication.Gaderer,2007:138-142.
[5]魏豐,孫文杰.IEEE 1588協(xié)議時鐘同步報(bào)文的精確時間標(biāo)記方法研究[J].儀器儀表學(xué)報(bào),2009(1):162-169.
[6]王颋,王平,向敏.EPA網(wǎng)絡(luò)控制系統(tǒng)時鐘同步主時鐘控制算法研究[J].系統(tǒng)仿真學(xué)報(bào),2009(1):146-151,156.
[7]朱寶,楊順昆.實(shí)時分布式仿真測試平臺時鐘同步算法[J].計(jì)算機(jī)工程,2010(24):231-232,235.
[8]王波,呂俊偉,于振濤.基于D-S的時鐘同步競爭安全算法[J].電訊技術(shù),2011(1):61-67.
[9]李學(xué)橋,陳園,梁爽.基于IEEE1588協(xié)議的精確時鐘同步算法改進(jìn)[J].計(jì)算機(jī)工程與科學(xué),2011(2):42-45.
[10]章涵,馮冬芹,褚健.基于透明傳輸?shù)臄?shù)控系統(tǒng)時鐘同步算法[J].計(jì)算機(jī)集成制造系統(tǒng),2010(4):873-877.
[11]魯立,馮冬芹,褚健,等.傳輸時延和時鐘同步對以太網(wǎng)控制系統(tǒng)的影響[J].控制理論與應(yīng)用,2010(6):793-798.
[12]于會游,周春暉,許希斌,等.分組通信網(wǎng)絡(luò)時鐘同步研究及性能仿真[J].計(jì)算機(jī)仿真,2009(5):173-178.
[13]蔡君,范馨月,周非.分組網(wǎng)絡(luò)時鐘同步算法的研究[J].電信科學(xué),2010(S2):227-231.