首页/网络/工控与物联网速查/串口通信故障的排查步骤

串口通信故障的排查步骤

串口故障绝大多数出在物理层与参数层,排查顺序是先接线(含差分线序与回环自测)、再逐项对齐波特率与数据位/校验位/流控、最后才看协议报文,避免一上手就怀疑设备程序。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​‌​​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌​‌​‌‌‌​‌​‌​‌‌​‌‌‌​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​‌​‌‌​​​‌​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

串口为什么容易出问题

串口在物理层就把参数约定死了:波特率、数据位、停止位、校验位、流控必须两端完全一致,任一项不同就表现为乱码或完全无响应。再加上 RS-232 与 RS-485 电气特性不同、接线定义容易接反,串口故障的绝大部分原因落在物理层和参数层,而不在协议层。因此排查顺序应是先接线、再参数、最后报文。

基本信息

关键参数波特率、数据位、停止位、校验位、流控(常见 9600 8N1)
电气类型RS-232 点对点短距;RS-485 差分、多点、长距
常见症状完全无数据、乱码、偶发错帧、只能单向通信
常用工具串口调试助手、USB 转串口线、示波器或串口分析仪、回环插头

典型使用场景

  • 新接线后完全收不到数据,需要区分线序问题与参数问题
  • 能收到可读字符但内容有错,怀疑校验位设置或干扰
  • 只能从一侧收到数据,怀疑收发线序或方向控制
  • 更换 USB 转串口适配器后出现异常,怀疑驱动或电平兼容
  • 现场偶发错帧,需要区分参数边界问题与电磁干扰

症状与原因对照

症状常见原因验证方式
完全无数据收发线接反、从设备未上电、参数不匹配用回环插头短接收发针脚自测本端口
乱码但字节数正常波特率错误、数据位或校验位与对端不同逐项对齐参数后重测同一报文
偶发错帧校验位不一致、线缆过长或受干扰、接地电位差看误码是否与干扰源动作同步出现
只能单向通信RS-485 方向控制时机不当或差分线反接交换差分线序后复测双向

Linux 下验证串口

Linux 下验证串口
stty -F /dev/ttyUSB0 -a                 # 打印当前参数,与设备手册逐项核对
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb -crtscts   # 设为 9600 8N1 且关闭流控
cat /dev/ttyUSB0 | xxd                   # 以十六进制查看收到的原始字节
printf 'hello\r\n' > /dev/ttyUSB0         # 发送测试字符串
ls -l /dev/serial/by-id/                 # 按序列号定位端口,避免编号随插拔漂移
dmesg | tail -20                         # 确认 USB 转串口驱动是否正常加载
先把线缆与参数两件事排掉再看协议。用回环插头短接收发针脚自测,能一刀切区分是本机端口问题还是线缆与对端问题,比反复猜参数快得多。
/dev/ttyUSB0 这类编号会随插拔顺序变化。脚本与程序应绑定 by-id 路径,否则重启后可能打开错误端口,表现成“时好时坏”的假故障。
RS-485 半双工需要方向控制,切换时机不当会截断报文。主站轮询时应保证发送完毕后留出足够延时再转为接收,具体延时按从站响应特性与官方手册确定。

易错点

  • 两端参数字节级不一致:波特率或校验位不同得到的是乱码而非明确报错,容易被误判为设备损坏,应逐项对照两侧参数打印结果
  • RS-485 差分线 A/B 接反:部分设备勉强能通部分不能,表现成“有的设备好用有的是坏的”,先交换差分线序复测
  • 用普通网线或过长飞线延长串口:超出电气特性后误码率上升,表现为偶发错帧,应换屏蔽双绞线并按需加装延长或隔离设备
  • 多台设备直接并接在一条 RS-232 链路上:RS-232 不支持多点,硬接会造成互相干扰甚至损坏驱动芯片
  • 忽略两端接地电位差:地电位不同会形成环流或损坏接口,跨建筑或长距链路应使用隔离型转换器

数据来源与参考

  • TIA/EIA-232-F 与 TIA/EIA-485-A 串行接口电气标准
  • Linux 手册页 stty(1) 与 termios 串口参数说明
  • 各厂商 PLC 串口通信模块手册的接线与参数章节(以官方文档为准)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/serial-communication-troubleshooting.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​‌​​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌​‌​‌‌‌​‌​‌​‌‌​‌‌‌​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​‌​‌‌​​​‌​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​