基于语音技术的智能家居系统的设计毕业论文_第1页
基于语音技术的智能家居系统的设计毕业论文_第2页
基于语音技术的智能家居系统的设计毕业论文_第3页
基于语音技术的智能家居系统的设计毕业论文_第4页
基于语音技术的智能家居系统的设计毕业论文_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、 引言心有多大,舞台就有多大。每个人都怀揣着梦想,想要更好的未来,想要更好的生活,所以每个人都在不断奋斗和创新,这种创新不但推动了个人的进步,更推动了社会的发展。于是人类的生活越来越方便,人们的居住环境也越来越智能化。这种智能化在智能家居上就有很好的体现。语音识别技术在现代生活中有画龙点睛的作用,与很多领域都息息相关。例如信号处理、HYPERLINK /doc/5408414.html模式识别、HYPERLINK /doc/2952526.html人工智能等领域。其中国内中科院的自动化所、清华大学等科研机构和高校等许多研究机构都在从事语音识别领域的研究和开发,并且国家863智能计算机专家组还为

2、语音识别技术研究专门立项,并取得了高水平的科研成果1。语音识别技术的目标是将人类的语言转换为计算机可读的输入。科学家们利用语音数据库里大量的数据进行分析,得到了在统计概率最优化意义上的各个基元语音特征。并且将这些特征和语音模型转化为硬件芯片。在使用这些芯片时,可以直接使用。遥控技术的出现要追溯于1960年,它虽然在60年代就出现了,但是由于种种原因,并没有得到理想的发展。七十年代末,随着大规模集成电路和计算机技术的发展,遥控技术才得到快速发展。红外遥控的特点是不影响周边环境、不干扰其他电气设备,同时也不容易被其他信号所干扰,是很好的信息传输媒体,所以目前它在通信方面被广泛的应用。51单片机是一

3、款具有有较强的抗干扰能力,运行速度比较高,功耗比较低的单片机。它可以作为核心处理器来处理信息和控制其他设备,同时价格比较低廉,性价比很高,所以在很多系统中,都有其应用。这些技术的配合51单片机,可以为本设计成功的模拟智能家居系统,方便了设计者对智能家居这一课题的研究和学习。智能家居可以为使用者提供更加舒适安全的生活环境,也可以帮助人们合理的分配和利用资源。智能家居系统的出现,让人们的幸福感有所提升,符合现代人的生活理念,相信在不久的未来,它将会普遍被每一个家庭所应用,让人们每一个人,真正享受智能化的生活。2 智能家居系统的前期研究2.1 智能家居系统的发展现状及发展趋势2.1.1 国外的发展现

4、状早在20世纪80年代,世界上就有智能化的建筑出现。这个建筑出现在美国,它的智能化体现在它利用了计算机系统去监控楼内的空调、照明等用电设备。同时可以提供语音通信和电子邮件等服务。在21世纪初期,出现了家庭的智能化系统。这种智能化系统应用于许多的家庭中,帮助人们完成了许多的功能,方便了人们的生活。世界首富比尔盖茨先生也耗资6000万美元打造属于自己的高端别墅的智能家居系统。科技在发展,国外的这种技术也在不断的完善。随着技术的成熟,超过一半的家庭都在使用这种家庭智能化系统。在智能家居系统的研发方面,美国及一些欧洲国家一直处于领先地位。好多国家的好多公司都想着研发出属于自己的控制系统。目前市场上出现

5、的智能家居控制系统主要有X-10、EIB和8X等。这些系统都有属于自己的优势,同样也有属于自己的劣势。X-10系统采用集中的控制方式,如果家庭在使用这个系统时,它不需要额外的布线,这是它的优势。但是在施工方面,需要开槽或者钻孔,所以难度比较高,又由于施工费用比较高,所以没有应用于国内市场。EIB系统采用的是预埋总线和中央控制的方式。价格昂贵,没有满足大部分人的消费观,所以没有应用于国内市场。8X系统采用预处理总线和集中控制的方式。该系统日益成熟并且并且相对来说比较符合中国的国情。但是系统的灵活性不够,所以也没有应用到中国市场。国外的技术相对来说比较先进,发展也很迅速。但是中国的国情,决定了不同

6、地域的不同的使用者会有不同的需求。国外的某种技术,也许可以满足一部分人的需求,但是不适合普遍使用。所以要开发出适合自己的智能家居系统。2.1.2 国内的发展现状20世纪90年代以后,中国的智能家居才开始出现,智能小区开始兴起。中国的智能化的建筑最早出现在上海、深圳和广州等一线的沿海城市,随后大陆才开始陆续发展的。在1999年实施的全国住宅小区智能化技术示范工程,使人们国家的智能化又上升到一个新的阶段。到目前为止,在中国的某些大城市中,有近一半的家庭实现了智能化。中国企业也纷纷推出自己的产品,例如海尔的e家庭,这个系列的产品以海尔电脑作为控制中心,各种网络家电作为终端设备,海尔移动电话作为移动数

7、字控制中心3。海尔也不定时的推出自己的一系列产品包括网络电视、冰箱、空调、微波炉等。清华同方的e-home数字家园,该智能家居控制系统专门针对中国家庭设计。产品以功能模块开发为主,基于国外成熟的智能家居标准之上。很明显,跟国外相比较,中国对智能家居的研究起步比较晚,到目前为止都没有形成一定的标准,现在国内各大软、硬件机构正在积极的研发更为符合市场的智能化家居设备,用来解决当前智能化产品实用性差,使用复杂及产品价格昂贵等缺点,技术创新性也逐步向国际先进水平靠拢,这样的未来真的期待。2.1.3 智能家居系统发展趋势经过哥本哈根会议,中国更明确了节能减排,绿色建筑的目标。为了达到这一目标,中国势必会

