云 穎,宋雷軍
(上海航天軟件測評中心,上海 201109)
隨著航天技術的發展,衛星需要完成的任務越來越復雜,衛星的姿態控制和軌道控制精確度也越來越高,星載計算機與外部設備間的數據量交換越來越大,為此,CAN總線通信更多地被用于衛星設計中,以滿足衛星通信控制系統的高實時性、高傳輸速率和高可靠性等要求。以往,針對星載軟件的CAN總線測試主要采用商業化CAN通信產品和配套軟件,硬件實時性和軟件便捷性較差,存在難以滿足某些軟件CAN通信的時間性能,以及不能進行故障模擬測試等缺點。為更有效地測試和診斷星載軟件CAN通信功能,本文對一種基于PXI工控機、CAN高速板卡和虛擬儀器技術編程的星載軟件測試系統設計進行了研究。
衛星CAN總線通信系統中有多個下位機,包括測控單元、總體下位機、GPS下位機、SAR下位機、數傳下位機、姿軌控計算機、電源下位機、熱控下位機等,如圖1所示衛星的CAN總線通信外部接口。

圖1 衛星的CAN總線通信外部接口Fig.1 Satellite CAN bus communication external interface
星載軟件測試系統需模擬所有的下位機,以實現與星載計算機的A/B總線備份通信、單項和雙向通信、故障模擬通信等功能。測試系統的硬件包括PXI工控機和CAN高速板卡,結構如圖2所示。其中:PXI工控機采用NI公司的PXI多槽控制機箱,是測試系統的主控器;CAN高速板卡采用NI公司的PXI-8464,可同時實現雙線通信,最高速率1Mb/s,完全滿足此測試系統的CAN通信要求,并有一定的擴展空間。

圖2 星載軟件測試系統硬件結構Fig.2 Hardware structure of satellite onboard software test system
測試系統的工作流程為:主控器控制CAN高速板卡實時接收和應答來自星載計算機的指令或數據信息,實現對各下位機的模擬,從而實現星載計算機與各下位機的正常和故障模擬通信。在正常通信情況下,測試系統接收來自星載計算機的廣播,進行數據顯示等操作,但不進行回復應答;接收來自星載計算機的數據或指令,在規定時間內進行正確的回復應答。在故障模擬情況下,測試系統接收到來自星載計算機的數據或指令后,不進行回復應答,或在規定時間內進行錯誤的回復應答,以觀察星載計算機的運行狀態。
測試系統的軟件結構不是根據下位機的數量劃分,而是根據測試系統與星載軟件的主要通信功能劃分,因為這更符合測試需求和軟件設計的完整性。測試系統的軟件結構主要包括下位機狀態檢測、遙測數據分析、注數數據監測和計算機內存下卸四個模塊,如圖3所示。4個模塊采用虛擬儀器技術圖形化語言LabVIEW編程實現,有良好的人機交互界面。

