(广告传媒)基于ARM的流媒体播放器的设计

基于嵌入式ARM920T的视频播放器设计 摘要 嵌入式技术已经成为了后PC时代的核心技术,而基于嵌入式技术的便携式视频播放器由于体积小、重量轻、携带方便等特点,具有极广的市场前景,所以嵌入式视频播放器成为了现在IT行业研究的热点。本文提出了一种基于ARM9处理器,以嵌入式Linux为底层操作平台的嵌入式视频播放器的设计方案。

本文首先介绍了视频播放器软硬件的整体设计方案,然后详细介绍了如何通过移植Bootload、Linux内核和制作根文件系统来完成搭建视频播放器底层操作平台的工作,最后通过移植开源的多媒体播放器软件MPlayer和设计相关控件完成了整个视频播放器的设计工作。

最后,总结了论文所做的工作,指出了嵌入式播放器所需要进一步解决和完善的问题。

关键词嵌入式,视频播放器,嵌入式Linux,ARM920T Design of Video Player Based on Embedded ARM920T Abstract Embedded technology has become the core technology of the post-PC era, and based on embedded technology of portable video player for small volume, light weight, convenient to carry have a very wide prospect of market, and so embedded video player to become a research focus of the IT industry. This paper puts forward a kind of embedded video player design scheme,the scheme is based on the ARM9 processor ,and the Embedded Linux as the underlying operating plat. This paper first introduced the video player overall design scheme of software and hardware ,then detailed in detail how to transplant Bootloader, Linux kernel and make a root file system to complete the work to build a video player underlying operating plat ,finally ,through transplantation of open source multimedia player software MPlayer and design controls to complete the design work of the video player. Finally, summarize the work of this paper, points out the embedded player which need to be solved and perfected problem. Keywords Embedded,Video player,Embedded Linux,ARM 目录 第一章 引言1 1.1研究背景1 1.2发展状况和研究意义1 1.3本文组织结构2 第二章 播放器总体设计方案介绍3 2.1 播发器硬件系统架构3 2.2 播发器软件系统架构3 第三章 系统开发平台的构建4 3.1 软件开发环境介绍4 3.2 Bootloader的移植5 3.3 Linux内核的移植7 3.3.1 Linux内核移植步骤7 3.3.2 Flash驱动的移植8 3.3.3 LCD驱动的移植11 3.3.4 UDA1341音频驱动的移植15 3.4 根文件系统的制作15 3.4.1 根文件系统介绍16 3.4.2 根文件系统构建16 第四章 视频播放器的设计与实现18 4.1 MPlayer多媒体播放器介绍18 4.2 MPlayer的移植19 4.3播放器按键驱动程序设计20 4.4播放器控制程序的设计21 4.5视频播放器的测试23 第五章 总结23 参考文献24 附录A26 第一章 引言 1.1研究背景 伴随着半导体技术、计算机技术、网络技术和软件技术的飞速发展,现如今,我们已经进入了后PC时代。在这一阶段电子产品的发展趋势是智能化、数字化、网络化、便携轻巧、易于操作,而嵌入式技术(Embedded Technology)的发展为人们提供了一个很好的解决方案。所谓嵌入式是指以应用为中心,以计算机技术为基础,软件、硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[1]。

嵌入式技术已经被广泛的应用于科学研究、工程设计、军事领域和文艺商业的方方面面,嵌入式产品更是随处可见,比如消费电子产品、车载电子设备、智能家电、MP3、MP4等。如今人们随着生活水平的提高,对视听享受方面的要求也越来越高,人们不单仅仅满足于在电脑上或电视上欣赏高品质的音视频,也渴望能够随时随地的欣赏音乐观看电影,所以基于嵌入式技术的便携式多媒体播放器也成为了现今IT界研究的热点之一。面对广阔的市场需求,海内外的各大厂商也在积极研发自己的产品以抢占市场。

基于这一背景,本文提出了一款基于嵌入式Linux操作系统和ARM处理器的视频播放器设计方案。

1.2发展状况和研究意义 自从2002年法国的爱可视推出全球第一款MP4多媒体Jukebox以来,基于嵌入式技术的便携式视频播放器已经发展了十年,经过这十年的发展,视频播放器技术已日趋成熟,市面上的产品支持的视频格式也越来越多,功能也越来越强大,很多MP4都集成了上网、游戏、个人事务处理甚至是视频录制、数码照相等功能。目前。很多提供视频播放器处理器的半导体厂商都推出有自己的视频播放器硬件解决方案,这些方案可以概括为以下四类一类是以德州仪器、飞利浦为代表的基于CPUDSP芯片的解决方案;
一类则是以Intel和AMD为代表的基于通用CPU的解决方案;
第三种则是以飞思卡尔和深圳安凯为代表的基于MCU芯片的解决方案;
第四种是基于双CPU的解决方案[4]。在软件方面基本上市面上的便携式视频播放器都带有嵌入式操作系统,主要的操作系统有Vxworks、Palm OS、Windows CE、Linux、Android以及厂家自己开发的操作系统。

