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承担,把预处理后的张量送入神经网络并输出检测结果。三条路径共享同一套内存与总线,因此带宽分配和缓存一致性是集成时的关键约束。
二、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时钟配置,这些硬件细节会直接影响图像质量和通信稳定性。
把上述单元串起来看,STM32N6的视觉处理链可以概括为:相机通过MIPI CSI-2送入Bayer数据,ISP完成图像重建,DMA把结果搬入内存,GPU按需缩放,NPU执行推理,Cortex-M55做后处理和通信。每个环节都有明确的输入输出和参数约束,集成工作的本质就是让这条链在带宽、延迟和精度三个维度上同时满足工业检测的要求。