習穎慧,滕學劍
(中國科學院 國家空間科學中心,北京100019)
“嫦娥四號”巡視器有效載荷研制在探月工程實施以來首次開展了國際合作,引入中性原子探測儀(ASAN 探測儀)。該儀器系目前國際上首個在月球表面開展中性原子探測的儀器,其主要功能是探知太陽風與月球表面的作用機制以及二者相互作用對月球環境的影響。為適應月面環境要求,ASAN 探測儀的工作時段為月晝上午和月晝下午,每次工作時間不超過1小時,科學數據產生率最高不超過1 kbit/s;月午和月夜時段則關機。該探測儀屬艙內設備,為降低系統集成復雜度,減少載荷管理開銷,提高可靠性,探測儀與有效載荷電控箱之間通過RS422 串行總線進行通信。
RS422總線具有傳輸距離長、波特率可調、速度快、抗干擾能力強等諸多特點,在航空航天以及工業控制領域有著廣泛的應用[1]。“嫦娥四號”有效載荷電控箱與ASAN 探測儀的RS422串行總線通信采用軟件管理RS422接口單元方式[2],RS422通信約定為主從結構——載荷電控箱是主機,ASAN探測儀是從機;每次通信都是由主機發起命令,從機應答命令或數據。

圖1 外部RS422總線消息傳輸格式Fig.1 External RS422 bus message transfer format
RS422消息指令類型多樣,傳輸格式、性能參數以及傳輸和響應要求各不相同,主機一方面要保持正常的總線通信,另一方面要對消息通信結果做出實時處理并反饋。因此RS422總線消息通信具有復雜多樣性及嚴格實時性[3],合理設計RS422的消息通信模式,成為衡量系統優劣的重要因素。
本文提出一種基于RS422時間片管理機制的通信模式,以滿足有效載荷電控箱與ASAN 探測儀之間的通信時間響應要求,保證數據傳輸的有序和有效性。
RS422通信的波特率為115.2 kbit/s,消息傳輸格式見圖1。
RS422總線通信中包括的消息類型為:
1)工作模式指令發消息以及接收的應答消息,工作模式消息指令有6種,均為隨機消息,在收到消息后2 s之內轉發即可;
2)周期工程采集指令消息以及接收的工程參數幀消息,消息周期為4 s;
3)周期科學數據采集指令消息以及接收的科學數據幀消息,消息周期為4 s;
4)周期校時指令消息以及接收的校時消息應答,消息周期為300 s。
在多條RS422消息指令通信的情況下,目前的嵌入式系統RS422總線通信模塊中一般使用一問一答的模式。從消息開始組織,寫入RS422接口模塊,由RS422總線發送后,必須等待相對應的應答接收結束后才能交出RS422總線控制權,稱為“一對一法”。定義消息通信過程中獨占RS422總線消耗的時間為TP,每種消息可允許的時間為TS。通信過程見圖2。

圖2 傳統RS422通信模式圖Fig.2 Diagram of traditional RS422 communication mode
等待接收數據的方式有2種,輪流查詢指令接收緩沖區狀態或者中斷處理方式。查詢方式控制簡單但效率低,中斷處理方式實時性高但占用FPGA資源。嵌入式實時控制系統應盡量減少中斷的使用,故在查詢接收滿足通信要求且不影響實時性的情況下,盡量采用查詢方式接收數據[4]。
巡視器有效載荷電控箱與ASAN 探測儀RS422之間的通信特性:
1)ASAN回送的科學數據幀變長,最大長度為4096字節,且大部分情況下ASAN 回送的科學數據的長度為4096字節,傳輸數據量大;
2)科學數據幀傳輸時間長,僅傳輸數據時間就需要大約284 ms;
3)消息類型多樣,包括隨機消息以及周期消息,且周期消息既有同步的也有異步的;
4)隨機消息與周期消息,周期消息與周期消息之間發生碰撞的概率很大,消息處理復雜耗時。
以最簡單情況來分析,本系統有Msg1(工作模式)、Msg2(工程參數)、Msg3(科學數據)和Msg4(校時)4種類型的消息,均使用RS422總線進行通信。Msg1是隨機消息,Msg2、Msg3、Msg4是周期消息,Msg2、Msg3周期同步。在系統某時刻,Msg1、Msg2、Msg3、Msg4消息同時時間到,處于就緒狀態,每個消息發送前若檢測到總線忙碌便處于等待狀態。等待時間取決于TP,TP越大等待時間越長,消息執行發送的時間就越晚,會導致不能及時響應消息請求。而“一對一法”適用于消息數據量小,消息等待以及數據接收時間短的系統,顯然不適合本系統的RS422總線通信。
本系統CPU 采用單片機(型號為80C32)、單線程,由FPGA 實現的RS422接口單元只提供1個RS422發送FIFO,1個RS422接收FIFO;且RS422通信無法實現并發設計,必須對發送進行有序控制,才能保證數據接收的有效性和完整性。因此,需要重新設計支持大數據量傳輸、等待時間充足、并發處理能力好的RS422通信方案。
針對巡視器電控箱與載荷ASAN探測儀之間RS422通信的特殊性,提出時間片通信模式方案。
RS422總線是主從結構,任何時候都是主機發起通信,從機應答,任何時刻只能有1種消息類型得到RS422的控制權,即消息只能互斥使用RS422總線。為優化起見,借鑒幀的組織方式以及操作系統時間片調度策略,提出一種隨機多周期消息時間片排布架構[5-6]。以整個RS422時間作為1個大時間片(時間周期),大時間片再以小時間片方式分配給各消息發送接收使用。
首先,在系統中如何確定恰當的RS422時間片(時間周期),是保證系統運行穩定可靠,滿足系統性能要求,確保系統正常工作的關鍵;其次,如何劃分小時間片確保各消息發送接收的準時完成,需要采取適當的調用策略;最后,如何減小周期消息碰撞的概率,減輕數據接收處理模塊的壓力,提高總線處理能力和CPU 效率,也是本設計的意義所在。
時間周期設置太短,會導致過多的RS422消息交互,占用資源,降低CPU 效率,無法滿足大量RS422消息傳輸的時間要求;而時間周期設置太長,又可能引起對短的交互請求的響應變差。本系統隨機指令的最小發送間隔為2 s,3種周期指令最小間隔為4 s,因此將時間周期定為2 s是比較合理的折中選擇。
RS422大時間片確定后,RS422通信采用時間周期的方法。2 s的時間周期到,時間周期前半段(180 ms)進行總線切換、維護以及所有時間周期到的指令發送操作;中間設置1 s的等待時間;后半段設置數據接收處理標識,主循環中查詢此標識并統一處理接收到的數據,此處理時間預留820 ms。本設計中的時間片設置見圖3。

