呂 聰,李華旺,常 亮
(1.中國科學院 上海微系統與信息技術研究所,上海 200050;2.上海微小衛星工程中心 上海 201203)
星務管理中的雙CPU冗余通信設計與實現
呂 聰1,2,李華旺1,2,常 亮1,2
(1.中國科學院 上海微系統與信息技術研究所,上海 200050;2.上海微小衛星工程中心 上海 201203)
基于Cortex-M3的Smart Fusion2芯片和APA600芯片結合雙CPU冗余技術設計實現了微納衛星星務管理中的雙CPU冗余通信。采用雙CPU冗余技術來提高系統的可靠性。在信息交互設計中加入看門狗實現CPU狀態監控,通過信息發送中握手通信機制的設置以及鏈路自復位的設置進一步提高系統的可靠性。詳細介紹了雙CPU冗余通信在星務管理系統中的實現并介紹了鏈路可靠性設計和雙CPU通信過程中的重要函數設計。利用可靠性高的串行通信方式設計雙CPU冗余通信即滿足微納衛星對可靠性的高要求又降低了開發而且實現簡單這對于衛星系統中的通信有較好的實用價值。
雙CPU;冗余通信;監控;可靠性
隨著信息技術與小型化技術的飛速發展與應用,傳統的衛星研制技術出現了革命性的飛躍。其中一個重要發展趨勢是衛星小型化[1],小衛星實現了低成本、小重量、小體積、高性能、短研究周期等特點[2]。衛星越來越小,但對可靠性的要求越來越高。文中設計基于微納衛星星務管理系統,根據微納衛星的高可靠性設計要求,以及一個單CPU的控制系統很難滿足現代控制系統的要求[3]的現狀,選用了雙CPU的冗余控制技術。由于雙CPU的冗余控制是一種提高系統可靠性的有效手段[4],設計為了適合衛星可靠性要求選用雙CPU冗余通信。雙冗余技術就是在系統中增加備用模塊,一旦工作模塊發生故障時,控制系統可以快速切換到備用模塊,從而保證了系統的正常工作[5]。其中如何通過雙CPU通信保證系統的可靠性是本文的一個研究重點。
1.1 Smart Fusion2芯片介紹
主CPU選擇Microsemi公司Smart Fusion2SoC FPGA芯片(以下簡稱SF2),該芯片設計用于滿足高安全性、高可靠性和低功耗的基本需求。采用了基于非易失性快閃技術的設計保護功能,易于保護機密和高價值的設計,防止篡改、克隆、過度建造、反向工程和偽造。SF2芯片采用Flash工藝實現,無需額外的配置存儲器以及刷新電路。同時SF2芯片上電即行,沒有上電加載時間,提高了衛星啟動時間。SF2在單一芯片上集成了固有可靠性的快閃FPGA架構、一個 166(MHz)ARM CortexTM-M3 處理器、先進的安全處理加速器、DSP模塊、SRAM、eNVM和業界所需的高性能通訊接口。SF2器件具備所需的差異化特性,能夠確保在非常低的功耗下安全、可靠地運行。
1.2 APA600芯片介紹
從CPU選擇的是APA600芯片,APA600芯片是抗輻射的宇航等級的芯片。其相對于SF2有更高的可靠性但是它在功耗響應速度等方面卻沒有Smart Fusion2出色,所以選擇用高可靠性低性能的APA600來監測高性能但可靠性相對差一點的SF2以使得整個系統的設計更加可靠并實現提高系統性能的目標。
2.1 雙CPU冗余通信方式選擇
雙CPU間的通信方式有并行通信方式和串行通信方式。串行通信傳送按位順序進行,傳輸線少,成本低但傳送速度慢。但隨著當前通信行業的迅猛發展,串行通信技術日趨成熟,傳輸速率越來越快,可以進行長距離數據傳輸并保證信號傳輸質量,加之其線路設計簡單,能很好地滿足保護裝置的通信要求,因此已經越來越多的應用于雙CPU間的通信[6]。而異步串行通信也由于接線少、傳輸距離遠、可靠性高、成本低等特征在數據采集和控制系統中得到了廣泛的應用[7-8]。
考慮到數據量不是特別大,采用串行通信方式,并采用三線制和UART作為傳輸鏈路。其中UART發送信息是將需要發送的并行數據轉化為適合在信道中傳輸的串行數據串行輸出,接收時接收串行數據,并將其轉化為并行數據[9-10]。SF2通過三線制向APA600發送控制指令,APA600接收到控制指令后通過三線制向SF2返回應答信息并且通過UART向SF2返回數據信號,SF2定時通過UART向APA600發送喂狗信號。為了避免UART和SF2的接收和發送數據時使CPU處于等待狀態,接受和發送均采用中斷模式[11]。其基本的通信連接如圖1所示:

圖1 雙CPU通信連接圖
2.2 雙CPU冗余通信控制實現
這里的雙CPU控制區別于傳統的“熱備份”冗余控制,傳統的“熱備份”冗余就是兩個模塊同時在線工作,一個主模塊,一個從模塊,主模塊按照系統要求正常工作,從模塊處于熱備份狀態,實時監控主模塊工作狀態,一旦檢測到主模塊出現故障,從模塊便可自動接管主模塊工作,系統可不受停機損失[12]。
星務系統的兩種工作模式分別為安全工作模式和正常工作模式,本設計選擇兩塊CPU,主CPU在正常模式下工作,從CPU在兩種模式下都有其任務。從CPU主要功能有兩個其一是正常工作模式下監測可靠性低但性能好的主CPU并協助主CPU進行工作;另一個功能是在主CPU故障后擔任起整個系統的工作保證星務系統在安全模式下仍能完成衛星基本的功能。
從CPU的APA600對SF2的監控通過兩種途徑來實現。APA600作為從CPU要與主CPU的協同工作來滿足星務的需求,SF2向APA600發送控制指令,APA600向SF2返回應答信息并根據控制指令向SF2發送請求的數據,通過該過程APA600實現對SF2的監控;另一種監控方式是通過設置看門狗實現監控,SF2定時向APA600發送喂狗信號,若APA600在設定的時間內沒有收到喂狗信號就會復位SF2,如果連續復位超過約定次數就斷定SF2不能正常工作,將SF2斷電,系統進入安全模式實現正常模式向安全模式的切換。
2.3 UART通信方式的可靠性設計
其中UART通信有兩種基本拓撲結構星型和總線型。由于需要點到點的通信在此選擇了星型拓撲結構全雙工處理方式。星型結構全雙工處理方式由于采用獨占線路只對單個節點實施全雙工對輪詢處理的效率并沒有影響。不過在這種方式下在主節點未發出命令的任何時間從節點可以主動向從節點傳送數據有利于處理比較緊急的通信任務所以這處理方式適用于從節需要主動上傳數據的場合[13-14]。
為提高數據傳輸的可靠性,在軟件設計時,運用握手通信機制、CRC校驗碼等編程設計[15],并加入UART自復位設計。雙CPU通信過程中接受不到信息會有兩種原因,其一是發送端發生錯誤沒能將信息發出來,其二就是接收端發生錯誤未能將信息讀出來。針對第一種原因在UART鏈路設計中加入反饋復位信號設計,若對方沒收到信息將反饋一個信號給到UART發送端將UART進行復位,復位之后重新發送數據。針對第二種原因即發送端復位之后接收端仍不能接受到數據的情況下就需要檢查接受端自身的問題。首先接收端進行自復位,然后給發送端一個重發數據的信號,重新來接收數據。
3.1 SF2的看門狗設計
看門狗設計實現星務系統安全模式與正常模式的切換。SF2需要每一個任務周期 (500 ms)通過UART向APA600發送喂狗信號,給到APA600中,若APA600連續4 s未接到喂狗信號APA600將整個SF2復位。實現高可靠性的APA600對SF2的監控功能。基于μCOS-II系統的SF2芯片的喂狗信號我們通過系統任務的時間間隔進行發送以確保喂狗信號的定時發出。
若SF2累計復位3次,則掉電SF2,系統進入安全模式。看門狗及復位管理的流程如圖2所示。

圖2 看門狗及復位管理流程圖
3.2 雙CPU冗余通信時序設計
SF2向APA600發送控制指令并等待APA600的應答,應答分為兩類對于請求數據的指令APA600會將數據通過UART返給SF2,但是對于另一些控制指令并不需要返回數據信息,這時候要想確保APA600收到了SF2的指令就必須設置應答機制。雙機通信的時序設計如圖3所示。

圖3 雙CPU通信時序圖
3.3 雙CPU冗余通信的重要函數設計
1)等待接受函數(commWaitReceiveFinish())設計
在雙機通信中很重要的一個工作是接受數據,接收數據之前首先需要知道緩存中存在的數據以保證能完整的讀取數據。該等待接受函數的功能是等待接受緩存中完全收滿一幀數據之后返回接收到的數據個數,使我們在接受數據之前可以確認緩存區的數據量,保證接受時可以收到完整的數據。函數實現流程如圖4所示。

圖4 等待接受函數流程圖
其中ONE_CYCLE_DELAY是每次等待的時間,這個延時要求必須大于下位機發送一個字節數據的時間(1/(波特率/8)秒)。為減少 CPU延時處理的占用,該時間小于下位機發送兩字節數據的時間,且該延時在SF2上必須小于APA600接收應答后開始到發送數據幀的時間(如圖5所示)。

圖5 幀間傳輸間隔設計
2)接受函數(commReceiveFrame())設計
接收函數的主要功能就是解析數據幀讀取數據并返回幀標識。實現雙CPU通信要保證雙CPU兩邊任務的同步性,任務同步的主要思想是網絡通信中的應答模式所以我們這里接收函數中要實現有應答的接受函數。接收函數的實現流程如圖6所示。

圖6 接受函數流程圖
3)發送函數(commSendWithACK())設計
發送函數設計圖如圖7所示。發送函數在發送數據后,等待接收應答幀。如果接收到正確解析的應答,函數直接返回 TRUE,接收到解析錯誤應答,則重發;如果應答不成功,將進行數據重發直到重發計數大于設定值(SEND_ERROR_RETRY),重發次數大于設定值仍未成功時函數返回FALSE。其中重發數據的時間間隔根據下位機處理時間來設定。沒有接收到數據,重發直到重發計數大于SEND_NOACK_RETRY時返回 FALSE。 重發時間間隔為 FIRST_WAITING_DELAY。

圖7 發送函數流程圖
文中的雙CPU冗余通信設計基于CortexTM-M3的Smart Fusion2芯片和宇航等級芯片APA600,通過UART以及三線制方式來實現兩個CPU之間的信息交互。APA600通過看門狗的喂狗信號的接受以及SF2控制指令的正常發送實現對SF2的監控以及兩個CPU的協同工作。高性能芯片APA600的監控以及對于UART自復位設計整體提高了整個系統的可靠性,保證了星務系統的任務的可靠執行,使得系統性能更加符合微小衛星對高可靠性的要求。
[1]林來興.現代小衛星與納衛星技術發展(2)[J].國際太空,2002(9):27.
[2]余金培,楊根慶,梁旭文.現代小衛星技術與應用[M].上海科學普及出版社,2004(3):4-5.
[3]夏云非,黃凌.雙CPU通信接口設計[J].電子世界,2014(5):162.
[4]衡軍山,甄成剛.基于軟件的雙CPU冗余控制研究[J].微計算機信息,2005,21(7-1):59.
[5]衡軍山.基于雙CPU的冗余控制研究與實現[J].集成與液壓,2008,7(36):7.
[6]王躍,李博通,李斌,等.電力系統微機保護裝置中雙CPU通信方案及優劣分析[J].電氣應用2009,28(5):34.
[7]鄭爭兵.一種基于FPGA的UART電路設計[J].國外電子測量技術,2010,29(7):85.
[8]楊瀾,戚秀真.UART微控制器設計方法及其FPGA實現[J].電子科技,2016,29(6):72.
[9]劉寶軍,王中訓,婁陽,等.基于FPGA的UART設計與實現[J].中國集成電路,2016(6):40.
[10]楊揚,葉芃,李力.基于FPGA的UART設計與實現[J].電子測量技術,2011,34(17):81.
[11]鄔芝權,靳桅.基于雙緩沖器的UART無線模塊設計[J].現代電子技術,2015,38(5):6.
[12]廖慧敏.PLC控制器的雙CPU冗余控制實現[J].湖北電力,2005,12(29):6.
[13]嚴利明,胡立坤,王慶超.基于UART的主從通信方式的主節點時序分析[J].電測與儀表,2006,43(487):51-53.
[14]胡立坤,王慶超.基于UART的可靠通信與性能分析[J].計算機工程,2006,32(10):15.
[15]董兵,許曉斐.RS-485總線系統通信可靠性設計與應用 [J].廣東輕工職業技術學院學報.2009,8(3):2.
The design and implementation of redundancy communication of dual-CPU in house-keeping system
LV Cong1,2,LI Hua-wang1,2,CHANG Liang1,2
(1.Shanghai Institute of Micro-system and Information Technology,Chinese Academy of Science,Shanghai 200050,China;2.Shanghai Engineering Center for Micro-satellite,Shanghai 201203,China)
The design and the implementation of dual-CPU redundant communication in house-keeping system of microsat based on Smart Fusion2 and APA600.Using the technology of Dual-CPU redundant to improve system reliability.Added Watchdog to monitor CPU's status in the design of information interaction.Though setting information of handshake communication mechanism and link self-reset to further improve the reliability of the system.Describe the implemented of dual-CPU redundant communication in house-keeping system and the desigh of link reliability and important functions in dual-CPU communication.Using serial communication mode not only meet the high reliability demand for micro-nano satellite but also reduces the development costs.It is also simple to achieve and has a good practical value in satellite communication system.
Dual-CPU; redundancy communication; monitor; reliability
TN915.04
:A
:1674-6236(2017)14-0092-04
2016-07-19稿件編號:201607140
市科委揚帆計劃(SHKW14YF01)
呂 聰(1990—),女,山東濱州人,碩士研究生。研究方向:星載計算機。