新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于SOPC的雷達(dá)采集和圖像顯示系統(tǒng)

基于SOPC的雷達(dá)采集和圖像顯示系統(tǒng)

作者: 時間:2016-12-06 來源:網(wǎng)絡(luò) 收藏

  1前言

本文引用地址:http://butianyuan.cn/article/201612/326806.htm

  雷達(dá)數(shù)據(jù)采集及圖像顯示是雷達(dá)的一個基本應(yīng)用,普遍應(yīng)用于軍事、氣象預(yù)測、環(huán)境監(jiān)測、船舶導(dǎo)航等領(lǐng)域。雷達(dá)數(shù)據(jù)具有實時性、高速性的特點。一般說來,對雷達(dá)信號采樣的時鐘頻率在100MHz以上,雷達(dá)數(shù)據(jù)采集和處理單元的數(shù)據(jù)吞吐量要求在Gbits/s以上。因此,要實現(xiàn)一個雷達(dá)數(shù)據(jù)采集和圖像顯示系統(tǒng),對處理器的處理速度要求很高。傳統(tǒng)的雷達(dá)數(shù)據(jù)采集和圖像顯示系統(tǒng)采用的是微處理器+FPGA(或DSP)方案,利用微處理器實現(xiàn)操作系統(tǒng)、雷達(dá)GUI和顯示器控制,利用FPGA(或DSP)實現(xiàn)高速雷達(dá)數(shù)據(jù)采集和處理,這種方案的缺點是要想實現(xiàn)雷達(dá)圖像在800*600以上分辨率的大屏幕顯示比較困難,要么有較高的處理器速度,要么有獨立顯卡的支持,這樣增加了系統(tǒng)復(fù)雜度和成本。

  SOPC 是一種特殊的片上系統(tǒng),建立在可編程邏輯技術(shù)的基礎(chǔ)上,盡可能將一個大而完整的電子系統(tǒng)實現(xiàn)在一塊FPGA硅片上,具有硬件可裁剪、可擴充、可升級,軟件在系統(tǒng)可編程的特點,使得設(shè)計的系統(tǒng)在規(guī)模、功能、體積、性能、上市周期、開發(fā)成本等方面有著了很大的優(yōu)勢?;赟OPC技術(shù)的軟核處理器主頻雖然不是很高,目前Xilinx公司的microblaze處理器最高主頻為210MHz、240DMIPS的運算能力,Altera公司的NIOS II處理器最高主頻為340MHz、290DMIPS的運算能力,但是由于其極強的靈活性,可以通過軟硬件協(xié)同設(shè)計,在處理器速度不高的情況下,解決需要高速度處理器才能完成的問題。

  本文基于SOPC技術(shù),提出一種在主頻較低的軟核處理器上實現(xiàn)雷達(dá)數(shù)據(jù)采集和圖像大屏幕顯示的方法。

  2總體方案設(shè)計

  本設(shè)計采用microblaze軟核處理器作為開發(fā)平臺,SOPC系統(tǒng)框圖如圖1所示。

  本設(shè)計通過以下辦法,解決在主頻較低的SOPC軟核處理器上實現(xiàn)雷達(dá)數(shù)據(jù)采集、處理和大屏幕圖像顯示的問題。

  首先,使用FPGA硬件邏輯設(shè)計實現(xiàn)雷達(dá)數(shù)據(jù)采集、處理和顯示控制器。雷達(dá)數(shù)據(jù)采集、處理模塊負(fù)責(zé)對雷達(dá)上單元、ADC芯片的控制和對雷達(dá)數(shù)據(jù)的處理。顯示控制器模塊完成顯存數(shù)據(jù)的管理和顯示器的驅(qū)動。

  其次,使用DMA傳輸。DMA負(fù)責(zé)將雷達(dá)數(shù)據(jù)采集、處理后數(shù)據(jù)通過DMA通道送到內(nèi)存中。

  最后,根據(jù)SOPC硬件可配置、可裁剪的特性,將雷達(dá)數(shù)據(jù)采集和處理模塊、顯示控制模塊和DMA模塊作為microblaze處理器的設(shè)備掛載到外設(shè)局部總線上[4]。

  由于雷達(dá)數(shù)采集、處理模塊和顯示控制模塊的內(nèi)部邏輯都由FPGA硬件邏輯完成,微處理器不需直接對雷達(dá)上單元、ADC進行控制,不需進行復(fù)雜的雷達(dá)數(shù)據(jù)處理,不用對顯存數(shù)據(jù)進行管理,不用控制產(chǎn)生高速的信號驅(qū)動顯示器,從而大大減輕了處理器的負(fù)擔(dān),加上DMA傳輸?shù)氖褂?,處理器只需要處理DMA傳輸?shù)恼埱蠛蛡鬏斖瓿芍袛啵瑥亩固幚砥鲝姆敝氐臄?shù)據(jù)傳輸中解脫了出來。通過以上辦法,處理器的負(fù)擔(dān)已經(jīng)變得很輕,使得較低的處理器速度即可處理系統(tǒng)的任務(wù)。而且顯示控制由FPGA硬件實現(xiàn)還有個優(yōu)點是,使得顯示器分辨率的大小對處理器的負(fù)擔(dān)影響很小,從而在處理器較低的情況下,同樣可以支持大屏幕的圖像顯示。

  3系統(tǒng)硬件設(shè)計

  SOPC系統(tǒng)的硬件設(shè)計包含兩層含義,一個是SOPC所依賴的硬件平臺,另一個是在FPGA內(nèi)部搭建的SOPC軟件所依賴的硬件環(huán)境。

  本設(shè)計中,SOPC所依賴的硬件平臺如圖2所示:

  FPGA內(nèi)部搭建的SOPC硬件平臺如圖3所示:

  其中,雷達(dá)數(shù)據(jù)采集和處理、顯示控制器、DMA模塊是為實現(xiàn)本設(shè)計而特別定制的模塊。下面著重介紹以上3個模塊。

  3.1 雷達(dá)數(shù)據(jù)采集及處理模塊設(shè)計

  雷達(dá)數(shù)據(jù)采集及處理模塊主要由總線接口控制、控制臺、雷達(dá)上單元控制、ADC控制、雷達(dá)數(shù)據(jù)處理5部分組成,其內(nèi)部框圖如圖4中虛線部分所示:

  總線接口控制模塊負(fù)責(zé)與處理器總線進行交互,它必須遵循處理器總線通信協(xié)議,包括傳輸請求、應(yīng)答、數(shù)據(jù)傳輸、中斷請求。這部分協(xié)議由平臺產(chǎn)生,用戶只需進行相關(guān)的配置。

  控制臺負(fù)責(zé)ADC控制模塊、雷達(dá)上單元控制模塊、雷達(dá)數(shù)據(jù)處理模塊的控制。具體包括:將相關(guān)用戶控制信息交給ADC控制模塊,對ADC的工作狀態(tài)進行控制;讀取雷達(dá)上單元控制模塊的信息,將它交給總線控制接口模塊,并從總線接口控制模塊獲得雷達(dá)上單元相關(guān)的控制信息,送到雷達(dá)上單元控制模塊;將雷達(dá)數(shù)據(jù)處理相關(guān)的信息交給雷達(dá)數(shù)據(jù)處理模塊,作為雷達(dá)數(shù)據(jù)處理的參數(shù)。

  雷達(dá)上單元控制模塊負(fù)責(zé)對雷達(dá)上單元的控制,包括雷達(dá)上單元的初始化、自檢,設(shè)置雷達(dá)脈沖頻率、脈沖寬度、轉(zhuǎn)速等,并實時地向控制臺提供雷達(dá)上單元的工作狀態(tài)信息。

  雷達(dá)數(shù)據(jù)處理模塊的內(nèi)部處理流程如圖5所示。雷達(dá)數(shù)據(jù)處理模塊從控制臺獲取數(shù)據(jù)處理的相關(guān)參數(shù),對雷達(dá)上單元的數(shù)據(jù)進行以下處理:對雷達(dá)的方位角脈沖信號進行提取,計算出雷達(dá)當(dāng)前的方位角;對采樣后的雷達(dá)回波信號進行內(nèi)插/抽取、濾波、增益控制、極坐標(biāo)到直角坐標(biāo)變換處理。

  3.2 顯示控制器設(shè)計

  顯示控制器相當(dāng)于一塊獨立顯卡,其內(nèi)部如圖6中所示,主要由5個模塊組成,分別為處理器總線接口控制模塊、指令譯碼模塊、顯示接口控制模塊、數(shù)據(jù)緩存模塊和顯存控制模塊。

  指令譯碼模塊主要負(fù)責(zé):從總線接口控制模塊獲得處理器指令和數(shù)據(jù),并對指令進行譯碼,將譯碼結(jié)果和數(shù)據(jù)送給顯示接口控制模塊和顯存控制模塊;將顯示接口控制模塊和顯存控制模塊的工作狀態(tài)信息送給總線接口控制模塊。

  顯示接口控制模塊受指令譯碼及控制模塊控制,與顯存控制模塊進行協(xié)調(diào),從數(shù)據(jù)緩存區(qū)獲取數(shù)據(jù),控制產(chǎn)生顯示器接口時序,驅(qū)動顯示器描繪圖像。

  數(shù)據(jù)緩存模塊實現(xiàn)對顯存數(shù)據(jù)的預(yù)取。在每個行同步時隙,顯示接口控制模塊向顯存控制模塊發(fā)出預(yù)取顯存數(shù)據(jù)的請求,顯存控制模塊將相應(yīng)地址上的顯存數(shù)據(jù)讀出,放到數(shù)據(jù)緩存區(qū)。由于顯示接口控制的時鐘和顯存控制的時鐘通常不一樣,設(shè)置這個數(shù)據(jù)緩存區(qū),保證顯示接口控制模塊能夠及時獲得顯存的數(shù)據(jù)。

  顯存控制模塊負(fù)責(zé)顯存數(shù)據(jù)的管理,根據(jù)指令譯碼結(jié)果,對顯存中的數(shù)據(jù)進行清除、讀寫、更新等操作,并配合接口控制模塊,將顯存數(shù)據(jù)讀出,寫入顯存數(shù)據(jù)緩存區(qū)。

  3.3 DMA傳輸設(shè)計

  一般說來,DMA傳輸相關(guān)的寄存器包括傳輸?shù)脑吹刂?、目的地址、工作模式、?shù)據(jù)長度、DMA中斷模式。本設(shè)計使用Xilinx的中央DMA控制器(XPS Central DMA Controller) [5],它是一個單通道的支持外設(shè)到外設(shè)、外設(shè)到內(nèi)存、內(nèi)存到外設(shè)、內(nèi)存到內(nèi)存的DMA,其內(nèi)部結(jié)構(gòu)框圖如圖7所示。使用該DMA控制器,需要配置以下寄存器:

  軟件復(fù)位寄存器(RST):用于對DMA控制進行軟件復(fù)位;

  DMA控制寄存器(DMACR):設(shè)置DMA的工作模式;

  源地址(SA):DMA傳輸?shù)脑吹刂?

  目的地址(DA):DMA傳輸?shù)哪康牡刂?

  長度(LENGTH):DMA傳輸?shù)臄?shù)據(jù)長度;

  中斷使能寄存器(IER):設(shè)置是否使能DMA傳輸錯誤或傳輸完成時產(chǎn)生中斷。

  本設(shè)計中,將DMA的工作模式設(shè)定為數(shù)據(jù)源地址固定,目的地址遞增,源地址為雷達(dá)數(shù)據(jù)采集及處理模塊的數(shù)據(jù)發(fā)送寄存器的地址,目的地址設(shè)置為內(nèi)存的地址,長度設(shè)置為坐標(biāo)變換后一條雷達(dá)掃描線上的點數(shù)1024Bytes,DMA傳輸完成中斷使能?!?/p>

  4系統(tǒng)軟件設(shè)計

  軟件設(shè)計主要分為三部分,linux內(nèi)核的移植,模塊驅(qū)動的開發(fā),雷達(dá)GUI軟件的開發(fā)和移植。

  將linux系統(tǒng)移植到自己定制的SOPC硬件平臺上包括以下幾個步驟[5][6]:

  設(shè)計SOPC硬件平臺。使用XPS開發(fā)環(huán)境,設(shè)計自己的SOPC系統(tǒng)硬件平臺,并導(dǎo)出軟件開發(fā)依賴的硬件平臺信息文件;

  生成設(shè)備樹內(nèi)核編譯所需的設(shè)備樹信息文件(后綴名為.dts)。使用SDK開發(fā)環(huán)境,結(jié)合Xilinx的設(shè)備樹(Device-tree)腳本和XPS生成的硬件平臺信息,生成板級支持包和設(shè)備樹信息文件;

  編譯內(nèi)核。將設(shè)備樹信息文件拷貝到linux內(nèi)核源代碼/arch/microblaze/boot/dts目錄下,根據(jù)硬件平臺信息配置并編譯內(nèi)核,生成內(nèi)核鏡像文件;

  運行內(nèi)核。將內(nèi)核鏡像文件下載到配置的硬件平臺上,實現(xiàn)linux系統(tǒng)的移植。

  內(nèi)核移植完成之后,進行雷達(dá)數(shù)據(jù)采集和處理模塊、顯示控制器模塊驅(qū)動的開發(fā)。Linux下設(shè)備驅(qū)動的開發(fā)包括以下步驟:

  (1)設(shè)備驅(qū)動程序的注冊和注銷;

  (2)定義file--operations結(jié)構(gòu),設(shè)計所要實現(xiàn)的文件操作, 實現(xiàn)系統(tǒng)調(diào)用和驅(qū)動程序的關(guān)聯(lián);

  (3)實現(xiàn)所需的文件操作調(diào)用,如open,read,write等;

  (4)如果使用中斷,使用request--irq向內(nèi)核注冊;

  (5)編譯該驅(qū)動程序到內(nèi)核中,或使用insmod命令加載模塊。

  最后是進行雷達(dá)GUI軟件的開發(fā)和移植。利用QT開發(fā)環(huán)境設(shè)計雷達(dá)用戶界面,并移植到SOPC系統(tǒng)中l(wèi)inux操作系統(tǒng)下。

  5系統(tǒng)調(diào)試和測試

  本設(shè)計中,利用FPGA硬件邏輯模擬產(chǎn)生雷達(dá)回波信號和方位角信號,ADC的采樣速率為100MHz,采樣位寬為8bits,microblaze軟核處理器主頻為100MHz。雷達(dá)數(shù)據(jù)采集及處理模塊對模擬的雷達(dá)信號進行采集和相關(guān)處理后,由DMA通道存儲到內(nèi)存當(dāng)中,雷達(dá)GUI軟件實現(xiàn)雷達(dá)圖像的繪制。



關(guān)鍵詞: SOPC雷達(dá)采

評論


技術(shù)專區(qū)

關(guān)閉