基於時間觸發乙太網的AS6802時間同步協議的設計與實現

隨著分佈式系統的發展,系統中設備之間數據交互的實時性、可靠性以及高安全性需求更加迫切,使得以太網技術無法適用於相應的業務領域。時間觸發以太網將時間觸發技術的實時性、確定性與傳統以太網的優勢相結合,有效地解決了傳統以太網無法滿足高實時性、可靠性需求的弊端,被廣泛應用於航天航空、工業控制等具有高實時性、高安全性需求的領域。由於時間觸發以太網的實時性和確定性是以高精度的全局同步時鐘為基礎的,因此精確時間同步是時間觸發以太網技術研究的基礎,具有重要的研究價值和廣闊的應用前景。

2011年頒佈的開放標準AS6802定義了一種確定性、高容錯和無阻塞通信的同步技術。在研究開放標準AS6802協議標準和現有以太網時間同步方案後,本文首先採用FPGA+ARM的軟硬件協同設計平臺,自主設計和實現了集成三種功能單元的時間同步單元,並詳細描述了FPGA實現的各個同步單元中各功能模塊的設計;然後,在ModelSim仿真環境中對各主要模塊進行了功能仿真;最後,在千兆以太網環境中對此係統進行實測,同步精度優於20納秒。由於使用FPGA實現的接收和發送模塊代替了現有以太網時間同步方案中的MACIP核,因此本系統對於以太網幀數據的接收與發送更加靈活,減少了MACIP核引入的動態時延,使得同步精度更高,並具有成本低、便於移植的特點。

一、研究現狀

目前主流以太網時間同步技術主要基於NTP、IEEE1588[6]、以及AS6802三種時間同步協議來進行實現。NTP協議[7]作為最早提出的時間同步協議,被廣泛應用於傳統以太網中,其同步精度可以達到毫秒級,但隨著實時網絡研究的興起,航天航空、工業控制等領域實時性的需求不再滿足於毫秒級的同步精度。

IEEE標準委員會於2002年通過的IEEE1588高精度時間同步協議相比NTP協議[8],其時間同步精度可以達到亞微秒級,有效解決了實時網絡中時間同步精度不滿足的問題。自從IEEE1588時間同步協議提出以來,得到了廣泛的認可,許多廠商更是基於IEEE1588開發出了各自的產品[9]。目前,More Than IP 公司和 Arasan公司相繼推出了支持IEEE1588協議的MAC模塊,可實現精度為50ns的時鐘同步[10][11];Hirschmann公司採用FPGA芯片實現IEEE1588時間同步的方式,其同步精度可達60ns[12]。IEEE 1588協議雖然可以提供很高的同步精度,但無法對於網絡中潛在的故障節點進行容錯過濾,同時IEEE1588協議中定義的主從時間同步模型,其時間同步精度過於依賴主時鐘的穩定性,存在一定的侷限性。

2011年頒佈的開放標準AS6802[13],它繼承了IEEE1588協議中的透明時鐘機制[14],同時在同步處理過程中,增加了一系列容錯機制[15],有效解決了IEEE 1588協議無法進行容錯處理的缺陷;同時AS6802中引入了全局時間基準,網絡節點的時間同步以其本地時間與全局時間基準的差值作為依據,來進行時間同步。因此同步精度[16]受網絡中故障節點的影響。由於AS6802協議提出時間相對較晚,目前其相應的產品主要被TTTech公司壟斷,用於汽車、飛機、航天航空系統中關鍵控制信號的傳輸;而在國內,AS6802協議的研究主要在各大航天所、研究所與高校的預研項目中進行開發研究,尚處於理論研究階段。2011年,北京航空航天大學劉晚春[17]等人在SAE AS6802標準形成之際,對AS6802協議的時間同步機制進行了分析研究,並在特定的網絡場景下,對其進行了仿真驗證,為本設計提供了重要的理論基礎;2013年,電子科技大學郭愛英[18]提出了一種基於FPGA的AS6802協議的實現方案,並對其進行了板級調試,但其在板級調試過程中,未能考慮實際情況下PHY側引入時延,且缺少TTE的網絡通信場景驗證,尚不能投入實際應用之中;2017年,北京交通大學毛軼針對AS6802協議中定義的容錯機制展開研究,設計了一套時間觸發以太網容錯時鐘同步機制,並對其完成了仿真驗證[19],為本設計中容錯機制的引入,具有很好的借鑑作用。AS6802協議的高精度、高容錯特性使其很好的適用於汽車、航天航空等具有高實時性、高可靠性需求的領域[20],因此對於AS6802協議進行研究,早日開發出能投入實際應用的產品,是國內學者急切需要解決的事情。

二、原理

AS6802 協議是一種可容錯的高精度時間同步協議,其在以太網協議基礎上,改變鏈路層的結構,增強以太網數據傳輸的時間確定性,提供了一種端到端的消息確定性傳輸服務。AS6802協議主要包括消息固化功能、壓縮功能以及結團檢測功能[22],同時基於其三種不同的功能組件,定義了相應的冷啟動服務[23]、重啟動服務以及時間同步服務。下圖是AS6802實現的原理框圖。

基於時間觸發以太網的AS6802時間同步協議的設計與實現

圖1 AS6802同步原理

三、實現

本課題由一臺TTE交換機作為CM1、三臺端系統板卡作為SM以及分析機構成時間同步測試平臺[27]如圖 2 所示。其中SM1、SM2和SM3由CPU配置時間同步單元的模式切換參數,啟用SM同步功能實現,三個SM具有不同的成員向量以及透明時鐘域值。CM1則由時間同步單元啟動CM同步功能實現,虛線部分CM2由於實驗室環境有限,未能加入測試。

基於時間觸發以太網的AS6802時間同步協議的設計與實現

圖2 時間同步測試平臺

測試結果如圖3、圖4所示,SM發送時間點T0為72,接收時間點T3為342;CM接收時間點T1為5245,發送時間點為T2為5423;由步驟5的得到單側PHY時延為23和透明時鐘值為118。需注意的是各個時延單位為clk,系統時鐘為125MHZ。

基於時間觸發以太網的AS6802時間同步協議的設計與實現

圖3 SM接收時間點與發送時間點捕獲圖

基於時間觸發以太網的AS6802時間同步協議的設計與實現

圖4 CM接收時間點與發送時間點捕獲圖

基於時間觸發以太網的AS6802時間同步協議的設計與實現

圖5 AS6802測試平臺實際開發環境

四、調試問題

由於Modelsim功能仿真無法完成模擬實際板級調試的硬件環境,因此在板級調試過程中,往往因為代碼風格、時序設計以及硬件問題會出現與預期不相符的結果,因此面對板級調試過程中遇到的問題,一般分析問題出現的原因,利用chipscope抓取關鍵信號,找出設計中邏輯出錯或時序不滿足的地方進行修改。下面是時間同步單元板級調試過程中出現的問題以及解決方法。

1.同步精度超過預期值

在同步精度測試過程中,發現每次不同開發板之間同步精度不一樣,最高達到40ns左右,與預期20ns的時間精度值不相符。首先利用chipscope抓取CM上數據幀的接收時間點(receive_pit),發現接收時間點與預期的接收時間點的偏差值固定在一個相同數值上,得出結論SM到CM這段路徑上的傳輸時延與預期存在偏差值,而偏差值出現原因在於不同開發板之間PHY側引入時延不一樣。因此,將各個開發板PHY時延進行自迴環測試,其測試方法與透明時鐘測試類似,不再累述。最後用得到的單側PHY時延((T2-T1)/2),更新時間同步單元的透明時鐘域內PHY時延參數,進而解決了因傳輸時延誤差引起的同步精度超過預期值的問題。

2.數據幀丟失

在板級調試過程中,存在某些時間同步週期內,CM接收不到來自SM的數據幀丟失。時間同步單元出現丟幀情況,一般為接收FIFO模塊檢測到GMII接口過來數據錯誤信號(data_err)拉高,因此利用chipscope對接收FIFO模塊data_err信號進行抓取,發現data_err未出現拉高情況且數據正常寫入FIFO;接著對FIFO讀邏輯的信號進行觀測,在正常情況下,FIFO中控制讀計數的prog_empty信號拉低後,讀計數會從0開始計數,並拉高讀使能,然而在丟幀的情況下,FIFO中控制讀計數會出現任意跳變的情況;接著,檢查prog_empty信號控制讀計數的邏輯是否出錯,發現由於接收FIFO是異步FIFO,而prog_empty信號是由寫時鐘域內的寫指針與讀時鐘域內的讀指針計算差值得到的,因此在讀時鐘域,用於邏輯控制時,需要對其進行跨時鐘域處理,因此對prog_empty信號在讀時鐘域內打兩拍,進行同步處理之後,數據幀正常接收。

3.PC分析機軟件接收時間同步單元發送的數據幀時異常

CM在每個時間同步週期會將自身的同步信息以及各個SM與CM的同步偏差值封裝成特定以太網幀發送給PC分析機,用於同步結果顯示,而每次接收CM發送的以太網幀時,分析機會異常關閉的情況。分析原因可能是CM組幀不符合分析機要求的幀格式,因此用chipscope抓取CM發送給PC分析機以太網幀的數據信號與分析機要求的幀格式進行對比,發現幀格式符合要求;但由於時間同步週期初始為1ms,而分析機解析同步信息的處理時間在100ms左右,因此將CM處的同步信息以及同步偏差值,以100ms為週期進行捕獲,並轉發給PC分析機,最終分析機可以正常解析時間同步單元發送的數據幀。

4.重啟動測試過程中SM連續同步失步跳變

SM理論上重啟動之後,會進入同步狀態,直到團檢測通過,才會跳轉至非同步狀態,而重啟動測試過程時,SM重啟動完成後,又重新進入非同步狀態。分析原因可能是網絡中存在結團,導致結團檢測通過,使SM跳轉至非同步狀態;因此用chipscope抓取SM結團檢測通過信號(sync_clique_err),發現檢測到該信號拉高,而失步一段時間後,SM又會從非同步態,跳轉至同步態;得出問題原因在於結團檢測閾值與重啟動閾值不相等,此時SM接收到成員向量值等於重啟動閾值,但小於結團檢測閾值,因此將重啟動閾值與同步檢測閾值均設定為2後,重啟動測試正常。

五、結束語

本論文根據實驗室項目對時間同步功能需求以及AS6802協議的分析,採用FPGA+ARM的軟硬件協同設計平臺,自主設計和實現了一套集成了SM、SC和CM三個功能單元的時間同步單元,並完成了時間同步單元各個子模塊的設計與實現,搭建仿真平臺對時間同步單元各個關鍵子模塊進行了功能仿真驗證,然後在實驗室硬件環境下,將時間同步單元分別切換至SM和CM同步模式後,進行了板級調試,並按照項目中規定測試內容,完成了對時間同步單元的功能測試,並將時間同步單元加入現有端系統和交換機中完成了聯調測試,最終時間同步精度可到達20ns以內,與預期目標相符合。

六、演示視頻

下面是兩個端系統主機(FPGA開發板插在主機的PCIE插槽上)一對一雙冗餘連接實現同步後,可以互相點播對方主機上的視頻。

視頻加載中...
-->


分享到:


相關文章: