4. SECS/GEM通信基础与ASML设备模型

在半导体制造中,设备与主机(Host)之间的通信不是简单的“发一条指令、回一个结果”,而是由一套分层协议支撑的标准化对话机制。SECS/GEM 就是这套机制的核心:SECS-II 定义消息长什么样,HSMS 定义消息怎么在网络上传,GEM 定义设备在什么状态下允许做什么,而 ASML 设备模型则把这些抽象规则落到具体的设备、模块、端口和工艺作业上。理解这四层的关系,是后续做自动化接口开发和生产数据集成的前提。

SECS-II:消息的结构与语义

SECS-II 是消息内容的规范层。一条 SECS-II 消息由 Stream(流) 和 Function(功能) 共同标识,记作 SxFy,例如 S1F1、S2F41、S6F11。Stream 表示消息的类别,Function 表示该类别的具体动作,奇数 Function 通常表示“请求”,偶数 Function 通常表示“回复”。

消息体由若干 数据项(Data Item) 组成,每个数据项有格式码和长度。常见格式码包括:

  • L(List):列表,用于组织嵌套结构;
  • A(ASCII):字符串;
  • U1/U2/U4:无符号整数,分别占 1/2/4 字节;
  • I1/I2/I4:有符号整数;
  • F4/F8:浮点数;
  • B(Binary):二进制数据;
  • BOOLEAN:布尔值。

以 S1F1(Are You There)为例,它通常只包含一个空的 L 数据项,用于探测设备是否在线;设备用 S1F2 回复,消息体中携带设备型号、软件版本等信息。再如 S2F41(Host Command),其消息体一般是一个 L,内部依次包含命令名(A)、参数列表(L),参数列表中每个参数又由参数名(A)和参数值(A 或数值)组成。这种“列表套列表”的结构,是 SECS-II 表达复杂参数的标准方式。

SECS-II 只规定消息的“语法和语义”,不规定消息在网络上如何传输。传输层由 HSMS 或 SECS-I 承担。

HSMS:连接建立与消息交换

HSMS(High-Speed SECS Message Services)是当前主流的传输层协议,基于 TCP/IP。它定义了两种角色:Active(主动方) 和 Passive(被动方)。Active 方主动发起 TCP 连接,Passive 方监听端口等待连接。在 ASML 设备与主机集成中,通常由主机侧作为 Active,设备侧作为 Passive,但也可以反过来配置,关键是双方约定一致。

HSMS 连接建立后,双方通过 Select 和 Deselect 控制通信状态。只有进入 Selected 状态,才能交换 SECS-II 消息。此外,HSMS 还定义了 Linktest 用于检测链路存活,以及 Separate 用于正常断开连接。每条 HSMS 消息都有一个 System Bytes 字段,用于把请求和回复配对;还有 Session ID 用于标识会话。主机在发送 S1F1 时,会带上一个 System Bytes 值,设备回复 S1F2 时必须回填相同的值,这样主机才能确认“这条回复对应的是我刚才那条请求”。

实际配置中,需要关注几个参数:设备侧监听端口(常见为 5000)、Active 侧目标 IP 和端口、T3 回复超时(通常 45 秒)、T5 连接分离超时、T6 控制消息超时、T7 未选择超时、T8 网络字符间超时。这些定时器决定了通信的健壮性,配置不当会导致连接频繁断开或消息丢失。

GEM状态模型:设备在什么状态下做什么

GEM(Generic Equipment Model)在 SECS-II 和 HSMS 之上,定义了设备的行为规范。其中最基础的是 通信状态模型,它描述设备在通信层面所处的状态:

  • Disabled:通信未启用,设备不响应主机消息;
  • Enabled:通信已启用,设备可以响应主机消息;
  • Communicating:已建立 HSMS 连接并完成 Select,可以正常交换消息;
  • Not Communicating:通信中断,设备进入等待重连状态。

除了通信状态,GEM 还定义了 控制状态(Equipment Offline / Online Local / Online Remote)和 处理状态(Idle / Processing / Paused 等)。主机通过 S1F17/S1F18 请求设备进入 Online Remote,设备通过 S1F13/S1F14 建立通信,通过 S1F15/S1F16 请求离线。这些状态之间的迁移,决定了主机能否下发工艺作业、能否采集事件报告。

ASML设备特定对象模型

ASML 光刻设备在 GEM 标准之上,定义了自己的对象模型。理解这个模型,才能正确解析设备上报的数据和向设备下发指令。核心对象包括:

  • Equipment(设备):顶层对象,代表整台光刻机,拥有设备 ID、软件版本、当前状态等属性;
  • Module(模块):设备内部的子系统,如光源模块、投影物镜模块、晶圆传输模块、对准模块等,每个模块有独立的健康状态和参数;
  • Port(端口):晶圆进出设备的接口,通常有多个 Load Port,每个 Port 有 ID、类型(如 FOUP)、状态(Loaded/Unloaded);
  • Process Job(工艺作业):一次完整的曝光任务,包含作业 ID、配方(Recipe)、晶圆批次、优先级等,是主机与设备之间最核心的业务对象。

这些对象之间通过事件报告(Event Report)和变量(Variable)关联。例如,当 Port 状态变化时,设备会触发一个事件,事件报告中携带 Port ID 和新的状态值;当 Process Job 开始时,设备会报告 Job ID、Recipe 名称和 Start 时间。主机通过定义 Report 和 Link,决定订阅哪些事件和变量。

SECS/GEM 分层结构与 ASML 设备对象模型 SECS-II 消息层 SxFy 标识 · 数据项 L/A/U1/U2/U4/I1/I2/I4/F4/F8/B/BOOLEAN 示例:S1F1(Are You There) → S1F2(设备信息) · S2F41(Host Command) → S2F42(ACK/NAK) HSMS 传输层 TCP/IP · Active/Passive · Select/Deselect · Linktest · Separate System Bytes 配对 · Session ID · T3/T5/T6/T7/T8 定时器 GEM 行为层 通信状态:Disabled / Enabled / Communicating / Not Communicating 控制状态:Offline / Online Local / Online Remote · 事件报告 · 变量订阅 ASML 设备特定对象模型 Equipment 设备ID · 软件版本 · 状态 Module 光源 · 物镜 · 传输 · 对准 Port Load Port · FOUP · 状态 Process Job Job ID · Recipe · 批次 · 优先级 消息内容 传输通道 行为规则 业务对象

从消息到对象:一次工艺作业下发的完整链路

假设主机要向 ASML 设备下发一个工艺作业。首先,主机确认 HSMS 连接处于 Selected 状态,GEM 通信状态为 Communicating,控制状态为 Online Remote。然后主机发送 S2F41,命令名为 “START”,参数列表中包含 Job ID、Recipe 名称、Port ID 等。设备收到后,解析 SECS-II 消息体,将参数映射到 Process Job 对象,检查 Port 是否已加载 FOUP、Recipe 是否存在、设备是否处于可启动状态。如果条件满足,设备回复 S2F42 并携带 ACK;如果条件不满足,回复 NAK 并附带错误码。

作业启动后,设备会通过 S6F11 事件报告向主机推送状态变化,例如 Process Job 开始、晶圆开始曝光、Port 状态变化等。主机根据预先定义的 Report 和 Link,解析事件中的变量,更新自己的生产数据看板。整个过程体现了 SECS-II 负责“说什么”、HSMS 负责“怎么传”、GEM 负责“什么时候能说”、ASML 对象模型负责“说的是哪个具体对象”的分工。

实际集成中,不同 ASML 机型对 GEM 标准的实现程度不同,部分对象和事件可能需要参考设备厂商提供的接口文档进行定制。不要假设所有 ASML 设备都支持完全相同的 Stream/Function 集合。