?

基于MicroBlaze的測控終端數據處理模塊的設計與實現

2020-04-07 10:16
計算機測量與控制 2020年3期
關鍵詞:發送給遙測預處理

(上海航天電子有限公司,上海 201800)

0 引言

飛行器在飛行過程中往往會產生大量遙測數據,地面測控站在接收、保存這些原始遙測數據的同時會有針對性的將其中某些重要遙測數據(如姿態信息、油量信息、位置信息、溫度信息等)提取出來,并進行實時處理,顯示在終端上。這些信息反映了飛行器當前的工作狀態、飛行軌跡等重要信息,對于操作者的分析、決策有重要的參考價值。為了將原始遙測數據中的指定遙測數據提取出來,地面測控站需要對這些原始遙測數據進行挑路處理,將實時采集到的原始遙測數據根據實際需求選取部分進行分析、計算并將處理結果發送給擔負不同任務的終端,由這些終端再做進一步處理。因此遙測數據挑路功能設計的好壞將直接影響地面測控站的性能。

一般情況下,對于實時遙測數據的挑路處理往往采用FPGA+ARM或FPGA+DSP的方式,FPGA主要負責接口轉換、遙測幀搜索、組幀等操作,ARM或DSP主要負責復雜數據處理及系統控制。但這種實現方案的集成度不高,不利于設備的小型化。因此,本文提出了一種基于MicroBlaze的測控終端實時數據處理模塊(以下簡稱挑路模塊),將遙測數據的挑路及遙測數據計算功能全部集成到FPGA中實現,同時也提供了挑路功能的在線升級能力。這樣設計不僅提高了系統的集成度及設計靈活度,同時也降低了產品的硬件成本。

1 遙測數據挑路原理

該設計應用于某飛行器配套的地面測控終端設備上。地面測控終端實時接收來自飛行器測控應答機的遙測數據,并對接收到的遙測數據進行挑路操作,將有用數據挑出、計算,最后將得到的數據重新打包發送給終端計算機。

飛行器發送的遙測數據是以幀為單位的脈沖編碼調制(Pulse Code Modulation,PCM)碼流[1-2],每一幀遙測數據分為不同的副幀,各個副幀包含有來自不同傳感器的飛行器狀態參數,比如氣壓、電壓、油面、功率、圖像、GPS信息、1553B數據幀等遙測信息。挑路模塊的主要功能就是將某些重要的遙測數據從以上原始遙測數據中挑選出來并進行計算,最后將計算結果重新打包發送給終端計算機[3]。

為了方便描述,完整的遙測數據幀的數據結構如圖1所示。

圖1 完整遙測數據幀數據結構示意圖

從整體看,遙測數據幀是一個m列、n行組成的二維數據結構,遙測數據幀的數據是按照逐行順序傳輸的,其中每一行為一個遙測子幀,遙測子幀分為幀頭、不同數據域的遙測數據及校驗和。遙測子幀的長度為mByte,整個遙測全幀則由n個遙測子幀構成。遙測數據幀每一列為一個波道,波道用于存放相同類型的數據。如果某些遙測數據的數據量較大,該遙測數據就會分散存放在遙測子幀中若干個波道的數據域以及相鄰多個遙測子幀的對應的波道數據域中。

以1553B[4]數據挑路過程為例。1553B數據幀的數據是離散存放在遙測數據幀中的1553B數據域中。因為1553B數據幀是由多個字節構成,一個遙測子幀只能存放1553B數據幀的部分數據,因此一個完整的1553B數據幀可能存放在相鄰的多個遙測子幀中。而且由于1553B數據不是每一時刻都有,因此有時候遙測數據幀并不包含1553B數據,即使出現1553B數據,其1553B數據幀的幀頭在遙測數據幀中的相對位置也是不固定的,且1553B數據幀的長度也并不固定,這就給1553B數據幀的搜索帶來了困難。

在處理1553B數據時就需要先進行挑路處理,將各個遙測子幀中的1553B數據域中的數據提取出來,存放在一個二維數據結構中,如圖2左所示。其中該表的列數x是遙測子幀中1553B數據域的個數,行數為遙測子幀的個數。然后再從該二維數組中搜索1553B數據幀的幀頭用以確定1553B數據包起始位置,并將完整的1553B數據幀提取出來,如圖2右所示。最后將1553B有效數據提取出來并進行計算、打包、發送。

