1. SECS/GEM 协议概述:SECS-I、SECS-II、HSMS、GEM 标准的关系与分层架构

1.1 协议族全景

SECS/GEM 是半导体制造设备与上位主机(Host)之间进行数据通信与过程控制的事实标准,由国际半导体设备与材料协会(SEMI)制定。整个协议族并非单一协议,而是由四个核心标准组成的分层体系:

标准编号 名称 层级 核心职责
SEMI E4 SECS-I 传输层 / 物理层 定义 RS-232 串行通信的电气特性、报文帧格式与半双工传输机制
SEMI E5 SECS-II 会话层 / 表示层 定义消息结构、数据类型(Item)、流(Stream)与功能(Function)编码规则
SEMI E37 HSMS 传输层 基于 TCP/IP 的高速消息传输,替代 SECS-I 的串行物理层
SEMI E30 GEM 应用层 定义设备行为模型、状态机、事件报告、报警、远程控制等通用功能
关键认知:SECS-I 与 HSMS 是互斥的传输层选项,二选一;SECS-II 是统一的报文语言;GEM 是建立在 SECS-II 之上的应用行为规范。四者共同构成“物理/传输 → 报文 → 行为”的完整协议栈。

1.2 分层架构与数据流

下图展示了 SECS/GEM 协议栈的典型分层结构,以及一条设备消息从应用层到物理层的封装过程:

SECS/GEM 协议分层架构与数据封装流程 SECS/GEM 协议分层架构与数据封装流程 GEM 应用层 SEMI E30 状态机 / 事件 / 报警 / 远程命令 SECS-II 报文层 SEMI E5 Stream / Function / Item 编码 SECS-I SEMI E4 RS-232 串行 HSMS SEMI E37 TCP/IP 网络 物理层 RS-232 线缆 / 以太网 原始数据 例如:设备状态、测量值、报警码 SECS-II 消息体 S1F1 / S6F11 / S2F41 等 Stream-Function 编码 传输层帧头 SECS-I 块头 / HSMS 消息头(长度+会话ID+标志) 物理帧 串行字节流 / TCP 报文段 封装方向: 设备应用(GEM)→ SECS-II 编码 → 传输层打包(SECS-I 块或 HSMS 消息头)→ 物理层发送 接收端反向解包:物理层 → 传输层解析 → SECS-II 解码 → GEM 回调处理 日志分析时,通常从传输层帧头开始逐层剥离,定位故障发生在哪一层。

1.3 各标准详解

1.3.1 SECS-I(SEMI E4)— 串行传输基石

  • 物理介质:RS-232 串行线缆,半双工通信,波特率通常为 9600 bps。
  • 报文格式:以块(Block)为单位,每块包含长度字节、块号、系统字节和最多 254 字节数据。
  • 特点:传输距离短(约 15 米),速度慢,但抗干扰能力强,早期设备广泛使用。
  • 现状:新设备已基本淘汰,但大量存量设备仍在产线运行,日志中常见 "Block"、"ENQ"、"ACK/NAK" 等关键词。

1.3.2 HSMS(SEMI E37)— 高速网络传输

  • 物理介质:TCP/IP 以太网,支持主动连接(Active)和被动连接(Passive)两种模式。
  • 消息头格式:固定 10 字节,包含消息长度、会话 ID、头部字节(Header Byte 1/2)、系统字节等。
  • 优势:传输速率高(100 Mbps 以上),支持长距离、多设备并发连接。
  • 日志特征:HSMS 日志中常见 "Connect"、"Disconnect"、"Select"、"Data"、"Reject" 等控制消息。
故障定位要点:HSMS 连接失败是 GEM 通信中最常见的故障之一。检查 TCP 端口号(默认 5000)、IP 地址、Select 请求/响应是否匹配,是排故的第一步。

1.3.3 SECS-II(SEMI E5)— 通用报文语言

