鄭 磊, 高曉光, 張國全
(西北工業(yè)大學(xué)電子信息學(xué)院,西安 710129)
隨著軟件和微電子技術(shù)的高度發(fā)展,航空電子架構(gòu)正由聯(lián)合式計算控制單元向高度綜合化的計算處理模塊轉(zhuǎn)變,綜合模塊化航空電子[1](Integrated Modular Avionics,IMA)就是其中的典型代表之一。IMA引入了魯棒的時間和空間分區(qū)機(jī)制使各種航電功能高度綜合在一起,使其在共享系統(tǒng)資源時具有相互獨(dú)立性,在保證系統(tǒng)安全性的前提下減少了航電系統(tǒng)的重量和體積,并一定程度地增強(qiáng)了系統(tǒng)的可維護(hù)性[2]。系統(tǒng)復(fù)雜度的增加使得對其安全性的保障尤為重要,IMA的測試和驗證活動要伴隨著整個IMA的生命周期過程[3]。
IMA帶來的航電新特性主要是由其航電功能的空間和時間的分區(qū)[4-5]來實現(xiàn)的。時間分區(qū)主要由IMA的系統(tǒng)級調(diào)度實現(xiàn),這一機(jī)制給每個分區(qū)分配了一定的執(zhí)行時間,從而使各個分區(qū)輪流得到執(zhí)行。一個健壯的分區(qū)系統(tǒng)要滿足不同關(guān)鍵等級的分區(qū)在同一個模塊中執(zhí)行時不會在空間和時間上互相影響,這樣的結(jié)構(gòu)使系統(tǒng)具有了高度的容錯性。
本文提出一種時間分區(qū)測試的方法,并采用IMA分區(qū)調(diào)度模型對該方法進(jìn)行分析,最后對模擬測試結(jié)果的時序特性進(jìn)行總結(jié)。
IMA的測試環(huán)境主要由測試系統(tǒng)和待測系統(tǒng)組成:測試系統(tǒng)主要進(jìn)行測試指令的發(fā)送以及測試結(jié)果的接收和分析;待測試系統(tǒng)接收測試系統(tǒng)的測試指令,完成測試動作后向測試系統(tǒng)返回測試結(jié)果。
在IMA的系統(tǒng)綜合測試階段[6],可以將待測系統(tǒng)看成是配置和應(yīng)用的組合:配置分為測試配置和真實配置;應(yīng)用分為測試應(yīng)用和真實應(yīng)用。根據(jù)測試的階段和目標(biāo),IMA模塊可以使用測試配置或者是部分或全部的真實配置;運(yùn)行在各個分區(qū)中的應(yīng)用可以是真實應(yīng)用也可以是測試應(yīng)用。為了測試IMA模塊的時間分區(qū)特性,時間分區(qū)測試采用的是測試配置和測試應(yīng)用。
時間分區(qū)測試需求就是當(dāng)某一個或多個分區(qū)發(fā)生故障導(dǎo)致分區(qū)停止運(yùn)行時,其他分區(qū)的運(yùn)行狀態(tài)不會受到性能或功能上的影響[7]。為了觀察到發(fā)生故障時其他分區(qū)的運(yùn)行狀態(tài),要使用某種方式使系統(tǒng)的運(yùn)行狀態(tài)能夠顯式地表現(xiàn)出來,測試應(yīng)用可以完成這一任務(wù)。為了說明測試應(yīng)用在測試過程中的行為,本文以一個具有4個分區(qū)的IMA待測平臺為例進(jìn)行說明,如圖1所示。
圖1 測試應(yīng)用行為Fig.1 The behavior of test application
這里的測試應(yīng)用由3個非周期的測試進(jìn)程組成。當(dāng)待測平臺接收到由測試系統(tǒng)發(fā)出的測試開始指令時,當(dāng)前運(yùn)行的分區(qū)就開始執(zhí)行預(yù)定的進(jìn)程。比如待測平臺接收到測試開始指令時,分區(qū)B正在運(yùn)行,那么測試應(yīng)用B中的測試進(jìn)程a首先要記錄接收到指令的時間,并生成一個包括這個時間信息的消息和CRC校驗信息,然后將這個消息向測試進(jìn)程b發(fā)送;測試進(jìn)程b接收到這個消息后首先要記錄接收到消息的時間,校驗消息的CRC,然后將接收時間加入到這一消息中生成一個新的消息并連同新的CRC校驗信息一起發(fā)送到測試進(jìn)程c;測試進(jìn)程c重復(fù)測試進(jìn)程b的動作,最后將具有各個階段生成的時間信息的消息發(fā)送回測試系統(tǒng)。當(dāng)所有的測試應(yīng)用都完成這一過程后,就可以獲得4個分區(qū)的當(dāng)前運(yùn)行狀態(tài)信息。觀察某一分區(qū)發(fā)生故障的情況下其他分區(qū)的運(yùn)行狀態(tài),可以通過調(diào)用操作系統(tǒng)的API來向待測系統(tǒng)發(fā)送測試指令,使某一分區(qū)關(guān)閉。
這樣,測試結(jié)果由3個時間信息組成,分別是測試進(jìn)程a的任務(wù)開始時間Ta,測試進(jìn)程b收到消息的時間Tb和進(jìn)程c收到消息的時間Tc。但是由于存在分區(qū)調(diào)度,各個分區(qū)測試進(jìn)程的執(zhí)行會受到分區(qū)時間窗口的限制。如圖2所示,分區(qū)A中,測試進(jìn)程b的運(yùn)行被分區(qū)A與分區(qū)B的時間窗口WAB打斷。這樣一來,當(dāng)分區(qū)A中的測試進(jìn)程c接收到消息時,時間已經(jīng)延后了WDA-WAB,而這屬于系統(tǒng)運(yùn)行的正?,F(xiàn)象,并不是分區(qū)處理性能受到影響造成的。所以,為了更加準(zhǔn)確地表現(xiàn)系統(tǒng)的運(yùn)行狀態(tài),各個測試進(jìn)程除了要記錄接收到消息的時刻,還要記錄被分區(qū)窗口打斷的時刻和進(jìn)程恢復(fù)運(yùn)行的時刻(分別對應(yīng)一個分區(qū)段的結(jié)束和開始)。
圖2 分區(qū)A中測試進(jìn)程b被分成兩部分Fig.2 Test prosess b was divided into two parts in partition A
測試系統(tǒng)獲得的消息可以用一個向量來描述(Ta,Wa1,Wa2,Tb,Wb1,Wb2,Tc,Wc1Wc2)。其中:Ta,Tb,Tc分別為測試進(jìn)程a的任務(wù)開始時間,測試進(jìn)程b接收到消息的時間和進(jìn)程c接收到消息的時間;Wa1,Wb1,Wc1分別為測試進(jìn)程a,b,c遭遇分區(qū)窗口中斷的時刻;Wa2,Wb2,Wc2分別為進(jìn)程遭遇中斷后恢復(fù)運(yùn)行的時間。
從測試結(jié)果中可以獲得兩方面的信息:1)各個分區(qū)中測試進(jìn)程b接收到測試進(jìn)程a發(fā)送的消息的時間間隔Tab和測試進(jìn)程c接收到測試進(jìn)程b發(fā)送的消息的時間間隔Tbc;2)各個分區(qū)的時間窗口信息。
Tab與Tbc可分別按式(1)和式(2)計算。
其中:MX為分區(qū)X相鄰兩次運(yùn)行的時間間隔;取,分別為各個分區(qū)段的期望運(yùn)行時間。
如果分區(qū)方式如圖2所示,那么在一個主幀時間范圍內(nèi)包含的分區(qū)節(jié)點(diǎn)依次分別為 WAB,WBC,WCD,WDA,它們的值分別為各個分區(qū)的 Wa1,Wb1,Wc1中第一個非零值。
在測試方法設(shè)計的早期階段,使用真實的待測平臺和測試系統(tǒng)會增加不必要的工作量,使用待測平臺的仿真模型可以解決這一問題。為了表明時間分區(qū)測試結(jié)果的時序特性,使用IMA的分區(qū)調(diào)度模型可以生成符合IMA時序特征的數(shù)據(jù)。
分區(qū)調(diào)度實質(zhì)上為無占先限制的無搶占調(diào)度[8],文獻(xiàn)[9]中給出了分區(qū)調(diào)度設(shè)計的方法。設(shè)P為m個分區(qū)的集合,即 P={p1,p2,…,pm}。對任一分區(qū) pj∈P,Dj為分區(qū)pj的執(zhí)行時間,Mj為分區(qū)pj的運(yùn)行周期,顯然有Dj≤Mj。當(dāng)任一分區(qū)開始執(zhí)行后,不會受到相同模塊上的其他分區(qū)的干擾。這里的時間由時間單元來度量,時間單元也就是相等長度的時間區(qū)間,以Δt表示時間單元長度。以s(pj)表示分區(qū)pj的開始時間,若其在時間單元t開始運(yùn)行,有s(pj)=t,其中t=1,2,…。已知分區(qū)pj的運(yùn)行時間為Dj個時間單元,那么實際開始運(yùn)行時間就是時間單元t的起始時間,運(yùn)行結(jié)束時間則為時間單元t+Dj-1的結(jié)束時間。類似的,以 pj[k]表示分區(qū) pj的第 k 次運(yùn)行,若 pj[k]在時間單元t開始運(yùn)行,那么pj[k+1]就在時間單元t+Mj開始運(yùn)行,也就是說分區(qū)pj每Mj個時間單元之后運(yùn)行一次。由于分區(qū)運(yùn)行的周期性,只要確定了各個分區(qū)的開始運(yùn)行時間,分區(qū)的各次運(yùn)行時間也就確定了。因此,分區(qū)調(diào)度S可由一個m維向量S=(s(p1),s(p2),…,s(pm))來確定,其中1≤s(pj)≤Mj。分區(qū)調(diào)度本身也是周期性的,一個分區(qū)調(diào)度的重復(fù)周期叫做主幀MAF[10],等于各個分區(qū)周期的最小公倍數(shù),即FMAF=lcm(T1,T2,…,Tm)。
圖3所示為IMA分區(qū)調(diào)度模型,主要由3部分組成。
圖3 IMA分區(qū)調(diào)度模型Fig.3 IMA partition scheduling model
1)任務(wù)時間預(yù)更新:根據(jù)當(dāng)前系統(tǒng)時間,判斷系統(tǒng)的當(dāng)前時間窗口和活動分區(qū)。選擇當(dāng)前活動分區(qū)中下一個測試進(jìn)程,并獲得這一測試進(jìn)程的運(yùn)行時間與當(dāng)前系統(tǒng)時間的累加值。
2)調(diào)度邏輯判斷:根據(jù)時間預(yù)更新的結(jié)果,判斷進(jìn)程是否被分區(qū)窗口打斷。
3)任務(wù)時間更新:若進(jìn)程未被分區(qū)窗口打斷,更新并記錄當(dāng)前分區(qū)當(dāng)前進(jìn)程的開始時刻與結(jié)束時刻;反之則更新并記錄當(dāng)前分區(qū)當(dāng)前進(jìn)程的開始時刻和分區(qū)時間窗口中斷時刻,保存當(dāng)前分區(qū)中被分區(qū)中斷的進(jìn)程的剩余執(zhí)行時間信息,并指定下一個分區(qū)窗口所屬的分區(qū)為當(dāng)前活動分區(qū)。
利用上述調(diào)度仿真模型,可以生成時間分區(qū)測試的模擬測試結(jié)果。
初始化一個具有4個分區(qū)的IMA待測模塊。分區(qū) A,B,C,D 的周期分別為 TA=100 ms,TB=100 ms,TC=100 ms,TD=200 ms;期望運(yùn)行時間分別為DA'=30 ms,DB'=20 ms,DC'=20 ms,,主幀 FMAF=200 ms,單位時間區(qū)間長度為Δt=1 ms,它的分區(qū)時間窗口如圖4所示。
圖4 分區(qū)時間窗口Fig.4 Partition time windows
圖4 中,一個主幀時間內(nèi)包含有10個分區(qū)節(jié)點(diǎn),依次分別為 WIA1,WAB1,WBC1,WCD1,WDI1,WIA2,WAB2,WBC2,WCD2,WDI2。當(dāng)測試開始于圖示位置時,分區(qū)節(jié)點(diǎn)與測試結(jié)果的對應(yīng)關(guān)系見表1。其中:表示分區(qū)P的 Wa1、Wb1、Wc1中第 1 個非零值;表示分區(qū) P的Wa1、Wb1、Wc1中第 2 個非零值;與同理。
表1 分區(qū)節(jié)點(diǎn)與測試結(jié)果的對應(yīng)關(guān)系Table 1 The relationship between partition nodes and test results
各個分區(qū)中的測試應(yīng)用的執(zhí)行時間如表2所示,其中,Δ為隨機(jī)時間抖動,|Δ|=2 ms。
表3和表4分別列出了向待測系統(tǒng)發(fā)送關(guān)閉分區(qū)B指令前后的兩次測試結(jié)果,開始時刻分別為t1=1.853 s和 t2=2.253 s。
從表3與表4所列出的數(shù)據(jù)中可以看出分區(qū)A的數(shù)據(jù)出現(xiàn)了兩個問題:1)Wa1,Wb1,Wc1三個數(shù)據(jù)中只有一個非零值;2)Wa2,Wb2,Wc2三個數(shù)據(jù)中只有一個非零值。
表2 各個分區(qū)中的測試應(yīng)用的執(zhí)行時間Table 2 The execution time of process in different partitions
表3 分區(qū)關(guān)閉指令發(fā)送前一次測試結(jié)果Table 3 The test results before the order s
表4 分區(qū)B關(guān)閉指令后的一次測試結(jié)果Table 4 The test results after the order s
由于分區(qū)A中的3個測試進(jìn)程的累加運(yùn)行時間小于在一個主幀時間內(nèi)的分區(qū)運(yùn)行時間(2DA),導(dǎo)致在一個主幀時間內(nèi)只能得到一個非零。在關(guān)閉分區(qū)B指令發(fā)送前 ,可以從表4分區(qū)B的數(shù)據(jù)中獲得WAB1的值但是當(dāng)分區(qū)B關(guān)閉后無法獲得 WAB1的值,造成了數(shù)據(jù)的丟失。
由于分區(qū)A的前一個相鄰分區(qū)是空閑分區(qū),因此分區(qū)A時間窗口的開始時刻WIA1和WIA2只能由進(jìn)程遭遇中斷后恢復(fù)運(yùn)行的時間來記錄,但是當(dāng)測試開始于非A分區(qū)的其他分區(qū)時,分區(qū)的第一次運(yùn)行無法獲得這一數(shù)據(jù)。此時,應(yīng)當(dāng)將進(jìn)程a的開始時間算作分區(qū)A第一個時間窗口,即WIA2=TAa。
本文針對IMA時間分區(qū)測試問題建立了IMA分區(qū)調(diào)度仿真模型,使用該仿真模型進(jìn)行測試方法設(shè)計降低了系統(tǒng)復(fù)雜度,減少了不必要的工作量,適用于測試方案的早期設(shè)計。對IMA測試研究仍需要更加完備的實時硬件系統(tǒng)和操作系統(tǒng)的仿真。
[1] ARINC 651.Design guidance for integrated modular avionics[Z].1991.
[2] 陳娟.ARINC653分區(qū)操作系統(tǒng)在綜合模塊化航空電子系統(tǒng)中的應(yīng)用[J].電訊技術(shù),2009(5):89-92.
[3] RTCA DO-297.Guidance and certification considerations for integrated modular avionics[Z].2005.
[4] JOHNSON L A.Software considerations in airborne systems and equipment certification[Z].1992.
[5] RUSHBY J.Partitioning on avionics architectures:Requirements,mechanisms,and assurance[R].NASA,1999.
[6] VON ALIKI O.System testing in the avionics domain[DB/OL].http://www.informatlk.uni-bremen.de/~ tsio/papers/Aliki_Ott_dissertation.pdf,2007.
[7] ARINC 653-1.Avionics application software standard interface[Z].2003.
[8] KORST J.Periodic multiprocessor scheduling[D].Eindhoven the Netherlands:Eindhoven university of technology,1992.
[9] 何峰,宋麗茹,熊華鋼.航空電子分區(qū)層次調(diào)度模型及其優(yōu)化設(shè)計[J].系統(tǒng)仿真學(xué)報,2009,19:6004-6008.
[10] LEE Y H.Resource scheduling in dependable integrated modular avionics[C]//NY USA,2000:14-23.