工業(yè)產(chǎn)品的交互界面開發(fā)要求越來越接近于消費領域的產(chǎn)品,。選擇一種快速且低成本的嵌入式UI開發(fā)方案顯得尤為重要,本文將為您介紹一種新的框架式嵌入式UI開發(fā)平臺。
1 . 串口屏
串口屏是指可以通過串口指令控制其顯示的屏幕,,如UART(TTL、232,、485)、SPI等,。若控制引腳較多且之間間存在一定的時序關系則統(tǒng)稱為并口屏,。串口屏所有的繪圖,、顯示及人機交互都是依靠MCU與串口屏之間的指令,、數(shù)據(jù)傳輸。串口屏最大的優(yōu)點就是開發(fā)便利且大大減少了主控芯片的IO口占用,,但為了實現(xiàn)更豐富的顯示效果,串口屏內(nèi)部需要集成高性能的為處理器,,這也使得串口屏的價格比裸屏高出很多,。
圖1 簡單串口屏
2010年以前的串口屏大多是通過上位機將要顯示的內(nèi)容預先下載到屏幕中,然后發(fā)送預設指令將各種界面顯示出來,。2014年后,,功能更強大的組態(tài)屏使串口屏的產(chǎn)業(yè)鏈日趨成熟。由于串口屏的顯示依賴其自帶的庫,,所以其顯示靈活度在一定程度上依舊受限,。
圖2 組態(tài)串口屏(圖片來源網(wǎng)絡)
2 . 嵌入式QT/E
相比于直接使用串口屏,嵌入式的QT/E的靈活度,、自由性極大豐富,。嵌入式的QT/E可以認為是QT在linux上的的精簡版,它在底層摒棄了Xlib庫以適應嵌入式應用的開發(fā),。使用 Qt 只需一次性開發(fā)應用程序,,無需重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應用程序,。
圖3 嵌入式Linux QT/E界面開發(fā)
3 . 嵌入式emWin
使用QT/E往往需要在微控制器上運行嵌入式操作系統(tǒng),,因此對于MCU的性能有一定的要求。除此之外,,若之前未接觸過QT/E,,運用起來將花費一定的時間成本。相比之下,,emWin更適合于快速,、精簡UI的開發(fā)。
emWin圖形庫由德國SEGGER公司開發(fā),,可為圖形LCD設計提供高級支持,,極大簡化了LCD設計并縮短上市時間。為恩智浦ARM微控制器用戶免費提供的emWin圖形庫,,以其免費提供商業(yè)圖庫,、使用簡單、提升MCU運行表現(xiàn)和色彩逼真,。
圖4 emWin_Demo
4 . AWUI&AWTK
emWin說明書有一千多頁,,對于大多說開發(fā)者來說只是想使用emWin做個交互界面,需要花費大量的時間學習emWin的API,。
為了使emWin更易用,,致遠電子在emWin基礎上開發(fā)出AWUI,它是基于C++開發(fā)的一套MVVM框架,,實現(xiàn)了數(shù)據(jù)綁定,、命令綁定和窗口導航等基本功能,并提供豐富的GUI組件,。AWUI相對于直接用emwin編程是巨大的飛躍, 因為它使用mvvm編程模型使得界面與邏輯分離(解耦),。MVVM是由MVC和MVP一路演化而來,,它的作用就是實現(xiàn)用戶界面和業(yè)務邏輯的分離,利于隔離變化,、自動測試,、分工合作。
圖5 AWUI的框架思想
AWUI目前支持Qt和emWin,,用Designer編輯界面,,用C++開發(fā)ViewModel/Model,讓開發(fā)者無需學習Qt和emWin的API最終的應用程序可以在Qt和emWin(要確保emWin上支持該控件)上運行,。
基于AWUI,,致遠電子計劃年內(nèi)推出適用范圍更廣、更好用的AWTK,。嵌入式UI開發(fā)將會以組件的方式集成于AWorks平臺中,,可在該平臺下快速實現(xiàn)交互界面開發(fā)。
圖6 AWUI發(fā)展計劃
圖7 AWorks中的UI框架