基于超声测距的智能泊车系统仿真设计

2011-11-22 06:43苏延霞杨胜兵
湖北汽车工业学院学报 2011年4期
关键词:泊车测距调理

苏延霞,杨胜兵

(武汉理工大学 汽车学院,湖北 武汉430070)

随着汽车保有量的快速增长,道路、停车场及车库等场所越来越拥挤,由于泊车而产生的安全问题也日益突出[1]。针对这一问题,本文设计了一种以PIC16F877A单片机为核心的低成本、高精度智能泊车系统。该系统利用了超声波测距的工作原理,可通过声光、数据等形式告知驾驶员后方障碍物的情况,缓解汽车倒车“后视”不良的问题,可显著提高车辆的主动安全性。

1 原理概述及总体设计

超声测距是基于超声波在遇到障碍物时会反射的特性来实现的[2],其原理如图1所示。其中H为超声波发射探头与接收探头之间的距离,L为待测距离,S为超声波的单向路程,β为发射角,v为超声波的传播速度,t为传播时间。

由数学计算得:

当待测距离L远大于H时,

由于超声波在一定温度条件下在空气中的传播速度v是定值,所以只要测量出超声波的传播时间t就可以计算出待测距离L。超声波的传播速度v受温度变化的影响较大,对测距精度的要求较高的系统必须采用温度补偿的方法对传播速度进行校正。空气中温度T(℃)与超声波传播速度的关系为

智能泊车系统就是利用上述超声波测距原理设计而成的。倒车时,安装在车尾保险杠上的发射探头会在单片机的控制下发射超声波,此超声波遇后方障碍物反射,余波信号进入超声波接收探头转换为电信号。单片机对电信号进行处理后得到后方障碍物与前车的位置关系,由数码管显示距离,并根据实际情况发出声光等警示信号[3]。

2 硬件电路设计与仿真

硬件电路由超声波探头、单片机最小系统、发射驱动电路、信号调理电路、温度补偿电路及报警显示电路构成。系统采用Microchip的8位单片机PIC16F877A作为主控芯片,实现产生发射脉冲、输入捕捉、数据后处理以及显示报警等功能。

2.1 发射驱动电路

测距模块的40 kHz超声波信号是由单片机内部的定时器产生的,由于单片机输出信号的电压仅为5V,无法驱动超声波发射探头,因此需要合适的驱动电路对电信号进行处理以驱动发射探头。

采用CMOS反相器74HC04串联后再并联组成BTL驱动电路,如图2所示。单片机输出的40kHz方波信号一路经两级反相器后送到发射探头的一个电极,另一路经三级反相器后送到发射探头的另一极。在Multisim中对该电路进行仿真,结果如图3所示。这种推挽形式的驱动电路可将超声波的发射强度增大一倍,同时多个反相器并联的结构,可以提高驱动电流,进而提高驱动能力。

2.2 信号调理电路

信号调理电路的作用是对超声波接收探头的回波信号进行放大、滤波及整形。一般情况下回波信号比较微弱,为mV级,因此需要将信号放大到V级[4],便于单片机的接收。同时单片机在接收到下降沿脉冲时将停止计时,完成超声波传播时间的测量,所以还需将回波信号处理成下降沿脉冲信号。此外,为尽量保留40kHz超声波信号,调理电路中需添加滤波电路以消除高低频率杂波的影响。

信号调理电路如图4所示。放大电路采用了集成运放LM324,信号由反相输入端引入,单级增益为20dB,总放大倍数为100倍。为了简化供电电路,LM324采用单电源供电方式,但单电源供电时会导致削波而无法保证信号的完整性。为此采用了R3、R4进行分压,将2.5V的参考电压加到LM324的同相输入端,放大后的信号将在2.5V上下浮动而不会产生失真。滤波电路选用了无限增益多端反馈(MFB)带通滤波器,中心频率为40kHz,品质因数Q为4,中心频率增益为10。滤波电路出来的信号将被送入LM393电压比较电路,产生下降沿脉冲触发单片机中断。为了减少脉冲信号的波纹,在信号输出端加上了滤波电容C7,起到平滑输出信号的作用。在Multisim软件中的仿真结果如图5所示。虚拟示波器的输出结果显示该电路对mV级的回波信号有较好的放大、整形作用。波特图仪的结果显示滤波电路的实际中心频率为39.68kHz,可基本满足信号调理电路的设计要求。

