SML解析器与SECS-II消息事务处理开发 - 第1节

1. SECS/GEM协议概述

半导体制造是当今最精密、最复杂的工业流程之一。一片晶圆从裸片到成品芯片,需要经历数百道工艺步骤,包括光刻、刻蚀、沉积、离子注入、化学机械抛光等。在 300mm 晶圆厂中,单座工厂的投资动辄上百亿美元,设备数量超过数百台。在这样的环境下,人工搬运和手动数据录入已完全无法满足产能、良率和可追溯性的要求。

半导体工厂自动化(Factory Automation, FA)的核心目标是通过计算机系统将生产设备、物料搬运系统(AMHS)、制造执行系统(MES)紧密集成,实现晶圆在设备间的自动流转、工艺参数的自动下载、生产状态的实时监控以及异常事件的快速响应。这一集成依赖一个标准化的通信协议——SECS/GEM。

关键驱动力: 300mm 晶圆厂全面采用自动化搬运,设备必须支持 SECS/GEM 协议才能接入工厂网络。无协议支持的设备被视为“孤岛”,无法参与自动化生产。
半导体工厂自动化分层架构 制造执行系统 (MES) 设备自动化程序 (EAP) / APC 刻蚀机 光刻机 沉积设备 SECS/GEM 协议栈位于设备与 EAP 之间,提供标准化的消息格式和通信机制 MES 通过 EAP 间接控制设备,EAP 承担协议转换与事务管理职责

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。
SECS/GEM 协议栈分层模型 GEM (Generic Equipment Model) 设备行为模型 · 状态机 · 事件 · 报警 · 远程控制 SECS-II (Message Content) SML 格式 · 消息编码 · 数据项 · 事务管理 HSMS TCP/IP · 高速 · 可靠 SECS-I RS-232 · 串行 · 低速 以太网 / TCP/IP RS-232 串口 SECS-II 消息可同时承载于 HSMS 或 SECS-I 之上,GEM 则定义消息的使用场景

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 消息树形结构示例 (S1F2) S1F2 L [3] A [MDLN] A [SOFTREV] A [DEVINFO] SML 采用树形结构:根节点为消息 ID,中间节点为列表 (L),叶子节点为具体数据项 每个数据项由格式 (A=ASCII, U4=无符号整数, B=布尔等) 和值组成

SML 与 SECS/GEM 的关系

SML 是 SECS-II 层的“语言载体”,而 GEM 则定义了“对话规则”。具体来说:

  • SML 定义消息结构: 规定消息包含哪些数据项、数据项的类型和顺序。
  • SECS-II 定义编码规则: 将 SML 描述的树形结构编码为二进制字节流,通过 HSMS 或 SECS-I 传输。
  • GEM 定义消息语义: 规定在什么状态下发送什么消息、收到消息后如何响应、触发哪些事件。
常见误区: 初学者常将 SML 文件与 SECS/GEM 协议混为一谈。SML 只是消息的“模板”或“描述文件”,真正的通信过程涉及消息编码、事务握手、超时重传等复杂机制。本课程后续章节将逐一拆解这些环节。

本章小结