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

内存配置的艺术: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开发的关键环节,需要开发人员在前期就给予足够重视。
9 K+ _! q( H3 R) b& ?

% z# d3 a2 ^1 ~, ]8 Z在嵌入式系统中实现高端UI:哪种内存配置才是最优解?
( s" d5 S2 u5 L  b回顾意法半导体(ST)过去几年发布的集成嵌入式GPU的STM32微控制器,能清晰地发现一个趋势:MCU的图形处理能力越来越强。这背后的关键助力之一就是 NeoChrom GPU这类功能强大、效率更高的IP的出现,它让更多嵌入式系统产品和应用领域都能实现UI功能。8 N; E- R7 t! U) z* e& N
0 X  O4 [, G2 R1 Y; t
STM32U599是首款搭载NeoChrom GPU的MCU,而STM32U5F9和STM32U5G9嵌入了NeoChromVG GPU——首个集成在STM32内部的加速矢量图形处理IP。同样,主频达600MHz的STM32H7R/S,是配备启动闪存的STM32 MCU,仅有64KB内部Flash,还搭载了NeoChrom GPU,在存储和图形处理两方面都实现了升级,为用户带来更出色的使用体验。9 t6 a! D8 Z  `
  |0 w5 S6 a. ^* V4 W" s4 e
所以,目前的问题不是哪款MCU能运行高端UI,而是哪种内存配置才是最优解。开发人员不仅要考虑代码和数据的存储,还得确定帧缓冲区、素材资源等的存放位置。开发团队可能会将图形资源存储在外部存储器中,可最终却发现接口带宽不足,无法带来流畅的使用体验。相反,系统集成商可能选用了一款配备大容量嵌入式闪存的MCU,结果却发现这些闪存还是不够用,无奈只能添加外部存储模块,这就导致MCU上原有的存储空间被白白浪费。
- n" z& R+ O+ H1 e1 \8 g
基于STM32产品,可以发现有三种内存配置策略:
  • 大容量嵌入式闪存(4MB)和嵌入式RAM(3MB)
  • 无嵌入式闪存,但有大容量嵌入式RAM(4.2MB)
  • 闪存和RAM都较小(64KB到128KB的闪存以及约500KB的RAM)
    152617wazslwwbipy5a95o.png.thumb.png
    4 X  \! e, R! r& h9 Z5 h
嵌入式系统内存的三种配置方案

% `9 C7 b: P) m  C
每种内存配置方案分别适合哪些UI,哪一款STM32 MCU最适用这些UI的应用场景?

, E* M; }( d0 f大容量嵌入式闪存和嵌入式RAM
1 i. @4 c8 h* z. m1 k1 T6 |
据调研机构Transforma Insights预测,到2033年,联网并配备显示屏的暖通空调(HVAC)系统数量将接近7.5亿台。随着建筑物不断优化其能源消耗,智能HVAC设备需要配备带显示屏的控制单元,这样能更方便地监测能耗并设定温度曲线。
# r6 b/ N4 @+ g9 h  b
* Q' M6 {% r0 u! D
这些显示屏的分辨率一般都在480×480到800×480之间。对于大多数制造商来说,这样的分辨率已够用,除非他们面向的是高端市场。图像资源通常采用16位色深,要求动画效果流畅,但复杂度不能高。多数用户期望UI能够响应迅速,并能直观呈现所有信息和产品功能,且方便操作。                                                                                   
, T9 J: B; }. k4 H0 d3 [
152813ujn8qwmlhjhslvee.png

2 S% p9 a; v9 O9 t, y6 ?
在这一特定应用场景下,帧缓冲区占用的SRAM可控制在3MB以内。搭载大容量嵌入式闪存的MCU能存储所有图形资源,工程师无需再使用外部存储模块。因此,STM32U5G9和STM32U5F9在这样的场景中很受欢迎,它们内置3MB的RAM,闪存容量在2-4MB之间。
/ b; q; r1 P' o3 i
若想存储更多图形素材,就得配备外部闪存模块。不过,STM32U5的八通道SPI接口读取图形资源完全没问题。另外,最新的STM32U5系列器件不仅能帮助很多HVAC系统实现单芯片设计,还提供超低功耗模式,这对依靠电池供电的GUI而言至关重要。

% n# w" H$ ]- C无嵌入式闪存,但具备大容量嵌入式RAM
5 [8 ]# K; ~- a6 T0 m& @3 W: M- s边缘AI是嵌入式系统领域里发展极为迅猛的领域。GUI对于边缘AI应用来说是刚需,因为在运行神经网络算法后做出的决策或得出的推理结果需要通过GUI展示。例如,在计算机视觉应用中,用户必须了解系统识别出了什么,而最直观的方式就是通过GUI传达。
4 A( W, i+ ]# W1 _
. v+ t9 P; u9 C9 E在边缘AI的应用场景中,神经网络需要占用闪存,因此,系统通常会使用大量的外部NOR闪存,来存储机器学习算法、系统程序、GUI及其他应用程序。因此,工程师们通常采用大容量的外部闪存,同时使用大容量的嵌入式RAM。如果在AI+GUI应用中,内存RAM无法满足应用,也可以外扩RAM,将显示用的帧缓存放在外部RAM,内部的RAM全部留给AI应用,以获得更高性能。                       6 r9 q+ L8 x, D( P/ K/ P
152933kcucxcncgubxdnnz.png.thumb.png
STM32N6轻松添加用于1280×720分辨率显示屏的帧缓冲区。同时,这款MCU的高速存储接口能从四通道/八通道SPI闪存中读取资源,并将资源缓存在外部RAM中,不会造成性能瓶颈。/ q2 e& b- F. ^+ H4 x

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

$ y; _0 D( e; K" G9 D8 E+ T嵌入式闪存和嵌入式RAM都较小
* O8 Q3 X8 s7 q, I$ P很多高端嵌入式系统完全依靠外部RAM和外部闪存。以游戏配件和外设为例,它们的嵌入式RAM或嵌入式闪存总是不够用,必须依赖外部组件。由于这类应用对品质的高要求,GUI需要更大空间来存储素材资源。以1024×600分辨率、像素色深24位的双帧缓冲区为例,双帧缓存应用大概需要占用3.6MB的空间。
/ D1 Y8 [2 Y, {- k7 Z- i& G( N6 G$ Q
对于家庭自动化网关来说,它既要运行图形界面,又要处理通信协议和安全功能。工程师往往不选自带大量嵌入式RAM和闪存的MCU,而是选择性价比更高的MCU,把BoM预算留给外部存储器。  / k4 ^$ D2 ]* C
153841bd3m3kinw3ip0knw.png.thumb.png                        
* h% L7 F+ C5 G' X% P8 g

5 D4 j- G6 ?: O, [+ F6 S' n
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。
5 y+ @  \: ^/ r, w
物理和软件层面的考量+ @, D2 l6 `) c
还有不少因素会对UI的创建和性能产生重大影响。比如选了引脚数量太少的封装,就只能用速度较慢的内存接口。要是集成商只盯着价格,开发工程师就不得不在性能方面做出妥协。2 w, c/ ^) L4 {7 a! h- {5 g# F

6 [( U" |+ @- t! F8 a% B( j3 R同样,添加外部RAM虽然能提升可扩展性,但会导致运行速度比嵌入式RAM慢。现在有了NeoChrom这类新型GPU,只要开发团队的内存配置正确,就可以通过更具成本效益的MCU,为更多产品配备GUI。
153901okaayqympeoxoiaq.png.thumb.png
▲ 三款STM32 MCU产品比较

( j; u1 S1 r4 j% @9 D  ^
此外,开发过程中还有一个对内存使用率影响很大的因素,那就是图形框架。我们向大家推荐TouchGFX,这是ST免费提供的框架,配备了设计器、模拟器和代码生成器,它通过多种内存优化方案,有效减少RAM和闪存的占用。ST最近推出的新压缩算法,并支持矢量字体和图形,可以进一步节省存储空间。同时,在旋转、缩放效果、视频功能和多语言支持等方面也进行了优化。借助板级支持包,开发人员能够快速测试每个MCU的运行情况。因此,在MCU上开发智能手机界面般的GUI已不再像过去那样困难重重。
+ B4 |  L; O: Q0 l" e) {" J
结语
总的来说,为不同的应用场景找到适合的内存配置,是实现嵌入式系统高端UI的关键,它直接影响系统的性能和用户体验。ST凭借丰富且强大的MCU产品线,加之全面的工具和生态支持,使得更多系统能够轻松实现高级GUI,推动嵌入式系统在视觉交互领域的进一步发展。
+ B& j* b6 {" \. X, B# J
收藏 评论0 发布时间:2025-2-28 16:26

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版