如何快速开发嵌入式系统的交互界面?
2018-09-19
工业产品的交互界面开发要求越来越接近于消费领域的产品。选择一种快速且低成本的嵌入式UI开发方案显得尤为重要,本文将为您介绍一种新的框架式嵌入式UI开发平台。
1 . 串口屏
串口屏是指可以通过串口指令控制其显示的屏幕,如UART(TTL、232、485)、SPI等。若控制引脚较多且之间间存在一定的时序关系则统称为并口屏。串口屏所有的绘图、显示及人机交互都是依靠MCU与串口屏之间的指令、数据传输。串口屏最大的优点就是开发便利且大大减少了主控芯片的IO口占用,但为了实现更丰富的显示效果,串口屏内部需要集成高性能的为处理器,这也使得串口屏的价格比裸屏高出很多。
图1 简单串口屏
2010年以前的串口屏大多是通过上位机将要显示的内容预先下载到屏幕中,然后发送预设指令将各种界面显示出来。2014年后,功能更强大的组态屏使串口屏的产业链日趋成熟。由于串口屏的显示依赖其自带的库,所以其显示灵活度在一定程度上依旧受限。
图2 组态串口屏(图片来源网络)
2 . 嵌入式QT/E
相比于直接使用串口屏,嵌入式的QT/E的灵活度、自由性极大丰富。嵌入式的QT/E可以认为是QT在linux上的的精简版,它在底层摒弃了Xlib库以适应嵌入式应用的开发。使用 Qt 只需一次性开发应用程序,无需重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
图3 嵌入式Linux QT/E界面开发
3 . 嵌入式emWin
使用QT/E往往需要在微控制器上运行嵌入式操作系统,因此对于MCU的性能有一定的要求。除此之外,若之前未接触过QT/E,运用起来将花费一定的时间成本。相比之下,emWin更适合于快速、精简UI的开发。
emWin图形库由德国SEGGER公司开发,可为图形LCD设计提供高级支持,极大简化了LCD设计并缩短上市时间。为恩智浦ARM微控制器用户免费提供的emWin图形库,以其免费提供商业图库、使用简单、提升MCU运行表现和色彩逼真。
图4 emWin_Demo
4 . AWUI&AWTK
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框架