楊則云,杜一帆,張玉琢,曹 源
(1.中車青島四方機車車輛股份有限公司 科技發展部,青島 266111;2.北京交通大學 電子信息工程學院,北京 100044)
由于列控安全計算機平臺的應用功能越來越復雜,導致平臺通信數據量越來越大,對平臺通信性能提出了更高要求。安全計算機大多采用分布式冗余通信結構,但未有相應的容錯管理機制,不能充分發揮冗余通信結構的容錯能力[1-2]。基于當前列控安全計算機平臺存在的問題,研究列控安全計算機平臺高速冗余通信結構的容錯管理機制具有重要意義。
對于高可靠性需求的實時系統而言,需要考慮系統的容錯性。目前,容錯的方法可以大致分為硬件容錯和軟件容錯[3]。部件級硬件故障容錯的另一種方法是采用冗余的硬件和軟件方法,大部分采用檢查點向后恢復方法來克服硬件故障[4],其缺點是不能用于安全苛求實時系統,因為超出時間約束產生的輸出可能導致災難性的后果。因此,許多人嘗試了基于檢查點的向前恢復技術[5]。但這些研究難以適用于重要的安全苛求系統。軟件容錯中常見的方法有N版本表決算法、恢復塊技術以及主/備版本技術。文獻[6]研究的投票算法是基于N模塊冗余系統設計的,該算法大大降低了用于分布式投票所需的時間。文獻[7]研究了一種實時容錯網絡通信技術,所提出的容錯網絡采用了主/備版本技術。然而上述介紹的容錯技術均應用于非實時領域,無法滿足實時系統的需求。
對于高可靠系統,時間觸發架構具有更大的優勢,時間觸發已經在其它安全苛求領域成功應用。因此本文在安全計算機中采用基于時間觸發機制的通信方式來保障系統的通信可靠性及安全性。在此基礎上,提出了基于時間觸發的GMP算法來提高系統的容錯性,該算法能夠提供故障檢測、故障屏蔽以及實現系統重組。
時間觸發架構中采用信息描述表(MEDL,Message Des-cription List)的方式來描述收發消息屬性的數據結構[8]。時間觸發控制器按照該描述表中的配置信息,周期性發送或讀取信息。整個系統采用同一時間標準,并且所有的節點都包含有預先定義的時間表。一旦傳輸的數據與時間表沖突,那么就認為該節點錯誤。如果節點發生錯誤,則該節點立即退出,以保證整個通信網絡不會受到干擾。
此外,網絡中的每一個節點上都保存著一個成員列表用于提供成員響應服務[9]。列表記錄了所有正常運行的節點,在節點收到消息時根據接收成功與否更新本地的成員列表。每次消息傳遞過程中接收方會檢查CRC 校驗碼中的發送端的成員列表。若與接收端成員列表不同則會被認為是錯誤的,這樣就通過節點間相互的成員確認保證了所有節點的一致性。這種成員服務在軟件的實現上可以通過組成員服務來實現。
容錯時間觸發以太網(TTE)模型適用于可預測的傳輸時延和能夠容忍組件故障的系統中。容錯TTE模型由若干個通信節點通過兩個或者多個容錯TTE交換機相連,這種結構適用于安全苛求系統,因此適用于安全計算機。如圖1所示,每個通信結點由主機和容錯時間觸發控制器組成。

