基于嵌入式Linux的PMP系统设计和实现

2008-02-23 05:28:08来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

摘 要:本文介绍了以TI的DM320为主芯片,基于嵌入式Linux的PMP系统的设计和实现。设计实现包括软件和硬件两个部分,其中重点在软件部分。采用本设计方案的PMP系统能够实现高质量的音频、图片、视频效果,连同其他一些辅助功能。
关键词:PMP;嵌入式Linux;音/视频编解码

PMP系统简介
便携式多媒体播放器(PMP),也就是通常人们所说的MP4,已成为继MP3以后消费类产品的一个新热点。PMP的主要长处是:携带方便,能够直接播放高品质音/视频文档;也能够浏览图片,连同作为移动硬盘、数字银行使用;此外,更有FM、游戏等功能。PMP播放器不但需要对机体大小有所限制,更重要的是需要一种压缩效率更高、画面质量更高的视频压缩技术,连同相关编解码芯片。本文介绍了此PMP系统的软、硬件设计,重点在软件设计,此PMP系统方案现在已进入量产阶段。
  
PMP系统的硬件设计
现阶段PMP内部核心架构,大多都是采用CPU搭配DSP的方式。其中,DSP负责编/解码工作;CPU则是针对文档管理、存取,连同使用接口、周边组件的控制等进行处理。另外,还需考虑整合硬盘、存储卡及LCD显示屏等组件,连同和外部USB接口、操控按钮间的搭配等问题。

为符合上述需要,PMP的设计需要内建视频编/解码芯片,作为模拟和数字两种信号间转换之用。另外,设计还需要考虑:用来连接视频译码器和DSP的总线;LCD显示屏的驱动电路;IDE接口和硬盘控制芯片间的沟通等。


图1 DM320的结构图

本系统整体方案是建立在TI DM320基础之上的。DM320 是一款支持视频编/解码的带有双CPU核的处理器。针对多媒体器件做专门的处理, 他能够直接支持视频输入/输出, 能够方便的扩展音频的输入/输出, 支持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编码器也被整合在其中,因此也可直接进行复合视频输出。


图2 DM320硬件系统的整体框架图

另一方面,DM320还可支持CCD/CMOS感光组件的连接,使得未来PMP要导入DSC、DV等更为容易。对于存储卡的兼容性部分,除现阶段主流的CF、SD及MMC外,还包括Memory Stick。此外,此芯片还提供2组RS232串行端口、1组JTAG接口,能支持更多的外围设备。DM320硬件系统的整体框架图,如图2所示。


图3 PMP软件设计框图

PMP系统的软件设计
因为要兼顾到高质量的音视频效果、多种外设和有限的系统资源,PMP软件系统的设计变得相对复杂。系统设计将软件分为三层结构,如图3所示。

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

嵌入式Linux操作系统
本系统采用的Linux内核是对从Internet上下载比较稳定的Arm-Linux内核进行相应的修改,并编写相关外围设备的驱动程式,使之成为一个适合TI DM320研发的操作系统环境。之所以称为嵌入式,是因为其操作系统运行的环境并不是普通的PC,而且嵌入在非PC构架的电子设备中。

关于内核修改Kconfig文档
Kconfig文档是用来对您所要加载内核内容进行配置的文档。比如,当在控制台上敲入make menuconfig,就会看到内核配置的窗口,可对其中的内容进行选择。选择[*]表示把此内容编入内核,选择[M]表示把此内容当成模块编译。Linux支持动态加载内核模块的功能,甚至能够在运行操作系统一段时间后再加载内核模块。由于DM320框架并未列入内核中,所以我们需要把DM320框架加入内核。首先,就要在内核目录下./arch/arm/Kconfig加入DM320的配置选项,这样才能在执行make menuconfig配置内核时看到DM320框架。修改的部分内容如下所示:

choice
prompt "ARM system type"
default ARCH_DM320_20 file://在配置ARM系统时,默认的就是DM320框架。
source "arch/arm/mach-dm320-20/Kconfig"把DM320框架下的配置选项也引入。

同时,去掉其他CPU框架。如:
#source "arch/arm/mach-clps711x/Kconfig"
#source "arch/arm/mach-integrator/Kconfig"
其中,“#”表示此行内容为注释内容。

最后,就是要把内核配置选项中对DM320研发有用的项选进来。比如:
source "drivers/char/Kconfig"
if (!ARCH_DM320_20)
source "sound/Kconfig"
endif file://选择研发字符设备的驱动,而无需声音的支持。

因为要把CODEC编入内核,所以我们还要加入支持CODEC的配置选项:
source "codecs/modules/Kconfig"

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 嵌入式频率计的设计

下一篇: 微型硬盘驱动技术和嵌入式应用整合方案