新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > UART的軟件實現

        UART的軟件實現

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


        2004年4月A版

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

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

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

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

        UART

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

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

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

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

        硬件接口

          HT49R70片內集成了41



        關鍵詞: 單片機 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大关县| 英吉沙县| 迭部县| 合肥市| 邢台县| 民乐县| 武穴市| 手机| 凤台县| 新田县| 贺州市| 阆中市| 疏勒县| 若羌县| 乐亭县| 玛纳斯县| 游戏| 镇远县| 布尔津县| 隆林| 泾阳县| 冷水江市| 南丰县| 香港| 白城市| 工布江达县| 鹰潭市| 喀什市| 临澧县| 陇川县| 洛南县| 镶黄旗| 雅安市| 黑山县| 德安县| 郴州市| 琼结县| 宁夏| 阳曲县| 松溪县| 南溪县|