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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于AD9954的多模式調(diào)制器的設計

          基于AD9954的多模式調(diào)制器的設計

          作者: 時間:2011-03-16 來源:網(wǎng)絡 收藏

          軟件無線電是近年來提出的一種新的無線通信體系結構。它最初起源于軍事通信,是以開放的、可擴展的、結構最簡的硬件為通用平臺,把盡可能多的功能用可升級、可替換的軟件來實現(xiàn)。軟件無線電的出現(xiàn)大大減小了硬件對通信系統(tǒng)的束縛,通過加載軟件就可以實現(xiàn)各種無線通信功能。
          如何產(chǎn)生多種調(diào)制信號,一直是大家討論和關注的熱點。本文提出的方案就是超高速、先進DDS技術的數(shù)字中頻處理技術的方法,利用美AD公司推出的構建一個硬件平臺,結合相應的數(shù)字處理軟件和控制軟件,獲得多種調(diào)制信號。一方面由于體積變小,使用起來很方便,另一方面也大大降低了成本。

          1 DDS的原理介紹
          直接數(shù)字頻率合成器DDS是近年來發(fā)展起來的一種新的查找表的頻率合成技術。典型的DDS由相位累加器、ROM波形存儲表、D/A轉換器(Digital-to-AnalogConverter,DAC)和低通濾波器(LoW Passed Filter,LPF)組成,如圖1所示。

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


          相位累加器由N位加法器與N位累加寄存器級聯(lián)構成。每來一個時鐘脈沖fs,加法器將頻率控制字FTW與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結果送至累加寄存器的數(shù)據(jù)輸入端。累加寄存器將加法器在上一個時鐘脈沖作用后所產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,使加法器在下一個時鐘脈沖的作用下繼續(xù)與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。由此可以看出,相位累加器在每一個時鐘脈沖輸入時,把頻率控制字累加1次,相位累加器輸出的數(shù)據(jù)就是合成信號的相位,相位累加器的溢出頻率就是DDS輸出的信號頻率。
          用相位累加器輸出的數(shù)據(jù)作為波形存儲(ROM)的相位取樣地址,這樣就可把存儲在波形存儲器內(nèi)的波形抽樣值(二進制編碼)經(jīng)查找表查出,完成相位到幅值轉換。波形存儲器的輸出送到D/A轉換器,D/A轉換器將數(shù)字量形式的波形幅值轉換成所要求合成頻率的模擬量形式信號。低通濾波器用于濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號。
          若相位累加器的位數(shù)為N.改變頻率控制字FTW或參考時鐘fs,就可以改變輸出頻率fo:

          DDS在相對帶寬、頻率轉換時間、高分辨率、相位連續(xù)性、正交輸出以及集成化等一系列性能指標方面遠遠超過了傳統(tǒng)頻率合成技術所能達到的水平,為系統(tǒng)提供了優(yōu)于模擬信號源的性能。

          2 芯片的介紹
          2.1 的主要性能特性
          1)DDS采樣率可達400 MSPS;2)內(nèi)置14位DAC;3)32位相位累加器;4)波特率達25 M的SPI接口;5)內(nèi)置1 024x32位RAM,可實現(xiàn)內(nèi)部調(diào)制;6)內(nèi)部采用1.8 V供電,超低功耗;7)可自動線性和非線性掃頻。
          2.2 AD9954的原理及工作過程
          AD9954是采用先進的DDS技術開發(fā)的高集成度DDS器件。該芯片的速度是業(yè)界第一個時鐘達到400 MHz,合成技術高達160 MHz,功耗200 mW。以前產(chǎn)品的合成頻率只有120 MHz且功耗卻有2 W。它能使者采用DDS在功率敏感的應用中在更高頻率輸出進行快速跳頻。
          AD9954作為新型DDS系列的旗艦產(chǎn)品,內(nèi)置高速、高性能14位DAC,它內(nèi)含1 024x32靜態(tài)RAM,可實現(xiàn)高速調(diào)制,并支持幾種快速掃頻和精細的調(diào)諧分辨率(32位頻率調(diào)諧字)??商峁┳远x的線性掃頻操作,采用自動線性和非線性掃描功能來控制頻率調(diào)諧和相位,其中頻率調(diào)諧和控制字通過串行I/O口加載到AD9954,可實現(xiàn)多片同步。

          3 系統(tǒng)原理框圖
          多種調(diào)制信號平臺由TI的430單片機、Altera公司的FPGA、AD公司的AD9954、外圍的濾波和整形電路搭建而成。其中以AD9954為核心元器件來產(chǎn)生原始的所需波形,如圖2所示。


          通過MCU控制FPGA的調(diào)制類型狀態(tài)和DDS調(diào)制芯片的寄存器數(shù)值,完成利用人機界面對整體電路的控制和配置過程。FPGA將A/D轉換過后的基帶信號通過確定的調(diào)制方式再經(jīng)相應的轉換送入DDS調(diào)制IC中。DDS的輸出信號經(jīng)功率放大后再進行輸出。
          AD9954的串口與FPGA相連,F(xiàn)PGA通過AD9954的CS、SCLK、SDIO和SDO管腳向AD9954寫入數(shù)據(jù)和控制字。首先設置特定的寄存器控制字,允許RAM工作,接著將RAM輸出作為相位累加器的輸入給芯片提供頻率轉換字,然后寫好RAM段控制寄存器的值,定義起始地址、終止地址并選擇工作。例如,在RAM地址256~511中寫入計算好的頻率值,主要操作過程如下:
          1)允許RAM操作,清除CFR30>;2)選擇模式5即連續(xù)循環(huán)模式;3)選擇RAM段1,PS0=1,PS1=0;4)指令字節(jié)為00001001;5)定義通信階段的通信周期數(shù)為256,把數(shù)據(jù)寫入RAM存儲器地址256~511中:6)改變I/O UPDATE啟動模式工作。本系統(tǒng)可由地址的變化速率來計算調(diào)制速度,地址變化速率RAM段控制寄存器中的地址變化率控制字決定,其值的范圍是1~65 535,定義的時間是SYNC_CLK的周期數(shù)。由于SYNC_CLK最大為100 MHz,從而決定了地址變化率控制字為1時能定義的最快速度為100 MHz,假設一個波形要采集256個點,那么調(diào)制速度為100 MHz/256=400 kHz;如果采樣點為100個,則調(diào)制速度可達100 MHz/100=1 MHz。由于AD9954產(chǎn)生的調(diào)制波形采樣點多,采樣時間精確,因此波形性能較好。

          4 輸出信號介紹及設置AD9954中的寄存器
          4.1 正弦信號
          正弦波信號廣泛地應用于通信系統(tǒng)中,它可以作為載波信號來進行數(shù)字系統(tǒng)的調(diào)制,這不僅僅是因為它容易產(chǎn)生,最主要的是它便于接收并且形式簡單。其數(shù)學表達式為:

          平臺上的實現(xiàn):AD9954首先通過關閉RAM模式和線性掃頻模式來實現(xiàn)單頻模式,然后設置頻率字設置寄存器1來實現(xiàn)要獲得的頻率。它的頻率計算公式如下:

          4.2 線性調(diào)頻信號
          線性調(diào)頻信號是一種發(fā)射脈沖信號在信息脈沖持續(xù)時間T內(nèi)作線性變化,其瞬時頻率隨時間線性變化。這種信號的產(chǎn)生可以由一個鋸齒波控制壓控振蕩器實現(xiàn),振蕩頻率隨鋸齒波而變化,因此脈沖信號的載頻從原來單一頻率展寬為一個頻帶??梢杂靡韵卤磉_式來說明這個過程:

          脈沖點火器相關文章:脈沖點火器原理

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();