分布式數據采集系統中的時鐘同步
在高速數據傳輸的分布式數據采集系統中,各個組成單元間的時鐘同步是保證系統正常工作的關鍵。由于系統工作于局域網,于是借鑒了IEEE1588時鐘同步協議的原理,設計出簡易、高效的時鐘同步方案,并在基于局域網的分布式數據采集系統中實現微秒級的精確同步。鑒于方案的高可行性和高效性,可將其推廣到其他分布式局域網系統中。
關鍵詞? 分布式數據采集系統? 時鐘同步? IEEE1588? FPGA
引言
隨著網絡技術的發展,各種分布式的網絡和局域網都得到了廣泛的應用[1]。分布式數據采集系統廣泛應用于船舶、飛機等采集數據多、實時性要求較高的地方。同步采集是這類分布式數據采集系統的一個重要要求,數據采集的實時性、準確性和系統的高效性都要求系統能進行實時數據通信。因此,分布式數據采集系統中的一個關鍵技術就是實現數據的同步傳輸。
由于產生時鐘的晶振具有頻率漂移的特性,故對于具有多個采集終端的分布式系統,如果僅僅在系統啟動時進行一次同步,數據的同步傳輸將會隨著系統運行時間的增長而失步。因此時鐘的同步就是保證數據同步傳輸的關鍵所在。2002年提出的IEEE1588標準旨在解決網絡的時鐘同步問題。它制定了將分散在測量和控制系統內的分離節點上獨立運行的時鐘,同步到一個高精度和高準確度時鐘上的協議。
由于分布式數據采集系統工作于局域網的環境中,于是借鑒IEEE1588標準中的思想,設計出一種針對基于局域網的分布式系統的時鐘同步的機制,成功地在分布式數據采集系統中實現了μs級的同步。
1? 時鐘同步原理及實現
時鐘同步原理借鑒了IEEE1588協議中的同步原理。IEEE1588 定義了一個在工業自動化系統中的精確同步時鐘協議(PTP 協議),該協議與網絡交流、本地計算和分配對象有關。IEEE1588 時鐘協議規定,在進行時鐘同步時,先由主設備通過多播形式發出時鐘同步報文,所有與主設備在同一個域中的設備都將收到該同步報文。從設備收到同步報文后,根據同步報文中的時間戳和主時鐘到從時鐘的線路延時計算出與主時鐘的偏差,對本地的時鐘進行調整[2]。
系統由各個單元的系統控制板(簡稱“系統板”)來完成同步的工作。同步模型與IEEE1588時鐘協議一致,采用主從結構。主從單元采用相同頻率的晶振,此時時鐘同步的關鍵就是解決時鐘相位對準問題和時鐘漂移的問題。
系統中采用的時間同步算法,是借鑒IEEE1588的同步原理,主要是采用約定固定周期同步的算法。和IEEE1588同步算法一樣,同步過程分為兩個階段: 延遲測量階段和偏移測量階段。下面以一主一從模式為例介紹其原理。
1.1? 延遲測量
延遲測量階段用來測量網絡傳輸造成的延遲時間[3]。定義一個延遲請求信息包(Delay Request Packet) ,簡稱“Delay_Req”。延遲測量示意圖如圖1所示。
為了簡化程序,采用固定的周期測量網絡延遲,一般系統每工作一個小時進行一次測量。從屬時鐘TSd 時刻發出延遲請求信息包Delay_Req ,主時鐘收到Delay_ Req 后再立刻返回一個延時響應包delay_back發送給從屬時鐘,因此從屬時鐘就可以非常準確地計算出網絡延時:
TM2 →TS2∶Delay1 = TS2-Offset-TM2 TS3 →TM3∶Delay2 = TM3-(TS3 - Offset)
其中的Offset為從時鐘與主時鐘之間的時間偏差。
因為網絡延遲時間是對稱相等的,所以:
Delay =(Delay1 + Delay2)/2=((TS2-TM2)+(TM3-TS3))/2
需要說明的是,在這個測量過程中,假設傳輸介質是對稱均勻的,且線路是對稱的[4]。
1.2? 時鐘修正
時鐘修正用來修正主時鐘和從屬時鐘的時間差。在這個時間修正過程中,IEEE1588中主時鐘周期性地發出一個確定的同步信息包(Sync) (一般為每2秒1次) ,它包含一個時間印章(time stamp) ,精確地描述了數據包的發出時刻[3]。本案采用的簡單同步模式,主要就是約定了同步修正包的發出時刻,整秒時刻,系統會在整秒時刻不做其他工作,這樣就可以省掉IEEE1588中用于發送同步包預計發包時間的同步跟隨包。
假設同步前主時鐘的時間為發出時鐘Tm1=2 000 s,而從屬時鐘的接收時間為Ts1=2 001 s。如果主從時鐘是同步的,則同步的接收時鐘是:Tm1+Delay=2 000+0.5=2 000.5。只需將時鐘調整為2 000.5,即Ts′=Tm1+Delay。
簡易時鐘同步的關鍵就在此。同步包內可包含主端發出的時刻。從端收到后,即可與測得的Delay相加為自己的該時刻時鐘。
這里要說明的是:
①? 上式中的Delay 就是主時鐘與從屬時鐘之間的傳輸延遲時間,從上面的延遲測量階段得到。
②? 如果收到的同步包信息出錯,從單元可以根據自己的時刻,依據臨近取整原則推知主端發出的整秒時刻時間,與接收包進行對比。因為時間偏移一般都在μs級,如果誤差太大,則舍棄該包。
1.3? 同步實現
如圖2所示,從端發出延遲統計包,主端反饋后,從端求得Delay。在每個整秒左右時刻收到同步包后,進行時鐘修正,即從屬時鐘與主時鐘實現了精確同步[5]。
2? 分布式數據采集系統簡介
分布式數據采集系統屬于局域網構架,單元間通過網絡進行數據交互,由集線器和微采集系統組成,每個微采集器成為一個獨立“單元”。可以支持一主多從的分布式模型:設置其中一個微采集系統作為主單元,其他的作為從單元。分布數據采集系統結構框圖如圖3所示。
各個單元的設計完全相同,均由一個系統控制板和多個功能板構成。系統控制板是采集器的核心,它控制著單元內的各個功能卡的配置和單元內的數據傳輸,同時保持與外部通信。功能板用以實現A/D、FIFO處理等功能,用于數據采集和傳送。各個單元中的所有板卡皆采用獨立時鐘。
此分布式采集系統中各個單元構成一個星形網。系統控制板成為星形網絡中的節點,節點間用網線相連。系統符合協議IEEE802.3、CSMA/CD標準,可以與標準的以太網完美兼容。
3? 基于FPGA的實現
3.1? 分布式系統中各個單元的體系結構
由于FPGA開發靈活,精度上能達到系統要求,開發周期短,且成本低。系統中各個系統控制板采用FPGA技術,即采用微控制器及其對應的外設接口和相應的軟件來實現[6]。利用Nios II處理體系,將系統劃分為各個功能模塊,并考慮到系統所需的資源和生成代碼的大小。設計的系統由以下幾部分組成:Altera的Cyclone系列芯片,包括嵌入Nios II軟核、系統定時器、同步時鐘定時器、DM9000A以及Avalon總線等設計。
網絡接口芯片DM9000A實現以太網媒體介質訪問層(MAC)和物理層(PHY)的功能。系統采用無鏈接的UDP通信,且采用多個定時器,用于時鐘同步和工作周期的制定。
3.2? 具體軟件設計流程
同步定時器每秒鐘產生一次中斷。作為同步時鐘,另一個定時器將一個同步周期劃分為幾個等時段,為工作周期。主從單元通過網絡互相交換數據,在每一個系統周期內將各自的數據發送到網絡中。為了預防發送時刻點的沖突,在配置信息中注明每個周期該單元的發送時刻。
系統有以下幾種狀態:初始狀態、預同步狀態、實時工作狀態。
①? 初始狀態:分布式系統上電后,主從單元進入初始狀態對各項參數進行初始化,注冊timer中斷和網絡中斷等。初始化后進入預同步狀態。
②? 預同步狀態:主要是每小時進行一次網絡延時的測量,然后從端會將自己與主端的一次傳輸時延保存起來。
③? 實時工作狀態:預同步完畢后各單元進入實時工作狀態。一小時后又再次進入預同步狀態。實時工作狀態將處理多個線程。
(1) ?同步線程
①? 主單元,將同步timer的周期置為1 s的同步約定周期,即每1 s產生1次中斷。主單元會在每秒到來時刻(中斷),發出同步包(syns)。
②? 從端在接收到同步包后,調整定時器時鐘為同步包內時刻與時延之和。
(2) ?數據傳輸
線程系統在避開同步階段的時刻進行實時數據的傳輸,主要是根據系統對各個工作周期的劃定。
(3) ?數據采集和處理線程
由系統中各單元的各自任務來決定,不占用網絡。對傳感器采集數據進行處理,同時也處理網絡傳送來的數據。
4? 同步測試
在系統的實時工作狀態下,驗證其同步效果。由于同步定時器產生的脈沖為一個系統時鐘寬度(32 MHz),不便于觀察。為了便于演示,主從端都在定時器產生的同步時鐘上升沿到達時將同步信號置1,主單元在發送完同步包后將同步信號置0;從單元則在收到同步包后將同步信號置0。這樣得到的信號與定時器產生的同步時鐘是同頻的,只是放寬了脈沖寬度。同步效果如圖4所示。
圖4(a)中,每個柵格為500 ms;圖4(b)將其放大1 000倍,每柵格為500 μs。每幅圖中,上面的1通道為主單元同步信號,下面的2通道為從單元同步信號。由圖4(a)可見,同步時鐘周期為1 024 ms。
由于從單元是在收到同步包后,將信號置0,必定滯后于主單元發送同步包時刻(主端將同步信號置0時刻),從圖4(b)中可見,從單元脈沖寬度比主單元寬,因此只需比對同步信號的上升沿。圖4(b)是將圖像保持時間置為無限,信號上升沿處陰影表示運行時間以來的偏移情況。測試時間為24 h(小時),測量陰影的長度Δx=20 μs(上升沿偏移),即為同步效果最大的同步偏差可以控制在20 μs以內。
5? 結論
由于系統工作于局域網,借鑒IEEE1588協議思想,提出并實現了簡易時鐘同步的設想;占用資源少,精度高,可行性高。驗證是在實時工作狀態下測試的,并將同步偏差控制在20 μs,滿足時鐘同步的要求;同時,以FPGA技術為載體,軟件開發平臺為Nios II,易于系統移植和功能擴展。鑒于方案的高效和高可行性,可以進一步推廣到其他分布式局域網的應用系統中。
評論
查看更多