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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 波特率連續(xù)可調的串口通信技術

          波特率連續(xù)可調的串口通信技術

          作者: 時間:2012-03-09 來源:網絡 收藏

          摘要 在基于PCI接口中,通信模塊作為整個PCI接口功能的本地模塊,是實現PCI接口模塊與外部信息的溝通。文中介紹了技術的實現原理和方法,并基于PCI接口和FPGA技術完成通信模塊的實現與測試驗證。其具有設計的靈活性和應用的廣泛性。
          關鍵詞 PCI接口;串口通信;;DDS;FPGA

          基于PCI總線的串口,在工業(yè)領域中有著重要的應用。而目前市場上基于PCI總線的串口通信卡,雖然可以實現多串口收發(fā)且波特率可調,但可調的波特率只是幾個點,不能實現連續(xù)可調。但在一些軍事通信中,經常會需要波特率連續(xù)可調,以滿足軍事通信中對波特率的特殊要求。文中基于這個要求,采用硬件描述語言,實現這一功能要求在FPGA上的研究、開發(fā)、測試與驗證。

          1 波特率連續(xù)可調的串口通信
          1.1 串口通信中的波特率技術
          在數據通信中,波特率等于每秒鐘傳輸的數據位數。在串行通訊中,收發(fā)雙方基于同一波特率實現數據的發(fā)送與接收。波特率即為發(fā)送或接收信號的頻率。
          1.2 波特率連續(xù)可調的DDS方法
          1.2.1 設計要求
          例如RS232標準中串行通信波特率的一般要求范圍是300~115 200 bit·s-1。而傳統的串行通信卡支持波特率可調只是在某幾點可調。文中研究的目標是波特率連續(xù)可調,例如要求波特率在300~115 200 bit·s-1之間可以實現步進為1 bit·s-1甚至0.1 bit·s-1的調節(jié)。
          改變波特率即改變信號發(fā)送或信號接收時鐘的頻率,可以采用對基準時鐘進行數據分頻的方法,但達不到調節(jié)的連續(xù)性。文中采用改進的DDS方法,實現對發(fā)送時鐘fclk步進為1 bit·s-1的調節(jié)。
          1.2.2 DDS原理介紹
          直接數字頻率合成DDS(Direct Digital Synthesis)是種把一系列數字信號通過D/A轉換器轉換為模擬信號的合成技術。傳統DDS的核心結構如圖1所示。

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

          a.jpg


          輸出頻率可由式(1)確定。
          b.jpg
          其中,fclk是時鐘頻率;FCW是頻率控制字;L為相位累加字的字長。
          1.2.3 產生頻率連續(xù)可調的時鐘信號
          在傳統的DDS技術中,頻率最小步進值的尾數不是零,給后續(xù)的頻率合成造成不便,所以采用改進的DDS技術,循環(huán)相位累加器設定一個可調的最大值作為溢出值,最大值溢出后,以余值而不是以零作為下一次累加的起始值。結構框圖如圖2所示。

          c.jpg


          改進后的DDS輸出頻率可由式(3)確定
          d.jpg
          最小頻率精度可由式(4)確定
          e.jpg


          上一頁 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); })();