張國峰,王振華,陳朝暉
(1.北京控制工程研究所,北京100190;2.空間智能控制技術(shù)重點實驗室,北京100190)
基于黑盒測試環(huán)境的交會對接軟件時序分析技術(shù)及應(yīng)用
張國峰1,2,王振華1,2,陳朝暉1,2
(1.北京控制工程研究所,北京100190;2.空間智能控制技術(shù)重點實驗室,北京100190)
航天器空間交會對接難度大,GNC軟件對任務(wù)的完成起到重要作用.由于交會對接控制軟件功能復(fù)雜,時序要求嚴(yán)格,這對軟件測試提出了很高的要求.基于黑盒測試環(huán)境,利用FPGA設(shè)計方法和時序分析技術(shù),實現(xiàn)了對交會對接軟件重要數(shù)據(jù)運行時序的捕獲和對上下行信號相位關(guān)系的跟蹤,完善了故障觸發(fā)和上行注入手段.該測試環(huán)境在交會對接軟件研制過程中起到重要作用.
交會對接;GNC軟件;黑盒測試;黑盒測試環(huán)境;FPGA設(shè)計;時序分析
航天器空間交會對接技術(shù)復(fù)雜,只有少數(shù)幾個國家掌握.目前已投入使用的國外空間交會對接飛行器有:美國的航天飛機(2011年發(fā)射后已退役)、俄羅斯的聯(lián)盟號載人運輸飛船、進(jìn)步號貨運飛船、歐盟的ATV貨運飛船、日本的HTV貨運飛船[1].而中國的首次空間交會對接的成功打破了這一技術(shù)壟斷.
交會對接分為交會和對接兩個主要階段.交會指兩個航天器在軌道上的接近過程,即從追蹤航天器遠(yuǎn)距離(150km~80km)導(dǎo)引去接近目標(biāo)航天器開始,直到滿足兩航天器對接機構(gòu)實施對接的初始條件為止.對接是指在滿足兩航天器對接機構(gòu)條件下,對接機構(gòu)完成耦合和剛性密封連接的過程[2-3].交會過程中,在與目標(biāo)飛行器不同的距離情況下,運行不同的飛行模式,采用不同的控制算法,這是一個任務(wù)要求極高的系統(tǒng)[4],由此對軟件的可靠性、安全性提出了很高的要求,軟件時序十分復(fù)雜.
GNC軟件是交會對接控制的核心,功能復(fù)雜,時序苛刻,該軟件工作的正確與否直接影響到空間交會對接任務(wù)的成敗.
因此,對飛船軟件運行時序的分析具有重要意義.通過時序分析可以獲得準(zhǔn)確的軟件運行時序和調(diào)用關(guān)系,分析潛在的時序沖突,從而提升空間交會對接軟件的可靠性和安全性,為提高軟件質(zhì)量服務(wù).
由于任務(wù)的復(fù)雜性,導(dǎo)致航天控制軟件尤其是空間交會對接軟件具有如下特點:1)軟件復(fù)雜度高,時序要求嚴(yán)格;2)軟硬件聯(lián)系緊密,性能要求苛刻;3)極高的可靠性和安全性要求.交會對接導(dǎo)航制導(dǎo)控制屬于安全關(guān)鍵性A類軟件,容錯處理,糾錯處理和其他安全性設(shè)計作用突出.
根據(jù)交會對接軟件的特點,針對軟件的確認(rèn)測試具有如下特點:1)外圍接口多樣,時序復(fù)雜,需要設(shè)計專門的測試環(huán)境,其仿真度和真實性直接影響軟件測試的可靠性;2)被測試軟件強實時性要求和復(fù)雜度高的特點,要求測試環(huán)境有較強的時序分析和性能測試能力.
為提高型號軟件的質(zhì)量,航天系統(tǒng)應(yīng)十分重視軟件開發(fā)工具和環(huán)境的使用[5],交會對接軟件半實物環(huán)境對于測試工作具有重要意義,是測試船載軟件的一種非常有效的手段,與此同時該環(huán)境也是進(jìn)一步開展自動化測試的基礎(chǔ)條件之一[6],該測試環(huán)境主要包括動力學(xué)仿真計算機、遙測計算機、主控計算機、監(jiān)控計算機、綜合接口箱和電源系統(tǒng)等部分,如圖1所示.
半物理仿真測試環(huán)境與星載計算機構(gòu)成了閉環(huán)回路,控制軟件運行在這個環(huán)境上.通過運行在測試環(huán)境中的船地聯(lián)試可以驗證船載軟件的正確性,驗證系統(tǒng)方案的準(zhǔn)確性、完整性,為應(yīng)用軟件提供一個動態(tài)閉環(huán)調(diào)試和測試環(huán)境,并及早發(fā)現(xiàn)軟件中潛在的問題.
交會對接軟件的確認(rèn)測試主要在一套基于黑盒測試技術(shù)的半物理仿真測試環(huán)境中進(jìn)行,該測試環(huán)境通過對交會對接飛行提供軌道動力學(xué)運算仿真,對慣性敏感器、紅外地球敏感器、太陽敏感器等定姿敏感器、以及CCD、激光雷達(dá)等各種交會對接敏感器接口模擬和信息處理的模擬,對遙控遙測、上行注入和總線通信的仿真,與真實的GNC計算機和應(yīng)用軟件組成一個閉環(huán)的交會對接軟件運行環(huán)境.
圖1 黑盒半物理仿真測試環(huán)境結(jié)構(gòu)圖
通過半物理仿真環(huán)境,對交會對接軟件的功能進(jìn)行測試.對交會對接軟件這樣復(fù)雜的軟件,不滿足于只對功能點進(jìn)行測試,需要盡可能地了解其運行時序,尤其是重要數(shù)據(jù)和有可能導(dǎo)致多級中斷嵌套異常的情況.
在基于黑盒的軟件測試環(huán)境基礎(chǔ)上,我們綜合利用FPGA設(shè)計與同步基準(zhǔn)處理等技術(shù),通過對外圍信號的采集和處理,獲得船載計算機外部信號與基準(zhǔn)信號相位差的關(guān)系,通過動態(tài)對采集數(shù)據(jù)進(jìn)行相應(yīng)的處理和分析,獲得所關(guān)注的重要信號的時序關(guān)系,有效地提升了測試平臺對時序分析的能力.從而能夠及時地對測試中的中斷沖突等異常情況進(jìn)行分析和快速定位,確保軟件的整體研制進(jìn)度.
對外圍器件的模擬,采用通用化的FPGA數(shù)字量輸入輸出板卡設(shè)計,可以在同一塊板卡上實現(xiàn)對多路復(fù)雜協(xié)議的模擬.
在上行數(shù)據(jù)設(shè)置和下行數(shù)據(jù)采集的設(shè)計上,F(xiàn)PGA仿真板卡均采用100MHz高穩(wěn)定性精密有源晶振,因此在時間記錄上,能夠達(dá)到0.01μs的精度.同時,高速的工作主頻,能夠更大程度地減少數(shù)據(jù)處理所耗的時間,進(jìn)而降低系統(tǒng)工作時造成的時間累積誤差,提高時序電路的計數(shù)精度.
板卡上所選FPGA選取200萬門、40個快存儲RAM、4個時鐘單元,完全能夠勝任高難度、復(fù)雜性的數(shù)字時序邏輯模擬功能.其較大容量的存儲特點,可專門用來實現(xiàn)大數(shù)據(jù)量存儲的功能、開辟多個數(shù)據(jù)緩存區(qū),防止數(shù)據(jù)丟失.通過撥碼開關(guān),可以選擇切換板卡內(nèi)部所加載的程序內(nèi)容,提高測試設(shè)置的靈活性;FPGA的配置芯片帶有4個預(yù)存程序區(qū),板卡可根據(jù)撥碼開關(guān)來選擇需要加載的功能模塊,實現(xiàn)一板多用.該功能的設(shè)計簡化了多種板卡復(fù)雜操作的模式.
在時間同步問題上,通過引入船載計算機的硬件控制周期信號,此信號為船載軟件的定時中斷信號,因此可以通過記錄船載計算機所有上下行信號與控制周期信號的精確時間戳,作為進(jìn)行船載軟件時序分析的基礎(chǔ).
此外,還必須在設(shè)計上保證上下行數(shù)據(jù)的完整性.動力學(xué)軟件每個控制周期訪問一次 FPGA,對上下行數(shù)據(jù)進(jìn)行處理.由于動力學(xué)軟件與船載軟件的非同步性,所以可能會出現(xiàn)丟包、錯包的情況.如FPGA正在發(fā)送上行數(shù)據(jù)時,動力學(xué)軟件更改發(fā)送數(shù)據(jù);或者FPGA正在接收下行數(shù)據(jù),而動力學(xué)軟件在訪問FPGA獲取數(shù)據(jù).設(shè)計中采用二級緩沖BUF的方式來保證各種數(shù)據(jù)包完整.結(jié)構(gòu)圖2所示.
采用緩沖BUF之后,動力學(xué)軟件對上行數(shù)據(jù)的處理流程如下:上行數(shù)據(jù)處理單元是用FPGA來實現(xiàn)的,該單元在空閑狀態(tài)時,查詢數(shù)據(jù)更新標(biāo)志,如果有新的數(shù)據(jù),則從雙口RAM或者FIFO中取出數(shù)據(jù)到緩沖 BUF中,當(dāng)數(shù)據(jù)取空之后,清數(shù)據(jù)更新標(biāo)志.
FPGA的IP核對數(shù)據(jù)的處理流程如下:下行數(shù)據(jù)處理單元采用FPGA實現(xiàn),該單元在接收到完整的船上數(shù)據(jù)后,設(shè)置數(shù)據(jù)更新標(biāo)志,將數(shù)據(jù)寫入雙口RAM或者FIFO中.由于FPGA和PCI總線接口橋接芯片 PCI9054采用同步設(shè)計,因此避免了FPGA處于讀寫過程而PCI9054處于寫讀過程時發(fā)生數(shù)據(jù)沖突的可能.動力學(xué)訪問上下方式參見圖3.
圖2 二級緩沖BUF結(jié)構(gòu)
圖3 FPGA及上位機軟件數(shù)據(jù)處理流程
FPGA軟件對時間戳的處理流程如下:上下行通道所對應(yīng)的計數(shù)器在檢測到控制周期下降沿(或上降沿,可由上位機軟件設(shè)置)后,作為時間記錄的基準(zhǔn),開始計數(shù),F(xiàn)PGA下行數(shù)據(jù)處理單元在接收到相應(yīng)的船上數(shù)據(jù)后,立即停止計數(shù),記錄時間戳并計算相位差,同時,將所計數(shù)據(jù)存入FPGA內(nèi)部的緩存區(qū),清零計數(shù)器,并把相位差測量標(biāo)志位置“1”.當(dāng)上位機掃描到該通道的標(biāo)志位為“1”時,將緩存區(qū)數(shù)據(jù)讀取,并清除標(biāo)志位.該數(shù)據(jù)即為所記錄的電平信號的相位差,當(dāng)量為0.01μs,時間戳記錄流程見圖4.
動力學(xué)功能板卡對接收到的下行通信數(shù)據(jù)進(jìn)行判斷,當(dāng)下行通信數(shù)據(jù)的幀頭與a數(shù)據(jù)區(qū)的內(nèi)容相同時,發(fā)送A數(shù)據(jù)區(qū)的內(nèi)容;當(dāng)下行通信數(shù)據(jù)的幀頭與b數(shù)據(jù)區(qū)的內(nèi)容相同時,發(fā)送 B數(shù)據(jù)區(qū)的內(nèi)容;當(dāng)下行通信數(shù)據(jù)的幀頭與c數(shù)據(jù)區(qū)的內(nèi)容相同時,發(fā)送 C數(shù)據(jù)區(qū)的內(nèi)容;若都不相同,則發(fā)送D數(shù)據(jù)區(qū)的內(nèi)容,并累計發(fā)送 D的次數(shù).同時,可設(shè)置上行發(fā)送數(shù)據(jù)的響應(yīng)時間和間隔時間.
圖4 時間戳記錄流程
在功能板卡正常工作之前,首先需要上位機軟件對異步通信串口進(jìn)行參數(shù)設(shè)置,否則無法正常完成通信工作.設(shè)置內(nèi)容包括:a數(shù)據(jù)區(qū)的個數(shù)、a數(shù)據(jù)區(qū)的內(nèi)容、b數(shù)據(jù)區(qū)的個數(shù)、b數(shù)據(jù)區(qū)的內(nèi)容、c數(shù)據(jù)區(qū)的個數(shù)、c數(shù)據(jù)區(qū)的內(nèi)容、A數(shù)據(jù)區(qū)的個數(shù)、A數(shù)據(jù)區(qū)的內(nèi)容、B數(shù)據(jù)區(qū)的個數(shù)、B數(shù)據(jù)區(qū)的內(nèi)容、C數(shù)據(jù)區(qū)的個數(shù)、C數(shù)據(jù)區(qū)的內(nèi)容、D數(shù)據(jù)區(qū)的個數(shù)、D數(shù)據(jù)區(qū)的內(nèi)容、響應(yīng)時間、間隔時間、接收數(shù)據(jù)個數(shù)、比較數(shù)據(jù)個數(shù).
當(dāng)設(shè)置完所需參數(shù)后,即可正常工作.上位機可通過總線讀取板卡中數(shù)據(jù)緩存區(qū)中接收到的下行通信數(shù)據(jù),同時也可讀取D的個數(shù)、時間戳等數(shù)據(jù)內(nèi)容.板卡中的計時當(dāng)量均為0.01μs.同時,每路串口均帶有響應(yīng)開關(guān),可通過上位機軟件進(jìn)行設(shè)置.板卡在接收數(shù)據(jù)過程中,超時后(長時間無下行數(shù)據(jù))會進(jìn)行復(fù)位(即結(jié)束該次通信過程).
串口功能模塊內(nèi)部帶有一個專門記錄時間戳的計數(shù)器.當(dāng)板卡查詢到串口有下行數(shù)據(jù)時,觸發(fā)計數(shù)器開始計數(shù);當(dāng)接收完畢后開始發(fā)送上行數(shù)據(jù)時,關(guān)閉計數(shù).FPGA將所計數(shù)據(jù)存入內(nèi)部緩存區(qū),在發(fā)送上行數(shù)據(jù)時將接收完畢標(biāo)志位置“1”.上位機檢測到該標(biāo)志位后,讀取緩存區(qū)中接收的數(shù)據(jù)以及所記錄的時間戳.
值得一提的是,本次串口程序設(shè)計采用并行工作模式,即采用邊收數(shù),邊比對的模式.當(dāng)串口接收第一位字節(jié)后,立即與 a、b、c數(shù)據(jù)區(qū)的第一位字節(jié)進(jìn)行比對,以此類推.當(dāng)接收完下行數(shù)據(jù)后,也同時完成了數(shù)據(jù)的比對工作,可迅速得出結(jié)論,是發(fā)送 A、B、C、還是 D.并行工作模式,能夠有效地利用FPGA內(nèi)部門電路資源,從而能夠更加快速地完成數(shù)字邏輯電路的運算.由于接收功能和比對功能幾乎同步完成,因此對于串口時間戳的計時結(jié)果,幾乎不會產(chǎn)生系統(tǒng)運算因耗時而造成的累積誤差,時間戳數(shù)值可非常精確,異步串口處理流程參見圖4.
圖5 異步串口處理流程
1)板卡上的FPGA最多可開辟40個FIFO數(shù)據(jù)緩存區(qū),在FPGA程序研發(fā)時,為每個下行數(shù)據(jù)存儲區(qū)均開辟了一個備份存儲區(qū).當(dāng)上位機未及時讀取數(shù)據(jù)時,用戶無需擔(dān)心數(shù)據(jù)由于被改寫、覆蓋而丟失的情況發(fā)生,因為未及時讀取的數(shù)據(jù)均已存入備份存儲區(qū).
2)當(dāng)執(zhí)行串口通信功能時,如果船上的下行數(shù)據(jù)在發(fā)送過程中突然出現(xiàn)異常情況,導(dǎo)致發(fā)送過程無法完成或繼續(xù).仿真板卡會做出超時響應(yīng),停止此次接收并復(fù)位到初始狀態(tài).為不影響板卡工作穩(wěn)定性及可靠性,超時時間設(shè)置并為對用戶提供響應(yīng)設(shè)置接口,超時時間設(shè)定數(shù)值由研發(fā)人員直接設(shè)定在功能程序內(nèi)部.
3)板卡的連接接口在初始化前均設(shè)定為高阻模式,在將用戶設(shè)備接入整套系統(tǒng)時,保證了用戶設(shè)備的安全性.當(dāng)上位對板卡機初始化后,板卡接口的輸入輸出才被開啟.
4)板卡帶有熱插拔功能,能夠在插拔板卡時,迅速對相關(guān)電路斷電.加強了用戶方設(shè)備的安全性.
使用上述時間戳記錄的方法,可以獲得船載軟件對敏感器和執(zhí)行機構(gòu)等外圍部件操作的準(zhǔn)確相位差,從而分析出船載軟件在每個控制周期對外圍部件的時序關(guān)系.同時,通過此方法也可對船載計算機外部中斷信號的觸發(fā)時序進(jìn)行控制,從而實現(xiàn)對船載軟件的多級中斷并發(fā)測試和嵌套測試,保證了軟件的可靠性和安全性.
某次調(diào)試過程中發(fā)現(xiàn)敏感器相位關(guān)系異常,程序運行也發(fā)現(xiàn)中斷控制狀態(tài)異常.在程序運行過程當(dāng)中,程序會偶爾進(jìn)入陷阱中斷,通過遙測記錄的數(shù)據(jù)發(fā)現(xiàn)進(jìn)陷阱中斷的計數(shù)器計數(shù)值增加,表明程序進(jìn)入陷阱中斷服務(wù)程序.
根據(jù)所記錄的時序關(guān)系狀態(tài)初步確定為中斷時序嵌套存在不合理.
通過使用邏輯分析儀確認(rèn)了數(shù)據(jù)分析的正確性,實驗捕獲異常狀態(tài)參見圖6.
故障的原因:如果中斷高電平時間太長時,如圖7所示,對于82C59中斷的沿觸發(fā)來說,在高電平期間,不可能形成一個上升沿,影響了同一個中斷的下次觸發(fā),造成了中斷的丟失.異常和正常的時序分析曲線參見圖7~8.
通過采用本文介紹的時序分析技術(shù)對軟件運行進(jìn)行分析,提示設(shè)計人員從軟件上或硬件上采取措施來改善中斷請求信號的高電平長度,從而提高多級中斷的可靠性設(shè)計,由此提升航天嵌入式軟件的質(zhì)量,在進(jìn)行相應(yīng)的更改后該問題不再復(fù)現(xiàn).
圖6 邏輯分析儀捕獲的軟件時序
圖7 高電平時間太長時序情況
圖8 正常響應(yīng)中斷時序情況
基于黑盒的時序分析技術(shù)能夠通過對傳統(tǒng)半物理仿真測試平臺進(jìn)行改進(jìn),獲取所需要的上下行信號的時間特性,從而對船載GNC軟件進(jìn)行相應(yīng)的時序分析.
下行采集:改變以前黑盒測試環(huán)境只能進(jìn)行功能測試,無法獲取軟件運行的時序關(guān)系的現(xiàn)狀,獲得了對復(fù)雜軟件運行的時序關(guān)系,特別是船載計算機與外部敏感器和執(zhí)行機構(gòu)接口處理的時序狀態(tài)和相位關(guān)系.
上行設(shè)置:可以對上行外部中斷信號的觸發(fā)時序和相位差進(jìn)行設(shè)置,實現(xiàn)對多級中斷的優(yōu)先級和中斷嵌套測試,完善故障設(shè)置能力,綜合提高對航天器交會對接軟件測試的充分性,提升軟件測試覆蓋性.
實踐證明:通過對上述時序分析技術(shù)的應(yīng)用,提升了半物理仿真測試環(huán)境的性能測試能力,為軟件的可靠性設(shè)計提供依據(jù).在通過測試環(huán)境的時序分析后能夠初步定位問題,給后續(xù)的精確定位提供了方向,節(jié)約了寶貴的研制開發(fā)時間.
[1] Valin T.Commercial crewamp;cargo program overview[C].ISS-A New National Laboratory Special Session AIAA Aerospace Sciences Meeting,USA, January 11,2007
[2] 張淑琴,王忠貴,冉隆隧,等.空間交會對接測量技術(shù)及工程應(yīng)用[M].北京:中國宇航出版社,2005
[3] 朱仁璋.航天器交會對接技術(shù)[M].北京:機械工業(yè)出版社,2007
[4] Sommerville I.軟件工程[M].程成,陳霞,譯.北京:機械工業(yè)出版社,2007
[5] 石柱.航天星載軟件工程化十年回顧與展望[J].航天控制,2006,24(4):66-72
[6] 陳能技.軟件測試技術(shù)大全[M].北京:人民郵電出版社,2008
Tim ing Sequence Analysis Technique for Black Box Test Environm ent-Based Rendezvous and Docking Software and Its App lication
ZHANG Guofeng1,2,WANG Zhenhua1,2,CHEN Zhaohui1,2
(1.Beijing Institute of Control Engineering, Beijing 100190,China;2.Science and Technology on Space Intelligent Control Laboratory, Beijing 100190,China)
The rendezvous and docking of spacecrafts is a difficult task,the GNC software is very important for it.The software is complex, the demand for timing sequence is strict, and the software testmust be in high level.For the black box test environment-based software,F(xiàn)PGA design method and timing sequence analysis technique are used to obtain timing sequence capture ability,and the fault trigger and data injectmethod is also improved,this technique is proved to be very useful in the development of the rendezvous and docking software.
rendezvous and docking;GNC software;black box test;black box test environment;FPGA design;timing sequence analysis
TP31
A
1674-1579(2011)06-0060-06
DO I:10.3969/j.issn.1674-1579.2011.06.010
2011-09-20
張國峰(1972—),男,山西人,高級工程師,研究方向為航天器嵌入式軟件技術(shù)(e-mail:zhanggf@bice.org.cn).