(完整版)基于单片机的语音控制开关设计毕业设计 下载本文

表4 LD3320部分管脚说明

管脚标号 31 34-38

管脚名称 CLK P7-P3

IO方向 I I/O

AD方向

D D

说明 时钟输入4-48MHZ 并行口连接上拉电阻 并行口第2 位共用SPI时钟,

39 P2/SDCK I/O D

上拉电阻

40 41

P1/SDO P0/SDI

I/O I/O

D D

并行口第1位,公用SPI输出 并行口第0位,公用SPI输入

写允许低电平有效,

42 WRB/SPIS I D

公用SPI允许连接上拉电阻

并行方式片选信号,

43 CSB/SCS I D

公用SPI片选信号连接上拉电阻 地址或数据选择。在WRB有效时,

44 A0 I D 高电平表示P0-P7是地址, 而低电平表示P0-P7是数据

45 RDB I D 读允许低电平有效连接上拉电阻 0:并行工作方式 1:串行工作方式

46 MD I D

连接上拉电阻 复位信号低电平有效

47 RSTB I D

连接上拉电阻 中断输出信号低电平有效

48 INTB O D

连接上拉电阻

2-5 12 18

MBS VREF

- - -

- A A

根据电路原理图连接上拉电阻

麦克风偏置 声音信号参考电压

3.2.2语音识别原理

LD3320是一颗基于非特定人语音识别(SI-ASR,Speaker Independent Automatic Speech Recognition)技术的语音识别/声控芯片。 LD3320 芯片是“语音识别”专用芯片。芯片包括了语音识别处理器和一些外部电路,有ADC、DAC 转换器、麦克风接口、声音输出接口等。LD3320芯片可以不连接任何外部的辅助芯片如Flash、RAM 等,直接集成在自身的产品中就能完成语音识别/声控/人机对话功能。而且,语音芯片的关键词语列表能够被随意的动态改变的的,本文介绍如何编写程序实现芯片的功能LD3320完成非特定人语音识别,每次识别能设置50项候选句以供识别参考,单字、词组或短句都可以作为识别的句子,每个是别句的长度应该少于10个汉字或79个字节的拼音串。另外,识别句内容是能随意动态编辑修改的,所以一个系统能完成多种场景。芯用片采用48脚QFN塑料封装,工作供电固定为3.3V。芯片内部电路图描述如图3.2所示。芯片的主旨就是是语音识别运算器,加上输入、输出、AD/DA转换等模块,完成语音识别的功能。LD3320还支持并行和串行接口与其他模块的连接。

LD3320内部集成了快速稳定的优化算法,因此不需要外接Flash和RAM等存储设备,并且也不需要用户事先经过语音训练和录音来完成非特定的语音识别,所以LD3320的识别率比较高,也比较稳定。

MBSVREFMUXDACMUXHPOLLOUTLEQ1EQ2EQ3ADCMUXDACClockPLL语音识别运算器LOUTR并行和串行(SPI)接口P0-P7控制信号输入电源VDD VDDIOVDDA

图3.2 LD3320内部电路的逻辑框图

时钟(Clock)芯片必须连接外部时钟,可接受的频率范围是2—34MHz,而芯片内部还有PLL频率合成器,可产生特定的频率供内部模块使用。对芯片的复位信号(RSTB*)必须在VDD/VDDA/VDDIO都稳定后进行,无论芯片正在进行何种运算,复位信号都可以使它恢复初始状态,

并使各寄存器复位。如果没有后续的指令(对寄存器的设置),复位后芯片将进入休眠状态。此后,一个CSB*信号就可以重新激活芯片进入工作状态。并行芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(P0-P7),4个控制信号(WRB*, RDB*, CS*, A0), 以及一个中断返回信号(INTB*)。串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将(SPIS*)接地。此时只使用4个管脚:片选(SCS*)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO)。 寄存器对芯片的设置和命令,包括传送数据和接受数据,都是通过对寄存器控制来完成的。例如进行语音识别时,设置识别的关键词语列表,设定芯片的识别模式,识别完成后获得识别结果都是通过读/写寄存器来完成。播放声音时,就是将MP3格式的数据循环放入FIFO对应的寄存器。(识别结果是通过寄存器返回识别出的关键词语在关键词语列表中的排列序号Index数值,该Index数值是在设置关键词语列表时指定)喇叭音量的外部控制除了特定寄存器来控制音量以外,芯片外部的电路可以控制喇叭的音量增益。使用的是EP1、EP2、EP3对应的管脚。 此次设计的语音识别中,LD3320与STC11L08XE直接相连,而且采用10K电阻上拉,A0用来判断是数据段还是地址段,控制信号RDB、WRB、CSB、RSTB以及中断返回信号INTB与STC11L08XE直接相连,为了辅助系统稳定工作,均采用10K电阻上拉。LD3320和STC11L08XE采用同一个外部22.1184MHz时钟,MBS作为麦克风偏置,并接一个RC电路,以保证输出一个浮动电压给麦克风。 LD3320内部语音识别的原理是先通过MIC输入的声音信号进行频谱分析,其次提取语音特征,通过以上两步将得到语音的特征信息,第三步是将关键词列表中的数据与特征信息进行匹配,最终找出得分最高的关键词作为识别结果输出,具体过程如图3.3所示:

