(91404部隊,秦皇島 066001)
在無人機遙測系統中,機載脈沖編碼調制(Pulse Code Modulation,PCM)數據是飛行參數傳輸的重要載體。為保證無人機飛行過程的可靠性和實時性,在航空遙測系統中通常需要進行多臺計算機組網接收遙測基帶數據,并完成PCM數據在遙測通道和以太網之間的轉換等任務。傳統的PCM遙測數據傳輸模塊通常采用工控機或加固計算機方案,受設備體積、重量的限制,不適合無人機等小型航空器的使用。為此,本文設計了基于嵌入式系統的遙測數據傳輸模塊,采用FPGA和ARM架構完成PCM數據收發、解調和控制邏輯功能,實現了遙測PCM關鍵飛行參數的實時監控。
系統主要實現外部遙測PCM數據收發、FPGA與ARM接口數據的快速交互,以及ARM控制以太網芯片完成網絡數據收發功能。系統總體設計框圖如圖1所示,主要由三部分組成:信號預處理模塊、FPGA組幀處理模塊和ARM顯示處理模塊。其中,前端預處理模塊主要將外部送來的PCM碼流數據轉換成對應通道RS422串行接口電平信號,以便匹配FPGA電路的采集和處理。FPGA組幀處理模塊完成對RS422串行遙測數據的解幀和組幀功能,最終以并行交互的方式將PCM 數據提交至ARM顯示處理模塊。ARM顯示處理模塊主要用于存儲協議格式和配置參數,篩選、過濾和處理PCM數據,并將需要實時監測的數據顯示在液晶屏上。

圖1 系統設計框圖
在設備工作之前,需要對PCM遙測數據所需的配置參數和協議格式進行裝訂。上位計算機通過以太網將參數依次發送給ARM顯示處理模塊和FPGA組幀處理模塊,二者分別將需要的參數存儲至本地內部的RAM緩存。FPGA外掛SRAM可以用來作為外部數據緩存,通過ARM控制網絡控制芯片完成以太網數據傳輸。
FPGA選擇Altera(現被英特爾收購)公司的EP3C25系列芯片,時鐘頻率可達50 MHz,等效邏輯門數約65萬門級,RAM容量為594 KB。ARM選擇LPC435X系列芯片,CPU為Cortex-M4架構,工作頻率可達204 MHz,片內有高達1 MB Flash、136 KB的SRAM和16 KB的EEPROM存儲器,同樣片外采用SRAM緩存用于存儲大容量數據[1]。
遙測PCM數據碼流通信協議的幀格式普遍采用NRZ_L碼型,該碼型信號為RS422差分電平信號,而后級FPGA組幀處理模塊采集的是LVTTL信號。因此,在進行PCM解調前需要將這種差分接口信號轉換為單端接口信號。采用差分驅動芯片DS26C32進行信號電平轉換,得到單端接口的PCM數據。
PCM碼流解調電路的核心是將串行PCM碼轉換為并行數據,該任務通過FPGA組幀處理模塊完成。實現PCM碼流串并轉換需要依次完成時碼信息解調、位同步、幀同步處理。
IRIG-B時碼[2]包含3種碼元,即0碼元、1碼元、P碼元。每個碼元持續10 ms,其中0碼元是持續2 ms的高電平,1碼元是持續5 ms的高電平,P碼源是持續8 ms的高電平,因此通過檢測各個碼元高電平持續時間即可實現碼元解碼。
由于遙測數據中含有大量飛行狀態信息,反映了設備的性能和各項指標,帶有大量涉密信息。為防止第三方非法獲取這些涉密信息,接收到的遙測數據都是加密后的數據,密文數據中包含N字節的IRIG-B時碼信息。接收到的密文數據在進行解密前,需要預先將時碼PCM幀數據流中N字節的IRIG-B時碼信息提取并緩存,對沒有時碼信息的數據流輸出進行解密處理;當數據解密后將緩存的該時碼信息恢復到原幀格式數據中正確位置,之后將數據傳輸做后續處理。實現原理框圖如圖2所示。

圖2 時碼信息提取原理圖

圖3 位同步原理圖
位同步數據處理電路主要用于將本地的同步脈沖與輸入PCM碼流實現精確同頻同相,并輸出位同步脈沖序列。位同步處理電路主要由鑒相器、分頻器、數字序列濾波器以及時鐘源等部分組成,如圖3所示。位同步處理主要通過數字鎖相環原理[3]實現,在接收端使用二元鑒相器比較接收碼元和本地同步信號的相位,當二者相位不一致(滯后或者超前)時,鑒相器產生相位誤差信號以調整本地同步信號的相位,直至獲得準確的位同步信息。
幀同步數據處理的功能是從位同步器的輸出信號中提取幀同步碼組,以產生幀同步信號,從而實現并行數據和時鐘信號的數據分離。為了實現幀同步處理,幀同步處理電路在數字信息流中插入幀頭EB90H、幀尾146FH等特殊碼組,幀同步處理電路需要準確識別出這些碼組,以確定幀結構。

