SECSGEM协议E系列规范与GEM功能集成开发 - 第4节
4.1 GEM通用设备模型(Common Equipment Model)
E30规范定义的通用设备模型(CEM)是GEM功能集成的核心抽象层。它将半导体制造设备抽象为设备(Equipment)、单元(Unit)、模块(Module)和子系统(Subsystem)四个层级,为上层应用提供统一的设备视图。
核心设计原则:CEM模型不绑定具体硬件实现,而是通过标准化的状态机、变量和集合来描述设备行为,使得不同厂商的设备可以通过同一套SECS/GEM接口进行监控和控制。
4.1.1 设备层级结构
| 层级 | 英文名称 | 描述 | 示例 |
|---|---|---|---|
| 设备 | Equipment | 最高层级,代表完整的制造工具 | 刻蚀机、光刻机、沉积设备 |
| 单元 | Unit | 设备内可独立执行工艺的功能实体 | 工艺腔室、传输腔室 |
| 模块 | Module | 单元内的子功能组件 | 射频电源模块、温控模块 |
| 子系统 | Subsystem | 支撑模块运行的底层系统 | 冷却系统、真空系统 |
4.2 设备状态模型(Equipment State Model)
设备状态模型定义了设备从初始化到运行、维护、故障恢复的完整生命周期状态转换。E30规范要求每个设备必须实现至少以下状态:
- INIT(初始化):设备上电后进入,执行自检和参数加载
- IDLE(空闲):设备就绪,等待工艺任务
- RUN(运行):正在执行工艺或传输操作
- PAUSE(暂停):工艺中断,可恢复
- ALARM(报警):检测到异常,需要操作员干预
- MAINT(维护):设备处于维护模式
4.2.1 状态转换规则
| 当前状态 | 触发事件 | 目标状态 | 说明 |
|---|---|---|---|
| INIT | 初始化完成 | IDLE | 自检通过,参数加载成功 |
| IDLE | 启动工艺 | RUN | 收到S2F41启动命令 |
| RUN | 暂停请求 | PAUSE | 操作员或上位机发起暂停 |
| RUN | 故障检测 | ALARM | 传感器触发报警条件 |
| PAUSE | 恢复命令 | RUN | 继续未完成的工艺 |
| ALARM | 报警清除 | IDLE | 故障排除后复位 |
| IDLE | 维护请求 | MAINT | 进入维护模式 |
| MAINT | 维护完成 | IDLE | 维护结束,设备就绪 |
4.3 处理状态模型(Processing State Model)
处理状态模型描述设备在执行具体工艺任务时的微观状态序列。与设备状态模型关注整体运行模式不同,处理状态模型聚焦于晶圆加工流程中的每个步骤。
4.3.1 处理状态定义
- IDLE_PROC:处理单元空闲,等待晶圆
- LOADING:晶圆正在装载
- PROCESSING:正在执行工艺(刻蚀、沉积、清洗等)
- UNLOADING:晶圆正在卸载
- COMPLETE:处理完成,等待下一片晶圆
- ABORTED:处理异常终止
开发提示:处理状态模型通常与设备状态模型嵌套使用。例如,设备处于RUN状态时,其内部的处理单元可能依次经历LOADING→PROCESSING→UNLOADING的循环。
4.4 设备常量与变量定义
E30规范定义了标准化的数据访问接口,通过设备常量(Equipment Constants, EC)和变量(Variables)实现设备参数的读写。这些数据项是SECS/GEM通信中S2F13/S2F14(常量读写)和S1F3/S1F4(变量读写)消息的基础。
4.4.1 设备常量(EC)
设备常量是设备运行过程中相对稳定的配置参数,通常只在设备初始化或维护时修改。每个常量由唯一的常量ID(ECID)标识。
| ECID | 常量名称 | 数据类型 | 描述 | 典型值 |
|---|---|---|---|---|
| 1 | CHAMBER_TEMP | F4 | 工艺腔室目标温度 | 150.0 |
| 2 | PRESSURE_SETPOINT | F4 | 腔室压力设定值 | 50.0 |
| 3 | GAS_FLOW_RATE | F4 | 工艺气体流量 | 100.0 |
| 4 | RF_POWER | I2 | 射频功率设定值 | 500 |
| 5 | TIMEOUT_SEC | I2 | 工艺超时时间 | 300 |
4.4.2 变量(Variables)
变量反映设备的实时状态,包括状态变量(SV)和数据变量(DV)。状态变量描述设备当前状态,数据变量提供测量值。
| 变量类型 | VID | 变量名称 | 数据类型 | 描述 |
|---|---|---|---|---|
| SV | 101 | EQUIPMENT_STATE | A | 设备当前状态(IDLE/RUN/ALARM等) |
| SV | 102 | PROCESS_STATE | A | 处理状态(LOADING/PROCESSING等) |
| DV | 201 | CURRENT_TEMP | F4 | 当前腔室温度 |
| DV | 202 | CURRENT_PRESSURE | F4 | 当前腔室压力 |
| DV | 203 | WAFER_COUNT | I4 | 已处理晶圆总数 |
4.4.3 变量访问示例
以下是通过SECS消息读取设备常量和变量的典型代码片段:
// 读取设备常量(S2F13请求,S2F14响应)
// 请求:读取ECID=1(腔室温度)和ECID=2(压力设定值)
S2F13:
<L [2]
<U2 1> // ECID 1
<U2 2> // ECID 2
>
// 响应:
S2F14:
<L [2]
<L [2]
<U2 1> // ECID
<F4 150.0> // 值
>
<L [2]
<U2 2> // ECID
<F4 50.0> // 值
>
>
// 读取状态变量(S1F3请求,S1F4响应)
// 请求:读取VID=101(设备状态)和VID=201(当前温度)
S1F3:
<L [2]
<U2 101>
<U2 201>
>
// 响应:
S1F4:
<L [2]
<L [2]
<U2 101> // VID
<A "RUN"> // 设备状态值
>
<L [2]
<U2 201> // VID
<F4 149.8> // 当前温度值
>
>
注意事项:
- ECID和VID的分配范围必须遵循E30规范,避免与保留ID冲突(通常0-100为系统保留)
- 变量数据类型必须与SECS-II编码严格对应,例如F4对应4字节浮点,I2对应2字节有符号整数
- 设备常量写入(S2F15/S2F16)通常需要操作员权限或安全校验
4.5 模型集成与开发要点
在实际的GEM功能集成开发中,需要将设备模型、状态模型和变量定义统一映射到具体的设备控制软件中。以下是关键集成步骤:
- 模型映射:将物理设备分解为CEM层级结构,为每个层级分配ECID和VID范围
- 状态机实现:使用状态模式(State Pattern)实现设备状态和处理状态的转换逻辑
- 变量注册:在GEM通信层注册所有常量和变量,确保SECS消息能正确路由
- 事件绑定:将状态转换事件与SECS事件通知(CEID)关联,实现主动上报
- 一致性校验:验证设备状态与处理状态的组合是否合法(例如RUN状态下处理状态不能为IDLE_PROC)
最佳实践:建议在开发初期建立完整的EC/VID清单文档,并与设备厂商确认每个变量的读写权限和取值范围。使用模拟器先行验证状态转换逻辑,可减少50%以上的现场调试时间。