?

一種時間同步1553B總線通信協議RT突發數據發送控制方法

2021-10-08 02:22周凡卉楊培堯張紅軍
計算機測量與控制 2021年9期
關鍵詞:程控通信協議總線

蘭 天,周凡卉,楊培堯,張紅軍,余 晟

(北京空間飛行器總體設計部,北京 100094)

0 引言

1553B總線網絡由1個總線控制器(BC)與若干個RT共同構成,網絡中的所有通信均由BC發起[1]。自20世紀70年代末以來,由于其高可靠性,1553B總線已在航空、航天等多個領域得到了廣泛的應用。但在美軍標中只規定了1553B總線數據鏈路層接口協議,沒有對更高層通信做出規定。傳統航天器需針對BC與RT間的消息傳輸方式、內容進行個性化設計,雖能滿足不同飛行任務的需求,但在協議協調、軟件設計、測試驗證上需花費大量的精力,且不利于通用化發展。

隨著航天器任務日益復雜,這種個性化設計方式花費的代價對研制流程造成的影響越來越大。為解決這一問題,歐洲空間標準化組織發展出一種時間同步1553B總線通信協議[2],該協議在應用層與數據鏈路層之間建立了通用化的通信、同步接口,能夠有效統一、簡化總線接口配置。該協議將BC、RT間的數據通信抽象提煉成5種服務,并用原語方式說明了信息交換格式與時序安排,給出了RT子地址分配、使用的建議。該協議實現了BC、RT總線接口的通用化,通過時間同步簡化了BC、RT間握手方式,為總線上各用戶數據吞吐量和最壞服務延遲提供了有效保證,已在我國多顆智能遙感衛星綜合電子系統中得到了應用[3-7]。

在時間同步1553B協議應用過程中,也遇到了一些新問題,RT并發數據傳輸控制就是其中之一。在傳統總線通信協議中,通常為不同數據項開辟多個子地址,按照數據項產生順序提服務請求,發出數據傳輸申請。而在時間同步1553B總線通信協議中,突發性數據和長周期數據需復用數據塊傳輸服務,共享同一發送通道。隨著航天器智能化水平的提升,RT產生的數據量大幅攀升,存在短期并發大量數據、需多次數據塊傳輸發出的場景。若按傳統方式進行傳輸,大數據量的遙測數據可能堵塞與程控相關的緊急消息,影響航天器程控動作實時性。因此如何合理調度RT并發數據,確保緊急消息的發送時延可控,是航天器軟件設計的重要課題。

當前國內外針對1553B總線資源調度的研究多圍繞BC展開,少有涉及RT[8-13]。而僅靠BC的資源調度,不能完全解決RT的并發數據發送問題。因此,本文提出了一種時間同步1553B總線通信協議的RT突發數據發送控制方法。首先按照RT并發數據的時間敏感性進行優先級劃分,然后采用兩級“生產者-消費者”模型[14-17],在并發數據源與總線通道之間引入總線組幀緩存區??偩€組幀緩沖區“消費”并發數據,“生產”出按優先級組織的總線傳輸幀。本文設計的RT突發數據控制方法,能夠大幅提升單次數據塊傳輸的帶寬利用率,并為緊急消息的實時傳輸提供保障。

1 時間同步1553B總線協議下的RT數據發送

時間同步1553B總線通信協議在總線通信中的作用方式如圖1所示。從圖1中可見,協議將應用層與數據鏈路層間的接口抽象為5種服務,分別為:時間同步、通信同步、置數/取數、數據塊傳輸、終端管理等。這些服務可滿足航天器使用的所有情況,如單消息傳輸、循環緩存傳輸、服務請求、廣播等。5種服務間存在依存關系,通信同步服務是整個時間同步1553B總線通信協議的基礎。

圖1 時間同步1553B總線通信協議中各服務的位置和服務間關系示意

時間同步協議以時間同步周期為單位對總線帶寬進行量化,并以通信幀為單位對每個時間同步周期內的帶寬資源進一步細分,如圖2所示。通信幀是一段時間內總線上允許傳輸的消息集合,一個時間同步周期內含有多個規劃內容不同的通信幀,通信幀與星上時間、BC軟件周期同步。在每個通信幀開始,BC首先通過總線以廣播方式向各RT終端發送幀同步。幀同步后的帶寬資源分為預分配帶寬和自由帶寬,預分配帶寬排在幀同步之后,自由帶寬排在預分配帶寬之后。預分配帶寬內的總線通信必然發生,自由帶寬內的總線通信可能發生。

圖2 時間同步1553B總線通信協議中典型通信幀分解示意

時間同步1553B協議提供的5種服務中,通信同步、時間同步、置數/取數、終端管理等4種服務在預分配帶寬內傳輸;數據塊傳輸服務在自由帶寬內傳輸。對預分配帶寬內的數據傳輸,可通過基于通信同步服務的錯幀操作避免BC、RT間的讀寫沖突,不需要傳統總線協議中的握手消息和相應的中斷觸發配置;對自由帶寬內的數據傳輸,需要額外的握手消息。

RT通過數據塊傳輸服務向外發送數據塊的過程為:

1)RT檢測確認發送通道為“空閑”狀態時,將待發數據塊寫入數據塊發送子地址;

2)RT向數據塊獲取服務握手發送子地址(SA 28T)寫入獲取傳輸申請(ATR)。同時,RT將發送通道狀態設為“占用”,并啟動數據塊獲取超時檢測;

3)BC通過查詢方式查得ATR,在自由帶寬內完成獲取數據塊動作。完成數據塊獲取后,BC根據獲取結果向RT的數據塊獲取服務握手接收子地址(SA 28R)中寫入獲取傳輸確認(ATC);

4)RT接收到ATC或等待超時后,清除ATR,并將發送通道標識設為“空閑”。

從上述數據發送過程可見,在發起一次數據傳輸后,為避免讀寫沖突導致的通信失敗,RT在傳輸過程中無法追加數據。在RT軟件出現突發性數據、長周期數據的并發工況時,數據項之間存在對數據發送通道的競爭。

傳統1553B協議的處理方法是為不同的數據項設計不同的發送子地址,通過提服務請求的順序控制數據項發送順序。雖能保證突發數據的傳輸實時性,但所花費的軟件代價更大、總線帶寬利用率也較低。且當待發數據項種類增長到一定水平時,受限于總線芯片發送子地址數量約束,該方法會出現功能瓶頸。

在時間同步1553B總線通信協議中,RT外發數據有兩種方式:取數服務和數據塊傳輸服務。取數服務使用預分配帶寬,擁有可預期的最大傳輸時延;數據塊服務使用自由帶寬,傳輸時延不確定,但可通過系統級總線規劃在一個時間同步周期內為某RT分配確定的數據塊傳輸機會。數據塊傳輸服務對發送子地址進行了通用化設計,不再將子地址跟特定數據項綁定在一起。在總線芯片中,通過為數據塊獲取服務分配多個平鋪的發送子地址或為單個發送子地址開辟大循環緩存的方式,能夠獲得比傳統1553B總線通信協議更大的單次數據傳輸能力。在每次發送總線消息前,向發送緩存中依次填入多個數據項,并通過ATR對這些數據項的總長度進行描述。這種處理方法提升了單次數據的傳輸效率,但沒有給出確保需多次數據塊傳輸的并發數據中緊急消息發送時延的方法。

隨著衛星綜合電子系統智能化水平的提升,RT設備更強的計算能力使其承擔了更多的功能,造成RT需外發的數據量大幅上升。RT方發出的數據項可分為周期與突發兩類,突發數據項采用數據塊傳輸服務,周期數據項需進一步考慮周期長短。數據項周期若小于或略大于時間同步周期,應在預分配帶寬內以取數服務進行傳輸;若遠大于時間同步周期,應在自由帶寬內以數據塊傳輸服務傳輸。按照數據特點,可將采用數據塊傳輸服務的數據分為三類。

1)數據突發產生、數據量小、對時間很敏感,如星箭分離等會觸發程控的緊急消息;

2)數據周期產生、周期長、數據量大,對時間較敏感,如衛星溫度統計數據;

3)數據突發產生、對時間不敏感,如軟件自主處置故障后產生的健康事件報告。

針對上述并發數據量大、產生周期多種多樣、對時延敏感度不同的特點,在時間同步1553B總線通信協議基礎上進行了改進:

1)數據集中調度,提升對單次數據塊傳輸服務的帶寬利用率;

2)按優先級發送,將時間敏感的緊急消息設為高優先級,實時遙測判讀數據設為中等優先級,延時遙測回查數據設為低優先級。在發送時,按照優先級從高到低發送數據。

2 基于兩級“生產者-消費者”模型的RT突發數據發送控制方法

2.1 基于映射關系的數據集中調度

按照“數據集中調度”的設計思路,本文采用“生產者-消費者”模型進行RT并發數據調度設計。以某RT軟件為例,為其數據傳輸需求建立“生產者-消費者”模型,如圖3所示。

圖3 兩級“生產者-消費者”模型示意圖

解決RT端數據發送問題的關鍵在于如何協調產生周期性數據的進程、產生突發性數據的進程與總線發送進程之間的關系,通過合理調度發送順序、組織單次發送內容,實現對BC分配給本RT通信帶寬的充分利用,快速、高效完成數據傳輸。

“生產者-消費者”模型是解決有限緩存約束下多進程同步問題的經典模型,該模型描述了共享緩沖區的進程間,即“生產者”和“消費者”,在運行時的讀寫沖突問題。該模型有兩個設計重點:一是協調“生產者”、“消費者”間對緩存的互斥操作,以保證數據完整性;二是緩存區滿時“生產者”不應繼續添加數據。

從圖3中可見,在第1級“生產者-消費者”模型中,軟件各進程作為“生產者”,以CCSDS標準空間包格式生成待發數據項,并緩存在本進程的內部緩存中;總線組幀緩存作為“消費者”,將不同進程緩存中的數據項組織成幀,組幀緩存大小與單次數據塊傳輸能力相匹配??偩€組幀緩存按照固定優先級順序組織,序號越小、優先級越高。

將RT待發數據分為高、中、低3個優先級,不同優先級的數據源對應固定范圍的組幀緩存區。高優先級緩存對應初始化、程控A、程控B、程控C等進程,這幾個進程的數據特點是突發性產生數據、數據量小、時間敏感度高,且部分數據有分多次發送的約束。中等優先級緩存對應溫度統計、占空比統計等進程,這兩個進程的數據特點是周期性產生數據、周期長、數據量大、時間敏感度較高,地面希望在數據產生時能通過實時遙測完成監視。低優先級緩存對應事件報告、自主健康、內存讀出等進程。這些進程的數據特點是突發性產生數據、數據量不固定、時間敏感度低,地面不需要實時判讀相關數據項,但要求可通過延時遙測進行數據回查。

在應用層,對部分數據發送方式有特殊約束,如程控A、B、C進程產生的事件包能夠觸發BC后續程控操作,為確??煽坑|發BC相關程控,要求每個關鍵事件要傳輸三次事件報告,且三次事件報告需分別發送。針對這種個性化發送約束,在進程緩存與組幀緩存之間,按照優先級建立映射關系。軟件更新一個組幀緩存內容時,按照映射關系遍歷與之對應的進程緩存區,將其中所有待發數據項組織成一個總線傳輸數據項,提升單次數據塊傳輸帶寬利用率。例如:針對高優先級數據,組幀緩存2映射了程控進程A的事件A1、程控進程B的事件B1和程控進程C的事件C1等3個數據項。在這3個關鍵事件同時發生時,通過本文設計的方法能夠將關鍵事件的緊急消息分別組織進緩存2、3、4中,并按照順序通過三次數據塊傳輸發送給BC。

