基于ARM的音乐播放器的设计与实现_第1页
基于ARM的音乐播放器的设计与实现_第2页
基于ARM的音乐播放器的设计与实现_第3页
基于ARM的音乐播放器的设计与实现_第4页
基于ARM的音乐播放器的设计与实现_第5页
已阅读5页,还剩30页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业设计(论文)I摘要多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。嵌入式设备与多媒体技术的融合使得PDA,智能手机,平板等智能终端得到快速发展。未来,智能终端与物联网的结合将推动嵌入式设备快速发展。所以,基于嵌入式终端的应用前景广阔。设计目的是在嵌入式平台上开发一款基于开源LINUX操作系统的多媒体播放器,它以MPLAYER作为核心播放程序,将支持更多的文件播放格式甚至可以与PC机上的媒体播放器相媲美。多媒体播放器的硬件部分以S3C2440开发板为硬件平台,它的外围设备可以外插U盘作为存储器、TFTLCD触屏、KEY23键盘,以及外接耳机作音频设备。因为播放器开发是基于成熟的硬件平台,主要工作集中在软件部分,主要包括搭建开发环境,配置编译MPLAYER可执行程序,编写触屏驱动,及KEY23驱动,编写主控程序等等,最后将程序移植安装到开发板,完成基于LINUX的嵌入式播放器的设计。经过测试,播放器符合设计要求。关键词触屏,移植,线程,嵌入式本科生毕业设计(论文)IIABSTRACTTHEMULTIMEDIATECHNOLOGYINVOLVESSOUND,TEXT,IMAGE,ANIMATION,VIDEOANDCOMMUNICATIONSANDOTHERFUNCTIONSINFORMATIONTECHNOLOGYISONEOFFASTESTGROWINGTECHNOLOGIESOBVIOUSLY,ITISANEWGENERATIONOFELECTRONICTECHNOLOGYDEVELOPMENTANDTHEFOCUSOFCOMPETITIONTHEINTEGRATIONOFEMBEDDEDEQUIPMENTANDMULTIMEDIATECHNOLOGYCONTRIBUTESARAPIDDEVELOPMENTFORPDA,SMARTPHONES,SLABINTELLIGENTTERMINALINTHEFUTURE,INTELLIGENTTERMINALWILLPROMOTETHENETWORKEMBEDDEDEQUIPMENTRAPIDDEVELOPMENTSO,THEAPPLICATIONTHATBASEDONEMBEDDEDTERMINALHASABRIGHTFUTURETHEPURPOSEOFTHISDESIGNISTODESIGNMULTIMEDIAPLAYERONANEMBEDDEDPLATFORMBYUSINGTHEOPENSOURCEINLINUXOPERATINGSYSTEMITISTAKEMPLAYERASCOREBROADCASTPROGRAM,WHICHWILLSUPPORTMOREFILEFORMAT,ANDEVENISMORECOMPARABLEWITHTHEPCMEDIAPLAYERSTHEHARDWAREPARTOFMULTIMEDIAPLAYERTAKESS3C2440DEVELOPMENTBOARDFORTHEHARDWAREPLATFORM,WHICHUSETHEUSBDISK,TFTLCDTOUCHSCREEN,KEY23KEYBOARD,ANDEXTERNALEARPHONEFORAUDIOEQUIPMENTBECAUSETHEPLAYERDEVELOPMENTISBASEDONMATUREHARDWAREPLATFORM,THEMAINWORKFOCUSEDONSOFTWAREPART,WHICHMAININCLUDESTHESEWORKS,SUCHASTHEDEVELOPMENTENVIRONMENTSETUP,THECOMPILEDCONFIGURATIONOFMPLAYER,THEDRIVEOFTOUCHSCREENANDKEY23,ANDTHEPROGRAMOFMASTERCONTROL,ETCFINALLY,THEDEVELOPEDPROGRAMCANBEINSTALLEDTODEVELOPMENTBOARDBASEDONTHELINUXAFTERTESTING,PLAYERCANMEETTHEDESIGNREQUIREMENTSKEYWORDSTOUCHSCREENTRANSPLANTTHREADEMBEDDED本科生毕业设计(论文)III目录第1章绪论111选题背景112研究意义2第2章需求分析与方案制定421功能性分析422可行性分析423设计的主要目标任务524系统方案制定525本章小结5第3章系统功能模块介绍631S3C2440开发板简介632S3C2440芯片特性简介6321S3C2440芯片参数7322内核结构7323总线结构7324处理器通用模块18325处理器通用模块28326存储器接口9327外围总线接口9328人机接口933LCD模块介绍934软件模块介绍1035本章小结11第4章硬件系统1241开发板系统的硬件框架1242LCD模块原理12421A/D转换器12422触摸屏原理结构1343系统硬件介绍14本科生毕业设计(论文)IV44各个外设接口14441JTAG接口14442USB_UART转换接口15443RS232接口15444USB主接口15445USB从接口16446AD输入接口16447复位系统1645本章小结16第5章系统软件设计1751系统软件设计流程图1752BOOTLOADER内核的配置17521BOOTLOADER17522配置编译BOOTLOADERUBOOT18523裁剪编译LINUX2634(编译内核)1953制作根文件系统1954烧录镜像文件20541烧录BOOTLOADER20542烧录LINUX26内核和根文件系统2255安装交叉编译编译工具链2456对MPLAYER源码进行重新配置编译2457编写主程序(包含触屏驱动)2558设计人机交互界面2559程序移植26510本章小结26第6章结论27参考文献28致谢30本科生毕业设计(论文)1第1章绪论11选题背景多媒体是全面的综合性的信息资源,它常常指信息表示媒体的多样化,常见的形式有文字、资料、图形、影像、动画、视讯、声音、特殊效果,再经由电脑表现出来,它能用来达成信息传播中的任何媒体资源。多媒体技术的产生和发展,是技术和应用发展的必然。在信息社会,人们迫切希望计算机能以人类习惯的方式提供信息服务,因而多媒体技术应运而生。它的出现,使得原本“面无表情”、“死气沉沉”的计算机有了一副“生动活泼”的面孔。用户不仅可以通过文字信息,还可以通过直接看到的影像和听到的声音,来了解感兴趣的对象,并可以参与或改变信息的演示。一般而言,嵌入式系统的构架可以分成四个部分处理器、存储器、输入输出(I/O)和软件,嵌入式系统目前最主要的组成部分。根据操作系统的工作特性,实时是指物理进程的真实时间。实时操作系统具有实时性,能从硬件方面支持实时控制系统工作的操作系统。其中实时性是第一要求,需要调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。嵌入式系统一般由嵌入式计算机系统和执行机构组成,嵌入式计算机系统是由硬件层、中间层、系统软件层和应用软件层组成的。执行机构也作为控制对象,它可以接收由嵌入式计算机系统发出的控制命令,执行所需的操作或任务。执行器可以很简单,如手机上的微小型点击,手机在振动时机大开,也可以是非常复杂的,如SONY智能机器人集成以上的小型和微型控制电机,以及各种传感器,它可以执行各种复杂的动作和感情的各种状态信息。嵌入式微处理器在世界上有超过1000种,30多个系列,其中的主流体系结构有ARM,MIPS,POWERPC上,X86和SH等。但不像全球PC市场,没有那种嵌入式微处理器能够主宰市场,就32个产品而言,有超过100种嵌入式微处理器。嵌入式微处理器的选择是由具体应用决定的。这几年掀起的嵌入式系统的应用热潮主要有以下几种原因首先,芯片技术的发展,使一个单一的芯片具有更强的处理能力,而且集成多种接口已成为可能,许多芯片制造商焦点在这方面。另一方面,其原因在于应用需求,产品的可靠性,本科生毕业设计(论文)2成本,更换为嵌入式系统的需求不断增加,从纯硬件实现的和使用通用计算机来实现的的应用中脱颖而出,成为令人关注的焦点LINUX以它的高效性和灵活性著称。它能够在PC计算机上实现全部的UNIX特性,具有多任务、多用户的能力。LINUX是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。LINUX操作系统软件包不仅包括完整的LINUX操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的XWINDOWS图形用户界面,如同我们使用WINDOWSNT一样,允许我们使用窗口、图标和菜单对系统进行操作。LINUX之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从LINUX中获益。绝大多数基于LINUX内核的的操作系统使用了大量的GNU软件,包括了SHELL程序、工具、程序库、编译器及工具,还有许多其他程序,例如EMACS。大多数系统还包括了像提供GUI界面的XFREE86之类的曾经运行于BSD的程序。软件可移植性指一种计算机上的软件转置到其它计算机上的能力(也可称作软件自动搬家)。软件移植是实现功能的等价联系,而不是等同联系软件可移植性的主要标志是这类软件有个通用的标准文本;它们独立于具体的计算机。软件相对于具体计算机的独立性,从狭义上讲,是指可移植软件应独立于计算机的硬件环境;从广义上讲,可移植软件还应独立于计算机的软件,即高级的标准化的软件,它的功能与机器系统结构无关,可跨越很多机器界限。从一种计算机向另一种计算机移植软件时,首先要考虑所移植的软件对宿主机硬件及操作系统的接口,然后设法用对目标机的接口代换之。因此,接口的改造容易与否,是衡量一个软件可移植性高低的主要标志之一。多媒体已成为我们日常生活的重要组成部分,但一个优秀的播放器,却往往因为系统环境,不开源等问题,而不是被广泛认可、使用,这是我们的损失。因此,跨平台的多媒体播放器移植有很好的市场前景。12研究意义未来对多媒体的研究,主要有以下几个研究方面数据压缩、多媒体信息特性与建模、多媒体信息的组织与管理、多媒体信息表现与交互、多媒体通信与分本科生毕业设计(论文)3布处理、多媒体的软硬件平台、虚拟现实技术、多媒体应用开发。展望未来,网络和计算机技术相交融的交互式多媒体将成为21世纪多媒体发展方向。所谓交互式多媒体是指不仅可以从网络上接受信息、选择信息,还可以发送信息,其信息是以多媒体的形式传输。利用这一技术,人们能够在家里购物、点播自己喜欢的电视节目。21世纪的交互式多媒体技术的实现将会极大的改变我们的生活。由于LINUX是一套具有UNIX全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。LINUX不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从INTERNET上下载LINUX及其源代码,而且还可以从INTERNET上下载许多LINUX的应用程序。可以说,LINUX本身包含的应用程序以及移植到LINUX上的应用程序包罗万象,任何一位用户都能从有关LINUX的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。开源的特性也决定了它使用的人越多,程序进步越快的特点。我们可以预见在不久的将来,LINUX一定会大行其道,LINUX的强大的兼容性,可移植性也将发挥的淋漓尽致。含有嵌入式系统设备统称嵌入式系统,如手机,电子手表,多媒体播放器等,覆盖消费类电子产品,汽车电子,军用电子,生产,工业控制,通信,网络等领域。随着技术的进步,越来越高性能的嵌入式设备被广泛使用。操作系统是通过软件的运行带动硬件工作。然而,大部分的软件对操作系统有要求。这就要进行软件的移植,使其在需要的其他操作系统下也能正常工作。在这种情况下,一个好的软件就不会仅仅局限于一个小领域,例如把IPHONE上的应用移植到其他平台上,从而改善我们的生活,促进技术进步的发展。本科生毕业设计(论文)4第2章需求分析与方案制定本章分析了设计需求,并对设计的可行性进行分析,阐述了设计的主要目标以及设计的大体流程,并最终制定了系统的实施方案。21功能性分析用S3C2440开发板作为产品的主体,LCDMODUILEV11作为一个控制面板,通过可触摸的LCDMODUILE实现播放控制。以UBOOT作为BOOTLOADER,采用LINUX26内核和YAFFS格式的文件系统,核心媒体播放程序为MPLAYER10RC3,核心解码器为LIBMAD17。可以实现绝大部分MPLAYER的功能1实现市场上几乎所有流行的音频文件播放。2可正常播放损坏了报头的AVI文件。3可以解码大部分的网络流媒体文件。4人性化的触屏操作。22可行性分析随着人们的生活水平不断提高,精神资料的需求逐渐提高,多媒体已经成为生活中必不可少的一部分。各式各样的多媒体迅速充斥了我们的生活,现在,多媒体正在向便携个人多媒体发展。我们生活中数字信息的数量在今后几十年中将急剧增加,质量上也将大大地改善。多媒体正在迅速的、意想不到的方式进入人们生活的多个方面,大的趋势是各个方面都将朝着当今新技术综合的方向发展。他们可以归结为两大类音频,视频。但是现在多媒体的格式越来越多,比较流行的多媒体格式就有十多种,他们音质画质参差不齐,便携式设备上可用的媒体播放器较PC上的应用还有不小的差距。那些在电脑上运行的播放器经常因为操作环境等原因而不能在我们的机器上运行。这就凸显处软件移植的必要性,现在的手机大部分都带有嵌入式操作系统,这为我们软件的移植提供了一定程度本科生毕业设计(论文)5的方便,我们完全可以把一款优秀的多媒体播放器软件如MPLAYER移植到手机上,它几乎支持几乎所有的音频视频文件,方便我们享受多媒体的乐趣。23设计的主要目标任务这次设计的主要任务是将一款LINUX下的开源多媒体播放器MPLAYER从电脑上移植到ARM平台上,实现一款软件可以跨平台运行的播放器。本设计主要研究了软件在不同平台上运行所需要的条件,以及达到触屏操作所需要的一系列要求,并研究了应用程序是如何进行不同程序及资源间调度配合。本次设计最终达到触屏控制软件实现软件在原来环境下的功能等效果。可以流畅播放多种格式的视频音频文件。24系统方案制定本系统分为两大部分软件部分,硬件部分。软件部分包含经过ARM交叉编译器编译生成的MPLAYER可执行程序,LIBMAD解码库,触屏驱动源代码,以及ARMLINUXGCC交叉编译工具链,WINDOWS自带的超级终端,LINUX操作系统,BOOTLOADER,内核,根文件系统以及在WINDOWS下的连接工具,烧录软件等。硬件部分包括S3C2440开发板,串口线,并口线,LCD触摸屏,5V变压器,带串、并口的PC机。将BOOTLOADER,内核,根文件系统烧录到S3C2440开发板上,在PC机上完成主控程序编写,和交叉编译工作,然后将程序序放到开发板上测试,运行。25本章小结本章首先对设计的功能进行分析,通过对开发环境以及开发语言的分析,得到的结论是开发环境完全可以支持设计的开发,接着对MPLAYER的功能支持进行分析,结论是足以支持播放器的开发,最后在论证成功的情况下确定了一套可行的系统的方案。本科生毕业设计(论文)6第3章系统功能模块介绍本章首先详细的介绍了开发板的各个部件,然后介绍了三星的S3C2440芯片,并介绍了用于实现播放器人机界面的显示器及触摸屏,最后系统的介绍软件是如何实现对应功能的。31S3C2440开发板简介这里所用的S3C2440嵌入式系统开发板功能比较强大,配备了完备的硬件资源和开发软件,开发板的结构如图31所示。图31开发板结构图S3C2440A是韩国三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T内核。电源电路实现了5V直流输入到33V、18V、12V输出转换的功能,为板上各功能模组的正常工作提供所需电压。通讯接口部分,板上提供了以SPI、I2C、RS232异步串行接口、USB转串口接口、USB主/从通讯接口、太网接口等。多媒体的处理方面,开发板提供了TV输出、VGA接口、摄像头接口、耳机/喇叭输出接口、TFT显示输出接口,在非易失性存储器方面,板上提供了8M的NORFLASH和64M的NANDFLASH存储器,还有SD卡接口,另外提供了SATA大容量硬盘接口,可以扩充存储空间。32S3C2440芯片特性简介S3C2440芯片采用的是ARM920T的芯片结构,它的结构如图32所示。S3C2440微处理器电源串口USB喇叭复位音量触摸屏本科生毕业设计(论文)7图32芯片结构(ARM920T)321S3C2440芯片参数S3C2440芯片的工作电压、操作频率、电源管理参数如下1具有PLL时钟发生器,主频最高可达533M。2内核12V供电最高400M,13V供电最高533M。3存储器支持18V、25V、30V、33V,I/O均支持33V供电。4S3C2440为单机器周期执行指令集。具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作,降低产品功耗。322内核结构内核结构具有如下特点1采用ARM920T内核,具有16KB指令CACHE、16KB数据CACHE和存储器管理单元MMU。2指令高速存储缓冲器(ICACHE),数据高速存储缓冲器(DCACHE)提高指令执行效率及数据存储效率,减少主存带宽和响应性带来的影响。3加强的ARM体系结构MMU,用于支持WINCE、LINUX等操作系统。4内部高级微控制总线(AMBA)体系结构(AMB20,AHB/APB)。323总线结构S3C2440芯片采用的是ARM920T结构,ARM920T的总线结构如图33所示。本科生毕业设计(论文)8图33总线结构324处理器通用模块1有60个中断源,可以设定1个为快速中断,其余为普通中断,有24个外部中断,可编程电平/边沿触发方式。1个看门狗定时器、5个定时器、9个UART、24个外部中断、4个DMA中断、2个RTC中断、2个ADC中断、1个IIC、2个SPI、1个SD、2个USB、1个LCD、1个触摸屏中断、1个电池故障、1个NAND、2个摄像头、1个AC97。325处理器通用模块23个通道的UART,带有16字节的TX/RXFIFO,支持IRDA10功能。8通道的10位A/D转换器,最高速率可达500KSPS、提供有触摸屏接口。具有130个通用I/O口。有4个具有PWM功能的16位定时器和1个16位内部定时器。看门狗定时器。本科生毕业设计(论文)9326存储器接口SRAM、SDRAM、NORFLASH、NANDFLASH、外部存储器控制器,可扩展8组,每组128MB,总容量达1GB、支持NANDFLASH作为启动存储器及数据存储器、支持最高达256M的SDRAM存储器接口、支持NORFLASH、SRAM存储器接口、4通道的DMA,并且有外部请求引脚。327外围总线接口32位地址总线、8/16/32位可编程数据总线、控制总线,具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口,有2个USB主机总线端口,1个USB设备总线端口,兼容MMC的SD卡接口。328人机接口带有四线电阻式触摸屏接口,有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道,支持多种屏幕尺寸,典型的屏幕尺寸有640480,320320,160160,集成CAMER摄像头控制器,具有日历功能的RTC。33LCD模块介绍电阻式触摸屏是一种传感器,它将矩形区域中触摸点X,Y的物理位置转换为代表X坐标和Y坐标的电压。很多LCD模块都采用了电阻式触摸屏,这种屏幕可以用四线、五线、七线或八线来产生屏幕偏置电压,同时读回触摸点的电压。电阻式触摸屏基本上是薄膜加上玻璃的结构,薄膜和玻璃相邻的一面上均涂有ITO(纳米铟锡金属氧化物)涂层,ITO具有很好的导电性和透明性。当触摸操作时,薄膜下层的ITO会接触到玻璃上层的ITO,经由感应器传出相应的电信号,经过转换电路送到处理器,通过运算转化为屏幕上的X、Y值,而完成点选的动作,并呈现在屏幕上。原理触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相同表面电阻的透明阻性材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成,通常还要用一种弹性材料来将两层隔开。当触摸屏表面受到的压力如通过笔尖或手指进行按压足够大时,顶层与底层之间会产生接触。所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压。分压器通过将两个电阻进行串联来实现的。上面的电阻连接正参考电压,下面的电阻接地。两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。为了在电阻式触摸屏上的本科生毕业设计(论文)10特定方向测量一个坐标,需要对一个阻性层进行偏置将它的一边接VREF,另一边接地。同时,将未偏置的那一层连接到一个ADC的高阻抗输入端。当触摸屏上的压力足够大,使两层之间发生接触时,电阻性表面被分隔为两个电阻。它们的阻值与触摸点到偏置边缘的距离成正比。触摸点与接地边之间的电阻相当于分压器中下面的那个电阻。因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比。触摸屏结构主要由6部分构成1信号输入通道2触摸屏接口38转1切换开关4中断信号发生器5A/D转换器6控制逻辑34软件模块介绍1子进程在子进程中启动MPLAYER,参数规定通过命名管道进行通信。MPLAYER会自动从命名管道中读取主进程发来的命令。MPLAYER发出的内容通过把标准输出重定向到命名管道中,父进程通过读管道就可以读到MPLAYER发出的信息。然后在父进程实现任务调度及调用各用户界面显示模块来实现信息同步的功能。2父进程1进行相应的窗口创建,界面的初始化。(把歌曲列表显示到屏幕上)2检测触摸屏,通过返回按键,向命名管道写命令。3开线程1给MPLAYER发获取歌曲播放进度的命令。4开线程2读命名管道,即读MPLAYER发来的信息。5开线程3解析收到的MPLAYER发来的信息。3、4、5步实现播放进度条所需信息的获得。(获取进度信息后进行相应的界面处理)驱动程序模块LCD驱动、触摸屏驱动、键盘驱动、音频驱动LINUX内核内核是负责创建和终止进程和处理与他们和外界联系(输入和输出)。在不同的进程之间的通信(通过信号,管道,进程间通信原语)是整个系统的功能是基本的,这也是由内核来处理。LINUX内核的主要用途就是为了与计算机硬件进行交互,实现对硬件的编程本科生毕业设计(论文)11控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口。目前,操作系统内核的结构模式主要可分为整体式的单内核模式和层次式的微内核模式。单内核模式的主要优点是内核代码结构紧凑、执行速度快,不足之处主要是层次结构性不强。在单内核模式的系统中,操作系统所提供服务的流程为应用主程序使用指定的参数值执行系统调用指令(INTX80),使CPU从用户态(USERMODE)切换到核心态(KERNELMODEL),然后操作系统根据具体的参数值调用特定的服务程序,而这些服务程序则根据需要再调用底层的一些支持函数以完成特定的功能。在完成了应用程序所要求的服务后,操作系统又使CPU从核心态切换回用户态,从而返回到应用程序中继续执行后面的指令。因此概要地讲,单内核模式的内核也可粗略地分为3个层次调用服务的主程序层、执行系统调用的服务层和支持系统调用的底层函数。播放器界面主要包括主窗口、操作窗口、播放列表窗口,歌曲信息窗口,歌词显示窗口。主窗口有一个显示屏和一些控制按钮,包括播放、暂停、快进、快退、下一首、上一首、音量调整以及播放进度条和播放时间显示。播放列表窗口可以使用户选择要播放的文件。播放列表用来播放最近播放的几个多媒体文件。35本章小结本章详细的介绍了开发环境,包括开发板的结构,ARM920T的架构,以及内核的结构,并总体介绍了程序的结构以及程序实现的功能,其中详细阐述了如何使用线程和进程来控制播放器的。本科生毕业设计(论文)12第4章硬件系统本章系统介绍了各部分硬件的实现原理并着重阐述了与控制模块有关的触摸屏模块的原理,然后简单介绍了开发板个部分的原理。41开发板系统的硬件框架上图为本次设计的多媒体平台的硬件框图,以S3C2440开发板为硬件基础,TFTLCD和KEY23键盘作为主控制器,循环采集触摸屏数据,然后将数据传入主控程序,主程序根据获得的参数进行时间判断和任务调度。最终实现多媒体播放功能。该设计的前期,要使用到并口和网络进行BOOTLOADER,KERNEL,ROOT的烧写。调试阶段可以通过NFS挂载根文件系统,这样方便省时。USB接口用来挂载U盘,因为S3C2440开发板的存储空间较小,可以挂载U盘或其他存储。42LCD模块原理421A/D转换器A/D转换器按照转换速度、精度、功能等因素,常用的A/D转换器分为两种双积分型、逐次逼进型。它是模拟信号和CPU之间联系的接口,将采集到的连续变化的模拟信号转换为数字信号,以供计算机或数字系统进行分析、处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中,A/D转换都是不可缺少的。S3C2440的A/D转换器包含一个8通道的模拟输入转换器,可以将模拟输入信号转换成10位数字编码,输入电压范围为033V。在A/D转换时钟频率25MHZ时,其最大转换率为500KSPS。AD转换接口中的AIN7通道和AIN5通道为触摸屏的模拟信号输入口。AD的启动方式有两种,分别为读取即转换方式和置位启动方式。读取即转换方式将ADCCON中的READ_START设置为,即每次读取ADCDAT0中的数都会触发下一次AD转换。置位启动方式本科生毕业设计(论文)13将ADCCON中的ENABLE_STAERT设置为,即启动AD转换;AD转换开始后改位自动清零。两者在使用上基本没什么太大区别,任意选中一种即可。要使用S3C2440的A/D转换器进行模拟信号到数字信号的转换,需要配置以下寄存器1ADC控制寄存器ADCCON2ADC触摸屏控制寄存器(ADCTSC)3ADC启动延时寄存器(ADCDLY)4ADC转换数据寄存器(ADCDATN)422触摸屏原理结构在电阻式触摸屏的表面保护涂层和基层之间有两层透明导电层ITO(ITO氧化铟,弱导电体),分别对应X、Y轴,它们之间用细微透明的绝缘颗粒绝缘,触摸产生的压力会使两导电层接通,按压不同的点时,该点到输出端的电阻值也不同,因此会输出与该点位置相对应的电压信号(模拟量),经A/D转换后即可获取X、Y的坐标值,触摸屏的结构图如图41所示。图41触摸屏结构采用多次采样取平均值算法来计算触摸点坐标,即首先从触摸屏的四个顶角得到两个最大值和两个最小值,分别标识为XMAX、YMAX和XMIN、YMIN。确定X、Y方向后坐标值的计算可通过以下方式求得XA、YA为多次测量的平均电压值X、Y为坐标值由X/320XMAXXA/XMAXXMIN得XXMAXXA320/XMAXXMINXAX1X2XN/N由Y/240YAYMIN/YMAXYMIN本科生毕业设计(论文)14得YYAYMIN240/YMAXYMINYAY1Y2YN/N测量X坐标从XP输出电压给X端,从XM输出地电位给X端,从YP脚输入按压点电压。控制信号YMON0NYPON1;XMON1NXPON0;触摸屏接口信号XP上拉XM接地YPAIN5YM高阻测量Y坐标从YP输出电压给Y端,从YM输出地电位给Y端,从XP脚输入按压点电压。控制信号YMON1NYPON0XMON0NXPON1;触摸屏接口信号YP上拉YM接地XPAIN7XM高阻从YP做为输入,从YM输出地电位给Y端,从XP脚输入采样按压中断。控制信号YMON1NYPON1XMON0NXPON1;触摸屏接口信号YPAIN5YM接地XPAIN7上拉XM高阻43系统硬件介绍本次毕设涉及到的硬件有1笔记本电脑2S3C2440开发板3标准5V变压器4TFTLCD触屏5扬声器6U盘7USBUART线将USBUART线接到电脑USB接口上,U盘插到开发板上,接通电源。然后通过电脑的超级终端登陆开发板运行程序,就可进行触屏操作了。44各个外设接口441JTAG接口JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一本科生毕业设计(论文)15个TAP(TESTACCESSPORT测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(INSYSTEMPROGRAMMABLE在线编程),对FLASH等器件进行编程。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。本实验所用的的JTAG调试器为EZJTAG,是一种简易的并口调试器,成本较低,速度没有JLINK、ULINK快,但是可以基本满足调试代码的需求,标准的JTAG接口是4线TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线,加上电源和地,一般6条线;为了方便调试,大部分仿真器还提供了一个复位信号。为了方便连接,一般将接口设置为标准接口。这里用的的S3C2440开发板提供了包含完整JTAG标准信号的20PINJTAG接口。442USB_UART转换接口S3C2440配置了USB_UART模块,实现USB与串口转换,该模块的芯片为SPCP825A,通过此USB接口可以连接至S3C2440的串口0。443RS232接口S3C2440开发板提供了一个标准的RS232接口,可以通过跳线选择2440芯片的串口0或者串口1进行数据输出,当JP1接口通过跳线冒接(3、5短接,4、6短接)时,此时RS232接口连接2440芯片串口0,当JP1接口通过跳线冒接(1、3短接,2、4短接)时,此时RS232接口连接2440芯片串口1。另外,通过J4接口可以获得串口0的TTL电平信号。串口选择跳线的结构如图42所示。PC_TXDRXD1RXD0TXD0PC_RXDTXD1JP1HEADER3X2123456图42S3C2440串口选择跳线本科生毕业设计(论文)16444USB主接口S3C2440芯片提供了一个USBHOST接口,对于目前的众多USB设备来讲不太够用,所以S3C2440开发板扩展了USBHUB接口,可以扩展四路USB设备,方便USB键盘、USB鼠标、USB摄像头、USB无线网卡等USB设备同时使用,由于S3C2440开发板本身外扩了SATA硬盘接口,该硬盘在正常使用时需要占用一个USB主通道,板子只预留了两路USB接口,另外一路保留。445USB从接口S3C2440芯片本身自带了USBSLAVE接口,可以方便的跟PC通过USB接口进行高速数据通信,这次设计的KERNEL和YAFFS就是通过此接口烧写的,大大减少了用时。446AD输入接口S3C2440芯片内置8路12BITAD输入接口,为了方便用户使用,开发板将其中的4路AD直接引出至J19。使用时,将需要采样的AD信号直接接入J19接口即可。447复位系统S3C2440实验仪通过RESET按键实现对板子所有可复位芯片的复位操作,具体电路如图43所示。U474LV1G00B1A2GND3Y4VCC5R2010KVDD3V3C4247UFS1RST12RESETRESETNRESETD31N4148NRESETRESET图43复位系统电路图45本章小结本章详细的介绍了作为播放器人机界面的触摸屏以及LCD显示屏的结构和原理,以及如何得到坐标。然后详细介绍了各个用到的接口。本科生毕业设计(论文)17本科生毕业设计(论文)18第5章系统软件设计本章主要介绍设计的软件实现包括以下部分1BOOTLOADER与KERNEL的配置2根文件系统制作3烧录镜像文件4交叉编译编译工具链的安装5重新配置编译MPLAYER源码进行6配置编译LIBMAD解码库7主控程序的编写8人机交互界面设计9程序移植51系统软件设计流程图这次毕设的软件模块我是按照环境搭建,安装工具,编写程序,可执行程序移植的顺序设计的,软件的开发环境搭建如图51所示。图51开发环境搭建流程图52BOOTLOADER内核的配置521BOOTLOADER大多数BOOTLOADER都分为STAGE1和STAGE2两部分,UBOOT也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在STAGE1且可以用汇编语BOOTLOADER内核的配置制作根文件系统烧录镜像文件配置编译LIBMAD解码库安装交叉编译工具对MPLAYER源码进行配置编译本科生毕业设计(论文)19言来实现,而STAGE2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。1、STAGE1STARTS代码结构UBOOT的STAGE1代码通常放在STARTS文件中,他用汇编语言写成,其主要代码部分如下1定义入口。该工作通过修改连接器脚本来完成。2设置异常向量(EXCEPTIONVECTOR)。3设置CPU的速度、时钟频率及终端控制寄存器。4初始化内存控制器。5将ROM中的程序复制到RAM中。6初始化堆栈。7转到RAM中执行,该工作可使用指令LDRPC来完成。2、STAGE2C语言代码部分LIB_ARM/BOARDC中的STARTARMBOOT是C语言开始的函数也是整个启动代码中C语言的主函数,同时还是整个UBOOT(ARMBOOT)的主函数,该函数只要完成如下操作1调用一系列的初始化函数。2初始化FLASH设备。3初始化系统内存分配函数。4如果目标系统拥有NAND设备,则初始化NAND设备。5如果目标系统有显示设备,则初始化该类设备。6初始化相关网络设备,填写IP、MAC地址等。进去命令循环(即整个BOOT的工作循环),接受用户从串口输入的命令,然后进行相应的工作。522配置编译BOOTLOADERUBOOT在终端中执行以下命令CD/HOME/LINUX_PLATFORM/BOOTLOADERTARZXVFUBOOT_UNSPTARBZ2解压文件CDUBOOT_UNSPMAKEDISTCLEANUBOOT功能强大,但是没有像VIVI一样的MENUCONFIG图形化配置界面,配置,添加都要人为修改。修改完后执行MAKE在当前路径下会生成UBOOTBIN的二进制文件。本科生毕业设计(论文)20523裁剪编译LINUX2634(编译内核)执行以下命令CD/HOME/LINUX_PLATFORM/KERNELTARZXVFLINUX2634TARGZCDLINUX2634MAKEDISTCLEAN清楚垃圾文件CPKERNELUNSPCONFIGCONFIGMAKEMENUCONFIG跟VIVI类似,由于采用的是配置好的脚本CONFIG,因此不用做任何修改,直接保存退出即可。图52为内核的配置界面。图52内核配置界面MAKEUIMAGE在/ARCH/ARM/BOOT下会生成UIMAGE文件53制作根文件系统生成带GUI的根文件系统CD/HOME/LINUX_PLATFORM/ROOTFSTARZXVFROOTFS_GUITARGZ/解压不带QT库的根文件系统TARZXVFYAFFS2TARGZ/编译CRAMFS根文件系统制作工具本科生毕业设计(论文)21CDYAFFS2MAKE编译得到用MKYAFFSIMAGE制作YAFFS文件系统镜像的工具MKYAFFSIMAGECPMKYAFFSIMAGE/BIN/将工具拷贝到根目录的/BIN下MKYAFFSIMAGEROOTFSROOTFSYAFFS/将刚才解压出来的根文件系统制作成YAFFS格式的镜像CPROOTFS_GUICRAMFS/HOME/LINUX_PLATFORM/IMAGE/54烧录镜像文件541烧录BOOTLOADER将制作好的BOOTLOADER烧录到开发板,这里用HJTAG烧写,将开发板串、并口连接好,上电,启动HJTAG,选择并口,图53、54为使用HJTAG烧录UBOOT的过程,图55为芯片的选择,图56为导入配置文件,图57即开始烧录。在图57中,点击相应按钮可以执行下述操作1点RESET和CHECK;2SRCFILE浏览到UBOOTBIN文件;3点PROGRAM下载。图53HJTAG烧录UBOOT流程本科生毕业设计(论文)22图54HJTAG烧录UBOOT流程图55HJTAG烧录UBOOT流程(芯片选择)本科生毕业设计(论文)23图56HJTAG烧录UBOOT流程导入脚本图57HJTAG烧录UBOOT流程下载542烧录LINUX26内核和根文件系统在WINDOWS下开启TFTP服务器,浏览到UBOOTBIN所在目录超级终端参数设置波特率设为115200、数据位为8位、奇偶校验为无、停止位为1位、数据流控制为无。然后重启开发板,按空格进入UBOOT命令模式,如图58所示。本科生毕业设计(论文)24图58通过TFTP下载KERNEL与YAFFS在UBOOT命令模式下配置TFTP服务器地址和开发板IPSETENVSERVERIP192168220231SETENVIPADR192168220123SAVEENVUBOOT不像VIVI,含有MTD分区,在UBOOT中所有基于FLASH的操作都需要指定明确要操作的地址FLASH写之前一定要先擦除,擦除范围一定要跟内核规定的分区保持一致,不要破坏其他分区的数据。LOADY/LOADB通过Y协议、KERMIT协议将文件通过串口下载到内存中。更新UBOOTLOADY0X33000000NANDERASE0X00X30000NANDWRITE0X330000000X00X30000更新内核TFTP0X330000001722022363UIMAGEIMGNANDERASE0X500000X300000NANDWRITE0X330000000X500000X300000更新YAFFS格式根文件系统TFTP0X330000001722022363ROOTFSYAFFSNANDERASE0X3500000X3CAC000NANDWRITEYAFFS20X330000000X3500000X5FFEB0此数字必须是528的整数倍启动系统NANDREAD0X330000000X500000X300000本科生毕业设计(论文)25/将内核读到内存0X33000000中NBOOT0X3300000000X50000/也是将LINUX内核读取到内存中,无需指定读取大小BOOTM0X33000000/启动内核55安装交叉编译编译工具链开发嵌入式LINUX应用程序必须安装交叉编译器,安装方法为将ARMLINUXGCC432TARBZ2进行解压即可。在REDHATAS5内执行解压命令(待改)TARXJVFARMLINUXGCC432TARBZ2C/解压完后会出现/USR/LOCAL/ARM/432目录结构,该目录下为进行基于ARM平台的嵌入式LINUX开发的交叉编译环境。解压完后还要设置环境变量,首先执行命令“VI/ROOT/BASH_PROFILE”找到行PATHPATHHOME/BIN将其修改为PATHPATHHOME/BIN/USR/LOCAL/ARM/432/BIN。到此为止,整个嵌入式LINUX的开发环境(宿主机部分)已经完成,然后重启REDHATAS5虚拟机即可。56对MPLAYER源码进行重新配置编译选项配置TARJXVFMPLAYEREXPORTSNAPSHOTTARBZ2MVMPLAYEREXPORTSNAPSHOTMPLAYER_SRCCDMPLAYER_SRC配置/CONFIGUREHOSTCCGCCCCARMLINUXGCCTARGETARMV4LENABLESTATICDISABLEWIN32DLLDISABLEDVDREADDISABLEDVDREADINTERNALDISABLEDVDNAVDISABLELIBDVDCSSINTERNALENABLEFBDEVDISABLEMENCODERDISABLELIVEDISABLEMP3LIBENABLEMADENABLELIBAVCODEC_ALANGUAGEZH_CNMAKE/会在当前文件下生成MPLAYER可执行程序其中MAKE会出错,需要更改MPLAYER_SRC/LIBMPEG2/MOTION_COMP_ARM_SS中的代码,VIMPLAYER_SRC/LIBMPEG2/MOTION_COMP_ARM_SS在最开始的地方添加IFNDEFHAVE_PLD本科生毕业设计(论文)26MACROPLDREGENDMENDIF保存之后,再次MAKE,就编译成功了。57编写主程序(包含触屏驱动)作为一个交互系统,在处理收发信息之间的同步关系和数据交互可以有两种方案可供选择,一种就是常用的多线程,第二种就是使用定时器。本次设计采用的是多线程的方法。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。使用线程的好处1使用线程可以把占据长时间的程序中的任务放到后台去处理。2用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。3程序的运行速度可能加快。4在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。58设计人机交互界面这次设计的人机交互界面,使用千千静听的界面做背景,重新实现了开始,暂停,停止,歌曲目录,声音调节,静音,快进快退等功能。具体如图59所示。本科生毕业设计(论文)27图59播放器人机交互界面59程序移植启动超级终端,和REDHATAS5,S3C2440开发板上电,连接好开发板和PC机之间的网线,USBUART数据线,插好扬声器。设置IP地址,通过MOUNT命令,将LINUX/HOME挂在开发板的/MNT目录下。将MPLAYER通过编译生成的可执行程序MPLAYER和所有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论