趙 夢,田文波,羅 宇,王冠雄,劉 強
(1.上海航天電子技術研究所·上海·201109;2.中國航天科技集團有限公司第八研究院 智能計算技術重點實驗室·上?!?01109)
在航空航天和汽車等安全性至關重要的行業(yè)中,需要在設備間使用高度可靠的通信。由于這些行業(yè)對于實時性、可靠性和容錯性提出的更高要求,確定性網絡如時間觸發(fā)以太網(Time-Triggered Ethernet,TTEthernet)、精確時間協議(Precision Time Protocol,PTP)、FlexRay總線、時間觸發(fā)總線(Time-Triggered CAN,TTCAN)、SAFEbus、時間觸發(fā)協議/ A類(Time Triggered Protocol/class A,TTP/A)得到了廣泛的應用。尤其在航天電子設備朝著模塊化、綜合化和標準化的方向發(fā)展,星載信息量、綜合化程度不斷提升的過程中,網絡中高質量的同步保證了可靠的確定性通信,因此提高接入以太網的設備之間正確的同步性是非常重要的。
TTEthernet是從航空電子全雙工交換式以太網(Avionics Full Duplex Switched Ethernet,AFDX)改進而來的,用于工業(yè)和航空電子應用的時間關鍵型網絡。它由SAE AS6802標準化,時間觸發(fā)以太網運行在OSI第2層,與標準以太網完全兼容。通過使用混合基礎設施支持時間觸發(fā)(Time-Triggered,TT)、速率約束(Rate-Constrained,RC)和盡力而為(Best-Effort,BE)業(yè)務,從而滿足嚴格的定時傳輸要求。其主要特點是基于全局同步的離線調度表的時間觸發(fā)通信模式。在TT報文準備就緒且RC報文已經傳輸的情況下,采用搶占、及時阻塞和打亂次序三種集成方法解決沖突。它還支持不同流量類別的虛擬分離,包括確定性和非確定性通信方式。時間觸發(fā)以太網絡的核心設備是集成不同流量類別數據流的交換機。而由關鍵應用程序生成的流量(以可預測的、確定性的方式傳輸)相對于非關鍵消息(以非確定性的方式傳輸)總是具有更高的優(yōu)先級。確定性通信在延遲和可靠性方面有非常嚴格的要求,只有當觀察到的鏈路沒有被確定性通信流占用時,非確定性消息才會被傳輸。
在航天領域,時間觸發(fā)以太網絡用于解決各有效載荷、航天器平臺等相對獨立的計算機之間,以及計算機內部各模塊之間,高精度時基相對獨立造成整體上的全局時鐘偏差,進而導致共用信息不能精準到達的需求問題。時間觸發(fā)以太網絡架構設計在載人航天領域需要高安全關鍵等級的網絡系統,因此設計要求使用冗余配置增強航天器內計算節(jié)點容忍故障的能力。
在對可以兼容標準以太網的SEA AS6802同步協議分析之后,本文重點探究了時間觸發(fā)以太網絡中可能出現的幾種異常情況及其對整個網絡的啟動時間產生的負面影響。一個或一系列協議控制幀(Protocol Control Frames,PCF),包括冷啟動幀(Coldstart Frames,CS)、冷啟動應答幀(Coldstart Acknowledge Frames,CA)、集成幀(Integration Frames,IN),從有故障的壓縮主機(Compression Master,CM)傳輸到同步主機(Synchronization Master,SM),會增加SM正常的啟動時間,在關鍵時刻發(fā)送PCF可以逐步增加啟動時間。
本節(jié)描述了航天用可容錯的時間同步網絡的系統硬件架構和仿真模型的拓撲結構,航天領域工程應用中采用冗余備份的星型硬件架構如圖1所示。這種雙冗余式的硬件架構借鑒自VITA78 SpaceVPX標準中典型的雙星拓撲交換結構,其中的冗余容錯技術可以盡可能滿足空間電子系統對于高可靠性應用的要求。功能方面在普通以太網互連的基礎上,還增加了時間同步和時間觸發(fā)。此網絡每個節(jié)點都有2個以太網接口,分別連接在2個交換節(jié)點上,互為備份關系。一部分節(jié)點連接在交換1A/1B上,另一部分節(jié)點連接在2A/2B上。壓縮主機CM節(jié)點作為模塊嵌入支持時間觸發(fā)功能的交換機,和各個同步主機SM一起完成網絡的同步。而仿真模型仿照硬件架構搭建,由于本次討論需要探究故障CM對整個系統從上電到達一個穩(wěn)定的同步狀態(tài)所消耗的冷啟動時間的影響,因此選取終端系統sm4和其中一個故障的壓縮主機CM-sw1連接,如圖2所示,此時sm4的狀態(tài)變化會受到故障CM-sw1的直接影響,如圖3所示。
圖1 TTE系統硬件架構Fig.1 TTE system hardware architecture
圖2 TTE系統仿真模型Fig.2 TTE system simulation model
圖3 sm4接收到出錯的CM發(fā)送CS幀后的啟動時間Fig.3 sm4’s start-time after receives CS frame sent by faulty CM
整個時間同步網絡采用分布式的時鐘部署方式,每個系統都有自己的時鐘,而整個系統沒有主時鐘的概念?;跁r間觸發(fā)以太網的同步服務系統能夠以固定延遲和微秒級別的抖動同步通信。這些服務的核心是為了使分布式網絡的終端系統和交換機中本地時鐘同步起來,形成一個全局時鐘。
時間觸發(fā)以太網的設計可以支持單故障和雙故障假設。本文只關注單一故障對于設計的時間觸發(fā)以太網絡系統同步性的影響,在單故障假設下,時間觸發(fā)以太網的目的是容忍終端系統的隨機故障或交換機的不一致遺漏故障。時間觸發(fā)以太網交換機可以配置具有執(zhí)行保護中央總線的功能,該功能可實現即使一組終端系統發(fā)生任意故障,也可以將隨機故障模式轉換為不一致的遺漏故障模式。特別考慮單一故障的原因是受空間輻射惡劣環(huán)境的影響,航天電子系統中存儲電路等極易發(fā)生位翻轉故障,因此采取冗余設計以及故障管理算法等進行故障診斷和隔離,從而達到吸收故障或者隔離故障的效果,使得某一模塊或者系統的故障不會蔓延至其他模塊或系統,由此單一故障發(fā)生的概率遠大于多故障的概率。
本節(jié)討論在上述單故障模型下,網絡異??赡軐TEthernet啟動時間產生的負面影響。圖3所示為SM的啟動/重啟過程狀態(tài)機,其中SM_INTEGRATE,SM_UNSYNC,SM_FLOOD,SM_WAIT_4_CYCLE_START_CS是4個非同步狀態(tài),剩余的3個狀態(tài)SM_TENTATIVE,SM_SYNC,SM_STABLE為同步狀態(tài)。網絡的啟動時間是指在觀測到SM從上電啟動到建立SM_STABLE狀態(tài)的時間。通過分析圖4的SM的狀態(tài)機可以看出,如果在一些時刻從CM接收到一些PCF,則可以導致回退到較低的非同步狀態(tài)或失去同步狀態(tài)(從同步狀態(tài)到非同步狀態(tài)的轉換)。例如,如果在同步狀態(tài)之一中從CM接收到CA幀,則SM將過渡到SM_WAIT_4_CYCLE_START_CS這個非同步狀態(tài)。像這樣的異?,F象是本文分析的主要內容。
圖4 SM的啟動/重啟過程狀態(tài)機Fig.4 SM start/restart process state machine
根據SAE AS6802標準,采用NS3仿真系統完成對于網絡中各個節(jié)點模塊的開發(fā),包括端系統、交換機,以及鏈路配置為雙通道并模擬了硬件鏈路傳輸所具有的延遲。本文試驗場景為其中一個壓縮主機(CM)出現故障,其余設備(其他壓縮主機CM和4個同步主機SM)無故障。本文考慮的拓撲結構如圖3所示。其中一個端口上的故障CM在SM的關鍵時刻傳輸CS、CA和IN幀序列。在此條件下,通過仿真估算了SM的啟動時間。交換機sw2的故障端口連接到終端系統sm4。
由于同步質量不受本研究的關注,而只考慮網絡啟動時間的影響,因此盡管模型支持非理想時鐘,但網絡組件中實現的本地時鐘被設置為理想時鐘。在所有仿真中,集成周期(Integration Cycles Duration,ICD)持續(xù)時間設置為=1000μs。
仿真結果表明,當觀測到的網絡中沒有故障設備時,sm4的默認啟動時間為=5671μs。在這種情況下,冷啟動過程反映了圖4SM啟動/重啟過程狀態(tài)機順時針背景箭頭所描繪的狀態(tài)流轉情況,在此過程中SM經歷了以下狀態(tài)轉換:SM_INTEGRATE → SM_UNSYNC → SM_FLOOD → SM_WAIT_4_CYCLE_START_CS → SM_TENTATIVE_SYNC → SM_SYNC → SM_STABLE。
1)SM在SM_WAIT_4_CYCLE_START_CS狀態(tài)下接收到CS幀:從圖4的狀態(tài)機中可以看出,sm4在SM_WAIT_4_CYCLE_START_CS狀態(tài)下接收到的CS幀,導致sm4轉換到SM_FLOOD這個同步性較低的狀態(tài),sm4在SM_FLOOD狀態(tài)下會發(fā)送CA幀。由于無故障壓縮主機CM-sw2處于不再接受CA幀的狀態(tài)(此時網絡的其余設備是正常地進行冷啟動處理的),因此,sm4將轉換到SM_UNSYNC狀態(tài)并開始發(fā)送CS幀。CM的上述幀過濾機制將忽略這些CS幀。在接收到來自CM-sw2的IN幀之后,sm4將轉換到SM_SYNC狀態(tài),在足夠的穩(wěn)定周期之后,再轉換到SM穩(wěn)定狀態(tài)。簡而言之,發(fā)送給SM的CS幀在SM_WAIT_4_CYCLE_START_CS狀態(tài)下會導致同步過程鏈發(fā)生變化:SM_INTEGRATE → SM_UNSYNC → SM_FLOOD → SM_WAIT_4_CYCLE_START_CS → SM_FLOOD → SM_UNSYNC → SM_SYNC → SM_STABLE,發(fā)生狀態(tài)回退而后又進入同步狀態(tài)。 由分析可知,此異常將啟動時間延長了相當一個集成周期的時間。
2)SM在SM_UNSYNC狀態(tài)下接收到CS幀:關注SM_UNSYNC狀態(tài)附近的輸入影響情況,可以看出,接收CS幀將導致sm4向SM_FLOOD狀態(tài)的轉換。在這種狀態(tài)下,從故障CM接收到的CS幀可能會導致更早地過渡到SM_FLOOD狀態(tài)。但是,由于SM不會在進入SM_FLOOD之后立即發(fā)送CA幀,因此提前過渡到SM_FLOOD狀態(tài)不會加快sm4的啟動速度。同時,無故障的sw2將轉發(fā)來自另一個SM的CS幀,從而使sm4重新進入SM_FLOOD狀態(tài)。其他SM在接收到上述CS幀后也將進入SM_FLOOD狀態(tài),這意味著所有SM都在同一時刻發(fā)送其CA幀。在這種情況下,sm4的啟動時間等于默認啟動時間。
3)SM在SM_FLOOD狀態(tài)下接收到CS幀:在SM_FLOOD狀態(tài)下接收到CS幀,將導致SM重新進入相同的狀態(tài)。之后,當SM過渡到SM_FLOOD狀態(tài)時,將發(fā)生與前面提到的SM_WAIT_4_CYCLE_START_CS狀態(tài)相同的過程變化:SM_FLOOD → SM_WAIT_4_CYCLE_START_CS → SM_FLOOD → SM_UNSYNC → SM_SYNC → SM_STABLE。
總結CS幀序列的影響:如果從故障CM發(fā)送CS幀序列,根據序列中CS幀的數量及其周期,sm4的啟動時間將相應延長,因為每個接收到的CS幀都重新進入SM_FLOOD狀態(tài),該場景的模擬如圖3所示,其中從sw1發(fā)送的CS幀的序列長度增加,同時改變這些幀之間的周期。序列的第一個CS幀在接近SM_FLOOD狀態(tài)結束時到達sm4。從結果可以看出,CS幀的周期為200μs或大于3500μs,對sm4的啟動沒有影響;而對于300μs的周期,只有第一個CS幀延長了一個集成周期()值的啟動時間;對于其他時段,啟動時間函數呈階梯形,并隨CS幀數的增加而增加,增量不是連續(xù)的,而是集成周期()值的倍數。這些值可以當作是sm4在重新進入SM_FLOOD狀態(tài)時被阻塞的時間。啟動時間函數呈階梯形的原因在于一系列狀態(tài)轉換。
在從CM-sw1發(fā)送的CS序列結束之后,sm4將從SM_FLOOD轉換到SM_UNSYNC狀態(tài)。然后,sm4從已經同步的非故障CM-sw2接收幀內信號,并進入SM_SYNC狀態(tài),接著進入SM_STABLE狀態(tài)。sm4在SM_UNSYNC狀態(tài)下花費的時間并不重要:在從sw2接收到IN幀之后,sm4立即轉換到SM_SYNC狀態(tài)。而當CS幀的周期大于3500μs時,單個故障的CM不會影響網絡的啟動和建立時間同步的時長。
有故障的CM傳輸CA幀時的情形與故障的CM傳輸CS幀的情形非常相似。對于這種情況,當sm4接近SM_WAIT_4_CYCLE_START_CS狀態(tài)的末尾時,故障CM開始傳輸CA幀,得到圖5所示的梯形折線圖。考慮到CA幀對SM的所有狀態(tài)都有影響,這些幀之間的任何一個周期都會對基于時間觸發(fā)網絡的同步過程產生決定性的影響。每個接收到的CA幀都將導致轉換到SM_WAIT_4_CYCLE_START_CS狀態(tài)。一個特例是:在SM_STABLE狀態(tài)下,接收到CA幀且參數stable_ca_enabled配置正確,才可以轉換到SM_WAIT_4_CYCLE_START_CS狀態(tài)。在這種情況下,CA幀之間的周期應該足夠長,以便SM在下一個從CM傳輸的CA幀到達之前建立SM_STABLE狀態(tài)。如圖5所示,CA幀的一個周期要大于4500μs,此時單個故障的CM對于sm4等網絡中運行正常設備的啟動以及時間同步沒有影響。
圖5 sm4接收到故障的CM發(fā)送CA幀后的啟動時間Fig.5 sm4’s start-time after receives CA frame sent by faulty CM
來自故障CM的錯誤的IN幀會觸發(fā)正常運轉CM的異步/相對團功能,從而導致系統失去同步狀態(tài)。圖6顯示了當IN幀處于SM_TENTATIVE_SYNC狀態(tài)時,超出計劃到達sm4情況的有關結果。如果幀間的周期比較短,則函數呈階梯形,如果幀間的周期比較長,則函數呈線性。當在SM_TENTATIVE_SYNC狀態(tài)下檢測到異步/相對團時,SM應過渡到SM非同步狀態(tài),在該狀態(tài)下,開始傳輸CS幀。由于非故障sw2已經處于同步狀態(tài),它將忽略接收到的CS幀,同時將向sm4發(fā)送一個壓縮的IN幀。然后,sm4將再次轉換到SM同步狀態(tài)。綜上,如果在SM_TENTATIVE_SYNC狀態(tài)下接收到除了IN幀外的其他序列,則將發(fā)生以下過程變化:SM_TENTATIVE_SYNC→×(SM UNSYNC→SM_SYNC)→SM_STABLE。在SM_STABLE狀態(tài)下接收到計劃外的幀序列也將會使得系統失去同步態(tài)。如圖6所示,如果IN幀周期大于4000μs,故障的CM發(fā)送錯誤的IN幀對于網絡內正常運行的設備的啟動和時間同步的建立與正常啟動所需時長相同。通常,IN幀長時間間隔對啟動時間影響不大,但存在在SM_STABLE狀態(tài)下失去同步狀態(tài)的風險 。
圖6 sm4接收到故障的CM發(fā)送IN幀后的啟動時間Fig.6 sm4’s start-time after receives IN frame sent by faulty CM
由以上討論可知,由于雙壓縮主機的備份容錯機制,即使其中一個CM出現故障,另一個CM也會完成正常操作,發(fā)出正確的幀,同步主機(SM)通過接受窗口(acceptance_window)的開閉規(guī)則過濾掉來自故障CM的部分錯誤協議控制幀(PCF),從而保證系統的啟動可以正常運轉,但是這個恢復過程在某些情景下會以延長啟動時間為代價。經仿真結果可知,在此時間觸發(fā)網絡仿真模型下,如有一個壓縮主機(CM)發(fā)生故障,設置CS幀周期大于3500μs,CA幀周期大于4500μs且IN幀周期大于4000μs時,時間觸發(fā)網絡完成啟動的時間和無故障情況下的正常啟動時間相同。
在容錯系統中,具有處理意外情況的機制是非常重要的。以太網的單一容錯配置可以處理一個故障組件:交換機或終端系統。文中模擬了一個端口上的故障交換機開始不受控制地傳輸單個和序列PCF的情況。結果表明,故障CM發(fā)送錯誤的CS、CA和IN幀,對時間觸發(fā)網絡的啟動時間有影響,PCF對確定性時間觸發(fā)網絡的同步性影響在到達臨界時刻表現得尤為明顯。但是如設置協議控制幀的周期超過一定數值后,單點故障雙冗余系統的啟動時間和正常啟動的時間相同,為航天領域等使用雙冗余時間觸發(fā)以太網的系統中參數設置提供參考。下一步將重點研究分析故障端系統脫離控制后,隨機地將PCF序列發(fā)送到同步的時間觸發(fā)網絡產生的影響。