SECS-II 定义了设备与主机之间所有消息的语法和语义,是协议栈中最核心的“语言层”。

  • 消息标识:使用 S<Stream>F<Function> 格式,例如 S1F1(Are You There 请求)、S1F2(On-Line Data 响应)。
  • 数据类型(Item):支持布尔(Boolean)、整数(I1/I2/I4/I8)、浮点(F4/F8)、字符串(ASCII/UTF-8)、列表(List)等。
  • 消息方向:主设备发起的消息称为 Primary Message,响应消息称为 Secondary Message。
  • W-Bit 机制:Primary 消息中 W=1 表示需要对方回复,W=0 表示不需要回复(即 Fire-and-Forget)。
// SECS-II 消息示例(S1F1 请求与 S1F2 响应)
// Primary: S1F1 W
// Secondary: S1F2 <L>
//   <A>MDX-3000</A>   // 设备型号
//   <A>Rev 2.1.0</A>  // 软件版本
// </L>

1.3.4 GEM(SEMI E30)— 设备行为模型

GEM 标准定义了设备必须支持的一组通用功能,确保不同厂商的设备能够以统一的方式与主机交互。GEM 的核心功能模块包括:

功能模块 描述 典型 SECS-II 消息
设备状态机 定义设备在通信中的状态(INIT、ENABLED、DISABLED 等)及状态转换规则 S1F1/S1F2, S1F13/S1F14
事件报告 设备主动向主机报告特定事件(如加工完成、报警触发) S6F11/S6F12, S6F15/S6F16
报警管理 设备向主机发送报警信息,主机可确认或清除报警 S5F1/S5F2, S5F3/S5F4
远程命令 主机向设备发送控制指令(如启动、停止、暂停) S2F41/S2F42
数据收集 主机按需或周期性地收集设备的过程数据 S2F13/S2F14, S2F23/S2F24
变量管理 设备暴露状态变量(SV)、数据变量(DV)、设备常量(EC)供主机读写 S1F3/S1F4, S2F29/S2F30

1.4 四者关系总结

下图以“协议栈”视角直观展示 SECS-I、SECS-II、HSMS、GEM 之间的依赖与协作关系:

SECS/GEM 四标准关系图 SECS/GEM 四标准关系图 GEM(SEMI E30) 应用行为模型:状态机、事件、报警、远程命令 SECS-II(SEMI E5) 报文语言:Stream/Function、Item 数据类型 SECS-I(E4) RS-232 串行传输 HSMS(E37) TCP/IP 网络传输 依赖 SECS-II 报文 二选一传输通道 二选一传输通道 核心关系:GEM 定义“做什么”,SECS-II 定义“怎么说”,SECS-I/HSMS 定义“怎么传”。

1.5 日志分析视角下的分层意义

在实际的 SECS/GEM 日志解析与故障定位工作中,理解分层架构能够帮助工程师快速缩小问题范围:

  1. 物理/传输层故障:日志中反复出现 Connect Timeout、Disconnect、NAK、Block Retry 等关键词,优先检查线缆、IP 配置、端口号、防火墙。
  2. SECS-II 报文层故障:日志中出现 Invalid Stream、Function Not Supported、Item Format Error,说明消息编码或解码出错,需检查设备与主机的 SECS-II 版本兼容性。
  3. GEM 应用层故障:日志中通信正常(无传输层错误),但设备状态不切换、事件不报告、远程命令无响应,说明 GEM 状态机或功能实现有缺陷。
常见误区:不要一看到日志中有 "Error" 就认为是 GEM 层问题。先确认传输层是否稳定(HSMS Select 是否成功、SECS-I 块是否完整),再逐层向上排查。分层定位是日志分析的第一原则。

1.6 本章小结

  • SECS/GEM 协议族由 SECS-I(E4)、SECS-II(E5)、HSMS(E37)、GEM(E30) 四个标准组成。
  • 四者构成 物理/传输层 → 报文层 → 应用层 的分层架构,层与层之间通过标准接口解耦。
  • SECS-I 与 HSMS 是互斥的传输层选项,SECS-II 是统一的报文语言,GEM 是设备行为规范。
  • 日志分析时,应遵循 从底层到顶层 的排查顺序,先确认传输层健康,再检查报文层,最后定位应用层问题。