随着人们生活水平的提高,公路上的私家车辆也增多了,但随之带来的问题就是交通事故发生率居高不下,严重危害着人们的生命安全。文中就如何预防交通事故发生,研究设计一种响应迅速、高可靠性并且经济实用的汽车防擅报警设备。该设备在设计过程中的关键任务是利用置于汽车车头左右两端的双路通道高速采集激光雷达回波信号并对其进行实时存储和处理,进而快速测量自身交通工具与障碍物之间的距离及相对速度。 1 系统概述
对用于高速公路中的雷达系统而言,考虑到开车的速度比较快,对于一些突发事件无法立刻做出响应,因此就要求设计的防撞雷达探测距离尽量长些,可让驾驶员提前做好安全准备工作,因此这种高速公路防撞系统一般选用激光探测法。采用激光测距的汽车防撞系统结构图,如图1所示。
2 硬件总体设计原理及框图
对于激光雷达回波信号经过光电器件转换后形成的电信号,其信号频率高,脉冲宽度相对比较窄,信号幅度低,背景噪音大,如果是选用低速的数据采集系统进行数据采集的话,那么将会存在数据精度不高的不足,所以必须采用高采样率、高分辨率的数据采集系统。系统总体原理框图如图2所示。
该系统的主要信号流程:由激光传感器获得的2路激光雷达回波信号先通过缓冲放大等前端调理后,同时送到AD转换电路进行模数转换,然后可以同时被中央逻辑控制模块FPGA来采集,这样相对于用DSP的分时采集来说,极大的提高了速度。FPGA一方面完成对A/D的采样控制,另一方面与DSP的EMIF接口形成传输通道,完成了AD与DSP之间的数据传输任务,避免了ADC直接与DSP通信,降低了对大量的数据传输的压力。
2.1 前端信号调理电路
2.1.1 前端放大电路
从传感器中输出的信号必须经过调理才能够有效地进行数据采集,为了达到最高的测量精度,应该使被测信号的电压变化范围放大至ADC最大量程附近,所以需要将传感器出来的小信号通过前端放大电路线性放大成适合系统的的电信号。在本系统中主要选用了AD公司生产的AD8062低成本的运放模块来实现的,如图3所示。
2.1.2 前端差分电路
为了消除偶次谐波分量,抑制共模噪声源,起到系统抗干扰的效果,本系统的AD转换电路采用差分输入的形式,而信号经过放大电路后得到的是单端信号,所以,必须要将前端的输入单端信号转化为差分信号。本设计选用了ADI公司生产的AD8620驱动芯片构成差分驱动电路,其具体电路设计如图4所示。
2.2 AD转化电路
在数据采集系统中AD是比较重要的环节,主要完成对激光回波信号的采集工作,而采样时钟信号可以由FPGA电路内部的时钟模块来提供。ADI公司的AD9481,可以采用差分输入,采样率达到250 MSPS,并且采用250 M的PECL标准的时钟信号,为此在设计中为产生该差分时钟信号,考虑选用MC100LEL16的时钟芯片。AD9481的数字输出属于并行接口,有16位的数据流,对于这么高速的数据与存储会出现竞争冒险,使系统不稳定,因此在设计时AD与FPGA的输出端之间串接了一个100 Ω的电阻,可以消除出现在0~1之间的毛刺与高速数据线之间的干扰,具体的AD硬件原理如图5所示。
2.3 数据处理部分硬件电路
本系统数据处理部分由FPGA和DSP两个部分来完成。根据前一级AD电路的信号输出时序进行VHDL编程,来实现同时对两路AD输出的数字信号的采集,将数据输入到FIFO模块中,然后通过EMIF总线将数据快速传输到DSP里进行相关算法的运算。
2.3.1 FPGA电路
FPGA采用硬件编程实现复杂的逻辑功能,不仅能够对采集到的大批量数据流进行预处理,而且作为整个控制系统的核心部分,提供系统所需的时钟信号,保证数据的有序采集,而且作为数据传输的纽带,保证了AD与DSP进行数据传输。结合采样存储传输等功能FPGA的模块主要分为4个部分:时钟管理模块、A/D控制模块、FIFO缓存模块、与DSP的EMIF接口模块:
1)时钟管理模块,该部分主要是产生系统所需的各模块的时钟信号,本系统采用ISE软件自带的DCM模块来实现。
2)A/D控制器:根据当前选择的采样模式为A/D提供相应的控制信号以使A/D正常工作;并通过AD电路的信号输出时序将AD输出的数字信号进行采集。
3)FIFO缓存模块:主要实现将高速采集到的数据缓存到FIFO中。当缓存满时,FIFO的满标志(full)向DSP申请中断,DSP相应中断后采用DMA传输方式把采样效据读到内存中进行数据实时处理。
4)与DSP的EMIF接口模块:DSP通过EMIF接口与FPGA内部的RAM连接,实现了将FPGA中缓存的数据与DSP进行高速传输的作用。
2.3.2 DSP与FPGA的接口设计
本系统在设计中DSP主要是通过C6713器件的外部存储器接口EMIF与FPGA进行数据通信。外部存储器接口(EMIF)是TMS DSP器件上的一种接口。一般来说,EMIF可实现DSP与不同类型存储器(SRAM、Flash RAM、DDR-RAM等)的连接。用EMIF与FPGA相连,从而使FPGA平台充当一个协同处理器、高速数据处理器或高速数据传输接口。
其EMIF的总线接口图如图6所示。
在完成对EMIF的DSP配置后,接下来就是实现EMIF接口的FPGA配置工作,保证FPGA中的数据正常的读入到DSP中。在FPGA中配置EMIF接口的连接图如图7所示。 该模块是DSP与FPGA进行通信的接口模块。通过该模块,DSP可以实现向FPGA传输控制信号,FPGA也可以通过该模块将FIFO中的数据传给DSP。CE、WE、RE、OE为DSP输入的使能信号,CLK为FPGA提供内部时钟,CLKOUT2是EMIF的输出时钟,为DSP与FPGA通信提供时钟频率,DSP_Addr(19:0)为DSP的输入地址,DSP_DataBus(31:0)为DSP的数据总线。FPGA根据读使能信号OE与片选信号CE的输入逻辑来判断EMIF是进行读操作还是写操作。当DSP通过EMIF读取数据时,FPGA中的数据从dpram_data(31:0)输入,由DSP_DataBus(31:0)管脚传送给DSP;若写数据,将DSP_DataBus(31:0)传来的数据从dout(31:0)送入FPGA。
2.4 人机交互模块
人机交互模块分为按健电路和LCD显示电路。限于篇幅,本文仅介绍LCD电路。
LCD显示部分我们采用真空荧光显示点阵式VFD屏,其优点是能高亮度发光。由于我们选择的屏是5 V供电,所以由DSP过来的3.3 V的信号线需要经过74LVCA245转化为5 V,再与VFD屏的控制器接口相连,LCD控制器接口如图8所示。
3 软件设计
本系统软件主要由DSP和FPGA组成。其中DSP由系统初始化部分;系统功能模块的EMIF模块,FLASH模块和SDRAM模块组成以及人机交互模块组成。而FPGA设计则由FIFO模块以及DCM模块组成,软件总体模块框图如图9所示。
在整个系统中,DSP芯片负责DSP系统初始化部分和系统功能模块两个部分。其中DSP系统初始化部分包括DSP引导程序,DSP芯片中各硬件寄存器的设置,以及EDMA,定时中断等寄存器的设置。而系统功能模块中,包括FLASH模块和SDRAM模块,由于本系统中DSP需要处理的数据容量比较大,自身的存储容量不够,所以一些数据需要存储于FLASH中,而在运行过程中,很多数据的处理也要在SDRAM中进行;而DSP EMIF模块主要用来连接FPGA,FLASH和SDRAM。
FPGA逻辑设计部分包括了AD逻辑设计,DCM逻辑设计以及FIFO模块的逻辑设计。这块功能设计的主要目的是利用FPGA的硬件逻辑模块,同时进行2路高速AD数据的采集,并将数据放至由ISE软件的IPcore生成的FIFO中,最后由FIFO再通过由与EMIF相对应的逻辑接口将数据传输到DSP中。而整个逻辑设计过程中,其时钟均由DCM模块来产生,DCM模块可以由ISE软件的IPcore来生成,可以通过IP core生成系统需要的时钟频率,有延时少,抖动小等优点。
最后人机交互程序主要是包括LCD模块以及键盘模块。其中LCD来对数据进行显示,而键盘模块来对系统的各个参数进行设定。
4 结束语
文中在对目前高速数据采集系统的发展状况、FPGA可编程控制器件和DSP数字信号处理系统的深入研究的基础上,采用了高速ADC+FPGA+ DSP的设计方案,设计了一款高速数据采集系统,能够用于高速行驶的汽车防撞报警设备中,实时检测目标汽车与障碍物之间的距离,及时提醒驾驶员要提高警惕,注意安全驾驶。 |