3、数据采集层设计:设备数据采集(SECS/GEM协议)、传感器数据采集、手动录入接口设计
数据采集层是Fab良率监控系统的“神经末梢”,负责将物理世界的设备状态、工艺参数与传感器读数,转化为可被上层系统理解与处理的数字信号。本章聚焦于三种核心采集路径:半导体设备SECS/GEM协议对接、环境与工艺传感器数据采集,以及人工检验与手动录入接口的设计原则与实现要点。
设计原则:数据采集层必须满足“三高一低”——高可用(99.99%)、高实时(秒级响应)、高一致性(无丢包)、低侵入(不影响设备正常运行)。
3.1 设备数据采集:SECS/GEM协议深度解析
半导体制造设备(如光刻机、刻蚀机、薄膜沉积设备)普遍支持SECS(SEMI Equipment Communications Standard)与GEM(Generic Equipment Model)协议。SECS定义通信传输层,GEM定义设备行为模型与数据项标准。
3.1.1 协议栈与通信模型
| 层级 | 协议/标准 | 功能描述 | 典型实现 |
|---|---|---|---|
| 物理层 | RS-232 / TCP/IP | 串行或网络连接,波特率/端口配置 | 串口服务器 / 以太网卡 |
| 传输层 | SECS-I / HSMS | 数据块封装、重传、流控制 | HSMS主动/被动模式 |
| 消息层 | SECS-II | 消息类型定义(Primary/Secondary) | S1F13, S2F41, S6F11等 |
| 应用层 | GEM (E30/E37/E39) | 设备状态模型、报警、数据收集计划 | CEID, VID, Collection Event |
关键概念:GEM模型中的Collection Event(CE)是数据采集的核心触发器。当设备发生特定事件(如“晶圆开始刻蚀”、“腔体压力变化”),设备主动上报一组预定义的Variable ID(VID)数据,无需主机轮询。
3.1.2 SECS/GEM数据采集架构
下图展示了从设备端到数据采集中间件的完整数据流,包含连接管理、消息解析与数据持久化三个核心模块。
3.1.3 关键接口实现示例
以下是一个简化的SECS/GEM数据采集器核心代码片段,展示如何建立HSMS连接并订阅Collection Event:
// Java SECS/GEM 采集器核心逻辑
public class SecsGemCollector {
private final String deviceIp = "192.168.1.100";
private final int devicePort = 5000;
private final int deviceId = 1;
private GemSession session;
private final Map<Integer, List<Integer>> ceVidMap = new HashMap<>();
public void connect() {
// 1. 创建HSMS主动连接
HsmsSettings settings = new HsmsSettings(deviceIp, devicePort, deviceId);
session = GemConnectionFactory.createActiveSession(settings);
session.addMessageListener(this::onMessage);
// 2. 发送S1F13建立通信
session.send(SecsMessage.of(1, 13));
// 3. 订阅Collection Event (CEID=101, VIDs=[1001,1002,1003])
subscribeCe(101, Arrays.asList(1001, 1002, 1003));
}
private void onMessage(SecsMessage msg) {
if (msg.getStream() == 6 && msg.getFunction() == 11) {
// S6F11: 事件报告数据
int ceid = msg.getData().getInt(0);
List<Object> values = msg.getData().getList(1);
// 将数据推送到Kafka
kafkaProducer.send(new ProducerRecord<>("fab-equipment-data",
new EquipmentData(deviceId, ceid, values, System.currentTimeMillis())));
}
}
}
3.2 传感器数据采集:环境与工艺参数
除设备自身数据外,Fab内还部署大量环境传感器(温度、湿度、微粒子)与工艺传感器(气体流量、压力、RF功率)。这些传感器通常通过Modbus RTU/TCP、OPC UA或4-20mA模拟量接入数据采集层。
3.2.1 传感器类型与采集方式对比
| 传感器类型 | 通信协议 | 采集频率 | 数据精度 | 典型部署位置 |
|---|---|---|---|---|
| 温湿度传感器 | Modbus RTU | 1 Hz | ±0.3°C / ±2%RH | 光刻区、黄光区 |
| 微粒子计数器 | Ethernet/IP | 0.1 Hz | 0.1 μm 粒径 | 洁净室回风口 |
| 质量流量控制器 | DeviceNet | 10 Hz | ±1% F.S. | 气体分配箱 |
| RF功率传感器 | 模拟量 4-20mA | 100 Hz | ±0.5% | 刻蚀腔体匹配网络 |
3.2.2 传感器数据采集架构
传感器数据采集采用“边缘网关+集中采集”的混合架构,边缘网关负责协议转换与数据预处理,集中采集服务负责数据汇聚与分发。
3.2.3 边缘网关数据预处理策略
- 数据校验:检查传感器值是否在合理范围内(如温度-40~150°C),超出范围标记为异常并触发告警。
- 去重与滤波:对同一传感器连续采集的重复值进行去重;对模拟量信号使用滑动平均滤波(窗口大小=5)。
- 时间戳对齐:所有传感器数据统一使用网关本地NTP同步时间戳,确保多传感器数据在时间轴上对齐。
- 断点续传:网关本地SQLite缓存未发送数据,网络恢复后按时间顺序补传。
3.3 手动录入接口设计
并非所有数据都能自动采集。目检结果、工程师手动测量值、设备维护记录等仍需人工录入。手动录入接口的设计直接影响数据质量与用户体验。
3.3.1 录入场景与数据模型
| 录入场景 | 数据内容 | 录入频率 | 数据量级 |
|---|---|---|---|
| 晶圆目检结果 | 缺陷类型、位置坐标、严重等级 | 每批次 | 10~100条/批次 |
| 设备PM记录 | 更换部件、维修时间、操作员 | 按需 | 1~5条/次 |
| 工艺参数手动测量 | 膜厚、线宽、电阻率 | 每批次抽检 | 5~20条/批次 |
| 异常事件描述 | 异常类型、影响范围、处理措施 | 事件驱动 | 1条/事件 |
3.3.2 接口设计原则
- 结构化表单:使用下拉选择、日期选择器、数值输入框等控件,减少自由文本输入,降低数据解析难度。
- 实时校验:前端对必填项、数值范围、格式(如日期格式)进行即时校验,后端二次校验。
- 模板化录入:支持创建录入模板(如“刻蚀机PM模板”),一键加载常用字段与默认值。
- 审计追踪:记录每次录入的操作员、时间戳、修改历史,确保数据可追溯。
3.3.3 手动录入接口API设计示例
以下是一个RESTful API设计示例,用于提交晶圆目检结果:
// POST /api/v1/inspection/defects
// 请求体
{
"lotId": "LOT-2024-001",
"waferId": "W-001",
"operator": "ZHANG_SAN",
"inspectionTime": "2024-03-15T14:30:00+08:00",
"defects": [
{
"defectType": "PARTICLE",
"xCoord": 12.5,
"yCoord": 45.3,
"size": 0.5,
"severity": "MAJOR",
"description": "金属颗粒污染"
},
{
"defectType": "SCRATCH",
"xCoord": 78.1,
"yCoord": 23.9,
"size": 2.1,
"severity": "CRITICAL",
"description": "划伤长度2.1μm"
}
]
}
// 响应体
{
"code": 200,
"message": "success",
"data": {
"inspectionId": "INS-20240315-001",
"defectCount": 2,
"createdAt": "2024-03-15T14:30:05+08:00"
}
}
3.3.4 手动录入与自动采集的数据融合
手动录入数据最终需要与自动采集的设备/传感器数据融合,形成完整的批次追溯链。融合策略如下:
注意事项:手动录入数据存在人为误差风险。建议对关键字段(如缺陷坐标、严重等级)设置二次确认机制;对数值型字段设置合理范围校验;定期对录入数据进行一致性抽查(如与自动测量设备对比)。
3.4 数据采集层整体架构总结
三种采集路径在系统中协同工作,形成完整的数据采集层。下表总结了各路径的特点与适用场景:
| 采集路径 | 数据源 | 协议/方式 | 实时性 | 数据量 | 可靠性要求 |
|---|---|---|---|---|---|
| 设备数据采集 | 半导体设备 | SECS/GEM (HSMS) | 高(秒级) | 大(每设备每秒数百点) | 极高(不允许丢包) |
| 传感器数据采集 | 环境/工艺传感器 | Modbus/OPC UA/模拟量 | 中(秒~分钟级) | 中(每传感器每秒1~10点) | 高(允许短暂中断) |
| 手动录入 | 人工检验/记录 | Web表单/API | 低(分钟~小时级) | 小(每批次数十条) | 中(需审计追踪) |