張開生 陳 明 李春化
(西安電子工程研究所 西安 710100)
現代雷達系統中,雷達控制計算機和信號產生板之間的控制信號主要是通過串口方式進行傳輸的,雖然串口傳輸方式電路結構簡單、技術成熟且使用方便,但是串口傳輸方式具有其自身固有缺陷:傳輸距離受限、傳輸速度不高、抗干擾能力差。隨著我國雷達技術的發展以及雷達組網的建設,大多數固定式雷達都架設在沒有遮擋的較高塔臺上,本地終端計算機安裝在距離雷達較遠的雷達操作室內,同樣機動式雷達在結構設計上也用屏蔽網將雷達操控區與雷達機柜分割開,這樣可以減弱雷達工作時微波輻射和噪聲干擾[1]。同時,由于計算機技術和互聯網技術的不斷發展,越來越多的設備需要網絡接入功能,以實現設備的遠程監控[2]。因此,串口傳輸方式由于其固有缺陷,已經越來越難以滿足系統的要求,需要一種新的控制信號傳遞方式。
針對串口控制的缺點,本文提出了基于SOC的雷達遠程控制器,整個系統以Xilinx的Virtex-V FXT芯片為硬件核心,利用FPGA內部的邏輯資源搭建一個以軟核CPU為核心的嵌入式系統,通過移植操作系統和網絡協議棧,為系統提供多任務處理能力和網絡接入能力。在遠端的操控室中對雷達參數進行設置,然后將雷達參數通過以太網發送給信號處理器,從而實現對信號處理器的遠程控制和參數修改。這種控制方式同傳統的串口相比具有:傳輸距離遠、傳輸速率高且抗干擾能力強的特點。
本文主要針對現在雷達系統中以FPGA為基礎的信號處理器,目前大多數信號處理都是基于FPGA器件,因為FPGA器件在底層算法實現上具有處理速度快、可重構性強和可編程的特點。在信號處理中,FPGA主要擔當著中頻數據的正交分解、采樣速率轉換、FFT等一些運算結構簡單、數據處理量大和處理速度高的算法實現。在現代雷達系統中,根據特定的環境或者要求快速可靠的對算法的某些參數進行配置、修改或選擇顯得尤為重要。
目前對FPGA內部參數的配置、修改或選擇主要是通過串口實現,但是串口傳輸距離受到限制,同時也只能進行點到點通訊,由于以太網傳輸方式相對串口傳輸方式的優點,可以將串口傳輸改為以太網傳輸。
本設計的基礎是利用FPGA內部邏輯資源編寫雷達信號處理算法,當邏輯資源有富余的情況下,在FPGA內部嵌入軟核CPU。所謂軟核是完全用HDL(硬件描述語言)描述的實現特定功能的IP,它與實現技術無關,可以按使用者的需要進行修改,需要用戶進行綜合,并在其SOC上實現[3]。軟核雖然占用了可編程邏輯器件的邏輯資源,但是為可編程邏輯器件提供了控制能力,增強了整個系統的靈活性。本設計采用的軟核CPU是Xilinx公司提供的MicroBlaze。系統總體設計思路是以硬件為基礎,在硬件平臺上移植實時操作系統作為軟件開發的系統平臺,在硬件和操作系統的基礎上進行應用層的開發,從而實現硬件與軟件的有機結合,并擴展系統功能,使得整個系統具有結構層次分明的特點。為了提升系統的靈活性、降低開發和調試難度,所有硬件和軟件的設計均采用模塊化思想。在具有完整雷達信號處理器功能的硬件基礎上,以FPGA為核心并輔以必要的外圍電路模塊構建嵌入式硬件服務器平臺:控制計算機作為遠程控制的客戶端,服務器和客戶端作為系統的硬件平臺。系統總體框圖如圖1所示。
嵌入式硬件平臺由軟核CPU、程序和數據存儲器、中斷控制器、標準輸入輸出設備、網絡傳輸設備、電源模塊和其他外圍設備組成。其中大部分硬件設備在FPGA內部都提供了相應的控制器。因此只需要調用相應的控制器并輔助以外圍電路就可以很方便的搭建嵌入式系統硬件平臺。

