基于YGV629的系统图形用户界面设计
扫描二维码
随时随地手机看文章
嵌入式系统广泛应用在通信终端、车载设备、工业控制等领域。随着嵌入式技术的发展,对嵌入式系统图形用户界面(Graphic User Interface,GUI)的要求逐步提高。GUI是用户和嵌入式设备之间的接口,是嵌入式系统的重要组成部分,它通过窗口和菜单等图形化操作方式,极大地方便了用户对嵌入式产品的使用。GUI的好坏将直接影响嵌入式产品的普及和使用。GUI简洁、方便、美观的嵌入式产品具有广阔的市场应用前景。
嵌入式系统的资源是比较紧张的,多数嵌入式系统没有个人电脑所具有的硬件资源和图形显示处理资源。一个嵌入式系统能够显示何种风格的界面,是由嵌入式系统的功能需求和本身的图形显示处理机制决定的。因此不同嵌入式系统的GUI设计是不同的,它综合了硬件和软件两方面的考虑,而不像在个人电脑上开发界面时多数情况下只需考虑软件设计。
本文以车载影音导航系统为例,介绍了一种嵌入式系统图形用户界面的设计方法。首先介绍了系统对图形界面的需求,然后给出了实现系统图形界面的硬件和软件设计方案。
1 功能需求
本文中的车载影音导航系统集导航、DVD播放、收音、倒车雷达显示、倒车后视等多功能于一体,采用图形化界面显示。为了方便用户使用,系统采用按键和触摸屏结合的操作方式。
本系统对图形界面的功能需求主要分为两大类。
一类是单纯的用户界面操作,如图1所示。这一类界面总体上是由窗口和按钮组成,整个操作界面可以看成是一个窗口,窗口上有可供用户操作的各种按钮。从实现上看,图形界面的窗口实际上是一个背景图片,每个按钮则至少由两张图片组成的:一张图片用于表示正常显示的按钮,一张图片用于表示选中时的按钮显示。那么整个界面就是由窗口图片和按钮图片组合而成,最终送到显示终端上的是一副完整拼接的图片。图1中,“设置”按钮显示当前用户点中了该按钮。
另一类图形界面是在有播放视频(如DVD播放)时,叠加在播放视频上的按钮,如图2所示。从实现上看,这类图形界面上的每个按钮仍然至少由两张图片组成。但是不同的是,这类图形界面最终送到显示终端上的内容由图片和DVD视频两部分叠加而成。大多数DVD机芯输出的视频信号是CVBS(复合视频信号)或 YC,而图片信息在系统中是以RGB的形式出现的,那么要实现这类图形界面就需要对DVD视频进行解码,解码后和图片的RGB信息进行叠加再输出到显示终端。图2所示为DVD播放时,提供给用户的操作按钮。
2 硬件设计方案
为了实现本系统中的图形用户界面,采用雅马哈公司的图像处理芯片YGV629。同时为了满足图像处理的要求,系统的MCU使用意法半导体公司基于ARM7TDMI-S的32位RISC CPU STR750,STR750主频最高可达60 MHz,具有16 KB的RAM,最大片内Flash为256 KB。
2.1 YGV629
YGV629是一款图像处理芯片,通过MCU控制其读取存储在Flash或ROM中的图片数据,将数据处理成RGB信号输出。有两种RGB信号输出:模拟 RGB和数字RGB。输出的行场时序有两种方式,一种是YGV629自身产生的时序关系,此时芯片工作在内同步模式下;另一种是根据外部输入的视频时序来生成输出的视频时序关系,此时芯片工作在外同步模式下。YGV629可以产生的终端显示时序包括NTSC、PAL、VGA、QVGA、SVGA等,因此可以支持多种显示终端设备。
YGV629对图形界面中图片的管理是通过图层的方式,每个图片占用1个图层,最多可以有341个图层,输出图片的RGB由这341个图层叠加而成。每个图层在整屏上的显示由12字节的属性数据确定,这些属性数据决定每个图层在整屏上的显示位置、透明色、缩放比例、Alpha通道等。[!--empirenews.page--]
YGV629支持8位色和16位色的BMP图片以及PNG图片。对于8位色,YGV629内部有调色板机制,并有2 KB的调色板存储空间。对于16位色,不使用调色板,图片直接存储为颜色数据。
2.2 硬件方案
图3是本文中车载影音导航系统的硬件设计方案。图形界面使用到的图片数据保存在图片存储Flash中,YGV629通过并口读取图片数据。
对于前文提到的第一类用户界面,此时整个显示终端的输入都是由YGV629输出的,YGV629工作在内同步模式下。MCU通过SPI控制YGV629,设置其工作模式、显示图层属性、输出视频格式等。YGV629通过并口读取存储在Flash中的图片数据,然后生成输出的图片模拟RGB以及行场同步信号 HCSYNC和VSYNC,YS信号是YGV629输出的对模拟开关的控制信号。对于这一类用户界面,YS控制模拟开关全部输出图片模拟RGB。这样 L_R、L_G、L_B、HCSYNC和VSYNC构成了对显示终端的输出。
对于第二类用户界面,由MCU控制视频通道选择开关来选择要播放的视频源。视频源可以是DVD视频、导航视频或后视视频。例如,若MCU选择的是DVD视频通路,那么DVD视频输出到视频解码芯片,视频解码芯片输出DVD视频解码后的模拟RGB和行场同步。其中模拟RGB输出到模拟开关,视频行场同步信号输出到YGV629。MCU设置YGV629工作在外同步模式下,即YGV629使用DVD视频的行场同步作为输出图形界面的行场同步。YGV629读取 Flash中的图片数据,根据MCU设置的图层属性,在适当时候输出相应的图片模拟RGB和通道切换控制信号YS。高速模拟开关根据通道切换控制信号YS 的高低电平,在每个像素点的输出时刻,从DVD视频RGB和图形界面图片RGB这两路RGB信号中选择一路输出,通过“像素点插入”的方式将图形界面嵌入到DVD视频中,从而实现了DVD视频和图形界面的叠加。
3 软件设计方案
车载影音导航系统图形用户界面软件模块的设计分为两部分:应用软件模块设计和YGV629驱动模块设计。硬件驱动模块由MCU和YGV629间通信、图层属性设置、工作模式设置、显示输出设置等组成。为了提高显示质量,防止在界面切换时出现屏幕抖动,YGV629采用双缓冲机制,将341个图层划分成两帧,每帧占用170个图层。一帧用于当前显示界面。另一帧用于准备下一个显示界面,在准备好下一个显示界面后,再将显示输出从当前帧切换到下一帧。考虑到系统每个界面使用的图层数都远远小于170,所以这样的机制是可行的。根据需求,硬件驱动模块主要设计了以下几组函数:VC_Write_XXX()和VC_Read_XXX(),用于MCU和YGV629进行串口通信,设置和读取YGV629内部寄存器、图层属性数据、调色板数据等;VC_Layer_SetXXX(),用于设置YGV629的图层属性;VC_Palette_XXX(),用于对调色板进行管理;VC_Display_Set(),用于设置YGV629的显示输出;VC_ModeSet(),用于在内同步和外同步工作模式之间进行切换。应用软件模块主要对不同图形用户界面进行封装管理,不同界面包含多个按钮,每个按钮对应按下和抬起两个动作。MMI_Open()函数用于打开不同的界面,这个函数通过调用硬件驱动模块,准备要打开界面的图层属性数据、调色板数据,并写入YGV629中,最后根据要显示的界面进行显示输出设置和工作模式的切换。对于按钮,设计了函数MMI_Button_Down()和MMI_Button_Up(),用于处理当某个按钮按下和抬起时的界面变化。此外对不同界面,另需定制专门的处理函数,比如界面上某些焦点闪烁、音量调节进度条的变化等。
4 总 结
本文主要介绍了一种基于雅马哈图像处理芯片YGV629的嵌入式系统图形用户界面的设计方法。对于嵌入式系统,大多数显示处理芯片提供OSD显示,只是简单的图形显示和字符显示,颜色比较单调,不能显示颜色丰富、美观炫丽的图片界面。YGV629提供了显示8位色、16位色图片的功能,并且能够实现图形界面和DVD等视频源的叠加,给嵌入式系统界面设计带来很大空间。本文以车载影音导航系统为例,详细介绍了使用YGV629芯片的硬件设计和软件设计方案。