2. SECS-I物理层与传输:RS-232C串行通信标准、SECS-I报文格式、块传输协议与校验机制

SECS-I(SEMI Equipment Communications Standard 1)是SECS/GEM协议栈中最底层的物理与数据链路层标准。它定义了设备与主机之间如何通过物理介质进行原始比特流的传输,以及如何将上层(SECS-II)的消息封装成数据块进行可靠传递。本章将深入剖析其物理层标准、报文帧格式、块传输协议以及关键的校验机制。

2.1 RS-232C串行通信标准

SECS-I最初且最广泛使用的物理层标准是RS-232C。它定义了连接器、信号电平、引脚定义和传输速率等电气与机械特性。

2.1.1 关键电气特性

参数 规格 说明
信号电平(逻辑0) +3V ~ +15V 表示“空格”(Space)或“ON”状态
信号电平(逻辑1) -3V ~ -15V 表示“传号”(Mark)或“OFF”状态
传输模式 全双工 可同时发送和接收数据
最大电缆长度 约15米(50英尺) 受限于电容负载,实际应用中常使用短距离
最大数据速率 通常为9600 bps或19200 bps SEMI标准中常见,但可支持更高速率

2.1.2 连接器与引脚定义

SECS-I标准规定使用DB-25连接器,但在实际半导体设备中,DB-9连接器也极为常见。以下是关键的信号引脚定义:

  • 引脚2 (TXD):发送数据(Transmit Data)
  • 引脚3 (RXD):接收数据(Receive Data)
  • 引脚7 (GND):信号地(Signal Ground)
  • 引脚4 (RTS):请求发送(Request to Send)
  • 引脚5 (CTS):清除发送(Clear to Send)
  • 引脚6 (DSR):数据设备就绪(Data Set Ready)
  • 引脚20 (DTR):数据终端就绪(Data Terminal Ready)
工程实践提示: 在SECS-I通信中,通常采用“三线制”(TXD、RXD、GND)即可实现基本通信。硬件握手信号(RTS/CTS、DTR/DSR)并非强制要求,但在长距离或高噪声环境下,使用硬件流控可以提高通信可靠性。

2.1.3 RS-232C通信链路示意图

下图展示了SECS-I设备(如半导体工艺设备)与主机(Host)之间通过RS-232C建立的全双工点对点连接。

SECS-I RS-232C 物理层连接示意图 半导体设备 (Equipment) DB-25 / DB-9 主机 (Host) DB-25 / DB-9 TXD (引脚2) → RXD (引脚2) RXD (引脚3) ← TXD (引脚3) GND (引脚7) — GND (引脚7) 全双工通信:设备与主机可同时发送和接收数据,无需切换方向

2.2 SECS-I报文格式

SECS-I定义了在RS-232C链路上传输的基本数据单元——报文(Message)。一个完整的SECS-I报文由多个数据块(Block)组成,每个数据块都有严格的帧结构。

2.2.1 数据块(Block)帧结构

每个数据块是SECS-I传输的最小独立单元,其帧格式如下:

字段 长度(字节) 描述
长度字节(Length Byte) 1 表示该数据块中后续数据的总长度(包括设备ID、控制字节等,但不包括长度字节本身和校验和)
设备ID(Device ID) 1 标识目标设备或主机,用于多设备总线拓扑(较少用)
控制字节(Control Byte) 1 包含块号、是否最后一块、是否需要回复等控制信息
数据域(Data Field) 0~244 承载SECS-II消息内容,最大长度为244字节
校验和(Checksum) 2 对整个数据块(从长度字节到数据域末尾)进行CRC-16校验

2.2.2 控制字节详解

控制字节是SECS-I协议的核心,它按位定义了数据块的属性:

  • Bit 7 (R-bit):请求位。置1表示发送方请求接收方回复一个确认块。
  • Bit 6 (E-bit):结束位。置1表示当前数据块是该报文的最后一个块。
  • Bit 5-0 (Block Number):块号。取值范围0~63,用于标识数据块在报文中的顺序。
关键概念: 一个SECS-I报文可能由多个数据块组成。接收方通过检查E-bit来判断报文是否接收完毕。如果E-bit为0,则接收方需等待后续数据块;如果E-bit为1,则报文结束,可以开始组装SECS-II消息。

2.3 块传输协议与校验机制

SECS-I的块传输协议是一种基于停止-等待(Stop-and-Wait)的可靠传输机制。它通过确认和重传来保证数据块的无差错传递。

2.3.1 块传输流程

  1. 发送数据块:发送方发送一个数据块,并启动超时计时器(T3)。
  2. 等待确认:发送方等待接收方返回一个确认块(ACK或NAK)。
  3. 接收确认:
    • 如果收到ACK(确认正确),发送方发送下一个数据块。
    • 如果收到NAK(确认错误)或超时,发送方重传当前数据块。
  4. 重复:重复上述步骤,直到整个报文的所有数据块都被成功确认。

2.3.2 确认块(ACK/NAK)格式

确认块是一种特殊的数据块,其长度固定为4个字节:

  • 长度字节:固定为0x02(表示后续有2个字节)。
  • 设备ID:与原始数据块相同。
  • 控制字节:包含被确认数据块的块号,以及ACK/NAK标志。
  • 校验和:2字节CRC-16。

2.3.3 CRC-16校验机制

SECS-I使用CRC-16(Cyclic Redundancy Check)算法来检测传输错误。其生成多项式为:

G(x) = x^16 + x^15 + x^2 + 1

校验和的计算覆盖整个数据块(从长度字节到数据域末尾)。接收方计算收到的数据块的CRC值,并与数据块末尾的2字节校验和进行比较。如果一致,则认为数据块无差错;否则,发送NAK请求重传。

2.3.4 块传输协议流程图

下图展示了SECS-I块传输协议的完整交互过程,包括正常传输和错误重传场景。

SECS-I 块传输协议流程图 发送方 (Sender) 接收方 (Receiver) 1. 发送数据块 (Block N) 2. 校验CRC 3. 发送 ACK (确认正确) 4. 发送下一个数据块 (Block N+1) 5. 发送数据块 (Block M) 数据块传输中发生错误 6. CRC校验失败 7. 发送 NAK (请求重传) 8. 重传数据块 (Block M) 重传后接收方再次校验 停止-等待协议:发送方必须等待ACK/NAK才能发送下一个块,确保数据有序可靠

2.4 超时与重传策略

SECS-I定义了多个超时定时器来保证协议的健壮性:

定时器 默认值 触发条件 动作
T3 45秒 发送数据块后等待ACK/NAK 重传数据块,最多重试次数由系统配置决定
T4 45秒 接收方等待下一个数据块 如果报文未结束(E-bit=0),则丢弃已接收的部分报文
T5 10秒 连接建立后等待对方就绪 断开连接并报告错误
工程注意事项: 超时时间的设置需要根据实际通信链路的质量和负载进行调整。过短的超时时间会导致不必要的重传,增加网络负载;过长的超时时间则会降低系统响应速度。在半导体制造环境中,通常建议T3和T4设置为30~60秒。

2.5 本章小结

SECS-I作为SECS/GEM协议栈的基石,通过RS-232C物理层实现了设备与主机之间的点对点串行通信。其精心设计的报文帧结构、停止-等待块传输协议以及CRC-16校验机制,共同保证了在工业噪声环境下数据传输的可靠性和完整性。理解SECS-I的这些底层机制,对于后续学习SECS-II消息编码和GEM状态机至关重要。