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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 用于MF-TDMA衛(wèi)星通信系統(tǒng)的數(shù)據(jù)采集卡設(shè)計(jì)

          用于MF-TDMA衛(wèi)星通信系統(tǒng)的數(shù)據(jù)采集卡設(shè)計(jì)

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

          1 引言

          目前,MF-TDMA多址方式被廣泛地應(yīng)用于衛(wèi)星通信體制中,主要用來(lái)承載IP通信的業(yè)務(wù)。在MF-TDMA衛(wèi)星通信系統(tǒng)中,下后的中頻模擬化采集是對(duì)其進(jìn)行后端處理的基礎(chǔ)。目前,大部分?jǐn)?shù)據(jù)采集傳輸多采取基于PCI總線協(xié)議的高速數(shù)據(jù)傳輸方式,而基于母板加背板的系統(tǒng),其模塊化程度、靈活性更高。例如,采用一塊用作數(shù)據(jù)處理的母板加一塊數(shù)據(jù)采集的AD板和一塊DA變換的DA板,就可以構(gòu)成一套完整的TDMA衛(wèi)星還原系統(tǒng)。

          PCI Mezzanine Card(PMC)標(biāo)準(zhǔn)基于PCI協(xié)議。PMC背板的物理接口由4個(gè)64管腳的接插件組成,分別是PN1,PN2,PN3和PN4。采用PMC背板,是獲得高速數(shù)據(jù)傳輸和擴(kuò)展母板系統(tǒng)功能的一種良好方案。筆者設(shè)計(jì)了一種PMC背板標(biāo)準(zhǔn)的數(shù)據(jù)采集卡,該采集卡增加了(DDC)模塊對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,擴(kuò)展了系統(tǒng)功能。

          2 數(shù)據(jù)采集卡硬件結(jié)構(gòu)

          該采集卡采用的母板基于ADSP-TS201DSP芯片,并行信號(hào)處理板上有4片TS201,有2個(gè)PMC背板接口,用來(lái)完成MF-TDMA中頻模擬信號(hào)的A/D變換、數(shù)字下(DDC)和數(shù)據(jù)的高速采集工作。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

          先對(duì)中頻模擬信號(hào)進(jìn)行A/D變換后,數(shù)字信號(hào)分兩路傳輸:一路經(jīng)專用的DDC芯片進(jìn)行數(shù)字下變頻處理,調(diào)整信號(hào)的頻率和速率;一路直接送入FPGA,利用FP-GA的IP核設(shè)計(jì)DDC模塊,對(duì)其進(jìn)行下變頻。這樣,可根據(jù)需要靈活選擇數(shù)字下變頻模塊。本系統(tǒng)使用專用的DDC芯片實(shí)現(xiàn)數(shù)字下變頻,得到的信號(hào)送入FPGA中。這時(shí),為數(shù)據(jù)輸出也設(shè)計(jì)了兩條通路。一條通路是將FPGA作為局部總線處理器與PCI-IO接口芯片進(jìn)行通信,控制接口芯片實(shí)現(xiàn)局部總線和PCI總線的協(xié)議轉(zhuǎn)換,由PMC背板上PN1~PN3口定義的PCI總線接口將數(shù)據(jù)傳輸至主機(jī)或數(shù)據(jù)處理母板。另一條通路是利用PMC的PN4口自定義一個(gè)高速接口,通過(guò)FPGA的控制,將數(shù)據(jù)送至數(shù)據(jù)處理母板。其中,F(xiàn)PGA和PCI-IO接口芯片是整個(gè)系統(tǒng)的核心,最重要的數(shù)據(jù)傳輸及控制都由其協(xié)同工作完成。主要芯片有:

          1) A/D芯片選用AD公司的AD6645芯片,14 bit量化輸出,采樣率105 MS/s,SFDR 100 dB,采樣時(shí)鐘80 MHz。

          2) DDC芯片選用TI公司的GC4016芯片,提供4個(gè)獨(dú)立的下變頻通道,每個(gè)通道有I和Q兩路輸出,可配置數(shù)字下變頻的各種參數(shù),如載頻、相位、濾波器系數(shù)、重采樣濾波系數(shù)、抽取因子、輸出模式等。每個(gè)控制寄存器都有一個(gè)唯一的5 bit地址,寄存器位寬為8 bit。

          3) FPGA芯片選用ALTERA公司的高性能芯片EP2S60F484C5。

          4) PCI-IO接口芯片選用PLX公司的PCI9656芯片,可完成64 bit/66 MHz PCI總線和32 bit/66 MHz用戶局端總線的協(xié)議轉(zhuǎn)換,是比較先進(jìn)的PCI接口芯片。

          3 系統(tǒng)軟件結(jié)構(gòu)

          系統(tǒng)的總體軟件結(jié)構(gòu)如圖2所示。

          系統(tǒng)運(yùn)行時(shí),由主機(jī)應(yīng)用程序發(fā)送消息給設(shè)備PCI驅(qū)動(dòng)程序,驅(qū)動(dòng)程序接收到消息后翻譯成PCI總線上的I/O操作信息,再經(jīng)過(guò)PCI9656的總線協(xié)議轉(zhuǎn)換,通過(guò)局部總線將此消息傳遞給FPGA,最終由接口控制邏輯進(jìn)行相應(yīng)的處理。

          1) FPGA接口控制邏輯設(shè)計(jì)

          FPGA的接口控制邏輯主要完成以下工作:對(duì)PCI總線上發(fā)送的控制命令進(jìn)行譯碼、采集并簡(jiǎn)單處理DDC輸出的數(shù)據(jù)、緩存數(shù)據(jù)、通過(guò)PCI總線或用戶自定義接口傳輸數(shù)據(jù)等。圖3是接口控制邏輯的原理框圖。

          首先,基帶數(shù)據(jù)采集模塊按照基帶數(shù)據(jù)的輸出時(shí)序?qū)⒂行?shù)據(jù)采集下來(lái),再將數(shù)據(jù)送人兩個(gè)通道進(jìn)行傳輸:用戶自定義接口和PCI接口。例如使用PCI接口傳輸數(shù)據(jù),當(dāng)數(shù)據(jù)寫入PCI接口FIFO至半滿時(shí),發(fā)起一次局部端中斷,并被映射為PCI端中斷,響應(yīng)中斷后在中斷服務(wù)程序中啟動(dòng)一次PCI9656的DMA讀操作,將FIFO中的數(shù)據(jù)讀出,傳至主機(jī)或數(shù)據(jù)處理母板。

          局部總線接口模塊用于FPGA和PCI9656的局部總線時(shí)序連接,即實(shí)現(xiàn)從模式寫操作和DMA讀操作的局部總線時(shí)序,按照PCI9656局部總線處理流程設(shè)計(jì)即可。

          控制命令譯碼模塊用于將局部總線Space0地址存放的控制命令進(jìn)行譯碼輸出,再存儲(chǔ)在控制命令寄存器中,以控制系統(tǒng)的運(yùn)作。控制命令包括:FIFO的控制信號(hào)、PCI中斷使能、數(shù)據(jù)通路選擇信號(hào)等;DDC控制寄存器的片選信號(hào)、寫使能、讀使能、地址和數(shù)據(jù)等。控制命令采用PCI9656的從模式單周期寫操作進(jìn)行傳輸。

          2) 設(shè)備PCI驅(qū)動(dòng)程序

          基本功能是對(duì)設(shè)備進(jìn)行識(shí)別和初始化、對(duì)內(nèi)存和I/O端口進(jìn)行操作、對(duì)中斷進(jìn)行設(shè)置、響應(yīng)和調(diào)用等,來(lái)控制PCI總線上的數(shù)據(jù)操作。在本系統(tǒng)中,驅(qū)動(dòng)程序由PLX公司提供的軟件開發(fā)包(SDK)產(chǎn)生,將該開發(fā)包安裝在操作系統(tǒng)中,驅(qū)動(dòng)程序就可以直接應(yīng)用。

          3) 主機(jī)應(yīng)用程序的開發(fā)

          主機(jī)應(yīng)用程序完成的工作有:DDC控制寄存器的配置、數(shù)據(jù)采集與預(yù)處理的控制、中斷的控制、數(shù)據(jù)的采集、存盤等。主機(jī)應(yīng)用程序是基于PLX SDK中提供的APIDLL,利用VC++6.0程序框架開發(fā)的,該DLL文件名為PlxApi.dll。數(shù)據(jù)的采集、存盤是在一個(gè)獨(dú)立線程中完成的,具體的應(yīng)用程序流程如圖4所示。

          4 測(cè)試方案及結(jié)果

          在采集卡中,大部分?jǐn)?shù)據(jù)都是通過(guò)PCI接口傳輸?shù)?,而FPGA和PCI9656是PCI接口的核心,因此須對(duì)PCI9656局部總線時(shí)序進(jìn)行測(cè)試,保證PCI接口正常工作。在此基礎(chǔ)上,再對(duì)一個(gè)實(shí)際的MF-TDMA衛(wèi)星信號(hào)進(jìn)行采集測(cè)試,檢測(cè)其總體性能。

          1) FPGA邏輯控制時(shí)序的測(cè)試

          應(yīng)用PCI接口時(shí),主要通過(guò)FPGA對(duì)PCI9656的局部總線進(jìn)行邏輯控制,進(jìn)而實(shí)現(xiàn)總線時(shí)序,以達(dá)到數(shù)據(jù)傳輸?shù)哪康摹?/P>

          由測(cè)試結(jié)果得知,在FPGA中正確地實(shí)現(xiàn)了PCI接口的局部總線時(shí)序,數(shù)據(jù)傳輸正常。

          2) 信號(hào)采集實(shí)測(cè)

          保證PCI接口正常工作之后,實(shí)際選取一個(gè)MF-TDMA中頻模擬信號(hào)進(jìn)行采集實(shí)測(cè)。該中頻信號(hào)中心頻率為70.3 MHz,帶寬為400 kHz?;緶y(cè)試參數(shù)如下:A/D采樣率為80 MS/s;DDC輸出時(shí)鐘頻率為80 MHz;DDC載波頻率:70 MHz;DDC輸出模式:?jiǎn)瓮ǖ?,通道A;DDC輸出基帶信號(hào)的符號(hào)速率為1.52 Mbaud。

          測(cè)試時(shí),將該中頻模擬信號(hào)送人數(shù)據(jù)采集卡,對(duì)DDC進(jìn)行如上的配置,然后開始采集。將采集到的數(shù)字化中頻信號(hào)和基帶信號(hào)保存在文件Samplel.dat和Sam-ple2.dat中,用CoolEdit Pro軟件進(jìn)行回放,分析數(shù)據(jù)的波形、頻譜,檢驗(yàn)采集結(jié)果。圖5是下變頻之后得到基帶信號(hào)頻譜,信噪比SNR=59 dB。由于噪聲的干擾,損失了3 dB的信噪比,信號(hào)能量集中在300 kHz的頻率上。測(cè)試結(jié)果證明,中心頻率為70.3 MHz的中頻信號(hào)經(jīng)過(guò)A/D變換、DDC,以及PCI接口的傳輸,準(zhǔn)確采集到中心頻率為300 kHz的基帶信號(hào)。改變測(cè)試條件時(shí),可以得到類似的效果。

          5 小結(jié)

          本文介紹了一種應(yīng)用于MF-TDMA衛(wèi)星通信系統(tǒng)的數(shù)據(jù)采集卡,采用基于PCI總線協(xié)議的PMC背板標(biāo)準(zhǔn)構(gòu)建,模塊化程度高、靈活性好。筆者對(duì)系統(tǒng)硬件架構(gòu)、FPGA的控制邏輯、PCI接口的實(shí)現(xiàn)、系統(tǒng)的控制等關(guān)鍵技術(shù)進(jìn)行了分析和設(shè)計(jì)。在完成硬件和軟件設(shè)計(jì)的基礎(chǔ)上,用Agilent1682AD邏輯分析儀和實(shí)際的MF-TDMA衛(wèi)星信號(hào)進(jìn)行測(cè)試驗(yàn)證。結(jié)果表明,該系統(tǒng)可以穩(wěn)定的工作,能夠準(zhǔn)確地采集到MF-TDMA中頻信號(hào)。

          模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)


          通信相關(guān)文章:通信原理




          關(guān)鍵詞: 數(shù)字 變頻 基帶 信號(hào)

          評(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); })();