你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略

[复制链接]
flyingstar 发布时间:2025-2-28 16:26
作为嵌入式系统的“大脑”,MCU负责处理和执行各种指令。以往,由于MCU资源受限,实现高端UI会遇到性能瓶颈;但如今,很多MCU内置了强大的GPU(图形处理单元),工程师们即便不选择成本更高的MPU(微处理器单元),仍能实现复杂且美观的UI。但如果想在嵌入式系统中实现高端UI,还面临挑战,开发人员在设计架构和开发UI时,还需要面对内存配置这一棘手难题,以确保系统的高效运行和用户体验的流畅性。
152541plmssfgkvvvfssv7.png.thumb.png
在开发过程中,设计工程师很容易忽视MCU中RAM和闪存的容量。往往在开发进程推进到一定阶段后,才发现内存要么不够用,要么过剩。内存不足时,编程工作会变得异常艰难,甚至无法进行;而内存过剩,则是对资源的严重浪费。因此,合理规划内存配置,成为嵌入式系统高端UI开发的关键环节,需要开发人员在前期就给予足够重视。
0 w7 d2 a" H, z  Q

/ _4 \2 [8 `. d% z9 C1 ~+ [4 |! P3 y. a在嵌入式系统中实现高端UI:哪种内存配置才是最优解?
& L! \8 @9 P5 }0 |& U5 Y回顾意法半导体(ST)过去几年发布的集成嵌入式GPU的STM32微控制器,能清晰地发现一个趋势:MCU的图形处理能力越来越强。这背后的关键助力之一就是 NeoChrom GPU这类功能强大、效率更高的IP的出现,它让更多嵌入式系统产品和应用领域都能实现UI功能。
3 ^# i2 r4 g' s' @% |& H* P" g9 V' x( D* c6 p8 ~
STM32U599是首款搭载NeoChrom GPU的MCU,而STM32U5F9和STM32U5G9嵌入了NeoChromVG GPU——首个集成在STM32内部的加速矢量图形处理IP。同样,主频达600MHz的STM32H7R/S,是配备启动闪存的STM32 MCU,仅有64KB内部Flash,还搭载了NeoChrom GPU,在存储和图形处理两方面都实现了升级,为用户带来更出色的使用体验。
6 K$ o4 h; L$ w5 i9 ~- u& \* Y. h2 w$ ]9 R/ T
所以,目前的问题不是哪款MCU能运行高端UI,而是哪种内存配置才是最优解。开发人员不仅要考虑代码和数据的存储,还得确定帧缓冲区、素材资源等的存放位置。开发团队可能会将图形资源存储在外部存储器中,可最终却发现接口带宽不足,无法带来流畅的使用体验。相反,系统集成商可能选用了一款配备大容量嵌入式闪存的MCU,结果却发现这些闪存还是不够用,无奈只能添加外部存储模块,这就导致MCU上原有的存储空间被白白浪费。
$ t8 f" i$ ~8 v* S, ]
基于STM32产品,可以发现有三种内存配置策略:
  • 大容量嵌入式闪存(4MB)和嵌入式RAM(3MB)
  • 无嵌入式闪存,但有大容量嵌入式RAM(4.2MB)
  • 闪存和RAM都较小(64KB到128KB的闪存以及约500KB的RAM)
    152617wazslwwbipy5a95o.png.thumb.png
    % N9 o1 o9 @: @8 l0 [! D5 j, x
▲ 嵌入式系统内存的三种配置方案

0 s, E8 w5 I7 y$ }
每种内存配置方案分别适合哪些UI,哪一款STM32 MCU最适用这些UI的应用场景?
* I4 L, m/ n0 S. I% u  v$ o
大容量嵌入式闪存和嵌入式RAM

  ~! u( t, }% P3 I; r- }2 z, }9 C据调研机构Transforma Insights预测,到2033年,联网并配备显示屏的暖通空调(HVAC)系统数量将接近7.5亿台。随着建筑物不断优化其能源消耗,智能HVAC设备需要配备带显示屏的控制单元,这样能更方便地监测能耗并设定温度曲线。" R& s* W- [0 |; Q+ m3 x+ u' \

+ T* ?! I% z+ C" J$ z% v这些显示屏的分辨率一般都在480×480到800×480之间。对于大多数制造商来说,这样的分辨率已够用,除非他们面向的是高端市场。图像资源通常采用16位色深,要求动画效果流畅,但复杂度不能高。多数用户期望UI能够响应迅速,并能直观呈现所有信息和产品功能,且方便操作。                                                                                   
( f( [. m* z% y6 t9 y" M
152813ujn8qwmlhjhslvee.png

5 ^+ B4 Z# m2 `9 X; ~; L' j3 a
在这一特定应用场景下,帧缓冲区占用的SRAM可控制在3MB以内。搭载大容量嵌入式闪存的MCU能存储所有图形资源,工程师无需再使用外部存储模块。因此,STM32U5G9和STM32U5F9在这样的场景中很受欢迎,它们内置3MB的RAM,闪存容量在2-4MB之间。

  `; r9 @, L! W
若想存储更多图形素材,就得配备外部闪存模块。不过,STM32U5的八通道SPI接口读取图形资源完全没问题。另外,最新的STM32U5系列器件不仅能帮助很多HVAC系统实现单芯片设计,还提供超低功耗模式,这对依靠电池供电的GUI而言至关重要。

6 C1 ~+ f4 p3 s; l. A, G无嵌入式闪存,但具备大容量嵌入式RAM' q2 V' h6 ]3 b. L+ P
边缘AI是嵌入式系统领域里发展极为迅猛的领域。GUI对于边缘AI应用来说是刚需,因为在运行神经网络算法后做出的决策或得出的推理结果需要通过GUI展示。例如,在计算机视觉应用中,用户必须了解系统识别出了什么,而最直观的方式就是通过GUI传达。6 Y2 x0 B: F: f0 B  Z" `6 |
. ?9 K" G( P$ [9 a
在边缘AI的应用场景中,神经网络需要占用闪存,因此,系统通常会使用大量的外部NOR闪存,来存储机器学习算法、系统程序、GUI及其他应用程序。因此,工程师们通常采用大容量的外部闪存,同时使用大容量的嵌入式RAM。如果在AI+GUI应用中,内存RAM无法满足应用,也可以外扩RAM,将显示用的帧缓存放在外部RAM,内部的RAM全部留给AI应用,以获得更高性能。                       , M, I+ [2 H& |1 U/ ~6 T
152933kcucxcncgubxdnnz.png.thumb.png
STM32N6轻松添加用于1280×720分辨率显示屏的帧缓冲区。同时,这款MCU的高速存储接口能从四通道/八通道SPI闪存中读取资源,并将资源缓存在外部RAM中,不会造成性能瓶颈。
' D6 v; _. R- v7 X+ d8 m7 n
+ w, Z  w* ]6 u- j4 H
这样的内存配置策略使具有边缘AI功能的系统更轻松地实现GUI,同时也为不考虑边缘AI却又需要大容量嵌入式RAM的用户提供新的选择。这就是ST推出不带NPU的STM32N6的原因,让不需要NPU的用户也能通过这种新型内存配置,在可用内存中存储帧缓冲区,大幅简化设计流程。对集成商来说,不必添加外部RAM模块,不仅能简化PCB布局,还可以缩短开发周期。
) T' H0 X9 f" `3 u! `) ^! O/ L
嵌入式闪存和嵌入式RAM都较小3 k( C0 G; N) ?2 \% z% y
很多高端嵌入式系统完全依靠外部RAM和外部闪存。以游戏配件和外设为例,它们的嵌入式RAM或嵌入式闪存总是不够用,必须依赖外部组件。由于这类应用对品质的高要求,GUI需要更大空间来存储素材资源。以1024×600分辨率、像素色深24位的双帧缓冲区为例,双帧缓存应用大概需要占用3.6MB的空间。* ^/ s1 k1 ~$ b/ S& _