圖3 星載軟件測試系統軟件結構Fig.3 Software structure of satellite onboard software test system
在整個CAN總線通信網絡中,星載計算機為上位機,與多個下位機通信所采用的是11位標識符的標準格式 CAN2.0A協議,采用傳輸速率500kb/s進行數據幀和遠程幀的傳輸。因采用A/B總線備份通信,故同一下位機在CAN A、B中的標識符有區分。
當測試系統接收到星載計算機的CAN數據時,先由軟件判斷其ID號,不同的ID表示了不同下位機的不同功能,從而判斷出該CAN數據針對的下位機及相應的總線來源A或B。無論何CAN數據,在軟件界面上都可看到此條CAN數據的信息,包括接收時間、幀ID、幀類型、數據字節數、數據值和備注信息。
下位機狀態檢測模塊匯集了8個下位機的狀態檢測功能。首先,測試系統軟件判斷收到的幀ID是否為某下位機的狀態檢測指令,如不是就進入后續判斷,如是就實現相應的狀態檢測應答功能。因測試系統軟件對各下位機實行單獨編程,故各下位機的功能互不影響,且回復數據可根據測試用例自行設置,能實現故障數據回復。
以測試系統運行后A總線收到遙控單元的狀態檢測指令為例,該模塊主要功能如下。
a)遙控單元下位機A總線對應的“收到數據否”指示燈會閃爍以提示已接收到此命令(“清除燈閃爍”按鈕可使界面上所有燈恢復常暗狀態)。
b)當遙控單元下位機對應的A總線“是否回復”按鈕為“是”時,測試系統軟件自動將其后的“回復數據”回復給星載計算機(此“回復數據”可由用戶自行更改正確或錯誤數據)。
c)當遙控單元下位機所對應的A總線“是否回復”按鈕為“否”時,測試系統軟件不回復星載計算機任何數據。
遙測數據分析模塊集成了8個下位機的遙測數據分析功能。測試系統軟件判斷收到的幀ID是否為某下位機的遙測數據分析指令,不是則進入后續判斷,是則實現相應的應答功能。測試系統模擬的各下位機遙測數據分析功能互不影響,回復數據可根據測試用例自行設置,以實現正常數據回復和故障數據回復。
以測試系統運行后A總線收到總體下位機的遙測數據分析指令為例,模塊主要功能如下。
a)總體下位機A總線對應的“收到數據否”指示燈會閃爍表示已接收到此命令(“清除燈閃爍”按鈕可使界面上所有的燈恢復常暗狀態)。
b)當總體下位機對應的A總線“是否回復”按鈕為“是”時,測試系統軟件自動回復數據給星載計算機。系統軟件會自動判別衛星遙測模式字,當衛星遙測模式字為EA時,回復數據取自“遙測-總體下位機(EA)”輸入控件;當衛星遙測模式字為C9時,回復數據取自“遙測-總體下位機(C9)”輸入控件。“遙測-總體下位機(EA)”和“遙測-總體下位機(C9)”是A總線和B總線的共用回復數據,可由用戶自行更改。
c)當總體下位機對應的A總線“是否回復”按鈕為“否”時,測試系統軟件不回復星載計算機任何數據。
d)在“回復數據”輸入控件名稱上未標明衛星遙測模式字(EA或C9)的,說明其回復的數據與此模式字無關。
注數數據監測模塊集成了8個下位機的注數數據監測功能。測試系統軟件判斷收到的幀ID是否為某下位機的注數數據,不是則進入后續判斷,是則實現相應的顯示功能。
以測試系統運行后A總線收到遙控單元的注數數據為例,該模塊主要功能如下。
a)記錄收到數據的總幀數和字節數信息。
b)當測試系統接收完所有的遙控單元注數數據幀時,通過A總線自動回復注數數據的總幀數和字節數給星載計算機,以完成一次完整的注數數據監測功能。
計算機內存下卸模塊集成了5個下位機的內存下卸功能。測試系統軟件判斷收到的幀ID是否為某下位機的內存下卸數據,不是則進入后續判斷,是則實現相應的應答功能。如接收到的幀ID不是測試系統所能識別的指令或數據,軟件會對此錯誤幀進行界面顯示,并作丟棄處理。各下位機的內存下卸應答功能互不影響,均可實現正常應答和故障模擬應答,且滿足多字節的大量數據回復。
以測試系統運行后A總線收到總體下位機的內存下卸數據為例,該模塊主要功能如下。
a)總體下位機A總線對應的“收到數據否”指示燈會閃爍來提示已接收到此數據(“清除燈閃爍”按鈕可使界面上所有的燈恢復常暗狀態)。
b)當總體下位機對應的A總線“是否回復”按鈕為“是”時,測試系統軟件自動將“回復數據”回復給星載計算機。此“回復數據”是A總線和B總線的共用回復數據,可由用戶自行更改。
c)當總體下位機所對應的A總線“是否回復”按鈕為“否”時,測試系統軟件不回復星載計算機任何數據。
本測試系統采用柔性化設計,用PXI工控機及PXI板卡,以簡單的硬件組成構建了星載計算機的外圍CAN通信環境,結構簡單、構建周期短。此外,該系統具有多個PXI插槽,可擴展插入多個功能性板卡,實現多功能擴展。
本測試系統在一臺工控機上虛擬了多個真實的下位機,即用虛擬的儀器實現了與星載計算機的真實CAN通信;應用LabVIEW編程將各下位機的真實功能轉化到虛擬界面上,通過界面操作實現了真實下位機的所有正常及故障功能。應用等同真實設備的虛擬設備完成各項功能,是虛擬儀器技術的最大亮點。與傳統測試設備的開發相比,應用虛擬儀器技術的測試系統的優點有成本低、擴展性好、靈活性強、仿真測試方便、用戶界面直觀等。
測試系統調試完成后,對本測試系統進行了單元測試、比對測試和第三方確認測試。單元測試中確定了各模塊均實現的功能,在同類測試設備的比對測試中確定了此設備的性能指標,在某星載軟件的第三方測試中應用此測試系統進行了確認測試,對本測試系統進行了功能、性能、安全性、人機交互測試。測試結果為:在CAN傳輸速率500kb/s下,測試系統能與星載計算機保持良好的數據通信,各模塊功能正常,幀數據未出現誤碼,遠程幀和數據幀均可自動應答;測試系統在其他CAN通信速率下不能與星載計算機通信,滿足要求;在各模塊的故障模擬測試中,測試系統沒有在單幀或多幀誤碼回復下出現停止運行等安全性故障;在測試系統運行的界面上,數據清晰、布局合理、修改方便,具有良好的人機交互能力;與廣州周立功單片機公司的CAN進行了比較測試,該公司CAN設備的部分應答指令不能按時送達星載計算機會造成超時錯誤,而本測試系統的通信響應速度良好,未出現任何超時錯誤。
本測試系統模擬各下位機實現的功能見表1。由表可知:該系統不僅實現了各下位機的正常功能,并且優于各下位機實現了其各種故障情況,完全滿足了星載軟件CAN總線通信測試的各項要求。

表1 測試系統模擬各下位機的功能Tab.1 Function of lower computer simulated by test system
本文對基于CAN總線的星載軟件測試系統設計進行了研究。設計的星載軟件測試系統已成功進行了某星載軟件的第三方測試任務,完成了百余個用例的執行工作,實現了各下位機雙總線的備份通信、功能模擬、故障模擬、數據自動應答等多項功能,有良好的人機交互界面。測試應用表明:此基于CAN總線的星載軟件測試系統完全滿足各項系統需求和指標,在星載軟件測試系統研究中有一定的意義。
[1] 陳錫輝,張銀鴻.LabVIEW8.20程序設計從入門到精通[M].北京:清華大學出版社,2008.
[2] 楊樂平,李海濤,趙 勇.LabVIEW高級程序設計[M].北京:清華大學出版社,2003.
[3] 龍華偉,顧永剛.LabVIEW 8.2.1與DAQ數據采集[M].北京:清華大學出版社,2008.
[4] 唐明南,董云峰,牛躍聽.CAN總線在衛星半物理實施仿真中的設計與應用[J].計算機測量與控制,2008,16(1):124-127.
[5] 熊劍平,尤 政,陸建華.微小衛星平臺公共總線技術-CAN總 線 網 絡 應 用 [J].航 天 器 工 程,2000,9(1):29-36.
[6] 楊希祥,張為華,肖 凱.基于CAN總線的控制系統地面仿真測試平臺研究[J].中國空間科學技術,2009,29(4):38-45.