学位论文基于sd卡的语音回放电路设计.docx
《学位论文基于sd卡的语音回放电路设计.docx》由会员分享,可在线阅读,更多相关《学位论文基于sd卡的语音回放电路设计.docx(29页珍藏版)》请在冰豆网上搜索。
学位论文基于sd卡的语音回放电路设计
基于SD卡的语音回放电路设计
摘要:
本SD卡语音回放电路,由STC12C5A60S2单片机控制电路模块、VS1003语音模块、SD卡模块、按键控制模块构成。
STC12C5A60S2单片机控制电路模块用软件模拟SPI总线,实现单片机与VS1003语音模块和SD卡模块通信,将存储与SD卡的语音信号通过SPI总线传输到VS1003模块,实现语音信号的回放并且由按键控制语音信号的播放和暂停。
关键词:
SD卡;语音信号;STC12C5A60S2;VS1003;SPI
ThecircuitdesignofspeechplaybackbasedonSD
Abstract:
ThisspeechstoragecircuitofSDcardconsistsofSTC12C5A60S2single-chipmicrocomputercontrolcircuitmodule,VS1003speechmodule,SDcardmoduleandbuttoncontrolmodule.STC12C5A60S2single-chipmicrocomputercontrolcircuitmoduleusesoftwaretosimulatetheSPIcable,realizethecommunicationsamongthesingle-chipmicrocontroller,VS1003speechmoduleandSDcardmodule,transportthestorageandvoicesignalofSDcardtoVS1003modulethroughSPIcable,realizetheplaybackofvoicesignal,theplayandpauseofspeechsignalcontrolledbybutton.
Keywords:
SDcard;speechsignal;STC12C5A60S2;VS1003;SPI
前言
SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mmx24mmx2.1mm。
长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。
SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。
SD卡外型采用了与MMC卡厚度一样的导轨式设计以使SD设备可以适合MMC卡。
SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。
采用了NAND型FlashMemory,基本上和SmartMedia的一样,平均数据传输率能达到2MB/s。
SD卡(SecureDigitalMemoryCard)是一种基于Flash的新一代存储器,它着重数据存储的安全、容量和性能,被广泛用于各种数码产品中,如数码相机、MP3等。
同时也为小段语音的采集提供了理想的存储介质。
SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。
既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,既使系统变得更加出色,而且也能够使SD卡在除了PC机之外的另外一种读取方式。
近年来,语音存储回放技术发展十分迅速,在运算速度和音质处理效果上都有很大的发展和进步。
随着数字信号处理技术的飞速发展,数字语音储存回放在数字信号处理方面的优势日益体现出来。
同时,随着数字化信号处理器速度的不断提高,单片机、DSP处理器以及专用语音处理模集成电路的进步,语音合成、语音识别、语音存储和回放技术的应用越来越广泛,从而使磁头磁带的机械式系统已经成为了过去。
目前,数字音频技术相当的成熟,利用软件与硬件结合的设计方法可以为系统增加可靠性和方便实现的特点。
DSP在通信领域、语音处理、视频处理等许多领域得到了广泛的应用,数字信号处理技术几乎涉及到生活应用的各个方面。
其性价比日益提高,具有巨大的应用潜力。
相对于传统的模拟语音采集,应用数字信号技术处理音频技术优势体现在:
如灵活、可编程,支持时分复用,易于模块化设计,可重复使用,可靠性高等优点。
在多媒体技术的应用中,语音的存储回放系统得到了广泛的应用。
譬如,在电视节目中语音部分、背景音乐的预先录制也发挥了很大的作用。
各种公共场合的语音记录回放,购物商场安全提示广播、学校上课和下课闹铃广播、公共交通工具的报站提示;多媒体播放设备,MP3、MP4播放器。
随着电子技术的发展,数字信号处理技术对这几个方面的发展都起到很大的促进作用。
该技术也可应用到多媒体计算机中的声卡部分,为其录制和播放语音。
数字信号处理技术在各种语音的存储回放技术中也会得到很广泛的应用和发展。
本研究SD卡控制器基于单片机,单片机系统相比于PC机价格十分低廉,单片机与SD卡相连大大减少了SD卡读取设备的成本。
使用单片机读取存储SD卡采用串行外设协议总线结构对其数据进行读写操作,通过详细分析SD卡工作原理、读写控制要求、串行外设协议模式的特点和特殊命令结构,阐述SD卡初始化、读写的流程和文件分配表文件管理等方法,最后完成基于SD卡的语音回放电路。
论文正文分为五个部分来阐述:
第一章介绍本课题研究的背景和前景。
第二章介绍系统的总体设计思路及设计方案论证。
第三章介绍硬件电路设计。
第四章介绍软件设计。
第五章介绍系统操作与测试。
1课题研究背景与前景
1.1基于单片机或嵌入式的SD卡语音存放电路研究的背景
长期以来,闪存卡(SD卡、MMC卡等)因其体积小、功耗低、容量大和非易失性等特点,在嵌入式存储领域的应用越来越广泛。
特别是近年来,随着闪存技术的发展,闪存卡价格不断下降且存储容量不断提高。
当数据采集系统需要长时间地采集和记录海量数据时,应用SD卡作为存储介质是很好的选择。
同时SD卡位错误率低,有存储性能良好[]。
SD卡采用FAT32文件系统[],FAT32文件系统是Microsoft公司在其MS-DOS操作系统中采用的文件系统,具有出色的文件管理性能,能被当前大多数操作系统识别。
因此,将SD卡与FAT32文件系统相结合是嵌入式数据存储、记录系统的理想方案,可以将采集记录的数据直接在PC上读取和处理[]。
语音是人们在日常生活中的主要交流手段,因此语音处理在现代信息社会中占有重要地位。
用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义[]。
尽管现在各种语言合成芯片和语音处理应用电路有许多,但都需要增加硬件投资,在一些由单片机构成的测控系统中,由于单片机接口和处理速度有限,需要借助专用音频处理器及外部数据存储器,实现语音的存储及回放功能。
1.2基于单片机或嵌入式的SD卡存放电路研究发展状况
SD卡存储技术在各个领域都有十分广泛的应用。
在农业领域,变量施肥技术是精准农业的一种,它主张根据小尺度田块之间的地力和作物长势差异,施以不同的肥料,从而可以减少用肥量、提高肥料利用率。
作物需肥量(主要是需氮量)可以通过其营养状态来判断,而营养状态又与叶绿素含量有密切的相关关系。
因此,可以通过对叶片或群体的光谱分析有效地估计作物需肥量。
变量施肥机就是利用单片机对高光谱传感器返回的作物光谱信息做出实时分析,通过步进电机调节施肥量的大小从而实现精准施肥。
其中施肥信息的存储成为一个关键问题。
近几年,随着存储技术的发展,诞生了许多基于Flash存储技术的大容量存储卡。
其中SD卡以其体积小、功耗低的优势,被广泛用于各种数码产品中。
SD卡为精准施肥机的存储系统提供了理想的存储介质[]。
在汽车工业领域,GPS导航仪现已广泛应用于汽车导航,但普通导航仪设备的功能单一,因此有必要为导航设备添加娱乐功能,如播放音频、视频等。
而音频、视频的文件一般比较大,需要比较大的存储空间。
SD卡的价格低廉、存储容量大、存储速度较快且有数据加密功能,适用于存储多媒体文件[]。
在海洋自动监测领域,单片机系统凭借其成熟的应用体系,简单的系统结构,优越的低功耗特性以及良好的性价比,在数据采集系统中得到了广泛的应用。
一般而言,海洋自动监测数据采集设备总是需要长期、连续、自动的记录各种观测数据,需要配备大容量、不挥发、高可靠的数据存储介质。
MMC/SD数据存储卡是一种智能存储卡,具有统一规格的外部接口,可以通过简单的SPI串行总线与单片机连接,同时内部通过纠错算法保证数据存储的高可靠性,此外还有低价格、大容量、低功耗、移动存储、抗冲击振动等诸多优点,非常适合嵌入式设备的大容量数据存储[]。
在医学领域,Holter的记录方式最早是采用模拟化的磁带记录仪对正常活动状况下的患者做长时间连续心电图记录,习惯上称其为Holter监护。
随着半导体技术的发展,数字化的闪存(FlashMemory)芯片被采用,体积减小,容量增加,传输速度提高,价格降低。
采用SD卡作为Holter的存储介质,将使仪器的性能价格比有很高的提升[]。
1.3SD卡技术发展的未来趋势
SDSD-CPRM是一个SD记忆卡新的扩展,以解决受保护的数字内容构成的授权共享问题。
它使用4C实体定义的可录制媒体内容保护去识别来自密钥的加密数字内容并解密它。
该SDSD-CPRM单独传送机制大大有利于消费者、内容提供商和设备制造商。
消费者可以自由地管理和分发加密内容、内容提供商能够传递和保护加密内容、设备制造商可以开发一个共同内设SD记忆卡接口的产品[]。
2方案设计与论证
2.1系统功能指标要求
(1)实现单片机与SD卡的SPI模拟通信。
(2)实现语音信号的回放。
(3)实现按键对语音信号的控制。
2.2系统方案设计论证
2.2.1单片机控制模块的选择
方案一:
采用ARM7系统。
该系统自带的SPI总线端口,可高速地传递语音信号,且系统具有较高的稳定性。
但该系统结构复杂,并且AMR7系统成本较高。
方案二:
采用AT89C52最小系统。
该系统成本低廉,系统结构简单,没有专门的SPI总线端口,需要用软件模拟SPI总线。
但该系统采样速率不够,无法实现语音信号的还原。
方案三:
采用STC12C5A60S2最小系统。
其成本比较低,系统结构并不复杂,采用增强型8051内核,速度比普通8051快8~12倍,工作频率为0~35MHz满足语音信号的采样速率,能够还原语音信号。
鉴于成本和方案可行性的考虑,这里我们选择方案三。
2.2.2语音模块的选择
方案一:
用模拟电路搭建语音模块。
用AD0832模数转换器把SD卡中的数字语音信号转换为模拟信号,通过滤波电路、整流电路对模拟信号处理,最后发送到扬声器。
该模块成本比较低,电路搭建处理的工作量大,并且噪声干扰大,音质无法保证。
方案二:
用VS1003语音芯片。
VS1003一种高集成度、高性能的芯片。
可控制于SPI模式,方便与处理器通信。
它能对MP3格式的音频信号进行解码,且音质可与中档MP3播放器相媲美。
但是价格相对昂贵,同时还需要3.3V的工作电压,需要电平转换电路。
因为SD卡也需要3.3V的工作电压,正好可以解决VS1003的电压问题。
考虑到音质和电路稳定性方面的问题,在此选择方案二。
2.3系统总体方案
本系统由单片机处理器、SD卡模块、按键控制模块、语音模块有序的运行,来实现所需要的各个功能。
系统基本框图2-1所示:
图2-1设计总体框架图
3硬件电路设计
3.1单片机最小系统
单片机的最小系统主要由电源供电、晶振电路、复位电路组成[]。
硬件电路如下:
图3-1单片机最小系统电路图
3.1.1单片机STC12C5A60S2简介[]
●高速:
1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍
●宽电压:
5.5~3.3V,2.2~3.6V
●增加第二复位功能脚(高可靠复位,可调整复位门槛电压,频率<12MHz时,无需此功能)
●增加外部掉电检测电路,可在掉电时,及时将数据保存进EEPROM,正常工作时无需操作EEPROM
●低功耗设计:
空闲模式(可由任意一个中断唤醒)
●低功耗设计:
掉电模式(可由外部中断唤醒),可支持下降沿/上升沿和远程唤醒
●工作频率:
0~35MHz
●时钟:
外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置
●8/16/20/32/40/48/52/56/60/62K字节片内Flash程序存储器,擦写次数10万次以上
●1280字节片内RAM数据存储器
●芯片内EEPROM功能,擦写次数10万次以上
●ISP/IAP,在系统可编程/在应用可编程,无需编程器/仿真器
●8通道,10位高速ADC,速度可达25万次/秒,2路PWM还可当2路D/A使用,STC12C5201AD系列带A/D转换的单片机的A/D转换口在P1口(P1.7-P1.0),有8路8位高速A/D转换器,速度可达到300KHz(30万次/秒)。
8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。
上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用
●2通道捕获/比较单元(PWM/PCA/CCP),也可用来再实现2个定时器或2个外部中断(支持上升沿/下降沿中断)
●4个16位定时器,兼容普通8051的定时器T0/T1,2路PCA实现2个定时器
●可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出时钟,BRT在P1.0输出时钟
●硬件看门狗(WDT)
●高速SPI串行通信端口
●全双工异步串行口(UART),兼容普通8051的串口
●先进的指令集结构,兼容普通8051指令集,有硬件乘法/除法指令
3.1.2电源电路
本设计中单片机工作于5V的直流电压。
因此,使用5V的直流稳压电源供电,可以简化硬件电路的设计。
在输入电源的VCC与GND之间并联104和10UF的电容,这种由两个大小电容值组成的电路主要用于系统的滤波。
10UF电容由于容量大,所以体积一般也比较大,并且一般使用卷绕的方式制作,这就导致了大电容的分布电感比较大(也叫等效串联电感,英文简称ESL)。
而电感对高频信号的阻抗是很大的,所以大电容的高频性能不好。
一些小容量电容(如104/0.1uf)则刚刚相反,由于容量小,因此体积可以做得很小(缩短了引线,就减小了ESL,因为一段导线也可以看成是一个电感的),并且使用平板电容的结构,这样小容量电容就有很小ESL这样它就具有了很好的高频性能。
但是,由于容量小的缘故,对低频信号的阻抗大。
因此,如果为了让低频、高频信号都可以很好的通过,就采用一个大电容再并上一个小电容的方式,这样可以提高系统的电源质量。
图3-2电源电路图
而VS1003模块和SD卡均工作于3.3V的工作电压。
5V工作电压可以由5V的稳压电源直接提供,3.3V需用使用AMS1117的稳压芯片。
图3-35V-3.3V电压转换图
3.1.3晶振电路
单片机的运行需要一个时钟频率,类似我们的计算机的CPU主频的高低,现在计算机的CPU一般用GHz来左单位。
而我们的51单片机常用到的时钟频率有12MHz、11.0592MHz,这些时钟频率都是依靠外部晶振产生的。
本设计需要读取SD卡中的音频数据,再送到VS1003模块进行解码处理。
因此,要求单片机具有很高的处理速度,STC12单片机尽管具有1T处理能力,还是需要结合更高频率的晶振。
晶振接到单片机的XTAL1、XTAL2引脚处。
电路上的晶振旁有两个无极性电容,容量为33P。
这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮法,它会影响到晶振的谐振频率和输出幅度。
晶振的负载电容C的大小为:
(3-1)
式中Cd、Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+△C(PCB上电容)经验值为3至5pf。
3.1.4复位电路
单片机的的复位引脚(Reset)为第9引脚,当此引脚连接高电平超过2个机械周期(12个时钟脉冲),即可产生复位操作。
以12MHz的晶振产生的时钟脉冲为例,每个时钟脉冲约为1μS,两个机械周期为12μS。
因此,在第9引脚上接上一个12μS以上的高电平脉冲,即可产生复位操作。
在使用10KΩ电阻、10μF电容,其时间常数
,所以能够确保12μS的高电平。
3.2按键控制电路
按键电路由3个按键一段与单片机相连,另外一段接地。
其电路图如下所示:
图3-4按键控制电路图
系统板上有三个按钮,从左到右功能分别是:
●播放
●停止
●下一曲
另外有三个LED灯对应按键的响应。
3.3SD卡电路
单片机的内部容量非常少,Flash空间只足够程序代码,对于音频数据的大容量是根部不能存储到单片机的内置存储空间中。
为了能让用户存储更多的音频数据,系统将引入SD卡存储设备。
在这里,需要解决一个难题:
单片机的工作电压是5V,IO的电平变化也是0V和5V,但是SD卡工作电压是3.3V。
它们之间的通信存在电平匹配[]的问题,从而影响单片机与SD卡之间的读写操作。
要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,要点有两条:
一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。
单片机与SD卡是在SPI工作模式下,每个数据通道都是以单向传输的,这样可以在单片机向SD卡传输数据时采三极管结合下拉电阻的方法。
而在SD卡向单片机传输数据时可以采用直接连接,因为它们之间的电平刚好满足上述的电平兼容原则。
这个方案需要双电源供电,1个5V电源,1个3.3V电源。
图3-5SD卡连接电路图
3.4VS1003音频解码模块
本系统保存在SD卡上的音频数据是以MP3格式,要将这些MP3格式的语音数据由扬声器播放,必须通过对音频数据解码还原成模拟语音信号,再由扬声器播放。
3.4.1VS1003解码芯片介绍[]
VS1003MP3解码芯片,它能完成MP3解码以及播放的工作。
MP3解码芯VS1003,它来自芬兰VLSI半导体公司,功能强大且性价比高、简单易用,深受语音播放系统设计工程师欢迎。
VS1003支持MP3、WAV、WMA、MIDI等诸多音频格式,音质可与中档MP3播放器相媲美;同时它还兼备录音功能,录音效果也不错。
实际上,VS1003就是一颗能够实现MP3等音频文件格式解码的数字信号处理器(DSP),本领并不止MP3播放,它还可以播放WMA格式。
当然,单有一个VS1003是不够的,我们还需要微处理器和存放MP3的存储介质。
VS1003特性:
●能解码MPEG1和MPEG2音频层III(CBR+VBR+ABR);WMA4.0/4.1/7/8/95-384kbps所有流文件;WAV(PCM+IMAAD-PCM);产生MIDI/SP-MIDI文件。
●对话筒输入或线路输入的音频信号进行IMAADPCM编码
●支持MP3和WAV流
●高低音控制
●单时钟操作12..13MHz
●内部PLL锁相环时钟倍频器
●低功耗
●内含高性能片上立体声数模转换器,两声道间无相位差
●内含能驱动30欧负载的耳机驱动器
●I/O单独供电
●为用户代码和数据准备的5.5KB片上RAM
●串行的控制,数据接口
●可被用作微处理器的从机
●特殊应用的SPIFlash引导
●供调试用途的UART接口
●新功能可以通过软件和4GPIO添加
3.4.2VS1003解码模块电路
采用VS1003音频解码芯片来实现音乐数据流的解析,VS1003与单片机的数据通信是通过SPI总线方式进行的。
VS1003通过串行命令接口(SCI)和串行数据接口(SDI)来接收单片机的控制命令和MP3的数据,通过xCS、xDCS引脚的置高/低来确认是哪一个接口处于传送状态。
VS1003的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SPI通信方式特定寄存器实现的,两条SPI数据通信之间要通过DREQ引脚信号判断上一次处理是否完成。
在连接到单片机的IO口是与SD卡的SPI控制电路复用,连接方式为
图3-6单片机与VS1003电气连接图
4软件设计
本系统的程序设计按照功能模块可分为:
SD卡的数据读取及VS1003模块的驱动;按照技术难度,则可以分为SPI通信协议实现和文件系统的应用。
为了更深入对程序设计过程及难度的分析,本章的对软件设计过程从技术难度入手,在到具体功能模块的应用实现说明:
●SPI通信协议的软件设计
●SD卡的数据读取软件设计
●VS1003对音频信号处理软件设计
●按键控制功能软件设计
系统软件总流程图如下所示
图4-1系统软件总流程图
4.1SPI通信协议的软件设计
单片机通过SPI接口与SD卡及VS1003模块进行数据传输,首先需要对SPI总线有初步的了解。
一般来说,SPI总线是使用4根线连接分别是MOSI(主出从入),MISO(主入从出),SCK(时钟),CS(片选)。
而对于只有一个主机一个从机的设计,可以忽略CS连接。
SPI的通信原理是主从机的数据交换完成的,通过主机控制SCK的频率,让数据以位(bit)传输。
SPI的优点在于允许数据每位传输,可以暂停传输;数据的输入与输出线独立,允许同时输入、输出数据;以交换的传输方式,有较高的传输效率。
单片机模拟SPI的过程,包括串行时钟、数据输出和数据输入。
控制SCK输出高低电平,获得时钟脉冲。
当SCK处于上升沿时MOSI输出数据,当SCK处于下降沿时MISO输入数据。
经过8个周期的SCK后,完成一次数据的交换[]。
图4-1spi通信连接示意
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
但是,在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些[]。
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前、低位在后。
如下图所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。
图4-2spi通信时序图
IO口模拟SPI,发送一个字节,其程序如下所示:
voidSPI_WriteByte(unsignedcharx)
{
dat=x;//将x的值赋给可位寻址的变量dat,以便取出各个位
SPI_SI=dat7;//取出第7个位,写到数据线上
SPI_SCL=0;
SPI_SCL=1;//时钟线产生上升沿,数据被写入
SPI_SI=dat6;
SPI_SCL=0;
SPI_SCL=1;
SPI_SI=dat5;
SPI_SCL=0;
SPI_SCL=1;
SPI_SI=dat4;
SPI_SCL=0;
SPI_SCL=1;
SPI_SI=dat3;
SPI_SCL=0;
SPI_SCL=1;
SPI_SI=dat2;
SPI_SCL=0;
SPI_SCL=1;
SPI_SI=dat1;
SPI_SCL=0;
SPI_SCL