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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的通用異步收發(fā)器設(shè)計

          基于FPGA的通用異步收發(fā)器設(shè)計

          作者: 時間:2011-08-24 來源:網(wǎng)絡(luò) 收藏

          2.3.2 接收模塊功能仿真
          接收模塊功能仿真結(jié)果如圖5所示。二進制數(shù)11101010從引腳RXD串行輸入,接收器先要捕捉起始位,在RDN信號為0條件下,啟動接收程序,計數(shù)器開始計數(shù),數(shù)據(jù)從RXD[7..0]串行輸入,由接收移位寄存器RSR[7..0]逐位移位接收,并在接收完成時傳送給接收緩沖寄存器RBR[7..0],最后接收緩沖寄存器RBR[7..0]將接收的數(shù)據(jù)傳送至DOUT[7..0],由它并行輸出,同時輸出一個接收數(shù)據(jù)準備好信號DATA _RE標志數(shù)據(jù)接收完畢。

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

          b.JPG


          2.4 波特率發(fā)生器模塊
          2.4.1 波特率發(fā)生器模塊及其功能
          波特率發(fā)生器模塊主要用于產(chǎn)生接收模塊和發(fā)送模塊的時鐘頻率,其實質(zhì)就是一個分頻器,可以根據(jù)給定的系統(tǒng)時鐘頻率和要求的波特率算出波特率分頻因子,作為分頻器的分頻數(shù)。波特率發(fā)生器產(chǎn)生的時鐘頻率CLK16X不是波特率時鐘頻率CLK,而是波特率時鐘頻率CLK的16倍。波特率發(fā)生器模塊的引腳如圖6所示,其功能如表3所示。

          g.jpg


          2.4.2 波特率發(fā)生器功能仿真
          UART在發(fā)送或接收數(shù)據(jù)時,使用的時鐘信號頻率f是波特率(b=9 600 b/s)的16倍,由外部系統(tǒng)時鐘進行16分頻得到。UART每16個波特時鐘發(fā)送或接收一個二進制位,設(shè)計中采用的晶振頻率c=25 MHz,那么波特率發(fā)生器輸出的時鐘信號周期為:
          h.jpg
          波特率發(fā)生器的功能仿真如圖7所示。

          c.JPG


          本設(shè)計用晶振為25 MHz,由公式可得出輸出波形的半個周期應(yīng)為k/2,即81倍的輸入時鐘周期,仿真結(jié)果驗證了波特率發(fā)生器模塊的正確性。

          3 結(jié)語
          UlART是廣泛使用的串行數(shù)據(jù)通信電路,因其要求的傳輸線少,可靠性高,傳輸距離遠,所以系統(tǒng)間互聯(lián)常采用異步串行通信接口方式。本文用Verilog HDL語言,結(jié)合有限狀態(tài)機的設(shè)計方法實現(xiàn)了UART的功能,將其核心功能集成到上,使整體設(shè)計緊湊、小巧,實現(xiàn)的UART功能穩(wěn)定、可靠;同時,利用有限狀態(tài)機的方法具有結(jié)構(gòu)模式直觀簡單,設(shè)計流程短,程序?qū)哟畏置鳎拙C合,可靠性高等優(yōu)點,必將在EDA技術(shù)中發(fā)揮重要作用。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: FPGA 異步收發(fā)器

          評論


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