概述
通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART。它將要傳輸的資料在串行通信與并行通信之間加以轉換。作為把并行輸入信號轉成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結上。 具體實物表現為獨立的模塊化芯片,或作為集成于微處理器中的周邊設備。一般是RS-232C規格的,與類似Maxim的MAX232之類的標準信號幅度變換芯片進行搭配,作為連接外部設備的接口。在UART上追加同步方式的序列信號變換電路的產品,被稱為USART(Universal Synchronous Asynchronous Receiver Transmitter)。
接口
在UART通信中,兩個UART直接相互通信。發送UART將來自CPU等控制設備的并行數據轉換為串行形式,并將其串行發送到接收UART,接收UART然后將串行數據轉換回接收設備的并行數據。數據從發送UART的Tx引腳流向接收UART的Rx引腳,硬件連接比較簡單,僅需要3條線,如果兩個設備UART電平不一致需要轉換電平再連接。
TX - 數據發送接口 RX - 數據接受接口 GND - 保證兩設備共地,有統一的參考平面
通信協議
UART串口傳輸的數據被組織成數據包。每個數據包包含1個起始位,5至9個數據位,可選的奇偶校驗位和1或1.5或2個停止位,協議如下: |起始位|數據位 |奇偶校驗位|停止位| |--|--|--|--| | 1bit | 5-9bit |0-1bit | 1-2bit | 空閑位 :UART協議規定,當總線處于空閑狀態時信號線的狀態為‘1’即高電平,表示當前線路上沒有數據傳輸。
起始位 :開始進行數據傳輸時發送方要先發出一個低電平’0’來表示傳輸字符的開始。因為總線空閑時為高電平所以開始一次通信時先發送一個明顯區別于空閑狀態的信號即低電平。
數據位 :起始位之后就是要傳輸需要傳輸的數據,數據可以是5,6,7,8,9位,構成一個字符,一般都是8位。先發送最低位最后發送最高位,使用低電平表示‘0’高電平表示‘1’完成數據位的傳輸。 奇偶校驗位 :數據位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗數據傳送的正確性。校驗位其實是調整個數,串口校驗分幾種方式:
- 無校驗(no parity)
- 奇校驗(odd parity):如果數據位中“1”的數目是偶數,則校驗位為“1”,如果“1”的數目是奇數,校驗位為“0”。
- 偶校驗(even parity):如果數據為中“1”的數目是偶數,則校驗位為“0”,如果為奇數,校驗位為“1”。
- mark parity:校驗位始終為1(不常用)。
- parity:校驗位始終為0(不常用)。
停止位 :數據結束標志,可以是1位,1.5位,2位的高電平。由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備之間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘的機會。停止位個數越多,數據傳輸越穩定,但是數據傳輸速度也越慢。 傳輸方向 :即數據是從高位(MSB)開始傳輸還是從低位(LSB)開始傳輸。
波特率
在電子通信領域,波特(Baud)即調制速率,指的是有效數據訊號調制載波的速率,即單位時間內載波調制狀態變化的次數。 波特率表示每秒鐘傳送的碼元符號的個數,它是對符號傳輸速率的一種度量,它用單位時間內載波調制狀態改變的次數來表示,1波特即指每秒傳輸1個符號。 數據傳輸速率使用波特率來表示。單位bps(bits per second),常見的波特率9600bps、115200bps等等,其他標準的波特率是1200,2400,4800,19200,38400,57600。舉個例子,如果串口波特率設置為115200bps,那么傳輸一個比特需要的時間是1/115200≈8.68us。
示例
設置115200,傳輸單個0x62的數據,使用示波器抓得的波形如下所示。 上圖是uart協議傳輸一個0x62的數據,通過示波器的uart解碼而得到的波形示意圖,由于未設置奇偶校驗位,故在上圖未顯示出來;比特流格式為LSB,故從低位開始傳輸,接收數據為0100 0110,實際的數據應該反過來,即0110 0010(0x62)。
設置115200,傳輸0x55,0xAA,0x03等多個數據時,使用示波器抓得的波形如下所示。
上圖是uart協議傳輸0x55,0xAA,0x03等多個數據,通過示波器的uart解碼而得到的波形示意圖,由于未設置奇偶校驗位,故在上圖未顯示出來,設置的停止位為1位;比特流格式為LSB,故從低位開始傳輸,接收三個數據分別為1010 1010、0101 0101、1100 0000,實際的數據應該反過來,即0101 0101(0x55)、1010 1010(0xAA)、0000 0011(0x03)。
審核編輯:湯梓紅
-
串口
+關注
關注
14文章
1551瀏覽量
76439 -
uart
+關注
關注
22文章
1235瀏覽量
101357 -
通訊協議
+關注
關注
10文章
273瀏覽量
20351
發布評論請先 登錄
相關推薦
評論