楊勁赫,李 峭,湯雪乾
(北京航空航天大學(xué)電子信息工程學(xué)院,北京100191)
在航天電子系統(tǒng)中的嵌入式計(jì)算應(yīng)用中,綜合模塊化航空電子系統(tǒng)(Integrated Modular Avionics,IMA)為不同的航天電子應(yīng)用提供開放和穩(wěn)定的資源共享框架。基于混合關(guān)鍵安全性等特點(diǎn)的分布式航空電子系統(tǒng)(Distributed Integrated Modular Avionics,DIMA)作為 IMA的進(jìn)一步升級(jí),提升了可擴(kuò)展性[1]和混合關(guān)鍵性綜合化互連的能力。SAE AS6802標(biāo)準(zhǔn)規(guī)定的時(shí)間觸發(fā)以太網(wǎng)(Time-Triggered Ethernet,TTE)是基于標(biāo)準(zhǔn)以太網(wǎng)開發(fā)的一種時(shí)間觸發(fā)架構(gòu)通信網(wǎng)絡(luò),具有實(shí)時(shí)、開放、安全以及滿足混合關(guān)鍵安全性等特點(diǎn),因此能較好地滿足DIMA的要求,被廣泛應(yīng)用到航天電子系統(tǒng)中[2-3]。NASA已經(jīng)使用TTE來提高航天電子系統(tǒng)的容錯(cuò)能力,并證明TTE對(duì)拜占庭錯(cuò)誤有很高的容忍度[4-6]。SAE AS6802標(biāo)準(zhǔn)為TTE規(guī)定了一種分布式時(shí)鐘同步協(xié)議。根據(jù)配置的不同,TTE同步組件可以分為高完整性(Highintegrity,HI)組件和標(biāo)準(zhǔn)完整性(Standardintegrity,SI)組件,在不同的完整性配置下,TTE網(wǎng)絡(luò)時(shí)鐘同步機(jī)制不同。為保證時(shí)鐘同步的可靠運(yùn)行,TTE網(wǎng)絡(luò)為不同組件設(shè)計(jì)了不同的時(shí)鐘同步容錯(cuò)機(jī)制,高完整性組件具有更加精準(zhǔn)的分布式時(shí)鐘同步功能和更強(qiáng)大的故障容忍機(jī)制[7]。近年來,TTE在眾多實(shí)時(shí)應(yīng)用中發(fā)揮著至關(guān)重要的作用,例如航天電子、汽車工業(yè)和其他工業(yè)網(wǎng)絡(luò)物理系統(tǒng)。Loveless[4]在實(shí)驗(yàn)中同時(shí)配置了高完整性的交換機(jī)與標(biāo)準(zhǔn)完整性的端系統(tǒng),驗(yàn)證了高完整性組件將故障限制為不一致-遺漏模式。蘭杰等[8]實(shí)驗(yàn)證明了高完整性配置下的TTE網(wǎng)絡(luò)時(shí)鐘具備對(duì)抗單節(jié)點(diǎn)隨意失效的能力。
時(shí)鐘同步是實(shí)現(xiàn)時(shí)間觸發(fā)架構(gòu)的關(guān)鍵基礎(chǔ),對(duì)不同完整性配置下TTE時(shí)鐘同步機(jī)制的容錯(cuò)能力進(jìn)行驗(yàn)證十分有必要。本文介紹了SAE AS6802標(biāo)準(zhǔn)規(guī)定的TTE同步服務(wù)與容錯(cuò)機(jī)制,分析了高完整性與標(biāo)準(zhǔn)完整性配置下TTE同步機(jī)制的區(qū)別,通過網(wǎng)絡(luò)仿真對(duì)2種配置下TTE時(shí)鐘同步機(jī)制容錯(cuò)能力的差異進(jìn)行驗(yàn)證分析。
時(shí)鐘同步服務(wù)的目的是確保通信基礎(chǔ)設(shè)施中組件的本地時(shí)鐘保持彼此同步。研究時(shí)鐘同步機(jī)制不僅要考察正常工作情況下的時(shí)鐘同步功能,還需要關(guān)注時(shí)鐘同步過程中同步組件的狀態(tài)和行為。
在TTE的同步服務(wù)中,組件被分為3類:同步主控器(Synchronization Master,SM)、壓縮主控器(Compression Master,CM)和同步客戶端(Synchronization Client,SC)。多數(shù)情況下,SM 與 SC配備于端系統(tǒng),CM則一般由交換機(jī)充當(dāng)。而同步消息則通過協(xié)議控制幀(Protocol Control Frame, PCF)來傳遞。
PCF幀有冷啟動(dòng)幀(Cold Start,CS幀)、冷啟動(dòng)應(yīng)答幀(Cold Start Acknowledge,CA幀)和綜合幀(Integration,IN幀)3種類型。PCF幀中的透明時(shí)鐘域會(huì)記錄幀的派發(fā)時(shí)刻td、傳輸延遲Dtrans、接收時(shí)刻treceive等同步信息。
通信設(shè)施的啟動(dòng)過程伴隨著CS幀、CA幀的交換。CS幀與CA幀的交換稱為容錯(cuò)握手[9]。該過程中,CM不會(huì)對(duì)CS幀進(jìn)行壓縮,對(duì)CA幀也只是附加延遲后將其返回。在容錯(cuò)握手之后,同步設(shè)備將會(huì)進(jìn)入?yún)f(xié)議狀態(tài)機(jī)中表示同步操作的一個(gè)狀態(tài),即開始同步過程。同步過程中各個(gè)組件將會(huì)進(jìn)行IN幀的交換,其過程與容錯(cuò)握手的方式相同,如圖1所示。SM將PCF幀發(fā)送到CM,然后CM根據(jù)這些PCF的相對(duì)到達(dá)時(shí)間計(jì)算平均值,作為響應(yīng)統(tǒng)一返還新的PCF。新PCF也會(huì)發(fā)送到SC。由于PCF幀的接收時(shí)間與發(fā)送時(shí)間有偏差,CM將對(duì)IN幀進(jìn)行固化和壓縮,獲取時(shí)鐘修正值,在對(duì)本地時(shí)鐘進(jìn)行修正后,把同步信息附加在IN幀中返還給各個(gè)端系統(tǒng)。各個(gè)端系統(tǒng)也將對(duì)IN幀進(jìn)行固化,還原發(fā)送時(shí)刻,得到時(shí)鐘修正值來對(duì)自身的本地時(shí)鐘進(jìn)行修正。而為了保持各個(gè)時(shí)鐘始終處于同步,每隔一個(gè)固定的時(shí)間段,系統(tǒng)就會(huì)再次進(jìn)行同步。這個(gè)過程稱為集群周期。
圖1 TTE同步過程Fig.1 Synchronization process of TTE
SM的協(xié)議狀態(tài)機(jī)有異步狀態(tài)和同步狀態(tài),異步狀態(tài)包括SM_Integrate狀態(tài)、SM_Wait_4_Cycle_Start狀態(tài)、SM_Unsync狀態(tài)、SM_Flood 狀態(tài)和SM_Wait_4_Cycle_Start_CS狀態(tài),同步狀態(tài)包括SM_Tentative_Sync狀態(tài)、SM_Sync狀態(tài)和SM_Stable狀態(tài)。
當(dāng)SM是標(biāo)準(zhǔn)完整性時(shí),CM只會(huì)派發(fā)用于自身時(shí)鐘同步的壓縮過的PCF幀,這樣可以防止故障幀的傳播;當(dāng)SM配置為高完整性時(shí),不管是否已經(jīng)用于CM自身的時(shí)鐘同步,所有的PCF幀都被派發(fā)。
通過固化功能與壓縮功能,可以獲取較為精確的時(shí)鐘修正值,用于各個(gè)組件的本地時(shí)鐘修正,實(shí)現(xiàn)同步。固化功能在SM、SC、CM中都有實(shí)現(xiàn),而壓縮只在CM中實(shí)現(xiàn)。
固化功能用于還原PCF幀發(fā)送的真實(shí)時(shí)刻。每個(gè)節(jié)點(diǎn)都可能接收多個(gè)的PCF幀,固化功能將還原它們的正確發(fā)送順序。通過透明時(shí)鐘內(nèi)攜帶的同步消息,可以計(jì)算固化時(shí)刻點(diǎn)tp,如式(1)所示:
式中,Dmax為最大傳輸延遲,treceive為本地時(shí)鐘測(cè)得接收時(shí)刻點(diǎn)的值,Dtrans為PCF幀從發(fā)送端到接收端的傳輸延遲。
壓縮功能在接收到PCF幀時(shí)開始啟動(dòng),而不是在同步的本地時(shí)鐘到達(dá)某一個(gè)時(shí)間點(diǎn)時(shí)開始。CM在第1個(gè)不屬于當(dāng)前同步的固化時(shí)刻點(diǎn)tp,1打開一個(gè)長(zhǎng)度為P的接收窗,P/2為系統(tǒng)的預(yù)設(shè)精度。若在該接受窗內(nèi)至少接收到2個(gè)固化時(shí)刻點(diǎn),則打開下一個(gè)接收窗。從第2個(gè)接收窗開始,若收集到至少一個(gè)固化時(shí)刻點(diǎn),則打開新的接收窗,直到窗的長(zhǎng)度達(dá)到最大值Wmax=(f+1)×P,f為所容忍的錯(cuò)誤的SM個(gè)數(shù),SM的總數(shù)為n。否則關(guān)閉窗并不再打開新的接收窗。
對(duì)于接受到的PCF幀,通過具有容錯(cuò)能力的均值公式(Falut-Tolerant Average,F(xiàn)TA)來計(jì)算壓縮修正值。tp,i為第i個(gè)不屬于當(dāng)前同步的固化時(shí)刻,定義后續(xù)固化時(shí)刻點(diǎn)與tp,1之間的時(shí)間間隔為 ki=tp,i-tp,1[10],具體計(jì)算如表1所示。
表1 FTA計(jì)算壓縮修正值Table 1 Calculation of compression correction value
得到修正值tcc后,CM對(duì)壓縮時(shí)刻點(diǎn)t進(jìn)行計(jì)算,如式(2)所示:
式中,tco為固有計(jì)算開銷。以t為基準(zhǔn),CM將PCF幀發(fā)回到SM。CM不會(huì)在同一時(shí)刻點(diǎn)操作高完整性和標(biāo)準(zhǔn)完整性配置的SM,因此同步時(shí)對(duì)PCF幀的處理因高完整性與標(biāo)準(zhǔn)完整性配置差異而有著顯著的區(qū)別,如表2所示,高完整性配置的SM只會(huì)壓縮IN幀,標(biāo)準(zhǔn)完整性配置的SM則會(huì)壓縮CA幀和IN幀。
表2 不同完整性下對(duì)PCF幀的處理Table 2 Processing of PCF with different integrity
不同完整性配置下,TTE同步組件的對(duì)PCF幀的響應(yīng)也不同。當(dāng)配置為標(biāo)準(zhǔn)完整性時(shí),SM會(huì)對(duì)所有CS幀做出響應(yīng)。CM將僅轉(zhuǎn)發(fā)與CM的本地時(shí)鐘同步的IN幀,在派發(fā)時(shí)刻點(diǎn)到來時(shí)將壓縮后的IN幀發(fā)送。并且通過漏桶算法[11],每一個(gè)集群周期都只會(huì)接收來自每個(gè)SM的一個(gè)PCF幀。
當(dāng)配置為高完整性時(shí),SM僅會(huì)對(duì)來自其他SM的CS幀做出響應(yīng)。CM將轉(zhuǎn)發(fā)所有IN幀。并且高完整性的設(shè)計(jì)將會(huì)阻止SM在一個(gè)集群周期內(nèi)發(fā)出多個(gè)IN幀。
TTE在同步過程中出現(xiàn)的各種故障總是與SM、CM等組件及其接口的行為有關(guān),常見的各種失效模式包括以下3種:
1)寂靜失效。同步組件處于靜默狀態(tài),不會(huì)對(duì)任何輸入做出回應(yīng),停止輸出。
2)不一致-遺漏失效。這種失效模式是不一致失效和遺漏失效的組合。在接收來自不一致失效組件的消息時(shí),群組內(nèi)的一些組件會(huì)收到正確的消息,而另一部分收到的則是錯(cuò)誤的消息。而處于遺漏失效模式的組件則無法成功發(fā)送或接收任意數(shù)量的幀。
3)隨意失效。處于該失效模式的組件會(huì)不可控地在任意時(shí)間產(chǎn)生任意消息,并且這種失效模式會(huì)不受控制地產(chǎn)生不一致失效。
TTE網(wǎng)絡(luò)支持單點(diǎn)失效和雙點(diǎn)失效2種類型的失效假設(shè)。在單點(diǎn)失效假設(shè)下,TTE旨在容忍終端系統(tǒng)的任意故障或交換機(jī)的不一致-遺漏故障。TTE中的交換機(jī)可以配置為執(zhí)行中央總線監(jiān)控功能。中央總線監(jiān)控功能確保即使一組端系統(tǒng)出現(xiàn)隨意失效,它也會(huì)通過將其轉(zhuǎn)換為不一致-遺漏失效模式來消除這些故障終端系統(tǒng)的影響;在雙點(diǎn)失效假設(shè)下,TTE旨在容忍2個(gè)不一致-遺漏失效設(shè)備,這些設(shè)備可以是2個(gè)端系統(tǒng),2個(gè)交換機(jī)或1個(gè)端系統(tǒng)和1個(gè)交換機(jī)。
高完整性與標(biāo)準(zhǔn)完整性配置的TTE具有的同步容錯(cuò)能力有明顯差異。當(dāng)配置為高完整性時(shí),SM和CM的故障模式限制為不一致-遺漏故障。根據(jù)SAE AS6802標(biāo)準(zhǔn),在高完整性配置的TTE網(wǎng)絡(luò)中,組件包含了如圖2所示的指令/監(jiān)視對(duì)結(jié)構(gòu),以應(yīng)對(duì)不一致-遺漏失效模式。
圖2 指令/監(jiān)視對(duì)結(jié)構(gòu)Fig.2 Structure of Com/Mon pair
當(dāng)配置為標(biāo)準(zhǔn)完整性時(shí),TTE容忍單個(gè)SM的隨意故障或單個(gè)CM的不一致-遺漏故障,但不能同時(shí)容忍兩者同時(shí)出現(xiàn)。
由于標(biāo)準(zhǔn)完整性配置下的SM在同步過程中會(huì)對(duì)自己發(fā)出的CS幀做出響應(yīng),即某個(gè)SM也可能從未與其他的節(jié)點(diǎn)進(jìn)行過正確的“握手”,獲取有效的時(shí)間修正信息,從而造成隨意失效,這也是標(biāo)準(zhǔn)完整性配置的TTE無法對(duì)抗隨意失效的原因。由于高完整性配置的SM只對(duì)來自其他SM的CS幀做出響應(yīng),保證了“握手”的有效性,避免了隨意失效的發(fā)生,因而比標(biāo)準(zhǔn)完整性配置具有更強(qiáng)的容錯(cuò)能力。在高完整性配置下,TTE能容忍SM和CM的并發(fā)故障。
結(jié)團(tuán)是指同步域中某一些節(jié)點(diǎn)(但不是全部)形成了同步并可以維持,但其他的節(jié)點(diǎn)無法參與同步,也就是整個(gè)系統(tǒng)未能達(dá)成正確的同步。常用的結(jié)團(tuán)檢測(cè)包括同步結(jié)團(tuán)檢測(cè)與異步結(jié)團(tuán)檢測(cè),具體如圖3所示。
同步結(jié)團(tuán)檢測(cè)用設(shè)備本地變量local_sync_membership跟蹤與當(dāng)前達(dá)到同步的SM數(shù)目。local_sync_membership是一個(gè)位向量,與 pcf_membership_new中對(duì)SM與位的指定一致。pcf_membership_new為PCF幀中的位向量,當(dāng)某一位為1時(shí),表示該P(yáng)CF幀攜帶了該位所對(duì)應(yīng)SM的時(shí)間信息。同步結(jié)團(tuán)檢測(cè)功能可以在TTE協(xié)議狀態(tài)機(jī)中的每個(gè)同步狀態(tài)獨(dú)立的使能或禁止。當(dāng)同步結(jié)團(tuán)檢測(cè)服務(wù)工作時(shí),local_sync_membership與狀態(tài)定義閾值進(jìn)行對(duì)比,如果local_sync_membership中設(shè)置位數(shù)比相應(yīng)的閾值小則表示檢測(cè)出結(jié)團(tuán)情況。
圖3 結(jié)團(tuán)檢測(cè)Fig.3 Clique detection
異步結(jié)團(tuán)檢測(cè)功能使用2個(gè)本地變量local_async_membership[0]和local_async_membership[1]用于跟蹤當(dāng)前與相應(yīng)設(shè)備不同步但可用(不包括關(guān)閉電源的 SM)的SM的數(shù)目。local_async_membership{0||1}都是位向量,與 pcf_membership_new中對(duì)SM的分配關(guān)系一致。
異步結(jié)團(tuán)檢測(cè)功能監(jiān)視通信鏈路中預(yù)期外到達(dá)的PCF幀。這種情況可能是該幀的固化時(shí)刻點(diǎn)在接受窗口外,也可能是固化時(shí)刻點(diǎn)在接受窗口內(nèi)但有錯(cuò)誤的集成周期值。
OMNet++是一個(gè)可擴(kuò)展、模塊化、基于組件的C++仿真庫和框架,主要用于構(gòu)建網(wǎng)絡(luò)的仿真。該軟件提供基于Eclipse的IDE、圖形運(yùn)行時(shí)環(huán)境和其他工具,有實(shí)時(shí)模擬、網(wǎng)絡(luò)仿真、數(shù)據(jù)庫集成、SystemC集成等功能的擴(kuò)展[12]。本文利用OMNet++,根據(jù)SAE AS6802標(biāo)準(zhǔn)建立TTE的仿真模型,進(jìn)行同步及容錯(cuò)仿真實(shí)驗(yàn)。
同步仿真實(shí)驗(yàn)的配置為:設(shè)置tick為10 ns,代表物理時(shí)鐘一個(gè)滴答的時(shí)間寬度,同步精度為50 tick。如圖4所示,實(shí)驗(yàn)仿真的網(wǎng)絡(luò)有1個(gè)交換機(jī)和4個(gè)端系統(tǒng)。節(jié)點(diǎn)個(gè)數(shù)會(huì)影響FTA的計(jì)算以及錯(cuò)誤節(jié)點(diǎn)的設(shè)置,但并不妨礙高完整性和標(biāo)準(zhǔn)完整性TTE的工作機(jī)制。
圖4 TTE仿真Fig.4 Simulation of TTE
5個(gè)節(jié)點(diǎn)的時(shí)鐘漂移率ρ如表3所示:
表3 節(jié)點(diǎn)時(shí)鐘漂移率設(shè)置Table 3 Clock drift rate setting
選取SM1和SM2進(jìn)行無失效正常同步實(shí)驗(yàn),進(jìn)行高完整性配置和標(biāo)準(zhǔn)完整性配置下的對(duì)比,如圖5所示。高完整性和標(biāo)準(zhǔn)完整性配置的SM最后都達(dá)到了同步穩(wěn)定的狀態(tài)(SM_Stable),只是高完整性所需時(shí)間要略小于標(biāo)準(zhǔn)完整性。
圖5 無失效同步Fig.5 Normal synchronization
當(dāng)同步節(jié)點(diǎn)進(jìn)入同步狀態(tài)時(shí),不同配置下各節(jié)點(diǎn)的時(shí)鐘修正值如表4所示,以tick為單位。時(shí)鐘同步修正值的最大值為17 tick,小于規(guī)定的同步精度(50 tick),說明所有的TTE網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)了全局同步。
表4 節(jié)點(diǎn)時(shí)鐘同步修正值Table 4 Clock correction value
設(shè)置SM1為故障狀態(tài),不會(huì)向CM發(fā)送PCF幀。根據(jù)FTA算法,節(jié)點(diǎn)總數(shù)N與需要容忍錯(cuò)誤節(jié)點(diǎn)的個(gè)數(shù)f需滿足N>3f,因此設(shè)定f=1。對(duì)比高完整性和標(biāo)準(zhǔn)完整性配置實(shí)驗(yàn)結(jié)果,如圖6所示,標(biāo)準(zhǔn)完整性配置下同步所需時(shí)間為455μs,明顯大于高完整性配置下的時(shí)間293μs。
單節(jié)點(diǎn)的不一致-遺漏失效不會(huì)影響全局的同步,失效節(jié)點(diǎn)可以通過其他節(jié)點(diǎn)的同步信息在當(dāng)前的集群周期中完成同步。
發(fā)生失效時(shí),如果PCF幀落到接收窗外,高完整性配置的TTE網(wǎng)絡(luò)可以快速通過同步結(jié)團(tuán)檢測(cè)服務(wù)將同步狀態(tài)退回到同步的初狀態(tài)并進(jìn)行重啟動(dòng)。而標(biāo)準(zhǔn)完整性要在下一個(gè)同步周期到來時(shí),通過異步結(jié)團(tuán)檢測(cè)才能進(jìn)行重啟動(dòng)。
圖6 單節(jié)點(diǎn)不一致-遺漏失效Fig.6 Inconsistent-Omission failure of single node
設(shè)置SM1和CM為故障狀態(tài)。SM1無法正常發(fā)送出CS、CA幀,CM也不會(huì)向其發(fā)送來自其他節(jié)點(diǎn)的CS幀與CA幀。因此SM1只能接受到IN幀。
如圖7所示,在CM和SM1同時(shí)失效的情況下,高完整性配置的TTE網(wǎng)絡(luò)節(jié)點(diǎn)可以完成同步(SM_Stable),而標(biāo)準(zhǔn)完整性配置的節(jié)點(diǎn)則無法進(jìn)入最終的同步狀態(tài),無法從SM_Tentative_Sync狀態(tài)跳轉(zhuǎn)到更穩(wěn)定的同步狀態(tài)。
圖7 多點(diǎn)不一致-遺漏失效Fig.7 Inconsistent-Omission failure of multiple nodes
通過對(duì)TTE高完整性與標(biāo)準(zhǔn)完整性的仿真驗(yàn)證和分析,二者在機(jī)制上尤其是容錯(cuò)能力方面的區(qū)別主要體現(xiàn)于:
1)2種完整性設(shè)計(jì)的時(shí)鐘同步機(jī)制都有一定的容錯(cuò)能力,高完整性配置下TTE網(wǎng)絡(luò)時(shí)鐘同步機(jī)制的容錯(cuò)能力更強(qiáng),能對(duì)抗標(biāo)準(zhǔn)完整性所無法對(duì)抗的隨意失效。
2)面對(duì)不一致-遺漏失效時(shí),高完整性配置的TTE網(wǎng)絡(luò)能更快地進(jìn)入重啟動(dòng),因此反應(yīng)速度要明顯快于標(biāo)準(zhǔn)完整性。相較于標(biāo)準(zhǔn)完整性配置,高完整性配置具有更好的安全性和可靠性。
3)具有高完整性設(shè)計(jì)的TTE對(duì)比標(biāo)準(zhǔn)完整性配置有更好的時(shí)鐘同步機(jī)制容錯(cuò)能力和對(duì)故障的反應(yīng)速度。
本文研究可以為航空航天等安全關(guān)鍵等級(jí)高的實(shí)時(shí)應(yīng)用容錯(cuò)配置提供論證參考。