握手信号管什么
单端串口除收发与地线之外还有若干握手信号,它们承担两类职责:一类表达设备就绪状态,例如数据终端就绪与数据装置就绪;另一类控制发送节奏,例如请求发送与允许发送。流控因此有三种选择:不启用、硬件流控、软件流控。硬件流控依赖专门的信号线,双方按线状态决定是否发送,时序可靠;软件流控把控制字符插入数据流,一旦二进制数据里恰好出现同样的字节就会被误判,这是它的致命缺陷。许多仪表只需收发与地三线,这时软件侧必须关闭流控,否则发送会一直等待一个永远不会到来的允许信号。
基本信息
| 就绪类信号 | 表达设备是否能接收数据 |
|---|---|
| 流控类信号 | 控制对方是否可以继续发送 |
| 硬件流控 | 使用专用信号线,时序可靠 |
| 软件流控 | 用控制字符,二进制数据下不可靠 |
| 三线接法 | 只用收发与地,软件侧必须关闭流控 |
| 典型症状 | 启用流控但线缆没有对应线,发送被挂起 |
| 兼容手段 | 本地把请求发送与允许发送短接,模拟允许状态 |
典型使用场景
- 老式打印或条码设备明确要求握手信号,需按手册接线
- 只用三线连接仪表,软件侧必须关闭硬件与软件流控
- 传输二进制数据或文件,禁止使用软件流控
- 长距离链路希望用握手信号确认对端在线
- 设备只发送不接收,接收侧的流控设置需要单独确认
- 更换线缆后行为变化,可能是新线缆未接握手线
流控方式对照
| 方式 | 依赖 | 适用 | 风险 |
|---|---|---|---|
| 不启用 | 仅收发与地 | 多数仪表与简单设备 | 无流控时突发数据可能被丢弃 |
| 硬件流控 | 专用握手信号线 | 高速或大数据量链路 | 线缆不接线时发送被挂起 |
| 软件流控 | 数据流中的控制字符 | 纯文本通信 | 二进制数据中被误判为控制符 |
| 握手短接 | 本地把两信号短接 | 调试与兼容老设备 | 失去真实流控能力 |
接线与软件设置要点
接线与软件设置要点
# 三线接法(收发与地):软件侧关闭硬件流控与软件流控
# 对接两台数据终端设备时:收发交叉、握手线交叉
# - 请求发送与允许发送交叉连接,就绪信号交叉连接
# 调试老设备:可在本地把请求发送与允许发送短接,模拟允许发送状态
# 二进制数据链路:禁止使用软件流控,改用硬件流控或不启用
# 排查提示:发送卡住先怀疑流控设置与线缆实际接线不一致设备手册写只需要三线,但软件里启用了硬件流控,症状是数据完全发不出去而不是发错,这类问题极易被误判为设备故障。
自定义线缆时若把握手线错接到输出引脚,可能造成信号冲突,接线前应确认每个引脚的电气定义。