您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 工程训练报告基于ARM的音频控制
1工程训练5基于ARM的音频控制摘要基于ARM的音频控制是在4年学习中的最后一次软硬件开发的工程训练,利用2周时间完成。本次工程训练以深圳芯控科技有限公司生产的一款基于ARM9的嵌入式开发平台EM-SBC2410为硬件开发平台,通过搭建嵌入式Linux的软件开发平台,完成基于ARM的音频控制的软硬件设计。通过此设计,使学生掌握以ARM为控制核心的嵌入式开发板的运用、领略到基于ARM9-Linux软硬件平台开发的主要过程、方法和步骤,最终完成一个基于ARM9的小型嵌入式作品。学生要完成这一工程训练项目,必须学完“单片机原理及其应用”和“嵌入式系统原理及其应用”二门课程及其完成“基于单片机的直流电动机控制”或“基于单片机的数字钟设计”的实训项目,并综合应用这三门课程的软硬件知识,解决实践中的实际软硬件开发问题。本次工程训练通过“嵌入式系统原理及其应用”课程的学习,掌握嵌入式系统开发的基础知识;通过对EM-SBC2410的学习,了解嵌入式开发板的使用及其嵌入式系统的主要开发要点;综合应用嵌入式Linux的C语言编程技巧,结合音频控制原理,实现基于ARM的音频控制。为了使学生深入理解嵌入式系统的整个开发过程,本设计采用5个过程实现基于ARM的音频控制,此5个过程分别为:EM-SBC2410开发板的硬件资源及其附带的软件资源的使用阶段、嵌入式Linux的开发环境的搭建阶段、基于ARM的音频控制的需求分析及其制定设计思路阶段、硬件设计及其制作阶段、软件设计及其调试阶段、作品联调运行及其维护阶段。要求学生按照5个阶段开发过程展开,以求给学生一个整个嵌入式开发的全过程。本工程训练除了要求学生掌握运用ARM控制音频的全过程,还要求学生能够掌握以ARM为控制核心的嵌入式开发板的运用及其嵌入式Linux的C语言的编程技巧。2目录第一章基本知识介绍1.1………………………………EM-SBC2410开发板简介1.2………………………………嵌入式Linux开发的相关知识第二章设计方案的选择和原理2.1………………………………EM-SBC2410音频接口及其控制原理2.2………………………………基于ARM的音频控制的放大部分的硬件电路设计第三章软件的系统安装及环境的编译3.1………………………………REDHATLINUX9.0的安装3.2………………………………VMwareTools的安装3.3………………………………交叉编译器的安装3.4………………………………以“hello,world”程序为例熟悉整个开发过程第四章系统的硬件软件设计4.1………………………………基于ARM的音频控制的放大部分的硬件电路设计及制作4.2………………………………音频设备驱动程序的实现4.3………………………………媒体播放器的移植4.4………………………………挂U盘播放mp3格式的歌曲第五章性能与调试5.1………………………………性能与调试第六章心得体会6.1………………………………心得体会第七章参考文献7.1………………………………参考文献第八章工程训练成绩评定表8.1………………………………工程训练成绩评定表31基本知识介绍运用EM-SBC2410的硬件开发平台进行基于ARM的音频控制的软硬件设计,用到了“嵌入式系统原理及其应用”这门课程、嵌入式Linux开发的相关知识、EM-SBC2410用户手册及其音频控制原理等知识。嵌入式系统原理及其应用中主要掌握ARM的体系结构及其编程,以及嵌入式系统开发的流程。嵌入式Linux开发的相关知识主要掌握嵌入式Linux开发环境的搭建及其嵌入式Linux的交叉开发流程。EM-SBC2410用户手册主要掌握如何利用基于ARM9的开发板的硬件资源进行设计的过程。下面简单介绍除“嵌入式系统原理及其应用”这门课程外,此设计中要使用的一些重要知识。1.1.1EM-SBC2410开发板简介图1EM-SBC2410开发板深圳芯控科技有限公司生产的EM-SBC2410开发板在尽可能小的板面上(120mm*90mm),如图1所示,它集成了64MSDRAM、64MNandFlash、2MBootFlash、RJ-45网卡(100M)、USBHost、USBslave、标准串口、SD卡插槽、用户按键和一些用户灯等设备接口,并且使用2.0mm插针槽引出CPU的大部分信号引脚,不仅可以作为嵌入式电脑系统的一个主板模块,而且适合于项目或产品的原型设计。此设计在基于EM-SBC2410为硬件开发平台,实现基于ARM的音频控制,最终实现mp3格式音频文件的播放和控制。1.1.2嵌入式Linux开发的相关知识41、嵌入式Linux简介linux是一个日益成熟的操作系统,现在已经拥有大量的用户,它是由芬兰的大学生linustorvalds开发的,任何人都可以复制,修改,套装发行,销售,但不许发行时加入限制,而且必须公布源代码,以保障任何人都可以无偿取得所有可执行文件及其源代码。比较著名的linux发行版本有redhatLinux,SUSELinux,TurboLinux,UbuntuLinux等。国内的有北京中科红旗软件技术有限公司发布的红旗linux,深圳蓝点软件有限公司发布的蓝点linux,北京冲浪公司制作的xtermlinux等。嵌入式Linux是以Linux为基础的嵌入式操作系统,它是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统,具有开放源代码、内核小、效率高、性能稳定,裁剪性好和对网络中最常用的TCP/IP协议有最完备的支持等优点,被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。2、嵌入式Linux的交叉开发模式Linux交叉开发采用宿主机和目标机的模式进行。宿主机是一台运行Linux(如:RedHat)的PC机,目标机即EM-SBC2410开发板。开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,这种代码并不能在宿主机上执行,而只能在目标机上执行。然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器所提供的支持作出选择。宿主机和目标板的处理器一般都不相同,宿主机为Intel处理器,而目标板如EM-SBC2410为SAMSUNGS3C2410。Linux交叉开发包括Linux内核的开发和Linux应用程序的开发应用程序的开发。有两种方式:①Linux内核的开发:图2所示为本设计的开发环境以及开发流程。在主机的RedHatLinux操作系统下安装Linux发行包以及交叉编译器arm-linux-gcc。然后对Linux进行配置(makemenuconfig)并选择适合本开发板的相关配置,配置完成后进行编译生成Linux映像文件zImage。然后将该文件下载到目标板并执行。5图2Linux的开发流程②Linux应用程序的开发Linux应用程序的开发在宿主机一端的操作与内核开发类似,都使用arm-linux-gcc编译器应用程序,不同的是,编译生成elf格式的文件而不是Linux映像文件。编译生成的应用程序可以通过多种方式进行调试,下面介绍几种我们的系统中可以使用的方式:●Linux应用程序以文件的方式直接将elf格式的文件加入到Linux文件系统中,然后更新整个文件系统,然后运行目标机Linux系统并运行应用程序。●运行目标机Linux系统,然后在目标机Linux系统中通过一些工具软件将宿主机中的应用程序通过以太网下载到目标机Linux系统,如NFS、FTP、TFTP等。●在宿主机端将Linux应用程序拷贝到U盘,然后运行目标机Linux系统,然后在目标机Linux系统中通过挂载U盘,然后在U盘运行应用程序。3、嵌入式Linux的开发流程嵌入式linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过以下过程:●建立开发环境。操作系统一般使用REDHAT-LINUX,版本7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的交叉编译器。●配置开发主机。配置MINICOM,一般参数为波特率115200,数据位8位,停止位1,无奇偶校验,软硬件控制流设为无。在WINDOWS下的超级终端的配6置也是这样。(本设计使用dnw.exe超级终端软件)MINICOM软件的作用是作为调试嵌入式开发板信息输出的监视器和键盘输入的工具;●配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。●建立引导装载程序BOOTLOADER,从网络上下载一些公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如三星的ARM7、ARM9系列芯片,这样就需要编写烧写开发板上flash的烧写程序,网络上有免费下载的WINDOWS下通过JTAG并口简易仿真器烧写ARM外围flash芯片的程序,也有LINUX下公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果你购买了厂家的仿真器当然比较容易烧写flash了,但是其中的核心技术是无法了解的。这对于需要迅速开发应用的人来说可以极大地提高开发速度。●下载别人已经移植好的LINUX操作系统,如UCLINUX、ARM-LINUX、PPC-LINUX等,如果有专门针对你所使用的CPU移植好的LINUX操作系统那是再好不过,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,对于UCLINUX这样的系统只能编译进内核进行调试。●建立根文件系统,从软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs、genromfs等工具产生烧写映象文件。●建立应用程序的flash磁盘分区,一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性flash(NOR型)512K-32M,有的系统使用非线性flash(NAND型)8-512M,有的两个同时使用,需要根据应用规划flash的分区方案。●开发应用程序,可以下载到根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用程序不使用根文件系统,而是直接将应用程序和内核设计在一起。2设计档案的选择和原理72.1EM-SBC2410音频接口及其控制原理SamsungS3C2410X带有I2S音频总线,因此EM-SBC2410使用一片I2S接口的PHILIPS解码芯片UDA1341,通过该芯片和相应的软件,用户可以播放mp3以及wav格式的音频文件,双声道的声音可以从背面的耳塞插孔直接接至耳塞或音箱,音频输入接口可以录音。此设计通过音频放大电路的设计,结合相应的控制程序,实现mp3歌曲的播放。IIS(IntegrateInterfaceofSound)即集成音频接口,在上个世纪80年代首先被Philips公司用于消费产品的音频设备,是一种面向多媒体计算机的串行数字音频总线协议。S3C2410X内置了一个IIS总线控制器,该控制器实现到一个外部8/16位立体声音频编解码接口。支持IIS总线数据格式和MSB-justified数据格式,能够和其他厂商提供的多媒体编解码芯片
本文标题:工程训练报告基于ARM的音频控制
链接地址:https://www.777doc.com/doc-2484292 .html