, ,,,
(北京空間飛行器總體設(shè)計(jì)部,北京 100094)
MIL_STD_1553B總線為一種廣泛應(yīng)用于航天器中的數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線,具有較高的可靠性和實(shí)時(shí)性[1-2]。在傳統(tǒng)的美國軍用標(biāo)準(zhǔn)中,只提供了構(gòu)造最大64 byte的消息交互服務(wù),而并沒有提供更加復(fù)雜的數(shù)據(jù)結(jié)構(gòu)處理和數(shù)據(jù)流控制方法來實(shí)現(xiàn)更高層的通信和同步服務(wù)[3]。2008年,ECSS(European Cooperation for Space Standardization,歐洲空間標(biāo)準(zhǔn)化組織)在美軍標(biāo)的基礎(chǔ)上,提出了一種基于時(shí)間同步的1553B總線通信協(xié)議標(biāo)準(zhǔn)。這種協(xié)議提供了更上層的接口服務(wù),能夠有效簡化總線配置,實(shí)現(xiàn)總線資源的均衡分配和合理控制。目前這種通信協(xié)議已在我國多個(gè)遙感衛(wèi)星型號(hào)中得到了應(yīng)用,并在后續(xù)型號(hào)中持續(xù)推廣。
在我國現(xiàn)有的航天器中,星上數(shù)據(jù)管理系統(tǒng)計(jì)算機(jī)常常作為星上1553B總線控制器(Bus Controller,BC),而為了驗(yàn)證其功能正確性,總線終端(Remote Terminal,RT)仿真是測試中經(jīng)常使用的方法[4-5]。ALTA、Condor等商用總線仿真卡配套的仿真軟件都可以實(shí)現(xiàn)基本的RT仿真功能。航天型號(hào)中常常通過對(duì)仿真卡進(jìn)行二次開發(fā)來完成航天器型號(hào)測試,但是由于這些仿真軟件缺少對(duì)上層通信協(xié)議的模擬,在應(yīng)用基于時(shí)間同步1553B總線通信協(xié)議的型號(hào)中進(jìn)行測試會(huì)遇到諸多困難[6-8]。
本文在對(duì)基于時(shí)間同步的1553B總線通信協(xié)議各服務(wù)對(duì)RT的基本要求進(jìn)行分析的基礎(chǔ)上,提出了完成該協(xié)議下RT仿真所需的軟件需求,通過對(duì)商用總線仿真卡進(jìn)行二次開發(fā),設(shè)計(jì)實(shí)現(xiàn)了一種基于時(shí)間同步1553B總線通信協(xié)議的總線監(jiān)視與仿真軟件,在兼容原有商用軟件的總線監(jiān)視、BC/RT仿真、數(shù)據(jù)存儲(chǔ)及回放等基本功能的基礎(chǔ)上,增加了基于時(shí)間同步1553B總線通信協(xié)議的RT仿真功能。該軟件能夠滿足應(yīng)用該協(xié)議的各型號(hào)的各種測試需求,已經(jīng)在多個(gè)航天器型號(hào)中得到了應(yīng)用。
基于時(shí)間同步1553B總線通信協(xié)議在原有美軍標(biāo)的基礎(chǔ)上,提供了時(shí)間服務(wù)、通信同步服務(wù)、置數(shù)/取數(shù)服務(wù)、數(shù)據(jù)塊傳輸服務(wù)以及終端管理服務(wù)5種服務(wù)[9],這些服務(wù)并不是完全獨(dú)立的:通信同步服務(wù)為協(xié)議要求的強(qiáng)制服務(wù),它保證了協(xié)議的實(shí)時(shí)性,其它的服務(wù)都依賴于通信同步服務(wù),這些依賴關(guān)系如圖1所示。
圖1 服務(wù)依賴性
基于時(shí)間同步1553B總線通信協(xié)議的最基本的特點(diǎn)是通過通信同步服務(wù),把一個(gè)時(shí)間同步周期內(nèi)的數(shù)據(jù)傳輸劃分為若干個(gè)通信幀,通過約定特定的數(shù)據(jù)在特定的通信幀內(nèi)傳輸獲得確定的傳輸延遲,并達(dá)到均衡總線資源分配的效果,如圖2所示。因此基于時(shí)間同步1553B總線通信協(xié)議中的RT首先要識(shí)別通信幀,進(jìn)而根據(jù)當(dāng)前通信幀完成協(xié)議規(guī)定的在固定通信幀內(nèi)進(jìn)行的動(dòng)作。根據(jù)協(xié)議要求,RT通過獲取幀同步消息來識(shí)別當(dāng)前幀號(hào),因而本軟件首先要實(shí)現(xiàn)對(duì)幀同步消息的獲取和識(shí)別。
圖2 通信幀分解圖示
置數(shù)/取數(shù)服務(wù)用于傳輸預(yù)先約定好的,固定長度的數(shù)據(jù)至目的地,置數(shù)服務(wù)用于BC->RT的數(shù)據(jù)傳輸,取數(shù)服務(wù)用于RT->BC的數(shù)據(jù)傳輸。這個(gè)過程中不涉及到握手過程,因而涉及的數(shù)據(jù)傳輸長度都是約定好的,BC為這些數(shù)據(jù)在約定的通信幀中預(yù)留相應(yīng)的帶寬,RT依據(jù)幀號(hào)進(jìn)行數(shù)據(jù)的接收和發(fā)送。取數(shù)服務(wù)的使用要求RT仿真軟件能夠根據(jù)已經(jīng)識(shí)別的幀號(hào),向總線發(fā)送緩存寫入不同的數(shù)據(jù)。
數(shù)據(jù)塊傳輸服務(wù)能夠響應(yīng)發(fā)送端的請(qǐng)求來發(fā)起一次數(shù)據(jù)傳輸,并在數(shù)據(jù)傳輸結(jié)束后提供確認(rèn)。為了區(qū)分在BC端和在RT端發(fā)起的數(shù)據(jù)塊傳輸服務(wù),我們稱BC->RT的傳輸為數(shù)據(jù)塊分發(fā)傳輸;RT->BC的傳輸為數(shù)據(jù)塊獲取傳輸。數(shù)據(jù)塊分發(fā)的典型過程如下:
1)BC將需要發(fā)送的數(shù)據(jù)寫入對(duì)應(yīng)RT的協(xié)議規(guī)定的子地址(11-26)中,隨后,向該RT的SA27中寫入分發(fā)描述符,說明此次數(shù)據(jù)傳輸?shù)拈L度、傳輸質(zhì)量、使用的子地址等信息。
2)RT讀取SA(Sub-Address, 子地址)27中的分發(fā)描述符,并按照其中的信息指示獲取傳輸數(shù)據(jù)。之后對(duì)傳輸數(shù)據(jù)進(jìn)行檢查,在檢查結(jié)果正確時(shí),向SA27寫入分發(fā)傳輸確認(rèn)。
3)BC通過讀取此RTSA27中的分發(fā)傳輸確認(rèn)來確認(rèn)此次數(shù)據(jù)傳輸正確,此次數(shù)據(jù)塊分發(fā)過程結(jié)束。
數(shù)據(jù)塊獲取的典型過程如下:
1)RT在協(xié)議規(guī)定的子地址(11-26)中寫入需要傳輸?shù)臄?shù)據(jù),隨后,在SA28中寫入數(shù)據(jù)塊獲取請(qǐng)求,說明此次數(shù)據(jù)塊獲取的長度、傳輸質(zhì)量、使用的子地址等信息。
2)BC獲取此RTSA28中的數(shù)據(jù)塊獲取請(qǐng)求,判斷此請(qǐng)求為一次新的有效請(qǐng)求。
3)BC在之后的某個(gè)通信幀里,按照數(shù)據(jù)塊獲取請(qǐng)求中描述的數(shù)據(jù)長度和子地址信息實(shí)現(xiàn)數(shù)據(jù)傳輸,并向該RT的SA28中寫入數(shù)據(jù)塊獲取確認(rèn)。
4)RT通過判斷接收到相應(yīng)的數(shù)據(jù)塊獲取確認(rèn)來判斷當(dāng)前數(shù)據(jù)塊獲取傳輸結(jié)束。
通過以上分析可以看出,為了實(shí)現(xiàn)數(shù)據(jù)塊服務(wù),仿真軟件應(yīng)做到:對(duì)于數(shù)據(jù)塊分發(fā),要求仿真軟件能夠響應(yīng)BC的數(shù)據(jù)塊分發(fā)請(qǐng)求,包括數(shù)據(jù)塊分發(fā)復(fù)位請(qǐng)求和數(shù)據(jù)塊分發(fā)傳輸請(qǐng)求;對(duì)于數(shù)據(jù)塊獲取,則要求仿真軟件能夠根據(jù)協(xié)議要求,在特定時(shí)機(jī)提出數(shù)據(jù)塊獲取復(fù)位請(qǐng)求和數(shù)據(jù)塊分發(fā)傳輸請(qǐng)求,根據(jù)請(qǐng)求類型將要傳輸?shù)臄?shù)據(jù)寫入相應(yīng)的發(fā)送子地址,并對(duì)請(qǐng)求信息中的計(jì)數(shù)和長度信息進(jìn)行自主維護(hù)。
終端管理服務(wù)用于對(duì)RT進(jìn)行健康監(jiān)視、錯(cuò)誤預(yù)警、終端配置和數(shù)據(jù)卷繞。在實(shí)際的型號(hào)應(yīng)用中,只使用了協(xié)議中規(guī)定強(qiáng)制使用的數(shù)據(jù)卷繞服務(wù),因而RT仿真也應(yīng)能滿足數(shù)據(jù)卷繞的要求。
現(xiàn)有航天器中各種突發(fā)性、周期性以及不同服務(wù)質(zhì)量的數(shù)據(jù)傳輸要求都能通過這幾種服務(wù)得到滿足。通過上述分析可以看出,利用時(shí)間同步1553B總線通信協(xié)議進(jìn)行數(shù)據(jù)傳輸時(shí),RT的動(dòng)作依賴于對(duì)當(dāng)前通信幀號(hào)的判斷。在利用數(shù)據(jù)塊傳輸服務(wù)時(shí),RT還需要按照協(xié)議要求與BC進(jìn)行一系列的握手動(dòng)作才能完成數(shù)據(jù)傳輸。而商用的1553B總線仿真軟件不能提供這些服務(wù),無法滿足仿真要求。
根據(jù)上述分析,將時(shí)間同步1553B總線監(jiān)視與仿真軟件的功能需求分為兩部分。一部分為面向標(biāo)準(zhǔn)總線協(xié)議的通用需求,包括總線仿真卡設(shè)置、總線監(jiān)視(BM)、BC/RT仿真、數(shù)據(jù)存儲(chǔ)、回放及查詢等;一部分為專用需求,主要是模擬基于時(shí)間同步1553B總線通信協(xié)議的服務(wù)的RT的行為。具體來說,時(shí)間服務(wù)、置數(shù)服務(wù)都是完全由BC端控制,不需要RT做出特定的握手動(dòng)作,因而并不會(huì)對(duì)RT仿真功能帶來特殊需求;因而本軟件主要對(duì)通信同步服務(wù)、取數(shù)服務(wù)、數(shù)據(jù)塊服務(wù)和終端管理服務(wù)中的RT行為進(jìn)行仿真。
本軟件使用C++語言進(jìn)行開發(fā),使用模塊化設(shè)計(jì)[10],主要有界面顯示與交互、總線監(jiān)視、數(shù)據(jù)存檔、數(shù)據(jù)查詢、配置文件管理、RT仿真、總線監(jiān)視7個(gè)模塊,模塊間的關(guān)系和數(shù)據(jù)流如圖3所示。軟件采用多線程編程技術(shù),提供圖形化界面,實(shí)現(xiàn)對(duì)1553B總線進(jìn)行總線監(jiān)視、數(shù)據(jù)存檔、回放以及查詢等功能。這些功能與傳統(tǒng)的仿真卡二次開發(fā)軟件類似,在此不做具體說明。與商業(yè)總線仿真軟件不同,本軟件設(shè)計(jì)了專門的協(xié)議管理模塊,配合RT仿真模塊,實(shí)現(xiàn)對(duì)時(shí)間同步1553B總線通信協(xié)議中RT動(dòng)作的仿真。本節(jié)主要對(duì)軟件提供的針對(duì)時(shí)間同步協(xié)議的各項(xiàng)服務(wù)進(jìn)行說明。
圖3 模塊關(guān)系和數(shù)據(jù)流
幀同步消息的傳輸形式為帶數(shù)據(jù)字的方式字,根據(jù)協(xié)議要求在RT31的子地址31進(jìn)行廣播。軟件協(xié)議管理模塊能夠獲取每個(gè)幀同步消息,提取當(dāng)前幀號(hào)。此幀號(hào)能夠被數(shù)據(jù)存檔、總線監(jiān)視、RT仿真等多個(gè)模塊獲取并調(diào)用,提供了協(xié)議仿真的基礎(chǔ)。
在型號(hào)應(yīng)用中,對(duì)于某個(gè)RT可能會(huì)同時(shí)設(shè)置多個(gè)子地址進(jìn)行取數(shù),同一個(gè)子地址中取的通常是同一種數(shù)據(jù),但其數(shù)據(jù)具體內(nèi)容在不同的通信幀中可能會(huì)發(fā)生變化。商業(yè)仿真卡無法支持這種變化。
在本軟件中,在對(duì)某RT的某個(gè)子地址進(jìn)行仿真時(shí),支持仿真數(shù)據(jù)的動(dòng)態(tài)變化,數(shù)據(jù)中的變化區(qū)域和變化條件都可以指定。數(shù)據(jù)的變化方法可以選擇遞增/遞減、在某個(gè)范圍內(nèi)隨機(jī)變化或者幾組固定數(shù)據(jù)循環(huán)變化。而變化的條件支持周期性變化,也可以用指定的消息來觸發(fā)。當(dāng)用幀同步消息作為觸發(fā)消息時(shí),結(jié)合數(shù)據(jù)變化的設(shè)置,就可以實(shí)現(xiàn)不同幀號(hào)下取數(shù)結(jié)果不同的效果。
2.3.1 數(shù)據(jù)塊分發(fā)服務(wù)
根據(jù)協(xié)議要求,在進(jìn)行數(shù)據(jù)塊分發(fā)時(shí),BC會(huì)在向RT發(fā)送數(shù)據(jù)或者提出協(xié)議復(fù)位時(shí),在該RT的子地址27寫入分發(fā)傳輸描述符(DTD),而RT應(yīng)在接收對(duì)分發(fā)傳輸描述符后,一個(gè)通信幀的時(shí)間內(nèi),確認(rèn)其內(nèi)容,并在子地址27中給出分發(fā)傳輸確認(rèn)(DTC),DTD和DTC的數(shù)據(jù)結(jié)構(gòu)如表1、表2所示。
軟件的具體實(shí)現(xiàn)過程是,對(duì)子地址27進(jìn)行監(jiān)控,在接收到DTD后,直接提取其中信息組成DTC后寫入子地址27的發(fā)送緩存。除此之外,本軟件還能對(duì)數(shù)據(jù)塊分發(fā)次數(shù)進(jìn)行統(tǒng)計(jì),并提供單獨(dú)界面對(duì)數(shù)據(jù)塊分發(fā)的數(shù)據(jù)進(jìn)行顯示。
表1 分發(fā)傳輸描述符(DTD)結(jié)構(gòu)
表2 分發(fā)傳輸確認(rèn)(DTC)結(jié)構(gòu)
表3 獲取傳輸請(qǐng)求(ATR)結(jié)構(gòu)
2.3.2 數(shù)據(jù)塊獲取服務(wù)
根據(jù)協(xié)議要求,在利用數(shù)據(jù)塊獲取服務(wù)進(jìn)行數(shù)據(jù)傳輸時(shí),RT需要在協(xié)議規(guī)定的子地址內(nèi)寫入需要傳輸?shù)臄?shù)據(jù)后,在子地址28中寫入相應(yīng)的獲取傳輸請(qǐng)求(ATR),其數(shù)據(jù)結(jié)構(gòu)見表3。
在航天型號(hào)中,對(duì)某個(gè)RT常常有多種數(shù)據(jù)需要通過數(shù)據(jù)塊獲取進(jìn)行傳輸,且這些數(shù)據(jù)的觸發(fā)條件各不相同。而且每進(jìn)行一次數(shù)據(jù)塊傳輸,其ATR中的獲取塊計(jì)數(shù)都要加1??梢钥闯觯褂眠@種服務(wù)的數(shù)據(jù)傳輸過程,使用商業(yè)仿真卡根本無法自動(dòng)模擬,而靠人工手動(dòng)維護(hù)ATR的提起,沒辦法保證數(shù)據(jù)的周期性傳輸。為此,本軟件對(duì)于每個(gè)RT的數(shù)據(jù)塊獲取仿真提供了以下功能:
1)能夠維護(hù)一個(gè)獲取傳輸列表,對(duì)每種獲取傳輸設(shè)定不同的觸發(fā)條件:可以單次傳輸、可以周期性傳輸也可以由某條消息觸發(fā)傳輸;
2)對(duì)一個(gè)RT維護(hù)一個(gè)獲取塊計(jì)數(shù),每發(fā)起一次獲取傳輸請(qǐng)求,獲取塊計(jì)數(shù)自動(dòng)加1;在提起獲取傳輸復(fù)位時(shí),該獲取塊計(jì)數(shù)清零;
3)在某條獲取傳輸被觸發(fā)時(shí),能夠根據(jù)ATR中的子地址模式和子地址將需要傳輸?shù)臄?shù)據(jù)寫入對(duì)應(yīng)子地址的發(fā)送緩存中;
4)當(dāng)獲取傳輸列表中多個(gè)獲取傳輸同時(shí)被觸發(fā)時(shí),能夠?qū)Ψ抡鏀?shù)據(jù)進(jìn)行合并,并寫入對(duì)應(yīng)子地址,此時(shí)生成的ATR中的當(dāng)前塊長度應(yīng)為被觸發(fā)的多個(gè)數(shù)據(jù)塊長度的和;
5)提供了數(shù)據(jù)塊獲取計(jì)數(shù)統(tǒng)計(jì)功能,對(duì)此RT的數(shù)據(jù)塊獲取狀態(tài)進(jìn)行實(shí)時(shí)顯示。
目前在航天器型號(hào)中,終端管理服務(wù)只使用了數(shù)據(jù)卷繞服務(wù),也就是說RT需要將子地址30接收到的卷繞數(shù)據(jù)回寫到發(fā)送緩存中。在終端管理服務(wù)中,軟件通過將RT的子地址30的發(fā)送和接收緩存設(shè)置為同一地址,實(shí)現(xiàn)了這一仿真要求。
以某應(yīng)用基于時(shí)間同步1553B總線通信協(xié)議的航天型號(hào)中,某RT的總線傳輸要求為例,說明本文所述軟件的RT仿真功能的使用。該RT需要在總線上進(jìn)行仿真的包列表如表4所示。
表4 某型號(hào)某RT的總線傳輸包列表
使用傳統(tǒng)仿真軟件完成此RT仿真的難度是顯而易見的。以采用數(shù)據(jù)塊獲取服務(wù)的RK2和PK3為例,為了實(shí)現(xiàn)PK2能夠以2 s為周期傳輸,測試人員必須每2 s手動(dòng)在該RT的子地址28進(jìn)行一次獲取傳輸請(qǐng)求仿真,數(shù)據(jù)格式如表3所示,且其中的獲取塊計(jì)數(shù)還要每2 s遞增1;保持準(zhǔn)確的2 s周期對(duì)手動(dòng)操作來說已經(jīng)很難實(shí)現(xiàn),而同時(shí)還要保證這個(gè)傳輸請(qǐng)求是在通信幀10中被提起就更加不可能了。不僅如此,還需要同時(shí)兼顧以8 s為周期傳輸?shù)腜K3??梢钥闯?,商用仿真卡已經(jīng)完全無法實(shí)現(xiàn)此RT的仿真。
在本軟件中,在此RT的子地址4對(duì)PK1的數(shù)據(jù)進(jìn)行仿真。設(shè)置仿真數(shù)據(jù)中的包計(jì)數(shù)字段為按秒遞增,則取數(shù)服務(wù)取到的數(shù)據(jù)為一個(gè)每秒包計(jì)數(shù)遞增的遙測包。
利用數(shù)據(jù)塊獲取服務(wù),對(duì)PK2和PK3進(jìn)行仿真。分別對(duì)PK2和PK3的長度、數(shù)據(jù)內(nèi)容、傳輸幀號(hào)和周期進(jìn)行設(shè)置后,即可完成仿真(如圖4所示)。仿真完成后,可以在總線上觀察到RK2以2 s為周期傳輸,PK3以8S為周期傳輸,每次PK3傳輸時(shí),PK2和PK3會(huì)被合并到一次數(shù)據(jù)塊獲取中被傳輸,本軟件會(huì)自動(dòng)維護(hù)ATR的提起以及發(fā)送數(shù)據(jù)的寫入。
圖4 編輯數(shù)據(jù)塊獲取界面
可以看出,本軟件的使用大大降低了基于時(shí)間同步的1553B總線通信協(xié)議的RT仿真難度,對(duì)于提高使用該協(xié)議的航天型號(hào)測試效率和測試覆蓋性具有重要意義。
1553B總線監(jiān)視與仿真軟件是航天器研制過程中經(jīng)常使用的重要工具,其好用易用性對(duì)于總線通信功能測試效果有至關(guān)重要的作用。本軟件兼容傳統(tǒng)的總線監(jiān)視與仿真軟件的總線監(jiān)視、總線消息存儲(chǔ)、回放以及查詢等功能,并通過對(duì)商用仿真卡進(jìn)行二次開發(fā),實(shí)現(xiàn)了適用于基于時(shí)間同步1553B總線通信協(xié)議的RT仿真功能,大大降低了采用基于時(shí)間同步1553B總線通信協(xié)議的型號(hào)的總線功能測試復(fù)雜度,提高了測試覆蓋率。該軟件已經(jīng)應(yīng)用于多顆遙感衛(wèi)星的綜合電子分系統(tǒng)軟件測試中,取得了良好的效果。隨著基于時(shí)間同步的1553B總線通信協(xié)議的推廣將得到更加廣泛的應(yīng)用。