黃 韜,陳長勝
(中航工業(yè)西安航空計(jì)算技術(shù)研究所 西安 710119)
以太網(wǎng)技術(shù)發(fā)展30多年來,其帶寬大、成本便宜、結(jié)構(gòu)簡單成為大家的共識,其應(yīng)用已滲透到了社會(huì)的各行各業(yè):生產(chǎn)控制、船舶、機(jī)載、車載、辦公場所、安全關(guān)鍵系統(tǒng)等。但以太網(wǎng)應(yīng)用于高實(shí)時(shí)性、安全關(guān)鍵系統(tǒng)時(shí)無法解決時(shí)間確定性問題,對此以太網(wǎng)應(yīng)用于這些場合必須解決該鍵問題。TTE技術(shù)的提出解決了的時(shí)間確定性問題0,同時(shí)支持多種(單或多通道)通信方案供用戶選擇[1]0,能夠滿足高實(shí)時(shí)要求0、安全關(guān)鍵系統(tǒng)0的需求,是極具發(fā)展前景的實(shí)時(shí)網(wǎng)絡(luò)通信技術(shù)。
“時(shí)間觸發(fā)”是指網(wǎng)絡(luò)具有統(tǒng)一的時(shí)間基,所有的通信都是按照全局時(shí)間進(jìn)行調(diào)度。網(wǎng)絡(luò)上的所有活動(dòng)都是隨著時(shí)間的前進(jìn)而有計(jì)劃地調(diào)度。TTE中的消息主要面向狀態(tài),而不是事件,每條消息一直保持到狀態(tài)改變,而狀態(tài)也只能在規(guī)定的時(shí)間間隔內(nèi)改變0。所以TTE必須建立一個(gè)全局統(tǒng)一的時(shí)間,并以此為基礎(chǔ)按照預(yù)先定義的通信配置表進(jìn)行時(shí)分復(fù)用方式的通信。
作為TTE技術(shù)的權(quán)威,TTTech公司對時(shí)間觸發(fā)以太網(wǎng)給出如下定義0:
TTE=以太網(wǎng)+時(shí)鐘同步+時(shí)間觸發(fā)通信+速率限制傳輸+保證傳輸。
TTE傳輸3種不同優(yōu)先級的數(shù)據(jù)幀:時(shí)間觸發(fā)數(shù)據(jù)、速率限制數(shù)據(jù)和盡力而為數(shù)據(jù),3種數(shù)據(jù)優(yōu)先級依次遞降。
本文首先分析了已有的時(shí)鐘同步機(jī)制,然后介紹了TTE時(shí)鐘同步協(xié)議過程并深入研究了同步協(xié)議的3個(gè)關(guān)鍵算法。在仿真平臺上通過仿真模型對時(shí)間觸發(fā)以太網(wǎng)的時(shí)鐘同步協(xié)議進(jìn)行分析和驗(yàn)證。
在高性能實(shí)時(shí)以太網(wǎng)研究內(nèi)容中,最重要的是全局時(shí)鐘同步問題。而現(xiàn)有的時(shí)間同步算法(如PTP[8-9]、DTP、NTP等)無法滿足需求,TTE時(shí)鐘同步算法0的研究顯得尤為重要。只有解決了時(shí)間同步問題,才能保證整個(gè)系統(tǒng)在TDMA機(jī)制下可靠的傳輸時(shí)間觸發(fā)消息和事件觸發(fā)消息,保證在一定精度內(nèi)進(jìn)行高性能實(shí)時(shí)以太網(wǎng)數(shù)據(jù)的可靠傳輸。所以本地時(shí)鐘同步的正確性是時(shí)間觸發(fā)網(wǎng)絡(luò)的基本前提和必須條件。
TTE網(wǎng)絡(luò)中包含3種角色:同步控制器(synchronization master, SM),集中控制器(compression master, CM),同客戶端(synchronization client, SC),它們之間通過傳遞協(xié)議控制幀(protocol control fram, PCF)進(jìn)行同步。
TTE時(shí)間同步流程0分為兩步,如圖1所示。
圖1 TTE時(shí)鐘同步流程
同步流程為:
1) SMi(i表示節(jié)點(diǎn)i)向CM發(fā)送PCFi。CM收到各個(gè)鏈路上的不同的PCF(PCF1-PCF3)后,對這些PCF進(jìn)行時(shí)序保持算法,以恢復(fù)PCF的接收順序與其發(fā)送順序一致。然后再對這些PCF所包含的時(shí)間信息進(jìn)行集中處理,取得折中的時(shí)間。
2) 將第一步的計(jì)算結(jié)果寫入一個(gè)新的PCF中廣播給各個(gè)節(jié)點(diǎn)。網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)收到由CM發(fā)回的PCF之后,根據(jù)PCF幀所包含的時(shí)間信息修正自己的本地時(shí)間,實(shí)現(xiàn)全局的時(shí)間同步。
結(jié)合時(shí)間同步構(gòu)件0和全局時(shí)鐘同步算法0,圖2為時(shí)間同步在各類型節(jié)點(diǎn)上的流程詳圖,基本算法步驟簡述如下:
1) 令sm_dispatch_pit=0,當(dāng)SMi的sm_clocki=0,SM就開始發(fā)送PCFi;
2) 在時(shí)刻receive_piti(記ri),CM接收到該P(yáng)CFi,并啟動(dòng)消息時(shí)序保持算法。在讀取ri后計(jì)算cm_permanence_piti(即還原幀順序后的接收時(shí)間,記作pi),對網(wǎng)絡(luò)傳輸延遲造成的影響進(jìn)行修正;
3) 在CM上的時(shí)刻pi,啟動(dòng)集中算法,計(jì)算出cm_compressed_pit(記ct)值和member ship_new的和值;
圖2 同步算法流程圖
4) 根據(jù)ct值,經(jīng)過一個(gè)延遲時(shí)間clock_corr_delay,CM時(shí)鐘值到達(dá)ct+clock_corr_delay時(shí),進(jìn)行CM時(shí)鐘修正并在等待dispatch_delay后產(chǎn)生一個(gè)NEW_PCF廣播到SM和SC;
5) 在SM/SC上的時(shí)刻smc_receive_pit(記rcm),接收到NEW_PCF,并通過時(shí)序保持算法得到時(shí)序保持時(shí)間smc_permanence_pit(記為pcm);
6) 本地時(shí)鐘到達(dá)pcm時(shí),再經(jīng)過延遲clock_corr_delay后,在時(shí)刻pcm+clock_corr_delay完成時(shí)鐘修正。
為了完成時(shí)間同步算法,有幾個(gè)重要參數(shù)分析如下。
參照IEEE1588,透明時(shí)鐘用于記錄幀經(jīng)過網(wǎng)絡(luò)傳輸?shù)难訒r(shí)。通過測量幀在各節(jié)點(diǎn)的駐留時(shí)間以及傳輸時(shí)間,并累加到消息的透明時(shí)鐘字段。TTE中透明時(shí)鐘的值保存在PCF的Transparent Clock字段,記錄該P(yáng)CF從源節(jié)點(diǎn)到目的節(jié)點(diǎn)所經(jīng)過的傳輸總延時(shí),記作ti。
最大傳輸延時(shí)表示整個(gè)網(wǎng)絡(luò)系統(tǒng)中任意兩個(gè)節(jié)點(diǎn)之間的最大延時(shí),是一個(gè)離線得到的通信網(wǎng)絡(luò)統(tǒng)計(jì)定值,拓?fù)浣ê煤笏且粋€(gè)定值,計(jì)算如下(記作MAX):
集中算法延時(shí)是集中算法執(zhí)行的時(shí)間開銷。為了保證完成時(shí)間同步的精度,它不可忽略,分別記作Dcm和Dsmc,具體計(jì)算如下:
式中,max_observation_w indow(最大觀察窗口)由系統(tǒng)的容錯(cuò)余度即窗口個(gè)數(shù)和同步精度(觀察窗口大小)決定;calculation_overhead為集中算法的計(jì)算處理時(shí)間;dispatch_delay為幀的發(fā)送延時(shí)。
預(yù)定接收時(shí)間PCFi能夠與實(shí)際的permanence_piti相減便得出時(shí)間偏差。該時(shí)鐘同步采用了時(shí)序保持算法,所有幀的傳輸延遲都是一個(gè)定值,并且CM的處理延時(shí)也為定值。所以能夠預(yù)先推出CM的預(yù)定接收時(shí)間值Scm和Ssmc的預(yù)定接收時(shí)間值,記作Scm和Ssmc:
信道最優(yōu)判斷:若存在多個(gè)滿足進(jìn)行時(shí)鐘同步的幀,則選擇membership_new最大的通道中pi最大值作為有效PCF。公式如下:
PCF傳輸中,PCFi從SM→CM有傳輸延時(shí),但是定義整個(gè)網(wǎng)絡(luò)的最大傳輸延時(shí)MAX,以還原PCF的原始發(fā)送順序,時(shí)序保持算法定義為:
集中算法是根據(jù)PCF在接收窗口內(nèi)的所有SM節(jié)點(diǎn)時(shí)鐘偏差計(jì)算一個(gè)均衡值,集中算法定義為:
式中,N為接收窗口內(nèi)的PCF個(gè)數(shù);c表示compression_pit;pmax_k和pmin_k分別表示第k個(gè)p值最大的幀和最小的幀。
設(shè)常數(shù)M=max-observation_w indow+ calculation_overhead
由式(8)可見,c就是全網(wǎng)絡(luò)所有SM節(jié)點(diǎn)時(shí)鐘偏差的一個(gè)均衡值,CM根據(jù)c計(jì)算出ct并取最優(yōu)ctbest相關(guān)同步信息整理為一個(gè)NEW_PCF。NEW_PCF可說是所有SM發(fā)送來的同步信息的一個(gè)PCF幀,被CM認(rèn)為是一個(gè)標(biāo)準(zhǔn)的時(shí)鐘發(fā)啟的PCF。若CM時(shí)間精準(zhǔn),則Scm便是接收該NEW_PCF的時(shí)間,而實(shí)際接收時(shí)間為ctbest。故ctbest與Scm作差得到時(shí)鐘修正值clock_corrcm,可以認(rèn)為是CM被所有SM的信息時(shí)鐘同步了,計(jì)算公式:
最優(yōu)信道依據(jù)式(6)判斷,帶入式(7)~式(9),化簡得:
由式(11)可知,CM進(jìn)行時(shí)鐘同步僅與參數(shù)r1、p1、c有關(guān),(p1-c)是接收窗口內(nèi)PCF的均衡值,[r1-(p1-c)]是CM本地時(shí)鐘與標(biāo)準(zhǔn)時(shí)鐘之間的偏差。
SM/SC時(shí)鐘修正算法:SM/SC接收了NEW_PCF后,該幀被認(rèn)為是一個(gè)時(shí)鐘精度的節(jié)點(diǎn)發(fā)送的,接收時(shí)間pcm與預(yù)計(jì)接收時(shí)間Ssmc作差,得到:
最優(yōu)信道依據(jù)式(6)判斷,式(5)和式(7)帶入化簡,得:
由式(13)看出,SMC的修正值就是NEW_PCF的傳輸延遲與收到幀的本地時(shí)鐘值之間差。CM/SM/SC的時(shí)鐘修正為:
時(shí)序保持算法用于屏蔽網(wǎng)絡(luò)傳輸延時(shí)對時(shí)間同步的影響。引入網(wǎng)絡(luò)傳輸延時(shí)的因素包括:發(fā)送延時(shí)、鏈路延時(shí)和接收延時(shí),對于高精度的時(shí)間同步,這些延時(shí)是必須要考慮的。時(shí)序保持算法通過PCF幀中的透明時(shí)鐘對PCF幀到達(dá)時(shí)間進(jìn)行修正,以恢復(fù)各個(gè)PCF幀的時(shí)序關(guān)系。
消息時(shí)序保持算法的流程如下:
1) 節(jié)點(diǎn)收到PCFi,讀取當(dāng)前的本地時(shí)間ri,同時(shí)執(zhí)行消息時(shí)序保持算法;
2) 讀取該P(yáng)CFi的Transparent Clock字段得到透明時(shí)鐘值ti;
3) 運(yùn)行式(7)完成時(shí)序保持算法:
如同上面算法,在接收端通過時(shí)序保持算法:首先根據(jù)網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送、接收的處理時(shí)間,得到整個(gè)網(wǎng)絡(luò)的最大傳輸延時(shí)MAX,然后按照式(7)計(jì)算出時(shí)序保持時(shí)間p。
由于晶振本身的穩(wěn)定性以及環(huán)境等影響,各個(gè)SM時(shí)間是不一致的,其PCF幀發(fā)送時(shí)間也是不一致的。集中算法是CM根據(jù)接收到的屬于同一個(gè)整合周期的所有PCF幀的p值,取一個(gè)均衡值ct,并且生成一個(gè)NEW_PCF。其memberiship_new中包含所有這些PCF的memberiship_new值。這個(gè)PCF隨后被廣播到各個(gè)SM和SC,實(shí)現(xiàn)全網(wǎng)的時(shí)間同步。
集中算法的流程如下:
1) 開啟一個(gè)觀察窗口(observation w indow),標(biāo)記為OW=1;
2) 判斷該觀察窗口內(nèi)是否有完成時(shí)序保持的PCF幀。如果有并且 OWüf+1,f為系統(tǒng)容錯(cuò)的限值,則新開啟一個(gè)窗口,繼續(xù)觀察;否則進(jìn)入下一步轉(zhuǎn)到步驟3);
3) 收集觀察窗口內(nèi)的所有PCF幀:
① 應(yīng)用式(8)計(jì)算得compression_correction;
② 應(yīng)用式(9)計(jì)算得compression_pit;
4) 整合這些PCF幀的membership_new為一個(gè)新值,包含所有PCF對應(yīng)位。
CM根據(jù)SM發(fā)送的PCF計(jì)算出整個(gè)系統(tǒng)的SM時(shí)間偏差均衡值,完成CM的本地時(shí)間修正。CM通過集中算法求出集中算法結(jié)果ctbest與預(yù)計(jì)時(shí)間Scm的差值就是本地時(shí)鐘與全局時(shí)鐘的偏差local_corr,根據(jù)式(11)和式(14)完成時(shí)鐘修正。
SM/SC根據(jù)CM時(shí)間修正后返回的NEW_PCF完成時(shí)間修正。SM/SC的Ssmc提前預(yù)知,所以實(shí)際接收PCF幀的時(shí)序保持時(shí)間(此處為最優(yōu)信道多個(gè)最優(yōu)PCF的均值)與預(yù)計(jì)時(shí)間的差值就是本地時(shí)鐘與全局時(shí)鐘的偏差local_corr,根據(jù)式(13)和式(14)完成時(shí)鐘修正。
仿真拓?fù)浣Y(jié)構(gòu)如圖3所示,拓?fù)浣Y(jié)構(gòu)為雙通道星型,節(jié)點(diǎn)包括:2個(gè)CM交換機(jī)節(jié)點(diǎn),4個(gè)SC交換機(jī)節(jié)點(diǎn),16個(gè)SM終端節(jié)點(diǎn),8個(gè)SC終端節(jié)點(diǎn);鏈路采用100BaseT;仿真時(shí)間為3 s。
圖3 仿真拓?fù)浣Y(jié)構(gòu)圖
場景中的所有節(jié)點(diǎn)的local_clock_durat ion取值為(1ns+隨機(jī)偏差值),設(shè)置網(wǎng)絡(luò)中所有的節(jié)點(diǎn)同時(shí)開始啟動(dòng),也即每個(gè)節(jié)點(diǎn)的本地時(shí)鐘都是從零開始計(jì)時(shí),并且始終保持同步狀態(tài)。進(jìn)行仿真實(shí)驗(yàn)是為了驗(yàn)證執(zhí)行同步操作之后的每個(gè)節(jié)點(diǎn)的時(shí)鐘是否滿足設(shè)定的精度要求。
在OPNET上本文實(shí)現(xiàn)了時(shí)鐘算法的同步,測試結(jié)果顯示每個(gè)節(jié)點(diǎn)都是可以正常同步,時(shí)鐘修正的值也是正確的。滿足預(yù)期結(jié)果的要求。
圖4給出了仿真的速度和所用時(shí)間的OPNET截圖。由于TTE網(wǎng)絡(luò)的精確度是納秒,故每個(gè)節(jié)點(diǎn)的事件總量相當(dāng)大,該場景仿真時(shí)間3 s內(nèi)處理的事件數(shù)為9.000 8′1010個(gè),平均速度為157 433 events/s,共用時(shí)間158 h 48 min。
圖4 場景仿真速度
圖5給出了雙通道網(wǎng)絡(luò)中3種數(shù)據(jù)吞吐量,由圖可知TT數(shù)據(jù)在發(fā)送時(shí)的吞吐量為6′106bps、RC數(shù)據(jù)在發(fā)生時(shí)的吞吐量為6.4′106bps、BE數(shù)據(jù)在發(fā)送時(shí)的吞吐量為(4.4′107-4.56′107)bps,TT:RC:BE吞吐量比大致為1:1:8。
圖5 吞吐量統(tǒng)計(jì)結(jié)果
圖6給出了雙通道網(wǎng)絡(luò)結(jié)構(gòu)中TT、RC和BE共3種數(shù)據(jù)的端到端網(wǎng)絡(luò)延遲對比情況,由圖可知,TT數(shù)據(jù)的端到端延遲最??;RC數(shù)據(jù)的端到端延遲較大,其值始終小于2′10-5s;對BE數(shù)據(jù)的端到端延遲范圍統(tǒng)計(jì)如表1所示。
圖6 延時(shí)統(tǒng)計(jì)
表1 BE數(shù)據(jù)端到端網(wǎng)絡(luò)延遲
圖7給出了雙通道時(shí)鐘精度,由圖可知,時(shí)鐘精度控制在95 ns以內(nèi)。
圖7 雙通道中的時(shí)鐘精度
通過仿真實(shí)現(xiàn)證明,該時(shí)間同步算法能完成時(shí)間同步,并且精度保證在95 ns以內(nèi)。時(shí)間同步機(jī)制能保證整個(gè)系統(tǒng)在TDMA的機(jī)制下可靠的傳輸時(shí)間觸發(fā)消息和時(shí)間觸發(fā)消息,能保證在一定精度內(nèi)進(jìn)行高性能實(shí)時(shí)以太網(wǎng)數(shù)據(jù)可靠地傳輸。
本文對時(shí)間觸發(fā)以太網(wǎng)中的時(shí)鐘同步協(xié)議進(jìn)行深入研究和分析,并利用OPNET仿真工具,對TTE時(shí)鐘同步協(xié)議進(jìn)行仿真分析,對3個(gè)關(guān)鍵算法和同步性能進(jìn)行分析驗(yàn)證,為時(shí)間觸發(fā)以太網(wǎng)的開發(fā)應(yīng)用提供有力的理論支撐。
[1] 楊仕平, 桑楠, 熊光澤. 基于Ethernet技術(shù)的安全關(guān)鍵實(shí)時(shí)網(wǎng)絡(luò)[J]. 軟件學(xué)報(bào), 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.
編 輯 稅 紅