近幾年,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
歡迎將我們設為“星標”,這樣才能第一時間收到推送消息。
免費領取汽車總線系統設計資料合集!
掃碼添加小助手回復“進群”
和電子工程師們面對面交流經驗
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.