SECSGEM协议SML解析与消息事务处理实战 - 第1节
1. SECS/GEM协议概述
半导体制造是当今最精密、最复杂的工业流程之一。一片晶圆从裸片到成品芯片,需要经历数百道工艺步骤,包括光刻、刻蚀、沉积、离子注入、化学机械抛光等。在 300mm 晶圆厂中,单座工厂的投资动辄上百亿美元,设备数量超过数百台。在这样的环境下,人工搬运和手动数据录入已完全无法满足产能、良率和可追溯性的要求。
半导体工厂自动化(Factory Automation, FA)的核心目标是通过计算机系统将生产设备、物料搬运系统(AMHS)、制造执行系统(MES)紧密集成,实现晶圆在设备间的自动流转、工艺参数的自动下载、生产状态的实时监控以及异常事件的快速响应。这一集成依赖一个标准化的通信协议——SECS/GEM。
关键驱动力: 300mm 晶圆厂全面采用自动化搬运,设备必须支持 SECS/GEM 协议才能接入工厂网络。无协议支持的设备被视为“孤岛”,无法参与自动化生产。
1.2 SECS/GEM 协议栈关系
SECS/GEM 并非单一协议,而是一组分层定义的协议族。理解各层之间的关系是掌握整个协议栈的基础。下表列出了核心协议层次及其职责:
| 协议层 | 全称 | 主要职责 | 传输载体 |
|---|---|---|---|
| SECS-I | SEMI Equipment Communications Standard 1 | 定义 RS-232 串行通信的物理层和数据链路层规范,包括波特率、帧格式、块传输协议 | RS-232 串口线 |
| HSMS | High-Speed SECS Message Services | 定义基于 TCP/IP 网络的通信规范,替代 SECS-I 的串行传输,提供更高速、更可靠的连接 | TCP/IP 以太网 |
| SECS-II | SEMI Equipment Communications Standard 2 | 定义消息内容的结构和编码规则,即 SML(SECS Message Language)格式的消息体 | 承载于 SECS-I 或 HSMS 之上 |
| GEM | Generic Equipment Model | 定义设备行为模型、状态机、事件通知、报警管理、远程控制等通用功能场景 | 基于 SECS-II 消息实现 |
实践要点: 现代 300mm 晶圆厂几乎全部采用 HSMS + SECS-II + GEM 的组合。SECS-I 仅在老旧设备或特定 200mm 产线中保留。学习时建议直接聚焦 HSMS 和 SECS-II。
1.3 SML 语言简介
SML(SECS Message Language)是 SECS-II 协议中定义消息内容的描述语言。它采用类似 Lisp 的括号嵌套结构,以树形方式组织数据。SML 文件通常以 .sml 为扩展名,用于定义设备支持的消息集合(Message Set)以及每个消息内部的数据项结构。
SML 基本语法规则
- 消息定义: 以
S<stream>F<function>开头,例如S1F1表示 Stream 1, Function 1。 - 数据项: 使用
<format> [value]表示,例如<U4> [100]表示一个无符号 4 字节整数,值为 100。 - 列表: 使用
<L> [n]表示列表,n 为子元素个数,子元素可以是数据项或嵌套列表。 - 注释: 使用
/* ... */或//风格。
SML 核心价值: SML 是设备与主机之间“对话”的语法基础。解析 SML 文件是开发 SECS/GEM 通信库的第一步,也是本课程后续所有实战项目的前提。
以下是一个典型的 SML 消息定义示例,对应 SECS-II 标准中的 S1F1(Are You There 请求):
/* S1F1 - Are You There (ARE YOU THERE REQUEST) */
S1F1
<L> [0]
.
以及对应的响应消息 S1F2:
/* S1F2 - On Line Data (ARE YOU THERE DATA) */
S1F2
<L> [3]
<A> [MDLN] /* 设备型号 */
<A> [SOFTREV] /* 软件版本 */
<A> [DEVINFO] /* 设备信息 */
.
更复杂的消息包含嵌套列表和多层数据项,例如 S7F1(Process Program 请求):
/* S7F1 - Process Program Request (PP-REQUEST) */
S7F1
<L> [1]
<A> [PPID] /* 工艺程序 ID */
.
SML 与 SECS/GEM 的关系
SML 是 SECS-II 层的“语言载体”,而 GEM 则定义了“对话规则”。具体来说:
- SML 定义消息结构: 规定消息包含哪些数据项、数据项的类型和顺序。
- SECS-II 定义编码规则: 将 SML 描述的树形结构编码为二进制字节流,通过 HSMS 或 SECS-I 传输。
- GEM 定义消息语义: 规定在什么状态下发送什么消息、收到消息后如何响应、触发哪些事件。
常见误区: 初学者常将 SML 文件与 SECS/GEM 协议混为一谈。SML 只是消息的“模板”或“描述文件”,真正的通信过程涉及消息编码、事务握手、超时重传等复杂机制。本课程后续章节将逐一拆解这些环节。