圖2 挑路處理后的1553B數據幀結構

挑路處理模塊有時也需要對某些遙測數據進行數據類型轉換或浮點計算。涉及到的數據類型可能包含無符號整數、有符號整數、定點數、浮點數。比如,傳感器數據一般為偏移碼或補碼,而傳感器所測量的物理量一般為定點數或者浮點數。因此在某些情況下,挑路模塊在將挑路后的遙測數據重新打包發送給終端計算機前,需要將某些遙測數據進行浮點運算。

由以上分析可知,使用FPGA實現遙測數據挑路及遙測數據處理存在以下的難點:

1)遙測數據幀結構比較復雜,且幀內某些遙測數據的位置及長度并不固定,這就給遙測數據的挑路帶來了困難。如果使用傳統的HDL代碼方式實現,其實現難度及調試難度均較大。比如使用FPGA實現諸如1553B類型的遙測數據挑路,其狀態描述及控制將會變得非常復雜,給實現及調試帶來了較大困難。

2)雖然使用FPGA可以進行浮點運算,但實現難度較大,且非常耗費FPGA邏輯資源。

針對以上問題,本文提出了以MicroBlaze[5-6]為核心的挑路模塊設計方案,用于解決FPGA在實現遙測數據挑路及浮點運算方面遇到的困難,同時引入了動態部分重配置(dynamic partial reconfiguration,簡稱DPR)技術[7]使挑路模塊具備在線重配置能力。

該挑路模塊具備以下的特點:

1)利用FPGA嵌入式系統實現遙測數據挑路及浮點運算,無需外部DSP或ARM支持,系統集成度高。利用嵌入式系統配置靈活、調試難度低的特點可以完美解決在挑路處理過程中遇到的數據挑路困難、浮點運算資源占用大等問題。通過嵌入式軟件方式實現。這樣不僅降低了實現難度,也提高了開發效率。

2)支持遙測數據處理功能的在線重配置。利用DPR技術,可以針對不同的遙測數據在線下載相應的遙測幀處理模塊,從而提高了地面測控站的適應性。

2 基于MicroBlaze的挑路模塊設計

2.1 挑路模塊設計方案

該設計相關項目要求挑路模塊應該具備以下的功能、性能指標:

1)能夠對最大為96Byte(行)*96Byte(列)的實時遙測數據幀進行挑路處理,并能夠對幀內指定遙測參數進行浮點運算。

2)能夠將挑路后的結果重新打包組幀,并發送給終端計算機。

3)挑路模塊能夠處理20幀/秒以上的實時遙測數據幀。

4)能夠根據需要在線更改挑路策略。

為了實現以上功能,該挑路模塊的原理框圖如圖3所示。根據遙測數據處理方式的不同,該模塊主要分為兩個子模塊:遙測數據預處理模塊、遙測數據處理模塊。

圖3 挑路模塊原理框圖

其中遙測數據預處理模塊使用HDL代碼實現,具體功能包括:

5)將接收到串行PCM碼流轉換為并行數據。

6)完成原始遙測數據的預處理。對于并不復雜的遙測數據挑路,遙測數據預處理模塊會直接將挑路后的遙測數據組幀,并發送給目標終端,而對于復雜的遙測數據挑路或需要浮點運算的遙測數據,遙測數據預處理模塊會將預處理后的遙測數據發送給后端的遙測數據處理模塊做進一步處理。

7)將重新組幀后的遙測數據幀轉換為AXI Stream總線數據流發送給遙測數據處理模塊。

8)接收從MicroBlaze通過AXI Stream總線發送過來的重新組幀后的遙測數據,并將該數據轉換為串行PCM碼流發送給主控計算機。

同時,該模塊使用了Xilinx的DPR技術,利用該技術可以實現遙測數據預處理模塊的在線重配置功能,可以在不影響FPGA其他功能模塊正常運行的情況下在線配置遙測數據預處理模塊,從而實現不同的遙測數據處理功能,這樣可以有效提高遙測數據處理的靈活性。為了實現遙測數據預處理模塊的DPR功能,在設計前期需將FPGA指定區域劃分給遙測數據預處理模塊作為DPR區域,同時在嵌入式系統中集成硬件內部配置訪問接口[8](hardware internal configuration access port,簡稱HWICAP),以便實現MicroBlaze對DPR區域的配置。

遙測數據處理模塊的具體功能包括:

1)對遙測數據預處理模塊通過AXI Stream總線發送過來的遙測數據做進一步處理,如對位置及長度不固定的遙測數據進行挑路。

2)對需要浮點運算處理的遙測數據進行浮點計算。

3)將挑路后或者浮點運算后的遙測數據重新組幀并通過AXI Stream總線發送給遙測數據預處理模塊。

遙測數據處理模塊使用了以MicroBlaze為核心的FPGA嵌入式系統進行復雜挑路操作及浮點運算。MicroBlaze是一款32位精簡指令集軟處理器核。該處理器在150 MHz時鐘下可提供125D-MIPS的性能,非常適合于價格敏感的網絡、電信、數據通信和消費市場等領域的嵌入式應用。該嵌入式系統的本地總線主要采用了AXI(Advanced eXtensible Interface)總線[9]。AXI是ARM公司提出的一種高性能、高帶寬、低延遲的片內總線,遙測數據處理模塊中的各個模塊均是通過AXI總線與處理器進行連接的。MicroBlaze提供了若干的AXI Stream接口與外部數據源連接,外部遙測數據可以通過該接口直接被MicroBlaze讀取并處理,為遙測數據的高效處理提供了條件。為了解決跨時鐘域的問題,該設計使用了一個雙端口異步FIFO(AXIS_FIFO[8])連接遙測數據源與MicroBlaze。遙測數據通過AXIS_FIFO被MicroBlaze直接讀取并進行處理。

同時,遙測數據處理模塊的嵌入式系統也包含有一系列其它IP核以保證系統的正常運行。如SPI模塊用于MicroBlaze訪問外部配置Flash,以便保存重要參數;Timer模塊用于遙測數據接收超時處理;Block Memory用于存儲MicroBlaze本地運行程序;UART模塊用于調試數據輸出以及DPR數據傳輸;HWICAP模塊用于DPR功能。

2.2 挑路模塊嵌入式軟件設計

遙測數據處理模塊中嵌入式軟件的遙測數據挑路處理流程如圖4所示。

圖4 遙測數據挑路軟件處理流程

大致步驟如下:

1)挑路模塊的初始化。包括接收/發送緩沖區、定時器、關鍵變量的初始化。

2)MicroBlaze不斷訪問接收AXIS_FIFO,將其中的有效數據存入遙測數據緩沖區進行緩存,如果接收到的數據為遙測數據的幀頭,則MicroBlaze啟動計時器進行計時,并繼續接收數據。

3)在接收到遙測數據幀頭后,如果在計時器計時周期內未接收到完整遙測數據,則MicroBlaze初始化挑路模塊,重新接收數據;如果在計時器計時周期內接收到了完整的遙測數據,則進行下一步處理。

4)在接收到完整的遙測數據后,MicroBlaze會對存儲在遙測數據緩沖區的遙測數據進行挑路處理,同時對需要浮點運算的遙測數據進行浮點運算,最后將處理后的遙測數據重新組幀。

5)MicroBlaze將重新組幀后的遙測數據發送給發送AXIS_FIFO,完成本次的挑路處理。

2.3 挑路模塊浮點運算設計

對于遙測數據的浮點運算,假設原始遙測數據X為1 Byte的無符號整形數,需要經過運算并轉換為單精度數據Y進行輸出,Y數據位寬為4 Byte。Y與X關系如下:Y=X*5/255。

如果使用HDL代碼實現,則需要將X先轉換為浮點數,然后使用浮點運算IP進行浮點運算。以上幾種操作的FPGA資源占用情況如表1所示(以Xilinx的Artix7系列FPGA作為硬件平臺)。

表1 HDL實現浮點運算資源占用情況

需要注意的是,這僅僅是基于以上簡單的浮點運算為例的情況,而對于一些更為復雜的浮點運算,其FPGA資源占用將大大增加??梢钥闯?,在FPGA上使用HDL的方式實現浮點運算,過大的邏輯資源占用情況很難解決,因此需要使用其他的方式實現。

而MicroBlaze不僅支持IEEE754標準的浮點數據運算,同時也支持浮點運算單元(Floating Point Unit,FPU),可以在很大程度上縮短浮點運算時間,這就為FPGA的浮點數據處理提供了更加靈活的實現方式。

2.4 遙測數據預處理模塊DPR功能設計

為了實現遙測數據預處理模塊的DPR功能,需要按照如圖5所示的流程進行設計。

具體步驟如下:

1)在FPGA前期設計階段,為遙測數據預處理模塊劃分出一塊獨立的區域用于存放模塊的邏輯資源,且該區域所包含的FPGA邏輯資源應該足夠挑路模塊使用。

2)遙測數據預處理模塊的DPR區域劃分完成后,需要對相應的FPGA工程進行編譯、綜合,最后生成DPR比特流文件。在此步驟可以根據不同需求,設計實現不同功能的挑路DPR模塊,以備后續階段使用。

3)該設計中使用了RS232串口作為DPR數據的輸入接口。在工作過程中MicroBlaze會不斷訪問串口,一旦接收到DPR比特流數據,MicroBlaze會將這些DPR數據寫入HWICAP模塊,直到DPR比特流文件傳輸完成。

4)一旦DPR比特流文件傳輸完成,HWICAP會自動復位DPR模塊,同時MicroBlaze會根據DPR模塊的特征字選取預存的挑路程序進行匹配。

3 實驗結果與分析

實際測試中,該設計的FPGA采用了Xilinx公司的XC7A200T,FPGA開發環境使用VIVADO,而嵌入式軟件開發平臺使用了Xilinx SDK[10]。MicroBlaze工作時鐘為100MHz,且配備有硬件FPU和專用乘法器,PCM碼流時鐘為40 MHz。

該設計的FPGA資源占用情況如表2所示,其中包含了完整的挑路模塊??梢钥闯?,該設計的FPGA資源占用率是非常低的。

表2中使用的5個DSP Slice是用于實現MicroBlaze的FPU及乘法運算單元。同時,MicroBlaze使用了2塊BRAM作為程序存儲器,容量為8 kByte。當需要更大容量的程序存儲器時,也可以使用更多的BRAM作為程序存儲器??梢钥闯?,由于該設計中大部分的遙測數據挑路處理是由嵌入式軟件實現的,因此如果需要實現更復雜的遙測數據挑路處理,也僅僅需要增加BRAM,為嵌入式程序提供更大的存儲空間,而基本不會占用其他的FPGA資源。

與表1中HDL實現的浮點運算所占用FPGA資源進行對照,使用嵌入式系統進行浮點運算在FPGA資源占用率上具有更大的優勢。

經過硬件測試,采用MicroBlaze的挑路模塊可以完成實時遙測數據幀的挑路處理,且該模塊最快可以處理每秒20幀的實時遙測數據幀,能夠滿足設計需求。同時,由于復雜的遙測數據挑路處理及浮點運算均是在嵌入式軟件中完成的,其調試效率要遠高于基于HDL的硬件調試,因此具有較高的設計開發效率。同時該設計也支持通過串口在線下載遙測數據預處理模塊的DPR比特流,實現不同挑路功能的動態切換。

由于該設計中使用的嵌入式處理器是軟核處理器,其主頻較低,和當前主流ARM或DSP相比處理能力有限。因此如果對遙測數據的處理速度有更高的要求,可以考慮采用諸如ZYNQ等內部集成高性能ARM核的FPGA,使挑路模塊具備更強的遙測數據處理能力。

4 結束語

本文提出的基于MicroBlaze的測控終端數據處理模塊,能夠在不增加硬件成本的條件下,對復雜的遙測數據進行挑路及各種浮點運算處理。相對于FPGA+ARM(DSP)的挑路實現方式,這種實現方式具有硬件成本低、集成度高、調試方便、開發周期短等特點,非常適合于應用在價格敏感或集成度要求高的測控終端設備上,具有很好的推廣和借鑒作用[9-11]。

猜你喜歡
發送給遙測預處理
KR預處理工藝參數對脫硫劑分散行為的影響
預處理對醫用外科口罩用熔噴布顆粒過濾性能的影響
手術器械預處理在手術室的應用
遙測定位信息網絡傳輸間斷問題的解決方法
高層次綜合技術在遙測地面站數據處理中的應用
污泥預處理及其在硅酸鹽制品中的運用
【微信小課堂】:如何向好友發送語音
你說我說大家說
公告
調度監控系統畫面數據信息糾錯方法討論
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合