基于嵌入式Linux的PMP系统设计与实现_第1页
基于嵌入式Linux的PMP系统设计与实现_第2页
基于嵌入式Linux的PMP系统设计与实现_第3页
基于嵌入式Linux的PMP系统设计与实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于嵌入式Linux的PMP系统设计与实现PMP系统简介便携式多媒体播放器(PMP),也就是通常人们所说的MP4,已成为继MP3以后消费类产品 的一个新热点。PMP的主要优点是:携带方便,能够直接播放高品质音/视频文件;也可以浏 览图片,以及作为移动硬盘、数字银行使用;此外,还有FM、游戏等功能。PMP播放器不仅需要对机体大小有所限制,更重要的是需要一种压缩效率更高、画面质量更高的视频压缩 技术,以及相关编解码芯片。本文介绍了此 PMP系统的软、硬件设计,重点在软件设计,此 PMP系统方案现在已经进入量产阶段。PMP系统的硬件设计现阶段PMP内部核心架构,大多都是采用 CPU搭配DSP的方式。

2、其中,DSP负责编/解 码工作;CPU则是针对文件管理、存取,以及使用接口、周边组件的控制等进行处理。另外, 还需考虑整合硬盘、存储卡及 LCD显示屏等组件,以及与外部 USB接口、操控按钮间的搭 配等问题。为符合上述要求,PMP的设计需要内建视频编/解码芯片,作为模拟与数字两种信号间转 换之用。另外,设计还需要考虑:用来连接视频译码器与 DSP的总线;LCD显示屏的驱动电 路;IDE接口与硬盘控制芯片间的沟通等。图1 DM320的结构图本系统整体方案是建立在 TI DM320基础之上的。DM320是一款支持视频编/解码的 带有双CPU核的处理器。针对多媒体器件做专门的处理,它可以直接支持视频

3、输入/输出,可 以方便的扩展音频的输入/输出,支持USB ,SDRAM,FLASH,CF/SD/MMC/MS/MS Pro 接口。 DM320的结构图,如图1所示。TI DM320将C5409与ARM926整合,即将CPU与DSP同时集成在 DM320核心内。芯片 采用32MB或64MB容量的SDRAM,以及4MB的闪存,用作加载与存放操作系统。DM320 本身已内建LCD控制器、USB2.0 OTG接口控制器,同时让 CCIR-656格式信号经由总线在 视频译码芯片与DM320间传送。由于NTSC/PAL编码器也被整合在其中,因此也可直接进 行复合视频输出。CiWrfeSV4 FS4.G:呼

4、Lm TI DM3KjK WB3k甘*鼻*&TiRt 11 甘:2DM320硬件系统的整体框架图另一方面,DM320还可支持CCD/CMOS感光组件的连接,使得未来PMP要导入DSC、DV等更为容易。对于存储卡的兼容性部分,除现阶段主流的 CF、SD及MMC夕卜,还包括 Memory Stick。此外,此芯片还提供2组RS232串行端口、1组JTAG接口,能支持更多的 外围设备。DM320硬件系统的整体框架图,如图 2所示。图3 PMP软件设计框图PMP系统的软件设计因为要兼顾到高质量的音视频效果、 多种外设和有限的系统资源,PMP软件系统的设计变 得相对复杂。系统设计将软件分为三层结构,如图

5、 3所示。该系统的最底层是操作系统层,其中包括bootloader引导程序,主要完成系统从 FLASH的启动,LOGO的显示,以及OS的引导。嵌入式Linux主要包括适合在TI DM320上运行的 Linux操作系统,以及各种外围设备的驱动程序。第 2层为CODEC和MMI核层,MMI核包 括第3层主GUI和各种应用程序所依赖的各种框架结构和数据结构,如窗口管理,定时器管 理等。CODEC部分包括音频的编解码程序(主要由ARM实现)和图像的编解码程序(主要由 DSP实现)。最上层为主GUI和各种应用程序。应用程序包括:FileManager仙来浏览存储器 中的文件),VideoPlayer(播

6、放视频文件),AudioPlayer(播放音频文件),lmageViewer(浏览图片), FM(收音机),Games游戏),Resumes重新播放音/视频文件)。嵌入式Linux操作系统本系统采用的Lin ux内核是对从In ternet上下载比较稳定的Arm-L in ux内核进行相应的修 改,并编写相关外围设备的驱动程序,使之成为一个适合TI DM320开发的操作系统环境。之所 以称为嵌入式,是因为其操作系统运行的环境并不是普通的PC,而且嵌入在非PC构架的电子设备中。关于内核修改Kconfig文件Kconfig文件是用来对你所要加载内核内容进行配置的文件。比如,当在控制台上敲入make

