2. 半导体设备通信基础
在半导体制造现场,设备与主机之间的通信并不是单一协议完成的,而是由一组分工明确的标准协同工作。很多初学者会把 SECS-I、HSMS、SECS-II、GEM 混为一谈,导致在测试和排障时无法判断问题究竟出在物理链路、消息传输、报文语义还是行为规范层面。理解它们的分层关系,是后续所有测试与故障排查工作的基础。
一、四层协议栈的核心原理
可以把这套通信体系类比为“寄快递”:SECS-I 和 HSMS 负责“怎么把包裹送到”,SECS-II 负责“包裹里写的是什么内容”,GEM 则规定“收到包裹后应该怎么处理、什么时候该主动寄包裹”。四者层层依赖,缺一不可。
- SECS-I(SEMI E4):基于 RS-232 串行物理接口的消息传输层,采用点对点连接,通过握手、块传输和超时重传保证可靠性,速率通常为 9600~115200 bps,适合早期设备。
- HSMS(SEMI E37):基于 TCP/IP 的高速消息服务层,支持多设备并发连接,是当前主流传输方式,速率可达百兆甚至千兆。
- SECS-II(SEMI E5):定义消息的语义与数据结构,规定每条消息的 Stream/Function 编号、数据项格式(如 L、A、U4、B 等),是设备与主机“对话的语言”。
- GEM(SEMI E30):在 SECS-II 之上定义设备的标准行为模型,包括状态机、事件报告、告警、变量采集、远程命令等,保证不同厂商设备行为一致。
分层记忆口诀:SECS-I / HSMS 管“通道”,SECS-II 管“内容”,GEM 管“行为”。排障时先定位在哪一层,再决定查物理线、查 TCP、查报文还是查状态机。
二、典型应用场景与设备角色
在晶圆厂中,主机通常由 MES、EAP 或 FDC 系统扮演,负责派工、配方管理、数据采集与良率分析;设备则是刻蚀、薄膜、清洗、量测等机台。两者角色并不对称:主机是“指挥者”,设备是“执行者与汇报者”。
| 协议层 | 标准编号 | 典型场景 | 设备角色 |
|---|---|---|---|
| SECS-I | SEMI E4 | 老旧机台串口通信、低速点对点 | 被动响应,按块传输 |
| HSMS | SEMI E37 | 现代机台 TCP 通信、多主机并发 | 可主动连接或监听 |
| SECS-II | SEMI E5 | 配方下发、数据采集、告警上报 | 解析并组装消息 |
| GEM | SEMI E30 | 状态机、事件报告、远程命令 | 维护行为模型与状态 |
三、方法流程:一次典型通信的完整路径
以主机向设备下发配方为例,数据自上而下封装,再自下而上解封装:
- 主机 GEM 层触发“配方下发”行为,调用 SECS-II 构造 S7F1(Process Program Load Inquire)。
- SECS-II 将消息编码为 Stream/Function 与数据项,交给 HSMS 层。
- HSMS 将消息封装为 HSMS 报文,通过 TCP 发送到设备。
- 设备 HSMS 层接收后解封装,交给 SECS-II 解析,再由 GEM 层处理。
- 设备返回 S7F2 应答,主机确认后继续下发 S7F3 配方内容。
主机 → 设备:S7F1 Process Program Load Inquire
设备 → 主机:S7F2 Process Program Load Grant (ACK)
主机 → 设备:S7F3 Process Program Send (配方数据)
设备 → 主机:S7F4 Process Program Ack (确认)
四、误区与复盘
常见误区一:把 HSMS 当成 SECS-II。HSMS 只负责传输,报文内容是否正确要看 SECS-II 的 Stream/Function 和数据项格式。
常见误区二:认为 GEM 是独立协议。GEM 是建立在 SECS-II 之上的行为规范,没有 SECS-II 就没有 GEM。
常见误区三:排障时只看应用日志。若 HSMS 的 Select 状态未建立,SECS-II 消息根本无法收发,应先查链路层。
常见误区二:认为 GEM 是独立协议。GEM 是建立在 SECS-II 之上的行为规范,没有 SECS-II 就没有 GEM。
常见误区三:排障时只看应用日志。若 HSMS 的 Select 状态未建立,SECS-II 消息根本无法收发,应先查链路层。
复盘建议:遇到通信故障时,按“物理层 → 传输层 → 消息层 → 行为层”自下而上逐层排查。先确认 TCP 或串口是否连通,再确认 HSMS 是否进入 Selected 状态,然后抓取 SECS-II 报文核对 S/F 编号与数据项,最后检查 GEM 状态机与事件报告配置是否一致。
掌握这四层的关系与各自职责,就能在后续的 SECS/GEM 测试与故障排查中快速定位问题边界,避免在错误的层级上反复试错。