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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式UART接口模塊的設計

          嵌入式UART接口模塊的設計

          作者: 時間:2011-08-31 來源:網絡 收藏

          移位寄存器仿真波形圖

          圖4 移位寄存器仿真波形圖

            如圖4所示,移位寄存器在復位后的每個時鐘的上升沿工作。由于數(shù)據(jù)發(fā)送時是先發(fā)送有效數(shù)據(jù)的最低位,因此移位寄存器是將接收的數(shù)據(jù)由高位向低位移動,dout輸出移位寄存器的最低位。圖中的regs數(shù)據(jù)用16進制表示。

            2.3 波特率發(fā)生器模塊

            波特率發(fā)生器的功能是產生和RS232通信所采用的波特率同步的時鐘,這樣才能方便地按照RS232串行通信的時序要求進行數(shù)據(jù)接收或者發(fā)送。比如,波特率為9600b/s,即每秒傳輸9600b數(shù)據(jù),則同步的波特率時鐘頻率為9600Hz,周期為1/9600=0.10417。

            設計波特率時鐘的基本思路就是設計一個計數(shù)器,該計數(shù)器工作在速度很高的系統(tǒng)時鐘下,當計數(shù)器計數(shù)到某數(shù)值時將輸出置高,再計數(shù)到一定的數(shù)值后再將輸出置低,如此反復便能夠得到所需的波特率時鐘。該系統(tǒng)所用的FPGA系統(tǒng)時鐘為50MHz,RS232通信的波特率為9600b/s,則波特率時鐘的每個周期相當于

            5208個系統(tǒng)時鐘周期。假如要得到占空比為50%的波特率時鐘,只要使得計數(shù)器在計數(shù)到1604時將輸出置高,之后在計數(shù)到5208時將輸出置低并且重新計數(shù),就能實現(xiàn)和9600波特率同步的時鐘。

            為了便于仿真,使計數(shù)器計到2時將輸出置高,之后計到4時將輸出置地并且重新計數(shù)。波特率發(fā)生器的仿真波形圖如圖5所示。

          波特率發(fā)生器仿真波形圖

          圖5 波特率發(fā)生器仿真波形圖

            觀察波形可以看到波特率發(fā)生器每經過4個時鐘周期輸出1個完整的波特率時鐘周期,占空比為1/2,并且在每次輸出波特率時鐘周期之后輸出1個系統(tǒng)時鐘脈寬的提示信號indicator,UART通過此信號來了解波特率發(fā)生器已輸出的波特率時鐘周期個數(shù)。由波形圖可見波特率發(fā)生器的工作完全滿足設計的要求。

            2.4 計數(shù)器模塊

            計數(shù)器模塊的功能是可控的,在輸入時鐘的驅動下進行計數(shù),當達到計數(shù)上閾時給UART內核一個提示信號。在不同的工作狀態(tài)下,計數(shù)器模塊的輸入時鐘是不同的。UART在數(shù)據(jù)發(fā)送之前需要進行數(shù)據(jù)加載(即將串行序列保存在移位寄存器內),在此工程中計數(shù)器模塊的輸入時鐘為系統(tǒng)時鐘,因為此時移位寄存器也工作在系統(tǒng)時鐘下。除了數(shù)據(jù)加載,另外2個需要計數(shù)器模塊的過程是數(shù)據(jù)接收和數(shù)據(jù)發(fā)送。

            由于這兩個過程中移位寄存器工作在波特率時鐘下,所以計數(shù)器模塊的時鐘就是與波特率時鐘同步的波特率發(fā)生器提示信號indicator,這樣每輸出1個完整的波特率時鐘周期計數(shù)器就能增加1。

            計數(shù)器的仿真波形圖如圖6所示。

          計數(shù)器仿真波形圖

          圖6 計數(shù)器仿真波形圖

            計數(shù)器在復位后并且ce有效時開始計數(shù),并且在第10個時鐘周期輸出提示信號overflow。

            2.5 發(fā)送數(shù)據(jù)緩沖器模塊

            發(fā)送數(shù)據(jù)緩沖器模塊的功能是將要發(fā)送的并行數(shù)據(jù)轉換成串行數(shù)據(jù),并且在輸出的串行數(shù)據(jù)流中加人起始位和停止位。緩沖器首先將要發(fā)送的8位數(shù)據(jù)寄存,并在最低位后添加起始位‘0’,在最高位前添加停止位‘1’,組成10位要發(fā)送的數(shù)據(jù),然后根據(jù)UART內核模塊的計數(shù)值將相應的數(shù)據(jù)送入移位寄存器輸入端。

            UART內核模塊輸出的計數(shù)值是從0依次計到9,即先將要發(fā)送數(shù)據(jù)的最低位送入移位寄存器。發(fā)送數(shù)據(jù)緩沖器的仿真波形圖如圖7所示。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

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