2. STM32N6视觉芯片架构与选型
STM32N6是ST首款集成自研神经网络加速器(Neural-ART NPU)的通用MCU,定位在“MCU的实时性与功耗”和“MPU的AI算力”之间。对视觉产品而言,选型不是看单一算力数字,而是把NPU、ISP、摄像头接口、内存布局、外设资源和BOM成本放在同一张账上算。本节按“数据从传感器进来、到AI结果出去”的链路,逐段拆解这些资源如何影响选型决策。
一、从传感器到NPU:视觉数据链的四个关键节点
STM32N6的视觉数据主路径可以概括为:MIPI CSI-2接收 → ISP处理 → 内存缓冲 → NPU/CPU消费。理解这条链,才能判断哪一环会成为瓶颈。
MIPI CSI-2是高速串行摄像头接口,STM32N6提供2条数据lane(部分型号支持更高配置),单lane速率可达约1.5 Gbps量级,足以支撑1080p@30fps或更高帧率的RAW/RGB/YUV数据。它适合连接现代MIPI摄像头模组,走线需严格等长、阻抗控制,属于高速信号设计范畴。
DCMI是并口摄像头接口,支持8~14位并行数据,配合外部像素时钟和行/场同步信号工作。它的优势是兼容大量传统并口传感器、时序直观、调试简单;劣势是引脚多、速率上限低于MIPI。选型时若传感器只有并口输出,DCMI是唯一选择;若追求高分辨率高帧率,优先MIPI CSI-2。
ISP负责把传感器RAW数据转成可用的RGB/YUV图像,包含黑电平校正、去马赛克、白平衡、伽马、色彩校正等。STM32N6的ISP可硬件流水线处理,减轻CPU负担。关键参数是输入位宽、最大分辨率、是否支持Bayer格式和自动曝光/白平衡统计输出。
NPU是Neural-ART加速器,典型算力约600 GOPS(INT8),支持卷积、池化、激活等常见算子。它不直接读传感器,而是从内存取已由ISP处理好的张量。因此NPU的实际吞吐取决于内存带宽和DMA效率,而非仅看GOPS。
二、内存布局:视觉产品最容易低估的瓶颈
STM32N6内部集成大容量SRAM(典型约4.2 MB),并支持通过外部总线扩展PSRAM或HyperRAM。视觉应用的内存消耗主要来自三块:帧缓冲、NPU张量、模型权重。
以1080p RGB888单帧为例,一帧约6.2 MB,若做双缓冲就需要12.4 MB,远超片内SRAM。因此实际方案通常采用以下策略之一:降低分辨率(如640×480,单帧约0.9 MB)、使用YUV420或灰度图减少位宽、把帧缓冲放到外部PSRAM、或采用“行缓冲+分块处理”让ISP和NPU流水线消费而不存整帧。
NPU权重和激活值同样占内存。一个中等规模检测模型(如MobileNet类骨干)INT8权重约2~6 MB,激活值随分辨率增长。选型时要确认:模型能否放进片内SRAM以获得最高带宽,还是必须外扩内存并接受带宽下降。经验上,片内SRAM带宽远高于外部PSRAM,若模型和帧缓冲能压缩进片内,帧率会有明显优势。
三、外设资源与系统协同
视觉产品不只有摄像头和NPU。STM32N6还提供丰富外设:多路SPI/I2C用于传感器配置和EEPROM,UART/CAN用于工业通信,USB用于图像传输或固件升级,定时器用于触发同步,DMA用于搬运图像数据。选型时要核对引脚复用表,确认摄像头接口、外部内存、通信接口之间是否存在引脚冲突。
典型协同关系是:MIPI/DCMI通过DMA把数据写入帧缓冲,ISP硬件处理后再由DMA送入NPU输入张量,NPU推理完成后CPU读取结果并通过UART/USB输出。整个链路中,DMA通道数量和优先级配置直接影响是否丢帧。若DMA带宽不足,会出现“NPU算得完但数据供不上”的情况。
四、BOM成本约束下的选型决策
视觉产品的BOM成本主要由芯片、传感器、内存、PCB层数和连接器构成。STM32N6本身定位中高端,选型时要避免“算力过剩”或“内存不足”两种浪费。
一个实用的决策顺序是:先确定分辨率和帧率目标,再反推接口类型和内存需求,然后选择具体型号(封装、内存配置、温度等级),最后核算传感器和外部内存成本。例如,做640×480@30fps的简单分类,DCMI+灰度传感器+片内SRAM即可,BOM最低;做1080p@30fps的目标检测,则需要MIPI CSI-2+彩色传感器+外部PSRAM,成本明显上升。
| 应用档位 | 分辨率/帧率 | 接口 | 内存方案 | BOM倾向 |
|---|---|---|---|---|
| 入门识别 | 320×240@15fps | DCMI | 片内SRAM | 低 |
| 中端检测 | 640×480@30fps | DCMI/MIPI | 片内SRAM+小外扩 | 中 |
| 高清检测 | 1080p@30fps | MIPI CSI-2 | 外部PSRAM | 高 |
最后提醒:选型阶段务必用真实模型和真实传感器做一次内存与带宽估算,而不是只看数据手册的峰值参数。NPU的600 GOPS是理想值,实际可用算力受内存带宽、算子支持和数据搬运开销影响,通常需要打一定折扣。把这条链上的每个节点都算清楚,才能选出既满足性能又不浪费成本的STM32N6配置。