SECSGEM协议工程实践:从入门到产线部署 - 第2节
2.1 物理传输层:HSMS 与 SECS-I 的对比
SECS/GEM 协议族在物理传输层定义了两种标准:SECS-I(RS-232 串口)和 HSMS(TCP/IP 以太网)。现代产线几乎全部采用 HSMS,但理解 SECS-I 有助于掌握协议设计的历史背景与边界场景。
2.1.1 SECS-I:串行时代的基石
SECS-I 定义在 SEMI E4 标准中,使用 RS-232C 串行接口,波特率通常为 9600 bps。其核心特点包括:
- 物理层:点对点串行连接,距离受限(通常 < 15 米)。
- 数据帧:每个消息块(Block)包含长度、控制字节、数据内容和校验和。
- 多块消息:大消息需拆分为多个 Block,通过控制字节中的块序号(Block Number)重组。
- 流控:依赖 RTS/CTS 硬件握手或 XON/XOFF 软件流控。
2.1.2 HSMS:以太网时代的标准
HSMS(High-Speed SECS Message Services)定义在 SEMI E37 标准中,基于 TCP/IP 协议栈。它取代 SECS-I 成为主流,主要优势如下:
| 特性 | SECS-I (E4) | HSMS (E37) |
|---|---|---|
| 物理介质 | RS-232C 串口 | 以太网 (TCP/IP) |
| 传输速率 | 9600 ~ 38400 bps | 10/100/1000 Mbps |
| 连接拓扑 | 点对点 | 点对点 / 星型 / 多路 |
| 消息分块 | 硬件分块(Block) | TCP 流自动重组 |
| 连接管理 | 物理线缆通断 | Select / Deselect / Linktest |
| 最大消息长度 | 受限于块序号(最多 32767 块) | 受限于 TCP 缓冲区(通常 4 MB+) |
| 标准编号 | SEMI E4 | SEMI E37 |
2.1.3 HSMS 连接状态机
HSMS 定义了明确的连接状态,用于管理 TCP 连接的生命周期。下图展示了 HSMS 的核心状态转换:
2.2 消息类型:Primary 与 Secondary
SECS/GEM 协议中,所有消息分为两类:Primary Message(主消息)和 Secondary Message(副消息)。这是理解事务(Transaction)的基础。
2.2.1 定义与角色
- Primary Message:由通信一方主动发送,用于发起一个操作请求。例如:设备向主机发送“数据收集请求”。
- Secondary Message:作为对 Primary Message 的响应,由接收方回复。例如:主机回复“数据收集确认”。
2.2.2 消息头中的标识
在 SECS-II 消息头中,通过 W-bit(Wait-bit)来区分消息类型:
| W-bit 值 | 消息类型 | 含义 |
|---|---|---|
| 1 | Primary | 发送方期望收到回复(Secondary) |
| 0 | Secondary | 作为对 Primary 的回复,不再期望进一步回复 |
示例:主机发送 S1F1(Are You There)时,W-bit = 1,表示这是 Primary;设备回复 S1F2(Are You There Data)时,W-bit = 0,表示这是 Secondary。
2.3 事务(Transaction)与消息 ID
事务是 SECS/GEM 协议中最重要的概念之一,它确保请求与响应能够正确配对。
2.3.1 事务的定义
一个 Transaction(事务)由一对 Primary 和 Secondary 消息组成。Primary 发起事务,Secondary 结束事务。事务通过 Message ID(消息 ID)进行关联。
2.3.2 消息 ID(Message ID)
消息 ID 是事务的唯一标识符,位于 SECS-II 消息头的第 5-6 字节(System Bytes)。其核心规则如下:
- 范围:0 ~ 65535(16 位无符号整数)。
- 唯一性:在同一通信方向上,同一时刻不能有两个未完成的事务使用相同的 Message ID。
- 循环使用:ID 用尽后从 0 重新开始,但必须确保旧事务已关闭。
- 配对规则:Secondary 消息必须复制 Primary 消息的 Message ID。
2.3.3 多事务并发
HSMS 支持多个事务同时进行,只要它们的 Message ID 不同。例如:
| 时间 | 方向 | 消息 | Message ID | 事务状态 |
|---|---|---|---|---|
| T1 | 主机 → 设备 | S1F1 (Primary) | 10 | 等待回复 |
| T2 | 主机 → 设备 | S2F17 (Primary) | 11 | 等待回复 |
| T3 | 设备 → 主机 | S1F2 (Secondary) | 10 | 事务 10 完成 |
| T4 | 设备 → 主机 | S2F18 (Secondary) | 11 | 事务 11 完成 |
这种并发机制使得主机可以在等待设备回复的同时,继续发送其他请求,大幅提升通信效率。
2.4 本章小结
- HSMS vs SECS-I:HSMS 基于 TCP/IP,速率高、连接管理灵活,是现代产线首选;SECS-I 仅用于遗留系统。
- Primary / Secondary:Primary 发起请求(W-bit=1),Secondary 回复响应(W-bit=0)。
- Transaction:由一对 Primary + Secondary 组成,通过 Message ID 关联。
- Message ID:16 位唯一标识,用于事务匹配和并发管理。