圖3 RS422時間片劃分Fig.3 RS422 timeslice partition map
2 s時間周期大體劃分為4個時間片:Tm為總線維護時間片;Tx為消息發送時間片,按照系統最大負荷量并預留足夠的硬件處理時間;Tw為消息等待接收時間片;TR為接收處理時間片。
Tx時間片要處理的消息類型有數據注入消息、工程參數消息、科學數據消息和時間碼消息4種。如何安排消息的發送通信時間片,保證各類型消息通信的時間度,保證消息通信的一致性、無差錯性是確保系統工作的關鍵。
本系統的消息類型包括隨機消息(事件驅動型消息)和周期消息[7-8]。
事件驅動型消息安排:地面數據注入產生的工作模式消息。每當地面有數據注入消息以及工作模式指令發送錯誤并重試時產生消息,這類隨機消息會被立即存入工作模式指令循環緩沖指令隊列,利用指令隊列的先進先出特性,避免消息數量大時丟失指令。RS422時間周期到,立即安排這種類型消息指令的發送,其消息指令優先級為最高。
同周期、不同周期消息安排:通過參考周期任務調度的速率單調調度(RMS)算法[9],根據消息的周期設置消息優先級,周期越短優先級越高。本系統中,工程參數與科學數據消息周期同步,周期為4 s;校時消息周期為5 min。故優先級由高到低的安排是工程參數、科學數據、校時消息。考慮到同周期消息每個時間周期勢必會碰撞(同時滿足時間條件,處于就緒狀態),為減少同一個時間周期內待發送消息的數量,降低時間周期總線的強度,減輕接收模塊處理壓力,提高RS422通信效率,本系統采用了乒乓設計方法,即將工程參數和科學數據消息采集的起始點錯開,使得這2類消息分布在不同的時間周期,見圖4。

圖4 乒乓設計方法Fig.4 Ping-pong design diagram
綜上,對于隨機消息和周期消息,按照優先級的設置形成隊列,當RS422時間片周期到的時候,再把RS422控制權分配給就緒的指令,并令其占用1個時間片。時間片的大小是可調整的,一般是根據消息指令的發送以及傳輸字節數的時間來定,并預留足夠的硬件發送指令的時間。當時間片用完時,通過計時器的中斷計數,停止該類型消息指令的RS422控制權,保留當前指令信息狀態,切換到下一種類型消息指令。這樣可保證所有就緒的指令在給定的時間內均能得到處理。
利用單片機定時器中斷,設置其步長為20 ms,產生1個2 s 的RS422時間周期。定時器采用自動裝載模式,可避免定時器翻轉手動重新裝載數據造成的精度誤差。時間周期中的小時間片區是通過定時器20 ms步長的計數實現的。
本文中RS422時間片模式實現的數據發送以及等待功能都在中斷中實現,保證了數據的實時性和完整性。1個RS422時間周期中,數據接收時間片中的數據接收處理是在主循環中完成的,主循環1次運行最長時間為300 ms,軟件預留了820 ms的接收處理時間片,完全能保證該周期中接收數據的處理,不會因為下一周期時間片消息發送而影響數據的完整性。軟件架構及流程見圖5。

圖5 時間片管理流程Fig.5 Flow chart of time slice management
經過實踐,時間片通信模式的新設計,對“嫦娥四號”載荷ASAN 探測儀的RS422總線通信時間片進行了恰當的劃分,并增加了乒乓的可靠性設計方案,確保了各類型消息的準時準確發送以及完整性接收,滿足了目前RS422總線通信的時間響應要求,保證了系統運行穩定可靠,取得了良好的效果。