半导体设备软件处在物理世界与晶圆厂系统之间:向下驱动电机、阀、光源和传感器,向上执行 Recipe、生成结果并接受 Host 调度。它与普通信息系统最大的差异,是一次软件错误可能带来碰片、污染、错误加工或长时间停机。
1. 从职责而不是进程划分层次
一套常见架构可以分为六层:
- 设备与驱动层:封装运动卡、PLC、相机、温控器和 I/O;
- 硬件抽象层:提供稳定的轴、阀、传感器、腔体等领域接口;
- 模块控制层:实现 Load Port、机械手、平台、光学和真空模块行为;
- 任务编排层:管理晶圆路径、资源占用、并行和恢复;
- 应用与数据层:Recipe、算法、结果、校准及追溯;
- 交互与集成层:HMI、权限、报警、SECS/GEM 和工厂接口。
这是一种逻辑分层,不要求每层单独部署。关键是上层不绕过抽象层直接操作寄存器,下层也不偷偷决定业务流程。
2. 控制平面与数据平面
启动任务、暂停设备和执行联锁属于控制平面,要求确定的顺序和权限;图像、波形、遥测与结果属于数据平面,关注吞吐和完整性。二者共享时间与设备上下文,但不应让大量数据传输阻塞安全控制。
图像设备尤其要避免把原始数据都压在主控制进程内。采集、处理、存储可以流水化,但每份数据必须关联晶圆、槽位、Recipe、坐标和软件版本。
3. 状态是设备软件的核心资产
设备状态不仅存在内存里,也存在真实硬件中。软件重启后,数据库说晶圆在机械手上并不能证明它真的在那里。恢复时要通过传感器、模块询问和安全动作重建可信状态,并把“不确定”作为正式状态处理。
命令接口也应描述前置条件、完成条件、超时和取消语义。返回“调用成功”只能说明命令被接受,不能冒充物理动作已经完成。
4. 非功能需求决定架构是否可用
设备要同时满足安全、实时性、可用性、可诊断性、可升级性和数据完整性。将联锁只放在 HMI,或让网络故障拖垮本地控制,都是边界设计错误。关键安全链通常需要独立、失效安全的硬件或控制层保证。
版本管理要覆盖软件、固件、Recipe、算法模型、设备常数和校准文件。只记录应用版本,无法复现一次真实生产。
5. 架构评审要看失败路径
除了正常流程,还应追问:相机无图、轴未到位、数据库不可用、Host 断线、进程崩溃或断电时会怎样?哪些动作可重试,哪些必须人工确认?恢复后会不会重复加工或重复上报?
总结
设备软件架构的价值,是把变化快的硬件、严格的物理顺序和长期演进的工厂接口隔离开,同时保留可追溯的状态。好的分层不是图画得漂亮,而是故障发生时边界依然成立。