中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

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

时间:2006/11/9 10:29:00  作者:  来源:ic72  浏览人数:1542
 
 

      摘  要:本文介绍了以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接口与硬盘控制芯片间的沟通等。

ic72新闻中心

图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编码器也被整合在其中,因此也可直接进行复合视频输出。

ic72新闻中心

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

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

ic72新闻中心

图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,都有一定的参考价值。

 
【相关文章】
·微处理器实时时钟芯片MM58167B原理与应用
·基于linux的嵌入式无线可视门铃系统的设计
·高精度视觉贴片机拾放程序设计编程 
·嵌入式系统设计中硬件和软件的选择研究
·支持汽车电子的嵌入式软件编程接口库设计
·微型硬盘驱动技术与嵌入式应用整合方案
·基于嵌入式Linux的PMP系统设计与实现
·利用嵌入式USB主控进行设计
·基于GPS的高精度无误差倒计时牌的设计
·嵌入式操作系统在中国的发展
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9