劉思遠 楊芳 汪小潔 劉勝利 李國軍 袁春柱
(1 航天東方紅衛星有限公司,北京 100094)(2 北京系統工程研究所,北京 100101)
國內外星上電子技術發展的趨勢表明,基于串行總線的分布式拓撲結構已經成為星上電子系統的主流架構。鑒于CAN 總線具有可靠性高、實時性好、抗干擾能力強、通信方式靈活、組網簡單等優點,國內外均已將其引入星載電子系統,甚至大量小衛星已經將CAN 總線作為星上骨干網絡來完成星上設備間的信息傳遞[1-2]。
但隨著小衛星任務復雜度及性能的不斷提高,星上電子系統對總線通信的實時性和可靠性都提出了更高的要求,從實時性和可靠性方面分析,目前基于星載CAN 總線星載網絡還存在如下問題:
(1)CAN 總線網絡是基于事件觸發型的總線,而且是基于優先級調度的總線搶占模式,事件觸發和優先級搶占雖然增強了總線訪問的靈活性,但是存在的最大問題是信息傳遞延遲的不確定性;
(2)CAN 總線傳輸碼速率較低(小于1Mbit/s),且現有星上電子系統中所采用的輪詢應答式通信模式在很大程度上浪費了CAN 總線的有效帶寬。
這就使得現有的CAN 總線網絡及總線訪問方式逐漸不能滿足小衛星星上綜合電子系統信息傳遞需求。
為此,本文提出將新一代實時、高可靠車載時間觸發型總線FlexRay[3]引入小衛星星上電子系統,首先對其星載應用的適應性進行分析,在此基礎上給出網絡架構,并初步對通信協議進行了設計,為其星載應用提供技術參考。
FlexRay是多家知名汽車制造商(寶馬、博世、戴姆勒、通用汽車、大眾等)和芯片制造商(飛思卡爾半導體、NXP半導體/飛利浦等),針對新一代汽車電子的實時控制及容錯需求而研發的新一代總線網絡標準,且已經在一些新款汽車(奧迪A6/A8、寶馬X5/7系/5系、勞斯萊斯等)中得到推廣應用[4]。該總線繼承了CAN 總線的優點,同時克服了CAN 總線在傳輸實時性、可靠性等方面的不足。其優點主要表現在以下幾方面[5-7]:
(1)碼速率高:最高達到10 Mbit/s,是CAN 總線碼速率的10倍;
(2)實時性好:支持時間觸發(time triggered,TT)和事件觸發(event triggered,ET)兩種模式,可確保消息在指定時間段傳遞;
(3)可靠性高:采用先進的雙總線容錯機制,確保通信可靠性;
(4)靈活性強:支持多主通信,且支持多種拓撲形式;
(5)時間同步精度高:具有網絡時間同步機制,同步精度達到幾微秒量級。
FlexRay總線支持時間觸發和事件觸發兩種總線訪問機制,總線訪問設計為循環進行的通信周期,同時將每個通信周期劃分出靜態段(static segment)、動 態 段(dynamic segment)、符 號 窗 口 段(symbol window)和網絡空閑段(NIT),如圖1 所示。靜態段支持時分復用(TDMA)的時間觸發總線訪問方式,即靜態段由多個時長相等的靜態時隙(static slot)組成,應用中可根據需要將時隙分配給多個通信節點,每個時隙在同一時刻只允許一個節點傳輸數據,因此不僅確保了消息傳遞的實時性,同時可以確切地知道哪個節點的哪條消息在什么時間傳輸。另外,為了提高總線帶寬的利用和通信的靈活性,FlexRay 總線在動態段支持柔性時分多址(FTDMA)的事件觸發總線訪問,即動態段由多個小時隙(minislot)構成,通信節點可以根據需要在某個小時隙內訪問總線,且小時隙的時間長度可以根據總線訪問的需要進行擴展。應用中可以根據實際需要對通信周期、靜態部分、動態部分的時間長度進行配置,還可以對靜態部分和動態部分內時隙的長度進行配置。

圖1 FlexRay總線訪問機制示意圖Fig.1 Bus access mechanism of FlexRay
在現有的基于CAN 總線的分布式星上電子系統中,主通信節點(如星務主機)通過CAN 總線與其它通信節點(如下位機)進行信息傳遞的主要模式,是通過周期性的數據輪詢采集和指令發送,而由于通信節點應答時間的不確定性,一方面導致節點通信起止時間不能嚴格確定,另一方面也導致后續節點通信的時序順延,很難滿足對時序和實時性要求苛刻的閉環控制場合。FlexRay的周期性通信模式,不僅可以很好地滿足分布式星上系統周期性消息傳遞的特點,更重要的是利用其時間觸發的總線訪問機制可以變現有的星上消息輪詢通信方式為消息訂閱通信方式,即可以根據星上綜合管理與控制信息傳遞需要為星上各個網絡節點事先分配好通信時隙。系統運行過程中,星上各個網絡節點可以根據事先分配好的時隙有序地進行信息交互,可以確保信息傳遞的實時性,這對實現基于總線的閉環控制非常有利。
在總線訪問的靜態段和動態段,均可以傳遞FlexRay總線的通信幀,其幀結構包括三部分,分別是幀頭段、載荷數據段和尾段,如圖2所示。幀頭部分包括:保留位(reserved bit);有效負荷段前言指示(payload preamble indicator),用于指示可選字段是否包含在傳送幀的有效數據中。在靜態幀中,該位會在有效數據開始端指示網絡管理向量的存在,在動態幀中,該位會在有效數據開始端指示消息ID;空幀指示(null frame indicator),用于指明數據幀是否為空;同步幀指示(sync frame indicator),用于指示該幀是否同步;起始幀指示(startup frame indicator),用于指示幀是否啟動幀;幀ID(frame ID),指明通信過程中分配到每個節點的ID;有效數據長度(Payload length),用于指明有效數據段的長;頭部CRC(header CRC),表明同步幀指示器和起始幀指示器的CRC 計算值以及由主機計算的幀ID 和幀長度;循環計數(cycle count),指明在幀傳輸時間內傳輸幀的節點的周期計數。有效負荷部分的數據可以是0~254byte,幀尾部為一個24位的CRC校驗,用于校驗有效載荷數據的正確性。

圖2 FlexRay總線幀格式示意圖Fig.2 FlexRay frame format
分析FlexRay 總線的幀格可以看出,FlexRay總線幀格式在一定程度上繼承了CAN 總線的幀格式,但同時又進行了一定的提升。
FlexRay總線每幀可以傳遞更長的有效載荷數據(最大254byte),一方面可以大幅提高總線數據傳輸的效率,另一方面也避免了現有星載CAN 總線在傳遞大于8byte的數據包時需要采取分幀/組幀處理。另外,FlexRay總線采取了相對于CAN 更為嚴格的錯誤檢測,即分別對幀頭和數據進行了CRC校驗,可有效甄別錯誤幀,這點對星載應用是非常有利的,可以大幅提高信息傳遞的可信性,更好地避免因為數據傳輸錯誤導致的系統錯誤甚至災難。
FlexRay總線設計上具有兩個通道,兩個通道既可以單獨傳輸,也可以作為冗余備份來提高通信的可靠性。每個FlexRay 節點都包括一個控制器和一個驅動器部件。控制器部件包括一個主機處理器和一個通信控制器,如圖3所示。驅動器部件通常包括總線驅動器(BD)和總線監控器(BG),總線驅動器將通信控制器與總線相連接,總線監控器監視接入總線的連接。
總線監控器只允許通信控制器在指定的時隙中傳輸數據,并激活總線驅動器。當某個節點發生故障而不能正常地收發數據或未在指定時隙發送數據時,總線監控器會將通信控制器和總線斷開,從而不會影響到其他節點的工作。在雙通道系統中是通過冗余備份的方法來實現容錯的,即兩個通道上傳輸相同的信息。當一個通道出現故障而無法正常工作時,另一個通道上的數據就可以保證系統的正常運行,而不會因為某一個通道上的數據丟失影響到系統的穩定性。因此,相比現有星載CAN 總線,RlexRay總線在容錯性能上有所提升,更加適合星上高可靠網絡通信的需求。
對于支持時間觸發總線訪問機制的網絡,網絡上節點間的時間同步尤為重要,目的是保證網絡上全部節點的時間差在一定的范圍內。FlexRay總線協議使用分布式的時鐘同步機制,在FlexRay總線網絡上沒有絕對的全局時間或參考時間,網絡上節點的本地時間(local time)均是由節點自身的時鐘獲得,所有節點都通過觀察其它節點傳送的同步幀將自己的時間與網絡全局時間(global time)進行同步,因此都有一個自己認為的全局時間,即全局時間存在于每個節點的“心”中。FlexRay總線節點的時間同步主要采取兩種途徑,分別是頻率校正(rate correction)和相位校正(offset correction),其過程如圖4所示。節點可根據對網絡上同步幀的觀察獲得本地時間與網絡時間的偏差,然后,一方面通過動態調整通信周期的時間長度確保與整個網絡通信周期相同,即頻率校正;另一方面通過在通信周期的網絡空閑時間段插入微時間片(macrotick)來調整通信周期長度,即相位校正。目標是實現整個網絡上節點間的時間同步誤差小于網絡通信允許的偏差內,通常為一到幾微秒。星載網絡信息的時間同步對后期載荷數據處理尤為重要,尤其是對高分辨率遙感衛星,時間同步精度直接影響圖像定位精度,因此,利用FlexRay總線的網絡時間同步機制可以更好的實現高精度的網絡信息同步。