圖4 幀同步原理圖
幀同步原理見圖4。PCM數據按時鐘脈沖進行串/并轉換,與本地幀同步碼、屏蔽位進行同或相關檢測后,并與校驗門限值進行判別比較,經輸出控制最終得到幀數據脈沖、幀同步脈沖。
為避免漏檢和虛假字節,保證幀同步器能夠可靠穩定地工作,采用搜索、校驗和鎖定三態邏輯[4]。系統首先處于搜索態,符合幀同步字格式后轉入校驗態。在校核驗態中如果沒有預期收到的幀格式長度和同步字,則轉入搜索態;如果連續收到預定校驗次數m的幀格式數據后,轉入鎖定態。為了避免出現幀同步碼漏檢的風險,提高幀同步器工作穩定性,在鎖定態中當連續漏檢達到預定漏檢次數n值時,幀同步才重新跳回搜索態,否則繼續保持在鎖定態[5]。
FPGA與ARM之間采用并行接口通信,將FPGA作為ARM主機的一個存儲設備,通過ARM地址資源訪問FPGA接口,從而實現ARM與FPGA的并行數據交互。
為了提升FPGA與ARM之間數據傳輸速率,在FPGA內部的FIFO電路中調用雙口RAM模塊,將該雙口RAM分成若干個分區,其中緩存區A0和緩存區B0用來存儲來自ARM的網絡密文數據,緩存區A1和緩存區B1用來存儲來自FPGA傳輸給ARM的解密后的數據。根據功能要求,為實現收發數據的單向碼流達到20 Mbps,采用了數據乒乓緩存操作原理,即將存儲數據收發分成“A0/B0組”和“A1/B1組”,使得網絡數據的收發不間斷傳輸,從而提高數據吞吐能力[5]。雙口RAM內部地址空間分配乒乓操作原理框圖如圖5所示。

圖5 雙口RAM地址空間分配
ARM向FPGA發送數據過程如下:來自ARM的數據按照幀格式長度存入內部雙口RAM緩存區A0(或B0)中,同時FPGA通過控制邏輯預先讀取字節緩存區B0的數據,將指定地址的時碼數據提取后存入內部寄存器中,將剔除時碼信息的剩余幀字節數據通過并串轉換后輸出并進行加密。下一次數據操作與前一次相似,即:先將網絡密文數據保存在緩存區B0中,讀取并發送緩存區A0中的數據,通過控制切換完成網絡PCM數據發送的乒乓操作。
ARM從FPGA接收數據過程如下:接收來自信道的PCM數據按照幀格式長度存入外部SRAM緩存區A1(或B1)中,將內部寄存器緩存的時碼信息與輸入比特流組合成對應字節數,保存到外部SRAM緩存區A1中,然后通過半區指示和中斷信號通知ARM處理器讀取數據,繼續接收數據,同樣加入時碼信息后,存入緩存區B1中,存滿后通知ARM將數據讀取,通過控制切換完成信道PCM數據接收的乒乓操作。

圖6 ARM顯示處理 流程圖
ARM顯示處理模塊是整個傳輸系統的主控制器,主要完成參數存儲、系統狀態監測、重要參數實時顯示、數據本地存儲和網絡上傳等功能。根據流驅動的特點,通過在應用層調用相關函數,用C++語言實現整體的設計,具體的設計主流程如圖6所示。首先,系統加電初始化,ARM主機自檢,并掃描FPGA、網口狀態信息,然后讀取本地Flash存儲器中的配置信息,開放中斷。當FPGA的雙口RAM半滿時,產生中斷信號,ARM讀取RAM中緩存的PCM數據字。當ARM收到整幀PCM字后,根據預存配置信息挑選相應的飛行參數信息,完成液晶屏顯示、本地存儲和網絡上傳工作。
通過搭建測試環境對系統的軟硬件功能和性能進行了驗證。系統輸入采用串口調試助手發送一組固定幀結果的遙測PCM數據流,經過本文傳輸系統處理后,得到液晶屏顯示結果以及本地存儲的數據文件。使用UltraEdit軟件打開和分析存儲的數據文件,經同步比較輸入輸出內容,可以發現,幀頭、幀尾標志分別為EB90H、146FH,固定幀數據為3C92 1B08 069D 0843H,附加4個字節幀計數器。大量試驗表明,本系統傳輸PCM數據穩定可靠,實時傳輸能力強,滿足了設計要求。數據格式如圖7所示。

圖7 PCM數據存儲結果

[1] Altera Corporation.Cyclone device handbook,2008.
[2] 孫秋野,孫凱,馮健.ARM嵌入式系統開發典型模塊[M].北京:人民郵電大學出版社,2007.
[3] 單立超,謝雪松.基于FPGA的混合遙測數據復接技術的研究[J].電子技術應用, 2013,38(10):12-14.
[4] 吳靜.基于USB總線的PCM解調器研制[J].科學技術與工程,2009,9(8):2068-2070.
[5] 田寶泉,李國星.機載PCM數據流實時監控顯示系統的設計[J].科學技術與工程,2013,13(19):34-37.
嚴平(工程師),主要從事嵌入式軟件設計和測試方面的研究。