基于ARM的音乐播放器的设计与实现1.pdf
-摘 要多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。嵌入式设备与多媒体技术的融合使得 P,智能手机,平板等智能终端得到快速发展。未来,智能终端与物联网的结合将推动嵌入式设备快速发展.所以,基于嵌入式终端的应用前景广阔。设计目的是在嵌入式平台上开发一款基于开源 Lin操作系统的多媒体播放器,它以 mplyer 作为核心播放程序,将支持更多的文件播放格式甚至可以与PC 机上的媒体播放器相媲美。多媒体播放器的硬件部分:以 S3C44开发板为硬件平台,它的外围设备可以外插 U 盘作为存储器、F-LC触屏、key23 键盘,以及外接耳机作音频设备。因为播放器开发是基于成熟的硬件平台,主要工作集中在软件部分,主要包括:搭建开发环境,配置编译 mpayer 可执行程序,编写触屏驱动,及 key23 驱动,编写主控程序等等,最后将程序移植安装到开发板,完成基于 Lnu的嵌入式播放器的设计。经过测试,播放器符合设计要求。关键词关键词:触屏,移植,线程,嵌入式AbAbt ta ahemultiedi tcnology involvs sun,text,imae,aniation,videadcommnications ndthrfcion。Inortion technologyis eof fatest growng techlogies。Obvisly,it is a new genraon ofelectrnic technolg eelopment an the ocus of cmpettio.Th integrtion of emded equpmt and mulimedia tehnologycorbtesa raidvelopme fr PDA,sartphoe,sinlligent termina。Ithe fuue,inllentterminl ilpomtete netwokembedeequipmet rapid devlopnt.So,the aplition that se n-embeddedermi has a biht uture。Tuoseo thsdesign is o design mumedi play an emdde latfrmyusig thpnsorceiLin peratin ystm Itis take playasrebradcas program,hihwill sppmore file foat,an even smore parableithe PCmea ars.Te hware part o Multimda layertakes S3Cdvelopment boad fo hhardware platfrm,which use th USBik,tft-lcd tochcreen,key3keyboar,ad external ephoneor ado equipent.cause the pl yer deelopnt is basedon mature har re platfrm,hemain work cud onsoftwar art,hichmain inclues teseorks,uas e devlpnt nronmetset p,the comld confguation fmpaye,e rie of tou h creenan k3,ad te prgram oate crol,etc.Final,the dveloped pogram cnbeinstalled o deemen bar baed othe Linux。Ater testing,playr canmet te design eqireents.eywordseywords:tuch sceen;transplant;thra;ebded;-目录第 1 章 绪论错误错误!未定义书签。未定义书签。1选题背景错误错误!未定义书签。未定义书签。.2 研究意义错误错误!未定义书签。未定义书签。第 2 章需求分析与方案制定.错错误误!未定义书签。未定义书签。21 功能性分析错误错误!未定义书签。未定义书签。2.2 可行性分析错误错误!未定义书签。未定义书签。设计的主要目标任务.错错误误!未定义书签。未定义书签。2。4 系统方案制定错误错误!未定义书签。未定义书签。.5 本章小结.错错误误!未定义书签。未定义书签。第 3 章 系统功能模块介绍.错错误误!未定义书签。未定义书签。1 2440 开发板简介错误错误!未定义书签。未定义书签。3.S3C2440 芯片特性简介.错错误误!未定义书签。未定义书签。3。2.S440 芯片参数错误错误!未定义书签。未定义书签。3。2.2内核结构错误错误!未定义书签。未定义书签。.3总线结构.错错误误!未定义书签。未定义书签。3。2。4处理器通用模块 1错误错误!未定义书签。未定义书签。.2。处理器通用模块 2错误错误!未定义书签。未定义书签。.存储器接口.错错误误!未定义书签。未定义书签。3.27外围总线接口错误错误!未定义书签。未定义书签。.2.8人机接口错误错误!未定义书签。未定义书签。3.3 CD 模块介绍834软件模块介绍.错错误误!未定义书签。未定义书签。35 本章小结.错错误误!未定义书签。未定义书签。第 4 章 硬件系统错误错误!未定义书签。未定义书签。4 开发板系统的硬件框架错误错误!未定义书签。未定义书签。4。2 模块原理错误错误!未定义书签。未定义书签。4。2.1A/D 转换器错误错误!未定义书签。未定义书签。2。触摸屏原理结构.错错误误!未定义书签。未定义书签。4。3 系统硬件介绍.错错误误!未定义书签。未定义书签。各个外设接口.错错误误!未定义书签。未定义书签。-。4.1 JTA接口.错错误误!未定义书签。未定义书签。4。4。SB_UART转换接口错误错误!未定义书签。未定义书签。4.4。3 R32 接口.错错误误!未定义书签。未定义书签。4.4。4 SB 主接口.错错误误!未定义书签。未定义书签。SB 从接口.错错误误!未定义书签。未定义书签。4。4。6 D 输入接口.错错误误!未定义书签。未定义书签。4。4。复位系统.错错误误!未定义书签。未定义书签。4.5 本章小结错误错误!未定义书签。未定义书签。第 5 章 系统软件设计错误错误!未定义书签。未定义书签。5。1系统软件设计流程图错误错误!未定义书签。未定义书签。52 Boolaer 内核的配置错误错误!未定义书签。未定义书签。5.。Bootloade错误错误!未定义书签。未定义书签。5.2.2 配置编译 bootloaeruot错误错误!未定义书签。未定义书签。5.2。3 裁剪编译 linu。3(编译内核)错误错误!未定义书签。未定义书签。3 制作根文件系统.错错误误!未定义书签。未定义书签。5烧录镜像文件错误错误!未定义书签。未定义书签。4。1 烧录 Bootloar错误错误!未定义书签。未定义书签。5。2烧录u6 内核和根文件系统错误错误!未定义书签。未定义书签。5。5安装交叉编译编译工具链错误错误!未定义书签。未定义书签。5.6 对 Mlar 源码进行重新配置编译.错错误误!未定义书签。未定义书签。57 编写主程序(包含触屏驱动)错误错误!未定义书签。未定义书签。.8设计人机交互界面.错错误误!未定义书签。未定义书签。9程序移植错误错误!未定义书签。未定义书签。51本章小结.错错误误!未定义书签。未定义书签。第 6 章结论.错错误误!未定义书签。未定义书签。参考文献27致谢.错错误误!未定义书签。未定义书签。-第1章 绪论1.1 选题背景多媒体是全面的综合性的信息资源,它常常指信息表示媒体的多样化,常见的形式有文字、资料、图形、影像、动画、视讯、声音、特殊效果,再经由电脑表现出来,它能用来达成信息传播中的任何媒体资源.多媒体技术的产生和发展,是技术和应用发展的必然。在信息社会,人们迫切希望计算机能以人类习惯的方式提供信息服务,因而多媒体技术应运而生。它的出现,使得原本“面无表情”、“死气沉沉”的计算机有了一副“生动活泼”的面孔。用户不仅可以通过文字信息,还可以通过直接看到的影像和听到的声音,来了解感兴趣的对象,并可以参与或改变信息的演示。一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件,嵌入式系统目前最主要的组成部分。根据操作系统的工作特性,实时是指物理进程的真实时间。实时操作系统具有实时性,能从硬件方面支持实时控制系统工作的操作系统.其中实时性是第一要求,需要调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。嵌入式系统一般由嵌入式计算机系统和执行机构组成,嵌入式计算机系统是由硬件层、中间层、系统软件层和应用软件层组成的.执行机构也作为控制对象,它可以接收由嵌入式计算机系统发出的控制命令,执行所需的操作或任务。执行器可以很简单,如手机上的微小型点击,手机在振动时机大开,也可以是非常复杂的,如 SONY 智能机器人集成以上的小型和微型控制电机,以及各种传感器,它可以执行各种复杂的动作和感情的各种状态信息。嵌入式微处理器在世界上有超过 1000 种,30 多个系列,其中的主流体系结构有 ARM,MS,PowrPC 上,X86 和H 等.但不像全球 P市场,没有那种嵌入式微处理器能够主宰市场,就 32 个产品而言,有超过0 种嵌入式微处理器。嵌入式微处理器的选择是由具体应用决定的。这几年掀起的嵌入式系统的应用热潮主要有以下几种原因:首先,芯片技术的发展,使一个单一的芯片具有更强的处理能力,而且集成多种接口已成为可能,许多芯片制造商焦点在这方面。另一方面,其原因在于应用需求,产品的可靠性,成本,更换为嵌入式系统的需求不断增加,从纯硬件实现的和使用通用计算机来-实现的的应用中脱颖而出,成为令人关注的焦点Linux 以它的高效性和灵活性著称。它能够在 PC 计算机上实现全部的 Unix特性,具有多任务、多用户的能力。Linux 是在 GNU 公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。inx操作系统软件包不仅包括完整的 Linx 操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的-Wndws 图形用户界面,如同我们使用Windos N一样,允许我们使用窗口、图标和菜单对系统进行操作。iux 之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有 Unix 的全部功能,任何使用 Uix 操作系统或想要学习 Ux 操作系统的人都可以从 Li中获益。绝大多数基于nux 内核的的操作系统使用了大量的 GNU 软件,包括了shell 程序、工具、程序库、编译器及工具,还有许多其他程序,例如Ea。大多数系统还包括了像提供界面的 XFree86 之类的曾经运行于 BSD 的程序。软件可移植性指一种计算机上的软件转置到其它计算机上的能力(也可称作软件自动搬家).软件移植是实现功能的等价联系,而不是等同联系软件可移植性的主要标志是:这类软件有个通用的标准文本;它们独立于具体的计算机。软件相对于具体计算机的独立性,从狭义上讲,是指可移植软件应独立于计算机的硬件环境;从广义上讲,可移植软件还应独立于计算机的软件,即高级的标准化的软件,它的功能与机器系统结构无关,可跨越很多机器界限。从一种计算机向另一种计算机移植软件时,首先要考虑所移植的软件对宿主机硬件及操作系统的接口,然后设法用对目标机的接口代换之。因此,接口的改造容易与否,是衡量一个软件可移植性高低的主要标志之一。多媒体已成为我们日常生活的重要组成部分,但一个优秀的播放器,却往往因为系统环境,不开源等问题,而不是被广泛认可、使用,这是我们的损失。因此,跨平台的多媒体播放器移植有很好的市场前景.1.2 研究意义未来对多媒体的研究,主要有以下几个研究方面:数据压缩、多媒体信息特性与建模、多媒体信息的组织与管理、多媒体信息表现与交互、多媒体通信与分布处理、多媒体的软硬件平台、虚拟现实技术、多媒体应用开发。展望未来,网络和计算机技术相交融的交互式多媒体将成为 2世纪多媒体发展方向。所谓-交互式多媒体是指不仅可以从网络上接受信息、选择信息,还可以发送信息,其信息是以多媒体的形式传输.利用这一技术,人们能够在家里购物、点播自己喜欢的电视节目。21 世纪的交互式多媒体技术的实现将会极大的改变我们的生活。由于 Lnu是一套具有全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。Linx 不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件.用户不但可以从 Internet 上下载nx 及其源代码,而且还可以从 Intret 上下载许多 Lnux 的应用程序。可以说,Linux 本身包含的应用程序以及移植到nux 上的应用程序包罗万象,任何一位用户都能从有关 Linu的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。开源的特性也决定了它使用的人越多,程序进步越快的特点。我们可以预见在不久的将来,linx 一定会大行其道,nx 的强大的兼容性,可移植性也将发挥的淋漓尽致.含有嵌入式系统设备统称嵌入式系统,如:手机,电子手表,多媒体播放器等,覆盖消费类电子产品,汽车电子,军用电子,生产,工业控制,通信,网络等领域。随着技术的进步,越来越高性能的嵌入式设备被广泛使用.操作系统是通过软件的运行带动硬件工作。然而,大部分的软件对操作系统有要求。这就要进行软件的移植,使其在需要的其他操作系统下也能正常工作。在这种情况下,一个好的软件就不会仅仅局限于一个小领域,例如:把 Iphoe 上的应用移植到其他平台上,从而改善我们的生活,促进技术进步的发展。-第2章 需求分析与方案制定本章分析了设计需求,并对设计的可行性进行分析,阐述了设计的主要目标以及设计的大体流程,并最终制定了系统的实施方案。2.1 功能性分析用 S32440 开发板作为产品的主体,LCD Mile 1 作为一个控制面板,通过可触摸的CD duie 实现播放控制。以 ubo作为 bootloade,采用inux2。6 内核和 yaff格式的文件系统,核心媒体播放程序为MPayer-。0c,核心解码器为libmad.7。可以实现绝大部分 Mplr 的功能:1)实现市场上几乎所有流行的音频文件播放。2)可正常播放损坏了报头的 AVI 文件。3)可以解码大部分的网络流媒体文件。4)人性化的触屏操作。2.2 可行性分析随着人们的生活水平不断提高,精神资料的需求逐渐提高,多媒体已经成为生活中必不可少的一部分.各式各样的多媒体迅速充斥了我们的生活,现在,多媒体正在向便携个人多媒体发展.我们生活中数字信息的数量在今后几十年中将急剧增加,质量上也将大大地改善.多媒体正在迅速的、意想不到的方式进入人们生活的多个方面,大的趋势是各个方面都将朝着当今新技术综合的方向发展.他们可以归结为两大类:音频,视频。但是现在多媒体的格式越来越多,比较流行的多媒体格式就有十多种,他们音质画质参差不齐,便携式设备上可用的媒体播放器较C 上的应用还有不小的差距。那些在电脑上运行的播放器经常因为操作环境等原因而不能在我们的机器上运行.这就凸显处软件移植的必要性,现在的手机大部分都带有嵌入式操作系统,这为我们软件的移植提供了一定程度的方便,我们完全可以把一款优秀的多媒体播放器软件如 Mplye移植到手机上,它几-乎支持几乎所有的音频视频文件,方便我们享受多媒体的乐趣.2.3 设计的主要目标任务这次设计的主要任务是将一款 Liux 下的开源多媒体播放器lyer从电脑上移植到 arm 平台上,实现一款软件可以跨平台运行的播放器。本设计主要研究了软件在不同平台上运行所需要的条件,以及达到触屏操作所需要的一系列要求,并研究了应用程序是如何进行不同程序及资源间调度配合。本次设计最终达到触屏控制软件实现软件在原来环境下的功能等效果。可以流畅播放多种格式的视频音频文件。2.4 系统方案制定本系统分为两大部分:软件部分,硬件部分。软件部分包含经过 arm 交叉编译器编译生成的 Mlaer 可执行程序,limd 解码库,触屏驱动源代码,以及rmlinuxcc 交叉编译工具链,Wnos 自带的超级终端,linu操作系统,Bootader,内核,根文件系统以及在Wnows 下的连接工具,烧录软件等。硬件部分包括C2440 开发板,串口线,并口线,LCD 触摸屏,变压器,带串、并口的 PC 机。将 bole,内核,根文件系统烧录到 SC240 开发板上,在c机上完成主控程序编写,和交叉编译工作,然后将程序序放到开发板上测试,运行。2.5 本章小结本章首先对设计的功能进行分析,通过对开发环境以及开发语言的分析,得到的结论是开发环境完全可以支持设计的开发,接着对player 的功能支持进行分析,结论是足以支持播放器的开发,最后在论证成功的情况下确定了一套可行的系统的方案.-第3章 系统功能模块介绍本章首先详细的介绍了开发板的各个部件,然后介绍了三星的3C2440 芯片,并介绍了用于实现播放器人机界面的显示器及触摸屏,最后系统的介绍软件是如何实现对应功能的。3.1 SC24开发板简介这里所用的C2440 嵌入式系统开发板功能比较强大,配备了完备的硬件资源和开发软件,开发板的结构如图 3所示。电源串口USB喇叭复位S3C2440 微处理器音量触摸屏图.1 开发板结构图S3C240是韩国三星公司推出的 162 位ISC 微控制器,其 CPU 采用的是 AM920T 内核。电源电路实现了 5v 直流输入到 33v、1.8v、1.2v 输出转换的功能,为板上各功能模组的正常工作提供所需电压。通讯接口部分,板上提供了以 SP、2C、RS32 异步串行接口、USB 转串口接口、US主/从通讯接口、太网接口等。多媒体的处理方面,开发板提供了 TV 输出、GA 接口、摄像头接口、耳机喇叭输出接口、FT 显示输出接口,在非易失性存储器方面,板上提供了8M 的rfas和 64M 的 Nandash 存储器,还有 SD 卡接口,另外提供了ATA大容量硬盘接口,可以扩充存储空间。3.2 S32440 芯片特性简介S3C2芯片采用的是 AR920T 的芯片结构,它的结构如图 3。2 所示.-图 3.2 芯片结构(ARM20T)3.2.1 3C240 芯片参数S3C2440 芯片的工作电压、操作频率、电源管理参数如下:1)具有 PL时钟发生器,主频最高可达3M.2)内核。2V 供电最高 400M,1。3供电最高 53。3)存储器支持 1。V、2。5、3。V、3.V,I均支持 33V 供电。4)s3c2440 为单机器周期执行指令集.具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作,降低产品功耗。3.2.2 内核结构内核结构具有如下特点:1)采用 ARMT 内核,具有6KB 指令 Cace、16KB 数据 Cche和存储器管理单元U。2)指令高速存储缓冲器(I-ch),数据高速存储缓冲器(c)提高指令执行效率及数据存储效率,减少主存带宽和响应性带来的影响。3)加强的 AM 体系结构MU,用于支持 winCE、linux 等操作系统。4)内部高级微控制总线(AMBA)体系结构(MB2.0,AB/AB)。3.2.3 总线结构3C240 芯片采用的是 ARM92结构,ARM90T 的总线结构如图 3 3所示.-图 3。3 总线结构3.2.4 处理器通用模块 1有 60 个中断源,可以设定 1 个为快速中断,其余为普通中断,有 24 个外部中断,可编程电平/边沿触发方式。个看门狗定时器、5 个定时器、9 个AT、个外部中断、4 个 DMA 中断、2 个 RTC中断、2 个 ADC 中断、个 IC、2 个 SI、个 SD、2 个 USB、1 个C、1 个触摸屏中断、个电池故障、1个 NAND、个摄像头、1 个97。3.2.5 处理器通用模块 23 个通道的AT,带有 16 字节的 TX/RX F,支持 IDA1.0 功能。通道的 10 位 A/D 转换器,最高速率可达 500kPS、提供有触摸屏接口。具有130个通用 I/O 口。有 4 个具有 PM 功能的位定时器和 1 个 1位内部定时器。看门狗定时器。-3.2.6 存储器接口sr、sdram、nrfash、NANDflas、外部存储器控制器,可扩展8 组,每组 128MB,总容量达 1GB、支持 NandFlas作为启动存储器及数据存储器、支持最高达 26M 的 SDRAM 存储器接口、支持 NO FLASH、SRAM 存储器接口、4 通道的 DM,并且有外部请求引脚。3.2.7 外围总线接口位地址总线、8/1632 位可编程数据总线、控制总线,具有通道的PI、个通道的 IIC 串行总线接口和 1 个通道的 IIS 音频总线接口,有 2 个 USB主机总线端口,1 个 UB 设备总线端口,兼容 MMC 的 SD 卡接口.3.2.8 人机接口带有四线电阻式触摸屏接口,有 LC控制器,支持 4色的T和 256色的F,配置有 D通道,支持多种屏幕尺寸,典型的屏幕尺寸有4480,20*32,1610,集成 Cm摄像头控制器,具有日历功能的 RTC。3.3 LCD 模块介绍电阻式触摸屏是一种传感器,它将矩形区域中触摸点(,Y)的物理位置转换为代表 X 坐标和 Y 坐标的电压。很多 L模块都采用了电阻式触摸屏,这种屏幕可以用四线、五线、七线或八线来产生屏幕偏置电压,同时读回触摸点的电压。电阻式触摸屏基本上是薄膜加上玻璃的结构,薄膜和玻璃相邻的一面上均涂有 ITO(纳米铟锡金属氧化物)涂层,IO 具有很好的导电性和透明性。当触摸操作时,薄膜下层的 ITO 会接触到玻璃上层的O,经由感应器传出相应的电信号,经过转换电路送到处理器,通过运算转化为屏幕上的 X、Y 值,而完成点选的动作,并呈现在屏幕上.原理:触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相同表面电阻的透明阻性材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成,通常还要用一种弹性材料来将两层隔开。当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间会产生接触.所有的电阻式触摸屏都采用分压器原理来产生代表 X 坐标和 Y 坐标的电压.分压器通过将两个电阻进行串联来实现的。上面的电阻连接正参考电压,下面的电阻接地.两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。为了在电阻式触摸屏上的特定方向测量一个坐标,需要对一个阻性层进行偏置:将它的一边接REF,另一边接地.同时,将未偏置的那一层连接到一个 ADC 的高阻抗输入端。当触摸屏上的压-力足够大,使两层之间发生接触时,电阻性表面被分隔为两个电阻。它们的阻值与触摸点到偏置边缘的距离成正比。触摸点与接地边之间的电阻相当于分压器中下面的那个电阻。因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比。触摸屏结构主要由部分构成:1)信号输入通道2)触摸屏接口3)8 转 1 切换开关4)中断信号发生器5)AD 转换器6)控制逻辑3.4 软件模块介绍1)子进程:在子进程中:启动plyer,参数规定通过命名管道进行通信。Mlyer会自动从命名管道中读取主进程发来的命令。Mplaer 发出的内容通过把标准输出重定向到命名管道中,父进程通过读管道就可以读到payer 发出的信息。然后在父进程实现任务调度及调用各用户界面显示模块来实现信息同步的功能。2)父进程:进行相应的窗口创建,界面的初始化。(把歌曲列表显示到屏幕上)检测触摸屏,通过返回按键,向命名管道写命令.开线程:给 Mpe发获取歌曲播放进度的命令。开线程 2:读命名管道,即读 Mplaer 发来的信息。开线程:解析收到的 Mplye发来的信息。、4、5 步实现播放进度条所需信息的获得.(获取进度信息后进行相应的界面处理)驱动程序模块:CD 驱动、触摸屏驱动、键盘驱动、音频驱动Ln内核:内核是负责创建和终止进程和处理与他们和外界联系(输入和输出).在不同的进程之间的通信(通过信号,管道,进程间通信原语)是整个系统的功能是基本的,这也是由内核来处理。Liux 内核的主要用途就是为了与计算机硬件进行交互,实现对硬件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口。目前,操作系统内核的结构模式主要可分为整体式的单内核模式和层次式的-微内核模式.单内核模式的主要优点是内核代码结构紧凑、执行速度快,不足之处主要是层次结构性不强.在单内核模式的系统中,操作系统所提供服务的流程为:应用主程序使用指定的参数值执行系统调用指令(nt x0),使 CPU 从用户态(User Mode)切换到核心态(Kenl ol),然后操作系统根据具体的参数值调用特定的服务程序,而这些服务程序则根据需要再调用底层的一些支持函数以完成特定的功能。在完成了应用程序所要求的服务后,操作系统又使 CPU 从核心态切换回用户态,从而返回到应用程序中继续执行后面的指令。因此概要地讲,单内核模式的内核也可粗略地分为 3 个层次:调用服务的主程序层、执行系统调用的服务层和支持系统调用的底层函数。播放器界面主要包括主窗口、操作窗口、播放列表窗口,歌曲信息窗口,歌词显示窗口。主窗口有一个显示屏和一些控制按钮,包括播放、暂停、快进、快退、下一首、上一首、音量调整以及播放进度条和播放时间显示。播放列表窗口可以使用户选择要播放的文件。播放列表用来播放最近播放的几个多媒体文件。3.5 本章小结本章详细的介绍了开发环境,包括开发板的结构,AM2T 的架构,以及内核的结构,并总体介绍了程序的结构以及程序实现的功能,其中详细阐述了如何使用线程和进程来控制播放器的。-第4章 硬件系统本章系统介绍了各部分硬件的实现原理并着重阐述了与控制模块有关的触摸屏模块的原理,然后简单介绍了开发板个部分的原理。4.1 开发板系统的硬件框架上图为本次设计的多媒体平台的硬件框图,以S3C2440 开发板为硬件基础,TFT-LCD和 key2键盘作为主控制器,循环采集触摸屏数据,然后将数据传入主控程序,主程序根据获得的参数进行时间判断和任务调度。最终实现多媒体播放功能。该设计的前期,要使用到并口和网络进行 Bodr,kenel,rot 的烧写。调试阶段可以通过F挂载根文件系统,这样方便省时。USB 接口用来挂载 U 盘,因为C2440 开发板的存储空间较小,可以挂载 U 盘或其他存储。4.2 LCD 模块原理4.2.1/D 转换器A/转换器按照转换速度、精度、功能等因素,常用的 AD 转换器分为两种:双积分型、逐次逼进型.它是模拟信号和 CP之间联系的接口,将采集到的连续变化的模拟信号转换为数字信号,以供计算机或数字系统进行分析、处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中,A/转换都是不可缺少的。C240 的D 转换器包含一个 8 通道的模拟输入转换器,可以将模拟输入信号转换成 10 位数字编码,输入电压范围为。3。在A/D 转换时钟频率 25MHz 时,其最大转换率为0KSS。AD 转换接口中的 AN通道和N5通道为触摸屏的模拟信号输入口。D 的启动方式有两种,分别为读取即转换方式和置位启动方式。读取即转换方式:将 ADCCON 中的 READSTAT 设置为,即每次读取CDAT0中的数都会触发下一次D 转换.置位启动方式:-将DN 中的 ENLE_STAERT设置为,即启动D 转换;AD 转换开始后改位自动清零。两者在使用上基本没什么太大区别,任意选中一种即可。要使用 S3C240的 A/D转换器进行模拟信号到数字信号的转换,需要配置以下寄存器:1)DC 控制寄存器(ACCN)2)AC 触摸屏控制寄存器(ADCSC)3)ADC 启动延时寄存器(ADDLY)4)ADC 转换数据寄存器(ADCDATn)4.2.2 触摸屏原理结构在电阻式触摸屏的表面保护涂层和基层之间有两层透明导电层 IT(IT:氧化铟,弱导电体),分别对应 X、轴,它们之间用细微透明的绝缘颗粒绝缘,触摸产生的压力会使两导电层接通,按压不同的点时,该点到输出端的电阻值也不同,因此会输出与该点位置相对应的电压信号(模拟量),经 A/D 转换后即可获取 X、Y 的坐标值,触摸屏的结构图如图 4.1 所示.图 4.触摸屏结构采用多次采样取平均值算法来计算触摸点坐标,即首先从触摸屏的四个顶角得到两个最大值和两个最小值,分别标识为 Xmax、max 和min、Ymin.确定 X、方向后坐标值的计算可通过以下方式求得:Xa、a:为多次测量的平均电压值X、为坐标值由 X/2=(XmxXa)/(XmXmin)得(X=(Xmax-Xa)320)/(Xma-Xmin))Xa=1+2+。.+nn由 Y240=(Yami)(YaxYmn)-得(Y=(Ya-Ymin)24)(YmaxYmn)Ya Y1+Y+Y/n测量 X 坐标:从 XP 输出电压给 X+端,从 XM 输出地电位给 X端,从脚输入按压点电压。控制信号:YMON0;nPON=;MN=1;XPON=0;触摸屏接口信号:XP=上拉XM=接地PAIN5M=高阻测量 Y 坐标:从 YP 输出电压给端,从M 输出地电位给-端,从 XP 脚输入按压点电压.控制信号:YMON=1;YPO=;XMON=0;nXN1;触摸屏接口信号:YP=上拉Y=接地PAN7 M高阻从 YP 做为输入,从 Y输出地电位给 Y端,从P 脚输入采样按压中断.控制信号:YMN=1;nPN=;XN0;nON=1;触摸屏接口信号:Y=AIN5M=接地P=IN7(上拉)XM高阻4.3 系统硬件介绍本次毕设涉及到的硬件有:1)笔记本电脑2)SC240 开发板3)标准 5V 变压器4)TFT-LC触屏5)扬声器6)U 盘7)USB线将 USBUART 线接到电脑S接口上,U 盘插到开发板上,接通电源。然后通过电脑的超级终端登陆开发板运行程序,就可进行触屏操作了。4.4 各个外设接口4.4.1 JTAG接口JTA最初是用来对芯片进行测试的,JTA的基本原理是在器件内部定义一个(TesAccs Po;测试访问口)通过专用的 JTAG测试工具对-进行内部节点进行测试。JA测试允许多个器件通过 JTAG接口串联在一起,形成一个 JTAG链,能实现对各个器件分别测试.现在,JTAG接口还常用于实现 IS(IytemPomable 在线编程),对FLASH 等器件进行编程.JTG 编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTA编程,从而大大加快工程进度.JG 接口可对 PSD 芯片内部的所有部件进行编程。本实验所用的的 JTA调试器为 EZJTA,是一种简易的并口调试器,成本较低,速度没有LINK、ULNK 快,但是可以基本满足调试代码的需求,标准的 JTA接口是 4 线:TM、TCK、DI、DO,分别为模式选择、时钟、数据输入和数据输出线,加上电源和地,一般6 条线;为了方便调试,大部分仿真器还提供了一个复位信号。为了方便连接,一般将接口设置为标准接口。这里用的的S3C240开发板提供了包含完整 JA标准信号的 20Pin JTG 接口.4.4.2 SB_ART转换接口S3C2440 配置了 USB_ART模块,实现sb 与串口转换,该模块的芯片为 SCP25A,通过此 USB 接口可以连接至 S240 的串口 0.4.4.3 RS232 接口240 开发板提供了一个标准的 RS3接口,可以通过跳线选择 24芯片的串口 0 或者串口进行数据输出,当 JP1 接口通过跳线冒接(3、5 短接,4、6 短接)时,此时 RS22 接口连接 244芯片串口 0,当P接口通过跳线冒接(1、短接,2、4 短接)时,此时 R232 接口连接40 芯片串口 1。另外,通过 J4 接口可以获得串口 0 的 TL 电平信号。串口选择跳线的结构如图。2所示。JP1TXD0PC_RXDTXD1135246RXD0PC_TXDRXD1HEADER 3X2图.SC240 串口选择跳线4.4.4 UB 主接口3C2440 芯片提供了一个 US HOT 接口,对于目前的众多 USB 设备来讲不太够用,所以 S3C2440 开发板扩展了 UUB 接口,可以扩展四路 US-设备,方便S键盘、US鼠标、UB 摄像头、UB 无线网卡等 UB 设备同时使用,由于 S3440 开发板本身外扩了AT硬盘接口,该硬盘在正常使用时需要占用一个SB 主通道,板子只预留了两路 UB 接口,另外一路保留。4.4.5 B 从接口S3c24芯片本身自带了 USBSlae 接口,可以方便的跟 PC 通过SB 接口进行高速数据通信,这次设计的 kerl 和 yaffs 就是通过此接口烧写的,大大减少了用时。4.4.6 AD 输入接口3C240 芯片内置 8 路 1tAD 输入接口,为了方便用户使用,开发板将其中的 4 路D 直接引出至9.使用时,将需要采样的 A信号直接接入1接口即可。4.4.7 复位系统S3240 实验仪通过 se按键实现对板子所有可复位芯片的复位操作,具体电路如图 4。3 所示。VDD3V3D31N4148R2010knRESETnRESETU4123BVCCAGNDY74LV1G0054RESETRESETS1RST2C424.7uF1RESET图。复位系统电路图4.5 本章小结本章详细的介绍了作为播放器人机界面的触摸屏以及c显示屏的结构和原理,以及如何得到坐标.然后详细介绍了各个用到的接口.-第5章 系统软件设计本章主要介绍设计的软件实现包括以下部分:1)Botladr 与 kerel 的配置2)根文件系统制作3)烧录镜像文件4)交叉编译编译工具链的安装5)重新配置编译 Mplye源码进行6)配置编译 libad 解码库7)主控程序的编写8)人机交互界面设计9)程序移植5.1 系统软件设计流程图这次毕设的软件模块我是按照环境搭建,安装工具,编写程序,可执行程序移植的顺序设计的,软件的开发环境搭建如图.1 所示.图 51 开发环境搭建流程图Bootloader内核的配置制作根文件系统烧录镜像文件配置编译 libmad解码库对 Mplayer 源码进行配置编译安装交叉编译工具5.2 Bootloade内核的配置5.2.1 Bootloader大多数 boloadr 都分为 stg1 和age2 两部分,uoo也不例外.依赖于PU 体系结构的代码(如设备初始化代码等)通常都放在 stg1 且可以用汇编语言来实现,而 ste2 则通常用 C 语言来实现,这样可以实现复杂的-功能,而且有更好的可读性和移植性。1、Stag strt.S 代码结构 u-boot 的 stge1 代码通常放在tart。S 文件中,他用汇编语言写成,其主要代码部分如下:1)定义入口。该工作通过修改连接器脚本来完成.2)设置异常向量(Exctin Vect)。3)设置 CPU 的速度、时钟频率及终端控制寄存器.4)初始化内存控制器。5)将OM 中的程序复制到 R中。6)初始化堆栈。7)转到 RA中执行,该工作可使用指令 ldr pc 来完成。、Stage2语言代码部分 libarm/ar。c 中的 statarm bot 是 C 语言开始的函数也是整个启动代码中语言的主函数,同时还是整个 uboot(rot)的主函数,该函数只要完成如下操作:1)调用一系列的初始化函数。2)初始化 Fla