uart協議
時間:2025-11-19 來源:華清遠見
UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是一種異步串行通信協議,核心作用是實現設備間的低成本、近距離數據傳輸,廣泛用于嵌入式系統、工業控制等場景。
它的核心特點是 “異步”—— 無需時鐘信號同步,僅通過兩根數據線(TX 發送、RX 接收)即可完成雙向通信,硬件結構和協議邏輯都相對簡單。
一、UART 核心工作原理
數據幀結構(協議核心)UART 數據以 “幀” 為單位傳輸,每幀包含固定格式的信號,確保接收方準確解析,標準幀結構如下(從左到右):
起始位:1 位低電平,標志數據幀開始(打破空閑時的高電平狀態,觸發接收方準備)。
數據位:5-9 位(最常用 8 位),實際傳輸的二進制數據(如 ASCII 碼,8 位可覆蓋 0-255 所有字符)。
校驗位(可選):1 位,用于校驗數據是否傳輸錯誤,支持兩種模式:
奇校驗:數據位 + 校驗位中 “1” 的總數為奇數;
偶校驗:數據位 + 校驗位中 “1” 的總數為偶數;
無校驗:省略校驗位(適合傳輸可靠性要求不高的場景,如普通指令)。
停止位:1-2 位高電平,標志數據幀結束(接收方通過高電平判斷一幀數據完成)。
波特率(通信速率)收發雙方必須約定相同的 “波特率”(單位:bps,比特 / 秒),即每秒傳輸的二進制位數(含起始位、校驗位、停止位),常見波特率有:9600、19200、38400、115200 bps(115200 為嵌入式開發常用速率)。
二、UART 硬件連接方式
UART 是 “點對點” 通信(不支持多設備共享總線),核心需 3 根線(全雙工,即收發可同時進行):

三、UART 典型應用場景
嵌入式開發:單片機(如 STM32、51 單片機)與電腦之間的 “串口調試”(通過 USB 轉 UART 模塊,輸出日志、發送指令)。
工業控制:傳感器(如溫濕度傳感器、GPS 模塊)向控制器(如 PLC)傳輸數據(速率要求低,對可靠性要求中等)。
外設通信D:打印機、調制解調器(Modem)、藍牙模塊(經典藍牙的串口透傳模式)與主機的低速數據交互。
消費電子:智能家居設備(如掃地機器人、智能插座)的本地調試或簡單指令傳輸。
四:嵌入式虛擬仿真平臺中的uart控制器
仿真系統中,UART控制器原理結構圖如下:

基礎串口數據收發:
1. 使能時鐘

2. 配置串口通信協議
在協議配置中設置波特率為“115200”、數據位“8位”、奇偶校驗“None”、停止位“1位”,并且不啟用硬流控。

3. 串口控制
在串口控制中需要依次將“使能UART時鐘”、“USART使能(UE)”、“使能發送器(TE)”、“使能接收器(RE)”勾選上,串口模式選擇“Asynchronous”。

4. 點擊左邊寄存器映射下的“運行”按鈕,開始仿真

在虛擬仿真系統中,模擬了一個虛擬透傳串口,數據流向的基本過程為,UART控制器給虛擬透傳串口發送數據,然后透傳串口將接收到的數據,再發送給UART控制器,所以UART會接收到同樣的數據。點擊“寫入”,將內存中的數據寫入到發送數據寄存器(TDR)中,當數據從內存寫入到發送數據寄存器(TDR)之后,TDR中的數據會自動并行傳輸到發送位移寄存器中,然后數據會通過發送位移寄存器,按照LSB的方式將數據一位一位的從Tx引腳移出
如仿真系統中的動畫所示:發送位移寄存器,按照LSB的方式將數據一位一位的從Tx引腳發出。

可以發現,當內存數據被寫入到發送數據寄存器(TDR)后,USART_SR寄存器中的TXE位被控制器清0,串口狀態欄下的TXE位變成N,說明發送數據寄存器不為空,有待發送的數據
實際應用中,TXE位即可作為數據寫到TDR寄存器時機標志位,當TXE被控制器置1時,則表明可以往TDR寄存器中寫入下一次需要發送的數據。

