第 3 章 – 嗅探/监控“主 PC”与“目标设备”之间的串行链路
硬件设备与 PC 通过串行通信
主 PC(右侧)通过串行通信设备(通常是 USB↔串口 转换器:
UART/TTL、RS-232 或 RS-485)与 目标设备 通信。嗅探 PC(左侧)
打开两个端口(COM5 和 COM6),并使用两个 USB 转串口适配器,
被动监听 线路:在 COM5 上将 RX 连接到 设备的 TX,
在 COM6 上将 RX 连接到 PC 的 TX。地线(GND)是共用的。
3.1 目的和概念
我们希望 监控 和 嗅探 在主 PC 上的软件与目标设备之间传输的字节,
而不干扰通信。这是一个典型的被动物理中间人:
两个仅连接 RX 的 USB 转串口适配器分别“读取”每个方向。
这对于 调试、协议分析以及作为审计或逆向工程的 记录器 非常有用。
3.2 连接(逐步)
- COM5 (嗅探 PC) → 将适配器的 RX 连接到 设备的 TX(监听目标发送的内容)。
- COM6 (嗅探 PC) → 将适配器的 RX 连接到 PC 的 TX(监听主 PC 的命令)。
- 共地 于两个适配器和两个设备之间(共享参考点)。
- 不要连接嗅探 PC 适配器的 TX:我们保持只听模式(高阻抗),不干扰线路。
在 SerialTool 中打开两个会话:COM5 和 COM6。在两者中,设置
与主设备/设备使用的 波特率和格式 相同(例如 115200-8N1)。如果您不知道波特率,
尝试常见值或使用示波器/逻辑分析仪测量位持续时间。
3.3 相同协议,不同电平:UART/TTL、RS-232、RS-485
异步串行协议(起始位、7/8 个数据位 LSB 优先发送、可选校验位、1+ 停止位)是相同的。
只有比特传输的物理电平发生变化:
- UART/TTL (3.3 V/5 V):单端信号,“1”为高电平 / “0”为低电平。
- RS-232:反转且为 ± 电压电平(通常为 ±3…±12 V),仍然是单端。
- RS-485:在 A/B 对上为差分,通常是半双工多节点;建议使用公共参考地。
因此请使用 正确的适配器:
USB↔TTL 用于 UART,USB↔RS-232 用于 RS-232,USB↔RS-485 用于 RS-485。帧保持不变,但电气电平和拓扑(差分/终端)不同。
3.4 应用领域(CNC、工业等)
此设置常见于 CNC、工业机械、PLC/HMI、机器人、
秤、POS、传感器、仪器、楼宇自动化以及任何 PC/PLC 通过串行控制设备的系统。
此处描述的嗅探方法让您能够 监控/嗅探/调试/记录 流量,
以进行功能分析、故障诊断、命令跟踪和验证。
3.5 基于串行的 Modbus
串行端口通常承载 Modbus RTU/ASCII,这是工业中广泛使用的主/从(现为客户端/服务器)协议。
主站发送请求(读/写线圈和寄存器),设备回复。
SerialTool 包含一个 Modbus 客户端 用于快速查询寄存器(诊断和测试),
以及用于查看原始帧(地址、功能、数据、CRC)的监视器/十六进制查看器。
3.6 固件更新和参数化
在 嵌入式 领域,串行广泛用于 固件更新 或向目标 传递参数。
示例:自定义板卡上的引导程序、Arduino 等生态系统、各种微控制器。这里的开发者可能有两个需求:
- 调试 与目标通信的应用程序(检查命令、时序、错误)。
- 逆向工程 现有协议(有一个“封闭的”主软件与板卡通信;
我通过嗅探来理解其消息,然后用我自己的软件复现它们)。
3.7 实用说明和工具
- 此设置通常需要 两台 PC(主 PC 和嗅探 PC)和 至少两个 USB 转串口转换器 用于双向嗅探。
- 对于 RS-232,使用 RS-232 分接器/转换器;对于 RS-485,将仅接收接口连接到 A/B 端子
(注意终端电阻和极性)。在半双工 RS-485 上,您将从时序上下文中推断方向。
- 我们排除了控制引脚(RTS/CTS、DTR/DSR、DCD、RI);如果系统使用硬件流控制,请考虑专用探头。
- 在 SerialTool 中,您可以启用HEX 视图、时间戳,并保存为 记录器(文本/CSV/pcap)以供后续分析。
简而言之:相同的串行协议(异步帧),不同的物理电平(TTL/RS-232/RS-485)。
通过被动双 RX 分接和像 SerialTool 这样的软件,您可以可靠地 监控、嗅探、
调试 和 记录 主 PC 与目标设备之间的通信。