汽车倒车防撞系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
随着我国经济迅速发展,人们的生活水平不断提高,越来越多的人拥有自己的车,由此产生的交通问题也引起人们的重要关注。
主要针对拥挤的公路、街道、停车场等场所,加上存在视觉盲区,司机在倒车时无法看到车后的障碍物,容易刮伤汽车甚至发生交通事故等一些情况,汽车倒车雷达是一种旨在倒车防护的汽车防撞系统。
倒车事故发生的频率极高,已引起了社会和交通部门的高度重视。
因此,专为汽车倒车泊位设置的“倒车雷达”应运而生,倒车雷达的加装可以解决驾驶人员的后顾之忧,大大降低了倒车事故的发生。
倒车雷达通过感应装置发出超声波,然后通过反射回来的超声波来判断前方障碍物与车的距离,并做出提示。
倒车雷达是汽车泊车或者倒车时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高驾驶的安全性。
倒车雷达的发展一共经历了以下五个阶段。
第一代:倒车时通过喇叭提醒。
“倒车请注意”!想必不少人还记得这种声音,这就是倒车雷达的第一代产品,现在只有小部分商用车还在使用。
只要司机挂上倒档,它就会响起,提醒周围的人注意。
从某种意义上说,它对司机并没有直接的帮助,不是真正的倒车雷达。
价格便宜,基本属于淘汰产品。
第二代:采用蜂鸣器不同声音提示驾驶员。
这是倒车雷达系统的真正开始。
倒车时,如果车后1.8米-1.5米处有障碍物,蜂鸣器就会开始工作。
蜂鸣声越急,表示车辆离障碍物越近。
但没有语音提示,也没有距离显示,虽然司机知道有障碍物,但不能确定障碍物离车有多远,对驾驶员帮助不大。
第三代:数码波段显示具体距离或者距离范围。
这代产品比第二代进步很多,可以显示车后障碍物离车体的距离。
如果是物体,在1.8米开始显示;如果是人,在0.9米左右的距离开始显示。
这一代产品有两种显示方式,数码显示产品显示距离数字,而波段显示产品由三种颜色来区别:绿色代表安全距离,;黄色代表警告距离,;红色代表危险距离,必须停止倒车。
第三代产品把数码和波段组合在一起,但比较实用,但安装在车内不太美观。
第四代:液晶荧屏动态显示。
这一代产品有一个质的飞跃,特别是屏幕显示开始出现动态显示系统。
不用挂倒档,只要发动汽车,显示器上就会出现汽车图案以及车辆周围障碍物的距离,色彩清晰漂亮,外表美观,可以直接粘贴在仪表盘上,安装很方便。
不过液晶显示器外观虽精巧,但灵敏度较高,抗干扰能力不强,所以误报也较多。
第五代:魔幻镜倒车雷达。
结合了前几代产品的优点,采用了最新仿生超声雷达技
术,配以高速电脑控制,可全天候准确地测知2米以内的障碍物,并以不同等级的声音提示和直观的显示提醒驾驶员。
魔幻镜倒车雷达可以把后视镜、倒车雷达、免提电话、温度显示和车内空气污染显示等多项功能整合在一起,并设计了语音功能。
因为其外形就是一块倒车镜,所以可以不占用车内空间,直接安装在车内后视镜的位置。
而且颜色款式多样,可以按照个人需求和车内装饰选配。
一、超声波测距原理
超声波是指频率高于20 kHz 的机械波。
而倒车时,为了防止撞上障碍物,需要测量障碍物到车之间的距离,这就需要使用超声波传感器。
超声波传感器又称为超声波换能器或超声波探头。
超声波传感器包括超声波发送器和超声波接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。
超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换成振动发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法。
超声波发射传感器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,传播的途中碰到障碍物就立刻返回来,超声波接收器接收到反射回来的波就立即停止计时,计算出超声波从发射到遇到障碍物返回时所用的时间t,常温下超声波在空气中的传播速度为V=340 m/s,根据公式S =V × t / 2,就可以计算出障碍物到超声波传感器之间的距离。
超声波测距原理框图
二、系统总体电路
单片机编写程序产生方波,通过P1.0 口输出40 kHz 的脉冲信号,经超声波发射电路中CD4069 放大后驱动超声波发射探头UCM40T,产生超声波。
传播过程中遇到障碍物后产生回波送入超声波接收器,接收探头采用和发射探头配对的UCM40R,将超声波调制脉冲变为交流电压信号,经超声波接收电路中CX20106A 进行处理,通过7 脚输出,作为一个中断请求信号,送至单片机进行处理。
在单片机发射方波的同时,也就是超声波发射电路发射超声波的同时开启单片机内部定时器T0,通过定时器来记录超声波发射的时间和收到反射波的时间。
当超声波接收电路收到超声波反射波时,超声波接收电路输出端产生一个低电平输出到INTO端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务程序,根据定时器的值读取时间差,通过公式S =V×T/2计算相应的距离,并将结果显示到LED数码管上。
如果S 的值小于报警距离0.5 m,则单片机便给P2.5 口一个低电平信号,使得报警电路工作,实现声光报警。
三、系统总框架图
系统原理图
三、系统硬件电路
1、单片机的选择: AT89C51和AT89S52
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 存储器可有效地降低开发成本。
2) AT89S52
AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
总结:AT89C51和AT89S52都是8051的内核,AT89S52是AT89C51的增强型,AT89S52比AT89C51定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗,在掉电、数据指针等方面还有一些改进,S52的最高外接晶振可以达到33MHz,C51大概只有24MHz。
另外AT89S52比AT89C51还增加了ISP功能,就是在线可编程功能,这是很有用的功能,首先是省去购买编程器的钱。
另外,对于买不起仿真器或希望能板上调试的人来说十分有价值,你可以随时更新插在电路板上的单片机的程序,十分方便。
当然AT89S51
也具备这一功能,AT89C51和AT89C52都不具备,。
现在市面上,AT89C51都差不多淘汰了,现在电子市场能买到的大都是S系列的,价格两者接近要买的话,摊主一般会推荐你买AT89S52。
考虑到内存的增加对较复杂的程序带来的好处,AT8952的总体性能是要比AT8951好不少的。
因此这次的设计中我们将选用AT89S52单片机。
2、超声波发射电路的选择:74LS04和CD4069
1)利用74LS04构成的超声波发射电路
发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。
输出端采用两个反向器并联,用以提高驱动能力。
上位电阻R10、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
一路经一级反相器(U1C与U1E并联组成一级)后送到超声波换能器的一个电极(T1的1脚);另一路经两级反相器(U1D为第一级,U1B和 U1A组成第二级)后送到超声波换能器的另一个电极( T1的2脚 )。
用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。
输出端采两个反相器并联,以提高驱动能力。
上位电阻R1、R2一方面可以提高反相器74LS04输出高电平的驱动能力,另一方面可以增强超声波换能器的阻尼效果。
超声波发射电路
2) 利用CD4069构成的超声波发射电路
超声波发射电路主要由驱动电路CD4069 及超声波发射器T 组成。
如图2 所示,超声波探头采用压电陶瓷传感器UCM40T,当在它的两级加上脉冲信号,其频率等于压电晶
片的频率时就会产生共振,产生超声波。
由于超声波在空气中最佳传播频率为40 kHz,同时使用的是压电陶瓷传感器,其驱动频率为40 kHz,因此通过单片机P1.0 口产生40 kHz 的方波信号,经过双路反相器处理在超声波振荡器的外接电路两端产生振荡,双路反相器可以提高驱动能力,也能增强接收信号,抑制其他噪声与干扰。
超声波发射探头两端产生的振荡波近似于方波。
超声波发射电路
首先CD4069是CMOS的6反相器,74LS04是TTL6反相器,所以显而易见4069工作电压范围是3V-18V。
而74LS04则是3V-5V,如果对于延迟时间和响应速度有要求的话,还要注意,COMS反相器的延迟时间比TTL反相器要长。
如果是应用在超声波电路,一般是接成两个反相器串联,剩余四个反相器两两并联,输入的方波信号一组直接驱动并联反相器,另一组经过并联的反相器取反后驱动并联反相器从而得到相对于两组反相器输出端而言的双倍幅度信号来驱动超声波探头。
超声波探头分为收发分离的探头和收发一体探头。
但是探头是有驱动参数的限制的,比如说一般的一体超声波探头有20Vp-p的,60Vp-p的,还有100Vp-p以上的,当然峰峰值驱动电压越高超声波探头发送的功率越高,所以表现出来就是测距距离更远,但是还是不要超过超声波探头的额定限度,驱动电压过高容易引起发射电路干扰,容易让探头产生超出标准的长余震时间,而降低测量精度,甚至不能工作。
总结:第一要取决于电路设计和工程项目的测距要求,其次就是根据项目要求选取合适的超声波探头,根绝探头给出的技术资料来选取驱动电路,普通的分离探头用74HC04驱动足矣,一体化探头往往驱动峰峰值比较高,更多的解决方案不是用这样的反相器驱动,而是使用中频变压器来提升驱动电压。
来提供峰峰值180V这样的高压。
一般超声波做的项目不会超过50M。
假定不管探头参数,当然是峰峰值越大测距更远,CD4069可以达到25Vp-p左右的驱动能力比74LS04要测得远,不过驱动电路需要双
电压供电。
除非用24V的PLC,不然的话ARM或者PGA都是5V以下供电。
电路的话,你可以使用硬件设计时序单元产生驱动波形,然后再用IO驱动芯片ULN2003高端接到12V 来驱动CD4069。
而且利用74LS04构成的超声波发射电路比利用CD4069构成的超声波发射电路稳定些,故选用74LS04用来构建超声波的发射电路。
3、超声波接收电路
集成电路CX20106A是一款红外线检波接收的专用芯片,它可用来完成信号的放大、限幅、带通滤波、峰值检测和波形整形等功能,常用于电视机红外遥控接收器。
考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,可以利用它制作超声波检测接收电路。
发射电路发出的脉冲信号,在碰到障碍物后,经反射后的超声波脉冲变成微弱的交流信号,接收电路接收后送到CX20106A 的1 脚,为信号的输入端,经过前置放大器的放大,限幅放大器的放大,由于其有自动增益控制功能,可以保证超声传感器接收较远反射信号输出微弱电压时,放大器具有较高的增益,而在近距离输入信号强时放大器不会过载,其带通滤波器中心频率可由芯片5 脚的外接电阻调节,取200 kΩ,控制在38 kHz。
通过带通滤波器滤波,峰值滤波,积分比较,最后经整形电路输出脉冲信号。
实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。
适当更改电容C的大小,可以改变接收电路的灵敏度和抗干扰能力。
超声波接收电路
接收电路主要涉及到信号的放大和中断信号的产生,制作中对灵敏度、响应的快速
性、稳定性、抗干扰能力都要有充分的考虑,要用到的信号处理电路一般有滤波,放大,锁相环等电路,可以使用信号接收放大—增益大,噪声低的宽带放大器的LM324,LM358等运放芯片,LM567锁相环芯片。
由于CX20126在市场上已经停产,因此并不容易找到器件,我们可以选用lm324运放加上lm567锁相环加以替代。
当然我们首选的还是CX20126器件。
接收
4、声光报警电路
如图所示,声报警电路选用压电式蜂鸣器,它大约需要10 mA 的驱动电流。
当单片机输出低电平时,三极管导通,蜂鸣器报警。
光报警电路如图5 所示,当单片机p2.5 口输出低电平时,二极管导通,灯亮发出光报警信号。
声报警电路
光报警电路
总结:关于声光报警器的电路实在是数不胜数,这里就先选用以上两种。
5、LM1812超声波测距专用集成电路
LM1812 是一种性能优良,且即能发送又能接收超声波的通用型超声波集成器件。
芯片内部包括:脉冲调制C 类振荡器、高增益接收器、脉冲调制检测器及噪音抑制器。
1)外形及引脚功能 LM1812 超声波专用器件外形为18 脚双列直插塑料土封装形式,相应引脚功能为:1 脚第二增益级输出/振荡器端,6 脚发射器输出端,7 脚发射驱动器13 脚外接电源退耦电容端,14 脚检出器输出端,16 脚输出驱动器端,17 脚噪声控制端,18 脚积分器复位时间常数控制端。
2)LM1812 具有如下特点:
1、可以使用一个发送/接收换能器工作,也可使用两个换能器分别发送和接收超声波
2、器件具有互换性。
3、在电路中使用时不用外接晶体管驱动。
4、使用时不用外接散热器。
5、器件内部具有保护电路。
检测器输出可驱动1A 的峰值电流。
6、在水中测距超过30m,在空气中测距超过6m。
7、发送功率可达12W(峰值)。
LM1812 超声波测距专用集成电路的工作原理电路图。
总结:LM1812器件可以替代上述的超声波发射,接收两种电路,这是新的集成电路。
四、硬件所用器材
五、系统软件设计
首先,微处理器AT89S52 先把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 所示。
程序流程图
六、程序代码:
****************************************************************
Title: 超声波测距系统
Directions: 经实践表明该系统的测距范围在0.21m-2m时,误差不超0.5cm;
大于2m时,最大误差不超过1.5cm;因发射功率不足,本系统的稳定测量范
围是0.21m-4m。
*****************************************************************
#include<reg51.h> /*头文件*/
#include<intrins.h>
#define uchar unsigned char /*缩定义*/
#define uint unsigned int
#define nop() _nop_() /*定义空操作指令*/
#define sled_dm_port P0 /*定义数码管段码控制端口*/
#define sled_wm_port P1 /*定义数码管位码控制端口*/
sbit vout=P1^6; /*声明40KHz脉冲信号输出口*/
sbit fm=P1^7; /*声明蜂鸣器使能引脚*/
void delay_1ms(uchar x); /*1MS为单位的延时程序*/
void display(); /*显示子程序*/
uchar code num_table[13]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0x7f};
/* 0 1 2 3 4 5 6 7 8 9 - 消隐.*/
/*定义数码管显示字符跟数字的对应数组关系*/
uchar data sled_lighten_table[]={0xf7,0xfb,0xfd,0xfe};
/*定义每次扫描时需点亮的数码管*/
uchar dis_buff[4]={0xff,0xff,0xff,0xff}; /*定义段码缓冲数组*/
uint time,distance; /*定义接收时间与距离变量*/
bit rec_flag; /*定义接收成功标志位*/
uchar k,j,wm; /*定义脉冲个数与位选控制变量*/
/*主程序*/
void main()
{
uint i;
TMOD=0x21; /*T1为8位自动重装模式*/
TH0=0x00; /*65ms计数初值*/
TL0=0x00;
TH1=0xf2; /*12us计数初值*/
TL1=0xf2;
PX0=1;
PT1=1;
ET0=1;
EA=1;
TR0=1;
while(1)
{
dis_buff[2]=num_table[distance/100];
dis_buff[1]=num_table[distance%100/10];
dis_buff[0]=num_table[distance%10];
display();
if(rec_flag)
{
rec_flag=0;
for(i=400;i>0;i--) /*测量间隔控制(约4*100=400MS)*/ display();
EA=1;
TR0=1;
}
}
}
/*显示子程序*/
void display()
{
sled_wm_port=0xff; /*显示消影*/
if(wm==3)
sled_dm_port=0xff;
if(wm==2)
{
if(dis_buff[2]==0xc0) /*若第2位数码管为0则不显示*/ sled_dm_port=0xff;
else
sled_dm_port=dis_buff[2];
}
else
sled_dm_port=dis_buff[wm];
sled_wm_port=sled_lighten_table[wm];
wm++;
if(wm==4)
wm=0;
delay_1ms(1);
}
/*定时器T0中断程序*/
void TIMER0() interrupt 1
{
EA=0;
TH0=0x00;
TL0=0x00;
ET1=1;
EA=1;
TR1=1;
TR0=1;
}
/*定时器T1中断程序*/
void TIMER1() interrupt 3
{
vout=!vout;
k++;
if(k>=4) /*超声波肪冲个数控制(为赋值的一半)*/ {
k=0;
TR1=0;
ET1=0;
for(j=200;j>0;j--); /*1ms延时避开盲区*/
for(j=200;j>0;j--);
for(j=200;j>0;j--);
EX0=1; /*开启外部中断0*/
}
}
/*外部中断0程序*/
void PINT0() interrupt 0
{
TR0=0;
TR1=0;
ET1=0;
EA=0;
EX0=0;
rec_flag=1; /*接收成功标志位置1*/
time=TH0;
time=time*256+TL0;
time=time-120; /*补偿软件或硬件带来的误差*/
distance=time*0.017;
}
/*1MS为单位的延时程序*/
void delay_1ms(uchar x)
{
uchar i;
while(x--)
for(i=0;i<100;i++);
}
七、结语
由于超声波受外界环境的影响,所以该系统存在一定的误差,可以进行温度补偿,减小误差,增强系统性能。
该系统利用52系列单片机设计,设计简单,操作方便。
八、感悟
通过这次实验我们还深刻的理解到关于超声波测距的原理,发现了很多种的测距方法,光是超声波的发射电路就用很多种,在这之间,我们有很多种选择的方式,很多电路都是现成的,但是我们要学会怎么利用这些电路去组装一个新的,整体的电路。
这很值得我们思考。
其次,很多我们找到的东西不一定能用,比如CX20106器件在市场上早已停产,但是在本来的设计上我们是需要这个器件的,那怎么办,经过查找调查后,我们选用了替代电路,当然这是在我们实在找不到CX20106电路的情况下。
这次的实验给我们感触很深,我们是电院的学生,但是我们其实现在还没有做过一个真正能用的产品,总是理论上的讲述,我们需要实践。
通过实验才能发现更多的问题。
感谢这次课程设计,让我们重新拾起了对电子的兴趣,同时谢谢老师的不断讲解,鼓励。
邹昌昊,张心宇。