




已阅读5页,还剩53页未读, 继续免费阅读
(计算机系统结构专业论文)基于pxa270的便携式媒体播放器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘 要 随着嵌入式系统的不断发展,evd、pmp、智能手机、pda、数字电视和 iptv 等消费电子类产品越来越多地受到人们的亲睐。其中便携式媒体播放器(pmp)是最 近非常火热的嵌入式消费类电子产品之一。 使用基于 intel pxa270 处理器的嵌入式平台,针对该平台硬件进行软件开发, 实现了一款便携式媒体播放器。便携式媒体播放器的软件开发包括操作系统 windows ce.net 的裁减和定制以及板级支持包的开发。 其中媒体播放器的板级支持包的开发分 为 oal 层和驱动层的开发。 在 oal(oem adaptive layer)层,首先针对系统硬件设计和实现了带有压缩和解 压缩功能的 bootloader,可以将压缩后的系统映象通过以太网下载到目标板里,并且 启动的时候依靠 bootloader解压缩映象到 ram 中运行。实现了系统初始化、中断处 理模块,为了方便调试,还实现了串口调试模块。另外在 oal 层重点设计和实现了 电源管理功能模块。 在驱动层,针对 windows ce.net 操作系统主要实现了触摸屏和音频设备的驱动, 它们代表了 windows ce.net 两种类型的驱动。在分析触摸屏和音频设备硬件电路和 工作原理的基础上分别设计和实现了它们的初始化模块、中断处理模块和电源管理模 块,以及音频设备的播放录音模块。 最后对系统的耗电情况和运行时间进行了测试,并对结果进行分析。可以看出, 电源管理模块发挥了很大作用,节电性能高。 关键词:便携式媒体播放器,嵌入式操作系统,板级支持包,电源管理 ii abstract with the development of the embedded system, products such as evd, pmp, smart phone, pda, digital tv and iptv are more and more popular. portable media player (pmp) is one of the most popular embedded consumption electronic products. intel s pxa270 is used as the processor of the portable media player, and embedded operating system windows ce.n is running on it. the software development of portable media player includes tailing and configuring windows ce.net os and developing the board support package. board support package can be divided into oem adaptive layer and driver. in oem adaptive layer, bootloader is designed and implemented. bootloader in pmp can download compressed image into the platform. after that, it can decompress the image into ram and start the os. also the debug and initialization modules, interrupt routines in the oem adaptive layer are implemented. as the main point, power management function in the oal is emphasized. in driver layer, the driver of touch panel and audio device are implemented as the example. they represent the two kinds of drivers in windows ce.net. on the basis of analyzing the principle of touch panel and audio device s designs and implementations, their initialization, interrupt and power management are realized separately in the drivers, also includes recording and playing sound module. finally a test for the power consumption and the work time is conducted. the result shows that power management in the platform is successful and efficient. key words:portable media player, embedded operating system, board support package, power management 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中 以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_ _年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 1 1 绪论 1.1 便携式媒体播放器的应用 随着嵌入式系统的不断发展,几年前 mp3 随身听凭借着小巧体积和使用方便等 优点,迅速占领便携音乐播放器的市场。这种更新换代的潮流在数码市场中不断的涌 现,早期的 mp3 随身听替代了磁带、cd 等产品。但是,这种只能听不能看的机器终 将被新一代随身产品所代替。当然,这就不能被称为随身听了,它结合了视频播放及 电视节目录制、mp3/wma 音频播放、录音、图片显示1、3d 游戏和存储功能等,新 一代的产品可以被称为个人数码娱乐终端。这类产品的代表就是目前正在不断发展的 mp4 播放器。 现在市面上的 mp4 产品,大多被命名为 pmp、pmc 等等,pmc 是英文“ portable media center” 的缩写,即 “ 便携式媒体中心” 。微软公司统一规定了 pmc 的硬件规格, cpu 采用了英特尔公司提供的 xscale 处理器,而整体的软件框架则是微软的 windows portable media center 操作系统,创立了便携媒体播放器的标准。pmc 整 体架构是开放式的,可以在操作系统的基础上自行扩展应用软件。和 pmc 一样, pmp 也是英文的缩写, 其英文名为“ portable media player” , 即“ 便携式媒体播放器” 。 和 pmc 不一样的是,pmp 没有统一的标准,在应用软件和配置上2,厂商可以根据自己的需 要来选择。这样,pmp 就显得更加灵活,也便于扩充软件等等。 1.2 发展现状 1.2.1 几种主流 pmp芯片解决方案 (1)sigmadesigns em851x方案 sigmadesigns 851x处理器是目前性能最强、最全面的专业解码芯片,采用双核设 计,将200mhz 32位risc处理器和mpeg解码处理器集成于单芯片上,在无需其它外 围芯片支持的情况下, 完成系统所需各种接口的提供、 系统处理以及流畅的wma v9、 divx v3.11、divx v4.x和5.x、mpeg- 4、mpeg- 2、mpeg- 1等视频解码。 它的优点在于单芯片,低功耗,硬件视频解码,视频播放效果好。而缺点则是无 法播放网络视频格式rm、rmvb等,主频仅200mhz,开发平台套件价格昂贵,存储 2 器还只能使用普通的sdram,不能使用ddr sdram。 (2)amd alchemy 解决方案 amd公司不甘于pmp市场的空白,于2005年1月推出了专门为pmp设计的处理器 alchemy au1200。amd在嵌入式市场上少有建树,此次能专门针对pmp市场推出专 用处理器,看来amd非常看好这个市场。 这是一个低功耗、高性能的系统解决方案,旨在使消费者在路途中享受高质量的 视频娱乐。au1200针对个人媒体播放器(pmp)进行了专门的优化3,可以提供多种新 一代的功能,例如可扩展的dvd质量显示功能,直接从数字录像机传输视频内容的能 力,以及更长的电池使用寿命。在内容被传输到pmp之au1200处理器提供的dvd质 量的显示功能可以在不影响影像质量的情况下直接扩展到更大面积的屏幕。au1200 处理器支持业界标准的媒体格式,包括mpeg- 1,mpeg2、mpeg4、wmv9、h.263, divx,xvid,mp3, wma, wav, asf,avi,jpeg4。 amd au1200处理器的主要特性包括:低功耗、高性能的处理器,享受长期支持, 功耗极低,dvd 视频质量高,支持多种视频格式,可以扩展到大型显示屏 (1, 024768),支持ddr1和ddr2 内存,集成化媒体加速引擎,不需要外部dsp,因而 可以简化编程环境并减少组件;支持更高的下载速度和更加灵活的连接;具有叠加和 混合功能的lcd控制器,摄像头接口和互联网接入外设,安全功能;aes- 128 硬件资 料加密/解密,操作系统支持5;windows ce 5.0,linux 2.6,20gb容量;usb2.0接 口;3.5英寸 tft真彩lcd显示屏,可以直接播放从电脑,电视,pvrs上下载的视频 文件,内置喇叭,支持usb高速数据传输。 优点:更低的成本和更小的功耗,集成了硬件解码器,统一标准的存储器,简化 的编程模型,没有dsp代码。高性能应用处理器,mips核,500mhz,高性能dsp功 能,硬件媒体加速引擎,单芯片soc,完全系统的解决方案,更低的总体方案成本, 主频可达500mhz。不需要钱来购买开发套件。 缺点:硬件不支持rm格式,要通过随机赠送的转换软件来支持。 (3)英特尔 pxa27x的解决方案 英特尔公司于2003年底推出了性能最为强劲的pxa27x嵌入式处理器,最高频率 可达624mhz。作为一款性能极其强劲的嵌入式处理器,配合嵌入式linux或windows ce.net操作系统,pxa27x理论上可以支持任何媒体格式,并通过软件升级,支持未 来媒体格式。但由于mpeg- 2对硬件的极高要求6,因此单纯依靠pxa27x处理器进行 3 mpeg- 2编解码是不现实的。 其中,英特尔pxa270不是专门为pmp设计,它最初出现在pda和智能手机上。 之所以选择pxa270作为pmp处理器,是源于它强劲的多媒体处理能力与独特的节电 技术7。这两项技术对pmp产品而言至关重要。 pxa270扩展接口有sd/sdio/mmc、cf/pcmcia、cmos/ccd camera、 ms/mspro、usb1.1、otg、ide、lan、sim接口、keyboard等。这主要源 于pxa270并不专门针对pmp开发,而是更广泛地面对pda、智能手机、pmp等设 计。pxa270所定位的市场是手持多媒体数码娱乐中心,pxa270具备3d加速功能, 满足了游戏应用;最大可支持400万象素的ccd摄像头,数码摄像功能强大;支持 lan接口,可以扩展网络应用。pxa270虽然推出的时间较长,但在pmp应用方面 国内也少有厂家在做,目前仅有深圳的深视通公司推出了基于pxa270的pmp解决 方案。 英特尔公司于2004年推出了2700g多媒体加速芯片,配合pxa270进行视频加 速与3d加速。同时,pxa27x加入了wireless mmx技术和speedstep动态电源管理 技术,不但大大增强了pxa270的媒体处理能力,而且极大降低了系统功耗,延长 pmp产品的电池寿命。2700g的加入,更使pxa27x方案成为全能解决方案,不但 完美解决了mpeg- 2编解码问题, 更使基于pxa27x的pmp产品能向多功能化发展, 可以加入游戏、摄像等功能,成为个人娱乐终端8。speedstep技术原用于英特尔 移动处理器,这种技术用通俗的语言表述就是系统需要多高的主频,它就调节到 多高的频率,系统不需要时,它就将处理器主频调节到最低9,绝不浪费一点点。 speedstep技术可以将pxa270的主频在26mhz624mhz之间自由调节,也就是 说,在系统完全空闲时,pxa270可以运行在26mhz的主频下,此时它的功耗将低 于0.1毫安10。 优点:目前pxa270可支持mpeg- 1、mpeg- 2、mpeg- 4、divx、xvid、avi、 wmv9等格式,可通过软件升级支持未来媒体类型;接口丰富,可支持sd、ms、cf 等;支持最大400万象素摄像头;支持动态电源管理,功耗低11,12; 缺点:成本可能较高,需要外部dsp。 (4)ti dm320 dsparm 处理器的解决方案 作为dsp巨头,ti推出基于ti dm320 dsp的pmp解决方案。ti方案是利用 dm320dsp进行音视频编解码处理,arm处理器负责系统处理及提供外围设备接 4 口。与sigmadesigns方案一样,ti方案支持的媒体类型非常丰富,提供多种最流行 的录制压缩及播放格式, 包括mpeg- 4 sp、 mpeg- 4 asp、 mpeg- 1、 mpeg- 2、 divx、 wmv wma v9、quicktime 6、h.264、aac- lc、mp3等等。但由于ti dm320为 纯dsp芯片,因此必须配合arm处理器才能组成完整的解决方案,因此在成本上并 不具备优势。具有录制和播放功能,编解码能力强,更可具备pvr的功能(即录制 和播放可同时进行),dm320 pmp方案录制mpeg- 4 sp可达到30fps d1的质量 (dm270录像为30fps vga即640 x480), 而播放不同格式的视频dm270和dm320均可 达到30fps,d1(h.264等格式除外),方案均支持usb2.0,hdd,sd,cf等.ti与 ingenient进行合作,它的设计方案成熟。除了提供pmp方案的软件外,还提供硬件 的参考设计。 优点:支持的媒体类型丰富,编解码能力强; 缺点:必须配合arm处理器,成本不占优势,功耗较大13;不支持网络视频格 式rm、rmvb,低性能应用处理器,arm 80- 160mhz,有限的软件解决方案,需要 客户做大量的软件编程工作。 1.2.2 便携多媒体播放器的发展前景 权威部门预测, 到2008年全球pmp的需求量将比现在增长180%。 现在pmp的价格 还比较高,一方面因为生产成本居高不下,另一方面是由于生产商对产品利润要求太 高。也正是由于这个问题,mp4播放器市场仍迟迟不能成为主流。尽管很多国内外厂 商都表示已经推出了相关的mp4播放器,但实际上能在国内市场上看到的产品则仍然 相当有限,已经在生产mp4播放器的厂商不愿让利促销,导致市场反映不佳;尚未投 产的厂商则认为现有市场欠缺驱动力,没有必要大举进入,周而复始的循环让市场了 陷入了一个怪圈,导致pmp市场还不够成熟。 目前市场尚未启蒙,消费者不知道厂家为他们提供了一个方便的娱乐性的便携产 品。电视、电台、报纸等媒体也没有做出深入的系统的宣传。事实上一旦市场教育取 得了效果,消费者认识到了pmp的好处,便携式多媒体播放器成为市场主流就成为必 然。vcd的成功可以很好地解释这一问题。一旦技术和市场成熟,价格就会下降也会 带来pmp的一个新的飞速发展。 作为一款便携式产品,pmp存在电源方面的问题,因此电源续航能力和可更换理 念对于将来pmp的发展非常重要。在看清楚pmp当前不足的同时,我们同样看到pmp 在概念定位、功能糅合、技术突破等方面仍然有广阔的空间。 5 1.3 课题来源 本课题来源于作者参加的一个研发项目开发和实现基于pxa270的便携式多 媒体播放器。在该项目中设计了一个结构清晰的高度精炼和模块化且易于开发和扩展 的硬件平台解决方案,并且使用裁减的windows ce.net操作系统运行其上。本课题对 这个平台的软件技术难点,如嵌入式windows ce.net操作系统的移植和bootloader的 开发,以及主要的几个驱动程序的开发,电源管理等技术展开了深入的探讨和研究。 由于便携式多媒体播放器的硬件方案相当成熟,本文侧重于板级支持包的开发和驱动 领域的开发工作。 1.4 主要工作 围绕基于 pxa270 的便携式媒体播放器的设计与实现这个课题内容,本文作者 在毕业论文阶段主要做了以下工作: (1)分析和研究 pxa270 的体系结构和低功耗等特点,以及嵌入式操作系统 windows ce.net 的模块化结构特点及中断系统、驱动构架和内存管理。 (2)针对多媒体播放器的硬件以及 windows ce.net 的特点开发了板级支持包, 主要包括设计和开发具有压缩和解压缩映象功能的 bootloader,oal 层的平台初始 化、中断处理、电源管理等模块。 (3)实现了分别代表 windows ce.net 的本机设备驱动和流接口驱动的触摸屏驱 动和音频驱动,以及它们的电源管理模块。 6 2 媒体播放器平台概述 我们在参照 intel 的 pxa270 的多媒体解决方案的基础上,自己设计了基于 pxa270 的媒体播放器硬件平台。本章对整个媒体播放器的硬件和软件平台相关的内 容进行了研究,并简要介绍了硬件结构框架。 硬件方面,平台使用的是 pxa270 处理器,它在原来有的 xscale 微构架的基础 上,提高了处理媒体的效率,优化了处理器的功耗14,15,同时添加了众多针对移动终 端设备而设计的新功能,适合手持设备使用,所以适合我们的媒体播放需求。 软件方面, 我们选择微软的 windows ce.net 作为操作系统, 主要原因是 windows ce.net 是一个模块化的操作系统, 用户可以根据自己的需要来方便地定制操作系统模 块,便于快速开发出产品。 2.1 pxa270 处理器体系结构 intel pxa270 在原来有的 xscale 微架构基础上,提高了处理媒体的效率,优化了 处理器的功耗16,同时添加了众多针对移动终端设备设计的新功能。pxa270 处理器 的主要特性如下: (1)intel wireless mmx指令集和扩展单指令多数据流指令sse可以提供高性 能、低功耗的多媒体、3d 游戏和视频等应用加速。 (2)intel quick capture 技术可以支持高达 400 万象素的摄像头。支持快速预览 模式、高质量图片捕捉模式和快速动画捕捉模式。 (3)speedstep 电源管理技术可以根据 cpu 的性能要求动态的调节功耗,可以 动态调节 cpu 的电压和频率来节省电源17。 (4)电源管理。支持多种运行模式? ? 运行模式、开始运行模式、空闲模式、 深度空闲模式、挂起模式、睡眠模式和深度睡眠模式。 (5)256kb的片内 ram。 (6)内置 lcd 控制器。支持 24 位色双屏显示,支持两个 overlays 窗口和一个 硬件光标,内部集成了 7 通道 dma。 (7) 内部集成众多外设,如 usb host控制器、 pcmcia/sd/mmc 卡控制器、 i2c 接口、串口、ac97 控制器、实时时钟、pwm 控制器、ssp 串行接口等18。 7 2.1.1 pxa270 处理器的低功耗特性 为了节约处理器的能耗, pxa270将处理器工作状态分为 turbo mode (加速模式) 、 run mode(正常模式)、 idle mode (空闲模式) 、 deep- idle mode (深度空闲模式) 、 standby mode(挂起模式)、sleep mode(睡眠模式) 、deep- sleep mode(深度睡眠模式)。其中 turbo 和 run模式都是系统正常工作模式,他们的区别在于 turbo 模式的处理器内核 工作频率与总线频率不一样,而处于 run模式时两者是完全一致的。 idle 模式时 cpu clock 停止,当发生中断唤醒时继续。 deep idle 的区别是允许 cpu 时钟返回到 13mhz 的频率。 standby 模式保持系统的状态但没有任何活动, 内部和外部的 pll关闭。 sleep 模式下不保存状态但是 i/o 仍然有电。 deep sleep 模式下比 sleep 用更少的电, 和 sleep 不同的是把 i/o 也断电了。处理器的状态变迁如图 2.1 所示。 重启 普通模式 深度空闲模式空闲模式挂起模式睡眠模式 深度睡眠模式 图 2.1 pxa270 状态变迁图 在空闲模式下,pxa270 的时钟停止,处理器的功耗减小。当操作系统发现处理 器空闲时,可以将处理器置于空闲模式。硬件中断发生时,处理器被自动唤醒。由于 大多数系统会周期性地产生计时器中断,处理器在一秒钟之内可能几千次地进出空闲 模式。值得注意的是,处理器空闲模式仅影响处理器本身,对系统的其它硬件不产生 任何影响。当没有任务请求及不要求输出时,可以使其进入省电的睡眠模式。 2.1.2 pxa270 的实时时钟 为了配合处理器不同的工作模式,pxa270 提供了 4 个不同的时钟源。它们为处 8 理器内核和外设控制器提供不同的时钟信号。4 个时钟源为:13mhz的处理器晶振, 32.768khz的晶振和外部锁相频率 312mhz以及内核锁相频率 26624mhz。pxa270 提供如此丰富的时钟资源目的就是为了有效配合地电源管理模块的工作,从而实现整 个系统的低功耗运行。 时钟管理器包含了所有的时钟产生和时钟门,以及控制 pxa27x的处理器频率。 时钟产生和分配包含以下一些内容: (1) 13- mhz 处理器晶振作为处理器内部的 pll(phase- locked loop)所用的 时钟以及其它单元的功能时钟。当系统上电或复位时,该晶振也向 rtc 和电源管理 模块提供时钟源,直到 32.768khz晶振开始工作。处理器处于睡眠模式时,该时钟就 可以停止工作,以解约能耗。 (2)32.768khz守时性能晶振? ? 向实时时钟 rtc 和电源管理模块提供一个 低功耗、低频率的时钟。当系统复位时该时钟源关闭,由 13mhz振荡器向 rtc 和电 源管理模块提供时钟,直到时钟控制器将该时钟源开启,但使用 13mhz 晶振会耗费 更多能量。因此它是一个可选的时钟源,当系统运行对功耗不敏感的应用程序时,可 以将该时钟源关闭。 (3)外围 pll(312mhz)? ? 为外部总线和外部器件提供一个固定的时钟 (4)内核 pll(26624mhz)? ? 为处理器核、lcd控制器、内存控制器和系 统总线建立一个可编程的时钟,在一些模式下处理器核可以运行在 13mhz的频率下。 它以 13mhz振荡器产生的时钟作为一个基准,然后通过频率乘法器来决定处理器 (5)内存控制器时钟输入? ? 设置内存控制器与系统总线运行在同一频率下。 (6)功能器件时钟门? ? 给功能器件供电或不供电。 时钟管理器调整内部时钟的频率。调整处理器和外部系统的频率是节约电量的最 有效的途径之一。应用程序可能也会因为系统原因而需要改变频率,主要的改变频率 的方法有: (1)turbo/run 选择? ? 改变与系统频率相关的处理器频率。通过设置 clkcfgt位来实现。 (2)fast- bus 模式? ? 把系统总线的频率与 cpu 运行模式频率的比率从 1:2 改 为 1:1。通过设置 clkcfgb位来实现。 (3)频率改变? ? 通过系统中断把整个系统改变到一个新的频率下。通过设置 clkcfgf位来实现19。 9 2.2 intel pxa270 处理器的主要应用 pxa270 基于 xscale 架构,最高主频可达 624mhz,加入了 wireless mmx技 术,大大提升了多媒体处理能力;同时 pxa270 还加入了 intel speedstep 动态电源管 理技术,在保证 cpu 性能的情况下,最大限度地降低移动设备功耗。pxa270 不是专 门为 pmp 设计,它最初出现在 pda 和智能手机上。而现在 pxa270 也越来越多地作 为便携式多媒体播放器(pmp)的处理器,主要是因为它强劲的多媒体处理能力与独 特的节电技术20, 21。这两项技术对 pmp 产品而言至关重要。 2.3 windows ce.net 结构特点分析 2.3.1 模块化结构 windows ce.net具备可伸缩性和可裁减性。它通过许多完成特定功能的模块组成 整个系统,模块的分工细致,通过对模块的选取,达到对整个系统功能的裁减。 windows ce.net包含众多的功能模块,多至上百个。每一个模块都是完成相对独 立的功能,表2.1选取了几个主要的模块加以简单的描述22。 表2.1中包含的6个模块构成了windows ce.net系统的核心与基础。内核功能模块 nk及coredll,设备管理器device,图形管理器gwes,文件系统filesys。这 些模块通常以库文件的形式存在。选取这些模块,实质就是包含这些库文件。 众多的模块必然导致选取上的复杂过程, microsoft windows ce.net采用了预置对 象的方案,针对最终系统的类型,提供多种默认的选择。这些预置的终端类型包含了 最接近于实际需求的组件,然后根据实际的需求加以调整,这样就大大减小了选择组 件的复杂度。 表2.1 windows ce.net主要模块 模块名 描述 库 coredll 向其它模块提供ce核心的基本功能 coredll.lib device 设备管理器,它是流设备驱动的管理模块 device.lib filesys 文件系统模块 gwes 图形窗口事件系统, 提高窗口api和管理图形输入 输出设备 nk ce内核模块 nk.lib 10 2.3.2 中断系统 1 )中断基本结构 microsoft windows ce.net在提供了丰富的应用功能的同时, 还具备了良好的实时 性,这在很大程度上要得益于其设计优良的中断处理架构23。windows ce.net的中断 架构如图2.2所示。 ist 一级中断 ist 二级中断 一般线程 用户适应层 内核 硬件平台 调用isr设置事件完成 中断产生 图2.2 windows ce.net中断结构图 在分析microsoft windowsce.net的中断架构之前,先提出两个概念: (1)isr (interrupt service routine): 即中断服务例程。对于任一款32位的cpu而 言,其内核必然有多根中断线,通常每根中断线均可以响应多达32种外界中断。如果 把这32种中断源看作是中断的源头的话,那么中断线则是引起内核进入中断状态的桥 梁。在microsoft windows ce.net系统中,isr就是服务于每根桥梁的一级代码,通常 一根中断线就对应于一个isr程序。 (2) ist (interrupt service thread): 即中断服务线程。 这是一个用户级的服务程序, 也是二级中断服务代码。它通常由isr唤醒,并完成处理中断请求的实际工作。因此 它才是真正的中断服务程序24。 microsoft windows ce .net处理中断的过程如下: 11 (1)硬件发起一个中断。 (2)系统内核搜寻中断请求,调用相应的isr,同时屏蔽掉所有低级中断。 (3)isr进一步搜寻中断号,并打开除该号码以外的所有其它中断,并返回此中 断号给系统内核。 (4)如果此返回的标志符为 sysint_nop,表示这是一个时间片引起的中断, 并且没有做进程调度的必要,从而重新开启所有的中断,并继续执行该中断发生前的 程序。如果返回的标志符是其他的代码,则内核会设置一个事件,这个事件就是已经 和该标志符相关连的事件。 (5)内核调度该中断标识符相关联的 ist运行。ist用于处理该中断发生后,所 需要进行的所有的数据处理工作。 (6)在完成中断的所有服务工作以后,ist通过调用 interrupt done 来表示完成 中断服务,该函数还会重新开启本中断,以便下次再响应此硬件中断。 2)中断系统特点 纵观整个中断的处理过程,microsoft windows ce.net 中断系统的特点如下: (1)中断处理程序被分为两级,isr和ist。isr的任务简单,主要是返回中断标 志符,并迅速返回。ist为实际中断处理程序,响应中断的服务工作由它全部完成。 (2)双级的结构,降低了延时。原因是isr在运行时,系统处于屏蔽掉所有低级 中断线的状态,但是isr并不实际处理数据,只是返回中断号,所以可以快速返回, 这样就降低了其它中断被延迟服务的时间;ist要服务于中断,因此可能要处理大量 的数据,所需时间可能较长,但是ist运行时,除了它所服务的中断被屏蔽了以外, 其他的所有中断都是可以被响应的。 (3)双级的结构,简化了中断程序的设计,并增强了稳定性。通常,isr由系统 制造商实现,属于用户适应层(oem adaptive layer),一旦编写完成,就可以服务于 所有中断,一般不用修改。ist作为中断的具体服务程序,由用户编写,它只是一个 用户级的线程。因此,如果ist的编写过于繁琐,导致服务时间过长,它也只是影响 本身这个中断的服务,而不会导致整个系统的中断服务瘫痪。 2.3.3 驱动构架特点 如果一个oem厂商,决定采用microsoft windows ce.net作为操作系统来构建自 己的终端平台,那么通常它需要做的工作一是创建自己硬件平台的bootloader,即平 台的启动代码;二是创建自己平台的bsp (board support package),也就是板级支持包。 12 而在bsp中,一个重要的组成部分就是driver,即平台驱动程序。因为一个硬件平台 究竟采用那些设备,只有oem商才清楚,而相关的驱动也就必须由oem商来完成, 并整合到系统映像中去。可以说,驱动程序占据了完成整个软件系统50%以上的工作 量。 (1)windows ce.net 组织结构 图2.3说明了驱动程序在windows ce.net系统中的位置。 微软己经提供的是中间的 三层,最底两层是由oem厂商来完成,而应用程序通常会由isv,也就是独立软件开 发商来完成。 应 用 程 序 windows shell service远程连接 win32 api coredll, winsock, ole commctrl, commdlg , winnet 内核库 图形管 理器 文件管 理器 设备管 理器 tcp/ip oal loader 驱动设备驱动文件驱动网络驱动 oem硬件平台 图 2.3 windows ce.net 系统组织结构图 同时,观察硬件平台的上一层,也就是第二层,可以发现驱动程序主要由四部分 来组成: 图形驱动,网络驱动,文件驱动以及其它由设备管理器管理的驱动。一般而 言,一个硬件平台上的所有设备驱动,均可以被归为上面四类。 (2)驱动分类 目前 windows ce.net 提供了四种设备模型,其中两种是专用于 windows ce.net 的模型,另外两种外部模型来自其它操作系统。基于windows ce.net的两种模型是本 机的设备驱动(native driver)和流接口(stream interface)驱动程序。两种外部模型用于 13 通用串行总线(usb)和网络驱动器接口标准(ndis)的驱动程序。如图2.4所示。 本机驱动程序流接口驱动程序 基于windows ce.net的驱动 模型 usb驱动程序ndis驱动程序 外部驱动程序模型 图 2.4 windows ce 设备驱动分类 本机设备驱动程序适合于集成到 windows ce.net 平台的驱动。它是专门为底层 内置硬件设计的。比较典型的本机设备驱动有触摸屏、键盘和 pc 卡插槽。因为本机 设备驱动程序通常跟 windows ce平台有紧密联系,而且每种本机设备驱动程序有特 殊的目的。微软为支持内部设备驱动程序提供了固定的接口,原始设备制造商可以创 建自己的本机设备驱动,也可以将微软的本机设备驱动移植到自己的平台之上。本机 设备驱动是由图形窗口消息模块(gwes)根据注册表来加载,并且加载后属于 gwes.exe 的进程空间。 跟本机设备驱动相对应的是流接口驱动。它具有定制的接口,一般是在用户一级 的动态链接库 dll,用来实现一组固定的函数。这些函数就是流接口函数,它们使得 应用程序可以通过文件系统来把设备当作文件打开。它们加载的方式也一致,均是通 过设备管理器(device.exe)根据注册表的信息来加载的。流接口驱动程序支持几乎任何 类型的可以连接到 windows ce平台的外部设备。如接在串口上的各种外设等等。 通用串行总线驱动(usbd)将通用串行总线兼容设备与 windows ce连接起来。 与流接口驱动程序不同,通用串行总线不要求输出特定的函数集。根据所使用的设备 不同,通用串行总线驱动程序可以输出流接口函数,可以输出定制函数集或者使用 windows ce应用程序接口来展现设备的功能。 网络设备接口标准(ndis)驱动程序采用了 windows nt操作系统的驱动程序。 ndis 驱动是使网络协议生效的驱动程序模型。如 tcp/ip 和红外线数据通信协议,与 网卡(nics)驱动程序的实现细节无关。 2.3.4 内存管理 microsoft windows ce.net的内存管理方式,不仅极大地影响到应用程序的编写, 14 还对驱动程序的编写具有重要的指导作用,因为在microsoft windows ce.net系统中, 驱动程序与应用程序均属于用户态的例程,本质上是一样的。图2.5 描述了ce系统的 地址空间分配情况。 0000 0000 0400 0000 保留 大型内存区域 (内存映射文件) 活动进程 4200 0000 8000 0000 系统保留 (内核模式空间) ffff ffff 图2.5 windows ce.net系统地址空间分配 从图中可以看出ce系统的内存区域是这样划分的: (1)首先是33个32m大小的slot,每一个slot就是一个进程的运行空间,不同的进 程运行在不同的slot空间中。slot0表示当前被激活的进程的运行空间。所以可以看出, ce系统最多允许同时运行的进程数目为32个。 (2)然后是被映射到一些各种文件的地址空间,也就是系统中存放的各种文件 的虚拟地址。 (3)2g- 3g空间是一个特殊的空间,它通常是由cpu以一定的固定的映射规则映 射到实际的物理内存空间的。当ce系统工作于kernel状态时,就是用的这个空间的地 址。3g以上的空间是保留给应用程序申请新的物理地址映射时用的。 2.4 多媒体播放器硬件结构框架 现有的市场上有很多 pmp 播放器,很多公司也提出了 pmp 的解决方案。我们可 以总结出这样一些必须具备的特点和要素: (1)丰富的外设和接口,包括 sd/mmc、pcmcia、红外、小键盘、usb等。 15 (2)彩色显示与方便、丰富的图形开发系统,从而提供更加鲜艳多彩的媒体播 放效果25。 (3)具备多种格式的媒体播放以及浏览图片、拍照、阅读电子书等软件支持。 (4)稳定、安全的软件系统。 我们设计和实现开发的 pxa270 系统硬件平台框图如图 2.6 所示。并选择了 windows ce.net 作为 pmp 的操作系统,选择 windows ce.net 的理由有: (1)windows ce.net 内核的稳定度和实时性己经能够满足该系统的要求。 (2)windows ce.net提供了丰富的图像支持和多媒体支持,便于应用程序开发。 (3) windowsce.net目前已经被广泛采用在国际型大公司的智能手机、 平板电脑、 以及数码相机等产品上。 windows ce.net系统致力于创建高性能的多媒体终端和.net 网络终端,因此,作为一个消费品终端使用windows ce.net较为便利,也非常合适。 图 2.6 pmp 解决方案结构框图 2.5 本章小结 本章从 xscale 的体系结构着手,分析了 pxa27x处理器的结构。分析了 pxa270 处理器的低功耗特性和实时时钟以及该款处理器的主要应用。然后重点研究了我们所 pxa270 keypad usb host 电源管理 ac 97 音 频 输 出/输入 sd/mmc/sdio usb2.0/ide controller ide 硬盘 usb client2.0 cf 卡 flash sdram lcd 触 摸 屏 16 使用的 windows ce.net 操作系统的结构特点,中断系统的基本结构和特点以及 windows ce.net 驱动构架和内存管理。 最后结合多媒体播放器的硬件环境, 从稳定度、 实时性、图像支持和多媒体支持等方面分析了选择 windows ce.net 作为便携式媒体 播放器操作系统的原因。 17 3 便携式媒体播放器 bsp 的实现 板级支持包(bsp)是便携式多媒体播放器实现的重要内容,它介于操作系统和 硬件之间,是操作系统能够运行的基础26。本章主要描述便携式多媒体播放器的 bsp 实现过程,如 bootloader 和 oal 层部分的实现过程27,具体包括了 bootloader 中压 缩和解压缩映象并传输到平台的过程以及 oal 层的初始化、中断系统及电源管理模 块。 3.1 bsp 的结构 板级支持包是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一 部分,主要目的是为了支持操作系统,使之能够更好地运行于主板硬件。其组成结构 图如图 3.1 所示。构建便携式多媒体播放器的 ce 操作系统的关键就是实现 bsp 软件 包。bsp 主要由 oal 层、驱动层及配置文件构成。配置文件是影响生成或 ce 启动 时的重要文件。bsp 开发的主要步骤有: 板级支持包 (bsp) oem 适应层(oal) bootloader 配置文件 config 设备驱动 drivers 开 发 平 台 硬件 图 3.1 bsp 结构组成图 (1)建立 bootloader,用来下载系统映象,启动系统28; (2)编写 oal 程序,用来引导核心镜像和初始化、管理硬件; 18 (3)为新的硬件编写驱动程序; (4)设置平台配置文件,便于 platform builder 编译系统。 3.2 bootloader 的设计和实现 bootloader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我 们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个 合适的状态,以便为最终调用操作系统内核准备好正确的环境。 3.2.1 bootloader工作流程 本项目所要实现的 windows ce.net 的映象生成于开发主机,但是最终要在开发 板上运行。因此我们必须把映象文件下载到开发平台中去。所以,我们首先要实现终 端平台的 bootloader。bootloader 单独存放在目标平台的非易失存储介质如 flash 或者 rom中,用于启动硬件和下载 nk.bin 映象到目标板上,并且输出打印信息,有 一定的监控作用。 bootloader 所采用的是 2 阶段的启动过程,分为 stage1 和 stage2 两部分。 bootloader 与主机之间通过串口、usb进行文件传输,也可以通过以太网连接并借助 tftp 协议来下载文件。整个 bootloader 的流程如图 3.2 所示。 系统初始化 启动系统 os存在? 从主机下载os 跳转至os映像,启动 执行功能 启动os n y y y n y 显示开机图片 n 用户选择功能 图 3.2 bootloader 的流程图 19 3.2.2 启动代码的实现 启动代码是 bootloader 的入口点,是由 pxa270 处理器可以直接允许的汇编语言 编写的代码。当系统一上电,pxa270 内部的程序计数器的值会自动设置为 0,也就 是说处理器将在地址为 0 的空间上开始执行 bootloader的第一条 arm 指令。启动代 码除了为启动windows ce.net的内核做准备之外还负责为 windows ce.net的引导程 序的执行做准备。图 3.3 是 bootloader 的启动代码流程。 设置入口指针 复位 设置入中断向量表 设置处理器进入管理模式 关闭irq和fiq 关闭mmu和cache 检测启动方式 初始化gpio 初始化内存控制器 初始化中断控制器 设置时钟频率、操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 31270.12-2025化学农药环境安全评价试验准则第12部分:鱼类急性毒性试验
- GB/T 46227-2025半导体单晶材料透过率测试方法
- 农业汇报课件
- 杂志刊登广告合同常用版样板5篇
- 婚前协议模板8篇
- 内部换岗安全培训记录课件
- 内部安全防范培训会课件
- 银行金属营销方案设计(3篇)
- 初中安全培训课件
- 化学实验学生安全培训课件
- 以桂为墨:高中桂花文化校本课程的开发与实践探索
- 2025年计算机二级JAVA考试中的真题练习试题及答案
- 数字政府效能评估体系-洞察阐释
- 2025年电力机车钳工(高级)职业技能鉴定理论考试题库(含答案)
- 智联招聘银行试题及答案
- 安置点管理制度
- 麻醉科职责及管理制度
- 教科版五年级上册科学期中测试卷附答案(夺分金卷)
- 药房管理规章制度目录
- 中职第1课 社会主义在中国的确立和探索试题
- 香港 信托合同范本
评论
0/150
提交评论