微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 用MC68HC705J1A实现超声波汽车倒泊防撞报警器的设计

用MC68HC705J1A实现超声波汽车倒泊防撞报警器的设计

时间:10-25 来源:电子技术应用 点击:

超声波汽车倒泊防撞报警器是超声波测距的一个重要应用。在汽车倒泊时,利用超声波的反射可以探测汽车尾部与障碍物之间的距离,提供多级声光报警。本文介绍一种以MC68HC705J1A单片机为核心的低成本超声波汽车倒泊防撞报警器的设计方法,该报警器的感应时间小于0.5s,测距精度可达0.1m。

1 超声波测距原理

  超声波测距原理是根据超声波遇到障碍物后可反射回来的特性,记录发射信号到收到第一个反射信号的时间t,利用公式s=c·t/2,计算出距离s。其中c是声速,标准状态下声速c=331.4m/s。超声波测距原理如图1所示。

2 超声波汽车倒泊防撞报警器的组成

  超声波汽车倒泊防撞报警器的组成如图2所示。

  报警器只在汽车倒泊时才使用,采用倒车灯的电源+12V供电。倒车时障碍物可能在车的后面,也可能在车的侧面。为了保证各种情况下探测障碍物的准确性,采用双路探测结构,取两路中距离较短的一路作为有效探测距离。超声波探测头具有电声转换和声电转换两种功能,分时用于发送信号和接收信号。声光报警电路由单片机直接控制,利用不同的蜂鸣器鸣叫声音和不同颜色的LED闪动实现多段报警。

3 超声波汽车倒泊防撞报警器的硬件电路设计

  超声波汽车倒泊防撞报警器的硬件电路原理如图3所示(图中只给出了一路检测电路,另一路与此相同)。

  MC68HC705J1A单片机是Motorola公司J系列单片机中性能价格比最高的单片机之一,广泛应用于各种中小型检测控制系统中。MC68HC705J1A是一个具有1240字节EPROM/OTPROM的8位微控制器,主要硬件资源有:1240字节EPROM、64字节RAM、14个双向输入/输出端口、多功能计数器、外部中断等,同时具有看门狗和非法地址检测、无最小时钟频率选择等特点。在超声波汽车倒泊防撞报警器中,充分利用其双向并行口的输入和输出功能,进行信号的发送、接收及声光报警等控制。

超声波探测头选频频率为40kHz方波,由软件在单片机的发送管脚PA6和PA7上直接产生20个方波脉冲,再通过变压器升压变换,经超声波探测头发射出去。由于传感器本身的恢复过程,发射结束后仍有不大于500μs的阻尼震荡。发射信号同时回送到接收电路。

  发射信号遇到障碍物后反射回来,由同一超声波探测头接收并送到接收电路。接收电路对反射信号进行多级放大和检波,最后通过开关电路到达单片机的接收管脚PA0或PA1。当接收电路有信号时,开关三极管Q1导通,PA0或PA1为低电平;否则,三极管截止,PA0或PA1为高电平。检测PA0或PA1的管脚状态,就可以得到超声波探测头接收到第一个反射信号的时刻,从而计算出从发送信号到接收到第一个反射信号的时间,再进一步计算出障碍物与汽车的距离。发射信号波形、接收电路信号波形和单片机接收管脚信号波形如图4所示。

4 超声波汽车倒泊防撞报警器的软件设计

  超声波汽车倒泊防撞报警器的软件采用汇编语言。程序流程如图5所示。

  系统联调时发现,当检测环境比较复杂时,检测值会出现常数0或随机数的现象,因此,实际检测并不是以一次检测值进行计算的,而是将本次检测值与之前连续9次的检测值(共10次)进行比较(取平均值),从而得出一个最终检测结果,再计算出距离,根据距离所属的范围报警。检测一次所需时间为50ms。

  一般报警程序中所需的时间参数都是由定时器通过硬件计数进行中断控制,但是超声波检测中,在发射信号期间不允许中断,否则导致发射信号频率不精确;同时在检测过程中如果产生定时器中断,也会给计数带来误差。因此,报警程序不采用中断方式,而是将检测报警所需的时间参数与单次检测时间(50ms)结合起来,将蜂鸣器的鸣响频率和LED的闪动频率规定为500ms,即检测10次的时间。报警时间参数与检测次数之间的关系如表1所示。

检测主程序如下:

org 0300h

lda #00

sta counta ;报警计数器清0

lda #$fd

sta portad ;设置A口输入/输出方向

lda #$ff

sta portbd ;设置B口输入/输出方向

ldx buffer ;缓冲区首地址 → x

transmit: jsr transp ;调用发射20个脉宽为250μs方波子程序

jsr del450μs ;延时450μs

lda #00

sta ,x ;用于计时的缓冲单元清0

next: lda porta ;检测处理器接收管脚是否为低电平

and #$03

cmp #$02

bne check ;检测到低电平,退出计时

cmp #$01

bne check ;检测到低电平,退出计时

cmp #$03

bne check ;检测到低电平,退出计时

jsr

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top