3. SECS-I 与 RS-232:传统串口通信原理、报文格式与 HSMS 对比
在 SECS/GEM 协议栈中,SECS-I 是定义在物理层与数据链路层之间的传输协议,它直接运行在 RS-232 串行通信接口之上。尽管现代半导体工厂已大量转向高速以太网(HSMS),但理解 SECS-I 仍然是掌握协议栈底层机制的关键。本节将深入剖析 RS-232 物理特性、SECS-I 报文帧结构,并通过与 HSMS 的全面对比,帮助你在实际系统集成中做出正确的传输层选型。
3.1 RS-232 串口通信原理
RS-232 是 SECS-I 的物理层载体。在半导体设备中,它通常以 DB-25 或 DB-9 连接器形式出现,采用全双工、点对点异步串行通信。
3.1.1 电气特性与信号定义
| 信号名称 | DB-25 引脚 | 方向 | 功能说明 |
|---|---|---|---|
| TxD (发送数据) | 2 | DTE → DCE | 设备发送数据给主机 |
| RxD (接收数据) | 3 | DCE → DTE | 设备从主机接收数据 |
| RTS (请求发送) | 4 | DTE → DCE | 设备请求发送数据 |
| CTS (清除发送) | 5 | DCE → DTE | 主机允许设备发送 |
| GND (信号地) | 7 | — | 参考地,所有信号共用 |
SECS-I 通常使用 3 线制(TxD、RxD、GND)或 5 线制(增加 RTS/CTS 硬件流控)连接。波特率常见为 9600 bps 或 19200 bps,数据位 7 位或 8 位,停止位 1 位,无校验或奇校验。
3.1.2 RS-232 帧格式
RS-232 以字节为单位传输,每个字节包含:1 个起始位(0)、5~8 个数据位、可选的 1 个校验位、1 个或 2 个停止位(1)。SECS-I 规定使用 7 位数据位 + 奇校验 + 1 位停止位 的标准格式。
3.2 SECS-I 报文格式详解
SECS-I 在 RS-232 字节流之上定义了 块(Block) 的概念。一个完整的 SECS-I 消息由多个块组成,每个块是独立传输的最小数据单元。
3.2.1 块结构(Block Format)
每个 SECS-I 块包含 10 个字节 的头部和 0~244 字节 的数据体,总长度不超过 254 字节。
| 字节偏移 | 字段名称 | 长度(字节) | 说明 |
|---|---|---|---|
| 0 | Length Byte | 1 | 数据体长度(0~244),不含头部 |
| 1 | Device ID | 1 | 设备标识,bit7 为控制位,bit6~0 为设备号 |
| 2 | Block Number (High) | 1 | 块号高字节 |
| 3 | Block Number (Low) | 1 | 块号低字节,0x8000 表示最后一块 |
| 4 | System Bytes (High) | 1 | 系统字节高字节,用于消息匹配 |
| 5 | System Bytes | 1 | 系统字节 |
| 6 | System Bytes | 1 | 系统字节 |
| 7 | System Bytes (Low) | 1 | 系统字节低字节 |
| 8 | Header Flag | 1 | 头部标志,固定 0x00 或 0x01 |
| 9 | Reserved / Parity | 1 | 保留字节或块校验 |
| 10~N | Data | 0~244 | SECS-II 消息数据 |
3.2.2 多块消息传输流程
当 SECS-II 消息长度超过 244 字节时,SECS-I 将其拆分为多个块传输。接收方根据块号重组完整消息。
3.2.3 超时与重传机制
SECS-I 定义了 4 个关键超时定时器,确保串口通信的可靠性:
| 定时器 | 默认值 | 触发条件 | 动作 |
|---|---|---|---|
| T1 | 1.0 秒 | 发送块后等待 ACK | 重传当前块,最多 3 次 |
| T2 | 10.0 秒 | 接收块间间隔 | 丢弃已接收的块,重置连接 |
| T3 | 45.0 秒 | 等待完整消息 | 丢弃消息,发送错误通知 |
| T4 | 5.0 秒 | 连接建立等待 | 连接失败,报告错误 |
3.3 SECS-I 与 HSMS 的全面对比
HSMS(High-Speed SECS Message Services)是 SECS-I 的以太网替代方案。两者在传输层、性能、连接管理等方面存在显著差异。
3.3.1 协议栈层级对比
3.3.2 核心差异对比表
| 对比维度 | SECS-I (RS-232) | HSMS (TCP/IP) |
|---|---|---|
| 物理介质 | 串行电缆(最长 15m) | 以太网(最长 100m/段) |
| 传输速率 | 9600~19200 bps | 10/100/1000 Mbps |
| 最大消息长度 | 受块数限制(理论无上限) | 4GB(32位长度字段) |
| 连接方式 | 点对点,固定连接 | 点对点或网络多路 |
| 连接管理 | 无显式连接握手 | Select/Deselect 会话管理 |
| 错误检测 | 奇校验 + 块校验 | TCP 校验和 + 可选 CRC |
| 流控制 | 硬件流控 (RTS/CTS) 或 XON/XOFF | TCP 滑动窗口 |
| 并发连接 | 不支持 | 支持多会话 |
| 典型应用场景 | 老旧设备、低速传感器 | 现代设备、高速数据采集 |
3.3.3 选型决策指南
在实际 MES 集成项目中,选择 SECS-I 还是 HSMS 取决于以下因素:
- 设备硬件能力:若设备仅提供 RS-232 接口且无法升级,则必须使用 SECS-I。部分设备可通过串口转以太网转换器桥接,但会增加延迟和故障点。
- 数据量需求:对于频繁上传大批量工艺参数(如膜厚测量、缺陷图谱)的场景,HSMS 是唯一可行的选择。SECS-I 在 9600 bps 下传输 1MB 数据需要约 15 分钟。
- 网络拓扑:若需要一台主机管理多台设备,HSMS 的 TCP/IP 网络支持更灵活。SECS-I 需要每个设备独占一个串口。
- 实时性要求:HSMS 的毫秒级延迟远优于 SECS-I 的百毫秒级延迟,适用于需要快速响应的场景(如晶圆对准、机械手控制)。
3.4 本章小结
SECS-I 作为 SECS/GEM 协议栈的传统传输层,建立在 RS-232 串口通信之上,通过块结构、块号管理和超时重传机制实现了可靠的数据传输。与 HSMS 相比,SECS-I 在速率、连接管理和扩展性方面存在明显局限,但其设计思想(如系统字节、块号标志)为理解整个协议栈奠定了基础。在实际系统集成中,应根据设备能力、数据量和网络环境合理选择传输层方案,必要时通过协议转换实现新旧系统的平滑过渡。