2、硬件平台选型:主流扫地机器人SoC方案对比(全志、瑞芯微、海思),外设接口分析

做嵌入式Linux移植,第一步就是选芯片。这活儿说白了,就像相亲——选对了,后面顺风顺水;选错了,天天加班填坑。

扫地机器人这个品类,对SoC的要求其实挺有意思的。它不像手机那样追求极致性能,也不像工业设备那样要求宽温宽压。它要的是:够用、便宜、生态好。我这些年经手过好几个扫地机项目,从低端到旗舰都碰过,今天就跟大家聊聊主流的三个方案——全志、瑞芯微、海思。

2.1 全志方案:性价比之王

全志的芯片,在扫地机圈子里用得特别多。为什么?便宜啊。一颗芯片几块钱到十几块钱,BOM成本压得死死的。

我个人习惯把全志的路线分成两类:

  • 入门级:比如全志V3s、F1C200s。单核ARM Cortex-A7,主频1.2GHz,内置64MB DDR。适合做纯随机清扫的机器,没有视觉导航,靠陀螺仪和碰撞传感器。
  • 中端级:比如全志T113、MR133。双核Cortex-A7,带硬件编解码,支持1080p视频。可以接个USB摄像头做简单的视觉避障。

全志最大的优势是资料多。官方SDK虽然写得乱,但网上社区活跃,遇到问题基本能搜到答案。我在项目里用过V3s,嗯,有个坑要提醒你——它的内置DDR只有64MB,跑完整Linux+QT界面会非常吃力。我当时做的一个项目,硬是把QT的动画效果全砍了,才勉强跑起来。

避坑指南:全志的芯片,电源管理比较粗糙。我曾经遇到过V3s在电池电压波动时频繁死机,后来加了独立的PMIC才解决。如果你做电池供电的产品,建议外挂一颗AXP系列的电源管理芯片。

2.2 瑞芯微方案:性能担当

瑞芯微的芯片,性能比全志强一截。价格也贵一些,但物有所值。

扫地机上常用的瑞芯微方案:

  • RK3308:四核Cortex-A35,主频1.3GHz。带硬件NPU(0.5TOPS),可以做轻量级的AI避障。我有个项目就是用这颗芯片做视觉导航,效果还不错。
  • RK3566:四核Cortex-A55,主频1.8GHz。性能更强,支持4K编解码,可以接激光雷达+双目摄像头做SLAM导航。

瑞芯微的SDK比全志规范得多。它用的是Buildroot + Yocto的混合方案,内核版本跟进也快。我个人特别喜欢它的NPU工具链——RKNN Toolkit,把训练好的模型转成RKNN格式,部署起来很方便。

不过瑞芯微也有个问题:功耗偏高。RK3566的典型功耗在2-3W,如果散热没做好,机身会发烫。扫地机内部空间本来就紧凑,你想想看,电机、电池、激光雷达都在发热,再加个高温SoC...嗯,我建议你在设计时预留导热硅脂和散热片的位置。

小技巧:瑞芯微的芯片支持DVFS(动态电压频率调整)。在扫地机待机或低负载时,把CPU频率降到200MHz,能省不少电。我一般会在init脚本里写一个cpufreq的调节策略。

2.3 海思方案:曾经的王者

海思的芯片,在安防监控领域是绝对的霸主。它的ISP(图像信号处理器)做得特别好,用在扫地机的视觉导航上,简直是降维打击。

扫地机上常见的海思方案:

  • Hi3516DV300:双核Cortex-A7 + 硬件NPU,主打AI视觉。ISP支持宽动态、低照度增强,在光线不好的床底、沙发底下也能看清。
  • Hi3559AV100:四核Cortex-A73 + 双核Cortex-A53,性能怪兽。但说实话,用在扫地机上有点浪费,成本也高。

海思的SDK...怎么说呢,专业但封闭。它的Huawei LiteOS和Linux双系统方案,文档全是中文的,但很多细节藏着掖着。我当年调Hi3516的ISP参数,花了整整两周才把图像效果调好。你如果要用海思,建议先找原厂或代理商要一份详细的ISP调试指南。

另外,海思芯片的供货问题是个大隐患。自从被制裁后,Hi3516系列的价格涨了不少,而且经常缺货。我有个朋友的项目,就因为海思芯片断供,被迫临时换方案,重新画板子、调驱动,折腾了三个月。

我的建议:如果你做的是高端旗舰机,对视觉效果要求极高,海思依然是首选。但如果是走量的中低端产品,建议优先考虑全志或瑞芯微,供应链更稳定。

2.4 外设接口分析

选完SoC,接下来就是看它能不能接上扫地机的各种外设。我列个表格,大家一目了然:

外设类型 接口要求 典型芯片 注意事项
激光雷达 UART / SPI 思岚RPLIDAR A1 波特率一般115200或256000,注意电平匹配
陀螺仪/IMU I2C / SPI MPU6050 / ICM-20948 中断引脚要接到SoC的GPIO,用于数据同步
电机驱动 PWM + GPIO DRV8833 / L298N PWM频率建议10kHz以上,避免电机啸叫
电池管理 I2C / ADC BQ25895 / MAX17048 ADC采样要加滤波电容,不然电量显示不准
WiFi模块 SDIO / USB ESP8266 / RTL8723 SDIO接口驱动复杂,建议用USB转WiFi
摄像头 USB / MIPI CSI OV5640 / IMX219 MIPI走线要等长,差分阻抗100欧姆
红外/超声传感器 GPIO / ADC HC-SR04 / 红外对管 超声传感器容易受电机干扰,软件要做滤波
显示屏 SPI / RGB / LVDS ST7789 / ILI9341 SPI屏刷新慢,适合显示简单图标

这里我重点说几个容易踩坑的地方:

第一,激光雷达的供电。 很多激光雷达是5V供电的,而SoC的GPIO是3.3V电平。直接连会烧引脚。我习惯加一个电平转换芯片,比如TXS0108E,或者用MOS管搭个简单电路。

第二,电机PWM的频率。 你想想看,如果PWM频率太低,电机会发出刺耳的啸叫声。扫地机在卧室里工作,那个声音...用户肯定投诉。我一般设到20kHz,人耳听不到,电机也安静。

第三,电池ADC的精度。 我曾经遇到过电量显示跳变的问题——明明还有50%电,突然跳到10%。后来发现是ADC引脚没加滤波电容,电机启动时的电压波动干扰了采样。加个0.1uF电容就解决了。

2.5 我的选型建议

说了这么多,最后给个总结性的建议:

  • 预算有限、功能简单: 全志V3s + 陀螺仪 + 碰撞传感器。成本控制在50元以内。
  • 需要视觉导航: 瑞芯微RK3308 + USB摄像头 + 激光雷达。性价比最高。
  • 追求极致效果: 海思Hi3516DV300 + 双目摄像头 + 激光雷达。但要做好供应链备货。

我个人现在做新项目,首选是瑞芯微。为什么?生态好、性能够、供货稳。全志虽然便宜,但调试起来太折腾了。海思嘛...除非客户指定,否则我尽量避开。

好了,这一章就聊到这儿。下一章我们开始讲具体的Linux内核移植,从拿到开发板到点亮第一颗LED,一步步来。