版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于QT的GUI设计摘 要目前,嵌入式系统开展迅速,应用广泛。基于Qt/E的嵌入式GUI设计成为国家以及局部企业支持的重点方向。随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛开展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面GUI,良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在博创公司的UP-TECHPXA270-S 教学科研平台上实现基于嵌入式Linux系统和QT4图形界面显示终端的过程。本文以工程?基于linux&QT4的多媒体浏览器?为实例,对该系统图形用户界面以及功能实
2、现等进行了描述。关键词: 嵌入式Linux QT4 GUIGUI design based on the QTABSTRACTAt present, the rapid development of embedded systems, a wide range of applications. Based on Qt / E embedded GUI design to become part of the country and the focus of the direction of enterprise support. With the current variety of hand
3、held devices, wireless devices and information appliances, such as the rapid development of embedded products, the corresponding design of embedded hardware and software technology is also undergoing profound changes. Today, more and more embedded devices need Graphical User Interface (GUI), a good
4、Graphical User Interface design of embedded systems is a key technology to greatly improve the efficiency of human-computer interaction. Described in detail in this article, The UP-TECHPXA270-S teaching and research platform based on embedded systems and Linux display terminal QT4 GUI process. In th
5、is paper, the project Multimedia Browser based on the linux platform & QT4 as an example, graphical user interface of the system, as well as the realization of such functions are described.Key word: Embedded Linux QT4 GUI目 录 TOC o 1-3 h z u HYPERLINK l _Toc231010963 摘要 PAGEREF _Toc231010963 h I HYPE
6、RLINK l _Toc231010964 ABSTRACT PAGEREF _Toc231010964 h II HYPERLINK l _Toc231010965 1 前言 PAGEREF _Toc231010965 h 6 HYPERLINK l _Toc231010966 1.1选题背景 PAGEREF _Toc231010966 h 6 HYPERLINK l _Toc231010967 1.2选题目标 PAGEREF _Toc231010967 h 6 HYPERLINK l _Toc231010968 1.3需求分析 PAGEREF _Toc231010968 h 7 HYPER
7、LINK l _Toc231010969 1.3.1用户需求分析 PAGEREF _Toc231010969 h 7 HYPERLINK l _Toc231010970 1.3.2功能需求分析 PAGEREF _Toc231010970 h 7 HYPERLINK l _Toc231010971 1.4 本章小结 PAGEREF _Toc231010971 h 9 HYPERLINK l _Toc231010972 2 QT4的GUI简介 PAGEREF _Toc231010972 h 10 HYPERLINK l _Toc231010973 2.1 QT的背景介绍 PAGEREF _Toc2
8、31010973 h 10 HYPERLINK l _Toc231010974 2.2 QT实现的结构原理 PAGEREF _Toc231010974 h 10 HYPERLINK l _Toc231010975 2.3 QT应用程序的实现 PAGEREF _Toc231010975 h 11 HYPERLINK l _Toc231010976 2.4 本章小结 PAGEREF _Toc231010976 h 12 HYPERLINK l _Toc231010977 3 系统框架描述 PAGEREF _Toc231010977 h 13 HYPERLINK l _Toc231010978 3.
9、1 系统模块 PAGEREF _Toc231010978 h 13 HYPERLINK l _Toc231010979 3.2 主要功能 PAGEREF _Toc231010979 h 13 HYPERLINK l _Toc231010980 3.3平台简介 PAGEREF _Toc231010980 h 14 HYPERLINK l _Toc231010981 3.4 UP-TECHPXA270-S核心模块资源 PAGEREF _Toc231010981 h 15 HYPERLINK l _Toc231010982 3.5 本章小结 PAGEREF _Toc231010982 h 16 HY
10、PERLINK l _Toc231010983 4 详细设计 PAGEREF _Toc231010983 h 17 HYPERLINK l _Toc231010984 4.1主界面设计 PAGEREF _Toc231010984 h 18 HYPERLINK l _Toc231010985 4.2播放器模块设计 PAGEREF _Toc231010985 h 20 HYPERLINK l _Toc231010986 4.2.1 MPlayer在嵌入式开发系统中的应用 PAGEREF _Toc231010986 h 20 HYPERLINK l _Toc231010987 4.2.2 QT中调用
11、Mplayer PAGEREF _Toc231010987 h 20 HYPERLINK l _Toc231010988 4.2.3 播放器模块GUI界面设计 PAGEREF _Toc231010988 h 22 HYPERLINK l _Toc231010989 4.3网页浏览器模块设计 PAGEREF _Toc231010989 h 23 HYPERLINK l _Toc231010990 4.3.1 Webkit引擎 PAGEREF _Toc231010990 h 23 HYPERLINK l _Toc231010991 4.3.2 QT调用Webkit类和实现方法 PAGEREF _T
12、oc231010991 h 23 HYPERLINK l _Toc231010992 4.3.3网页浏览器GUI界面设计 PAGEREF _Toc231010992 h 25 HYPERLINK l _Toc231010993 4.4数码相框模块设计 PAGEREF _Toc231010993 h 25 HYPERLINK l _Toc231010994 4.4.1 QT的绘图设备 PAGEREF _Toc231010994 h 25 HYPERLINK l _Toc231010995 4.4.2 数码相框的接口函数 PAGEREF _Toc231010995 h 26 HYPERLINK l
13、 _Toc231010996 4.4.3 mount相关函数的使用 PAGEREF _Toc231010996 h 28 HYPERLINK l _Toc231010997 4.4.4 数码相框的GUI界面设计 PAGEREF _Toc231010997 h 29 HYPERLINK l _Toc231010998 4.5 时间设置模块设计 PAGEREF _Toc231010998 h 30 HYPERLINK l _Toc231010999 4.6 QT自定义风格样式设计 PAGEREF _Toc231010999 h 31 HYPERLINK l _Toc231011000 4.7 局域
14、聊天模块设计 PAGEREF _Toc231011000 h 33 HYPERLINK l _Toc231011001 4.7.1 效劳端设计 PAGEREF _Toc231011001 h 33 HYPERLINK l _Toc231011002 4.7.2 客户端设计 PAGEREF _Toc231011002 h 34 HYPERLINK l _Toc231011003 4.8 Tslib与触摸屏 PAGEREF _Toc231011003 h 35 HYPERLINK l _Toc231011004 4.8.1 触摸屏原理 PAGEREF _Toc231011004 h 35 HYPE
15、RLINK l _Toc231011005 4.8.2 Tslib 1.4的编译 PAGEREF _Toc231011005 h 37 HYPERLINK l _Toc231011006 4.8.3 TsLib的相关配置 PAGEREF _Toc231011006 h 37 HYPERLINK l _Toc231011007 4.9 本章小结 PAGEREF _Toc231011007 h 38 HYPERLINK l _Toc231011008 5 交叉编译与环境配置 PAGEREF _Toc231011008 h 39 HYPERLINK l _Toc231011009 5.1 Linux
16、内核裁剪与烧写 PAGEREF _Toc231011009 h 39 HYPERLINK l _Toc231011010 5.2 编译QTE源码 PAGEREF _Toc231011010 h 40 HYPERLINK l _Toc231011011 5.3交叉编译与环境配置 PAGEREF _Toc231011011 h 41 HYPERLINK l _Toc231011012 5.4移植运行库和字体库 PAGEREF _Toc231011012 h 42 HYPERLINK l _Toc231011013 5.5设置开发板连接以太网 PAGEREF _Toc231011013 h 43 H
17、YPERLINK l _Toc231011014 5.6运行程序 PAGEREF _Toc231011014 h 43 HYPERLINK l _Toc231011015 5.7 本章小结 PAGEREF _Toc231011015 h 43 HYPERLINK l _Toc231011016 6 测试及运行结果 PAGEREF _Toc231011016 h 44 HYPERLINK l _Toc231011017 6.1 测试目标 PAGEREF _Toc231011017 h 44 HYPERLINK l _Toc231011018 6.2 测试预期结果 PAGEREF _Toc2310
18、11018 h 44 HYPERLINK l _Toc231011019 6.3 运行结果 PAGEREF _Toc231011019 h 45 HYPERLINK l _Toc231011020 6.4 本章小结 PAGEREF _Toc231011020 h 48 HYPERLINK l _Toc231011021 7 论文总结 PAGEREF _Toc231011021 h 49 HYPERLINK l _Toc231011022 参考文献 PAGEREF _Toc231011022 h 50 HYPERLINK l _Toc231011023 附录 PAGEREF _Toc231011
19、023 h 51 HYPERLINK l _Toc231011024 谢辞 PAGEREF _Toc231011024 h 601 前言1.1选题背景随着新的ARM芯片不断问世以及这些芯片的价格下降,嵌入式产品开始潜移默化的取代早期的一些单片机,并在社会各行各业中占有越来越重要的位置,嵌入式产品也由此成为众多工程师选择开发高端产品的芯片首选。 中国成为“世界制造中心甚至“设计中心的趋势,必然导致对小型数字控制系统的需求越来越大。在嵌入式系统开发方面,最核心的就是微处理器芯片和嵌入式操作系统。其中ARM已经给出了理想的一个答案,而在嵌入式操作系统方面,从上世纪80年代开始,出现了各种各样的商用嵌
20、入式操作系统百家争鸣的局面,比拟著名的有WindRiver公司的VX Works、PSOS和Windows CE等等,这些操作系统大局部是为专有系统而开发的。嵌入式Linux是一款遵循GPL协议的免费使用和自由传播的实时嵌入式操作系统,并且拥有一大批的社区维护和爱好者。它的源码开放性允许任何人可以获取并修改Linux的源代码。这样一方面大大的降低了开发的本钱,另一个方面又可以提高开发产品的效率。嵌入式Linux支持X86,Power PC,ARM,XSCALE等多种体系结构,并且移植到多种硬件平台。这对于经费,时间受限制的研究和开发工程很有吸引力,并且Linux采取一个统一的框架对硬件管理,所
21、以上层应用程序可以方便的移植到不同的平台上。基于以上的原因,本人决定使用嵌入式Linux搭配PXA270开发板来构建这个工程。在系统应用层GUI中主要使用QT,QT是一个多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。用户使用 C+,对库的稳定性,健壮性要求比拟高,并且希望跨平台开发的话,那么使用 Qt 是较好的选择。1.2选题目标基于上述背景,开发一个多媒体浏览器工程,本人使用嵌入式Linux搭配PXA270开发板来构建这个工程。在系统应用层GUI中主要使用一个基于多平台的C+图形用户
22、界面应用程序框架-QT。利用QT4编写应用程序,例如数码相框模块,电子书模块,浏览器模块,多媒体音视频模块等。根据系统的需求,裁减、移植Linux内核,制作适宜的文件系统。分析系统功能和接口,添加各种驱动程序,如:USB驱动,蓝牙驱动等。根据应用程序中的每个功能模块,分析各个模块的用户界面接口和对人机交互图形化用户界面的接口设计。1.3需求分析1.3.1用户需求分析根据用户需求的分析,市场上也推出了多功能、多应用的产品,今年多媒体产品的变化归纳为“一低两多:本钱低、产品多、功能多。多媒体电子产品的市场需求将稳步上升,例如具备音视频功能的便携式多媒体产品将会持续增长,预计年销量将会由 2006年
23、的3亿台左右增至2021年的10亿台。面对如此巨大的市场,终端厂商在进行功能和方案选择时会充分掌握市场动向。对此,本工程的操作系统是基于开源的Linux系统,这在本钱上有着很大的优势,基于免费版的QT4也是使得系统的功能接口相当强大。未来几年, 中国多媒体电子产品市场将逐渐走向成熟市场需求和产品销量会保持大幅增长产品供给链中的各类企业将获得巨大商机。尤其是随着产品价格的不断下降,这种快速开展的态势会愈加明显。中国市场必然会获得更大的开展空间。由此,本工程也适应用户需求,开发多种功能模块:数码相框功能,音乐播放,视频播放,日历、时钟显示,网页浏览器,电子书,局域聊天等。1.3.2功能需求分析根据
24、用户需求,和对产品的定位,划分以下功能:表1-1 支持功能所需硬件1 图片浏览 格式jpg/bmp2 音乐播放格式MP3/WAV7 视频播放, 格式AVI3 日历、时钟显示4 网页浏览器5 U盘支持6 蓝牙传输7 文本显示8 局域聊天1 控制芯片PAX27064Mflash64MSRAM2 显示屏 8in LCD3 音频解码器 CS42014 MMC总线控制器5 USB 主从接口6 蓝牙模块7 网卡在系统层将移植进嵌入式linux的操作系统。嵌入式linux系统稳定,功能强大,支持多种硬件平台,简单易用且开放源代码,可广泛用于信息家电领域,当然应用“多媒体播放器这个工程来说就是再适宜不过了。该
25、linux操作系统采用linux2.6.9内核,其他功能支持如下所示。驱动程序包含串口、100M网口、IDE接口、SD/MMC卡、NORFlash、AC97音频录音放音、LCD、触摸屏、USBHOST、USBDEVICE、Camera、键盘、RTC等多种驱动。驱动程序包含串口、100M网口、IDE接口、SD/MMC卡、NORFlash、AC97音频录音放音、LCD、触摸屏、USBHOST、USBDEVICE、Camera、键盘、RTC等多种驱动,支持多种文件系统,像ROMFS,CRAMFS,FAT等等,支持IDE硬盘的挂接,支持framebuffer,支持USBHOST,支持QT等图形系统,支
26、持MP3播放和视频播放,支持多种网络应用,像FTP, ,Telnet之类的网络应用。考虑到开发本钱、耗能和开源软件的优势等问题,本工程选用嵌入式lin操作系统是非常适合的。linux操作系统在内核的剪裁与编译,制定出适合ARM体系的PXA270处理器的操作系统等这些方面的技术已十分成熟。而在界面开发方面,使用的开发软件是TROLLTAECH公司的QT4,它功能强大并且是可视开发,便于对界面设计的开发。“多媒体浏览器所有的功能包括jpg/bmp 图片的播放,MP3,WAV音频播放,AVI视频播放,蓝牙传输,无线网卡的连接,各种卡类的识别与使用。而在linux环境下实现这些功能有很多相应功能的开源
27、软件可以借鉴来,经过有针对性地处理后使其适合本工程产品使用,在技术上是完全可以做到的。本工程所需的硬件清单如下:表1-2具有多媒体处理能力的CPU芯片较大容量的存储器USB接口,USB鼠标、键盘USB Blue真彩LCD显示器音频解码,输出芯片视频解码,输出芯片支持蓝牙通信的芯片组串行接口100M EtherNet 网卡小型键盘供电,及其它辅助芯片根据上表,需要的硬件模块在UPTECHPXA270S硬件实验平台上已一应俱全。音视频模块,对音视频输入输出功能都有着很好的支持;存储卡模块支持SD/MMC卡;USB主从接口模块支持U盘读取功能;蓝牙模块支持与外部蓝牙设备间的通讯等等。各种各样的接口便
28、于我们扩展设计开发,当然这为“多媒体播放器在插槽功能,音视频输出功能,USB通讯功能等方面提供了很好的硬件条件。在此平台上还配制了8英寸的TFT真彩液晶屏,可模拟的充当此次工程“多媒体播放器的用户交互平台,支持640*480的分辨率。UPTECHPXA270S在存储系统方面也有着很高的配置,内置了高性能价格比的NAND FLASH 64M内存,支持大容量的用户差异图形图片和媒体文件的存储。CPU的能力当然是毋庸置疑的,Intel Xscale结构芯片的PXA270在各方面都表现了很强悍的能力,在目前市场上来说也是一款很先进的处理器芯片。PXA270处理器是Intel公司目前性能最为强劲的移动处
29、理器,已经成为高端移动设备中最受欢送的处理器之一。PXA270最高主频可达624MHz,它引入了X86架构奔腾4系列上的多媒体技术MMX技术,能够大大提升多媒体处理能力,用户通过该技术可以在VGA上面播放高质量的MPGE4视频;同时参加了Intel SpeedStep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。1.4 本章小结本章主要介绍本工程的选题背景、意义,选题目标和工程需求分析,根据产品市场和本人技术水平情况,按需求划分软件功能模块,还根据软件功能和现有资源的性能对硬件需求做了详细分析。2 QT4的GUI简介2.1 QT的背景介绍Qt/Embedded 是著名
30、的Qt库开发商Trolltech公司开发的面向嵌入式系统的Qt版本,开发人员多为KDE工程的核心开发人员。许多基于Qt的X Window程序可以非常方便地移植到Qt/Embedded上,与X11版本的Qt在最大程度上接口兼容,延续了在X上的强大功能,在底层彻底摒弃了X lib,仅采用framebuffer作为底层图形接口。Qt/Embedded类库完全采用C+封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面,使用X下的开发工具Qt Designer可以直接开发基于Qt/Embedded的UI用户操作接口界面。越来越多的第三方软件公司也开始采用Qt/Embedded开
31、发嵌入式Linux下的应用软件。2.2 QT实现的结构原理Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存framebuffer作为底层图形接口。Qt/Embedded类库完全采用C+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发工程。Qt/Embedded的实现结构如下:QT的应用程序QT的图形事件QT/EmbeddedFrameBuffer 设备驱动OS:Linux硬件平台图2-1 QT的实现结构图Qt/Embedded 的底层图形引擎基于framebuff
32、er。Framebuffer是在Linux内核架构版本2.2以后推出的标准显示设备驱动接口。Framebuffer 驱动程序的实现分为两个方面:一方面是对LCD及其相关局部的初始化,包括画在缓冲区的创立和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、write、lseek等系统调用接口。至于将画面缓冲区的内容输出到LCD显示屏上,那么由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的。基于该特性,framebuffer驱动程序必须将画面缓冲
33、区的存储空间物理空间重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过mmap将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的表达在LCD上。QT程序是基于C+编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qt通过结合C+的速度为这一领域提供了Qt对象模型。Qt把下面这些特性添加到了C+当中: 一种被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器;根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。 许多Qt的特性是基于QObject的继承,通过标准C+技术实现的。QApplication是必须构造的Qt主
34、对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仅有一个QApplication对象,该对象必须在做其他事之前创立,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。信号和信号处理函数是GUI应用程序用来响应用户输入的根本机制,也是所有GUI库的核心特征,Qt的信号处理机制由信号(signal)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。信号和槽用于对象间的通讯,它的根本语法为: connect(object1,signal1,object2,slot1);2.3 QT应用程序的实现由以上简介
35、可知,Qt是一个创立GUI程序的C+类库,编写Qt应用程序的主要工作是基于已有的Qt类编写用户类。Qt提供了一组范围相当广泛的C+类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。Qt Designer:Qt设计器。用来可视化地设计应用程序界面。Qt Linguist:Qt语言学家。用来翻译应用程序。以此提供对多种语言的支持。Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的Makefile。Qt Assistant:关于Qt的帮助文件。类似于MSDN。可以快速地发现你所需要的帮助。moc:元对象编译器。uic:用户界面编译器。在程序编译时被自
36、动调用,通过ui_*.h文件生成应用程序界面。Qt应用程序的设计使用基于工程的方法,并通过.pro文件进行工程管理。实现应用程序的第一步是编写.pro文件,然后使用QT4自带的qmake工具生成Makefile,最后进行源代码的编译。Qmake的过程如下:qmake project /生成.pro的工程文件qmake /生成Makefilemake /编译2.4 本章小结随着越来越多的第三方软件公司利用Qt/Embedded开发嵌入式Linux下的应用软件,Qt的应用已经越来越广泛。本章主要介绍了QT的背景和描述了QT实现的结构原理,还简述了QT的相关特性。此外,也介绍了QT应用程序开发时的相
37、关工具。3 系统框架描述3.1 系统模块系统OS层使用嵌入式Linux系统,底层调用多种驱动,其中包括:USB键盘、鼠标驱动,网卡驱动,蓝牙驱动,触摸屏驱动等。软件层API使用QT4自由版提供的API。应用层包括六大模块,每个模块有各自的GUI界面。嵌入式Linux 操作系统触摸屏LCD驱动蓝牙驱动网卡驱动USB驱动键鼠驱动嵌入式GUIQT4图片浏览电子书局域聊天时钟、日历多媒体网页浏览应用层接口层系统层PXA 270开发板硬件层图3-1 系统模块图3.2 主要功能图片浏览模块实现了放大缩小、旋转、全屏浏览、前移、后移、浏览U盘中的图片,浏览蓝牙共享的图片,从指定目录中浏览图片,支持BMP、J
38、PE、JPEG、PNG、JPG、GIF等格式。电子书浏览功能支持txt格式的文本文档。网页浏览功能:基于WebKit引擎的网页浏览。时钟、日历显示:利用友好的界面显示、设置时钟、日历等。多媒体播放模块:利用MPlayer的解码器,实现以下功能:1.音频播放功能:能播放MP3等格式的音频文件。2.视频播放功能:支持AVI格式的视频播放。 局域聊天:可以通过局域网多机通讯。3.3平台简介本系统设计使用的硬件平台是由北京博创兴业科技开发的UP-TECHPXA270-S 实验平台。该平台是基于Intel XSCALE 架构最新的PXA270 嵌入式微处理器最高主频可达624MHz,参加了Wireles
39、s MMX 技术,大大提升了多媒体处理能力;同时PXA270 还参加了Intel SpeedStep动态电源管理技术,在保证CPU 性能的情况下,最大限度地降低移动设备功耗。PXA270可以广泛应用于PDA、智能 、PMP 产品中。博创科技的UP-TECHPXA270-S 教学科研平台主要是面向计算机、软件专业的高端平台,微处理器主频稳定运行在520MHz,可运行WinCE5.0 和Linux 2.6.x 操作系统,支持QT/E、miniGUI 等嵌入式图形界面,提供完整的驱动和应用程序。图3-2 UP-TECHPXA270-S 教学科研平台图UP-TECHPXA270-S 教学科研平台由处理
40、器核心板、主板及LCD 三部份组成。核心板和主板的接口设计充分考虑了升级产品的兼容性,核心板可以升级到PXA271、PXA272 微处理器,而主板资源不变。此外,除了具有丰富的接口资源,良好的可扩展性也是UP-TECHPXA270-S 平台的一大特色。 UP-TECHPXA270-S 预留了32 位扩展总线接口,与博创UP-NetARM2410、UP-NetARM2410-S 平台兼容,从而大大减轻了用户扩展新功能的负担。PXA270 核心板CPUSDRAMNand FlashNorthFlash总线隔离驱动电路10/100M 网卡RJ45 接口MIC、LINE-IN/OUT模拟功率放大器AC
41、97 CODEC触摸屏接口KEYPADRTC 实时钟RS232 串口VGA 输出640*480 TFT 16bitLCD 液晶屏USB1.1 DEVICEUSB1.1 HOST4 端口USB HUB图3-3 以PXA270为核心的硬件架构图3.4 UP-TECHPXA270-S核心模块资源基于Intel XScale 架构内核的嵌入式处理器PXA270,内部集成iwmmx 指令,加速处理器对多媒体数据的 处理速度。辅助CPULPC2119 ARM7TDMI-S。系统稳定工作在520MHZ 主频,64MB SDRAM、16MB Nor Flash、64MB Nand Flash 库。UP-TEC
42、HPXA270-S 软件资源:Bootloader:BLOB;操作系统:2.6.X;驱动程序:提供所有板级设备的驱动程序;UP-TECHPXA270-S 平台配套线缆:RJ45 交叉网线;DC12V 电源适配器;用户自备CAN、RS485 等的连接导;PXA270-S 开发平台硬件资源:PXA270 Core 小板:PXA270 XScale CPU、64M SDRAM、64M NAND FLASH,16M NorFLASH。通过256Pin 2mm 间距直插针与主板连接。Double 100M EtherNet 网卡:由两片DM9000 构成的双网卡,4 HOST / 1 DEVICE US
43、B 接口:PXA270 的主USB 口扩展为4 个,由AT43301 构成USB HUB,其中电源管理用MIC2505。3 UART/IrDA/RS485: 2 个RS232 串口。1 个RS485 串口,1 个IrDA 收发器,均从处理器的ICP UART 引出,由FPGA 内部逻辑切换。LCD 显示屏:采用8 寸18bit 真彩屏,同时预留一个24bit LCD 接口。TouchScr: 通过UCB1400 芯片和AC97 总线实现。AC97 AUDIO:采用UCB1400 CODEC 和LM4880 功放芯片,具有放音、录音功能。板载17 键小键盘:从处理器键盘接口扩充。电源、RESET
44、、RTC、JTAG 等必须资源。电源电路具有专门逻辑,可以实现软件关机功能。PXA270-S 开发平台需要DC12V 供电。ARM7 辅助处理器:平台上配置LPC2119 ARM7 芯片,配合扩展板可完成市场上LPC2119 开发板的大局部功能。LPC2119 通过SPI 和IIC 总线与PXA270 通信。AD 电位器:由LPC2119 扩展出2 路AD 采集。CAN BUS:设置2 个CAN 口,由LPC2119 扩展和TJA1050 芯片构成。VGA 接口:可以接驳VGA 显示器。USB2.0 接口:由ISP1760 扩展,提供2 个USB2.0 HOST 接口,1 个USB2.0 OT
45、G/Device接口。MIC2526 作为电源控制器件。IEEE1394 总线接口:由TSB43AA82PGE 扩展出2 个1394 接口FireWire 火线接口。3.5 本章小结本章介绍了本工程的系统模块,包括每个模块的功能描述。此外,还介绍了系统的硬件架构以及开发平台的软件、硬件模块资源等。4 详细设计本系统主界面中心为2D渲染的立体菜单项选择择,背景用绚丽图片衬托,系统共分以下模块:数码相框,音视频播放器,电子书,网页浏览器,时钟显示,局域网聊天。整个系统包括以下文件:图4-1 工程文件名称图各个模块有独立的GUI,界面效果吸引视觉,以下模块详细设计。4.1主界面设计本系统各模块由主界
46、面进入,以下为模块框架:多媒体播放器 数码相框电子书音视频播放器局域网聊天网页浏览器时钟显示图4-2 系统模块框架图系统主界面在中心添加pictureflow图片滑动效果,每个图片为作为一个模块的入口。PictureFlow:QwidgetPictureFlowPrivatesetBackgroundColorPictureFlowStatePictureFlowAnimatorSoftwareRendereraddSlidereposition()reset()StartStopinit()paint()reflectionEffect()update()render()renderSlid
47、es()showPreviousshowNext图4-3 PictureFlow效果实现相关类及函数图以下为主要的类和实现方法:class PictureFlow;此类继承于Qwidget类,用于创立一个weidget窗口部件。其中包括:QColor backgroundColor();返回背景颜色;setBackgroundColor(const QColor& c);负责设置背景颜色,默认为黑色背景;QSize slideSize() const;返回每张幻灯片(图片)像素大小;setSlideSize(QSize size); 设置每张幻灯片(图片)像素大小;QImage slide(i
48、nt index) const;返回中心索引的图片;ReflectionEffect reflectionEffect() const;返回倒影效果的值;setReflectionEffect(ReflectionEffect effect);设置倒影效果;addSlide(const QPixmap& pixmap);在滑动区域添加图片;void setSlide();设置滑动区域的图片;showPrevious();showNext();负责图片向前、向后滑动的实现;render();负责渲染weidget窗口部件;paintEvent(QPaintEvent *event);负责绘画图片
49、和背景;keyPressEvent(QKeyEvent* event);负责键盘按键触发事件;mousePressEvent(QMouseEvent* event);负责鼠标单击过滤事件,前后滑动;mouseMoveEvent(QMouseEvent *event);负责鼠标移动过程中的时间,鼠标坐标和标题跟随。mouseDoubleClickEvent(QMouseEvent *event);负责鼠标双击过滤事件,进入相应模块。class PictureFlowPrivate;把PictureFlowState, PictureFlowAnimator, PictureFlowSoftwar
50、eRenderer,三个类都放在此类中。class PictureFlowState,实现界面所有滑动图片的必要状态信息,其中包括:void reposition(),void reset(),图片复位;int slideWidth, slideHeight滑动区域的宽度、高度;reflectionEffect() 图片倒影效果;int angle,spacing 图片滑动时的偏移角度和图片间隔;int centerIndex 中心图片索引变量等。class PictureFlowAnimator,负责移动图片与图片之间的过渡,以实现类似Cover Flow 的效果,以改变滑动区域(Cover
51、 Flow 的效果: cover flow是苹果ipod首创的将多首歌曲的封面以3D界面的形式显示出来的方式。)。其中包括:void start(int slide);负责动画过渡的开始设置;void stop(int slide); 负责动画过渡的停止设置;void update();负责动画过渡的每一帧更新;QTimer animateTimer;标识动画时间的参考参数。class PictureFlowSoftwareRenderer,动画软件三维渲染。其中包括:init(),paint();实现三维渲染的界面初始化和绘图;render(),renderSlides();负责三维渲染的过
52、程;4.2播放器模块设计4.2.1 MPlayer在嵌入式开发系统中的应用MPlayer是Linux上的电影播放器,它的功能十分强大,能够播放众多格式的文件,在X86 PC机上运行很稳定,也可以把它移植到非X86CPU上的嵌入式系统中来。我们就是将MPlayer软件移植到ARM开发板中,让MPlayer运行在ARM核上。MPlayer采用的编解码器包是libavcodec,这个编解码器包可以在多种平台上对H263/MPES/RV10/DivX4/DivX5/MP41/MP42/WMV1编码格式的视频流进行解码,它同时也是完成这些任务最快的解码器,MEncoderMPlayer电影解码器可以生成
53、MPEG(MPEG-PS格式的输出文件。它们只能用于libavcodec的mpeg1video编解码器。4.2.2 QT中调用Mplayer本模块主要是在播放音视频文件是创立一个进程Qprocess,此进程调用Mplayer作为后台解码器。EventFilter:QDialogVoid switchPlayState();open();catchOutput();mousePressEvent(QMouseEvent *);mouseMoveEvent(QMouseEvent *);bool startMPlayer();stopMPlayer();pauseMPlayer();paintEv
54、ent(QPaintEvent *);keyPressEvent(QKeyEvent *event);图4-4 播放器中主要实现函数图在QT中调用mplayer的方法为:const QString mplayerPath(mplayer ); QStringList args; argsstart(mplayerPath,args);其中mplayerPath(mplayer )为mplayer的路径,args为进程调用时的句柄,即是mplayer的参数。例如: -slave、-quiet等模式对于在音视频播放时要暂停、停止、全屏等操作时可以调用以下语句:mplayerProcess-writ
55、e(AAA);其中AAA为mplayer默认的快捷键参数,例如:p为暂停,q为停止,f为全屏等。在本系统中利用以下方法实现开始,停止、暂停:bool startMPlayer();bool stopMPlayer();bool pauseMPlayer()。bool isplaying;作为音视频是否播放的标识;使用Qprocess的函数readLine();获取线程信息,将相关数据放入一个数组中:QByteArray buffer(mplayerProcess-readLine();之后获取文件的播放信息,包括播放的窗口大小,时间条长度,当前播放的时间位置。使用open();翻开一个系统文件
56、浏览列表,movieFile = QFileDialog:getOpenFileName(this);此处调用QT内部API函数翻开文件。以下为给mplayer进程添加检测进程是否推出状态的信号与槽:connect(mplayerProcess,SIGNAL(finished(int,QProcess:ExitStatus),this, SLOT(mplayerEnded(int, QProcess:ExitStatus);4.2.3 播放器模块GUI界面设计在此模块界面中设计了一个不规那么窗体,添加按钮:播放,暂停,停止,全屏。主要函数说明如下: Qpixmap pix;pix.load(:
57、/images/musicbg.png,0,Qt:AvoidDither|Qt:ThresholdDither|Qt:ThresholdAlphaDither);resize(pix.size();setMask(pix.mask(); 其中pix为不规那么窗体的背景图片,此局部为加载一个png图片。以下为将加载的图片绘画在窗口中:QPainter painter(this);painter.drawPixmap(0,0,QPixmap(:/images/musicbg.png);此外,在背景图片上添加相应的事件触发按钮,以下以翻开按钮为例:Qimage openimage.load(:/im
58、ages/open.png);给openimage加载图片;Labelopen = new QLabel( this );建立新的Label;QLabel* Labelopen-setPixmap(QPixmap:fromImage(openimage);把openimage设置在Label中; Labelopen-setGeometry(QRect(55,115,32,32);设置Label的坐标位置;Labelopen-installEventFilter(this);给Label安装事件过滤器。以下为鼠标点击及释放时的事件过滤事件:if(watched = Labelopen)if(ev
59、ent-type() = QEvent:MouseButtonPress) /检测鼠标点击事件;QMouseEvent *mouseEvent = (QMouseEvent *)event;if(mouseEvent-buttons() &Qt:LeftButton)/鼠标单击左键;QMatrix martix;martix.scale(0.8,0.8); QImage tmp=openimage.transformed(martix);/鼠标按下时的按钮动态效果;Labelopen-setPixmap (QPixmap:fromImage(tmp); if(event-type() = QE
60、vent:MouseButtonRelease)Labelopen-setPixmap (QPixmap:fromImage(openimage);/鼠标释放后显示的按钮图片; open(); /调用翻开文件的方法return QDialog:eventFilter(watched,event);此外利用同样方法创立play,pause,fullscreen,stop等按钮事件过滤。4.3网页浏览器模块设计4.3.1 Webkit引擎WebKit 是一个开源浏览器网页排版引擎,与之相应的引擎有GeckoMozilla,Firefox 等使用的排版引擎和Trident也称为MSHTML,IE 使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教 八年级 语文 下册 第5单元《20.一滴水经过丽江 第1课时》课件
- 2025 网络基础中全息通信网络的技术与未来展望课件
- 2026年离婚财产合同(1篇)
- 2026年及未来5年市场数据中国同城配送市场发展前景预测及投资战略咨询报告
- 2025 高中信息技术数据与计算之计算思维在森林植被覆盖数据监测分析中的应用课件
- 2025 高中信息技术数据与计算之算法的灰狼优化算法课件
- 光伏系统设计精要
- 原始凭证习题试卷及答案
- 生态养殖培训课件
- 2026年外嫁女等特殊群体权益保障操作指南
- 新工科大学英语 课件 Unit 1 Future by design;Unit 2 Living smarter,living better
- 2025年路桥专业中级试题及答案
- 纺织厂5S管理课件
- 乡风文明建设课件
- 毕业设计(论文)-水下4自由度抓取机械臂设计-scara机器人
- HSK4标准教材课件
- 云南省中药材产地加工(趁鲜切制)指导原则、品种目录、风险提示清单、中药材质量标准制定指导原则
- 金融风控模型建设及管理规范
- T/CSBME 070-2023计算机断层成像(CT)临床图像质量评价
- 《陶瓷工艺概览:课件中的釉料组成与特性》
- DB31T 1502-2024工贸行业有限空间作业安全管理规范
评论
0/150
提交评论