8、建设绿色建筑,铺设智能化系统,智能化系统中的智能家居系统将会形成一个新的产业,也可以促进中国房地产业的发展。由于智能家居系统还缺乏统一明确的国际标准,许多公司开发出的产品都是基于自己组的网络和信息交换协议,不具有一般性。技术复杂、接入设备不能兼容以及成本过高,所以限制了产品的发展,同时限制了产品的普及。所以现在的目标是设计出一个符合中国国情、操作实用性强、成本低廉、容易推广和被人们所需求的智能家居控制系统。做为智能家居的核心系统的智能家居控制系统,它的设计功能的完善必将推动住宅智能化的发展。而系统功能的集成化、用户使用的傻瓜化和市场的平民化将是智能家居控制器的发展趋势,系统也将逐步迈向绿色化。

9、人类所想的无非也就是可以不费吹灰之力做成自己想做的事情。而智能家居的终极目标就是可以实现人们的这种梦想,实现智能化。2.2 智能家居系统的预期功能本设计中要求语音识别采用LD3320,完成语音命令的采集与识别,并将结果传送给单片机;红外发射采用红外发光二极管,在单片机控制下发送相应序列的红外信号;红外接收采用HS0038,接受红外信号并解码,传送给单片机。利用继电器模拟家用电器;用单片机控制整个系统。可以达到预期的功能。智能家居系统的预期功能是:当对着麦克风下达一个命令时,相应的继电器模块的指示灯会亮或者灭。同样应用到现实中,所实现的功能也应该是当要说出一个命令时,家用电器会自动开启或者关闭。

10、减少了人为操作,让人们真正享受智能化的生活。2.3 智能家居系统的设计方案本设计综合性相对比较高,要软硬件相结合。解决了软件问题,还需要知道模拟智能家居系统的硬件是如何工作的。其工作过程:智能家居系统由麦克风、语音芯片LD3320、红外发光二极管、单片机以及红外一体化接收器HS0038、继电器等硬件组成。语音信号被麦克风收集并传送到语音芯片内部,语音芯片内部已经放置好关键词列表,收集到的语音信息与原先放好的语句进行匹配和对比,得到一个最优的结果,这个结果通过串口发送给单片机,单片机作为核心控制器可以控制红外发光二极管发出载有相应信息的的红外信号,红外一体化接收器接收后,通过解调还原出发来的信息

