崔子涵 李志剛
(1 四川大學 電子信息學院,成都 610065)(2 航天東方紅衛星有限公司,北京 100094)
目前,小衛星技術發展迅猛,廣泛應用在航天多個領域。軟件在軌重構能力、軟件定義衛星技術是下一代長壽命、高性能小衛星的發展趨勢[1]。
小衛星星上總線網絡一般由星務、姿軌控、電源、測控、載荷等多臺電子設備通過CAN總線連接構成。在軟件重構時,新版軟件代碼由地面通過測控信道上注到星務系統[2],并通過CAN總線分發至最終設備實現軟件重構。隨著小衛星功能復雜度急劇增加,重構軟件代碼量大幅加大,如部分設備FPGA軟件代碼已超過幾百兆字節(byte),而目前CAN總線較低碼速率能力(一般為500 kbit/s)無法滿足小衛星軟件在軌重構需求。
近年來,為了滿足高通信數據率的需求,汽車領域逐步開展了從CAN總線向靈活可變數據率控制局域網絡(CAN with Flexible Data Rate,CAN FD)總線的升級,汽車領域的應用驗證了新一代CAN FD總線可靠性。為此,本文基于小衛星在軌軟件重構需求,對高碼速率CAN FD總線的技術特點進行了研究,提出了適用于小衛星軟件在軌重構的新一代CAN FD總線技術應用方法,開展了總線系統設計,并進行了初步測試驗證,為后續小衛星星載應用奠定基礎。
隨著國際市場競標和國內用戶對低軌小衛星壽命的需求逐漸從5年提升到8年,甚至10年(如哈薩克斯坦遙感衛星競標需求);同時,小衛星故障或“舉一反三”導致的軟件在軌升級、用戶功能在軌升級、在軌自主管理能力、更高的測控通信能力(國外上下行測控能力高達10 Mbit/s)等軟件重構需求也日益增加,而未來軟件定義衛星也將成為小衛星發展的新趨勢。
隨著小衛星業務能力提升、在軌大量應用,暴露出的在軌問題有所增加。有研究人員對近年來成功發射的28顆遙感衛星在軌發生的156個故障進行了統計分析[3],按故障類型分析空間環境類故障59個,占比為38%,軟件類故障為6個,占比約4%。大部分由空間環境引起的故障和軟件故障均可通過地面上注實現軟件重構來解決問題。同時,其他型號研制過程、在軌發生的此兩類問題,也需要“舉一反三”并通過軟件上注重構消除風險;而目前由于測控通信能力(上行2000 bit/s)、星上CAN總線通信能力(500 kbit/s),只能以小上注量的補丁方式上行處理,會導致問題無法根本解決或影響用戶好用、易用能力。
近年來,軟件定義衛星也成為小衛星發展新方向,其以計算為中心,以軟件為手段,通過軟件定義無線電、載荷、數據處理計算機、網絡等手段,將傳統上由分系統實現的通信、載荷等功能以軟件方式實現,總體上將各類敏感器和執行機構通過軟件構成一個整體,最終實現大部分衛星功能的軟件化。軟件定義衛星的核心就是應用任務與衛星硬件解耦,通過地面上注軟件實現衛星功能在軌重構或升級,適應不斷變化的應用需求。因此,提升現有星載CAN總線的能力,發展高碼速率CAN FD總線變為必需。
2011年,德國Bosch公司公開了廣泛適用于工業應用的CAN FD總線白皮書(1.1版)[4],2012年公布了CAN FD總線應用規范[5]。該總線顯著特點是提高了數據傳輸碼速率,增加了數據幀長度,很好地解決了CAN總線的帶寬問題并改善了錯幀漏檢的問題[6],數據傳輸效率也得到了顯著的提升。在無位填充的情況下,傳輸效率從CAN總線的59.26%(64 bit/108 bit)提高到了91.59%(512 bit/559 bit)。CAN FD總線與目前的CAN總線保持了很好的兼容性[7]。目前,CAN FD總線已在汽車工業中得到了應用,后續可通過適于天基應用環境的小衛星總線系統設計、可靠性安全性措施設計,實現現有CAN總線的更新換代,以適應小衛星大規模星載軟件在軌重構需求。
CAN FD是CAN總線的升級換代設計,繼承了CAN總線的主要特性,提高了網絡通信帶寬,增加了幀攜帶數據包的大小。在2015年,德國汽車CAN總線協會(CiA)發布了CiA601系列設計與指導建議,之后2016年國際標準化組織(ISO)還發布了ISO11898-2高速介質訪問單元規范[8]。CAN FD相對于現有的CAN總線主要能力提升表現在以下幾個方面。
1)CAN FD支持可變速率
CAN FD采用了兩種位速率:仲裁域之后到應答轉換場(ACK)之前的數據區為一種較高的速率,最高可支持到10 Mbit/s,其余部分為原CAN總線用的速率,仍然保持最高支持到1 Mbit/s。兩種速率各有一套位時間定義的寄存器,除采用不同的位時間單位外,位時間各段的分配比例也可不同。
2)CAN FD提升了數據域長度
CAN FD對數據域長度進行了擴充,即在數據長度小于8 byte時與原CAN總線的定義一樣;數據長度大于8 byte時則有一個非線性的增長,最大的數據域長度可達64 byte。對于多字節數據塊傳送時不需要按照8 byte的短幀傳輸,極大提高了總線傳輸效率。CAN FD幀格式和可變速率如圖1所示。

