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

发布者:会弹琴的鲸鱼3312最新更新时间:2006-11-07 来源: 电子设计应用关键字:MP4  解码  压缩  硬盘 手机看文章 扫描二维码
随时随地手机看文章

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"

  同时,如果我们要加入一个新外围设备,也需要在Kconfig文件中加入对应的内容。比如说,要加入一个三星的4英寸TFT LCD的驱动,我们可以修改./drivers/char/Kconfig文件,并加入以下内容:
config DM320_SAMSUNG_ 4_LCD
tristate "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"
depends on ARCH_DM320_20 && BOARD_400H
default y
help
This 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 "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"中,引号里的内容为出现在配置选项中的提示文字。tristate表示三态,意思是除了可以选择[*]、[ ]外,还可以选择[M],表示把当前内容当成模块编译。

  depends on ARCH_DM320_20 && BOARD_400H表示如果前面配置平台框架时选择了ARCH_DM320_20,并在选择型号时选择了BOARD_400H,我们就可以看到这个对于三星4英寸TFT LCD的配置选项。

  default y表示默认把此驱动编入内核。help的内容为当我们对内核进行配置时,选帮助所看到的内容。

Makefile文件
  简单地说,Makefile是用来进行项目配置和管理的。我们要把Linux编译、链接最后生成可执行的内核映像,Makefile文件是必不可少的。

  在该PMP设计开发中,只需要把外设驱动模块加入相应的内核源码树就可以完成对Makefile文件的修改。以加入三星4英寸TFT LCD驱动为例,只需要在./drivers/char/Makefile加入如下内容即可:
obj-$(CONFIG_DM320_ SAMSUNG_4_LCD)+= dm320_lcd_samsung4.o

PMP系统设计中两个必须的驱动以及要注意的问题

LCD驱动程序
  在一个PMP设备中,LCD显示屏是必备的。在LCD驱动程序的设计过程中,主要是要选好时钟源、分频系数以及时钟极性。比如在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与各种显卡驱动程序相关的源文件放在该目录下,如笔者所进行的针对DM320的FrameBuffer源文件dm320fb.c。在源文件我们要设置相应屏幕的长、宽以及每一个像素点的位数等等,还有一些与DM320 OSD(On-Screen Display)相关的寄存器的设置。因为涉及内容较多,在此不再赘述。
  
结语
  本PMP方案设计的产品已经进入量产阶段,经过大量的用户测试,证实了整个设计是切实可行的。同时,其设计思路对于其他类似产品如车载GPS,都有一定的参考价值。

参考文献:
1. Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman,LINUX DEVICE DRIVERS. O'REILLY ,东南大学出版社(影印版),2005年6月第1版
2.Texas Instruments, TMS320DM320 CPU and Peripherals Vol-1a
3. 谭磊, 基于嵌入式LINUX 的智能手机系统设计,电子技术应用,2004年第12期
4. 倪继利,Linux内核分析及编程 电子工业出版社,2005年9月第1次印刷

关键字:MP4  解码  压缩  硬盘 引用地址:基于嵌入式Linux的PMP系统设计与实现

上一篇:Nios系统基础上的UItra DMA数据传输模式
下一篇:基于linux的嵌入式无线可视门铃系统的设计

推荐阅读最新更新时间:2024-05-02 20:26

DCS控制系统在原油稳定压缩机中的应用
DCS控制系统在原油稳定压缩机中的应用 文章介绍了DCS系统在压缩机装置的应用,包括DCS系统特点,自控改造方案,设备仪表选型,报警措施等。   关 键 词:压缩机 DCS控制系统 报警设定器 组态   Abstract: This paper introduces the application of DCS in compressors, contains the characteristic of DCS system, the plan of automatic controlled system’s transform, the selection of type, the measure of alarm.  
[模拟电子]
DCS控制系统在原油稳定<font color='red'>压缩</font>机中的应用
数字机顶盒字幕解码显示系统设计一
摘要:本文通过对DVB 标准中的ETS 300 743 规范的字幕数据格式进行研究和分析,结合机顶盒平台的解复用滤波、图层处理和用户接口模块,给出一种能够正确、完整、及时的字幕显示实现方案。   1 引言   随着数字电视的蓬勃发展,数字电视已逐渐进入千家万户,除了传统的电视节目外,通过利用先进的数字电视技术为广大用户提供更多的信息服务,是广播电视事业发展的必然趋势。字幕(subtitle)作为一种简便而直观的信息提供途径,其重要性主要体现在两个方面。一是字幕可以为听力有障碍的人提供另一个“语音”信息途径;二是字幕功能可以通过简单的后期制作(如多语言显示),配合电视节目的全球化推广提供便捷的平台。DVB 作为全球应用最广泛的数
[模拟电子]
数字机顶盒字幕<font color='red'>解码</font>显示系统设计一
放大器增益压缩测量那点事儿
基于AV3672系列矢量网络分析仪的放大器增益压缩测量应用仅需一次设置,一次连接,一次校准就可以得到放大器在频域的所有增益压缩参数(包括压缩点的输入功率,压缩点的输出功率,压缩点的增益等)和线性参数(包括线性增益,输入匹配,输出匹配等)。我们具有: 快速准确的智能扫描; 一目了然的向导校准; 方便快捷的USB电子校准,USB功率校准; 二维扫描(频率点扫功率和功率点扫频率)一次完成; 多种压缩方法 从线性/最大增益压缩、从饱和态压缩、回退法和X/Y法。 概述 在所有射频和微波系统中几乎都要用到放大器,放大器更是通信、雷达或卫星转发系统中不可或缺的组成部分。如此普遍的应用使放大器测量为工程师们所熟知,在平时的测量中,我们关
[测试测量]
放大器增益<font color='red'>压缩</font>测量那点事儿
磁畴实现由“硬”变“软”,垂直性磁记录获突破性进展
借助伦敦大学学院(UCL)最新一项发明,工程师们现在可将垂直性磁记录从硬(永久性)变软(可擦除)。利用一种具有很强各向异性的设计材料,研究人员演示了如何利用纵向磁场来调节畴壁强度,从而将磁畴从永久性转换为可擦除。 “我们将磁体从硬转变软的想法,包括将一个小磁场垂直施加于首选的磁化方向。”UCL伦敦纳米技术中心总监Gabriel Aeppli表示,“该磁场可被用来调节畴壁钉扎(domain wall pinning,编者注:指当畴壁受到材料中的点、线、面、体型缺陷的牵制时,这些缺陷就像钉子一样把畴壁钉住,从而能够提高材料矫顽力的现象。),后者能够决定我们所得到的磁体是软还是硬。” 只有通过某种带有很强各向异性的磁结构(例如那些用
[焦点新闻]
mega16实验板红外解码程序
///////////////////////////main.c //包含所需头文件 #include ioM16v.h #include macros.h #include disp.h #define uint unsigned int #define uchar unsigned char #define IR_read (PIND&BIT(2)) const uchar shu ={0xC0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90}; uchar yd,xh,yhm; uchar buf
[单片机]
示波器CAN总线数据解码方法
采用示波器侦测串口总线的通信是比较常用的一种解码技术。以Pico示波器为例,Pico示波器具有串行解码的功能,能够对CAN、FlexRay、 I2C、I2S、SPI、LIN或UART等串行总线进行解码。Pico示波器比较适合做串行解码,因为它们的深度存储器可以让软件采集较长时间、不间断的数据,尤其是6000系列能够在几秒内采集数千个数据帧存入到512M的样本存储器。下面将介绍如何用一个款Pico示波器进行CAN总线数据解码。 一、CAN总线解码概述 1、 CAN总线概念 数据通信时,物理线路上传输的信号是由一系列高低电平组成的,这些高低电平携带了我们所需要的信息,在数据接收端,我们需要将这些物理电平按照原始的编码规则进行解析,
[测试测量]
示波器CAN总线数据<font color='red'>解码</font>方法
脑电波精细解码有望实现 全新角度理解大脑机制
多年来,神经科学家一直在分析大脑在何时何地会活跃   大脑接受外界信息的刺激,如视听信号以物理、化学形式存在,而神经系统只能以神经脉冲的形式传递信息,因此必须把各种物理、化学信号转变为频率、节奏、波长等神经脉冲来表示不同的信息,这一过程称为编码。就像人们调节收音机的频率,科学家目前已在利用一种脑皮层电流描记的方法,精确描记大脑活动时的频率、波长等神经脉冲并对其进行分析,以获得有关大脑意识的更多详情,帮助人们从一个全新角度理解大脑的工作机制。   脑生理学的三种工具   多年来,神经科学家一直在分析大脑在何时何地会活跃。最近,华盛顿大学医学院研究人员使用了脑皮层电流描记法,这是一种用临时放置于大脑皮层表面的电极阵列来监测
[医疗电子]
LOTO示波器软件功能演示之——I²C解码
本文演示I²C通信解码的测试,我们会用这个设备做一个I²C的控制发送数据,然后同时I²C跟一个I²C的芯片通信同时用示波器。我们用的是A02的这个设备。其他的设备示波器是类似的,软件都相同。 用两个通道,通道A连接到SCL时钟线,通道B连接到SDA数据线。当然还需要连接接地线。我们测试的I²C模块是3.3v电平逻辑,因此都使用X1齿轮作为探针。我们可能不清楚SCL和SDA之间的区别,并且可以反向连接,但这并不重要。我们只需要在解码时交换探针即可。我们已经连接了所需的测试环境之后,再次检查一下。 我们可以预先打开I²C解码功能。当然,也可以在采集波形后打开解码功能。我们检查解码设置是否正确 A通道为SCL, B通道为SDA。
[测试测量]
LOTO示波器软件功能演示之——I²C<font color='red'>解码</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved