1. SECS/GEM 协议概述:半导体工厂自动化标准、HSMS 与 SECS-I 物理层、GEM 核心功能

1.1 半导体工厂自动化的通信基石

在半导体与 FPD(平板显示)制造中,数百台工艺设备(如刻蚀机、光刻机、沉积设备)必须与工厂主机(Host)实时交换数据,以完成配方下发、参数采集、报警上报和批次控制。SECS/GEM 协议族正是为此场景设计的国际标准通信框架,由 SEMI(国际半导体设备与材料协会)制定并维护。

核心定位:SECS/GEM 不是单一协议,而是一套从物理层到应用层的分层标准,确保不同厂商的设备能够以统一语义与工厂自动化系统(MES / EAP)对接。

1.2 协议族分层架构

SECS/GEM 协议族从下至上分为三个层次,每一层解决不同的问题:

层次 标准编号 功能描述 典型传输介质
物理层 / 传输层 SECS-I (E4) 串行 RS-232C 半双工通信,定义帧格式、块传输与超时机制 RS-232C 电缆(15m以内)
网络层 / 传输层 HSMS (E37) 基于 TCP/IP 的以太网通信,替代 SECS-I 的串行链路 以太网(100Base-TX / 1GbE)
消息层 / 应用层 SECS-II (E5) 定义消息结构、数据项格式(SML)、流(Stream)与功能(Function)编码 逻辑消息载体
设备行为层 GEM (E30) 定义设备状态模型、事件通知、变量集合、远程控制等标准化行为 基于 SECS-II 消息
工程要点:在裸机环境下,通常先实现 SECS-I 或 HSMS 的物理收发,再在其上构建 SECS-II 消息解析器,最后挂载 GEM 状态机。RTOS 移植的核心任务之一就是将物理层中断处理与协议栈任务解耦。

1.3 HSMS 与 SECS-I 物理层对比

选择 HSMS 还是 SECS-I 取决于设备硬件接口与工厂网络架构。下表从嵌入式开发视角对比两者关键差异:

对比项 SECS-I (E4) HSMS (E37)
物理介质 RS-232C 串行线(DB9/DB25) 以太网(RJ45)
传输速率 9600 / 19200 bps(典型) 10/100/1000 Mbps
通信模式 半双工,主从轮询 全双工,TCP 连接
最大报文长度 254 字节(单块) 无限制(TCP 流分段)
连接管理 物理电平检测 TCP 连接建立/断开 + T5/T6/T7 超时
典型中断负载 每字节中断(UART) 每包中断(DMA + MAC)
RTOS 适配难点 字节超时 T1/T2 精确控制 TCP 粘包拆包 + 多连接状态机
SECS-I 与 HSMS 协议栈对比架构 SECS-I 协议栈 GEM (E30) — 设备行为模型 SECS-II (E5) — 消息编码/解码 SECS-I (E4) — RS-232C 帧收发 UART 驱动 / 中断处理 HSMS 协议栈 GEM (E30) — 设备行为模型 SECS-II (E5) — 消息编码/解码 HSMS (E37) — TCP/IP 会话管理 以太网 MAC / DMA 驱动 SECS-I 适用于低速串行设备;HSMS 适用于高速以太网设备,是当前主流方案

1.4 GEM 核心功能模型

GEM(Generic Equipment Model)定义了设备与主机之间标准化的交互行为,是 SECS/GEM 协议栈中与业务逻辑最贴近的一层。嵌入式开发者在移植时,必须实现以下核心功能集合:

  • 状态模型(State Model): 设备在 INIT、IDLE、SETUP、PROCESSING 等状态间迁移,主机通过消息查询或触发状态变更。
  • 事件通知(Event Notification): 设备主动向主机报告特定事件(如报警产生、配方结束、参数越限),使用 CEID(Collection Event ID)标识。
  • 变量集合(Variable Collection): 包括设备常量(EC)、状态变量(SV)、数据变量(DV),主机可读取或订阅。
  • 远程控制(Remote Command): 主机发送 S2F41(Remote Command)消息,设备执行启动、停止、暂停等操作。
  • 配方管理(Recipe Management): 主机向设备上传/下载工艺配方,设备存储并应用。
  • 报警管理(Alarm Management): 设备上报报警 ID、严重等级与描述文本,主机确认清除。
GEM 核心功能模块关系 GEM 通信引擎 状态模型 事件通知 变量集合 远程控制 配方管理 报警管理

1.5 嵌入式视角:协议栈移植的关键挑战

从裸机到 RTOS 的移植并非简单添加调度器,而是需要重新设计协议栈的任务边界与同步机制。以下是本课程后续章节将重点解决的几个核心问题:

  1. 中断与任务解耦: 裸机中物理层收发直接在 ISR 中完成;RTOS 下应将数据从 ISR 送入队列,由协议任务处理。
  2. 超时管理: SECS-I 的 T1(字符超时)、T2(块超时)以及 HSMS 的 T5/T6/T7 需要高精度定时器,RTOS 的软件定时器或硬件定时器任务可满足要求。
  3. 消息缓冲与流控: 多任务环境下,SECS-II 消息的组装与解析需要线程安全的环形缓冲区或消息队列。
  4. GEM 状态机并发: 设备状态迁移可能被多个主机命令同时触发,必须用互斥锁保护状态变量。
常见移植误区: 直接将裸机中的全局变量和轮询循环放入 RTOS 任务中,而不做临界区保护,会导致消息错乱、状态不一致甚至死锁。正确的做法是:每个协议层封装为独立任务,层间通过队列传递事件,通过信号量同步状态变更。

1.6 本章小结