圖3 FlexRay總線節點結構示意圖Fig.3 Node structure of FlexRay bus

圖4 FlexRay總線時間同步方法Fig.4 Clock synchronization mechanism of FlexRay bus
FlexRay總線支持多種總線拓撲形式,包括總線型拓撲、有源星型拓撲和無源星型拓撲,還可以采用這幾種拓撲結構組成混合型網絡結構,節點間最大網絡長度為24m。另外,FlexRay總線設計上具有兩個通道,兩個通道既可以單獨傳輸,也可以作為冗余備份來提高通信的可靠性。鑒于星上電子系統對節點間信息傳遞的可靠性要求很高,同時考慮設備連接的簡潔性,本文給出的基于FlexRay總線的星上分布式架構,在設計上采用雙冗余總線型網絡架構,與CAN 總線相同,拓撲結構如圖5所示。其中的網絡節點可以是星上計算機、下位機等設備,也可以是敏感器、執行器等部件。采用基于FlexRay總線的星上分布式網絡,通過事先設計靜態調度表,在數據通信模式上可以變現有的消息輪詢通信方式為消息訂閱通信方式,即事先約定好每個通信節點發送的數據和發送數據時間段,總線上的各個通信節點,可以根據事先分配好的時間段來有選擇地接收所需要的信息。

圖5 基于FlexRay總線的分布式星上網絡架構Fig.5 Distribution network structure based on FlexRay bus for on-board application
星上網絡節點間的信息傳遞以周期性信息交互為主(如遙測信息采集),同時也有突發性的信息傳遞(如遙控指令、上注數據等)。針對星上信息傳遞特點,結合FlexRay總線訪問機制,應用中可以將周期通信的數據傳遞配置在FlexRay 總線通信周期的靜態段,以確保信息傳遞的實時性和時序的穩定性,另外,將突發性信息傳遞配置在動態段,以充分利用總線帶寬。對于星上周期性交互的信息傳遞,設計中在FlexRay總線通信周期的靜態段(static segment)劃分出靜態時隙(static slot),為相應的數據發送節點分配固定的時隙,靜態時隙長度主要由通信幀的最大長度決定,由于在通信周期內靜態時隙的長度必須相等,因此通信幀長度設置將直接影響著總線利用率,需要根據實際節點的數據收發情況進行優化處理。FlexRay總線通信幀長度的確定需要考慮多個因素,包括節點數目、每個節點數據包長度、通信頻率等。設網絡上有3個通信節點,則節點時隙分配示意圖如圖6所示。

圖6 基于FlexRay總線的節點時隙分配示意圖Fig.6 Time slot distribution of FlexRay bus nodes for on-board application
另外,基于FlexRay總線的星上網絡設計,還需要根據衛星系統信息交互周期的需求進行FlexRay總線通信周期的設計,由于FlexRay總線協議規定的通信周期T最大為16ms,如果星上信息交互周期小于T,則可以直接配置通信周期;如果信息交互周期大于T(如1s),則可以對FlexRay總線的通信周期進行整數倍的擴展以滿足通信需求。另外,對于節點通信周期不等的應用場合,在時隙分配時可以通過周期匹配處理來滿足需求。假設節點A 的通信周期與FlexRay 總線的通信周期(T)相等,節點B 的通信周期為FlexRay總線的通信周期2倍(2T),節點C的信周期為FlexRay總線的通信周期4倍(4T),則周期擴展方法如圖7所示。
FlexRay總線的單幀可傳輸的有效數據為0~254byte,因此,基于FlexRay總線的星上數據通信每個數據包的有效數據長度設計為均小于254byte,這樣可以避免分包組包的過程。初步考慮可以采用如圖8所示的應用層通信協議,幀ID 的11bit表示發送幀所占時隙編號,同一個節點在一個通信周期內,如果需要在多個時隙內發送數據,則需要在發送時配置多個幀ID。在有效數據域中,設置前2位字節為數據包類型,最后1位字節為累加和,中間為要傳輸的有用數據信息,但須確保有效數據域的數據長度為偶數個字節。

圖7 FlexRay總線通信周期擴展示意圖Fig.7 Communication cycle extend of FlexRay bus for on-board application

圖8 FlexRay總線通信應用協議設計Fig.7 Communication protocol design of FlexRay bus for on-board application
接收節點可以通過設置幀ID 濾波、通道ID 濾波、消息ID 等來接收所需要的節點信息,屏蔽不相關節點發送的數據。
FlexRay總線節點的硬件實現方案主要有兩種形式:一種是采用集成FlexRay協議處理模塊的微處理器+總線驅動器實現,另一種是采用微處理器+獨立的FlexRay協議處理通信控制器+總線驅動器實現。目前常用的集成FlexRay協議處理模塊的微處理器有Freescale公司生產的 MC9S12XF512 和MPC5561/MPC5567芯片、NXP公司生產的SJA2510芯片;獨立的FlexRay協議處理通信控制器有Freescale公司生產的MFR4300、MFR4310等[8];物理層總線驅動器以NXP 公司生產的TJA1080為主[9]。鑒于星載網絡節點根據功能的不同其硬件架構和性能需求通常差異較大,處理器的配置通常也要根據需求而定,且要求適應空間輻照環境,如現有型號通常選用X86、8031、TSC695、AT697、BM3803等型號處理器,因此,星載FlexRay總線節點的硬件實現,不宜采用FlexRay協議處理模塊和微處理器集成在一起的方案,故建議采用上述第二種方案來實現星上網絡節點。
本文主要結合星載應用,對FlexRay總線的特性進行了分析,結果表明FlexRay 總線在傳輸速率、實時性、容錯性、同步性、靈活性等方面都優于現有的CAN 總線。采用基于FlexRay總線的星載網絡,一方面可以確保節點間信息傳遞的實時性,即可以通過總線信息調度設計準確的預測信息傳遞的時刻和時間長度,為基于總線的閉環實時控制奠定基礎;另一方面,由于FlexRay總線傳輸碼速率可達到10Mbit/s,也可大幅提高信息傳遞的速率和通信容量,滿足未來復雜任務衛星系統信息傳遞需求。因此,該總線理論上是非常適合于未來小衛星星載應用的,但從工程應用角度考慮,要想真正將該總線應用到衛星系統中,還需進一步開展協議的細化設計和測試驗證,從空間環境適應性角度考慮,還需要針對實現該總線協議的控制芯片開展一系列空間環境試驗。
(References)
[1]李孝同,施思寒,李冠群,微小衛星綜合電子系統設計[J],航天器工程,2008,17(1):30-35
Li Xiaotong,Shi Sihan,Li Guanqun.Integrated electronics system of micro-satellite[J].Spacecraft Engineering.2008,17(1):30-35(in Chinese)
[2]Li Xiaotong,Shi Sihan.Integrated micro-electronics system on CAST-mini bus[C]//58th International Astronautical Congress.Paris:IAF/IAA,2007:1-6
[3]FlexRay Consortium.FlexRay communications system protocol specification,Version 2.1Rev.A[Z/OL].[2012-03-21].http://www.flexray.com/index.php?sid=a6bbd9fa-4c2d9c6bf17f8e4d7286c774&pid=93&did=1&lang=de
[4]王鍇,王宏,徐皚冬.下一代車載網絡FlexRay及其應用研究[J].計算機工程與應用,2008,44(20):77-79
Wang Kai,Wang Hong,Xu Aidong.Research of next generation in-vechicle network FlexRay and its application[J].Computer Engineering and Applications,2008,44(20):77-79.(in Chinese)
[5]陳智琦,羅峰,陳覺曉,等.FlexRay特性分析及應用實現[C]//2007中國汽車工程學會年會論文集,北京:中國汽車工程學會,2007:1201-1205
Chen Zhiqi,Luo Feng,Chen Juexiao,et al.Characteristic analysis and application & implementation of FlexRay bus[C]//2007SAE-China Congress.Beijing:Sino-Automobile Engineering Institute.2007:1201-1205(in Chinese)
[6]FlexRay Consortium.FlexRay communications system preliminary node-local bus guardian specification,Version 2.0.9[Z/OL].[2012-03-21].http://www.flexray.com/index.php?sid=a6bbd9fa4c2d9c6bf17f8e-4d7286c774&pid=93&did=9&lang=de
[7]FlexRay Consortium.FlexRay communications system electrical physical layer specification,Version 2.1Rev.A[Z/OL].FlexRay Consortium.[2012-03-21].http://www.flexray.com/index.php?sid=a6bbd9fa4c2-d9c6bf17f8e4d7286c774&pid=93&did=4&lang=de
[8]Freescale.FlexRay communication controllers MFR4310 reference manual,Rev.2 2008[Z/OL].[2012-03-21].http://cache.freescale.com/files/peripherals_coprocessors/doc/res_manual/MFR4310.pdf?fpsp=1
[9]NXP.FlexRay transceiver TJA1080Apreliminary data sheet[Z/OL].[2012-03-21].http://www.nxp.com/documents/data_sheet/TJA1080A.pdf