语音提示器电路设计汇总Word格式.docx
《语音提示器电路设计汇总Word格式.docx》由会员分享,可在线阅读,更多相关《语音提示器电路设计汇总Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
![语音提示器电路设计汇总Word格式.docx](https://file1.bdocx.com/fileroot1/2022-12/7/59b51d62-e4f0-4c6f-b1fe-6011b0cabd1f/59b51d62-e4f0-4c6f-b1fe-6011b0cabd1f1.gif)
这个量具的基本单位是原子时秒,即铯原子基态的两个超精细能级间在零磁场下跃迁辐射9,192,631,770周所持续的时间。
然而这个“终极装置”过于精确,以至于只能适用于理论科学上,世界上绝大多数人对此仅仅是了解而已。
而且这个标准在相当一段时间内不会应用到定时器上。
无论是沙漏、水漏,还是机械钟、电子钟,这些装置都是定时器的前身。
近代战争时期,科技迅速发展,军队需要定点、定时地对敌人进行打击,完成任务。
于是人们将定时器用在了军事方面,制成了定时炸弹,定时雷管。
这种武器可以得到出敌不被、意想不到的打击效果,而定时器的功能却因此深入人心。
在我看来,“定时炸弹”却是用来解释定时器的最好方式:
规定的时限一到,即被触发!
定时器的出现确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。
到了现在,为了满足人们日常生活中更多的需求,定时器开始走入了普通家庭。
不少家用电器都安装了定时器来控制开关或工作时间,像洗衣机的定时搅拌、微波炉的定时烘烤、空调机和电冰箱的定时供冷以及电视机和PC机的定时关机等等,这些功能使人们的生活愈发简单、便捷了许多。
1.核心部件和开发平台
1.1凌阳SPCE061A单片机简介
1.1.1SPCE061A模块结构
随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。
进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。
随着单片机集成的发展,其应用领域的不断扩展台湾凌阳科技公司推出的一种新型16位单片机SPCE061A。
该单片机的问世,使得16位单片机的科技含量及应用跃上一个新的台阶。
SPCE061A是一款16位结构的微控制器,其结构和组成概览如图1-1、图1-2所示。
SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。
图1-2SPCE061结构框图
Fig.1-2TheBlockDiagramofSPCE061A
1.1.2芯片管脚排列及功能
芯片管脚排列如图1-3所示,管脚功能如列表1-1所示。
表1-1SPCE061A管脚功能表
Tab1-1ThePinFunctionTableofSPCE061A
IOA0~IOA15(41~48,53~60)
I/OA口,16个
IOB0~IOB15(5~1,81~76,68~64)
I/OB口,16个
OSCI13
振荡器输入,采用石英晶振时,接晶振
OSCO12
振荡器输出,采用石英晶振时,接晶振
RES-B6
复位信号输入端,低电平有效
ICE-EN16
ICE使能端,接在线调试器PROBE的使能脚ICE-EN
ICE-CLK17
ICE时钟端,接在线调试器PROBE的使能脚ICE-CLK
ICE-SDA18
ICE数据端,接在线调试器PROBE的使能脚ICE-SDA
PVIN20
程序保密设定电源输入脚
PFUSE29
程序保密设定输入脚
DAC121
音频输出通道1
DAC222
音频输出通道2
VREF223
2V参考电压输出脚
AGC25
语音输入自动增益控制引脚
OPI26
Microphone第二级运放输入脚
MICOUT27
Microphone第二级运放输出脚
MICN28
Microphone正向输入脚
MICP33
Microphone负向输入脚
VRT35
A/D转换参考电压输入脚
VCM34
ADC参考电压输出脚
VMIC37
Microphone电源
SLEEP63
睡眠状态指示,当CPU进入睡眠状态时,输出高电平
VCP8
锁相环压控振荡器阻容输入端
XROMTPVPPXTEST61.69.14
出厂测试用管脚,使用时悬空即可
VDDH51.52.75
I/O电平参考电压输入端,当输入参考电压为5V/3.3V时,I/O输入、输出高电平为5V/3.3V
VDD7
琐相环PLL电源
VSS9
琐相环PLL地
VSS19.24
模拟信号地
VSS38.49.50.62
数字信号地
VDD15.36
数字信号电源
1.1.3SPCE061A特点
凌阳单片机有以下特点[1]:
(1)体积小、集成度高、可靠性好且易于扩展在SPCE061A把各功能部件模块化地集成在1个芯片里,内部采用总线结构,因而减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力。
另外,模块化的结构易于系列扩展,以适应不同用户的需求;
(2)低功耗、低电压SPCE061A采用CMOS制造工艺,同时增加了软件激发的弱振方式、空闲方式和掉电方式,极大地降低了其功耗。
另外,SPCE061A的工作电压范围大(2.6~3.6V),能在低电压时正常工作,且能用电池供电。
这对于其在野外作业等领域中的应用具有特殊的意义;
(3)高性能价格比SPCE061A片内带有高寻址能力的ROM、静态RAM和多功能的I/O口。
另外,凌阳科技CPU的指令系统提供出具有较高运算速度的16位×
16位的乘法运算指令和内积运算指令,使得SPCE061A运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价;
(4)具有较强的中断处理能力SPCE061A中断系统支持10个中断向量及10余个中断源,适合实时应用领域;
(5)功能强、效率高的指令系统SPCE061A的指令系统,指令格式紧凑,执行迅速。
为缩短开发产品商品化的时间,指令结构提供出对高级语言的良好支持。
1.1.4SPCE061A的应用
随着单片机功能集成的发展,其应用领域也逐渐地由传统的控制扩展为控制处理、数据处理以及DSP等领域,凌阳科技的16位单片机SPCE061A就是为此而设计的。
SPCE061A的全双工异步通讯的串行接口,可实现多机通讯,组成了分布式控制系统。
A/D、D/A转换接口与CPU的DSP运算功能结合在一起,可实现语音识别功能,使其方便地运用于数字声音和语音识别应用领域。
具体在下列应用领域大有用武之地:
语音识别类产品、智能语音交互式玩具、高级亦教亦乐类玩具、儿童电子故事书类产品、通用语音合成器类产品、需较长语音持续时间类产品等。
1.2集成开发环境IDE
凌阳科技将软件编译、链接以及下载SPCE061A程序代码的各种工具集成在一个Windows操作系统下,做成了一个功能强大的集成开发环境μ'
nSPTMIDE(integrateddevelopmentenvironment)。
μ'
nSPTMIDE在Windows环境下操作,支持C语言和汇编语音,集编译、编程、链接、调试和仿真为一体,且集成开发环境IDE具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使编程、调试操作更加方便且高效。
此外,它的软件仿真功能可以在不连接仿真板的情况下模拟硬件的各项功能来调试程序。
nSPTMIDE具有项目管理功能。
它能为用户建立一个项目文件,里面可以包含不同的元组和文件,提供用户程序及资源文档的编辑和管理,并提供环境要素的设置途径,为用户最后的程序及库的编制(包括编译、汇编以及链接等)提供了一个良好的调试环境。
nSPTMIDE对项目进行了编制后,还能对程序进行无误及优化处理。
用户程序中的语法错误通过编译而排除后,便可借助μ'
nSPTMIDE的集成调试器来运行、调试程序,从而查找出程序中存在的逻辑错误。
在调试器中用户能够以连续、单步及断点等运行方式来运行程序,并借助一些调试窗口来查看变量、寄存器及内存等,以观察或了解程序运行的各个细节、判断程序的正误。
[2]
2.系统总体方案设计
2.1定时器的工作原理
定时器是单片机系统中最基本、最常用的部件之一。
在单片机中,定时器其实充当了闹钟的角色,用来精确的确定某一时间间隔。
定时器的出现使我们拥有了既可精确计时,又能及时提醒的“闹钟”,这就大大简化了单片机编程设计。
定时器中包含一个计数部件,CPU每隔一定时间自动向这个计数部件发出一个信号,使它的数值加1(或减1)。
计数部件可以记录的最大数值时有限的,例如,一个8位的定时器,其最大的计数值是255,如果计数达到了最大值,当CPU再次发出计数信号时,计数将会发生溢出,从最大值变回0(也可以通过设置使其溢出后变成一个非0的数)。
由于计数的过程是CPU自动控制的,无需程序的干预,因此只需设定一个计数频率(也就是设置CPU每隔多长时间发出一个计数信号),就可以根据计数值来判断和控制某段过程的执行时间了[6]。
SPCE061A提供了两个16位的定时器:
TimerA和TimerB,它们也可以作为计数器使用。
它们的计数部件可以记录的最大数值时65535。
这两个定时器的使用方法非常简单,只需对单片机中的几个寄存器进行控制就可以了。
两个定时器可以分别设置工作状态而互不影响。
其中,TimerA为通常计数器;
TimerB为多功能计数器。
TimerA的时钟源由时钟源A和时钟源B进行“与”操作而形成;
TimerB的时钟源仅为时钟源A[1]。
定时器发生溢出后会产生一个溢出信号。
一方面,它会作为定时器中断信号传输给CPU中断系统;
另一方面,它又会作为4位计数器计数的时钟源信号,输出一个具有4位可调的脉宽调制占空比输出信号APWMO或者BPWMO(分别从IOB8和IOB9输出),并来控制马达或者其他一些设备的速度。
此外,定时器溢出信号还可以用于触发ADC输入的自动转换过程和DAC输出的数据锁存。
2.2系统方案论证
方案一:
采用目前比较通用的MCS-51单片机。
此单片机的运算能力强,软件编程灵活,自由度大。
虽然该系统采用单片机为核心,能够实现对外围电路的智能控制,但需要外扩RAM、ROM组成基本处理系统,外加专门的语音芯片构成语音输出电路,同时由于端口资源的限制,必须扩展接口(这里采用8255芯片实现),这就使得整个系统硬件电路变得复杂。
整个系统如图2-1所示:
图2-1采用MCS-51的系统图
Fig2-1TheSystemofMCS-51
方案二:
采用MCS-51单片机扩展方案虽然能够实现所要求的功能,但是系统较为复杂,给开发带来很多麻烦,可采用集成的实现方案。
凌阳单片机可以实现语音播放,在软件以及硬件上是非常有特点的。
首先是硬件方面,SPCE061A内部具有一个16*16的硬件乘法器,可以直接用来做乘积运算;
而软件方面提供了S480\A2000\S240等函数库,可以有效的处理语音数据,在失真不大的情况下,将运算量降到最小。
综上两方面,凌阳的SPCE061A可以很好的完成语音播放以及录音的功能。
另外,SPCE061A还内置有在线仿真接口,这为编程及在线调试提供了方便的条件。
而且该芯片性价比很高,其内部置有16位乘法器、内积滤波运算等功能,其价格却只有8位单片机的价格,因此此芯片具有开发成本较低的优势。
同时,凌阳音频还很有特色,有自己的语音格式,压缩比最大可达80:
15。
目前,较常用的音频格式有[5]:
表2-1音频格式列表
Tab.2-1TheTableofAudioFormat
模块名称
语音压缩编码率类型
资料采样率
SACM_A2000
16Kbit/s,20Kbit/s,24Kbit/s
16KHz
SACM_S480/S720
4.8Kbit/s,7.2Kbit/s
SACM_S240
2.4Kbit/s
24KHz
SACM_MS01
音乐合成(16Kbit/s,20Kbit/s,24Kbit/s)
SACM_DVR
(A2000)
16Kbit/s的资料率,8K的采样率,用于ADC信道录音功能
采用SPCE061A实现本设计的功能在原理上讲非常简单,就是通过SPCE061A自带的A/D、D/A转换。
首先通过A/D采集语音信号进来,通过软硬件压缩为数据存在芯片内部的FLASH上,然后同样通过软硬件解压缩该数据,再通过D/A转换为模拟信号,通过喇叭就播放出来了。
采用SPCE061A的方案如图2-2所示:
图2-2采用SPCE061A的系统图
Fig2-2TheSystemofSPCE061A
鉴于上面的分析考虑,我们采用方案二。
2.3系统硬件的组成
2.3.1语音系统设计思路
凌阳SPCE061A是16位DSP特色单片机,有很强的信息处理能力,具备运算速度高等优势。
这为语音的录取、播放、合成及辨识提供了良好条件,所以采用SPCE061A可以方便的实现语音的录放。
该单片机内置有2路DA转换,8路AD转换及在线仿真等丰富的功能。
其中AD转换为音频转化通道,并且内置有自动增益电路。
这为实现语音录入提供了方便的硬件条件。
2路10位精度的DA,只需要外接功放即可完成语音的播放。
此外,凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。
在此环境中,支持标准的C语言,可以实现C语言与凌阳汇编语言的相互调用。
并且提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件的开发提供了方便的条件。
2.3.2语音系统的硬件电路组成
语音录放系统以凌阳16位单片机为核心,外接一个电源和一个扬声器组成。
由SPCE061A的I/O口完成地址线、数据线和控制线扩展功能。
硬件连接框图见图2-3所示:
图2-3语音系统硬件组成
Fig2-3TheHardwareComponentsofVoiceSystem
其中,键盘输入部分使用三个按键,用于设置定时时间和控制语音的录制与播放;
电源部分使用3节5号电池供电,由J10端口接入;
音频录制部分主要是用于语音的录取;
音频播放部分用于播放语音。
2.3.3SPCE061A最小系统
SPCE061A最小系统包括SPCE061A芯片及外围的基本模块,其中外围的基本模块包括:
晶振输入模块、锁相环外围电路、复位电路、指示灯等,如图2-4所示:
图2-4SPCE061A最小系统电路图
Fig.2-4TheMinimumSystemCircuitDiagramofSPCE061A
2.3.4电源模块
SPCE061A采用3节5号电池供电,由J10端口接入。
其电路如图2-5所示,其中SPCE061的内核供电为3.3V,而I/O端口的电压可以选择3.3V也可以选择5V。
所以,在板子上具有两种工作电压:
5V和3.3V。
对应的引脚中15、36和7必须是3.3V,对于I/O端口的电压51、52、75可以使3.3V也可以是5V,在电源模块中有一个端口电平选择跳线,这两种电平的选择通过跳线J5来选择。
如图中的J5。
图2-5电源电路图
Fig.2-5ThePowerCircuit
2.3.5音频输出模块
SPCE061A有8个10位模数转换通道,其中7个通道用于将模拟量信号转换为数字量信号,可能直接通过引线(IOA[0~6])输入。
另外有一个通道只作为语音输入通道,通过内置有自动增益控制放大器的麦克风通道(MICIN)输入。
实际上可以把ADC看作是一个实现模数信号转换的编码器。
SPCE061A为音频输出提供了2个10位的数模转换器,即DAC1和DAC2。
DAC1,DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出。
音频输出部分原理图如图2-6所示,可以直接接听喇叭输出的声音。
其中SPY0030是凌阳公司开发的专门用于语音放大的芯片。
芯片将声音处理后输出,经SPY0030音频放大输出,通过扬声器还原为声音。
图2-6音频输出电路图
Fig.2-6TheCircuitofAuditOutput
SPCE061A内置2路10位DAC,只需要外接功放电路即可完成语音的播放。
可以接耳机也可以直接听喇叭输出的声音。
2.4系统软件设计
由于使用了凌阳SPCE061A单片机,使得外围电路变得简单。
硬件电路确定后,根据硬件电路的特点和结构,设计并编写相应程序。
同硬件设计一样,软件设计也是分块进行的。
整个程序主要包括以下部分的程序:
主程序、键盘扫描程序、语音录制程序以及语音播放程序等部分。
各部分程序由主程序调用,组成一个整体。
2.4.1主程序设计
程序按照模块化设计,所有功能可通过调用子程序来由主程序实现,主程序流程图如图2-7所示:
图2-7主程序流程图
Fig.2-7TheFlowchartofMainProgram
2.4.2键盘扫描程序
由于机械触点的弹性作用,在键被按下或弹起时会出现电压抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间。
为保证键识别的准确,必须进行去抖动处理,去抖动有硬件和软件两种方法硬件方法就是加去抖动电路,从根本上避免抖动;
软件方法有很多种,本例中主要是利用主程序的循环扫描,主程序循环一次,扫描一次按键,当连续N次扫描到的键值都一样时,则说明是稳定的按键值。
键盘扫描程序流程图如图2-8所示:
图2-8键盘扫描程序流程图
Fig.2-8TheDiagramofScannerKeyboard
2.4.3语音录制程序设计
凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,具备运算速度高等优势,这些无疑为语音的录制和播放提供了条件。
SPCE061A的A/D转换器有8个通道,其中有1个通道是MIC-IN输入,它专门用于对语音信号进行采样。
语音信号经MIC转换成电信号,由隔直电容隔掉直流成分,然后输入至SPCE061A内部前置放大器。
SPCE061A内部自动增益控制电路AGC能随时跟踪、见识监视前置放大器输出的音频信号电平,当输入信号增大时,AGC电路自动减小放大器的增益;
当输入信号减小时,AGC电路自动增大放大器的增益,以便使进入A/D的信号保持在最佳电平,又可使削波减至最小。
A/D转换器对输入的音频信号进行8kHz采样,并按照凌阳音频编码格式进行编码,每秒将占用16kbits的存储器空间。
系统扩张了一块电量为1Mbits的SRAM存储器HM628128A来存储语音数据。
语音录制存储的流程主要包括以下几个方面:
(1)语音采样:
在定时中断的控制下,以一定的速率(8kHz)进行A/D转换;
(2)压缩编码:
将采集到的数据以某种算法压缩编码;
(3)存储:
将编码后的数据保存到存储介质中。
语音录制存储流程如图2-9所示:
图2-9语音录制流程图
Fig.2-9TheDiagramofVoiceRecording
2.4.4语音播报程序设计
语音播放的流程主要包括以下几个过程:
(1)数据提取:
语音数据送入解压缩队列;
(2)数据解码:
解压缩数据并送入输出队列;
(3)转换为模拟信号:
在定时中断的控制下进行数模转换;
(4)转换为声音:
模拟信号经滤波、放大,通过扬声器输出。
语音播放流程如图2-10所示:
图2-10语音播放流程图
Fig.2-10TheDiagramofVoicePlaying
语音录放程序见附录。
3.系统调试
3.1调试方法
调试的主要过程包括:
(1)系统硬件电路的诊断和检查;
(2)程序的输入与修改;
(3)硬件电路、程序的运行与调试;
(4)程序固化到EPROM中。
3.1.1硬件调试
硬件调试是利用开发系统、基本测试仪器(万用表、示波器等),通过执行开发系统有关命令或运行适当的测试程序(也可以是与硬件有关的用户程序段),检查用户系统硬件工作是否正常。
硬件调试可分静态调式与动态调试两步进行。
1)静态调试
静态调试是在用户系统未加电工作时的一种硬件检查。
具体步骤如下:
(1)目测。
主要是检查印刷电路板上的印制线是否有断线、有无毛刺、是否与其它线或焊盘粘连、焊盘有无脱落、金属化过孔是否连通等。
(2)万用表检测。
主要是检查他们的通断状态是否与设计相符,再检查各种电源线与地线之间是否有短路现象,仔细检查并排除。