通用異步收發傳輸器是一種串行異步收發協議,應用十分廣泛。UART工作原理是將數據的二進制位一位一位的進行傳輸。在UART通訊協議中信號線上的狀態位高電平代表’1’低電平代表’0’。當然兩個設備使用UART串口通訊時,必須先約定好傳輸速率和一些數據位。
第一節 硬件連接
硬件連接比較簡單,僅需要3條線,注意連接時兩個設備UART電平,如電平范圍不一致請做電平轉換后再連接,如下圖所示:
TX:發送數據端,要接對面設備的RX
RX:接收數據端,要接對面設備的TX
GND:保證兩設備共地,有統一的參考平面
第二節 軟件通信協議
UART作為異步串口通信協議的一種,工作原理是將數據的字節一位接一位地傳輸。協議如下:
A.空閑位:
UART協議規定,當總線處于空閑狀態時信號線的狀態為‘1’即高電平。
B.起始位:
開始進行數據傳輸時發送方要先發出一個低電平’0’來表示傳輸字符的開始。因為空閑位一直是高電平所以開始第一次通訊時先發送一個明顯區別于空閑狀態的信號即為低電平。
C.數據位:
起始位之后就是要傳輸的數據,數據可以是5,6,7,8,9位,構成一個字符,一般都是8位。先發送最低位最后發送最高位。
D.奇偶校驗位:
數據位傳送完成后,要進行奇偶校驗,校驗位其實是調整個數,串口校驗分幾種方式:
D.1.無校驗(no parity)
D.2.奇校驗(odd parity):如果數據位中’1’的數目是偶數,則校驗位為’1’,如果’1’的數目是奇數,校驗位為’0’。
D.3.偶校驗(even parity):如果數據為中’1’的數目是偶數,則校驗位為’0’,如果為奇數,校驗位為’1’。
D.4.mark parity:校驗位始終為1。
D.5.space parity:校驗位始終為0。
E.停止位:
數據結束標志,可以是1位,1.5位,2位的高電平。
F.波特率:
數據傳輸速率使用波特率來表示,單位bps(bits per second),常見的波特率9600bps,115200bps等等,其他標準的波特率是1200,2400,4800,19200,38400,57600。舉個例子,如果串口波特率設置為9600bps,那么傳輸一個比特需要的時間是1/9600≈104.2us。
以9600 8N1(9600波特率,8個數據位,沒有校驗位,1位停止位)為例,這是目前最常用的串口配置,現在我們傳輸’O’'K’兩個ASCII值,'O’的ASCII為79,對應的二進制數據為01001111 ,'K’對應的二進制數據為01001011 ,傳輸的格式數據如下圖所示:
串口波特率為9600,1bit傳輸時間大約為104us,傳送一個數據實際是10個比特(開始位,8個數據位,停止位),一個bytes傳輸速率實際為9600*8/10=7680bps。
-
嵌入式
+關注
關注
5087文章
19150瀏覽量
306332 -
通信
+關注
關注
18文章
6045瀏覽量
136191 -
串口
+關注
關注
14文章
1556瀏覽量
76707
發布評論請先 登錄
相關推薦
評論