安然,羅小成,馮劍鋒,李惠媛,張國棟
(上海航天電子技術(shù)研究所,上海 201109)
衛(wèi)星測試是指地面測試設(shè)備對衛(wèi)星的各通信指標(biāo)進(jìn)行測試,如指令控制、數(shù)據(jù)發(fā)送、數(shù)據(jù)采集和測量、數(shù)據(jù)解析等。衛(wèi)星測試分為單機(jī)測試,系統(tǒng)級測試和整星聯(lián)試等階段,是衛(wèi)星研制過程中的重要環(huán)節(jié)[1]。目前衛(wèi)星研制任務(wù)重、衛(wèi)星設(shè)計(jì)復(fù)雜程度高、多任務(wù)并行,從而對測試設(shè)備的要求也越來越高。為每臺單機(jī)配備專門的測試設(shè)備,既浪費(fèi)人力和財(cái)力又耗時(shí),已不再適用當(dāng)前形勢的需要。通用測試平臺,通過加載不同任務(wù)的測試配置項(xiàng),可以實(shí)現(xiàn)相應(yīng)任務(wù)的測試需求,這使得通用測試平臺可以同時(shí)適用于多個(gè)衛(wèi)星型號的單機(jī)測試和系統(tǒng)測試,這極大地節(jié)約了衛(wèi)星型號測試設(shè)備的研制周期,方便了衛(wèi)星型號的研制[2]。
1553B 總線是MIL-STD-1553B總線的簡稱,其全稱是飛機(jī)內(nèi)部時(shí)分制命令/響應(yīng)式多路復(fù)用數(shù)據(jù)總線。基于其數(shù)據(jù)傳輸速率高,傳輸機(jī)制可靠和總線效率高等優(yōu)點(diǎn),最初由美國空軍用于飛機(jī)航空電子系統(tǒng),目前已成為一種國際標(biāo)準(zhǔn),被廣泛應(yīng)用在航船、航天等領(lǐng)域[3]。我國于1987年頒布了相應(yīng)的軍標(biāo)。1553B總線是目前衛(wèi)星的主要通信方式。基于其總線形式的拓?fù)浣Y(jié)構(gòu),我國衛(wèi)星和飛船型號上廣泛采用1553B總線接口進(jìn)行測控分系統(tǒng)、數(shù)傳分系統(tǒng)、有效載荷分系統(tǒng)等分系統(tǒng)綜合管理單元有權(quán)機(jī)和各單機(jī)之間的數(shù)據(jù)傳輸[4-5]。
首先,進(jìn)行基于1553B總線的衛(wèi)星通用測試平臺的設(shè)計(jì),描述通用測試平臺的硬件連接圖和軟件設(shè)計(jì)思路;然后,進(jìn)行通用化測試平臺的建模,明確開發(fā)環(huán)境,進(jìn)行功能需求分析和建模;最后,以某型號單機(jī)為例,繪制主控軟件流程圖和客戶端軟件的實(shí)現(xiàn)界面,描述軟件實(shí)現(xiàn)。經(jīng)驗(yàn)證,該基于1553B的衛(wèi)星通用化測試平臺,通用性好,測試覆蓋性全,能較好的滿足多個(gè)型號分系統(tǒng)和單機(jī)產(chǎn)品的測試需求。
1553B 總線采用指令/響應(yīng)型通信協(xié)議,它有3種終端類型:總線控制器(bus controler,BC)、遠(yuǎn)程終端(remote terminal,RT)和總線監(jiān)視器(bus monitor,BM);信息格式有BC到RT,RT到BC,RT到RT,廣播方式和系統(tǒng)控制方式;傳輸媒介為屏蔽雙絞線,1553B 總線耦合方式有直接耦合和變壓器耦合;1553B 總線為多冗余度總線型拓?fù)浣Y(jié)構(gòu),具有雙向傳輸特性,其傳輸速度為1 Mbit/s,傳輸方式為半雙工方式,采用曼徹斯特進(jìn)行編碼傳輸[6]。采用這種編碼方式是因?yàn)檫m用于變壓器耦合,由于直接耦合不利于終端故障隔離,會因?yàn)橐粋€(gè)終端故障而造成整個(gè)總線網(wǎng)絡(luò)的完全癱瘓,所以其協(xié)議中明確指出不推薦使用直接耦合方式[7-8]。
如圖1所示,地面測試設(shè)備為總線控制器BC,被測目標(biāo)如數(shù)管系統(tǒng)某單機(jī)為遠(yuǎn)程終端RT(以某衛(wèi)星型號xx-3為例),總線控制器BM是備選的接入設(shè)備,用來實(shí)時(shí)監(jiān)控總線上的數(shù)據(jù)傳輸。由總線監(jiān)視器組織總線數(shù)據(jù)傳輸。

圖1 基于1553B總線的硬件連接圖Fig.1 Hardware connection relation based on 1553B
通用測試平臺設(shè)計(jì)采用分布式軟件架構(gòu)[9],以滿足各類1553B消息的發(fā)送和采集、分析處理、實(shí)時(shí)查詢、顯示、設(shè)備自檢等功能要求。通用測試平臺的設(shè)計(jì)特點(diǎn)是通用性,軟件設(shè)計(jì)時(shí)考慮硬件接口標(biāo)準(zhǔn)化設(shè)計(jì)、功能模塊化設(shè)計(jì)[10]、軟件配置項(xiàng)[11-12]等幾個(gè)方面。
采用功能模塊化設(shè)計(jì)思路,把整個(gè)測試平臺分為3個(gè)模塊:主控軟件、數(shù)據(jù)庫軟件和客戶端軟件,軟件設(shè)計(jì)架構(gòu)如圖2所示。3個(gè)模塊軟件按照功能劃分,各有分工,組合實(shí)現(xiàn)完整的測試流程。

圖2 軟件設(shè)計(jì)構(gòu)架圖Fig.2 Software design architecture diagram
3個(gè)模塊之間通過消息中間件通信。消息中間件是網(wǎng)絡(luò)環(huán)境下處于操作系統(tǒng)、數(shù)據(jù)庫等系統(tǒng)軟件和應(yīng)用軟件之間的一種起連接作用的分布式軟件,主要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的互連和互操作問題,提供標(biāo)準(zhǔn)接口、協(xié)議,屏蔽實(shí)現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)易移植性。如圖3所示。