生产厂商在设计自己的产品时如果采用上述的硬件方案,都要支付一笔不菲的授权费用,而在嵌入式操作系统的选择上也只有Linux是开源免费的,所以产品成本比较高。

ARM处理器具有体积小、功耗低、低成本、高性能等优点,并且支持Linux系统[6]。所以可以选用ARM处理器配合Linux进行产品的设计,这样可以充分的利用Linux开源的特性,根据需要修改和移植一些免费的开源软件,这样不仅能降低产品研发的难度,加快产品的上市时间,还能省去一笔不菲的软硬件授权费用。

1.3本文组织结构 本文介绍了一款便携式视频播放器的设计工作,该视频播发器是以ARM处理器为硬件开发平台,嵌入式Linux作为操作系统,通过移植Linux上的一款优秀的开源视频播放器软件MPlayer来实现的。

本文共分五章,内容安排如下 第一章,引言。介绍了本文的选题背景,当前国内外的发展状况以及研究意义,并对论文的主要工作进行了简单介绍。

第二章,播放器总体设计方案介绍。主要介绍播放器的硬件整体架构和软件系统的层次结构。

第三章,系统开发平台的构建。本章详细介绍了Linux系统移植到ARM处理器的过程,Linux的移植主要包括三个方面Booterloader的移植、Linux内核的移植和根文件的制作。

第四章,视频播放器的设计与实现。介绍MPlayer的移植过程和播放器相关控件的设计工作。

第五章,总结。

第二章 播放器总体设计方案介绍 2.1 播发器硬件系统架构 本设计将选用国嵌公司生产的GQ2440开发板作为硬件平台,GQ2440是一款ARM9开发板。GQ2440采用的是三星公司生产的S3C2440A处理芯片,主频400MHz,最高可达533MHz。图2.1为视频播放器的硬件系统框图,其中S3C2440处理器除了负责对音视频文件进行解码工作外,还要负责对整个视频播放器进行管理和控制;
LCD为播放器的视频输出模块;
UDA1341芯片为音频的输出模块,负责将经处理器解码后得到的音频数据转换为模拟信号,并传递给麦克风等输出装置;
Flash存储器负责对Linux内核、根文件系统、应用软件和视频文件的存储工作;
按键用于完成对视频播放器的控制工作。

S3C 2440 处理器 LCD显示 音频 (UDA1341) SDRAM FLASH 电源 按键 图2.1 播放器硬件系统框架 2.2 播发器软件系统架构 由于Linux具有源代码开放、可移植性好、资源丰富、可靠、稳定、免费等特点,所以本文将选用嵌入式Linux作为视频播放器的底层操作平台。而视频播器软件是通过移植Linux下一款优秀的开源视频播放软件MPlayer来实现的。如图2.2所示为视频播放器的整个软件系统层次图。其中Linux内核中的设备驱动负责完成LCD显示器、UDA1314声卡芯片等设备的驱动工作,MPlayer为视频播放器,处于应用层,利用其完成对各种音视频文件的解码工作。

硬件平台 Linux内核 设备驱动 应用层 MPlayer 图2.2 视频播放器软件系统层次 第三章 系统开发平台的构建 3.1 软件开发环境介绍 在嵌入式系统中,由于硬件资源的有限性、差异性,所以需要开发者根据不同的硬件资源对嵌入式的操作系统作出相应的剪裁,从而定制出能够运行在特定目标平台上的嵌入式操作系统。构建一个嵌入式Linux操作系统主要包括三个方面的工作移植Bootloader,移植Linux内核,构建Linux根文件系统。

由于嵌入式系统的特殊性,其硬件资源十分有限,所以不可能在嵌入式操作系统上安装开发工具,也就不可能直接在嵌入式系统上直接进行软件的开发,所以有了交叉开发模型。交叉开发模式是指先在主机上编写程序,然后通过交叉编译工具编译程序,生成目标平台上可运行的二进制文件,最后下载到具体的目标平台上进行运行[7]。交叉开发模型如图3.1所示。

图3.1 交叉开发模型 本文是以红帽公司发行的Red Hat Enterprise Linux 5作为宿主机的操作系统进行相关软件开发的,使用的交叉编译工具链为友善之臂公司提供的arm-linux-gcc-4.3.2。

3.2 Bootloader的移植 Bootloader是在操作系统运行之前执行的一小段程序,它在系统上电时开始执行,初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备[6]。可以把Bootloader当成PC机的BIOS来理解。

嵌入式系统的硬件存在很大的差异性, Bootloader对硬件有很大的依赖性,并且Bootloader引导的操作系统也可能不同,所以在嵌入式世界中建立一个通用的Bootloader是不可能的,不过由于大部分Bootloade