4. HSMS 通信协议:TCP/IP 连接建立、会话建立与断开、HSMS 状态机与心跳机制
HSMS(High-Speed SECS Message Services)是 SEMI E37 标准定义的通信协议,它利用 TCP/IP 作为底层传输层,替代了传统的 RS-232 串口通信。HSMS 提供了更高的数据传输速率和更可靠的连接管理,是现代半导体设备与主机(Host)之间通信的主流方式。本章将深入解析 HSMS 的连接建立、会话管理、状态机转换以及心跳机制。
4.1 HSMS 协议概述与 TCP/IP 连接建立
HSMS 协议建立在 TCP/IP 协议栈之上,它定义了两种主要的连接模式:主动模式(Active Mode)和被动模式(Passive Mode)。在典型的产线部署中,设备(Equipment)通常作为主动方,主机(Host)作为被动方。
4.1.1 TCP 连接建立流程
HSMS 的 TCP 连接建立遵循标准的 TCP 三次握手流程。以下是设备(主动方)与主机(被动方)建立连接的步骤:
- SYN: 设备向主机的指定端口(默认 5000)发送 TCP SYN 报文。
- SYN-ACK: 主机收到 SYN 后,回复 SYN-ACK 报文,表示同意建立连接。
- ACK: 设备收到 SYN-ACK 后,发送 ACK 报文确认。此时 TCP 连接建立完成。
TCP 连接建立后,底层通信通道准备就绪,但 HSMS 协议层尚未就绪,需要进入会话建立阶段。
4.1.2 HSMS 连接建立流程图
下图展示了从 TCP 连接到 HSMS 会话建立的完整流程:
4.2 HSMS 会话建立与断开
HSMS 会话(Session)是建立在 TCP 连接之上的逻辑通信通道。会话的建立和断开由 HSMS 协议层的消息交换完成。
4.2.1 会话建立:Select.req / Select.rsp
当 TCP 连接建立后,设备(主动方)发送 Select.req 消息请求建立会话。主机收到后回复 Select.rsp 消息,其中包含一个响应代码(HCACK)表示接受或拒绝。
| HCACK 代码 | 含义 | 说明 |
|---|---|---|
| 0 | 成功 | 会话建立成功,可以进行后续通信 |
| 1 | 连接已存在 | 该设备 ID 已经有一个活跃的会话 |
| 2 | 连接未就绪 | 主机尚未准备好接受新的会话 |
| 3 | 设备 ID 无效 | 设备 ID 不在主机允许的范围内 |
4.2.2 会话断开:Separate.req
会话断开由 Separate.req 消息触发。任何一方(设备或主机)都可以发送 Separate.req 来终止当前会话。收到 Separate.req 后,接收方应停止所有与该会话相关的通信,并释放资源。
会话断开后,TCP 连接可以选择保持或关闭,具体取决于实现。在大多数产线部署中,会话断开后 TCP 连接也会随之关闭。
4.2.3 会话建立与断开状态图
4.3 HSMS 状态机:Not Connected / Connected / Selected
HSMS 协议定义了一个三状态状态机,用于管理通信连接的生命周期。理解这三个状态及其转换条件是实现可靠通信的基础。
4.3.1 状态定义
| 状态 | 描述 | 允许的操作 |
|---|---|---|
| Not Connected | TCP 连接未建立,无任何通信 | 发起 TCP 连接(主动方)或等待连接(被动方) |
| Connected | TCP 连接已建立,但 HSMS 会话未建立 | 发送 Select.req 请求建立会话 |
| Selected | TCP 连接已建立,HSMS 会话已建立 | 发送/接收 SECS 消息(Primary/Secondary) |
4.3.2 状态转换条件
- Not Connected → Connected: TCP 连接建立成功(三次握手完成)。
- Connected → Selected: 设备发送 Select.req,主机回复 Select.rsp 且 HCACK=0。
- Selected → Connected: 收到 Separate.req 或发送 Separate.req 成功。
- Connected → Not Connected: TCP 连接断开(主动关闭或网络异常)。
- Selected → Not Connected: TCP 连接断开(直接断开,不经过 Connected 状态)。
4.3.3 HSMS 状态机详细转换图
4.4 心跳机制:Linktest.req / Linktest.rsp
心跳机制是 HSMS 协议中用于检测连接健康状态的重要功能。通过定期发送 Linktest.req 消息并等待 Linktest.rsp 回复,通信双方可以确认底层 TCP 连接是否仍然有效。
4.4.1 心跳机制工作原理
- 发送方: 在 Selected 状态下,如果在一定时间内(通常为 10-30 秒)没有发送任何消息,设备或主机应主动发送 Linktest.req 消息。
- 接收方: 收到 Linktest.req 后,必须立即回复 Linktest.rsp 消息。
- 超时处理: 如果发送方在超时时间(通常为 5-10 秒)内未收到 Linktest.rsp,则认为连接已断开,状态机跳转到 Not Connected。
4.4.2 心跳机制流程图
4.4.3 心跳参数配置建议
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 心跳间隔 | 15 秒 | 两次 Linktest.req 之间的时间间隔 |
| 超时时间 | 5 秒 | 发送 Linktest.req 后等待 Linktest.rsp 的最大时间 |
| 重试次数 | 3 次 | 超时后重试 Linktest.req 的次数,超过后断开连接 |
4.5 本章小结
HSMS 协议通过 TCP/IP 提供可靠的底层通信,并通过三状态状态机(Not Connected / Connected / Selected)管理连接生命周期。会话建立和断开由 Select.req/rsp 和 Separate.req 消息控制,心跳机制(Linktest.req/rsp)确保连接的健康状态。掌握这些核心机制是实现稳定、可靠的半导体设备通信的基础。