3. 运动控制系统架构:上位机与下位机、实时操作系统(RTOS)、运动控制卡与驱动器
聊到光刻机的运动控制,很多人第一反应就是「精度高、速度快」。没错,但光有这两点还不够。你得先搞清楚,这些指令是怎么从你的电脑,一路跑到电机轴上的。
说白了,运动控制系统就是一套「大脑-脊髓-肌肉」的协作机制。我做了这么多年,见过太多人把精力全砸在算法上,结果系统架构没搭好,跑起来各种抖、各种丢步。嗯,架构才是地基。
3.1 上位机与下位机:谁说了算?
先讲分工。
上位机,一般是台工控机或者PC。它负责啥?宏观调度、人机交互、轨迹规划。它不直接碰电机,它只下命令。
下位机,就是运动控制卡或者嵌入式控制器。它负责啥?执行。接收上位机的轨迹指令,然后实时算插补、算PID、发脉冲。
我习惯把上位机比作「项目经理」,下位机是「施工队长」。项目经理说「明天把这块晶圆曝光完」,施工队长得盯着每一颗螺丝怎么拧。
这里有个坑。我曾经遇到一个项目,上位机直接去算插补,算完再发给下位机。结果呢?Windows系统一卡顿,轨迹就断了。工件台直接过冲,差点撞了。后来我强制要求:所有实时任务,必须交给下位机。上位机只管发目标位置,别管中间过程。
3.2 实时操作系统(RTOS):为什么非它不可?
你想想看,光刻机工件台在运动时,每毫秒都要采样位置、计算误差、输出控制量。如果这时候系统突然去处理个鼠标点击,或者去更新个界面,那控制周期就断了。
这就是为什么必须用RTOS。
RTOS跟Windows、Linux最大的区别是什么?确定性。它保证你设定的任务,一定在指定的时间片内完成。比如我设控制周期为200微秒,那RTOS就能保证每200微秒,控制任务准时跑一次。误差不超过几微秒。
我个人习惯用VxWorks或者开源的FreeRTOS。在尼康的早期机型里,我记得他们用的是VxWorks,后来有些新平台开始尝试Xenomai(一种Linux实时扩展)。
选型时要注意一点:中断响应时间。我曾经测试过某款RTOS,标称中断响应1微秒,实际负载一上来,抖到了15微秒。这种系统,根本不敢用在工件台上。
3.3 运动控制卡:核心中的核心
运动控制卡,就是下位机的物理载体。它上面跑着RTOS,负责所有实时计算。
一块好的运动控制卡,通常包含这几部分:
- 主控芯片:一般是DSP或FPGA,或者两者结合。DSP负责算法,FPGA负责高速IO和编码器接口。
- 编码器接口:读取光栅尺或激光干涉仪的位置信号。在光刻机里,通常是细分后的正弦波信号,分辨率能到纳米级。
- DAC/模拟量输出:把数字控制量转成模拟电压,发给驱动器。
- 数字IO:处理限位开关、急停、报警等信号。
我见过一些通用运动控制卡,直接拿来用。结果发现编码器接口的带宽不够,跟不上工件台的高速运动。后来我们专门定制了FPGA逻辑,把编码器采样率提到了10MHz以上。
这里给个简单的控制周期代码示意,跑在运动控制卡的DSP上:
// 伪代码:200微秒控制周期任务
void ControlTask(void)
{
while(1)
{
// 1. 读取编码器位置
pos_actual = ReadEncoder();
// 2. 计算位置误差
error = pos_target - pos_actual;
// 3. PID计算
output = PID_Calc(error);
// 4. 输出到DAC
WriteDAC(output);
// 5. 等待下一个周期
TaskDelay(200); // 单位:微秒
}
}
你看,就这么几行。但实际工程里,每一步都有坑。比如编码器读取,如果用了中断方式,中断优先级没设好,就会导致位置采样抖动。我建议用DMA或者FPGA直接硬件采样,别让CPU去轮询。
3.4 驱动器:把信号变成力
驱动器,也叫伺服驱动器。它接收运动控制卡发来的模拟量指令(比如±10V),然后驱动电机转动。
在光刻机里,驱动器通常工作在电流环模式。什么意思?就是控制卡告诉驱动器「我要这么多电流」,驱动器就老老实实输出对应的电流。至于速度环、位置环,都在控制卡里算好了。
我遇到过一个问题。某次调试,工件台在低速时抖动得厉害。查了半天,发现是驱动器的电流环带宽不够。控制卡发了个高频指令,驱动器跟不上,相位滞后了。后来换了带宽更高的驱动器,问题解决。
选驱动器时,我建议关注这几个参数:
| 参数 | 说明 | 光刻机要求 |
|---|---|---|
| 电流环带宽 | 驱动器能响应的最高频率 | ≥5kHz |
| PWM频率 | 功率管的开关频率 | ≥20kHz(避免人耳噪声) |
| 分辨率 | 指令输入的分辨率 | 16位以上 |
| 纹波 | 输出电流的噪声 | <0.1% |
3.5 整体架构图
说了这么多,咱们用一张图把整个架构串起来。我画了个简单的框图,你看看就明白了。
这张图里,信息流是双向的。上位机往下发目标位置,控制卡算完发给驱动器,驱动器驱动电机,电机带着工件台跑。同时,编码器把实际位置实时反馈给控制卡,形成闭环。
嗯,这里要注意。反馈路径的延迟,是整个系统性能的瓶颈。我见过有人用千兆网传编码器数据,延迟有几百微秒。这种系统,位置环带宽根本做不高。我建议用专用硬件接口,比如差分信号或者光纤,把延迟压到10微秒以内。
好了,这一章就聊到这儿。架构搭好了,后面讲算法、讲调试,才有意义。