3、超时机制详解:T1(线路超时)、T2(协议超时)、T3(回复超时)、T4(连接超时)、T5(分离超时)、T6(控制超时)
在 SECS/GEM 通信中,超时机制是保障系统可靠性的核心防线。不同的超时定时器分别监控通信链路的不同阶段,从物理线路到应用层控制,形成层层递进的故障检测体系。理解每个超时的含义、触发条件及处理策略,是设计健壮半导体设备软件的基础。
3.1 超时定时器总览
SECS/GEM 标准定义了六种关键超时定时器,分别对应通信过程中的不同环节。下表汇总了各定时器的编号、名称、典型范围及主要用途:
| 定时器 | 名称 | 典型范围 | 监控层级 | 主要用途 |
|---|---|---|---|---|
| T1 | 线路超时 | 1.0 – 10.0 s | 物理/链路层 | 等待单个字符或消息块的到达 |
| T2 | 协议超时 | 0.5 – 5.0 s | 链路层 | 等待协议控制报文(ENQ/ACK/NAK) |
| T3 | 回复超时 | 5.0 – 120.0 s | 应用层 | 等待对端对请求消息的回复 |
| T4 | 连接超时 | 10.0 – 60.0 s | 传输层 | 等待 TCP 连接建立完成 |
| T5 | 分离超时 | 0.1 – 2.0 s | 会话层 | 等待分离请求的确认 |
| T6 | 控制超时 | 5.0 – 30.0 s | 应用层 | 等待控制事务(如 S1F13/F14)的完成 |
配置建议: 实际部署时,T1 和 T2 通常设为较短值以快速检测链路故障;T3 和 T6 需根据设备处理能力适当放宽,避免因正常业务负载导致误判超时。
3.2 T1:线路超时(Inter-Character / Block Timeout)
T1 是最底层的超时定时器,用于监控 HSMS 或 RS-232 链路上字符或消息块之间的间隔。当发送方开始传输一个消息块后,接收方必须在 T1 时间内收到下一个字符或完整的块,否则判定线路中断。
- 触发场景: 物理线路噪声导致字符丢失、网线松动、对端设备断电。
- 默认值: 通常设为 2.0 秒(HSMS)或 1.0 秒(RS-232)。
- 处理策略: 接收方丢弃当前不完整消息,发送方重试或进入连接恢复流程。
关键点: T1 超时通常意味着物理层或链路层出现不可恢复的错误,设备应记录日志并尝试重新建立连接。
3.3 T2:协议超时(Protocol Timeout)
T2 用于 HSMS 协议的控制报文交换,主要监控 ENQ(请求发送)、ACK(确认接收)和 NAK(拒绝接收)等握手信号的响应时间。当一方发送 ENQ 后,对端必须在 T2 时间内回复 ACK 或 NAK。
- 触发场景: 对端设备繁忙未及时处理协议报文、链路层数据包丢失。
- 默认值: 通常设为 1.5 秒。
- 处理策略: 发送方重试 ENQ 最多 N 次(通常 3 次),若仍无响应则判定连接失效。
注意: T2 超时重试次数不宜过多,否则会加剧网络拥塞。建议结合 T1 超时状态综合判断链路健康度。
3.4 T3:回复超时(Reply Timeout)
T3 是应用层最重要的超时定时器,用于监控设备发送请求消息后等待回复的时间。例如,Host 发送 S2F17(请求设备状态)后,设备必须在 T3 时间内回复 S2F18。
- 触发场景: 设备正在执行耗时操作(如晶圆传输)、设备死锁或消息丢失。
- 默认值: 通常设为 45.0 秒,可根据设备处理能力调整。
- 处理策略: 发送方重试请求或上报超时错误;接收方应检查事务 ID 是否匹配。
3.5 T4:连接超时(Connect Timeout)
T4 用于监控 TCP 连接建立阶段的超时。当设备或 Host 发起 TCP 连接请求后,必须在 T4 时间内完成三次握手并收到连接确认。
- 触发场景: 对端 IP 不可达、端口未开放、防火墙拦截。
- 默认值: 通常设为 30.0 秒。
- 处理策略: 发起方放弃连接,进入重试等待状态,并记录网络故障日志。
最佳实践: T4 超时后,建议采用指数退避算法(如 1s、2s、4s、8s…)进行重试,避免频繁连接请求导致网络风暴。
3.6 T5:分离超时(Separate Timeout)
T5 用于 HSMS 分离流程。当一方发送分离请求(Separate.req)后,必须在 T5 时间内收到分离确认(Separate.rsp),否则认为对端已离线。
- 触发场景: 对端设备突然断电、网络瞬间中断。
- 默认值: 通常设为 0.5 秒。
- 处理策略: 发送方直接关闭连接,清理会话资源,无需重试。
3.7 T6:控制超时(Control Timeout)
T6 专门用于监控控制事务的完成时间,典型场景是 S1F13(建立通信请求)与 S1F14(建立通信确认)的握手过程。控制事务必须在 T6 时间内完成,否则视为通信建立失败。
- 触发场景: 设备未就绪、协议版本不匹配、控制消息丢失。
- 默认值: 通常设为 10.0 秒。
- 处理策略: 发起方终止当前连接,重新尝试建立通信链路。
3.8 超时处理策略对比
不同超时定时器的处理策略差异较大,下表总结了各超时的推荐处理动作:
| 超时类型 | 重试机制 | 重试次数 | 最终动作 |
|---|---|---|---|
| T1 | 无重试 | 0 | 丢弃消息,等待下一块 |
| T2 | 指数退避重试 | 3 次 | 断开连接 |
| T3 | 固定间隔重试 | 2 – 3 次 | 上报应用层错误 |
| T4 | 指数退避重试 | 5 次 | 标记对端不可达 |
| T5 | 无重试 | 0 | 立即清理会话 |
| T6 | 固定间隔重试 | 3 次 | 终止通信链路 |
工程提示: 在设备端实现超时处理时,建议为每个定时器配备独立的日志记录模块,便于事后分析超时根因。同时,超时参数应支持动态配置,以适应不同工厂的网络环境。