
1. 为什么是RV1126BRK801-2这套组合解决了什么问题1.1 从需求倒推选型低功耗AI视觉终端到底难在哪前阵子接了个项目客户要做一款电池供电的智能门锁周边设备核心功能就三件事本地人形检测、低功耗待机、关键时刻抓拍推图。聊到主控选型的时候客户一开始提的是用手机SoC来做结果一算整机功耗和成本直接摇头。后来转到瑞芯微平台在RK3566、RV1106、RV1126B之间来回比了一圈最终锁定了RV1126B加RK801-2这套组合。低功耗AI视觉终端这六个字拆开看每个词都是约束。低功耗意味着整机平均功耗要压到1W以内最好能在几百毫瓦级别跑起来AI意味着本地要有足够的算力跑神经网络模型至少能跑个YOLO级别的小模型做人形检测或人脸检测视觉意味着要有ISP、有编码器摄像头数据进来之后能处理、能存储、能推流。把这些需求叠在一起其实市面上能选的平台并不多。RV1126B是瑞芯微面向IPC和视觉IoT场景推出的SoC四核Cortex-A7架构集成0.5TOPS算力的NPU支持3.5M像素的ISP带H.264/H.265硬件编码器。单看跑分和算力它不算出彩但它的优势在能效比和待机功耗上典型工作场景下核心功耗可以做到非常低搭配RK801-2这颗PMIC做电源管理整机的休眠待机功耗能压到微安级别。这个特性对电池供电的视觉设备来说是致命的吸引力。RK801-2这颗PMIC不是普通的电源芯片它内部集成了充电管理、升降压DC-DC和动态电压调节DVS功能。DVS这个功能在低功耗系统里特别关键它允许SoC在运行过程中根据负载动态调整核心电压闲的时候降压省电忙的时候升压保性能。这套组合的完整链路是RK801-2负责从电池取电、给整个系统供电、动态调压RV1126B负责所有计算和视觉处理两者通过I2C通信实现电源策略的实时调整。1.2 与同类SoC平台的横向对比选型阶段我做了个对比表把几个主流方案的优劣势梳理了一遍。这里直接放出来供参考方案算力典型功耗视频处理成本适用场景RV1126BRK801-20.5TOPS NPU整机平均0.5W-1W3.5M ISPH.265编码中低电池供电视觉终端、智能门锁、低功耗IPCRK35661TOPS NPU整机平均2W-3W支持8M ISP多路视频中高性能要求更高的边缘盒子RV11060.5TOPS NPU更低无编码器支持ISP但编码弱低纯AI检测、无视频存储需求手机SoC方案算力高待机功耗高难以做深休眠强高不适合低功耗场景表格里可能看不太出来实际测试中RV1126B有一个很明显的优势它支持多种深度的休眠模式结合RK801-2的电源域管理可以做到按需唤醒。传感器检测到事件才唤醒主控其余时间整个系统处于深度休眠状态。这个特性对电池设备太重要了决定了产品能否用两节18650电池撑过半年。另外一点是视频编码能力。RV1126B的H.265硬件编码在低码率下的画质表现相当不错实测在1Mbps码率下1080p画面基本可用这对无线传输场景非常友好。而RV1106虽然更便宜但没有硬件编码器视频数据只能裸数据走Wi-Fi带宽和功耗都扛不住。2. 硬件设计中的三个关键细节DDR、存储与sensor接入2.1 DDR3选型1GB内存该怎么挑标题里提到了一个很实际的问题RV1126B可用的DDR3内存1GB的有哪些。这个问题我确实踩过坑第一批样板用的DDR颗粒型号偏门结果PD文件配置折腾了两周才稳定跑起来。RV1126B支持DDR3、DDR3L和LPDDR3标准配置512MB起步1GB是更稳妥的选择特别是要同时跑Linux系统、摄像头采集、AI推理和网络推流时512MB会经常因为内存不足杀进程。我测试过的1GB DDR3颗粒型号包括南亚NT5CC256M16ER-EK这颗是常见选择16位单颗512MB两颗组成1GB兼容性好海力士H5TC4G63AFR主流单颗512MB方案原厂公板常见物料华邦W632GU6NB性价比高量产供货稳定长鑫存储CXD3GFAM国产替代方向性能满足需求选DDR颗粒时除了看容量和位宽三个隐藏参数一定要核对工作电压DDR3是1.5VDDR3L是1.35V不要混用、温度范围工业级和商业级的价格差不少户外设备必须选工业级、以及是否在瑞芯微DDR配置脚本的支持列表里。这里有个特别容易翻车的点市面上很多拆机片和翻新片价格便宜但掉固件、高温不稳定是常事。我们的经验是DDR颗粒尽量从正规代理渠道拿货最好让瑞芯微原厂的FAE确认一下物料是否在支持列表内。如果非要自己测一定要跑memtester做长时间压力测试高温环境下尤其要测够。2.2 存储介质选择与启动链路RV1126B的启动链路是BootROM上电后按顺序从SPI NOR Flash、SPI NAND、eMMC、SD卡等介质加载引导程序。这个顺序可以在硬件上通过拨码或电阻配置量产产品建议固定介质不要留多种启动方式避免现场误触发进入了烧录模式。存储方案上我做了两套测试。第一套是SPI NOR Flash做系统盘外加TF卡做视频存储功耗最低但系统空间紧张内核和应用镜像加起来勉强够用。第二套是eMMC做系统盘加数据盘系统开销大一些但调试和远程升级都方便很多。最终产品选了eMMC方案理由是远程升级的稳定性和速度都比TF卡方案好毕竟电池供电设备的OTA中断一次就可能变砖。顺带说一句启动链路的配置瑞芯微平台通过parameter文件来管理分区表这个文件里定义了每个分区的大小和偏移量。我踩过的坑是修改了rootfs分区大小后忘了同步修改parameter文件结果系统启动后磁盘分区溢出日志疯狂刷错误。如果改了分区方案一定记得重新生成parameter文件并完整烧录。2.3 sensor接入与点亮流程RV1126B的sensor接入是整个硬件调试中最容易卡住的一环。我这里以GC2053为例说一下标准流程。sensor上电后第一步是确认I2C通信是否正常。RV1126B的I2C控制器在Linux下通常用设备树配置sensor的I2C地址、复位引脚、电源时序都要在dts里声明清楚。我遇到过最诡异的问题就是sensor在上电时序不满足时I2C能扫到设备但读ID读不全最后用逻辑分析仪抓时序才发现是MCLK起振太慢了。sensor的I2C探测有两种方式一是通过设备树里的compatible匹配驱动后自动探测二是通过i2c-tools手动扫描地址。调试阶段先用i2cdetect命令手动扫描确认地址正确后再验证驱动层读取的sensor ID是否正确。GC2053的ID是0x0233南光SC3336的话是另一个值具体以datasheet为准。上电时序这块不同的sensor要求不一样。常见要求是先供DVDD模拟电压再供DOVDD数字电压最后拉高PWDN引脚释放复位。这个顺序反了的话sensor不会工作有些型号还会直接损坏。建议在硬件原理图设计阶段就把电源、复位、MCLK、I2C的顺序理清楚并预留RC延时电路做兜底。sensor点亮之后马上要确认白平衡和曝光是否正常。如果画面偏色严重多半是ISP初始化参数不对或者sensor的增益配置没生效。RV1126B的ISP调试工具是瑞芯微的RKISP调试工具链通过串口可以动态调整曝光、增益、Gamma等参数调试效率比反复烧镜像高得多。我一般会在rootfs里放一份tuning工具的配置文件方便现场直接微调。3. 低功耗的工程实现路径供电、调压与休眠策略3.1 供电架构与RK801-2的动态电压调节低功耗系统的供电架构决定了整个产品的功耗上限这也是RV1126BRK801-2这套方案最值得讲的地方。整机供电链路是电池输入到RK801-2的充电管理端同时经过Boost升压到5V给系统供电。RK801-2内部集成了多路DC-DC和LDO分别给CPU核心、NPU、DDR、IO和sensor供电。每一路的开关都可以由软件独立控制这样在休眠时可以把不需要的外设电源全部切掉。DVS动态电压调节的逻辑可以这样理解CPU和NPU在运行不同负载时对电压的需求不一样。RV1126B的CPU在工作频率400MHz时只需要0.9V核心电压但跑到1.2GHz时就需要1.1V以上。如果始终按最高频率所需的电压供电空闲时就会白耗电。RK801-2支持SoC通过I2C实时写入目标电压值调压的响应速度在几十微秒级别完全来得及应对CPU调频的需求。实际测试中开启DVS后系统空闲功耗从0.2W降到了0.12W左右这个优化幅度在电池供电设备上是实打实的续航提升。配置DVS需要修改两个地方一是RK801-2的驱动配置二是RV1126B的cpufreq设备树节点确保CPU调频时对应的电压值在PMIC侧是合法可用的。如果电压设太低导致系统不稳定表现就是跑高负载时随机死机或核心电压报错。3.2 NPU与视频管线的功耗管理RV1126B的NPU在跑模型时功耗可观但空闲时如果不做处理也会白白耗电。瑞芯微SDK里提供了NPU的电源管理框架通过设置NPU的频率和电源域状态来控制功耗。在AI视觉终端里NPU和视频管线往往是联动工作的。事件触发前整个视觉管线处于关闭状态sensor不采集ISP不处理NPU不推理。事件触发后系统在几十毫秒内把视觉管线拉起来完成检测和抓拍随后再次进入休眠状态。这套“事件驱动”机制是靠外部中断唤醒实现的。RV1126B的GPIO支持边沿触发唤醒sensor的中断引脚或外部PIR传感器的输出脚可以直接接到唤醒GPIO上。这里要特别说一下NPU推理和视频编码的配合。实测中以YOLOv5s人形检测模型在NPU上推理一帧1080p图像大约耗时40-60毫秒这个速度在事件触发场景下够用了。但要注意如果在NPU推理的同时又让编码器处理高码率视频流整机功耗会瞬间飙升到2W以上。低功耗设计的原则是能串行就不要并行必须先检测再决定要不要编码和推流而不是一边推理一边持续编码。3.3 休眠唤醒设计的实际取舍RV1126B支持的休眠模式可以理解成三级浅睡眠、深睡眠和待机关机。浅睡眠下CPU停摆但DDR保持自刷新唤醒延迟只有几十毫秒适合需要快速响应的场景深睡眠下DDR也进入自刷新低功耗模式外设电源全部切断唤醒延迟几百毫秒适合PIR触发后的场景待机关机就是完全断电唤醒只能靠RTC或外部复位。我实际用的策略是两层结合设备默认处于深睡眠状态PIR传感器信号到来后先唤醒一个低功耗MCU比如STM32或者直接用一个GPIO触发MCU确认有效事件后给RV1126B发唤醒信号。RV1126B唤醒后完成两件事跑一次AI检测确认是不是人如果是就抓拍推流然后迅速回到深睡眠。这套逻辑把平均功耗控制在了很低的水平。休眠设计里有个新手容易忽略的细节GPIO的上下拉配置。在深睡眠状态下所有外设电源已经切断如果唤醒GPIO没有做正确的上拉或下拉外界干扰信号就可能误触发唤醒。我用了一颗外部上拉电阻并加了RC滤波实测能有效过滤大部分电磁干扰导致的误唤醒。另外唤醒源注册时要确认用的是IRQ_TYPE_EDGE_BOTH还是IRQ_TYPE_EDGE_FALLING选错了会导致唤醒后中断状态不干净系统会反复进入中断处理导致卡死。4. 开发环境搭建与SDK实战4.1 编译环境与SDK同步的注意点瑞芯微的SDK同步是个经典痛点。第一次同步RV1126B SDK时repo工具会把整个工程拉下来体积大概二三十GB视网络环境可能要跑几个小时。推荐环境是Ubuntu 18.04或20.04 64位系统磁盘空间预留100GB以上内存16GB起步。SDK的交叉编译工具链如果不是在Ubuntu 18.04环境下编译很可能会遇到glibc版本不兼容的问题安装完工具链后先跑一下arm-linux-gnueabihf-gcc -v确认输出正常然后再动具体代码。SDK同步命令基本固定先配置repo工具然后repo init指定manifest分支再repo sync同步代码。这里有两个实战细节一是在repo sync之前先确认磁盘inode充足小文件非常多NTFS和exFAT格式的外部盘容易出问题二是同步完成后不要急着编译先看SDK根目录下的README或docs/release_note确认当前版本有没有已知问题补丁。编译RV1126B SDK的标准流程包括source envsetup.sh、选择lunch目标、执行./build.sh。第一次编译建议先只编uboot和kernel两部分确认环境没问题后再编完整镜像。全量编译在性能较好的机器上大约需要二十分钟CPU弱的机器建议用编译服务器不然每次改一行代码等半小时很崩溃。4.2 PD文件的生成与烧录PD文件Parameter Description是瑞芯微平台上一个不太好理解但极其重要的概念。简单说它记录了DDR初始化参数、PMIC配置、CPU频率表、电源域开关等硬件初始化信息。如果换了DDR颗粒型号或者改了PMIC配置PD文件必须跟着更新否则系统可能无法正常启动。生成PD文件通常是在SDK的ddr脚本目录下操作通过指定DDR颗粒型号和容量来生成。实际操作中最稳妥的方式是参考原厂对应开发板的PD文件确认DDR颗粒一致后直接复用或微调。千万不要自己一拍脑袋改DDR时序参数内存初始化参数调错了轻则无法启动重则导致DDR数据错误引发随机崩溃。烧录流程上瑞芯微平台的量产烧录一般是先用RKDevTool在烧录模式下写入loader和parameter再写分区镜像。新手常犯的错误是选择烧录工具版本不对或者驱动没装好导致设备识别不了。按这个顺序排查安装驱动设备进入loader模式打开RKDevTool确认设备枚举成功然后加载配置烧录。4.3 RKNN模型转换与部署RV1126B的NPU推理依赖RKNN格式模型。开发流程是先用RKNN-Toolkit2在PC端把训练好的模型PyTorch、ONNX、TensorFlow格式都能转转换成.rknn文件再编译进板端程序里调用。模型转换有两大坑。第一个是算子兼容性RKNN-Toolkit2对某些新出的算子支持不及时转换过程中会报错或降级到CPU执行。解决办法是检查模型结构把不支持的算子替换成等价的卷积、池化、激活等基础算子组合。第二个是量化掉点INT8量化后模型精度通常会降1%-3%如果检测任务里漏检明显增加可以在RKNN-Toolkit2里开启混合量化把敏感层保留为FP16。板端部署时RV1126B的RKNN Runtime提供C和Python API。C API用起来繁琐但稳定Python API适合快速原型验证但正式产品建议用C API。推理链路的核心代码一般长这样初始化上下文、加载rknn模型、设置输入、执行推理、解析输出。这里摆放一下重点参数输入图像的通道顺序RV1126B的NPU输入要求RGB排列sensor输出的通常是RAW或YUV需要先做颜色空间转换输入尺寸要和训练时一致YOLOv5s一般用640x640但为了速度和内存考虑可以裁剪到320x320检测精度下降但速度快很多推理超时时间要设置NPU偶尔会因为异常输入卡住设置超时能避免程序挂死5. 实测记录功耗数据、性能表现与问题排查链路5.1 不同工作模式下的功耗与性能实测在样机调试完成后我用高精度功耗仪记录了几组典型场景下的数据。这里总结一下工作模式电流12V输入整机功耗说明深睡眠待机0.02A左右约0.24W外部PIR唤醒使能I2C从机监听中浅睡眠0.04A左右约0.5WCPU暂停DDR自刷新sensor未工作事件唤醒AI检测0.08A左右约1W1080p图像推理一帧时长约200ms持续视频编码推流0.15A左右约1.8W1080p1Mbps H.265Wi-Fi推流NPU满载推理0.18A左右约2.2W连续推理CPU负载50%从表格可以看到深睡眠待机是整个系统的功耗基石但事件唤醒后瞬间功耗冲到1W左右这个冲击对电池的放电能力有要求。如果电池内阻过大或容量不足瞬间大电流会导致电压跌落RK801-2的输出就会不稳表现为唤醒瞬间系统复位。解决思路是PMIC侧加大输入电容同时电池选型上要关注最大放电电流指标18650电芯选2500mAh以上的动力型比较稳妥。性能方面RV1126B的NPU跑YOLOv5s 320x320输入时单帧延迟大约40毫秒处理1080p的sensor数据时ISP和编码器都能跑满帧率。这里补充一个实测经验如果同时跑多个模型NPU的调度开销会增加实际吞吐量并不是线性叠加的。我在项目里把人脸检测和活体检测模型放在同一个推理线程里串行跑最终实现了800毫秒内完成全流程比并行调度的功耗低很多。5.2 一个典型问题排查实例调试过程中最折腾的一个问题是设备在野外环境下偶尔出现唤醒后几分钟内就死机重启后恢复正常但过几天又复发。刚开始以为是休眠唤醒逻辑的软件bug把日志打开看了两天没找到明显异常。后来怀疑是sensor上电时序问题换了延时策略仍然偶发。最后用示波器同时抓了电源轨和复位信号才发现问题出在电池电压跌落上。设备运行一段时间后电池电压降到3.5V以下唤醒时瞬间电流导致电压瞬间跌到3.1VRK801-2的DVS调压输出跟不上核心电压瞬间低于CPU要求的下限系统直接死机。这个问题的排查链路值得记一下第一步看内核日志是否panic第二步看电源监控芯片的告警寄存器第三步用示波器抓关键电源轨的纹波和跌落波形。没有示波器的话可以用软件方式在唤醒瞬间连续读取PMIC的电压寄存器看是否能捕捉到电压异常。最终修复方案是在RK801-2的电池输入端并联了两颗470uF钽电容同时把唤醒流程改成先让系统进入浅睡眠等待200ms等电压稳定后再开始跑AI推理。这个改动让整机的野外故障率从偶尔一两次降到了零。6. 配置清单整理与落地建议6.1 整机配置清单按实际量产项目整理一份参考配置清单这里给出的是稳定运行的BOM配置模块型号/规格选型说明主控SoCRV1126B四核Cortex-A70.5TOPS NPUPMICRK801-2充电管理Buck/BoostDVSDDR3L南亚NT5CC256M16ER-EK x4共2GB预留足够内存余量存储eMMC 8GB三星/海力士系统应用视频缓存sensorGC2053200万像素性价比高低照度表现够用镜头M12接口2.8mm焦距视角约100度适合室内门锁场景Wi-Fi/BTAP62122.4G Wi-Fi BT4.2支持低功耗模式电池两节18650串联7.4V容量5000mAh以上动力型电芯充电接口Type-C支持PD快充协议配合RK801-2充电管理这个清单是经过两轮迭代后的结果。第一轮用的DDR是512MB方案跑AI推理加视频编码时经常内存不足升级到2GB后系统稳定性和多任务能力明显改善。Wi-Fi模组也换过一次AP6212的低功耗模式比初版方案优化很多深度睡眠下Wi-Fi模组电流可以控制在微安级别。6.2 避坑建议与后续扩展最后把几个容易踩的坑统一列出来每个都是真金白银买来的教训。第一DDR颗粒一定不要贪便宜用来源不明的散片。RV1126B对DDR的时序要求比较严格翻新片在高温和老化测试下问题爆发率高返修成本远超省下的物料成本。第二sensor的电源设计必须按datasheet的上电时序来不要想当然把所有电源引脚接在一起很多sensor翻车都是这里出问题的。第三休眠唤醒的GPIO一定要做滤波处理野外环境电磁干扰源多不做滤波IGBT误唤醒率会高到崩溃。整套方案跑通之后后续扩展方向我一直在关注。一个是在这套硬件上增加语音唤醒能力RV1126B的音频输入接口可以直接接数字麦克风配合轻量级唤醒词模型可以做一个完整的低功耗语音H视觉交互终端。另一个是接入多sensor方案RV1126B支持多路sensor切换通过一个模拟开关切换两个摄像头的输入可以覆盖更广的监控范围而功耗只增加一个sensor的工作电流。从我实际做完这个项目的体感来说RV1126BRK801-2这套组合最大的价值不是参数多强而是把功耗、算力和成本平衡得恰到好处。只要把休眠唤醒策略调优、DDR选型选对、sensor调试过关整套系统跑起来非常省心。如果你也在做电池供电类的视觉产品这个方案值得试试。