2. 硬件平台选型:主流嵌入式平台对比与摄像头模组选型要点
做摄像头接入,第一步就是选平台。说实话,这块坑不少。我这些年经手过 STM32、全志、瑞芯微、树莓派,每个平台都有自己的脾气。今天咱们就掰开揉碎聊聊,怎么根据项目需求选对硬件。
2.1 主流嵌入式平台对比
先看一张对比表,心里有个底:
| 平台 | 核心架构 | 最高主频 | 摄像头接口 | 典型帧率(VGA) | 参考价格(开发板) |
|---|---|---|---|---|---|
| STM32H7 | Cortex-M7 | 480 MHz | DCMI(8/10/12位并行) | 15~30 fps | ¥150~300 |
| 全志 V3s | Cortex-A7 | 1.2 GHz | CSI(并行+BT656) | 30~60 fps | ¥80~150 |
| 瑞芯微 RV1126 | Cortex-A7 + NPU | 1.5 GHz | MIPI CSI(4-lane) | 60~120 fps | ¥200~400 |
| 树莓派 4B | Cortex-A72 | 1.8 GHz | CSI-2(MIPI) | 30~90 fps | ¥350~600 |
核心结论:没有万能平台。STM32 适合低功耗、低成本的简单图像采集;全志和瑞芯微是 Linux 端视频流处理的主力;树莓派适合快速原型验证,但量产成本偏高。
2.2 各平台实战经验
STM32:MCU 界的"老黄牛"
我个人习惯用 STM32H743 做摄像头入门教学。它的 DCMI 接口可以直接挂 OV2640 这类并行摄像头。但要注意——DCMI 是纯硬件接口,不处理协议解析。你想想看,像素时钟 PCLK 一上来,DMA 就得拼命搬数据。
避坑指南:我曾经在 STM32F407 上跑 30 万像素摄像头,结果帧率只有 8fps。后来发现是 DMA 双缓冲没开,CPU 被中断淹没了。开了双缓冲之后,直接跳到 20fps。
小技巧:STM32 做摄像头时,优先用 DCMI + DMA + 双缓冲。别让 CPU 参与像素搬运,它干不了这活。
全志 V3s:性价比之王
全志 V3s 是我做低成本 IPC 时的首选。它内置 64MB DDR2,一颗芯片搞定所有。但有个问题——它的 CSI 接口只支持并行和 BT656,不支持 MIPI。所以选摄像头模组时,得避开 MIPI 接口的 sensor。
我记得有一次客户要求用 500 万像素 sensor,V3s 的并行接口带宽根本扛不住。最后换了 RV1126 才解决。
瑞芯微 RV1126:带 NPU 的"小钢炮"
如果你要做 AI 视觉,RV1126 是当前性价比最高的选择。它内置 2T 算力的 NPU,MIPI CSI 支持 4-lane,最高可以跑到 120fps(VGA)。
避坑指南:我曾经在 RV1126 上调试 OV5640,死活出不了图。折腾了两天,最后发现是 MIPI 时钟的 PLL 配置错了。瑞芯微的时钟树比较复杂,建议直接用 SDK 里的 sensor 驱动模板,别自己从头配。
树莓派:原型验证利器
树莓派 4B 的 CSI-2 接口很成熟,官方摄像头模组即插即用。但说实话,它不太适合量产——成本高、供货不稳定、而且 BCM2711 的文档不开放。
我一般只在做算法原型验证时用树莓派。等算法稳定了,再移植到 RV1126 或全志平台。
2.3 摄像头模组选型要点
选摄像头模组,说白了就是选 sensor。我总结了五个关键参数:
- 分辨率:VGA(640×480)够用就选 VGA,别盲目追求高像素。像素越高,带宽和存储压力越大。
- 帧率:看你的应用场景。人脸识别 15fps 就够,运动检测需要 30fps 以上。
- 接口类型:DVP(并行)便宜但抗干扰差,MIPI 信号质量好但布线要求高。
- 感光尺寸:1/4" 适合室内,1/3" 以上适合低光照场景。
- 工作温度:工业级要选 -40°C~85°C 的 sensor。
| 型号 | 分辨率 | 接口 | 帧率(最大) | 适用平台 |
|---|---|---|---|---|
| OV2640 | 200万 | DVP | 30fps(SVGA) | STM32、全志 |
| OV5640 | 500万 | MIPI / DVP | 60fps(720p) | 瑞芯微、树莓派 |
| IMX219 | 800万 | MIPI | 30fps(1080p) | 树莓派、瑞芯微 |
| GC032A | 30万 | DVP | 30fps(VGA) | STM32(低成本) |
注意:选模组时一定要确认 sensor 的驱动是否开源。有些厂商只提供闭源库,移植起来非常痛苦。我吃过这个亏——某款 sensor 的寄存器手册都不给,全靠逆向。
2.4 电源与时钟设计
摄像头模组对电源和时钟非常敏感。很多帧率不稳的问题,根源就在这。
电源设计要点
- 模拟与数字分开:sensor 的 AVDD 和 DVDD 要独立 LDO 供电,别共用。模拟电源纹波要控制在 50mV 以内。
- 去耦电容:每个电源引脚放一个 100nF + 10μF 电容,靠近引脚放置。
- 电流余量:sensor 峰值电流可能比标称值高 30%,LDO 选型要留余量。
小技巧:我习惯在 sensor 电源入口加一个磁珠(600Ω@100MHz),可以有效抑制高频噪声。这个做法在 MIPI 接口的 sensor 上效果特别明显。
时钟设计要点
摄像头需要外部时钟源(XCLK)或晶振。时钟精度直接影响帧率稳定性。
- 时钟频率:常见的有 12MHz、24MHz、27MHz。具体看 sensor 手册。
- 时钟抖动:MIPI 接口对时钟抖动要求高,建议用有源晶振,别用 MCU 的 PLL 输出。
- PCB 走线:时钟线要包地,远离电源和数字信号线。长度尽量短。
避坑指南:我曾经用 STM32 的 MCO 引脚给 OV2640 提供时钟,结果画面一直有横纹。后来换成独立 24MHz 有源晶振,问题立刻消失。嗯,时钟这东西,真不能省。
2.5 知识体系总览
下面这张图总结了本章的核心逻辑,帮你快速建立选型框架:
总结一下:硬件选型没有标准答案,但有一条铁律——先定需求,再选平台,最后配 sensor。别反过来,否则你会发现自己被平台绑死,进退两难。