用一颗 MCU 直接在器件上跑模型
在一颗 MCU 上跑模型,意思是推理就活在产品本来就有的那颗控制器里。没有单独的加速器,没有应用处理器,没有要启动的操作系统。同一颗芯片采样传感器、跑网络、在它本来就管着的那个循环里对结果动作。对一个装得下的窄任务,这是给器件加上智能的最小、最便宜的办法,而它对物料清单的改变,比这个边缘 AI 角落里任何别的选择都大。
它成立的前提是模型小、任务固定。几百 KB 闪存放权重,几十到一百多兆赫的时钟,一个已知的输入形状,这就是一颗微控制器带来的预算。在这个预算里,一个关键词检测器、一个振动分类器、或一个简单手势模型,几毫秒、几毫安就跑完。跨出这个预算,上一个大视觉网络、或一个打算随时间长大的模型,这颗芯片就会跟自己的存储较劲,而另一类硅片正等着把这活好好干完。
吸引力在于什么从板上消失了。
一颗芯片何时能当整个系统
单 MCU 最站得住脚,是在替代方案明显过大的时候。一个单独的加速器买来的吞吐,一个低速率任务根本碰不到,它还带来第二条供货线、额外的板面积,以及一条主控到器件、全都得设计好并保持工作的数据通路。弄清楚一颗带神经块的 MCU 什么时候能顶替一个单独的加速器,归结到对两个数字诚实:模型量化之后有多大,以及它得多频繁地跑。如果网络装得进片上存储、器件一秒推理几次,那颗额外的芯片挣不回它的成本。
消失的东西是实打实的。一颗器件顶三颗;一个固件镜像取代一个主控加它的驱动栈;一个毫瓦级的功耗数字取代一个瓦级的。限制也一样实打实,而且很早就咬人。模型从第一天起就得照着这颗芯片来塑形,因为闪存和 RAM 一旦分配完,就没有余量可长,一个在项目后期悄悄超预算的网络,会逼你要么痛苦地剪枝、要么跳到更大的芯片。
自带神经块的 MCU
这一档的中间,是那种核旁边带一个小硬件神经单元的微控制器。核照旧跑固件;神经块以核所需能量和时间的零头,去做模型的乘累加。正是这个分工,让一颗微控制器能处理真正的视觉或音频推理,而不必变成一个完整的加速器,而这也是当下这个市场里动得最快的一块。
这些器件在把这个想法推到多硬上各不相同。STM32N6 作为一颗带内置 NPU 的高端 MCU,坐在靠顶的位置,它的神经单元有本事跑那种仅仅一代之前还得要一个单独加速器的模型,同时保留团队可能已经标准化在用的 STM32 工具链、生态和供货。正是这份连续性,常常让决定倒向它、而不是一颗支持更弱但标称数字更大的器件,因为留在熟悉的工具链上,省下的几周是一个跑分胜利永远换不回的。Alif Ensemble E7,把一个 NPU 和 MCU 配在一起,姿态更激进,在一颗器件上放了一个专用神经处理器和好几个核,给那种想在微控制器功耗预算内拿到加速器级推理的设计。这两颗器件回过头来都问同一个问题:厂商的编译器能把模型的多少映射到神经块上,因为每一个回退到核上的算子都慢一个数量级,悄悄抵消掉当初让这颗器件值得选的那个优势。定一个电池设计生死的那个数字,每次推理的能量,印在两家的首页上都没有;它出自在真实硅片上跑真实模型的实测,并且会因网络映射得多干净而差出一大截。在锁定器件之前在开发板上把它量出来,是把一个能达到电池寿命的设计、和一个达不到又没地方再省的设计区分开的那一步。
对一个得靠一颗小电芯撑住、还要实时分类的产品,这一档常常是唯一能同时满足两个约束的,这也是它为什么吸引到这么多注意。
只靠时钟速度跑
不是每颗微控制器都需要神经块。STM32H743VIH6 在一颗高主频 MCU 上跑视觉模型,走了另一条路,靠一个快的 Cortex-M7 和一个有本事的 DSP,而不是一个专用神经单元。它在远高于典型微控制器的时钟上、用软件把模型推过去,适合一个已经定在 STM32 上、想加一个轻量视觉或信号任务、又不想开一个新器件家族或学一套新工具链的团队。代价是能量:在核上做这些运算,每次推理比神经块更费,所以这个答案更合一个市电或电池宽裕的设计,而不是纽扣电池的,而且随着模型长大它会很快没地方。
常开、电池受限的情形
在最低功耗端,约束不是吞吐而是空闲电流。一个得不停地听或看的器件,几乎全部能量都花在推理之间的空当里,所以定电池寿命的数字,是它等待时的功耗,不是它醒来计算时的速度。Apollo4 做可穿戴里的超低功耗常开推理,就是围着这个数字工程出来的,把睡眠和工作电流压得足够低,让一颗纽扣电池或一颗小锂电,能让模型在产品的整个服役寿命里全天候跑着。
这和本页其余的是个不同的问题,它奖励一种不同的直觉。峰值推理速率几乎不入账;要紧的是这颗器件能不能在不耗干电芯的前提下保持供电、模型小到能在可穿戴每次醒来匀得出的能量里跑完、以及醒来这件事本身便宜。一个把占空比和睡眠电流弄对的设计,会熬过一个算力两倍但空闲通路马虎的设计。
原型与轻量端
不是每个把模型放上微控制器的理由都是量产理由。有时候重点是先弄清楚这个想法到底成不成立,在那些更难的承诺做出之前。
RP2040 做 TinyML 的第一轮试手,是个常见的起点:便宜、文档详尽、容易把一个小模型跑起来,这让它成了一个低风险的办法,去搞清楚一个网络合不合微控制器的大致形状,在投入一颗带神经块的器件之前。它教给你的关于模型大小和结构的东西能往后带;它在速度和功耗上显示的东西不能,因为一颗存储不同、核不同的量产器件,会按它自己的规矩来。ATMEGA2560-16AU 用在轻量的器件端传感与控制,坐在另一头,那里的活根本算不上模型:阈值、小状态机、稳稳的传感器处理,跑在一个把这类活可靠地干了多年的 8 位核上。它是个长在那儿的提醒:一个传感任务不自动就是一个推理任务,而能把活干完的最便宜器件有时就是对的那个。
在这两极之间,很多团队最后是照着自己搭出来的原型、而不是一开始画的那个,来给器件配型,而这两者之间的差距,正是大把日程消失的地方。
轻量端容易被低估。一个看着像需要网络的问题,常常归结到一个干净的阈值加一点滞回,早早看出这点,省下一颗器件、一份功耗预算、以及一个月花在调一个从来不需要的模型上的时间。
把模型塑形到器件上
不管哪颗器件赢,模型都得走到一半来迎它。一个用浮点训练的网络,在装进微控制器之前会被量化到 8 位整数,这把权重缩小约四倍,把活交给核或神经块擅长的整数运算。量化要花掉一点精度,而把它找回来,靠的是在训练时就把量化放进循环里,而不是最后才硬栓上去。
工具在这里和器件一样有分量。一套像 TensorFlow Lite for Microcontrollers 这样的流程、或厂商自己的转换器,决定哪些层能挺过上器件这趟、哪些回退到核上的慢软件。一个从一开始就照着目标搭的模型,用工具链支持的算子、占用装得进器件 RAM 的尺寸,能整个地到达器件;一个在抽象里搭好、晚了才移植的,往往是碎着到的。
这就是为什么器件和模型是一起选的,不是按顺序。先定硅片再定网络,冒的险是器件存储太少;先冻结网络再挑器件,冒的险是没有哪颗负担得起的微控制器装得下。能出货的团队,往往是在开发板上把两者一起推,直到这一对合上。
真正决定它的是什么
模型大小和占空比定下地板,和边缘 AI 别处一样。在单 MCU 设计上它们压得更狠,因为闪存和 RAM 一旦交付,就没地方吸收一个低估的数。
地板之上,工具链比标称分量更重。一个神经块只回报它的编译器能放上去的,一颗工具薄的器件,会把模型的大半留在核上、以挫败选它初衷的速度跑。转换流程的成熟度、围着它的社区,在真实日程上挣得回它们的饭钱。
供货定其余。一颗为出货多年的产品挑的微控制器,得是那种整段时间都买得到量的,第二来源在第一次投板前就点好名,而不是等缺货停线后才去找。
出货的那颗,很少是赢了跑分的那颗。它是存储、能量、供货都合这个产品的那颗,挑它时心里清楚模型会怎么长。
相关信息

- 2026.06.04 给设备做声音采集和振动监测

- 2026.06.04 把流量和液位测准的传感方案

- 2026.06.04 无接触地把位置和角度测出来

- 2026.06.04 在联网设备里感知温湿度、气体与空气质量
