黃 韜,陳長勝
(中航工業西安航空計算技術研究所 西安 710119)
以太網技術發展30多年來,其帶寬大、成本便宜、結構簡單成為大家的共識,其應用已滲透到了社會的各行各業:生產控制、船舶、機載、車載、辦公場所、安全關鍵系統等。但以太網應用于高實時性、安全關鍵系統時無法解決時間確定性問題,對此以太網應用于這些場合必須解決該鍵問題。TTE技術的提出解決了的時間確定性問題0,同時支持多種(單或多通道)通信方案供用戶選擇[1]0,能夠滿足高實時要求0、安全關鍵系統0的需求,是極具發展前景的實時網絡通信技術。
“時間觸發”是指網絡具有統一的時間基,所有的通信都是按照全局時間進行調度。網絡上的所有活動都是隨著時間的前進而有計劃地調度。TTE中的消息主要面向狀態,而不是事件,每條消息一直保持到狀態改變,而狀態也只能在規定的時間間隔內改變0。所以TTE必須建立一個全局統一的時間,并以此為基礎按照預先定義的通信配置表進行時分復用方式的通信。
作為TTE技術的權威,TTTech公司對時間觸發以太網給出如下定義0:
TTE=以太網+時鐘同步+時間觸發通信+速率限制傳輸+保證傳輸。
TTE傳輸3種不同優先級的數據幀:時間觸發數據、速率限制數據和盡力而為數據,3種數據優先級依次遞降。
本文首先分析了已有的時鐘同步機制,然后介紹了TTE時鐘同步協議過程并深入研究了同步協議的3個關鍵算法。在仿真平臺上通過仿真模型對時間觸發以太網的時鐘同步協議進行分析和驗證。
在高性能實時以太網研究內容中,最重要的是全局時鐘同步問題。而現有的時間同步算法(如PTP[8-9]、DTP、NTP等)無法滿足需求,TTE時鐘同步算法0的研究顯得尤為重要。只有解決了時間同步問題,才能保證整個系統在TDMA機制下可靠的傳輸時間觸發消息和事件觸發消息,保證在一定精度內進行高性能實時以太網數據的可靠傳輸。所以本地時鐘同步的正確性是時間觸發網絡的基本前提和必須條件。
TTE網絡中包含3種角色:同步控制器(synchronization master, SM),集中控制器(compression master, CM),同客戶端(synchronization client, SC),它們之間通過傳遞協議控制幀(protocol control fram, PCF)進行同步。
TTE時間同步流程0分為兩步,如圖1所示。

圖1 TTE時鐘同步流程
同步流程為:
1) SMi(i表示節點i)向CM發送PCFi。CM收到各個鏈路上的不同的PCF(PCF1-PCF3)后,對這些PCF進行時序保持算法,以恢復PCF的接收順序與其發送順序一致。然后再對這些PCF所包含的時間信息進行集中處理,取得折中的時間。
2) 將第一步的計算結果寫入一個新的PCF中廣播給各個節點。網絡中的各個節點收到由CM發回的PCF之后,根據PCF幀所包含的時間信息修正自己的本地時間,實現全局的時間同步。
結合時間同步構件0和全局時鐘同步算法0,圖2為時間同步在各類型節點上的流程詳圖,基本算法步驟簡述如下:
1) 令sm_dispatch_pit=0,當SMi的sm_clocki=0,SM就開始發送PCFi;
2) 在時刻receive_piti(記ri),CM接收到該PCFi,并啟動消息時序保持算法。在讀取ri后計算cm_permanence_piti(即還原幀順序后的接收時間,記作pi),對網絡傳輸延遲造成的影響進行修正;
3) 在CM上的時刻pi,啟動集中算法,計算出cm_compressed_pit(記ct)值和member ship_new的和值;

