工業產品的交互界麵開發要求越來越接近消費領域。選擇快速、低成本的嵌入式UI開發解決方案顯得尤為重要。本文將向您介紹一個新的基於框架的嵌入式UI開發平台。
1. 串口屏
串口屏是指可以通過串口指令控製顯示的屏,如UART(TTL、232、485)、SPI等。如果控製引腳較多且相互之間存在一定的時序關係,則將它們統稱為串口屏。稱為並行端口屏幕。串口屏的所有繪圖、顯示和人機交互都依賴於單片機與串口屏之間的命令和數據傳輸。串口屏最大的優點是開發方便,大大減少了主控芯片的IO口占用。不過,為了實現更豐富的顯示效果,串口屏需要在內部集成高性能處理器,這也使得串口屏的價格比裸屏要高很多。
圖1 簡單串口界麵
2010年之前的串口屏大多通過上位機預先下載要顯示的內容到屏上,然後發送預設的指令來顯示各種界麵。 2014年之後,更加強大的配置屏讓串口屏產業鏈日趨成熟。由於串口屏的顯示依賴於自帶的庫,所以其顯示靈活性還是受到一定程度的限製。
圖2 配置串口界麵(圖片來源網絡)
2. 嵌入式QT/E
與直接使用串口屏相比,嵌入式QT/E的靈活性和自由度大大豐富。嵌入式QT/E可以認為是Linux上QT的精簡版本。它放棄了底層的Xlib庫,以適應嵌入式應用的開發。使用Qt,您可以開發一次應用程序並將其部署在不同的桌麵和嵌入式操作係統上,而無需重寫源代碼。
圖3 嵌入式Linux QT/E界麵開發
3. 嵌入式emWin
使用QT/E往往需要在微控製器上運行嵌入式操作係統,因此對MCU的性能有一定的要求。另外,如果之前沒有接觸過QT/E,那麼使用起來也需要一定的時間和成本。相比之下,emWin 更適合快速、精簡的UI 開發。
德國SEGGER公司開發的emWin圖形庫為圖形LCD設計提供了先進的支持,大大簡化了LCD設計並縮短了上市時間。 emWin 圖形庫免費提供給NXP ARM 微控製器的用戶。它提供免費的商業庫,易於使用,提高MCU運行性能並提供逼真的色彩。
圖4 emWin_Demo
4.AWUIAWTK
emWin 手冊有一千多頁。對於大多數隻想使用emWin 作為交互界麵的開發者來說,他們需要花費大量的時間來學習emWin 的API。
為了讓emWin更加易用,致遠電子基於emWin開發了AWUI。它是一套基於C++開發的MVVM框架,實現了數據綁定、命令綁定、窗口導航等基本功能,並提供了豐富的GUI組件。 AWUI 與直接emwin 編程相比是一個巨大的飛躍,因為它使用mvvm 編程模型將界麵與邏輯分離(解耦)。 MVVM由MVC和MVP演變而來。它的作用是實現用戶界麵和業務邏輯的分離,有利於隔離變更、自動測試、分工。
圖5 AWUI框架思路
AWUI 目前支持Qt 和emWin。它使用Designer編輯界麵,使用C++開發ViewModel/Model,這樣開發者不需要學習Qt和emWin的API。最終的應用程序可以在Qt和emWin上運行(確保emWin支持該控件)。
基於AWUI,致遠電子計劃年內推出應用範圍更廣、使用效果更好的AWTK。嵌入式UI開發將以組件的形式集成到AWorks平台中,在此平台下可以快速實現交互界麵開發。
圖6 AWUI發展規劃
圖7 AWorks中的UI框架