智能车距离控制系统设计
2011-07-05秦连升曹诗咏李明海王玉博
秦连升,曹诗咏,李明海,王玉博
(1.西南石油大学电气信息学院,成都,610500;2.中海油湛江分公司,湛江,524057)
0 引言
随着汽车工业的发展,智能型小车也逐渐受到人们的关注,自动驾驶则是人们对小车技术的急切要求[1]。所以,如何实现一种在行车过程中,能够使小车达到智能距离控制的目的,则是自动驾驶的一项关键技术。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现[2]。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,而且硬件容易实现,因此在自动驾驶技术的研制上也得到了广泛的应用。
1 总体设计方案
本系统主要由超声波测距、步进电机控制、LED显示以及报警电路组成。系统的控制核心是由AT89S52单片机实现的。单片机输出脉冲驱动超声波发送器发送超声波、接受超声波,通过计算求出被测距离,通过单片机驱动LED数字显示。然后调整步进电机的旋转步数,控制车子与障碍物保持一定的安全距离。当距离超过限制时,驱动蜂鸣器发出报警。GPS定位装置能够帮助用户准确定位当前位置,并通过8255扩展I/O口电路驱动LCD液晶显示器,显示出车辆的当前位置、时间、海拔高度信息,这是实时监测车子状态的一种关键指标。本系统还特别安装了人体红外传感器,它可判断车子前方是否有人,然后通过单片机驱动语音装置,使车子进行紧急语音提醒。智能车距离控制系统总体设计框图如图1所示。
图1 智能车距离控制系统总体设计框图
2 硬件电路设计
智能车距离控制系统主要由五部分单元电路组成,分别是:AT89S52单片机最小系统,超声波测距系统,步进电机控制系统,GPS定位系统,报警系统。下面将一一介绍各部分电路。
2.1 AT89S52单片机最小系统
主控制器主要由单片机AT89S52、振荡器和复位电路3部分组成,它是单片机工作的必要组成部分,又称为单片机最小系统。它是整个测距系统的控制中枢,也是整个系统的核心部分。在测距系统中发挥重要的作用:控制超声波的发射;处理超声波接收电路信号;时间转化成距离的数据处理;步进电机的控制;GPS信息的处理;发送位置信息到LCD去显示等。AT89C52单片机,是一种低功耗、高性能的含有8k字节快闪可编程/擦除只读存储器的单片机,计数精度达 μs,8位数据总线[3]。有一个可编程全双工串行通信接口,能同时进行串行发送和接收。
2.2 超声波测距系统
超声波是指频率高于20kHz的机械波。超声波测距的主要原理是,超声波在均匀媒质里的传播速度一定,不随声波频率的变化而变化,只要计算出超声波从A地传播到B地的时间,就能计算出AB两地之间的距离[4]。为了以超声波作为检测手段,必须产生超生波和接收超声波。超声波测距系统包括超声波发射电路,超声波接收电路,这两个电路主要由LM386和CX20106A这两块芯片及其外部电路组成。LM386具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,利用LM386的驱动放大功能将单片机产生的40 kHz方波放大输出,使得硬件电路相对简单。CX20106A是一款红外线检波接收的集成电路,考虑到红外遥控常用的载波频率38 kHz与测距超声波频率40 kHz较为接近,可以利用它作为超声波检测电路。实验证明,它其具有很高的灵敏度和较强的抗干扰能力。
单片机AT89S52控制振荡源发出40kHz的脉冲信号,由于单片机端口产生的方波信号太弱了,需放大该信号。放大后的脉冲信号驱动超声波发送器,发出超声波。单片机在发送第一个超声波脉冲的同时启动定时器T0计时,工作在方式1。当超声波遇到障碍物后产生回波,该回波被超声波接收器接收。超声波接收电路通过超声波传感器接收回波信号并将其滤波放大,之后将放大的信号整形为数字信号,作为中断信号送STC89C52RC外中断器,使其产生中断,关闭定时器,停止计时。这样可以得到从发射超声波到接收到超声波的时间T。然后利用公式S=CT/2求出被测距离,还要通过程序进行距离值的修正,然后将距离数值送LCD显示。超声波发射接收电路,如图2所示。
图2 超声波发射接收电路
2.3 步进电机控制系统
步进电机是纯粹的数字控制电动机。它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制[5]。通过单片机按顺序给绕组施加有序的脉冲电流,就可以控制电机的转动,从而实现数字—角度的转换。转动的角度大小与施加的脉冲数成正比,转动的速度与脉冲频率成正比,而转动方向则与脉冲的顺序有关。单片机将超声波的测量值与实际要控制的距离值进行比较,然后驱动步进电机正反转控制,达到距离控制的目的。图3显示了步进电机的控制电路。由单片机 P1.1、P1.2、P1.3、P1.4 发出的控制信号经光电隔离后分别向驱动芯片L298N的IN1、IN2、IN3、IN4端口,经过L298N的整流放大,将单片机发送来的弱电信号转化为步进电动机正常运行所需的一定幅值的脉冲信号,再由其输出口OUT1-OUT4输出到步进电动机,而OUT1-OUT4分别接步进电动机的A、B、/A、/B,从而驱动步进电动机运行。
图3 步进电机控制图
2.4 GPS 定位系统
GPS优点很多,如全天候、全球覆盖、三维定速定时高精度、快速省时高效率、应用广泛多功能等,这使得GPS应用相当广泛[6]。本文的GPS模块选了EB-3531,GPS装置接收多颗卫星的定位信息,进行处理后按一定的格式输出串行数据,8250实现串并转换,通过总线与单片机通信,最后通过8255驱动LCD液晶显示时间、经度、纬度、高度。
液晶屏分四行显示:
第一行时间:TIME:年月日 时分秒
第二行经度:LONG:+经度值+E/W
第三行纬度:LAT:+纬度值+N/S
第四行高度:HIGH:高度值 +高度单位M+定位有效A:0/1(1时有效)
2.5 报警系统
为了使系统更完美,本文还添加了报警系统。人的安全是第一重要的,在车子行驶的过程中,如果车子前方有人,报警系统就会发出警报的话,那将减少很多交通事故。由此,本系统设计了人体红外报警系统部分。人体红外传感器用于检测人体发出的特定波长的红外线,进行非接触式距离较远的检测[7],当系统检测出车子周围有人体发出的特定波长的红外线后,然后使单片机产生中断,最后驱动语音芯片执行语音报警提示。另外当车子与障碍物的距离超过限制时,会产生中断,驱动蜂鸣器发出报警。
3 软件设计框图
智能车距离控制系统的程序流程图如图4所示。系统软件主要由主程序、初始化程序、超声波发射子程序、GPS信息接收子程序、中断子程序、显示子程序组成。系统上电后首先初始化,初始化8250、8255,设置定时器、计数器工作方式,设置GPS模块输出格式,打开总中断,显示端口清零等。
图4 智能车距离控制系统程序流程图
超声波发射子程序的作用是通过P1.2口在定时器的设定时刻取反交替产生的高低电平输出方波脉冲。为避免从发射头发出的超声波直接被接收头作为回波接收,在调用定时器中断子程序后设置0.2 ms的延时,主程序检测到回波接收成功后将计数器T0中的值T0按公式计算即可得测量距离。将所得的距离值与设定值进行比较,控制步进电机的运动,控制距离值。然后将所得数值通过P0口直接传入液晶显示。显示程序将接收到的时间、经纬度、海拔信息通过8255传入液晶显示。中断子程序流图如图5所示。
图5 中断子程序流图
4 结束语
本文成功设计了智能车距离控制系统,该系统可用于自动驾驶过程中的距离控制单元,自带的GPS定位系统,能完成车子当前位置,时间,海拔高度信息的准确显示;人体红外报警系统可实现车子周围的人体判别,也是自动驾驶的一项很重要技术。总之,该系统的设计对自动驾驶技术的发展有很大的推进作用。
[1]乔维高,徐学进.无人驾驶汽车的发展现状及方向[J].上海汽车,2007,(7):40-13.
[2]沈俊霞,杨德.单片机在超声测距系统中的一种应用[J].电子科技,2005,(5):41-43.
[3]李广弟,朱月秀,冷祖祁.单片机基础[M].北京:北京航空航天大学出版社,2007:60-65.
[4]李航,王可人.基于STC89C52RC的超声波测距系统设计[J].电子测试,2010,(1):55-58.
[5]杨辉媛,杨红海,谭伟杰.基于AT89C51单片机步进控制系统的设计[J].船舶电子工程,2008,(8):204-206.
[6]Parkinsson,B.W.and Spilker,J.J.Jr,Global Positioning System:Theory and Applications,vol.1,American Institute of Aeronautics and Astronautics[M],1996:20-23.
[7]何希才.传感器及应用电路[M].北京:电子工业出版社,2001:87-90.