一、设计要求
- 以FPGA接收语音控制信号和识别控制信息以控制核心;
- 通过继电器控制热水器、加湿器、空调等三种家用电器;
- 二次升级要求:利用无线模块控制热水器、加湿器、空调等三种家用电器
二、硬件选择
- 选择语音识别模块LD选择3320模块的原因是该模块可以定制语音指令和指令数据;其次,数据界面灵活SPI、UART,固定并行数据接口,详见数据手册和开发说明书。
- 鉴于手头只有正原子,FPGA开发板,在这儿就直接使用。
三、架构设计
如下图所示,这是本次设计的基本结构,首先由LD3320通过语音信息收集完成语音信息UART接口接收相应的语音指令,FPGA转换指令控制之间转换,产生控制继电器开关的控制信号。
四、系统设计
4.1 整体架构设计
如下图所示,为FPGA初步架构设计主要包括以下三个模块。
speech_rec_uart:接收语音识别模块的数据指令信息;
function_ctrl:分析判断数据指令,输出相应的控制信号;
pwm_ctrl:控制继电器的生成pwm控制信号;
4.2speech_rec_uart设计
在设计模块之前,我们需要了解语音模块的工作原理和使用方法,这需要自己研究手册。
- 第一步是定制语音识别模块,如下图所示LD在3320开发数据中提供的自定义设置平台,我们可以根据自己的需要完成存储设置。
根据自己的设计要求,在自定义的命令设置中添加六个指令:开热水器、关热水器、加湿器、加湿器、空调和空调。
对应的数据指令如下:
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.3function_ctrl设计
将改变模块功能LD对比3320语音指令信息,完成三种电器的控制信号开关输出控制;具体功能见下面的模拟。
4.4pwm_ctrl 设计
模块功能由相应的电气继电器控制PWM波,具体设计见下面的模拟图。
五、设计仿真结果
5.1speech_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@13.com,欢迎各位学者一起讨论学习。