1. SECS/GEM 协议基础:SECS-I、SECS-II、HSMS 协议栈架构与通信模型概述

SECS/GEM 协议族是半导体制造设备与工厂主机(Host)之间进行数据交换与远程控制的事实标准。理解其分层架构是故障定位的第一步。整个协议栈从物理介质到应用语义,共分为三层:SECS-I(物理/传输层)、HSMS(网络传输层) 与 SECS-II(消息/会话层),GEM 则是在 SECS-II 之上定义的一组标准行为规范。

核心要点: 故障排查时,必须首先确定问题发生在哪一层——是物理连接(SECS-I/HSMS)中断,还是消息格式错误(SECS-II),或是设备状态机不匹配(GEM)。

1.1 协议栈总体架构

下图展示了 SECS/GEM 协议栈的完整分层模型及其与 OSI 模型的对应关系。设备与主机之间的通信必须严格遵循此分层,每一层都为上层提供确定的服务接口。

SECS/GEM 协议栈架构与 OSI 模型对应 OSI 模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 SECS/GEM 协议栈 GEM (Generic Equipment Model) 设备行为标准:状态机、报警、事件、远程控制 SECS-II (SEMI E5) 消息格式与编码:Stream & Function, Item 数据结构 传输层分隔 HSMS (SEMI E37) TCP/IP 网络传输:连接管理、消息封装、流量控制 SECS-I (SEMI E4) RS-232 串行通信:块传输、校验、超时控制 物理介质:RS-232 / TCP/IP 网络 🔍 故障排查原则:物理层问题查 SECS-I/HSMS 连接;消息格式问题查 SECS-II 编码;行为异常查 GEM 状态机。 日志中常见错误码如 “T3 超时” 属于 HSMS 层,“无效 S2F41” 属于 SECS-II 层。

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 连接超时
⚠️ 常见故障点: SECS-I 通信中,T1 超时 通常由串口线松动、波特率不匹配或电磁干扰引起;T3 超时 则表明设备未在 45 秒内回复主机请求,可能是设备端 SECS-II 处理卡死。

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,用于匹配请求与回复
💡 排查技巧: 在 Wireshark 或设备日志中,如果看到大量 “Link Test” 消息(SxF0 或 HSMS 控制消息),说明连接处于空闲状态;如果出现 “Reject” 或 “Separate”,则表明连接已被对端主动断开,需检查网络防火墙或设备 TCP 保活设置。

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)。
🔧 故障定位关键: 当设备出现“无法建立通信”时,首先检查 HSMS 连接是否建立(TCP 三次握手是否完成);如果连接正常但无消息交互,则检查 SECS-II 层的 System Bytes 是否匹配;如果消息交互正常但设备行为异常,则检查 GEM 状态机是否处于正确的状态(例如设备在 PROCESSING 状态下拒绝远程命令是正常的)。

1.6 通信模型与典型交互流程

下图展示了一个典型的 SECS/GEM 通信建立与数据交换流程,从 TCP 连接到 GEM 状态初始化:

典型 SECS/GEM 通信建立与初始化流程 主机 (Host) 设备 (Equipment) 1. 监听端口 5000 TCP 监听 (Passive) 1. 发起连接 TCP 连接请求 2. 接受连接 TCP 三次握手完成 2. 连接建立 TCP 连接建立 3. 发送 S1F13 (请求设备 ID) S1F13 (W=1) 3. 回复 S1F14 (设备 ID) S1F14 (设备 ID=1) 4. 发送 S1F1 (请求状态) S1F1 (W=1) 4. 回复 S1F2 (状态数据) S1F2 (MDLN, SOFTREV) 5. GEM 初始化完成 GEM 状态: COMMUNICATING 5. GEM 初始化完成 GEM 状态: COMMUNICATING 💡 如果 S1F13 无回复(T3 超时),检查设备 SECS-II 处理线程是否阻塞;如果 S1F1 回复异常,检查设备固件版本兼容性。

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 配置错误