圖1 容錯時間觸發以太網模型
與標準的時間觸發控制器不同,容錯時間觸發中間件在能保證通信網絡依據全局時鐘的推薦,并按照信息調度表進行有計劃的數據調度之外,還實現了統一的容錯時間以及故障隔離、系統重組、錯誤診斷等服務。容錯時間觸發控制器采用兩條冗余的通信信道傳輸與接收消息,從而對通信信道進行容錯。
組通信的核心思想是把分布在不同位置的多個實體(組成員)組織成一個邏輯上的組實體來執行計算任務,并為組成員之間提供各種通信原語。這些原語能夠使得通信消息按照一定的應用語義約束傳遞到組成員。
在研究一個容錯系統時,應該從對故障假設的說明開始,GMP中的故障假設如下:
(1)故障類型分為接收故障和發送故障且傳輸故障一致。
(2)每個時間段只有一個節點發送消息,且節點只在其指定的時間段發送消息。
(3)在一個時間段內最多有一個通信通道故障。
在故障假設的前提下,組成員算法必須保證下面3個條件同時成立,這也是組成員算法的核心特征:
(1)成員表的有效性:每個節點都保存了一個本地成員列表,該表將所有故障節點從成員列表中刪除,只記錄正常運行的節點。
(2)成員表的一致性:所有非故障節點應該有相同的成員表。
(3)節點的診斷修復:當一個節點出現故障時,它能夠在有效時間范圍內診斷出自己的故障并且將本地成員列表清空。n節點系統中,在不超過3n+1個間隙時間內,故障節點能夠重新回到系統中。
組成員協議的模型如下:假設系統中有n個節點,編號為0,1,2,……,n–1,根據時間觸發協議模型,對于時間片t,編號為t mod n的節點為當前的發送節點,該節點可以向其它所有節點廣播發送消息數據以及部分內部狀態消息,并在消息的末尾加上CRC校驗碼等信息。
GMP是通過不斷地更新每個正確節點成員列表數組來進行容錯的。定義正確節點為Ni,成員列表數組為Vi,Vi中的每個元素為Vxi。其中,Vxi是Ni的第x個組成員視圖,組成員協議通過一系列的算法來更新這些數組作為Vxi的值。如果x是Vi定義的最大索引,那么Vxi是Ni的當前觀點且Ni在列表Vi中。節點的成員列表的初始狀態V0i由管理員手動或監督實現,之后,如果Vxi已經被加入,那么列表Vyi只有當y>x時才能被加入。視圖列表具有有效性和一致性等特點,通過這種管理,使得每個正確的節點都是它自己的視圖中的一個成員,系統中的正確節點通過相互信任成為組成員。
通過上述對GMP容錯算法命令的描述,當節點處于廣播狀態和接收狀態時的流程如圖2、圖3所示。

圖2 節點處于廣播狀態時的容錯流程

圖3 節點處于接收狀態時的容錯流程
為了驗證基于時間觸發的通信容錯機制,本文基于POWERLINK版本V2.6開源代碼基礎上進行通信容錯機制設計并測試。POWERLINK物理層是基于標準以太網并遵循著ISO分層模型,其協議棧功能實現與操作系統,和底層硬件無直接聯系因此安全計算機中通信容錯機制測試與基于以太網通信的軟硬件平臺測試具有相同特性。為更直觀地研究和描述通信容錯機制,本實驗平臺基于圖4中的2乘2取2結構基礎上,分別采用基于VxWorks系統的嵌入式工控機作為通信單元,和基于Windows10的個人計算機作為通用處理單元,可實現對安全計算機平臺的以太網通信網絡組網仿真。安全計算機中的通信控制器作為兩個從站,形成4個節點的硬件平臺。

圖4 POWERLINK仿真平臺結構圖
根據設計的時間觸發通信容錯機制,本實例采用4個節點的POWERLINK結構。其中,主站節點是基于Qt圖形化開發設計實現POWERLINK協議棧,利用Qt直觀地圖形化界面分析測試結果,即為MN(Manage Node)節點。從站采用基于控制臺方式的設計,通信數據信息和程序運行狀態通過控制臺方式顯示,并分別根據從站節點ID將節點命名為CN1、CN32、CN110節點,每次通信后從節點會將組成員表信息顯示在控制臺上。
根據上述對GMP算法的流程描述,假設系統中有一組通信節點N={n0, n1, n2, n3},它們都能互相接收到正確消息,即初始時成員列表保持一致且Rej=0。現在,假設系統在一個TDMA周期中發生故障,通過對該情況的分析,觀察各個節點成員列表和計數器的狀態變化,進而實現對通信過程中的故障容錯。
出現第1次故障消息時:假設在n0發送消息時,節點n1出現接收故障,未能成功接收消息,并且系統中的其他節點均正確接收消息。假設接下來至少有兩個輪詢時間段沒有發生錯誤,那么系統節點的集合就分裂為兩個并行的子集:N0={n0, n2, n3},N1={n1}。
在n0發送消息后各節點的成員列表和計數器狀態如表1所示,測試狀態如圖5所示。在n0的發送時間段,由于n1接收n0信息失敗,將發送節點n0從其成員列表中刪除。

