SECS/GEM协议概述:SEMI E4、E5、E30、E37等标准体系与协议分层模型

SECS/GEM(SEMI Equipment Communications Standard / Generic Equipment Model)是半导体制造设备与工厂主机(Host)之间进行数据通信与自动化控制的核心标准族。它由国际半导体设备与材料协会(SEMI)制定并维护,是半导体、平板显示、光伏及LED等离散制造业实现设备联网、数据采集和远程控制的事实性工业通信协议。本章将系统梳理SEMI E4、E5、E30、E37等关键标准的定位与关系,并深入剖析协议的分层模型——消息层、会话层与传输层,帮助学员建立从物理链路到业务语义的完整认知框架。

SECS/GEM 协议分层模型与标准体系映射 应用层(业务语义) E30(GEM):状态模型、事件报告、远程命令、配方管理、报警管理 E37(HSMS-SS):会话建立/结束、选择/分离、链路测试 消息层(Message Layer) E5(SEMI):SECS-II 消息格式、Stream/Function、数据项(Data Item) 消息编码:长度头 + Stream/Function + 数据体(List/ASCII/U4等) 传输层(Transport Layer) E37(HSMS):TCP/IP 承载,消息头10字节,帧格式定义 E4(SECS-I):RS-232C 承载,块传输协议(已较少使用) 物理层(Physical Layer) E37:以太网(RJ45,TCP端口5000/5001) | E4:RS-232C 串口 标准体系总览 • E4:SECS-I(串口) • E5:SECS-II(消息) • E30:GEM(应用) • E37:HSMS(网络) • E39:GEM 300mm • E40:制程管理 • E84:载具ID • E87:载具管理 • E90:配方管理 • E94:制程控制 • E116:设备性能 • E132:设备自描述 关键点:E30 依赖 E5 定义的消息格式,E5 依赖 E37/E4 提供的传输能力。 排障时需分层定位:物理连通性 → 会话状态 → 消息解析 → 业务逻辑。

上图展示了SECS/GEM协议栈的分层结构及其与SEMI标准体系的对应关系。在实际工程中,我们通常将协议栈划分为四个层次:物理层、传输层、消息层和应用层。其中,E37(HSMS)和E4(SECS-I)定义了传输层与物理层的行为,E5(SECS-II)定义了消息层的格式与编码规则,而E30(GEM)则规定了应用层的设备行为模型。理解这种分层关系,是进行协议测试与故障排查的基础。

核心原理:SEMI标准族的分工与协作

SEMI标准体系并非单一协议,而是一组相互关联、各司其职的标准集合。在SECS/GEM框架下,最核心的四个标准是E4、E5、E30和E37,它们分别对应协议栈的不同层次,共同构成完整的设备通信解决方案。

标准编号标准名称对应层次核心职责典型应用场景
SEMI E4SECS-I传输层+物理层基于RS-232C串口的块传输协议,定义数据块格式、块序号、重传机制早期半导体设备,传输速率9600~38400bps,现已逐步淘汰
SEMI E5SECS-II消息层定义消息格式(Stream/Function)、数据项类型(List、ASCII、U4、I8等)、消息编码规则所有SECS/GEM通信中消息的构造与解析
SEMI E30GEM应用层定义设备状态模型、事件报告、远程命令、变量采集、配方管理、报警管理等行为规范设备与主机之间的业务交互逻辑
SEMI E37HSMS-SS传输层+物理层基于TCP/IP的高速消息服务,定义消息头格式(10字节)、帧格式、会话建立与链路测试现代半导体工厂的主流通信方式,支持百兆/千兆以太网

这四个标准的关系可以类比为邮政系统:E37(HSMS)是高速公路和运输车辆,负责将包裹(数据帧)从A地运送到B地;E5(SECS-II)是包裹的包装规范,规定了包裹内部物品的摆放方式和标签格式;E30(GEM)则是寄件人和收件人之间的业务约定,比如什么情况下寄出什么类型的包裹、收到包裹后如何回应。而E4(SECS-I)则相当于一条老旧的乡间小路,虽然仍在使用,但已不是主流选择。

工程经验:在新建半导体工厂或设备改造项目中,几乎全部采用E37(HSMS)作为传输层协议。E4(SECS-I)仅在极少数老旧设备或特殊场景下保留。因此,本课程后续章节将以E37为主进行讲解,但会兼顾E4的兼容性测试需求。

消息层(SECS-II)深入解析

消息层是SECS/GEM协议栈中最具技术含量的部分,它定义了设备与主机之间交换的所有消息的结构和编码方式。SECS-II消息由三部分组成:消息头(Message Header)、流号(Stream)和功能号(Function)、以及数据体(Data Body)。

消息头长度为10字节(在HSMS传输时),包含以下关键字段:

  • 设备ID(Device ID):用于区分同一链路上的多个设备,通常为0表示设备自身。
  • 流号(Stream)与功能号(Function):共同构成消息的唯一标识,例如S1F1表示"建立通信请求",S6F11表示"事件报告发送"。
  • 等待位(W-bit):指示该消息是否需要接收方回复,W=1表示需要回复,W=0表示无需回复。
  • 消息序号(System Bytes):用于匹配请求与响应消息,确保通信的可靠性。

数据体部分采用类型-长度-值(TLV)的嵌套结构,支持的数据类型包括:

数据类型编码标识说明示例
List0x01有序列表,可嵌套其他类型设备状态列表
ASCII0x02可打印字符字符串设备名称、操作员ID
U2/U4/U80x04/0x06/0x08无符号整数(2/4/8字节)温度值、压力值
I1/I2/I4/I80x03/0x05/0x07/0x09有符号整数偏差值、修正量
F4/F80x0A/0x0B浮点数(4/8字节)浓度、速率
Boolean0x0C布尔值(TRUE/FALSE)开关状态

在故障排查中,消息层的常见问题包括:Stream/Function编号错误、数据项类型不匹配、List嵌套层级错误、消息长度计算错误等。这些问题往往不会导致通信中断,但会引起设备与主机之间的业务逻辑混乱。

排障技巧:当遇到"消息解析失败"或"无法识别消息"的报错时,首先使用协议分析仪(如Wireshark配合SECS插件)抓取原始报文,检查消息头中的Stream/Function是否在标准定义范围内,然后逐字节核对数据体的类型标识和长度字段。

会话层与传输层(HSMS)工作机制

HSMS(High-Speed Message Service)是E37标准定义的基于TCP/IP的传输协议。它取代了E4的串口传输方式,将通信速率从Kbps级别提升到Mbps甚至Gbps级别。HSMS的会话管理机制是故障排查的重点区域。

HSMS定义了三种会话状态:

  1. Not Connected(未连接):TCP连接尚未建立,或已断开。
  2. Connected(已连接):TCP连接已建立,但尚未完成会话选择(Select)。
  3. Selected(已选择):会话选择成功,可以正常收发SECS-II消息。

会话建立流程如下:

1. 设备(或主机)发起TCP连接(默认端口5000或5001)
2. 主动方发送Select.req(S1F13)消息
3. 被动方回复Select.rsp(S1F14),携带状态码
4. 若状态码为0,则进入Selected状态
5. 通信过程中,双方定期发送Linktest.req(S1F1)进行链路保活
6. 通信结束时,发送Separate.req(S1F3)并关闭TCP连接

在传输层,HSMS定义了完整的数据帧格式:

字段长度(字节)说明
消息长度(Length)4表示后续消息头+数据体的总字节数
消息头(Header)10包含设备ID、Stream/Function、W-bit、System Bytes
数据体(Data)可变SECS-II编码的数据内容

HSMS的故障排查中,最常见的现象是"连接频繁断开"或"会话无法建立"。此时需要从TCP层和HSMS层两个维度进行分析:TCP层检查网络连通性、防火墙规则、端口占用;HSMS层检查Select消息的格式是否正确、设备ID是否匹配、System Bytes是否冲突。

风险提示:在排查HSMS连接问题时,切勿忽略TCP Keep-Alive机制与HSMS Linktest机制的区别。TCP Keep-Alive默认间隔为2小时,而HSMS Linktest通常设置为10~30秒。如果仅依赖TCP Keep-Alive,可能无法及时发现链路异常,导致业务中断后主机仍认为设备在线。

应用层(GEM)关键行为模型

GEM(Generic Equipment Model)是E30标准定义的应用层行为规范,它规定了设备在通信中应表现出的"行为模式"。GEM的核心内容可以概括为"五个模型、三个集合":

  • 状态模型(State Model):定义设备的通信状态(如EQUIPMENT OFF、HOST CONNECTED、READY等)和制程状态(如IDLE、PROCESSING、PAUSED等)。
  • 事件模型(Event Model):定义设备何时向主机发送事件报告(如制程完成、报警发生、参数变更)。
  • 命令模型(Command Model):定义主机如何向设备发送远程命令(如启动制程、暂停、恢复、停止)。
  • 变量模型(Variable Model):定义设备可提供给主机的数据变量(如温度、压力、速率、状态值)。
  • 配方管理模型(Recipe Management):定义配方的上传、下载、校验和选择流程。

在GEM的工程实践中,设备供应商需要根据E30标准编写一份"设备能力声明"(Equipment Capability Statement),详细列出设备支持的GEM功能子集。这份声明是主机集成团队进行通信开发的依据,也是后续验收测试的检查清单。

实战场景:某晶圆厂新进一台刻蚀设备,主机集成团队按照E30标准进行联调。在测试事件报告功能时,发现设备在制程完成后未发送S6F11事件消息。排查过程如下:首先检查设备端GEM配置,确认事件使能(Event Enable)已开启;然后抓取报文,发现设备确实未发出任何消息;进一步检查设备日志,发现事件触发条件中的"Process Complete"状态位未正确置位。最终定位为设备内部状态机在制程结束后未切换到"Completed"状态,导致事件条件不满足。修复设备固件后,事件报告恢复正常。

常见误区与总结复盘

在SECS/GEM协议的学习和工程应用中,工程师常陷入以下误区:

误区描述后果正确做法
将E37和E30混为一谈无法区分传输层问题与应用层问题明确E37负责"怎么传",E30负责"传什么"
忽略设备ID的配置多设备通信时消息路由混乱确保设备ID在链路中唯一且与主机配置一致
不关注W-bit的设置消息超时或响应不匹配根据业务需求正确设置W-bit,并实现超时重发机制
认为SECS-II消息是纯文本使用错误工具解析报文使用支持SECS-II解码的专用工具(如Wireshark+SECS插件)
忽视HSMS的会话状态管理链路状态不一致导致通信中断实现状态机管理,定期发送Linktest并处理超时

总结而言,SECS/GEM协议的学习需要建立分层思维:物理层关注网络连通性,传输层关注会话与帧格式,消息层关注编码与解析,应用层关注业务逻辑。在实际排障中,建议按照"从下往上"的顺序逐层排查:先确认TCP连接正常,再检查HSMS会话状态,然后验证SECS-II消息格式,最后分析GEM业务逻辑。这种系统化的方法能够显著提高故障定位的效率。

学习建议:建议学员在实验环境中搭建一套模拟设备(使用开源SECS/GEM模拟器)和主机端工具,通过抓包分析、消息构造、异常注入等方式,加深对协议分层模型的理解。实践是掌握SECS/GEM协议最有效的途径。