鄭 磊, 高曉光, 張國全
(西北工業大學電子信息學院,西安 710129)
隨著軟件和微電子技術的高度發展,航空電子架構正由聯合式計算控制單元向高度綜合化的計算處理模塊轉變,綜合模塊化航空電子[1](Integrated Modular Avionics,IMA)就是其中的典型代表之一。IMA引入了魯棒的時間和空間分區機制使各種航電功能高度綜合在一起,使其在共享系統資源時具有相互獨立性,在保證系統安全性的前提下減少了航電系統的重量和體積,并一定程度地增強了系統的可維護性[2]。系統復雜度的增加使得對其安全性的保障尤為重要,IMA的測試和驗證活動要伴隨著整個IMA的生命周期過程[3]。
IMA帶來的航電新特性主要是由其航電功能的空間和時間的分區[4-5]來實現的。時間分區主要由IMA的系統級調度實現,這一機制給每個分區分配了一定的執行時間,從而使各個分區輪流得到執行。一個健壯的分區系統要滿足不同關鍵等級的分區在同一個模塊中執行時不會在空間和時間上互相影響,這樣的結構使系統具有了高度的容錯性。
本文提出一種時間分區測試的方法,并采用IMA分區調度模型對該方法進行分析,最后對模擬測試結果的時序特性進行總結。
IMA的測試環境主要由測試系統和待測系統組成:測試系統主要進行測試指令的發送以及測試結果的接收和分析;待測試系統接收測試系統的測試指令,完成測試動作后向測試系統返回測試結果。
在IMA的系統綜合測試階段[6],可以將待測系統看成是配置和應用的組合:配置分為測試配置和真實配置;應用分為測試應用和真實應用。根據測試的階段和目標,IMA模塊可以使用測試配置或者是部分或全部的真實配置;運行在各個分區中的應用可以是真實應用也可以是測試應用。為了測試IMA模塊的時間分區特性,時間分區測試采用的是測試配置和測試應用。
時間分區測試需求就是當某一個或多個分區發生故障導致分區停止運行時,其他分區的運行狀態不會受到性能或功能上的影響[7]。為了觀察到發生故障時其他分區的運行狀態,要使用某種方式使系統的運行狀態能夠顯式地表現出來,測試應用可以完成這一任務。為了說明測試應用在測試過程中的行為,本文以一個具有4個分區的IMA待測平臺為例進行說明,如圖1所示。

圖1 測試應用行為Fig.1 The behavior of test application
這里的測試應用由3個非周期的測試進程組成。當待測平臺接收到由測試系統發出的測試開始指令時,當前運行的分區就開始執行預定的進程。比如待測平臺接收到測試開始指令時,分區B正在運行,那么測試應用B中的測試進程a首先要記錄接收到指令的時間,并生成一個包括這個時間信息的消息和CRC校驗信息,然后將這個消息向測試進程b發送;測試進程b接收到這個消息后首先要記錄接收到消息的時間,校驗消息的CRC,然后將接收時間加入到這一消息中生成一個新的消息并連同新的CRC校驗信息一起發送到測試進程c;測試進程c重復測試進程b的動作,最后將具有各個階段生成的時間信息的消息發送回測試系統。當所有的測試應用都完成這一過程后,就可以獲得4個分區的當前運行狀態信息。觀察某一分區發生故障的情況下其他分區的運行狀態,可以通過調用操作系統的API來向待測系統發送測試指令,使某一分區關閉。
這樣,測試結果由3個時間信息組成,分別是測試進程a的任務開始時間Ta,測試進程b收到消息的時間Tb和進程c收到消息的時間Tc。但是由于存在分區調度,各個分區測試進程的執行會受到分區時間窗口的限制。如圖2所示,分區A中,測試進程b的運行被分區A與分區B的時間窗口WAB打斷。這樣一來,當分區A中的測試進程c接收到消息時,時間已經延后了WDA-WAB,而這屬于系統運行的正常現象,并不是分區處理性能受到影響造成的。所以,為了更加準確地表現系統的運行狀態,各個測試進程除了要記錄接收到消息的時刻,還要記錄被分區窗口打斷的時刻和進程恢復運行的時刻(分別對應一個分區段的結束和開始)。

圖2 分區A中測試進程b被分成兩部分Fig.2 Test prosess b was divided into two parts in partition A
測試系統獲得的消息可以用一個向量來描述(Ta,Wa1,Wa2,Tb,Wb1,Wb2,Tc,Wc1Wc2)。其中:Ta,Tb,Tc分別為測試進程a的任務開始時間,測試進程b接收到消息的時間和進程c接收到消息的時間;Wa1,Wb1,Wc1分別為測試進程a,b,c遭遇分區窗口中斷的時刻;Wa2,Wb2,Wc2分別為進程遭遇中斷后恢復運行的時間。
從測試結果中可以獲得兩方面的信息:1)各個分區中測試進程b接收到測試進程a發送的消息的時間間隔Tab和測試進程c接收到測試進程b發送的消息的時間間隔Tbc;2)各個分區的時間窗口信息。
Tab與Tbc可分別按式(1)和式(2)計算。

