蘇羅輝,牛 萌,劉 坤
(1.飛行器控制一體化技術(shù)國防科技重點實驗室,陜西西安710065;2.中航工業(yè)西安飛行自動控制研究所,陜西西安710065)
計算機系統(tǒng)按操作被調(diào)度執(zhí)行的方式分為以下2種方式,即事件觸發(fā)方式和時間觸發(fā)方式。所謂“事件觸發(fā)”是指一個系統(tǒng)的某項任務(wù) (數(shù)據(jù)傳輸、進程調(diào)用等)可以在任何可能的時刻觸發(fā)執(zhí)行,觸發(fā)的條件完全取決于控制器“認(rèn)為”此項任務(wù)應(yīng)該得到執(zhí)行,觸發(fā)的時刻點可能是隨機的;而“時間觸發(fā)”系統(tǒng)行為與之相反,系統(tǒng)任務(wù)的觸發(fā)執(zhí)行完全在系統(tǒng)設(shè)計階段已經(jīng)預(yù)定義好的時刻進行[1]。
事件觸發(fā)系統(tǒng)的弊端是將寶貴的時間用來解決資源共享沖突或者恢復(fù)操作,這樣增加了系統(tǒng)的復(fù)雜性,導(dǎo)致龐大的代碼結(jié)構(gòu)。作為飛行安全關(guān)鍵系統(tǒng),這樣的代碼長度及復(fù)雜性難于進行測試驗證,勢必會帶來在安全性和可靠性上的損失。而時間觸發(fā)方式的出現(xiàn)為這些問題提供很好的解決方法。本文以時間觸發(fā)協(xié)議的特點為基礎(chǔ),主要研究了以ARINC 659時間觸發(fā)串行背板數(shù)據(jù)總線為基礎(chǔ)的計算機系統(tǒng)的體系架構(gòu)。
事件觸發(fā)和時間觸發(fā)各自具有最佳適用領(lǐng)域,事件觸發(fā)系統(tǒng)的特點是具有較強的靈活性、適應(yīng)性較強,響應(yīng)也較為快速,但其主要的缺點在于以下幾個方面:
不確定性:當(dāng)多個外部事件同時發(fā)生時,需要通過仲裁等方式確定系統(tǒng)任務(wù)的執(zhí)行順行,因此在某個時間點上其可靠性和實時性設(shè)計就難以保證,由此引申出的缺點是在系統(tǒng)開發(fā)和測試的過程中很難充分驗證實際系統(tǒng)運行當(dāng)中的各種可能情況的組合,可能出現(xiàn)由于資源競爭等因為驗證不完備帶來的系統(tǒng)崩潰的情況發(fā)生。
容易故障蔓延:事件觸發(fā)總線一般都屬于有主類系統(tǒng),總線上某個節(jié)點的失效 (例如,持續(xù)占用總線或地址錯誤造成誤寫入)很容易造成整個系統(tǒng)的失效。
不利于系統(tǒng)資源重構(gòu):事件觸發(fā)系統(tǒng)一般都是有主的系統(tǒng),即如果總線的主控器失效,掛接在總線上的所有資源都不可用。
事件觸發(fā)系統(tǒng)以上的種種缺點有時在要求有極高安全等級的系統(tǒng)中是不能被接受的。而時間觸發(fā)系統(tǒng)的特點是具有嚴(yán)格的系統(tǒng)行為確定性與穩(wěn)定性,由此帶來的優(yōu)點在于:
確定性:時間觸發(fā)系統(tǒng)在設(shè)計階段就將總線資源使用與任務(wù)進程調(diào)度計劃制定完畢,每個節(jié)點都在系統(tǒng)預(yù)定義的時間段使用資源,除此之外沒有第二種可能情況,使得系統(tǒng)設(shè)計與驗證變得簡單與充分。
健壯的分時分區(qū)特征:在總線節(jié)點與總線間具有可靠的FCR(故障隔離邊界),系統(tǒng)中某個節(jié)點的失效從時間上和空間上都極難影響到系統(tǒng)中的其它節(jié)點正常運行。
利于系統(tǒng)資源重構(gòu):時間觸發(fā)系統(tǒng)中每個功能節(jié)點都作為資源節(jié)點的方式掛接在時間觸發(fā)總線上,并且時間觸發(fā)總線的運行與維護具有無主的特征,因此任何一個功能節(jié)點的失效都不會對總線造成影響,并且通過余度配置,正常的功能節(jié)點可以較為容易地頂替失效節(jié)點的功能。
由于時間觸發(fā)系統(tǒng)以上種種優(yōu)點,使它非常適合應(yīng)用于要求具有極高安全等級的系統(tǒng)。
安全關(guān)鍵系統(tǒng)普遍采用串行和時間觸發(fā)相結(jié)合的方式,串行時間觸發(fā)總線提供了總線上各節(jié)點間容錯的時間同步和數(shù)據(jù)傳輸?shù)裙δ?。典型的串行時間觸發(fā)總線包括ARINC-659(SAFE-Bus)[2]、TTP[3]和 FlexRay[4]等。下面對其分別進行簡要介紹:
ARINC-659:由Honeywell提出,并成功應(yīng)用于波音777的AIMS(綜合航電管理系統(tǒng)),波音717N、MD-10、KC-130等飛機的VIA(通用集成航電系統(tǒng))和NASA下一代空間探索的Highly Reliable Layered Systems系統(tǒng)[5]等多個領(lǐng)域中。
TTP/C:由奧地利TT-Tech公司提出技術(shù)標(biāo)準(zhǔn),其最初主要是應(yīng)用于汽車控制領(lǐng)域,近年來也被航空領(lǐng)域的某些項目所采用。
FlexRay:近年來剛出現(xiàn)的低成本時間觸發(fā)解決方案,主要應(yīng)用于汽車領(lǐng)域。
有關(guān)這幾種時間觸發(fā)總線之間的比較,已經(jīng)有多個研究機構(gòu)對此做過詳細的分析對比[6]。在分析比較ARINC-659、TTP和FlexRay等時間觸發(fā)總線各方面的特征后,其認(rèn)為ARINC-659總線是最為成熟的時間觸發(fā)總線,對影響安全性的方面做了最少的妥協(xié);從安全性和容錯性角度考慮,其認(rèn)為ARINC-659總線是最為可靠的。
ARINC-659總線的結(jié)構(gòu)如圖1所示,其特點是:
(1)四余度串行總線配置;
(2)60Mbps高數(shù)據(jù)帶寬;
(3)時間觸發(fā)驅(qū)動的總線傳輸行為;
(4)魯棒的分時分區(qū)特性;
(5)總線二次故障工作三次故障檢測;
(6)完善的故障封鎖機制、節(jié)點間完全的故障隔離。
圖1 ARINC-659總線結(jié)構(gòu)框架
同傳統(tǒng)的并行背板總線相比,ARINC-659串行背板總線,不但提供了高數(shù)據(jù)傳輸帶寬,還大幅提高系統(tǒng)的可靠性和安全性要求,簡化了總線監(jiān)控方式。
為了最大化減小單點故障帶來對整個總線的影響,特別是為了防止BIU(總線接口單元)異常使其故障蔓延到整個總線從而導(dǎo)致的總線上其余節(jié)點無法正常工作,一個BIU控制器中包含了2個完全相同的獨立封裝的BIU芯片,分別標(biāo)識為BIUx和BIUy,BIUx和BIUy各自擁有獨立的晶振和存儲表程序的EEPROM,2個BIU在工作時處于互監(jiān)控的工作模式,并控制對方的發(fā)送使能,一旦發(fā)現(xiàn)異常,則會切斷對方的輸出,因此2個BIU互監(jiān)控這種方式構(gòu)成了背板上每個總線節(jié)點和背板之間的嚴(yán)格的故障封鎖邊界(fault containment region),保證總線節(jié)點內(nèi)部的故障不會蔓延到整個背板上。
隨著計算機技術(shù)的發(fā)展,航空電子系統(tǒng)結(jié)構(gòu)發(fā)生了極大的變革,IMA(綜合模塊化航空電子系統(tǒng))被廣泛的應(yīng)用于飛機控制系統(tǒng)中[7,8]。采用IMA的系統(tǒng)具有高可靠性、維修性,減小了重量和體積,降低了系統(tǒng)的維修和全壽命周期費用等。
ARINC-659總線規(guī)范是為綜合的模塊化航空電子設(shè)備、機柜內(nèi)現(xiàn)場可更換模塊間數(shù)字?jǐn)?shù)據(jù)信息傳輸制訂的規(guī)范標(biāo)準(zhǔn),是針對外場可更換模塊 (line replacemodule,LRM)的要求制定的規(guī)范,描述了綜合的模塊化航空電子設(shè)備背板總線所需的電特性和總線特性,規(guī)范詳細規(guī)定了總線的協(xié)議、時序、速率和物理特性。
ARINC-659總線規(guī)范應(yīng)用于機柜內(nèi)部通訊,補充了ARINC-429、ARINC-629,ARINC-636,ARINC-646等機柜外部部件間通訊的協(xié)議。
綜合的模塊化航空電子設(shè)備的背板總線必須具有很高的可靠性和故障容錯性,故障容錯性指提供需要功能的能力和發(fā)生一個或多個故障后通過某種方式繼續(xù)工作的能力。ARINC-659總線通過最小的邏輯和最小的總線數(shù)來提高可靠性,通過極高的故障檢測覆蓋率和故障冗余來提高故障容錯性。ARINC-659總線是一種高度完備的背板總線,具有以下幾個主要特點:
(1)總線具有故障容忍和健壯的時間 (總線信息傳輸?shù)臅r間)與空間 (存儲空間)分區(qū)功能;
(2)總線是串行背板總線,從而減少了硬件資源,簡化了使用和總線監(jiān)控,較大的提高了可靠性。它支持雙余度,具有自監(jiān)控能力,通過交叉檢測進一步提高了數(shù)據(jù)的可靠性;
(3)總線是半雙工的串行數(shù)據(jù)總線,是對-對配置的總線,即A、B總線,每對總線含有x和y這2套總線,共有Ax、Ay、Bx、By這4套總線,每套總線含有一個獨立的時鐘和2條數(shù)據(jù)線,同時傳輸2位數(shù)據(jù),因此完整的總線包含12條信號線??偩€主要是通過選舉輸入的方法進行故障檢測的,具有故障冗余和故障隔離的能力。余度總線支持延期維護、擴展維護、告警期功能;
(4)總線采用同步串行方式,時鐘速率30MHz,數(shù)據(jù)線同時傳輸2位??偩€使用BTL總線驅(qū)動器,BTL驅(qū)動器是集電極開路器件,具有線或能力。
ARINC-659時間觸發(fā)協(xié)議保證了系統(tǒng)的確定性,極大提高了系統(tǒng)的穩(wěn)定性、可測試性和功能驗證?;贏RINC-659時間觸發(fā)協(xié)議的系統(tǒng)非常適合對安全性有極嚴(yán)格要求的工程項目,例如:航空與航天領(lǐng)域。
實時分布式高可靠系統(tǒng)的最適合的方式是使用支持容錯的特殊硬件和在硬件之上實現(xiàn)的操作系統(tǒng)。時間觸發(fā)架構(gòu) (time-triggered architecture,TTA)也不例外,時間觸發(fā)架構(gòu)等于時間觸發(fā)總線加上時間觸發(fā)操作系統(tǒng)。
在每一個節(jié)點中,主計算機和通信控制器是完全獨立的自主運行 (有時并不一定),時間觸發(fā)總線僅描述了時間觸發(fā)的通信方式,并沒有對主機有任何約束。所以,主機可以在任何時間取得CNI的數(shù)據(jù),也可以在任何時間處理任務(wù),并將數(shù)據(jù)在任何時間 (需要保持互斥機制)放在CNI中。時間觸發(fā)架構(gòu) (TTA)將時間觸發(fā)方式從通信層次擴展到了主機應(yīng)用上。在TTA中,任務(wù)的執(zhí)行由時間觸發(fā)操作系統(tǒng)管理,每個節(jié)點中另一個調(diào)度 (任務(wù)描述列表TADL)控制任務(wù)的執(zhí)行。消息描述列表 (MEDL)是全局的,而TADL是節(jié)點級的。也就是說,消息被接收后,使用該消息的任務(wù)開始運行,任務(wù)完成后,輸出結(jié)果,如圖2所示。
時間觸發(fā)架構(gòu)具有以下特點:
(1)具有全局時鐘,整個分布式系統(tǒng)可以構(gòu)建以全局時鐘為基礎(chǔ)的應(yīng)用調(diào)度框架;
(2)完全分布式,應(yīng)用任務(wù)可以靈活地分布于任何一個計算單元之中,應(yīng)用分配的粒度可以更小;應(yīng)用任務(wù)的分配可以做到對用戶的完全透明。用戶如果沒有看到配置表,可能并不知道應(yīng)用任務(wù)在哪個節(jié)點上運行;
(3)支持任意余度配置、支持異構(gòu)的硬件和軟件,任務(wù)間通信或者不同節(jié)點之間的通信均是時間觸發(fā)的消息;
(4)任務(wù)的啟動都是采用時間激活,每個任務(wù)都有一定的任務(wù)運行時間,任務(wù)從來不等待;
(5)基于分布式,可以由多個 (節(jié)點)合作并行完成一個復(fù)雜應(yīng)用,可有效降低節(jié)點處理能力需求。
以下是一個簡單的時間觸發(fā)結(jié)構(gòu)圖,如圖3所示。
時間觸發(fā)系統(tǒng)是一個嚴(yán)格的硬實時系統(tǒng),它要求,系統(tǒng)運行過程嚴(yán)格的按照預(yù)先設(shè)計的時間表運行,任何違背時間域出現(xiàn)的值都認(rèn)為是錯誤的,因而時間觸發(fā)系統(tǒng)是實現(xiàn)高可靠計算機控制系統(tǒng)一個很好的選擇。
圖2 時間觸發(fā)架構(gòu)下的收發(fā)時序
圖3 時間觸發(fā)架構(gòu)
隨著可靠性的提高,目前國際上對一些安全關(guān)鍵的電傳系統(tǒng),都在研究采用時間觸發(fā)的架構(gòu)來設(shè)計實現(xiàn),從而保證在值域和時域都是正確。同時對操作系統(tǒng)也提出了更高的可靠性需求。高可靠操作系統(tǒng)的需求包括以下幾點:
(1)確保任務(wù)的時間約束;
(2)支持高可靠應(yīng)用領(lǐng)域的需要 (支持錯誤偵測、死線監(jiān)視等);
(3)運行時的計算最小化,以便更安全;
(4)提供一個簡單的可預(yù)測的環(huán)境。
時間觸發(fā)操作系統(tǒng)確保分布式系統(tǒng)的節(jié)點以同步的方式來執(zhí)行其活動,而且這些活動必須在分配的時間窗口內(nèi)完成。為了滿足這些需求,操作系統(tǒng)提供同步時基,并且增加對每個程序進行執(zhí)行時間上的限制。系統(tǒng)的行為在設(shè)計階段就已經(jīng)確定,在設(shè)計階段就可以對系統(tǒng)進行驗證。支持2層的容錯機制,底層 (節(jié)點層次)負(fù)責(zé)錯誤診斷和錯誤的約束,并且阻止錯誤的蔓延。頂層 (系統(tǒng)層),不需要關(guān)心錯誤的數(shù)據(jù),僅僅提供充足的冗余機制來容忍系統(tǒng)失效的部件。頂層的主要功能是處理冗余數(shù)據(jù),并且在系統(tǒng)上一個節(jié)點失效的情況下重構(gòu)系統(tǒng)。為了保證增加可靠性和可預(yù)測性,內(nèi)核保持盡可能的小。
如果要更有效地使用時間觸發(fā)總線,就必須改變傳統(tǒng)的基于事件觸發(fā)的軟件設(shè)計模型到基于時間觸發(fā)的設(shè)計模式。在歐洲的汽車電子組織已經(jīng)發(fā)布了時間觸發(fā)操作系統(tǒng)規(guī)范 OSEKTime1.0[9]。
時間觸發(fā)操作系統(tǒng)是一個微內(nèi)核的操作系統(tǒng),該系統(tǒng)的開發(fā)思想主要體現(xiàn)在以下幾個方面:
(1)可預(yù)測 (確定性,即是在已定義的峰值負(fù)載和故障條件下有預(yù)先確定的行為);
(2)清晰,模塊化的結(jié)構(gòu)成為驗證的基礎(chǔ);
(3)可靠性 (采用故障檢測與容錯處理,能夠可靠的運行);
(4)支持模塊化的開發(fā)和沒有任何負(fù)效應(yīng)的綜合 (組合性);
(5)兼容 OSEK/VDX[10]。
時間觸發(fā)操作系統(tǒng)支持靜態(tài)調(diào)度,能夠為實時應(yīng)用提供所有的基本服務(wù),例如中斷處理,調(diào)度,系統(tǒng)時間和時鐘同步,本地消息處理,以及故障偵測機制。時間觸發(fā)操作系統(tǒng)的主要功能包括:任務(wù)管理 (任務(wù)狀態(tài)管理、任務(wù)切換、調(diào)度策略、死線監(jiān)控)、中斷管理、系統(tǒng)時間同步和啟動服務(wù)、處理器內(nèi)部消息處理和錯誤處理。
一個典型的時間觸發(fā)計算機系統(tǒng)采用ARINC-659串行背板總線為核心,各功能板以資源節(jié)點的方式掛接在總線上。ARINC-659總線以“無主”的方式運行,即每個節(jié)點都參與到總線的運行與維護中,但總線的運行與維護又不唯一依賴于任何單一的總線節(jié)點,這種結(jié)構(gòu)避免了傳統(tǒng)余度計算機結(jié)構(gòu)中各通道以處理器為核心,從而帶來系統(tǒng)余度降級的速度過快的缺點。掛接在總線上的每個功能板的總線接口單元 (BIU)均依據(jù)在設(shè)計階段就已確定的某個特定的總線時間片進行總線數(shù)據(jù)的發(fā)送或接收操作。
ARINC-659總線中“時間觸發(fā)”的含義為在確定的時間開始執(zhí)行確定的任務(wù),并在確定的時間段內(nèi)完成該任務(wù),其中不但包括總線在規(guī)定的時間傳輸指定的數(shù)據(jù),也包括各個功能模塊在規(guī)定的時間啟動指定的任務(wù)。通過時間觸發(fā)機制,保證了系統(tǒng)運行的確定性,降低了計算機的傳輸延遲并且減少了傳輸抖動,提高了系統(tǒng)運行的可靠性。ARINC-659總線可以通過由每個BIU在指定的時刻發(fā)出特定中斷信號的方式觸發(fā)功能節(jié)點對應(yīng)任務(wù)的執(zhí)行,依靠此機制可以使得系統(tǒng)級任務(wù)的調(diào)度執(zhí)行與ARINC-659總線的運行保持同步,為全系統(tǒng)實現(xiàn)時間觸發(fā)提供了可能。ARINC-659總線的時間規(guī)劃與總線活動之間的關(guān)系如圖4所示。
圖4 ARINC-659時間規(guī)劃原理
通過引入ARINC-659串行背板總線技術(shù),實現(xiàn)了系統(tǒng)基于功能模塊級的資源管理和資源重構(gòu),使得余度管理的顆粒度變細、重構(gòu)能力增強。與傳統(tǒng)以事件觸發(fā)系統(tǒng) (處理器為核心)采用的余度管理策略相比較,克服了其以單個通道為余度管理基本單位的缺點,大大降低了余度降級的速度,使得在同等余度等級配置下系統(tǒng)的任務(wù)可靠性和安全可靠性顯著提高。傳統(tǒng)計算機可靠模型和串行背板的計算機可靠模型分別如圖5、圖6所示。
時間觸發(fā)的計算機系統(tǒng)以網(wǎng)絡(luò)化總線為核心,而不以CPU為核心,各種類型的處理器僅以運算資源節(jié)點的方式掛接總線,計算機的各I/O功能模塊均為智能節(jié)點,含有微控制器,對I/O功能板上的信號進行調(diào)理、監(jiān)控和管理,全部以數(shù)字量的方式通過背板總線進行數(shù)據(jù)傳輸,系統(tǒng)綜合構(gòu)成模塊化、多余度、高可靠的計算機。
圖5 傳統(tǒng)計算機可靠性模型
圖6 串行背板計算機可靠性模型
其系統(tǒng)的主要特點:
(1)時間觸發(fā)協(xié)議保證了系統(tǒng)的確定性、穩(wěn)定性、可測試性和功能驗證,構(gòu)成高可靠的數(shù)據(jù)通訊總線;
(2)功能模塊 (LRM)構(gòu)成系統(tǒng)余度管理和資源管理的單元,余度降級緩慢,充分利用系統(tǒng)資源;
(3)智能節(jié)點具有完備的自檢測能力;
(4)支持系統(tǒng)全壽命周期內(nèi)的節(jié)點維護升級,而不影響系統(tǒng)的結(jié)構(gòu)。
以下是一種基于ARINC-659總線的計算機系統(tǒng)方案,如圖7所示。
圖7 基于ARINC-659總線的串行背板計算機系統(tǒng)
大量研究和工程實踐表明:對高可靠性系統(tǒng)而言,時間觸發(fā)在系統(tǒng)的確定性、容錯及故障隔離能力、設(shè)計驗證的難易程度上都比之前的方案有更大優(yōu)勢。
采用時間觸發(fā)架構(gòu)的計算機系統(tǒng)已經(jīng)成為設(shè)計具有高安全等級要求系統(tǒng)的發(fā)展趨勢,例如航空航天和汽車領(lǐng)域的全權(quán)限系統(tǒng)。
由于確定性和良好的分時分區(qū)特征,基于時間觸發(fā)架構(gòu)的系統(tǒng)方便將不同供應(yīng)商或者團隊提供的子系統(tǒng)直接進行綜合,從而大大簡化了集成驗證的工作量。
[1]GUO Lijuan,LIU Shuangyu,ZHANG Ji.Architecture of a timetriggered real-time system with high-reliability[J].Computer Engineering,2006,32(4):272-274(in Chinese).[郭麗娟,劉雙與,張激.基于時間觸發(fā)的高可靠性實時系統(tǒng)架構(gòu)[J].計算機工程,2006,32(4):272-274.]
[2]Arinc.Arinc specification 659 backplane data bus[S].1993.
[3]SAE Aerospace.TTP communication protocol[S].2011.
[4]FlexRay Consortium.FlexRay communications system protocol specification(Version 2.1 Revision A)[S].2005.
[5]Black R,F(xiàn)letcher M.Nextgeneration space avionics:A highly reliable layered system implementation[J].IEEE AESSystems Magazine,2005,20(12):9-14.
[6]NASA.Comparison of communication architectures for spacecraft modular avionics systems[R].USA:NASA 2006.
[7]Ramaker R,Krug W,Phebus W.Application of a civil integrated modular architecture to military transport aircraft[C]//The 26th Digital Avionics Systems Conference,2007.
[8]ZHANG Ximin,WEI Ting.Development of ARINC659 fault-tolerant data bus testand verification system[J].Journal of Xidian University,2011,38(6):140-145(in Chinese).[張喜民,魏婷.ARINC659容錯數(shù)據(jù)總線測試驗證系統(tǒng)研制[J].西安電子科技大學(xué)學(xué)報,2011,38(6):140-145.]
[9]XIE Haofei,CHEN Jiajia,SHU Qiang.Improvement and implementation of coexistencemodel based on OSEKTIME[J].Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition),2009,21(5):658-661(in Chinese).[謝昊飛,陳家佳,舒強.基于OSEKTime的共存模型的改進與實現(xiàn)[J].重慶郵電大學(xué)學(xué)報 (自然科學(xué)版),2009,21(5):658-661.]
[10]ZHANG Liangfei,LIYinguo.Design of embedded real-time operating system AutoOSEK [J].Computer Engineering,2007,33(16):53-55(in Chinese).[章亮飛,李銀國.嵌入式實時操作系統(tǒng)AutoOSEK的設(shè)計[J].計算機工程,2007,33(16):53-55.]