天天看點

UART協定總結

這篇總結下UART

簡介
  • UART,Universal Asynchronous Receiver/Transmitter的簡稱,通用的異步收發傳輸器。有三根線,TX,RX,GND,拓撲如下:
    UART協定總結
特點
  • TX,RX在空閑時狀态都為邏輯1
  • 先發送位元組低位,再發送位元組高位
  • 起始位:先發出一個邏輯0的信号,辨別傳輸資料的開始。
  • 資料位:緊接起始位之後,資料位個數可以是7位、8位、9位長
  • 校驗位:可選,有下面幾種校驗方式
    • 奇校驗,資料位和校驗位中邏輯1的個數為奇數
    • 偶校驗,資料位和校驗位中邏輯1的個數為偶數
    • 0校驗,校驗位總是為邏輯0
    • 1校驗,校驗位總是為邏輯1
    • 無校驗,不包含校驗位
  • 結束位:由0.5位、1位、1.5位或2位邏輯1表示
  • 波特率:bps,每秒鐘傳輸位數,例如115200bps,就是1s中傳輸115200個資料位,1個資料位占用時間就是1/115200s

    下面2張圖是時序波形

    UART協定總結
    UART協定總結

還有流控這個知識點,下面是從網上整理的,

  • RTS : 請求發送, 作為輸出口
  • CTS : 允許發送,作為輸入口

通信協定中的RTS/CTS協定:即請求發送/允許發送協定,相當于一種握手協定,主要用來解決"隐藏終端"問題。“隐藏終端”(Hidden Stations)是指,基站A向基站B發送資訊,基站C未偵測到A也向B發送,故A和C同時将信号發送至B,引起信号沖突,最終導緻發送至B的信号都丢失了。"隐藏終端"多發生在大型單元中(一般在室外環境),這将帶來效率損失,并且需要錯誤恢複機制。當需要傳送大容量檔案時,尤其需要杜絕"隐藏終端"現象的發生。

IEEE802.11提供了如下解決方案。在參數配置中,若使用RTS/CTS協定,同時設定傳送上限位元組數----一旦待傳送的資料大于此上限值時,即啟動RTS/CTS握手協定:首先,A向B發送RTS信号,表明A要向B發送若幹資料,B收到RTS後,向A基站發出CTS信号,表明已準備就緒,A可以發送,而其餘欲向B發送資料的基站則暫停發送;雙方在成功交換RTS/CTS信号(即完成握手)後才開始真正的資料傳遞,保證了多個互不可見的發送站點同時向同一接收站點發送信号時,實際隻能是收到接收站點回應CTS的那個站點能夠進行發送,避免了沖突發生。即使有沖突發生,也隻是在發送RTS時,這種情況下,由于收不到接收站點的CTS消息,大家再回頭用DCF協定提供的競争機制,配置設定一個随機退守定時值,等待下一次媒體空閑DIFS(Distributed Inter-Frame Space)後競争發送RTS,直到成功為止。

WiFi中的RTS和CTS簡單回顧

繼續閱讀