串口通讯协议学习
串口通讯(串行通信)是一个广义术语,泛指通过逐位传输数据的通信方式。
若设备标注“支持串口”,需明确具体是哪种硬件标准(如RS-485)以及配套的软件协议(如Modbus)。
在设备通信中,“串口”(串行通信接口)是一个统称,具体硬件协议和标准有多种,主要分为以下几类:
1. 串口硬件协议/标准
1. 常见的串口硬件协议/标准
(1) UART(Universal Asynchronous Receiver/Transmitter)
- 特点:
- 异步通信,无时钟线,依赖预定义的波特率。
- 使用TTL电平(3.3V/5V逻辑,0V为低电平)。
- 点对点通信(1对1),需连接TX(发送)和RX(接收)。
- 典型应用:
- 单片机与传感器、蓝牙/WiFi模块的通信(如STM32与HC-05蓝牙模块)。
- 调试接口(如USB转TTL串口线连接PC与嵌入式设备)。
(2) RS-232
- 特点:
- 负逻辑电平(±3V±15V,+3V+15V为逻辑"0",-3V~-15V为逻辑"1")。
- 点对点通信,传输距离较短(一般<15米)。
- 需DB9或DB25接口(如老式电脑的COM口)。
- 典型应用:
- 工业设备配置(如PLC编程口)、老式调制解调器。
(3) RS-485
- 特点:
- 差分信号(A/B两条线,抗干扰强)。
- 支持多点通信(1主多从,总线拓扑)。
- 长距离(可达1200米)、高速(最高10Mbps)。
- 典型应用:
- 工业自动化(如PLC网络)、楼宇自控(如Modbus RTU)。
(4) RS-422
- 特点:
- 类似RS-485,但仅支持点对多点(1发4收)。
- 差分信号,抗干扰强,距离远(约1200米)。
- 典型应用:
- 专业音频设备、工业控制(替代RS-232的长距离场景)。
(5) SPI(Serial Peripheral Interface)
- 特点:
- 同步通信(有时钟线SCLK),全双工。
- 需4线(SCLK, MOSI, MISO, SS)。
- 高速(可达数十MHz),短距离(板级通信)。
- 典型应用:
- Flash存储器、显示屏驱动(如OLED)、高速ADC/DAC。
(6) I²C(Inter-Integrated Circuit)
- 特点:
- 同步通信(时钟线SCL + 数据线SDA)。
- 支持多主多从,地址寻址。
- 速率较低(标准模式100kHz,高速模式400kHz)。
- 典型应用:
- 传感器(如温湿度传感器)、EEPROM存储。
2. 如何区分这些串口?
协议 | 通信方式 | 电平/信号 | 拓扑结构 | 典型接口 |
---|---|---|---|---|
UART | 异步 | TTL电平 | 点对点 | 杜邦线/TTL引脚 |
RS-232 | 异步 | ±3~15V | 点对点 | DB9 |
RS-485 | 异步 | 差分(A/B) | 多点总线 | 端子台/DB9 |
RS-422 | 异步 | 差分(A/B) | 点对多点 | 端子台 |
SPI | 同步 | TTL电平 | 主从 | 4线引脚 |
I²C | 同步 | TTL电平 | 多主多从 | 2线引脚 |
3. 实际应用中的注意事项
- 电平兼容性:
- UART(TTL)不能直接接RS-232/RS-485,需电平转换芯片(如MAX232、MAX485)。
- RS-485设备需终端电阻(120Ω)匹配阻抗。
- 协议栈:
- 硬件层(如RS-485)仅定义电气特性,实际通信需结合上层协议(如Modbus、CAN等)。
- 调试工具:
- USB转TTL/UART(如CH340)、USB转RS-485(如FTDI模块)是常用调试工具。
4. 总结
- **“串口通信”**的硬件协议选择取决于:
- 距离(短距离用UART/TTL,长距离用RS-485)。
- 抗干扰(工业环境优先选差分信号RS-485/RS-422)。
- 设备数量(多点通信需RS-485或I²C)。
- 速度(高速选SPI,低速选I²C)。
若设备标注“支持串口”,需明确具体是哪种硬件标准(如RS-485)以及配套的软件协议(如Modbus)。
2. UART与RS485的关系
协作关系:
UART负责数据格式(如起始位、数据位、停止位),而RS485负责物理传输(如何将UART的位流变成差分信号)。
RS485必须依赖UART:
RS485本身无数据格式定义,需结合UART(或其他协议)才能完成完整通信。
常见组合:
MCU的UART → RS485转换芯片 → RS485总线
(例如:STM32的TX/RX接MAX485芯片,再连接到RS485网络)
工业场景中“串口”常指RS485(因抗干扰和多设备支持),但嵌入式开发中可能直接指UART(TTL电平)。
3. RS-485 和 RS-232 的关系
1. 相同点
- 都属于串行通信(数据逐位传输)。
- 通常基于UART(异步通信协议)进行数据传输。
- 可用于点对点通信(但RS-485支持多点,RS-232一般仅点对点)。
2. 核心区别
特性 | RS-232 | RS-485 |
---|---|---|
电气标准 | 单端信号(±3~15V) | 差分信号(A/B线,电压差) |
通信距离 | 短(<15米) | 长(可达1200米) |
传输速率 | 较低(一般<115.2kbps) | 较高(最高10Mbps) |
抗干扰能力 | 弱(易受噪声影响) | 强(差分信号抑制共模噪声) |
拓扑结构 | 点对点 | 多点总线(1主多从) |
连接方式 | DB9(如电脑COM口) | 2线(A/B)或4线(全双工) |
3. 典型应用场景
- RS-232:
- 早期计算机串口(COM口)、工业设备配置(如PLC编程口)。
- 短距离、低速率、点对点通信(如调试接口)。
- RS-485:
- 工业自动化(Modbus RTU)、楼宇控制、安防系统。
- 长距离、多设备组网(如传感器网络)。
4. 转换关系
- RS-232转RS-485:
通过转换器(如MAX232 + MAX485芯片)实现,用于将老式RS-232设备接入RS-485网络。 - UART转RS-485:
单片机UART(TTL电平)通过MAX485芯片转换为RS-485信号。
上层通信协议
RS-485和RS-232仅定义物理层(如何传输比特流),实际通信需依赖上层协议(定义数据格式、地址、校验等)。常见协议包括:
1. 通用协议
- Modbus RTU(最常用):
- 基于RS-485/RS-232的工业协议,采用主从架构。
- 数据帧格式:
设备地址 + 功能码 + 数据 + CRC校验
。 - 功能码示例:
0x03
(读寄存器)、0x06
(写单个寄存器)。
- Modbus ASCII:
- 类似Modbus RTU,但数据以ASCII字符传输(效率低,易调试)。
- 自定义协议:
- 用户自行定义数据格式(如
帧头 + 长度 + 数据 + 校验
)。
- 用户自行定义数据格式(如
2. 协议示例对比
协议 | 适用硬件 | 特点 | 典型应用 |
---|---|---|---|
Modbus RTU | RS-485 | 简单、开源、广泛支持 | PLC、传感器 |
Modbus ASCII | RS-232 | 可读性强、效率低 | 调试场景 |
关键总结
- RS-485 vs RS-232:
- RS-485适合长距离、多设备、抗干扰场景,RS-232适合短距离点对点。
- RS-485需终端电阻(120Ω),RS-232无需。
- 上层协议选择:
- 工业领域优先用Modbus RTU,需高速或多主站时选Profibus DP。
- 自定义协议需注意数据帧同步(如帧头/帧尾)和校验(CRC/LRC)。
- 调试工具:
- USB转RS-485适配器 + Modbus调试软件(如Modbus Poll)。
- 逻辑分析仪(抓取UART/RS-485原始数据)。