基于ATmega8的超声波倒车雷达实现方案

分享到:

1  引言
    由于超声波指向性强,能量消耗缓慢,在介质中的传播距离较远,因而超声波经常用于距离测量,如测距仪和物位测量仪等都可以用超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人、汽车工业等领域中有广泛的应用。
    本文根据笔者所在的武汉理工大学汽车电子电器研究所研发的一种由单片机开发的超声波倒车雷达报警器方案,详细介绍了其硬件软件实现过程。

2  设计目标
    报警器利用超声波回声测距的原理,测量车后一定距离内的物体,并以AVRmega8系列单片机作为中心控制单元。这种超声波雷达可以及时显示车后障碍物的距离和方位,显示范围为0.5m~9.9m,当距离大于2m时显示车后障碍物的方位;当距离小于2m时,除了显示其方位外,还可按照三段距离分别给出三种报警信号,以警示司机三种不同程度的紧急状态,使司机据此作出相应的操作,防止事故的发生。

3  超声波测距原理
3.1  超声波发生器
    超声波发生器分为两类:一类是用机械方式产生超声波,包括加尔统笛、气流笛等一类是用电气方式产生超声波,包括压电型、磁致伸缩型和电动型等;它们所产生的超声波的频率、功能和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电型超声波发生器。


3.2  压电式超声波发生器原理
    压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未加电压,当共振板接受到超声波时,将压迫压电晶片做振动,将机械能转换为电信号,这是它就成为超声波接收器了。


 

3.3  超声波测距原理
    超声波测距是通过不断检测发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离S=Ct/2,式中的C为超声波波速。
由于超声波也是一种声波,其速度C与温度有关,在温度确定后,只要测得超声波往返时间,即可求得距离。

4  Atmega8的功能特点
    ATMEL公司在2002年第一季度推出的一款新型AVR单片机。在AVR家族中,ATmega8L是一款非常特殊的单片机,它的芯片内部集成了大容量的寄存器和丰富的硬件接口电路,具有其他高档AVR单片机MEGA系列的全部特点,采用了小引脚封装(为DIP28),价格却与低档单片机相当,同时具有 AVR单片机的ISP(在线编程)性能。是AVR高档单片机中内部接口丰富、功能齐全、性价比最好的品种。它的主要性能如下:


4.1  先进的RISC精简指令集结构
     130条功能强大的指令,大多数为单时钟周期指令;32个8位通用工作寄存器;工作在16MHz时具有16MIPS的性能;执行速度为2个时钟周期的片内乘法器。


4.2  大容量的非易失性程序和数据存储器
    ATmega8L具有可擦写10000次的8K字节Flash程序存储器;支持在线编程(ISP);擦写100000次的512字节的,1K字节内部SRAM。带有独立加密位的可选BOOT区,通过BOOT区内的引导程序区实现在系统编程,而且写操作时真正可读。


4.3  外部性能
    2个比较模式的带预分频的8位定时/计数器;1个带有预分频器;一个独立振荡器的异步实时时钟;3个PWN通道;8个通道A/D/转换,6路10位A/D +2/路8位A/D;6个通道A/D转换,4路10位A/D+2/路8位A/D;1个I2C的串行接口,1个串行USART接口,1个SPI同步串行接口;片内看门狗定时器。


 

4.4  特殊功能
    包括上电复位和可编程的低电压检测、内部可校准的RC振荡器、五种睡眠模式(空闲模式、ADC噪声抑制模式、省电模式、掉电模式、待命和扩展待命模式)、可用软件选择时钟频率、可通过一个熔丝选定的兼容模式以及全局上拉禁止等。ATmega8L的独有特点包括上电复位和可编程的低电压检测、内部可校准的RC振荡器、五种睡眠模式(空闲模式、ADC噪声抑制模式、省电模式、掉电模式、待命和扩展待命模式)、可用软件选择时钟频率、可通过一个熔丝选定 ATmega8L的兼容模式以及全局上拉禁止等。

5  系统的硬件设计
5.1  超声波发送
    超声波发送脉冲如图1所示。40kHz的超声波发送脉冲信号由单片机mega8的PB0口送出,其脉冲宽度及脉冲间隔均由软件控制。脉冲宽度约为 125μs~200μs,即在一个调制脉冲内包5~8个40kHz的方波。脉冲发送间隔取决于要求测量的最大距离及测量通道数。本系统有四路测距通道,采用分时工作,按左、中、右的顺序循环测距。若在有效测距范围内有被测物的话,则在后一路超声波束发出之前应当接收到前一路发同的反射波,否则认为前一路无被测物。因此按有效测距范围可以估算出最短的脉冲间隔发送时间。例如:最大测距范围为5m时,脉冲间隔时间t=2s/v=2×5/340≈30ms,实际应取t≥30ms。

 

图1    超声波发送脉冲波形图


5.2  超声波接收
回波很弱,因而转换为电信号的幅值也较小,为此要求将信号放大60万倍左右。采有三级放大。放大后的交流信号经光电隔离送入比较器,比较器的作用是将交流信号整形输出一个方波信号,此方波信号上升沿使 D触发器触发,向CPU发中断申请。在中断服务程序中,读取时间计数器的计数值,并结合温度换算出的速度算出发射到接收的距离。


5.3  时间计测
    超过波从发射到接收的间隔时间的测定是由单片机内部的计数器T1来完成的。在调试过程中出现的发送部分与接收部分的直接串扰问题是由于换能器之间的距离不大,有部分声波未经被测物就直接绕射到接收换能器上。从发射开始一直到“虚假反射波”结束这段时间,不会发中断申请,可有效躲避干扰,但也会形成所谓的 “盲区”。本系统的盲区约为20cm左右。


5.4  报警灯显示
    由于mega8有较强的驱动能力(驱动电流可达到20mA),可直接由mega8驱动三组(每组四路)的发光二级管作为报警显示器。

6  系统的软件设计
    中断服务程序分为INT0,INT1,T0
T0设置为30ms中断一次,其任务就是每隔30ms产生5~8个40kHz的方波作为超声波脉冲并按顺序送到四个通道,即产生如图1所示的超声波发射脉冲。T0的中断服务程序流程如图2所示:

 

图2    中断服务程序流程图


    INT0中断子程序读取A/D转换结果,并将相应数据值转换为环境温度值;INT1停止T0、T1计数,根据T1内容计算时间T,并进行最终距离的计算。先计算超声波传播速度:,再计算距离:D=CT/2,并将计算结果送入缓冲区以备通讯。T1工作在方式1。

7  误差分析
    本系统最大测距误差在8cm左右,测距的盲区为20cm。
(1) 入射角
    超声波波束对探测目标的入射角的影响。
(2) 过零点触发
    超声波回波声强与待测距离的远近有关系,所以实际测量时,不一定是第一个回波的过零点触发。
(3) 声速修正
    超声波传播速度对测距的影响。波的传播速度取决于传播媒质的特性。传播媒质的温度、压力、密度对声速都将产生直接的影响。因此需对声速加以修正。对于测距而言,引起声速变化的主要原因是媒质温度的变化。本文采用声速预置和媒质温度测量结合的方法对声速进行修正,可有效地消除温度变化对精度的影响。

8  结束语
    该系统经过大量实验数据测试表明系统满足设计要求,通过修改部分子程序可根据需要扩展成六通道、二通道、单通道的汽车后视仪及根据不同的要求作不同的报警处理。例如在该设计中加入了一时钟芯片X1203 ,通过添加一些程序就可以实现时钟
显示与倒车报警的二合一产品,有较好的推广价值。

参考文献
[1]ATmega8L原理与应用手册. 北京:清华大学出版社
[2]国外电子元器件. 用AT89C2051设计超声波测距仪

继续阅读
基于ATmega8 单片机的工频电压/频率仪设计

基于ATmega8单片机工频电压/频率仪硬件电路简单、性能稳定可靠、经济适用,能满足一般的测量精度要求。

满足您创新创意的需要,亲手打造属于你的Arduino

Arduino,满足您创新创意的需要!Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于艺术家、设计师、爱好

用Arudino打造多功能电子闹钟

前段时间入手了一块 LCD12864中文屏幕,带中文字库,有驱动库可以直接驱动;还有一个时钟模块,型号是最常见的DS1302,突发奇想,就做个电子闹钟玩玩吧,又想只做个闹钟有点单调了,既然手头有温湿

基于AVR单片机的LED显示屏的灰度设计与实现

LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还

基于ATMEGA8的LED彩灯控制器设计

如果你想改变LED接的管脚,请修改hardware.h文件。如果想修改LED的亮度,请修改globals.h 中的Timings 段定义。本设计外接了两个按钮,一个是选择工作模式,另一个是电源的开关。当你按下模式按钮1.5秒以上时,进入自动模式,会自动演示所有的预设模式。

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss