基于嵌入式 Qt 的车载 GUI 平台的设计

发布者:神雕最新更新时间:2009-04-21 来源: 自动化与信息工程关键字:嵌入式  GUI  QT 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  随着经济社会的不断发展汽车已进入普通家庭,汽车用户对车载娱乐系统的要求不断地提高,希望汽车载娱乐系统的功能更加强大娱乐设施更加完美。嵌入式GUI(Graphical User InteRFace)可以满足用户需求,人机交互好,作为车载娱乐系统中人机交互界面的开发平台,对整个系统的设计起着决定性作用,越来越受到开发者的青睐。目前比较流行的GUI平台有Qt/Embedded、紧缩的X Windows系统、MicroWindows以及MiniGUI系统。

  X Window系统是一个基于客户/服务器(Client/Server)结构的视窗系统,基于X的终端(服务器)上显示出来。此系统配置在大多数的UNIX系统、DEC的VAX/VMS操作系统以及Linux系统中,可以自由拷贝以及传播,但是系统庞大,占用内核资源较多。MicroWindows是一个完全开放源码、分层设计的经典GUI系统,可以替代X Window系统,但是某些关键性代码使用了汇编语言。MiniGUI系统适应于中小型企业的嵌入式GUI平台,采用分层结构,并在核心层采用hash表的方式。本文采用的Qt/Embedded也是分层体系结构,在功能提供方面采用C++类方式。

  2 嵌入式GUI的实现平台

  GUI是图形用户接口,一般用于PC机上人机交互界面的设计。而对于嵌入式GUI来说,由于嵌入式设备对资源的要求很严格,不同的嵌入式设备需要定制不同的嵌入式系统,那么对GUI的要求也就不一样,因此,对于不同的嵌入式系统来说GUI也必须是可定制的。对于嵌入式的硬件来说,要求定制的嵌入式GUI应具有轻型、占用资源少、性能高、可靠性高、可配置等特点。由于Linux操作系统具有源码公开性、可移植性、可裁剪性和灵活性等优点,所以嵌入式GUI的开发常在Linux环境下进行。

  Qt/Embedded是著名的Qt库开发商正在进行的面向嵌入式系统的Qt版本。它是专门为嵌入式系统设计图形用户界面的工具包,包括一个完整的窗口系统。它的特点是可移植性比较好,设计者能轻易的加入各种显示设备和硬件输入设备,很多基于Qt的XWindow都可以非常方便的移植到嵌入式版本。

  Qt/Embedded为开发者提供了丰富的API调用功能,并公开源代码。Qt/Embedded提供了非常丰富的窗口小部件(Widgets),并且还支持窗口部件的定制,因此它可以为用户提供漂亮的图形界面,但同时丰富的窗口对象也增大了软件的体积,所以,Qt/Embedded一般用于对运行环境不太苛刻的嵌入式设备中。

  3 嵌入式Qt系统的特点

  Qt/Embedded移植了大量的原来基于Qt的XWindows程序,并提供了非常完整的嵌入式GUI解决方案,是一个成熟的GUI平台,具有如下特点:

  (1)Qt遵循GPL协议,开放主要的源代码,用户可以在GPL的规定下自由添加新特性。

  (2)与其他嵌入式GUI相比,嵌入式Qt不仅是一个完整的窗口系统,而且也是一个应用程序框架,这更有利于应用程序的开发。

  (3)Qt具有丰富的API,包括多达250个以上的C++类,支持诸如对图形、网络、数据库、I/O操作、各种控件和XMI等众多功能,可满足大多数嵌入式应用系统开发的需要。

  (4)Qt是一个GUI仿真工具包,它使用各自平台上的低级绘图函数仿真MS Windows和Motif(商用Llnix的标准GUI库),因此程序运行速度快。

  (5)Qt良好的封装机制使得Qt的模块化程度非常高,可靠性好,易于程序开发。

  基于Qt的这些特点,在本车载嵌入式娱乐系统的开发过程中,本文采用了嵌入式Qt作为图形用户界面开发的GUl支持平台,有效提高了应用程序的开发速度。

  4 基于嵌入式Qt的车载GUI的设计

  4.1 基于嵌入式Qt的车载GUI的总体设计

  基于Linux的车载娱乐系统运行环境如表l所示,底层由Linux内核和驱动程序构成。该内核是经过裁减过的嵌入式Linux2.4,其中包括电源管理系统;驱动程序提供对各种接口硬件的支持;中间层是基于QT/Embedded的嵌入式Qt库。它精简和优化了各种图形操作,程序运行时无需额外系统的支持,可以有效减少内存消耗和CPU负担。QT/Embedded本身是可扩展的,并能不断地升级。开发人员可以根据自己所面对的嵌入式设备的实际需要,对其进行适当的裁减,经过裁减所得到的QT/Embedded可以大约节约800k到3MB的内存空间,这样也就意味着用Qt开发比用其他工具包开发相同的应用程序,在生成可执行文件后,代码所占用的内存空间要小。最顶层是整个车载娱乐应用系统,它是实现车载娱乐具体功能的应用集合。

  基于嵌入式Qt的车载嵌入式娱乐系统软件,最大限度的满足了车载视听娱乐的要求。提供视频播放、音频播放等多媒体软件,个人信息管理软件,无线网络服务等。其系统架构如图l所示。

  4.2 基于嵌入式Qt的窗口系统结构设计

  本文设计的上层GUI窗口系统采用了客户/服务器系统结构。该窗口系统包括:一个服务器进程、一个或者多个客户进程。服务器负责为客户和本身分配显示区域,生成鼠标、键盘或者触摸屏事件,它通常包含那些启动客户的用户界面。而客户则通过与服务器通信来申请显示区域,接受鼠标或触摸屏事件。客户可以直接访问所分配的显示区域,以便为用户提供GUI服务。服务器和客户通过共享内存的方式来传递所分配显示区域上的信息。窗口系统体系结构如图2所示。

  服务器(进程)维护着一组区域,当窗口被创建、移动、改变大小和破坏时,通过这组区域来改变每个客户的申请。该区域存放在共享内存中,在执行绘图操作时,客户可以从中读取信息;服务器连接着一些系统设备,如鼠标、键盘或者触摸屏,服务器负责将这些设备所产生的事件发送到适当的客户进程。服务器能够生成一个设备独立的鼠标或键盘事件,并将其发送到相应的客户进程。触笔设备通常没有鼠标光标,但是触笔操作能转化为设备独立的鼠标事件,然后由客户以标准事件进行处理。

  嵌入式Qt为客户(进程)提供API,当客户使用Qt API画线时,QT/Embedded库能直接访问显存,完成画线工作;在一些情况下嵌入式Qt客户库需要与服务器进程建立连接,如在客户进程启动时,发生了会影响到全局后果的操作而与服务器通信时。例如,当客户进行了拖放操作后,由于窗口覆盖而导致显示区域的变化,则从用户那里接收到鼠标和键盘事件时就需要建立这样的连接;嵌入式Qt客户库负责处理所有的绘画操作,包括文本显示和字体处理等。

  4.3 基于嵌入式Qt的事件响应设计

  在前述的客户/服务器系统结构中,每个键的按下、释放都以QWSKeyEvent事件发出。一个QWSKeyEvent事件通常包括以下各域:

  •   Unicode:Unicode值。
  •   Keycode:Qt键码值,定义在qnamespace.h头文件中。
  •   Modifier:位域, 包括Qt::ShiftButton,Qt::ControlButton和Qt::AltButton。
  •   Is press:键按下时为真,释放时为假。
  •   Is auto repeat:键处于自动重复状态时为真。

  嵌入式Qt处理键事件的过程为:键盘驱动程序负责从设备中读取数据,并将键事件发送到服务器中。当服务器从键盘驱动程序接收到一个键事件时,它首先要经过一个事件过滤器,然后再将其发送至每个客户进程,最后由客户进程负责处理键事件,并将其发送到适当的窗口。具体流程如图3所示。

  这里,键事件未必都来自键盘设备,包括触摸屏,触笔都可以产生键事件。服务器在任何时候都可以调用函数QWSServer::sendKeyEvent()产生键事件。根据这个特点,再结合事件过滤器的特性,便可构造出所需的输入服务器平台。

  在Qt中,一个事件通过调用QObject::event()被发送到继承自QObject的对象。事件发送就是一个事件已经产生,由QEvent正好去表达,且QObject需要去回应。多数事件来自窗口系统类QWidget,如QMouseEvent,QkeyEvent事件。某些事件来自其他源头,如QTimerEvent,而某些来自应用程序,Qt会一视同仁的处理。

  事件过滤器在目标对象处理之前去处理事件。过滤器通过调用QObject::eventFilter()实现,它可以接受或丢弃过滤,也可容许或拒绝进一步去处理事件。如果所有的事件过滤器允许进一步的处理事件,事件自己就被送达目标对象。本文在服务器进程中安排事件过滤器,接收键事件,经过处理后,将结果发送到客户进程。在客户进程中,处理键事件,并发送到适当的窗口中。

  5 结语

  嵌入式Linux是目前流行的嵌入式系统解决方案,而嵌入式GUI是嵌入式Linux不可缺少的组成部分。本文通过分析、比较目前流行的几种嵌入式GUI,选择了嵌入式Qt作为研究对象并对其进行了深入讨论,在此基础上完成了基于嵌入式Qt的车载GUI的设计和实现,具有较高的经济价值,并可为其他嵌入式娱乐系统提供参考价值。

