基于DSP的车载GPS/DR组合导航系统硬件系统设计
1 引言
目前,差分GPS水平定位精度已经达到3"5m,完全满足车辆定位精度的要求。但是,由于在城市高建筑群中或穿过立交桥时,常常会出现GPS信号遮挡问题,导致GPS不能正常定位。航位推算(DR)是常用的车辆定位技术,但方向传感器随时间积累误差较大,不能单独、长时间地使用。采用组合导航系统能够利用GPS系统提供的位置和速度信息对DR系统的误差进行实时的校正和补偿;当GPS信号失锁时,又可通过DR系统完成航位推算,提高了组合导航系统的可靠性。
组合导航系统除了要完成大量运算处理工作外,还要实现惯性测量单元IMU(陀螺仪和加速度计)和GPS等传感器的数据采集、与外部系统的通信、时序逻辑控制和人机接口等功能。在这种情况下,如果仅用一片DSP芯片,则系统的实时性能较差,因此多数组合系统都采用两个或多个DSP或是由一个或几个通用的微处理器MPU加上一个DSP构成主从式多处理器系统的方案。而目前利用DSP与FPGA结合的方案来处理高速的数字信号越来越被广泛采用。
2 GPS/DR组合导航系统组成
该GPS/DR组合系统具有接收和处理里程计信息、电子罗盘信息、惯性测量单元IMU以及GPS的信息的功能,其系统组成主框图如图1所示。
图1 组合导航系统的组成框图
GPS提供的绝对位置信息可以为DR提供推算定位的初始值并进行误差校正;另一方面,DR的推算结果可以用于补偿部分GPS定位中的随机误差,从而平滑定位轨迹。所以,利用适当的方法将两种系统组合起来,充分利用其定位信息的互补性,就能够获得比单独使用任何一种方法时都要高的定位精度和可靠性。
2 中心处理单元的组成
目前导航系统已经发展成为采用多传感器数据融合的组合导航系统,导航计算机在完成复杂计算的同时,还要进行大量的数据通信,因此必须具有丰富的通信接口,完成传感器数据的采集、传输任务。这就需要中心处理单元能够在进行与外部通信的同时,还要保证计算精度和运算速度。
通过对系统进行功能分析,导航计算机需要完成数据采集、数据处理和数据输出功能。数据输入部分主要完成各种传感器输出数据的采集;数据处理部分主要完成数据滤波、微型惯性测量元件的误差补偿和初始对准、卡尔曼滤波以及进行导航参数解算等等;数据输出部分主要负责导航参数输出,应用于定位导航或者下一步需要的输入。由于采用多种传感器进行信息融合,需要较多的外围通信接口,同时,外部传感器数据输出通信主要通过符合RS-232标准的异步串行通信口进行,如果和中央处理器直接相连,大量的中断响应必将影响到CPU的处理速度,目前各种MCU、MPU可以提供的串口资源也是有限的。传统的设计很多都是采用PC104作为系统的中心处理器,PC104体积大,价格高,不利于系统的小型化、低功耗和低成本的实现。因此,本设计考虑采用DSP+FPGA+TL16C554的方案进行设计,其中 DSP完成主要的导航参数计算,利用TL16C554进行外部通信接口的扩展,FPGA完成串口的模拟以及相应的逻辑控制以保证三者之间通过数据线的高速通信,提高系统的运行效率和运算精度。
中心处理单元的核心处理器要完成大规模的矩阵运算和代数运算,因此系统选用浮点DSP 芯片TMS320VC33。该芯片具有150MFLOPS和75MIPS的运算速度,单指令周期13ns。TMS320VC33通过提高硬件功能来提高速度,而其他处理器是通过改善软件功能或编码速率来提高速度的。这种通过硬件来提高性能的方式在以往单芯片DSP上是不可能实现的。处理器具有在单个周期内对整数,浮点数据同时执行并行乘法算数运算的强大功能。同时该芯片具有低功耗,低成本等特点,满足系统的设计要求。
FPGA具有可编程特性,能够方便地完成我们所需要的逻辑功能。利用FPGA来扩展外围通信接口,主要是扩展TTL电平的串行通信口作为系统的备用。根据完成串行通信的资源需求以及今后扩展使用的考虑,这里采用ALTERA公司的ACEX1K 30(以下简称ep1k30)来完成这项工作。ep1k30可以提供119000门的资源,具有1728个逻辑宏单元,可以实现UART串口,并同时能够完成相应的译码、逻辑控制等功能。
系统包含有多个传感器,这就要求处理器要扩展出多个串口。DSP芯片TMS320VC33本身有串行通信口,如果直接利用DSP片上的串口资源进行串行通信,只适用于传输数据比较少,传输速率慢的场合,[ ]其软件编程比较复杂,而且控制串行通讯要占用很大的系统资源,影响传感器的实时处理功能,因此, 本系统采用了TI公司生产的4通道异步收发器集成芯片TL16C554扩展DSP串口,实现传感器与导航计算机的通信。该芯片是一种具有串行异步通信接口的大规模集成电路芯片,可以实现数据的并/串、串/并的转换功能。其内部带有16字节的FIFO缓冲器。在FIFO模式下,传输和接收前将数据缓冲为16字节数据包,减少了CPU的中断数量。内部包含4片改良的16C550异步传输器件,使得串行I/O更加可靠。
中心处理单元的整体硬件设计框图如图2。
系统充分发挥了DSP进行加、乘运算的优势,实现了导航参数的实时运算,并利用FPGA和16C554扩展外围通信接口,将串行数据转为并行数据后通过数据总线同DSP进行通信,把处理器从大量的I/O中断响应负担中解脱出来,提高CPU的运行效率。解算后的导航参数再通过数据总线到FPGA经过转化后以串行数据的格式输出。同时,考虑到IMU数据量较大,数据更新率大于100Hz,并不把收到的每一包数据直接发送到DSP,而是首先进行滤波处理后,再通过一个FIFO,暂时将数据存储起来,在数据量达到一定程度的时候,再通知DSP把这些数据取走,这样做可以进一步减轻DSP的负担,提高运行效率。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码