表1 各節點的成員列表和計數器狀態(n0發送消息后)

圖5 POWERLINK實時以太網通信狀態圖(n0發送消息后)
在n1發送消息后各節點的成員列表和計數器狀態如表2所示,測試狀態如圖6所示。由于n1和其他節點的成員列表不一致,無法通過CRC檢查,因此除了n1之外的節點均接收失敗,并且將n1從自身的成員列表中刪除。

表2 各節點的成員列表和計數器狀態(n1發送消息后)

圖6 POWERLINK實時以太網通信狀態圖(n1發送消息后)
在接下來的兩個時隙中,對于節點n2、n3發送的消息,節點n1均接收失敗,而其它節點均接收成功。此時各節點的成員列表和計數器狀態如表3所示。
由于新一輪調度時間周期的到來,n0重置其計數器的值。而在n1的發送時隙中,節點n1由于派系失效機制無法發送數據,清空成員列表成為非活躍狀態的節點。經過該時隙,節點的成員列表再次相互一致。在n1發送消息后各節點的成員列表和計數器狀態如表4所示,測試狀態如圖7所示。

表3 各節點的成員列表和計數器狀態(n2、n3發送消息后)

表4 各節點的成員列表和計數器狀態(新一輪,n1發送消息后)

圖7 POWERLINK實時以太網通信狀態圖(新一輪,n1發送消息后)
通過對以上情況的分析,可以看到當系統中的某個節點出現故障時,各個節點成員列表以及計數器的狀態變化,從而展現GMP算法對通信過程中節點的故障容錯過程。
本文分析了近年來安全苛求系統中通信網絡,將時間觸發以太網應用到安全計算機,以滿足通信的實時性和確定性要求,同時,時間觸發機制還支持多種容錯策略和故障檢測機制,為性能優化和容錯機制的設計提供了一個基礎。根據安全計算機對通信網絡的實時性要求并使系統具有一定的容錯能力,本文提出了可應用于安全計算機中的通信容錯機制,并在現有安全計算機架構的基礎上,搭建仿真環境,對提出的容錯機制進行驗證。結果表明,該機制提供故障檢測、故障屏蔽以及實現系統重組,保障系統的通信可靠性與安全性,對安全計算機通信的容錯性有明顯的優化效果。
參考文獻:
[1]魯秋子,徐田華,唐 濤. 混雜系統主動容錯架構在車載設備的應用研究[J]. 鐵路計算機應用,2014,23(1):1-5.
[2]陳 昕,周擁軍,蔣文保,等. AFDX協議性能分析及調度算法研究 [J]. 電子學報, 2009,37(5):1000-1005.
[3]盧宏康,曹 源,馬連川. 基于動態故障樹的異構安全計算機系統共模故障分析研究[J]. 鐵路計算機應用,2017,26(9):1-6.
[4]邱澤宇,曹 源,馬連川. 基于故障注入的安全計算機通信總線測試方法研究[J]. 鐵路計算機應用,2017,26(8):1-4.
[5]Yang J. Safety-related Communication and Safety-related Communication Standard EN50159[J].Railway Signalling &Communication Engineering,2014.
[6]王 悉,馬連川,袁彬彬. 2取2乘2安全計算機平臺的設計與實現[J].都市快軌交通, 2011,24(4):17-21.
[7]Yu H,Xue L. Scheduling design and analysis for end-to-end heterogeneous fl ows in an avionics network[C]// INFOCOM,2011 Proceedings IEEE. 2011:2417-2425.
[8]梁 靚,曹 源,馬連川,等. 安全計算機通信管理機制的形式化驗證與實現[J]. 通信學報,2016,37(11):196-202.
[9]黃智勇. 基于無線冗余的時間觸發架構車載總線研究[D]. 合肥:合肥工業大學,2013.