1. HSMS 协议概述

1.1 HSMS 在 SECS/GEM 体系中的位置

SECS/GEM 是半导体制造设备与工厂主机(Host)之间进行数据通信的行业标准协议族。HSMS(High-Speed SECS Message Services)位于该协议栈的传输层与物理层,负责通过 TCP/IP 网络承载 SECS-II 消息。

协议栈定位:HSMS 替代了传统的 RS232 串行通信,成为现代 300mm 晶圆厂及先进封装产线的主流通信方式。
SECS/GEM 协议栈分层架构图 SECS/GEM 协议栈分层架构 GEM (Generic Equipment Model) 设备行为模型、状态机、报警、配方管理 SECS-II (SEMI E5) 消息格式、流/功能码、数据项编码 HSMS (SEMI E37) TCP/IP 会话管理、消息封装、链路控制 TCP/IP + 以太网 物理连接、IP 寻址、数据包传输 应用层 消息层 传输层 网络/物理层 HSMS 核心职责 • 建立/断开连接 • 消息分帧与重组

1.2 HSMS vs RS232 对比

传统 RS232 串行通信在 200mm 晶圆厂时代占据主导,但面对 300mm 产线对速度、可靠性和多会话的需求已力不从心。HSMS 基于 TCP/IP 网络,在多个维度实现了跨越式提升。

对比维度 HSMS (SEMI E37) RS232 (SECS-I)
物理介质 以太网 (RJ45 / 光纤) 串行电缆 (DB9 / DB25)
传输速率 100 Mbps ~ 1 Gbps 9600 ~ 115200 bps
最大距离 100 米(交换机级联可扩展) 约 15 米
连接方式 点对点 / 星型网络 点对点直连
多会话支持 支持(多连接、多设备) 不支持(单会话)
错误检测 TCP 校验和 + HSMS 头部校验 奇偶校验 + Block Check
标准规范 SEMI E37 SEMI E4
迁移趋势:新建 300mm 晶圆厂已全面采用 HSMS;老旧 200mm 产线也在通过串口转以太网网关逐步升级。掌握 HSMS 诊断是设备工程师的必备技能。

1.3 HSMS 基本通信模型

HSMS 采用 客户端-服务器(Client-Server) 架构。设备端(Equipment)通常作为 HSMS 被动方(Passive) 等待连接,主机(Host)作为 HSMS 主动方(Active) 发起连接。双方通过三次握手建立 TCP 连接后,进入 HSMS 会话层进行消息交换。

HSMS 基本通信模型 HSMS 基本通信模型(主动方 ↔ 被动方) Host (主动方) IP: 192.168.1.10 端口: 5000 (发起连接) Equipment (被动方) IP: 192.168.1.20 端口: 5000 (监听等待) TCP 连接建立 HSMS 会话层消息交互 Select.req (请求建立会话) Select.rsp (确认会话建立) Linktest.req / Linktest.rsp (链路保活)

1.4 HSMS 消息结构

HSMS 在 TCP 字节流之上定义了自己的消息帧格式,确保接收方能够正确识别消息边界。每条 HSMS 消息由 消息头(Header) 和 消息体(Body) 组成。

字段 长度(字节) 说明
消息长度 4 后续消息头 + 消息体的总长度(大端序)
设备 ID 2 标识目标设备(0~32767)
控制位 1 消息类型标识(0x00=数据消息, 0x01=控制消息)
会话 ID 2 多会话场景下的会话标识
流/功能码 2 SECS-II 流号与功能号(如 S1F13)
消息体 可变 SECS-II 数据项(SML 格式编码)
常见陷阱:HSMS 消息长度字段必须严格按大端序(Big-Endian)编码。在抓包分析时,如果发现消息被错误分片或重组失败,首先检查长度字段的字节序是否正确。

1.5 HSMS 状态机与连接生命周期

HSMS 定义了三种基本连接状态,设备与主机通过状态转换来管理通信链路:

  1. 未连接(Not Connected):TCP 连接尚未建立,双方处于监听或待发起状态。
  2. 已连接(Connected):TCP 三次握手完成,但尚未完成 HSMS 会话协商。
  3. 已选择(Selected):通过 Select.req / Select.rsp 握手成功,进入数据通信阶段。
HSMS 连接状态机 HSMS 连接状态机 Not Connected Connected Selected TCP 连接 Select 成功 断开 / 超时 / 错误
诊断要点:链路故障排查的第一步是确认 TCP 连接是否建立(Connected 状态)。如果 TCP 连接无法建立,检查 IP 地址、端口号、防火墙规则和物理网线。如果 TCP 已连接但无法进入 Selected 状态,重点检查 Select.req 消息中的设备 ID 是否匹配。