陶吉懷 李 浩
(電子科技大學 成都 611731)
雷達數(shù)據(jù)采集及圖像顯示是雷達的一個基本應用,普遍應用于軍事、氣象預測、環(huán)境監(jiān)測、船舶導航等領域。雷達數(shù)據(jù)具有實時、高速的特點。一般說來,對雷達信號采樣的時鐘頻率在100MHz以上,雷達數(shù)據(jù)采集和處理單元的數(shù)據(jù)吞吐量要求在Gbits/s以上。因此,要實現(xiàn)一個雷達數(shù)據(jù)采集和圖像顯示系統(tǒng),對處理器的處理速度要求很高。傳統(tǒng)的雷達數(shù)據(jù)采集和圖像顯示系統(tǒng)采用的是微處理器+FPGA(或DSP)方案,利用微處理器實現(xiàn)操作系統(tǒng)、雷達GUI和顯示器控制,利用FPGA(或DSP)實現(xiàn)高速雷達數(shù)據(jù)采集和處理,這種方案的缺點是增加了系統(tǒng)的復雜度,成本也比較高。
SOPC[1]是一種特殊的片上系統(tǒng),建立在可編程邏輯技術的基礎上,盡可能將一個大而完整的電子系統(tǒng)實現(xiàn)在一塊FPGA硅片上,具有硬件可裁剪、可擴充、可升級,軟件在系統(tǒng)可編程的特點,使得設計的系統(tǒng)在規(guī)模、功能、體積、性能、上市周期、開發(fā)成本等方面有著很大的優(yōu)勢。本文基于SOPC技術,提出一種在主頻較低的軟核處理器上實現(xiàn)雷達數(shù)據(jù)采集和圖像大屏幕顯示的方法。
以 Xilinx 的 microblaze[2]軟核處理器為例,雷達數(shù)據(jù)采集和圖像顯示的SOPC系統(tǒng)框圖如圖1所示。microblaze是一個32位的處理器,它通過本地存儲器總線和指令、數(shù)據(jù)緩存相連,實現(xiàn)對指令、數(shù)據(jù)的預取和緩存,通過外設局部總線和各個外設相連,實現(xiàn)和外設的高速率數(shù)據(jù)傳輸。DMA(直接存儲器訪問)可以實現(xiàn)從外設到存儲器的直接數(shù)據(jù)傳輸,而不需要處理器直接參與。
圖1 SOPC系統(tǒng)框圖
雷達數(shù)據(jù)采集及處理模塊、顯示控制器模塊、DMA模塊是為實現(xiàn)本設計而特別設計添加的模塊。
首先,使用FPGA硬件邏輯設計實現(xiàn)雷達數(shù)據(jù)采集和處理。通過FPGA硬件實現(xiàn)雷達上單元控制、ADC采樣控制和雷達數(shù)據(jù)處理。將處理后的雷達數(shù)據(jù)寫入到一個DMA可訪問的寄存器中。
其次,使用FPGA硬件邏輯設計實現(xiàn)顯示控制器[3,4]。處理器只負責將顯存數(shù)據(jù)送到顯示控制器模塊,然后由FPGA硬件完成顯存數(shù)據(jù)的管理和顯示接口的驅動。
最后,使用DMA傳輸。DMA負責將雷達數(shù)據(jù)采集、處理后數(shù)據(jù)通過DMA通道傳到內存中。
通過以上辦法,可以大大減輕處理器的負擔,使得在較低的處理器速度下即可實現(xiàn)系統(tǒng)的功能。而且由于顯示控制由FPGA硬件實現(xiàn),顯示器分辨率的大小對處理器的負擔影響很小,因此在處理器較低的情況下可以支持大屏幕的圖像顯示。
雷達數(shù)據(jù)采集及處理模塊內部框圖如圖2中虛線部分所示,主要由總線接口控制、指令譯碼、單元控制、ADC控制、數(shù)據(jù)處理5部分組成。
圖2 雷達數(shù)據(jù)采集及處理模塊框圖
總線接口控制模塊負責與外設局部總線進行交互,完成傳輸請求、應答、數(shù)據(jù)傳輸、中斷請求等操作??偩€接口控制模塊為指令譯碼模塊提供一個固定的接口,用于指令譯碼模塊和總線接口控制模塊進行通信,這個接口如圖3所示。
圖3 指令譯碼模塊和總線接口控制模塊接口
指令譯碼模塊負責:從接口控制模塊接收指令,對指令進行譯碼,并將相應的譯碼結果送給ADC控制模塊、雷達相關單元控制模塊和雷達數(shù)據(jù)處理模塊;將雷達數(shù)據(jù)處理模塊處理后的數(shù)據(jù)和雷達相關單元的狀態(tài)信息發(fā)送給總線接口控制模塊。
雷達相關單元控制模塊負責對雷達相關單元的控制,包括雷達相關單元的初始化、自檢,設置雷達脈沖頻率、脈沖寬度、轉速等,并實時地向控制臺提供雷達相關單元的工作狀態(tài)信息。
雷達數(shù)據(jù)處理模塊從控制臺獲取數(shù)據(jù)處理的相關參數(shù),對雷達相關單元的數(shù)據(jù)進行以下處理:對雷達的方位角脈沖信號進行提取,計算出雷達當前的方位角;對采樣后的雷達回波信號進行內插/抽取、濾波、極坐標到直角坐標變換等處理。
顯示控制器相當于一塊獨立顯卡,其內部框圖如圖4中虛線部分所示,主要由5個模塊組成,分別為外設局部總線接口控制模塊、指令譯碼模塊、顯示接口控制模塊、數(shù)據(jù)緩存模塊和顯存控制模塊。
圖4 顯示控制器結構框圖
指令譯碼模塊負責:從總線接口控制模塊獲得處理器指令和數(shù)據(jù),并對指令進行譯碼,將譯碼結果和數(shù)據(jù)相應地送給顯示接口控制模塊和顯存控制模塊;將顯示接口控制模塊和顯存控制模塊的工作狀態(tài)信息送給總線接口控制模塊。指令譯碼模塊和總線接口控制模塊的接口中,數(shù)據(jù)信號Bus2IP-Data[31:0]和 IP2Bus-Data[31:0]各數(shù)據(jù)位的定義如下:
Bus2IP-Data[31]:指示 Bus2IP-Data[7:0]的數(shù)據(jù)類型,當該位為“0”時,Bus2IP-Data[7:0]是彩色值,當該位為“1”時,Bus2IP-Data[7:0]是命令,包括復位SRAM、清屏、清除顯存數(shù)據(jù)、開始繪制圖像、停止繪制圖像等。
Bus2IP-Data[30:19]:顯示器上橫坐標X對應顯存地址的高12位;
Bus2IP-Data[18:8]:顯示器上縱坐標 Y對應顯存地址的低11位;
Bus2IP-Data[7:0]:顯示器上坐標為 X、Y 的點的彩色值;
IP2Bus-Data[31:8]:保留;
IP2Bus-Data[7:0]:定義顯示接口控制和顯存控制的工作狀態(tài)。
顯示接口控制模塊受指令譯碼及控制模塊控制,與顯存控制模塊進行協(xié)調,從數(shù)據(jù)緩存區(qū)獲取數(shù)據(jù),控制產(chǎn)生顯示器接口時序,驅動顯示器描繪圖像。
數(shù)據(jù)緩存模塊實現(xiàn)對顯存數(shù)據(jù)的預取。在每個行同步間隙,顯示接口控制模塊向顯存控制模塊發(fā)出預取顯存數(shù)據(jù)的請求,顯存控制模塊將相應地址上的顯存數(shù)據(jù)讀出,放到數(shù)據(jù)緩存區(qū)。由于顯示接口控制的時鐘和顯存控制的時鐘通常不一樣,設置這個數(shù)據(jù)緩存區(qū),保證顯示接口控制模塊能夠及時獲得顯存的數(shù)據(jù)。
顯存控制模塊負責顯存數(shù)據(jù)的管理,根據(jù)指令譯碼結果,對顯存中的數(shù)據(jù)進行清除、讀寫、更新等操作,并配合接口控制模塊,將顯存數(shù)據(jù)讀出,寫入顯存數(shù)據(jù)緩存區(qū)。
一般說來,DMA傳輸相關的寄存器數(shù)據(jù)包括傳輸?shù)脑吹刂?、目的地址、工作模式、?shù)據(jù)長度、DMA中斷模式。以Xilinx的中央DMA控制器[4]為例,它是一個單通道的支持外設到外設、外設到內存、內存到外設、內存到內存的DMA,其內部結構框圖如圖5所示。
圖5 Xilinx平臺DMA控制器框圖
為了保證雷達數(shù)據(jù)采集和處理模塊能被DMA訪問,在將雷達數(shù)據(jù)和處理模塊掛載到外設局部總線上的時候,需要設置一個軟件可訪問的寄存器。
本設計中,將DMA的工作模式設定為數(shù)據(jù)源地址固定、目的地址遞增模式,源地址為雷達數(shù)據(jù)采集及處理模塊內可訪問的寄存器地址,目的地址設置為內存的一段地址,長度設置為坐標變換后一條雷達掃描線上的點數(shù)。
為驗證該方法的可行性,本設計以Xilinx的芯片和開發(fā)環(huán)境作為開發(fā)平臺。使用Spartan6系列芯片的開發(fā)板作為實驗硬件平臺,使用Xilinx Platform Studio(XPS)開發(fā)SOPC硬件平臺,使用Xilinx Software Development Kit(SDK)生成硬件平臺板級支持包(BSP)、設備樹信息文件和調試程序,利用GNU交叉編譯工具編譯linux內核,并在linux環(huán)境下實現(xiàn)雷達用戶界面的移植。
首先將linux系統(tǒng)移植到定制的SOPC硬件平臺上,然后進行雷達數(shù)據(jù)采集及處理模塊、顯示控制器模塊的驅動開發(fā)[6],最后是雷達GUI的設計和在嵌入式linux的移植以及DMA的配置。
本設計中,利用FPGA硬件邏輯模擬產(chǎn)生雷達回波信號和方位角信號,ADC的采樣速率為100MHz,采樣位寬為8bits,microblaze軟核處理器主頻為150MHz,外設局部總線數(shù)據(jù)位寬為32bits。雷達數(shù)據(jù)采集及處理模塊對模擬的雷達信號進行采集和相關處理后,由DMA通道傳送到內存當中,雷達GUI軟件獲取內存中雷達數(shù)據(jù),通過調用顯示控制器驅動程序繪制出雷達圖像。雷達圖像在分辨率為1024*768的顯示器上繪制的結果如圖6所示。
圖6 模擬雷達圖像繪制結果
實驗結果表明,雷達GUI軟件在SOPC系統(tǒng)中運行順暢,雷達圖像的繪制過程沒有出現(xiàn)卡殼現(xiàn)象,驗證了本文提出的方法的可行性。
本文通過使用FPGA硬件邏輯實現(xiàn)雷達數(shù)據(jù)采集、處理、圖像顯示控制器和DMA傳輸?shù)氖褂?,在主頻較低的SOPC軟核處理器上實現(xiàn)了雷達數(shù)據(jù)采集和圖像的大屏幕顯示,證明了該方法的可行性。
該方法不僅局限于雷達數(shù)據(jù)采集和圖像顯示應用,
還可以應用于一般的數(shù)據(jù)采集和圖像顯示系統(tǒng),并且對基于SOPC硬核處理器系統(tǒng)同樣適用。
[1]江國強.SOPC技術與應用[M].北京:機械工業(yè)出版社,2006,9.
[2]Xilinx Company.MicroBlaze Processor Reference Guide [EB/OL].Embedded Development Kit.EDK 13.2.http://www.xilinx.com.
[3]王鳴浩,吳小霞.基于FPGA的通用液晶顯示控制器的設計和實現(xiàn)[J].液晶與顯示,2012,27(1).
[4]舒勝坤,王文慧,林樹.基于FPGA的TFT-LCD數(shù)字顯示控制器設計[J].電訊技術,2008,48(6):52-55.
[5]Xilinx Company.LogiCORE IP XPS Central DMA Controller(v2.03a)[EB/OL].DS579 December 14,2010.http://www.xilinx.com.
[6]宋寶華.Linux設備驅動開發(fā)詳解[M].北京:人民郵電出版社,2008.2.