1. SECS/GEM 协议基础:SECS-I、SECS-II、HSMS 协议栈架构与通信模型概述
SECS/GEM 协议族是半导体制造设备与工厂主机(Host)之间进行数据交换与远程控制的事实标准。理解其分层架构是故障定位的第一步。整个协议栈从物理介质到应用语义,共分为三层:SECS-I(物理/传输层)、HSMS(网络传输层) 与 SECS-II(消息/会话层),GEM 则是在 SECS-II 之上定义的一组标准行为规范。
1.1 协议栈总体架构
下图展示了 SECS/GEM 协议栈的完整分层模型及其与 OSI 模型的对应关系。设备与主机之间的通信必须严格遵循此分层,每一层都为上层提供确定的服务接口。
1.2 SECS-I (SEMI E4) — 串行传输层
SECS-I 定义了点对点 RS-232C 串行通信的物理与数据链路层规范。虽然现代工厂已大量转向 HSMS,但大量老旧设备(如 200mm 及以下晶圆厂)仍在使用 SECS-I。其核心特征如下:
| 参数 | 规范值 | 说明 |
|---|---|---|
| 物理接口 | RS-232C | 点对点连接,最大距离约 15m |
| 波特率 | 9600 bps(典型) | 也支持 19200、38400,需设备与主机匹配 |
| 数据格式 | 7 位数据 + 偶校验 + 1 停止位 | 固定格式,不可协商 |
| 传输单位 | Block(块) | 最大 254 字节/块,多块消息需重组 |
| 超时机制 | T1、T2、T3、T4 | T1 字符间超时,T2 块间超时,T3 回复超时,T4 连接超时 |
1.3 HSMS (SEMI E37) — 网络传输层
HSMS(High-Speed SECS Message Services)基于 TCP/IP 协议栈,替代了 SECS-I 的串行物理层。它支持高速、多连接、远距离通信,是现代 300mm 晶圆厂和先进封装厂的主流选择。
HSMS 定义了两种连接模式:
- 主动模式(Active Mode): 设备作为 TCP 客户端主动连接主机(Host)的指定端口(默认 5000)。
- 被动模式(Passive Mode): 设备作为 TCP 服务器监听端口,等待主机连接。
HSMS 消息格式采用固定的 4 字节报文头 + 可变长度数据体:
HSMS 消息帧结构(长度 4 + 10 + N 字节):
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| Length (4 bytes) | Device ID | Stream | Function | P | R | W | System Bytes | Data (N bytes) |
| 大端序,含头长度 | (2 bytes) | (1 byte) | (1 byte) | bit | bit | bit | (4 bytes) | |
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| 字段 | 长度 | 说明 |
|---|---|---|
| Length | 4 字节 | 报文总长度(包含报文头自身 10 字节 + 数据体),大端序 |
| Device ID | 2 字节 | 设备标识符,用于多设备共享同一 TCP 连接 |
| Stream | 1 字节 | SECS-II 消息流编号(1-127) |
| Function | 1 字节 | SECS-II 消息功能编号(0-255) |
| P bit | 1 位 | 主/从标志(0=从设备,1=主设备) |
| R bit | 1 位 | 请求/回复标志(0=请求,1=回复) |
| W bit | 1 位 | 等待标志(1=需要回复) |
| System Bytes | 4 字节 | 系统会话 ID,用于匹配请求与回复 |
1.4 SECS-II (SEMI E5) — 消息层
SECS-II 定义了设备与主机之间交换消息的格式与语义。每条消息由 Stream(流)和 Function(功能)唯一标识,例如 S1F13 表示“请求设备 ID”,S6F11 表示“事件报告发送”。
SECS-II 的数据结构基于 Item 树形编码,支持以下基本数据类型:
| Item 类型 | 格式码 | 描述 | 示例 |
|---|---|---|---|
| L | 0x01 | 列表(List),可嵌套 | L[3] 包含 3 个子 Item |
| B | 0x04 | 布尔值(Boolean) | TRUE / FALSE |
| I1 | 0x64 | 有符号 1 字节整数 | -128 ~ 127 |
| I2 | 0x65 | 有符号 2 字节整数 | -32768 ~ 32767 |
| I4 | 0x66 | 有符号 4 字节整数 | -2^31 ~ 2^31-1 |
| F4 | 0x68 | 4 字节浮点数 | IEEE 754 单精度 |
| A | 0x41 | ASCII 字符串 | "CHAMBER_1" |
典型的 SECS-II 消息编码示例(S1F13 请求设备 ID):
原始字节(十六进制):
00 00 00 0E 00 01 01 0D 80 00 00 00 01 01 01 00 00 00 00
解析:
Length: 0x0000000E = 14 字节(含头)
Device ID: 0x0001 = 1
Stream: 0x01 = S1
Function: 0x0D = F13
P=1, R=0, W=1 (需要回复)
System Bytes: 0x00000001
Data: 01 01 00 00 00 00 → L[1] 空列表(无参数)
1.5 GEM (SEMI E30) — 设备行为标准
GEM(Generic Equipment Model)不是独立的协议层,而是建立在 SECS-II 之上的一套标准设备行为模型。它定义了设备必须支持的 SECS-II 消息集合、状态机、报警管理、事件通知、远程命令、配方管理等功能。
GEM 的核心组件包括:
- 设备状态机: 定义设备从 INIT → IDLE → SETUP → PROCESSING → IDLE 等状态的转换规则。
- 报警管理: 设备通过 S5F1/S5F2 消息向主机报告报警状态。
- 事件通知: 设备通过 S6F11/S6F12 消息向主机发送事件报告(如“晶圆到达”、“工艺完成”)。
- 远程控制: 主机通过 S2F41 发送远程命令(如“启动工艺”、“停止传输”)。
- 变量收集: 主机通过 S1F3/S1F4 读取设备状态变量(SV)或设备常数(EC)。
1.6 通信模型与典型交互流程
下图展示了一个典型的 SECS/GEM 通信建立与数据交换流程,从 TCP 连接到 GEM 状态初始化:
1.7 本章小结
| 协议层 | 标准 | 主要职责 | 故障排查关注点 |
|---|---|---|---|
| SECS-I | SEMI E4 | RS-232 串行传输、块传输、超时控制 | T1/T2 超时、波特率匹配、串口线缆 |
| HSMS | SEMI E37 | TCP/IP 网络传输、连接管理、消息封装 | TCP 连接状态、Link Test 间隔、防火墙规则 |
| SECS-II | SEMI E5 | 消息格式、Item 编码、Stream/Function 定义 | 消息解析错误、System Bytes 不匹配、无效 SxFy |
| GEM | SEMI E30 | 设备行为标准、状态机、报警、事件、远程命令 | 状态机卡死、未实现必需消息、CEID 配置错误 |