基于CPLD 的超声波倒车预警系统的研究
2022-10-11徐旭陈嘉鹏
徐旭,陈嘉鹏
(中科芯集成电路有限公司,江苏无锡 214072)
随着社会的发展,汽车走进了千家万户,汽车产业的发展让人们的生活变得更加便捷的同时,交通事故的发生也屡见不鲜。据统计,我国每年交通事故造成的死亡人数高达10万人以上,而在这些交通事故当中,因倒车而引发的交通事故就占一半以上[1]。目前市面上的一些中高档汽车基本都配备了倒车影像雷达,可以在倒车时给驾驶员提供直观、准确的车辆后方障碍信息,但这种装备成本较高,对于低端车辆,例如小型货运车辆并不适用。但近年来,小型货车在倒车过程中发生意外,造成人员生命财产损失的事件时有发生,因此,有必要研发一种适合小型货运车辆的倒车预警系统。超声波由于其能量集中、指向性强、较好的抗干扰能力等特点,被广泛应用于测距领域[2-3]。文中基于CPLD 设计了一种超声波倒车预警系统,经验证,该系统可以有效对倒车过程中的障碍物距离进行测量,并进行相应报警提示,提高车辆安全系数。
1 超声波测距原理
超声波测距的原理是利用超声波发射探头发出超声波,在声波发射的同时开始计时,超声波传播过程中如果遇到障碍物会发生反射,反射波一旦被接收探头识别,就立即停止计时[4]。由于一定条件下声速v是确定的,所以只要知道超声波传播的时间t,就可以得出超声波发射点和障碍物之间的距离s为:
超声波作为一种声波,其传播速度受温度的影响,温度每升高1 ℃,声速将增大约0.6 m/s[5-6]。为了提高系统的测量精度,对温度的影响进行了补偿,已知环境温度为T,则超声波的传播速度为:
2 系统总体设计
现有的超声波测距系统一般都采用单片机作为主控芯片,受单片机工作频率偏低以及执行指令时长难以准确估算的限制,系统测距结果的准确性很难得到保证[7-9]。利用FPGA 作为主控芯片可以有效提高计时精度,但成本较高,不利于推广[10-11]。鉴于以上考虑,该系统采用价格较为适中,但工作频率较高,并且以能并行运行的CPLD 作为主控制器,提高了性价比。超声波倒车预警系统结构框图如图1 所示,主要包括CPLD 控制芯片、超声波传感器、数码管显示模块、声光报警模块、温度检测模块。
图1 系统结构框图
3 系统硬件设计
3.1 CPLD控制电路
CPLD控制电路主要由六部分组成:EPM240T100C5主控芯片、电源电路、时钟电路、JTAG 下载调试电路、USB 转串口电路、按键电路,原理图如图2 所示。
图2 CPLD控制电路
EPM240T100C5 是Altera 公司生产的一款低成本、低功耗的CPLD 芯片,工作电压的范围为2.5~3.3 V,拥有80 个IO 口,可以满足系统设计需要。系统由USB 接口供电,使用方便并且支持热插拔,USB接口输入的电压经AMS1117-3.3 低压差线性稳压器转换成稳定的3.3 V 电压,为了方便后续系统功能扩展,还通过USB 转串口芯片CH340G 预留了串口通信功能。系统时钟由50 MHz 有源晶振提供,计时精度可达20 ns。
3.2 超声波测距模块
为了简化设计,超声波测距模块采用的是HCSR04 超声波传感器,该传感器的探测范围为2~450 cm。该模块使用方便,只有VCC、GND、TRIG、ECHO 四个引脚,其接线原理图如图3 所示,VCC 接5 V,GND 接地,TRIG 引脚内部有10 kΩ上拉电阻,测量时通过CPLD 的IO 口先将TRIG 引脚拉低,再提供一个10 μs 以上的脉冲信号,传感器将自动发送8 个频率为40 kHz 的方波,激励换能器发射超声波,实际使用时高电平保持40~50 μs 效果最佳。接收到回波信号后,传感器将通过ECHO 引脚输出一个高电平给CPLD,高电平持续的时间就是超声波从发射到返回的间隔时间。HC-SR04 超声波传感器工作的时序图如图4 所示。
图3 HC-SR04模块接线原理图
图4 HC-SR04模块工作时序图
3.3 温度检测模块
由式(2)可知,声速受温度的影响,为了提高超声波倒车预警系统的测量精度,对声速进行了温度补偿。温度检测模块采用的是美国Dallas 公司生产的DS18B20温度传感器,该传感器的测温范围为-55~125 ℃,测量误差不超过±0.5 ℃[12-13]。DS18B20 传感器具有精度高、智能化、体积小、线路简单等优点,采用单总线协议,即与CPLD 接口仅需占用一个I/O 端口,简化了传感器与CPLD 的接口设计的同时提高了抗干扰性。该传感器能够直接读取温度测量值,用户可以根据实际需要,通过编程设置测量分辨率,其分辨率范围为9~12 位。DS18B20 有寄生电源供电和外部电源供电两种供电方式,为了保证转换精度,系统通过外部电源给DS18B20 传感器供电。温度检测模块的接线原理图如图5 所示。
图5 温度检测模块接线原理图
3.4 显示和声光报警模块
常用的显示设备有LCD 液晶显示器、数码管等,其中LCD 液晶显示器虽然功耗低,但在工作环境光线较强的情况下难以看清显示内容[14-15],如果应用在倒车预警系统中会影响系统的安全性。因此超声波倒车预警系统采用显示更加清晰,并且价格相对便宜的数码管来显示测距结果。显示模块的原理图如图6 所示,4 位数码管采用共阳极连接,用NPN 三极管作为开关控制位选信号,当基极为高电平时,三极管导通,输出高电平,如对Q1 而言,当SEL0_T 为高电平时,选通数码管D1。
声光报警模块由有源蜂鸣器和不同颜色的发光二极管组成,为了更好地提示驾驶员障碍物当前的危险系数,系统将测距范围设定为四个安全等级(一级:大于3 m,二级:2~3 m,三级:1~2 m,四级:小于1 m),由CPLD 根据不同的安全级别输出不同频率的驱动信号,使蜂鸣器发出报警,同时驱动不同颜色的发光二极管发光(一级:指示灯均不亮,二级:绿灯亮,三级:黄灯亮:四级:红灯亮),由于有源蜂鸣器的工作电流较大,通过三极管Q5 设计一个简单的放大电路。声光报警模块原理图如图6 所示。
图6 显示和声光报警模块
4 系统软件设计
系统软件的总体架构采用自顶向下的模块化设计方法,开发环境为QuartusⅡ,采用Verilog HDL 硬件描述语言进行设计[16]。CPLD 芯片内部模块主要包括:按键检测模块、超声波触发模块、回波检测模块、计时模块、声速校正模块、距离计算模块、数码管显示模块、声光报警模块。
为了降低代码复杂程序,使用状态机来进行代码编写,根据输出是否与输入有关,可以将状态机分为摩尔型和米利型,其模型分别如图7 和图8 所示,系统采用摩尔型状态机,其输出只取决于当前状态,稳定性更好。状态机根据相应的控制信号跳转到不同的状态,由于CPLD 内部提供较多的组合逻辑,代码采用格雷码对不同的状态进行编码,格雷码虽然使用较多的组合逻辑,但节省了寄存器。
图7 摩尔型状态机模型
图8 米利型状态机模型
系统启动后,开始检测按键是否被按下,如果按键按下,表示开始倒车,此时超声波触发模块驱动超声波传感器发出超声波,当回波检测模块检测到高电平时,计数模块开始计数,高电平结束立即停止计数,超声波传播时间t=N/f,其中N为计数值,f为系统时钟频率。已知传播时间t和校正后的声速v,根据式(1)就可以计算出障碍物距离,再通过显示模块驱动数码管显示测量结果。报警模块根据距离大小,控制蜂鸣器发出不同频率的提示音,同时点亮相应颜色发光二极管。系统流程图如图9 所示。
图9 系统流程图
5 实验及分析
为了验证超声波倒车预警系统的测量精度,对其进行了实测,实验记录了12 次测量结果,如表1 所示,其中,实际值是用钢制卷尺多次测量得到的平均值。由实验结果可知,该文所设计的超声波倒车预警系统的测量范围在2~450 cm,在10~450 cm 量程之间,测量结果的相对误差在5%以内,能够满足实际需要。
表1 实验结果
6 结论
该文在综合分析了现有倒车预警系统的基础上,将CPLD 和超声波测距技术相结合,设计了一种适用于小型货运车辆的超声波倒车预警系统。该系统采用CPLD 作为主控芯片,利用HC-SR04 传感器发送接收超声波信号,并具有温度补偿功能,简化了系统复杂度的同时提高了测量精度。倒车过程中,当检测到车辆后方有障碍物时,系统会通过数码管显示障碍物当前距离,并根据距离大小发出相应的声光报警。实验表明,该系统能满足实际需要,性价比高,具有一定的推广价值。