圖3 消息中間件示意圖Fig.3 Software design architecture diagram
因此,測試平臺各模塊之間耦合性低,各模塊內(nèi)部的功能、性能改進(jìn)性修改不會影響到其他模塊。同時(shí),軟件具有良好的擴(kuò)展性,如需增加功能,則在相應(yīng)模塊增加接口,不會對整個(gè)軟件架構(gòu)造成沖擊。
(1) 主控軟件
主控軟件是整個(gè)系統(tǒng)的核心,負(fù)責(zé)本系統(tǒng)的硬件接口以及對外的信息流交互,負(fù)責(zé)數(shù)據(jù)的收發(fā)、數(shù)據(jù)存儲管理、數(shù)據(jù)查詢和日志管理等功能。
主控軟件的數(shù)據(jù)收發(fā)功能,是指數(shù)據(jù)通信的處理過程,通過多線程實(shí)現(xiàn);數(shù)據(jù)存儲管理功能,是指數(shù)據(jù)處理時(shí)的緩存存儲,不同于服務(wù)器的數(shù)據(jù)本地存儲;數(shù)據(jù)查詢功能,是指數(shù)據(jù)從接收線程到解析線程的內(nèi)部查詢;日志管理功能,是指數(shù)據(jù)的接收和發(fā)送等信息實(shí)時(shí)日志存儲。
對外接口采用硬件接口標(biāo)準(zhǔn)化設(shè)計(jì),可隨著硬件設(shè)備的升級換代,無縫升級軟件的接口驅(qū)動,從而保證軟件平臺兼容硬件板卡的升級。具體實(shí)施步驟:
Step 1.在軟件代碼中維護(hù)2個(gè)全局變量列表
一個(gè)是硬件設(shè)備號列表,另一個(gè)是硬件接口的靜態(tài)鏈接庫列表。
Step 2.硬件設(shè)備接入過程
當(dāng)有新的硬件設(shè)備首次接入時(shí),需要在軟件界面上添加設(shè)備并保存,此時(shí)在軟件代碼中實(shí)現(xiàn)給2個(gè)列表增加新值;當(dāng)選擇已有設(shè)備時(shí),需要在軟件界面上選中設(shè)備。
Step 3.設(shè)備的初始化過程
設(shè)備的初始化過程封裝成標(biāo)準(zhǔn)的接口函數(shù),輸入?yún)?shù)有2個(gè),硬件設(shè)備號和硬件接口的靜態(tài)鏈接庫。在完成上述步驟后,從軟件界面讀取選中設(shè)備,并完成輸入?yún)?shù)賦值。
由此實(shí)現(xiàn)硬件接口標(biāo)準(zhǔn)化設(shè)計(jì),不需要修改軟件代碼,即可實(shí)現(xiàn)軟件平臺兼容多型號硬件板卡。
(2) 數(shù)據(jù)庫軟件
數(shù)據(jù)庫軟件負(fù)責(zé)存儲在整個(gè)測試過程中接收、發(fā)送、數(shù)據(jù)處理前、數(shù)據(jù)處理后的數(shù)據(jù),分為實(shí)時(shí)存儲和數(shù)據(jù)備份2部分功能。
數(shù)據(jù)庫開發(fā)選擇Microsoft SQL Server工具,只在后臺運(yùn)行。主控軟件或客戶端的數(shù)據(jù)通過消息中間件實(shí)時(shí)傳送給數(shù)據(jù)庫,無傳輸時(shí)延。數(shù)據(jù)庫在本地存儲接收到的所有數(shù)據(jù)作數(shù)據(jù)備份,當(dāng)需要數(shù)據(jù)查詢時(shí),直接在客戶端的軟件界面,設(shè)置查詢選項(xiàng),用SQL查詢語句實(shí)現(xiàn),通過消息中間件查詢并輸出,從而實(shí)現(xiàn)數(shù)據(jù)備份的功能。
(3) 客戶端軟件
客戶端軟件是用戶直接操作的軟件,位于最上層,主要負(fù)責(zé)將數(shù)據(jù)和數(shù)據(jù)分析處理結(jié)果以表格、圖像、曲線等多種方式呈現(xiàn),同時(shí)負(fù)責(zé)接收響應(yīng)用戶的消息發(fā)送指令和數(shù)據(jù)查詢操作。客戶端軟件采用軟件配置項(xiàng)的設(shè)計(jì),軟件運(yùn)行首先加載配置項(xiàng),根據(jù)配置需求,定制UI界面。
軟件配置項(xiàng)包含很多內(nèi)容,包括硬件設(shè)備配置、數(shù)據(jù)通信配置、頁面布局配置和日志存儲路徑配置等。在軟件工程建立之前,通過軟件配置項(xiàng)設(shè)置相關(guān)參數(shù)的初始值,完成界面布局,建立消息鏈表等通信前的準(zhǔn)備工作。軟件配置項(xiàng)的各參數(shù)保存在本地xml文件中,每次軟件運(yùn)行時(shí)自動加載,可以在配置界面修改配置并保存修改。軟件配置項(xiàng)中,最重要部分是1553B消息列表,在下面章節(jié)2.2和2.3中具體詳述。
基于1553B總線的軟件設(shè)計(jì),測試需求有較多的周期消息,周期最小為0.5 s,周期誤差范圍為±80 ms,周期之間呈整數(shù)倍關(guān)系,軟件實(shí)現(xiàn)對周期精度要求嚴(yán)格。
1553B通信周期消息的實(shí)現(xiàn)有以下幾種方式:軟件定時(shí)器、軟中斷和硬中斷[13-14]。軟件定時(shí)器:依靠應(yīng)用軟件設(shè)定的周期時(shí)間,周期性的調(diào)用函數(shù)。硬件中斷:當(dāng)中斷事件發(fā)生時(shí),設(shè)備向主機(jī)產(chǎn)生一個(gè)硬件中斷的信號,操作系統(tǒng)或設(shè)備驅(qū)動響應(yīng)中斷信號并使用應(yīng)用軟件,應(yīng)用軟件觸發(fā)回調(diào)函數(shù)。軟件中斷:應(yīng)用軟件周期性的讀取寄存器的中斷使能標(biāo)志位,如果該位置1則觸發(fā)中斷,軟件執(zhí)行回調(diào)函數(shù)。
三者相較,軟件定時(shí)器最簡單,完全依靠軟件的周期控制。但是,當(dāng)周期任務(wù)較多時(shí),定時(shí)器的周期精準(zhǔn)度比較差,誤差太大,故不作考慮。再來比較軟件中斷和硬件中斷:軟件中斷不需要和操作系統(tǒng)進(jìn)行交互,從而操作上更簡單和方便;軟件中斷需要周期性的讀取設(shè)備板卡的寄存器值,故而更消耗計(jì)算機(jī)內(nèi)存。在計(jì)算機(jī)內(nèi)存允許的情況下,軟件中斷比硬件中斷響應(yīng)速度更快,應(yīng)優(yōu)先選擇軟件中斷;當(dāng)軟件處理任務(wù)多,復(fù)雜度高的情況下,應(yīng)優(yōu)先選擇硬件中斷。通用測試平臺的設(shè)計(jì)選擇軟件中斷的方式實(shí)現(xiàn)周期消息的收發(fā)。
通用測試平臺的操作系統(tǒng)選用Windows Microsoft XP及以上,32位或64位;主控軟件以及客戶端軟件開發(fā)語言選擇Visual Studio C#或C++,開發(fā)平臺選擇Visual Studio 2013或以上版本;數(shù)據(jù)庫開發(fā)選擇Microsoft SQL Server。
根據(jù)MIL-STD-1553B協(xié)議的約定,數(shù)據(jù)通信通過消息的收發(fā)實(shí)現(xiàn),消息有4個(gè)固有屬性:地址,子地址、傳輸方向、消息字?jǐn)?shù)[15]。地址標(biāo)記某個(gè)RT終端,取值范圍0~31,31表示廣播地址;子地址標(biāo)記BC與RT終端通信的某種消息,取值范圍0~31,分為發(fā)送子地址和接收子地址。每條消息最多傳輸32個(gè)字,超過32個(gè)字的數(shù)據(jù)拆分為多條消息傳輸。
總結(jié)多個(gè)衛(wèi)星型號的基于1553B總線通信的單機(jī)產(chǎn)品的測試需求和實(shí)際測試經(jīng)驗(yàn),提出編寫消息列表,填入軟件配置項(xiàng)的設(shè)計(jì)思路,實(shí)現(xiàn)通用設(shè)計(jì)。
下面以某型號數(shù)管系統(tǒng)某單機(jī)為例,以子地址分類,分析測試需求的所有消息內(nèi)容,總結(jié)消息列表的編寫原則,見表1~3。
分析上述消息內(nèi)容發(fā)現(xiàn),各消息之間并非互相獨(dú)立,有一定的相關(guān)性。工程遙測送數(shù)傳消息,在結(jié)束時(shí)關(guān)聯(lián)結(jié)束字消息,標(biāo)記該類型數(shù)據(jù)發(fā)送完成;長抱環(huán)測試包括發(fā)送和返回2個(gè)步驟等等。由此總結(jié)出消息的3個(gè)特征屬值:周期屬性,結(jié)束字屬性,返回字屬性。歸納出該型號單機(jī)的消息列表,如表4所示。
消息列表是覆蓋所有測試需求的數(shù)據(jù)通信的集合,消息列表的每條消息包含固有屬性和特征屬性。針對某個(gè)型號,用戶通過配置軟件配置項(xiàng)的消息列表,覆蓋測試的所有功能。
首先,客戶端軟件讀取軟件配置項(xiàng),初始化消息列表。

