《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于ARM单片机的装载机障碍物监测预警系统设计
基于ARM单片机的装载机障碍物监测预警系统设计
摘要: 所设计的对装载机障碍物距离的监测预警系统,是以Mini ARM作为处理器针对装载机的工作场地及需要监测的距离信号来考虑的,通过试验验证,该系统已完成了所需的功能要求,最大测量值为9.99m,误差≤0.01m。安装非常方便,便于使用。但该系统还有一个不足,即用超声波传感器检测车辆前方路面信息时,如果是凸起的障碍物能有效的检测到,但当前方为凹坑时便检测不出来,所以有待于进一步研究。
关键词: ARM 障碍物探测
Abstract:
Key words :

1 引言

  随着信息化、智能化、网络化的发展,嵌入式系统技术获得广阔的发展空间,工业控制领域也进行着一场巨大的变革,以32位高端处理器为平台的实时嵌入式软硬件技术将应用在工业控制的各个角落。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化 进程、提高生产率等方面起到了极其重要的推动作用[1]。

  现今,国内外虽有部分车辆安装了超声波倒车防撞报警装置、基于DSP的智能车辆防撞系统、图像处理技术的汽车追尾预警系统等,但是用于像装载机这种广泛用于城建、矿山、公路等工程的工程机械的障碍物监测预警系统却没有发现。所以建立一个对障碍物进行监测预警的系统,提前为驾驶员提供危险信号,让驾驶员能及时采用有效措施是减少事故的有效方法[2~5]。

2 系统硬件设计

  本系统以装载机为研究对象,以实现信号采集、调理、传送、显示和预警为目的。把系统划分为障碍物距离信号采集模块、LCD显示模块、声光报警模块和处理器模块这四个部分。其中以处理器为核心,通过总线和接口电路把信号输入和输出相连。系统做成框图如图1所示。

                         图1 系统组成框图

  该Mini ARM模块集成有C2290微控制器最小系统,USB主机控制器、10M以太网通信控制器以及NAND FLASH 电子盘,其硬件资源主要有:2M NOR FLASH、16K SRAM、2M/8M Bytes PSRAM、10M 以太网接口、2 路USB-Host 控制器、集成电子盘、2 路CAN控制器以及RTC等[6]。

  LCD显示模块使用内置T6963C的液晶显示模块,该模块上已经实现了T6963C与行、列驱动器及显示缓冲区RAM 的接口。

2.1 障碍物距离检测电路的设计

  对于障碍物的检测方法有超声波测距法、图像处理法、激光测距法等。但是由于超声波传感器具有信息处理简单、价格低廉、制作方便等优点。本系统采用超声波测距法来对障碍物的距离进行检测。

(1)超声波测距的原理

  超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为c,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s[7],即s=ct/2 (1)。

(2)超声波测距电路

  在本系统中超声波测距电路是由MICROCHIP的PIC16C57设计而成的,选用的超声波传感器是T/R40-16压电陶瓷传感器。在工作中,主控器PIC16C57发出信号使发射端的超声波换能器发出加以电压激励,其受激励后以脉冲的形式发射超声波,当超声波接收器接收到回波信号时,传回到主控器中,从脉冲信号开始发射时主控器中的定时器便开始计时,接收到回波信号时停止计时。所侧出的时间间隔再乘以声速就得到了两倍的距离值。从而计算出障碍物到发射点的距离。其电路图如图2所示。

                          图2 超声波测距电路图
 距离值通过PIC16C57的10脚进行串行输出,经MAX232芯片后与ARM的串口相连。芯片MAX232是为RS232标准串口设计的接口电路,它完成TTL电平和RS232电平的转换[8]。

2.2 声光报警电路设计

  本系统要求根据影响装载机稳定性的障碍物距离的临界值对危险状况进行三级报警。当处于低危险状况时,只有指示灯绿灯被点亮,提醒驾驶者注意;当危险级别增高时,指示灯黄灯点亮,同时伴随有舒缓的蜂鸣声,提醒驾驶者采取措施;当达到最高危险级别时,指示灯红灯被点亮,同时蜂鸣声由舒缓转为急促,提醒驾驶者赶紧制动。
设计中,分别采用了LPC2290的P2.20(GPIOA4)驱动绿色LED,P2.21(GPIOA5)驱动黄色LED, P2.22(GPIOA6)驱动红色LED,P2.23(GPIOA7)驱动蜂鸣器。所设计的报警电路如图3所示。
 

                         图3 报警电路图

