|
基于WT588D汽车多功能语音监控系统
随着公路交通事业的发展,大大提高了车辆运行速度及流通密度,但交通事故也频频发生。如何减少交通事故已成为当务之急,这对汽车安全技术提出了新要求。安全性和智能化将成为今后汽车安全新技术最重要的发展趋势。更注重的将是主动式安全技术,即防止事故的发生。具体地说,关注每个细微的环节比如对油压、气压及温度进行检测,并且能够及时便捷地将异常情况告知驾驶者,最大可能地降低安全隐患。为此,本文将介绍一种汽车安全报警器,它能自动检测温度、压力、车速等汽车系统参量,异常情况时发出语音警报。该系统制作成本低、体积小、安全性高、便于安装、语音清晰,适应于一般汽车使用。
一、 总体方案
如图1 所示,该系统主要由检测子系统、报警子系统、显示子系统和语音子系统构成。检测子系统有多个传感器构成,每一传感器构成一个参量的检测系统,并将该数值输入至主控制器。温度检测子模块选用DS18B20 传感器,车速检测、压力检测可以采用合适的传感器,便于控制器的信号采集。采用AT89C52 单片机作为主控制器,语音芯片选用WT588D作为语音报警的输出装置;采用4×4矩阵键盘和LCD12232 提供人机接口,便于对该系统进行参数设置和整定。此外,该系统中还安装了时钟系统,有效纪录车辆系统的实时参数,这些参数可以按键查询。在对系统的参量进行设置后,系统进入工作状态。以温度监控为例,主控制器周期性地扫描传感器接口,进行报警信号的收集。主控制器将DS18B20 的检测信号和系统设定的警戒值进行处理,判断该值是否满足报警条件。主要参数可以在人机接口LCD 上实时显示,增加其可靠性。系统有可能要判断测量数值对应的报警等级,并据此对语音系统发出控制命令,将报警信息以声光的形式输出,便于使用人员的及时处理。对车体的其他参数也有同样的监控机制。作为智能化和人性化的体现,本系统可以自主录入报警提示语音,并选择不同的语音服务模式。对每一参数,都可以播放其个性化的语音提示,便于在报警迅速查找报警原因。对于某一参数的重要级别,可以分别选用循环播放模式和单次播放模式。可以按键查询不同参数的实时信息、报警信息和报警次数及时间。
二、系统硬件设计
系统硬件电路主要由信号采集与处理模块、语音模块和键盘显示模块三部分组成。采用AT89C52 单片机作为主控制器,采用WT588D语音模块作为语音提示
1. 信号采集与处理模块系统采用DS18B20 检测车体重要位置的温度参量,例如油温、重要轮轴附近的温度。多个温度传感器的信号通过控制器以片选的方式读取。压力传感器的信号还需专用处理芯片进行信号的初步处理。信号采集与处理模块的硬件连接如图2 所示。
2.语音录放模块
语音模块硬件由WT588D 芯片、AT89C52控制线、内存由SPI flash同WT588D主控组成和报警语音输出装置(喇叭),如图3 所示。WT588D 芯片是本模块的核心部分,接受控制指令且具有立的存储单元。WT588D可以反复擦写的功能和长时间放音,对开发者非常方便,有限的解决OTP短时间、贵、不能重复烧写等问题,是非常优秀的语音电路之一。WT588D主控可以外挂2-32M的SPI flash,介于OTP和MP3中间之间的价格,而且可以反复下载,可拿芯片方案。
3.键盘显示模块
本模块采用4×4 行列矩阵式非编码键盘(见图4)和LCD12232 单元(见图5)显示,提供人机接口。该模块实现系统信息的显示功能,接受用户的输入命令并做出响应。键盘使用AT89C52 的4 个外设引脚。LCD12232 显示单元使用AT89C52的1 个端口。
三、系统软件设计
按照上述的分析和硬件原理图,软件设计的主要任务是根据温度或压力传感器的数值和用户的设定值比较判断,控制语音芯片进行报警。软件流程如图6 所示。单片机周期性地读取温度传感器DS18B20 及其他传感器的数值,读取周期由时钟芯片DS1302提供控制,以保障其精确性、实时性。AT89C52 将各传感器测量值与监控系统的设定值进行比较。当温度或压力、车速超过安全阈值时,AT89C52 播放控制引脚自动输出允许播放信号,同时,AT89C52也依据危险的种类查表语音提示录音在WT588D 中的地址并将其输出到地址线上,这两个信号将会触发语音芯片播放指定段的内容,实现语音报警功能。同时,AT89C52 也会唤醒显示单元,将报警原因的详细信息显示出来。下面给出的是WT588D 例程
说明: 此程序为测试程序, 请根据实际应用来更改MCU 端IO 口;
#include <at89x51.H>
sbit KEY=P1^1; /*P1_1 为P1 口的第2 位*/
sbit CS=P3^1; /*P3_1 为P3 口的第3 位*/
sbit SCL=P3^2; /*P3_2 为P3 口的第4 位*/
sbit SDA=P3^0; /*P3_0 为P3 口的第5 位*/
//sbit DENG=P3^7; /*P3_5 为P3 口的第6 位*/
void delay1ms(unsigned char count) //1MS 延时子程序
{
unsigned char i,j,k ;
for(k=count;k>0;k--)
for(i=2;i>0;i--)
for( j=248;j>0;j--);
}
void delay100us(void) //100US 延时子程序
{
unsigned char j;
for( j=50;j>0;j--);
}
Send_threelines(unsigned char addr) //三线发码子程序
{unsigned char i;
CS=0;
delay1ms(5);
for(i=0;i<8;i++)
{SCL=0;
if(addr & 1)SDA=1;
else SDA=0;
addr>>=1;
Delay300us(); /* 300us */
SCL=1;
Delay300us();
}
CS=1;
}
main()
{unsigned char FD=0;
P3=0XFF;
while(1)
{
if(KEY==0)
{
delay1ms(20);
if(KEY==0) //通过按键P1.1 来进行发码值的递增
{
Send_threelines(FD);
FD++;
if(FD==220//三线串口时,语音段暂时最多为220 段
{
FD=0;
}
while(KEY==0); //等待按键释放,以免一次按键误判成几次
}
}
}
工程师可以根据实际需要控制的地址来
下载声音,下载软件非常简单方便,
只要放声音到相应的地址位置显示报警原因
在系统使用过程中,用户可能根据实际需要察看或修改系统的设置信息或修改报警器的工作模式,测试过程中对报警系统的参数修改显得更为重要。矩阵键盘实现了该功能。单片机以中断的方式读取键盘的输入,接受用户的设置命令,实现语音监控功能。
四、小结
实际测试和使用证明,该系统操作简单、方便实用、工作稳定、可靠性高、成本低廉。除特殊位置的传感器和线路需要特殊保护外,该系统不占用额外的空间,且和汽车已有系统具有良好的兼容性。该系统在汽车系统内推广使用将有效改善汽车系统的安全性。
原作者:武汉大学自动化系李克永 石德藤
改编:卢仕远