0 引 言
随着中国经济的持续增长和汽车价格的持续下降,越来越多的家庭拥有了私家车。在享受汽车给人们带来便利的同时,由于倒车而产生的问题也日益突出。据初步调查统计,15%的汽车事故是由汽车倒车“后视”不良造成的。早期的倒车防撞仪可以测试车后一定距离范围的障碍物从而发出警报,后来发展到根据距离分段报警。随着人们对汽车驾驶辅助系统易用性要求的提高,对汽车倒车雷达的要求也越来越高。本文设计的基于单片机AT89C51的倒车雷达,采用美国DAL-LAS半导体公司生产的DS18B20单总线型数字温度传感器进行温度补偿提高了测距精度,采用OC-MJ12232C_3液晶显示模块对车距进行实时显示和ISD4004语音芯片实现了倒车雷达语音报警的功能,并可以根据距离的不同做出不同的语音提示。由于采用了超声波专用集成电路芯片LM1812,有效地提高了系统的可靠性和稳定性。
1 超声波测距原理
超声传感器是一种将其他形式的能转变为所需频率的超声能或是把超声能转变为同频率的其他形式的能的器件。超声波测距原理是利用单片机在超声波传感器发射超声波的同时单片机的T0计数器开始计数,当检测到回波信号后单片机的T0计数器停止计数。测得的时间和声速相乘就可以得到超声波往返过程中走过的路程,所以所测距离S为声波传输距离的一半:
S=Ct/2
式中:S为超声波发射点与被测障碍物之间的距离;C为声波在介质中的传输速率;t为超声波发射到超声波返回的时间间隔。声波在空气中传输速率为:
式中:T为绝对温度;C0=331.45 m/s。
采用单片机脉冲计数的方法,可精确测出t的值。假设单片机的机器周期为T机,则有t=NT机,则测得的距离为:
2 系统硬件电路设计
2.1 系统结构
系统框图如图1所示。该系统由单片机控制电路、超声波发射与接收电路、温度补偿电路、LCD显示电路以及语音报警电路等几部分组成。单片机AT89C51是整个系统的核心部件,协调各部分电路的工作。单片机在超声波信号发射的同时开始计时,超声波信号在空气中传播遇到障碍物后发生反射,反射的回波信号经过处理后输入到单片机的INTO端产生中断,计数器停止计数。通过计数器测得的脉冲数可得到超声波信号往返所需要的时间,从而达到测距的目的。超声波探头选用TCF40-25TR1型收发一体式超声波传感器,谐振频率为40 kHz;超声发射与接收电路采用LM1812专业集成电路,不仅外围元件较少,电路简单,而且有更好的稳定性及可靠性;温度补偿电路采用一线制数字温度传感器DS18B20,利用声速和温度之间的关系对声速进行校正,从而消除温度对声速的影响;语音报警电路采用ISD4004,可实现汽车倒车过程中的语音报警。
2.2 单片机控制电路
系统控制部分的核心是ATMEL公司生产的AT89C51。AT89C51采用40引脚的双列直插式封装(DIP)形式,内部由CPU,4 KB的ROM,256 B的RAM,2个16位的定时/计数器T0和T1,4个8位的I/O端口和一个全双工串行通信口等部分组成。AT89C51单片机具有系统结构简单,成本低,可靠性高,低功耗等特点。特别是内部集成了4 KB的FLASH程序存储器,使单片机系统的结构更加简单,也使其得到了广泛的应用。同时,它还具有高级语言编程的特点,指令丰富,软件开发简单。AT89C51单片机是整个系统的核心部件,其作用是控制超声波专用集成芯片LM1812的发射和接收,对计时器的计数结果进行数据处理后送入LCD显示以及控制语音报警电路工作。
2.3 超声波发射和接收电路
本系统采用超声波专用集成电路LM1812作为超声波发射和接收电路的主控芯片。LM1812是一种通用型超声波收发器,主要用在各种各样的测距、定向和通信中。芯片包括一个脉冲调制C类发射器,一个高增益接收器,一个脉冲调制检测器及噪音抑制电路。LM1812第1脚外接L1,C1决定了电路发送或接收的工作频率,其工作频率为:
改变电感L1,电容C1的值可以改变振荡频率(本系统中f0为40 kHz),最高可达325 kHz。
超声波发射和接收电路如图2所示。当LM1812的8脚为高电平时,LM1812处于发射模式;当8脚为低电平时,LM1812处于接收模式。值得注意的是,单片机到LM1812的连接要进行5~12 V的电平转换。当LM1812处于发射模式时,L1,C1振荡槽路被切换为振荡模式,振荡信号经驱动放大后,由13脚及6脚输出。6,13脚之间所接变压器线圈的匝数比是根据TCF40-25TR1型收发一体式超声波传感器的阻抗来确定的。实验证明,变压器线圈的匝数比大约为4:1时可实现与超声波发送器阻抗相匹配。超声波接收器接收到的超声波信号经电容耦合由4脚输入,再经内部两级放大后同由1脚的谐振回路取出的信号一起送到检测器。当检测到超声波回波信号时,LM1812的14脚(与单片机的INT0端相连)变为低电平,使单片机的T0计数器停止计数。
2.4 温度补偿电路
温度补偿电路采用了美国DALLAS半导体公司的DS18B20单总线型数字温度传感器。单总线即只用一根信号线来传输数据,而且数据传输是双向的,单总线具有“线与”功能,连接方便,便于扩展。DS18B20集温度测量、A/D转换于一体,具有体积小、动态范围宽、测量精度高等优点。DS18B20和单片机接口电路如图3所示。
DS18B20采用单总线方式和AT89C51单片机相连,即DS18B20的1脚接地,3脚接地,2脚接至AT89C51的P11引脚,同时将P11引脚采用一只4.7 kΩ的电阻上拉至VCC。测得的温度值以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节,单片机通过单总线接口读到该数据后,即可通过计算得到实时环境温度值。
2.5 LCD显示电路
本系统显示电路采用金鹏电子的OCMJ12232C_3液晶显示模块,此液晶模块内含字库,能非常方便地显示汉字。OCMJ12232C_3液晶和单片机AT89C51的接口电路如图3所示,其中OCMJ12232C_3液晶的15脚接地,即采用串口通信方式。显示内容包括倒车距离和车外温度两部分,分两行显示:第一行显示倒车距离,第二行显示车外温度。倒车距离以cm为单位,精确到0.1 cm;温度以℃为单位,精确到O.1℃。
2.6 语音报警电路
本系统的语音报警电路采用ISD4004语音芯片。ISD4004与单片机接口电路如图3所示。从图中可以看出,ISD4004和单片机AT89C51之间的连接较少。单片机的P00接ISD4004的片选引脚SS,控制ISD4004是否选通;P0l接ISD4004的串行输入引脚MOSI,从该引脚读入放音的地址;P02接ISD4004的串行输出引脚MISO;P03接ISD4004的串行时钟引脚SLCK;P04接拨动开关,用于选择录音或者放音;P05接STOP按钮,用来对ISD4004进行复位;P06接AN按钮,按下时ISD4004开始工作;P33(INT1)接ISD4004的中断引脚INT。ISD4004芯片所需要的连接还有音频信号输出引脚AUD OUT,该引脚通过一个滤波电容,经功率放大电路LM386后与扬声器连接;MIC接入ISD4004:的录音信号输入端(ANA IN-、ANA IN+);AMCAP为自动静音端,使用时通过一电容接地。此外,由于ISD4004的工作电压为3 V,而单片机所需供电电压为5 V,因此需要采用LM317变压电路得到3 V电压供ISD4004使用。
当倒车距离大于3 m时,语音提示为“倒车安全”;当倒车距离在2~3 m之间时,语音提示为“倒车”;当倒车距离在1~2 m之间时,语音提示为“倒车小心”;当倒车距离在0.5~1 m之间时,语音提示为“倒车危险”;当倒车距离小于0.5 m时,语音提示为“非常危险,紧急停车”。
3 软件设计部分
软件设计采用模块化设计,由主程序、测温及声速修正子程序、T0中断子程序、距离计算子程序、LCD显示子程序和语音报警子程序等模块组成。主程序流程图如图4所示。
程序初始化后,先调用测温及声速修正子程序对声速进行修正。当进行超声波测距时,单片机发出一个宽为125μs的脉冲信号,此脉冲信号控制超声波集成电路LM1812发射5个40 kHz的超声波脉冲串。T0定时器定时30 ms,即每隔30 ms发射5个40 kHz的超声波脉冲串。发射脉冲串的同时单片机的T0计数器开始计数,一旦接收到回波信号立刻停止计数。利用距离计算子程序对测得的时间和修正后的声速进行数据处理后,将结果送入LCD显示和进行语音报警。
4 实验结果
通过对平面物体做了多次测量发现,30~500 cm范围内可实现准确测距,能满足司机的倒车要求。测距结果如表1所示。
5 结 语
本文设计的倒车雷达系统采用AT89C51作为主控芯片,可以实现实时的超声波测距,并将所测距离在LCD上显示出来,同时通过语音报警电路对不同距离段进行不同的语音提示,实验验证了本系统的可行性及可靠性。该系统具有集成度高、测量范围广、成本低和使用方便等特点,能满足司机在倒车中的需要,可得到广泛的应用。