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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > UART的軟件實現

          UART的軟件實現

          作者:科浪國際集團(上海)有限公司 張曙暉 時間:2004-08-03 來源:電子產品世界 收藏


          2004年4月A版

          摘  要:本文討論了UART的軟件實現方法,介紹了Holtek在工業(yè)應用中用軟件構成UART的接口電路。

          關鍵詞:UART;接口技術;軟件外設

            在各種MCU應用系統(tǒng)中,經常需要與其他的設備或系統(tǒng)進行數據通訊,UART是比較常用的一種通訊模式。當應用系統(tǒng)要求多路UART,或者基于性能、成本綜合考慮選用了不帶UART的MCU時,我們可以考慮用軟件構建UART以實現系統(tǒng)的數據通訊要求。

            有人對軟件UART工作效率和可靠性持否定態(tài)度。事實上系統(tǒng)要求的各項功能的實現是采用軟件還是硬件,通常要綜合考慮系統(tǒng)要求、可支配資源、成本。最后的結果總是在考慮上述因素之后的一個折衷。如果系統(tǒng)本身實時性要求不是很高,而MCU的其他資源又允許的話,完全可以以軟件的方式構造合乎使用要求的軟件UART。

          UART

            串行數據通訊時,數據按位傳送,任何時候線上僅有一位數據。因此收、發(fā)雙方必須同步,以從二進制位流中正確地讀出每一位數據。異步串行通訊中,收、發(fā)方的同步不采用時鐘線來進行,而是由通訊雙方約定一個波特率,每一個傳送單元通過一個“起始位”來同步。當接收方監(jiān)測到一個有效起始位,便按照約定的波特率的一個倍頻(例如16倍頻)對數據進行采樣接收。由于每一個傳送單元的位數較少(通常不超過11位),而接收采樣的頻率要高于通訊波特率,即使收發(fā)雙方的時基存在一定誤差,仍然可以保證準確的通訊。

            在空閑狀態(tài),傳送線為邏輯“1”狀態(tài)。數據的傳送總是以一個“起始位”開始的,接著是要傳送的若干數據位,低位先行,最后是一個“1”狀態(tài)的“停止位”。例如在文檔中用“9600 N.8.1”描述一個UART,就表示UART使用9600bps的波特率,幀格式為一個起始位、8個數據位、一個停止位。

            當接收方檢測到一個“1”向“0”的跳變,便視為可能的起始位。起始位被確認后,依次接收數據位和停止位,若檢測不到正確的停止位,可視為傳送出錯而放棄。

            下面以Holtek的HT49R70在復費率電表中的應用為例,說明如何實現一個符合實際使用要求的軟件UART。

          硬件接口

            HT49R70片內集成了41



          關鍵詞: 單片機 嵌入式

          評論


          相關推薦

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