單片機常用通信協議-UART和USART


UART

  通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter)。

 一、定義

  UART是一種通用串行數據總線,用於異步通信。該總線實現全雙工傳輸和接收。在嵌入式設計中,UART用於主機與輔助設備通信。

 二、通信協議

  UART作為異步串口通信協議的一種,工作原理是將傳輸數據的每個字符一位接着一位傳輸。

  傳輸一幀中格式為:起始位、數據位、奇偶校驗位、停止位、空閑位

  其中各位意義如下:

  起始位:先發出一個邏輯“0”的信號,表示傳輸字符的開始。

  數據位:緊接着從起始位后,數據位的個數可以是4、5、6、7、8等,構成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鍾定位。

  奇偶校驗位:數據位加這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗數據傳送的正確性。

  停止位:是一個字符數據的結束標志。

  空閑位:處於邏輯“1”狀態,表示當前線路上沒有數據傳送。

  波特率:是衡量數據傳送速率的指標。表示每秒鍾傳送的符號數(symbol)。一個符號代表的信息量(比特數)與符號的階數有關。例如傳輸使用256階符號,每8bit代表一個符號,數據傳送速率為120字符/秒,則波特率為120*8=960bit/s。

三、基本結構

  ①輸出緩沖寄存器:它接收CPU從數據總線上送來的並行數據,並加以保存。

  ②輸出移位寄存器:它接收從輸出緩沖器送來的並行數據,以發送時鍾的速率把數據逐位移出,即將並行數據轉換位串行數據輸出。

  ③輸入移位寄存器:它以接收時鍾的速率把出現在串行數據輸入線上的數據逐位移入,當數據裝滿后,並行送往輸入緩沖寄存器,即將串行數據轉換成並行數據。

  ④輸入緩沖寄存器:它從輸入移位寄存器鍾接收並行數據,然后由CPU取走。

  ⑤控制寄存器:它接收CPU送來的控制字,由控制字的內容,決定通信時的傳輸方式以及數據格式等。例如采用異步方式還是同步方式,數據字符的位數,有無奇偶校驗,是奇校驗還是偶校驗,停止位的位數等參數。

  ⑥狀態寄存器:存放着接口的各種狀態信息,例如輸出緩沖區是否空,輸入字符是否准備好等。在通信過程中,當符合,某種狀態時,接口種的狀態檢測邏輯將狀態寄存器的相應位置“1”。

四、功能

  在手機設計和測試階段被用來控制CPU與其余部分的訊息傳送。

  UART是通用異步收發器(異步串行通信口)的英文縮寫,它包括了RS232、RS449、RS423、RS422和RS485等接口標准規范和總線標准規范,即UART是異步串行通信口的總稱。 而RS232、RS449、RS423、RS422和RS485等,是對應各種異步串行通信口的接口標准和總線標准,它規定了通信口的電氣特性、傳輸速率、連接特性和接口的機械特性等內容。實際上是屬於通信網絡中的實體層(Physical Layer)的概念,與通信協議沒有直接關系。而通信協議,是屬於通信網絡中的資料鏈接層(Data Link Layer)的概念。 COM是PC(個人計算機)上,異步串行通信口的簡寫。由於歷史原因,IBM的PC外部接口配置為RS232,成為實際上的PC界默認標准。所以,現在PC機的COM均為RS232。若配有多個異步串行通信口,則分別稱為COM1、COM2... 。
 
 
USART
  通用同步/異步串行接收/發送器(Universal Synchronous/Asynchronous Receiver/Transmitter)。
一、主要特點 
  1. 全雙工操作;
  2. 同步操作時,可主機時鍾同步,也可從機時鍾同步;
  3. 獨立的高精度波特率發生器,不占用定時/計數器;
  4. 支持5、6、7、8和9位數據位,1或2位停止位的串行數據楨結構;
  5. 由硬件支持的奇偶檢驗位發生和檢驗;
  6. 數據溢出檢測;
  7. 幀錯誤檢測;
  8. 包括錯誤起始位的檢測噪聲濾波器和數字低通濾波器;
  9. 三個完全獨立的中斷,TX發送完成、TX發送數據寄存器空、RX接收完成;  
  10.支持多機通信模式;
  11.支持倍速異步通信模式。
 二、結構組成
  USART收發模塊一般分為三大部分:時鍾發生器、數據發送器和接收器。控制寄存器為所有的模塊共享。

  時鍾發生器由同步邏輯電路(在同步從模式下由外部時鍾輸入驅動)和波特率發生器組成。發送時鍾引腳XCK僅用於同步發送模式下,

  發送器部分由一個單獨的寫入緩沖器(發送UDR)、一個串行移位寄存器、校驗位發生器和用於處理不同幀結構的控制邏輯電路構成。使用寫入緩沖器,實現了連續發送多幀數據無延時的通信。
  接收器是USART模塊最復雜的部分,最主要的是時鍾和數據接收單元。數據接收單元用作異步數據的接收。除了接收單元,接收器還包括校驗位校驗器、控制邏輯、移位寄存器和兩級接收緩沖器(接收UDR)。接收器支持與發送器相同的幀結構,同時支持幀錯誤、數據溢出和校驗錯誤的檢測。

三、與UART兼容性

  USART 在如下方面與AVR UART 完全兼容:

    所有USART 寄存器的位定義;

    波特率發生器;
    發送器操作;
    發送緩沖器的功能;
    接收器操作。
 

 
UART和USART的區別
  USART在UART基礎上增加了同步功能,即USART是UART的增強型。

  同步是指:發送方發出數據后,等接收方發回響應以后才發下一個數據包的通訊方式。  
  異步是指:發送方發出數據后,不等接收方發回響應,接着發送下個數據包的通訊方式。

  同步是阻塞模式,異步是非阻塞模式。

  其實當我們使用USART在異步通信的時候,它與UART沒有什么區別,但是用在同步通信的時候,區別就很明顯了:大家都知道同步通信需要時鍾來觸發數據傳輸,也就是說USART相對UART的區別之一就是能提供主動時鍾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM