2. SECS/GEM 协议基础:SECS-I、HSMS、SECS-II 消息结构概述
SECS/GEM 协议族是半导体设备与工厂主机(Host)之间通信的核心标准。理解其分层结构是进行 DataItem 定义与变量映射的前提。本章将系统梳理 SECS-I、HSMS、SECS-II 的消息结构、传输机制与协议层级关系。
2.1 协议分层架构总览
SECS/GEM 协议栈通常分为三层:物理/传输层、消息层和应用行为层。SECS-I 与 HSMS 是两种可选的传输方式,SECS-II 是统一的消息格式标准。
2.2 SECS-I(SEMI E4):串行传输协议
SECS-I 是早期半导体设备通信的标准传输协议,基于 RS-232C 串行接口。它定义了数据块(Block)的传输格式、握手规则和错误检测机制。
2.2.1 消息块(Block)结构
SECS-I 将 SECS-II 消息分割成多个 Block 进行传输。每个 Block 包含长度、控制信息和数据负载。
| 字段 | 长度(字节) | 说明 |
|---|---|---|
| Length | 1 | Block 总长度(含自身) |
| Device ID | 1 | 设备标识,0x00 为 Host,0x01 为 Equipment |
| Control Byte | 1 | 控制位:E-bit(结束标志)、R-bit(重传标志) |
| Block Number | 2 | 块序号,从 0 开始递增 |
| Data | 可变 | SECS-II 消息片段(最大 254 字节) |
2.2.2 传输流程
- 连接建立:通过 RS-232 物理连接,双方协商波特率(通常 9600 bps)。
- 消息分割:SECS-II 消息长度超过 254 字节时,被分割为多个 Block。
- 块传输:发送方逐块发送,接收方每收到一个 Block 返回 ACK/NAK。
- 消息重组:接收方根据 Block Number 和 E-bit 重组完整消息。
- 错误重传:超时或 NAK 时,发送方重传对应 Block。
2.3 HSMS(SEMI E37):高速网络传输协议
HSMS(High-Speed SECS Message Services)是基于 TCP/IP 的传输协议,逐渐取代了 SECS-I。它提供更高的传输速率、更可靠的连接管理,并支持多会话。
2.3.1 HSMS 消息格式
HSMS 消息包含一个固定长度的头部(Header)和可变长度的数据体(Data)。
| 字段 | 长度(字节) | 说明 |
|---|---|---|
| Length | 4 | 消息总长度(不含 Length 字段自身) |
| Session ID | 2 | 会话标识,用于多会话管理 |
| Header Byte 2 | 1 | 控制位:R-bit(回复标志)、S-bit(系统位) |
| Header Byte 3 | 1 | 保留或扩展标志 |
| PType | 1 | 协议类型:0x00 为 SECS-II |
| SType | 1 | 会话类型:0x00 为 Data Message |
| System Bytes | 4 | 系统字节,用于消息匹配与超时控制 |
| Data | 可变 | SECS-II 消息体(可选) |
2.3.2 连接状态机
HSMS 定义了严格的状态机来管理 TCP 连接,包括 Not Connected、Connected、Selected 等状态。
- Not Connected:TCP 连接未建立。
- Connected:TCP 连接已建立,但未选择会话。
- Selected:会话已选择,可以传输 SECS-II 消息。
Select.req 和 Select.rsp 消息用于建立会话。只有进入 Selected 状态后,才能进行正常的 SECS-II 数据交换。DataItem 的读取和写入操作必须在 Selected 状态下进行。
2.4 SECS-II(SEMI E5):消息内容与编码
SECS-II 是协议栈的核心,它定义了消息的逻辑结构、数据类型和编码规则。所有 DataItem 的传输最终都封装在 SECS-II 消息中。
2.4.1 Stream 与 Function
每条 SECS-II 消息由 Stream(流)和 Function(功能)唯一标识,格式为 S<n>F<m>。
| 标识 | 范围 | 说明 |
|---|---|---|
| Stream (S) | 0–127 | 消息类别,如 S1 为设备控制,S6 为数据报告 |
| Function (F) | 0–255 | 具体功能,奇数为主机发往设备,偶数为设备回复 |
| W-bit | — | 等待位(Wait bit),标记是否需要回复 |
示例:S1F13(主机请求设备信息)→ S1F14(设备回复信息)。
2.4.2 Item 数据结构
SECS-II 消息体由 Item 组成,Item 是数据的基本单元,支持嵌套结构。
| Item 类型 | 格式码 | 说明 |
|---|---|---|
| List | 0x00 | 有序列表,可包含多个子 Item |
| Binary | 0x20 | 二进制数据(1 字节) |
| Boolean | 0x24 | 布尔值(TRUE/FALSE) |
| ASCII | 0x40 | ASCII 字符串 |
| U2 | 0x68 | 无符号 2 字节整数 |
| U4 | 0x6C | 无符号 4 字节整数 |
| F4 | 0x70 | 4 字节浮点数 |
| F8 | 0x74 | 8 字节浮点数 |
2.4.3 消息编码示例
以下是一个 S1F13 消息的 SECS-II 编码示例(十六进制):
// S1F13 (Host → Equipment) 请求设备信息
// 消息体为空 List
00 01 // Length = 1 (List 长度)
00 // List Item 格式码,包含 0 个子 Item
// S1F14 (Equipment → Host) 回复设备信息
// 消息体包含 MDLN (ASCII) 和 SOFTREV (ASCII)
00 02 // Length = 2 (List 包含 2 个子 Item)
41 04 // ASCII Item,长度 4
4D 44 4C 4E // "MDLN"
41 07 // ASCII Item,长度 7
53 4F 46 54 52 45 56 // "SOFTREV"
U4 类型,单位 0.1°C。
2.5 三种协议的关系与对比
2.6 本章小结
- SECS-I:基于 RS-232 的串行传输,使用 Block 分割与重组,适用于低速场景。
- HSMS:基于 TCP/IP 的高速传输,支持多会话和状态机管理,是当前主流选择。
- SECS-II:定义消息的 Stream/Function 标识和 Item 数据结构,是 DataItem 映射的直接载体。
- 协议选择:新项目优先选择 HSMS + SECS-II 组合,兼顾性能与可靠性。