IEEE1588精密時鐘同步分析
——
摘要: 數(shù)據(jù)傳輸及處理的綜合要求使局域網(wǎng)在測試與測量領(lǐng)域盡顯技術(shù)優(yōu)勢,新一代測試總線LXI應運而生。在現(xiàn)有以太網(wǎng)基礎(chǔ)上開展測試與測量,首先需要解決的是實現(xiàn)不同終端設(shè)備之間的精密時鐘同步,LXI采用IEEE1588。本文主要包含3個部分:IEEE1588同步元件的軟硬件組成、精密時鐘同步的實現(xiàn)及其精確度測試。
關(guān)鍵詞: LXIIEEE1588同步
Analysis of the Precise Time Synchronization of IEEE1588
Huang Yunshui Feng Yuguang
Abstract: With the improving requirement of data transferring and complex processing in test and measurement, a novel LXI bus standard came into being accordingly. To realize networked test and measurement on current Ethernet network, precise time synchronization among different terminals should be achieved. This article mainly includes three parts: hardware and software formation of IEEE1588 synchronization devices, implementation of precise synchronization and accurate test.
Keywords: LXI,IEEE1588,synchronization.
0引言
測試與測量(Test and Measurement,T&M)的發(fā)展以測試總線的發(fā)展為標志。測試總線從GPIB到VXI再到PXI,測試儀器也由機架式發(fā)展到了插卡式。但是T&M對數(shù)據(jù)傳輸與處理綜合要求的逐步提高使得這種發(fā)展已經(jīng)遠遠不能滿足人們的需求,于是以太網(wǎng)以其優(yōu)秀的傳輸性能開始被廣泛采用。
人們開始在測試與測量系統(tǒng)中直接接入以太網(wǎng),然后使用GPIB、VXI或者PXI總線連接儀器,達到向遠程地點傳輸數(shù)據(jù)或者從遠程地點接收命令的目的。去年9月,Agilent公司和VXI科技公司聯(lián)合推出了LXI(LANbased eXtensions for Instruments),這是一種適用于測試系統(tǒng)的新一代基于LAN的模塊化平臺標準。LXI總線不受帶寬、軟件和計算機背板體系結(jié)構(gòu)的限制,而且能利用日益增長的Ethernet吞吐能力。
LXI是一種基于網(wǎng)絡(luò)的儀器接口規(guī)范,為實現(xiàn)各種終端設(shè)備之間的同步控制,采用了以太網(wǎng)的精密時間協(xié)議(Precision Time Protocol,PTP),即IEEE1588。IEEE1588定義了一個在測量和控制網(wǎng)絡(luò)中,與網(wǎng)絡(luò)交流、本地計算和分配對象有關(guān)的精確同步時鐘的協(xié)議(PTP)。下面介紹這種精密時鐘協(xié)議的體系結(jié)構(gòu)、工作原理以及它的精度分析。
1IEEE1588體系結(jié)構(gòu)
1.1關(guān)于精密時鐘
一個1588精密時鐘(PTP)系統(tǒng)包括多個節(jié)點,每一個都代表一個時鐘,時鐘之間經(jīng)由網(wǎng)絡(luò)連接。按工作原理,時鐘可以分為普通時鐘和邊界時鐘兩種。二者的區(qū)別是普通時鐘只有一個PTP端口,而邊界時鐘包括多個PTP端口。在網(wǎng)絡(luò)中,每一個時鐘都可能處于下面3種狀態(tài):從屬時鐘(SLAVE)、主時鐘(MASTER)和原主時鐘(PASSIVE)。每個時鐘所處的狀態(tài)是根據(jù)最優(yōu)化的時鐘算法決定的,圖2IEEE1588的三層結(jié)構(gòu)這些狀態(tài)隨著網(wǎng)絡(luò)構(gòu)造的改變而改變。
1.2PTP參考體系結(jié)構(gòu)
PTP體系結(jié)構(gòu)的特別之處在于硬件部分與協(xié)議的分離,以及軟件部分與協(xié)議的分離,因此,運行時對處理器的要求很低。事實上,下面可以看到,PTP的體系結(jié)構(gòu)是一種完全脫離操作系統(tǒng)的軟件結(jié)構(gòu)。
PTP參考體系結(jié)構(gòu)如圖1所示。硬件單元由一個高度精確的實時時鐘和一個用來產(chǎn)生時間印章的時間印章單元(TSU)組成。軟件部分通過與實時時鐘和硬件時間印章單元的聯(lián)系來實現(xiàn)時鐘同步。
圖1同步元件組成框圖
PTP這種體系結(jié)構(gòu)的目的是為了支持一種完全脫離操作系統(tǒng)的軟件組成模型,如圖2所示。根據(jù)抽象程度的不同,PTP可分為3層結(jié)構(gòu): 協(xié)議層、OS抽象層和OS層。
協(xié)議層包含完成網(wǎng)絡(luò)時鐘同步的精密時鐘協(xié)議,它能運用在不同的通信元件中(如PC、集線器、路由器等)。協(xié)議層中使用的僅僅是ANSI/ISO C中的保角函數(shù)(Conformal Functions),因此無需對不同平臺的接口功能函數(shù)有很深的了解,就能很容易地移植該協(xié)議。協(xié)議層與OS抽象層之間的通信是通過一個序列和3個精確定義的接口實現(xiàn)的。
OS抽象層包含了基于操作系統(tǒng)的功能函數(shù),
因此,這一層操作者必須掌握。這一層中包含PTP的3個通信接口:時間印章接口、時鐘接口、端口接口。時間印章接口通過對Sync和DelayReq信號加蓋時間印章來提供精密時鐘協(xié)議,同時根據(jù)精度需要決定到底是硬件還是軟件產(chǎn)生時間印章。產(chǎn)生“軟件時間印章”的最好方法是依賴操作系統(tǒng)的NIC網(wǎng)絡(luò)接口卡驅(qū)動,并且要在傳輸媒介中取得越近越好。通過時鐘接口能夠?qū)Ρ镜貢r鐘進行讀和更改的操作,當然,這些操作是建立在熟知各類功能函數(shù)的基礎(chǔ)上。該接口包含了與時鐘同步質(zhì)量(如精確度、穩(wěn)定度等)密切相關(guān)的控制算法。端口接口用來分配/接收PTP信息。
這種模塊化的軟件平臺在Windows與Linux中的應用是通過軟件中的時間印章實現(xiàn)的。純粹的軟件實現(xiàn)也能達到大約100μs 的精確度,而且精確度很有可能達到小于10μs的精確度。
1.3IEEE1588 與集線器
IEEE1588的精確度與所基于網(wǎng)絡(luò)拓撲結(jié)構(gòu)的偏移抖動(latency jitter)密切相關(guān)。測量時,點對點連接能提供最高的精確度,而Hub的使用會產(chǎn)生網(wǎng)絡(luò)抖動(jitter)。當負載很低或者根本沒有負載時第二層集線器(Layer 2 switches)的處理時間很短,一般是2μs~10μs外加信息包接收時間。但是,集線器是以序列的方式處理和儲存數(shù)據(jù),采取“存儲-轉(zhuǎn)發(fā)”方式進行數(shù)據(jù)交換的。因此僅僅一個序列的最大長度信息包就會給下面的信息包造成大約122μs的延遲,而且在高負載條件下,往往不止存在一個序列。
該協(xié)議的精確度的第二個問題是,(在下面的分析中可以看出)當考慮偏移(latency)的時候假設(shè)從主時鐘到從屬時鐘以及從從屬時鐘到主時鐘是完全對稱的,很顯然,在較高的網(wǎng)絡(luò)負載中這一點幾乎是無法保證的。
IEEE802.2D/p信息包的優(yōu)先權(quán)(Prioritization)根本無法真正解決上述問題。因為在這種協(xié)議中,至少在同步信息包的前面必須有一個長信息包,因此,在傳輸?shù)倪^程中就會產(chǎn)生122μs的抖動,而且一般在優(yōu)先程序(priority scheduler)后面會存在一個有2到8個信息包的序列,而且還可能不止一個序列,這就意味著在重負載的條件下,將會存在360μs到1ms的抖動。 這個問題的解決方法是在集線器中使用IEEE1588邊界時鐘。這樣就只存在點對點連接,在主時鐘和從屬時鐘之間幾乎不存在抖動,而且,集線器內(nèi)部序列的延遲(抖動)(delay/jitter)也不會有任何關(guān)系了。在本文精度測試的試驗中就是接入了邊界時鐘后進行的測試,如圖3所示。
圖3邊界時鐘的使用2IEEE1588的時間同步實現(xiàn)
同步過程分為兩個階段:偏移測量階段和延遲測量階段。
2.1偏移測量
偏移測量階段用來修正主時鐘和從屬時鐘的時間差。在這個偏移修正過程中,主時鐘周期性發(fā)出一個確定的同步信息(簡稱Sync信息)(一般為每兩秒一次),它包含了一個時間印章(time stamp),精確地描述了數(shù)據(jù)包發(fā)出的預計時間。如圖4所示,假設(shè)同步之前主時鐘的時間為Tm=1050s,而從屬時鐘的時間為Ts=1000s。主時鐘測量出發(fā)送的準確時間TM1,而從屬時鐘測量出接收的準確時間TS1。由于信息包含的是預計的發(fā)出時間而不是真實的發(fā)出時間,所以主時鐘在Sync信息發(fā)出后發(fā)出一個Follow_Up信息,該信息加了一個時間印章,準確地記載了Sync信息的真實發(fā)出時間TM1。這樣一來,從屬時鐘使用Follow_Up信息中的真實發(fā)出時間和接收方的真實接收時間,可以計算出從屬時鐘與主時鐘之間的偏移(offset):
圖4偏移測量
Offset = TS1-TM1-Delay
這里要說明的是,上式中的Delay指的是主時鐘與從屬時鐘之間的傳輸延遲時間,它將在下面的測量階段測出,所以在這里是未知的,從偏移測量階段就提供了一個修正時間(Adjust Time),將從屬時鐘修正為:
Adjust Time=Ts-Offset
2.2延遲測量
延遲測量(delay measurement)階段用來測量網(wǎng)絡(luò)傳輸造成的延遲時間。為了測量網(wǎng)絡(luò)的傳輸延時,IEEE1588定義了一個延遲請求信息包(Delay Request Packet),簡稱Delay_Req。
圖5延遲測量
如圖5所示,從屬時鐘在收到Sync信息后在TS3時刻發(fā)出延遲請求信息包Delay_Req,主時鐘收到Delay_Req后在延遲響應信息包(Delay Request Packet,Delay_Resp)印章出準確的接收時間TM3,并發(fā)送給從屬時鐘,因此從屬時鐘就可以非常準確地計算出網(wǎng)絡(luò)延時:
TM2→TS2:Delay1= TS2-(TM2+Offset)
TS3→TM3:Delay2=(TM3+Offset)-TS3
因為網(wǎng)絡(luò)延遲時間是對稱相等的,所以:
Delay=Delay1+Delay22
與偏移測量階段不同的是,延遲測量階段的延遲請求信息包是隨機發(fā)出的,并沒有時間限制。需要說明的是,在這個測量過程中,假設(shè)傳輸介質(zhì)是對稱均勻的。
2.3同步實現(xiàn)
如圖5所示,經(jīng)過同步信息的交換,從屬時鐘與主時鐘實現(xiàn)了精確同步。
3精確度測試
為保證測試結(jié)果能夠最大限度地接近工程應用的實際情況,使主時鐘和從屬時鐘之間的偏離數(shù)據(jù)具有說服力,在精確度測試中接入一個以太網(wǎng)信息包發(fā)生器加重網(wǎng)絡(luò)負載,測試系統(tǒng)連接如圖6所示。主時鐘和從屬時鐘的PPS(Plus Per Second)輸出連接到示波器,通過示波器就能非常清楚地測量出兩個信號之間的偏離,而且還可以描繪出這種偏離的頻率分布情況。這次測量前后用時84個小時,圖7是示波器的顯示值。從圖7可以看出,最大抖動條件下的同步精確度落在
評論