<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA的機(jī)載合成孔徑雷達(dá)數(shù)字信號(hào)處理機(jī)接口板卡的設(shè)計(jì)與實(shí)現(xiàn)

          FPGA的機(jī)載合成孔徑雷達(dá)數(shù)字信號(hào)處理機(jī)接口板卡的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2016-10-29 來源:網(wǎng)絡(luò) 收藏

          雷達(dá)(Synthetic Aperture Radar,簡(jiǎn)稱SAR)是以“”原理和脈沖壓縮技術(shù)為理論基礎(chǔ),以高速數(shù)字處理和精確運(yùn)動(dòng)補(bǔ)償為前提條件的高分辨率成像雷達(dá)對(duì)于雷達(dá)成像處理來講,僅有目標(biāo)的原始回波數(shù)據(jù)是不夠的,還必須獲得雷達(dá)和載機(jī)的參數(shù)另外,為了滿足信號(hào)處理機(jī)實(shí)時(shí)處理的要求,要求輸入到處理機(jī)的各種數(shù)據(jù)符合處理機(jī)成像處理的數(shù)據(jù)格式這樣,處理機(jī)在獲得數(shù)據(jù)幀后就可以直接進(jìn)行成像處理而不必再有格式轉(zhuǎn)換的開銷但是 目標(biāo)的原始回波數(shù)據(jù)與雷達(dá)和載機(jī)的參數(shù)數(shù)據(jù)來自兩個(gè)不同的設(shè)備它們的數(shù)據(jù)格式和時(shí)序都是由各自的設(shè)備確定的,因此信號(hào)處理機(jī)便面臨著與外圍設(shè)備接口的問題

          本文引用地址:http://www.ex-cimer.com/article/201610/308614.htm

          1 系統(tǒng)功能

          在本合成孔徑雷達(dá)系統(tǒng)中,進(jìn)出接口板卡的數(shù)據(jù)流包括數(shù)據(jù)采集設(shè)備輸入的原始回波數(shù)據(jù)監(jiān)控設(shè)備輸入的雷達(dá)和載機(jī)的參數(shù)數(shù)據(jù)以及輸出到處理機(jī)的成像處理數(shù)據(jù)它們有如下特點(diǎn):①輸入數(shù)據(jù)流的速度和時(shí)序不匹配數(shù)據(jù)采集設(shè)備和監(jiān)控設(shè)備是兩個(gè)異步的系統(tǒng),它們都有自己的定時(shí)控制電路,以自己的速度傳輸數(shù)據(jù)②輸入輸出數(shù)據(jù)流的信息格式不匹配數(shù)據(jù)采集設(shè)備輸入的原始回波數(shù)據(jù)和監(jiān)控設(shè)備輸入的雷達(dá)和載機(jī)的參數(shù)數(shù)據(jù)采用FPDP協(xié)議傳輸,接口板卡輸出到處理機(jī)的數(shù)據(jù)采用Link口傳輸協(xié)議進(jìn)行傳輸

          考慮到進(jìn)出接口板卡數(shù)據(jù)流的特點(diǎn)和雷達(dá)系統(tǒng)對(duì)接口板卡的控制要求,接口板卡要具有如下功能:

          (1)設(shè)置數(shù)據(jù)的緩沖存儲(chǔ)邏輯,以適應(yīng)不同設(shè)備之間的速度差異和時(shí)序差異;

          (2)進(jìn)行信息格式轉(zhuǎn)換,將目標(biāo)的原始回波數(shù)據(jù)與雷達(dá)和載機(jī)的參數(shù)數(shù)據(jù)打包,插入相應(yīng)的幀信息形成處理機(jī)要求的數(shù)據(jù)幀,并控制數(shù)據(jù)流的走向;

          (3)實(shí)現(xiàn)PCI接口,能夠產(chǎn)生PCI中斷;

          (4)具有在線自檢測(cè)功能

          2 系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)

          為了簡(jiǎn)化系統(tǒng)硬件設(shè)計(jì),增加系統(tǒng)的靈活性,采用芯片實(shí)現(xiàn)系統(tǒng)要求的數(shù)據(jù)格式轉(zhuǎn)換打包分發(fā)和邏輯控制功能數(shù)據(jù)緩存采用硬件FIFO和軟件雙口RAMPCI接口采用專用接口芯片實(shí)現(xiàn)硬件FIFO和軟件雙口RAM的寫時(shí)鐘分別由各自的FPDP接口提供,其它時(shí)鐘由接口板上的晶振提供系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示

          image001.gif

          2.1 輸入數(shù)據(jù)流的緩存方案

          為了適應(yīng)處理機(jī)與數(shù)據(jù)采集設(shè)備和監(jiān)控設(shè)備之間的速度差異,解決速度不匹配問題,需要將輸入的數(shù)據(jù)先進(jìn)行緩存數(shù)據(jù)采集設(shè)備送入的原始回波數(shù)據(jù)每幀的數(shù)據(jù)量比較大,接口板卡上設(shè)計(jì)了硬件FIFO作為原始回波數(shù)據(jù)的緩存器,FIFO的讀寫使能由編程控制,寫時(shí)鐘由FPDP接口提供,讀時(shí)鐘由接口板卡上的晶振提供數(shù)據(jù)采集設(shè)備和監(jiān)控設(shè)備是兩個(gè)異步的系統(tǒng),雷達(dá)參數(shù)數(shù)據(jù)流和原始回波數(shù)據(jù)流之間沒有同步關(guān)系,一幀雷達(dá)參數(shù)數(shù)據(jù)對(duì)應(yīng)幾幀原始回波數(shù)據(jù),因此設(shè)計(jì)中用雙口RAM作為雷達(dá)參數(shù)數(shù)據(jù)的緩存器另外,每幀雷達(dá)參數(shù)的數(shù)據(jù)量比較小,本設(shè)計(jì)在內(nèi)利用參數(shù)化的模塊庫(Library of Parameterized Modules,簡(jiǎn)稱LPM)中的lpm_ram_dp編程實(shí)現(xiàn)雙口RAM,簡(jiǎn)化了硬件設(shè)計(jì)

          2.2 PCI接口設(shè)計(jì)

          實(shí)現(xiàn)PCI接口的方案一般有兩種:采用可編程邏輯器件和采用專用總線接口器件采用可編程邏輯器件實(shí)現(xiàn)PCI接口的最大好處是比較靈活,缺點(diǎn)是設(shè)計(jì)難度較高,開發(fā)周期較長(zhǎng)采用專用接口器件實(shí)現(xiàn)雖然沒有采用可編程邏輯器件實(shí)現(xiàn)那么靈活,但能夠有效地降低接口設(shè)計(jì)的難度,縮短開發(fā)時(shí)間本系統(tǒng)采用專用接口器件PCI9052實(shí)現(xiàn)接口板卡的PCI接口

          接口板卡的硬件資源為映射到FPGA內(nèi)部寄存器的I/O映射空間和一個(gè)中斷源PCI9052提供5個(gè)局部地址空間,選用Space0作為接口板的地址空間,分配16個(gè)8位地址同時(shí)設(shè)置相應(yīng)的初始化,PCI配置寄存器中的PCIBAR2設(shè)置為0XFFFFFFF0,向系統(tǒng)請(qǐng)求分配內(nèi)存的數(shù)量為16設(shè)置局部地址空間的范圍為0X01000000~0X01000010PCI9052提供兩個(gè)局部中斷源,選用LINTi1FPGA提供電平觸發(fā)中斷信號(hào),因此PCI9052的中斷觸發(fā)模式設(shè)置為電平觸發(fā)利用PCI9052的局部設(shè)備片選信號(hào)CS0#作為FPGA的片選信號(hào)CS0#片選信號(hào)的起始地址和地址范圍由CS0 Base Address寄存器的設(shè)置值0x01000011決定,即起始地址為1000000h,地址范圍為20hPCI9052寄存器的初始值由串行EEPROM提供,在PCI9052加電后讀取EEPROM必須采用支持連讀功能的芯片,本設(shè)計(jì)中采用FairChild Semiconductor公司的93CS46N

          2.3 FPGA的配置設(shè)計(jì)

          本設(shè)計(jì)為FPGA提供了兩種配置方式:主動(dòng)串行配置和被動(dòng)串行配置

          主動(dòng)串行配置由EPC2向FPGA器件輸入串行位流的配置數(shù)據(jù)在該配置方式下,一直由FPGA控制著配置過程在加電過程中,FPGA檢測(cè)到nCONFIG由低到高的跳變時(shí),就開始準(zhǔn)備配置FPGA將CONF_DONE拉低,驅(qū)動(dòng)EPC2的nCS為低,而nSTATUS引腳釋放并由上拉電阻拉至高電平使能EPC2此后,EPC2就用其內(nèi)部振蕩器的時(shí)鐘將數(shù)據(jù)串行地從EPC2DATA輸送到FPGADATA0當(dāng)配置完成后,FPGA釋放CONF_DONE,將EPC2與系統(tǒng)隔離

          被動(dòng)串行配置由編程硬件通過ByteBlaster配置ByteBlaster產(chǎn)生一個(gè)由低到高的跳變送到nCONFIG引腳,然后由編程硬件將配置數(shù)據(jù)送到DATA0引腳,該數(shù)據(jù)鎖存至CONF_DONE變?yōu)楦唠娖綖橹巩?dāng)CONF_DONE變成高電平時(shí),用DCLK的10個(gè)周期初始化FPGA,器件的初始化由下載電纜自動(dòng)執(zhí)行

          為了兩種配置方式共存,設(shè)計(jì)中用撥碼開關(guān)將EPC2與FPGA和ByteBlaster的下載電纜插座隔離當(dāng)用被動(dòng)串行方式配置時(shí),撥碼開關(guān)斷開,由上位機(jī)通過ByteBlaster下載電纜加載FPGA當(dāng)用主動(dòng)串行方式配置時(shí),撥碼開關(guān)接通,由EPC2加載FPGA電路圖如圖2所示

          image002.gif

          2.4 在線自檢測(cè)功能

          板卡設(shè)計(jì)時(shí)還應(yīng)考慮便于日常調(diào)試維護(hù)及故障檢測(cè)定位板卡在硬件上針對(duì)各電源信號(hào)和關(guān)鍵的狀態(tài)信號(hào)設(shè)計(jì)了信號(hào)燈,一旦發(fā)現(xiàn)有誤,便可給出信號(hào)觸發(fā)該電路板上的信號(hào)燈告警,定位系統(tǒng)故障另外在電路設(shè)計(jì)時(shí)應(yīng)留出測(cè)試孔,以增加電路的可測(cè)性

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

          系統(tǒng)上電后, PCI上電復(fù)位,FIFO清零上位機(jī)向相應(yīng)寄存器寫入初始值,完成寄存器設(shè)置當(dāng)系統(tǒng)啟動(dòng)信號(hào)有效時(shí),接口板開始接收數(shù)據(jù),進(jìn)行數(shù)據(jù)打包和分發(fā),直到上位機(jī)向接口板卡寫停止命令為止圖3給出了系統(tǒng)工作流程圖

          image004.jpg

          3.1 數(shù)據(jù)的打包和流向控制

          雷達(dá)參數(shù)數(shù)據(jù)和原始回波數(shù)據(jù)的數(shù)據(jù)源是異步的,不能保證兩者確切的對(duì)應(yīng)關(guān)系,接口板卡利用對(duì)緩存原始回波數(shù)據(jù)FIFO和緩存雷達(dá)參數(shù)數(shù)據(jù)雙口RAM的讀寫控制,調(diào)整雷達(dá)參數(shù)數(shù)據(jù)和原始回波數(shù)據(jù)對(duì)應(yīng)關(guān)系,將兩種數(shù)據(jù)源按處理機(jī)要求的輸入數(shù)據(jù)格式組成正確的數(shù)據(jù)幀雷達(dá)參數(shù)數(shù)據(jù)和原始回波數(shù)據(jù)打包后的數(shù)據(jù)幀格式如下:

          在程序中,設(shè)計(jì)了雷達(dá)參數(shù)發(fā)送控制計(jì)數(shù)器Para_counter和回波數(shù)據(jù)發(fā)送控制計(jì)數(shù)器Data_counter系統(tǒng)工作后,每次檢測(cè)到原始回波數(shù)據(jù)流的數(shù)據(jù)有效信號(hào)data_valid的上升沿(標(biāo)記收到完整的一幀回波數(shù)據(jù))時(shí),啟動(dòng)雷達(dá)參數(shù)發(fā)送控制計(jì)數(shù)器開始計(jì)數(shù),當(dāng)計(jì)數(shù)到設(shè)定的值(本設(shè)計(jì)中為25)時(shí)停止計(jì)數(shù)并啟動(dòng)回波數(shù)據(jù)發(fā)送控制計(jì)數(shù)器開始計(jì)數(shù),計(jì)數(shù)到設(shè)定的值(本設(shè)計(jì)中為5000)時(shí)停止計(jì)數(shù)當(dāng)檢測(cè)到原始回波數(shù)據(jù)流的數(shù)據(jù)有效信號(hào)data_valid的下降沿(標(biāo)記開始接收新的一幀回波數(shù)據(jù))時(shí),兩個(gè)計(jì)數(shù)器都清零根據(jù)計(jì)數(shù)器的計(jì)數(shù)值產(chǎn)生Link口選擇信號(hào)確定數(shù)據(jù)的流向圖4給出了數(shù)據(jù)流向的示意圖圖5給出了基于MAXPLUSⅡ10.0的仿真結(jié)果,仿真顯示正確地實(shí)現(xiàn)了數(shù)據(jù)打包和流向控制

          image005.gif

          image007.jpg

          3.2 Link口傳輸協(xié)議的實(shí)現(xiàn)

          Link口的數(shù)據(jù)傳輸是在同步時(shí)鐘線(LxCLK)與應(yīng)答線(LxACK)相互握手的情況下同步傳輸?shù)囊粋€(gè)傳輸字為32bit,Link口以4bit為單位進(jìn)行傳輸在LxCLK上升沿,發(fā)送端會(huì)發(fā)送一個(gè)新的4bit數(shù)據(jù),在LxCLK的下降沿,接收方鎖存數(shù)據(jù)線上的數(shù)據(jù)8個(gè)4bit數(shù)據(jù)發(fā)送完畢后,如果接收方準(zhǔn)備好接收下一個(gè)字,則將LxACK置1發(fā)送方在每次發(fā)送新字的第一個(gè)4bit時(shí)對(duì)LxACK采樣,如果LxACK為0,表明接收方?jīng)]有準(zhǔn)備好,則發(fā)送方保持LxCLK為高電平,且數(shù)據(jù)線上保持當(dāng)前的4bit數(shù)據(jù),直到接收方將LxACK置1,發(fā)送方才將 LxCLK下拉,并繼續(xù)發(fā)送新的數(shù)據(jù)當(dāng)發(fā)送方緩存為空時(shí),表明沒有數(shù)據(jù)需要發(fā)送,則LxCLK保持為低電平接口板利用VHDL語言實(shí)現(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è)計(jì)軟件仿真和制板,并應(yīng)用到某機(jī)載合成孔徑信號(hào)處理機(jī)中接口板卡位于信號(hào)處理機(jī)的前端,通過CPCI機(jī)箱的前面板接口,采用一塊PMC子板實(shí)現(xiàn)系統(tǒng)采用了圖1所示的體系結(jié)構(gòu),鎖存器選用TI公司的SN74LVT16374,時(shí)鐘驅(qū)動(dòng)芯片選用IDT公司的IDT49FCT3805APY,FIFO選用IDT公司的IDT72V36110,PCI接口芯片選用PLX9052,FPGA選用Altera公司的EP1K100FC256-1經(jīng)過實(shí)驗(yàn)室階段和外廠試驗(yàn),接口板都工作正常,達(dá)到了設(shè)計(jì)要求



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();