新聞中心

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

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

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

  1前言

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

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

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

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

  2總體方案設(shè)計(jì)

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

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

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

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

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

  由于雷達(dá)數(shù)采集、處理模塊和顯示控制模塊的內(nèi)部邏輯都由FPGA硬件邏輯完成,微處理器不需直接對(duì)雷達(dá)上單元、ADC進(jìn)行控制,不需進(jìn)行復(fù)雜的雷達(dá)數(shù)據(jù)處理,不用對(duì)顯存數(shù)據(jù)進(jìn)行管理,不用控制產(chǎn)生高速的信號(hào)驅(qū)動(dòng)顯示器,從而大大減輕了處理器的負(fù)擔(dān),加上DMA傳輸?shù)氖褂茫幚砥髦恍枰幚鞤MA傳輸?shù)恼?qǐng)求和傳輸完成中斷,從而使處理器從繁重的數(shù)據(jù)傳輸中解脫了出來(lái)。通過(guò)以上辦法,處理器的負(fù)擔(dān)已經(jīng)變得很輕,使得較低的處理器速度即可處理系統(tǒng)的任務(wù)。而且顯示控制由FPGA硬件實(shí)現(xiàn)還有個(gè)優(yōu)點(diǎn)是,使得顯示器分辨率的大小對(duì)處理器的負(fù)擔(dān)影響很小,從而在處理器較低的情況下,同樣可以支持大屏幕的圖像顯示。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3.3 DMA傳輸設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

評(píng)論


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

關(guān)閉