522UART是什么
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种常见的串行通信协议,用于设备间的低速数据传输。它采用异步通信方式,无需时钟信号同步,仅需两根数据线(TX发送、RX接收)即可实现全双工通信。
1. UART的核心特点
-
异步通信:无共享时钟信号,依赖预定义的波特率(Baud Rate)同步。
-
点对点连接:通常一对一通信(如需多设备通信,需额外协议如RS-485)。
-
双工模式:支持同时收发(全双工)。
-
简单性:仅需TX、RX、GND三根线(无需复杂的控制信号)。
2. UART的数据帧格式
每帧数据包含以下部分(通常为8~9位):
位字段 | 作用 |
---|---|
起始位 | 1位低电平(逻辑0),标志数据帧的开始。 |
数据位 | 5~9位有效数据(通常为8位,即1字节)。 |
校验位 | 可选(奇校验、偶校验或无校验),用于错误检测。 |
停止位 | 1~2位高电平(逻辑1),标志数据帧结束。 |
示例:
一个典型的8N1格式(8数据位、无校验、1停止位)的UART帧:
[起始位0][D0][D1][D2][D3][D4][D5][D6][D7][停止位1]
3. UART的工作原理
-
发送端(TX):
将并行数据(如CPU的8位数据)转换为串行比特流,按帧格式发送。 -
接收端(RX):
检测起始位,按波特率采样数据位,重组为并行数据。
关键点:
-
收发双方需波特率一致(如9600、115200等),否则数据错乱。
-
通信前需约定数据格式(如8N1)。
4. UART vs 其他串行协议
特性 | UART | SPI | I2C |
---|---|---|---|
同步性 | 异步 | 同步(需时钟) | 同步(需时钟) |
线数 | 2(TX+RX)或3(+GND) | 4(SCLK+MISO+MOSI+CS) | 2(SDA+SCL) |
速度 | 低速(通常≤115200bps) | 高速(可达MHz) | 中速(通常≤400kHz) |
多设备支持 | 需额外硬件(如RS-485) | 通过片选(CS)支持 | 通过地址支持 |
5. UART的典型应用场景
-
嵌入式设备调试:
通过USB转UART模块(如CH340、CP2102)连接MCU与电脑,输出调试日志。 -
传感器通信:
GPS模块、温湿度传感器(如DHT22)常用UART传输数据。 -
工业控制:
PLC、HMI设备通过UART(或RS-232/RS-485变种)交互。 -
无线模块:
WiFi/蓝牙模块(如ESP8266、HC-05)通过UART与主控通信。
6. 常见问题
Q1:UART需要共地吗?
是!即使只有TX和RX连接,双方GND必须相连,否则电平参考不一致会导致通信失败。
Q2:UART能直接接TTL和RS-232吗?
-
TTL UART:直接连接(逻辑电平0/3.3V或0/5V)。
-
RS-232:需电平转换芯片(如MAX232),因其使用±12V电压。
Q3:如何提高UART抗干扰能力?
-
使用差分信号变种(如RS-485)。
-
增加校验位或软件校验(如CRC)。
总结
UART因其简单、可靠的特点,成为嵌入式系统和工业通信的基础协议。理解其帧格式、波特率配置及电平标准(TTL/RS-232)是硬件开发的关键。对于高速或多设备场景,可结合SPI/I2C或升级为RS-485协议。