1. SECS GEM 协议概述
1.1 SECS GEM 在半导体制造中的作用
在半导体晶圆制造中,设备与上位主机(Host)之间的数据交换必须遵循严格的标准协议。SECS(SEMI Equipment Communications Standard)与 GEM(Generic Equipment Model)正是由国际半导体设备与材料协会(SEMI)制定的核心通信标准。
- SECS-I / SECS-II:定义消息格式与数据项编码,是设备通信的“语法”。
- HSMS(High-Speed SECS Message Services):基于 TCP/IP 的传输层协议,替代早期的 RS-232 串行 SECS-I。
- GEM:在 SECS-II 之上定义设备行为模型,包括状态机、报警、配方管理、事件通知等,是设备与主机交互的“语义”。
核心价值:SECS GEM 实现了半导体制造中设备与制造执行系统(MES)的标准化对接,使不同厂商的设备能够以统一的方式上报状态、接收指令,从而支撑自动化物料搬运、工艺参数下发、数据追溯等关键场景。
| 协议层 | 标准编号 | 主要功能 | 传输载体 |
|---|---|---|---|
| SECS-I | SEMI E4 | 串行点对点物理传输 | RS-232 |
| SECS-II | SEMI E5 | 消息格式、数据项编码 | 独立于传输层 |
| HSMS | SEMI E37 | TCP/IP 上的高速消息服务 | 以太网 |
| GEM | SEMI E30 | 设备行为模型、状态机、场景定义 | 基于 SECS-II |
1.2 HSMS 通信模型
HSMS(High-Speed SECS Message Services)是当前半导体设备通信的主流传输层协议。它基于 TCP/IP 协议栈,提供可靠、有序、无丢失的字节流传输。HSMS 定义了两种通信角色:主动方(Active) 和 被动方(Passive)。
- 主动方(Active):主动发起 TCP 连接请求的一方,通常是设备端(Equipment)。
- 被动方(Passive):监听端口等待连接的一方,通常是主机端(Host)。
- 控制连接(Control Connection):用于传输 HSMS 控制消息(如 Select、Deselect、Linktest)。
- 数据消息(Data Message):承载 SECS-II 数据,在已建立的会话中传输。
关键概念:HSMS 使用“会话(Session)”来管理逻辑连接。一个 TCP 连接可以承载多个会话,但通常一个设备与主机之间只建立一个会话。HSMS 通过 Select.req / Select.rsp 握手建立会话,通过 Linktest.req / Linktest.rsp 维持连接活性。
| HSMS 消息类型 | 功能 | 方向 |
|---|---|---|
| Select.req | 请求建立会话 | Active → Passive |
| Select.rsp | 响应会话建立请求 | Passive → Active |
| Deselect.req | 请求终止会话 | Active → Passive |
| Linktest.req | 连接活性探测 | Active → Passive |
| Linktest.rsp | 连接活性响应 | Passive → Active |
| Data Message | 承载 SECS-II 数据 | 双向 |
1.3 Socket 基础概念
Socket(套接字)是 TCP/IP 网络编程的抽象接口,是应用层与传输层之间的桥梁。在 HSMS 通信中,Socket 负责建立 TCP 连接、发送和接收字节流。理解 Socket 的工作原理是诊断 HSMS 通信异常的前提。
- Socket 类型:流式 Socket(SOCK_STREAM)对应 TCP,提供可靠、有序、无丢失的双向字节流。
- IP 地址 + 端口号:唯一标识一个通信端点。设备与主机通过 (IP, Port) 对建立连接。
- Socket 生命周期:创建 → 绑定(可选)→ 连接/监听 → 收发数据 → 关闭。
- 阻塞与非阻塞:阻塞模式下,读写操作会等待数据就绪;非阻塞模式立即返回,需配合事件轮询。
常见误区:Socket 连接建立成功(TCP 三次握手完成)并不等于 HSMS 会话建立成功。HSMS 还需要在 TCP 之上进行 Select 握手。很多工程师误将 TCP 连通性等同于 HSMS 通信正常,这是诊断中需要特别注意的。
| Socket 操作 | 对应 HSMS 场景 | 异常表现 |
|---|---|---|
| socket() | 创建通信端点 | 资源不足,创建失败 |
| connect() | 设备主动连接主机 | 连接超时、拒绝连接 |
| bind() + listen() | 主机监听端口 | 端口被占用、权限不足 |
| send() / write() | 发送 HSMS 消息 | 连接断开、发送缓冲区满 |
| recv() / read() | 接收 HSMS 消息 | 超时、连接重置、半关闭 |
| close() | 断开 TCP 连接 | 未正常关闭导致资源泄漏 |
1.4 小结
本章介绍了 SECS GEM 协议栈的分层结构、HSMS 通信模型以及 Socket 基础概念。理解这些内容是诊断 Socket 通信异常的前提。在后续章节中,我们将深入分析常见的 Socket 异常类型、抓包分析方法以及具体的诊断步骤。
关键记忆点:
• SECS GEM 是半导体设备与主机通信的行业标准,包含 E4/E5/E30/E37 等多个 SEMI 标准。
• HSMS 基于 TCP/IP,使用 Active/Passive 角色模型,通过 Select 握手建立会话。
• Socket 是 TCP 通信的编程接口,其生命周期直接映射到 HSMS 的连接管理过程。
• TCP 连接成功不等于 HSMS 通信正常,必须验证 Select 握手和 Linktest 保活。
• SECS GEM 是半导体设备与主机通信的行业标准,包含 E4/E5/E30/E37 等多个 SEMI 标准。
• HSMS 基于 TCP/IP,使用 Active/Passive 角色模型,通过 Select 握手建立会话。
• Socket 是 TCP 通信的编程接口,其生命周期直接映射到 HSMS 的连接管理过程。
• TCP 连接成功不等于 HSMS 通信正常,必须验证 Select 握手和 Linktest 保活。