注:IDLE為空閑,SOF為幀起始,r1為保留位,IDE為識別符擴展位,EDL為擴展數據長度,r0為保留位,ESI為錯誤狀態指示器,IFS為幀間空間,BRS為數據率切換開關,CRC為循環冗余校驗碼。圖1 CAN FD 幀格式和可變速率圖Fig.1 Illurstration of CAN FD frame and flexible data rate
CAN FD繼續保持了CAN總線的錯誤處理機制,包括錯誤幀、錯誤計數器、主動錯誤、被動錯誤、總線離線等。由于CAN FD總線數據幀的長度超過了傳統的CAN總線,為了保持數據幀的漢明碼距離與CAN總線相同且仍為6,CAN FD協議中引入了新的CRC算法。CAN FD協議規定在數據幀數據長度小于8 byte時采用CRC-15算法,數據長度小于16 byte時采用CRC-17算法,數據長度超過16 byte時采用CRC-21算法[9]。
在傳統的CAN總線規范中,為了保證數據流中有足夠的跳變沿用于各節點的重同步,規定了位填充的規則,即在每連續5 bit相同的位后自動填充一位補碼位,但CAN總線規范中CRC計算校驗是不包含填充位的,這就導致在很小的概率情況下會出現2 bit的錯誤會漏檢。為了克服這個問題,CAN FD規范中規定了新的位填充規則。其一,CAN FD協議的CRC計算將填充位也納入其中;其二,CAN FD采用了固定填充位的方式,即每4 bit后填充一位前1 bit補碼的位,這樣既保證了數據流中有足夠的跳變沿用于重同步,又提高了幀數據錯誤的檢測率。
從CAN FD總線的新特點可知,CAN FD幀結構與標準CAN幀有差別,比如控制位定義、錯誤狀態指示、CRC算法等,這就導致CAN FD與CAN不完全兼容。CAN FD節點可以正常收發傳統CAN節點報文,能夠向下兼容,但是傳統CAN節點不能正常收發 CAN FD 節點的報文,所以在CAN FD的網絡中無法直接接入傳統的標準CAN設備,因為接入的設備會由于無法識別CAN FD幀格式而報錯,導致總線癱瘓。在解決兼容問題方面,可以在傳統CAN節點上采用具有CAN FD Shield模式的驅動器,當驅動器收到CAN FD幀時直接過濾,避免傳統節點發出錯誤幀,達到與原有網絡拓撲和協議兼容的目的。為了實現總線性能的大幅提升,建議在實際應用中將全部節點均升級到CAN FD總線,避免CAN總線和CAN FD總線節點混用。
CAN FD總線可以滿足高傳輸碼速率,但目前的應用層總線協議存在如下問題:①無法適用于小衛星即插即用技術;②固定輪詢應答時序協議導致高傳輸速率下總線通信時間占用率大幅增加,無法滿足總線應用層協議的設計規范;更高的總線數據率,將導致主機無法工作。鑒于此,開展CAN FD總線架構設計、新型總線協議設計,解決即插即用適用性問題、總線通信占用率問題。
CAN FD總線架構支持多種總線拓撲形式,包括總線型拓撲、星型拓撲等結構。考慮到小衛星設備布局、電纜連接關系、技術狀態繼承性,小衛星CAN FD拓撲架構可選擇總線型架構,即由一臺設備作為起點,一臺設備作為終點,通過一條雙冗余的總線串接起來組成整星總線網絡,在總線的起始設備和終端設備上安裝匹配電阻。CAN FD總線的網絡拓撲結構如圖2所示。

圖2 CAN FD總線拓撲結構圖Fig.2 CAN FD bus topology
總線上的網絡節點主要包括星務計算機、姿軌控計算機等平臺設備以及數傳、相機等載荷設備。為了方便實現數據共享和軟件重構,傳統的姿軌控部件以及固存等通過RS422接口掛接在各分系統內部的設備,也可以增加CAN FD總線接口直接連接在CAN FD總線上。
傳統的小衛星CAN總線協議為簡單的輪詢應答、選擇應答模式的協議,即一般由主機按照事先設計好的時序逐個輪詢各下位機或發送指令數據并等待下位機的應答;此類總線協議對于大量的數據發送以及軟件重構方面的支持存在明顯的不足,高碼速率傳輸將導致主機無法工作。首先,傳統的CAN協議設計時需提前分配各節點的站地址和數據格式,導致新的設備節點需動態加入時無法實現即插即用,靈活性不足;其次,固定輪詢應答時序的協議需要耗費主機大量的通信等待時間,主機每發送一次輪詢數據,需要等待幾十毫秒來完整接收下位機的應答數據;當下位機數量達到十幾個且交換數據種類較多、總線傳輸數據率提高時,以1.5 Mbit/s為例,傳統CAN總線通信時間占用率將由30%變為80%左右,嚴重影響了主機工作效率,不滿足總線應用層協議的設計規范;更高的總線數據率,將導致主機無法工作。
本文結合汽車工業等應用廣泛的CAN總線公開(CANopen)協議、時間觸發CAN總線(TTCAN)協議,充分利用CAN FD總線高碼速率數據段傳輸、一次最多64 byte的長幀傳輸特點,改進傳統的CAN總線通信協議,提出一種適用于小衛星的新一代CAN FD總線協議。
1)支持即插即用的總線設計
即插即用技術是一個未來小衛星技術發展方向。在小衛星星務主機軟件設計過程中,設計專用的衛星數據模型(Satellite Data Model,SDM),用于解析所有接入CAN FD總線的即插即用從節點電子表單xTEDS信息(xTEDS用于描述子節點設備類型、站地址、注冊成功標志、發送數據相對時刻,數據發送周期,遙測數據長度等信息),為總線的即插即用設備配置服務[10]。適用于即插即用的總線注冊流程設計如下。
(1)在系統初始加電時,主機首先發送一個節點注冊廣播幀;
(2)所有從節點接收到該廣播幀后將自身的電子表單xTEDS信息組包后發送給主機;
(3)主機收到所有節點的電子表單信息后,構建和維護SDM數據結構;
(4)SDM數據結構構建完畢后,主機給各從節點返回注冊成功數據幀及每個周期發送數據的相對時刻;
(5)從節點收到注冊成功數據幀后將電子表單xTEDS中的注冊成功標志置為成功,并更新發送數據相對時刻信息;
(6)此后開始進行總線的正常通信;
(7)總線正常通信期間新加入節點注冊流程設計:主機會每隔固定周期(如1 s)發送節點注冊廣播幀;已正常通信的從節點收到注冊廣播幀后不需要響應,新加入的從節點收到注冊廣播幀后按照與其他從節點初始加電時的邏輯給主機發送電子表單xTEDS完成注冊。
從節點即插即用注冊過程如圖3所示。

圖3 節點即插即用注冊流程Fig.3 Node plug and play registration process
2)支持總線上靜態與動態信息融合的時序設計
星上CAN FD網絡節點間的信息傳遞以周期性信息交互為主,主要包括遙測信息采集、時間廣播、姿態廣播等,同時也有突發性的信息傳遞,包括遙控數據、故障處理指令等。為高效、高質量完成總線通信,軟件協議設計中將一個總線通信周期劃分為靜態段、動態段、注冊段和空閑段。將常規的遙測數據發送、廣播數據發送設置在靜態段,將遙控指令等數據設置在動態段,將注冊信息發送設置在注冊段。
基于CAN FD總線下設計的即插即用支持技術,總線設計時無法預先確定各從節點的數據量信息,主機需要在首次上電時各從節點完成注冊后,通過構建SDM來計算并分配靜態段、動態段、注冊段的時間窗;一旦正常通信過程中有新的節點加入,主機還需重新計算并調整已分配的時間窗。靜態段信息的時間窗長度主要由各節點的數據量決定的,動態段根據一個周期內遙控數據量來設計,各節點時間窗分配設計如圖4所示。

