云 穎,宋雷軍
(上海航天軟件測評中心,上海 201109)
隨著航天技術(shù)的發(fā)展,衛(wèi)星需要完成的任務(wù)越來越復(fù)雜,衛(wèi)星的姿態(tài)控制和軌道控制精確度也越來越高,星載計算機與外部設(shè)備間的數(shù)據(jù)量交換越來越大,為此,CAN總線通信更多地被用于衛(wèi)星設(shè)計中,以滿足衛(wèi)星通信控制系統(tǒng)的高實時性、高傳輸速率和高可靠性等要求。以往,針對星載軟件的CAN總線測試主要采用商業(yè)化CAN通信產(chǎn)品和配套軟件,硬件實時性和軟件便捷性較差,存在難以滿足某些軟件CAN通信的時間性能,以及不能進行故障模擬測試等缺點。為更有效地測試和診斷星載軟件CAN通信功能,本文對一種基于PXI工控機、CAN高速板卡和虛擬儀器技術(shù)編程的星載軟件測試系統(tǒng)設(shè)計進行了研究。
衛(wèi)星CAN總線通信系統(tǒng)中有多個下位機,包括測控單元、總體下位機、GPS下位機、SAR下位機、數(shù)傳下位機、姿軌控計算機、電源下位機、熱控下位機等,如圖1所示衛(wèi)星的CAN總線通信外部接口。
圖1 衛(wèi)星的CAN總線通信外部接口Fig.1 Satellite CAN bus communication external interface
星載軟件測試系統(tǒng)需模擬所有的下位機,以實現(xiàn)與星載計算機的A/B總線備份通信、單項和雙向通信、故障模擬通信等功能。測試系統(tǒng)的硬件包括PXI工控機和CAN高速板卡,結(jié)構(gòu)如圖2所示。其中:PXI工控機采用NI公司的PXI多槽控制機箱,是測試系統(tǒng)的主控器;CAN高速板卡采用NI公司的PXI-8464,可同時實現(xiàn)雙線通信,最高速率1Mb/s,完全滿足此測試系統(tǒng)的CAN通信要求,并有一定的擴展空間。
圖2 星載軟件測試系統(tǒng)硬件結(jié)構(gòu)Fig.2 Hardware structure of satellite onboard software test system
測試系統(tǒng)的工作流程為:主控器控制CAN高速板卡實時接收和應(yīng)答來自星載計算機的指令或數(shù)據(jù)信息,實現(xiàn)對各下位機的模擬,從而實現(xiàn)星載計算機與各下位機的正常和故障模擬通信。在正常通信情況下,測試系統(tǒng)接收來自星載計算機的廣播,進行數(shù)據(jù)顯示等操作,但不進行回復(fù)應(yīng)答;接收來自星載計算機的數(shù)據(jù)或指令,在規(guī)定時間內(nèi)進行正確的回復(fù)應(yīng)答。在故障模擬情況下,測試系統(tǒng)接收到來自星載計算機的數(shù)據(jù)或指令后,不進行回復(fù)應(yīng)答,或在規(guī)定時間內(nèi)進行錯誤的回復(fù)應(yīng)答,以觀察星載計算機的運行狀態(tài)。
測試系統(tǒng)的軟件結(jié)構(gòu)不是根據(jù)下位機的數(shù)量劃分,而是根據(jù)測試系統(tǒng)與星載軟件的主要通信功能劃分,因為這更符合測試需求和軟件設(shè)計的完整性。測試系統(tǒng)的軟件結(jié)構(gòu)主要包括下位機狀態(tài)檢測、遙測數(shù)據(jù)分析、注數(shù)數(shù)據(jù)監(jiān)測和計算機內(nèi)存下卸四個模塊,如圖3所示。4個模塊采用虛擬儀器技術(shù)圖形化語言LabVIEW編程實現(xiàn),有良好的人機交互界面。
圖3 星載軟件測試系統(tǒng)軟件結(jié)構(gòu)Fig.3 Software structure of satellite onboard software test system
在整個CAN總線通信網(wǎng)絡(luò)中,星載計算機為上位機,與多個下位機通信所采用的是11位標(biāo)識符的標(biāo)準(zhǔn)格式 CAN2.0A協(xié)議,采用傳輸速率500kb/s進行數(shù)據(jù)幀和遠(yuǎn)程幀的傳輸。因采用A/B總線備份通信,故同一下位機在CAN A、B中的標(biāo)識符有區(qū)分。
當(dāng)測試系統(tǒng)接收到星載計算機的CAN數(shù)據(jù)時,先由軟件判斷其ID號,不同的ID表示了不同下位機的不同功能,從而判斷出該CAN數(shù)據(jù)針對的下位機及相應(yīng)的總線來源A或B。無論何CAN數(shù)據(jù),在軟件界面上都可看到此條CAN數(shù)據(jù)的信息,包括接收時間、幀ID、幀類型、數(shù)據(jù)字節(jié)數(shù)、數(shù)據(jù)值和備注信息。
下位機狀態(tài)檢測模塊匯集了8個下位機的狀態(tài)檢測功能。首先,測試系統(tǒng)軟件判斷收到的幀ID是否為某下位機的狀態(tài)檢測指令,如不是就進入后續(xù)判斷,如是就實現(xiàn)相應(yīng)的狀態(tài)檢測應(yīng)答功能。因測試系統(tǒng)軟件對各下位機實行單獨編程,故各下位機的功能互不影響,且回復(fù)數(shù)據(jù)可根據(jù)測試用例自行設(shè)置,能實現(xiàn)故障數(shù)據(jù)回復(fù)。
以測試系統(tǒng)運行后A總線收到遙控單元的狀態(tài)檢測指令為例,該模塊主要功能如下。
a)遙控單元下位機A總線對應(yīng)的“收到數(shù)據(jù)否”指示燈會閃爍以提示已接收到此命令(“清除燈閃爍”按鈕可使界面上所有燈恢復(fù)常暗狀態(tài))。
b)當(dāng)遙控單元下位機對應(yīng)的A總線“是否回復(fù)”按鈕為“是”時,測試系統(tǒng)軟件自動將其后的“回復(fù)數(shù)據(jù)”回復(fù)給星載計算機(此“回復(fù)數(shù)據(jù)”可由用戶自行更改正確或錯誤數(shù)據(jù))。
c)當(dāng)遙控單元下位機所對應(yīng)的A總線“是否回復(fù)”按鈕為“否”時,測試系統(tǒng)軟件不回復(fù)星載計算機任何數(shù)據(jù)。
遙測數(shù)據(jù)分析模塊集成了8個下位機的遙測數(shù)據(jù)分析功能。測試系統(tǒng)軟件判斷收到的幀ID是否為某下位機的遙測數(shù)據(jù)分析指令,不是則進入后續(xù)判斷,是則實現(xiàn)相應(yīng)的應(yīng)答功能。測試系統(tǒng)模擬的各下位機遙測數(shù)據(jù)分析功能互不影響,回復(fù)數(shù)據(jù)可根據(jù)測試用例自行設(shè)置,以實現(xiàn)正常數(shù)據(jù)回復(fù)和故障數(shù)據(jù)回復(fù)。
以測試系統(tǒng)運行后A總線收到總體下位機的遙測數(shù)據(jù)分析指令為例,模塊主要功能如下。
a)總體下位機A總線對應(yīng)的“收到數(shù)據(jù)否”指示燈會閃爍表示已接收到此命令(“清除燈閃爍”按鈕可使界面上所有的燈恢復(fù)常暗狀態(tài))。
b)當(dāng)總體下位機對應(yīng)的A總線“是否回復(fù)”按鈕為“是”時,測試系統(tǒng)軟件自動回復(fù)數(shù)據(jù)給星載計算機。系統(tǒng)軟件會自動判別衛(wèi)星遙測模式字,當(dāng)衛(wèi)星遙測模式字為EA時,回復(fù)數(shù)據(jù)取自“遙測-總體下位機(EA)”輸入控件;當(dāng)衛(wèi)星遙測模式字為C9時,回復(fù)數(shù)據(jù)取自“遙測-總體下位機(C9)”輸入控件?!斑b測-總體下位機(EA)”和“遙測-總體下位機(C9)”是A總線和B總線的共用回復(fù)數(shù)據(jù),可由用戶自行更改。
c)當(dāng)總體下位機對應(yīng)的A總線“是否回復(fù)”按鈕為“否”時,測試系統(tǒng)軟件不回復(fù)星載計算機任何數(shù)據(jù)。
d)在“回復(fù)數(shù)據(jù)”輸入控件名稱上未標(biāo)明衛(wèi)星遙測模式字(EA或C9)的,說明其回復(fù)的數(shù)據(jù)與此模式字無關(guān)。
注數(shù)數(shù)據(jù)監(jiān)測模塊集成了8個下位機的注數(shù)數(shù)據(jù)監(jiān)測功能。測試系統(tǒng)軟件判斷收到的幀ID是否為某下位機的注數(shù)數(shù)據(jù),不是則進入后續(xù)判斷,是則實現(xiàn)相應(yīng)的顯示功能。
以測試系統(tǒng)運行后A總線收到遙控單元的注數(shù)數(shù)據(jù)為例,該模塊主要功能如下。
a)記錄收到數(shù)據(jù)的總幀數(shù)和字節(jié)數(shù)信息。
b)當(dāng)測試系統(tǒng)接收完所有的遙控單元注數(shù)數(shù)據(jù)幀時,通過A總線自動回復(fù)注數(shù)數(shù)據(jù)的總幀數(shù)和字節(jié)數(shù)給星載計算機,以完成一次完整的注數(shù)數(shù)據(jù)監(jiān)測功能。
計算機內(nèi)存下卸模塊集成了5個下位機的內(nèi)存下卸功能。測試系統(tǒng)軟件判斷收到的幀ID是否為某下位機的內(nèi)存下卸數(shù)據(jù),不是則進入后續(xù)判斷,是則實現(xiàn)相應(yīng)的應(yīng)答功能。如接收到的幀ID不是測試系統(tǒng)所能識別的指令或數(shù)據(jù),軟件會對此錯誤幀進行界面顯示,并作丟棄處理。各下位機的內(nèi)存下卸應(yīng)答功能互不影響,均可實現(xiàn)正常應(yīng)答和故障模擬應(yīng)答,且滿足多字節(jié)的大量數(shù)據(jù)回復(fù)。
以測試系統(tǒng)運行后A總線收到總體下位機的內(nèi)存下卸數(shù)據(jù)為例,該模塊主要功能如下。
a)總體下位機A總線對應(yīng)的“收到數(shù)據(jù)否”指示燈會閃爍來提示已接收到此數(shù)據(jù)(“清除燈閃爍”按鈕可使界面上所有的燈恢復(fù)常暗狀態(tài))。
b)當(dāng)總體下位機對應(yīng)的A總線“是否回復(fù)”按鈕為“是”時,測試系統(tǒng)軟件自動將“回復(fù)數(shù)據(jù)”回復(fù)給星載計算機。此“回復(fù)數(shù)據(jù)”是A總線和B總線的共用回復(fù)數(shù)據(jù),可由用戶自行更改。
c)當(dāng)總體下位機所對應(yīng)的A總線“是否回復(fù)”按鈕為“否”時,測試系統(tǒng)軟件不回復(fù)星載計算機任何數(shù)據(jù)。
本測試系統(tǒng)采用柔性化設(shè)計,用PXI工控機及PXI板卡,以簡單的硬件組成構(gòu)建了星載計算機的外圍CAN通信環(huán)境,結(jié)構(gòu)簡單、構(gòu)建周期短。此外,該系統(tǒng)具有多個PXI插槽,可擴展插入多個功能性板卡,實現(xiàn)多功能擴展。
本測試系統(tǒng)在一臺工控機上虛擬了多個真實的下位機,即用虛擬的儀器實現(xiàn)了與星載計算機的真實CAN通信;應(yīng)用LabVIEW編程將各下位機的真實功能轉(zhuǎn)化到虛擬界面上,通過界面操作實現(xiàn)了真實下位機的所有正常及故障功能。應(yīng)用等同真實設(shè)備的虛擬設(shè)備完成各項功能,是虛擬儀器技術(shù)的最大亮點。與傳統(tǒng)測試設(shè)備的開發(fā)相比,應(yīng)用虛擬儀器技術(shù)的測試系統(tǒng)的優(yōu)點有成本低、擴展性好、靈活性強、仿真測試方便、用戶界面直觀等。
測試系統(tǒng)調(diào)試完成后,對本測試系統(tǒng)進行了單元測試、比對測試和第三方確認(rèn)測試。單元測試中確定了各模塊均實現(xiàn)的功能,在同類測試設(shè)備的比對測試中確定了此設(shè)備的性能指標(biāo),在某星載軟件的第三方測試中應(yīng)用此測試系統(tǒng)進行了確認(rèn)測試,對本測試系統(tǒng)進行了功能、性能、安全性、人機交互測試。測試結(jié)果為:在CAN傳輸速率500kb/s下,測試系統(tǒng)能與星載計算機保持良好的數(shù)據(jù)通信,各模塊功能正常,幀數(shù)據(jù)未出現(xiàn)誤碼,遠(yuǎn)程幀和數(shù)據(jù)幀均可自動應(yīng)答;測試系統(tǒng)在其他CAN通信速率下不能與星載計算機通信,滿足要求;在各模塊的故障模擬測試中,測試系統(tǒng)沒有在單幀或多幀誤碼回復(fù)下出現(xiàn)停止運行等安全性故障;在測試系統(tǒng)運行的界面上,數(shù)據(jù)清晰、布局合理、修改方便,具有良好的人機交互能力;與廣州周立功單片機公司的CAN進行了比較測試,該公司CAN設(shè)備的部分應(yīng)答指令不能按時送達(dá)星載計算機會造成超時錯誤,而本測試系統(tǒng)的通信響應(yīng)速度良好,未出現(xiàn)任何超時錯誤。
本測試系統(tǒng)模擬各下位機實現(xiàn)的功能見表1。由表可知:該系統(tǒng)不僅實現(xiàn)了各下位機的正常功能,并且優(yōu)于各下位機實現(xiàn)了其各種故障情況,完全滿足了星載軟件CAN總線通信測試的各項要求。
表1 測試系統(tǒng)模擬各下位機的功能Tab.1 Function of lower computer simulated by test system
本文對基于CAN總線的星載軟件測試系統(tǒng)設(shè)計進行了研究。設(shè)計的星載軟件測試系統(tǒng)已成功進行了某星載軟件的第三方測試任務(wù),完成了百余個用例的執(zhí)行工作,實現(xiàn)了各下位機雙總線的備份通信、功能模擬、故障模擬、數(shù)據(jù)自動應(yīng)答等多項功能,有良好的人機交互界面。測試應(yīng)用表明:此基于CAN總線的星載軟件測試系統(tǒng)完全滿足各項系統(tǒng)需求和指標(biāo),在星載軟件測試系統(tǒng)研究中有一定的意義。
[1] 陳錫輝,張銀鴻.LabVIEW8.20程序設(shè)計從入門到精通[M].北京:清華大學(xué)出版社,2008.
[2] 楊樂平,李海濤,趙 勇.LabVIEW高級程序設(shè)計[M].北京:清華大學(xué)出版社,2003.
[3] 龍華偉,顧永剛.LabVIEW 8.2.1與DAQ數(shù)據(jù)采集[M].北京:清華大學(xué)出版社,2008.
[4] 唐明南,董云峰,牛躍聽.CAN總線在衛(wèi)星半物理實施仿真中的設(shè)計與應(yīng)用[J].計算機測量與控制,2008,16(1):124-127.
[5] 熊劍平,尤 政,陸建華.微小衛(wèi)星平臺公共總線技術(shù)-CAN總 線 網(wǎng) 絡(luò) 應(yīng) 用 [J].航 天 器 工 程,2000,9(1):29-36.
[6] 楊希祥,張為華,肖 凱.基于CAN總線的控制系統(tǒng)地面仿真測試平臺研究[J].中國空間科學(xué)技術(shù),2009,29(4):38-45.