11、从而去控制继电器的开或者关,从而来模拟实现智能家居系统。智能家居系统的整体设计框图如下图2-1所示。语音语音信号LD3320识别数据单片机红外发射头红外信号红外遥控接收头 单片机控制信息 实现相应功能继电器 继电器图2-1 智能家居系统设计框图3 智能家居系统的硬件设计3.1 单片机模块3.1.1 单片机的简介单片机全称单片微型计算机(Single Chip Microcomputer), 又称(Micro Controller Unit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机,片内含CPU、RAM、ROM、并行I/O口、串行I/O口、定时器/计数器、A/D、D/A、中断系统

12、、系统时钟及系统总线等,它本身就是一个嵌入式系统,同时也是其他嵌入式系统的核心4。关于其内部结构的简介如下表3-1所示。表3-1 单片机内部结构简介名称简介微处理器(CPU)8位的CPU,包括了运算器和控制器数据存储器(RAM)可以放数据,内存128B。最大外扩为64KB程序存储器(ROM/EPROM)用来放程序,最大外扩64KB。51单片机是4KB的ROM并行I/O口4个8位并行I/O口(P0、P1、P2、P3)串行口4种工作方式。可以与其他单片机相连,实现更加复杂的功能定时器/计数器2个16位定时器/计数器。中断系统具有5个中断源,2级中断优先权。特殊功能寄存器(SFR)一共有21个。用于

13、CPU对片内其他部分进行管理、控制、监视。上表介绍了单片机的内部结构,在这里值得说明的是51单片机有很多种不同的型号。区分它们主要依据存储器的配置。在这里以最简单的例子来说明,8031芯片内是没有程序存储器的,但是其他型号的芯片里有程序存储器。还有增强型的存储容量比普通型的存储容量要多至少1倍。介绍完单片机的内部结构,现在来介绍下单片机的引脚及其功能。单片机分为可总线扩展的和不可以总线扩展的,是因为单片机本身可以满足这些系统所需要的功能,不需要外扩。本设计中所使用的单片机采用的是双列直插式的封装结构,一共有40个引脚,本设计中没有用到单片机的所有引脚,只使用了电源端、接地端、串口输入、外部中断

14、以及P0P3的某些引脚。在这里介绍下各引脚的功能,如下表3-2所示。表3-2 51单片机的引脚功能表名称功能简介P1口(18脚)P1口是一个8位双向I/O口。当P1口的锁存器写入 “1”时,P1口可作为输入端。是低8位的地址复用总线端口。P2口(2128脚)8位准双向I/O口。既可作为普通I/O口引脚。也可作为高8位地址总线。P2口与P1口的输出级结构相同,内部都有上拉电阻。整个端口结构基本相同。P3口(1017脚)是双功能静态端口。作为第一功能使用时,其功能与P1口相同。当作为第二功能使用时,又都有各自的定义。P0口(3239脚)8位双向三态I/O口线。既可作为普通I/O口引脚。也可作为数据

15、/低8位地址总线。VCC(40)电源电压端。GND(20)地端。RST(9)复位输入端。复位后,内部专用寄存器及I/O口的处置与8051的情况一样。而内部的状态保持不变。XTAL1(19)振荡器反相放大器的输入。内部时钟发生器的输入端。XTAL2(20)振荡器反相放大器的输出端。ALE地址锁存允许,当单片机访问外部存储器时。该引脚的输入信号ALE用于锁存P0的低8位地址。ALE输出的频率为时钟振荡频率的1/6。PSEN程序存储器允许。输出读外部程序存储器的选通信号。取指令操作周期,PSEN的频率为振荡频率的1/6;若此期间有访问外部数据存储器的操作。则有一个机器周期中的PSEN信号将不出现。E

16、AEA=0,单片机只访问外部程序存储器。对8031此引脚必须接地。EA=1,单片机访问外部程序存储器。对内部有程序存储器的单片机。此引脚必须接高电平。在这里需要注意的是,P3口具有双功能,介绍下它的第二功能,以便设计者更好的利用单片机以完成本设计所需要的功能。P3口的特殊功能如下表3-3所示。表3-3 P3口特殊功能口线特殊功能P3.0RXD ( 串行口输入端 )P3.1TXD ( 串行口输出端 )P3.2/INT0 ( 外部中断 0)P3.3/INT1 ( 外部中断 1)P3.4T0 ( 定时器 0 外部输入 )P3.5T1 ( 定时器 1 外部输入 )3.1.2 单片机的外围电路单片机的外

17、围电路包括复位电路和时钟电路两部分。复位电路的作用主要是,不管单片机遇到什么样的不正常的操作,都可以实现单片机的初始化,使它从某一确定的状态重新开始运行。上电复位和开关复位都可以完成复位电路的作用,它们只是2种不同的形式。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位4。复位电路如图3-1所示。RSTRST图3-1 RST电路其中RST端接51单片机的第9引脚,按下复位按键以后,PC指向0000H单元、SP指向07H单元、P0口为FFH、P1口为FFH、P2口为FFH、P3口为FFH以及其他的寄存器为0。51

18、单片机芯片内部有一高增益反相放大器,用于构成振荡器.反相放大器的输入端为XTAL1,输出端为XTAL2,在XTAL1、XTAL2(第19、18引脚)两端跨接一个石英晶体振荡器,和两个电容就构成了稳定自激谐振电路,晶振频率为11.0592MHz。C12,C13是两个瓷片电容,与晶振Y2构成了自激谐振电路,其电容的作用主要是对频率进行微调,一般取30-45PF左右,使用该电路可产生稳定的11.0592MHZ频率,受外界的环境的干扰影响非常小5。其接法如图3-2所示。图3-2 外围时钟电路3.1.3 单片机的硬件电路本设计最核心的器件是51单片机,它控制了整个系统,完成了语音信息的处理、红外信号的发

19、射以及红外信号的接收。它的外围电路如下图3-3所示。图3-3 51单片机外围电路3.2 语音识别模块3.2.1 语音芯片LD3320的介绍LD3320芯片是一款“语音识别”专用芯片,由ICRoute 公司设计生产。该芯片集成了语音识别处理器和一些外部电路,包括AD、DA转换器、麦克风接口、声音输出接口等,本芯片不需要外接任何的辅助芯片如Flash、RAM等,直接集成在现有的产品中既可以实现语音识别、声控、人机对话功能,并且,识别的关键词语列表是可以任意动态编辑的6。主要的特色功能有:非特定人语音识别技术、可动态编辑的识别关键词语列表、单芯片解决方案、高精度A/D和D/A通道、高准确度和实用的语

20、音识别效果、可自由编辑50条关键词语7。它的内部逻辑结构如图3-4所示。图3-4 LD3320内部结构逻辑图LD3320芯片有48个引脚,在图中可以看到20个引脚,在本次设计中没有使用所有的引脚。MICP和MICN分别接麦克风的正负引脚、CLK接外部时钟,频率在4-48HZ之间、GND是接地端和VDD是电源端。电源的主要目的是给芯片供电,使它可以正常工作。3.2.2 语音识别的原理语音识别技术是将人类语音中的词汇内容转换为计算机可读的输入。科学家们利用语音数据库里大量的数据进行分析,可以得到在统计概率最优化意义上的各个基元语音特征。并且将这些特征和语音模型转化为硬件芯片。语言识别原理主要是:科

21、学家建立语言模型,分析语音特征,并将这些转化为硬件芯片LD3320。最先将相关命令的词语列表,写入芯片内。其次通过麦克风采集语音信号,并将得到的信号,送入芯片内部。然后芯片将收到的信号进行频谱分析,提取特征,并根据它内部的这种特殊的算法和编辑好的关键词列表一一匹配,将匹配率最高的结果以串口的形式发回给单片机。语音识别的过程,就是把用户说出的内容,通过频谱转换为语音特征,和这个关键词语列表中的条目进行一一匹配,最优匹配的一条作为识别结果14。在本设计中语音识别列表是打开灯、关闭灯、打开热水器、关闭热水器、打开空调、关闭空调、全部打开、全部关闭灯等。不论这个列表的条目内容是什么,只需要用户设置相关

22、的寄存器,就可以把相应的待识别条目内容以字符形式传递给识别引擎8。语音识别过程如下图3-5所示。图3-5 语音识别芯片识别过程框图3.2.3 语音识别模块的硬件连接该模块由单片机、语音芯片以及麦克风组成。单片机选用的是51单片机,语音芯片的型号是LD3320。单片机是语音模块的核心控制平台,并且它控制着语音芯片去完成对语音信号的采集和对比分析,同时将对比得出的一个最优结果以串口中断的方式传回给单片机。最后通过红外遥控模块传送给另一个单片,使继电器的指示灯亮或者灭。语音识别模块与主控单片机的硬件连接如图3-6所示。图3-6 语音识别模块的硬件连接图3.3 红外遥控模块红外遥控模块主要有两部分构成

23、,红外发送部分和红外接收部分,现在一一介绍这两部分。这个模块最大的优点就是,不会干扰其他的信号,不影响其他设备的正常工作,而自己本身也不受其他信号的影响。3.3.1 红外发光二极管的介绍红外发射部分的主要元件为红外发光二极管,实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光9。在其实际应用中要加上反向电压,才可以正常工作,它发出的红外线的波长在940毫米左右。在这需要注意的是:在调试时,如果不知道红外发光二极管是好是坏,能否正常工作,可以用万用表的电阻档量他的正反向电阻。3.3.2 红外发射部分的介绍单片机在空闲时候,

24、功耗比较低,比较节能。当出现语音命令时,语音识别模块会在触发状态下采集语音命令进行分析,并将结果传给单片机,产生串口中断,这时单片机会调用命令函数关闭串口中断,同时开启定时器中断,定时器T0作为红外线发射频率控制器,当T0定时溢出时中断程序使红外管接口电平反转一次,写入定时器的初值不同,在输出端口就得到不同的发射频率14。在语音识别模块的论述中讲到,语音芯片会将采集到的语音信号与放好的关键词列表进行匹配得到最优结果,这个结果会以串口的方式发送给单片。单片机接收到这个最优结果以后,会打开定时器,产生一个个的高低电平。即完成了发送信号的编码,产生了一个脉冲串信号。这个脉冲串信号载有相应的信息,通过

25、红外发光二极管发射出去。3.3.3 红外发射部分硬件连接这一部分由51单片机和红外发光二极管构成。用来发送二进制信号经过编码以后的脉冲串信号。它与单片机的连接方式如下图3-7所示。图3-7 红外发射部分的电路图3.3.4 HS0038的介绍红外接收部分采用一体化接收器HS0038。HS0038黑色环氧树脂封装。一共有三个管脚:地端、电源端和信号输出端。它可以不受其他光源的干扰,功耗低,而且灵敏度高。HS0038的抗干扰能力较强,成本低,完成对信号进行放大、检波、整形得到TTL电平的编码信号,不需要其他外围电路,最后将编码信号传送给单片机,经单片机解码并执行去控制相关对象15。它的引脚及功能如下

26、图3-8所示。图3-8 HS0038的引脚及功能图在此需要注意,判断HS0038是否可以正常工作时,需要在把上图的第二和第三引脚之间连接一个二极管和一个发光二极管,手拿遥控器对着接收头按下任意键,如果发光二极管闪烁,可以证明HS0038可以正常工作。3.3.5 红外接收过程及硬件连接红外接收就是对红外信号的接收、放大、检波、整形,之后解调出红外遥控编码脉冲的一种过程16。注意的是接收的波长为7501150纳米之间。它的具体实现过程如下图3-9所示。解码单片机解码单片机红外发射电路一体化红外接收头单片机输出调制发送接收解调图3-9 红外遥控的实现过程图红外接收部分只需要HS0038就可以完成所需

27、要的功能,不需要外加其他设备,HS0038与单片机的连接方式如下图3-10所示。图3-10 红外接收电路图3.4 整体实物图模拟智能家居系统的实物连接如下图3-11所示。图3-11 整体实物图4 智能家居系统软件设计4.1 语音识别模块语音识别模块的整体的流程图如图4-1所示。N 开始 是否为触发状态 采集语音命令 识别语音命令 传送相应的语音命令 系统是否继续识别 结束YNY 串口初始化 芯片通用初始化 语音识别初始化写列表 等待语音输入N 开始 是否为触发状态 采集语音命令 识别语音命令 传送相应的语音命令 系统是否继续识别 结束YNY 串口初始化 芯片通用初始化 语音识别初始化写列表 等

28、待语音输入图4-1 语音模块流程图由图3-5可以知道,语音芯片通过P3.0与51单片机相连接。在送入语音命令之前,所要做的准备工作如下:把所连接的串口、语音芯片以及一些寄存器初始化;把所需要的关键词列表写入到语音芯片中;等待语音信号的输入。当麦克风收集到语音命令时,在语音芯片内部会以一定的算法将关键词列表与该语音信号进行对比匹配。将最终的结果通过P3.0送入单片机。要注意的是:对语音芯片、所连接的串口的各种操作都必须通过寄存器的操作来完成,包括设置标志位、读取状态、向FIF0写入数据等16。4.1.1通用初始化让芯片还原最初的方式和状态,等待语音命令的输入,这样会更好的识别信息,完成操作。参考

29、程序如下:Void LD_init_Common( )bMp3play=0;LD_ReadReg(0 x06);/*soft reset.*/LD_WriteReg(0 x1F,0 x0);Delay(10);LD_WriteReg(0 x89,0 x03); LD_WriteReg(0 xCF,0 x43);LD_WriteReg(0 xCB,0 x02);/*PLL setting*/LD_WriteReg(0 x11,LD_PLL_11);If (nLD_Mode=LD_MODE-MP3) LD_WriteReg(0 x1E,0 x00);LD_WriteReg(0 x19,LD_PLL

30、_19);LD_WriteReg(0 x1B,LD_PLL_1B);LD_WriteReg(0 x1D,LD_PLL_1D);LD_WriteReg(0 x79,LD_LEDMTR_FREQ); ELSE LD_WriteReg(0 x1E,0 x00); LD_WriteReg(0 x19,0 x3f); LD_WriteReg(0 x1D,0 x1f); LD_WriteReg(0 x1B,0 x08); LD_WriteReg(0 xCD,0 x04); LD_WriteReg(0 x17,0 x4c); LD_WriteReg(0 xB9,0 x00) LD_WriteReg(0 xC

31、F,0 x4f);LD_WriteReg(0 x6F,0 xff); 4.1.2 寄存器的初始化语音识别模块中,寄存器有着很重要的作用,可以说大部分的操作是根据它来完成的。对寄存器设置的程序如下:Void LD_init_ASR()nld_Mode=LD_MODE_ASR_RUN;LD_Init_Common();LD_WriteReg(0 xBD,0 x00);LD_WriteReg(0 x17,0 x48); Delay(10);LD_WriteReg(0 x3C,0 x80);LD_WriteReg(0 x3E,0 x07); LD_WriteReg(0 x38,0 xff)LD_Wri

32、teReg(0 x3A,0 x07);LD_WriteReg(0 x40,0 x08);LD_WriteReg(0 x42,0 x00); LD_WriteReg(0 x44,0 x08)LD_WriteReg(0 x46,0 x08);LD_WriteReg(0 x1b,0 x48);Delay(1); 4.1.3 写入识别列表LD3320最多支持50个识别条目,每个识别条目可以是单字、词组或短句,长度为不超过10个汉字或者79个字节拼音串。每个识别条目是标准普听话的汉语拼音(小写),每两个字(汉语拼音)之间用一个空格间隔,编号可以相同,可以不连续,但数值要小于256(00H-FFH)17。

33、在写入识别列表时,每一个待识别的语句需要一个编号。这个编号是识别出以后,通过串口返回单片机的值。值得注意的是,这个编号是要一字节的。同时列表中不同的待识别语句的编号可以相同。也可以不同。可以连续,也可以不连续。如表4-1所示。 表4-1 编写的语音识别列表编号字符串0 x01da kai deng0 x02guan bi deng0 x03da kai kong tiao 0 x04guan bi kong tiao 0 x05da kai dian shi0 x06guan bi dian shi0 x07da kai re shui qi0 x08guan bi re shui qi0 x

34、09quan bu da kai0 x0aquan bu guan bi把关键词列表写入到语音芯片的代码如下:uint8 LD_AsrAddFixed( ) uint8 k, flag; uint8 nAsrAddLength; const char sRecog1015 = da kai deng, guan bi deng, da kai dian shi, guan bi dian shi, da kai kong tiao,guan bi kong tiao,”da kai re shui qi”,”guan bi re shui qi”quan bu da kai”quan bu g

35、uan bi;const unit8 pcode10=code_dakaideng, code_guanbideng, code_dakaidianshi, code_guanbidianshi, code_dakaikongtiao, code_guanbikongtiao, code_dakaireshuiqi, code_guanbireshuiqi, code_quanbudakai, code_quanbuguanbi;flag = 1;for (k=0; k10; k+) if(LD_Check_AsrBusyFlag_b2() = = 0) flag = 0; break; LD

36、_WriteReg(0 xc1, pCodek ); LD_WriteReg(0 xc3, 0 ); LD_WriteReg(0 x08, 0 x04); Delay(1); LD_WriteReg(0 x08, 0 x00); Delay(1); for (nAsrAddLength=0; nAsrAddLength20; nAsrAddLength+) if (sRecogknAsrAddLength = 0) break; LD_WriteReg(0 x5, sRecogknAsrAddLength LD_WriteReg(0 xb9, nAsrAddLength); LD_WriteR

37、eg(0 xb2, 0 xff); LD_WriteReg(0 x37, 0 x04); return flag; 4.1.4 开始识别完成各初始化,并且将关键词列表写入芯片以后,就可以等待语音命令的输入。当有信号输入时,语音芯片会调用识别程序。单片机程序中,一般会用一个全局变量控制当前状态,在编程时把对该状态的设置放在LD3320芯片开始识别以前18。uint8 LD_AsrRun() nAsrStatus=LD_ASR_RUNING; LD_WriteReg(0 x35,MIC_VOL); LD_WriteReg(0 x1C,0 x09); LD_WriteReg(0 xBD,0 x20)

38、; LD_WriteReg(0 x08,0 x01); delay( 1 ); LD_WriteReg(0 x08,0 x00); delay( 1 );将识别到的结果存放到C5寄存器。如果麦克风采集到声音,不管是否是正常结果,都会产生一个中断信号,而中断程序要根据寄存器的值分析结果。读取BA寄存器的值,可以知道有几个候选答案,而C5寄存器里的答案是得分最高、最可能正确的答案18。麦克风采集到语音信号以后,送入到LD3320的内部。与写入的关键词列表进行对比与匹配,会得到一个最优结果。将该结果所对应的序号传递给单片机。此时单片机会把该信号进行调制然后通过红外发光二极管发射出去。语音控制指令所对

39、应的返回值如下表4-2所示。表4-2 语音控制指令对应的串口返回值语音控制指令对应串口返回值打开灯0 x01关闭灯0 x02打开空调0 x03关闭空调0 x04打开电视0 x05关闭电视0 x06打开热水器0 x07关闭热水器0 x08全部打开0 x09全部关闭0 x0abuff=USART_Receive(); switch (buff)case 00:clrbit( PortA, PA0 ); /对PA0写0break;case 01:setbit( PortA, PA0 ); /对PA0写1break;case 02:clrbit( PortA, PA2 ); /对PA2写0break;

40、 case 03: setbit( PortA, PA2 ); /对PA2写1 break; case 04: clrbit( PortA, PA4 ); /对PA4写0 break; case 05: setbit( PortA, PA4 ); /对PA4写1 break; case 06: PortA=0 xFF; break; default: break;本设计中利用该芯片模拟了智能家居系统。设计的过程中,设计者常常需要下达一些短口令,而在所设计的训练环境中,如果口令采用键盘或鼠标的方式进行输入,这显然违背了设计的初衷,所以使用LD3320控制电路用语音识别的方式,将获得的识别结果再换

41、成串口信号,输入单片机,达到语音控制的目的。4.2 红外发射部分4.2.1 红外发射原理单片机接收到串口发送的信息以后,会打开定时器,产生一个个的高低电平,产生了一个脉冲串信号。这个脉冲串信号载有相应的信息,然后通过单片机的控制,从红外发光二极管中发出调制好的脉冲串信号。这就是红外发射的原理。编码方式采用的是PPM编码。这种编码具有以下特征:(1) 编码后的信号是由前导码、16位地址码(8位地址码、8位地址码的反码)和16位操作码(8位操作码、8位操作码的反码)组成。前导码:是一个遥控码的起始部分,由一个9ms的高电平和一个4.5ms的低电平组成,作为接受数据的准备脉冲19。地址码可以用来区分

42、设备。16位操作码用来执行不同的操作。需要注意的是,红外遥控设备不同,16位的地址码是不相同的。所以地址码的作用就是防止不同遥控设备发射的码型的干扰。(2) 采用脉宽调制的串行码,是二进制码,由0和1组成。这2个字符的周期不同。而且高低电平的顺序也相同,先有一个高电平,后有一个低电平。高电平持续的时间也一样为0.56ms。低电平持续的时间不同,字符0的电平持续的时间为0.56ms。字符1持续的时间为1.12ms。二进制编码如下图4-2所示。图4-2 二进制编码4.2.2 红外发射程序首先初始化串口中断,等待串口中断响应。当有语音信号输入时,语音芯片将通过匹配得到的最优的结果以串口的形式发回单片

43、机,这时单片机出现串口中断,会执行串口中断函数。得到命令代码,开启定时器中断,调用发射函数。最终可以使红外发光二极管发出载有相应信息的信号。红外发射函数要先发送一个前导码由9ms的高电平和4.5ms的低电平构成,之后在发送16位地址码,16位地址码能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。本设计中的地址码为3,地址反码为252。最后发送16位数据操作码和数据操作反码。本设计中的数据操作码就是语音识别结果。具体流程图如图4-3所示。 开始串口初始化等待是否串口中断发送信号否是图4-3 红外发射流程图本设计中波特率默认为9600bps。则串口初始化代码如下所示:#define FOSC

44、 11059200 /11.0592M晶振#define BAUD 9600void UART_Init(void)PCON |= 0 x00;SCON = 0 x50; /8位数据,可变波特率TMOD = 0 x20;TL1 = -(FOSC/12/32/BAUD); /设定定时初值TH1 = TL1; /设定定时器重装值ET1 = 0; /禁止定时器1中断TR1 = 1; /启动定时器1本设计中,当串口接收到信息以后,会产生串口中断,在接收数据时需要清除串口中断标志位,同时打开定时器,利用定时器,产生一串高低电平。这串高低电平就是要发送的信息。而定时器中断响应函数如下所示:void tim

45、eint(void) interrupt 1 TH0=0 xFF; TL0=0 xE6; /设定时值为38K,也就是每隔26us中断一次count+;if (flag=1)OP=OP; /如果是待发送的有效数据flag=1elseOP = 0; ir_in = OP;4.3 红外接收模块在红外接收模块与单片机的外部中断0口相连接。当检测到有红外信号输入时,会产生外部中断。就会进入外部中断处理程序。在处理数据的过程中还要关闭外部中断直到接收完数据,才可以再打开外部中断19。对红外遥控的数据接收主要是在外部中断函数中进行的,处理过程为:当有语音送入到语音芯片内部,进过识别分析以后,由单片机控制发送

46、信号。这时红外一体化接收器最先会接收到一个低电平。因为接收器连接外部中断0口同时采用下降沿的触发方式。红外接收程序中已经将P3口设置为高电平。当接收到低电平时,产生一个下降沿,会产生外部中断。这时程序计数器PC会指向外部中断程序的入口地址。去执行外部中断处理函数。首先关闭外部中断。然后根据一体化接收器脉冲信号输出引脚的高低电平持续的时间判断红外遥控发送的数据。这个数据有4个字节,而单片机会根据第3个字节数据的不同来执行不同的操作。红外接收器在接收时会有自己的一个判断。只接收正确的红外信号。这个判断主要是根据前导码来完成。之后接收到地址码和数据操作码。单片机根据数据操作码来控制相应的继电器。红外

47、接收函数的流程图如下图4-4所示。继电器控制继电器控制返回调用红外接收函数 开始端口初始化是否外部0中断否是图4-4 红外接收流程图外部中断函数的代码如下所示:void interrupt0()interrupt 0uchar i=0,j=0,k=0,us=0;uchar addr4=0;EX0=0;for(i=0;i255;i+) /9ms内有高电平认为是干扰if(P3&0 x04) /255的值实际时间为800usEX0=1;return;while(!(P3&0 x04);/等待9ms低电平过去 for(i=0;i4;i+)for(j=0;j8;j+)while(P3&0 x04);/等

48、待4.5ms高电平过去while(!(P3&0 x04);/等待高电平while(P3&0 x04)/计算这个高电平的时间for(us=0;us=30)EX0=1;return;addri=addri1;/接收一位数据if(k=8)addri=addri|0 x80;/高电平大于0.56ms,则为1k=0;P2=(addr2); /P2的LED显示二进制键值4.4 模拟电器控制部分本设计中选用继电器模拟家用电器,继电器模块指示灯的亮灭代表家用电器的开启或关闭。继电器上一共有4个指示灯分别连着51单片机的P1.0P1.3,由这四个口来控制,低电平可以使继电器的指示灯亮。当红外一体化接收器HS00

49、38接收到红外信号时,会产生一个下降沿,使51单片机产生外部中断,调用外部中断函数。在外部中断函数中,有相应的程序控制P1口的电平的高低。从而控制继电器模块指示灯的亮灭。这部分程序代码如下:sbit num1=P10;sbit num2=P11;sbit num3=P12;sbit num4=P13;switch(P2) case 0 x01: num1=0; break; case 0 x02: num1=1; break; case 0 x03: num2=0; break; case 0 x04: num2=1; break; case 0 x05: num3=0; break; cas

50、e 0 x06: num3=1; break; case 0 x07: num4=0; break; case 0 x08: num4=1; break; case 0 x09: num1=0;num2=0; num3=0;num4=0; break; case 0 x0a: num1=1;num2=1; num3=1;num4=1; break; 其中P2代表语音芯片通过串口返回给单片机的值,也是使用者所下达的语音命令。5 硬件的调试过程当硬件与软件都设计完成以后,毕设并没有做到最后,还有最重要的一部分就是硬件的调试部分。硬件的调试主要是指各模块的调试,该设计中有2个单片机,每个单片机都需要

51、调试。此外需要调试的还有红外遥控模块、语音识别模块等。这里只讲述调试的大致过程,具有一般性。需要经过无数次的调试和修改,才有可能得到正确的结果。如果在以下各模块的调试中没有相应的现象,需要设计者自己耐心的找寻问题,解决问题。5.1 连接语音芯片和红外发光二极管的单片机的调试这个单片机中所下载的程序的主要作用有2个方面:一方面是等待语音芯片识别出语音信号以后发回信息;另一方面是将该信息通过编码调制成脉冲串信号。在调试判断这部分程序是否正确时,需要用到2个工具。一个是串口调试助手,另一个是继电器模块。串口调试助手可以用来代替语音调试模块,向单片机发送一个信号。在该程序中,设定P1.1P1.4为调试

52、端口,这四个端口分别和继电器的四个端口相连。在下载软件中,选中串口调试助手,得到的界面如下图5-1所示。图5-1 下载软件的串口调试界面图需要注意的是,图中的各选项,要选择正确。包括16进制显示、选择正确的波特率(9600)、选择正确的串口COM(在本次调试的是COM4)。在单字串发送区发送想要发送的字符,即1A(16进制)。观察继电器模块的指示灯是否有相应的变化。5.2 红外遥控模块的调试当继电器的指示灯有相应的变化以后,说明该单片机中运行的程序是正确的。可以进行下一步的调试。连接红外接收的单片机中下载的程序的作用也有2个方面:一方面是将红外接收器接收到的信息还原为二进制的编码信号;另一方面

53、是通过得到的信号去控制继电器。在对这部分进行调试时,方法同5.1节所讲的。不同的是,继电器模块连接的单片机不同。连有红外接收器的单片机的P1.1P1.4。仍然是通过串口调试助手发送相应的命令,观看继电器是否有相应的变化。如果有相应的变化,说明该单片机中的程序是正确的。同时红外发射和接收模块正常。5.3 语音识别模块的调试首先需要知道,语音芯片连接着麦克风、电源端、接地端还有单片机的串口输入端。麦克风有正负之分。那区分的方法就是,线与麦克风相连焊接的地方,有三根线连接到外壳的地方是负极,另一端为正极。对该模块进行调试时,仍然用到继电器模块。调试的方法与5.1节有相同的地方。唯一不同的是,输入的方

54、式不同。5.1节通过串口输入控制信息,而现在通过语言芯片输入控制信息。在对麦克风说一句关键词时,如果语言芯片能够识别出使用者所讲的这句话,那么芯片上绿色的指示灯会闪烁,如果继电器有相应的现象,说明语音识别模块是正常的。6 总结与展望6.1 结论设计者成功的完成了本次设计,红外遥控技术和语音技术发挥了不容小觑的作用。从3月份开始,根据自己在大学期间掌握的相对来说比较好的理论知识确定了所做毕设的类型与题目。由于一些原因在4月份开始着手准备毕设。去图书馆借来相关的书籍,和老师交流,确定了设计的大体方案。之后不但读了不少有关这方面的论文、期刊、文献等。又学习了该设计所需要的软件的使用。一切准备就绪,开

55、始动手操作。功夫不负有心人,最终成功的完成了本设计所需要的要求。使自己在大学所学的理论知识有了巩固,同时提高了自己的动手能力。本设计所做的主要工作如下:(1) 深刻的思考了智能家居发展的必要性以及发展趋势,明白了智能家居对人类的巨大作用。(2) 通过认真的思考,翻阅资料以后,为本设计选定了一个合理的方案。(3) 有了整体的方案后,又为每个模块功能的实现选择比较合适的器件。本设计的硬件选用的单片机是增强型52系列、选用的语音芯片型号为LD3320、一个驻极体麦克风、一个红外发光二极管、一个红外一体化接收器型号为HS0038和用来模拟家用电器的继电器。其中51单片机通过相应的编程去控制其他器件的运

56、行以及把各个模块连接起来。(4) 选择完所需要的器件以后。又翻阅相关资料,了解这个硬件的使用方法和内部相关数据。从而明白了硬件可以实现什么样的功能。确定的所需要的模块:单片机模块、语音识别模块和红外遥控模块。(5) 学会了各硬件的使用方法以后,通过与老师交流,设计出相应器件的外围电路。例如单片机的复位电路和时钟电路,还有各器件的接口电路,从而满足了本设计的要求。(6) 因为本设计是软硬件结合的,设计完硬件以后,需要设计软件。学会keil软件的使用、编译、下载还有串口调试等。本设计具有以下特点:(1) 结合语音芯片LD3320、红外发光二极管、HS0038等多种设备,实现了对家用电器的简单控制。

57、(2) 本设计思路简单、清晰、逻辑性强,容易让人们所接受。(3) 本设计实现的功能比较简单,但是很实用。由于大学所接触的事物、所学的知识、拥有的能力都比较有限,所以本设计和论文会有很多不完美的地方。希望大家体谅。麦克风用的是价格比较低廉的产品。红外遥控模块的性能不是很稳定。语音芯片的性能决定了语音识别的速度不高。所以本设计存在很多的缺陷,有待考察。6.2 前景展望智能家居可以让人们的生活更加方便、舒适。可以给人们带来不可想象的便利。它将会普遍被每一个家庭所应用,让每一个人,真正享受智能化的生活。本设计可以通过语音来控制家用电器的开启或者关闭。减少了人为的操作,方便了人们的生活。这是社会进步的表

58、现,也是生活水平提升的重要标志。本设计涵盖了模电、数电、单片机、信息论、C语言等多门学科。本设计的完成很好的帮助了设计者将大学所学到的知识综合运用到一起,融会贯通。同时也是一个绝佳的机会可以锻炼设计者的动手能力。理论联系实际,让设计者学到了很多知识。世界上不存在完美,没有十全十美的事物。本设计也不例外,也存在不足之处。可以改进的地方如下:(1) 本控制器是基于语音控制的。单片机在识别语音芯片采集到的信息后对家居进行远程控制。使用者在使用时必须靠近麦克风才能达到远程控制的目的。在设计中如果将语音控制改为短信收发模块。这样不管人们走到哪里,都可以随时通过手机短信去控制家电,更加方便和人性化。智能化

59、程度相对比较高。(2) 在设计中如果可以加入报警功能。家里的安全情况时刻被我们所了解。(3) 在设计中如果加入烟雾测试、温度测试等。如果家里着火会报警;如果温度过高或过低,都可以自动控制空调的开启关闭。谢 辞当毕业论文写到这里时,在一定程度上说明,毕业设计走到了最后的一个阶段。从刚刚着手准备毕设到现在,这一路走来,有很多的经验教训可以让我在以后的人生道路上参考。同时,这次的毕业设计,不但巩固了大学所学的理论知识,同时也给了我一个实践的机会。对于本次的毕设,我着手准备的时间比较晚,刚开始有考研调剂,准备复试等问题,所以在四月份,才开始正式准备。没有合理的安排好时间。在毕设的前期,比较放松,没有全

60、身心的投入进去,所以进展比较慢。到了毕设的后期,时间紧迫。不得不抓紧一切时间去调试硬件,好在最后成功的做完毕设。心里的煎熬让我明白了,不管任何时候,不管做什么事情,都应该做好计划,然后尽全力去执行。能够完成本次的毕设,好多老师和同学都给予我很多的帮助。在这里,我首先要感谢我的指导老师王丽侠,从确定毕设题目到中期检查到最后毕业论文的完成,王老师都给了我很多决定性的建议,对我的毕设有很多的帮助。然后还要感谢学长金可同学的帮助,他很耐心的给我讲程序中我不明白的地方,对我去修改程序调试硬件很有帮助。还有很多的老师和同学给了我各方面上的帮助,我在这里一并感谢。完成了毕业设计,可以大学毕业。可是在社会的大

温馨提示

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

评论

0/150

提交评论