初步考虑
本部分的目的是针对硬件决策前应考虑的事项提供一些指导。 每个产品都是不同的,因此有不同的标准和要求。下面的内容将针对在决策前应该考虑些什么为您提供灵感来源。
以下主题涵盖显示屏外观、系统内存需求、所需的UI性能和产品物理设计。
显示分辨率
显示屏有多种不同的分辨率和长宽比。 通常,TouchGFX不依赖于这些参数中的任何一个。 显示分辨率是选择合适硬件的主要考虑因素之一,一般来讲,分辨率越高,像素越多,因此要渲染和传输的数据就越多。
STM32微控制器通常支持高达16/24 bpp的XGA分辨率(1024*768),也支持非标准分辨率,如宽显示屏或圆形显示屏。 对于高于XGA的分辨率,通常需要在色深、每秒帧数等方面做折衷……
以下是3个标准分辨率的示例:
还应考虑像素密度,虽然显示屏尺寸越大,分辨率越高,显示越清晰,但像素密度越高,成本也越高。
在为您的应用选择分辨率时,应该问自己的一些问题:
- 最终目标用户群体是什么? 作为消费者自然期望更高的像素密度,而实际工业应用往往会综合考虑产品成本和集成度复杂性来最终选择合适的像素密度参数。
- 您在应用中会使用到大量的文本显示吗?
- 您常常会在屏幕上一次性显示大量不同元素吗?因为更大的显示空间可以显示更多元素,或使被部分元素显示更为清晰。
色深
第二个主要考虑因素是色深(每个像素所对应的存储位数),它决定了图像中每个像素可以存储的信息量,也意味着您可以为单个像素分配的颜色数量。
显示屏可以支持不同的色深,16bpp GUI应用可以在24bpp显示屏上运行,但无法在只能显示16位色深的显示屏上运行24bpp应用。
显示带有很多细微颜色差别的复杂图像往往需要更高的色深,以尽可能接近源图像。 色深的选择与显示所需内存量往往存在冲突。
不要低估在较低色深上可以实现的效果,因为许多现代UI设计理念都围绕扁平化和颜色密集程度较低的应用(例如Google的质感设计)。 通过应用某种抖动算法,TouchGFX可以有效地在较低色深条件下实现复杂图像。 下面的示例展示了可在较低色深基础上实现的效果:
在为您的应用选择色深时,您应该问自己的一些如下问题:
- 您需要显示真实生活图像吗?如果要使用真实生活图像或多层合成图像,建议在应用和显示屏中都使用24 bpp像素,因为在某些情况下,16bpp不足以显示所有需要的颜色。 16bpp在很多情况下是足够的,并且仍然是行业标准之一。
- 选用灰度颜色还是简单的6/8 bpp?您真正需要实现的应用需求是什么?也许您的应用不需要大量颜色来正确传达其功能,因此可以选择较低色深。 这也减少了帧缓冲区大小,从而减少RAM需求。
- 您对RAM和/或闪存容量有限制吗?限制色深将同时减少位图和帧缓冲区(RAM) 的需求。
帧缓冲区大小的计算
帧缓冲区是用来存储像素数据的地方,像素数据经过渲染后传输到显示屏。 帧缓冲区大小很重要,因为更高的像素数量和更高的色深需要更高的RAM和显示接口的数据吞吐率。
帧缓冲区大小以字节为单位通过以下方式计算:
显示宽度*显示高度*(每像素位数/8)
例如,一个分辨率为800x480具有16bpp色深的单帧显示帧缓冲区大小为:
800 * 480 * (16 / 8) = 768.000 b (768.000/1024 = 750 Kb)
因此,当您决定分辨率和色深时,请确保您有足够的RAM提供支持。 某些应用需要2个帧缓冲区,因此在上面的示例中,所需的RAM为750 KB * 2 = 1500 KB。
Further reading
显示
接口
可以选择具有不同显示接口(例如SPI、LTDC、MIPI-DSI)的显示屏,这些接口对所需的针数、带宽、支持的分辨率以及可能需要的外部RAM容量都有不同的影响。 有关详情以及各自的优缺点,请阅读“显示”部分。
尺寸
显示屏的物理尺寸也是重要的考虑因素之一。 更大的显示屏通常更容易操作,更容易给出精确的触摸命令,但也需要更大的分辨率才能让眼睛更舒适,从而影响对更多内存和吞吐率的需求。 如果显示屏上的信息在1-2米外显示,则文本、图标等需要足够大。
触控
触控显示屏主要有两种类型:
电容式
电容式触控显示屏具有更高的触控灵敏度,如果应用需要更高级的触控操作(如拖动、滑动等),这一点很重要,这种类型也是现代设备中使用最多的。
然而,它们也更贵,而且通常不能戴手套操作,所以如果这很重要,也许电阻式是解决方案。
电阻式
这种更便宜的替代品灵敏度要低得多,在阳光下的可见性也很差,但可以戴手套操作,因为它对意外交互的敏感性较低,而且通常抗性更好。
因此,如果您所有的触控操作都由简单的按按钮组成,那么也许电阻式显示屏就足够了。 STM32F429-DISCO板使用电阻式触控显示屏。
动画
如果硬件的吞吐率和计算能力不足,运行复杂的动画(如全屏转换、旋转和缩放)会对性能产生重大影响。
在决定应用中的动画级别时,您需要问自己的一些问题包括:
- 您需要高速全屏转换吗?全屏转换需要渲染完整的帧缓冲区,因此依赖于足够的MCU周期,以及足够快的像素数据访问和传输。 所需的系统性能还取决于分辨率和色深。 高分辨率全屏转换通常推荐用于STM32高性能产品。 某些转换需要额外的存储空间,因此可能需要更大内存量。
- 您是否需要复杂的纹理映射器动画,如旋转和缩放?当涉及到计算和传输位图时,动画纹理映射器在系统上可能非常密集,因此通常需要更高的MHz和高内存吞吐率。
机械设计要求
产品的物理外壳要求会有很大差异,并且会对所选硬件产生影响。 家用电器对危险工业用途有其他要求,因此,在揭示物理限制时,您应该问自己的一些问题可能包括:
- 您的产品需要非常小吗?例如,智能手表,它的外壳大小有限,这限制了PCB的大小,因此选择正确的组件很重要。 STM32提供多种MCU封装,例如WLCSP封装。
- 您的产品会暴露于极端温度吗?电容式显示屏在极热或极冷时性能不佳。 因此,如果您将产品安装在如冷库等位置,则电阻式显示屏可能会提供更好的用户体验。 STM32产品组合提供环境温度范围高达85、105和125度的微控制器。
- 您的产品是否需要对室外环境因素(例如,水或灰尘)具有很强抗性?不同的技术提供不同的质量和功能,添加保护盖板可能是一种选择。
- 强光下可见性重要吗?显示屏的发光强度和光通量各不相同,显示屏的光通量和发光强度越高,显示屏的可读性就越高。 添加一个特殊盖板也可以改善这一点。 或者使用另一种也可以提供反射功能的显示技术。
每秒帧数
更高且稳定的每秒帧数(FPS)计数通常更好,因为这会使应用看起来更流畅。
有时FPS不那么重要。 例如,在显示动画更新最少的静态GUI中。 在这种情况下,低成本硬件可能更合适。
但是,根据目标用户群,拥有漂亮流畅的应用和大量华丽的动画也可以成为一个巨大的卖点,因此与硬件选择相关的任何方面都是一样,都是为了满足最终用户期望,并提供良好的用户体验。
图形用户界面的整体性能归结为系统级性能,包括如MCU、RAM、闪存、显示屏、接口吞吐率等组件,以及如STM32 Chrom-ART等硬件功能。
下图描绘了一些不同参数影响的概括图。 要选择正确的硬件,需要考虑这些参数。 还考虑到STM32 Chrom-ART可降低MCU负荷,因此在某些情况下降低了高MCU频率的重要性。