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

基于STM32实现“单芯片”模式:TouchGFX 4.24 的创新分析

[复制链接]
攻城狮Melo 发布时间:2024-7-29 13:40
TouchGFX 4.24版本通过提供新的图像压缩格式(RGB565、RGB888和ARGB888)和更多的闪存节省功能,进一步减少了内存需求。嵌入式系统的最新趋势是“单芯片”接口,开发人员可以从主机MCU的RAM和闪存中运行整个UI,无需使用外部存储器。这有助于减少材料成本,减轻对存储器市场的依赖。简而言之,它在开启了很多新功能的同时还能保持设计的成本效益。但没有之前版本的丰富功能作为基础,这样的突破也是不可能实现的。TouchGFX 4.24建立在旧版本基础之上,可确保更多的应用程序能够适应这种“单芯片”模式。
1 V1 n" ]9 r; F8 n6 y6 [3 A  \: M# l0 Z; E* |
微信图片_20240729134011.jpg

) i% i- e2 v8 N* n3 h3 ]7 I# v4 S1 a0 P9 P1 U8 N: Z# H5 K
01PART      TouchGFX 4.24新特性- R& B6 O  O6 @4 O
内存优化
3 |( Z* ~* G3 ?0 g8 Q4 I
ST基于Touch GFX4.23版本展示了一款eBike演示,仅使用355 KB,而不是最初的10.5 MB。TouchGFX 4.24对其压缩算法和矢量运算进行了一系列优化,以节省更多闪存。ST进一步优化了L8压缩格式,并提供了一些技巧,让开发人员在占用更少闪存的同时能充分利用他们的UI。例如,开发团队可使用8位或更少编码的颜色对图像进行更大程度的压缩。此外,有了ChromART,TouchGFX可以直接从闪存中提取数据,减少了应用程序对RAM的依赖。
. R1 Y% w  N3 B3 [! z9 ~8 k9 h" F9 Y2 w7 h$ o, Z% c# D3 n
新版本还对QuiteOK图像(QOI)压缩算法实现进行了优化,可减少内存中图形资产的大小。图形压缩比取决于许多因素,理想情况下,可以无损地将文件大小减少95%。但由于解压缩操作在性能较低的CPU上实现成本较高,有些CPU可能会优先使用优化的位图和技巧,如拼接图像(一个小拼接副本的完整图像构建),以减少闪存的使用。TouchGFX 4.24可以在不使用外部闪存的情况下运行界面。
+ J1 F9 N: g& s" w' |: M' z
* f% p) o( ]& f6 A( i- |
二维码生成器
( R/ ~- d( B; e9 L/ f' Y) z二维码的使用非常便利,越来越受欢迎。用户只需扫描二维码即可自动显示出序列号,大大方便了注册过程。用户不需要手动键入URL,即可访问公司网站上的特定页面。制造商更新网站也不用担心用户找不到合适的页面。而对于图形界面开发而言,生成QR码的挑战在于,需要使用大型外部库,而这些库对微控制器的优化程度很低。此外,传递参数来动态生成二维码代码,然后将其写入帧缓冲区中,这个过程的实现非常复杂。: S: l& h3 O% C( ?* @; a' X

6 K) z4 D. W7 J9 ?) V: ?3 m

5 |8 N- y+ }! W9 V5 H. |' I. X/ H这正是TouchGFX推出二维码生成器的原因。它可以动态生成高达40级的二维码(177个模块x 177个模块),并将其写入帧缓冲区中。开发人员可以生成一个二维码,使用户可以访问相关的支持页面,而不会显示错误代码。TouchGFX还支持纠错,以确保所表示数据的完整性(例如,如果UI正在传输序列号)。二维码还能轻松地发送符号,而不仅是字母和数字,这对部分国家地区来说很实用。# P) z3 E1 M4 c: Y  s: p2 A; A& |

4 }/ V& w- K3 R) A3 Y: v
3 ?, f) q* t4 x
02PART     TouchGFX 主要特性
6 |8 v# \: y( [7 b1 S' @/ T6 K3 g/ l矢量的优化
% N' Q4 u# Q: Y) L+ |
微控制器上的大多数静态接口都使用位图,它们需要的计算吞吐量非常小。相比之下,矢量图像并不常见,因为它们需要更多的算力。UI开发的挑战在于矢量对于动画至关重要。因此,由于每秒帧数较高,开发人员可能会选择使用更多资源来实现更平滑流畅的动画。另一方式是,动画可以采用较低性能,降低画面的流畅性来处理。TouchGFX 在处理矢量图形时提供了显著的优化,在某些场景下效率提高了70%。得益于TouchGFX 不断的版本优化,开发人员可以在更小的MCU上提供更平滑的动画或使用更多的矢量元素;还将在较大的动画上获得最大的性能提升。9 I0 j- @" T, J: Y& L

