1. SECS/GEM 协议概述:半导体设备自动化协议族

SECS/GEM 是半导体制造领域实现设备自动化与工厂主机(Host)通信的事实标准协议族。它由 SEMI(国际半导体设备与材料协会)制定,覆盖从物理连接、数据传输到设备行为建模的完整层次。理解 SECS/GEM 的分层架构,是后续进行数据抓包与 SML 解析的基础。

核心认知:SECS/GEM 并非单一协议,而是一组相互依赖的协议栈。抓包时看到的 TCP 报文、SECS-II 消息块、GEM 状态机,分别对应不同层次。

1.1 协议族全景:四个核心成员

SECS/GEM 协议族由四个主要标准组成,它们从下至上构成完整的通信栈:

标准 全称 层次定位 核心职责
SECS-I SEMI E4 物理层 / 链路层 RS-232 串行通信,定义帧格式、校验、重传
HSMS SEMI E37 传输层 TCP/IP 网络通信,替代 SECS-I 的串行链路
SECS-II SEMI E5 消息层 / 表示层 定义消息结构、数据类型(SML)、流/功能码
GEM SEMI E30 应用层 / 行为层 定义设备状态模型、事件报告、远程控制场景
实战提示:在 Wireshark 抓包中,HSMS 表现为 TCP 连接上的数据包;SECS-II 是 TCP 负载中的结构化二进制块;GEM 行为则体现在消息的流/功能码组合与状态转换中。

1.2 分层架构与依赖关系

SECS/GEM 采用严格的分层模型,上层依赖下层提供的服务。这种分层设计使得物理传输方式的变化(如从串口升级到以太网)不会影响上层的消息语义和设备行为。

SECS/GEM 协议分层架构 GEM (E30) — 应用层 / 行为模型 设备状态、事件报告、远程命令、报警管理 SECS-II (E5) — 消息层 SML 数据类型、流/功能码、消息结构、Item 编码 传输层 — HSMS (E37) / SECS-I (E4) TCP/IP 报文 或 RS-232 串行帧,块传输、校验、重传 物理层 — 以太网 / RS-232 线缆 依赖方向:上层依赖下层
常见误解:很多人将 HSMS 与 SECS-II 混为一谈。抓包时,HSMS 负责 TCP 连接的建立与维持(如 T3 超时、心跳),而 SECS-II 消息是 HSMS 报文中的负载(Data Message)。两者在 Wireshark 中属于不同的解析层级。

1.3 各协议层详细说明

1.3.1 SECS-I (E4) — 串行通信基石

  • 物理介质:RS-232 串行线缆,点对点连接。
  • 帧格式:长度字节 + 控制字节 + 数据块 + 校验和。
  • 特点:半双工、波特率通常为 9600/19200 bps、适用于短距离。
  • 现状:老旧设备仍在使用,新设备已全面转向 HSMS。

1.3.2 HSMS (E37) — 以太网传输标准

  • 传输层:基于 TCP/IP,默认端口 5000(主动模式)或 5001(被动模式)。
  • 报文类型:Data Message(携带 SECS-II 数据)、Select/Deselect/Reject(连接管理)、Linktest(心跳)。
  • 关键超时:T3(Reply Timeout)、T5(Connect Timeout)、T6(Control Timeout)、T7(Linktest Interval)。
  • 抓包特征:HSMS 报文前 4 字节为长度(Length),后跟 10 字节 HSMS 头部。

1.3.3 SECS-II (E5) — 消息语义定义

  • 消息结构:Stream(流) + Function(功能码),例如 S1F1、S2F41。
  • 数据类型:L(List)、B(Boolean)、A(ASCII)、I1/I2/I4/I8(整数)、F4/F8(浮点)、U1/U2/U4/U8(无符号整数)等。
  • SML 表示:SECS Message Language,人类可读的文本格式,用于描述 SECS-II 消息内容。
  • 抓包特征:Wireshark 解析 SECS-II 时,会显示 Stream/Function、Direction(Host→EQ 或 EQ→Host)、以及 Item 树。

1.3.4 GEM (E30) — 设备行为建模

  • 状态模型:定义设备从 INIT → NOT READY → READY → EXECUTING 等状态转换。
  • 场景集合:包括设备通信建立、远程控制、参数上传、报警管理、事件通知、配方管理。
  • 必备功能:GEM 规定了设备必须支持的最小功能集(如 S1F13/F14 通信建立、S2F41 远程命令)。
  • 实战意义:GEM 合规性测试是设备验收的关键环节,抓包分析可验证设备是否按标准响应。

1.4 协议栈数据封装关系

当一条 GEM 事件消息从设备发送到主机时,数据在协议栈中的封装过程如下:

  1. GEM 层:决定发送“事件报告”(例如 S6F11),构造 SECS-II 消息内容。
  2. SECS-II 层:将消息编码为二进制 Item 树(L, A, I4 等),加上 Stream/Function 头部。
  3. HSMS 层:将 SECS-II 二进制块作为 Data Message 的负载,添加 10 字节 HSMS 头部(Session ID, Message ID, 控制位等),再在前面加上 4 字节长度。
  4. TCP/IP 层:将 HSMS 报文作为 TCP 负载发送。
数据封装流程(从 GEM 到 TCP 报文) GEM 事件报告 (S6F11) SECS-II 二进制 Item 树 + Stream/Function 头部 HSMS 头部 (10B) + SECS-II 负载 → HSMS Data Message TCP 头部 + 4B 长度 + HSMS 报文 → 网络传输
抓包视角:在 Wireshark 中,你首先看到的是 TCP 报文。展开 TCP 负载后,可以看到 4 字节长度字段,接着是 10 字节 HSMS 头部。HSMS 头部中的 S/F 字段指向 SECS-II 的 Stream 和 Function。再往下展开,才是具体的 SECS-II Item 数据。理解这个封装层次,是正确解析 SML 的前提。

1.5 协议族版本与兼容性

标准 最新版本 向后兼容 备注
SECS-I (E4) E4-1-2020 是 仍用于部分 legacy 设备
HSMS (E37) E37-1-2021 是 主流传输方式,支持高速通信
SECS-II (E5) E5-1-2022 是 数据类型和消息结构基本稳定
GEM (E30) E30-1-2023 是 新增了部分场景定义,核心模型不变
实战建议:虽然版本在更新,但 SECS/GEM 的核心机制(如 S1F13/F14 通信建立、S6F11 事件报告)自 1990 年代以来几乎没有变化。抓包分析时,掌握 SML 语法和常见流/功能码,即可应对绝大多数场景。

1.6 本章小结

  • SECS/GEM 协议族由 SECS-I / HSMS(传输层)、SECS-II(消息层)、GEM(应用层)组成。
  • HSMS 基于 TCP/IP,是当前主流的传输方式;SECS-I 用于串行通信。
  • SECS-II 定义消息的流/功能码和 SML 数据类型,是抓包解析的核心对象。
  • GEM 定义设备行为模型,是设备自动化的“业务逻辑”。
  • 理解分层封装关系,是正确使用 Wireshark 进行 SECS/GEM 抓包分析的第一步。