圖2 同步算法流程圖
4) 根據ct值,經過一個延遲時間clock_corr_delay,CM時鐘值到達ct+clock_corr_delay時,進行CM時鐘修正并在等待dispatch_delay后產生一個NEW_PCF廣播到SM和SC;
5) 在SM/SC上的時刻smc_receive_pit(記rcm),接收到NEW_PCF,并通過時序保持算法得到時序保持時間smc_permanence_pit(記為pcm);
6) 本地時鐘到達pcm時,再經過延遲clock_corr_delay后,在時刻pcm+clock_corr_delay完成時鐘修正。
為了完成時間同步算法,有幾個重要參數分析如下。
參照IEEE1588,透明時鐘用于記錄幀經過網絡傳輸的延時。通過測量幀在各節點的駐留時間以及傳輸時間,并累加到消息的透明時鐘字段。TTE中透明時鐘的值保存在PCF的Transparent Clock字段,記錄該PCF從源節點到目的節點所經過的傳輸總延時,記作ti。
最大傳輸延時表示整個網絡系統中任意兩個節點之間的最大延時,是一個離線得到的通信網絡統計定值,拓撲建好后它是一個定值,計算如下(記作MAX):

集中算法延時是集中算法執行的時間開銷。為了保證完成時間同步的精度,它不可忽略,分別記作Dcm和Dsmc,具體計算如下:

式中,max_observation_w indow(最大觀察窗口)由系統的容錯余度即窗口個數和同步精度(觀察窗口大小)決定;calculation_overhead為集中算法的計算處理時間;dispatch_delay為幀的發送延時。
預定接收時間PCFi能夠與實際的permanence_piti相減便得出時間偏差。該時鐘同步采用了時序保持算法,所有幀的傳輸延遲都是一個定值,并且CM的處理延時也為定值。所以能夠預先推出CM的預定接收時間值Scm和Ssmc的預定接收時間值,記作Scm和Ssmc:

信道最優判斷:若存在多個滿足進行時鐘同步的幀,則選擇membership_new最大的通道中pi最大值作為有效PCF。公式如下:

PCF傳輸中,PCFi從SM→CM有傳輸延時,但是定義整個網絡的最大傳輸延時MAX,以還原PCF的原始發送順序,時序保持算法定義為:

集中算法是根據PCF在接收窗口內的所有SM節點時鐘偏差計算一個均衡值,集中算法定義為:

式中,N為接收窗口內的PCF個數;c表示compression_pit;pmax_k和pmin_k分別表示第k個p值最大的幀和最小的幀。

設常數M=max-observation_w indow+ calculation_overhead
由式(8)可見,c就是全網絡所有SM節點時鐘偏差的一個均衡值,CM根據c計算出ct并取最優ctbest相關同步信息整理為一個NEW_PCF。NEW_PCF可說是所有SM發送來的同步信息的一個PCF幀,被CM認為是一個標準的時鐘發啟的PCF。若CM時間精準,則Scm便是接收該NEW_PCF的時間,而實際接收時間為ctbest。故ctbest與Scm作差得到時鐘修正值clock_corrcm,可以認為是CM被所有SM的信息時鐘同步了,計算公式:

最優信道依據式(6)判斷,帶入式(7)~式(9),化簡得:

由式(11)可知,CM進行時鐘同步僅與參數r1、p1、c有關,(p1-c)是接收窗口內PCF的均衡值,[r1-(p1-c)]是CM本地時鐘與標準時鐘之間的偏差。
SM/SC時鐘修正算法:SM/SC接收了NEW_PCF后,該幀被認為是一個時鐘精度的節點發送的,接收時間pcm與預計接收時間Ssmc作差,得到:

最優信道依據式(6)判斷,式(5)和式(7)帶入化簡,得:

由式(13)看出,SMC的修正值就是NEW_PCF的傳輸延遲與收到幀的本地時鐘值之間差。CM/SM/SC的時鐘修正為:

時序保持算法用于屏蔽網絡傳輸延時對時間同步的影響。引入網絡傳輸延時的因素包括:發送延時、鏈路延時和接收延時,對于高精度的時間同步,這些延時是必須要考慮的。時序保持算法通過PCF幀中的透明時鐘對PCF幀到達時間進行修正,以恢復各個PCF幀的時序關系。
消息時序保持算法的流程如下:
1) 節點收到PCFi,讀取當前的本地時間ri,同時執行消息時序保持算法;
2) 讀取該PCFi的Transparent Clock字段得到透明時鐘值ti;
3) 運行式(7)完成時序保持算法:
如同上面算法,在接收端通過時序保持算法:首先根據網絡拓撲和網絡節點發送、接收的處理時間,得到整個網絡的最大傳輸延時MAX,然后按照式(7)計算出時序保持時間p。
由于晶振本身的穩定性以及環境等影響,各個SM時間是不一致的,其PCF幀發送時間也是不一致的。集中算法是CM根據接收到的屬于同一個整合周期的所有PCF幀的p值,取一個均衡值ct,并且生成一個NEW_PCF。其memberiship_new中包含所有這些PCF的memberiship_new值。這個PCF隨后被廣播到各個SM和SC,實現全網的時間同步。

集中算法的流程如下:
1) 開啟一個觀察窗口(observation w indow),標記為OW=1;
2) 判斷該觀察窗口內是否有完成時序保持的PCF幀。如果有并且 OWüf+1,f為系統容錯的限值,則新開啟一個窗口,繼續觀察;否則進入下一步轉到步驟3);
3) 收集觀察窗口內的所有PCF幀:
① 應用式(8)計算得compression_correction;
② 應用式(9)計算得compression_pit;
4) 整合這些PCF幀的membership_new為一個新值,包含所有PCF對應位。
CM根據SM發送的PCF計算出整個系統的SM時間偏差均衡值,完成CM的本地時間修正。CM通過集中算法求出集中算法結果ctbest與預計時間Scm的差值就是本地時鐘與全局時鐘的偏差local_corr,根據式(11)和式(14)完成時鐘修正。
SM/SC根據CM時間修正后返回的NEW_PCF完成時間修正。SM/SC的Ssmc提前預知,所以實際接收PCF幀的時序保持時間(此處為最優信道多個最優PCF的均值)與預計時間的差值就是本地時鐘與全局時鐘的偏差local_corr,根據式(13)和式(14)完成時鐘修正。
仿真拓撲結構如圖3所示,拓撲結構為雙通道星型,節點包括:2個CM交換機節點,4個SC交換機節點,16個SM終端節點,8個SC終端節點;鏈路采用100BaseT;仿真時間為3 s。

圖3 仿真拓撲結構圖
場景中的所有節點的local_clock_durat ion取值為(1ns+隨機偏差值),設置網絡中所有的節點同時開始啟動,也即每個節點的本地時鐘都是從零開始計時,并且始終保持同步狀態。進行仿真實驗是為了驗證執行同步操作之后的每個節點的時鐘是否滿足設定的精度要求。
在OPNET上本文實現了時鐘算法的同步,測試結果顯示每個節點都是可以正常同步,時鐘修正的值也是正確的。滿足預期結果的要求。
圖4給出了仿真的速度和所用時間的OPNET截圖。由于TTE網絡的精確度是納秒,故每個節點的事件總量相當大,該場景仿真時間3 s內處理的事件數為9.000 8′1010個,平均速度為157 433 events/s,共用時間158 h 48 min。

圖4 場景仿真速度
圖5給出了雙通道網絡中3種數據吞吐量,由圖可知TT數據在發送時的吞吐量為6′106bps、RC數據在發生時的吞吐量為6.4′106bps、BE數據在發送時的吞吐量為(4.4′107-4.56′107)bps,TT:RC:BE吞吐量比大致為1:1:8。

圖5 吞吐量統計結果
圖6給出了雙通道網絡結構中TT、RC和BE共3種數據的端到端網絡延遲對比情況,由圖可知,TT數據的端到端延遲最小;RC數據的端到端延遲較大,其值始終小于2′10-5s;對BE數據的端到端延遲范圍統計如表1所示。

圖6 延時統計

表1 BE數據端到端網絡延遲
圖7給出了雙通道時鐘精度,由圖可知,時鐘精度控制在95 ns以內。

圖7 雙通道中的時鐘精度
通過仿真實現證明,該時間同步算法能完成時間同步,并且精度保證在95 ns以內。時間同步機制能保證整個系統在TDMA的機制下可靠的傳輸時間觸發消息和時間觸發消息,能保證在一定精度內進行高性能實時以太網數據可靠地傳輸。
本文對時間觸發以太網中的時鐘同步協議進行深入研究和分析,并利用OPNET仿真工具,對TTE時鐘同步協議進行仿真分析,對3個關鍵算法和同步性能進行分析驗證,為時間觸發以太網的開發應用提供有力的理論支撐。
[1] 楊仕平, 桑楠, 熊光澤. 基于Ethernet技術的安全關鍵實時網絡[J]. 軟件學報, 2005, 16(1): 122-123.
YANG Shi-ping, SANG Nan, XIONG Guang-ze. Safety critical real-time networks based on ethernet technology[J].Journal of Software, 2005, 16(1): 122-123.
[2] KOPETZ H. Fault containment and error detection in the time-triggered architecture[C]//Autonomous Decentralized Systems, 2003. [S.l.]: IEEE, 2003: 139-146.
[3] MURDOCK J K, KOENIG J R. Open systems avionics network to replace M IL-STD-1553[C]//Digital Avionics Systems Conference. [S.l.]: IEEE, 2000.
[4] NICOLAS N, SONG Y Q, FRAN?OISE S. Worst-case deadline failure probability in real-time applications distributed over controller area network[J]. Journal of systems Architecture, 2000, 46(7): 607-617.
[5] GüNTER H, THURNER T. Time-triggered architecture for safety-related distributed real-time systems in transportation systems[C]//Fault-Tolerant Computing, 1998. Digest of Papers. [S.l.]: IEEE, 1998: 402-407.
[6] HOANG, H. Rea-time communication for industrial embedded systems using sw itched ethemet[C]//Parallel and Dis-tributedProcessing Sysposium.[S.l.]: IEEE, 2004.
[7] HERMANN K, GUNTER G. TTP-A protocol for fault-tolerant real-time systems[J]. IEEE Computer, 1994,27(1): 14-23
[8] LEE K, EIDSON J C, WEIBEL H, et al. IEEE 1588 standard for a precision clock synchronization protocol for networked measurement and control systems[C]//Sensors for Industry Conference, 2002. [S.l.]: IEEE, 2002: 98-105.
[9] YU Peng-fei, YU Qiang, DENG Hui, et al. The research of precision time protocol IEEE1588[C]//The International Conference on Electrical Engineering. [S.l.]: [s.n.], 2009.
[10] KOPETZ H, ADEMAJ A, GRILLINGER P, et al. The time-triggered Ethernet (TTE) design[C]//Object-Oriented Real-Time Distributed Computing, ISORC 2005. [S.l.]:IEEE, 2005.
[11] ECHTLE K, MOHAMED S. Clock synchronization issues in multi-cluster time-triggered networks[C]//Measurement,Modelling, and Evaluation of Computing Systems and Dependability and Fault Tolerance. Berlin Heidelberg:Springer, 2010: 39-61.
[12] KOPETZ H, GRUNSTEIDL G. TTP-A protocol for fault-tolerant real-time systems[J]. IEEE Computer, 1994,27(1): 14-23.
[13] STEINER W. TTEthernet specification[S]. [S.l.]: TTTech Computertechnik AG, 2008.
編 輯 稅 紅