基于ARM的音频控制.docx
《基于ARM的音频控制.docx》由会员分享,可在线阅读,更多相关《基于ARM的音频控制.docx(12页珍藏版)》请在三一办公上搜索。
1、基于ARM的音频控制自动化系的工程训练5是学生在4年学习中的最后一次软硬件开发的工程训练,利用2周时间完成。本次工程训练以深圳芯控科技有限公司生产的一款基于ARM9的嵌入式开发平台EM-SBC2410为硬件开发平台,通过搭建嵌入式Linux的软件开发平台,完成基于ARM的音频控制的软硬件设计。通过此设计,使学生掌握以ARM为控制核心的嵌入式开发板的运用、领略到基于ARM9-Linux软硬件平台开发的主要过程、方法和步骤,最终完成一个基于ARM9的小型嵌入式作品。学生要完成这一工程训练项目,必须学完“单片机原理及其应用”和“嵌入式系统原理及其应用”二门课程及其完成“基于单片机的直流电动机控制”或
2、“基于单片机的数字钟设计”的实训项目,并综合应用这三门课程的软硬件知识,解决实践中的实际软硬件开发问题。3.1 目的要求:3.1.1 基本目的本次工程训练通过“嵌入式系统原理及其应用”课程的学习,掌握嵌入式系统开发的基础知识;通过对EM-SBC2410的学习,了解嵌入式开发板的使用及其嵌入式系统的主要开发要点;综合应用嵌入式Linux的C语言编程技巧,结合音频控制原理,实现基于ARM的音频控制。3.1.2 基本要求为了使学生深入理解嵌入式系统的整个开发过程,本设计采用5个过程实现基于ARM的音频控制,此5个过程分别为:EM-SBC2410开发板的硬件资源及其附带的软件资源的使用阶段、嵌入式Li
3、nux的开发环境的搭建阶段、基于ARM的音频控制的需求分析及其制定设计思路阶段、硬件设计及其制作阶段、软件设计及其调试阶段、作品联调运行及其维护阶段。要求学生按照5个阶段开发过程展开,以求给学生一个整个嵌入式开发的全过程。本工程训练除了要求学生掌握运用ARM控制音频的全过程,还要求学生能够掌握以ARM为控制核心的嵌入式开发板的运用及其嵌入式Linux的C语言的编程技巧。3.2 基本知识介绍运用EM-SBC2410的硬件开发平台进行基于ARM的音频控制的软硬件设计,用到了“嵌入式系统原理及其应用”这门课程、嵌入式Linux开发的相关知识、EM-SBC2410用户手册及其音频控制原理等知识。嵌入式
4、系统原理及其应用中主要掌握ARM的体系结构及其编程,以及嵌入式系统开发的流程。嵌入式Linux开发的相关知识主要掌握嵌入式Linux开发环境的搭建及其嵌入式Linux的交叉开发流程。EM-SBC2410用户手册主要掌握如何利用基于ARM9的开发板的硬件资源进行设计的过程。下面简单介绍除“嵌入式系统原理及其应用”这门课程外,此设计中要使用的一些重要知识。3.2.1 EM-SBC2410开发板简介图1 EM-SBC2410开发板深圳芯控科技有限公司生产的EM-SBC2410开发板在尽可能小的板面上(120mm*90mm),如图1所示,它集成了64M SDRAM、64M Nand Flash、2M
5、Boot Flash、RJ-45网卡(100M)、USB Host、USB slave、标准串口、SD卡插槽、用户按键和一些用户灯等设备接口,并且使用2.0mm插针槽引出CPU的大部分信号引脚,不仅可以作为嵌入式电脑系统的一个主板模块,而且适合于项目或产品的原型设计。此设计在基于EM-SBC2410为硬件开发平台,实现基于ARM的音频控制,最终实现mp3格式音频文件的播放和控制。3.2.2嵌入式Linux开发的相关知识1、 嵌入式Linux简介 linux是一个日益成熟的操作系统,现在已经拥有大量的用户,它是由芬兰的大学生linus torvalds开发的,任何人都可以复制,修改,套装发行,销
6、售,但不许发行时加入限制,而且必须公布源代码,以保障任何人都可以无偿取得所有可执行文件及其源代码。比较著名的linux发行版本有redhat Linux ,SUSE Linux ,Turbo Linux ,Ubuntu Linux等。国内的有北京中科红旗软件技术有限公司发布的红旗linux,深圳蓝点软件有限公司发布的蓝点linux,北京冲浪公司制作的xterm linux 等。嵌入式 Linux是以Linux为基础的嵌入式操作系统,它是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统,具有开放源代码、内核小、效率高、性能稳定,裁剪性好和对网络中最常用的T
7、CP/IP协议有最完备的支持等优点,被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。 2、嵌入式Linux 的交叉开发模式Linux 交叉开发采用宿主机和目标机的模式进行。宿主机是一台运行 Linux(如:RedHat)的 PC 机,目标机即 EM-SBC2410开发板。开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,这种代码并不能在宿主机上执行,而只能在目标机上执行。然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器所提供的支持作出选择。宿主机和目标板的处理
8、器一般都不相同,宿主机为 Intel 处理器, 而目标板如 EM-SBC2410为 SAMSUNG S3C2410。Linux 交叉开发包括 Linux 内核的开发和 Linux 应用程序的开发应用程序的开发。有两种方式:Linux 内核的开发:图2所示为本设计的开发环境以及开发流程。在主机的 RedHat Linux 操作系统下安装 Linux 发行包以及交叉编译器 arm-linux-gcc。然后对 Linux 进行配置(make menuconfig)并选择适合本开发板的相关配置,配置完成后进行编译生成 Linux 映像文件zImage。然后将该文件下载到目标板并执行。图2 Linux的
9、开发流程Linux 应用程序的开发Linux 应用程序的开发在宿主机一端的操作与内核开发类似,都使用 arm-linux-gcc 编译器应用程序,不同的是,编译生成 elf 格式的文件而不是 Linux 映像文件。编译生成的应用程序可以通过多种方式进行调试,下面介绍几种我们的系统中可以使用的方式: Linux 应用程序以文件的方式直接将 elf 格式的文件加入到 Linux 文件系统中,然后更新整个文件系统,然后运行目标机 Linux 系统并运行应用程序。 运行目标机 Linux 系统,然后在目标机 Linux 系统中通过一些工具软件将宿主机中的应用程序通过以太网下载到目标机 Linux 系统
10、,如 NFS、FTP、TFTP 等。 在宿主机端将 Linux 应用程序拷贝到 U 盘,然后运行目标机 Linux 系统,然后在目标机 Linux 系统中通过挂载 U 盘,然后在 U 盘运行应用程序。3、嵌入式Linux 的开发流程嵌入式 linux 开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过以下过程: 建立开发环境。操作系统一般使用 REDHATLINUX,版本7到9都可以,选择定制安装或全部安装,通过网络下载相应的 GCC 交叉编译器进行安装(比如 arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的交叉编译器。 配置开发主机。配置 MIN
11、ICOM,一般参数为波特率 115200,数据位 8 位,停止位 1,无奇偶校验,软硬件控制流设为无。在 WINDOWS 下的超级终端的配置也是这样。(本设计使用dnw.exe超级终端软件)MINICOM 软件的作用是作为调试嵌入式开发板信息输出的监视器和键盘输入的工具; 配置网络,主要是配置 NFS 网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。 建立引导装载程序 BOOTLOADER,从网络上下载一些公开源代码的 BOOTLOADER,如 U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT 等,根据自己具体芯片进行移植修改。有些芯片没有内置引导装
12、载程序,比如三星的 ARM7、ARM9 系列芯片,这样就需要编写烧写开发板上flash 的烧写程序,网络上有免费下载的 WINDOWS 下通过 JTAG 并口简易仿真器烧写 ARM 外围 flash 芯片的程序,也有 LINUX 下公开源代码的 J-FLASH 程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果你购买了厂家的仿真器当然比较容易烧写 flash 了,但是其中的核心技术是无法了解的。这对于需要迅速开发应用的人来说可以极大地提高开发速度。 下载别人已经移植好的 LINUX 操作系统,如 UCLINUX、ARM-LINUX、PP
13、C-LINUX 等,如果有专门针对你所使用的 CPU 移植好的 LINUX 操作系统那是再好不过,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带 MMU 的 CPU 可以使用模块方式调试驱动,对于UCLINUX 这样的系统只能编译进内核进行调试。 建立根文件系统,从 下载使用 BUSYBOX 软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc 目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile 等,自动
14、挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用 mkcramfs 、genromfs 等工具产生烧写映象文件。 建立应用程序的 flash 磁盘分区,一般使用 JFFS2 或 YAFFS 文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性 flash(NOR 型)512K32M,有的系统使用非线性 flash(NAND 型)8512M,有的两个同时使用,需要根据应用规划 flash 的分区方案。 开发应用程序,可以下载到根文件系统中,也可以放入 YAFFS、JFFS2 文件系统中,有的应用程序不使用根文件
15、系统,而是直接将应用程序和内核设计在一起。3.2.3 EM-SBC2410音频接口及其控制原理Samsung S3C2410X带有I2S音频总线,因此EM-SBC2410使用一片I2S接口的PHILIPS解码芯片UDA1341,通过该芯片和相应的软件,用户可以播放mp3以及wav格式的音频文件,双声道的声音可以从背面的耳塞插孔直接接至耳塞或音箱,音频输入接口可以录音。此设计通过音频放大电路的设计,结合相应的控制程序,实现mp3歌曲的播放。IIS(Integrate Interface of Sound)即集成音频接口,在上个世纪80年代首先被Philips公司用于消费产品的音频设备,是一种面向
16、多媒体计算机的串行数字音频总线协议。S3C2410X内置了一个IIS总线控制器,该控制器实现到一个外部8/16位立体声音频编解码接口。支持IIS总线数据格式和MSB-justified数据格式,能够和其他厂商提供的多媒体编解码芯片配合使用。S3C2410X中有两条串行数据线,一条是输入信号数据线,一条是输出信号数据线,以同时发送和接收数据。该IIS接口能够读取IIS总线上的数据,同时也为FIFO数据提供DMA的传输模式,这样能够同时传送和接收数据。IIS接口有3种工作方式: 正常传输模式,正常模式下使用IISCON寄存器对FIFO进行控制。如果传输FIFO缓存为空,IISCON的第7位被设置为
17、“0”,表示不能继续传输数据,需要CPU对缓存进行处理。如果传输FIFO缓存非空,IISCON的第7位被设置成“1”,表示可以继续传输数据。同样,数据接收时,如果FIFO满,标识位是“0”,此时,需要CPU对FIFO进行处理,如果FIFO没有满,那么标志位是“1”,这个时候可以继续接收数据。 DMA模式,通过设置IISFCON寄存器可以使IIS接口工作于这种模式下。在这种模式中,FIFO寄存器组的控制权掌握在DMA控制器上,当FIFO满了,由DMA控制器对FIFO中的数据进行处理。DMA模式的选择由IISCON寄存器的第4位和第5位控制。 传输/接收模式,这种模式下,IIS数据可以同时接收和发
18、送音频数据。IIS总线控制器结构如图8.2所示,各功能说明如下: 两个5比特预除器IPSR,IPSA_A用于产生IIS总线接口的主时钟,IPSA_B用做外部CODEC时钟产生器。 16字节FIFO,在发送数据时数据被写进TxFIFO,在接收数据时数据从RxFIFO中读取。 主IISCLK产生器SCLKG,在主模式下,有主时钟产生串行位时钟。 通道产生器和状态机CHNC,IISCLK和IISLRCK有通道状态机产生并控制。 16比特移位寄存器(SFTR),在发送数据时,并行数据经由SFTR变成串行数据输出;在数据接收时,串行数据由SFTR转变成并行数据。 IIS相关寄存器如表1所示。表1 IIS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 音频 控制
链接地址:https://www.31ppt.com/p-1667657.html