1. SECS/GEM 概述
1.1 半导体工厂自动化背景
半导体制造是当今最精密、最复杂的离散制造过程之一。一片晶圆从裸片到成品需要经历数百道工艺步骤,包括光刻、刻蚀、沉积、离子注入、化学机械抛光等。在 200mm 及以下晶圆厂时代,设备操作主要依赖人工搬运和手动参数设定,效率低、良率不稳定、可追溯性差。
进入 300mm 晶圆时代,工厂自动化成为必然趋势。核心驱动力包括:
- 晶圆搬运自动化:采用天车系统(OHT)和自动物料搬运系统(AMHS),减少人为污染和搬运损伤。
- 工艺参数自动下载:设备从主机系统自动获取配方(Recipe),避免人工输入错误。
- 实时数据采集:设备运行状态、工艺参数、报警信息需实时上报,用于过程控制和良率分析。
- 可追溯性要求:每片晶圆的历史加工数据必须完整记录,满足质量审计和缺陷分析需求。
关键概念: 半导体工厂自动化水平通常用"自动化成熟度模型"衡量,从 Level 0(完全人工)到 Level 5(全自动无人工干预)。SECS/GEM 是实现 Level 3 以上自动化的基础通信手段。
在典型的 300mm 自动化工厂中,设备前端模块(EFEM)负责晶圆装载,工艺腔室执行加工,而所有设备都必须通过标准化的通信协议与上层系统交互。这种标准化需求催生了 SECS/GEM 协议。
1.2 SECS/GEM 协议在 EAP 与 MES 中的作用
在半导体工厂的自动化系统架构中,SECS/GEM 协议位于设备与上层系统之间的通信层。理解其作用需要先明确两个关键系统:EAP(Equipment Automation Program,设备自动化程序)和MES(Manufacturing Execution System,制造执行系统)。
| 系统 | 位置 | 主要职责 | 与 SECS/GEM 的关系 |
|---|---|---|---|
| MES | 工厂级 | 工单管理、物料追踪、工艺规范下发、数据汇总 | 通过 EAP 间接与设备通信,不直接处理 SECS/GEM 报文 |
| EAP | 设备群级 | 设备控制、配方管理、数据采集、报警处理 | 直接实现 SECS/GEM 主机端,是设备与 MES 之间的桥梁 |
| 设备 | 车间级 | 执行工艺加工、上报状态、响应控制指令 | 内置 SECS/GEM 设备端(Equipment Side),通过物理连接与 EAP 通信 |
SECS/GEM 在 EAP 与 MES 中的具体作用可以归纳为:
- 在 EAP 中:EAP 作为 SECS/GEM 主机(Host),负责建立与设备的会话、发送控制指令(如启动加工、下载配方)、接收设备事件(如加工完成、报警触发)、采集工艺参数(如温度、压力、流量)。EAP 将设备数据转换为 MES 可理解的业务语义。
- 在 MES 中:MES 不直接解析 SECS/GEM 报文,而是通过 EAP 提供的接口(通常为 Web Service、MQ 或数据库)获取设备状态和加工结果。MES 向 EAP 下发生产计划,EAP 再通过 SECS/GEM 转化为设备指令。
实践要点: 在 EAP 开发中,SECS/GEM 协议栈通常作为独立模块封装。EAP 核心业务逻辑(如配方匹配、载具验证)与协议栈之间通过内部接口解耦,便于协议版本升级或设备型号适配。
下图展示了 SECS/GEM 在工厂自动化架构中的位置与数据流向:
1.3 协议栈整体架构
SECS/GEM 协议栈并非单一协议,而是一组分层定义的协议族。从物理层到应用层,每一层都有明确的职责和标准。理解协议栈的整体架构是开发 EAP 和 MES 集成接口的基础。
协议栈由以下四个主要层次组成:
| 层次 | 协议/标准 | 主要职责 | 典型实现 |
|---|---|---|---|
| 物理层 | RS-232 / TCP/IP | 定义电气特性、连接方式、数据传输介质 | 串口线(旧)、以太网(主流) |
| 传输层 | HSMS(SECS-II over TCP/IP) | 建立/管理连接、报文分帧、流量控制、心跳检测 | HSMS 主动/被动模式 |
| 消息层 | SECS-II(SEMI E5) | 定义消息格式、数据项编码、流(Stream)和功能(Function)分类 | S1F1 ~ SxFy 标准消息 |
| 应用层 | GEM(SEMI E30) | 定义设备行为模型、状态机、事件报告、报警管理、配方管理 | GEM 状态模型、Collection Events |
各层之间的依赖关系如下:
- 物理层提供最基础的比特流传输能力。早期设备使用 RS-232 串口,现代设备几乎全部采用 TCP/IP 以太网。
- HSMS(High-Speed SECS Message Services)在 TCP/IP 之上实现可靠的消息传输,负责连接建立、断开、心跳保活和消息分帧。HSMS 定义了主动(Active)和被动(Passive)两种连接角色。
- SECS-II(SEMI E5)是消息层标准,定义了消息的结构——每个消息由 Stream Number 和 Function Number 唯一标识(如 S1F1 是"Are You There"请求)。数据项使用 SECS-II 数据类型(如 ASCII、U1、U2、F4、List)编码。
- GEM(Generic Equipment Model,SEMI E30)是应用层标准,定义了设备必须支持的行为集合,包括状态机、事件通知、报警管理、配方管理、数据变量等。GEM 使得不同厂商的设备可以用统一的方式被控制。
常见误区: 很多初学者将 SECS 和 GEM 混为一谈。实际上,SECS(包含 HSMS 和 SECS-II)是通信协议,定义"如何通信";GEM 是设备行为模型,定义"通信什么内容"。一个完整的实现必须同时包含 SECS 和 GEM。
下图展示了 SECS/GEM 协议栈的分层架构及各层之间的数据封装关系:
在实际开发中,协议栈各层的实现方式有所不同:
- 物理层和传输层通常由操作系统或第三方通信库提供(如 Socket API、串口库),开发者只需配置 IP 地址、端口号、连接模式等参数。
- SECS-II 消息层需要开发者实现消息的编码和解码,包括数据项的类型转换、消息头的组装和解析。许多商业协议栈(如 Cimetrix、GEM300)提供了现成的 SECS-II 编解码库。
- GEM 应用层是开发工作量最大的部分,需要实现设备状态机、事件管理、报警管理、配方管理等业务逻辑。GEM 标准定义了设备必须支持的能力集合(Capabilities),开发者需要根据设备类型选择实现。