半导体设备软件(四):运动控制与硬件抽象

运动控制软件不能只是对厂商 SDK 的薄封装。上层需要的是“平台移动到晶圆坐标并稳定”,而 SDK 提供的往往是脉冲、编码器计数和轴号。硬件抽象层负责在两者之间建立稳定、可测试的语义。

1. 抽象轴的能力而不是品牌

通用轴接口通常包含使能、回零、绝对与相对运动、停止、状态和故障复位,但不能用最小公分母抹掉差异。扫描触发、龙门同步和位置比较等能力应通过可发现的能力接口表达。

配置中要明确单位、正方向、软限位、速度和坐标系。禁止让上层猜测某个数值是毫米、微米还是编码器计数。

2. 命令完成不等于运动完成

异步接口至少要区分已接受、运动中、进入位置窗口和稳定完成。超时后也不能假设轴已经停止,必须查询真实状态并决定受控停止还是等待。

取消请求要定义减速停止、立即停止或在扫描段结束停止。不同动作的物理后果不同,不能只暴露一个通用 Cancel

3. 坐标变换要集中管理

电机坐标、平台坐标、相机坐标与晶圆坐标之间存在旋转、缩放、偏移和补偿地图。变换链应版本化,并保留正反向验证。业务代码随处加偏移量,会让校准和故障定位失控。

4. 联锁必须靠近硬件

软件软限位提升可用性,但不能替代硬限位、驱动保护和安全回路。门禁打开、真空吸附丢失或碰撞传感器触发时,停止路径应尽量少依赖上层进程和网络。

硬件抽象层要统一故障分类,同时保留原始厂商错误码和诊断数据。过度翻译成“运动失败”会丢掉最有价值的信息。

5. 仿真接口从一开始就设计

同一接口应支持真实驱动和行为仿真。仿真不仅立即返回成功,还要模拟时间、限位、跟随误差和断连。这样上层状态机可以在没有硬件时验证失败路径。

总结

好的硬件抽象不是隐藏所有细节,而是稳定业务语义、显式暴露能力与失败,并把单位、坐标和完成条件统一起来。它让硬件替换可控,也为仿真和自动化测试建立入口。

参考资料

Licensed under CC BY-NC-SA 4.0