近几年,MCU的资源和处理能力逐渐增强,GUI(Graphical User Interface)基本成了MCU的标配。同时自从Microchip在2017年打破先例,把2D的GPU内嵌到了MCU中,并配套了自家图形界面编辑软件,似乎拼GPU性能成了一件稀松平常之事,MCU能做的显示越来越高级。(可以参考历史文章)
当然,设计GUI的过程,并不简单。开发图形用户界面可能是复杂而漫长的过程,需要大量的时间和资源来调试和集成来自各种工具的代码。所以很多情况下,选择一款合适的GUI软件,是工程师经常考虑的问题。最近几年,厂商就在不断布局GUI,在这个细节的领域打出差异化。
付斌|作者
电子工程世界(ID:EEworldbbs)|出品
嵌入式GUI,通用的选择
对工程师来说,一般选择很简单,就是GUI开源与否,是否收费,另外就是适配度、移植难度、应用场景。
当前主流的小型嵌入式GUI主要有:emWin(uCGUI)、TouchGFX、Embedded Wizard GUI、uGFX(分为收费和免费两版)、MicroChip GUI 、Qt for MCU、Crack Storyboard、Altia GUI、ThreadX GUIX等主要包括三类,一是完全开源项目,二是第三方软件公司公的产品,三就是厂商自己的GUI。
首先,完全开源项目方面,主要包括LittlevGL(LVGL)、MiniGUI(部分SoC免费使用)、GUISlice、Nano-X(旧称MicoroWindows)等,不过这种GUI可能会存在学习曲线陡峭,或者资源比较分散的一些问题,但多数都轻量级,适合资源受限的MCU。
其次,第三方软件公司公的产品,主要包括Qt for MCU、SEGGER公司开发的emWin、Crack Software的Storyboard、TES Electronic Solutions GmbH开发的Guiliani、德国TARA System公司开发的EmbeddedWizard、汽车使用的Altia GUI、ZLG 开发的AWTK、北京飞漫软件技术开发的Minigui,这些软件拥有庞大的生态系统和社区支持,提供了丰富的文档、示例和支持,整体上手难度层次不齐。
最后,MCU厂商自己的产品,包括ST的TouchGFX、Microchip的Microchip Graphics Suite (MGS)、NXP的PEG Graphics Software,这些产品只针对自己的MCU产品,但相对更适合MCU本身体质。
Microchip:围绕简化开发行动
Microchip在GUI领域布局非常多年。整体理念则是围绕“极简开发”这一关键词展开。其在官网上就有一句话——“阿尔伯特·爱因斯坦(Albert Einstein)说过,一切都应该尽可能简单,但不能更简单。Microchip 将这一理念应用于其为嵌入式开发提供的GUI工具。”
Microchip提供的工具主要是MPLAB Harmony Graphics Suite(MHGC),目前在MPLAB Harmony 3之中,其支持的主要是Microchip 32 位MCU和所有 Microchip MPU。不过Microchip也很强调免费这个概念。2020年9月,Microchip推出免费、免许可和免版税的Ensemble图形工具包, 加快Linux图形用户界面开发,Ensemble图形工具包免许可和版税,向GUI的所有开发者免费提供。
如果需要设计一款具有简单且优雅嵌入式GUI的应用,选择Microchip的MCU总是没错的。并且Microchip官方还推出了很多优秀的入门教程,大大降低使用门槛。
前两天,Microchip又进一步把其GUI套装升级成Microchip图形套件(MGS)。这是一款易于学习使用的综合解决方案,可简化将图形用户界面、动画和图像集成到触摸屏的过程。
MGS 采用现代设计,提供直观的所见即所得(WYSIWYG)界面,用户可直接查看和操作最终输出,从而减少错误,提高效率。为了使图形用户界面更易于使用,MGS具有多功能性,可支持各种不同性能的设备。从对内存和系统性能要求较低的资源受限设备,到支持平板电脑大小触摸屏和高保真视频播放的高性能设备,都可以使用MGS。
Microchip 图形套件包括MGS Composer和MGS Simulator组件,同时由各种开发工具提供支持,包括MPLAB Harmony v3、MPLAB 代码配置器以及Microchip 适用于32位MCU和MPU的主线Linux发行版。
ST:走向“单芯片”模式
ST的TouchGFX是收购而来,大名鼎鼎的TouchGFX以界面华丽、流畅以及强劲的 TouchGFX Designer著称。自从2018年ST收购以后,TouchGFX在ST MCU、MPU上都开始可以免费使用。
根据工程师的分享,TouchGFX在MCU系统运行界面非常炫,堪比手机APP界面。使用TouchGFX开发STM32界面,有2种方法:一是利用TouchGFX Designer软件,支持图片和控件拖拽、可快速生成在KEIL或IAR等IDE中可打开的项目工程;另一种方法是,STM32CUBEMX 5.0版本增加了对TouchGFX的支持,可以使用CubeMX开发TouchGFX应用。
今年7月,ST将其更新到了TouchGFX 4.24。通过提供新的图像压缩格式(RGB565、RGB888和ARGB888)和更多的闪存节省功能,进一步减少了内存需求。
ST介绍中说,嵌入式系统的最新趋势是“单芯片”接口,开发人员可以从主机MCU的RAM和闪存中运行整个UI,无需使用外部存储器。这有助于减少材料成本,减轻对存储器市场的依赖。简而言之,它在开启了很多新功能的同时还能保持设计的成本效益。但没有之前版本的丰富功能作为基础,这样的突破也是不可能实现的。TouchGFX 4.24建立在旧版本基础之上,可确保更多的应用程序能够适应这种“单芯片”模式。
简单来说,就是TouchGFX 4.24对其压缩算法和矢量运算进行了一系列优化,以节省更多闪存。
NXP:分为三种版本
很多人都不知道,NXP本身其实也有GUI库,而且还很强大。不过,NXP的PEG和上述两个厂商的划分不太一样,分为免费版本和收费版本,即PEG Pro、PEG +和PEG Lite,其中Lite版本对于NXP芯片是免费的,收费版本相对功能会强大许多,不过基础版本也可以满足大部分要求。
PEG可与实时操作系统完美结合。该图形开发解决方案工具使开发人员能够使用PEG库和外部资源对用户界面屏幕和用户界面控件进行布局,并生成C++代码。PEG Graphics Software整体学习曲线也相对较平缓,同时NXP提供了大量的学习资源进行参考。
写着最后
目前来看,Microchip和ST在GUI库的建设上走得比较激进,经常进行大更和迭代。毕竟,提供一个非常完整的方案,更有助于工程师快速开发自己的产品,加速研发进度,让工程师有更多选择的理由。而其他厂商,如英飞凌、瑞萨主要与QT、SEGGER这些厂商加大合作,以支持更大的软件生态。不过,软件这个东西,使用第三方也完全足够,而且也不一定有必要去自己做一套软件和库,但自己给自己做总归是更适配自己的产品。
参考文献
[1]安谋科技学堂:嵌入式系统的GUI分类及介绍——面向MCU微控制器.2023.10.9.https://mp.weixin.qq.com/s/m8wBsMsCrdEE5X31J7KhAA
[2]知乎:https://www.zhihu.com/question/20751611
欢迎将我们设为“星标”,这样才能第一时间收到推送消息。
免费领取汽车总线系统设计资料合集!
扫码添加小助手回复“进群”
和电子工程师们面对面交流经验
热门跟贴