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

内存配置的艺术: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开发的关键环节,需要开发人员在前期就给予足够重视。
1 l4 ?6 G/ R* T: X1 }  z
/ L7 ?9 D6 J* u
在嵌入式系统中实现高端UI:哪种内存配置才是最优解?
" o/ P5 i  [1 I! m回顾意法半导体(ST)过去几年发布的集成嵌入式GPU的STM32微控制器,能清晰地发现一个趋势:MCU的图形处理能力越来越强。这背后的关键助力之一就是 NeoChrom GPU这类功能强大、效率更高的IP的出现,它让更多嵌入式系统产品和应用领域都能实现UI功能。
9 C9 B0 W$ A4 b, N/ ]! ]- L1 Q& P7 @3 R0 n% p* C' `
STM32U599是首款搭载NeoChrom GPU的MCU,而STM32U5F9和STM32U5G9嵌入了NeoChromVG GPU——首个集成在STM32内部的加速矢量图形处理IP。同样,主频达600MHz的STM32H7R/S,是配备启动闪存的STM32 MCU,仅有64KB内部Flash,还搭载了NeoChrom GPU,在存储和图形处理两方面都实现了升级,为用户带来更出色的使用体验。$ s: g6 ^6 N$ u6 v

, E3 q6 @$ H4 z/ y( I! n所以,目前的问题不是哪款MCU能运行高端UI,而是哪种内存配置才是最优解。开发人员不仅要考虑代码和数据的存储,还得确定帧缓冲区、素材资源等的存放位置。开发团队可能会将图形资源存储在外部存储器中,可最终却发现接口带宽不足,无法带来流畅的使用体验。相反,系统集成商可能选用了一款配备大容量嵌入式闪存的MCU,结果却发现这些闪存还是不够用,无奈只能添加外部存储模块,这就导致MCU上原有的存储空间被白白浪费。6 Z" v8 s; a/ p' d/ s
基于STM32产品,可以发现有三种内存配置策略:
  • 大容量嵌入式闪存(4MB)和嵌入式RAM(3MB)
  • 无嵌入式闪存,但有大容量嵌入式RAM(4.2MB)
  • 闪存和RAM都较小(64KB到128KB的闪存以及约500KB的RAM)
    152617wazslwwbipy5a95o.png.thumb.png

    & Y0 z3 g  L& A/ G, _5 r* @
▲ 嵌入式系统内存的三种配置方案

* `- t; P$ Y5 z& v) G
每种内存配置方案分别适合哪些UI,哪一款STM32 MCU最适用这些UI的应用场景?

  ^8 |+ P: H1 L6 q% b6 `大容量嵌入式闪存和嵌入式RAM
  E! _& z7 {9 k1 `2 `* K
据调研机构Transforma Insights预测,到2033年,联网并配备显示屏的暖通空调(HVAC)系统数量将接近7.5亿台。随着建筑物不断优化其能源消耗,智能HVAC设备需要配备带显示屏的控制单元,这样能更方便地监测能耗并设定温度曲线。
5 e  O( H( T, J

) o, f2 j0 s8 A( j5 U1 g3 g这些显示屏的分辨率一般都在480×480到800×480之间。对于大多数制造商来说,这样的分辨率已够用,除非他们面向的是高端市场。图像资源通常采用16位色深,要求动画效果流畅,但复杂度不能高。多数用户期望UI能够响应迅速,并能直观呈现所有信息和产品功能,且方便操作。                                                                                   
4 G# v8 d5 ?3 s1 Q
152813ujn8qwmlhjhslvee.png
9 D) }. }( ~0 g3 O
在这一特定应用场景下,帧缓冲区占用的SRAM可控制在3MB以内。搭载大容量嵌入式闪存的MCU能存储所有图形资源,工程师无需再使用外部存储模块。因此,STM32U5G9和STM32U5F9在这样的场景中很受欢迎,它们内置3MB的RAM,闪存容量在2-4MB之间。
0 |; U- B0 K1 M& E3 L) i4 Z
若想存储更多图形素材,就得配备外部闪存模块。不过,STM32U5的八通道SPI接口读取图形资源完全没问题。另外,最新的STM32U5系列器件不仅能帮助很多HVAC系统实现单芯片设计,还提供超低功耗模式,这对依靠电池供电的GUI而言至关重要。
% b8 b9 ]) g8 m
无嵌入式闪存,但具备大容量嵌入式RAM/ p: M# N7 @/ n; d% J7 H6 o
边缘AI是嵌入式系统领域里发展极为迅猛的领域。GUI对于边缘AI应用来说是刚需,因为在运行神经网络算法后做出的决策或得出的推理结果需要通过GUI展示。例如,在计算机视觉应用中,用户必须了解系统识别出了什么,而最直观的方式就是通过GUI传达。6 ^" v  _+ u# T) z

, W) f/ A( Z& W6 m! h( w1 E在边缘AI的应用场景中,神经网络需要占用闪存,因此,系统通常会使用大量的外部NOR闪存,来存储机器学习算法、系统程序、GUI及其他应用程序。因此,工程师们通常采用大容量的外部闪存,同时使用大容量的嵌入式RAM。如果在AI+GUI应用中,内存RAM无法满足应用,也可以外扩RAM,将显示用的帧缓存放在外部RAM,内部的RAM全部留给AI应用,以获得更高性能。                       
, O: b  [0 q5 v( R
152933kcucxcncgubxdnnz.png.thumb.png
STM32N6轻松添加用于1280×720分辨率显示屏的帧缓冲区。同时,这款MCU的高速存储接口能从四通道/八通道SPI闪存中读取资源,并将资源缓存在外部RAM中,不会造成性能瓶颈。4 a  L7 d/ n' L6 s

: c; G# l0 t3 O: J0 ^* m2 @
这样的内存配置策略使具有边缘AI功能的系统更轻松地实现GUI,同时也为不考虑边缘AI却又需要大容量嵌入式RAM的用户提供新的选择。这就是ST推出不带NPU的STM32N6的原因,让不需要NPU的用户也能通过这种新型内存配置,在可用内存中存储帧缓冲区,大幅简化设计流程。对集成商来说,不必添加外部RAM模块,不仅能简化PCB布局,还可以缩短开发周期。

( J9 D6 X) }$ u2 G嵌入式闪存和嵌入式RAM都较小
: ?8 _% |( w1 o" S; b很多高端嵌入式系统完全依靠外部RAM和外部闪存。以游戏配件和外设为例,它们的嵌入式RAM或嵌入式闪存总是不够用,必须依赖外部组件。由于这类应用对品质的高要求,GUI需要更大空间来存储素材资源。以1024×600分辨率、像素色深24位的双帧缓冲区为例,双帧缓存应用大概需要占用3.6MB的空间。
3 q$ J/ y8 J' A* T) V( I4 s6 C6 x" e( h; g
对于家庭自动化网关来说,它既要运行图形界面,又要处理通信协议和安全功能。工程师往往不选自带大量嵌入式RAM和闪存的MCU,而是选择性价比更高的MCU,把BoM预算留给外部存储器。  
1 y  Z& t& b+ ?* Y
153841bd3m3kinw3ip0knw.png.thumb.png                        " S7 i, v, h7 B3 K
% d4 g+ y" \, F9 V6 G3 t
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。
. l! G$ E0 m1 @, x: Y& j$ g9 _
物理和软件层面的考量# ^* ~2 M9 Q# G) S) F  i
还有不少因素会对UI的创建和性能产生重大影响。比如选了引脚数量太少的封装,就只能用速度较慢的内存接口。要是集成商只盯着价格,开发工程师就不得不在性能方面做出妥协。
" ]& s3 M3 B/ V5 B; R

  H' i( ?8 M, Z1 D6 u同样,添加外部RAM虽然能提升可扩展性,但会导致运行速度比嵌入式RAM慢。现在有了NeoChrom这类新型GPU,只要开发团队的内存配置正确,就可以通过更具成本效益的MCU,为更多产品配备GUI。
153901okaayqympeoxoiaq.png.thumb.png
▲ 三款STM32 MCU产品比较

  O' i* s+ b- f0 v
此外,开发过程中还有一个对内存使用率影响很大的因素,那就是图形框架。我们向大家推荐TouchGFX,这是ST免费提供的框架,配备了设计器、模拟器和代码生成器,它通过多种内存优化方案,有效减少RAM和闪存的占用。ST最近推出的新压缩算法,并支持矢量字体和图形,可以进一步节省存储空间。同时,在旋转、缩放效果、视频功能和多语言支持等方面也进行了优化。借助板级支持包,开发人员能够快速测试每个MCU的运行情况。因此,在MCU上开发智能手机界面般的GUI已不再像过去那样困难重重。

( N& {4 y; t" S+ ~9 O: p结语
总的来说,为不同的应用场景找到适合的内存配置,是实现嵌入式系统高端UI的关键,它直接影响系统的性能和用户体验。ST凭借丰富且强大的MCU产品线,加之全面的工具和生态支持,使得更多系统能够轻松实现高级GUI,推动嵌入式系统在视觉交互领域的进一步发展。
" t$ v0 F9 z* z9 l: x7 G, c; S# Z
赞 收藏 评论0 发布时间:2025-2-28 16:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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