圖1 系統總體框圖
操作系統是連接底層硬件和用戶之間的橋梁,用戶通過操作系統的用戶界面輸入命令,操作系統則對命令進行解釋,驅動硬件設備,實現用戶要求[4]。因此操作系統對嵌入式系統而言是必不可少的。為了提高任務響應速度,本設計移植Xilinx公司的xilkernel作為操作系統,該操作系統移植方便、實時性強、并且Xilinx公司提供了良好的技術支持;在移植完操作系統之后,在操作系統基礎上添加網絡協議,為系統提供網絡接入功能。由于嵌入式系統的存儲空間受限,本設計選用源碼開放的LWIP作為網絡協議棧,另外該協議棧移植簡單,功能完善,很適合嵌入式系統。在硬件平臺的基礎上移植了操作系統和網絡協議之后,整個嵌入式軟件開發平臺就已建立起來,開發者就可以在此平臺上進行應用層面的開發。
對于應用層開發,為了說明本設計在雷達信號處理器中的應用,實現了一個雷達發射信號脈沖參數的遠程控制,其原理是在硬件層面中添加用戶自定義的IP核作為遠程控制的硬件。該IP核主要完成雷達發射信號脈沖的產生,通過在遠程控制計算機上運行的客戶端程序對發射信號脈沖參數進行設置,同時在雷達信號處理器中運行服務器程序,為客戶端提供服務響應,當客戶端設置的數據通過以太網傳輸到雷達信號處理器后,服務器程序接收配置數據然后更改IP核參數,從而實現信號處理器的遠程控制;另外服務器程序也可以為客戶端程序提供狀態檢測服務,實現雷達信號處理器的遠程監控。
本系統采用的硬件平臺式Xilinx的ML507評估套件,其搭載的核心芯片為Vertex-5 FXT。該芯片提供了豐富的硬件資源,內部集成以太網控制器硬核,片內Block RAM由36Kbit存儲塊組成(最多可達10Mbit),4個以太網MAC模塊和內嵌6個PLL和12個DCM(時鐘管理管道)用于滿足復雜的時鐘和時鐘域需求。開發工具選擇Xilinx公司提供的 EDK(Environment Development Kit)和 ISE,EDK主要完成嵌入式系統搭建和自定義IP核總線接口的創建,ISE主要完成對自定義IP核代碼編寫與功能仿真調試。
FPGA內部有一個PLBv46 master總線,所有內部模塊都通過PLBv46總線slave接口進行連接,同時所有內部模塊均使用內部的邏輯資源或固有硬件資源。CPU選擇Xilinx公司的MicroBlaze,它是Xilinx公司提供的一款硬件功能可剪裁的軟核CPU,該CPU采用哈佛RISC架構,具有32位獨立的數據總線和地址總線,專門針對Xilinx的FPGA進行了優化。MicroBlaze使用32位指令集,3級流水,有32個32位的通用寄存器,可選的硬件乘法器,不支持用戶自定義指令、協處理器、Cache、MMU,外部總線主要使用IBM的CoreConnect標準[5]。
在雷達信號處理器基本功能完整的情況下,以FPGA為核心構建嵌入式系統,整個系統硬件組成如圖2所示。該系統由一片DDR2芯片用于存放和運行嵌入式系統的程序,其由內部的多端口控制器通過總線進行控制;一片Marvell 88E111芯片作為網絡芯片,該芯片由內部的TEMAC進行控制,實現網絡數據的收發;中斷控制器實現各個模塊的中斷管理并向CPU發送中斷請求;定時器為操作系統提供時鐘基準;串口用于調試信息的輸出和輸出;嵌入式系統的搭建過程詳見參考文獻[6]。

圖2 硬件系統組成框圖
對于自定義IP核,采用軟硬件協同的方法實現對自定義IP核的訪問與控制,自定義IP核主要完成雷達信號處理器發射脈沖和定時信號的產生。該IP核主要利用EDK(嵌入式開發套件)軟件提供的IP核接口軟件創建IP核總線接口,內部邏輯在ISE軟件中通過verilog語言實現功能描述,其主要功能是輸出不同形式的脈沖重復信號,其占空比、重復周期、輸出模式以及其他參數均可以通過IP核內部寄存器進行修改。對內部寄存器的修改可以通過編寫相應的驅動程序來完成,圖3的功能仿真圖顯示的是:將輸入的ADC_Clk進行2分頻作為發射脈沖信號的計數時鐘ADC_div_clk,輸出的發射脈沖信號為8個計數周期,高脈沖為2個計數周期。

圖3 功能仿真
選擇EDK中內嵌的SDK(Software Development Kit)作為軟件開發環境,為了實現各種任務的切換和處理,需要在硬件平臺的基礎上移植操作系統,為了在規定的時間內,對服務進行響應,需要一個實時操作系統,對于本平臺可以移植ucos-II或者Xilinx公司提供的xilkernel,前者是一個完全開源的實時操作系統,而后者的內核操作和任務調度函數是通過函數庫的形式提供給用戶的,但是這兩個操作系統在應用層系統函數上差別不大,為了較少移植難度,選擇Xilinx公司的xilkernel作為本系統的操作系統。另一方面為了實現網絡數據的傳輸,需要移植網絡傳輸協議棧,選用的LWIP協議棧為系統提供網絡服務,LWIP協議是一套用于嵌入式系統的開放源碼的輕型TCP/IP協議棧,被設計用于存儲容量有限的嵌入式系統[7],LWIP協議在設計之初就考慮了移植問題,同操作系統之間提供了專用的函數接口,在特定操作系統上移植只需要利用操作系統的系統函數實現接口函數功能即可,另外對于選定的PHY芯片,需要移植相應的網絡芯片驅動程序。
對于發射脈沖觸發信號IP核,編寫相應的IP核驅動程序,實現對內部寄存器的讀取,從而為上層軟件提供標準的接口函數,實現對IP核的控制。
在移植完操作系統和網絡協議棧之后,利用操作系統函數、網絡協議函數和發射脈沖信號編寫遠程控制函數,在嵌入式系統上利用網絡協議搭建一個網絡服務器,遠程控制計算機上編寫客戶端程序,客戶端與服務器之間通過TCP協議進行可靠連接,客戶端與服務器之間定義一套相應的通信協議,實現客戶端和服務器之間的通信處理。控制流程為:

