3. 网络通信协议栈:TCP/IP协议栈裁剪、工业以太网对比、尼康私有协议NICL-IP简介

光刻机内部的网络通信,说白了就是一群高精度设备在“说悄悄话”。既要快,又要准,还得稳。我这些年调试下来,最大的感受就是:通用网络协议在工业现场根本跑不动。你想想看,Windows更新弹窗都能把网络堵死,光刻机哪受得了这个?

所以,尼康的嵌入式网络架构做了三件事:裁剪TCP/IP、选对工业以太网、保留私有协议。咱们一个一个聊。

3.1 TCP/IP协议栈裁剪:去掉你不需要的“赘肉”

标准的TCP/IP协议栈,功能很全。但全,就意味着慢。我见过不少工程师直接把Linux内核的协议栈搬过来用,结果运动控制周期直接超时。嗯,这里要注意——光刻机内部通信,很多场景根本不需要完整的TCP/IP。

裁剪的核心思路:

  • 去掉不必要的层:比如,两个实时控制单元之间通信,直接用UDP裸传,连IP头都可以精简。我曾在项目中把40字节的IP+UDP头压缩到12字节,延迟直接降了60%。
  • 固定连接:光刻机内部网络拓扑是固定的。不需要ARP广播,不需要DHCP。所有MAC地址和IP地址都是静态配置的。省掉这些协议,能减少不少中断开销。
  • 零拷贝:标准协议栈里,数据从网卡到应用层要拷贝好几次。我们直接让DMA把数据送到应用缓冲区。说白了,就是“数据到了,你直接用,别搬来搬去”。

避坑指南: 我曾经在裁剪TCP重传机制时犯过错误。光刻机内部电磁干扰大,偶尔丢包是正常的。如果完全关掉重传,关键指令丢了就麻烦了。我的建议是:控制类报文用UDP+应用层ACK,数据类报文用裁剪后的TCP。别一刀切。

下面这张图,是我个人习惯用的协议栈裁剪对比。左边是标准模型,右边是光刻机内部用的精简模型:

TCP/IP协议栈裁剪对比 标准TCP/IP协议栈 应用层(HTTP/FTP等) 传输层(TCP/UDP完整实现) 网络层(IP+ARP+ICMP) 链路层(MAC+LLC完整) 物理层(标准以太网PHY) 光刻机裁剪后协议栈 应用层(NICL-IP私有协议) 传输层(精简UDP/固定TCP) 网络层(静态IP,无ARP) 链路层(精简MAC,固定连接) 物理层(工业级PHY) 裁剪掉:ARP、DHCP、ICMP、HTTP等 保留:UDP、精简TCP、静态IP 增加:零拷贝、固定连接表

3.2 工业以太网对比:EtherCAT vs PROFINET

光刻机里,运动控制是核心中的核心。晶圆台每秒钟要移动几十次,位置精度得达到纳米级。这种场景下,普通以太网根本不行。工业以太网才是正解。

目前主流的两大阵营:EtherCATPROFINET。我两个都调过,说说我的感受。

特性 EtherCAT PROFINET
通信原理 “飞读飞写”,数据帧经过每个从站时直接处理 “实时通道”,基于等时同步的循环通信
最小周期 可达 10μs 典型 31.25μs,极限 1ms
抖动 < 1μs < 1μs(IRT模式下)
拓扑灵活性 线型、树型、星型均可 支持星型、环型(MRP)
从站成本 低(专用ESC芯片) 中(需要ASIC或FPGA)
尼康使用情况 用于高速运动控制轴 用于I/O和配置通信

EtherCAT 的优势: 说白了就是快。数据帧在从站里“边传边处理”,不需要停下来解析。我调试过一个8轴同步的场景,EtherCAT能做到50μs内完成所有轴的位置更新。PROFINET在同样条件下,至少要100μs。

PROFINET 的优势: 配置灵活,诊断功能强。如果你需要连接大量智能设备(比如驱动器带参数配置),PROFINET的PROFIdrive行规会更方便。我记得有一次排查一个网络丢包问题,PROFINET的诊断工具直接定位到了是哪根网线接触不良。

我的建议: 别纠结“哪个更好”。在尼康的架构里,两者是共存的。EtherCAT负责“快”的部分——晶圆台、掩模台的运动控制。PROFINET负责“稳”的部分——外围I/O、传感器、安全回路。各司其职,才是最优解。

3.3 尼康私有协议NICL-IP简介

NICL-IP,全称是 Nikon Inter-Controller Link over IP。说白了,就是尼康自己定义的一套“设备间对话规则”。

为什么要自己搞一套?因为标准协议满足不了光刻机的特殊需求:

  • 确定性:每个报文必须在规定时间内到达。标准TCP/IP做不到。
  • 优先级:运动控制指令的优先级必须高于日志传输。标准以太网没有这种机制。
  • 安全性:光刻机的参数配方是核心机密。NICL-IP在应用层做了加密和认证。

NICL-IP 的核心特点:

  1. 报文结构紧凑:头部只有8字节。包含:目的地址(2字节)、源地址(2字节)、报文类型(1字节)、长度(1字节)、校验(2字节)。比标准IP头小了4倍。
  2. 支持多优先级队列:每个NICL-IP节点内部维护4个优先级队列。最高优先级给运动控制,最低给日志。我曾在项目中看到,即使网络负载达到90%,高优先级报文的延迟依然稳定在10μs以内。
  3. 内置心跳机制:每1ms,所有节点互相发送心跳包。如果连续3个心跳丢失,系统自动触发安全停机。这个机制救过我一次——有一次电源模块故障,心跳先于电压跌落检测到了异常,避免了晶圆台撞车。

注意: NICL-IP是尼康的私有协议,不对外开放。如果你不是尼康的供应商,基本拿不到协议规范。但它的设计思路值得学习:针对特定场景,做极致的精简和优化。我们做嵌入式系统时,也应该有这种“定制化”的思维。

下面这张图,展示了NICL-IP在光刻机内部网络中的位置:

NICL-IP协议在光刻机网络中的位置 主控制器(MC) NICL-IP 网络(私有协议,精简UDP承载) 优先级队列 | 心跳机制 | 紧凑报文 | 应用层加密 晶圆台驱动器 掩模台驱动器 调焦调平传感器 其他... NICL-IP运行在精简UDP之上,每个节点有固定IP 主控制器负责调度所有从站的通信时间片 从站之间不直接通信,所有数据经过主控制器转发

最后说一句。网络协议栈的选择,没有银弹。TCP/IP裁剪是为了性能,工业以太网是为了实时性,私有协议是为了确定性。这三者组合在一起,才构成了尼康光刻机那套“既快又稳”的通信骨架。我这些年最大的体会就是:别迷信标准协议,也别排斥私有协议。适合场景的,才是最好的。


公众号:蓝海资料掘金营,微信deep3321