基于S3C2440的多媒体控制器设计
扫描二维码
随时随地手机看文章
根据当今移动终端设备多功能、低功耗、易于移植的要求,分别从硬件和软件系统 2 方面提出了一种基于三星μS3C2440 芯片的嵌入式多媒体娱乐控制器的解决方案,同时介绍了利用 CLinux 构造嵌入式系统的方法,并提出了基于MiniGUI开发多媒体娱乐软件的基本方案。通过测试,系统能够满足用户在文字、音视频处理以及常用有线、无线数据交换等多方面的要求。
由于移动通信技术的高速发展,移动电话早已超出原有的进行语音通信的领域,正逐步成为手持娱乐终端的中心。手机用户希望自己的手机在完成通信基本功能的同时还能作为 PDA、MP3 播放器、数码相机、摄像机、视频播放机等。因此,设计出多功能、低功耗的多媒体终端至关重要。ARM+Linux系统具有低功耗、易移植、便于定制的特点,所以我们采用其作为系统设计的理想平台。
系统设计
本方案由硬件系统和软件系统2 部分构成,其中硬件系统采用三星的具有 ARM920T 核的 16/32 位多功能、低功耗的嵌入式处理器 S3C2440。S3C2440 是韩国三星公司推出的一款高档的,可用于手持设备、智能家电等便携产品开发的嵌入式微处理器,其主频处理速度达到400 MHz,完全可以满足音频和视频的处理要求。其主控制芯片及丰富的外围接口电路可用于创建连接各类设备的集成化驱动程
序和协议堆栈,如读写 USB 的接口、MMC/ CF 多媒体卡接口、AC97 音频接口、无线网络接口、IrDA 红外接口等,给用户提供了多种与其他系统进行信息交互的功能,可以自由地实现文字、声音和图像资料的交换。软件系统包括μCLinux操作系统、图形用户接口 GUI,方便用户根据自身的需要,开发相应的多媒体应用程序。uCLinux 操作系统高效稳定,提供了完成嵌入功能的基本地内核,能够处理嵌入式任务和用户界面,更由于其开发源码、定制方便以及易于移植,并不需要 MMU 的支持,可广泛地用于各种嵌入式系统中。
1 硬件系统
硬件系统S3C2440构成核心电路系统,该芯片采用RISC结构,除具有一般嵌入式芯片所具有的总线,SDRAM控制器以外,还具有丰富的扩展功能接口,内部集成了TFT/ STN LCD和触摸屏控制器、 USB Slave ,USB Host , Ir2DA红外接口、 SD & MMC存储卡接口、 AC97数字音频接口等大量的功能模块。同时,通过外扩的PCI总线,使得系统具有很强的扩展和升级能力,提供了极其丰富的人机交互接口。该芯片采用1. 2 V的工作电压,功耗很低,能够满足消费类电子电源对功耗的要求。同时,电源管理模块能够提供系统多种电压供电,包括芯片内核电压采用1. 8 V供电,芯片的I/ O部分采用3. 3 V供电,而片外的一些常规集成电路又采用5 V供电。智能电源管理模块很好地解决了对系统各个部分供电要求的不同,降低了功耗,减少了不同电源之间的干扰噪声,提高了系统的集成度。由于S3C2440芯片内部没有实现PCI总线,为了使系统具有更强的扩展和升级能力,通过外围的PCI总线控制器芯片实现系统总线的扩展。该芯片支持PCI2. 1协议规范,在33 MHz的总线时钟频率下,其峰值传输速度可达133 MB/ s ,完全可以满足数据传输的要求。通过PCI总线实现蓝牙接口和无线网络接口,满足用户远距离数据传输和无线网络的要求。同时,系统可以连接2.5英寸或者1. 8英寸的小型硬盘,实现用户信息的移动存储,用户可以根据需要扩大存储容量。由于在系统中采用了PCI总线控制器,扩展出了PCI总线,使得系统在某种意义上相当于一台小型PC机,用户可以很方便地进行硬件系统的扩展和升级。为了满足有些场合的人机交互,不同于一般的PC机系统,要求快捷、 方便的操作要求,我们采用6. 4英寸高亮度彩色TFT LCD触摸屏,用户与上层多媒体处理软件的交互直接通过触摸屏方式实现,提供了良好的人机接口。
图1为系统的硬件结构框图。
嵌入式多媒体控制器硬件结构框图
2、软件部分
软件系统由μCLinux 操作系统、 嵌入式图形用户界面支持系统 MiniGUI构成。 μCLinux操作系统包括引导装载程序、 嵌入式Linux 内核、 必要的设备驱动程序、 文件系统J FFS2 等,具有高度模块化、 易于定制、 可移植性好等优点。引导装载程序Boot Loader 是系统加电后运行的第一段软件代码。通过这段小程序,可以初始化硬件设备、 建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。每种不同的 CPU 体系结构都有不同的 Boot Loader ,Boot Loader 是严重依赖于硬件而实现的。本系统采用基于ARM920T核的Boot Loader ,且根据系统硬件设备的实际配置修改了Boot Loader 的源程序,使他能够运行到我们的系统上。所设计的系统提供了最大128 M可选的 SDRAM和最大128 M可选的 FLASH存储器,系统运行小型的,经过裁剪的Linux 微内核。微内核由内存管理、 进程管理和事务处理构成,包括了所有核心的操作系统功能在内。μCLinux 操作系统本身的微内核体系结构相当简单,系统要求的网络协议和文件系统以模块形式置于微内核的上层,驱动程序和其他部件可在运行时作为可加载模块编译或是添加到内核,这为构造定制的可嵌入系统提供了高度模块化的构件方法。用户可以结合定制的驱动程序和应用程序来实现自己的附加功能,大大减小了内核的体积,便于维护和移植。其中,采用J FFS2 日志闪存文件系统管理非易失性存储中的结构化文件数据,J FFS2 是专门为像闪存芯片那样的嵌入式设备创建的,所以他的整个设计提供了更好的闪存管理,为掉电或系统崩溃等突发事件提供了很好的数据保护机制。
[!--empirenews.page--]
MiniGUI 是一种面向嵌入式系统或实时系统的图形用户界面支持系统,是遵循 L GPL 条款的纯自由软件,提供了完备的多窗口机制,多字符集和多字体支持,BMP , GIF ,J PEG,PCX,TGA 等常见图像文件的支持等。他是建立在比较成熟的图形引擎之上的,比如 SVGALib 和 LibGGI ,系统开发的重点在于窗口系统、 图形接口之上,MiniGUI提供了大量的图形应用编程接口,包含全部功能的库文件大小仅为 300 k左右,特别适合用在嵌入式系统上开发控制台图形用户界面的应用程序。同时,由于图形抽象层( GAL)和输入抽象层( IAL)概念的引入,将底层图形硬件和上层的图形操作和输入处理分离开来,大大提高了 MiniGUI 的可移植性。利用 GAL 和 IAL ,MiniGUI可以在许多图形引擎上运行,可以很方便地移植到基于ARM920T核的S3C2440系统上。
3 、多媒体娱乐应用软件的方案设计
基于 MiniGUI的嵌入式娱乐系统软件,应该最大限度满足视听娱乐的要求。能提供视频播放、 音频播放等多媒体处理软件,个人信息管理软件及无线网络服务。其中,音频应能支持 MP3 ,WMA , WAV 等格式,视频支持 AVI(XviD &DivX4. 0 &5. 0)格式。个人信息管理程序提供备忘录、 记事本、 名片夹等多种功能。无线网络服务提供全功能的 Web 浏览器。用户通过触摸屏与应用软件进行交互,提供了友好的人机界面。
图2 基于 MiniGUI的多媒体处理软件架构
基于 MiniGUI的多媒体处理软件架构该系统中的所有应用程序都以J FFS2 进程的形式执行,MiniGUI提供应用程序管理功能。所有的应用程序都运行在同一个地址空间,这样大大提高了程序之间的通讯效率。当应用程序之间需要通讯时,可以通过 MiniGUI 提供的 request/ response 接口实现。我们使用消息驱动作为应用程序的创建构架,触摸屏的按击由 MiniGUI支持系统,窗口管理器收集,将其以事先约定的格式翻译为特定消息,每一个多媒体处理应用程序都包含有自己的消息队列,支持系统将消息发送到应用程序的消息队列中,应用程序建立一个消息循环,在这个循环中读取消息,应用程序同时提供一个处理消息的标准函数,在消息循环中,系统调用此函数,在此函数中处理相应的消息,完成用户的请求。
图3 基于消息驱动的应用程序框架