2. HSMS 连接建立基础:Select.req 与 Select.rsp 消息交互流程

HSMS 连接建立是 SECS/GEM 通信的物理与逻辑握手阶段。在 TCP 传输连接(物理连接)建立之后,通信双方需要通过 Select.req(选择请求)与 Select.rsp(选择响应)消息完成逻辑连接(Logical Connection)的确认。这一过程决定了后续数据消息能否在 HSMS 会话中正常收发。

2.1 连接建立的两阶段模型

HSMS 连接建立分为两个清晰的阶段:

阶段 协议层 目的 典型耗时
阶段一:TCP 传输连接 TCP/IP 建立可靠的字节流通道(三次握手) 1–10 ms(局域网)
阶段二:HSMS 逻辑连接 HSMS 通过 Select.req / Select.rsp 确认会话主控权 受 T3 定时器约束(典型 45 s)
关键概念: TCP 连接只保证数据能到达对端,而 HSMS Select 过程才真正建立“设备-主机”之间的逻辑会话关系。T3 超时只发生在阶段二。

2.2 Select.req 与 Select.rsp 消息结构

两条消息均属于 HSMS 控制消息(Message Type 0x0001 和 0x0002),使用固定的 10 字节消息头,不携带数据体(Data Length = 0)。

消息 Message Type Session ID 方向 说明
Select.req 0x0001 0xFFFF 发起方 → 响应方 请求建立逻辑连接
Select.rsp 0x0002 0xFFFF 响应方 → 发起方 返回连接建立结果(Primary/Alternate)
注意: Select.req 和 Select.rsp 的 Session ID 固定为 0xFFFF,表示该消息属于“未建立连接”的控制通道。任何非 0xFFFF 的 Session ID 在此阶段均属于协议违规。

2.3 交互流程详解

以下为标准的 Select.req / Select.rsp 交互时序:

  1. 发起方发送 Select.req:在 TCP 连接建立后,发起方(通常是主机或设备)立即发送 Select.req 消息,并启动 T3 定时器。
  2. 响应方接收并处理:响应方收到 Select.req 后,检查自身状态(是否已与其他实体建立连接、资源是否可用)。
  3. 响应方回复 Select.rsp:响应方在 T3 超时前回复 Select.rsp,其中包含 Primary(0x00)或 Alternate(0x01)状态。
  4. 发起方停止 T3 定时器:发起方收到 Select.rsp 后停止 T3 定时器,并根据响应码决定后续动作。
故障风险点: 如果响应方在 T3 超时前未回复 Select.rsp,发起方将触发 T3 超时事件,关闭 TCP 连接并记录“HSMS 连接建立失败”日志。这是 T3 超时在连接建立阶段最常见的根因之一。

2.4 Select.rsp 响应码含义

响应码 枚举值 含义 后续动作
Primary 0x00 连接建立成功,当前实体作为主控方 进入通信就绪状态,可发送数据消息
Alternate 0x01 连接建立成功,当前实体作为备用方 进入通信就绪状态,但主控权归对方
其他值 0x02–0xFF 协议保留或厂商自定义错误 通常视为连接失败,关闭 TCP 连接

2.5 交互流程 SVG 图

下图展示了 HSMS 连接建立阶段 Select.req 与 Select.rsp 的完整交互过程,包含 T3 定时器的启动与停止时机:

HSMS Select.req / Select.rsp 交互流程 HSMS 连接建立:Select.req / Select.rsp 交互流程 发起方(Initiator) 响应方(Responder) TCP 连接已建立 TCP 连接已建立 发送 Select.req Select.req (0x0001) 启动 T3 定时器 处理 Select.req 回复 Select.rsp Select.rsp (0x0002) 停止 T3 定时器 T3 定时器在发送 Select.req 后启动,在收到 Select.rsp 后停止。若超时未收到响应,则触发 T3 超时事件。

2.6 连接建立后的状态转换

Select.rsp 的响应码决定了连接建立后的主从关系:

  • Primary(0x00):当前实体获得主控权,可以主动发送数据消息(如 S1F1、S2F17 等)。
  • Alternate(0x01):当前实体作为备用方,只能响应对方的消息,不能主动发起数据会话。
工程经验: 在半导体设备集成中,通常约定主机(Host)作为 Primary,设备(Equipment)作为 Alternate。如果双方都试图成为 Primary,会导致“主控权冲突”,此时需要重新建立 TCP 连接并协商角色。

2.7 常见连接建立失败模式

失败模式 现象 可能根因
T3 超时 发起方未收到 Select.rsp 网络延迟、响应方繁忙、响应方未实现 HSMS
响应码异常 Select.rsp 包含非 0x00/0x01 值 协议栈实现错误、版本不匹配
Session ID 错误 Select.req 或 Select.rsp 中 Session ID ≠ 0xFFFF 协议栈状态机错误、消息构造异常
TCP 连接中断 Select.req 发送后 TCP 连接断开 防火墙、网络抖动、对端主动关闭
故障诊断提示: 当遇到 HSMS 连接建立失败时,应首先检查 T3 定时器是否超时。如果 T3 超时,优先排查网络连通性和响应方协议栈状态;如果 T3 未超时但连接失败,则重点检查 Select.rsp 的响应码和 Session ID 字段。