2. STM32N6硬件架构与视觉加速资源

STM32N6是ST面向边缘AI与机器视觉推出的高性能MCU,其硬件架构并非传统MCU的简单升级,而是围绕“图像采集—预处理—AI推理—结果输出”这条视觉数据链重新组织。理解这条链路上每个单元的位置与职责,是后续做工业视觉检测系统集成的基础。本节按数据从传感器进入芯片到结果输出的顺序,梳理Cortex-M55、NeoChrom GPU、NPU、ISP、DMA、内存层次与外设接口之间的关系,并说明它们各自对工业视觉任务的支持方式。

一、整体架构:三条并行的处理路径

STM32N6内部可以理解为三条并行的处理路径。第一条是通用控制路径,由Cortex-M55内核承担,运行实时操作系统、通信协议、状态机与业务逻辑;第二条是图像处理路径,由ISP、NeoChrom GPU和DMA组成,负责把原始Bayer数据变成可供显示或推理的RGB/YUV图像;第三条是AI推理路径,由NeoChrom NPU承担,把预处理后的张量送入神经网络并输出检测结果。三条路径共享同一套内存与总线,因此带宽分配和缓存一致性是集成时的关键约束。

STM32N6 视觉数据链与三大处理路径 工业相机 MIPI CSI-2 ISP 去马赛克/白平衡 Gamma/降噪 DMA / MDMA 双缓冲搬运 零CPU拷贝 内存层次 TCM / SRAM / PSRAM AXI 总线矩阵 Cache 一致性 NeoChrom GPU 缩放/旋转/叠加 2D 图形加速 NeoChrom NPU INT8 卷积加速 约 600 GOPS Cortex-M55 控制内核 RTOS / 通信协议 / 状态机 / 结果判定 Helium 向量扩展,辅助轻量预处理 外设接口 MIPI CSI-2 / DCMI / Ethernet / USB / UART / CAN-FD 用于相机接入、上位机通信与产线联动 检测结果输出 类别 / 置信度 / 边界框 / 缺陷坐标 触发分拣、报警或数据上传 图像处理路径 AI 推理路径 通用控制路径 共享内存与总线

二、Cortex-M55:控制与轻量预处理

Cortex-M55是Armv8.1-M架构内核,主频可达800MHz,并带有Helium向量扩展。在工业视觉系统中,它通常不直接承担大规模卷积运算,而是负责三件事:一是系统调度,包括相机触发、DMA搬运完成中断、NPU推理完成中断的协调;二是通信与业务逻辑,例如通过Ethernet或CAN-FD与PLC交互;三是轻量预处理,例如把NPU输出的检测框映射回原始图像坐标、做非极大值抑制的后处理、或对ROI区域做简单的阈值分割。Helium指令集可以在这些环节提供2~4倍的加速,但要注意它和NPU是共享总线的,密集使用时会与NPU争抢带宽。

三、NeoChrom GPU与NPU:分工不同

NeoChrom GPU是2D图形加速器,主要面向显示与图像变换,支持缩放、旋转、Alpha混合、颜色空间转换等操作。在视觉检测中,它的典型用途是把相机图像缩放到NPU需要的输入尺寸(例如从1280×720缩放到640×640),或者把检测结果叠加到预览画面上供操作员确认。它不执行神经网络推理。

NeoChrom NPU才是AI推理的核心,提供约600 GOPS的INT8算力,支持卷积、深度可分离卷积、池化等常见算子。工业视觉中常用的YOLO系列、MobileNet、ResNet等模型都可以通过ST的STM32Cube.AI工具链转换为NPU可执行的格式。需要注意的是,NPU对输入张量的布局和量化方式有要求,通常需要INT8量化,且输入尺寸固定。如果模型中有NPU不支持的算子,会被回退到Cortex-M55上执行,这会显著拖慢推理速度,因此在模型选型阶段就要确认算子兼容性。

四、ISP与DMA:图像进入系统的第一站

ISP负责把传感器输出的Bayer原始数据转换成可用的RGB或YUV图像,内部包含去马赛克、自动白平衡、自动曝光、Gamma校正、降噪等模块。工业场景中光照条件往往不理想,ISP的参数配置直接影响后续检测的稳定性。例如在金属表面缺陷检测中,如果白平衡漂移,灰度阈值就会失效,因此通常建议锁定白平衡和曝光,而不是使用自动模式。

DMA的作用是把ISP输出的图像数据搬运到内存,而不占用CPU。STM32N6支持双缓冲模式:当DMA把第N帧写入缓冲区A时,CPU或NPU可以同时处理缓冲区B中的第N-1帧。这种乒乓结构是保证实时性的关键。配置时需要关注三个参数:传输宽度(通常32位)、突发长度(与总线匹配)、以及半传输和全传输中断的使能。半传输中断可以让处理更早开始,降低端到端延迟。

五、内存层次与带宽分配

STM32N6的内存层次包括TCM、SRAM和外部PSRAM。TCM紧耦合内存延迟最低,适合放中断向量表和关键代码;SRAM容量有限但带宽高,适合放当前帧的中间结果;PSRAM容量大但延迟高,适合放模型权重和帧缓冲区。工业视觉中常见的做法是:模型权重放PSRAM,输入输出张量放SRAM,帧缓冲区用双缓冲放在PSRAM或大容量SRAM中。

带宽是容易被忽视的瓶颈。以640×640×3的INT8输入为例,一帧约1.2MB,若帧率30fps,仅输入数据就需要约36MB/s的带宽;加上NPU读取权重、写回输出,以及GPU做缩放时的读写,总带宽需求可能超过200MB/s。如果PSRAM带宽不足,就会出现帧丢失或推理延迟抖动。因此在实际项目中,建议先用STM32CubeMX的带宽估算工具做一次粗略核算,再决定是否降低分辨率或帧率。

六、外设接口与工业场景适配

MIPI CSI-2是相机接入的主要接口,支持高速串行传输,适合高分辨率工业相机。DCMI则适合并行接口的较低速相机。Ethernet用于与上位机或MES系统通信,USB可用于调试和固件升级,CAN-FD适合与产线PLC做实时联动。UART通常用于调试日志输出。在集成时,要注意MIPI CSI-2的时钟和数据线走线阻抗控制,以及Ethernet的PHY时钟配置,这些硬件细节会直接影响图像质量和通信稳定性。

在实际项目中,建议按以下顺序做资源规划:先确定相机分辨率和帧率,算出ISP和DMA的带宽需求;再确定模型输入尺寸和量化方式,估算NPU的推理时间和内存占用;最后检查Cortex-M55的负载是否留有余量。三者都满足后,再开始写代码。
NPU的600 GOPS是理论峰值,实际推理速度受内存带宽、算子兼容性和量化精度影响。如果模型中有大量回退到CPU的算子,实际速度可能只有峰值的十分之一。建议在模型转换后,先用STM32Cube.AI的报告功能查看各算子的执行位置,再决定是否优化模型结构。

把上述单元串起来看,STM32N6的视觉处理链可以概括为:相机通过MIPI CSI-2送入Bayer数据,ISP完成图像重建,DMA把结果搬入内存,GPU按需缩放,NPU执行推理,Cortex-M55做后处理和通信。每个环节都有明确的输入输出和参数约束,集成工作的本质就是让这条链在带宽、延迟和精度三个维度上同时满足工业检测的要求。