表1 接收子地址Table 1 Receive sub-address message collection

表2 發(fā)送子地址Table 2 Transmit sub-address message collection

表3 廣播子地址Table 3 Broadcast sub-address message collection

表4 某型號單機(jī)消息列表Table 4 Message collection of a product example
方式字命令消息放在首位,設(shè)置成中斷消息,通過設(shè)置延時(shí)消息加循環(huán)消息列表的方式控制最小實(shí)現(xiàn)周期,即方式字命令消息的周期。
然后,采用軟件中斷的方式執(zhí)行消息。
主控軟件讀取消息列表中消息的屬性,向遠(yuǎn)程終端發(fā)送或接收消息。當(dāng)中斷觸發(fā)時(shí),依次判斷消息列表中各消息是否滿足執(zhí)行條件。滿足條件,則以消息插入的方式把該類消息插入消息列表,單次執(zhí)行;不滿足條件,則跳過。
最后,按照協(xié)議解析并轉(zhuǎn)發(fā)消息給總線控制器;同時(shí),數(shù)據(jù)庫存儲消息,客戶端軟件顯示消息。整個(gè)業(yè)務(wù)流程圖如圖4所示。

圖4 軟件業(yè)務(wù)流程圖Fig.4 Software transaction flow diagram
主控軟件的流程圖如圖5所示,根據(jù)軟件配置項(xiàng),依次對消息列表中的消息,按照其屬性實(shí)現(xiàn)消息的發(fā)送或接收。對周期消息,每次判斷消息的周期條件是否滿足;對單次觸發(fā)消息,每次判斷消息的觸發(fā)標(biāo)志是否為真。
客戶端軟件的實(shí)現(xiàn)界面在此詳細(xì)列舉,以某型號數(shù)管系統(tǒng)某單機(jī)為例,分別為總線指令界面、遙測界面、數(shù)據(jù)注入界面、長抱環(huán)與廣播消息界面,如圖6所示。根據(jù)軟件配置項(xiàng),選擇需要的功能模塊,以Tab頁的形式,顯示在軟件界面上。
總線指令界面:在左側(cè)指令列表雙擊選中某條指令,在右側(cè)顯示詳細(xì)的指令信息,點(diǎn)擊發(fā)送按鈕或者重新選擇按鈕,實(shí)現(xiàn)相應(yīng)功能;在下方記錄欄記錄指令發(fā)送的日志。
遙測界面:點(diǎn)擊開始或停止按鈕,開始或停止遙測數(shù)據(jù)的接收。當(dāng)數(shù)據(jù)接收時(shí),在中間列表框顯示接收的遙測信息,包括遙測原碼和解析值;在下方記錄遙測接收幀數(shù)。
數(shù)據(jù)注入界面:在界面上選擇注數(shù)文件和注數(shù)類型,點(diǎn)擊注數(shù)按鈕,完成數(shù)據(jù)的注入,在下方記錄欄記錄數(shù)據(jù)注入的日志。

