32KB Flash、4KB RAM 的 MCU,如何设计"实时采集 + 轻量智能处理"系统?
一、约束条件
• Flash 32KB,RAM 4KB。
• 单通道 ADC,12bit,采样率 10ksps。
• 使用 DMA 搬运;可用半满/全满中断做软件双缓冲管理(或硬件双缓冲,视型号而定)。
• 裸机、无 RTOS,长期运行,禁止动态内存分配。
• UART 115200 上传分类结果、少量特征或告警,不上传原始数据流;上传频率由你假设并说明。
• 窗口结束到输出结果延迟 ≤100ms。
• 轻量智能处理可假设为一维传感器时序信号(如振动、电流、温度等)的异常检测或少量状态分类;不绑定具体产品,你可自行具体化并说明假设。
• 轻量智能处理可为规则分类、极轻量定点分类器、微型 MLP/决策树等;不要求也不假设能跑完整 TFLite Micro 或大模型。
• 窗口长度、特征、分类器自定,但须说明依据。
二、请完成:
-
先列出还需确认的问题,并声明假设。
-
给出 RAM 预算表:主栈、DMA 缓冲、采样环形缓冲、分帧/特征缓冲、推理/分类工作区、UART 缓冲、系统状态、保留余量。
-
给出特征缓冲和推理/分类工作区的 最小可行尺寸;放不下时说明降级路径。若降级为规则分类,推理工作区可填 0 或极小状态区。
-
给出 Flash 预算分类:启动/向量、驱动、协议、特征/推理/分类代码、模型权重/分类器参数、常量/校准表、默认参数、保留区。
-
说明实时性:DMA 中断里做什么、特征提取和推理/分类在哪执行、最坏处理时间怎么估、溢出丢新还是丢旧、如何避免 UART 阻塞采集。
-
说明轻量智能处理的资源取舍:哪些定点化、窗口长度对 RAM/延迟的影响、权重为何放 Flash、4KB 下如何判断可落地还是必须降级。
-
指出最可能失败的 2 个风险点及验证方法。
-
采样率提高到 50ksps 时,先改什么,为什么?
提醒:不要把 Flash 当 RAM;不要用 malloc;不要假设 4KB RAM 能跑完整 TFLite Micro。
可声明并固定以下假设:1)MCU 主频、内核、有无 FPU、ADC 对齐、DMA 模式、UART 发送方式。2)RAM/Flash 预算允许合并项或填 0,但必须给总账和余量。3)需给出 DMA 半满/全满中断频率、每中断最坏工作量和窗口后处理最坏时间。4)UART 需给包长、最大上传频率和队列满策略。5)50ksps 假设 MCU 外设可支持,优先说明软件架构先改什么。