( i2 ~7 K8 i: ~# z' G1 R对于家庭自动化网关来说,它既要运行图形界面,又要处理通信协议和安全功能。工程师往往不选自带大量嵌入式RAM和闪存的MCU,而是选择性价比更高的MCU,把BoM预算留给外部存储器。  7 U/ E6 G4 y% a; r: ^
153841bd3m3kinw3ip0knw.png.thumb.png                        
- t% F% }3 U) Z$ A# f3 M
/ w" ~/ c: Y9 O- y& r
STM32H7R7/S7可以更好地服务于这些应用,这是配备64KB内部闪存和620KB RAM的STM32 MCU。STM32H7R7/S7内置NeoChrom GPU,能够加速双线性插值运算以及任意角度的纹理映射,从而释放Cortex-M7内核,让它去执行其他任务。此外,STM32H7R7/S7还配备了一个运行频率为200MHz的16线SPI、一个8线SPI以及四线SPI闪存接口,以便快速从外部存储模块中读取资源,并直接将其传输至系统缓存,避免出现性能瓶颈。开发人员还可以借助灵活的FMC存储控制器接口连接快速16/32位SDRAM。

. a- t: Q: p( s! h& b. F6 n9 ?物理和软件层面的考量$ T) }: F5 Z, s7 @  A
还有不少因素会对UI的创建和性能产生重大影响。比如选了引脚数量太少的封装,就只能用速度较慢的内存接口。要是集成商只盯着价格,开发工程师就不得不在性能方面做出妥协。% N: D) G- N& d8 E$ D

8 `! l- U( {2 _/ e( ]( x同样,添加外部RAM虽然能提升可扩展性,但会导致运行速度比嵌入式RAM慢。现在有了NeoChrom这类新型GPU,只要开发团队的内存配置正确,就可以通过更具成本效益的MCU,为更多产品配备GUI。
153901okaayqympeoxoiaq.png.thumb.png
▲ 三款STM32 MCU产品比较
3 ~3 u& {6 o+ S4 q+ @  \7 e% p- Z1 ?
此外,开发过程中还有一个对内存使用率影响很大的因素,那就是图形框架。我们向大家推荐TouchGFX,这是ST免费提供的框架,配备了设计器、模拟器和代码生成器,它通过多种内存优化方案,有效减少RAM和闪存的占用。ST最近推出的新压缩算法,并支持矢量字体和图形,可以进一步节省存储空间。同时,在旋转、缩放效果、视频功能和多语言支持等方面也进行了优化。借助板级支持包,开发人员能够快速测试每个MCU的运行情况。因此,在MCU上开发智能手机界面般的GUI已不再像过去那样困难重重。

/ M' g+ W4 a9 A+ i+ ~+ D结语
总的来说,为不同的应用场景找到适合的内存配置,是实现嵌入式系统高端UI的关键,它直接影响系统的性能和用户体验。ST凭借丰富且强大的MCU产品线,加之全面的工具和生态支持,使得更多系统能够轻松实现高级GUI,推动嵌入式系统在视觉交互领域的进一步发展。
# N* L6 l7 ^! r# u2 b. S3 ^1 m
赞 收藏 评论0 发布时间:2025-2-28 16:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版