UART通信的基礎(轉)

原文網址
http://www.circuitbasics.com/basics-uart-communication/

BASICS OF UART COMMUNICATION

Posted by Circuit Basics | DIY Electronics | 59 

Basics of UART Communication

還記得什麼時候打印機,鼠標和調製解調器都有那些巨大笨重連接器的粗電纜?那些字面上必須擰進你的電腦?這些設備可能正在使用UART與您的計算機進行通信。雖然USB幾乎完全取代了舊的電纜和連接器,但UART絕對不是過去的事情。您會發現許多DIY電子項目中使用UART將GPS模塊,藍牙模塊和RFID讀卡器模塊連接到您的Raspberry Pi,Arduino或其他微控制器。

UART代表通用異步接收器/發送器。它不是像SPI和I2C這樣的通信協議,而是微控制器中的物理電路或獨立的IC。 UART的主要用途是發送和接收串行數據。

UART最好的一點是它只使用兩根線在設備之間傳輸數據。 UART背後的原理很容易理解,但是如果你還沒有閱讀本系列的第一部分,SPI通信協議的基礎知識,這可能是一個很好的起點。

INTRODUCTION TO UART COMMUNICATION
UART通信簡介

在UART通信中,兩個UART直接相互通信。發送UART將來自CPU等控制設備的並行數據轉換為串行形式,並將其串行發送到接收UART,接收UART然後將串行數據轉換回接收設備的並行數據。在兩個UART之間傳輸數據只需要兩根線。數據從發送UART的Tx引腳流向接收UART的Rx引腳:

Introduction to UART - Basic Connection Diagram

UART以異步方式發送數據,這意味著沒有時鐘信號將發送UART的位輸出與接收UART的位採樣同步。發送UART不是時鐘信號,而是將開始和停止位添加到正在傳輸的數據包中。這些位定義數據包的開始和結束,因此接收UART知道何時開始讀取位。

當接收UART檢測到起始位時,它開始以稱為波特率的特定頻率讀取輸入位。波特率是數據傳輸速度的度量,以每秒位數(bps)表示。兩個UART必須以大約相同的波特率運行。發送和接收UART之間的波特率只能在位的時間太遠之前相差10%左右。

兩個UART還必須配置為發送和接收相同的數據包結構。

Basics of UART Communication - Specifications Table

HOW UART WORKS

要傳輸數據的UART從數據總線接收數據。數據總線用於通過CPU,存儲器或微控制器等其他設備將數據發送到UART。數據以並行形式從數據總線傳輸到發送UART。在發送UART從數據總線獲得併行數據之後,它添加起始位,奇偶校驗位和停止位,從而創建數據包。接下來,數據包在Tx引腳上逐位串行輸出。接收UART在其Rx引腳上逐位讀取數據包。然後,接收UART將數據轉換回並行形式,並刪除起始位,奇偶校驗位和停止位。最後,接收UART將數據包並行傳輸到接收端的數據總線:

Introduction to UART - Data Transmission Diagram

UART傳輸的數據被組織成數據包。每個數據包包含1個起始位,5到9個數據位(取決於UART),可選的奇偶校驗位以及1或2個停止位:

Introduction to UART - Packet, Frame, and Bits

START BIT

當UART數據傳輸線不傳輸數據時,它通常保持在高電壓電平。為了開始數據傳輸,發送UART將傳輸線從高電平拉至低電平一個時鐘週期。當接收UART檢測到高電壓到低電壓轉換時,它開始以波特率的頻率讀取數據幀中的位。

DATA FRAME

數據框包含要傳輸的實際數據。如果使用奇偶校驗位,則它可以是5位到8位長。如果不使用奇偶校驗位,則數據幀可以是9位長。在大多數情況下,數據首先以最低有效位發送。

PARITY

奇偶校驗描述數字的均勻性或奇數。奇偶校驗位是接收UART在傳輸過程中判斷是否有任何數據發生變化的一種方法。可以通過電磁輻射,不匹配的波特率或長距離數據傳輸來改變比特。接收UART讀取數據幀後,它會計算值為1的位數,並檢查總數是偶數還是奇數。如果奇偶校驗位為0(偶校驗),則數據幀中的1位應總計為偶數。如果奇偶校驗位是1(奇校驗),則數據幀中的1位應總計為奇數。當奇偶校驗位與數據匹配時,UART知道傳輸沒有錯誤。但如果奇偶校驗位為0,則總數為奇數;或者奇偶校驗位是1,並且總和是偶數,UART知道數據幀中的位已經改變。

STOP BITS

為了發信號通知數據包的結束,發送UART將數據傳輸線從低電壓驅動至高電壓至少兩位持續時間。

STEPS OF UART TRANSMISSION

1. 發送UART從數據總線並行接收數據:

Introduction to UART - Data Transmission Diagram UART Gets Byte from Data Bus

2. 發送UART將起始位,奇偶校驗位和停止位添加到數據幀:

Introduction to UART - Data Transmission Diagram UART Adds Start, Parity, ad Stop Bits

3. 整個數據包從發送UART串行發送到接收UART。接收UART以預先配置的波特率對數據線進行採樣:

Introduction to UART - Data Transmission Diagram Transmitting UART Sends Data Packet Serially to Receiving UART

4.  接收UART丟棄數據幀中的起始位,奇偶校驗位和停止位:

Introduction to UART - Data Transmission Diagram UART Removes Start, Parity, and Stop Bits

5. 接收UART將串行數據轉換回並行並將其傳輸到接收端的數據總線:

Introduction to UART - Data Transmission Diagram Receiving UART Sends Byte to Data Bus

ADVANTAGES AND DISADVANTAGES OF UARTS

沒有通信協議是完美的,但UART非常擅長他們的工作。以下是一些優點和缺點,可幫助您確定它們是否符合您項目的需求:

ADVANTAGES

  • 只使用兩根電線
  • 不需要時鐘信號
  • 有一個奇偶校驗位允許錯誤檢查
  • 只要為其設置了雙方,就可以改變數據包的結構
  • 記錄良好且廣泛使用的方法

DISADVANTAGES

  • 數據幀的大小限制為最多9位
  • 不支持多個從屬或多個主系統
  • 每個UART的波特率必須在10%之內

繼續本系列的第三部分,I2C通信協議的基礎知識,了解電子設備通信的另一種方式。或者如果您還沒有,請查看第一部分,SPI通信協議的基礎知識。

發佈留言