2. 半导体设备与EAP通信基础

EAP(Equipment Automation Program,设备自动化程序)要做的第一件事,是让上位系统“听得懂设备在说什么”。半导体设备与EAP之间的通信并非私有协议,而是建立在SEMI标准之上的一套分层体系:底层是传输层,上层是消息与行为模型。理解这套体系,才能理解EAP为什么能拿到事件、为什么能读到过程数据、为什么能判断设备当前处于什么状态。

一、SECS/GEM:设备通信的“语言与语法”

SECS(SEMI Equipment Communications Standard)定义了设备与主机之间交换消息的格式与语义,GEM(Generic Equipment Model)则定义了设备应当具备的通用行为。二者合称SECS/GEM,是半导体设备自动化的基础标准。可以这样理解:SECS负责“怎么说”,GEM负责“该做什么”。

SECS消息由三部分组成:Stream(流)、Function(功能号)和数据体。Stream按功能域划分,例如S1是设备状态与通信管理,S2是设备控制与诊断,S5是报警,S6是事件报告,S7是配方管理。Function是同一Stream内的具体动作编号。因此“S6F11”表示第6流第11号功能,即事件报告发送,这是EAP获取设备事件最核心的消息。

数据体采用SECS-II的项(Item)结构,支持列表(L)、ASCII(A)、二进制(B)、布尔(BOOLEAN)、整型(U1/U2/U4)、浮点(F4/F8)等格式。EAP解析S6F11时,必须按设备提供的报告定义逐项还原,否则会把VID(变量ID)读错位。这是实际工程中最常见的对接故障之一。

二、HSMS:把SECS消息送上TCP/IP

传统SECS-I使用RS-232串口,速率低、距离短。HSMS(High-Speed SECS Message Services)把SECS消息封装到TCP/IP之上,成为当前主流。HSMS定义了两种角色:Active(主动发起连接)和Passive(被动监听)。通常EAP作为Active,设备作为Passive,端口默认5000,但实际项目中设备侧端口常被厂商改为其他值,需以设备手册为准。

HSMS连接建立后,双方通过Select和Deselect管理会话状态。只有处于Selected状态,才能收发SECS消息。此外,HSMS还定义了Linktest心跳机制,用于检测链路是否存活。EAP若长时间收不到Linktest响应,应判定链路异常并触发重连,而不是继续等待业务消息。

SECS/GEM + HSMS 通信分层与事件报告链路 EAP 主机侧 事件订阅管理 Define Report / Enable SECS-II 编解码 S6F11 / S1F3 / S5F1 HSMS 会话层 Select / Linktest TCP/IP 传输 Active, 端口 5000 过程数据入库 Trace / SVID 映射 半导体设备侧 GEM 行为模型 状态机 / 报警 / 配方 事件报告定义 CEID / RPTID / VID HSMS 会话层 Passive, 监听端口 TCP/IP 传输 Socket 连接 设备内部信号 传感器 / PLC / 状态 HSMS 消息(TCP 双向) S6F11 事件报告(CEID + 数据) S2F33/S2F35 定义并启用报告 GEM 状态模型:Init → Idle → Executing → Pause 状态变化触发 CEID,EAP 据此判断设备可调度性

三、设备状态模型:EAP判断“能不能派工”的依据

GEM定义了设备的基本状态模型,最核心的是通信状态与控制状态两条线。通信状态包括Disabled、Enabled;控制状态包括Offline、Online Local、Online Remote。只有设备处于Online Remote,EAP才能远程下发命令、启动配方。若设备被操作员切到Local,EAP的远程控制会被拒绝,此时应产生告警而非反复重试。

在Online Remote之下,设备还有过程状态:Idle(空闲)、Executing(执行中)、Paused(暂停)。EAP通过S1F3或事件报告获取这些状态。实际调度中,EAP通常只在Idle且无未清报警时才派工。状态模型的价值在于:它把“设备现在能不能接活”变成可编程判断,而不是靠人看灯。

四、事件报告机制:EAP获取事件与过程数据的主通道

事件报告机制由三个关键标识构成:CEID(Collection Event ID,事件ID)、RPTID(Report ID,报告ID)、VID(Variable ID,变量ID)。设备内部发生某件事(如“晶圆已装载”),会触发一个CEID;该CEID绑定一个RPTID;RPTID中列出若干VID;每个VID对应一个设备变量(如温度、压力、位置)。EAP收到S6F11后,按RPTID定义解析出各VID的值,就得到了这次事件附带的过程数据。

典型对接流程如下:

  1. EAP发送S2F33,定义报告:把RPTID与一组VID绑定。
  2. EAP发送S2F35,把CEID与RPTID关联,并指定报告触发方式。
  3. EAP发送S2F37,启用事件报告。
  4. 设备事件发生时,主动发送S6F11,携带CEID和报告数据。
  5. EAP回复S6F12确认,并解析数据入库或触发业务逻辑。

这里有一个容易忽略的细节:报告定义是设备侧维护的。EAP不能假设设备一定支持某个VID,必须先通过S1F11/S1F12或设备手册确认VID清单。若EAP请求了不存在的VID,设备可能返回错误或直接忽略,导致报告数据缺失。

五、过程数据采集:事件驱动与轮询的配合

事件报告适合“状态变化”类数据,如装载完成、报警发生。但过程数据(如温度曲线、压力趋势)往往需要更高频率。此时EAP通常使用Trace采集:通过S2F23启动设备内部Trace,指定SVID(Status Variable ID)和采样周期,设备按周期把数据推送给EAP。Trace与事件报告互补:事件报告抓“关键时刻”,Trace抓“连续过程”。

实际工程中,一个常见配置示例是:EAP对某刻蚀设备启用Trace,采样周期200ms,采集SVID包括腔体压力、RF功率、ESC温度。同时订阅CEID=1001(晶圆进入)、CEID=1002(工艺开始)、CEID=1003(工艺结束)。这样EAP既能拿到连续曲线,也能在关键节点打上时间戳,后续做追溯时可以把曲线与事件对齐。

对接检查要点:确认设备HSMS角色与端口;确认CEID/RPTID/VID清单;确认报告是否已启用;确认Linktest周期与超时;确认Trace的SVID与采样周期是否在设备能力范围内。
常见误区:把S6F11当成“设备主动上报所有数据”。实际上,只有被定义并启用的报告才会发送。EAP若未正确下发S2F33/S2F35/S2F37,设备不会主动推送任何事件。

总结来看,SECS/GEM提供了消息语义与设备行为规范,HSMS提供了可靠的TCP传输,状态模型让EAP能判断设备可调度性,事件报告机制则把设备内部的变化转化为EAP可处理的数据流。这四者共同构成了EAP从设备侧获取事件与过程数据的基础通道。理解它们之间的层次与配合关系,是后续做数据建模、追溯和排障的前提。