通用嵌入式人机交互界面的设计与实现
2014-02-05李鹏飞许金凯韩文波宋鸿飞
李鹏飞,许金凯,韩文波,宋鸿飞
(1.长春理工大学 光电工程学院,吉林 长春 130022;2.长春理工大学 机电工程学院,吉林 长春 130022)
1 引 言
当前,以触控技术为核心的图像人机交互界面(GUI)在各个领域都得到广泛的应用,这些GUI通常具有显示直观、功能明确、操作简便的优点,但是大多数GUI的设计都是GUI和主控程序同步设计,这种设计方法在设计时难度很大,由于主控程序和界面是一一对应的,修改主控程序,就要修改界面,同样,修改界面就要同步修改主控程序,由于GUI系统设计比较复杂,既需要调配主控函数,又要设定界面之间的切换关系,还需要设定命令和数据传输,同时还要调试匹配液晶屏和触摸屏,因此结构十分复杂,需要用大量时间。
基于以上原因,本文利用Samsung公司的S3C2440处理器搭配通用实时操作系统RTOS(本文选用μC/OS-II系统)设计了一种通用GUI设计平台[1-5]。该平台适用于各种场合,专注于界面的设计,可以根据开发者的需要自行增减功能,在使用时把需要的GUI界面、窗口、数据框、状态框编号后依次烧写FLASH存储器中,然后把各个按键与μC/OS-II操作系统的任务进行关联,把曲线、数据、状态与系统中断进行关联,只保留标准串口与主控设备通信。经过实测,该平台可以根据需要自定义各种界面和功能,如果需要显示数据和曲线,通过串口即可传递,达到了设计要求。
2 总体设计
通用GUI平台的硬件部分由微处理器S3C2440、分辨率480×272的TFT液晶显示屏、4线电阻触屏、NAND FLASH存储器和标准串口组成[6-10]。总体硬件设计如图1所示。
图1 总体硬件设计Fig.1 Design of overall hardware
图1中S3C2440处理器内部集成了TFT液晶屏驱动模块、触屏驱动模块、串口通信模块、JATG接口和NAND FLASH驱动模块,因此平台的硬件部分十分简单。
平台在使用前可根据需要自主设计界面,举例如图2所示,该系统包含了2个界面,图2(a)是主界面,图2(b)是工作界面,首先进行编号,分别编号为1和1.1,然后转换成(.h)文件包含到μC/OS-II操作系统中,接着进行系统任务和中断的关联设计,最后编译,把编译好的可执行文件利用JATG接口下载到平台的NAND FLASH中。
(a)主界面(a)Main interface
(b)工作界面(b)Working interface
在程序中各个界面的以树链表的方式相互关联,这里以1个1级界面,3个2级界面为例如图3所示,并以按键发布命令的方式进行相互切换衔接。
图3 界面的树链表式关联Fig.3 Tree list of the interface
如果有更多的界面和层次,以此类推,对于图2所示的例子,平台就只包括初始界面(1)和工作界面(1.1),而没有工作界面(1.2)和工作界面(1.3),也没有更低层次的界面。
3 算法设计
GUI平台算法的设计主要包括数据输入/显示功能和按键命令输出功能两部分,无论输入还是输出都通过串口完成,也就是说,串口是该平台与主控系统惟一的通信接口,其中数据输入/显示功能主要用于在窗口显示数据曲线,在数据框显示数据,在状态框显示状态;按键命令输出功能主要用于按键按下后进行界面切换或向主控设备发送命令。
主控设备端的算法包括命令解析和数据打包功能,其中命令解析是对接受到的命令进行解析,然后依照命令运行;数据打包是把数据发给界面端,但要把界面上的各种信息包含其中,以知该数据是发给哪个界面的哪个窗口。
3.1 命令输出功能设计
在该平台下,按键是惟一能够进行命令发送的控件,按下按键就激活了系统中一个相应的任务,为了实现通用设计,把每一个按键的任务设计为如图4所示的形式。
图4 任务的流程Fig.4 Flow of tasks
其中任务的关键字由3部分组成:命令ID、切换操作、附加数据。命令ID表示该命令的物理含义;切换操作表示该按键是否需要切换界面和切换到哪个界面;附加数据表示该按键是否需要传送界面设置的数据。举例如下:
图2(a)的“启动”按键的关键字为:命令ID(0)、切换操作(切换到1.1界面,也就是图2(b)界面)、附加数据(无)。
图2(b)中“采集温度”按键的关键字为:命令ID(2)、切换操作(不切换)、附加数据(无)。
图2(b)中“采集信号”按键的关键字为:命令ID(3)、切换操作(不切换)、附加数据(无)。
图2(b)中“停止”按键的关键字为:命令ID(1)、切换操作(切换到1界面,也就是图2(a)界面)、附加数据(无)。
3.2 数据输入功能设计
主控设备通过串口把需要显示的数据和状态传给GUI平台。窗口显示曲线、数据框显示数据、状态框显示状态。当GUI平台通过串口接收到数据时,引发接收中断,中断处理函数通过查询关键字进而完成数据的传输与显示,其中断处理函数处理流程如图5所示。
图5 中断的流程Fig.5 Flow of interrupt
其中中断的关键字由3部分组成:界面编号、载体编号、附加数据。界面编号表示该界面的ID,隐含着该界面的物理地址;载体编号表示该载体的ID,隐含着该载体的物理地址;附加数据表示需要传送给该界面该载体的显示数据。
3.3 主控设备命令解析/数据打包设计
主控设备端的算法包括命令解析和数据打包功能,这需要与GUI平台端的命令输出/数据输入功能相对应,也就是收到按键的命令ID,就知道该命令要求主控设备干什么,并把数据传给谁,举例如下:
收到命令ID为0,主控设备端就会启动。
收到命令ID为1,主控设备端就会停止。
收到命令ID为2,主控设备端就会采集温度传感器传来的数据,并把该数据与界面编号和载体编号打包,通过串口发送给GUI平台端。
收到命令ID为3,主控设备端就会采集电压传感器传来的数据,并把该数据与界面编号和载体编号打包,通过串口发送给GUI平台端。
4 系统实测
为了检测设计是否有效,按图2所示,GUI平台端设计了一个2级触控平台,包括初始界面和操作界面,首先对界面进行编号,图2(a)编号是1,图2(b)编号是1.1,转换成头文件包含到μC/OS-II操作系统中,然后进行按键任务的设计,把对应的按键关键字按照3.1节的举例进行关联;接着进行中断函数的设计,把中断关键字按照图5进行关联,通过编译生成可执行文件,并烧入到GUI平台端的NAND FLASH中。
主控设备端加入了“命令解析”算法和“数据打包”算法,其中设定温度超过70℃或电压超过7 V,则自动报警。进行实验,实验效果如图6和图7所示。
图6(a)表示GUI平台的初始界面,当点击“启动”按键后,GUI平台进入图6(b)界面;当点击“采集温度”按键和“采集信号”按键后,GUI平台进入图7(a)界面;当温度超过70℃,GUI平台显示报警信息,并更新运行状态,进入到图7(b)界面。
(a)启动界面(a)Interface of start
(b)数据显示界面(b)Interface of display data
(a)显示数据采集界面(a) Interface of display data acquisition
(b)显示报警界面(b) Interface of Alarm
5 结 论
实验证明,本系统实现了通用GUI设计平台解决方案,系统采用S3C2440处理器驱动触摸屏和TFT液晶屏,结合μC/OS-II实时操作系统,开发者可以把界面设计和主控设备端分开进行,并大大降低了界面设计的难度,开发者可以根据需要任意修改功能,而不用花费大量精力在界面的调试匹配上,与传统的界面/主控一体化设计方法相比降低了90%以上的调试时间,随着界面复杂度的增加,调试的时间可减少到传统方法的5%以下,可以适用于多种场合,具有开发难度低、可定制、可修改、成本低的优点。
[1] 但永平, 彭红涛, 王东云,等.EDMA在图像数据快速传输中的应用[J].液晶与显示,2013,28(1):99-104.
Dan Y P,Peng H T,Wang D Y,etal.Application of EDMA in rapid transmission of image data [J].ChineseJournalofLiquidCrystalsandDisplays,2013, 28(1): 99-104. (in Chinese)
[2] 赵星, 王芳, 杨勇, 等.集成成像三维显示系统显示性能的研究进展[J].中国光学,2012,5(3): 209-221.
Zhao X,Wang F,Yang Y,etal.Research progress of display performance of integral imaging three-dimensional display system [J].ChineseOptics,2012,5(3): 209-221.(in Chinese)
[3] 姜漫, 吴志勇, 曹腾.基于SOPC技术的VGA字符和图像显示系统[J].液晶与显示,2013,28(1):120-126.
Jiang M,Wu Z Y,Cao T.Characters and images VGA display system based on SOPC technology [J].ChineseJournalofLiquidCrystalsandDisplays,2013, 28(1): 120-126. (in Chinese)
[4] 邓春健, 安源, 吕燚, 等.显示信息高速串行传输的差错控制[J].光学精密工程,2012,20(3): 632-642.
Deng C J,An Y, Lv Y,etal.Error control of high speed serial display data transmission [J].OpticsandPrecisionEngineering,2012,20(3): 632-642.(in Chinese)
[5] 刘希佳, 陈宇, 王文生, 等.小目标识别的小波阈值去噪方法[J].中国光学, 2012,5(3): 248-256.
Liu X J,Chen Y,Wang W S,etal. De-noising algorithm of wavelet threshold for small target detection [J].ChineseOptics,2012,5(3): 248-256.(in Chinese)
[6] 王健, 陈洪斌, 周国忠,等.改进的Brenner图像清晰度评价算法[J].光子学报,2012,41(7):855-858.
Wang J,Chen H B,Zhou G Z,etal.An improved Brenner algorithm for image definition criterion [J].ActaPhotonicaSinica,2012,41(7): 855-858.(in Chinese)
[7] 张传胜, 郑寒雨, 邓江东.基于SOPC的通用液晶触摸屏控制器的设计[J].液晶与显示,2013,27(5):638-641.
Zhang C S,Zheng H Y,Deng J D.Control unit design for TFT touching screen based on SOPC [J].ChineseJournalofLiquidCrystalsandDisplays,2013, 27(5):638-641. (in Chinese)
[8] 程少园, 胡立发, 曹召良, 等.液晶自适应光学在人眼眼底高分辨率成像中的应用[J].中国激光,2009,36(10):2524-2527.
Cheng S Y, Hu L F,Cao Z L,etal.Application of liquid crystal adaptive optics system on human eye fundus imaging with high spatial resolution [J].ChineseJournalofLasers,2009,36(10):2524-2527.(in Chinese)
[9] 熊根良, 陈初海, 梁发云,等.物理性人-机器人交互研究与发展现状[J].光学精密工程,2013,21(2): 356-370.
Xiong G L,Chen C H,Liang F Y,etal.Research and development statue of physical human-robot interaction [J].OpticsandPrecisionEngineering,2013,21(2): 356-370.(in Chinese)
[10] 韩瑞雨,王晋疆,聂凯,等.不同对比度下自适应的自动调焦新算法[J],光子学报,2012,41(2):222-227.
Han R Y,Wang J K,Nie K,etal.Adaptive autofocus technique under different contrast [J].ActaPhotonicaSinica,2012,41(2): 222-227.(in Chinese)