3 系统软件设计

  常用的嵌入式操作系统有VxWorks、Windows CE、嵌入式Linux和μC/OS-Ⅱ等,由于μC/OS-Ⅱ嵌入式系统具有公开源代码,具有实时多任务内核来进行多任务调度等优点[9],所以本系统选用μC/OS-Ⅱ嵌入式操作系统。

  由于采用模块化编程,所以μC/OS-II下系统任务的划分也是基于不同的功能模块,每一个模块被分解成一个或者多个任务,每个任务被安排一个优先级。这样,一旦这些任务被建立起来,它们之间的调度情况就完全由μC/OS-II来完成。结合本系统的设计需求,程序中创建串口通信任务、报警任务、LCD显示任务。其软件流程框图如图4所示。

                       图4 软件流程框图

  上电后,首先进行硬件的初始化,然后对μC/OS-II操作系统进行初始化,建立任务,进行多任务调度。μC /OS - II的任务调度是抢占式的,所以在设置任务优先级的时候应该尽量考虑任务对实时性的要求。即使两个任务的重要性是相同的,它们也必须有优先级上的差异,这也就意味着高优先级的任务在处理完成后必须进入等待或挂起状态,否则低优先级的任务永远也不可能执行。本系统中设置串口通信任务的优先级高于液晶显示任务,液晶显示任务的优先级又高于报警任务。

  1.串口通信任务完成超声波测距部分与ARM处理器之间的数据传输。串口通信部分主要包括两部分内容:用户接口函数和任务函数。串口共有5个用户接口函数,分别为deopen()、dclose()、dread()、dwrite()和diocontrol()。

  超声波测距装置和LPC2290进行通信的部分程序代码如下:
diocontrol(Uart0_Handles,UART0_SET_MODE, (void *)&Mode0); // 设置UART 模式
diocontrol(Uart0_Handles,UART0_SET_TIMEROUT,(void *)5); // 设置接收超时因子, 参数 =0 则关闭超时
diocontrol(Uart0_Handles, UART0_CLR_FIFO, (void *)0); // 清空接收软FIFO
while (1)
{Rece_Count=dread(Uart0_Handles, UART_Rece
_Buff,1); //读取超声波发送过来的第一个起始字节,放入缓冲区
if((Rece_Count>0)&&(UART_Rece_Buff[0]== ’@’)) //如果读取成功且第一个字节为‘@’
{dread(Uart0_Handles,&UART_Rece_Buff[1],3); //接收后三位字节,分别为百位数、十位数、个位数
for(i=1;i<4;i++)
UART_Rece_Buff[i]=UART_Rece_Buff[i]+48; //将十六进制数转换为ASCII码值
for(i=0;i<3;i++)
sbuff[i]=UART_Rece_Buff[i+1]; //接收的数据缓存到数组中,供LCD显示部分调用
}
}
 2.液晶显示任务主要是把ARM处理器中超声波传过来的数据显示到液晶屏上,以方便驾驶员能实时看到障碍物的距离值。

  显示文字的部分程序代码如下:
{ uint32 addr;
uint8 i;
for (i=0;i<24;i++)
/* 找出目标地址 */
{ addr = (y+i)*(GUI_LCM_XMAX>>3) + (x>>3);
LCD_WriteTCommand3(LCD_ADR_POS, addr&0xFF, addr>>8); // 置地址指针
/* 输出数据 */
LCD_WriteTCommand2(LCD_INC_WR, *Buff);
Buff++;
LCD_WriteTCommand2(LCD_INC_WR, *Buff);
Buff++;
LCD_WriteTCommand2(LCD_INC_WR,*Buff);
Buff++;
LCD_WriteTCommand2(LCD_NOC_WR,*Buff);
Buff++; }
LCD_WriteTCommand3(LCD_ADR_POS, 0x00, 0x00);
// 重置地址指针
}

  3.报警任务主要是通过ARM处理器把障碍物的距离值与不同报警条件下的临界值进行比较,并完成相应的报警显示。

4 调试及结果

  系统调试用到了ADS集成开发环境及EasyJTAG-H仿真器。当把程序编写好并把EasyJTAG-H仿真器的JTAG接口与MiniARM产品相连后,便可用调试软件把程序下载到ARM板上,进行试验。

  超声波每检测一次串口输出一组数据,数据传输的波特率为9600,包括一个起始位和三位数据位。结果表明:微处理器对不符合所设定格式的数据帧没有响应,不接收所发送过来的数据,只对满足要求的数据才进行相应的处理。

  超声波检测的数据经调试结果表明,能及时的在LCD液晶显示屏上准确的显示出来,通讯稳定性高。同时对各种危险情况能准确的显示其相应的报警现象。

  本系统的精度分析,我们把超声波传感器的测量值与实际值进行比较绘制了如下表1。


                  表1 障碍物距离测量值与实际值对照表

当障碍物距离大于10m时,发现超声波传感器测量数据发生严重失真,经分析和实验可得本系统对障碍物距离检测的最大值为9.99m,同时由表1数据经分析计算可知测量误差≤0.01m。

5 结论

  所设计的对装载机障碍物距离的监测预警系统,是以Mini ARM作为处理器针对装载机的工作场地及需要监测的距离信号来考虑的,通过试验验证,该系统已完成了所需的功能要求,最大测量值为9.99m,误差≤0.01m。安装非常方便,便于使用。但该系统还有一个不足,即用超声波传感器检测车辆前方路面信息时,如果是凸起的障碍物能有效的检测到,但当前方为凹坑时便检测不出来,所以有待于进一步研究。

此内容为AET网站原创,未经授权禁止转载。