从STM32到RK3588——自动售货机嵌入式主控方案的架构演进~YH

2023年底,我接手了一个自动售货机的嵌入式系统升级项目。客户的需求很明确:现有设备太"笨"了------用户投币、按键、电机转一圈出货,全程没有数据产生,库存靠人工盘点,故障靠用户打电话投诉才知道。

目标是把传统设备改造成可远程管理、可数据化运营的智能终端。

老方案为什么跑不动了

原有设备用的是基于STM32F103的单片机方案。控制逻辑倒是稳定,但功能扩展已经到头了------不支持4G远程管理、没有触摸屏接口、跑不了AI识别,连OTA升级都做不了。

2026年的自动售货机需要的能力已经完全不同了:

  • 接入4G网络实现远程管理

  • 通过触摸屏展示商品信息、支持多支付方式

  • 高端机型甚至需要在端侧完成YOLO模型的实时推理

如果只是"出货+收钱"的逻辑,用单片机方案确实够用。但行业主流已经从纯逻辑控制转向了需要Linux/Android系统的智能终端。

方案选型:三个选项的权衡

方案A:继续用MCU(STM32MP1系列)

STM32MP1是ST推出的跨界处理器,能跑Linux,接口丰富,生态成熟。但NPU算力基本为零,跑AI模型只能靠CPU软解。如果项目定位是不需要AI识别的机型,这是一个可选项;但对于要上视觉识别的机型,这条路走不通。

方案B:NVIDIA Jetson Nano

最大的优势是CUDA生态成熟,跑YOLO有现成的优化方案,开发快。但算完BOM成本就放弃了------单套硬件成本接近RK3588方案的三倍,而且供货不太稳定。对于需要批量生产的售货机来说,成本和供应链稳定性是硬约束。

方案C:瑞芯微RK系列

最终选择了瑞芯微方案,但不同机型选了不同芯片。

弹簧机选了RK3568:四核Cortex-A55,内置1 TOPS NPU。虽然跑不了复杂的AI模型,但处理弹簧机的控制逻辑绰绰有余。外设接口需求包括:4路以上RS232串口用于连接支付模块、4G模块和触摸屏;8路以上GPIO用于控制货道电机、检测门开关和读取传感器状态。

开门柜选了RK3588:八核(4颗A76大核+4颗A55小核),内置6 TOPS算力的NPU。这个算力水平,能够在本地完成YOLO系列的实时推理。

工程中的几个坑

串口DMA丢数据:RK3568的UART接口在GPIO和UART同时高负载时,串口数据会出现CRC错误。解决方案是在设备树中调整UART的DMA缓存大小,同时降低UART波特率(从115200降到57600),实测丢包率从5%降到了0.2%以内。

Linux vs Android:操作系统选型也是一个关键决策。Linux的优势是轻量、可控、成本低;Android的优势是支付SDK生态成熟、触摸屏交互开发快。最终根据机型需求做了差异化选择。

写在最后

从STM32到RK3588,不仅仅是芯片的升级,更是整个系统架构的重构。对于正在做类似项目的开发者,我的建议是:先想清楚设备需要什么样的能力,再选芯片,而不是反过来。算力过剩是浪费,算力不足是灾难。

相关推荐
Decay__1 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
代码山河4 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
HideF4 小时前
Linux
linux·服务器·网络
C^h4 小时前
c++ string
开发语言·c++
raindayinrain4 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
吠品4 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
学逆向的4 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao5 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
她说可以呀5 小时前
Vue插槽
前端·javascript·vue.js
qq_448011165 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js