串口通信(Serial Communication)是一種通過單根數據線逐位傳輸數據的通信方式,常用於嵌入式系統、工業設備、傳感器、計算機外設等場景。
一、串口通信核心參數
1. 波特率(Baud Rate)定義
:每秒傳輸的符號數(單位:bps,bits per second)。常見值
:9600、19200、38400、115200 等。要求
:通信雙方的波特率必須一致,否則數據會解析錯誤。
2. 數據位(Data Bits)定義
:每個數據幀中實際傳輸的有效數據位數。可選值
:5、6、7、8 位(常用 8位,對應一個字節)。
3. 停止位(Stop Bits)定義
:標誌數據幀結束的位,用於同步時鐘。可選值
:1位、1.5位、2位(常用 1位)。
4. 校驗位(Parity Bit)定義
:用於檢測數據傳輸過程中的錯誤。類型
:無校驗(None)
:不進行校驗。奇校驗(Odd)
:數據位中“1”的個數為奇數時,校驗位為0。偶校驗(Even)
:數據位中“1”的個數為偶數時,校驗位為0。
二、數據幀格式
一個完整的串口數據幀由以下部分組成(以 8N1 格式為例)
| 起始位 | 數據位(D0-D7) | 校驗位 | 停止位 |
- 起始位:1位低電平(邏輯0),標誌數據幀開始。
- 數據位:低位(LSB)在前,高位(MSB)在後。
- 校驗位:可選(根據校驗類型決定是否包含)。
- 停止位:1位高電平(邏輯1),標誌數據幀結束。
三、物理接口標準
- RS-232:
- 電平:±3~15V(邏輯1=-3~-15V,邏輯0=+3~+15V)。
- 傳輸距離:<15米。
- TTL UART:
- 電平:0V(邏輯0)、3.3V/5V(邏輯1)。
- 傳輸距離:<1米(需電平轉換芯片延長距離)。
- RS-485:
- 差分信號,抗干擾強,支持長距離(千米級)。
- 適用於工業多節點通信。
四、通信流程
1. 發送端:
拉低起始位 → 發送數據位 → 計算併發送校驗位 → 拉高停止位。
2. 接收端:
檢測起始位下降沿 → 按波特率採樣數據位 → 校驗數據 → 檢測停止位
五、同步 vs. 異步通信
- 異步通信(常用):
- 無獨立時鐘線,依賴起始位和停止位同步。
- 雙方需預先約定波特率。
- 同步通信:
- 需額外時鐘線(如SPI、I2C),傳輸效率更高。
- 串口通信一般默認為異步模式