摘 要:利用ATMEL 公司的AT89C51 单片机接收超声波传感器的测距信号,根据超声波测距原理,将实时信号送给单片机,单片机实现距离的计算、显示、报警,当在探测范围内有障碍物时,并且障碍物的距离小于报警距离时,发光二极管以一定频率闪烁,同时蜂鸣器提示报警,并显示障碍物的距离。经验证,此系统实现了超声波倒车防撞系统各功能,且该系统实时性较稳定,误差距离比较小。
0 引言
随着中国汽车数量的不断增多,道路拥堵,交通事故频发,给人们生活带了诸多不便,安全成为了第一要素,汽车防撞系统的设计和需求也迫在眉睫。因此,设计了一种利用超声波测距,通过单片机实现的倒车防撞报警系统,主要考虑它的设计简单,易于操作。
1 超声波测距原理
超声波是指频率高于20 kHz 的机械波。而倒车时,为了防止撞上障碍物,需要测量障碍物到车之间的距离,这就需要使用超声波传感器。超声波传感器又称为超声波换能器或超声波探头。超声波传感器包括超声波发送器和超声波接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换成振动发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法 (TOF,time offlight)。超声波发射传感器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,传播的途中碰到障碍物就立刻返回来,超声波接收器接收到反射回来的波就立即停止计时,计算出超声波从发射到遇到障碍物返回时所用的时间t,常温下超声波在空气中的传播速度为V=340 m/s,根据公式S =V × t / 2,就可以计算出障碍物到超声波传感器之间的距离。
2 系统总体电路
单片机AT89C51 编写程序产生方波,通过P1.0 口输出40 kHz 的脉冲信号,经超声波发射电路中CD4069 放大后驱动超声波发射探头UCM40T,产生超声波。传播过程中遇到障碍物后产生回波送入超声波接收器,接收探头采用和发射探头配对的UCM40R,将超声波调制脉冲变为交流电压信号,经超声波接收电路中CX20106A 进行处理,通过7 脚输出,作为一个中断请求信号,送至单片机进行处理。在单片机发射方波的同时,也就是超声波发射电路发射超声波的同时开启单片机内部定时器T0,通过定时器来记录超声波发射的时间和收到反射波的时间。当超声波接收电路收到超声波反射波时,超声波接收电路输出端产生一个低电平输出到INTO端产生一个中断请求信号,单片机AT89C51 响应外部中断请求,执行外部中断服务程序,根据定时器的值读取时间差,通过公式S =V × t / 2计算相应的距离,并将结果显示到LED数码管上。如果S 的值小于报警距离0.5 m,则单片机AT89C51便给P2.5 口一个低电平信号,使得报警电路工作,实现声光报警。
图1 系统总体框图
3 系统硬件电路
3.1 AT89C51
AT89C51 是一个低电压、高性能CMOS 8 位微处理器,片内含4 KB 的可反复擦写的Flash 只读程序存储器(ROM)和128 B 的随机存取数据存储器(RAM),与标准MCS-51 指令系统和管脚兼容,片内置通用8 位CPU 和Flash 存储单元,ATMEL的AT89C51 是一种高效微控制器。
AT89C51 是一个低功耗高性能单片机,它有40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含2 个外部中断,2 个16 位可编程定时计数器,2 个全双工串行通信口。
AT89C51 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。
3.2 超声波发射电路
超声波发射电路主要由驱动电路CD4069 及超声波发射器T 组成。如图2 所示,超声波探头采用压电陶瓷传感器UCM40T,当在它的两级加上脉冲信号,其频率等于压电晶片的频率时就会产生共振,产生超声波。由于超声波在空气中最佳传播频率为40 kHz,同时使用的是压电陶瓷传感器,其驱动频率为40 kHz,因此通过单片机P1.0 口产生40 kHz 的方波信号,经过双路反相器处理在超声波振荡器的外接电路两端产生振荡,双路反相器可以提高驱动能力,也能增强接收信号,抑制其他噪声与干扰。超声波发射探头两端产生的振荡波近似于方波。
3.3 超声波接收电路
超声波接收电路使用了集成电路CX20106A,它可用来完成信号的放大、限幅、带通滤波、峰值检测和波形整形等功能,电路如图3 所示。发射电路发出的脉冲信号,在碰到障碍物后,经反射后的超声波脉冲变成微弱的交流信号,接收电路接收后送到CX20106A 的1 脚,为信号的输入端,经过前置放大器的放大,限幅放大器的放大,由于其有自动增益控制功能,可以保证超声传感器接收较远反射信号输出微弱电压时,放大器具有较高的增益,而在近距离输入信号强时放大器不会过载,其带通滤波器中心频率可由芯片5 脚的外接电阻调节,取200 kΩ,控制在38 kHz。通过带通滤波器滤波,峰值滤波,积分比较,最后经整形电路输出脉冲信号。
CX20106A 接收超声波具有很高的灵敏度和较强的抗干扰能力,可以满足超声波接收电路的要求。同时集成电路也可以减少干扰。
图2 超声波发射电路
图3 超声波接收电路
3.4 声光报警报警电路
如图4 所示,声报警电路选用压电式蜂鸣器,它大约需要10 mA 的驱动电流。当单片机输出低电平时,三极管导通,蜂鸣器报警。光报警电路如图5 所示,当单片机p2.5 口输出低电平时,二极管导通,灯亮发出光报警信号。
图4 声报警电路
图5 光报警电路
4 系统软件设计
首先,微处理器AT89C51 先把P1.0 置0,通过软件编程产生方波,送给超声波传感器,通过压电陶瓷晶片发射超声波(40 kHz 方波),延时300 us 左右(或者大于这个时间,这个延时是为了避免超声波直接对反射过来的波的干扰,它决定了盲区的大小,延时时间越长,盲区越大,300 us 延时大概是10 cm 的盲区)抑制输出干扰,同时启动内部定时器T0 开始计时。当超声波信号碰到障碍物时信号立即返回,而微处理器在不断的扫描INT0 引脚,如果INT0 接收到的信号由高电平变为低电平,表明信号已经返回,微处理器进入中断处理程序,同时关闭定时器T0。再把定时器中的数据经过处理就可以得出超声波传感器与障碍物之间的距离,显示在LED 数码管上。然后再根据相应的情况判断是否要进行声光报警。
程序启动时,首先进行初始化,接着是一个不断发射方波的过程,即调用发射子程序几遍,而且每次发射周期结束后都会在延时等待的过程中判断是否发生了中断,即是否有反射回波产生,当有反射回波产生时,进入中断服务程序,首先是关闭中断,读取定时器的时间t,根据时间,用超声波测距公式S=340×t/2,就可以得到障碍物到超声波发射器之间的距离,根据计算的结果,将距离显示到LED 数码管上。
同时判断距离是否小于0.5 m,如果小于0.5 m,就进行声光报警。程序流程图如图6 所示。
图6 程序流程图
5 结语
该系统利用51 系列单片机设计,设计简单,操作方便。
经实验测试证明,该系统工作稳定,能满足倒车防撞的要求,且成本较低,具有良好的性价比。可以应用到汽车倒车场合。
由于超声波受外界环境的影响,所以该系统存在一定的误差,可以进行温度补偿,减小误差,增强系统性能。