3. SECS-I 与 RS-232:传统串口通信原理、报文格式与 HSMS 对比

在 SECS/GEM 协议栈中,SECS-I 是定义在物理层与数据链路层之间的传输协议,它直接运行在 RS-232 串行通信接口之上。尽管现代半导体工厂已大量转向高速以太网(HSMS),但理解 SECS-I 仍然是掌握协议栈底层机制的关键。本节将深入剖析 RS-232 物理特性、SECS-I 报文帧结构,并通过与 HSMS 的全面对比,帮助你在实际系统集成中做出正确的传输层选型。

学习提示:SECS-I 并非单纯的“串口协议”,它定义了完整的块传输、超时重传与流控制机制。即使你未来的项目全部使用 HSMS,SECS-I 的设计思想(如块号、系统字节)仍然贯穿于整个 SECS-II 消息层。

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 位,无校验或奇校验。

集成避坑:在 MES 对接老旧设备时,务必确认设备端的 DTE/DCE 角色。主机侧通常为 DTE,设备侧为 DCE。若两端角色相同,需要使用交叉串口线(Null Modem)。

3.1.2 RS-232 帧格式

RS-232 以字节为单位传输,每个字节包含:1 个起始位(0)、5~8 个数据位、可选的 1 个校验位、1 个或 2 个停止位(1)。SECS-I 规定使用 7 位数据位 + 奇校验 + 1 位停止位 的标准格式。

RS-232 字节帧格式(7E1) 起始位 0 数据位 bit0~bit6 校验位 奇校验 停止位 1 下一个字节 重复帧结构 SECS-I 强制使用 7 位数据位 + 奇校验,确保字节传输的完整性。

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 消息数据
关键字段解析:Block Number 的 bit15(最高位)作为“结束位”标志。当该位为 1 时,表示当前块是消息的最后一个块。例如:块号 0x8001 表示第 1 块且是最后一块(单块消息);块号 0x0001 表示第 1 块,后续还有块。

3.2.2 多块消息传输流程

当 SECS-II 消息长度超过 244 字节时,SECS-I 将其拆分为多个块传输。接收方根据块号重组完整消息。

SECS-I 多块消息传输流程 发送方(设备) 接收方(主机) 块1 (Block#=0x0001) ACK (块1) 块2 (Block#=0x0002) ACK (块2) 最后块 (Block#=0x8003) 重组完整消息 发送方

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 协议栈层级对比

SECS-I vs HSMS 协议栈层级对比 SECS-II (消息层) SECS-I (块传输层) RS-232 (物理层) SECS-II (消息层) HSMS (会话/传输层) TCP/IP (网络层) 相同消息层 不同传输层 不同物理层 SECS-I 和 HSMS 共享相同的 SECS-II 消息层,因此上层应用代码可以复用,仅需更换传输层适配器。

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 的百毫秒级延迟,适用于需要快速响应的场景(如晶圆对准、机械手控制)。
实战建议:在新建工厂或设备升级项目中,优先选择 HSMS。对于必须保留的 SECS-I 设备,建议在 MES 侧使用串口服务器(如 MOXA NPort 系列)将 RS-232 转换为 TCP/IP,统一采用 HSMS 协议与 MES 通信,降低集成复杂度。

3.4 本章小结

SECS-I 作为 SECS/GEM 协议栈的传统传输层,建立在 RS-232 串口通信之上,通过块结构、块号管理和超时重传机制实现了可靠的数据传输。与 HSMS 相比,SECS-I 在速率、连接管理和扩展性方面存在明显局限,但其设计思想(如系统字节、块号标志)为理解整个协议栈奠定了基础。在实际系统集成中,应根据设备能力、数据量和网络环境合理选择传输层方案,必要时通过协议转换实现新旧系统的平滑过渡。