色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的超高速雷達(dá)實(shí)時采集存儲系統(tǒng)

          基于FPGA的超高速雷達(dá)實(shí)時采集存儲系統(tǒng)

          作者: 時間:2008-10-14 來源:網(wǎng)絡(luò) 收藏

          摘要:采用服務(wù)器作為采集主控設(shè)備,利用多個硬盤組成磁 盤陣列作為存儲設(shè)備,并制作了一塊基于雷達(dá)信號采集PCI卡。系統(tǒng)以為采集的核心控制芯片,并在內(nèi)部實(shí)現(xiàn)了64位/66MHz的PCI接口邏輯,無需專用接口芯片,簡化了電路板設(shè)計(jì),提高了系統(tǒng)的靈活性。該系統(tǒng)數(shù)據(jù)傳輸總速率可高達(dá)528MB/s,流盤速度可達(dá)150MB/s,存儲容量可擴(kuò)展至1000GB以上。

          方面,F(xiàn)PGA(現(xiàn)場可編程門陣列)有著單片機(jī)和DSP所無法比擬的優(yōu)勢。FPGA時鐘頻率高,內(nèi)部時延小,目前器件的最高工作頻率可達(dá)300MHz;硬件資源豐富,單片集成的可用門數(shù)達(dá)1000萬門;全部控制邏輯由硬件資源完成,速度快,效率高;組成形式靈活,可以集成外圍控制、譯碼和接口電路。

          流盤一直是技術(shù)的最大瓶頸,它直接制約了采集存儲設(shè)備的存儲能力。為此,可考慮利用多個硬盤組成RAID陣列(廉價(jià)冗余磁盤陣列)[1-2]。RAID的初衷主要是為大型服務(wù)器提供高端的存儲功能和冗余的數(shù)據(jù)安全。RAIID把多塊獨(dú)立的硬盤(物理硬盤)按不同方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能,提供冗余的技術(shù)。

          1 總體方案

          本文設(shè)計(jì)并實(shí)現(xiàn)了一種的雷達(dá)信號采集存儲系統(tǒng),其工作原理框圖如圖1所示。

          本系統(tǒng)采用服務(wù)器作為采集主控設(shè)備,利用多個硬盤組成磁盤陣列作為存儲設(shè)備。從以前的使用情況看,在普通主板上集成RAID控制器,采用IDE硬盤組成RAID0陣列情況下,硬盤陣列實(shí)測的讀寫速度可達(dá)40MB/s;在使用SCSI硬盤和Adaptec公司的RAID卡情況下,實(shí)測速度可達(dá)70 MB/s;在使用SATA硬盤和3WARE公司的RAID卡情況下,實(shí)測速度可達(dá)150 MB/s,且最新的SATA硬盤容量大、價(jià)格便宜;若采用12個160GB的SATA硬盤,則容量能達(dá)到驚人的1920GB。無論從還是從價(jià)格上,采用SATA硬盤組成SATA RAID磁盤陣列都是一種比較理想的選擇。

          由于采用64位/66MHz接口的PCI卡,其總線數(shù)據(jù)傳輸速率為普通32位/33 MB/s接口的PCI卡的四倍,總速率可高達(dá)538 MB/s。此方案比較適合超高速雷達(dá)信號的實(shí)時采集與實(shí)時存盤,采用RAID磁盤陣列后流盤速度得到了較大的提高,明顯改善了數(shù)據(jù)傳輸與數(shù)據(jù)存盤之間速度不匹配這一瓶頸問題。

          2 硬件設(shè)計(jì)

          系統(tǒng)硬件總體設(shè)計(jì)考慮到系統(tǒng)的通用性、可擴(kuò)展性以及數(shù)據(jù)傳輸、終端處理的需要,選用通過64位/66MHz的PIC局部總線與主機(jī)(服務(wù)器)進(jìn)行實(shí)時數(shù)據(jù)交換,有利于實(shí)現(xiàn)系統(tǒng)的模塊化設(shè)計(jì)和集成,提高了數(shù)據(jù)的靈活處理能力。PCI插卡實(shí)際硬件結(jié)構(gòu)如圖2所示。

          FPGA采用Xilinx(賽靈思)公司的10萬門FPGA芯片XC2S100E,其配置芯片的Xilinx公司的1Mbits容量PROM芯片XC18V01,以主動串行方式對FPGA進(jìn)行上電配置。AD、DA分別為ADI(模擬儀器)公司12位高速模數(shù)轉(zhuǎn)換芯片AD9224與14位高速數(shù)模轉(zhuǎn)換芯片AD9764。SRAM采用Cypress Semiconductor(塞普拉斯半導(dǎo)體)公司的256K×16bits SRAM芯片CY7C1041。

          設(shè)計(jì)中利用FPGA實(shí)現(xiàn)64位/MHz的PCI接口邏輯,進(jìn)行實(shí)時信號采集和傳輸控制。由于FPGA具有層次化的存儲器系統(tǒng),其基本邏輯功能埠可以配置成16×1、16×2或32×1的同步RAM,或16×1的雙端口同步RAM,因此可以在FPGA內(nèi)部配置高雙口RAM作為信號傳輸?shù)臄?shù)據(jù)緩沖器。同時,為了節(jié)省FPGA的內(nèi)部邏輯資源,在FPGA外圍配置了適當(dāng)?shù)腟RAM用來存儲數(shù)據(jù)。

          3 軟件設(shè)計(jì)

          3.1 FPGA程序設(shè)計(jì)

          3.1.1 FPGA內(nèi)部功能模塊分析

          FPGA內(nèi)置多個功能部件,主要包括雷達(dá)信號采集控制模塊與PCI接口邏輯模塊。FPGA內(nèi)部功能組成原理圖如圖3所示。

          FPGA作為系統(tǒng)總的控制樞紐,參與了系統(tǒng)具體任務(wù)的實(shí)現(xiàn)。內(nèi)部功能模塊的工作過程為:首先采集控制模塊通過對AD轉(zhuǎn)換電路的時序控制將雷達(dá)視頻信號轉(zhuǎn)換成數(shù)字信號并暫存于FPGA內(nèi)部雙口RAM中,然后再將雙口RAM中的數(shù)據(jù)通過PCI接口邏輯模塊送往計(jì)算機(jī)。

          3.1.2 采集控制模塊程序設(shè)計(jì)

          本系統(tǒng)要求能夠在普通顯示器上對采集的雷達(dá)視頻回波信號進(jìn)行長時間的實(shí)時顯示。同時在顯示過程中,可對任意區(qū)域設(shè)置采集方位和距離波門,將采集的數(shù)據(jù)實(shí)時存儲在磁盤陣列上。系統(tǒng)工作流程如圖4所示。

          采集卡與計(jì)算機(jī)之間的數(shù)據(jù)交換以FPGA內(nèi)部配置的高速雙口RAM作為數(shù)據(jù)傳輸?shù)木彌_器,采用兩片雙口RAM乒乓切換的方式進(jìn)行數(shù)據(jù)傳輸[3]。具體方法為:在FGPA內(nèi)部配置兩片8K×32bits的雙口RAM,采集開始時,將采集數(shù)據(jù)往第一片雙口RAM中寫,當(dāng)?shù)谝黄p口RAM寫滿時,采集控制模塊產(chǎn)生乒乓切換信號,數(shù)據(jù)自動存入第二片雙口RAM中,同時以DMA方式將第一片雙口RAM中的采集數(shù)據(jù)傳送給計(jì)算機(jī),如此輪換交替。這樣DMA傳輸和接收A/D數(shù)據(jù)可以同時進(jìn)行,而DMA的速率遠(yuǎn)大于A/D采集速率,從而有效地避免數(shù)據(jù)丟失。

          3.1.3 PCI接口邏輯模塊程序設(shè)計(jì)

          為了實(shí)現(xiàn)PCI總線各控制信號間的時序關(guān)系,可以根據(jù)具體的交易設(shè)計(jì)相應(yīng)的狀態(tài)機(jī)。以目標(biāo)設(shè)備I/O寫為例:當(dāng)幀有效信號(FRAME#)有效(低電平)時標(biāo)志著一次交易的開始,C/BE#[3:0]為“0011”表明此交易為I/O寫,同時AD[63:0]上的數(shù)據(jù)為此次交易的I/O地址。如果此I/O地址與設(shè)備配置寄存器中I/O基地址寄存器(Base Address Register)的值相同,目標(biāo)設(shè)備通過使DESEL#有效來聲時這次交易。作為主設(shè)備,在FRAME#、I/O地址和C/BE#有效后在AD[63:0]上驅(qū)動要傳輸?shù)臄?shù)據(jù)、在C/BE#上驅(qū)動字節(jié)使能、同時使能目標(biāo)準(zhǔn)備好信號IRDY#,直到檢測到目標(biāo)設(shè)備有效的DRDY#信號,此次交易中的主設(shè)備和目標(biāo)設(shè)備停止驅(qū)動各種信號。而目標(biāo)設(shè)備在準(zhǔn)備好接收數(shù)據(jù)后就可以使能DRDY#,此后目標(biāo)設(shè)備檢測到IRDY#時可以根據(jù)具體的字節(jié)使能C/BE#[3:0]將AD[63:0]總線上的數(shù)據(jù)進(jìn)行鎖存,從而完成整個交易[4]。此交易的狀態(tài)圖如圖5所示。

          本系統(tǒng)利用VHDL編程在FPGA中實(shí)現(xiàn)了64位/66MHz的PCI接口邏輯,其中實(shí)現(xiàn)的功能包括:配置空間讀寫、目標(biāo)設(shè)備I/O映射與內(nèi)存映射端口讀寫和主設(shè)備DMA控制。實(shí)際調(diào)試中,DMA傳輸?shù)乃矔r傳輸速率可達(dá)132Mbps,其連續(xù)傳輸速率也可達(dá)100 Mbps。

          3.3 驅(qū)動程序設(shè)計(jì)

          3.2.1 DriverWorks生成驅(qū)動程序框架

          NuMega公司的Driver Studio是一套為簡化Windows應(yīng)用程序和設(shè)備驅(qū)動程序的開發(fā)、調(diào)試及測試工具包。其中有WDM和WINNT的驅(qū)動程序開發(fā)軟件DriverWin9X(Windows95和Windows98)的虛擬設(shè)備驅(qū)動程序(VxD)的VtoolsD。

          DriverWorks以面向?qū)ο螅∣OP)的方式,將編寫WDM及WINNT驅(qū)動程序所需的對內(nèi)核模式訪問及硬件的訪問封裝成類。DriverWorks是基于VC++的,它生成標(biāo)準(zhǔn)的VC工程,只要將所建的工程在VC下編譯,就可以生成最終的設(shè)備驅(qū)動程序。

          3.2.2 VC++二次開發(fā)設(shè)備驅(qū)動程序

          DriverWorks向?qū)闪藘蓚€類:一個是設(shè)備驅(qū)動程序類,另一個是設(shè)備對象類。驅(qū)動程序類主要完成WDM的DriverEntry和AddDevice例程。設(shè)備對象類就是與硬件對應(yīng)的功能設(shè)備對象(FDO)類,與硬件交互的例程都是針對此類的。

          DriverWorks生成驅(qū)動程序框架,根據(jù)具體功能,用戶還需在VC++工程下添加自己的代碼。常用的功能有:IO映射端口訪問、內(nèi)存映射端口訪問和中斷處理。DriverWorks將編寫WDM驅(qū)動程序所需的對內(nèi)核模式訪問及硬件的訪問封裝成類,其中,KpciConfiguration類用于實(shí)現(xiàn)對PCI設(shè)備配置空間的訪問,KioRange類用于實(shí)現(xiàn)對I/O映射端口的訪問,KmemoryRange類用于實(shí)現(xiàn)對內(nèi)存映射端口的訪問,KdmaAdapter、KdmaTransfer和KcommonDmaBuffer類用于實(shí)現(xiàn)DMA操作,Kinterrupt類用于實(shí)現(xiàn)中斷處理操作。

          3.3 應(yīng)用程序設(shè)計(jì)

          3.3.1 應(yīng)用程序與驅(qū)動程序之間的通信

          在Windows中,應(yīng)用程序?qū)崿F(xiàn)與WDM通信的過程是:應(yīng)用程序先用CreateFile函數(shù)打開設(shè)備,然后用DeviclIoControl與WDM兩種情況,當(dāng)應(yīng)用程序退出時,用CloseHandle關(guān)閉設(shè)備。

          驅(qū)動程序有時需要主動通知上層應(yīng)用程序執(zhí)行某個操作,以實(shí)現(xiàn)硬件響應(yīng)的實(shí)時性。這可以通過在應(yīng)用程序中創(chuàng)建一個事件,將該事件句柄放入輸入緩沖區(qū)中,通過函數(shù)DeviceIoControl傳給驅(qū)動程序,并創(chuàng)建一個線程來守候該事件被激活。

          3.3.2用戶界面程序設(shè)計(jì)

          用戶程序主要完成雷達(dá)視頻信號的采集參數(shù)設(shè)置、采集數(shù)據(jù)的實(shí)時顯示和實(shí)時存盤。采集工作過程如下:首先通過用戶程序?qū)Σ杉瘏?shù)進(jìn)行設(shè)置并通過計(jì)算機(jī)PCI接口發(fā)往PCI卡的FPGA中,F(xiàn)PGA則根據(jù)這些參數(shù)控制雷達(dá)視頻信號的采集;然后用戶可以點(diǎn)擊“開始”按鈕啟動采集過程,可以在P顯和A顯坐標(biāo)下觀察采集的目標(biāo)回波信號,同時將采集的雷達(dá)回波數(shù)據(jù)以二進(jìn)制格式實(shí)時保存在磁盤陣列上,供Matlab等軟件進(jìn)一步分析使用。

          目前,本系統(tǒng)已對某型艦載警戒搜索雷達(dá)成功地進(jìn)行了實(shí)際外場。圖6為P顯和A顯坐標(biāo)下采集到的真實(shí)雷達(dá)視頻回波信號。實(shí)驗(yàn)表明這個系統(tǒng)完全滿足所提出的指標(biāo)要求,能夠做到大容量高速連續(xù)采集,且穩(wěn)定可靠,測得的數(shù)據(jù)能夠真實(shí)地反映目標(biāo)與環(huán)境的特性,可用于檢驗(yàn)各種目標(biāo)檢測、識別、跟蹤算法。

          本系統(tǒng)可用于超高速雷達(dá)信號處理機(jī)中,利用大容量FPGA可直接對AD轉(zhuǎn)換后的雷達(dá)中頻信號進(jìn)行高速實(shí)時處理,處理結(jié)果可通過PCI總線高速傳輸?shù)接?jì)算機(jī)內(nèi)存中,同時利用高速、大容量磁盤陣列進(jìn)行實(shí)時的海量數(shù)據(jù)存盤。



          評論


          相關(guān)推薦

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

          關(guān)閉