基于ARM的音频控制报告.docx
- 文档编号:28040847
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:19
- 大小:727.50KB
基于ARM的音频控制报告.docx
《基于ARM的音频控制报告.docx》由会员分享,可在线阅读,更多相关《基于ARM的音频控制报告.docx(19页珍藏版)》请在冰豆网上搜索。
基于ARM的音频控制报告
基于ARM的音频控制系统设计
专业:
08自动化学号:
7021308017学生姓名:
江国建指导教师:
郭波陈艳
摘要
随着信息化、智能化、网络化的发展,嵌入式系统目前己经成为通讯和消费产品的共同发展方向,嵌入式系统是当今最热门的概念之一,各种各样的嵌入式系统设备在应用数量上己经大大超过了通用计算机。
同时数字音频技术在我们社会生活中的应用也己经非常广泛,WAV、MPEG、MP3和WMA等相继出现。
结合嵌入式系统的数字音频技术研究有着广阔的前景,基于嵌入式的数字音频设备以其高性价比、日新月异的发展速度等优点受到世界各国的广泛关注。
本文结合市场发展需要,提出了一个比较优化的解决方案,并从理论和实践两方面对该方案进行了分析和设计。
本论文的主要工作是在研究了基于ARM9体系结构的SamsungS3C2410处理器的基础上,以该处理器为核心,加上外部存储器和音频编码解码芯片等器件,完成了一个嵌入式音频系统的设计,设计的系统中包括硬件设计、音频编码解码芯片的设备驱动程序及应用程序。
论文中首先对嵌入式系统进行了比较详细的介绍,并对S3C2410处理器的体系结构和特性进行了仔细的分析,其次介绍了嵌入式数字音频系统的相关技术,然后从硬件和软件两个部分,分多个模块来安排设计所要求的系统,其中包括linux嵌入式操作系统ARM微处理器上的移植,与上位机(PC机)上USB接口的通讯,以及人机界面和数字音频解码的程序设计等。
整个嵌入式音频系统是一个可以独立工作的可扩展系统,该系统能完成音频采集和处理功能。
关键词:
嵌入式系统,ARM,S3C2410,linux,音频系统,UDA1341TS
目录
第一章基于ARM的音频控制的软硬件设计的概述3
1.1嵌入式Linux简介3
1.2EM-SBC2410开发板简介4
1.3训练目的和要求4
1.3.1基本目的4
1.3.2基本要求4
第二章设计方案的选择和确定5
2.1系统总体方案的选择5
2.1.1系统硬件方案的设计5
2.1.2系统软件方案的设计6
第三章系统的软件设计6
3.1安装嵌入式linux开发环境6
3.2JS-SBC2410源码安装与编译6
3.2.1JS-SBC2410源码安装6
3.2.2编译vivi7
3.2.3编译内核8
3.3Linux板级映像的固化与运行8
3.3.1固化Bootloader:
vivi8
3.3.2内核的固化9
3.3.3文件系统的固化9
3.4嵌入式Linux的交叉开发模式9
3.4.1Linux内核的开发9
3.4.2Linux应用程序的开发10
3.4.3ubuntu下交叉编译环境构建10
第四章系统的硬件设计11
4.1功放电路设计11
4.2EM-SBC2410音频接口及其控制原理12
第五章性能测试与分析14
5.1运行“hello,world”程序14
5.2挂U盘播放mp3格式的歌曲的调试与运行14
软硬件的联调15
第六章心得体会16
第一章基于ARM的音频控制的软硬件设计的概述
1.1嵌入式Linux简介
linux是一个日益成熟的操作系统,现在已经拥有大量的用户,它是由芬兰的大学生linustorvalds开发的,任何人都可以复制,修改,套装发行,销售,但不许发行时加入限制,而且必须公布源代码,以保障任何人都可以无偿取得所有可执行文件及其源代码。
比较著名的linux发行版本有redhatLinux,SUSELinux,TurboLinux,UbuntuLinux等。
国内的有北京中科红旗软件技术有限公司发布的红旗linux,深圳蓝点软件有限公司发布的蓝点linux,北京冲浪公司制作的xtermlinux等。
嵌入式Linux是以Linux为基础的嵌入式操作系统,它是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统,具有开放源代码、内核小、效率高、性能稳定,裁剪性好和对网络中最常用的TCP/IP协议有最完备的支持等优点,被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。
1.2EM-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.3训练目的和要求
1.3.1基本目的
本次工程训练通过“嵌入式系统原理及其应用”课程的学习,掌握嵌入式系统开发的基础知识;通过对EM-SBC2410的学习,了解嵌入式开发板的使用及其嵌入式系统的主要开发要点;综合应用嵌入式Linux的C语言编程技巧,结合音频控制原理,实现基于ARM的音频控制。
1.3.2基本要求
为了使学生深入理解嵌入式系统的整个开发过程,本设计采用5个过程实现基于ARM的音频控制,此5个过程分别为:
EM-SBC2410开发板的硬件资源及其附带的软件资源的使用阶段、嵌入式Linux的开发环境的搭建阶段、基于ARM的音频控制的需求分析及其制定设计思路阶段、硬件设计及其制作阶段、软件设计及其调试阶段、作品联调运行及其维护阶段。
本工程训练除了要求掌握运用ARM控制音频的全过程,还要求能够掌握以ARM9为控制核心的嵌入式开发板的运用及其嵌入式Linux的C语言的编程技巧。
第二章设计方案的选择和确定
2.1系统总体方案的选择
运用EM-SBC2410的硬件开发平台进行基于ARM的音频控制的软硬件设计,用到了“嵌入式系统原理及其应用”这门课程、嵌入式Linux开发的相关知识、EM-SBC2410用户手册及其音频控制原理等知识。
嵌入式系统原理及其应用中主要掌握ARM的体系结构及其编程,以及嵌入式系统开发的流程。
本设计采用5个过程实现基于ARM的音频控制,此5个过程分别为:
EM-SBC2410开发板的硬件资源及其附带的软件资源的使用阶段、嵌入式Linux的开发环境的搭建阶段、基于ARM的音频控制的需求分析及其制定设计思路阶段、硬件设计及其制作阶段、软件设计及其调试阶段、作品联调运行及其维护阶段。
以深圳芯控科技有限公司生产的一款基于ARM9的嵌入式开发平台EM-SBC2410为硬件开发平台,通过搭建嵌入式Linux的软件开发平台,完成基于ARM的音频控制的软硬件设计。
2.1.1系统硬件方案的设计
此设计在基于EM-SBC2410为硬件开发平台,实现基于ARM的音频控制,最终实现mp3格式音频文件的播放和控制。
ARM硬件部分包括整个硬件的原理分析、原理图、PCB板的绘制、元件焊接、硬件的检测与调试。
本次工程训练放大电路采用的是LM386集成芯片。
为了能产生立体声,采用双通道音频放大电路。
芯片LM386简介
LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。
它是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。
它是低电压应用的音频功率放大集成电路,可使用电池为供电电源,输入电压范围可由4V-12V,具有静态电流小、输出端直流电压自动跟踪、电压增益可调、外围元件少等优点。
为使外围元件最少,电压增益内置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
LM386的引脚图如下:
引脚图
2.1.2系统软件方案的设计
ARM前后台系统应用部分包括启动代码、处理器内部外设、扩展外部设备及接口等的所有底层软件分析与实现,还有Bootloader、文件系统、GUI等的原理与实现。
Linux系统的应用部分包括基于PC机的操作、应用编程和驱动、嵌入式Linux的开发环境创建、各种硬件的驱动实现、网络编程、图形用户界面设计等。
在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主开发机,对于嵌入式Linux,宿主机上的操作系统一般使用RedhatLinux。
本设计使用Redhat9.0,选择定制安装或全部安装,然后安装相应的GCC交叉编译器(比如arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的交叉编译器。
第三章系统的软件设计
3.1安装嵌入式linux开发环境
在这次工程训练中安装的操作系统是ubuntu,它拥有Debian所有的优点,以及自己所加强的优点的近乎完美的linux操作系统。
Ubuntu基于DebianSid,所以它拥有Debian的所有优点,包括apt-get。
Ubuntu的安装非常的人性化,只要按照提示一步一步进行,安装和Windows同样简单!
3.2JS-SBC2410源码安装与编译
3.2.1JS-SBC2410源码安装
3.2.2编译vivi
vivi使用命令表
命令
功能
Load
把二进制文件载入Flash或RAM
Part
操作MTD分区信息。
显示、增加、删除、复位、保存MTD分区
Param
设置参数
Boot
启动系统
Flash
管理Flash。
如删除Flash的数据
Vivi的编译方法如下:
3.2.3编译内核
编译内核的方法:
3.3Linux板级映像的固化与运行
3.3.1固化Bootloader:
vivi
点击激活DNW窗口,然后按住PC机上的空格键,将开发板上电,然后会看到DNW窗口中有输出,这是vivi启动运行时的输出信息。
松开空格键,并敲击一下回车键
在超级终端窗口中输入命令loadflashvivix后,然后按回车键,这时超级终端窗口将等待我们选择要下载的文件。
3.3.2内核的固化
在DNW窗口中输入命令loadflashkernelu后,然后按回车键,这个时候DNW窗口将提示usb线已接,等待用户选择要下载的内核文件。
3.3.3文件系统的固化
在DNW窗口中输入命令loadyaffsrootu后,然后按回车键。
这个时候DNW窗口将提示usb线已连,等待用户选择要下载文件。
3.4嵌入式Linux的交叉开发模式
3.4.1Linux内核的开发
图2所示为本设计的开发环境以及开发流程。
在主机的RedHatLinux操作系统下安装Linux发行包以及交叉编译器arm-linux-gcc。
然后对Linux进行配置(makemenuconfig)并选择适合本开发板的相关配置,配置完成后进行编译生成Linux映像文件zImage。
然后将该文件下载到目标板并执行。
图2Linux的开发流程
3.4.2Linux应用程序的开发
Linux应用程序的开发在宿主机一端的操作与内核开发类似,都使用arm-linux-gcc编译器应用程序,不同的是,编译生成elf格式的文件而不是Linux映像文件。
编译生成的应用程序可以通过多种方式进行调试。
3.4.3ubuntu下交叉编译环境构建(arm-linux-gcc-3.4.1.tar.bz2)
1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下
2.解压arm-linux-gcc-3.4.1.tar.bz2
#tar-jxvfarm-linux-gcc-3.4.1.tar.bz2
3.修改环境变量,把交叉编译器的路径加入到PATH。
修改/etc/profile文件:
#vim/etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
exportPATH=$PATH:
/usr/local/arm/3.4.1/bin
4.立即使新的环境变量生效
#source/etc/profile
5.检查是否将路径加入到PATH:
#echo$PATH
显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。
至此,交叉编译环境安装完成。
6.测试是否安装成功
#arm-linux-gcc–v
7.编译HelloWorld程序,测试交叉工具链
写下下面的HelloWorld程序,保存为hello.c
#include
intmain()
{
printf("HelloWorld!
\n");
return0;
}
执行下面的命令:
#arm-linux-gcc-ohellohello.c
就可以下载到ARM目标板上运行了。
第四章系统的硬件设计
4.1功放电路设计
1、音频放大电路的原理图如下:
2、PCB图如下:
PCB板制作完毕后,安装元器件并在PCB板上进行电路的焊接并调试
4.2EM-SBC2410音频接口及其控制原理
SamsungS3C2410X带有I2S音频总线,因此EM-SBC2410使用一片I2S接口的PHILIPS解码芯片UDA1341,通过该芯片和相应的软件,用户可以播放mp3以及wav格式的音频文件,双声道的声音可以从背面的耳塞插孔直接接至耳塞或音箱,音频输入接口可以录音。
此设计通过音频放大电路的设计,结合相应的控制程序,实现mp3歌曲的播放。
IIS接口有3种工作方式:
●正常传输模式,正常模式下使用IISCON寄存器对FIFO进行控制。
如果传输FIFO缓存为空,IISCON的第7位被设置为“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数据可以同时接收和发送音频数据。
IIS相关寄存器如表1所示。
表1IIS相关寄存器
UDA1341是PHILIPS公司的一款经济型音频CODEC,用于实现模拟音频信号的采集和数字音频信号的模拟输出,并通过IIS数字音频接口,实现音频信号的数字化处理。
图3IIS总线控制器结构图
如图3所示,S3C2410X的IIS总线时钟信号SCK与UDA1341TS的BCK连接,字段选择连接在WS引脚上。
UDA1341TS提供两个音频通道,分别用于输入和输出,对应的引脚连接为:
IIS总线的音频输出I2SSDO对应于UDA1341TS的音频输入;IIS总线的音频输入I2SSDI对应于UDA1341TS的音频输出。
UDA1341TS的L3接口相当于一个混音器控制接口,可以用来控制输入/输出音频信号的音量大小、低音等。
L3接口的引脚L3MODE、L3DATA、L3CLOCK分别连接到S3C2410的GPB2、GPB3、GPB4三个通用数据输出引脚上,实现混音控制。
第五章性能测试与分析
5.1运行“hello,world”程序
在PC上编辑以下源代码,并保存为hello.c
#include
intmain(void)
{
printf("hello,NanchangUniversityCollegeofScienceandTechnology!
\n");
return0;
}
编译hello
使用以下命令编译:
#arm-linux-gcc–ohellohello.c
将生成hello可执行文件。
下载并运行
把U盘插入PC的USB,把/SBC-linux/SBC2410II/examples/hello目录中的Hello.o目标文件复制到U盘中。
然后把优盘拔下来插入到SBC-2410X的USBHOST端口,打开dnw.exe终端,连接好超级终端(其中波特率设置为115200bps,com设置为PC机上相对应的端口),启动EM-SBC2410开发板,按照以下命令操作:
#mount/dev/sda1/mnt;挂接优盘
#cp/mnt/hello/bin;把hello复制到bin目录
#hello;执行hello
若在终端上出现“hello,NanchangUniversityCollegeofScienceandTechnology!
”字样,说明交叉编译器安装成功。
然后输入#umount/mnt命令退出U盘。
5.2挂U盘播放mp3格式的歌曲的调试与运行
往U盘中拷入shanghaitan.mp3,输入命令:
#mount/dev/sda1/mnt;挂接优盘
#cd/mnt
#ls
#madplayshanghaitan.mp3
在终端上将出现:
MPEGAudioDecoder0.15.0(beta)-Copyright(C)2000-2003RobertLeslieetal.
>>/mnt
input:
read:
Isadirectory
>>shanghaitan.mp3
按Ctrl+C退出。
若操作无误后,在开发板上插上耳机,将听到拷入到U盘里里歌曲,即运行成功。
5.3软硬件的联调
把自己制作的音频放大电路连接到EM-SBC2410开发板的音频接口,在终端上重复执行上面播放MP3指令的操作,往U盘中拷入123.mp3和shanghaitan.mp3两首歌曲,输入命令:
#mount/dev/sda1/mnt;挂接优盘
#cd/mnt
#ls
#madplayshanghaitan.mp3
在终端上将出现:
MPEGAudioDecoder0.15.0(beta)-Copyright(C)2000-2003RobertLeslieetal.
>>/mnt
input:
read:
Isadirectory
>>shanghaitan.mp3
若能听到功放的歌曲,则硬软件都调试成功。
第六章心得体会
对我而言这次工程训练有很重要的意义,而且任务很重,但在这次工程训练中也学到了很多以前课堂没有的知识。
虽然之前有学过有关于ARM方面的知识,不过到实际用的时候发现了很多问题存在,不免有很大的压力。
这是我们大学最后的一次工程训练,当然不敢有半点的疏漏和松懈,对于老师给我们布置的任务,按照老师的要求在规定的时间里及时的完成;我们仔细阅读老师给的资料,并按照实验步骤进行,尽管如此但在实践过程中还是遇到了很多的问题,不过经过指导老师的细心讲解,让我对于完成这次工程训练任务充满了信心。
有些之前我们学过的知识要点,不过有一段时间间隔了,很多的知识要点有不同程度的遗忘,我们通过网络所搜,和同学一起讨论问题。
时间过得很快,短短两周工程训练;在这两周时间里,我学到了很多东西,对于linux操作系统,以前了解过一些这方面的知识,但并没有实践过;安装ubunt软件的时候,出现了系统卡机;在这次工程训练中安装交叉编译环境让我有很大的压力,遇到了很多的问题,在网上也查了很多的资料,最后是在同学的帮助下完成的。
安装完成编译环境后,设置共享文件时出现了问题,而且连U盘都不能在linux系统中读出来,开始的时候并不知道怎么样设置共享,我试图使用网络传输。
不过后来,在同学的指导下完成了设置共享文件,真的很感谢那位同学。
使用ARM开发板的时候,挂接U盘,一开始不知道怎们样把U盘中的文件拷贝到开发板上,后来在知道里面搜索到了,相关的指令;在这次工程训练中让我受益非浅。
功放电路的制作并不是很难,但放出来的音效并不是很理想,我试图通过改变电路的参数改善音频效果,但效果并不是很理想,可能是芯片的缘故。
在这次工程训练中学到了很多,更多的了解到了有关于ARM9方面的知识;学会了独立思考,独立解决问题;通过和同学交流,共同学习,共同进步;同时也了解到了怎样更好的通过网络查找自己需要的资料,在这次工程训练中有一点点遗憾,没有实现在MP3的自动播放。
工程训练成绩评定表
专业:
自动化班级:
08学号:
7021308017姓名:
江国建
项目名称
基于ARM的音频控制的软硬件设计
设计任务与要求
(1)对基于ARM的音频控制的需求进行分析掌握音频控制原理。
(2)了解EM-SBC2410开发板的资源,学会EM-SBC2410开发板的硬件资源及其附带的软件资源的使用。
(3)结合音频控制原理,制定设计思路。
(4)了解嵌入式开发的整个设计流程并搭建嵌入式Linux的开发环境
(5)结合作品的要求,对硬件电路进行设计并制作
(6)在搭建的嵌入式Linux的开发环境中进行软件设计并调试通过
(7)软硬件联调,使作品正常运行
(8)对基于ARM的音频控制提出新的其他要求。
指导教师评语
建议成绩:
指导教师:
教研组评定意见
评定成绩:
负责人:
时间:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 音频 控制 报告