MIC频谱分析特征提取语音识别器LD3320芯片关键词列表拼音串MCU 图3.3 LD3320语音识别原理图

3.2.3LD3320应用电路设计

一个微控制器MCU和LD3320组成了LD3320的基本应用电路,电路中的主控芯片单片机,是为了完成对LD3320芯片寄存器的操作。对于LD3320芯片的所有操作,都是通过对寄存器的控制来完成。

例如设置标志位、读取状态、向FIFO写入数据、识别完成后获取识别结果等。比如在编辑关键词的时候,是单片机通过把关键词语的拼音串设置进LD3320有关寄存器来完成关键字编辑的。 LD3320的寄存器大概分为这几类:FIFO数据缓存器、语音识别控制寄存器、音量调节、模拟电路和其他辅助寄存器。寄存器的读写方式有两种方式,即串行SPI方式和标准并行方式。LD3320地址寄存器的地址空间为8位,编号从00H-FFH。

我们将演示程序全部烧录在MCU内置的Flash中,主控MCU直接控制LD3320完成所有语音识别工作。

电源部分主要由21K电阻,10uF电容,陶瓷电容,和电源指示灯,将5v电源转换成LD3320需要的3.3V的电压。音频的输入和输出可以使用驻极体MIC和0.5W的麦克风。语音识别完成后,为了完成对后续电路的驱动,可以利用MCU的串行口与其他模块进行连接。

MCU的P0端口的8根线和LD3320的并行方式连接,控制线也分别连接,此外还要连接复位信号和中断信号。对于LD3320来说,复位信号(RSTB)通过单片机发出,不过中断信号通过LD3320发出,再由的单片机来负责接收。 3.3复位电路

在振荡器工作时,在RST引脚上出现多个时钟周期的高电平使单片机复位。

根据设计的的要求,两种基本形式的复位操作:上电复位和上按键与上电复位。上电复位就是在接通电源后自动完成复位操作。如下图所示电容C1和电阻R1对电源十5V来说构成微分电路。上电后,RST维持一段高电平时间,因为单片机内的等效电阻的影响,图中电阻R1不使用,也可以有上电复位的操作能力,如下图3.4所示。

图 3.4 复位电路

在电源接通后单片机就可以自动复位,而且在单片机运行的时候使用开关控制也可以使单片机

复位。常用的是上电或开关复位电路。上电后,由于电容C2的充电和反相门的作用,使RST持续一段时间的高电平。在单片机正在运行当中时,按下复位键K然后松开,也可以使RST为维持在高

电平,因此实现上电与开关复位的操作。根据以往的操作经验,可以得出这复位电路的电容、电阻的参考值。Cl=10uF,R1=1kΩ C2=104 本次电路采用的是上电与上电复位。 3.4时钟电路

时钟电路是用来产生单片机工作时所必须的时钟信号,单片机自身就是一个相当复杂的同步时序电路,为确保工作方式的顺利完成,单片机遵循时序执行指令进行工作在单一的时钟信号的严格监控下控制下,时钟的频率与单片机的速度和稳定性息息相关。一般有两种形式的时钟分别为:内部时钟和外部时钟。

我们系统提供时钟信号使用的是的是内部时钟,用于构成振荡器的高增益反向放大器在就在单片机的内部,这个放大器的输入输出引脚为XTAL1和XTAL2,XTAL1和XTAL2跨接在晶体振荡器和用于微调的电容,就组成了了一个自激励振荡器。

电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为22.1184MHZ,频率越高单片机的速度就越快,但对存储器速度要求就高。外部时钟电路如图3.5所示。

XTAL1C130PF石英晶体C230PF振荡器XTAL2 至内部时钟电路STC1F08XE

图3.5 STC11L08XE单片机外部时钟电路

3.5继电器电路概述

继电器是控制系统中一种重要的原件,它的作用就是按照某种要求接通或断开控制系统的电路。根据动作的原理不同,继电器可以分为:电磁式、感应式、电子式、热效应式、气动式和电动机式等,最常用的是电磁式继电器,它是根据吸引线圈中的电流量的大小来动作的。常用的继电器是有触点的,触点有通和断两种状态,状态的改变由某种信号控制,可以用一个电磁铁的吸合或断开控制触点状态,这样就组成一个电磁式继电器,因此,继电器就是根据某种物理量的变化来改变其触点状态的控制元件。继电器在控制系统中的作用有两点: