UART(通用異步收發傳輸器,Universal Asynchronous Receiver/Transmitter)是一種用於異步串列通信的協定,它允許數據在兩個設備之間傳輸。UART通信基於異步通信機制,這意味著傳送端和接收端不需要同時處於激活狀態;它通過起始位和停止位來標識數據幀的開始和結束。UART通信僅使用兩根信號線進行全雙工通信,一根用於傳送(TXD),另一根用於接收(RXD)。
在UART通信中,傳送端將待傳送的數據轉換為並行信號,然後通過驅動電路轉換為串列信號並傳送到數據線上。接收端通過接收電路將數據線上的信號還原為並行信號,再通過解碼電路轉換為原始數據位。
UART的波特率是指單位時間內通過線路傳輸的二進制數據的位數,通常用bps(bits per second)表示。波特率的計算與單片機的系統時鐘有關,具體的計算公式為:波特率= (16 * 時鐘頻率) / (32 * 採樣時間) + (1 * 時鐘頻率) / (32 * 採樣時間) - (1 * 時鐘頻率) / (64 * 採樣時間)。常見的波特率有2400、4800、9600、19200、38400、57600、115200等,它們都是2400的整數倍。
UART通信的幀格式通常包括起始位、數據位、可選的奇偶校驗位和停止位。數據位可以是5位到9位,具體取決於具體的UART實現和套用需求。奇偶校驗位用於錯誤檢測,停止位用於標識數據幀的結束。
總的來說,UART是一種簡單、可靠的異步串列通信協定,廣泛套用於低速數據傳輸和設備調試中。它通過兩根信號線實現全雙工通信,並使用預定義的幀格式和波特率進行數據同步。