7、menuconfig,就会看到内核配置的窗口,可对其中的内容进行选择。选择*表示把此内容编入内核,选择M表示把此内容当成模块编译。Linux支持动态加载内核模块的功能,甚至可 以在运行操作系统一段时间后再加载内核模块。由于DM320框架并未列入内核中,所以我们需要把DM320框架加入内核。首先,就要在内核目录下 ./arch/arm/Kconfig加入DM320的配 置选项,这样才能在执行 make menuconfig配置内核时看到DM320框架。修改的部分内容如 下所示:choiceprompt ARM system typedefault ARCH_DM320_20 file:/在配置A

8、RM 系统时,默认的就是 DM320框架。 source arch/arm/mach-dm320-20/Kc on fig把 DM320 框架下的配置选项也引入。同时,去掉其他CPU框架。如:#source arch/arm/mach-clps711x/Kc on fig #source arch/arm/mach-i ntegrator/Kco nfig 其中,“ #”示此行内容为注释内容。最后,就是要把内核配置选项中对 DM320开发有用的项选进来。比如:source drivers/char/Kc on fig if (!ARCH_DM320_20) source so un d/Kc

9、on figen dif file:/选择开发字符设备的驱动,而不需要声音的支持。因为要把CODEC编入内核,所以我们还要加入支持 CODEC的配置选项:source codecs/modules/Kc on fig同时,如果我们要加入一个新外围设备,也需要在Kconfig文件中加入对应的内容。比如说,要加入一个三星的4英寸TFT LCD的驱动,我们可以修改./drivers/char/Kconfig文件,并 加入以下内容:config DM320_SAMSUNG_ 4_LCDtristate DM320 SAMSUNG 4.0 inch 16:9 TFT LCDdepe nds on ARC

10、H_DM320_20 & BOARD_400H default yhelpThis driver provides support for SAMSUNG 4.0 16:9 TFT LCD for DM320.其中,config DM320_SAMSUNG_4_LCD表示增加一个新的配置入口。一旦这个配置选项 被选中就会在./include/linux/autoconf.h:有:#define CONFIG_DM320_SAMSUNG_4_LCD 1 的 定义。这样的话,我们在整个内核源码树中都可以使用 CONFIG_DM320_SAMSUNG_4_LCD来进 行特定的选择。在tristate

11、 DM320 SAMSUNG 4.0 inch 16:9 TFT LCD中,引号里的内容为出现在配置选项 中的提示文字。tristate表示三态,意思是除了可以选择*、外,还可以选择M,表示把当前内 容当成模块编译。depends on ARCH_DM320_20 & BOARD_400H表示如果前面配置平台框架时选择了ARCH_DM320_20,并在选择型号时选择了 BOARD_400H,我们就可以看到这个对于三星 4英 寸TFTLCD的配置选项。default y表示默认把此驱动编入内核。help的内容为当我们对内核进行配置时,选帮助所看 到的内容。Makefile 文件简单地说,Make

12、file是用来进行项目配置和管理的。我们要把Linux编译、链接最后生成可执行的内核映像Makefile文件是必不可少的。在该PMP设计开发中,只需要把外设驱动模块加入相应的内核源码树就可以完成对Makefile文件的修改。以加入三星4英寸TFT LCD驱动为例,只需要在./drivers/char/Makefile 加入如下内容即可:obj-$(CONFIG_DM320_ SAMSUNG_4_LCD) += dm320_lcd_samsu ng4.oPMP系统设计中两个必须的驱动以及要注意的问题LCD驱动程序在一个PMP设备中,LCD显示屏是必备的。在LCD驱动程序的设计过程中,主要是要选

13、好时钟源、分频系数以及时钟极性。比如在 DM320中,时钟控制器有以下几个外部输入: PCLK、SYSCLK、MXI、M48XI,其中除了 M48XI外其余均选择27M外部晶振。LCD的时 钟频率DCLK在本系统中是由VENC(Video Encoder Clock)确定,而VENC又可以通过系统的 PLL分频而确定,所以说首先要选好时钟源和恰当的分频系数,然后通过设置VENC的寄存器就可以设置时钟的极性。FrameBuffer 驱动FrameBuffer是把显存抽象成一个设备,通过对这个设备的读写就等同于直接对显存进行 操作。这种操作是抽象的、统一的。用户不必关心显存的物理位置、换页机制等具体细节, 这些都是由FrameBuffer设备驱动程序来完成的。FrameBuffer对应的源文件在 linux/drivers/video/目录下。全部的抽象设备文件作为fbcon.c与各种显卡驱动程序相关的源文 件放在该目录下,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论