基于ATmega8L的新型防汽车追尾安全装置设计
1 引言
随着我国汽车保有量逐年增加,高速公路的发展使得汽车的行驶速度越来越快。车流量也越来越大,导致高速公路交通事故频频发生,其发生率甚至达到普通公路的4倍,且有上升趋势。在高速公路所发生的交通事故中尤以汽车追尾居多,约占30%~40%,而在这些事故中,80%以上的事故是由于司机反应不及时或者判断失误引起的。由于目前只有高档车型才配有防碰撞装置,而且以往设计中只单纯考虑在车前或车后安装防碰撞装置,不尽全面,所以设计一套低成本、通用性好的汽车防车前车后追尾的安全装置具有广阔的应用和市场前景。因此。这里提出一种基于AVR的新型防汽车追尾安全装置设计。
2 安全装置组成和硬件电路设计
安全装置硬件电路设计主要由单片机控制、加速度传感器、激光雷达、LED刹车灯及电源等电路组成,如图1所示,装置车载状况如图2所示。
2.1 单片机ATmega8L
该设计选用高性能、低功耗单片机ATmega8L,它是基于先进的AVR RISC结构的8位CMOS 工艺微控制器,器件内部集成有模拟比较器,6通道1O位(TOFP与MLF封装为8通道)的A/D转换器,3个具有比较模式的灵活定时器/计数器,512字节的EEPROM,片内/外中断,5种可通过软件选择的睡眠模式,以及8 KB的系统内可编程Flash存储器(可随时在线编程),易于产品设计和更新。同时,ATmega8L可达到接近1 MIPS/MHz的性能,运行速度比普通CISC单片机高出10倍,并且该器件价格不高,为许多嵌入式控制应用提供灵活且低成本的解决方案。另外,ATmega8L的工作电压为2.7~5.5 V,非常适用于那些电压波动较大的场合。
2.2 加速度传感器MMA7260QT与单片机接口设计
该系统设计选用加速度传感器MMA72600T,测量加速度。该器件采用MEMS原理制作的低成本、低功耗、单芯片集成XYZ三轴感应加速度传感器,可准确测量0~350 Hz、±6 g范围内动态或静态加速度,还能够监测车体微小震动和整车的倾斜角度。该器件内部集成了信号调理、单极低通滤波器和温度补偿技术,并提供4个量程(1.5g、2 g、4 g、6 g)可选,2.2~3.6 V单电源供电,工作电流小于500μA,休眠模式下最低供电电流仅为3μA。
MMA7260QT加速度传感器采集汽车加速度数据,并将数据通过ATmega8L的PD7(AIN1)端口传输至ATmega8L,其具体连接电路如图3所示。
图3中,当Xout输出和阈值电压比较匹配时,系统发出模拟比较器中断,单片机转向LED刹车灯闪烁中断子程序处理,采用这种方式可节省系统资源。Xout与PD7引脚之间的RC具有滤波作用,用于减小时钟噪声,在电源和地之间加入去耦电容。另外,实际焊接安装时应保证加速度传感器MMA72600T尽可能地靠近微控制器ATmega8L放置。
2.3 霍尔车速传感器
霍尔车速传感器由8级磁钢、UGN-3030T型霍尔开关传感器、LM2917及放大电路组成,如图4所示。
图4中,汽车传动部分带动8级磁钢旋转,由于磁场变化使得8级磁钢每转一圈霍尔传感器便产生8个脉冲信号,经放大器处理输出到频率/电压转换器LM2917,由单片机的A/D转换器根据LM2917输出电压测量当前汽车时速。
2.4 激光雷达测距
测距方法主要有超声波、激光雷达、连续波雷达等,基于成本和设计需求考虑,激光雷达测距是最佳选择。激光雷达测距有连续波和脉冲波两种方式,本设计使用脉冲波方式。安全装置发出脉冲状的红外激光束照射前方,并利用汽车后部可反光部件(以汽车号码牌为主)的反射光,通过受光装置检测反射光,单片机根据时间差计算出其距离。
该部分电路由发光部、受光部、信号调理电路等组成,最终输出信号由系统单片机处理。由于激光雷达发射光束集中,采用单一发射方式无法有效检测前方一定距离,故在汽车前方安装3个激光雷达测距模块,如果其中一个模块检测到的距离小于该时刻最小允许距离,安全装置将报警,即能够及时检测到插入车流的车辆并警报,如图5所示。
2.5 LED刹车灯
该设计中,刹车灯由发光二极管阵列组成,发光二极管选用Evedight公司生产的1 W高亮度LED,其响应时间为纳秒级,而普通车灯的热启动时间约250 ms。假设汽车时速为90 km/h(即25 m/s),通过计算可得反应迅速的LED刹车灯可提早约6 m距离发出刹车警告,从而有效避免汽车追尾。将LED放置成内、中、外三圈形状。当单片机根据加速度传感器的输入信号得到加速度值超过设定的阈值后,单片机输出信号经ULN2003驱动继电器动作,LED刹车灯响应后由内一中一外一内循环点亮,由于其亮度高、响应快。在实际使用中效果良好。另外,该部分电路需与汽车刹车装置联动,以确保准确输出刹车信号。
2.6 液晶显示
该设计采用并行128x64液晶屏,虽然占用较多的I/O端口,但并行传输便于编写驱动程序,如果系统单片机不能提供足够的I/O端口,可选择串行数据传输的液晶显示屏。另外,为了让司机能够更方便地看到设计系统所测得的数据,应将显示设备放置于司机主控台视线合理位置。
3 系统软件设计
控制部分由ATmega8L控制完成,主要功能为:计算本车速度、车间距离,测定加速度,并通过LCD实时显示;实际车间距离和安全车间距离的比较发出报警声或报警灯闪烁;刹车时的加速度与设定阈值相比,决定是否点亮LED刹车灯,系统软件设计流程如图6所示。
在加速度测定中,考虑到汽车行驶当中的振动和噪声等影响信号输出,还需进行必要的软件滤波处理,这里采取数据平均值方法。据《中华人民共和国道路交通安全法实施条例》,安全行车距离与行车速度关系模型如下:当v≥100 km/h时,S>100 m;当v<100 km/h时,S>vt/1 000 m;其中,S为安全行车间距,单位为m;v为本车时速,单位km/h;t为每小时。高速公路上S>50 m。软件设计主程序代码如下:
car_speed();//汽车时速监测,返回值为i
lcd_display(i,1);//第一行实时显示车速
car_distance();//车距监测,返回值为j
lcd_display(j,2);//第二行实时显示车距
car_cmpl(i,j);//比较车距与安全车距,确定是否报警
#pragma interrupt_handler ana_comp_isr:17
car_acc();//加速度监测,返回值为k
car_cmp2(k);//实际加速度与设定阈值的比较,确定是否点亮LED刹车灯
主程序在车辆开启后一直循环执行,直至车辆电源关闭。