UART、TTL、RS232、RS485 都被泛称为串口,但很多人混淆了协议层与物理层,随意对接电平,造成烧 IO、乱码、间歇性通信失败,这类问题在项目现场十分常见。
一、串口核心:统一异步时序,区分电气电平
UART 是异步串口通信协议,定义数据帧时序;TTL、RS232、RS485 属于不同电气电平标准,共用同一套起停帧结构。
总线空闲保持高电平;通信起始发送起始位拉低电平;随后依次传输 5~8 位数据位,低位先发;可选奇偶校验位;末尾是停止位拉高电平。工程最通用配置是 8N1:8 位数据、无校验、1 位停止位。接收端依靠内部时钟采样,波特率必须两端严格匹配,偏差过大直接乱码。
时序规则一致,电平标准不能混接:
TTL 电平:MCU 芯片内部电平,3.3V/5V 系统,高电平代表逻辑 1,适合板内短距离通信,传输距离几十厘米,两块芯片 TX、RX 交叉直连即可。
RS232 电平:单端信号,逻辑电平反向,负电压代表逻辑 1,电压范围 ±3~±15V。MCU 输出 TTL 信号必须经过 MAX232 电平转换芯片,TTL 引脚直接接 RS232 接口,极易烧毁 IO 口。
RS485 电平:差分平衡传输,依靠 A、B 两根线压差判断逻辑状态。共模干扰会同时叠加在两根线上并相互抵消,抗干扰能力强,适配工业强电磁环境。
二、RS232 / RS485 / RS422,选型别用错
RS232:点对点全双工,三线(TX、RX、GND)通信,最大传输距离 15 米。单端传输抗干扰弱,多用于设备 Console 调试、实验室短距离调试。
RS485:两线半双工差分总线,单条总线最多挂载 256 个节点,最远传输 1200 米,是工业现场采集主流方案。总线必须手拉手串联,禁止星型分支;总线首尾两端加装 120Ω 终端电阻,抑制信号反射振铃。半双工有个常见坑:发送完成后需要延时切换接收状态,否则容易总线冲突丢包。
RS422:四线差分全双工,原理和 485 接近,可同时收发,最多带 10 个从设备。布线成本更高,实际项目使用较少。
选型口诀:实验室短调选 RS232,工业现场多节点远距离采集选 RS485,需要长距离同时收发再考虑 RS422
三、串口故障排查思路:先查硬件,再看代码
串口异常大多不是程序问题,优先排查硬件接线、电平、拓扑
1. 电平校验:严禁 TTL 直连 RS232;RS485 的 A、B 线接反,能测到电压但无法收发。
2. 参数核对:波特率、数据位、校验位、停止位两端必须完全一致。很多设备文档参数和固件不一致,优先用串口助手扫描波特率。
3. 线缆拓扑:RS232 不要超 15 米;RS485 禁止星型分支,屏蔽层单端接地,避免地环路干扰
