FPGA的機載合成孔徑雷達數(shù)字信號處理機接口板卡的設(shè)計與實現(xiàn)
機載合成孔徑雷達(Synthetic Aperture Radar,簡稱SAR)是以“合成孔徑”原理和脈沖壓縮技術(shù)為理論基礎(chǔ),以高速數(shù)字處理和精確運動補償為前提條件的高分辨率成像雷達對于機載合成孔徑雷達成像處理來講,僅有目標的原始回波數(shù)據(jù)是不夠的,還必須獲得雷達和載機的參數(shù)另外,為了滿足信號處理機實時處理的要求,要求輸入到處理機的各種數(shù)據(jù)符合處理機成像處理的數(shù)據(jù)格式這樣,處理機在獲得數(shù)據(jù)幀后就可以直接進行成像處理而不必再有格式轉(zhuǎn)換的開銷但是 目標的原始回波數(shù)據(jù)與雷達和載機的參數(shù)數(shù)據(jù)來自兩個不同的設(shè)備它們的數(shù)據(jù)格式和時序都是由各自的設(shè)備確定的,因此信號處理機便面臨著與外圍設(shè)備接口的問題
本文引用地址:http://2s4d.com/article/201610/308614.htm1 系統(tǒng)功能
在本機載合成孔徑雷達系統(tǒng)中,進出接口板卡的數(shù)據(jù)流包括數(shù)據(jù)采集設(shè)備輸入的原始回波數(shù)據(jù)監(jiān)控設(shè)備輸入的雷達和載機的參數(shù)數(shù)據(jù)以及輸出到處理機的成像處理數(shù)據(jù)它們有如下特點:①輸入數(shù)據(jù)流的速度和時序不匹配數(shù)據(jù)采集設(shè)備和監(jiān)控設(shè)備是兩個異步的系統(tǒng),它們都有自己的定時控制電路,以自己的速度傳輸數(shù)據(jù)②輸入輸出數(shù)據(jù)流的信息格式不匹配數(shù)據(jù)采集設(shè)備輸入的原始回波數(shù)據(jù)和監(jiān)控設(shè)備輸入的雷達和載機的參數(shù)數(shù)據(jù)采用FPDP協(xié)議傳輸,接口板卡輸出到處理機的數(shù)據(jù)采用Link口傳輸協(xié)議進行傳輸
考慮到進出接口板卡數(shù)據(jù)流的特點和雷達系統(tǒng)對接口板卡的控制要求,接口板卡要具有如下功能:
(1)設(shè)置數(shù)據(jù)的緩沖存儲邏輯,以適應(yīng)不同設(shè)備之間的速度差異和時序差異;
(2)進行信息格式轉(zhuǎn)換,將目標的原始回波數(shù)據(jù)與雷達和載機的參數(shù)數(shù)據(jù)打包,插入相應(yīng)的幀信息形成處理機要求的數(shù)據(jù)幀,并控制數(shù)據(jù)流的走向;
(3)實現(xiàn)PCI接口,能夠產(chǎn)生PCI中斷;
(4)具有在線自檢測功能
2 系統(tǒng)硬件結(jié)構(gòu)設(shè)計
為了簡化系統(tǒng)硬件設(shè)計,增加系統(tǒng)的靈活性,采用FPGA芯片實現(xiàn)系統(tǒng)要求的數(shù)據(jù)格式轉(zhuǎn)換打包分發(fā)和邏輯控制功能數(shù)據(jù)緩存采用硬件FIFO和軟件雙口RAMPCI接口采用專用接口芯片實現(xiàn)硬件FIFO和軟件雙口RAM的寫時鐘分別由各自的FPDP接口提供,其它時鐘由接口板上的晶振提供系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示
2.1 輸入數(shù)據(jù)流的緩存方案
為了適應(yīng)處理機與數(shù)據(jù)采集設(shè)備和監(jiān)控設(shè)備之間的速度差異,解決速度不匹配問題,需要將輸入的數(shù)據(jù)先進行緩存數(shù)據(jù)采集設(shè)備送入的原始回波數(shù)據(jù)每幀的數(shù)據(jù)量比較大,接口板卡上設(shè)計了硬件FIFO作為原始回波數(shù)據(jù)的緩存器,FIFO的讀寫使能由FPGA編程控制,寫時鐘由FPDP接口提供,讀時鐘由接口板卡上的晶振提供數(shù)據(jù)采集設(shè)備和監(jiān)控設(shè)備是兩個異步的系統(tǒng),雷達參數(shù)數(shù)據(jù)流和原始回波數(shù)據(jù)流之間沒有同步關(guān)系,一幀雷達參數(shù)數(shù)據(jù)對應(yīng)幾幀原始回波數(shù)據(jù),因此設(shè)計中用雙口RAM作為雷達參數(shù)數(shù)據(jù)的緩存器另外,每幀雷達參數(shù)的數(shù)據(jù)量比較小,本設(shè)計在FPGA內(nèi)利用參數(shù)化的模塊庫(Library of Parameterized Modules,簡稱LPM)中的lpm_ram_dp編程實現(xiàn)雙口RAM,簡化了硬件設(shè)計
2.2 PCI接口設(shè)計
實現(xiàn)PCI接口的方案一般有兩種:采用可編程邏輯器件和采用專用總線接口器件采用可編程邏輯器件實現(xiàn)PCI接口的最大好處是比較靈活,缺點是設(shè)計難度較高,開發(fā)周期較長采用專用接口器件實現(xiàn)雖然沒有采用可編程邏輯器件實現(xiàn)那么靈活,但能夠有效地降低接口設(shè)計的難度,縮短開發(fā)時間本系統(tǒng)采用專用接口器件PCI9052實現(xiàn)接口板卡的PCI接口
接口板卡的硬件資源為映射到FPGA內(nèi)部寄存器的I/O映射空間和一個中斷源PCI9052提供5個局部地址空間,選用Space0作為接口板的地址空間,分配16個8位地址同時設(shè)置相應(yīng)的初始化,PCI配置寄存器中的PCIBAR2設(shè)置為0XFFFFFFF0,向系統(tǒng)請求分配內(nèi)存的數(shù)量為16設(shè)置局部地址空間的范圍為0X01000000~0X01000010PCI9052提供兩個局部中斷源,選用LINTi1FPGA提供電平觸發(fā)中斷信號,因此PCI9052的中斷觸發(fā)模式設(shè)置為電平觸發(fā)利用PCI9052的局部設(shè)備片選信號CS0#作為FPGA的片選信號CS0#片選信號的起始地址和地址范圍由CS0 Base Address寄存器的設(shè)置值0x01000011決定,即起始地址為1000000h,地址范圍為20hPCI9052寄存器的初始值由串行EEPROM提供,在PCI9052加電后讀取EEPROM必須采用支持連讀功能的芯片,本設(shè)計中采用FairChild Semiconductor公司的93CS46N
2.3 FPGA的配置設(shè)計
本設(shè)計為FPGA提供了兩種配置方式:主動串行配置和被動串行配置
主動串行配置由EPC2向FPGA器件輸入串行位流的配置數(shù)據(jù)在該配置方式下,一直由FPGA控制著配置過程在加電過程中,FPGA檢測到nCONFIG由低到高的跳變時,就開始準備配置FPGA將CONF_DONE拉低,驅(qū)動EPC2的nCS為低,而nSTATUS引腳釋放并由上拉電阻拉至高電平使能EPC2此后,EPC2就用其內(nèi)部振蕩器的時鐘將數(shù)據(jù)串行地從EPC2DATA輸送到FPGADATA0當配置完成后,FPGA釋放CONF_DONE,將EPC2與系統(tǒng)隔離
被動串行配置由編程硬件通過ByteBlaster配置ByteBlaster產(chǎn)生一個由低到高的跳變送到nCONFIG引腳,然后由編程硬件將配置數(shù)據(jù)送到DATA0引腳,該數(shù)據(jù)鎖存至CONF_DONE變?yōu)楦唠娖綖橹巩擟ONF_DONE變成高電平時,用DCLK的10個周期初始化FPGA,器件的初始化由下載電纜自動執(zhí)行
為了兩種配置方式共存,設(shè)計中用撥碼開關(guān)將EPC2與FPGA和ByteBlaster的下載電纜插座隔離當用被動串行方式配置時,撥碼開關(guān)斷開,由上位機通過ByteBlaster下載電纜加載FPGA當用主動串行方式配置時,撥碼開關(guān)接通,由EPC2加載FPGA電路圖如圖2所示
2.4 在線自檢測功能
板卡設(shè)計時還應(yīng)考慮便于日常調(diào)試維護及故障檢測定位板卡在硬件上針對各電源信號和關(guān)鍵的狀態(tài)信號設(shè)計了信號燈,一旦發(fā)現(xiàn)有誤,便可給出信號觸發(fā)該電路板上的信號燈告警,定位系統(tǒng)故障另外在電路設(shè)計時應(yīng)留出測試孔,以增加電路的可測性
3 系統(tǒng)的軟件設(shè)計
系統(tǒng)上電后, PCI上電復位,FIFO清零上位機向相應(yīng)寄存器寫入初始值,完成寄存器設(shè)置當系統(tǒng)啟動信號有效時,接口板開始接收數(shù)據(jù),進行數(shù)據(jù)打包和分發(fā),直到上位機向接口板卡寫停止命令為止圖3給出了系統(tǒng)工作流程圖
3.1 數(shù)據(jù)的打包和流向控制
雷達參數(shù)數(shù)據(jù)和原始回波數(shù)據(jù)的數(shù)據(jù)源是異步的,不能保證兩者確切的對應(yīng)關(guān)系,接口板卡利用對緩存原始回波數(shù)據(jù)FIFO和緩存雷達參數(shù)數(shù)據(jù)雙口RAM的讀寫控制,調(diào)整雷達參數(shù)數(shù)據(jù)和原始回波數(shù)據(jù)對應(yīng)關(guān)系,將兩種數(shù)據(jù)源按處理機要求的輸入數(shù)據(jù)格式組成正確的數(shù)據(jù)幀雷達參數(shù)數(shù)據(jù)和原始回波數(shù)據(jù)打包后的數(shù)據(jù)幀格式如下:
在程序中,設(shè)計了雷達參數(shù)發(fā)送控制計數(shù)器Para_counter和回波數(shù)據(jù)發(fā)送控制計數(shù)器Data_counter系統(tǒng)工作后,每次檢測到原始回波數(shù)據(jù)流的數(shù)據(jù)有效信號data_valid的上升沿(標記收到完整的一幀回波數(shù)據(jù))時,啟動雷達參數(shù)發(fā)送控制計數(shù)器開始計數(shù),當計數(shù)到設(shè)定的值(本設(shè)計中為25)時停止計數(shù)并啟動回波數(shù)據(jù)發(fā)送控制計數(shù)器開始計數(shù),計數(shù)到設(shè)定的值(本設(shè)計中為5000)時停止計數(shù)當檢測到原始回波數(shù)據(jù)流的數(shù)據(jù)有效信號data_valid的下降沿(標記開始接收新的一幀回波數(shù)據(jù))時,兩個計數(shù)器都清零根據(jù)計數(shù)器的計數(shù)值產(chǎn)生Link口選擇信號確定數(shù)據(jù)的流向圖4給出了數(shù)據(jù)流向的示意圖圖5給出了基于MAXPLUSⅡ10.0的仿真結(jié)果,仿真顯示正確地實現(xiàn)了數(shù)據(jù)打包和流向控制
3.2 Link口傳輸協(xié)議的實現(xiàn)
Link口的數(shù)據(jù)傳輸是在同步時鐘線(LxCLK)與應(yīng)答線(LxACK)相互握手的情況下同步傳輸?shù)囊粋€傳輸字為32bit,Link口以4bit為單位進行傳輸在LxCLK上升沿,發(fā)送端會發(fā)送一個新的4bit數(shù)據(jù),在LxCLK的下降沿,接收方鎖存數(shù)據(jù)線上的數(shù)據(jù)8個4bit數(shù)據(jù)發(fā)送完畢后,如果接收方準備好接收下一個字,則將LxACK置1發(fā)送方在每次發(fā)送新字的第一個4bit時對LxACK采樣,如果LxACK為0,表明接收方?jīng)]有準備好,則發(fā)送方保持LxCLK為高電平,且數(shù)據(jù)線上保持當前的4bit數(shù)據(jù),直到接收方將LxACK置1,發(fā)送方才將 LxCLK下拉,并繼續(xù)發(fā)送新的數(shù)據(jù)當發(fā)送方緩存為空時,表明沒有數(shù)據(jù)需要發(fā)送,則LxCLK保持為低電平接口板利用VHDL語言實現(xiàn)了Link口傳輸協(xié)議下面給出了關(guān)鍵的程序片斷:
ChangeStateMode process NibleCount empty LxACK PresentState empty
begin
case PresentState is
when SendACK =>
if LxACK='1' and empty='0' then
NextState=Send
else NextState=SendACK
end if
when Send =>
if NibleCount/= 3 or NibleCount=3 and empty='0'and LxAck='1' then
NextState=Send
else NextState=SendACK
end if
end case
end process changestatemode
4 應(yīng)用和結(jié)論
目前該接口板已經(jīng)完成了電路設(shè)計軟件仿真和制板,并應(yīng)用到某機載合成孔徑雷達數(shù)字信號處理機中接口板卡位于信號處理機的前端,通過CPCI機箱的前面板接口,采用一塊PMC子板實現(xiàn)系統(tǒng)采用了圖1所示的體系結(jié)構(gòu),鎖存器選用TI公司的SN74LVT16374,時鐘驅(qū)動芯片選用IDT公司的IDT49FCT3805APY,FIFO選用IDT公司的IDT72V36110,PCI接口芯片選用PLX9052,FPGA選用Altera公司的EP1K100FC256-1經(jīng)過實驗室階段和外廠試驗,接口板都工作正常,達到了設(shè)計要求
評論