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