基于ARM的语音录放系统的设计.docx
- 文档编号:25497815
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:26
- 大小:559.71KB
基于ARM的语音录放系统的设计.docx
《基于ARM的语音录放系统的设计.docx》由会员分享,可在线阅读,更多相关《基于ARM的语音录放系统的设计.docx(26页珍藏版)》请在冰豆网上搜索。
基于ARM的语音录放系统的设计
1引言…………………………………………………………………………………1
1.1课题背景…………………………………………………………………1
1.2课程设计目的………………………………………………………………1
1.3课程设计意义………………………………………………………………2
1.4系统功能说明………………………………………………………………2
2系统模块设计………………………………………………………………………3
2.1系统工作原理………………………………………………………………3
2.2系统模块设计………………………………………………………………3
3系统模块介绍……………………………………………………………………4
3.1ARM控制模块………………………………………………………4
3.2语音芯片ISD4004…………………………………………………6
4系统调试…………………………………………………………………………9
4.1硬件调试…………………………………………………………………9
4.2软件调试……………………………………………………………………9
4.3系统设计流程……………………………………………………………11
5试验结果…………………………………………………………………………13
结束语………………………………………………………………………………14
致谢…………………………………………………………………………………15
参考文献……………………………………………………………………………16
附录…………………………………………………………………………………17
1引言
1.1课题背景
开发在生活和生产的各个领域中,凡是有自动控制要求的地方都会有单片机的身影出现;然而随着时代的进步与发展,如今普通的8位单片机已经无法满足需求,因为其资源有限,而且系统时钟速度慢,导致许多问题无法及时解决,加之内部的储存容量很小使得在编写程序时不得不考“精简”。
现在ARM的应用已经越来越普及,因为它的高性能使之得到很多人的青睐,因此选用ARM来作为控制器。
ARM的应用有利于产品的微型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。
但是,对于ARM的应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于ARM的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用ARM通过软件(编程序)方法实现了。
这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着ARM应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
高档的ARM芯片还能建立操作系统平台,使之更加强大。
具有很强的实时性和完美的人机界面,同时其软硬件可以根据需要进行裁剪,具有很强的灵活性。
1.2课程设计目的
传统的语音录放需要经过如下过程:
语音信号经过设备接受后转化为模拟电信号,通过前置放大器把语音信号放大,通过带通滤波之后,去掉多余的干扰,再经过自动增益控制和A压缩电路净化输入的模拟电信号,而后经A/I)转换器转换为数字信号,由控制器对其进行处理和存储,之后再由D/A转换为模拟信号,达到放音的目的。
本文采用了ISD公司的新产品ISD4004语音芯片,该芯片自带A/1)转换和压缩功能,直接把声音信号存储在芯片内的闪存寄存器中,无需电源即可保存数据长达100年,重复记录100000次以上,8.0kHz采样录音可达8分钟。
通过AT89C51对其控制,达到系统的设计目的。
在语音芯片的前端加一个前置放大电路,用于声音信号的输入,在输出端加一个LM386的功率放大器增强声音输出信号。
1.3课程设计意义
本课题开发意义在于它能用于实时监听、信息提示,会议记录,站名广播等,能够省去听众现场记录,节约笔墨纸张,可使听众专心听讲,可按设定时间功能自动播放提示预警信息。
对于消费者,也有较大的吸引力。
1.4系统功能说明
(1)本电路采用S3C44B0X这款ARM7芯片作为控制器。
(2)ISD4004语音芯片自带存储空间,能录放8-16分钟。
(3)当按下按键1时进行录音操作,当按下按键2时进行放音操作,按下按键3时进行取消当前操作。
(4)该语音电路产品,具有音色自然、使用方便、单片存储、反复录放、扩展容易、功耗低微、不怕断电等许多特点,通过扩展外部设备,基于ISD4004的语音产品在通信导航设计、智能仪器仪表、治安报警系统、自动售货机、电子地图、电子导游机、车载信息终端语音播报、公共汽车语音报站器、电磁报层背景音乐播放系统、语音讲解仪、电话自动应答系统、便携式语音记录装置、电子词典、语言复读机、语言音乐教学仪、智能玩具、高档电子礼品等许多领域,都有着极其广泛的应用。
2系统模块设计
本系统设计分为系统模块设计、方案选择及论证、系统组成原理。
各个模块分别实现了系统的软硬件的搭配。
下面分别介绍各个设计及原理论证。
2.1系统工作原理
系统上电后,按下相应的按键后能实现录音、播放、停止等功能,而且掉电后能保存语音信息不丢失,能够非常真实、自然地再现语音、音乐、音调和效果声,而且操作简易。
2.2系统模块设计
本系统的设计主要由以下几个模块构成:
ARM控制电路,语音芯片,录音电路,语音输出与控制等五个模块。
见图2.1所示
A
R
M
控
制
模
块
录音及控制电路
语音芯片
播放及控制电路
键盘控制电路
图2.1系统模块图
3系统模块介绍
3.1ARM控制模块
Samsung公司推出的16/32位RISC处理器S3C44B0X为手持设备和一般类型应用提供了高性价比和高性能的微控制器解决方案。
为了降低成本,S3C44B0X提供了丰富的内置部件,包括:
8KBcache,内部SRAM,LCD控制器,带自动握手的2通道UART,4通道DMA,系统管理器(片选逻辑,FP/EDO/SDRAM控制器),代用PWM功能的5通道定制器,I/O端口,RTC,8通道10位ADC,IIC-BUS接口,IIS-BUS接口,同步SIO接口和PLL倍频器。
S3C44B0X采用了ARM7TDMI内核,0.25um工艺的CMOS标准宏单元和存储编译器。
它的低功耗精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。
同样S3C44B0X还采用了一种新的总线结构,即SAMBAII(三星ARMCPU嵌入式微处理器总线结构)。
S3C44B0X的杰出特性是它的CPU核,是由ARM公司设计的16/32位ARM7TDMIRISC处理器(66MHZ)。
ARM7TDMI体系结构的特点是它集成了Thumb代码压缩器,片上的ICE断点调试支持,和一个32位的硬件乘法器。
S3C44B0X通过提供全面的、通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置,从而最小化系统的成本。
2.5VARM7TDMI内核,带有8K高速缓存器(SAMBAII总线体系结构,主频高至66MHz)。
该控制器有如下特点:
●外部存储器控制器(FP/EDO/SDRAM控制,片选逻辑);
●LCD控制器(最大支持256色STN,LCD具有专用DMA);
●2通道通用DMA、2通道外设DMA并具有外部请求引脚;
●2通道UART带有握手协议(支持IrDA1.0,具有16-byteFIFO)/1通道SIO;
●1通道多主IIC-BUS控制器;
●1通道IIS-BUS控制器;
●5个PWM定时器和1通道内部定时器;
●看门狗定时器;
●71个通用I/O口/8通道外部中断源;
●功耗控制:
具有普通,慢速,空闲和停止模式;
●通道10位ADC;
●具有日历功能的RTC;
●具有PLL的片上时钟发生器。
S3C44B0X最小系统电路框图如下图3.1所示。
A
R
M
控
制
器
复位电路
振荡电路路路
输入输出设备
电源
图3.1S3C44B0X最小系统电路框图
电源部分如下图3.2所示。
图3.2电源电路图
振荡电路部分如下图3.3所示。
图3.3振荡电路
复位电路如下图3.4所示。
图3.4复位电路图
3.2语音芯片ISD4004
ISD4004系列语音芯片工作电压为3V,单片录放时间8至16分钟,音质好,适用于移动电话及其他便携式电子产品中。
芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。
芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPIMicrowire)送入。
芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。
采样频率可为4.0,5.3,6.4,8.0kHz,频率越低,而音质则有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。
ISD4004语音芯片采用CMOS技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等如图1所示。
因此只需很少的外围器件就可构成一个完整的声音录放系统。
芯片设计是基于所有操作由微控制器控制,操作命令通过串行通信接口(sP1或Micmwire)送入。
采样频率可为4.0Hz、5.3Hz、6.4Hz、8.0kHz,频率越低,录放时间越长,而音质则有所下降。
器件工作电压3V,工作电流25-30mA,维持电流1,单片录放语音时间8~16min,音质好,适用于移动电话机及其它便携式电子产品中。
●内置微控制器串行通信接口
●3V单电源工作
●多段信息处理
●工作电流25-30mA,维持电流1μA
●不耗电信息保存100年(典型值)
●高质量、自然的语音还原技术
●10万次录音周期(典型值)
●片内免调整时钟,可选用外部时钟
●语音芯片ISD4004语音芯片图ISD4004如下图3.5所示。
图3.5ISD4004芯片图
键盘控制模块如下图3.6所示。
图3.6键盘控制电路
录音&播放电路如下图3.7所示。
图3.7录音与播放电路
4系统调试
4.1硬件调试
焊接好所有电路后,先进行硬件电路的调试。
下载程序到RAM功能,要使用外接的RAM,需要参照ARM的寄存器说明,设置RAM的基地址,总线宽度,访问速度等等。
有的SOC则还需要Remap,才能正常工作。
运行Firmware时,这些设置由Firmware的初始化程序完成。
但如果使用JTAG接口,相关的寄存器可能还处在上电值,甚至时错误值,RAM不能正常工作,所以下载必然要失败。
要正常使用,先要想办法设置RAM。
在ADW中,可以在Console窗口通过Let命令设置,在AXD中可以在Console窗口通过Set命令设置。
下面是一个设置S3C44B0X的命令序列,关闭中断,设置CS0-CS3,并进行Remap,适用于AXD(ADS带的Debug)
setmem0xfffff124,0xFFFFFFFF,32---关闭所有中断
setmem0xffe00000,0x0100253d,32---设置CS0
setmem0xffe00004,0x02002021,32---设置CS1
setmem0xffe00008,0x0300253d,32---设置CS2
setmem0xffe0000C,0x0400253d,32---设置CS3
setmem0xffe00020,1,32---Remap
如果要在ADW(SDT带的DEBUG)中使用,则要改为:
let0xfffff124=0xFFFFFFFF---关闭所有中断
let0xffe00000=0x0100253d---设置CS0
let0xffe00004=0x02002021---设置CS1
let0xffe00008=0x0300253d---设置CS2
let0xffe0000C=0x0400253d---设置CS3
let0xffe00020=1---Remap
为了方便使用,可以将上述命令保存为一个文件config.ini,在Console窗口输入obconfig.ini即可执行。
4.2软件调试
(1)系统调试工具ADS1.2
ARMADS全称为ARMDeveloperSuite。
是ARM公司推出的新一代ARM集成开发工具。
现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。
它除了可以安装在WindowsNT4,Windows2000,Windows98和Windows95操作系统下,还支持WindowsXP和WindowsMe操作系统。
ADS由命令行开发工具,ARM时实库,GUI开发环境(CodeWarrior和AXD),实用程序和支持软件组成。
有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序.
在ADS集成开发环境中,点File->New,在显示窗口中选择ARMExcuteableImage,填写所建工程的名字,然后再添加所选择的文件进行编译,在编译前点击,点Edit菜单,选择“DebugRelSetting…”,将RO地址设置为0x0c008000,输出文件设为二进制文件。
(2)下载程序
下载程序可以使用串口、网线、JTAG线等几种方式,但是其中由于串口传送速度比较慢而且操作起来比较复杂,推荐使用网线来下载程序。
现在简单介绍这几种下载程序的具体方法。
下面先介绍使用串口下载程序:
在超级终端下,输入:
loadb0x0c008000,按下回车,
0x0c000000——0x0c6fffff:
用户装载和使用区;
0x0c700000——0X0c7fffff:
ARMBOOT的只读区,引导完后可以用。
点发送文件,选择kermit方式发送要调试的BIN文件,界面如下图4.1所示。
图4.1串口下载程序图
发送完后会显示起始地址,再运行go0x0c008000(起始地址)就可以了。
下面再介绍用网线来下载程序。
先运行T文件出现如下图4.2所示。
图4.2网线下载程序图
选择好要下载的文件所在的目录。
注意IP地址要和ARM板上的一样,可以改PC的,可以改板子的,也可以改ARMBOOT的,怎样改,在参数设置里会说的。
文件名称也在参数设置里设置。
配置好后把它缩进任务栏(不可关闭!
!
!
)。
运行T(不输入地址就取默认地址0X0C008000)
装载成功后输入GO0X0C008000就可以运行。
4.3系统设计流程
当硬件调试和软件调试都通过后就可以进行统调了,将程序下载到ARM片子后,按下相应的按键,检查是否能实现相应的功能,并对程序进行进一步的修改和完善使其更有效。
程序包括主程序和中断子程序两部分。
S3C44B0X提供了按键操作和ISD4004所需接的IO口。
它接收击键功作,并将相应指令传给ISD4004,同时监控ISD4004的中断输出。
基于上述硬件原理图和相关分析,软件部分的主要任务是完成对按键进行相应的功能设置,语音服务的软件实现以及适时的语音录放。
软件流程如下图4.3所示。
图4.3软件流程图
5试验结果
由于按键是采用中断方式来进行判断的,因此程序处理过程会复杂些,但是效果却比查询方式要好。
在调试过程中,发现由于去抖动处理不太好,会出现按一次建却出现多次触发,后来经过处理后,基本上不会出现类似情况。
经过多次修改程序后,现在基本上能实现语音功能,按下按键后能实现相应的功能。
但是需要改成的地方是语音播放处理,使其变得更加清晰,使其功能更加完善能提示录放的时间与日期,能定点播放。
该语音电路产品,具有音色自然、使用方便、单片存储、反复录放、扩展容易、功耗低微、不怕断电等许多特点,通过扩展外部设备,基于ISD4004的语音产品在通信导航设计、智能仪器仪表、治安报警系统、自动售货机、电子地图、电子导游机、车载信息终端语音播报、公共汽车语音报站器、电磁报层背景音乐播放系统、语音讲解仪、电话自动应答系统、便携式语音记录装置、电子词典、语言复读机、语言音乐教学仪、智能玩具、高档电子礼品等许多领域,都有着极其广泛的应用。
结束语
本文通过对ISD4004语音芯片在语音报站器中的一个实际应用的简单介绍,使读者熟悉了1SD4004的基本应用。
同时本文介绍的报站器电路已经经过上机实验调试,能够可靠稳定工作。
通过实验验证该语音录放系统录音和放音效果良好,单片机控制相当准确。
结合了微处理器控制技术,实现对语音信息的录入和播放的准确控制,克服了原手工录音的种种弊端,极大地提高录音的质量和效率。
在应用方面,将该系统作为一个模块可与其他功能电路集成,实现各种功能复杂的语音系统,如电脑语音钟、手机话费查询系统、排队机、监控系统语音报警及公共汽车报站器等,具有一定的实用价值。
致谢
我要感谢所有曾经在学习上和生活中给予过我帮助的老师和同学们。
尤其要感谢我的指导老师邓斌老师,在本次课程设计中,我从邓斌老师身上学到了很多东西。
他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。
无论在理论上还是在实践中,他都给与我很大的帮助,使我学到以前在书本上所学不到的知识,这对于我以后的工作和学习都有一种巨大的帮助。
学校在这方面也给我们提供了很大的支持和帮助,学校以及学院领导也比较重视,定期关心设计进展,为设计提供较大的方便,同时为每个设计小组配有专门的指导老师,帮助我们能顺利完成整个设计。
对于学校和老师为我的课程设计所提供的极大帮助和关心,在此我表示衷心的感谢!
参考文献
[1]杜春雷,ARM体系结构与编程[M],清华大学出版社,2003年,6月.
[2]R.Rajsuman,SOC设计与测试[M],北京航空航天大学出版社,2003年,7月.
[3]詹荣开,GCC中文手册[M],电力出版社,2001年,3月.
[4]何立民,嵌入式系统的定义与发展历史[M],机械出版社,2005年,6月.
[5]高洪亮、张国忠、杨杰,基于ISD4004的电梯语音系统设计[J],电子技术2005,9月.
[6]张常年:
ISD4004语音芯片的工作原理及智能控制系统中的应用[J].电子元件与材料,2001,6月.
附录:
基于ARM的语音录放系统的设计与实现源程序代码
系统的软件和硬件是实现系统功能的两大组成部分。
这两部分缺一不可。
软件程序使单片机能够很好地控制各个模块中的器件。
下面介绍系统中各个模块的程序设计。
该程序实现了语音录放的功能,按下按键一时执行停止操作,按下按键二时执行录音操作,按下按键三时执行播放操作,并且通过串口显示当前操作信息并提供调试信息。
主程序:
#include"..\inc\uTypes.h"
#include"..\inc\44b0x.h"
#include"..\inc\console.h"
#include"..\inc\sysUtils.h"
voidIoConfig(void);
voidKeyLedTest(void);
voidplay(void);
voidrec(void);
voidstop(void);
voidDelay(unsignedinta);
U32addr;
U32pIrqStart=0;
U32pIrqFinish=0;
U32pIrqHandler=0;
U32g_pTopOfROM=0;
U32g_pBaseOfROM=0;
U32g_pBaseOfBSS=0;
U32g_pBaseOfZero=0;
U32g_pEndOfBSS=0;
externU32GetBaseOfROM(void);
externU32GetEndOfROM(void);
externU32GetBaseOfBSS(void);
externU32GetBaseOfZero(void);
externU32GetEndOfBSS(void);
intmain(void)
{addr=0x05;
sysUtilsSetPllValue(24,6,1);
IoConfig();
console_init(115200);
printf("\n\nITSN-44B0boardTestprogrameversion1.0.\n\n");
sysUtilsLightLed(LED_ALL,FALSE);
g_pTopOfROM=GetEndOfROM();
g_pBaseOfROM=GetBaseOfROM();
g_pBaseOfBSS=GetBaseOfBSS();
g_pBaseOfZero=GetBaseOfZero();
g_pEndOfBSS=GetEndOfBSS();
KeyLedTest();
return0;
}
voidIoConfig(void)
{
rPCONA=0x1ff;
rPDATB=0x04f;
rPCONB=0x3cf;
rPDATC=0x0000;//AllIOislow
rPCONC=0x5f555555;
rPUPC=0x3000;//PULLUPRESISTORshouldbeenabledtoI/O
rPDATD=0x55;
rPCOND=0xaaaa;
rPUPD=0x00;
rPDATE=0x1cf;//Beep=10
rPCONE=0x596b;
rPUPE=0x26;
rPDATF=0x0;
rPCONF=0x24900a;
rPUPF=0x1d3;
rPDATG=0xff;
rPCONG=0x0000;
rPUPG=0x00;//shouldbeenabled
rSPUCR=0x4;//0x7;//D15-D0pull-updisable
//rSPUCR=0x6;//D15-D0pull-upenable
rSYSCFG=0x0e;//使用8K字节的指令缓存,writebufferdisable
rNCACHBE0=0xc0002000;//定义非Cache区,从0x2000000到0xbffffff,中断时进入ROM,若不允许CACHE不正常
rEXTINT=0x0;//所有的外部硬件中断为低电平触发
}
void
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 语音 录放 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)