1. SECS/GEM 协议概述:SECS-I、HSMS、SECS-II、GEM 标准的关系与分层架构
SECS/GEM 协议族是半导体制造设备与上位主机(Host)之间进行通信和数据交换的国际标准协议族,由 SEMI(国际半导体设备与材料协会)制定。理解其分层架构和四个核心标准之间的关系,是掌握调试工具选型与抓包分析的基础。
核心认知:SECS/GEM 并非单一协议,而是一个由传输层、消息层和应用层组成的协议栈。调试时,不同层级的错误需要不同的工具和分析方法。
1.1 协议分层架构总览
SECS/GEM 协议族遵循清晰的分层模型,从物理连接到业务逻辑,共分为四层。下图展示了各标准在协议栈中的位置及其对应关系:
1.2 四个核心标准详解
SECS/GEM 协议族由四个核心 SEMI 标准组成,每个标准负责协议栈中一个特定层次的功能定义。
| 标准编号 | 标准名称 | 层级 | 传输方式 | 主要职责 |
|---|---|---|---|---|
| SEMI E4 | SECS-I | 传输层 | RS-232 串口 | 定义串行通信的帧格式、块传输协议、校验与重传机制 |
| SEMI E37 | HSMS | 传输层 | TCP/IP 以太网 | 定义基于 TCP 连接的消息传输、会话管理与连接状态机 |
| SEMI E5 | SECS-II | 消息层 | 独立于传输 | 定义消息结构、Item 数据类型、流(Stream)与功能码(Function) |
| SEMI E30 | GEM | 应用层 | 基于 SECS-II | 定义设备行为模型、状态机、事件通知、变量集合等业务场景 |
调试提示:在抓包分析时,HSMS 报文可以看到 TCP 层的信息(如序列号、长度),而 SECS-II 报文则需要在 HSMS 数据载荷中进一步解析。GEM 层面的错误通常表现为状态机异常或场景逻辑不匹配,需要结合设备日志分析。
1.3 SECS-I 与 HSMS:两种传输层协议
SECS-I 和 HSMS 都位于传输层,但面向不同的物理介质和应用场景。现代半导体工厂已基本转向 HSMS,但老旧设备仍可能使用 SECS-I。
SECS-I(SEMI E4)
- 物理层:RS-232 串口,通常使用 9600 bps 或 19200 bps 波特率。
- 帧结构:以块(Block)为单位,每个块包含长度、块号、EB(Envelope Block)标志、数据和校验和。
- 特点:半双工通信,需要应答确认,传输速度慢,距离受限。
- 调试工具:串口监听器(如 AccessPort、ComMonitor),需关注波特率、数据位、停止位配置。
HSMS(SEMI E37)
- 物理层:TCP/IP 以太网,通常使用端口号 5000 或 5001。
- 帧结构:基于 TCP 流,使用 T3 定时器控制消息超时,使用 T5 定时器控制连接间隔。
- 特点:全双工通信,支持多会话,传输速度快,易于网络管理。
- 调试工具:Wireshark、Tcpdump,需过滤 TCP 端口并解析 HSMS 头部。
1.4 SECS-II:消息层核心
SECS-II(SEMI E5)定义了设备与主机之间交换消息的格式和编码规则,是独立于传输层的标准。无论底层使用 SECS-I 还是 HSMS,SECS-II 的消息结构保持一致。
SECS-II 消息结构
- Stream(流)与 Function(功能码):每条消息由 SxFy 标识,例如 S1F13 表示 Stream 1 Function 13(请求设备 ID)。
- W-bit(等待位):指示发送方是否需要接收方回复(Reply Required)。
- Item 数据结构:消息体由 Item 组成,Item 包含数据格式(如 ASCII、U2、I4、F8、LIST)和实际数据。
- 嵌套结构:Item 可以嵌套,LIST 类型用于组合多个子 Item。
常见调试陷阱:SECS-II 消息的 Item 编码采用大端序(Big-Endian),且长度字段为 3 字节。在抓包分析时,如果解析工具未正确处理字节序,会导致数据值完全错误。务必确认调试工具支持大端序解析。
常见 Stream 与 Function 示例
| 消息 ID | 方向 | 描述 | 典型用途 |
|---|---|---|---|
| S1F13 | Host → Eq | 请求设备 ID | 建立通信时的身份确认 |
| S1F14 | Eq → Host | 返回设备 ID | 响应 S1F13 |
| S6F11 | Eq → Host | 事件报告发送 | 设备状态变化通知 |
| S2F41 | Host → Eq | 发送远程命令 | 控制设备执行动作 |
| S7F19 | Host → Eq | 请求配方列表 | 查询设备可用配方 |
1.5 GEM:应用层行为模型
GEM(Generic Equipment Model,SEMI E30)建立在 SECS-II 之上,定义了设备在通信过程中的行为规范,包括状态机、事件通知、变量管理、报警处理等。
GEM 核心概念
- 设备状态机:定义设备从初始化到运行、空闲、停止等状态的转换规则。
- 事件(Event):设备状态变化时主动上报给主机,例如“加工完成”、“报警触发”。
- 变量(Variable):包括状态变量(SV)、设备变量(DV)、数据变量(V)等,用于描述设备当前状态。
- 远程命令(Remote Command):主机通过 S2F41 发送命令,设备执行后返回结果。
- 配方管理(Recipe Management):支持配方上传、下载、选择等操作。
1.6 协议栈数据封装过程
当设备发送一条消息时,数据从应用层向下逐层封装。理解封装过程有助于在抓包时快速定位问题所在层级。
- GEM 层:生成业务数据,如事件报告内容、变量值列表。
- SECS-II 层:将业务数据编码为 Item 结构,添加 Stream、Function、W-bit 等头部信息,形成 SECS-II 消息体。
- HSMS 层:在 SECS-II 消息体前添加 HSMS 头部(包含会话 ID、消息长度、头部字节等),形成 HSMS 消息。
- TCP 层:将 HSMS 消息作为 TCP 载荷发送,TCP 协议负责分段、重传和流量控制。
- IP 层:封装 IP 头部,进行路由寻址。
- 以太网层:添加 MAC 地址和帧校验序列(FCS),发送到物理介质。
抓包分析要点:在 Wireshark 中抓取 HSMS 通信时,需要关注 TCP 载荷的起始位置。HSMS 头部固定为 4 字节(会话 ID 2 字节 + 头部字节 1 字节 + 保留字节 1 字节),其后紧跟 4 字节的消息长度,然后是 SECS-II 消息体。解析时需跳过 TCP 头部和 HSMS 头部,才能正确提取 SECS-II 内容。
1.7 标准关系总结
四个标准之间的关系可以用“依赖与扩展”来概括:
- SECS-I / HSMS 提供传输通道,解决“如何传”的问题。
- SECS-II 定义消息格式,解决“传什么”的问题。
- GEM 定义业务行为,解决“为什么传”和“传了之后怎么办”的问题。
- GEM 依赖于 SECS-II,SECS-II 可以运行在 SECS-I 或 HSMS 之上。
- 在调试时,底层问题(如连接断开、超时)通常出在 HSMS/SECS-I 层;消息解析错误出在 SECS-II 层;业务逻辑异常出在 GEM 层。
| 层次 | 标准 | 常见问题 | 调试方法 |
|---|---|---|---|
| 应用层 | GEM (E30) | 状态机不匹配、事件未触发、命令无响应 | 设备日志、GEM 状态机跟踪 |
| 消息层 | SECS-II (E5) | Item 解析错误、长度不匹配、格式异常 | SECS-II 解析器、协议分析仪 |
| 传输层 | HSMS (E37) / SECS-I (E4) | 连接超时、重传过多、数据丢包 | Wireshark、串口监听器 |