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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的數(shù)字中頻接收和恢復系統(tǒng)設計

          基于FPGA的數(shù)字中頻接收和恢復系統(tǒng)設計

          作者: 時間:2012-08-27 來源:網(wǎng)絡 收藏


          3 AD9957接口設計
          AD9957是正交數(shù)字上變頻器(QDUC)系列中的第3款產(chǎn)品,其將一個高速、直接數(shù)字頻率合成器(DDS)、一個高性能高速14位數(shù)模轉(zhuǎn)換器(DAC)、時鐘乘法器電路、數(shù)字濾波器和其他DSP功能集成在一個芯片上,可以在有線或無線通信系統(tǒng)中為數(shù)據(jù)傳輸提供基帶上變頻。AD9957有3種基本的工作模式:QDUC模式、插值DAC模式和單音模式,系統(tǒng)需要用到QDUC模式,如圖3所示。

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

          c.JPG


          3.1 串行接口設計
          AD9957的配置是通過同步串行通訊端口實現(xiàn)的,可以方便地與多種工業(yè)用微處理器接口連接,并兼容多種同步傳輸格式。本設計通過在內(nèi)部編寫同步串行通訊邏輯實現(xiàn)對AD9957的配置。其串行通訊周期分為兩個階段,第一階段是傳輸指令階段,將指令字寫入AD9957,指令字主要包括要訪問的寄存器地址,以及將進行的數(shù)據(jù)傳輸是讀操作還是寫操作。第二階段是數(shù)據(jù)傳輸階段,將數(shù)據(jù)從串行端口控制器向串行端口緩沖區(qū)傳輸數(shù)據(jù),傳輸?shù)腂yte數(shù)取決與要訪問的寄存器。其時序控制圖如圖4所示。

          d.JPG


          3.2 并行接口設計
          AD9957有一個18位的并行數(shù)據(jù)輸入端口,在QDUC模式下,將I/Q數(shù)據(jù)基帶數(shù)據(jù)交替的輸入到AD9957內(nèi)部。基帶數(shù)據(jù)的時鐘PDCLK由AD9957提供,最高支持250 MHz的并行數(shù)據(jù)時鐘,同時也是并行數(shù)據(jù)的采樣時鐘。系統(tǒng)中PDCLK工作在200 MHz。AD9957在TxENABLE的上升沿準備接收第一個I字,在PDCLK的有效沿上,第一個I字被鎖存至器件,PDCLK的下一有效沿鎖存一個Q字,依次類推。需要特別注意的是:確保向器件中送入偶數(shù)個數(shù)據(jù),因為器件必須捕捉到一個I字和一個Q字,然后才能使接收到的數(shù)據(jù)沿著信號鏈處理。

          e.JPG


          值得注意的是,AD9957的并行數(shù)據(jù)傳輸速度較高,容易發(fā)生調(diào)制數(shù)據(jù)時序問題,會導致I/Q基帶數(shù)據(jù)相位不平衡等問題,嚴重時,會導致調(diào)制數(shù)據(jù)錯誤。因此,在進行硬件設計時,需嚴格按照AD9957的并行數(shù)據(jù)傳輸時序要求操作,必要時在內(nèi)部對時序進行優(yōu)化,以提高數(shù)字正交調(diào)制器的調(diào)制效果。



          評論


          相關推薦

          技術專區(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); })();