1. SECS/GEM 协议概述

SECS/GEM(SEMI Equipment Communications Standard / Generic Equipment Model)是半导体制造设备与工厂主机(Host)之间进行数据通信与状态管理的行业标准协议族。它定义了从物理层到应用层的完整通信栈,是半导体工厂自动化(EAP、MES)的基石。

1.1 协议栈结构:HSMS 与 SECS-I

SECS/GEM 协议栈分为物理层、传输层、消息层和应用层。根据物理介质的不同,传输层分为两种主流实现:HSMS(High-Speed SECS Message Services) 和 SECS-I(RS-232)。

层级 SECS-I(传统串口) HSMS(高速以太网)
物理层 RS-232 串口,波特率 9600 / 19200 bps TCP/IP 以太网,100 Mbps / 1 Gbps
传输层 SECS-I 块传输协议(Block Protocol) HSMS 会话管理 + TCP 流传输
消息层 SECS-II 消息格式(Stream & Function)
应用层 GEM 模型(状态机、变量、事件、报警)
关键区别:HSMS 基于 TCP/IP,支持多会话、高速传输和远程连接;SECS-I 基于 RS-232,适用于单点低速串口设备。现代 300mm 晶圆厂几乎全部采用 HSMS。
协议栈记忆口诀:“物理传消息,应用看 GEM”——物理层选串口或以太网,传输层负责拆包/组包,消息层定义业务指令,应用层规范设备行为。
SECS/GEM 协议栈分层架构 SECS/GEM 协议栈分层架构 应用层:GEM 模型(状态机、变量、事件、报警) 消息层:SECS-II(Stream & Function 消息格式) 传输层:HSMS(TCP/IP 会话管理) 传输层:SECS-I(RS-232 块传输) 物理层:TCP/IP 以太网 物理层:RS-232 串口 说明:HSMS 和 SECS-I 在消息层以上完全兼容,应用层 GEM 模型统一。 现代工厂以 HSMS 为主,SECS-I 仅用于老旧设备或调试场景。

1.2 消息类型:Primary 与 Secondary

SECS-II 消息以 Stream(流) 和 Function(功能) 编号唯一标识,例如 S1F13、S2F41。在通信交互中,消息分为两种角色:

  • Primary Message(主消息):发起方主动发送的请求消息。例如 Equipment 发送 S1F13 请求建立通信,或 Host 发送 S2F41 请求设备参数。
  • Secondary Message(次消息):接收方对 Primary 的回复消息。消息编号为对应 Primary 的 Function 号 + 1。例如 S1F14 是 S1F13 的回复,S2F42 是 S2F41 的回复。
方向 消息类型 示例 说明
Host → Equipment Primary S2F41 (Host Command) Host 请求设备执行某个命令
Equipment → Host Secondary S2F42 (Command Acknowledge) 设备回复命令执行结果
Equipment → Host Primary S6F11 (Event Report) 设备主动上报事件数据
Host → Equipment Secondary S6F12 (Event Acknowledge) Host 确认收到事件报告
容错要点:Primary 消息必须等待对应的 Secondary 回复,超时未收到回复时应触发重传或会话重置。Secondary 消息不能独立存在,必须与 Primary 成对出现。
Primary / Secondary 消息交互时序 Primary / Secondary 消息交互时序 Host(主机) Equipment(设备) S2F41 (Primary) — Host Command S2F42 (Secondary) — Command Acknowledge S6F11 (Primary) — Event Report S6F12 (Secondary) — Event Acknowledge 规则:Primary 的 Function 号为偶数时,Secondary 为奇数;反之亦然。例如 S1F13(P) → S1F14(S)。 超时未收到 Secondary 视为通信异常,需触发容错机制。

1.3 会话建立流程

HSMS 会话建立是设备与 Host 通信的第一步,分为 主动模式(Active) 和 被动模式(Passive)。以最常见的设备主动连接 Host 为例,完整流程如下:

  1. TCP 连接建立:设备(Active)向 Host(Passive)的指定端口(默认 5000)发起 TCP 三次握手。
  2. HSMS 会话请求:设备发送 Select.req 消息,请求建立 HSMS 会话。
  3. HSMS 会话确认:Host 回复 Select.rsp,携带状态码 0(成功)或非零(失败)。
  4. 通信测试(Link Test):双方定期发送 Linktest.req / Linktest.rsp 检测连接活性。
  5. GEM 通信建立:设备发送 S1F13(Establish Communication Request),Host 回复 S1F14 确认,进入在线状态。
步骤 消息方向 消息内容 超时(典型值)
1 设备 → Host TCP SYN 10 s
2 设备 → Host Select.req 5 s
3 Host → 设备 Select.rsp (Status=0) —
4 设备 → Host S1F13 45 s
5 Host → 设备 S1F14 —
容错关注点:步骤 2 和步骤 4 是常见超时故障点。Select.req 失败通常由端口未监听或防火墙导致;S1F13 超时可能由 GEM 配置不匹配引起。生产环境中建议将 Select.req 超时设为 5s,S1F13 超时设为 45s,并至少重试 3 次。
HSMS 会话建立流程 HSMS 会话建立流程(设备主动模式) 设备 (Active) Host (Passive) ① TCP 三次握手 (端口 5000) ② Select.req (请求建立 HSMS 会话) ③ Select.rsp (Status=0 成功) ④ S1F13 (Establish Communication Request) ⑤ S1F14 (Establish Communication Acknowledge) ✅ 会话建立成功,进入在线状态 说明:Select.req 超时(5s)或 S1F13 超时(45s)均会导致会话建立失败。 生产环境建议:TCP 连接超时 10s,Select.req 重试 3 次,S1F13 重试 2 次。 Link Test 心跳间隔默认 30s,连续 3 次无响应则判定会话断开。

1.4 小结

本章介绍了 SECS/GEM 协议的核心概念:

  • 协议栈结构:HSMS(以太网)与 SECS-I(串口)在传输层分叉,消息层和应用层统一。
  • 消息类型:Primary 为主动请求,Secondary 为被动回复,两者成对出现,Function 号相差 1。
  • 会话建立流程:TCP 连接 → Select.req/rsp → S1F13/S1F14,每一步都有明确的超时和重试策略。