4 u8 j3 C6 U" n
新的优化利用Chrom-ART在某些操作(如颜色填充)期间降低微控制器负载。ST还更新了TouchGFX计算形状边缘的算法。此外,功能更新涉及到框架对矢量图形的处理,用户也将从中受益。开发人员不仅能立即看到性能提升,还可以据此进行规划。有的开发者会选择降低应用程序的内存需求,有的会在界面中添加新动画。团队协作开发时,必须注意检查他们的UI,因为某些元素的运行速度可能比预期的快。
% t, n* e; O6 {! z( S8 r5 ]& G8 o$ r3 k

4 f- H) r* w% T+ B+ G. r矢量字体# i( K7 C* G! G  x1 m
文本是大多数UI的重要组成部分,但却最容易被忽视。比如,许多人甚至不清楚font和typeface之间的区别。Helvetica和Avenir经常被称作font,但实际上都属于typeface。typeface是一种设计语言,用来塑造一系列字母、数字和图标的形态。font是typeface的子集,主要是限定文字的粗细或大小等属性。因此,Helvetica是一种typeface,而12磅Helvetica则是一种font。同样,12磅Helvetica Bold是另一种font。
0 u* p4 z9 T* B- n( s. c' T9 b
$ E% e& a. l) d* l6 X5 H
这两者的区别为什么重要呢?因为嵌入式系统必须在编译时为每种字体渲染新的位图。PC需要使用轮廓字体(又称矢量字体),轮廓字体包含如何绘制的说明,而嵌入式系统需要使用位图。矢量字体需要很大的计算量,这对PC来说不是问题,但对微控制器来说,会造成UI运行缓慢。相反,已经完成渲染的位图不涉及任何计算,但会占用更多存储空间,因为系统必须对每种字体进行单独渲染。例如,三种Font(同一typeface所对应的三种不同大小)的位图会占用将近800字节的内存,而一个矢量文件所占用的内存不到200字节。
  ^0 Z1 R( ]6 N( F" `8 X
% _$ Q4 W9 T1 @# ?7 s5 [8 F
微信图片_20240729134009.jpg

$ D% P8 G( m4 \/ }7 y# \
▲ 渲染矢量字体

+ {5 h8 v6 [3 y
( v: S: _6 J) m% h) v/ y
, T% e& n4 y. }* R7 X" u5 d6 X
TouchGFX Designer能够在MCU上使用矢量字体的UI工具,为希望减少Flash占用空间的工程师带来了福音。有了这一功能,某些应用场景下,开发者只需使用MCU的内部Flash,大幅降低了BOM成本。产品或公司标识往往需要比字母文字系统用到更多的位图,因此节省存储空间的效果更加明显,实际效果因具体应用而异。此外,存储器市场价格波动频繁,而我们这个新版本可以帮助开发人员减少对外部Flash的需求。9 l) Q2 E# g9 d

9 L! ?* O/ c) Y
意法半导体旗下已有多款STM32 MCU在技术上支持矢量字体,STM32U5和最新推出的STM32H7R/S内部集成了NeoChrom GPU,出色的加速矢量计算的能力让矢量计算真正切实可行。例如,STM32F7渲染一个矢量字体可能需要花费2.88 ms,而STM32U5F9仅需0.80 ms。同样,最近针对TouchGFX先前版本的矢量优化也能有效减轻负载。但并非每种UI都能从轮廓字体中受益,比如需要使用大量动画的系统。
  ?& ^( J3 \* Q! [5 r$ p! h0 l
+ R) c$ u  @: u" B& S
矢量字体并不是节省存储空间的唯一方法,ST的L8压缩系统也可以缩小位图。每个项目都有不同的Flash需求,每个UI也都有特殊的渲染需求。有些项目只能使用有限的外部Flash,有些项目倾向于使用内部Flash,还有些项目仅需要缩短编程时间。但总的来说,越来越多的客户都希望UI占用的Flash空间更少。因此,矢量字体为无法通过其他方式缩减占用空间的UI提供了一个解决方案。8 H+ z& r& S, m5 _6 G

+ \0 g. y* s5 f% b
L8图像压缩
6 \* l2 k0 G8 h( c2 H图形资源占用大量内存空间,但降低图形质量也就意味着UI的降级。因此L8 是一项必不可少的功能,它可以将图像文件压缩 75% 而无需降级,这要归功于 STM32 微控制器中的 ChromART 加速器。图形资源最多使用 256 种颜色,这在 STM32 微控制器的小型嵌入式系统上很常见,开发人员只需在 TouchGFX Designer 中勾选一个框,就可以选择使用 L8 格式压缩图形。解压缩的算法也很高效,因为它使用 ChromART 引擎在表中查找颜色,并在不损失质量的情况下对图形进行渲染。
) r: x7 r& [2 `) j: U) S; G4 V- d* P
# `$ @$ A) z" g1 o* ?9 R9 h
微信图片_20240729134006.png
: r9 P4 N% w. n! C
0 ^% w7 e% }0 X2 Z
TouchGFX Designer的新版本引入了一个关键功能:L8图像的压缩。单击左侧栏的“图像”可列出当前加载的图形资源。对于所有L8图像,软件都提供一个新的“压缩”下拉菜单,用户可以在三种方法之间进行选择:L4、LZW9(Lempel-Ziv-Welch)和游程编码(RLE)。这三个都是无损的,L4和LZW9创建压缩表,为条目分配颜色,而RLE只是对重复序列进行因子计算。这些方法都有优缺点,因此我们还提供了一个“自动”选项,让编译器根据新文件大小及其渲染时间选择最优化的压缩方法。0 M6 E+ B% b3 T! j
9 D. O: h5 Y, l. a: N
用户平均可将图像文件大小减少20%到80%。多数情况下,图像所需的时间是渲染的两倍。然而,由于开发人员会将此功能用于静态界面、图标或较小的资产,因此影响并不明显,渲染只需几毫秒。此外,文件更小意味着从内存中读取时间更短,这就抵消了较长的渲染时间。因此,对存储的优化平衡了解压缩的代价,在使用更少内存的同时,能提供与未压缩L8资产相同或几乎相同的性能。- Z+ T. `0 B9 I" e) ^/ y) S
5 w9 ]8 T2 e2 }" l0 g
升级到TouchGFX Designer 4.22 的用户必须手动选择他们的压缩方法。ST仍将未压缩格式设置为默认格式,因为我们不希望开发人员在还不了解的情况下看到平台处理L8图像的方式发生了这么大的变化。该功能充分体现了我们在优化内存占用(尤其是在闪存中)的同时还要考虑到性能所做出的努力。
( e( ~: N: r) y+ M$ O+ \$ q; A3 x
5 R0 a9 ~9 G* n% I
支持可缩放矢量图形图像(SVG)' I% A' S* H" K, Y) o
TouchGFX 推出了对SVG的支持。以往,TouchGFX 架构存储的是光栅图像,如PNG文件,因为它们易于访问和显示。而SVG文件不包含渲染,但包含绘制说明。它们的可扩展性更好,但要求更高。这对于笔记本电脑或台式机不是问题,但对于低功耗微控制器就不同了。其难点在于,设计师正在创建越来越多的动画界面,他们希望一个UI可以通过缩放适应不同尺寸的显示器。因此,设计团队希望使用SVG文件节省资源,因为一个文件可以用多种不同的方式绘制。
; C; g  x+ l) ?+ U$ `- K" k! v6 O5 t* c; X% }
微信图片_20240729134003.jpg

  T. P; L0 x( |
▲ 一个适合不同屏幕尺寸的智能家居控制界面

" ?2 k/ n, |, U; W
+ J+ P0 E% f  i5 l" Y# H

0 J% |8 M8 G. H3 O
为了应对这一日益增长的挑战,ST在某些STM32U5产品上集成了新的NeoChrom 2.5D加速器。该硬件对绘图动画进行了优化,减轻了与SVG文件相关的一些计算负担,从而解决了性能问题。该IP还具有更快的内存接口,加快了提取操作。因此,将文件存储在外部存储器中时,损失更小。SVG IP具有很大应用潜力,ST将继续基于其特性为用户带来更多新功能。
8 X3 ]0 k+ [) R& Y3 f/ m
% E: q- J$ l( ~
TouchGFX Stock9 k6 n  N" ^1 ^, o
TouchGFX Stock 是基于微控制器框架提供的最大的免费UI图形资产库。它包括图标、GUI元素、主题、图像等。由于图标来自谷歌或百度的免费使用库,而ST拥有其他资源的所有权,TouchGFX Stock 开源了这些图形资产的使用许可,只要用户的项目在STM32设备上运行,即使是商业项目也可免费使用这些资产。用户可以抓取图形资产,调整大小以适应自己的界面,或对其进行编辑以满足特定的需求。TouchGFX Stock甚至还支持将这些图形资产与另一个图形框架一起使用,只要程序是在ST微控制器上运行的即可。
! F# M5 _. h: h- S( H, K3 w* B
: l, P9 r$ U' e6 ~
微信图片_20240729134000.jpg
/ u# b& l7 U" `- B# e3 x6 }, j
▲ 使用TouchGFX UI的Hi-Fi系统
6 n9 H8 h- l6 v" _
' T4 r! X8 F1 z# X8 V/ ?; @% h

  B7 [6 y* @1 a
简洁明了的 TouchGFX 占位符或示例资产,对于缺少设计资源的小型开发团队或初创公司非常友好,他们在开发中大量使用,只需将其添加到应用界面,即可快速实现UI开发。正因为这一点,ST决定投入开发 TouchGFX Stock,并成为拥有最广泛的免费图形资产库的MCU供应商。多年来,ST一直努力让MCU上的GUI更易于使用,并不断地增加新的主题、图像等来扩展这个库。( B! ~, p) ^, W1 Q1 B
- M6 _4 n. U: y: T1 E5 W9 M+ n1 n
微信图片_20240729133956.jpg ! `! I  x0 Q/ z
4 ?. N9 `5 r) c4 B8 F9 ^+ e1 w
$ E" X8 v* W; O: n
TouchGFX Stock 提供了很多UI元素,如条形图、弹出窗口、时钟、仪表等,还为某些图形资产提供亮版和暗版。工程师无需担心调色板不匹配或设计理念过时等问题。我们提供的图形资产能够保持UI连贯性和美观性。我们还提供各种尺寸以匹配大多数的显示器,许多显示器甚至不需要自己调整大小。TouchGFX Stock 上市时包含五个主题,但限于MCU上GUI的性质,还无法实现自动切换主题。由于没有与所有资产形成一一对应的关系,用户必须手动替换它们。
0 ?+ h4 b$ B* i& l
8 X+ z9 N! q: e! i  u( C

3 u. |5 Y1 u9 k+ P. t* D转载自: STM32- K/ O# |3 l1 o! ?
如有侵权请联系删除
3 T! ^3 k; ]  V+ K& u% t
& ^+ P0 N! l1 q

; q0 ?" {( X, E7 s
( N, \9 P! }% n1 l6 d
  }) ]% B$ v3 X) d8 B, x7 J
收藏 评论0 发布时间:2024-7-29 13:40

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版