基于PXA270便携式媒体播放器的设计.doc
《基于PXA270便携式媒体播放器的设计.doc》由会员分享,可在线阅读,更多相关《基于PXA270便携式媒体播放器的设计.doc(25页珍藏版)》请在沃文网上搜索。
1、 目录摘要本设计主要分析和研究了以下内容:(1)分析和研究PXA270的体系结构和低功耗等特点,以及嵌入式操作系统Windows CE的模块化结构特点及中断系统、驱动构架和内存管理。(2)针对多媒体播放器的硬件以及Windows CE的特点开发了板级支持包BSP,主要包括设计和开发具有压缩和解压缩映象功能的BootLoader,OAL层的平台初始化、中断处理。(3)实现了分别代表Windows CE的本机设备驱动和流接口驱动的触摸屏驱动和音频驱动。关键词:便携式媒体播放器PXA270微处理器Windows CE操作系统摘要11.便携式媒体播放器平台概述11.1 PXA270处理器体系结构11.
2、2 PXA270处理器的低功耗特性11.3 Windows CE结构特点分析22.便携式媒体播放器BSP的实现62.1 BSP的结构72.2 BootLoader的设计和实现72.3 OAL层的实现123.触摸屏和音频驱动程序的实现153.1触摸屏驱动设计与实现153.2音频驱动程序设计与实现18设计总结22参考文献2323 1.便携式媒体播放器平台概述硬件方面,平台使用的是PXA270处理器,它在原来有的XScale微构架的基础上,提高了处理媒体的效率,优化了处理器的功耗,同时添加了众多针对移动终端设备而设计的新功能,适合手持设备使用,所以适合我们的媒体播放需求。软件方面,我们选择微软的Wi
3、ndows CE.Net作为操作系统,主要原因是WindowsCE.Net是一个模块化的操作系统,用户可以根据自己的需要来方便地定制操作系统模块,便于快速开发出产品。本设计只简单介绍播放器的硬件部分。1.1 PXA270处理器体系结构Intel PXA270在原来有的XScale微架构基础上,提高了处理媒体的效率,优化了处理器的功耗,同时添加了众多针对移动终端设备设计的新功能。PXA270处理器的主要特性如下:(1)Intel Wireless MMX指令集和扩展单指令多数据流指令SSE可以提供高性能、低功耗的多媒体、3D游戏和视频等应用加速。(2)Intel Quick Capture技术可
4、以支持高达400万象素的摄像头。支持快速预览模式、高质量图片捕捉模式和快速动画捕捉模式。(3)SpeedStep电源管理技术可以根据CPU的性能要求动态的调节功耗,可以动态调节CPU的电压和频率来节省电源。(4)电源管理。支持多种运行模式?运行模式、开始运行模式、空闲模式、深度空闲模式、挂起模式、睡眠模式和深度睡眠模式。(5)256KB的片内RAM。(6)内置LCD控制器。支持24位色双屏显示,支持两个overla ys窗口和一个硬件光标,内部集成了7通道DMA。(7)内部集成众多外设,如USB Host控制器、PCMCIA/SD/MMC卡控制器、I2C接口、串口、AC97控制器、实时时钟、P
5、WM控制器、SSP串行接口等1.2 PXA270处理器的低功耗特性为了节约处理器的能耗,PXA270将处理器工作状态分为Turbo Mode(加速模式)、Run Mode(正常模式)、Idle Mode(空闲模式)、Deep-Idle mode(深度空闲模式)、StandbyMode(挂起模式)、Sleep Mode(睡眠模式)、Deep-Sleep Mode(深度睡眠模式)。其中Turbo和Run模式都是系统正常工作模式,他们的区别在于Turbo模式的处理器内核工作频率与总线频率不一样,而处于Run模式时两者是完全一致的。Idle模式时CPUclock停止,当发生中断唤醒时继续。Deep I
6、dle的区别是允许CPU时钟返回到13MHz的频率。Standby模式保持系统的状态但没有任何活动,内部和外部的PLL关闭。Sleep模式下不保存状态但是I/O仍然有电。Deep Sleep模式下比sleep用更少的电,和Sleep不同的是把I/O也断电了。处理器的状态变迁如图2.1所示。在空闲模式下,PXA270的时钟停止,处理器的功耗减小。当操作系统发现处理器空闲时,可以将处理器置于空闲模式。硬件中断发生时,处理器被自动唤醒。由于大多数系统会周期性地产生计时器中断,处理器在一秒钟之内可能几千次地进出空闲模式。值得注意的是,处理器空闲模式仅影响处理器本身,对系统的其它硬件不产生任何影响。当没
7、有任务请求及不要求输出时,可以使其进入省电的睡眠模式。1.3 Windows CE结构特点分析1.3.1 模块化结构Windows CE.Net具备可伸缩性和可裁减性。它通过许多完成特定功能的模块组成整个系统,模块的分工细致,通过对模块的选取,达到对整个系统功能的裁减。Windows CE.Net包含众多的功能模块,多至上百个。每一个模块都是完成相对独立的功能,表2.1选取了几个主要的模块加以简单的描述。表2.1中包含的6个模块构成了Windows CE.Net系统的核心与基础。内核功能模块NK及COREDLL,设备管理器DEVICE,图形管理器GWES,文件系统FILESYS。这些模块通常以
8、库文件的形式存在。选取这些模块,实质就是包含这些库文件。众多的模块必然导致选取上的复杂过程,Microsoft Windows CE.Net采用了预置对象的方案,针对最终系统的类型,提供多种默认的选择。这些预置的终端类型包含了最接近于实际需求的组件,然后根据实际的需求加以调整,这样就大大减小了选择组件的复杂度。模块名描述库COREDLL向其它模块提供CE核心的基本功能Coredll.libDEVICE设备管理器,它是流设备驱动的管理模块Device.libFILESYS文件系统模块GWES图形窗口事件系统,提高窗口API和管理图形输入输出设备NKCE内核模块NK.lib表2.1 Windows
9、 CE.Net主要模块1.3.2中断系统)中断基本结构Microsoft Windows CE.Net在提供了丰富的应用功能的同时,还具备了良好的实时性,这在很大程度上要得益于其设计优良的中断处理架构。Windows CE.Net的中断架构如图2.2所示。Microsoft Windows CE.Net处理中断的过程如下:(1)硬件发起一个中断。(2)系统内核搜寻中断请求,调用相应的ISR,同时屏蔽掉所有低级中断。(3)ISR进一步搜寻中断号,并打开除该号码以外的所有其它中断,并返回此中断号给系统内核。(4)如果此返回的标志符为SYSINT_NOP,表示这是一个时间片引起的中断,并且没有做进程
10、调度的必要,从而重新开启所有的中断,并继续执行该中断发生前的程序。如果返回的标志符是其他的代码,则内核会设置一个事件,这个事件就是已经和该标志符相关连的事件。(5)内核调度该中断标识符相关联的IST运行。IST用于处理该中断发生后,所需要进行的所有的数据处理工作。(6)在完成中断的所有服务工作以后,IST通过调用Interrupt Done来表示完成中断服务,该函数还会重新开启本中断,以便下次再响应此硬件中断。2)中断系统特点纵观整个中断的处理过程,Microsoft Windows CE.Net中断系统的特点如下:(1)中断处理程序被分为两级,ISR和IST。ISR的任务简单,主要是返回中断
11、标志符,并迅速返回。IST为实际中断处理程序,响应中断的服务工作由它全部完成。(2)双级的结构,降低了延时。原因是ISR在运行时,系统处于屏蔽掉所有低级中断线的状态,但是ISR并不实际处理数据,只是返回中断号,所以可以快速返回,这样就降低了其它中断被延迟服务的时间;IST要服务于中断,因此可能要处理大量的数据,所需时间可能较长,但是IST运行时,除了它所服务的中断被屏蔽了以外,其他的所有中断都是可以被响应的。(3)双级的结构,简化了中断程序的设计,并增强了稳定性。通常,ISR由系统制造商实现,属于用户适应层(OEM Adaptive Layer),一旦编写完成,就可以服务于所有中断,一般不用修
12、改。IST作为中断的具体服务程序,由用户编写,它只是一个用户级的线程。因此,如果IST的编写过于繁琐,导致服务时间过长,它也只是影响本身这个中断的服务,而不会导致整个系统的中断服务瘫痪。1.3.3驱动构架特点如果一个OEM厂商,决定采用Microsoft Windows CE.Net作为操作系统来构建自己的终端平台,那么通常它需要做的工作一是创建自己硬件平台的BootLoader,即平台的启动代码;二是创建自己平台的BSP(Board Support Package),也就是板级支持包。而在BSP中,一个重要的组成部分就是Driver,即平台驱动程序。因为一个硬件平台究竟采用那些设备,只有OE
13、M商才清楚,而相关的驱动也就必须由OEM商来完成,并整合到系统映像中去。可以说,驱动程序占据了完成整个软件系统50%以上的工作量。(1) Windows CE.Net组织结构图2.3说明了驱动程序在Windows CE.Net系统中的位置。 微软己经提供的是中间的三层,最底两层是由OEM厂商来完成,而应用程序通常会由ISV,也就是独立软件开发商来完成。驱动程序主要由四部分来组成:图形驱动,网络驱动,文件驱动以及其它由设备管理器管理的驱动。一般而言,一个硬件平台上的所有设备驱动,均可以被归为上面四类。(2)驱动分类目前Windows CE.Net提供了四种设备模型,其中两种是专用于Windows
14、 CE.Net的模型,另外两种外部模型来自其它操作系统。基于Windows CE.Net的两种模型是本机的设备驱动(native driver)和流接口(stream interface)驱动程序。两种外部模型用于通用串行总线(USB)和网络驱动器接口标准(NDIS)的驱动程序。本机设备驱动程序适合于集成到Windows CE.Net平台的驱动。它是专门为底层内置硬件设计的。比较典型的本机设备驱动有触摸屏、键盘和PC卡插槽。因为本机设备驱动程序通常跟Windows CE平台有紧密联系,而且每种本机设备驱动程序有特殊的目的。微软为支持内部设备驱动程序提供了固定的接口,原始设备制造商可以创建自己的
15、本机设备驱动,也可以将微软的本机设备驱动移植到自己的平台之上。本机设备驱动是由图形窗口消息模块(GWES)根据注册表来加载,并且加载后属于gwes.exe的进程空间。跟本机设备驱动相对应的是流接口驱动。它具有定制的接口,一般是在用户一级的动态链接库DLL,用来实现一组固定的函数。这些函数就是流接口函数,它们使得应用程序可以通过文件系统来把设备当作文件打开。它们加载的方式也一致,均是通过设备管理器(Device.exe)根据注册表的信息来加载的。流接口驱动程序支持几乎任何类型的可以连接到Windows CE平台的外部设备。如接在串口上的各种外设等等。通用串行总线驱动(USBD)将通用串行总线兼容
16、设备与Windows CE连接起来。与流接口驱动程序不同,通用串行总线不要求输出特定的函数集。根据所使用的设备不同,通用串行总线驱动程序可以输出流接口函数,可以输出定制函数集或者使用Windows CE应用程序接口来展现设备的功能。网络设备接口标准(NDIS)驱动程序采用了Windows NT操作系统的驱动程序。NDIS驱动是使网络协议生效的驱动程序模型。如TCP/IP和红外线数据通信协议,与网卡(NICS)驱动程序的实现细节无关。1.3.4内存管理Microsoft Windows CE.Net的内存管理方式,不仅极大地影响到应用程序的编写,还对驱动程序的编写具有重要的指导作用,因为在Mic
17、rosoft Windows CE.Net系统中,驱动程序与应用程序均属于用户态的例程,本质上是一样的。CE系统的内存区域是这样划分的:(1)首先是33个32M大小的slot,每一个slot就是一个进程的运行空间,不同的进程运行在不同的slot空间中。Slot0表示当前被激活的进程的运行空间。所以可以看出,CE系统最多允许同时运行的进程数目为32个。(2)然后是被映射到一些各种文件的地址空间,也就是系统中存放的各种文件的虚拟地址。(3)2G-3G空间是一个特殊的空间,它通常是由CPU以一定的固定的映射规则映射到实际的物理内存空间的。当CE系统工作于kernel状态时,就是用的这个空间的地址。3
18、G以上的空间是保留给应用程序申请新的物理地址映射时用的。2.便携式媒体播放器BSP的实现板级支持包(BSP)是便携式多媒体播放器实现的重要内容,它介于操作系统和硬件之间,是操作系统能够运行的基础。本章主要描述便携式多媒体播放器的BSP实现过程,如BootLoader和OAL层部分的实现过程,具体包括了Bootloader中压缩和解压缩映象并传输到平台的过程以及OAL层的初始化、中断系统等。2.1 BSP的结构板级支持包是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好地运行于主板硬件。构建便携式多媒体播放器的CE操作系统的关键就是实现BS
19、P软件包。BSP主要由OAL层、驱动层及配置文件构成。配置文件是影响生成或CE启动时的重要文件。BSP开发的主要步骤有:(1)建立BootLoader,用来下载系统映象,启动系统;(2)编写OAL程序,用来引导核心镜像和初始化、管理硬件;(3)为新的硬件编写驱动程序;(4)设置平台配置文件,便于Platform Builder编译系统。2.2 BootLoader的设计和实现BootLoader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。2.2.1B
20、ootloader工作流程本项目所要实现的Windows CE.Net的映象生成于开发主机,但是最终要在开发板上运行。因此我们必须把映象文件下载到开发平台中去。所以,我们首先要实现终端平台的BootLoader。BootLoader单独存放在目标平台的非易失存储介质如FLASH或者ROM中,用于启动硬件和下载nk.bin映象到目标板上,并且输出打印信息,有一定的监控作用。BootLoader所采用的是2阶段的启动过程,分为stage1和stage2两部分。BootLoader与主机之间通过串口、USB进行文件传输,也可以通过以太网连接并借助TFTP协议来下载文件。流程如图3.2所示2.2.2启
21、动代码的实现启动代码是Bootloader的入口点,是由PXA270处理器可以直接允许的汇编语言编写的代码。当系统一上电,PXA270内部的程序计数器的值会自动设置为0,也就是说处理器将在地址为0的空间上开始执行BootLoader的第一条ARM指令。启动代码除了为启动Windows CE.Net的内核做准备之外还负责为Windows CE.Net的引导程序的执行做准备。如图3.3所示。2.2.3以太网下载模块实现我们的BootLoader可以通过菜单选择从以太网或者是USB下载映象。通过解析用户的命令是从Ethernet下载,那么便开始初始化网卡的硬件以及建立TFTP连接,并获得指定的IP地
22、址。然后开始接收UDP数据包,通过解封装的过程把有效数据抽取出来,这个数据就是系统映象。通常,在 Platform Builder自带的代码中,会包含有微软提供的 TFTP 连接的最基本的函数: (1)初始化TFTP连接:用函数EbootInitTFtp和EbootInitTFtpd完成。 (2)登记解析bin格式数据的回调函数:用EbootTFtpdServerRegister完成。 (3)发出连接请求:用EbootSendBootme完成。 (4)接收主机端发出的数据包:用EbootTFtpReceiver完成。 EbootTFtpReceiver 这个接收数据包的函数只能处理已经存入内存
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PXA270 便携式 媒体播放器 设计