数字语音录系统的设计.doc_第1页
数字语音录系统的设计.doc_第2页
数字语音录系统的设计.doc_第3页
数字语音录系统的设计.doc_第4页
数字语音录系统的设计.doc_第5页
免费预览已结束,剩余52页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字语音录放系统的设计【摘要】 本文设计并实现了一个数字化语音存储与回放系统,采用了单片机配以外围电路实现对语音信号到数字信号的转化与存储,数字信号到语音信号的回放。本系统核心部件采用内部集成了A/D、D/A的SOC单片机C8051F005,语音信号由双拾音话筒转换为电信号,经过差分放大器、自动增益控制(Auto Gain Control,AGC)放大电路、带通滤波器、电平转移电路后变成符合A/D采样要求的信号(幅值范围02.4V),然后通过SOC单片机内的A/D转换器转换为数字信号。语音信号的采样频率为8kHz,采样后的语音数字信号存储在大容量的SRAM中。回放时,将存放在SRAM中的语音数字信号经D/A转换、滤波和功放后驱动扬声器。整个系统具有录音、放音、继续、停止等功能。本文主要研究了硬件实现、调试和软件设计流程。【关键词】 单片机,外围电路,带通滤波器 朗读显示对应的拉丁字符的拼音字典 - 查看字典详细内容The Design of Digitized Voice Record-playback System【Abstract】 The thesis designed and implemented a digital voice storage and playback system that uses a single-chip microcomputer together with external circuit to realize the storage and change the voice signal into digital signal,the playback of audio signals. The core components of the system is based on an SOC MCU C8051F005 which is integrated with an internal A/D and D/A, voice signals through the two-microphone pickup converted to electrical signals, after going through the differential amplifier, automatic gain control(AGC) amplifier, band-pass filter and level shift circuit it turn into the signals with A/D sampling requirements (amplitude range of 0 to 2.4V).Then the signals within the SOC Single-chip microcomputers internal A/D converter is converted into digital signals. The sampling frequency of speech signal is 8kHz, and sampled voice digital signal stored in the large-capacity SRAM. When it playbacks, in order to drive the speaker, the digital signal stored in the SRAM via the voice D/A conversion, filtering and post-amplifier.The system has the following functions:recording,playing,continue,stopThe thesis mainly studies the realization and debugging of the hardware and the flow of the design of software.【Key Words】 single-chip microcomputer,external circuit,band-pass filter 目 录1 绪 论11.1 数字语音录放系统发展历史11.2 国内外研究现状21.3 本研究课题的内容与关键技术21.3.1本研究课题的内容21.3.2本研究课题的关键技术42 总体设计方案52.1 整个系统的功能概述52.2 各个子系统功能及实现方略的考虑52.2.1 前置放大器52.2.2 带通滤波器52.2.3 语音存储和回放62.2.4 后级放大器63 SOC单片机最小系统设计73.1 C8051F005单片机的特点73.1.1 高速CIP-51 内核73.1.2 C8051F005单片机有丰富的数字和模拟资源73.1.3 在系统调试73.2 C8051F005的振荡电路83.3 外部数据存储器扩展93.4.12 位A/D转换器和D/A转换器103.4.1 A/D转换器103.4.2 D/A转换器123.5 C8051F005的并行数字I/O口133.5.1 输入/输出端口功能寄存器133.5.2 输出方式寄存器133.5.3 输入/输出端口数据寄存器133.5.4 输入/输出端口初始化实例143.6 SOC单片机最小系统实验板144外围模拟电路设计174.1 话筒前置放大电路174.2 带通滤波器的设计184.3 电平位移电路204.4 后级放大电路215 系统软件设计225.1 主程序设计225.2 键盘中断服务程序设计225.3 定时器中断服务程序设计235.4 A/D中断服务程序设计245.5 按键与显示功能设计25结 论26参考文献27附 录A28致 谢49图目录图1.1 语音记录过程3图1.2 语音回放3图2.1系统总体结构框图5图3.1外部晶体连接图9图3.2 C8051F005与SRAM的接口原理图10图3.3 C8051F005A/D转换器功能框图11图3.4 C8051F005D/A转换器功能框图12图3.5 SOC单片机最小系统实验板原理图15图3.6 键盘接口原理图17图4.1 前置放大电路18图4.2 双话筒消除噪声的示意图19图4.3 4阶低通滤波器的原理图19图4.4 高通滤波器的原理图21图4.5电平位移电路图22图4.6后级放大电路图22图5.1 程序流程图23图5.2 键盘中断程序流程图24图5.3 定时器中断程序流程图25图5.4 A/D中断流程图26表目录表3.1 IFCN与对应的频率关系7表3.2 C8051F005单片机并行口功能设置12表3.3 SOC单片机最小系统实验板插座功能简介13表4.1 有源带通滤波器实际测试结果181 绪 论1.1 数字语音录放系统发展历史 随着经济的进步,大规模集成技术的高度发展和计算机技术的飞速前进,推动着语音技术的发展。在数字音频技术和多媒体技术迅速发展的今天,传统语音录放电路设计十分复杂,开发工具十分昂贵,语音录制及软件编制工作量巨大,而且语音效果也不甚理想,尤其在投资不大的产品系统中最为突出,从而制约了这一技术的应用和发展。在我国经济建设迅猛发展的前提下,公安、铁路、民航、金融等部门对语音记录的需求不断增长1。把语音生成技术用于工业监控系统、自动应答系统、多媒体查询系统、智能化仪表、办公自动化系统或家用电气产品中,使它们具有语音输出功能,使之能在适当的时候用语音实时报告系统的工作状态、警告信息、提示信息或相关的解释说明等,无疑在提高人机通信能力、减少对错误处理的遗漏、提高系统性能、降低人们的工作强度等方面都有极大的好处。数字语音录放系统是近年来蓬勃发展的多媒体技术的一种具体应用,它是利用数字技术对语音信号进行采集、处理、并且在一定存储设备中进行存储,并可在需要时进行输出的过程。数字录音时将模拟语音信号转变为数字信号进行处理和存储,放音时再将数字信号反变换为模拟语音信号。数字录音可以克服磁带录音所存在的缺点,并可以进行快速查找和编辑整理,更为方便的是对数字录音的信息可以转存在计算机硬盘或光盘等大容量存储介质上,以便于长期保存。相对于模拟设备来说,数字设备易于集成、小型化、成本更低,同时更为稳定,且操作更为直接、方便,使得数字语音录放系统目前在各种领域中都得到了广泛的应用2。例如监控环境中使用的语音采集系统,再如家庭或学校中使用的语音复读机等,都可看作是数字语音录放系统的典型应用。但一般的数字录音设备也存在一个突出的缺点,那就是对录音信息所需要的存储空间比较大。通过在系统设计中对录音异步状态机,实现对现有的数字录音系统一些现存问题的解决,以及通过设计预留了系统客户化二次开发的可能性,使得录音系统满足了电信级别的要求。而这就是新一代的录音系统设计是建立的基础3。而04年的112数字录音系统在经过3个多月的在线试运行后,成功地通过了上海电信组织的专家组验收,现已在上海三大112受理呼叫中心得到成功应用。该系统进一步的各类市场推广工作正在大力开展中。1.2 国内外研究现状近几年集成电路技术飞速发展,国内外单片语音集成电路领域出现了重大变革,产生了许多新的技术和产品,开拓了更广泛的应用领域,语音电路已经迅速发展成为当前“会说话”电子产品,是家电产品、通信产品和网络化产品中不可或缺的重要集成电路器件,并且成为一个多品种、多规格、多系列、多元化的庞大语音集成电路体系,朝着更大容量,更优音质,更高智能,更具有灵活性的方向发展4。在通讯设备、电话机、智能仪器仪表、治安报警系统、语音报站/报数/报价器、语音复读机、教学仪器、智能玩具、高档电子礼品等场合获得了广泛的应用。数字化的语音系统则是采用数字技术对传统模拟语音系统的革新,它将先进的语音压缩编码技术、数字化存储技术和数字控制技术结合起来,彻底解决了传统存储介质的弱点(如磁带容易磨损,语音失真等,存储介质体积偏大等);其优良的控制性能是传统语音系统不可比拟的。国外许多著名公司如TI公司、OKI公司、MAX公司等,都提出了自己的数字化语音系统解决方案,国内也有不少公司完成了数字化语音系统的实现。目前一般的数字语音录放系统中,对语音只是进行简单的采集、存储和播放;虽然可以较大程度上保证语音的保真度,但过多的语音数据会造成对大量存储设备的需求。对于大型系统,可通过采用大容量的硬盘、甚至大规模的磁盘阵列来解决;但是对于小型的设备,例如便携式的语音复读机,由于容量有限,则不能采用同样的方法。 近年来,语音信号处理技术研究的突飞猛进,为数字语音录放系统提供了新的发展空间。对语音的采集、处理从以前简单的波形编码转变为进行参数编码、压缩,从而大大减少了存储数据5。举例来说,原始语音一般都是采用8KHz抽样,16bits的线性PCM编码进行采集,在一般的系统中就直接将采集后的数据进行存储;而如果采用参数编码对采集后的数据进行压缩,存储量则可以大大减少,当需要恢复语音时,可利用编码后的参数进行合成,可以得到质量令人满意的结果。1.3 本研究课题的内容与关键技术1.3.1本研究课题的内容语音数字处理方法可以分为规则合成法、参数合成法和波形存储法三类,前两类复杂且难度大,目前使用较少,波形存储法是普遍采用的一种。波形存储法的技术基础是A/D、D/A转换技术和多种的编码、解码算法6。图1.1说明了波形存储法的语音数字处理、记录及存储过程:首先用麦克风取得语音的电模拟量信号,经适当放大后,A/D转换器以一定的频率对其进行采样并转换为二进制数字量,并实时地对其进行编码,实现对实时数据的压缩以减少数据量,然后送入数据存储器中储存。图1.1 语音记录过程图1.2是数字语音还原的基本过程:按一定顺序从数据存储器中读出数据,以对应的算法进行解码,合成为语音数据,这是一种实时的数据解压过程,恢复的语音数据送入D/A转换器还原成语音的模拟信号输出。图1.2 语音回放现阶段为了解决一般数字录音的缺点而采用的主要方法:一是扩大存储空间,但无限地扩大空间势必增加系统的成本;二是采用语音压缩方法,即先将输入的语音进行压缩,然后再存储到存储器中7,8。而现在的数字语音录放设计技术正是结合了这两种方法,一方面采用存储量为128k比特的存储器628128,另一方面采用语音压缩编码算法(DPFM),可以使存储空间扩大为原先的两倍。假如采样频率为8kHz,如果不压缩,则录音时间为128k/8k=16s,而采用DPFM算法,可延长时间为32s。系统将通过软硬件结合的方式,实现系统的录音和回放。硬件采用大规模集成电路,软件采用汇编语言实现本课题是利用单片机系统设计实现的,通过单片机的控制,能够实现语音录放的功能:先把语音信号转化为电压信号,滤波后通过A/D转换存储在外部RAM中,需要时再通过D/A转换输出,最后通过驱动电路加置喇叭,即可还原语音信号。录音时,Microphone把语音信号转换成电压信号,经过滤波处理后进行A/D转换,以实现语音信号的数字存储。放音时,已记录下的语音电压信号经过D/A转换电路、滤波放大电路和扬声器转换成语音。1.3.2本研究课题的关键技术1. 语音的差分输入:用两个背对背的话筒通过接入差分放大器两端进行放大可消除背景噪声。2. 语音信号电压为毫伏级,若直接接入单片机进行AD转换,则会有较大的误差,因此先经前级放大电路,放大到伏量级,这就保证了转换精度,经调试,增益100倍可满足要求。3. 前后级带通滤波器的截止频率以及增益设计:由于语音频率在300Hz3.4KHz 范围,因此使带通滤波器上下截止频率分别在3.4KHz和300Hz左右,增益为1,这样可消除噪声干扰。4. 电平位移电路:为保证接入单片机的电压极性为正,加一分压电路及可实现。分压电路可由可变电阻实现。5. 末级功放:由于要推动喇叭动作,因此需足够的功放,在此用可变电阻和一块LM386芯片,不仅可实现足够增益(可达200多倍),还能进行音量的调控。6. 单片机SOC最小系统板的接口设计:实验板主要由C8051F005单片机、数据存储器62WV5128、CPLD(EMP7064)和LCD组成。 各模块接口复杂,但如果固定设计好,只要读懂各接口的功能就可方便利用。2 总体设计方案2.1 整个系统的功能概述本课题研究的是语音的存储与回放。由话筒将几毫伏的语音信号转化为电信号,经放大、滤波处理后变为02.4V的符合A/D采样要求的语音信号,通过A/D为数字信号后再将数字化的语音信号存放在大容量的存储器中;回放时,将数字化的语音信号经D/A转化、滤波放大后驱动喇叭发出声音。本系统所需的硬件电路一般包括以下几部分:滤波电路、放大电路、电平位移电路、A/D转换器、单片机、大容量存储器和D/A转换器。为简化电路,系统核心部件采用了内部集成了A/D、D/A的SOC单片机C8051F005,系统设计框图如图2.1所示。图2.1系统总体结构框图2.2 各个子系统功能及实现方略的考虑2.2.1 前置放大器前置放大器它由语音输入级和中间放大级组成,其中语音输入采用了双话筒背景噪声对消技术,可大大削弱背景噪声的影响,提高语音的录放质量。2.2.2 带通滤波器为了防止频谱混叠失真及提高信噪比,可以采用低通滤波器级联高通滤波器的方法组成带通滤波器来实现。如果采用分立元件构成该滤波器,有源滤波器是最佳选择,因为它采用集成运放与阻容元件构成,具有体积小、工作频率范围宽、对信号没有衰减甚至还可以放大、输入阻抗高、输出阻抗低并且便于多个有源滤波器之间级联等优点。本方案选择有源带通滤波器,由运算放大器TLO82组成。其中心频率为f01000Hz,通带为300Hz3.4KHz,品质因数可调。2.2.3 语音存储和回放语音存储时,需采样信号对模拟语音输入信号进行采样,采样速率为8k/s。由C8051F内置A/D转换器完成。语音回放时,须将已存储的数字化语音信号的数据经过C8051F内置D/A变换器恢复为模拟语音信号。2.2.4 后级放大器后级放大器主要用于驱动喇叭产生声音,此功能由LM386加外围电路组成。3 SOC单片机最小系统设计3.1 C8051F005单片机的特点本设计所使用单片机芯片是Cygnal公司的C8051F005,该单片机完全集成了混合信号系统级MCU,其具有以下几个主要特点。3.1.1 高速CIP-51 内核C8051F005单片机使用Silabs的专利CIP-51内核9。CIP-51内核采用流水线结构,机器周期由标准8051的12个系统时钟周期降为1个周期,处理能力大大提高,其峰值性能达到25MIPS。CIP-51扩展了标准的中断系统,这个扩展的中断系统可以提供22个中断源(标准8051只有7个中断源),允许大量的模拟和数字外设中断微控制器。一个中断渠道系统需要较少的MCU干预,却有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是十分有用的。3.1.2 C8051F005单片机有丰富的数字和模拟资源C8051F005单片机内部集成了大量的数字和模拟资源,主要包括:标准8052单片的数字资源,如三个16位定时器/计数器,256字节内部RAM,UART等。片内可编程计数器/定时器阵列(Programmable Counter Array,PCA)。PCA包括一个专用的16位计数器/定时器时间基准和3-6个可编程的捕捉/比较模块。每个捕捉/比较模块都有多种工作方式:如边沿触发捕捉、软件定时器、高速输出、脉冲宽度调制器、频率输出等。它的时钟源可以使系统时钟分频、定时器溢出、外部时钟输入、外部振荡源分频等。和SPI总线和SMBus/I2C总线。由逐次逼近型ADC、多通道模拟输入选择器和可编程放大器组成的完整ADC子系统。ADC可以由多种转换启动方式,12位的ADC数据字可以被编程为左对齐或右对齐方式。大部分器件中的ADC都可以被编程差分输入或单端输入。两路12位电压输出DAC。以及两个模拟化电压比较器。可以用软件设置比较器的回差电压。每个比较器都能在上升沿或下降沿产生中断,或在两个边沿都产生中断,比较器的输出状态可以用软件查询。可通过设置交叉开关将比较器的输出送到端口I/O引脚。3.1.3 在系统调试C8051F005单片机具有片内JTAG接口和调试电路,通过4脚的JTAG接口并使用安装在最终应用系统中的器件就可以进行非侵入式全速地在系统调试。Silabs调试系统支持观察和修改存储器和寄存器,支持断点、观察点、堆栈指示器和单步执行。调试时不需要额外的目标RAM、程序存储器。定时器或通信通道,并且所有的模拟和数字外设都能正常工作,该系统的调试功能比采用标准的MCU仿真器要优越得多。总而言之,C8051F005单片机功能齐全,性能优异,是真正意义上的混合信号片上系统。3.2 C8051F005的振荡电路任何单片机在工作时都需要系统时钟。C8051F单片机的系统时钟既可以由内部振荡器提供,也可以由外部振荡器提供,系统时钟可以很容易地在内部振荡器和外部振荡器之间进行切换。内部振荡器集成在单片机芯片内部,其频率精度受工艺、供电电压及温度的影响,一般只有正负百分之二十左右。外部振荡器可以采用外部CMOS驱动器、外部晶体振荡器、外部RC振荡电路、外部电容四种不同配制,如果采用外部晶体振荡器,频率可以达到很高的精度。C8051F单片机的振荡器使用十分灵活,根据所设计系统的不同要求,选择内部振荡器或者外部振荡器,也可以两者同时使用10。在系统复位时,内部振荡器被选为系统时钟并工作在1.9MHz。通过编程,可将内部振荡器的频率设置为1.9MHz、3.8MHz、7.5MHz、15MHz等四种不同频率之一。内部振荡器的控制室通过特殊功能寄存器OSCICN来实现的。通过OSCICN寄存器中的IFCN位来选择其中一种频率。IFCN位与对应的频率如表3.1所示。表3.1 IFCN与对应的频率关系IFCN1IFCN0标称频率/MHZ001.9013.8107.51115内部振荡器的频率可以随意改变,设置内部振荡器的频率可以通过以下几条指令完成: MOV OSCICN,#00000111B;内部时钟频率设为15MHzOSCWAIT:MOV A ,OSCICN JNB ACC.4,OSCWAIT在震荡频率改变发生以后,内部震荡器频率准备好标志IFRDY(OSCICN.4)变为低电平,表示振荡器频率尚未达到其编程值,一旦振荡器频率稳定在它的最新编程频率,IFRDY将变成高电平。后面两条指令的作用就是等待新的频率有效后,再执行下面的指令。不过,内部振荡器只需几个时钟周期就可以稳定到它的最新编程频率,因此如果对于一个应用来说绝对频率不是很重要的话,不需要对IFRDY位进行查询。如果使用外部晶体振荡器,应将一个晶体并接到C8051F单片机的XTAL1和XTAL2引脚,如图3.1所示。C1、C2为晶体微调电容,其电容取值为1033pF,需要注意的是,C1、C2的一端应接到模拟地。外部晶体振荡器的工作由OSCXCN寄存器控制,由于单片机系统使用的晶体频率为12MHz,OSCXCN寄存器中XFCN设为“110”。图3.1外部晶体连接图3.3 外部数据存储器扩展虽然C8051F005单片机内部含有2KB的SRAM,能满足一般系统的设计要求,但对于一些需要大容量的数据存储的系统(如语音信号的采集与存储)则需要外部扩展数据存储器。外部数据存储器采用STC公司生产的静态RAM芯片STC62WV5128。该芯片是一款低功耗高性能,容量为5128b,供电电压为2.45.5V。STC62WV5128还具有自动降低功耗的特性,当芯片未被选中时,芯片电源功耗自动降低。由于C8051F005单片机没有专门的地址总线、数据总线、控制总线,因此,在设计与外部数据存储器的接口电路时,将单片机的通用I/O口线作为地址总线、数据总线、控制总线。C8051F005单片机和SRAM的接口电路框图如图3.2所示。图3.2 C8051F005与SRAM的接口原理图3.4.12 位A/D转换器和D/A转换器3.4.1 A/D转换器C8051F005的ADC子系统包括一个9通道的可配置模拟多路开关(AMUX),一个可编程增益放大器(PGA)和一个100Kbps、12位分辨率的逐次逼近寄存器型ADC。ADC中集成了保持电路和可编程跟踪窗口检测器,如图3.3所示,AMUX、PGA、数据转换方式及窗口检测器都可以用软件通过特殊功能寄存器来配置11。只有当ADC控制寄存器(ADC0CN)中的ADCEN位被置1时,ADC子系统(ADC、跟踪保持器和PGA)才被使能。当ADCEN位被置0时,ADC子系统处于低功耗关断方式。如果要给ADC提供偏置,必须将REF0CN寄存器中的偏置使能位(BIASE)置1。图3.3 C8051F005A/D转换器功能框图ADC使用VREF来确定它的满度电压,因此在进行一次转换之前必须正确设置这个参考电压。ADC的最高转换速度为100Kbps,转换时钟来源于系统时钟。可以通过设置ADC0CF寄存器的ADCSC位将转换时钟的速度降为时钟的1/2、1/4、1/8或1/16。这一功能用于根据不同的系统时钟速度调整转换速度。ADC0CN中的ADCTM位控制ADC的跟踪保持方式。在缺省状态,ADC输入被连续跟踪(转换期间除外)。将ADCTM位设置为1即可采用下面四种低功耗跟踪保持方式,由ADCTM1-0为(也在ADC0CN中)的状态决定采用哪一种方式。四种跟踪方式如下:1. 从向ADBUSY写1开始跟踪,持续3个SAR时钟。2. 从计时器3溢出开始跟踪,持续3个SAR时钟。3. 只在CNVSTR输入为低电平时跟踪。4. 从计时器2溢出开始跟踪,持续3个SAR时钟。向ADBUSY写1方式提供了在需要时用软件控制ADC启动转换的能力。ADBUSY位在转换期间被置1,转换结束后复0。ADBUSY位的下降沿触发一个中断(当被允许时)并将中断标志ADCINT置1。当转换是由软件启动时,应查询ADCINT标志(而不是ADBUSY)来判断转换何时结束。转换结果保存在ADC数据字的MSB和LSB寄存器,即ADC0H和ADC0L中。转换数据在寄存器中对ADC0H和ADC0L中的存储方式可以使左对齐或右对齐,由ADC0CN寄存器中ADLJST位的编程状态决定。3.4.2 D/A转换器C8051F005系列MCU有两个12位的电压方式DAC,其功能框图如图3.4所示。图3.4 C8051F005D/A转换器功能框图每个DAC的输出摆幅均为0V到VREF-1LSB,对应的输入码范围是0000到反复0FFFH12,13。以DAC0为例,12位的数据首先要存放在DAC数据寄存器(DAC0L和DAC0H)中,然后通过DAC0CN寄存器中的DAC0EN位编程或禁止DAC0工作,既向DAC0EN写1允许DAC0工作,向DAC0EN写0则禁止DAC0。在被禁止时,DAC0的输出保持在高阻状态。当允许A/D转换时,DAC0把数据寄存器的数据转换成相应的模拟电压,经放大电路后由DAC0 引脚输出。在写DAC0H寄存器时数据被锁存到DAC0,所以如果需要12位的分辨率,应在写入DAC0L之后写DAC0H。DAC可被用于8位方式,这种情况是将数据左移后只写入DAC0H,而在DAC0L中写入00H。DAC0控制寄存器提供允许/禁止DAC0和改变输入数据格式的手段。为了给DAC0提供偏置,必须将REF0CN寄存器中的偏置使能位(BIASE)置1。还必须正确设置DAC0的电压基准。在某些情况下,对DAC0进行写入操作之前必须对输入数据移位,以正确调整DAC输入寄存器中的数据。这种操作一般需要一个或多个装载和移位指令,因而增加软件开销和降低DAC的吞吐率。为了减少这些方面的负担,数据格式化功能为用户提供了一种能对数据寄存器DAC0 H和DAC0L中的数据格式编程手段。3.5 C8051F005的并行数字I/O口C8051F005单片机有4个输入/输出端口,分别为P0、P1、P2、P3口14。每个端口有8个引脚,它们是单片机与外界联系的重要通道。与普通的MCS-51系列单片机不同,C8051F005单片机P0- P3口的每个引脚通过独立编程还能作为特殊功能的输入和输出,还可以通过软件设置改变引脚的输入/输出硬件状态配置,例如,弱上拉输出、推拉输出、开漏输出等。3.5.1 输入/输出端口功能寄存器I/O端口的功能通过3个特殊功能寄存器选择和控制。这3个特殊功能寄存器分别为:XBR0、XBR1、XBR2。优先权交叉开关根据寄存器XBR0、XBR1和XBR2的内容将所选择的内部数字资源分配到I/O引脚,使用时需注意:(1) 使用端口时,交叉开关必须被允许。(2)交叉开关必须在任何一个数字外设被允许使用前配置,并且通常在程序开始时配置,只配置一次。(3)端口引脚的输出方式必须被明确设置,即使是交叉开关分配的端口引脚也必须设置。(4)注意外设以及端口配置后的优先级顺序。3.5.2 输出方式寄存器C8051F005单片机有4个输入/输出端口,每个端口输出驱动器都可以被配置为漏极开路或推挽方式。对应的端口输出方式寄存器为PRT0CF、PRT1CF、PRT2CF、PRT3CF。I/O引脚的输出驱动特性是用端口配置寄存器PRT0CF、PRT1CF、PRT2CF和PRT3CF定义的。当这4个端口输出方式寄存器的某一位为0时,则该位对应的引脚的输出方式为漏极开路,如果为1,则该位对应的引脚的输出方式为推拉输出。3.5.3 输入/输出端口数据寄存器C8051F005单片机有4个输入/输出端口数据寄存器,分别为P0、P1、P2、P3。这里以端口0为例,说明数据寄存器的操作。P0是端口0的数据寄存器,它的复位值为11111111B,为可读写寄存器,其地址为80H。当P0作为通用I/O端口且配置为推拉式输出时,向数据寄存器的某一位写0时,则对应的引脚输出低电平,如果写1,则输出高电平。如果配置为漏极输出,则向数据寄存器的某一位写1时,对应引脚输出高阻态。为了将一个端口引脚配置为输入,必须将其相应的端口配置寄存器对应位设置为“0”,使其输出方式为“漏极开路”。并将数据寄存器对应位设置为“1”,使其输出状态为高阻态。3.5.4 输入/输出端口初始化实例现将C8051F005单片机P0、P1、P2和P3的功能作如下设定:P0口的P0.0 、P0.1、 P0.2 、P0.3和P0.4分别设定为SDA、SCL、TX、RX和,其余均设为通用I/O口。P0.5-P0.6、P1、P2输出方式设定为推拉式,P3口输出高阻态。3.6 SOC单片机最小系统实验板C8051F005单片机内部集成了功能完善的模拟和数字模块,完全可以实现真正意义上的片上系统15。实验板主要由3片大规模集成电路组成:C8051F005单片机芯片、大容量数据存储芯片STC62WV5128、可编辑逻辑器件CPLD(EPM7064)。实验板如图3.5所示。图3.5 SOC单片机最小系统实验板原理图C8051F005单片机共有4个8位并行I/O口。用于扩展各种外围器件。在单片机最小系统中,这些I/O口大部分用于键盘显示接口扩展、外部数据存储扩展和串行总线扩展,其功能设定如表3.2所示。对于语言存储与回放系统,需要扩展大容量的数据存储器以存放语言数据,因此较多的单片机I/O口线用于存储器地址线、读写线和数据线。为了节省I/O口线,将8位数据线和低8位地址线分时复用,由P3口实现。对于大部分的应用系统,C8051F005单片机内部的2KXRAM已能满足需要,这时不再需要扩展外部RAM,则地址线和读写线可作为通用的I/O口线。表3.2 C8051F005单片机并行口功能设置引脚名称扩展外部RAM未扩展外部RAM引脚名称扩展外部RAM未扩展外部RAMP0.0SDASDAP2.0A8GPIOP0.1SCLSCLP2.1A9GPIOP0.2TXTXP2.2A10GPIOP0.3RXRXP2.3A11GPIOP0.4INT0INT0P2.4A12GPIOP0.5A16GPIOP2.5A13GPIOP0.6A17GPIOP2.6A14GPIOP0.7A18GPIOP2.7A15GPIOP1.0/WRGPIOP3.0AD0AD0P1.1/RDGPIOP3.1AD1AD1P1.2ALEALEP3.2AD2AD2P1.3EEP3.3AD3AD3P1.4GPIOGPIOP3.4AD4AD4P1.5GPIOGPIOP3.5AD5AD5P1.6GPIOGPIOP3.6AD6AD6P1.7KEYCSKEYCSP3.7AD7AD7实验板上的CPLD(EPM7064)用于实现4*4键盘接口模块和8位地址锁存器。C8051F005单片机的模拟输入/输出引脚均引到外部插座,实验板设置了许多的数字和模拟扩展插座,其功能和定义如表3.2所示。表3.3 SOC单片机最小系统实验板插座功能简介插座编号 功 能 J1+5V电源插座 J2单片机在系统调试JTAG接口 J3键盘显示模块接口 J4I/O扩展口 J5I/O扩展口 J6多功能口:I2C总线接口,RS232通信,I/O口 J72路D/A转换器模拟信号输出接口 J8模拟比较器输入接口 J98路A/D转换器模拟信号输入接口键盘接口的顶层如图3.6所示。 图3.6 键盘接口原理图 4外围模拟电路设计4.1 话筒前置放大电路话筒前置放大电路如图4.1所示16。前置放大电路由一级差分放大电路和一级增益可调反相放大器组成。图中采用低噪声双运放NE5532芯片,差分放大电路增益为,反相放大器增益为。图4.1 前置放大电路声音的拾取选用两个特性基本相同的话筒,将它们背对背安装,如图4.2所示17。声源到达两个拾音话筒的距离分别为和,背景声音(噪音)到达两个拾音话筒的距离分别为和。由于声源离话筒的距离相对较近,声源在话筒上产生语音信号属于差分信号,通过差分电路得到放大;而背景声离话筒的距离相对较远,可以认为,因此,背景声在话筒上产生的信号对差分放大电路来说相当于共模信号,从而被有效地抑制。图4.2 双话筒消除噪声的示意图4.2 带通滤波器的设计在对信号进行采样前以及D/A转换输出后都要通过带通滤波器除去杂波信号以满足语音信号清晰的要求18。该带通滤波器的通带为300Hz3.4 kHz,主要实现功能如下:1.保证300Hz3.4 kHz内的语音信号不失真地通过滤波器。2.滤除通带外的低频信号,减少工频分量的干扰。3.滤除通带外的高次谐波信号,减少因8 kHz采样引起的混叠失真。根据实际情况,上限频率在2.7kHz左右。带通滤波器按品质因素的大小分为窄带滤波器()和宽带滤波器()两种,本课题中下限频率为300Hz,上限频率为3. 4kHz,中心频率与品质因素分别为 (4.1) (4.2) 显然,故该带通滤波器为宽带带通滤波器,宽带带通滤波器由低通滤波器和高通滤波器级联构成。4阶低通滤波器如图4.3所示,由两级2阶多重反馈低通滤波器级联而成。主要指标为:通带增益,截止频率,选择,。主要参数计算如下:图4.3 4阶低通滤波器的原理图选基准电容为2200pF,则 基准电阻 (4.3) (4.4) (4.5) (4.6) (4.7) (4.8)同理可得: (4.9) (4.10) (4.11) (4.12) (4.13)高通滤波器如图4.4所示,由TL082构成4阶高通滤波器,通带增益,截止频率,第三级的为0.451,第四级的为1.30619。主要参数选取如下: (4.14) (4.15) (4.16) (4.17) (4.18) (4.19)图4.4 高通滤波器的原理图由低通滤波器和高通滤波器级联构成的带通滤波器实际电路经过测试,其实验结果如表4.1所示,输入正弦波信号幅值电压表4.1 有源带通滤波器实际测试结果/kHz0.200.270.300.350.501.50/V0.81.31.72.02.32.4/kHz2.503.303.403.504.005.00/V2.11.81.71.61.20.6从实验结果看,当输入正弦波信号的频率在300Hz以下或者3400Hz以上时,输出的信号幅值出现了严重的减小现象,即此段信号的频率出现了衰减,而信号频率在300Hz到3400Hz之间时,信号基本没有衰减。从结果上来说,该滤波器的设计是符合要求的。4.3 电平位移电路为保证接入单片机的电压极性为正,加一个分压电路便可实现此功能。分压电路可由可变电阻实现,如图4.5所示。图4.5电平位移电路图4.4 后级放大电路由于要推动喇叭工作,因此需要足够的功放。在这里可以使用可变电阻和一块LM386芯片,不仅可实现足够的增益(可达200多倍),还能进行音量的调控(增益通过可变电阻PR1可调),如图4.6所示。图4.6后级放大电路图5 系统软件设计5.1 主程序设计系统初始化包括:关闭看门狗,选用外部12MHz晶体振荡器;配置允许交叉开关,P1、P2设置为推挽输出。P3设置为漏极开路;T0初始化;ADC初始化,AIN0单端输入方式,SAR转换时钟为16个系统时钟,增益为1,数据左对齐,使用内部2.4V基准电压;DAC初始化,转换结束后DAC0H允许输出更新,设置数据左对齐;中断系统初始化,允许T0中断,允许ADC0中断,下降沿触发20。液晶初始显示“声音存储与回放”7个字。K0键设为录音功能,将语音转换成数字信号储存在SRAM,K1键设为放音功能,将数字语音信号转换模拟信号由功放电路驱动扬声器放音21。K2键设为暂停功能,K4键设为继续录音功能,K5键设为继续放音功能。程序流程如5.1图所示。图5.1 程序流程图5.2 键盘中断服务程序设计当有键按下时,键盘接口将产生中断信号。键盘中断服务程序的功能十分简单:读取4位键值,置“键有效标志”22。其程序流程图如5.2图所示。图5.2 键盘中断程序流程图5.3 定时器中断服务程序设计定时器T0用于控制采样周期,根据设计要求,语音信号的采样频率为8kHz,可以算T0定时常数为FF83H。由于定时时间很短,定时器采用具有时间常数自动加载功能的方式2,既提高了定时精度,又简化了程序设计。T0中断服务程序流程如图5.3所示。图5.3 定时器中断程序流程图5.4 A/D中断服务程序设计当每次A/D转换结束之后,都会自动启动一次中断。A/D转换中断服务程序完成ADC转换结束中断标志,将高8位结果(ADC0H)送入SRAM,检测SRAM是否写满。A/D转换中断服务程序流程如图5.4所示。图5.4 A/D中断流程图5.5 按键与显示功能设计按键:(共设置了6个功能键)按键0是开始录音;按键1是开始放音;按键2是暂停录放;按键3是删除录音;按键4是继续录音;按键5是继续放音。l显示:开机显示“声音的存储与录放”。按下各键后显示各键对应功能字,如按下键4显示 继续录音。结 论当设计完成以后,需要对所设计项目进行调试与测试,验证系统是否达到预定设计的要求。调试分为系统模块的调试和整机的调试。实际工作中测试和调试并不是在整个设计完成之后才开始进行的,而是在设计过程中与模块的设计一起协同进行。1前置放大器断开话筒,在话筒差分放大器一个输入端接入由信号发生器产生的峰峰值为2mV、频率为1kHz的正弦波,另外一端接地,使用示波器观察放大器的输出波形,经调节第二级放大器的放大倍数,输出波形幅度可以在0-20V范围内变化,即前置放大器的增益可以达到100倍,并且可调,符合设计要求。2末级放大器断开末级放大器和带通滤波器的连线,使用低频信号发生器输入1kHz的正弦波,幅度为30mV,输出接8欧姆的喇叭,并且使用示波器观察输出波形,调节音量电位器,喇叭发出很响的嘟嘟噪声,经示波器幅度测试可达3.3V。即末级放大器的增益可以达到110倍左右,并且通过电位器增益可调。3带通滤波器首先将带通滤波器和前级断开,在带通滤波器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论