4. SECS-I串行通信基础

SECS-I(SEMI E4)是SECS/GEM体系中最早被标准化的传输层协议,它把SECS-II消息通过RS-232串行链路进行点对点传输。理解SECS-I,关键要抓住三层:物理层的电气与连接约束、链路层的块传输与握手时序、以及它与HSMS在工程选型上的分工。本节围绕这三层展开,并给出可直接对照的时序与参数示例。

一、RS-232物理层:连接与电气约束

SECS-I运行在RS-232(EIA-232)异步串行接口上,典型连接为设备(Equipment)与主机(Host)之间的点对点直连,最远距离约15米,速率通常取9600 bps,也可用19200、38400 bps。数据格式为8位数据位、1位停止位、无奇偶校验(8-N-1),这是SECS-I最常见的默认配置。物理层只负责把字节流可靠地送出去,不负责消息边界,边界由块传输协议定义。

RS-232使用负逻辑:逻辑1对应负电压(约-3V至-15V),逻辑0对应正电压(约+3V至+15V)。因此示波器上看到的空闲电平是高负电平,起始位是一个正脉冲。工程上必须使用交叉连接(TX→RX、RX→TX)并共地,硬件流控(RTS/CTS)在SECS-I中通常不使用,流量控制由协议层的握手完成。

二、块传输协议:消息如何被切分与重组

SECS-II消息长度可达数MB,而串行链路一次只能传有限字节,因此SECS-I把消息切成若干“块”(Block)。每个块由10字节块头加数据区组成,块头字段如下:

字段长度含义
设备ID2字节标识通信对端,通常为0或设备编号
消息ID4字节同一消息的所有块共享,用于重组
块号2字节从1开始递增,标识块顺序
系统字节1字节bit0=End(最后一块),bit1=Wait(等待确认)
块长度1字节数据区字节数,最大244

数据区最大244字节,因此单块总长最大254字节。接收方按消息ID和块号重组,直到收到End位为1的块。若某块丢失或校验失败,接收方不发送确认,发送方超时后重发该块。这就是SECS-I的“停等”式可靠传输。

三、握手时序:T1、T2、T3、T4与RTY

SECS-I用四个定时器约束交互节奏,工程调试中最常看的就是它们:

  • T1(块间超时):发送方等待接收方确认的时间,典型10秒。超时则重发当前块。
  • T2(接收方处理超时):接收方从收到块到发出确认的最大时间,典型10秒。
  • T3(发送方块间间隔):发送方在收到确认后到发送下一块之间的等待,典型45秒。
  • T4(接收方块间超时):接收方等待下一块的最大时间,典型45秒。
  • RTY(重试次数):单块最大重发次数,典型3次,超过则判定链路故障。

下面这张时序图展示一次“主机发消息、设备回确认”的完整握手过程,包含Wait位与End位的使用:

SECS-I 块传输握手时序(示例) Host Equipment Block 1 (MsgID=1001, BlockNo=1, End=0, Wait=1) 数据区 ≤244 字节 ACK (BlockNo=1) T2 内发出 Block 2 (MsgID=1001, BlockNo=2, End=1, Wait=1) 最后一块,End=1 ACK (BlockNo=2) Block 2 重发(T1 超时,RTY 计数 +1) T1 T3

图中可见:发送方每发一块,必须等接收方ACK后才发下一块;若T1内未收到ACK,则重发当前块并累加RTY。接收方在T2内必须回ACK,否则发送方会误判丢块。T3是发送方收到ACK后到发下一块之间的最小间隔,T4是接收方等待下一块的最大时间。工程上若T3/T4设置过小,容易出现“假丢块”;设置过大则吞吐下降。

四、与HSMS的对比及适用场景

HSMS(SEMI E37)是SECS-I的现代替代方案,运行在TCP/IP之上,支持多会话、高吞吐和长距离。两者核心差异如下:

维度SECS-IHSMS
物理层RS-232点对点TCP/IP以太网
传输单位块(≤254字节)消息(长度字段,可达4GB)
握手方式逐块停等ACKSelect/Deselect + 消息级确认
连接数1对1多会话(可多设备)
典型速率9.6–38.4 kbps10/100/1000 Mbps
距离≤15米不限(受网络影响)
适用场景老旧设备、低速率、点对点新设备、高速、多设备组网

选型建议:若设备仅支持RS-232且数据量小(如状态上报、简单配方),SECS-I足够;若需要高速传输、多设备并行或远程接入,应优先HSMS。实际产线中常见“SECS-I设备 + 协议转换器 + HSMS主机”的混合架构,转换器负责块与消息的映射。

调试提示:用串口监听工具抓包时,先确认波特率、数据位、停止位、校验位与设备一致;再观察块头的MsgID和BlockNo是否连续;若频繁重发,优先检查T1是否过小、线缆是否过长或存在电磁干扰。
常见误区:把SECS-I的“块”当成“消息”。一个SECS-II消息可能由多个块组成,只有End=1的块才代表消息结束。解析时若忽略End位,会把半条消息误判为完整消息。

总结来说,SECS-I是SECS/GEM的串行传输基石,理解RS-232电气约束、块头字段、T1–T4与RTY的配合,以及它与HSMS的取舍,是设备通信调试和协议选型的基本功。