崔子涵 李志剛
(1 四川大學 電子信息學院,成都 610065)(2 航天東方紅衛(wèi)星有限公司,北京 100094)
目前,小衛(wèi)星技術(shù)發(fā)展迅猛,廣泛應用在航天多個領(lǐng)域。軟件在軌重構(gòu)能力、軟件定義衛(wèi)星技術(shù)是下一代長壽命、高性能小衛(wèi)星的發(fā)展趨勢[1]。
小衛(wèi)星星上總線網(wǎng)絡一般由星務、姿軌控、電源、測控、載荷等多臺電子設備通過CAN總線連接構(gòu)成。在軟件重構(gòu)時,新版軟件代碼由地面通過測控信道上注到星務系統(tǒng)[2],并通過CAN總線分發(fā)至最終設備實現(xiàn)軟件重構(gòu)。隨著小衛(wèi)星功能復雜度急劇增加,重構(gòu)軟件代碼量大幅加大,如部分設備FPGA軟件代碼已超過幾百兆字節(jié)(byte),而目前CAN總線較低碼速率能力(一般為500 kbit/s)無法滿足小衛(wèi)星軟件在軌重構(gòu)需求。
近年來,為了滿足高通信數(shù)據(jù)率的需求,汽車領(lǐng)域逐步開展了從CAN總線向靈活可變數(shù)據(jù)率控制局域網(wǎng)絡(CAN with Flexible Data Rate,CAN FD)總線的升級,汽車領(lǐng)域的應用驗證了新一代CAN FD總線可靠性。為此,本文基于小衛(wèi)星在軌軟件重構(gòu)需求,對高碼速率CAN FD總線的技術(shù)特點進行了研究,提出了適用于小衛(wèi)星軟件在軌重構(gòu)的新一代CAN FD總線技術(shù)應用方法,開展了總線系統(tǒng)設計,并進行了初步測試驗證,為后續(xù)小衛(wèi)星星載應用奠定基礎(chǔ)。
隨著國際市場競標和國內(nèi)用戶對低軌小衛(wèi)星壽命的需求逐漸從5年提升到8年,甚至10年(如哈薩克斯坦遙感衛(wèi)星競標需求);同時,小衛(wèi)星故障或“舉一反三”導致的軟件在軌升級、用戶功能在軌升級、在軌自主管理能力、更高的測控通信能力(國外上下行測控能力高達10 Mbit/s)等軟件重構(gòu)需求也日益增加,而未來軟件定義衛(wèi)星也將成為小衛(wèi)星發(fā)展的新趨勢。
隨著小衛(wèi)星業(yè)務能力提升、在軌大量應用,暴露出的在軌問題有所增加。有研究人員對近年來成功發(fā)射的28顆遙感衛(wèi)星在軌發(fā)生的156個故障進行了統(tǒng)計分析[3],按故障類型分析空間環(huán)境類故障59個,占比為38%,軟件類故障為6個,占比約4%。大部分由空間環(huán)境引起的故障和軟件故障均可通過地面上注實現(xiàn)軟件重構(gòu)來解決問題。同時,其他型號研制過程、在軌發(fā)生的此兩類問題,也需要“舉一反三”并通過軟件上注重構(gòu)消除風險;而目前由于測控通信能力(上行2000 bit/s)、星上CAN總線通信能力(500 kbit/s),只能以小上注量的補丁方式上行處理,會導致問題無法根本解決或影響用戶好用、易用能力。
近年來,軟件定義衛(wèi)星也成為小衛(wèi)星發(fā)展新方向,其以計算為中心,以軟件為手段,通過軟件定義無線電、載荷、數(shù)據(jù)處理計算機、網(wǎng)絡等手段,將傳統(tǒng)上由分系統(tǒng)實現(xiàn)的通信、載荷等功能以軟件方式實現(xiàn),總體上將各類敏感器和執(zhí)行機構(gòu)通過軟件構(gòu)成一個整體,最終實現(xiàn)大部分衛(wèi)星功能的軟件化。軟件定義衛(wèi)星的核心就是應用任務與衛(wèi)星硬件解耦,通過地面上注軟件實現(xiàn)衛(wèi)星功能在軌重構(gòu)或升級,適應不斷變化的應用需求。因此,提升現(xiàn)有星載CAN總線的能力,發(fā)展高碼速率CAN FD總線變?yōu)楸匦琛?/p>
2011年,德國Bosch公司公開了廣泛適用于工業(yè)應用的CAN FD總線白皮書(1.1版)[4],2012年公布了CAN FD總線應用規(guī)范[5]。該總線顯著特點是提高了數(shù)據(jù)傳輸碼速率,增加了數(shù)據(jù)幀長度,很好地解決了CAN總線的帶寬問題并改善了錯幀漏檢的問題[6],數(shù)據(jù)傳輸效率也得到了顯著的提升。在無位填充的情況下,傳輸效率從CAN總線的59.26%(64 bit/108 bit)提高到了91.59%(512 bit/559 bit)。CAN FD總線與目前的CAN總線保持了很好的兼容性[7]。目前,CAN FD總線已在汽車工業(yè)中得到了應用,后續(xù)可通過適于天基應用環(huán)境的小衛(wèi)星總線系統(tǒng)設計、可靠性安全性措施設計,實現(xiàn)現(xiàn)有CAN總線的更新?lián)Q代,以適應小衛(wèi)星大規(guī)模星載軟件在軌重構(gòu)需求。
CAN FD是CAN總線的升級換代設計,繼承了CAN總線的主要特性,提高了網(wǎng)絡通信帶寬,增加了幀攜帶數(shù)據(jù)包的大小。在2015年,德國汽車CAN總線協(xié)會(CiA)發(fā)布了CiA601系列設計與指導建議,之后2016年國際標準化組織(ISO)還發(fā)布了ISO11898-2高速介質(zhì)訪問單元規(guī)范[8]。CAN FD相對于現(xiàn)有的CAN總線主要能力提升表現(xiàn)在以下幾個方面。
1)CAN FD支持可變速率
CAN FD采用了兩種位速率:仲裁域之后到應答轉(zhuǎn)換場(ACK)之前的數(shù)據(jù)區(qū)為一種較高的速率,最高可支持到10 Mbit/s,其余部分為原CAN總線用的速率,仍然保持最高支持到1 Mbit/s。兩種速率各有一套位時間定義的寄存器,除采用不同的位時間單位外,位時間各段的分配比例也可不同。
2)CAN FD提升了數(shù)據(jù)域長度
CAN FD對數(shù)據(jù)域長度進行了擴充,即在數(shù)據(jù)長度小于8 byte時與原CAN總線的定義一樣;數(shù)據(jù)長度大于8 byte時則有一個非線性的增長,最大的數(shù)據(jù)域長度可達64 byte。對于多字節(jié)數(shù)據(jù)塊傳送時不需要按照8 byte的短幀傳輸,極大提高了總線傳輸效率。CAN FD幀格式和可變速率如圖1所示。
注:IDLE為空閑,SOF為幀起始,r1為保留位,IDE為識別符擴展位,EDL為擴展數(shù)據(jù)長度,r0為保留位,ESI為錯誤狀態(tài)指示器,IFS為幀間空間,BRS為數(shù)據(jù)率切換開關(guān),CRC為循環(huán)冗余校驗碼。圖1 CAN FD 幀格式和可變速率圖Fig.1 Illurstration of CAN FD frame and flexible data rate
CAN FD繼續(xù)保持了CAN總線的錯誤處理機制,包括錯誤幀、錯誤計數(shù)器、主動錯誤、被動錯誤、總線離線等。由于CAN FD總線數(shù)據(jù)幀的長度超過了傳統(tǒng)的CAN總線,為了保持數(shù)據(jù)幀的漢明碼距離與CAN總線相同且仍為6,CAN FD協(xié)議中引入了新的CRC算法。CAN FD協(xié)議規(guī)定在數(shù)據(jù)幀數(shù)據(jù)長度小于8 byte時采用CRC-15算法,數(shù)據(jù)長度小于16 byte時采用CRC-17算法,數(shù)據(jù)長度超過16 byte時采用CRC-21算法[9]。
在傳統(tǒng)的CAN總線規(guī)范中,為了保證數(shù)據(jù)流中有足夠的跳變沿用于各節(jié)點的重同步,規(guī)定了位填充的規(guī)則,即在每連續(xù)5 bit相同的位后自動填充一位補碼位,但CAN總線規(guī)范中CRC計算校驗是不包含填充位的,這就導致在很小的概率情況下會出現(xiàn)2 bit的錯誤會漏檢。為了克服這個問題,CAN FD規(guī)范中規(guī)定了新的位填充規(guī)則。其一,CAN FD協(xié)議的CRC計算將填充位也納入其中;其二,CAN FD采用了固定填充位的方式,即每4 bit后填充一位前1 bit補碼的位,這樣既保證了數(shù)據(jù)流中有足夠的跳變沿用于重同步,又提高了幀數(shù)據(jù)錯誤的檢測率。
從CAN FD總線的新特點可知,CAN FD幀結(jié)構(gòu)與標準CAN幀有差別,比如控制位定義、錯誤狀態(tài)指示、CRC算法等,這就導致CAN FD與CAN不完全兼容。CAN FD節(jié)點可以正常收發(fā)傳統(tǒng)CAN節(jié)點報文,能夠向下兼容,但是傳統(tǒng)CAN節(jié)點不能正常收發(fā) CAN FD 節(jié)點的報文,所以在CAN FD的網(wǎng)絡中無法直接接入傳統(tǒng)的標準CAN設備,因為接入的設備會由于無法識別CAN FD幀格式而報錯,導致總線癱瘓。在解決兼容問題方面,可以在傳統(tǒng)CAN節(jié)點上采用具有CAN FD Shield模式的驅(qū)動器,當驅(qū)動器收到CAN FD幀時直接過濾,避免傳統(tǒng)節(jié)點發(fā)出錯誤幀,達到與原有網(wǎng)絡拓撲和協(xié)議兼容的目的。為了實現(xiàn)總線性能的大幅提升,建議在實際應用中將全部節(jié)點均升級到CAN FD總線,避免CAN總線和CAN FD總線節(jié)點混用。
CAN FD總線可以滿足高傳輸碼速率,但目前的應用層總線協(xié)議存在如下問題:①無法適用于小衛(wèi)星即插即用技術(shù);②固定輪詢應答時序協(xié)議導致高傳輸速率下總線通信時間占用率大幅增加,無法滿足總線應用層協(xié)議的設計規(guī)范;更高的總線數(shù)據(jù)率,將導致主機無法工作。鑒于此,開展CAN FD總線架構(gòu)設計、新型總線協(xié)議設計,解決即插即用適用性問題、總線通信占用率問題。
CAN FD總線架構(gòu)支持多種總線拓撲形式,包括總線型拓撲、星型拓撲等結(jié)構(gòu)??紤]到小衛(wèi)星設備布局、電纜連接關(guān)系、技術(shù)狀態(tài)繼承性,小衛(wèi)星CAN FD拓撲架構(gòu)可選擇總線型架構(gòu),即由一臺設備作為起點,一臺設備作為終點,通過一條雙冗余的總線串接起來組成整星總線網(wǎng)絡,在總線的起始設備和終端設備上安裝匹配電阻。CAN FD總線的網(wǎng)絡拓撲結(jié)構(gòu)如圖2所示。
圖2 CAN FD總線拓撲結(jié)構(gòu)圖Fig.2 CAN FD bus topology
總線上的網(wǎng)絡節(jié)點主要包括星務計算機、姿軌控計算機等平臺設備以及數(shù)傳、相機等載荷設備。為了方便實現(xiàn)數(shù)據(jù)共享和軟件重構(gòu),傳統(tǒng)的姿軌控部件以及固存等通過RS422接口掛接在各分系統(tǒng)內(nèi)部的設備,也可以增加CAN FD總線接口直接連接在CAN FD總線上。
傳統(tǒng)的小衛(wèi)星CAN總線協(xié)議為簡單的輪詢應答、選擇應答模式的協(xié)議,即一般由主機按照事先設計好的時序逐個輪詢各下位機或發(fā)送指令數(shù)據(jù)并等待下位機的應答;此類總線協(xié)議對于大量的數(shù)據(jù)發(fā)送以及軟件重構(gòu)方面的支持存在明顯的不足,高碼速率傳輸將導致主機無法工作。首先,傳統(tǒng)的CAN協(xié)議設計時需提前分配各節(jié)點的站地址和數(shù)據(jù)格式,導致新的設備節(jié)點需動態(tài)加入時無法實現(xiàn)即插即用,靈活性不足;其次,固定輪詢應答時序的協(xié)議需要耗費主機大量的通信等待時間,主機每發(fā)送一次輪詢數(shù)據(jù),需要等待幾十毫秒來完整接收下位機的應答數(shù)據(jù);當下位機數(shù)量達到十幾個且交換數(shù)據(jù)種類較多、總線傳輸數(shù)據(jù)率提高時,以1.5 Mbit/s為例,傳統(tǒng)CAN總線通信時間占用率將由30%變?yōu)?0%左右,嚴重影響了主機工作效率,不滿足總線應用層協(xié)議的設計規(guī)范;更高的總線數(shù)據(jù)率,將導致主機無法工作。
本文結(jié)合汽車工業(yè)等應用廣泛的CAN總線公開(CANopen)協(xié)議、時間觸發(fā)CAN總線(TTCAN)協(xié)議,充分利用CAN FD總線高碼速率數(shù)據(jù)段傳輸、一次最多64 byte的長幀傳輸特點,改進傳統(tǒng)的CAN總線通信協(xié)議,提出一種適用于小衛(wèi)星的新一代CAN FD總線協(xié)議。
1)支持即插即用的總線設計
即插即用技術(shù)是一個未來小衛(wèi)星技術(shù)發(fā)展方向。在小衛(wèi)星星務主機軟件設計過程中,設計專用的衛(wèi)星數(shù)據(jù)模型(Satellite Data Model,SDM),用于解析所有接入CAN FD總線的即插即用從節(jié)點電子表單xTEDS信息(xTEDS用于描述子節(jié)點設備類型、站地址、注冊成功標志、發(fā)送數(shù)據(jù)相對時刻,數(shù)據(jù)發(fā)送周期,遙測數(shù)據(jù)長度等信息),為總線的即插即用設備配置服務[10]。適用于即插即用的總線注冊流程設計如下。
(1)在系統(tǒng)初始加電時,主機首先發(fā)送一個節(jié)點注冊廣播幀;
(2)所有從節(jié)點接收到該廣播幀后將自身的電子表單xTEDS信息組包后發(fā)送給主機;
(3)主機收到所有節(jié)點的電子表單信息后,構(gòu)建和維護SDM數(shù)據(jù)結(jié)構(gòu);
(4)SDM數(shù)據(jù)結(jié)構(gòu)構(gòu)建完畢后,主機給各從節(jié)點返回注冊成功數(shù)據(jù)幀及每個周期發(fā)送數(shù)據(jù)的相對時刻;
(5)從節(jié)點收到注冊成功數(shù)據(jù)幀后將電子表單xTEDS中的注冊成功標志置為成功,并更新發(fā)送數(shù)據(jù)相對時刻信息;
(6)此后開始進行總線的正常通信;
(7)總線正常通信期間新加入節(jié)點注冊流程設計:主機會每隔固定周期(如1 s)發(fā)送節(jié)點注冊廣播幀;已正常通信的從節(jié)點收到注冊廣播幀后不需要響應,新加入的從節(jié)點收到注冊廣播幀后按照與其他從節(jié)點初始加電時的邏輯給主機發(fā)送電子表單xTEDS完成注冊。
從節(jié)點即插即用注冊過程如圖3所示。
圖3 節(jié)點即插即用注冊流程Fig.3 Node plug and play registration process
2)支持總線上靜態(tài)與動態(tài)信息融合的時序設計
星上CAN FD網(wǎng)絡節(jié)點間的信息傳遞以周期性信息交互為主,主要包括遙測信息采集、時間廣播、姿態(tài)廣播等,同時也有突發(fā)性的信息傳遞,包括遙控數(shù)據(jù)、故障處理指令等。為高效、高質(zhì)量完成總線通信,軟件協(xié)議設計中將一個總線通信周期劃分為靜態(tài)段、動態(tài)段、注冊段和空閑段。將常規(guī)的遙測數(shù)據(jù)發(fā)送、廣播數(shù)據(jù)發(fā)送設置在靜態(tài)段,將遙控指令等數(shù)據(jù)設置在動態(tài)段,將注冊信息發(fā)送設置在注冊段。
基于CAN FD總線下設計的即插即用支持技術(shù),總線設計時無法預先確定各從節(jié)點的數(shù)據(jù)量信息,主機需要在首次上電時各從節(jié)點完成注冊后,通過構(gòu)建SDM來計算并分配靜態(tài)段、動態(tài)段、注冊段的時間窗;一旦正常通信過程中有新的節(jié)點加入,主機還需重新計算并調(diào)整已分配的時間窗。靜態(tài)段信息的時間窗長度主要由各節(jié)點的數(shù)據(jù)量決定的,動態(tài)段根據(jù)一個周期內(nèi)遙控數(shù)據(jù)量來設計,各節(jié)點時間窗分配設計如圖4所示。
圖4 節(jié)點時間窗分配設計Fig.4 Node time window assignment
靜態(tài)與動態(tài)信息相結(jié)合的時序設計如下:①在總線通信過程中,每個周期的起始T0時刻,主機向所有節(jié)點發(fā)送一個時間同步廣播幀,所有從節(jié)點收到時間同步幀后定時器清零并重新開始計時,靜態(tài)段開始;②各從節(jié)點計時開始后,按照電子表單中分配的發(fā)送數(shù)據(jù)相對時刻向總線發(fā)送遙測數(shù)據(jù),主機中斷服務程序接收數(shù)據(jù)并存儲到指定的內(nèi)存位置,待空閑時刻對所有收到的數(shù)據(jù)進行處理;③靜態(tài)段結(jié)束、注冊段開始后,主機向總線發(fā)送注冊廣播幀,檢測總線上是否有新的節(jié)點加入,如果有新的節(jié)點加入,則重新構(gòu)建主機SDM完成該節(jié)點的注冊,并給該節(jié)點分配靜態(tài)段時間窗;④注冊段結(jié)束動態(tài)段開始后,主機依次向從節(jié)點發(fā)送指令或遙控數(shù)據(jù)一直到動態(tài)段時間窗結(jié)束,進入空閑段,等待下一個周期開始。基于靜態(tài)與動態(tài)融合的時序設計,主機無需對每個下位機發(fā)送輪詢并等待應答數(shù)據(jù),大幅度地提高了主機的工作效率。
本文通過采用Atmel SAMC21系列微控制器加Atmel ATA6561驅(qū)動器實現(xiàn)了CAN FD總線通信的原理樣機的研制,總線系統(tǒng)共包含3個節(jié)點,其中一個節(jié)點實現(xiàn)主機的功能,另外兩個節(jié)點實現(xiàn)下位機的功能,主機與下位機節(jié)點均使能CAN FD功能,仲裁場碼速率設置為500 kbit/s,數(shù)據(jù)場碼速率設置為5 Mbit/s;主機軟件中設計專用SDM模型,下位機軟件中配置電子表單xTEDS并按CAN FD應用層協(xié)議開展設計。試驗結(jié)果表明:CAN FD總線設計的專用SDM模型有效,即插即用節(jié)點注冊流程正常,突發(fā)信息下靜動態(tài)信息融合的時序設計合理,遙測及指令執(zhí)行正常,高碼速率下CAN FD總線能夠很好的滿足小衛(wèi)星在軌軟件重構(gòu)需求。CAN FD總線變碼速率下測試波形如圖5所示。
圖5 CAN FD總線波形圖Fig.5 CAN FD Bus Wave
以5 Mbit/s為例(最高碼速率可達10 Mbit/s),系統(tǒng)測試期間,通過示波器實測傳送一幀64 byte 的數(shù)據(jù)占用時間為196 μs,軟件中設置每兩幀數(shù)據(jù)之間的幀間隔為100 μs,傳送一幀64 byte數(shù)據(jù)占用196+100=296 μs,每秒通信周期分配給上注軟件的時間窗為200 ms。對于地面上注200 Mbit的大型FPGA軟件重構(gòu)代碼,主機與下位機傳送200 Mbit數(shù)據(jù)傳送時間578 s,約等于10 min,一般低軌小衛(wèi)星一次可測控弧段時間為10~15 min,可實現(xiàn)一個測控弧段內(nèi)完成小衛(wèi)星大型軟件上注重構(gòu)。由此可見,采用CAN FD協(xié)議總線傳輸效率相對于CAN總線提高了10倍(以5 Mbit/s為例),總線傳輸效率得到了極大的提升,能夠滿足小衛(wèi)星應用軟件和FPGA軟件的重構(gòu)傳輸需求。
本文的驗證只是基于CAN FD協(xié)議開展的初步驗證,對于可靠性方面沒做太多的考慮,后續(xù)在型號中應用CAN FD通信協(xié)議時還應重點注意如下幾點。
(1)在CAN FD初始化程序中,需要根據(jù)CAN FD的新特點,配置可變碼速率等新的寄存器值;
(2)在發(fā)送程序中需要對發(fā)送數(shù)據(jù)的緩沖區(qū)及數(shù)據(jù)長度進行適應性更改;
(3)各節(jié)點在設計時要注重時間同步性設計,嚴格按照分配的時間窗來進行數(shù)據(jù)通信;
(4)CAN FD出錯處理程序中需采用一定時間收不到正確數(shù)據(jù)或者總線處于離線狀態(tài)時對兩條總線進行復位的處理措施。
本文對小衛(wèi)星在軌軟件重構(gòu)能力的需求進行了分析,結(jié)合現(xiàn)有星內(nèi)CAN總線碼速率無法滿足軟件重構(gòu)對總線傳輸?shù)默F(xiàn)狀,提出了利用下一代高速CAN FD總線來實現(xiàn)星載總線的思路,剖析了CAN FD總線的特點,開展了小衛(wèi)星CAN FD總線架構(gòu)設計,以及基于小衛(wèi)星即插即用技術(shù)、靜動態(tài)信息結(jié)合的CAN FD總線時序設計。對CAN FD總線的通信進行了初步測試驗證,驗證結(jié)果表明:CAN FD總線能夠滿足軟件重構(gòu)對總線傳輸速率的要求。后續(xù)在實際工程應用中,還須進一步開展CAN FD應用層協(xié)議的詳細設計以及CAN FD總線通信的可靠性措施的分析與設計。