圖5 軟件消息實(shí)現(xiàn)的流程圖Fig.5 Main software flow diagram

圖6 客戶端軟件界面Fig.6 Client software UI
長抱環(huán)與廣播信息界面:分區(qū)域顯示長抱環(huán)和廣播信息,每部分有單獨(dú)的開始和停止按鈕,分別控制各類信息的啟停。當(dāng)周期性的消息收發(fā)通信時(shí),在各區(qū)域分欄記錄通信日志。
基于1553B總線接口設(shè)計(jì)的通用化測試平臺,適用于衛(wèi)星型號的1553B總線接口的單機(jī)測試和系統(tǒng)測試。該平臺采用硬件接口標(biāo)準(zhǔn)化設(shè)計(jì)、功能模塊化設(shè)計(jì)、軟件配置項(xiàng)的設(shè)計(jì)思路,分為主控軟件、數(shù)據(jù)庫軟件、客戶端軟件3個(gè)子軟件實(shí)現(xiàn)。該平臺已參與多個(gè)衛(wèi)星型號的單機(jī)測試和驗(yàn)收,能夠全面覆蓋基于1553B總線的衛(wèi)星通信測試需求。
基于1553B的衛(wèi)星通用化測試平臺,可以同時(shí)適用于多個(gè)衛(wèi)星型號的地面測試,節(jié)省了人力成本和時(shí)間成本,給衛(wèi)星地面測試帶來了極大的方便,從而有效保障了衛(wèi)星型號的研制進(jìn)度。