3 软件程序设计

系统软件分为主程序和中断服务程序2部分。主程序主要完成Timer0、Timer1、CCP2模块的初始化以及I/O口配置等工作。Timer0以8位定时器模式工作,主要控制超声波的定时发射。CCP2工作在输入捕捉模式,与Timer1配合使用,当端口接收到超声波回波经信号调理电路产生的下降沿脉冲即触发捕捉中断,锁存此时Timer1计数器的值并进入中断服务子程序,在中断服务子程序主要完成时间值的读取、温度测量、距离计算、显示及声光报警等工作。

该系统大部分的功能实现是在中断服务子程序中进行的。这里需要注意的是,主控芯片PIC16F877A没有中断优先级,只有一个中断入口,发生中断后要在中断服务子程序中通过查询标志位来判断中断源。

CCP2模块的初始化程序如下:

PIC16F877A使用4MHz的外部晶振作为时钟源。Timer1使用指令周期作为时钟源,预分频器为4,即每隔4μs进行一次递增计数。当发生输入捕捉事件时,将锁存此时Timer1寄存器TMR1的值至CCPR2寄存器。同时刻的温度记为T(℃),则待测距离 L(m)可以按式(4)进行计算。

4 联合仿真

在Proteus软件中建立如图6所示的仿真原理图。发射驱动电路和信号调理电路已在Multisim软件中进行了仿真,这里不再重复验证。在硬件电路上利用停止按钮来产生下降沿脉冲,模拟超声波回波信号经信号调理电路的下降沿脉冲。在PIC开发环境MPLAB将编写好的程序进行编译调试,编译成功后将生成distance.cof文件。运行Proteus软件,打开仿真原理图,选中PIC16F877A,左键单击PIC16F877A,出现对应对话框,在Program File中找到编译好的 distance.cof文件[5],点击 Debug菜单下的开始按钮,进入调试状态。

图7为联调仿真过程中示波器与数码管的显示截图。仿真结果与程序中预期要实现的基本一致,实现功能如下:按下开始测距按钮,RC6端口输出40kHz占空比为50%的方波信号,该信号可通过示波器显示;RC2端口采集温度传感器DS18B20的值,并根据温度对超声波的传播速度进行补偿;按下停止按钮,单片机计算距离并通过数码管显示;当距离值小于设定值时,LED灯闪烁,蜂鸣器响起做出报警。

5 结 论

通过在Proteus和Multisim中对硬件电路的设计和MPLAB中对程序的编写,用PIC16F877A单片机实现了智能泊车系统的测距及显示报警功能,并增加DS18B20温度采集模块来修正声速随温度变化的偏差。仿真软件的使用简化了模拟电路和单片机系统的开发流程,显著缩短了设计周期,降低了开发成本。仿真结果显示:该系统的设计测距范围为5~450cm,测量误差为±3cm,显示值可以动态刷新且示数稳定。当距离小于60cm时可进行报警,基本满足泊车系统的要求。

此外,本文的设计方案也可用于汽车左右侧车距测量,帮助驾驶员消除倒车时前后左右探视所引起的困扰,具有较好的实用价值。

[1] 高月华.基于超声波汽车倒车雷达预警系统设计[J].压电与声电,2011,33(3):429-435.

[2] 王静霞,朱明程,李远辉.用MC68HC705J1A实现超声波汽车倒泊防撞报警器的设计 [J].电子技术应用,2001(9):23-25.

[3]黄韬.超声测距倒车雷达及其车载CAN总线智能节点研究[D].合肥:安徽大学,2010.

[4] 吴妍.汽车倒车雷达预警系统研究[D].武汉:武汉理工大学,2007.

[5] 王红仓,张俊涛.基于Proteus的单片机多路温度采集系统的仿真设计[J].陕西科技大学学报,2007(5):84-87.

猜你喜欢
泊车测距调理
基于MATLAB的平行泊车路径规划
基于CarSim的平行泊车仿真分析
脾胃失调该如何调理
“过劳肥”的中医调理
流翔高钙系列肥 我能土壤调理剂
Arrive平台新增智能泊车推荐引擎 帮助找到最佳泊车地点
类星体的精准测距
秋季蛋鸡 抓好调理
浅谈超声波测距
基于PSOC超声测距系统设计