2. 超时参数 T1(Inter-Character Timeout):定义、作用、典型值范围、对低速链路的影响
2.1 定义与核心作用
T1(Inter-Character Timeout) 是 SECS-I 协议(基于 RS-232 串行通信)中定义的最基础超时参数,用于监控两个连续字符之间的最大允许时间间隔。在 SECS/GEM 通信栈中,T1 位于物理层与数据链路层之间,直接决定了消息帧的完整性检测粒度。
官方定义(SEMI E4): T1 是接收端在等待一个消息块(Message Block)中下一个字符到达时,所允许的最大等待时间。若在 T1 时间内未收到下一个字符,接收端应判定该块传输失败,并丢弃已收到的部分数据。
核心作用:
- 帧完整性检测: 确保单个消息块内的所有字符在连续的时间窗口内到达,防止因字符丢失或错位导致的帧解析错误。
- 链路状态感知: 快速检测物理链路的断开或异常中断,避免接收端无限期等待不存在的字符。
- 冲突与噪声容限: 在串行通信中,电磁干扰或电气噪声可能导致字符延迟或丢失,T1 提供了合理的容忍窗口。
2.2 典型值范围与标准依据
根据 SEMI E4 标准及行业实践,T1 的典型配置范围如下表所示:
| 参数 | 最小值 | 推荐值 | 最大值 | 标准依据 |
|---|---|---|---|---|
| T1 | 0.5 秒 | 1.0 秒 | 10.0 秒 | SEMI E4 / E5 |
| 典型应用场景 | 高速本地链路(≤ 115200 bps) | 标准工厂链路(9600 ~ 38400 bps) | 低速或长距离链路(≤ 2400 bps) | — |
实践建议: 在大多数半导体工厂自动化项目中,T1 直接采用默认值 1.0 秒即可满足需求。仅在遇到低速链路或长距离传输时,才需要向上调整。
2.3 T1 在 SECS-I 消息帧中的位置
下图展示了 SECS-I 消息块(Block)的结构,以及 T1 超时在接收过程中的监控位置:
如上图所示,接收端在每收到一个字符后,都会启动 T1 定时器。若在定时器到期前收到下一个字符,则重置定时器并继续接收;若定时器到期仍未收到字符,则判定该块传输失败。
2.4 对低速链路的特殊影响
当通信链路波特率较低(如 2400 bps 或 4800 bps)时,T1 的配置需要特别关注。下表对比了不同波特率下单个字符的传输时间:
| 波特率(bps) | 每比特时间(ms) | 每字符时间(10 位,ms) | 1024 字节块传输时间(s) | T1 推荐值(s) |
|---|---|---|---|---|
| 9600 | 0.104 | 1.04 | 1.07 | 1.0 |
| 4800 | 0.208 | 2.08 | 2.13 | 2.0 |
| 2400 | 0.417 | 4.17 | 4.27 | 4.0 |
| 1200 | 0.833 | 8.33 | 8.53 | 8.0 |
⚠ 低速链路陷阱: 若在 2400 bps 链路上仍使用默认的 1.0 秒 T1 值,当传输较大消息块(如 1024 字节)时,由于字符间自然间隔可能接近或超过 1.0 秒,会导致频繁的 T1 超时误判,造成通信中断和重传风暴。此时必须将 T1 调整为 4.0 秒或更高。
2.5 T1 超时与重传机制的联动
当 T1 超时发生时,接收端的行为遵循以下流程:
- 丢弃当前块: 接收端立即丢弃已收到的部分字符,并释放相关缓冲区。
- 发送 NAK(否定应答): 若该块属于多块消息的一部分,接收端向发送端发送 NAK 信号,指示需要重传该块。
- 触发 T5 超时(连接超时): 若 T1 超时频繁发生,可能导致整个消息传输超时(T5),进而触发链路重建。
- 统计与告警: 主机或设备端应记录 T1 超时次数,用于链路质量评估和故障诊断。
下图展示了 T1 超时后的重传决策流程:
2.6 调优实践要点
调优检查清单:
- 链路摸底: 在部署前使用示波器或串口分析仪测量实际字符间最大间隔,作为 T1 设置的基准。
- 留有余量: 推荐将 T1 设置为实测最大字符间隔的 2~3 倍,避免因瞬时负载波动导致误超时。
- 避免过大: T1 设置过大(如 > 10 秒)会降低链路故障检测的灵敏度,导致系统对断线反应迟钝。
- 联动调整: 修改 T1 时,需同步检查 T2(块间超时)、T3(回复超时)等参数,确保超时层级合理。
案例参考: 某 300mm 晶圆厂在升级老旧设备时,将 RS-232 链路从 9600 bps 降速至 2400 bps 以提升抗干扰能力,但未调整 T1 值(仍为 1.0 秒),导致每小时出现 200+ 次 T1 超时。将 T1 调整为 4.0 秒后,超时次数降为 0,通信恢复正常。