2. 物理层对比:RS-232串口通信原理、SECS I与HSMS物理层特性

这一章咱们聊聊最底层的物理连接。说白了,就是数据到底怎么从设备A跑到设备B的。SECS I和HSMS最大的区别,就在这一层。我见过不少工程师,协议栈调得飞起,结果发现是串口线没焊好,或者网口IP配错了——这种坑,咱们今天一次性讲清楚。

2.1 RS-232串口通信原理

RS-232,老古董了,但半导体厂里到处都是。SECS I就是基于这个标准。它的核心逻辑很简单:一根线发,一根线收,再加一根地线。

为什么还要讲这个?因为很多老设备,尤其是1990年代引进的刻蚀机、扩散炉,只认RS-232。你没法跳过它。

2.1.1 电气特性

  • 电压范围:逻辑“1”是 -3V ~ -15V,逻辑“0”是 +3V ~ +15V。跟现在常用的TTL电平(0V/3.3V)完全相反。
  • 传输距离:理论最大15米。实际项目中,我建议控制在10米以内。超过这个距离,信号就开始飘了。
  • 连接器:最常见的是DB9公头/母头。引脚定义你得记清楚:2脚是RXD(接收),3脚是TXD(发送),5脚是GND(地)。
我曾经踩过的坑: 有一次现场调试,设备死活连不上。查了半天,发现是DB9的2脚和3脚焊反了。RS-232有直连线和交叉线之分,设备端如果是DTE(数据终端设备),你就得用交叉线。这个细节,采购线缆时一定要确认。

2.1.2 通信流程

RS-232是异步串行通信。什么意思?就是没有单独的时钟线。收发双方得约定好速度(波特率),然后靠起始位和停止位来同步。

  1. 空闲状态:线路保持为逻辑“1”(负电压)。
  2. 起始位:发送方将线路拉低为逻辑“0”(正电压),持续一个位时间。告诉接收方:“我要开始发了”。
  3. 数据位:从最低位(LSB)开始,逐位发送数据。通常是7位或8位。
  4. 校验位:可选。用于简单的错误检测。
  5. 停止位:线路恢复为逻辑“1”,持续1位、1.5位或2位时间。告诉接收方:“这一帧结束了”。

2.2 SECS I物理层特性

SECS I直接跑在RS-232上面。它没有额外的物理层芯片,就是纯串口。所以,它的所有参数都跟RS-232绑定。

2.2.1 关键参数

参数 SECS I 标准值 我的建议
波特率 9600 bps(最常见)
也可选 19200, 38400
新项目我建议用 19200。9600太慢,38400在长线缆下容易丢包。
数据位 7位 或 8位 如果传输ASCII字符,7位够用。如果传二进制数据,必须用8位。我个人习惯统一用8位,省心。
校验位 偶校验(Even)或无校验(None) 建议用偶校验。多一层保护,开销很小。
停止位 1位 1位就够了。用2位纯粹浪费带宽。

2.2.2 硬件握手

SECS I标准里提到了RTS/CTS硬件流控。但说实话,我在实际项目中很少用。大部分设备直接短接RTS和CTS,或者干脆不接。为什么?因为SECS I协议层有自己的流量控制(比如等待S9F9消息),硬件流控反而容易出兼容性问题。

避坑指南: 如果你遇到设备通信时好时坏,先检查串口线缆长度。我曾经在一条15米的线上跑19200波特率,结果每天下午3点准时丢包——后来发现是车间空调启动导致电源干扰。换成屏蔽双绞线,问题解决。

2.3 HSMS物理层特性

HSMS就现代多了。它跑在TCP/IP网络上。说白了,就是把SECS消息封装成TCP数据包,通过以太网传输。

2.3.1 网络基础

  • 传输层协议:TCP。面向连接,保证数据按序到达。
  • 网络层协议:IPv4(主流),IPv6(极少见)。
  • 物理介质:标准以太网,100BASE-TX(百兆)或1000BASE-T(千兆)。

2.3.2 端口号

HSMS标准定义了两种端口模式,这个你得记清楚:

模式 端口号 说明
被动模式(Passive) 5000 设备作为TCP Server,监听5000端口。主机作为Client主动连接。
主动模式(Active) 任意(通常 > 1024) 设备作为TCP Client,主动连接主机的指定端口。

为什么是5000?我查过SEMI标准,没找到特别明确的理由。但行业里都这么用,你也就别改了。我见过有人改成5001,结果IT部门防火墙策略没更新,折腾了两天。

2.3.3 连接建立流程

HSMS的连接建立,比SECS I复杂一些。它需要先建立TCP连接,再建立HSMS会话。

  1. TCP三次握手:SYN -> SYN-ACK -> ACK。这是TCP/IP协议栈自动完成的。
  2. HSMS Select请求:主机发送Select.req消息,请求建立HSMS会话。
  3. HSMS Select响应:设备回复Select.rsp,确认会话建立。
关键区别: SECS I的物理层连接是“一直在线”的。只要串口线连着,物理层就是通的。HSMS则不同,TCP连接可能因为网络问题断开,你需要处理重连逻辑。我在项目中通常会加一个心跳机制,每10秒发一条Linktest.req,确保连接活着。

2.4 核心对比:SECS I vs HSMS 物理层

咱们用一张表把区别说清楚:

对比项 SECS I HSMS
物理介质 RS-232串口线(DB9) 以太网线(RJ45)
最大距离 15米(实际建议10米) 100米(交换机级联可扩展)
传输速率 9600 ~ 38400 bps 100 Mbps 或更高
连接方式 点对点,物理直连 点对点或通过网络交换机
错误检测 校验位(可选) TCP校验和 + 重传机制
抗干扰能力 弱(共模干扰敏感) 强(差分信号 + 隔离变压器)
标准端口 无(物理接口) 5000(被动模式)

你想想看,SECS I就像一条乡间小路,只能走一辆车,速度慢,但简单可靠。HSMS就像高速公路,速度快,容量大,但需要配套的交通管理(交换机、路由器、防火墙)。

2.5 选型建议

到底选哪个?我个人的经验是:

  • 选SECS I:设备老旧,只有串口;或者现场环境极其简单,就一台设备连一台主机。
  • 选HSMS:新项目;设备数量多;需要远程监控;或者车间已经有完善的网络基础设施。
注意: 有些设备同时支持SECS I和HSMS。但切换模式通常需要修改设备内部的配置文件,甚至重启设备。我建议你在项目初期就定下来,不要中途切换,否则验证工作量会翻倍。
SECS I 与 HSMS 物理层对比结构图 SECS I 物理层 物理介质:RS-232 串口线 (DB9) 传输速率:9600 ~ 38400 bps 连接方式:点对点,物理直连 错误检测:校验位 (可选) 最大距离:15米 (建议10米) HSMS 物理层 物理介质:以太网线 (RJ45) 传输速率:100 Mbps 或更高 连接方式:点对点 / 网络交换机 错误检测:TCP校验和 + 重传 最大距离:100米 (可扩展) 选型核心:看设备年代和车间网络基础设施