嵌入式學習之UART串口
計算機常見的幾種通信方式:
GPIO通信接口:如,LED燈,蜂鳴器
UART通信接口:如,BT,GPS,GPRS
I2C總線通信接口:如,重力傳感器,電容屏,攝像頭
SPI總線通信接口:如,norflash,SD卡,WIFI晶片
1-wire總線通信接口:如,DS18B20溫度傳感器,DHT11溫溼度傳感器
UART定義:UART應用非常廣泛,尤其是在工控行業,如,BT,GPS,GPRS和各類傳感器等
uart是串行方式傳輸數據,CPU和外設之間用一根信號線連接,數據傳輸是一個BIT位傳輸,數據傳輸從低位開始
如:cpu通過穿行方式發送數據0xcc(11001100)
電平狀態為:低-低-高-高-低-低-高-高
並行與串行不同,並行是cpu與外設之間有多根信號線連接(8/16/32)
串行的方式一次可以傳輸多個子節(1/2/4)
例如:內存(32根),Nandflash(8/16根)
並行傳輸速度快,串行傳輸距離遠,串行抗幹擾性強
數據同步:CPU給外設發送數據,要保證外設接收完畢,才發送下一個數據
異步:研究異步,其實就是研究對應的傳輸協議
同步:需要兩根信號線,一根數據線DATA,一根時鐘控制信號線CLK
判斷同周期的CLK為高/低電平,低放高取
uart數據傳輸協議(異步)
空閒位:不進行數據傳輸時,數據線持續發送空閒位,高電平有效,有效位為一位
起始位:進行數據傳輸時,先發送起始位,低電平有效,一位
數據位:一次性傳輸數據的有效位數 5/6/7/8,一般選8位,傳輸從低位開始,cpu和外設數據位位數要一致
奇偶效驗位:驗證數據傳輸是否正確,校驗方式有三種:奇校驗(odd),偶校驗(even),不校驗(none),有效位數一位,可不發
如:發送數據0xcc(11001100),採用奇校驗
cpu會計算0xcc中「1」的個數為4,4是一個偶數,所以會在最後發送一個校驗位1
外設接收到數據後判斷0xcc「1」的個數為4,所以要接收到cpu發送的校驗位「1」說明傳輸正確
停止位:有效位數1/2位,高電平有效
波特率:數據傳輸速率,一般常用的兩個波特率:9600bps/115200bps
RTS/CTS:用於數據流的控制,類似CLK,傳輸方式為同步
UART串口三種工作模式:
單工:數據傳輸朝一個方向進行
半雙工:數據傳輸雙向進行,同一時刻只能朝一個方向
全雙工:數據傳輸同時雙向進行,一般都是採用全雙工
至少三根線:
TX:發送線
RX:接收線
GND:地線