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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的無線同播頻率校準裝置的設(shè)計

          基于FPGA的無線同播頻率校準裝置的設(shè)計

          作者: 時間:2010-03-09 來源:網(wǎng)絡(luò) 收藏

          2.2 脈沖計時模塊設(shè)計
          脈沖計時模塊接口信號包括:級別輸入level[2∶0]、開始計數(shù)輸入auto_reset、判斷輸出judge[1∶0]、讀指令輸出read,還有輸入時鐘fre_in和復(fù)位使能reset,模塊內(nèi)部設(shè)寄存器clk_add[32∶0],用于脈沖計數(shù)。模塊的狀態(tài)包括idle、calculate、judgment和readtime,狀態(tài)機如圖3所示。

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


          其具體工作過程為:
          (1)狀態(tài)為idle時,read置0,clk add[32∶0]清空,讀入level值。Level是計數(shù)判斷的基準,必須在計數(shù)前讀入。
          (2)當收到auto_reset為高電平,狀態(tài)從idle轉(zhuǎn)至calculate開始脈沖計數(shù)。由于計數(shù)的頻率同時是的工作頻率,所以clk_add[32∶0]只需在calculate狀態(tài)下每個時鐘累加一次。
          (3)auto_reset變?yōu)榈蜁r,狀態(tài)轉(zhuǎn)至judgment,將clk_add[32∶0]與所在級別的上下限對比,將結(jié)果通過judge[1∶0]輸出。
          (4)狀態(tài)轉(zhuǎn)至readtime,將read置1,read信號告知分級控制模塊judge[1∶0]信號已經(jīng)更新,要求讀取,當clk_add [32∶0]等于中心脈沖數(shù),read不置為1,表示無需改變電壓值。
          (5)狀態(tài)轉(zhuǎn)回idle。
          2.3 電壓控制模塊設(shè)計
          電壓控制模塊的接口信號包括:級別輸入level[2∶0]、調(diào)整方向輸入step、調(diào)整輸入load、就緒輸出ready、DAC接口輸出(sync、SClk和din),還有輸入時fre_in和復(fù)位使能reset,模塊內(nèi)部設(shè)寄存器data reg[23∶0]用于生成控制DAC的幀,max_24bits[4∶0]用于記錄當前是控制幀的第幾位輸出。每幀長度為24位,控制字包括:LDB、LDA選擇寫入通道,Buffer Select選擇寫入的寄存器,PDl、PD0選擇輸出阻抗模式,D15~D0為16位的DAC數(shù)據(jù)。其幀結(jié)構(gòu)如圖4所示。


          DAC8552采用SYNC、SCLK和DIN三線接口控制方式,從SYNC變低時開始寫入,SCLK產(chǎn)生寫時鐘,在SCLK下降沿數(shù)據(jù)被寫入DAC8552,SYNC必須在第24個下降沿后才重新拉高,否則寫入失敗。其時序圖如圖5所示



          關(guān)鍵詞: FPGA 無線 頻率校準 裝置

          評論


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