1. 引言
近年来,随着科学技术的快速发展和人民生活水平的不断提高,人们日常生活的交通工具也发生了翻天覆地的变化,从公共汽车、地铁等公共交通工具逐渐变化成私家车等私人交通工具,所以私家车的数量急剧增加。与此同时,不仅提高了生活质量,给生活带来了极大的便利,也为公共交通带来了一定的压力,令道路变得更加拥挤,交通事故变得频繁,而在所有的交通事故中,倒车时引起的交通事故尤其突出 [1] 。在这样的大环境下,汽车倒车雷达预警系统逐渐出现在人们的视野中。汽车倒车雷达预警系统是一种在汽车倒车时起到帮助提醒驾驶员车身周围情况的安全防护装置。当驾驶员在倒车时,它可以在汽车与障碍物之间的距离达到驾驶员在显示屏幕上所设置的最小数值时,以声音提示的方式提醒驾驶员。在汽车倒车雷达预警系统的帮助下 [2] [3] ,节省了驾驶者的能量和精力,因倒车而引起的交通事故数量有所减少。
经过多年的发展,倒车雷达的设计和应用都发生了质的变化,美国/欧洲等国家的汽车公司都投入了大量的资源,采用毫米波雷达、CCD摄像机等制作倒车雷达系统,但价格昂贵,不适合其普及。我国的倒车雷达从2000年开始起步,经过多年的发展,目前使用较多的是数码显示和魔幻镜倒车。
目前,国内外许多学者都着眼于测距传感器的研究。常见的倒车雷达主要由主机、感应器和显示器组成,随着科技的发展,倒车雷达在向着智能化、集成化的方向发展。倒车雷达的集成化就是将测距、报警和显示等功能集成在一起,组成真正意义上的系统。汽车倒车雷达系统让倒车这个过程从驾驶者被动防撞变成了汽车自主感应防碰撞,它是一个体积很小的系统,在车辆上安装应用它,并不会改变车辆自身的形状和系统,方便它的广泛普及。所以,在今后的发展中,我们仍然可以着眼于倒车雷达集成化的研究,将其变为更广泛的集成化系统。
2. 硬件设计
2.1. 系统整体设计
本倒车雷达由STC89C52单片机、超声波测距模块、温度传感器模块和报警模块组成,能够实时测量障碍物的距离和车的速度,并给出反馈 [4] 。STC89C52单片机作为整个系统的控制核心,它具有强大的性能和广泛的应用范围,并且具有功耗低、外围接口丰富和易于开发等优点。
为了实现倒车雷达的控制逻辑,我们将根据车速车距等数据设计合适的控制策略。当汽车距障碍物的距离小于所设数值时,报警模块将发出报警预警,汽车的速度也将实时显示在显示模块上。我们也将设置按键电路控制最小距离的输入,并显示在显示屏上。系统结构框图如图1所示。
Figure 1. Structure diagram of car reversing radar warning system
图1. 汽车倒车雷达预警系统结构框图
2.2. 超声波测距模块
由于超声波传感器发射和接收超声波的角度有一定的范围,所以一个超声波传感器不能准确的发现障碍物的位置,也有可能不能发现离车身最近的障碍物,所以导致整个汽车测速测距安全防护装置的功能受到影响。为了获得汽车周围完整的环境信息,本系统决定使用三个超声波测距传感器,分别在小车的正后方、左后方、右后方安装超声波传感器。
我们选用的超声波传感器为HC-SR04 [5] 模块,其价格便宜、安装方便、材质坚固、耐老化、耐腐蚀、使用寿命长,其测试电路如图2所示。HC-SR04选用IO口触发进行测距,当给IO口持续10 us或更高的高电平,HC-SR04将会自动发送8个频率为40 khz的方波,然后就可以等待是否有信号返回,如果有信号返回,IO口会产生一个高电平,可以打开定时器计时,当端口变为低电平时,可以读取超声波传播的时间,此时,测量距离 = 超声波传播时间*声速(340 m/s)/2。通过这种连续循环测量,可以实现移动测量的价值。
Figure 2. Ultrasonic distance measuring module circuit
图2. 超声波测距模块电路
在图2中,可以通过改变R3的阻值,来改变超声波的测距范围。R3的阻值越大,超声波测距的范围越大,测距的角度也越大,但此时会非常容易检测到前方两侧的物体;当R3的阻值变小时,测距角度和测距的范围也会相应的减小。一般测距模块中,出厂默认R3的阻值为3.9 kΩ,即测距最远距离为4.5 m。
2.3. 温度检测模块
声波在空气中传播时,主要受气温、湿度、大气压力等因素的影响,在正常条件下,大气湿度和压力等因素变化很小,传播速度主要受温度的影响,超声波传播速度C与环境温度T的关系式为C = 331.4 + 0.607T。为了使系统最后测得的距离更加准确,系统需要设计一个温度补偿电路来校正被温度影响的超声波声速。本系统选用的温度传感器是DS18B20 [6] 集成芯片,它体积小、精度高、抗干扰能力强,而且价格低廉、使用方便,并且只需要通过数据线和地线与主控芯片传输数据,就可以直接获取当前环境温度。DS18B20的温度测量范围为−55℃~+125℃,可编程为9~12位A/D转换精度,被测温度用符号扩展的16位数字量方式串行输出。
DS18B20与单片机接口电路如图3所示,本设计采用5 V电源为DS18B20供电。将图4中DS18B20管脚DQ连接到单片机P3.6口,单片机通过串行通信读取测量的温度值。由于所用的装置是通过漏极开路端连接到总线上的,因此我们必须在控制线上连接一个阻值为4.7 kΩ的上拉电阻。
Figure 3. Interface circuit between DS18B20 and microcontroller
图3. DS18B20与单片机接口电路
2.4. 报警模块电路
本系统报警模块采用的主要是声音报警的方式,本系统的报警模块电路选择有源蜂鸣器模块 [7] ,电路图如图4所示。和无源蜂鸣器相比,有源蜂鸣器操作更方便,仅需控制高低电平就可使蜂鸣器响或停。
当障碍物到车身的距离小于设定的最小值时,单片机将向蜂鸣器发出一个电信号,蜂鸣器便会发出声音起报警作用。蜂鸣器电路连接到单片机的P1.0引脚,该电路是由三级晶体管驱动的。如果P1.0端口的输出为低电平,则三极管将导通,此时压电蜂鸣器两端便会加上大小约为+5 V的电压,发出蜂鸣的声音;如果P1.0引脚输出高电平,晶体管将停止,蜂鸣器不发出任何声音。
3. 软件设计
软件设计是倒车雷达预警系统的重要组成部分,只有对硬件进行合理有效的编程,才能更好的实现系统功能。在Windows 10,64 bit系统中,利用Keil 5开发工具,选择STC89C52单片机,采用C语言进行程序编译 [8] [9] ,程序流程图如图5所示。系统初始化后,检测系统当前状态,然后检测障碍物到车的距离,将检测到的模拟量转换为数字量通过条件判断距离是否符合要求,若符合,则系统正常,进行下一次检测;否则,开启声光报警,直到下一次检测符合条件。
3.1. 超声波测距模块
模块HC-SR04的最大测量距离约为4.5米,我们知道,在20℃下,超声波的传输速率约为340米/秒,通过计算,超声波从发射到传播路程为4.5米左右时开始返回,一共需要约26.5毫秒。我们为每个探头设定一个最大等待时间40毫秒,如果超过这个时间还接收不到回波,就触发定时器溢出中断,继续下一个探头的检测。当INTO引脚电位从高电平变为低电平时,触发外部中断。执行中断服务程序时,首先关闭中断,先将中断标志位清零,然后计数器停止计时,记录所测时间 [8] 。获得超声波传输时间,然后得到超声波传播距离。测距流程图如图6所示。
3.2. 测温模块
DS18B20操作简单,所以应用非常广泛。DS18B20的工作流程是先初始化,然后STC89C52单片机会对DS18B20进行复位操作,复位之后,先写一个字节,建立起STC89C52单片机和DS18B20之间的通信协议。温度的转换是在DS18B20进行复位操作后,再接收跳过ROM命令,然后进行温度的转换。温度的读取流程图如图7所示。
Figure 7. Temperature reading flowchart
图7. 温度读取流程图
4. 系统测试
当系统通电时,设置几组最小报警距离,然后以手做障碍物靠近系统,当绿色LED灯亮并且蜂鸣器发出声音时,记录下所设的最小报警距离和实际报警距离,并记录在表1。
Table 1. System resulting data of standard experiment
表1. 距离测量结果
通过对表1数据的分析对比,我们发现实验数据和理论数据不是完全相同的,这是因为系统存在着一定的误差。我们知道超声波的传播速度受温度的影响较大,虽然本系统在设计时就设计了由DS18B20数字温度计构成的温度补偿电路来实时校正超声波的传播速度,但是由于DS18B20模块本身就具有一定的误差,所以系统的温度补偿模块并不能完全精准的校正超声波的传播速度。但通过计算我们可以得知误差很小,几乎可以忽略不记,该系统测量精度较高。
5. 结语
本文设计了一种基于单片机系统的汽车倒车雷达预警系统。选择STC89C52作为本系统的控制核心,该系统可以实时监测障碍物离车身的距离,并且当障碍物距车身距离小于所设定的最小距离时,会发出报警警示。该倒车雷达预警系统工作稳定,能够满足一般近距离测距要求,具有电路设计简单、成本低、测量精度较高的优点,具有一定的实际应用价值。但该系统若在未来使用在实际生产中,还应该在温度对声速的影响和减小测距盲区等方向进行精进。
参考文献