章生平, 郭晶晶, 肖 軒, 康紀(jì)軍
(上海衛(wèi)星工程研究所 上海 200240)
MIL-STD-1553B[1]協(xié)議是20世紀(jì)70年代美空軍面向總線通訊鏈路層制定的時分多路串行數(shù)據(jù)總線協(xié)議,由于該協(xié)議針對鏈路層制定了一套故障診斷機制[2],能夠很好地滿足空軍戰(zhàn)斗機艙內(nèi)數(shù)據(jù)通訊并且在空軍應(yīng)用反響良好,故后來被移植到航天器產(chǎn)品中,廣泛應(yīng)用于各類衛(wèi)星、導(dǎo)彈。DDC公司在1553B協(xié)議上開發(fā)了一系列的集成芯片ACE[3],封裝了總線底層協(xié)議、信號驅(qū)動,并設(shè)計了一套面向應(yīng)用層協(xié)議的數(shù)據(jù)和控制接口,大大降低了使用者的開發(fā)難度,使得用戶界面比較友好。目前國內(nèi)航天產(chǎn)品大量使用DDC公司的1553B總線集成芯片,其他廠商開發(fā)的芯片產(chǎn)品也大多兼容DDC公司的總線芯片。
1553B協(xié)議制定了一套鏈路層通訊故障檢測機制,如檢測消息格式錯誤、校驗錯誤、消息間隔及響應(yīng)時間等。DDC芯片對底層鏈路協(xié)議封裝后,除了完成硬件電平信號的驅(qū)動通訊[4],還面向應(yīng)用層用戶,增加了多模式配置、堆棧與消息緩存分配、消息控制配置、中斷配置,并對消息故障增加了自動化的處理機制,包括故障中斷、故障重試等功能,從而為用戶提供了一種靈活、開放的使用接口。
鑒于航天型號高可靠的特點,在工程上必然要求總線通訊系統(tǒng)高可靠,除了1553B鏈路協(xié)議及其DDC芯片針對鏈路層信號的編碼特性、消息時序特性采取故障與檢測可靠性機制外[5],我們還需從應(yīng)用層協(xié)議出發(fā),結(jié)合航天型號總線數(shù)據(jù)傳輸特點及DDC器件特性進(jìn)行應(yīng)用層協(xié)議的可靠性設(shè)計研究[6],提出一種適合航天器應(yīng)用特性的可靠性規(guī)則和機制,彌補僅依靠鏈路層協(xié)議帶來的可靠性不足,真正確保應(yīng)用總線數(shù)據(jù)的可靠傳輸和處理。
圖1 1553B總線架構(gòu)Fig.1 1553B bus architecture
為了保證航天器產(chǎn)品中1553B總線通訊的可靠性,遵從時分多路、命令控制總線宗旨,總線應(yīng)用傳輸采取靜態(tài)分時的主從式總線控制方式,任何總線通訊由總線控制器BC(Bus Controller)控制器發(fā)起組織,其他RT(Remote Terminal)不能獲取總線控制權(quán)[7,8]。在總線控制時序上,BC按照預(yù)定時間周期和策略進(jìn)行總線通訊的查詢和傳輸執(zhí)行,不提倡總線控制時序的多進(jìn)程插入、并發(fā)通訊任務(wù),打斷既有總線通訊消息次序。圖1是1553B總線架構(gòu)的框圖。
航天器總線是面向多終端的系統(tǒng),系統(tǒng)先在應(yīng)用層面上對通訊的需求進(jìn)行統(tǒng)計分析,把各方的信息類型歸并為相似的種類。這樣系統(tǒng)用戶可以按照消息種類進(jìn)行操作通訊,簡化了BC控制端的實現(xiàn)復(fù)雜度。圖2是以日常生活為例說明航天器總線通訊需求的示意圖。
航天器上要求使用統(tǒng)一規(guī)格的芯片,盡量采購?fù)粡S家或同一型號產(chǎn)品,當(dāng)前要求航天器上總線芯片的鏈路協(xié)議遵守DDC公司的ACE規(guī)范。只有統(tǒng)一了器件,才能在鏈路協(xié)議的基礎(chǔ)上根據(jù)型號需要制定應(yīng)用層的總線協(xié)議。DDC公司的ACE芯片支持冗余總線,滿足航天器數(shù)據(jù)高可靠傳輸?shù)囊?。航天器星?nèi)總線通訊一般選用雙冗余總線架構(gòu)。
圖2 航天器總線通訊需求示意圖Fig.2 The schematic diagram of bus communication demand in spacecrafs
航天器內(nèi)部總線通訊終端數(shù)量少則幾個,多則數(shù)十個,這些終端來自于不同儀器,且各自的任務(wù)運行模式不盡相同,如何協(xié)調(diào)所有終端按照一種可確定、可預(yù)計的通訊時序工作,關(guān)系到總線通訊系統(tǒng)的穩(wěn)定和安全。本文采用基于靜態(tài)分時的主從式總線控制原則,即航天器主控單元BC按照總體需求確定最小工作周期,合理設(shè)置總線控制周期內(nèi)的通訊內(nèi)容,定時、周期性地組織總線通訊。
每個總線控制周期可以包含多種具體的總線通訊消息類型,但需按照先后次序進(jìn)行靜態(tài)排列分配,周期內(nèi)各消息之間設(shè)置固定靜態(tài)間隔從而保證消息類型的隔離[9]。對于總線通訊的靜態(tài)周期時序,每一類消息的前后消息類型以及相對周期的起始時間點都是確定的,而且具有周期重復(fù)性。在航天器測試中,采取靜態(tài)周期時序控制方法,對于整星總線時序測試覆蓋性比較有利,而且較容易查找與復(fù)現(xiàn)問題,工程上也簡化了總線通訊功能的需求設(shè)計和實現(xiàn)。圖3為靜態(tài)分時通訊情況下總線周期的控制流程。
周期性總線時序控制的常規(guī)實現(xiàn)途徑是BC控制器軟件根據(jù)具體周期內(nèi)的通訊需求條件來確定具體的通訊種類和通訊數(shù)量。其中某些通訊的消息類型、通訊的數(shù)據(jù)量根據(jù)實時狀態(tài)可能存在動態(tài)選擇、動態(tài)配置的要求。這種每個周期幀內(nèi)具體消息的配置還需控制軟件進(jìn)行參與決策。
另外一種實現(xiàn)途徑是利用芯片特性來實現(xiàn)消息幀自動重復(fù)(frame auto-repeat),這種方式的前提是每個周期的通訊消息類型、數(shù)量完全確定且相同。DDC公司的ACE芯片支持消息幀自動重復(fù)功能,一旦確定幀內(nèi)消息及時序,那么總線幀啟動后按照已確定的總線通訊時序和通訊內(nèi)容周期性重復(fù)通訊傳輸。這種總線通訊方式需通過內(nèi)部定時器時間觸發(fā)或者外部信號的觸發(fā)方式實現(xiàn)對ACE的一次性配置,從而保證幀周期性執(zhí)行,主控軟件僅參與響應(yīng)幀正常結(jié)束后進(jìn)行的總線數(shù)據(jù)的讀寫更新。軟件也可以響應(yīng)幀自動重復(fù)過程中異常錯誤狀態(tài),及時消除錯誤并重新啟動。
圖3 靜態(tài)分時通訊控制流程Fig.3 Static time-division communication control process
航天器1553B的總線應(yīng)用層協(xié)議要求各RT采用中斷響應(yīng)機制,及時按照預(yù)設(shè)定的通訊中斷需求進(jìn)行任務(wù)處理,滿足通訊實時性操作要求。事實上收發(fā)雙方終端的硬件和軟件在處理時均需要耗時,采用中斷響應(yīng)機制需對消息類型的時序間隔進(jìn)行設(shè)計,滿足收發(fā)雙方的工作時序匹配度[10,11]。為了保證各終端RT對中斷的響應(yīng)和處理有充足時間,總線應(yīng)用協(xié)議規(guī)定針對同一個RT的兩類不同消息的傳輸間隔或同一類消息的前后兩次傳輸間隔應(yīng)保證不小于預(yù)定時間(例如5ms)。圖4舉例說明了中斷響應(yīng)及消息間隔的設(shè)計流程。
此外,在工程實踐中,某些終端由于自身的任務(wù)特性,雖然硬件上采取中斷響應(yīng)方式,但是在其自身的工作任務(wù)時序中,某些階段做不到實時響應(yīng)。例如對于某些載荷,因在成像期間不能被打斷而需要屏蔽總線中斷,相應(yīng)地總線需適應(yīng)該RT的最長延遲響應(yīng)時間,放慢消息節(jié)拍。當(dāng)個別RT終端無法實現(xiàn)中斷實時響應(yīng)時,只能采取中斷接收查詢訪問方式??偩€應(yīng)用協(xié)議中規(guī)定,靜態(tài)消息周期應(yīng)大于該RT終端的查詢訪問周期,否則在一個RT查詢周期內(nèi)可能發(fā)生多次BC主控通訊周期,導(dǎo)致同類型消息發(fā)生多次通訊,如RT終端接收緩存中的數(shù)據(jù)在未被取走的情況下被覆蓋,或RT終端發(fā)送緩存中的數(shù)據(jù)未更新卻被重復(fù)傳輸。
圖4 中斷響應(yīng)及消息隔離的設(shè)計流程Fig.4 Design process of interrupt response and message isolation
總線應(yīng)用層協(xié)議需要規(guī)定RT傳輸請求機制,實現(xiàn)RT終端的數(shù)據(jù)傳輸請求及傳輸后處理。1553B標(biāo)準(zhǔn)協(xié)議中通過設(shè)置矢量位為“1”來表示傳輸請求,由BC查詢后組織相應(yīng)的數(shù)據(jù)傳輸。為了保證數(shù)據(jù)傳輸?shù)目煽啃裕苊馔瑫r讀寫等訪問沖突,在應(yīng)用層協(xié)議中規(guī)定BC/RT的矢量握手操作流程,主要分成中斷響應(yīng)清除矢量握手和查詢響應(yīng)自動清除矢量握手這兩種BC/RT矢量響應(yīng)機制。圖5為矢量訪問狀態(tài)轉(zhuǎn)移圖。
2.3.1 中斷響應(yīng)機制的矢量握手
采取中斷響應(yīng)機制,在時序上,主控BC訪問矢量字消息后,RT終端立即響應(yīng)矢量消息并清除矢量字請求信息。主控BC根據(jù)訪問到的矢量字信息組織對應(yīng)有需求的總線完成通訊傳輸。RT終端響應(yīng)矢量字對應(yīng)的每一類通訊傳輸后,再根據(jù)自己的工作時序填入更新后的傳輸數(shù)據(jù),重新設(shè)置矢量請求,請求下次傳輸。圖6為中斷響應(yīng)機制下的矢量握手流程。
圖5 矢量訪問狀態(tài)轉(zhuǎn)移圖Fig.5 Vector access state transition diagram
圖6 中斷響應(yīng)機制的矢量握手流程Fig.6 Interrupt response mechanism of the vector handshake process
2.3.2 查詢響應(yīng)機制的矢量握手
對于RT終端采取查詢方式的通訊,協(xié)議上增加一種狀態(tài)字服務(wù)請求操作,即矢量字的每一位數(shù)據(jù)“或”的結(jié)果作為狀態(tài)字的服務(wù)請求位,表示RT終端是否存在矢量服務(wù)請求。主控BC在周期時序中先訪問RT終端的服務(wù)請求,如有服務(wù)請求則讀取矢量字消息,根據(jù)矢量信息中的請求位組織相關(guān)消息的傳輸。RT終端使用狀態(tài)字服務(wù)位請求機制后,需要再配置成RT自動清除狀態(tài)字服務(wù)請求位,當(dāng)主控BC讀取矢量字后,ACE芯片自動清除狀態(tài)字中服務(wù)請求位,即以ACE芯片硬件響應(yīng)措施來實現(xiàn)RT終端查詢機制下終端快速響應(yīng)握手。即使RT采用定期查詢方式的總線通訊,由于狀態(tài)字服務(wù)請求位被清除,主控BC不會再次取矢量字消息內(nèi)容,也就不會重復(fù)傳輸矢量字對應(yīng)的消息。需要注意的是,啟用狀態(tài)字服務(wù)請求功能時BC端應(yīng)屏蔽狀態(tài)字服務(wù)請求位的置位引起的重試操作。圖7為查詢響應(yīng)機制的矢量握手流程。
圖7 查詢響應(yīng)機制的矢量握手流程Fig.7 The query response mechanism of the vector handshake mechanism
在航天器工程上,還需考慮矢量握手機制本身的可靠性。當(dāng)BC/RT矢量握手在實際通訊中的某個環(huán)節(jié)出現(xiàn)錯誤而導(dǎo)致狀態(tài)條件無法循環(huán)時,矢量握手機制將處于死鎖。為了解決該問題,要求RT終端在一定時間段內(nèi)對矢量請求設(shè)置進(jìn)行自檢,若矢量請求信息被清除而數(shù)據(jù)通訊未完成執(zhí)行,則重新提起矢量請求。
MIL-STD-1553B鏈路層協(xié)議規(guī)定了比較完備的故障檢測和診斷機制,協(xié)議架構(gòu)上支持總線采用冗余總線通道以提高鏈路可靠性。ACE芯片向用戶提供一種通訊故障重試機制,由ACE芯片自動檢測通訊中的故障消息并自動重試消息通訊。用戶只需要將ACE設(shè)置為重試允許,并設(shè)置重試的次數(shù)、總線選擇及故障條件類型。ACE芯片協(xié)議還可以對重試動作的狀態(tài)信息進(jìn)行次數(shù)記錄,并產(chǎn)生中斷便于用戶捕獲。在制定航天器總線通訊應(yīng)用層協(xié)議中需規(guī)定是否啟用總線故障重試機制,明確哪些通訊類型采用重試以及重試次數(shù)和總線重試通道選擇,以便于BC和RT雙方理解一致。RT終端則相應(yīng)配置為支持總線重試,并設(shè)置成“允許覆寫無效消息”,確保重試消息通訊時緩存指針保持在當(dāng)前消息存儲位置。
總線重試機制依賴于ACE芯片對通訊故障的檢測診斷,當(dāng)消息傳輸類型為廣播時,不能實施總線重試通訊機制。這是因為總線廣播通訊方式不指定具體接收終端,不需要終端返回消息狀態(tài)字,因此BC端不能通過獲取狀態(tài)字對通訊故障進(jìn)行檢測。另外,RT2RT傳輸類型且采用循環(huán)緩存的總線通訊也不能使用總線重試機制,這是由1553B主從式總線特性決定的。RT2RT通訊需BC參與控制,相當(dāng)于RT->BC->RT的復(fù)合通訊,BC與一個RT通訊故障后發(fā)生重試,而另外一個RT狀態(tài)字反饋正常,那么該RT不認(rèn)為有重試消息,其循環(huán)緩存指針會繼續(xù)往下走,從而導(dǎo)致收發(fā)的數(shù)據(jù)不一致。
ACE芯片面向用戶提供一種類似實時脈沖同步信號的同步機制,只不過“脈沖信號”是1553B的“系統(tǒng)同步命令”消息。RT終端則需要配置成允許系統(tǒng)同步本地1553時間計時器,并相應(yīng)地設(shè)置RT計時器分辨率。當(dāng)RT終端接收到系統(tǒng)同步命令后,芯片硬件自動進(jìn)行本地時間的同步(系統(tǒng)同步命令不帶參數(shù)則同步計時器從0開始,系統(tǒng)同步命令帶參數(shù)則同步計時器從接收參數(shù)開始計時)。
圖8 總線通訊同步處理流程Fig.8 Synchronization process of bus communication
當(dāng)總線系統(tǒng)需要主控BC與RT終端的時間系統(tǒng)進(jìn)行校準(zhǔn)維護(hù)時,可以采取系統(tǒng)同步方式,它能夠比較精確地測量出從BC端發(fā)送系統(tǒng)同步命令到RT接收處理讀命令之間的時間延遲,從而在RT本地時間校準(zhǔn)時扣除這一時延量。圖8為總線通訊實時性同步處理流程。
需要注意的是,利用系統(tǒng)同步命令的同步控制方受系統(tǒng)同步命令消息的自身傳輸時延影響,最終實際的時鐘精度是有限制的,但能夠滿足十微秒量級的常規(guī)精度要求,若需要更精確的同步還應(yīng)該設(shè)計專門的校時同步電路。
航天器1553B總線應(yīng)用的電磁環(huán)境比較惡劣,尤其是受到空間輻射影響,導(dǎo)致數(shù)據(jù)通訊受干擾而發(fā)生錯誤和異常。目前DDC等廠家提供的ACE芯片中緩存為4K/8K×16的SRAM,這些緩存沒有相關(guān)的抗單粒子翻轉(zhuǎn)EDAC等措施,緩存上的消息命令和數(shù)據(jù)可能出現(xiàn)單粒子翻轉(zhuǎn)錯誤。在通訊時,1553B鏈路層協(xié)議的固有可靠性機制無法檢測出這種數(shù)據(jù)源上的錯誤。用戶在總線應(yīng)用層協(xié)議中規(guī)定各方使用的重要類型消息(注數(shù)、指令、軌道參數(shù)等)采取時序握手、信息反饋、校驗判斷等措施,確保重要數(shù)據(jù)在最終使用前被檢查確認(rèn),而且將檢查確認(rèn)的結(jié)果下傳地面,使得地面能夠觀察到重要數(shù)據(jù)在通訊鏈路上傳輸?shù)恼_性狀態(tài)。本文初步制定了以下三條原則:
①周期性發(fā)送的重要數(shù)據(jù)和命令,只需檢出錯誤并等待下次正確通訊;
②突發(fā)傳輸?shù)闹匾獢?shù)據(jù)和命令,接收方需反饋接收成功標(biāo)志,若不成功則再次組織傳輸通訊;
③具有時序和發(fā)送時機的重要數(shù)據(jù)命令,收發(fā)雙方應(yīng)約定起始點,握手成功后才能繼續(xù)數(shù)據(jù)命令的傳輸通訊。
1553B總線通訊在航天器上是平臺命令與數(shù)據(jù)交換的核心媒介,由于空間應(yīng)用環(huán)境復(fù)雜,總線驅(qū)動芯片或者總線電纜介質(zhì)都可能存在故障,而1553B總線應(yīng)用數(shù)據(jù)內(nèi)容可靠度要求比較高,因此我們需要對總線通訊進(jìn)行定期故障檢測與維護(hù),及時發(fā)現(xiàn)通訊故障,采取相應(yīng)的故障修復(fù)措施。根據(jù)航天器使用環(huán)境和總線芯片特點在總線應(yīng)用協(xié)議上加入故障維護(hù)的可靠性設(shè)計措施,加強總線通訊可靠性。具體措施有:
①要求RT按照BC同步消息進(jìn)行本地同步維護(hù),包括緩存指針初始化、ACE配置初始化以及矢量請求設(shè)置的一致性檢查確認(rèn);
②要求RT進(jìn)行自主守時維護(hù),一定期限內(nèi)若無總線通訊(或其他周期性類型消息),則自主進(jìn)行本地總線ACE初始化維護(hù)(器件復(fù)位、重新配置RT參數(shù));
③BC定期對各終端進(jìn)行測試維護(hù)通訊,包括協(xié)議芯片的自測試和應(yīng)用層的長抱環(huán)測試,要求RT進(jìn)行應(yīng)答回復(fù),自測試結(jié)果和長抱環(huán)測試結(jié)果都下傳地面;
④BC定期對各終端的收發(fā)數(shù)據(jù)通訊、測試維護(hù)通訊結(jié)果進(jìn)行分析,一旦發(fā)現(xiàn)與外部所有RT終端通訊異常,則對BC自身ACE器件進(jìn)行初始化維護(hù)(器件復(fù)位、重新配置BC狀態(tài)參數(shù))。
本文結(jié)合總線驅(qū)動集成芯片協(xié)議,在工程應(yīng)用經(jīng)驗基礎(chǔ)上,針對總線應(yīng)用層協(xié)議可靠性設(shè)計提煉出一套適應(yīng)航天使用的規(guī)則和措施,有助于航天器總體設(shè)計制定一個可靠的1553B總線通訊系統(tǒng)??偩€可靠性設(shè)計思路來源有兩個,一是現(xiàn)有總線產(chǎn)品要滿足空間應(yīng)用環(huán)境需求;二是借鑒常規(guī)數(shù)字通訊系統(tǒng)協(xié)議分層原理,在應(yīng)用層協(xié)議中進(jìn)行可靠性設(shè)計。十多顆在軌型號的使用驗證表明,對總線系統(tǒng)應(yīng)用層協(xié)議進(jìn)行可靠性設(shè)計行之有效,能夠減少通訊錯誤,及時檢測和發(fā)現(xiàn)錯誤,并且解決錯誤恢復(fù)正常。在實際應(yīng)用過程中,靜態(tài)分時控制、收發(fā)握手、故障重傳等可靠性機制,在保證總線通訊可靠性的同時,也在一定程度上造成了總線通訊資源的浪費,降低了總線通訊的傳輸效率,但由于航天器更關(guān)注產(chǎn)品工作可靠性,所以這些代價是值得的。
[1]MIL-STD-1553 Protocol Tutorial[S].Condor Engineering,Inc.2004.
[2]DDCMIL-STD-1553B Designer SGuide[S].USA,1998.
[3]DDC BU-65170/65180 and BU-61585[M].USA,1999.
[4]DDC.Processer-to-ACE Interfaces[M].USA,1999.
[5]DDC.MIL-STD-1553 Designer's Guide[M].USA,2003.
[6]DDC.Underdatnding the ACE's Self Test Capabilities[M].USA,1999.
[7]DDC.Electrical and Layout Considerations for 1553B Terminal Design[M].USA,1999.
[8]DDC.ACE RTManagement Options[M].USA,1999.
[9]趙昶宇,顏昌翔,于 平.1553B總線上消息的實時調(diào)度[J].光學(xué)精密工程,2010,18(3):732~740.Zhao Changyu,Yan Changxiang,Yu Ping.Real-time Scheduling of Message on 1553B Bus[J].Optics and Precision Engineering,2010(3):732-740.
[10]代 霜,王 槐,徐抒巖.1553B總線通訊的可靠性設(shè)計[J].光機電信息,2010,27(9):52~58.Dai Shuang,Wang Huai,Xu Shuyan.Communication Software Reliability Design of 1553B Bus[J].OME Information,2010,27(9):52 ~58.
[11]郭澤仁.1553B總線系統(tǒng)優(yōu)化及可靠性設(shè)計[J].山東理工大學(xué)學(xué)報(自然科學(xué)版),2008,22(1):67~70.Guo Zeren.The Optimization and Reliability Design for 1553B Data Bus[J].Journal of Shandong University of Technology(National Science Edition),2008,22(1):67 ~70.