4. 通信链路建立流程:物理层连接、TCP三次握手、HSMS连接建立
通信链路是SECS/GEM设备与主机(Host)之间数据交换的物理与逻辑通道。链路建立过程分为三个层次:物理层就绪、TCP传输层连接、HSMS会话层握手。任何一层失败都会导致设备无法进入通信状态,触发状态机异常恢复流程。
4.1 物理层连接
物理层是链路建立的基础,确保设备与主机之间具备电气与介质连通性。常见物理层形态包括:
| 物理介质 | 典型场景 | 关键检查项 |
|---|---|---|
| 以太网(RJ45) | 半导体工厂局域网 | 网线插拔状态、端口LED指示灯、交换机VLAN配置 |
| 串口(RS-232/RS-485) | 老旧设备或短距离直连 | 波特率匹配、流控设置、线缆长度 |
| 光纤 | 高噪声、长距离车间 | 光模块收发功率、光纤弯曲半径 |
工程经验:物理层故障是链路重连中最容易被忽略的根因。建议在设备端和主机端同时执行
ping 测试,确认IP层可达性;若ping不通,优先排查物理介质与交换机端口状态。
4.2 TCP三次握手
在物理层就绪后,设备与主机通过TCP协议建立可靠的传输通道。TCP三次握手确保双方均具备收发能力,并同步初始序列号(ISN)。
- SYN(设备→主机):设备(主动方)发送SYN报文,携带初始序列号
seq=x,进入SYN_SENT状态。 - SYN+ACK(主机→设备):主机(被动方)收到SYN后回复SYN+ACK,确认号
ack=x+1,自身序列号seq=y,进入SYN_RCVD状态。 - ACK(设备→主机):设备收到SYN+ACK后发送ACK,确认号
ack=y+1,双方进入ESTABLISHED状态。
关键参数:TCP连接超时时间(通常为 3~10 秒)、重试次数(默认 3~5 次)。在HSMS重连逻辑中,若三次握手超时,设备应等待
t3 超时后重新发起连接,而非无限阻塞。
4.3 HSMS连接建立
TCP连接建立后,设备与主机需要在HSMS(High-Speed SECS Message Services)层面完成会话握手,确认双方SECS/GEM协议版本与通信能力。HSMS连接建立包含两个子步骤:
4.3.1 连接模式选择
HSMS支持两种连接模式,设备需根据配置选择:
| 模式 | 主动方 | 典型场景 |
|---|---|---|
| 主动模式(Active) | 设备主动连接主机 | 设备上电后自动注册到主机 |
| 被动模式(Passive) | 主机主动连接设备 | 主机集中管理,设备等待连接 |
注意:在异常恢复场景中,设备通常配置为主动模式。若设备在被动模式下等待主机连接,而主机因故障未发起连接,设备将长时间处于
NOT_CONNECTED 状态,无法自动恢复。建议关键设备使用主动模式并启用重连定时器。
4.3.2 HSMS握手消息交换
HSMS连接建立通过两条控制消息完成:
- Select.req(连接请求):设备(或主机)发送
S1F13消息,携带设备ID、通信版本号等信息,请求建立HSMS会话。 - Select.rsp(连接响应):接收方回复
S1F14消息,包含响应代码(0=成功,非0=失败),确认会话建立。
协议细节:HSMS握手使用SECS-I消息格式,消息头中
W-bit=0(非事务消息),Stream=1,Function=13/14。若 Select.rsp 返回非零代码,设备应记录错误码并触发重连逻辑。
4.4 链路建立完整流程总结
将物理层、TCP、HSMS三个层次串联,通信链路建立的完整步骤如下:
| 步骤 | 层次 | 动作 | 成功标志 | 失败处理 |
|---|---|---|---|---|
| 1 | 物理层 | 网线/光纤连接,交换机端口UP | 网口LED亮,ping通 | 检查物理介质、更换端口 |
| 2 | TCP | 三次握手(SYN→SYN+ACK→ACK) | socket状态 ESTABLISHED | 等待 t3 超时后重试 |
| 3 | HSMS | Select.req / Select.rsp 交换 | 收到 HC=0 的 Select.rsp | 记录错误码,重新发起Select |
| 4 | 应用层 | 可选:S1F1/S1F2 通信测试 | 收到 S1F2 响应 | 触发链路完整性检查 |
最佳实践:在设备固件中实现链路建立状态机,记录每个步骤的耗时与结果。当链路重连时,优先复用已有TCP连接(若未断开),仅重新执行HSMS握手,可减少50%以上的重连时间。