基于SOPC的雷達采集和圖像顯示系統
1前言
本文引用地址:http://dyxdggzs.com/article/201612/326806.htm雷達數據采集及圖像顯示是雷達的一個(gè)基本應用,普遍應用于軍事、氣象預測、環(huán)境監測、船舶導航等領(lǐng)域。雷達數據具有實(shí)時(shí)性、高速性的特點(diǎn)。一般說(shuō)來(lái),對雷達信號采樣的時(shí)鐘頻率在100MHz以上,雷達數據采集和處理單元的數據吞吐量要求在Gbits/s以上。因此,要實(shí)現一個(gè)雷達數據采集和圖像顯示系統,對處理器的處理速度要求很高。傳統的雷達數據采集和圖像顯示系統采用的是微處理器+FPGA(或DSP)方案,利用微處理器實(shí)現操作系統、雷達GUI和顯示器控制,利用FPGA(或DSP)實(shí)現高速雷達數據采集和處理,這種方案的缺點(diǎn)是要想實(shí)現雷達圖像在800*600以上分辨率的大屏幕顯示比較困難,要么有較高的處理器速度,要么有獨立顯卡的支持,這樣增加了系統復雜度和成本。
SOPC 是一種特殊的片上系統,建立在可編程邏輯技術(shù)的基礎上,盡可能將一個(gè)大而完整的電子系統實(shí)現在一塊FPGA硅片上,具有硬件可裁剪、可擴充、可升級,軟件在系統可編程的特點(diǎn),使得設計的系統在規模、功能、體積、性能、上市周期、開(kāi)發(fā)成本等方面有著(zhù)了很大的優(yōu)勢?;赟OPC技術(shù)的軟核處理器主頻雖然不是很高,目前Xilinx公司的microblaze處理器最高主頻為210MHz、240DMIPS的運算能力,Altera公司的NIOS II處理器最高主頻為340MHz、290DMIPS的運算能力,但是由于其極強的靈活性,可以通過(guò)軟硬件協(xié)同設計,在處理器速度不高的情況下,解決需要高速度處理器才能完成的問(wèn)題。
本文基于SOPC技術(shù),提出一種在主頻較低的軟核處理器上實(shí)現雷達數據采集和圖像大屏幕顯示的方法。
2總體方案設計
本設計采用microblaze軟核處理器作為開(kāi)發(fā)平臺,SOPC系統框圖如圖1所示。
本設計通過(guò)以下辦法,解決在主頻較低的SOPC軟核處理器上實(shí)現雷達數據采集、處理和大屏幕圖像顯示的問(wèn)題。
首先,使用FPGA硬件邏輯設計實(shí)現雷達數據采集、處理和顯示控制器。雷達數據采集、處理模塊負責對雷達上單元、ADC芯片的控制和對雷達數據的處理。顯示控制器模塊完成顯存數據的管理和顯示器的驅動(dòng)。
其次,使用DMA傳輸。DMA負責將雷達數據采集、處理后數據通過(guò)DMA通道送到內存中。
最后,根據SOPC硬件可配置、可裁剪的特性,將雷達數據采集和處理模塊、顯示控制模塊和DMA模塊作為microblaze處理器的設備掛載到外設局部總線(xiàn)上[4]。
由于雷達數采集、處理模塊和顯示控制模塊的內部邏輯都由FPGA硬件邏輯完成,微處理器不需直接對雷達上單元、ADC進(jìn)行控制,不需進(jìn)行復雜的雷達數據處理,不用對顯存數據進(jìn)行管理,不用控制產(chǎn)生高速的信號驅動(dòng)顯示器,從而大大減輕了處理器的負擔,加上DMA傳輸的使用,處理器只需要處理DMA傳輸的請求和傳輸完成中斷,從而使處理器從繁重的數據傳輸中解脫了出來(lái)。通過(guò)以上辦法,處理器的負擔已經(jīng)變得很輕,使得較低的處理器速度即可處理系統的任務(wù)。而且顯示控制由FPGA硬件實(shí)現還有個(gè)優(yōu)點(diǎn)是,使得顯示器分辨率的大小對處理器的負擔影響很小,從而在處理器較低的情況下,同樣可以支持大屏幕的圖像顯示。
3系統硬件設計
SOPC系統的硬件設計包含兩層含義,一個(gè)是SOPC所依賴(lài)的硬件平臺,另一個(gè)是在FPGA內部搭建的SOPC軟件所依賴(lài)的硬件環(huán)境。
本設計中,SOPC所依賴(lài)的硬件平臺如圖2所示:
FPGA內部搭建的SOPC硬件平臺如圖3所示:
其中,雷達數據采集和處理、顯示控制器、DMA模塊是為實(shí)現本設計而特別定制的模塊。下面著(zhù)重介紹以上3個(gè)模塊。
3.1 雷達數據采集及處理模塊設計
雷達數據采集及處理模塊主要由總線(xiàn)接口控制、控制臺、雷達上單元控制、ADC控制、雷達數據處理5部分組成,其內部框圖如圖4中虛線(xiàn)部分所示:
總線(xiàn)接口控制模塊負責與處理器總線(xiàn)進(jìn)行交互,它必須遵循處理器總線(xiàn)通信協(xié)議,包括傳輸請求、應答、數據傳輸、中斷請求。這部分協(xié)議由平臺產(chǎn)生,用戶(hù)只需進(jìn)行相關(guān)的配置。
控制臺負責ADC控制模塊、雷達上單元控制模塊、雷達數據處理模塊的控制。具體包括:將相關(guān)用戶(hù)控制信息交給ADC控制模塊,對ADC的工作狀態(tài)進(jìn)行控制;讀取雷達上單元控制模塊的信息,將它交給總線(xiàn)控制接口模塊,并從總線(xiàn)接口控制模塊獲得雷達上單元相關(guān)的控制信息,送到雷達上單元控制模塊;將雷達數據處理相關(guān)的信息交給雷達數據處理模塊,作為雷達數據處理的參數。
雷達上單元控制模塊負責對雷達上單元的控制,包括雷達上單元的初始化、自檢,設置雷達脈沖頻率、脈沖寬度、轉速等,并實(shí)時(shí)地向控制臺提供雷達上單元的工作狀態(tài)信息。
雷達數據處理模塊的內部處理流程如圖5所示。雷達數據處理模塊從控制臺獲取數據處理的相關(guān)參數,對雷達上單元的數據進(jìn)行以下處理:對雷達的方位角脈沖信號進(jìn)行提取,計算出雷達當前的方位角;對采樣后的雷達回波信號進(jìn)行內插/抽取、濾波、增益控制、極坐標到直角坐標變換處理。
3.2 顯示控制器設計
顯示控制器相當于一塊獨立顯卡,其內部如圖6中所示,主要由5個(gè)模塊組成,分別為處理器總線(xiàn)接口控制模塊、指令譯碼模塊、顯示接口控制模塊、數據緩存模塊和顯存控制模塊。
指令譯碼模塊主要負責:從總線(xiàn)接口控制模塊獲得處理器指令和數據,并對指令進(jìn)行譯碼,將譯碼結果和數據送給顯示接口控制模塊和顯存控制模塊;將顯示接口控制模塊和顯存控制模塊的工作狀態(tài)信息送給總線(xiàn)接口控制模塊。
顯示接口控制模塊受指令譯碼及控制模塊控制,與顯存控制模塊進(jìn)行協(xié)調,從數據緩存區獲取數據,控制產(chǎn)生顯示器接口時(shí)序,驅動(dòng)顯示器描繪圖像。
數據緩存模塊實(shí)現對顯存數據的預取。在每個(gè)行同步時(shí)隙,顯示接口控制模塊向顯存控制模塊發(fā)出預取顯存數據的請求,顯存控制模塊將相應地址上的顯存數據讀出,放到數據緩存區。由于顯示接口控制的時(shí)鐘和顯存控制的時(shí)鐘通常不一樣,設置這個(gè)數據緩存區,保證顯示接口控制模塊能夠及時(shí)獲得顯存的數據。
顯存控制模塊負責顯存數據的管理,根據指令譯碼結果,對顯存中的數據進(jìn)行清除、讀寫(xiě)、更新等操作,并配合接口控制模塊,將顯存數據讀出,寫(xiě)入顯存數據緩存區。
3.3 DMA傳輸設計
一般說(shuō)來(lái),DMA傳輸相關(guān)的寄存器包括傳輸的源地址、目的地址、工作模式、數據長(cháng)度、DMA中斷模式。本設計使用Xilinx的中央DMA控制器(XPS Central DMA Controller) [5],它是一個(gè)單通道的支持外設到外設、外設到內存、內存到外設、內存到內存的DMA,其內部結構框圖如圖7所示。使用該DMA控制器,需要配置以下寄存器:
軟件復位寄存器(RST):用于對DMA控制進(jìn)行軟件復位;
DMA控制寄存器(DMACR):設置DMA的工作模式;
源地址(SA):DMA傳輸的源地址;
目的地址(DA):DMA傳輸的目的地址;
長(cháng)度(LENGTH):DMA傳輸的數據長(cháng)度;
中斷使能寄存器(IER):設置是否使能DMA傳輸錯誤或傳輸完成時(shí)產(chǎn)生中斷。
本設計中,將DMA的工作模式設定為數據源地址固定,目的地址遞增,源地址為雷達數據采集及處理模塊的數據發(fā)送寄存器的地址,目的地址設置為內存的地址,長(cháng)度設置為坐標變換后一條雷達掃描線(xiàn)上的點(diǎn)數1024Bytes,DMA傳輸完成中斷使能?!?/p>
4系統軟件設計
軟件設計主要分為三部分,linux內核的移植,模塊驅動(dòng)的開(kāi)發(fā),雷達GUI軟件的開(kāi)發(fā)和移植。
將linux系統移植到自己定制的SOPC硬件平臺上包括以下幾個(gè)步驟[5][6]:
設計SOPC硬件平臺。使用XPS開(kāi)發(fā)環(huán)境,設計自己的SOPC系統硬件平臺,并導出軟件開(kāi)發(fā)依賴(lài)的硬件平臺信息文件;
生成設備樹(shù)內核編譯所需的設備樹(shù)信息文件(后綴名為.dts)。使用SDK開(kāi)發(fā)環(huán)境,結合Xilinx的設備樹(shù)(Device-tree)腳本和XPS生成的硬件平臺信息,生成板級支持包和設備樹(shù)信息文件;
編譯內核。將設備樹(shù)信息文件拷貝到linux內核源代碼/arch/microblaze/boot/dts目錄下,根據硬件平臺信息配置并編譯內核,生成內核鏡像文件;
運行內核。將內核鏡像文件下載到配置的硬件平臺上,實(shí)現linux系統的移植。
內核移植完成之后,進(jìn)行雷達數據采集和處理模塊、顯示控制器模塊驅動(dòng)的開(kāi)發(fā)。Linux下設備驅動(dòng)的開(kāi)發(fā)包括以下步驟:
(1)設備驅動(dòng)程序的注冊和注銷(xiāo);
(2)定義file--operations結構,設計所要實(shí)現的文件操作, 實(shí)現系統調用和驅動(dòng)程序的關(guān)聯(lián);
(3)實(shí)現所需的文件操作調用,如open,read,write等;
(4)如果使用中斷,使用request--irq向內核注冊;
(5)編譯該驅動(dòng)程序到內核中,或使用insmod命令加載模塊。
最后是進(jìn)行雷達GUI軟件的開(kāi)發(fā)和移植。利用QT開(kāi)發(fā)環(huán)境設計雷達用戶(hù)界面,并移植到SOPC系統中linux操作系統下。
5系統調試和測試
本設計中,利用FPGA硬件邏輯模擬產(chǎn)生雷達回波信號和方位角信號,ADC的采樣速率為100MHz,采樣位寬為8bits,microblaze軟核處理器主頻為100MHz。雷達數據采集及處理模塊對模擬的雷達信號進(jìn)行采集和相關(guān)處理后,由DMA通道存儲到內存當中,雷達GUI軟件實(shí)現雷達圖像的繪制。
評論