2.2 基于優先級的數據發送控制

在第1級“生產者-消費者”模型中完成對待發數據項基于映射關系的集中調度后,第2級模型以總線發送控制模塊為“消費者”,采用基于優先級的發送策略,將總線組幀緩存內的數據幀逐次發送出去。發送控制流程如圖4所示:

圖4 RT方數據發送控制流程

1)RT首先檢測數據發送通道是否可用,若通道為占用態,結束本次控制;若通道可用,繼續后續檢測;

2)順序輪詢按照優先級排序的總線組幀緩存,將輪詢到的第一項待發數據拷貝到總線芯片數據塊發送子地址中,并釋放該總線組幀緩存;

3)更新數據塊發送握手消息ATR,設置發送通道為占用態。

從上述步驟可見,該方法能在發送通道為空閑時將總線組幀緩沖區中優先級最高的數據幀發出。在緊急消息產生時,若RT方發送通道為空閑狀態,相應緊急消息能馬上發出;若RT方發送通道為占用態,相應緊急消息能在發送通道恢復空閑后馬上發出。采用本方法發送涉及程控的關鍵事件時,最大傳輸延遲為本RT對應的兩次相鄰數據塊傳輸的間隔。

在本文設計的發送控制方法中,臨近資源有兩類:1)總線組幀緩存區;2)總線芯片數據塊發送用RAM區。對總線組幀緩存區,通過總線組幀邏輯與總線發送控制邏輯的順序運行,避免讀寫沖突;對總線芯片數據塊發送用RAM區,通過發送通道“占用”標志避免讀寫沖突。

3 試驗結果及分析

在智能化敏捷遙感衛星的綜合電子系統上,對本文提出的RT突發數據發送控制方法進行了驗證試驗[18-21]。將總線消息組織、傳輸耗時與消息間隔等考慮在內,一條32字消息在1 Mbps速率的1553B總線上傳輸耗時約為1 ms??紤]現有RT常用總線芯片的堆棧大小(64條消息),設定協議中通信幀長度為50 ms,時間同步周期為1 s,每個時間同步周期含20個通信幀。RT方設置由幀同步觸發1553B總線中斷,即使一個通信幀內只與一個RT通信,亦不會發生堆棧溢出。BC采用最高效服務質量(Qos)數據獲取方式,在該方式的獲取時序下每3幀完成從RT采集一個數據塊的動作??偩€上只有本RT產生數據塊獲取申請,RT端單次數據塊傳輸最大發送能力1 024字節。

試驗中測試了3個工況:工況1中多個程控事件同時發生;工況2中多個程控事件按照一定時間順序發生,一個程控事件先發生,另外兩個程控事件在第一個程控事件的第1條消息寫入總線芯片時發生;工況3中一個程控事件在統計數據發送過程中發生。其中,每個程控事件分別產生3個事件包,每個包長度8字節,對3個包有分次發送要求。工況3中的統計數據一次性產生6個統計包,每個包長1 000字節,關鍵事件在統計包產生50 ms后產生。由于通過外部測試設備難以穩定觸發3個測試工況的時序,為各工況分別開發了測試版本軟件,通過軟件內部定時器觸發相應的時序。

在3個工況下,將本文設計的發送控制方法與傳統發送方法進行比較。在傳統發送方法中,按照數據項產生順序發送數據,不對數據項進行拼幀操作,每次發送一個獨立的數據項。通過1553B總線監視設備判讀消息發送情況。針對各工況進行多次測試,對比了在兩種方法控制下各程控事件對應的第一個數據項發出時間、各程控事件對應的最后一個數據項發出的時間及所有程控事件完成傳輸的總傳輸次數,結果如表1所示。

從表1可見,在多次測試中,由于BC、RT軟件的時序不完全同步,觀察到的時間有一定波動。在傳統發送控制方法下,在工況1、2中需要9次傳輸將全部事件包發出,傳輸順序與消息生成順序一致。多個程控事件同時發生或接近同時發生時,只有首先占用發送通道的事件的發送延時能夠得到保障,后續事件包的發送延時與取得發送通道的順序有關。在工況3中,關鍵事件傳輸延時受已占用發送信道的統計數據影響,統計數據待發數據量越大,關鍵事件的傳輸延時也越大。

表1 傳統RT數據發送方法與本文設計的發送控制方法的比較

在本文設計的發送控制方法控制下:

1)在工況1中,共發生3次數據塊傳輸,每次傳輸包含分別屬于3個事件的各一條緊急消息。滿足各自事件對緊急消息發送方式的約束,為同時發生的關鍵事件提供了同等時延的傳輸服務,提升了對單次傳輸服務的帶寬利用率,減少了對傳輸通道的占用。

2)在工況2中,共發生4次數據塊傳輸。第1次傳輸中包含事件A的第一條緊急消息,第2次傳輸中包含事件B、C的第一條緊急消息,第3、4次傳輸中包含分別屬于3個事件的各一條總線消息??梢娫诎l送通道處于占用狀態時,發送控制策略能夠將后續發生的緊急消息組織、追加進處于待發狀態的總線組幀緩存中。

對先產生的關鍵事件,這會造成其后續待傳輸的緊急消息時延增加。但從系統層面分析,每個關鍵事件發三次的目的是避免BC丟失消息導致未對相應的關鍵事件進行響應。在總線通信正常情況下,BC接收到關鍵事件對應的第一條緊急消息后,即會觸發相應的程控,并不會響應后續兩次備保的緊急消息。因此,優先傳輸后續關鍵事件的第一條緊急消息,能夠提升整個系統的實時性。

3)在工況3中,通過基于優先級的發送控制對總線發送信道的占用次數與傳統方法相同,但實現了緊急消息對正在發送中的統計數據的信道搶占。在當前占用發送通道的統計數據發出后,馬上可以開始傳輸關鍵事件。在關鍵事件發生后,在其優先級為待發隊列最高優先級時,最差情況下能在延遲一個數據塊傳輸周期后得到服務。

從上述測試結果可見,本文設計的發送控制方法通過組幀緩沖區實現事件包的合幀發送,在滿足發送約束的同時,改善了各事件的發送延時,降低了占用總線發送通道的次數。

4 結束語

本文針對采用時間同步1553B總線協議的RT并發數據發送控制問題,提出了一種基于兩級“生成者-消費者”模型的突發數據控制方法。和傳統發送方法比,該方法:

1)對RT負責檢測、BC負責實施的關鍵程控動作,提供了可預期的傳輸時延保障;

2)在多個事件并發時,能在滿足可靠性約束條件(分多次發送)的前提下,減少了對RT發送通道占用次數,使各事件復用發送通道;

3)在信道被數據量大、時間敏感度低的數據傳輸占用時,關鍵事件可搶占發送信道,提升系統對關鍵事件的響應實時性。

該方法已在多顆智能化敏捷遙感衛星的數管RT軟件設計中得到應用,并已經過在軌驗證,可為后續應用時間同步1553B總線通信協議的航天器提供軟件設計參考。

猜你喜歡
程控通信協議總線
關于CAN總線的地鐵屏蔽門控制思路論述
程控交換機的數據備份與恢復技術分析
探析單片機的程控小信號放大線路
獎狀訓練器飛行管理系統研究
交通通信程控機系統功能分析
Q&A熱線
基于R8C的汽車OBD通用故障診斷儀設計
PCI9030及其PCI總線接口電路設計
SIP協議系統模型的形式化研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合