4. SECS-II 消息结构:Stream 与 Function 定义,Message ID 编码规则,数据项格式
SECS-II(SEMI E5)是 SECS/GEM 协议栈中定义消息内容与数据格式的层。在薄膜沉积设备(PVD/CVD/ALD)的通信中,SECS-II 负责将设备状态、工艺参数、报警信息等封装为结构化的消息。理解 Stream、Function、Message ID 以及数据项格式,是进行设备端与主机端(Host)应用层开发的基础。
4.1 Stream 与 Function 定义
SECS-II 消息由一对数字唯一标识:Stream (S) 和 Function (F)。Stream 定义消息的类别或功能域,Function 定义该类别下的具体操作。消息方向由 Function 的奇偶性决定:
- Primary Message (主消息):Function 为奇数,由发起方(通常是 Host 或 Equipment)主动发送。
- Secondary Message (副消息):Function 为偶数,是对 Primary Message 的响应或确认。
以下是薄膜沉积场景中常用的 Stream 定义:
| Stream | 名称 | 薄膜沉积场景典型用途 |
|---|---|---|
| S1 | 设备状态与控制 | 设备在线/离线切换、远程控制模式、时间请求 |
| S2 | 设备诊断与维护 | 腔体压力、温度、RF 功率等实时数据采集 |
| S5 | 报警管理 | 工艺腔体真空失效、气体流量异常、温度超限报警 |
| S6 | 数据上报 | 每片晶圆沉积厚度、均匀性、颗粒计数等工艺结果 |
| S7 | 配方管理 | 下载/上传/删除工艺配方(Process Recipe) |
| S10 | 终端服务 | 操作员界面消息、设备日志文本传输 |
4.2 Message ID 编码规则
每个 SECS-II 消息在传输层(HSMS 或 RS-232)中通过 Message ID 进行唯一标识和匹配。Message ID 由以下三部分组成:
- Device ID (设备 ID):7 位二进制数,用于区分同一链路上的多个设备。在薄膜沉积设备中,通常一台设备对应一个 Device ID(如 1)。
- Stream 与 Function 编码:Stream 占 1 字节,Function 占 1 字节。例如 S1F1 编码为 0x01 0x01。
- Wait Bit (等待位):1 位标志,指示发送方是否期望收到回复。0 表示需要回复(Reply Expected),1 表示不需要回复(No Reply)。
Message ID 在消息头(Message Header)中的编码结构如下:
字节 0: Device ID (高7位) + Wait Bit (最低位)
字节 1: Stream 编号 (0x00 - 0xFF)
字节 2: Function 编号 (0x00 - 0xFF)
字节 3: 保留字节 (通常为 0x00)
例如,Host 向 Device ID=1 的设备发送 S1F1(Are You There 请求,需要回复):
Device ID = 1 (二进制 0000001)
Wait Bit = 0 (需要回复)
字节 0 = (Device ID << 1) | Wait Bit = (1 << 1) | 0 = 0x02
字节 1 = 0x01 (Stream 1)
字节 2 = 0x01 (Function 1)
字节 3 = 0x00
Message ID = 0x02 0x01 0x01 0x00
4.3 数据项格式 (Data Item Format)
SECS-II 的数据项(Data Item)是消息体(Message Body)中的基本数据单元。每个数据项由 格式码 (Format Code)、长度 (Length) 和 数据值 (Value) 三部分组成。SEMI E5 定义了多种标准格式,用于表示整数、浮点数、字符串、列表等。
以下是薄膜沉积设备中最常用的数据项格式:
| 格式码 | 名称 | 字节数 | 薄膜沉积场景示例 |
|---|---|---|---|
| 0x00 | List | 可变 | 封装一组工艺参数(温度、压力、时间) |
| 0x10 | Binary (B) | 1 | 开关状态、阀门位置(开/关) |
| 0x20 | Boolean (BOOLEAN) | 1 | 腔体门锁状态、互锁状态 |
| 0x30 | ASCII (A) | 可变 | 配方名称、报警文本、操作员消息 |
| 0x40 | Signed Integer (I1/I2/I4/I8) | 1/2/4/8 | 温度偏差值、压力补偿值 |
| 0x50 | Unsigned Integer (U1/U2/U4/U8) | 1/2/4/8 | 晶圆计数、工艺步骤编号、RF 功率设定值 |
| 0x60 | Floating Point (F4/F8) | 4/8 | 沉积速率 (Å/s)、腔体压力 (Torr)、温度 (°C) |
数据项的编码规则遵循 TLV(Type-Length-Value)结构。以传输一个 4 字节浮点数(F4)为例:
格式码: 0x64 (F4 的编码,0x60 | 0x04)
长度: 0x04 (4 字节)
数据值: 0x42 0x48 0x00 0x00 (50.0 的 IEEE 754 单精度浮点数)
4.4 消息结构综合示例:薄膜沉积工艺结果上报
以下是一个完整的 SECS-II 消息示例,展示薄膜沉积设备如何通过 S6F11 上报一片晶圆的工艺结果。消息体使用 List 嵌套多个数据项:
消息头:
Device ID: 1, Wait Bit: 0
Stream: 6, Function: 11
Message ID: 0x02 0x06 0x0B 0x00
消息体 (S6F11):
List (0x00 0x04) -- 包含 4 个数据项
+-- ASCII (0x41 0x0A) -- 数据 ID: "WAFER_ID"
| +-- "WFR-2024-001"
+-- F4 (0x64 0x04) -- 沉积厚度: 1500.0 Å
| +-- 0x44 0xBB 0x80 0x00
+-- F4 (0x64 0x04) -- 均匀性: 2.5 %
| +-- 0x40 0x20 0x00 0x00
+-- U4 (0x54 0x04) -- 工艺时间: 120 秒
+-- 0x00 0x00 0x00 0x78
4.5 SECS-II 消息结构总览图
下图展示了 SECS-II 消息从 Message ID 到数据项格式的完整层级结构,以及薄膜沉积设备中典型数据项的映射关系:
4.6 薄膜沉积场景中的 Message ID 编码实践
在薄膜沉积设备的实际部署中,Message ID 的编码需要特别注意以下场景:
- 多腔体并发通信: 当 Host 同时向多个腔体发送消息时,每个腔体的 Device ID 必须唯一。例如,PVD 腔体使用 Device ID=1,CVD 腔体使用 Device ID=2。
- Wait Bit 的正确设置: 对于需要确认的关键操作(如配方下载、工艺启动),Wait Bit 必须设为 0(需要回复)。对于周期性状态上报(如 S6F11),Wait Bit 通常设为 1(不需要回复),以减少网络负载。
- Stream/Function 的扩展: 如果标准 SECS-II 消息无法满足薄膜沉积设备的特殊需求(如原子层沉积的脉冲序列控制),可以使用 SEMI E5 允许的私有 Stream(S0、S127 等)或私有 Function 范围。
4.7 本章小结
SECS-II 消息结构是薄膜沉积设备与 Host 之间进行语义级通信的基础。Stream 与 Function 定义了消息的类别和操作方向,Message ID 编码规则确保了消息的唯一性和可靠性,数据项格式(TLV)则提供了灵活的数据表示能力。在薄膜沉积设备的部署中,正确配置 S6(数据上报)和 S7(配方管理)相关的 Stream/Function,并严格按照 TLV 格式编解码工艺参数,是实现设备自动化集成的关键步骤。