关键字:嵌入式  GUI  QT 引用地址:基于嵌入式 Qt 的车载 GUI 平台的设计

上一篇:当前汽车电子创新应用方面的五大研发方向
下一篇:基于OSEKturbo实时操作系统的ABS设计

推荐阅读最新更新时间:2024-05-02 20:48

一种嵌入式SD卡图片浏览器的设计与实现
引言     目前,对于图片解码器的研究主要是针对PC环境,设计工作只是在原有基础上的升级,对系统和硬件的考虑较少,不能在嵌入式系统中直接实现。本文设计了一种嵌入式图片解码器。通过FatFs文件系统识别图片文件的格式,调用相应的格式解码单元实现图像重构,并在TFT液晶显示器上进行显示。 1  系统硬件设计      系统的核心CPU采用LM3S8962,具有丰富的外围接口以及多种片内的硬件接口功能(如UART、SPI、I2C、PWM等)。整个系统的硬件电路包括SD卡电路、TFT液晶显示电路、独立按键电路。 1.1  SD卡电路     SD卡有两种工作模式,即SD和SPI模式。由于LM3S8962具有SPI接口
[嵌入式]
M2M激发英特尔雄心嵌入式市场能否出现变局
  “今年春天的时候我们又找到了第四个市场”,老道的记者往往不会因几句豪言壮语就动容。但当说此话的人出自于英特尔时,你将不得不仔细掂量这将会对今后的市场走向及格局产生怎样的影响。   Doug Davis,这个稍嫌瘦削的美国人是英特尔公司数字企业事业部副总裁、嵌入式与通信事业部总经理,他告诉电子工程世界,英特尔的CEO欧德宁认为嵌入式设备市场将来会超过100亿美元,这给英特尔带来了更大的市场机遇,而这将是英特尔在消费电子、移动互联网设备、低成本PC之外,找到的另一座金矿。   事实上,在今年春季IDF(2008英特尔春季技术峰会)上,凌动处理器的发布就已经让英特尔在嵌入式市场的雄心表露无遗。然而,我们不会忘记英特尔卖掉其Xca
[焦点新闻]
如何使用RIGOL的高效混合信号示波器集合应对嵌入式设计挑战
本应用笔记讨论了测试每个设计(特别是嵌入式系统)质量的最常见事物。它包括常见的错误源以及其他会影响或降低信号质量的因素。还介绍了实现良好数据测量应遵循的技术和程序。更重要的是,它可作为用户使用RIGOL的高效混合信号示波器集合应对嵌入式设计挑战的一种指南。 嵌入式设计,尤其是利用低速串行信号的设计工作,是数字电子设计发展最快的领域之一。大量消费和工业电子产品中的模块,FPGA和处理器之间进行通信的需求正以惊人的速度增长。定制的通信协议和总线的使用对于设计效率和上市时间至关重要,但是存在有时难以分析和调试的风险。在嵌入式应用程序中使用低速串行数据时,最常见的问题来源和类型包括时序,噪声,信号质量和数据。我们将推荐现代示波器中可用
[测试测量]
如何使用RIGOL的高效混合信号示波器集合应对<font color='red'>嵌入式</font>设计挑战
单片机和嵌入式哪个好?单片机会被嵌入式取代吗?
很多初学者都搞不清楚单片机和嵌入式的区别。 今天就和大家来聊一聊这个话题。 嵌入式和单片机,我喜欢用老爸和儿子的关系来区分它们。 嵌入式开发细分很多方向,而单片机就是其中一个方向。 除了单片机以外,还有ARM+Linux开发、FPGA/DSP开发、安卓开发等等。 不同的方向,学习的知识体系也不一样。 很多人都是通过一些智能的电子产品,比如说无人机、机器人、智能穿戴设备了解到的嵌入式。 自身也对这个很有技术,想学习完以后自己也能做类似的设备。 但是很多连嵌入式开发有哪几个学习方向都不知道,不要说做产品了,连学不学得会都是一个未知数。 我并没有危言耸听,嵌入式随便一个方向,都够你学一辈子了。 如果你定位不清晰,每个方向都学一点,最后绝
[单片机]
嵌入式USB2 (eUSB2)标准详细解读
什么是eUSB2? 嵌入式USB2(eUSB2)规格是对USB2.0规格的补充,前者通过支持USB2.0接口在1V或1.2V而不是3.3V的I/O电压下工作,解决了接口控制器与高级片上系统(SoC)工艺节点集成的相关问题。eUSB2可让SoC体积更小、更节能,从而使工艺节点继续扩展,并提高在智能手机、平板电脑和笔记本电脑等应用中的性能。 eUSB2的重要性 随着智能手机和平板电脑等应用的尺寸越来越小、但组装元件越来越多,缩减接口尺寸也变得尤为重要。然而,不断缩减的SoC节点尺寸导致栅极氧化层越来越薄,只能支持更低的电压。对于使用USB2.0接口的器件,上述趋势会给高级工艺节点的设计带来复杂的挑战。 当工艺节点达
[网络通信]
<font color='red'>嵌入式</font>USB2 (eUSB2)标准详细解读
飞思卡尔基于ARM平台全系列MCU引领嵌入式应用新趋势
如果要回顾2012年以及展望2013年,您会选择哪几个词作为电子行业的关键词?相信还没人去做过这样的调查统计,不过不出意外的话,笔者相信至少有这样两个关键词必将入选最热门的关键词:智能终端,移动互联。您同意吗? 近年来,无论是政府还是企业,都在力主推广各种智能化概念——智能电网、智能交通、智能家居、智能监控……同时,基于各种智能便携式终端的移动互联网应用层出不穷。纵观不久前闭幕的2013年消费电子展(CES2013),最热门的展品几乎无不与这两个关键词相关——今年CES最热门的产品为智能手机和平板电脑,各种智能家电产品也数不胜数,甚至还有吃饭的叉子和汤匙也“被智能化”。 智能化和移动互联网的发展趋势带动了传统的电器产品设计
[单片机]
SoC的技术支持及嵌入式系统设计
摘 要: 与ASIC设计的其他技术一样,SoC的出现是以许多技术支撑为条件的。这些技术包括深亚微米工艺技术、IP核的优化及重用技术、EDA技术、软/硬件协同设计技术。文中讨论了SoC支撑技术和SoC阶段嵌入式系统设计的作用。 关键词: 嵌入式系统 高级语言 基本性能  编程特点 引 言   SoC(System on Chip)可以译为"系统集成芯片",意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容;SoC也可以译为"系统芯片集成",意指它是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。   作为ASIC(Application Specific
[嵌入式]
瑞萨Quick Connect Studio实现颠覆性改变,赋予设计师并行开发软硬件的能力
基于云的系统开发工具实现了软件和硬件的快速原型开发与协同优化 2024 年 4 月 10 日,中国北京讯 - 全球半导体解决方案供应商瑞萨电子今日宣布其基于云的嵌入式系统设计平台Quick Connect Studio推出全新功能并扩展产品覆盖范围 。Quick Connect Studio让用户能够以图形化方式实现硬件和软件的协同优化,从而快速验证原型设计并加速产品开发。 Quick Connect Studio助力工程师能够在云平台上以图形方式拖放器件和设计模块,从而创造自己的解决方案。 在放置每个模块后,用户可以自动生成、编译和构建基础软件,这是向无代码开发范式的重大转变,使得构建量产级软件就像拼接积木一样简单
[嵌入式]
瑞萨Quick Connect Studio实现颠覆性改变,赋予设计师并行开发软硬件的能力
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved