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 的响应或确认。
关键规则: 在薄膜沉积设备中,所有设备状态上报(如 S6F11)均为奇数 Function;Host 下发工艺配方(如 S7F19)也为奇数 Function。偶数 Function(如 S6F12、S7F20)用于确认或返回数据。

以下是薄膜沉积场景中常用的 Stream 定义:

Stream 名称 薄膜沉积场景典型用途
S1 设备状态与控制 设备在线/离线切换、远程控制模式、时间请求
S2 设备诊断与维护 腔体压力、温度、RF 功率等实时数据采集
S5 报警管理 工艺腔体真空失效、气体流量异常、温度超限报警
S6 数据上报 每片晶圆沉积厚度、均匀性、颗粒计数等工艺结果
S7 配方管理 下载/上传/删除工艺配方(Process Recipe)
S10 终端服务 操作员界面消息、设备日志文本传输
实践提示: 在部署薄膜沉积设备时,S6(数据上报)和 S7(配方管理)是配置工作量最大的两个 Stream。建议在项目初期就定义好 S6F11(设备数据上报)和 S7F19(配方下载)的数据项映射表。

4.2 Message ID 编码规则

每个 SECS-II 消息在传输层(HSMS 或 RS-232)中通过 Message ID 进行唯一标识和匹配。Message ID 由以下三部分组成:

  1. Device ID (设备 ID):7 位二进制数,用于区分同一链路上的多个设备。在薄膜沉积设备中,通常一台设备对应一个 Device ID(如 1)。
  2. Stream 与 Function 编码:Stream 占 1 字节,Function 占 1 字节。例如 S1F1 编码为 0x01 0x01。
  3. 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
常见错误: 在薄膜沉积设备的多腔体系统中,如果使用同一物理链路连接多个腔体控制器,必须为每个腔体分配独立的 Device ID。否则,Host 发送的配方下载消息可能被错误的腔体接收,导致工艺事故。

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 单精度浮点数)
薄膜沉积设备适配要点: 工艺参数(如沉积温度 400°C、腔体压力 5.0 Torr)通常使用 F4 格式传输,以确保精度。晶圆 ID 和配方名称使用 ASCII 格式。报警状态使用 Boolean 格式。在编写设备端解析代码时,务必检查格式码的高 4 位以确定数据类型,低 4 位以确定字节长度。

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
开发建议: 在实现 SECS-II 编解码时,建议使用状态机逐字节解析 TLV 结构。对于 List 类型,需要递归解析嵌套数据项。许多商用 SECS/GEM 库(如 GEM300、SECSComm)已经封装了这些底层操作,但在薄膜沉积设备的定制化场景中,理解原始编码规则有助于调试通信异常。

4.5 SECS-II 消息结构总览图

下图展示了 SECS-II 消息从 Message ID 到数据项格式的完整层级结构,以及薄膜沉积设备中典型数据项的映射关系:

SECS-II 消息结构总览图 SECS-II 消息结构总览 消息头 (Message Header) Device ID (7bit) | Wait Bit (1bit) | Stream (1B) | Function (1B) | Reserved (1B) 消息体 (Message Body) 由 1 个或多个数据项 (Data Item) 组成,通常以 List 为根节点 数据项 TLV 结构 格式码 (Format Code) | 长度 (Length) | 数据值 (Value) List (0x00) 嵌套容器,用于分组 数值类型 (I/U/F) 温度、压力、厚度 ASCII (0x41) 配方名、晶圆 ID 薄膜沉积设备适配说明 • 工艺结果上报:S6F11 消息体使用 List 嵌套 F4(厚度/均匀性)和 U4(工艺时间) • 配方下载:S7F19 消息体使用 List 嵌套 ASCII(步骤名)和 F4(工艺参数设定值)

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 范围。
关键风险: 在薄膜沉积设备中,错误的 Message ID 编码可能导致 Host 与设备之间的消息失配。例如,如果 Host 发送 S7F19(配方下载)时使用了错误的 Device ID,设备可能无法正确解析配方,导致工艺参数错误。建议在设备端实现 Message ID 校验逻辑,并在调试阶段使用协议分析仪(如 SECSMon)验证消息头。

4.7 本章小结

SECS-II 消息结构是薄膜沉积设备与 Host 之间进行语义级通信的基础。Stream 与 Function 定义了消息的类别和操作方向,Message ID 编码规则确保了消息的唯一性和可靠性,数据项格式(TLV)则提供了灵活的数据表示能力。在薄膜沉积设备的部署中,正确配置 S6(数据上报)和 S7(配方管理)相关的 Stream/Function,并严格按照 TLV 格式编解码工艺参数,是实现设备自动化集成的关键步骤。