2. AF 系统架构:镜头马达类型、驱动 IC 与接口、AF 算法流水线

自动对焦这事儿,说白了就是让镜头动起来,并且动得准。我做了这么多年 ISP,发现很多工程师把精力全放在算法上,结果硬件选型没搞对,项目直接翻车。今天咱们就把 AF 系统的底裤扒干净,从马达到驱动,再到算法流水线,一条龙讲透。

2.1 镜头马达类型:三种主流方案

镜头马达是 AF 系统的执行器。选哪种马达,直接决定了你的对焦速度、精度、功耗和成本。目前市面上就三种主流方案:VCM、步进电机、压电马达。

类型 原理 典型应用 我踩过的坑
VCM(音圈马达) 电磁线圈 + 永磁体,类似喇叭 手机摄像头、小型模组 谐振频率没算好,画面一直抖
步进电机 电磁脉冲驱动转子步进 安防球机、工业相机 丢步导致对焦位置漂移
压电马达 压电陶瓷逆压电效应 高端单反、显微镜 驱动波形调了一周才稳定

2.1.1 VCM(音圈马达)

VCM 是手机摄像头的主力。它的结构很简单:一个线圈放在磁场里,通电就动。电流越大,位移越大。我习惯叫它「电磁弹簧」,因为本质上它就是个线性执行器。

关键参数:

  • 行程:通常 0.3~0.5mm,够用
  • 响应时间:< 10ms,很快
  • 功耗:几十 mW,省电
  • 线性度:中低端 VCM 有 5%~10% 的非线性

我在项目中遇到过一个问题:VCM 的谐振频率大概在 200~500Hz。如果驱动信号的频率接近这个范围,镜头就会振荡。嗯,这里要注意,驱动 IC 必须做 阻尼控制,否则画面会一直抖。

2.1.2 步进电机

步进电机是开环控制的典型。你给它一个脉冲,它就转一个步距角。我最早做安防摄像头时用的就是它。优点是结构简单、成本低,缺点嘛——丢步。

避坑指南:我曾经在低温环境下测试步进电机,结果丢步率高达 30%。后来加了温度补偿和闭环检测才搞定。如果你做户外产品,务必考虑温度对步进电机的影响。

步进电机的驱动方式有两种:整步和半步。整步扭矩大但分辨率低,半步分辨率高但扭矩小。我个人习惯在启动时用整步,接近目标时切半步,这样又快又准。

2.1.3 压电马达

压电马达是高端货。它利用压电陶瓷的逆压电效应,通电后陶瓷变形,推动镜头移动。优点是精度极高(纳米级)、响应极快(微秒级),缺点是贵、驱动复杂。

我记得有一次做医疗内窥镜项目,客户要求对焦精度达到 0.1μm。VCM 和步进电机都做不到,最后上了压电马达。驱动波形我调了一周,才让它在谐振点稳定工作。

2.2 驱动 IC 与接口

马达选好了,接下来就是怎么驱动它。驱动 IC 是 AF 系统的「肌肉」,接口是「神经」。两者配合不好,马达再好也白搭。

2.2.1 驱动 IC 的核心功能

  • 电流/电压控制:VCM 需要恒流驱动,步进电机需要恒压驱动
  • 位置检测:通过霍尔传感器或编码器反馈位置
  • 保护机制:过流、过温、短路保护
  • 通信接口:I²C、SPI、PWM
接口类型 速率 适用场景 我推荐的理由
I²C 400kHz~1MHz 手机、小型模组 引脚少,适合空间受限
SPI 10MHz+ 工业相机、高端设备 速度快,支持多从机
PWM 取决于频率 低成本方案 简单粗暴,但精度有限

我的经验:如果你做手机摄像头,I²C 是标配。但要注意 I²C 总线上的电容负载,超过 400pF 信号就会变形。我曾经因为布线太长导致 I²C 通信失败,后来加了电平转换芯片才解决。

2.2.2 驱动 IC 选型要点

选驱动 IC 时,我一般看三个指标:

  1. 输出电流能力:VCM 通常需要 50~200mA,步进电机需要 500mA~2A
  2. 纹波噪声:驱动电流的纹波会直接影响对焦精度,建议 < 1%
  3. 保护功能:至少要有过流和过温保护,否则烧了马达哭都来不及

2.3 AF 算法流水线

硬件搞定了,接下来是软件。AF 算法流水线是整个系统的「大脑」。我把它分成四个阶段:

AF 算法流水线 图像采集 RAW / YUV 清晰度评价 对比度 / 相位 搜索策略 爬山 / 全局 驱动执行 PID / 开环 闭环反馈(位置 / 图像) 💡 流水线要点: • 图像采集 → 清晰度评价 → 搜索策略 → 驱动执行,循环迭代直到合焦 • 反馈回路可以是图像数据(对比度 AF)或位置传感器(闭环 AF)

2.3.1 图像采集

AF 算法需要图像数据来计算清晰度。通常我们直接从 sensor 拿 RAW 数据,或者从 ISP 拿 YUV 数据。我个人习惯用 RAW,因为没经过 ISP 处理,信息最原始,评价结果更准。

注意:采集窗口的选择很重要。我一般取画面中心 1/3 区域,因为大多数拍摄主体都在中间。但如果你做追踪 AF,窗口要跟着目标走。

2.3.2 清晰度评价

这是 AF 算法的核心。评价函数的好坏直接决定对焦精度。常用的方法有两种:

  • 对比度法(CDAF):计算图像边缘的梯度。梯度越大,画面越清晰。我用的是 Sobel 算子,简单高效。
  • 相位法(PDAF):通过 sensor 上的相位检测像素,直接计算离焦方向和距离。速度快,但需要硬件支持。

我做过一个对比实验:CDAF 精度高但慢(需要来回扫),PDAF 快但精度受限于像素数量。现在高端手机都是两者结合——PDAF 粗调 + CDAF 精调。

2.3.3 搜索策略

评价函数算出来了,接下来怎么找峰值?常用的搜索策略有:

策略 原理 优点 缺点
爬山法 朝评价函数增大的方向移动 实现简单 容易陷入局部峰值
全局搜索 遍历整个行程 一定能找到全局峰值 慢,功耗高
二分法 不断缩小搜索区间 速度快 对噪声敏感
预测搜索 根据历史位置预测下一帧 适合运动场景 预测不准会跑偏

我的建议:静态场景用爬山法 + 全局搜索兜底,动态场景用预测搜索。我曾经在安防项目里只用爬山法,结果遇到低对比度场景,算法一直在局部峰值来回跳。后来加了全局搜索做初始化,问题就解决了。

2.3.4 驱动执行

搜索策略算出了目标位置,接下来驱动马达过去。这里有两种控制方式:

  • 开环控制:直接给马达一个位置指令,不检测实际位置。简单,但精度差。
  • 闭环控制:通过霍尔传感器或编码器反馈实际位置,用 PID 算法调整。精度高,但成本高。

我习惯在手机项目里用开环 + 校准表。因为手机 VCM 的线性度还行,提前标定好电流-位移曲线,开环也能做到不错的效果。工业相机嘛,老老实实上闭环。

避坑指南:我曾经在闭环 PID 调试时,积分项设得太大,导致马达过冲后反复振荡。嗯,这里要注意,PID 参数一定要根据马达的机械特性来调,不能照搬公式。

2.4 小结

AF 系统架构说白了就是三件事:马达动起来、驱动控得住、算法算得准。VCM 适合手机,步进电机适合安防,压电马达适合高端。驱动 IC 选 I²C 还是 SPI,看你的速率和引脚预算。算法流水线从采集到执行,闭环反馈是关键。