基于STM32F103的语音识别汽车空调控制系统设计
现在汽车上使用的电器越来越多,驾驶员需要手动操作的电器开关也越来越多,不但增加了驾驶员的负担,还影响了行车安全。本文以STM32F103VET6(以下简称STM32)芯片为控制核心,采用高性能LD3320语音识别芯片,设计基于语音识别的汽车空调控制系统。该系统可以用语音有效控制汽车空调,减轻了驾驶员的操作负担,保证行车过程中的安全。
1 系统硬件设计
运用语音识别技术,结合各种传感器对车身内外的环境(如气温、阳光强度等)以及制冷压缩机的状态等多种参数进行实时检测,与设定参数相比较,微控制器经过运算处理做出判断,输出相应的调节和控制信号。执行机构经过实时调整和修正,实现对车厢内空气环境全方位、多功能的调节和控制。系统的执行机构主要包括温度风门电机、模式风门电机、循环风门电机、鼓风机、压缩机、除霜控制继电器等。图1为系统结构框图。
1.1 主控制器
主控制器为基于ARM Cortex—M3内核的32位微控制器STM32F103VET6,内置64 KB RAM、512 KBFlash,以及丰富的增强I/O端口和联接到两条APB总线的外设,主要控制传感器模拟信号的采集、语音信号的收发和汽车空调控制信号的输出。
1.2 语音识别模块
语音识别芯片选用的是ICRoute公司的LD3320芯片。该芯片集成了语音识别处理器和一些外部电路,包括A/D转化器、D/A转换器、麦克风接口、声音输出接口等。本芯片在设计上注重节能与高效,不需要外接任何的辅助芯片(如Flash、RAM等),直接集成在现有的产品中即可以实现语音识别功能。识别的关键词语列表是可以任意动态编辑的。
参照LD3320数据手册,语音识别控制电路采用LD3320与STM32通过SPI串行方式进行连接。语音识别模块控制电路如图2所示。首先,要将MD接高电平,芯片时钟信号CLK连接到STM32时钟信号输出引脚MCO(PA8)上。引脚MBS是麦克风偏置,接了一个RC电路,保证能输出一个浮动电压给麦克风。
1.3 SD卡存储模块
要实现具有人机交互功能的语音识别控制系统,需要存放大量的MP3音频文件。本系统中,MP3音频播放文件存放在SD卡上,语音识别关键词也存放在SD卡上,这样可以很方便地更改要识别的关键词,而不需要更改程序内容。主控STM32将MP3数据依次从SD卡读出来,送入LD33 20芯片内部,这样就可以从芯片的相应的引脚输出声音。SD卡硬件连接如图3所示。SD卡与STM32通过SPI方式进行通信。将SD卡片选信号CS、数据输入信号DI、数据输出信号DO、时钟信号SCLK分别与STM32的PC11、PD2、PC8、PC12引脚连接。
1.4 传感器模拟信号输入模块
传感器模拟信号是控制系统的输入信号源。传感器把非电量的物理量变成电量后并不一定适合A/D转换器直接应用,还必须经过放大、滤波、隔离及保护措施,才能送给单片机。单片机通过检测这些传感器信号来判断系统的温度、湿度等是否满足用户的要求。以车内温度传感器为例分析,温度信号采集硬件连接图如图4所示。本系统采用NTC公司的高精度车内温度传感器Rntc,Rntc和电阻R0分压后输入到单片机。Rntc电阻值可以近似地用如下公式表达:
其中,R1为绝对温度下T1时的电阻值,T为要检测的温度,Rntc为该温度下的电阻值,B值反映了温度变化与阻值变化的关系。单片机信号输入端得到的电压为:
根据公式(2)电压计算出当前温度传感器的电阻,再由公式(1)计算出要检测的温度。
1.5 压缩机驱动模块
压缩机的动力是由发动机提供的,连接发动机和压缩机的重要电子部件是电磁离合器。根据汽车空调运行情况和压缩机开关的工作电压,单片机控制继电器吸合或断开,以此控制压塑机电磁离合器的吸合与断开。当蒸发器温度一旦低于设定值,压缩机就停止工作;反之,压塑机保持正常工作,开始制冷。汽车空调蒸发器就是一个热交换器,通过热交换将进入蒸发器的气体变为冷风,从而达到制冷的目的。控制蒸发器温度是空调自动控制系统的重要任务。
1.6 风门电动机驱动模块
汽车空调伺服电机选用直流电动机。伺服电机根据功能分为内外循环电动机、混合风门电动机、模式风门电动机。电机采用两个TA8083F系列芯片驱动,每个芯片可以驱动两个伺服电机。该芯片的输入端口可以直接和单片机连接,STM32单片机的PE0~PE3引脚分别与驱动芯片DI1A、DI2A、DI1B、DI2B引脚相连接。其硬件电路如图5所示。
根据输入信号的不同,电机工作状况也不同,具体的工作情况如表1所列。
1.7 鼓风机驱动模块
鼓风机驱动电路如图6所示。用四合一集成运算放大器LM2902将单片机的PWM输出信号T050放大,经放大后的信号Blwc传送给风机调速模块,从而调节鼓风机的转速。单片机输出信
STM32F103语音识别汽车空调控制系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)