圖4 處理流程圖
a.在控制計算機上通過客戶端程序對脈沖信號進行參數設置;
b.由于嵌入式系統內部的軟核CPU效率較低,因此設置的參數與寄存器值的轉換在控制計算機上完成;
c.轉換之后的寄存器值通過網絡傳送給服務器
d.服務器接收到相應的命令后,對命令進行解析并對相應的寄存器進行修改,從而實現對脈沖信號參數的控制;
同時服務器程序也可以讀取IP核的硬件信息或雷達信號處理器的其他信息,將信息進行打包然后傳給客戶端,客戶端接收到數據之后對數據包進行解析,最后顯示接收到的狀態信息,從而實現雷達信號處理器的遠程監控。
客戶端程序運行在搭載Linux系統的控制計算機中,利用Linux系統提供的函數編寫客戶端程序,實現參數的設置、寄存器值轉換、寄存器值發送和參數接收功能。服務器程序通過接收客戶端發送的功能號和寄存器值,對相應的寄存器進行讀取和更新,在完成相應操作之后向客戶端發送應答信息和狀態信息,客戶端實現狀態信息的顯示。
測試時在客戶端設置脈沖發射信號周期為100μs,脈沖寬度為40μs,客戶端輸入數據截圖見圖5。將輸入數據轉換為IP核內部寄存器存儲格式,將設置的參數通過網絡傳輸到服務器端,服務器接收到寄存器信息后更新寄存器值,實現參數修改。實際輸出發射脈沖信號如圖5所示。

圖5 周期100μs脈沖寬度40μs輸出實驗圖
圖5中輸入時鐘為62.5MHz,分頻系數為8,分頻之后得到分頻后時鐘為7.812MHz,將該時鐘作為計數器的計數時鐘,由于計數器的值只能為整數,所以需要對計算出的計數器閾值進行截斷處理,計數器閾值計算方法如下式:

其中N為計數器閾值,T為要輸出脈沖寬度(單位:μs);fCNT為計數器輸入時鐘頻率(單位:MHz),此處為7.812。以40μs脈沖寬度為例,理論計數器值為312.48,但由于數據的截斷,得到的N值實際為312。因此由于數據截斷所引起的最大誤差為:

可以看出Errmax同輸入時鐘分頻系數和輸入時鐘有關,對于計數器而言,分配系數越小,由數據截斷所引起的誤差越小,本實驗中理論最大誤差為:-0.128μs。試驗中實際輸出脈沖周期為99.96μs,脈沖寬度為39.92μs,實際輸出信號在理論誤差范圍內,說明通過遠程控制方式對雷達信號處理器參數控制的可行性。
本文討論了基于FPGA的SOC的雷達信號處理器遠程控制系統的實現方法,在信號處理器內部搭建服務器平臺,同外界信息交換通過以太網實現,大大提高了系統設計的靈活性,同時提高了軟件和硬件的擴展性和控制能力。在標準的傳輸協議的下,可以將控制計算機對雷達信號處理器的控制與監控變得模塊化,使得硬件和軟件同時具有可剪裁性。如果將雷達信號處理器中需要控制的模塊添加一個標準的總線接口,將其連接到嵌入式系統中,即可實現對接入模塊的遠程控制。因此,本設計思想在雷達信號處理器中具有廣闊的應用前景。
[1]范暉,曹俊武,徐謹,汪旭東.網絡化顯控終端系統的軟件設計[J].測控技術.2011,30(8):87-90.
[2] 梅大成,柴志勇.基于SOPC的以太網實時數據采集系統設計與實現[J].計算機應用.2009,29(12):108-112.
[3]楊強浩.基于EDK的FPGA嵌入式系統開發[M].北京:機械工業出版社.2008.
[4]楊剛,肖宇彪,陳江等.32位嵌入式系統與SoC設計導論[M].北京:電子工業出版社,2006.
[5]趙峰,馬迪銘.FPGA上的嵌入式系統設計實例[M].陜西:西安電子科技大學出版社,2008.
[6]張開生,陳明,周子超.FPGA上實時操作系統uCOS-II的實現.電子科技.2013,(10):36-39.
[7]Adam Dunkels.Design and implementation of the LwIP TCP/IP stack[M].Swedish Institute of Computer Science,2001.