《武汉工程大学学报》  2011年01期 96-99   出版日期:2011-01-30   ISSN:1674-2869   CN:42-1779/TQ
基于EASYARM2103倒车雷达的设计


0引言倒车雷达也称为汽车泊车安全辅助装置,是一种着眼于倒车防护的汽车防撞系统,主要针对车辆倒车时人无法直接目测到车尾与障碍物体的距离而设计.安全避免障碍物的前提是快速、准确地测量障碍物与汽车之间的距离.超声波测距作为一种现代化的测量手段以其非接触性、定向性好、可测范围广、能量集中、在传输过程中衰减较小、反射能力较强、不受光线和被测物体颜色的影响,并且在恶劣的工作环境下具有一定的适应能力等优点而被广泛的应用.超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,也被广泛用作测距传感器,应用于许多领域.因此本系统以EASYARM2103作为核心处理器,使用超声波传感器,利用时差法来确定传感器和反射物之间的距离,与常规的测距手段相比往往比较迅速、方便、计算相对简单,并且易于做到实时控制[1].1超声波测距原理超声波由发射探头发射,遇到障碍物反射回来,被接收探头检测,如图1所示.其经过的时间与超声波在空气中的速度相乘,即为声波传播距离.车与障碍物之间的距离即为此距离一半.即为
L=12Ct=12CNT(1)
式(1)中:L为待测距离;C为超声波在空气中传播速度;t为往返时间;T为微处理器的机器周期;N微处理器计数的脉冲个数[2].超声波频率的选择影响测量精度,应满足既不影响接收时强度,又具备应用时的显示精度,本设计选用的是40 kHz的超声波[23].图1超声波测距原理图
Fig.1Ultrasonic measuring principle scheme2系统总体设计2.1系统硬件设计开发板EASYARM2103具有丰富的片内资源和高速的运行速度,保证了信号的实时采集和处理,自带32位ARM处理器LPC2103作为数字电路处理器,能提供5 V和3.3 V两种类型的电源,能为超声波测距模组V2.0和OCM12864液晶显示模块提供5 V电源.超声波测距模组所产生的输出信号为数字信号,不需要再做专门模拟数字转换.OCM12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接接口,具有8位标准数据总线、6条控制线及电源线,采用KS0108控制IC.因而简化硬件系统设计.倒车雷达系统主要包括超声波测距和液晶显示两大部分,总体硬件连接如图2所示.图2系统总体硬件连接图
Fig.2Overall hardware connection diagram第1期杨帆,等:基于EASYARM2103倒车雷达的设计
武汉工程大学学报第33卷
开发板EASYARM2103上的P0.4~P0.6口分别接到液晶屏OCM128643的使能端口E,读/写选择端口R/W,指令/数据选择端口RS,和片选端口CS上,作为控制总线,而P0.16~P0.23口作为数据总线,直接连到液晶屏的DB0DB7数据端上.超声波收发模块和液晶屏的逻辑地端都与开发板的逻辑地相连,而它的VCC端分别连接到开发板的5 V和3.3 V电压端,P0.8设置成为定时器2,连接到超声波收发模块的40 kHz_SEND端, P0.10设置成定时器1,连接到Back Plus端口,对于片选端口CS1和CS2,用P0.7进行控制,当P0.7为高电平的时候选择右半屏,当P0.7为低电平的时候选择做左半屏[45].本系统采用的是脉冲测量法,由EASYARM2103控制模组发生 40 kHz 的脉冲信号,每次测量发射的脉冲数至少要12个完整的40 kH脉冲.同时发射信号前打开计数器,进行计时;等计时到达一定值后再开启检测回波信号,以避免余波信号的干扰,采用外部中断对回波信号进行检测.EASYARM2103开发板接收到回波信号后,马上读取计数器中的数值,此数据即为需要测量的时间差数据.图3是超声波测距模组结构图.图3超声波测距模组结构图
Fig.3Ultrasonic measuring module structure一般应用时,只需要用两条I/O口,一条为输出口,提供40 kHz的频率,另一条为输入口,接收由于超声波碰撞障碍物返回的声波经过超声波模块处理所产生的脉冲,同时设置好J1、J2跳线就完成硬件的连接了.不同测距模式的选择只需改变测距模式跳线J1的连接方法即可.根据本设计要求,只能选择可调距模式.根据查阅EASYARM2103的数据手册,本设计选择P0.8和P0.10两个端口来控制超声波测距模组.P0.8设置成为定时器2,产生超声波模组所需要的40 kHz的频率,而P0.10设置成定时器1中断捕获,来接收Back Plus端口的中断[67].2.2系统软件设计软件设计主要包括液晶显示软件设计和超声波测距模块的软件设计.
2.2.1液晶显示软件设计(1)EASYARM2103对LCD的控制过程.当作写入寄存器数据操作时,首先在EP 线上产生一个低电平使LCD 模块读写使能,再把CS置为低电平,选中所需要的LCD左半屏或者右半屏,同时将RS线置低,以通知LCD 模块即将进行的是对寄存器的操作.此时,RW线电平置低表示要进行的是写入的操作,置高时表示要进行的是读入的操作.然后使片选CS 信号置低;然后装载数据DB0DB7至数据线,将使能控制端口EP为高电平,锁定数据,最终使总线上的数据得以载入.在写操作之前要进行状态检测,看LCD显示模块是否空闲,若忙碌则等待,若空闲就可以对其进行操作.首先要对写入指令或者数据进行判断.若是写入数据,则使RS产生高电平,若是写入指令,则使RS产生低电平.然后进行短暂的延迟,确保RS电位已经变成希望的电平.接下来要定义各个引脚的功能和输入输出,然后就可以写入数据或者指令了.读LCD 数据子程序与写子程序大致相同.(2)字符显示程序.在字符显示程序之前,要写绘点子程序.本设计中采用的8*16 的ASCII码西文字库.字库定义为一个unsigned char 的数组,数组的名称ASCII即为该字库的首地址.字符显示程序,首先定义所需要的变量,要判断字符串数组中的元素的个数,并保存到变量中,然后依次找到各个字符在数组ASCII[]中首地址.接下来把数组ASCII[]中的每个字节,转换成8位,并且得到每一位的信息,通过绘点子程序,描出字符.绘点子程序要循环8*16次.此外还需要做一个汉字字库的数组,放置在文件GB_Table.h当中.为了节约空间,本设计把可能要用到的汉字找出来建立字库,在该字库中,每个汉字的字模数据为2*16 个字节,所以查询到序号就可以检索到它们的字模数据的首地址了.最后只用把存放距离的变量distance,通过sprintf()函数转换成字符串,然后通过上述字符显示程序显示出来即可.到此为止,显示部分已经完成,下图4即为液晶显示字符的照片.
图4液晶显示字符的照片
Fig.4Picture of character LCD display2.2.2超声波测距程序不管是对于定时器还是串口中断,首先都要对端口的输入输出和端口的功能进行定义,由于EASYARM2103功能的强大和相对较少的引脚数的对比,每个端口都又二到三个功能,所以要进行定义.端口的方向通过IODIR寄存器,功能通过管脚功能选择寄存器PINSEL0和PINSEL1定义,把P0.8和P0.10功能分别选择为定时器2和定时器1.图5超声波测距总体程序流程图.由定时器2提供40 kHz频率,对于40 kHz很不好观察,不知道是否达到要求,可以把P0.8接到开发板上自带的LED灯上,并且修改为1 s,进行调试,结果便于观察,而要达到40 KHz只用把程序中的数值做一定的修改就可以了.达到1 s的频率,也就是说每隔可以直接对定时器2进行初始化得到,只用定义P0.8每隔0.5 s,把自己的输出电平翻转一次就可以了[8]. 超声波测距程序的所有操作都是通过设置定时器达到的,首先对定时器控制寄存器T2TCR进行设置,使之复位.然后对预分频寄存器T2PR设置,使其不分频.之后设置匹配寄存器T2MCR,使之匹配后复位T2TC,通过外部匹配寄存器T2EMR设置翻转,并设置匹配值.最后启动定时器就可以了,这个程序相对比较简单.其中,Fpclk为外部时钟频率的4倍.通过LED灯的闪烁,判断是否程序达到要求,若程序运行良好,就可以把程序中T2MR0=Fpclk/2语句改成T2MR0=Fpclk/80 000,频率就可以达到40 kHz.图5超声波测距总体程序流程图
Fig.5Ultrasonic measuring overall process flow chart3结语对设计的超声波测距仪进行多次实验,取一组实验数据及误差分析表如表1所示.表1实验数据及误差分析表
Table 1Experimental data and error analysis table
实际距离/m实验结果/m误差/%0.500.548.00.700.745.70.900.922.21.101.211.11.301.310.77由表1可知,设计的倒车雷达测距范围为40 cm到140 cm,距离越近,精度越低,测量误差为5 cm.在汽车倒车中,当驾驶员可以从LCD屏上可以直观的得知障碍物的距离,防止汽车与障碍物的距离小于安全距离,防止了汽车的碰撞和擦伤,它克服了后视镜小,视野狭窄的缺点,保障了汽车的被动安全性能,消除了盲区倒车造成的事故隐患,具有很强的实用价值.