《基于ISD4004芯片的语音录放系统设计word格式.doc》由会员分享,可在线阅读,更多相关《基于ISD4004芯片的语音录放系统设计word格式.doc(30页珍藏版)》请在三一办公上搜索。
1、基于单片机的语音录放器设计自动化081 孟新指导教师:孙新柱摘要:本文介绍了基于STC12C5A60S2单片机及ISD4004语音板为主要部件的语音录放电路的工作原理、硬件和软件的设计。ISD4004系列工作电压3V,单片录放时间8至16分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口SPI送入。论文概述了语音录放电路的原理,并且在介绍语音录放系统功能的基础上,提出了系统的总体构成。针对录放系统的录音、放音部分的总体设计方案进行了论证。进一步介绍了单片机AT89C52应用在系统中的应用,分析了系统各部分的硬件及软件实现。本
2、次设计目是完成一个简单方便,能可靠稳定工作的语音录放系统,该方案结构简单,控制可靠, 便于推广。关键词:ISD4004 AT89C52单片机 语音录放Abstract:This paper introduces ISD4004 based on STC12C5A60S2 single chip computer and of the main parts of speech plate as the working principle of voice recording circuit and the design of hardware and software. ISD4004 seri
3、es working voltage, monolithic 3V recording time 8 to 16 minutes, timbre, suitable for mobile phones and other portable electronics. Chip design is based on all the operation must by micro controller control, operation orders through serial communication interface SPI into. This paper summarizes the
4、 principle of voice recording circuit, and introduces the function of speech on the basis of recording system, puts forward the general structure of the system. Recording system for the recording, playback part of the overall design scheme is demonstrated. This paper introduces microcontroller AT89C
5、52 single applications in system, the application system were analyzed each part of hardware and software realization.This design is to complete a reliable and stable working voice recording circuit. The design is simple in structure, reliable control and facilitate promotion. Keyword: ISD4004;89C52
6、microcontroller;voice recording and playback目录引 言1第1章绪论21.1系统设计的意义21.2系统设计的目的21.3系统采用的实现方法3第2章 单片机控制技术和开发环境介绍42.1 STC12C5A60S2单片机性能和引脚介绍42.1.1 STC12C5A60S2系列单片机简介42.1.2 STC12C5A60S2主要性能参数42.1.3 STC12C5A60S2引脚52.2 keil开发环境和建立工程72.2.1 keil简介72.2.2 Keil工程建立72.3 ISD4004介绍102.3.1性能简述和引脚图102.3.2引脚描述102.4
7、SPI(串行外设接口)122.4.1协议介绍122.4.2 信息快进132.4.3上电顺序132.4.4 SPI端口的控制位142.4.5 SPI控制寄存器152.4.6时序15第3章系统总体设计173.1 硬件电路设计173.2软件设计203.2.1语音芯片的内部信息寻址机制203.2.2 监控ISD4004录音地址的实例213.2.3程序流程图21第4章 测试实例234.1 测试内容23参考文献25插图清单图2.1 STC12C5A60S2单片机引脚图6图2.2 选择单片机型号8图2.3 加入文件8图2.4 重复加入源程序得到的提示9图2.5 ISD4004引脚图10图2.6 时序11表2
8、.1 指令表14图2.7 各端口功能14表2.2 控制器功能15图2.8 SPI 端口15表2.3 SPI 时序参数16图3.1 电源与指示灯原理图17图3.2 按键和指示灯原理图18图3.3 单片机原理图18图3.4 音频输入原理图19图3.5 音频输出原理图19图3.6录放时序20图3.8 程序流程图22图4.1 实物图23引 言语音,作为一种典型的非平稳随机信号,是人类交流信息最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度了解语音。语音信号的研究可以从时域和频域两个方面进行。其中时域的分析处理有
9、两种方法:一是进行语音信号分析,这属于小型处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号,这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的范围,是对不确定信号分析的主要方法。随着计算机技术处理和信息技术的发展,语音交互已经成为人机交互的必要手段,而语音信号的采集处理是人机交互的前提和基础。声卡是计算机对语音信息进行加工的重要部件,它具有对信号滤波、放大、采样保持、A/D和D/A转换等功能。语音信号处理作为一个重要的研究领域
10、,已经有很长的研究历史。但是它的快速发展可以说是从1940年前后Dudley的声码器和Potter等人的可见语音开始的;20世纪60年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅里叶变换等成为语音信号数字处理的理论和技术基础;到了80年代,由于矢量量化、隐马尔克夫模型和人工神经网络等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。进入90年代以来,语音信号处理在实用化方面取得了许多实质性的进展。一方面,对声音语音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为
11、了语音识别使用化的需要,讲着自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题备受关注。第1章绪论1.1系统设计的意义语音不仅是人与人之间进行信息交流最直接、最方便和最有效的工具,而且也是人与机器之间进行通信的重要工具。1874年电话的发展可以认为是现代处理的开端。电话的理论基础是尽可能不失真地传送语音波形。这种“波形原则”几乎统治了其后整整一百年。1939年产生了一种概念全新的语音处理技术,这就是著名的通道声码器技术。声码器的理论基础是认为语音是由人的声带振动产生的生源(载波)受到运动的声道的控制(调制)而产生的,因而将载波和调制两部分分开来进行传送便可极大地压缩频带。这一概
12、念已经包含着其后出现的语音参数模型的基本思想。40年代后期,研制成功了能够把语音信号的时变谱用语音表示出来的仪器语音仪,为语音信号分析提供了一个有力的工具。对于语音信号,数字处理比模拟处理具有更多的优点。这是因为:第一,数字技术能够完成许多很复杂的信号处理工作;第二,通过语音进行交换的信息本质上具有离散的性质,因为语音可以看成是因素的组合,这就特别适合于数字处理;第三,数字系统具有高可靠性、价廉、紧凑、快速等特点,很容易完成实时处理任务;第四,数字语音适合于在强干扰通信中传输,易于和数据一起在通信网中传输,也易于进行加密传输。因此数字语音信号处理是主要研究方向。无论是人与人之间还是人与计算机之
13、间的语音通信,语音处理,特别是语音数字处理的理论和技术,具有特别重要的作用。单片机的应用无处不在,利用单片机控制语音的录放也多不胜举。用单片机控制语音芯片,再把单片机和语音芯片嵌入到通信设备,智能仪器,治安报警及儿童玩具中,就可做成语音播放的机器,应用范围广泛。用单片机控制语音芯片设计语音录放系统,该系统功能多,录放音音质好,外围电路简单。1.2系统设计的目的设计一个语音录放系统,可以应用于通讯设备、智能仪表、治安报亭、语音报站、报数报价、语音讲解、语音记录、语音复读、教学仪器、智能玩具、电子礼品等领域。要求放音质量好,用二极管显示工作状态。系统具有较强的抗干扰能力,便于安装和扩展。1.3系统
14、采用的实现方法设计硬件原理图,焊接语音模块,包括电压转换芯片,音频小功率放大器和ISD4004的连接.编写软件程序,利用单片机控制技术,实现录、放、停等操作。第2章 单片机控制技术和开发环境介绍2.1 STC12C5A60S2单片机性能和引脚介绍2.1.1 STC12C5A60S2系列单片机简介 STC12C5A60S2/AD/PWM 系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快812倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针
15、对电机控制,强干扰场合。2.1.2 STC12C5A60S2主要性能参数1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统80512.工作电压:STC12C5A60S2系列工作电压:5.5V- 3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V- 2.2V(3V单片机)3.工作频率范围:0 - 35MHz,相当于普通8051的 0420MHz4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节.5.片上集成1280字节RAM6.通用I/O口(36/40/44个),复位后为:准双向口/
16、弱上拉(普通8051传统I/O口) 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9. 看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)11.外部掉电检测电路:在P4.6口有一个低压门槛比较器 5V单片机为1.32V,误差为+
17、/-5%,3.3V单片机为1.30V,误差为+/-3%12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟 常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz 3.3V单片机为: 8MHz12MHz 精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准13.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时
18、器14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒, INT0/P3.2, INT1/P3.3, T0/P3.4, T1/P3.5, RxD/P3.0, CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3)16. PWM(2路)/PCA(可编程计数器阵列,2路) -也可用来当2路D/A使用 -也可用来再实现2个定时器 -也可用来再实现2个外部中断(上
19、升沿中断/下降沿中断均可分别或同时支持)17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)20.工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74H
20、C164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。2.1.3 STC12C5A60S2引脚引脚图如图2.1所示: 图表 1图2.1 STC12C5A60S2单片机引脚图2.2 keil开发环境和建立工程2.2.1 keil简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译
21、后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。2.2.2 Keil工程建立启动uVison3,点击“File New”在工程管理器的右侧打开一个新的文件输入窗口,在这个窗口里输入一个源程序,注意大小写及每行后的分号,不要错输及漏输。输入完毕之后,选择“File Save”,给这个文件取名保存,取名字的时候必须要加上扩展名,一般C语言程序均以“.C”为扩展名,这里将其命名为fgf.c,保存完毕后可以将该文件关闭。Keil不能直接对单个的C语言源程序进行处理,还必须选择单片机型号;确定编译、汇编、连接的参数;指定调试的方式;而且一些
22、项目中往往有多个文件,为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译和连接等操作。 点击“Project-NewProject”菜单,出现对话框,要求给将要建立的工程起一个名字,这里起名为fgf,不需要输入扩展名。点击“保存”按钮,出现第二个对话框,如图2.2所示,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,这里选择Atmel公司的89S52芯片。点击ATMEL前面的“+”号,展开该层,点击其中的89S52,然后再点击“确定”按钮,回到主窗口,此时,在工程窗口
23、的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图2.3所示,选中其中的“AddfiletoGroup SourceGroup1”,出现一个对话框,要求寻找源文件。图表 2图2.2 选择单片机型号 图表 3图2.3 加入文件双击fgf.c文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双
24、击同一文件,这时会出现如图2.4所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主接口,返回后,点击“SourceGroup1”前的加号,fgf.c文件已在其中。双击文件名,即打开该源程序。图表 4图2.4 重复加入源程序得到的提示 2.3 ISD4004介绍2.3.1性能简述和引脚图ISD4004 系列工作电压 3V,单片录放时间 8 至 16 分钟,音质好,适用于移动电话及其他便携式电子产 品中。芯片采用 CMOS 技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密 度多电平闪烁存贮陈列。芯片设计是基于所有操作必
25、须由微控制器控制,操作命令可通过串行通信接口SPI送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片内闪烁存贮器 中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩 造成的量化噪声和金属声。采样频率可为 4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下 降,片内信息存于闪烁存贮器中,可在断电情况下保存 100 年(典型值),反复录音 10 万次。图表 5图2.5 ISD4004引脚图2.3.2引脚描述1 电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的 不
26、同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。2 地线:(VSSA,VSSD) 芯片内部的模拟和数字电路也使用不同的地线。3 同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时, 信号由耦合电容输入,最大幅度为峰峰值 32mV,耦合电容和本端的 3K电阻输入阻抗决定了芯片频带的 低端截止频率。差分驱动时,信号最大幅度为峰峰值 16mV,为 ISD33000 系列相同。4 反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为 峰峰值 16mV音频输出(A
27、UD OUT) 提供音频输出,可驱动 5K的负载。5 片选(SS) 此端为低,即向该 ISD4004 芯片发送指令,两条指令之间为高电平。6 串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。7 串行输出(MISO) ISD 的串行输出端。ISD 未选中时,本端呈高阻态。8 串行时钟(SCLK) ISD 的时钟输入端,由主控制器产生,用于同步 MOSI 和 MISO 的数据传输。数据在 SCLK上升沿锁存到 ISD,在下降沿移出 ISD。9 中断(/INT) 本端为漏极开路输出。ISD 在任何操作(包括快进)中检测到 EOM 或 OVF
28、 时,本端变低并保 持。中断状态在下一个 SPI 周期开始时清除。中断状态也可用 RINT 指令读取。OVF 标志-指示 ISD 的录、放操作已到达存储器的未尾。EOM 标志-只在放音中检测到内部的 EOM 标志时,此状态位才置1。10 行地址时钟(RAC) 漏极开路输出。每个 RAC 周期表示 ISD 存储器的操作进行了一行(ISD4004 系列中的 存贮器共 2400 行)。该信号 175ms 保持高电平,低电平为25ms。快进模式下,RAC 的 218.75s 是高电 平,31.25s 为低电平。图表 6图2.6 时序 11 外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在
29、出厂前已调校,误差在 +1%内。商业级 芯片在整个温度和电压范围内, 频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化 在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部 的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首 先进行了分频。在不外接地时钟时,此端必须接地。12 自动静噪(AMCAP) 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有 助于养活无信号(静音)时的噪声。通常本端对地接 1mF 的电容,构成内部信号电平峰值检测电路的一部 分。检出的
30、峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不 衰减,静音时衰减 6dB。1mF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接 VCCA 则禁止自动静噪。2.4 SPI(串行外设接口)2.4.1协议介绍ISD4004工作于SPI串行接口。SPI 协议是一个同步串行数据传输协议,协议假定微控制器的 SPI 移 位寄存器在 SCLK 的下降沿动作,因此对 ISD4004 而言,在时钟止升沿锁存 MOSI 引脚的数据,在下降沿将数据送至 MISO 引脚。协议的具体内容为:1 所有串行数据传输开始于 SS 下降沿。2 SS 在传输期间必须保持为低电平,在两条
31、指令之间则保持为高电平。3 数据在时钟上升沿移入,在下降沿移出。4 SS 变低,输入指令和地址后,ISD 才能开始录放操作。5 指令格式是(8 位控制码)加(16 位地址码)。6 ISD 的任何操作(含快进)如果遇到 EOM 或 OVF,则产生一个中断,该中断状态在下一个 SPI 周期开始时被清除。7 使用读指令使中断状态位移出 ISD 的 MISO 引脚时,控制及地址数据也应同步从 MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个 SPI 周期里,同时执行读状 态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。8 所有操作在运行位(RUN)置
32、 1 时开始,置 0 时结束。9 所有指令都在 SS 端上升沿开始执行。2.4.2 信息快进 用户不必知道信息的确切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的 1600 倍,遇到 EOM 后停止,然后内部地址计数器加 1,指向下条信息的开始处。2.4.3上电顺序器件延时 TPUD(8kHz 采样时,约为 25 毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。参见表2.1。例如,从 00 从处发音,应遵循如下时序:1 发 POWERUP 命令;2 等待 TPUD(上电延时);3 发地址值为 00 的 SETPLAY 命令;4 发
33、PLAY 命令。器件会从此 00 地址开始放音,当出现 EOM 时,立即中断,停止放音。如果从 00 处录音,则按以下时序:1 发 POWER UP 命令;2 等待 TPUD(上电延时);3 发 POWER UP 命令;4 等待 2 倍 TPUD;5 发地址值为 00 的 SETREC 命令;6 发 REC 命令。器件便从 00 地址开始录音,一直到出现 OVF(存贮器末尾)时,录音停止。指令8 位控制码操作摘要POWERUP00100XXX上电:等待 TPUD后器件可以工作SET PLAY11100XXX从指定地址开始放音。后跟 PLAY 指令可使放音继续进行下去PLAY11110XXX从当
34、前地址开始放音(直至 EOM 或 OVF)SET REC10100XXX从指定地址开始录音。后跟 REC 指令可使录音继续进行下去REC10110XXX从当前地址开始录音(直至 OVF 或停止)SET MC11101XXX从指定地址开始快进。后跟 MC 指令可使快进继续进行下去MC11111XXX执行快进,直到 EOM.若再无信息,则进入 OVF 状态STOP0X110XXX停止当前操作STOP WRDN0X01XXXX停止当前操作并掉电RINT0X110XXX读状态:OVF 和 EOM图表 7表2.1 指令表注:快进只能在放音操作开始时选择。2.4.4 SPI端口的控制位SPI端口有两个硬件
35、控制位MISO 和MOSI,SPI控制寄存器控制放、录、信息检索、上电、掉电、启动和停止、忽视地址指示等功能。详见图2.7图表 8图2.7 各端口功能2.4.5 SPI控制寄存器SPI控制寄存器控制器件的每个功能,如录放、录音、信息检索(快进)、上电/掉电、开始和停止操 作、忽略地址指针等。详见表2.2:图表 9表2.2 控制器功能位值功能位值功能RUN 1 0允许/禁止操作开始 停止PU10电源控制上电 掉电P/-R10录/放模式放音 录音IAB10操作是否使用指令地址忽略输入地址寄存的内容 使用输入地址寄存的内容MC10快进模式允许快进 禁止P15-P0A15-A0行指针寄存器输出输入地址
36、寄存器 注:IAB 置 0 时,录、放操作从 A9-A0 地址开始。为了能连贯地录、放到后续的存储空间,在操作到达该 行末之前,应发出第二个 SPI 指令将 IAB 置 1,否则器件在同一地址上反复循环。这个特点对语音提 示功能很有用。RAC 脚和 IAB 位可用于信息管理。SPI端口简单框图如下:图表 10图2.8 SPI 端口2.4.6时序SPI总线协议是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序主要是在sck的控制下,两个双向移位寄存器进行数据交换。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时
37、候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。图表 11表2.3 SPI 时序参数SymbolParametersMinTypMaxUnitsTSSS/SS Setup Time500nsecTSSH/SS Hold Time500nsecTDISData in Setup Time200nsecTDIHData in Hold Time200nsecTPDOutput Delay500nsecTDFOutput Del
38、ay to Hiz500nsecTSSmin/SS HIGH1secTSCKhiSCLK High Time400nsecTSCKlowSCLK Low Time400nsecF0CLK(Frequency)1000kHz第3章系统总体设计3.1 硬件电路设计3.1.1 单片机控制模块该电路采用STC12C5A60S2单片机(美国ATMEL公司生产的AT89C52单片机。该芯片片内集有8K字节的电擦除闪速存储器(Flash ROM),价格低;晶体振荡频率选为12MHz;采用上电复位的方法通过操作),5个微型按扭开关和一个微动开关实现功能转换,操作命令由串行通信接口(SPI)送入。电路即可工作在
39、顺序模式,又可工作在循环模式。当工作在循环模式。当工作在循环模式的录音状态时,ISD芯片将始 终记录最后16min的语音信息,直至按下停止键。如图3.1 3.2 3.3所示 图表 12 图3.1 电源与指示灯原理图 图表 13图3.2 按键和指示灯原理图 图表 14图3.3 单片机原理图3.1.2 录音模块录音芯片采用ISD4004-16M。ISD系列语音芯片是美国ISD公司推出的产品。该系列语音芯片采用多电平直接接模拟存储(Chip Corder)专利技术,声音不需要A/D转换和压缩,每个采样值直接存储在片内的闪烁存储器中,没有A/D转换误差,因此能够真实、自然地再现语音、音乐及效果声。避免
40、了一般固体录音电路量化和压缩造成的量化噪声和金属声。如3.2图所示 图表 15 图3.4 音频输入原理图3.1.3 放音模块该部分电路采用TDA2822芯片。如图3.5所示 图表 16图3.5 音频输出原理图3.1.4 总体思路 该电路采用STC12C5A60S2单片机,通过操作5个微型按扭开关和一个微动开关实现功能转换,操作命令由串行通信接口(SPI)送入。电路即可工作在顺序模式,又可工作在循环模式。当工作在循环模式。当工作在循环模式的录音状态时,ISD芯片将始 终记录最后16min的语音信息,直至按下停止键。整个电路由单片机控制显示电路、ISD4004语音录放电路、话筒输入电路、音频功率放
41、大电路几部分构成。ISD4004的片选信号SS由控制器P2.0提供。单片机STC12C5A60S2的串行口工作于同步移位寄存器方式,同步移位脉冲由TXD(P3.1)输出至ISD4004的串行时钟输入端SCLK,数据由RXD(P3.0)输入输出。对单片机而言,发射时作为输出,接至ISD4004的串行输入端(MOSI);接收时作为输入,接至ISD4004的串行输出端(MISO)。电路中拔动开关Ks用于选择启用或取消循环录音功能。3.2软件设计3.2.1语音芯片的内部信息寻址机制ISD4004语音芯片具有能够准确控制语音录放地址的功能,这种功能使我们能够方便灵活地对语音信 息进行处理以达到我们对语音
42、信息的要求。例如,我们可以利用软件编程的方法实现对语音信息的剪辑、合成等操作来达到我们对语音信息特殊的要求。还有,我们可以通过程序控制做到语音的定时放音和循环 放音。若干条信息按顺序分别录入到芯片内,比如称其为a,b,c,d信息。我们需要知道每一时刻的录音信息在芯片存储器中所处的位置,这样有利于我们实时地监控ISD4004语音芯片工作的位置,从而能够知道所录的每段信息的开头和结尾的准确地址,便于我们对已录入的信息进行管理。下面以ISD4004-8MP为例来说明如何利用硬件结构寻址。ISD4004-8MP 内置了特殊的信息寻址机制,即行地址时钟(以下简称RAC)。为了理解其工作原理,有必要先介绍
43、器件的存储结构。ISD4004的存储器分为2400行。对器件寻址,就是选择一行,从行首开始录、放操作,而每行中的各列是不可寻址的。每一行的所有操作都从第一列开始。ISD4004-8MP 每一行周期为200ms,这就是器件的地址分辨率。其中每行有175ms的高电平,25ms的低电平。每个录放周期都从这200ms的“语音存储块”的块首开始,如图3.6所示。还以ISD4004-8MP为例,RAC在行末前25ms变低,在恰好到达行末时变高,这就类似一个时钟,帮助你确定录放操作已到何处。这个时钟相对于微控制器的速度来说较慢,上例为200ms。因此,微控制器很容易通过软件查询RAC的方法来确定何时已到达
44、图表 17图3.6录放时序 行末。但由于微处理器的查询速度相对于RAC时钟频率要快得多,所以,如果通过查询的方法检测RAC 每个周期的低电平时,在上一次检测到RAC低电平时必须要经过一段延时才能再检测RAC,这样检测到的低电平才是有效的,这段延时可以说是“假延时”。延时的时间必须大于RAC低电平的时间,而小于RAC的周期。我们可以利用一个计数器对RAC引脚进行计数,并且通过LED显示器实时地把计数器的值显示出来,这样我们不但可以知道录入的每段信息的开头和结尾的地址,而且还可以知道每段信息之中特定内容的地址,从而可以建立地址表对信息进行剪辑、合成等处理达到对语音信息特定的要求。同样,在放音时我们也可以实现对语音信息的准确放音。只需把事先编辑好的语音信息的准确地址传送到ISD4004的控制口就可以实现指定地址的放音。如果需要的话,我们还可以对ISD4004的放音地址进行实时的监控,其方法与录音时类似。3.2.2 监控ISD4004录音地址的实例我们可以用STC12C5A60S2来检测ISD4004的RAC引脚来实现录音地址的监控。当AN键按下时则开始录音,放开则停止录音,可检测INT引脚看ISD芯片是否到末。R2R3为地址计数器。3.2.3程序流程图电路上电后,程序首先完成程序的初始化,随后查询按键状态,进入系统待机状态。如果有按键按下,则转去执行