> 文档中心 > 基于FPGA的LD3320语音识别模块驱动设计

基于FPGA的LD3320语音识别模块驱动设计


一、设计要求

  • 以FPGA为控制核心,接收语音控制信号和识别控制信息;
  • 通过继电器完成对热水器、加湿器、空调等三个家用电器的控制;
  • 二次升级要求:使用无线模块完成对热水器、加湿器、空调等三个家用电器的控制

二、硬件选型

  1. 语音识别模块选用LD3320该模块,选型理由在于,该模块能够自定义语音指令以及指令数据;其次,数据接口比较灵活,有SPI、UART,固定的并行数据接口,具体可参见数据手册以及开发说明书。

  2. 鉴于手头只有正点原子的FPGA开发板,在这儿就直接使用。

三、架构设计

如下图所示,为本次设计的一个基本的架构,首先由LD3320完成语音信息的采集工作,通过UART接口接收对应的语音指令,FPGA进行指令与控制之间的转换,对应产生控制继电器开关的控制信号即可。

四、系统设计

4.1 整体架构设计

如下图所示,为FPGA的初步架构设计,主要包含如下三个模块。

speech_rec_uart:主要接收语音识别模块的数据指令信息;

function_ctrl:将数据指令进行解析判断,输出对应的控制信号;

pwm_ctrl:产生控制继电器的pwm控制信号;

4.2  speech_rec_uart设计

在做该模块设计之前,我们需要知道语音模块的工作原理,以及使用方法,这个需要自行去研究手册。

  • 第一步,我们将语音识别模块进行指令自定义的设置,如下图所示,这是LD3320开发资料里的给的自定义设置平台,我们可以按照自己的需求完成一个寄存的设置。

        按照自身的设计要求,在自定义的命令设置中添加:开热水器、关热水器、开加湿器、关加湿器、开空调、关空调这6个指令。

        对应的数据指令为:

        FE A1 01 EF (开热水器)

        FE A1 00 EF (关热水器) 

        FE A2 01 EF (开加湿器)

        FE A2 00 EF (关加湿器)

        FE A3 01 EF (打开空调)

        FE A3 00 EF (关闭空调)

自定义指令设置时,对应的语音模块的回复信息如下:

在完成以上的设置之后,在设置平台上重新生成LD3320的烧写配置文件,然后通过资料内部提供的上位机软件,对LD3320进行内部的指令信息库的更新即可。

 4.3 function_ctrl设计

  改模块功能是将LD3320语音指令信息进行对比,完成三种电器的控制信号开、关两种状态的输出控制;具体功能见下文中的仿真即可。

4.4 pwm_ctrl 设计

模块功能为产生对应的电器继电器控制的PWM波,具体设计见下文中的仿真图即可。

五、设计仿真结果

5.1  speech_rec_uart模块仿真

根据实际设计的要求,完成如下图所示的几种指令的模拟发送, 

//                                开热水器 ---- uart发送指令 FE A1 01 EF;
//                                关热水器 ---- uart发送指令 FE A1 00 EF;
//                                开加湿器 ---- uart发送指令 FE A2 01 EF;
//                                关加湿器 ---- uart发送指令 FE A2 00 EF;
//                                打开空调 ---- uart发送指令 FE A3 01 EF;
//                                关闭空调 ---- uart发送指令 FE A3 00 EF;

 语音模块指令接收仿真图如下图所示,如图可以看到6种指令信息接收正常。其中FE 和 EF 分别表示数据指令数组的头和尾,中间的两个字节:A1表示热水器、A2表示加湿器、A3表示空调,01表示开,00表示关。

5.2  function_ctrl模块仿真 

如下图所示,对应的指令产生对应控制信号状态;

//                                开热水器 ----  A1 01 ;
//                                关热水器 ----  A1 00 ;
//                                开加湿器 ----  A2 01 ;
//                                关加湿器 ----  A2 00 ;
//                                打开空调 ----  A3 01 ;
//                                关闭空调 ----  A3 00 ;

5.3 pwm_ctrl 仿真

如图所示,三种电器的厨师状态均为关闭,在接收到打开指令之后,完成对应的开关控制操作,仿真图功能正确无误。

六、总结

本次设计完成了FPGA平台下LD3320语音识别模块的一个控制和信息采集,仿真时序图正确无误,具体的功能需要上硬件环境进行一个进一步验证。后续改进可以将继电器控制改为无线控制,完成系统的功能优化。

fdl04271011@163.com,欢迎各位学者一起讨论学习。