圖4 節點時間窗分配設計Fig.4 Node time window assignment
靜態與動態信息相結合的時序設計如下:①在總線通信過程中,每個周期的起始T0時刻,主機向所有節點發送一個時間同步廣播幀,所有從節點收到時間同步幀后定時器清零并重新開始計時,靜態段開始;②各從節點計時開始后,按照電子表單中分配的發送數據相對時刻向總線發送遙測數據,主機中斷服務程序接收數據并存儲到指定的內存位置,待空閑時刻對所有收到的數據進行處理;③靜態段結束、注冊段開始后,主機向總線發送注冊廣播幀,檢測總線上是否有新的節點加入,如果有新的節點加入,則重新構建主機SDM完成該節點的注冊,并給該節點分配靜態段時間窗;④注冊段結束動態段開始后,主機依次向從節點發送指令或遙控數據一直到動態段時間窗結束,進入空閑段,等待下一個周期開始。基于靜態與動態融合的時序設計,主機無需對每個下位機發送輪詢并等待應答數據,大幅度地提高了主機的工作效率。
本文通過采用Atmel SAMC21系列微控制器加Atmel ATA6561驅動器實現了CAN FD總線通信的原理樣機的研制,總線系統共包含3個節點,其中一個節點實現主機的功能,另外兩個節點實現下位機的功能,主機與下位機節點均使能CAN FD功能,仲裁場碼速率設置為500 kbit/s,數據場碼速率設置為5 Mbit/s;主機軟件中設計專用SDM模型,下位機軟件中配置電子表單xTEDS并按CAN FD應用層協議開展設計。試驗結果表明:CAN FD總線設計的專用SDM模型有效,即插即用節點注冊流程正常,突發信息下靜動態信息融合的時序設計合理,遙測及指令執行正常,高碼速率下CAN FD總線能夠很好的滿足小衛星在軌軟件重構需求。CAN FD總線變碼速率下測試波形如圖5所示。

圖5 CAN FD總線波形圖Fig.5 CAN FD Bus Wave
以5 Mbit/s為例(最高碼速率可達10 Mbit/s),系統測試期間,通過示波器實測傳送一幀64 byte 的數據占用時間為196 μs,軟件中設置每兩幀數據之間的幀間隔為100 μs,傳送一幀64 byte數據占用196+100=296 μs,每秒通信周期分配給上注軟件的時間窗為200 ms。對于地面上注200 Mbit的大型FPGA軟件重構代碼,主機與下位機傳送200 Mbit數據傳送時間578 s,約等于10 min,一般低軌小衛星一次可測控弧段時間為10~15 min,可實現一個測控弧段內完成小衛星大型軟件上注重構。由此可見,采用CAN FD協議總線傳輸效率相對于CAN總線提高了10倍(以5 Mbit/s為例),總線傳輸效率得到了極大的提升,能夠滿足小衛星應用軟件和FPGA軟件的重構傳輸需求。
本文的驗證只是基于CAN FD協議開展的初步驗證,對于可靠性方面沒做太多的考慮,后續在型號中應用CAN FD通信協議時還應重點注意如下幾點。
(1)在CAN FD初始化程序中,需要根據CAN FD的新特點,配置可變碼速率等新的寄存器值;
(2)在發送程序中需要對發送數據的緩沖區及數據長度進行適應性更改;
(3)各節點在設計時要注重時間同步性設計,嚴格按照分配的時間窗來進行數據通信;
(4)CAN FD出錯處理程序中需采用一定時間收不到正確數據或者總線處于離線狀態時對兩條總線進行復位的處理措施。
本文對小衛星在軌軟件重構能力的需求進行了分析,結合現有星內CAN總線碼速率無法滿足軟件重構對總線傳輸的現狀,提出了利用下一代高速CAN FD總線來實現星載總線的思路,剖析了CAN FD總線的特點,開展了小衛星CAN FD總線架構設計,以及基于小衛星即插即用技術、靜動態信息結合的CAN FD總線時序設計。對CAN FD總線的通信進行了初步測試驗證,驗證結果表明:CAN FD總線能夠滿足軟件重構對總線傳輸速率的要求。后續在實際工程應用中,還須進一步開展CAN FD應用層協議的詳細設計以及CAN FD總線通信的可靠性措施的分析與設計。