其中:MX為分區X相鄰兩次運行的時間間隔;取,分別為各個分區段的期望運行時間。
如果分區方式如圖2所示,那么在一個主幀時間范圍內包含的分區節點依次分別為 WAB,WBC,WCD,WDA,它們的值分別為各個分區的 Wa1,Wb1,Wc1中第一個非零值。
在測試方法設計的早期階段,使用真實的待測平臺和測試系統會增加不必要的工作量,使用待測平臺的仿真模型可以解決這一問題。為了表明時間分區測試結果的時序特性,使用IMA的分區調度模型可以生成符合IMA時序特征的數據。
分區調度實質上為無占先限制的無搶占調度[8],文獻[9]中給出了分區調度設計的方法。設P為m個分區的集合,即 P={p1,p2,…,pm}。對任一分區 pj∈P,Dj為分區pj的執行時間,Mj為分區pj的運行周期,顯然有Dj≤Mj。當任一分區開始執行后,不會受到相同模塊上的其他分區的干擾。這里的時間由時間單元來度量,時間單元也就是相等長度的時間區間,以Δt表示時間單元長度。以s(pj)表示分區pj的開始時間,若其在時間單元t開始運行,有s(pj)=t,其中t=1,2,…。已知分區pj的運行時間為Dj個時間單元,那么實際開始運行時間就是時間單元t的起始時間,運行結束時間則為時間單元t+Dj-1的結束時間。類似的,以 pj[k]表示分區 pj的第 k 次運行,若 pj[k]在時間單元t開始運行,那么pj[k+1]就在時間單元t+Mj開始運行,也就是說分區pj每Mj個時間單元之后運行一次。由于分區運行的周期性,只要確定了各個分區的開始運行時間,分區的各次運行時間也就確定了。因此,分區調度S可由一個m維向量S=(s(p1),s(p2),…,s(pm))來確定,其中1≤s(pj)≤Mj。分區調度本身也是周期性的,一個分區調度的重復周期叫做主幀MAF[10],等于各個分區周期的最小公倍數,即FMAF=lcm(T1,T2,…,Tm)。
圖3所示為IMA分區調度模型,主要由3部分組成。

圖3 IMA分區調度模型Fig.3 IMA partition scheduling model
1)任務時間預更新:根據當前系統時間,判斷系統的當前時間窗口和活動分區。選擇當前活動分區中下一個測試進程,并獲得這一測試進程的運行時間與當前系統時間的累加值。
2)調度邏輯判斷:根據時間預更新的結果,判斷進程是否被分區窗口打斷。
3)任務時間更新:若進程未被分區窗口打斷,更新并記錄當前分區當前進程的開始時刻與結束時刻;反之則更新并記錄當前分區當前進程的開始時刻和分區時間窗口中斷時刻,保存當前分區中被分區中斷的進程的剩余執行時間信息,并指定下一個分區窗口所屬的分區為當前活動分區。
利用上述調度仿真模型,可以生成時間分區測試的模擬測試結果。
初始化一個具有4個分區的IMA待測模塊。分區 A,B,C,D 的周期分別為 TA=100 ms,TB=100 ms,TC=100 ms,TD=200 ms;期望運行時間分別為DA'=30 ms,DB'=20 ms,DC'=20 ms,,主幀 FMAF=200 ms,單位時間區間長度為Δt=1 ms,它的分區時間窗口如圖4所示。

圖4 分區時間窗口Fig.4 Partition time windows
圖4 中,一個主幀時間內包含有10個分區節點,依次分別為 WIA1,WAB1,WBC1,WCD1,WDI1,WIA2,WAB2,WBC2,WCD2,WDI2。當測試開始于圖示位置時,分區節點與測試結果的對應關系見表1。其中:表示分區P的 Wa1、Wb1、Wc1中第 1 個非零值;表示分區 P的Wa1、Wb1、Wc1中第 2 個非零值;與同理。

表1 分區節點與測試結果的對應關系Table 1 The relationship between partition nodes and test results
各個分區中的測試應用的執行時間如表2所示,其中,Δ為隨機時間抖動,|Δ|=2 ms。
表3和表4分別列出了向待測系統發送關閉分區B指令前后的兩次測試結果,開始時刻分別為t1=1.853 s和 t2=2.253 s。
從表3與表4所列出的數據中可以看出分區A的數據出現了兩個問題:1)Wa1,Wb1,Wc1三個數據中只有一個非零值;2)Wa2,Wb2,Wc2三個數據中只有一個非零值。

表2 各個分區中的測試應用的執行時間Table 2 The execution time of process in different partitions

表3 分區關閉指令發送前一次測試結果Table 3 The test results before the order s

表4 分區B關閉指令后的一次測試結果Table 4 The test results after the order s
由于分區A中的3個測試進程的累加運行時間小于在一個主幀時間內的分區運行時間(2DA),導致在一個主幀時間內只能得到一個非零。在關閉分區B指令發送前 ,可以從表4分區B的數據中獲得WAB1的值但是當分區B關閉后無法獲得 WAB1的值,造成了數據的丟失。
由于分區A的前一個相鄰分區是空閑分區,因此分區A時間窗口的開始時刻WIA1和WIA2只能由進程遭遇中斷后恢復運行的時間來記錄,但是當測試開始于非A分區的其他分區時,分區的第一次運行無法獲得這一數據。此時,應當將進程a的開始時間算作分區A第一個時間窗口,即WIA2=TAa。
本文針對IMA時間分區測試問題建立了IMA分區調度仿真模型,使用該仿真模型進行測試方法設計降低了系統復雜度,減少了不必要的工作量,適用于測試方案的早期設計。對IMA測試研究仍需要更加完備的實時硬件系統和操作系統的仿真。
[1] ARINC 651.Design guidance for integrated modular avionics[Z].1991.
[2] 陳娟.ARINC653分區操作系統在綜合模塊化航空電子系統中的應用[J].電訊技術,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] 何峰,宋麗茹,熊華鋼.航空電子分區層次調度模型及其優化設計[J].系統仿真學報,2009,19:6004-6008.
[10] LEE Y H.Resource scheduling in dependable integrated modular avionics[C]//NY USA,2000:14-23.