呂良慶,安軍社
(1. 中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實(shí)驗(yàn)室, 北京 100190;2. 中國(guó)科學(xué)院大學(xué), 北京 100049)
MIL-STD-1553B總線在國(guó)內(nèi)外航天工程領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用,適用于低速、高可靠的數(shù)據(jù)傳輸,通常用于系統(tǒng)管理和控制。為此各航天組織也依之制定了各自的1553B通信協(xié)議,例如歐洲空間局(European Space Agency, ESA)的ECSS-E-ST-50-13C[1]和我國(guó)的GJB 289A-97[2],以及為不同通信形式而改造的1553B總線協(xié)議[3-5]。這些通信協(xié)議及其應(yīng)用情況普遍有一個(gè)特點(diǎn),就是參與通信的遠(yuǎn)程終端(Remote Terminal,RT)和傳輸?shù)南⑹鞘孪冉?jīng)過協(xié)商確定好的,采用固定消息時(shí)序分配的方式通信。這種做法能夠滿足不同項(xiàng)目任務(wù)廣泛的用戶應(yīng)用需求,但是對(duì)于開發(fā)方和系統(tǒng)構(gòu)建過程而言,其協(xié)調(diào)、設(shè)計(jì)、驗(yàn)證工作是比較煩瑣的。
空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(Consultative Committee for Space Data System,CCSDS)的航天器接口業(yè)務(wù)(Spacecraft Onboard Interface Services,SOIS)[6-9]采用了即插即用的思想,系統(tǒng)架構(gòu)底層可以接入多個(gè)異構(gòu)子網(wǎng),1553B總線只是其中之一。架構(gòu)上層的應(yīng)用和業(yè)務(wù)過程對(duì)這些子網(wǎng)的訪問是透明的,因此設(shè)備級(jí)的即插即用過程首先要在子網(wǎng)內(nèi)部來(lái)解決。
1553B總線通信涉及總線控制器(Bus Controller, BC)的應(yīng)用部分BCA和服務(wù)部分BCS、RT的服務(wù)部分RTS和應(yīng)用部分RTA共4個(gè)角色,它們之間的通信關(guān)系見圖1。
在ECSS-E-ST-50-13C中歸結(jié)了5項(xiàng)1553B總線服務(wù),即時(shí)間服務(wù)、通信同步服務(wù)、分發(fā)和獲取-置數(shù)和取數(shù)服務(wù)、數(shù)據(jù)塊傳輸服務(wù)和終端管理服務(wù),以原語(yǔ)方式說(shuō)明了各項(xiàng)服務(wù)的交換信息和時(shí)序安排。同時(shí)給出了子地址編排、方式碼消息使用建議等。
BCS和RTS的實(shí)體中包括1553B總線協(xié)議芯片作為高級(jí)通信引擎(Advanced Communication Engine,ACE),典型的如DDC61580系列[10]。ACE實(shí)現(xiàn)了鏈路層協(xié)議,并且配有相應(yīng)的配置寄存器和消息數(shù)據(jù)緩存區(qū)。
1553B總線通信通過編排和運(yùn)行總線表實(shí)現(xiàn)。為適應(yīng)不同消息的傳輸需求和消息時(shí)間間隔(TITV)要求,總線表編排采用消息服務(wù)請(qǐng)求方式,劃分為多個(gè)消息小幀,每個(gè)小幀以查詢服務(wù)請(qǐng)求的矢量字消息開頭,以同步消息(表示為Syn)結(jié)尾,中間為需傳輸?shù)南ⅰC總€(gè)小幀周期(TFRM)相等。如果某個(gè)消息不需要傳輸,則該消息不上線,但是時(shí)間仍然占用,以保證TFRM的穩(wěn)定。這樣組織的總線表稱為主總線表,其中TFRM表現(xiàn)為總線周期(TBUS),即二者在穩(wěn)定運(yùn)行期間是相等的,只在總線表重構(gòu)過程中有所區(qū)別。
在主總線表運(yùn)行期間,BC可通過切換總線表的方式,改變消息序列的運(yùn)行。這種運(yùn)行控制方式稱為插入消息方式,可作如下約定:
1)每次插入的消息只能運(yùn)行一次。
2)插入消息運(yùn)行完畢后,如果有新的插入消息請(qǐng)求,可繼續(xù)插入消息運(yùn)行,如果沒有則返回主總線表斷點(diǎn)處繼續(xù)運(yùn)行。
3)插入消息采用幀結(jié)束(End Of Frame,EOF)處理方式,先停止總線消息運(yùn)行,對(duì)消息幀中的所有消息進(jìn)行一次性處理,切換總線表,再重新啟動(dòng)運(yùn)行。因此插入消息序列中的消息時(shí)間(TMSG)可按照最小時(shí)間設(shè)置,不必留有余量。
上述各種時(shí)間概念和關(guān)系示意見圖2。
圖1 1553B總線通信順序Fig.1 1553B bus communication sequence diagram
圖2 TMSG、TITV、TFRM、TBUS概念示意Fig.2 Concepts of TMSG、TITV、TFRM、TBUS
主總線表加插入消息方式的總線運(yùn)行控制示意見圖3。
圖3 主總線表和插入消息運(yùn)行的轉(zhuǎn)換關(guān)系Fig.3 Switch relationship between main bus list and insert message list
工程項(xiàng)目中的一般做法是BC方還需要與各RT方協(xié)調(diào),進(jìn)行RT地址和子地址(消息類型)的分配,定義消息長(zhǎng)度和數(shù)據(jù)格式,確定消息傳輸時(shí)間和時(shí)序,形成項(xiàng)目級(jí)的1553B總線通信協(xié)議和接口控制文件。
RT方的設(shè)計(jì)是固定而簡(jiǎn)單的,不能因?yàn)樵黾恿思床寮从玫母拍疃斐蒖T方的設(shè)計(jì)復(fù)雜,而BC方應(yīng)對(duì)RT方設(shè)計(jì)的多樣性和針對(duì)性具有自適應(yīng)能力,這是即插即用系統(tǒng)應(yīng)該具有的特征。但是還是需要RT方至少將其傳輸需求告知BC方,BC才能進(jìn)行通信管控。為此需要增加RT接入時(shí)的握手過程,以傳遞RT的電子數(shù)據(jù)單(Electronic Data Sheets,EDS),供BC動(dòng)態(tài)構(gòu)建總線表。
為了建立初步的握手關(guān)系,需要對(duì)子地址的分配進(jìn)行一些固定的約定。RT的子地址在ECSS-E-ST-50-13C基礎(chǔ)上約定見表1。
表1中RT可自行配置的子地址允許繼承使用已有的配置,并事先與BC方約定。如果不約定,則BC根據(jù)RT的EDS動(dòng)態(tài)編排總線表,以主動(dòng)適應(yīng)不同RT的不同傳輸需求實(shí)現(xiàn)即插即用的特征。
表1 RT子地址使用約定
矢量字消息用于標(biāo)識(shí)RT方的消息傳輸服務(wù)請(qǐng)求,消息中數(shù)據(jù)字16 bit中的某1位置1表示有某種消息需要傳輸,BCS將據(jù)此安排相應(yīng)消息傳輸。該數(shù)據(jù)字定義如下:
1)D0~D14:RT可個(gè)性化定義對(duì)應(yīng)所需消息。
2)D15:固定用于請(qǐng)求發(fā)送EDS消息。
RT的EDS內(nèi)容分為2層:1553B總線通信層EDS(簡(jiǎn)稱RT EDS)和應(yīng)用EDS。
RT EDS目的是描述RT方所需的傳輸消息、子地址定義以及矢量字服務(wù)請(qǐng)求關(guān)系[11],見表2。
表2 1553B通信層EDS格式[12]
1)矢量字定義通過矢量字mask和數(shù)據(jù)域建立16 bit請(qǐng)求位與子地址的對(duì)應(yīng)關(guān)系。
2)T/R子地址mask定義了哪些子地址被使用或未使用。
3)T/R子地址定義規(guī)定了被使用的子地址的消息類型、數(shù)據(jù)字個(gè)數(shù)和消息間隔TITV要求。
4)消息間隔TITV要求:16 bit,單位ms。
? 全1表示65.535 s,全0表示沒有周期要求,屬于根據(jù)條件、請(qǐng)求、需要而傳輸?shù)南ⅰ?/p>
? 劃分時(shí)間(TDIV)的取值用于判定消息是直接安排在主總線表中(TITV 應(yīng)用EDS用于描述系統(tǒng)上層應(yīng)用,是RT對(duì)本設(shè)備的功能、性能、接口、工作方式的EDS描述,傳遞給BCA以供構(gòu)建系統(tǒng)上層的服務(wù)關(guān)系。這部分是遵從可擴(kuò)展標(biāo)識(shí)語(yǔ)言(eXtensive Markup Language, XML)語(yǔ)法語(yǔ)義規(guī)定[13-14]描述的對(duì)象,經(jīng)過翻譯后的解釋數(shù)據(jù)。 EDS傳輸格式采用CCSDS空間包格式[15]。包中的應(yīng)用過程標(biāo)識(shí)符(Application Process IDentifier,APID)指明了內(nèi)容對(duì)應(yīng)到BC或RT端內(nèi)部的不同層次的應(yīng)用過程,內(nèi)容的區(qū)分通過包副導(dǎo)頭定義。 RT接入步驟如下: Step1:以30個(gè)RT矢量字消息組成查詢幀,周期輪詢RT的服務(wù)請(qǐng)求,直到發(fā)現(xiàn)有RT接入(消息不超時(shí))。 Step2:BCS對(duì)查詢幀只進(jìn)行矢量字中EDS請(qǐng)求位的判讀。 Step3:當(dāng)1個(gè)RT接入后,首先向BC提出發(fā)送EDS的服務(wù)請(qǐng)求。 Step4:BCS響應(yīng)RT EDS服務(wù)請(qǐng)求,以插入消息的方式將RT EDS安排傳輸并接收。 Step5:BC根據(jù)RT EDS構(gòu)建總線表。 Step6:總線表建立并啟動(dòng)運(yùn)行后,調(diào)整插入查詢幀運(yùn)行的時(shí)間間隔(TLOP),并按照TLOP插入查詢幀查詢剩余RT。 Step7:重復(fù)Step 3~6步,實(shí)現(xiàn)RT逐個(gè)加入的過程。 Step8:當(dāng)所有(30個(gè))RT加入總線表運(yùn)行后,不再插入查詢幀。 Step9:每當(dāng)有1個(gè)新的RT接入時(shí),BC還需要解決新RT通信數(shù)據(jù)的收發(fā)控制,通過BCA和BCS之間的標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)和統(tǒng)一服務(wù)機(jī)制來(lái)解決。 Step10:在某個(gè)RT總線通信建立后,如果RT有應(yīng)用EDS需要傳遞,可繼續(xù)通過EDS請(qǐng)求向BC傳輸。 RT撤出步驟如下: Step1:當(dāng)某個(gè)RT連續(xù)1 min出現(xiàn)超時(shí)響應(yīng),且通過切換總線不能恢復(fù)通信(再加1 min),則可判定此RT下線。 Step2:判定RT下線后,BC對(duì)總線表進(jìn)行重構(gòu),刪除下線RT的所有消息,在查詢幀中增加對(duì)下線RT的矢量字消息,并調(diào)整TLOP。 Step3:該RT退出引發(fā)的應(yīng)用功能上的影響和反應(yīng)由BCA進(jìn)行處理和系統(tǒng)重構(gòu)。 總線管理設(shè)計(jì)需要的標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)是為了在BCA、BCS、ACE之間建立起統(tǒng)一的控制服務(wù)和數(shù)據(jù)傳遞服務(wù)。 標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)按照位置分為ACE內(nèi)存和CPU內(nèi)存兩部分。ACE內(nèi)存部分主要包括總線表(BUS LIST)和相關(guān)的配置寄存器[3],是ACE定義好的數(shù)據(jù)結(jié)構(gòu),只能按照芯片使用手冊(cè)的要求進(jìn)行配置和設(shè)計(jì)。 CPU部分又分為兩部分: 一部分處于BCS與ACE之間,主要包括消息表(MSGTAB)、消息號(hào)表(MSGNUMTAB)、消息塊表(MSGBLKTAB)。 MSGTAB通過消息號(hào)對(duì)主總線表和插入消息表中所有消息建立索引,目的是把消息內(nèi)容的分析過程提前到初始化時(shí)進(jìn)行,在運(yùn)行過程中只對(duì)該表進(jìn)行查詢,就能獲得諸如消息類型、數(shù)據(jù)區(qū)地址等信息,避免對(duì)總線運(yùn)行產(chǎn)生干擾。消息類型還可以起到與應(yīng)用建立聯(lián)系的作用。 MSGNUMTAB是針對(duì)主總線表中的每個(gè)小幀建立的消息號(hào)索引,目的是供BCS查詢?cè)摫?,以確定某個(gè)小幀中是否有需要的消息存在,實(shí)現(xiàn)主總線表中消息的上線和下線操作。 MSGBLKTAB建立了消息塊的地址索引,目的是供切換冗余總線使用,而不干擾總線運(yùn)行。 另一部分處于BCS與BCA之間,主要包括插入消息請(qǐng)求表(INSMSGFLAG)、數(shù)據(jù)區(qū)及其控制標(biāo)志。為適應(yīng)即插即用的隨機(jī)性,數(shù)據(jù)區(qū)及其標(biāo)志可采用請(qǐng)求隊(duì)列加緩存的統(tǒng)一方式組織。 總線管理設(shè)計(jì)分為總線初始化、總線控制和總線應(yīng)用。 總線初始化包括總線表構(gòu)建和對(duì)ACE總線表、寄存器的設(shè)置,以及根據(jù)總線表分析生成上述數(shù)據(jù)結(jié)構(gòu)。在即插即用背景下,隨著RT的增減,總線表會(huì)動(dòng)態(tài)構(gòu)建,每次都要重復(fù)上述過程。 總線運(yùn)行控制方式包括對(duì)主總線表和插入消息表操作兩種方式。主總線表的運(yùn)行控制采用消息結(jié)束(End Of Message,EOM)處理(包括中斷和查詢),安排消息上線和消息下線。插入消息表運(yùn)行控制采用EOF處理,并進(jìn)行總線表切換。 總線應(yīng)用是指BCA與BCS之間在取數(shù)和置數(shù)以及控制方面的交互問題。 BC管理的基礎(chǔ)功能模塊共有13個(gè),見表3。 表3 1553B基礎(chǔ)功能模塊 3.3.1 總線表構(gòu)建的前提約定 總線表的構(gòu)建算法就是根據(jù)RT EDS生成新的總線表。即插即用的總線通信使用的主總線表可以只有固定的30個(gè)RT矢量字消息加1條同步消息,而所有其他有效消息均采用插入消息的方式。這種方式能保證所有RT的所有消息得到傳輸,但消息的周期性難以保證。因此有必要采用主總線表加插入消息的方式來(lái)平衡這一問題,而主總線表的構(gòu)建算法就成為主要內(nèi)容。為保證構(gòu)建的總線表時(shí)間特性,需要對(duì)各種消息TMSG進(jìn)行約定,約定的原則如下: 1)1553B總線碼速率為1 Mbit/s,1個(gè)數(shù)據(jù)字在總線傳輸時(shí)為20 bit(3 bit同步+16 bit數(shù)據(jù)+1 bit校驗(yàn)),1 bit傳輸需1 μs,加上狀態(tài)字響應(yīng)時(shí)間4~12 μs[16],因此最大32字的消息可以計(jì)算為:指令字20 μs +數(shù)據(jù)字(32×20 μs)+響應(yīng)時(shí)間(4~12 μs)+狀態(tài)字20 μs +間隙(>4 μs)。為方便使用,32字消息的最小TMSG取值800 μs。 2)同樣的消息在主總線表中和插入消息表中的TMSG是不同的,主要是因?yàn)橹骺偩€表中的消息采用EOM方式處理,需要為BCS的響應(yīng)和處理留出時(shí)間余量,而插入消息表采用EOF方式處理,處理時(shí)總線表處于停止?fàn)顟B(tài),因此消息TMSG可以不留余量。 根據(jù)這2條原則,對(duì)各種消息TMSG作如下約定: 1)RT矢量字消息在主總線表中每條3 ms,在查詢幀中100 μs。 2)同步消息100 μs。 3)主總線表中的TMSG:帶1個(gè)數(shù)據(jù)字的消息為1380 μs,每增加1個(gè)數(shù)據(jù)字,時(shí)間增加20 μs,32個(gè)數(shù)據(jù)字的消息為2 ms。 4)插入消息表中的TMSG:帶1個(gè)數(shù)據(jù)字的消息為180 μs,每增加1個(gè)數(shù)據(jù)字,時(shí)間增加20 μs,32個(gè)數(shù)據(jù)字的消息為800 μs。 3.3.2 初始主總線表的建立 收到第1個(gè)RT EDS后,主總線表的構(gòu)建步驟如下: Step1:找出RT EDS中期望的非0、小于TDIV的最大TITV,作為初始TBUS。 Step2:主總線表先安排1條RT矢量字消息+1條同步消息。 Step3:將RT EDS中的消息按順序排列在主總線表RT矢量字和同步消息之間。 Step4:RT EDS中TITV為0或超長(zhǎng)(≥TDIV)的消息按照插入消息安排,不編入主總線表中。 Step5:全部安排完畢后,累加主總線表所有消息時(shí)間TMSG作為TFRM,若TFRM≥初始TBUS,則設(shè)置完成,并以TFRM為TBUS;若TFRM<初始TBUS,則將同步消息前的最后1條消息的TMSG加長(zhǎng),使TFRM=初始TBUS。 Step6:將生成的總線表作為1個(gè)小幀,復(fù)制為8個(gè)。 3.3.3 第n個(gè)RT加入主總線表 收到第n個(gè)RT的RT EDS后操作步驟: Step1:記錄當(dāng)前TFRM,將8個(gè)小幀中同步消息前最后1條消息的TMSG恢復(fù)缺省值。 Step2:在當(dāng)前8個(gè)小幀中加入該RT矢量字消息,TFRM加上3 ms。 Step3:根據(jù)該RT EDS將其RT消息加入8個(gè)小幀。加入消息時(shí)需要考慮TITV和位置問題。 1)加入的消息TITV是當(dāng)前TFRM的n倍。 ?n<2:將其加入8個(gè)小幀,每個(gè)小幀1個(gè)。 ? 2≤n<3:將其加入4個(gè)小幀,從TFRM最短的小幀開始,每間隔1個(gè)小幀1個(gè)。 ? 3≤n<5:將其加入2個(gè)小幀,從TFRM最短的小幀開始,每間隔3個(gè)小幀1個(gè)。 ? 5≤n≤8:將其加入1個(gè)TFRM最短的小幀。 ?n>8,但TITV ? 消息TITV≥TDIV:將其作為插入消息,不編入主總線表。 2)加入時(shí)的位置按照同類消息放在一起,同類消息按RT加入順序排列。如果是新類型消息,則加在所有已有消息之后、同步消息之前。 3)1條消息加入完畢后,將該消息的TMSG加入TFRM,作為新的TFRM。 Step4:繼續(xù)加入該RT的下一條消息,重復(fù)Step 3,直到RT EDS要求的所有消息加入完畢。 Step5:該RT的所有消息加入完畢后,檢查在Step 3中暫時(shí)作為插入消息的TITV與剛生成的TFRM的倍數(shù)關(guān)系n,如果n≤8,則將該消息從插入消息表中刪除,按照Step 3將其加入主總線表小幀中。 Step6:求出所有小幀的新TFRM,取其中最大的TFRM。若RT EDS中的消息最大TITV>最大TFRM,加長(zhǎng)該小幀中同步消息前的最后1條消息的TMSG,使TFRM=該RT消息的最大TITV。 Step7:若該RT EDS中的消息最大TITV≤最大TFRM,將其余小幀的TFRM均調(diào)整為與最大TFRM相同(即所有TFRM相等),方法同上。 Step8:若新TFRM<調(diào)整前的TFRM,則將每個(gè)小幀的TFRM繼續(xù)加長(zhǎng)到調(diào)整前TFRM。 3.3.4 有RT撤出 在運(yùn)行過程中,有RT撤出時(shí)操作步驟: Step1:將撤出RT的消息從總線表中刪除。 Step2:刪除后,重新計(jì)算各TFRM,取其大者作為TBUS。 Step3:在剩余所有的RT EDS中找到消息最大TITV,若消息最大TITV≤新TBUS,則調(diào)整完成,否則所有TFRM均延長(zhǎng)(方法同上),作為新的TBUS。 Step4:查詢幀增加RT矢量字消息。 Step5:調(diào)整TLOP,并按照TLOP插入查詢幀。 Step6:RT的撤出次序與RT號(hào)的大小無(wú)關(guān)。 總線表構(gòu)建效果評(píng)估包括時(shí)間效果和適用場(chǎng)景兩方面。 3.4.1 時(shí)間效果的評(píng)估 查詢握手協(xié)議過程的時(shí)間主要是指TFRM對(duì)TLOP的影響,以及查詢幀的消息時(shí)間。影響這一關(guān)系的主要有2個(gè)值,即TDIV和TLOP。TDIV的取值由主總線表中8個(gè)小幀周期之和最大值確定。TLOP需要考察主總線表和插入消息之間的時(shí)間關(guān)系。為分析確定這2個(gè)取值,作如下約定: 1)主總線表最大512條消息; 2)主總線表平均分為8個(gè)小幀,每個(gè)小幀中最多64條消息; 3)單消息按照32字來(lái)計(jì)算。 以小幀為單位,根據(jù)上述前提進(jìn)行時(shí)間效果分析,計(jì)算公式如下: TBUS=TFRM=矢量字消息數(shù)×3+消息數(shù)×2+0.1 在穩(wěn)定運(yùn)行期間,沒有插入消息,小幀滿64條消息(矢量字消息數(shù)最多30個(gè),消息數(shù)為33個(gè))時(shí),TFRM最大,達(dá)到30×3+33×2+0.1=156.1 ms,8個(gè)小幀時(shí)間為156.1×8=1248.8 ms。因此TDIV取值1.25 s比較合適。 由于TFRM的計(jì)算公式是線性的,因此其最大值隨著RT個(gè)數(shù)的增加而線性增加。實(shí)際運(yùn)行情況比這復(fù)雜,但都包絡(luò)在最大值范圍內(nèi),因此TFRM效果是可以接受的。 TLOP與插入查詢幀有關(guān),還需要考慮插入消息時(shí)間的影響。此時(shí)至少有1條是插入矢量字消息,因此時(shí)間最長(zhǎng)的插入消息時(shí)間是其余511條消息的總和。按每條消息800 μs計(jì)算,511條消息時(shí)間總和為408.8 ms。在主總線表和插入消息全部運(yùn)行的情況下,TFRM最大為29×3+34×2+0.1=155.1 ms,最大總線周期TBUS=155.1+408.8=563.9 ms。在主總線表只有1個(gè)RT矢量字且沒有查詢到消息請(qǐng)求時(shí),TBUS最小為3.1 ms。因此插入消息的運(yùn)行方式加上BCS干預(yù)和處理的時(shí)間開銷會(huì)導(dǎo)致TBUS產(chǎn)生波動(dòng)。 綜上,在具體程序設(shè)計(jì)時(shí),有兩種方法確定TLOP取值:一是TLOP=TFRM×n。n太小會(huì)因?yàn)橹骺偩€頻繁插入查詢幀和插入消息對(duì)TBUS的穩(wěn)定不利,太大又會(huì)影響對(duì)RT接入的時(shí)間延遲效果。二是為簡(jiǎn)化設(shè)計(jì)而取固定值。兩種方法可以結(jié)合使用,即根據(jù)不同條件(如總線流量的平均統(tǒng)計(jì)情況對(duì)TFRM的影響)在每次總線表重構(gòu)時(shí)動(dòng)態(tài)調(diào)整n值,而以5 s作為最大值保底。 BC總線表重構(gòu)過程是在CPU內(nèi)存中進(jìn)行的,不影響ACE中總線表的運(yùn)行。由于RT個(gè)數(shù)不同,消息需求不同,重構(gòu)過程所需要的時(shí)間是不確定的,與BC方CPU處理能力有關(guān)。 總線表重構(gòu)后加載到ACE中的過程時(shí)間一般為毫秒級(jí)。 由此可知,即插即用的RT識(shí)別周期和加載時(shí)間在條件確定時(shí)不會(huì)有大的差別,而總線表重構(gòu)時(shí)間是影響RT識(shí)別時(shí)間長(zhǎng)度的主要因素,在CPU處理能力確定的情況下,主要看重構(gòu)算法的優(yōu)化。 3.4.2 適用場(chǎng)景評(píng)估 主總線表重構(gòu)面臨的適用場(chǎng)景有兩種: 1)BC第一個(gè)加電運(yùn)行,然后從無(wú)到有,所有RT一一接入的過程。這種情況與地面測(cè)試、在軌飛行過程中的設(shè)備正常加電的過程一致,也是本協(xié)議的出發(fā)點(diǎn)。 2)有RT先加電運(yùn)行,當(dāng)BC加電運(yùn)行時(shí),一次可以查詢到多個(gè)RT同時(shí)接入。這種情況與系統(tǒng)復(fù)位(掉電)后,所有設(shè)備又同時(shí)上電工作的情況一致。 第2種情況下,BC處理與第1種情況在本質(zhì)上相同,只是在構(gòu)造完1個(gè)RT的總線表后,不是直接運(yùn)行,而是看是否還有第2個(gè)RT接入,即多RT接入過程一次性完成。為此總線表構(gòu)建過程將重復(fù)多次,看似冗余,但可以適應(yīng)任意RT數(shù)量和順序的接入。 SOIS架構(gòu)中,通過設(shè)備發(fā)現(xiàn)服務(wù)(Device Discovery Service,DDS[17])、設(shè)備枚舉服務(wù)(Device Enumeration Service,DES[18])、設(shè)備虛擬服務(wù)(Device Virtualization Service,DVS[19])和設(shè)備訪問服務(wù)(Device Access Service,DAS[20])可以構(gòu)建上層系統(tǒng)的設(shè)備即插即用,本文設(shè)計(jì)的1553B總線管理基礎(chǔ)功能模塊對(duì)它們的支持和銜接關(guān)系見圖4[21]。 圖4中上3層屬于SOIS的相關(guān)業(yè)務(wù)架構(gòu)。在收到RT EDS后,從CONSTRUCTBUS開始進(jìn)行總線表構(gòu)建,向下初始化總線INITBC,向上將RT EDS內(nèi)容(設(shè)備虛擬訪問信息和應(yīng)用EDS)報(bào)告給DDS。DDS依之建立上層邏輯地址與下層物理地址之間的映射關(guān)系,將應(yīng)用EDS上傳給DES,納入系統(tǒng)的管理信息數(shù)據(jù)庫(kù)(Management Information Base,MIB)中,提供給應(yīng)用層使用。 在系統(tǒng)運(yùn)行過程中,DVS根據(jù)應(yīng)用層的使用要求和虛擬設(shè)備地址,與DES提供的物理地址進(jìn)行匹配,然后交由DAS執(zhí)行對(duì)設(shè)備的訪問。 DAS訪問設(shè)備時(shí)可以使用存儲(chǔ)訪問服務(wù)(Memory Access Service,MAS[22])和包服務(wù)(Package Service,PS[23])兩種方式。這兩種服務(wù)都需要DDS提供下層1553B總線的具體訪問方式(地址和數(shù)據(jù)),使用取數(shù)(READDATA和READBC)和置數(shù)(WRITEDATA和WRITEBC)服務(wù)實(shí)現(xiàn)與BCS之間的數(shù)據(jù)傳遞。 DAS通過SETINSFLAG和ARRANGEMSG向BCS提出消息請(qǐng)求。BCS使用ARRANGEMSG服務(wù)和SKIPMSG服務(wù)安排主總線表消息上線和下線,使用插入消息INSMSG服務(wù)切換總線表,使用STOPBC和RUNBC服務(wù)來(lái)停止和啟動(dòng)總線的運(yùn)行。 圖4的系統(tǒng)架構(gòu)只有1553B總線一個(gè)子網(wǎng)。如果還有其他子網(wǎng),則系統(tǒng)需增加匯聚層協(xié)議,而圖4中BCS的數(shù)據(jù)發(fā)送和接收緩沖區(qū),READDATA、WRITEDATA和SETINSFLAG服務(wù)都將劃歸匯聚層協(xié)議。 本文的1553B總線即插即用解決方案試圖從由傳統(tǒng)的接入設(shè)備通過標(biāo)準(zhǔn)化接口適應(yīng)系統(tǒng)的設(shè)計(jì)思路,轉(zhuǎn)變?yōu)橛上到y(tǒng)對(duì)異構(gòu)和未知設(shè)備進(jìn)行自動(dòng)識(shí)別和配置,并構(gòu)建形成新的能力的思路。因此本方案在兼容已有的1553B總線通信協(xié)議(主要是ECSS-E-ST-50-13C)基礎(chǔ)上,只增加了初始握手部分的協(xié)議內(nèi)容,后續(xù)的正常通信過程和內(nèi)容交由通信雙方通過EDS交流的方式,建立起適應(yīng)性的通信關(guān)系。從效果評(píng)估看,時(shí)間特性可接受,能夠適應(yīng)實(shí)際使用場(chǎng)景,而且即插即用對(duì)RT方編程的改變僅在于要求其能夠一次性編輯形成自身的EDS,并按照握手協(xié)議將EDS傳遞給BC,其余可保持原有設(shè)計(jì)不變。 圖4 1553B總線BC與SOIS的服務(wù)銜接層次關(guān)系[21]Fig.4 Services of 1553B bus controller in SOIS architecture[21]2.3 即插即用的建立過程協(xié)議
3 即插即用1553B總線通信設(shè)計(jì)
3.1 標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
3.2 BC總線管理設(shè)計(jì)
3.3 總線表的構(gòu)建算法
3.4 總線表構(gòu)建適應(yīng)性評(píng)估
4 即插即用1553B的系統(tǒng)層次架構(gòu)
5 結(jié)論