差分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所示。
nload="javascript:if(>740)=740" align=center border=0>
图1 组合导航系统的组成框图
GPS提供的绝对位置信息可以为DR提供推算定位的初始值并进行误差校正;另一方面,DR的推算结果可以用于补偿部分GPS定位中的随机误差,从而平滑定位轨迹。所以,利用适当的方法将两种系统组合起来,充分利用其定位信息的互补性,就能够获得比单独使用任何一种方法时都要高的定位精度和可靠性[1]。
2 中心处理单元的组成
目前导航系统已经发展成为采用多传感器数据融合的组合导航系统,导航计算机在完成复杂计算的同时,还要进行大量的数据通信,因此必须具有丰富的通信接口,完成传感器数据的采集、传输任务。这就需要中心处理单元能够在进行与外部通信的同时,还要保证计算精度和运算速度。
通过对系统进行功能分析,导航计算机需要完成数据采集、数据处理和数据输出功能。数据输入部分主要完成各种传感器输出数据的采集;数据处理部分主要完成数据滤波、微型惯性测量元件的误差补偿和初始对准、卡尔曼滤波以及进行导航参数解算等等;数据输出部分主要负责导航参数输出,应用于定位导航或者下一步需要的输入。由于采用多种传感器进行信息融合,需要较多的外围通信接口,同时,外部传感器数据输出通信主要通过符合RS-232标准的异步串行通信口进行,如果和中央处理器直接相连,大量的中断响应必将影响到CPU的处理速度,目前各种MCU、MPU可以提供的串口资源也是有限的。传统的设计很多都是采用PC104作为系统的中心处理器,PC104体积大,价格高,不利于系统的小型化、低功耗和低成本的实现。因此,本设计考虑采用DSP+FPGA+TL16C554的方案进行设计,其中 DSP完成主要的导航参数计算,利用TL16C554进行外部通信接口的扩展,FPGA完成串口的模拟以及相应的逻辑控制以保证三者之间通过数据线的高速通信,提高系统的运行效率和运算精度。
中心处理单元的核心处理器要完成大规模的矩阵运算和代数运算,因此系统选用浮点DSP 芯片TMS320VC33。该芯片具有150MFLOPS和75MIPS的运算速度,单指令周期13ns。TMS320VC33通过提高硬件功能来提高速度,而其他处理器是通过改善软件功能或编码速率来提高速度的。这种通过硬件来提高性能的方式在以往单芯片DSP上是不可能实现的。处理器具有在单个周期内对整数,浮点数据同时执行并行乘法算数运算的强大功能。同时该芯片具有低功耗,低成本等特点,满足系统的设计要求[2]。
FPGA具有可编程特性,能够方便地完成我们所需要的逻辑功能。利用FPGA来扩展外围通信接口,主要是扩展TTL电平的串行通信口作为系统的备用。根据完成串行通信的资源需求以及今后扩展使用的考虑,这里采用ALTERA公司的ACEX1K 30(以下简称ep1k30)来完成这项工作。ep1k30可以提供119000门的资源,具有1728个逻辑宏单元,可以实现UART串口,并同时能够完成相应的译码、逻辑控制等功能[3]。
系统包含有多个传感器,这就要求处理器要扩展出多个串口。DSP芯片TMS320VC33本身有串行通信口,如果直接利用DSP片上的串口资源进行串行通信,只适用于传输数据比较少,传输速率慢的场合,[ ]其软件编程比较复杂,而且控制串行通讯要占用很大的系统资源,影响传感器的实时处理功能,因此, 本系统采用了TI公司生产的4通道异步收发器集成芯片TL16C554扩展DSP串口,实现传感器与导航计算机的通信。该芯片是一种具有串行异步通信
接口的大规模集成电路芯片,可以实现数据的并/串、串/并的转换功能。其内部带有16字节的FIFO缓冲器。在FIFO模式下,传输和接收前将数据缓冲为16字节数据包,减少了CPU的中断数量。内部包含4片改良的16C550异步传输器件,使得串行I/O更加可靠[5]。
中心处理单元的整体硬件设计框图如图2。
nload="javascript:if(>740)=740" align=center border=0>
系统充分发挥了DSP进行加、乘运算的优势,实现了导航参数的实时运算,并利用FPGA和16C554扩展外围通信接口,将串行数据转为并行数据后通过数据总线同DSP进行通信,把处理器从大量的I/O中断响应负担中解脱出来,提高CPU的运行效率。解算后的导航参数再通过数据总线到FPGA经过转化后以串行数据的格式输出。同时,考虑到IMU数据量较大,数据更新率大于100Hz,并不把收到的每一包数据直接发送到DSP,而是首先进行滤波处理后,再通过一个FIFO,暂时将数据存储起来,在数据量达到一定程度的时候,再通知DSP把这些数据取走,这样做可以进一步减轻DSP的负担,提高运行效率。
3 中心处理单元的硬件设计
中心处理单元的硬件部分主要由电源模块、数据通信模块、FPGA部分、DSP部分等组成。
3.1 系统电源模块
整个系统需要使用1.8V、2.5V、3.3V和5V四种电压。其中DSP需要1.8V和3.3V作为核心供电和I/O供电;FPGA需要2.5V和3.3V电压供电;GPS需要5V电压供电,因此整个系统采用5V电压供电。然后通过两片TI公司的TPS73HD3XX系列芯片进行电压转换,可以分别获得所需电压。TPS73HD3XX系列芯片为双路电压输出转换芯片,具有非常低的静态电流,即使对于变化负载,静态电流在实际中仍能够保持不变。
3.2 数据通信模块
TL16C554扩展的数据通信模块的硬件结构图如图3所示。
nload="javascript:if(>740)=740" align=center border=0>
图3 数据通信模块原理框图
TL16C554的地址线 A2~A0、数据线 D7~D0 分别和 DSP 的地址总线 A2~A0、外部数据线 D7~D0直接相连,而片选信号CSA ~CSD 、读写信号IOR / IOW 以及中断信号INTA~INTD 则接入 FPGA 并由 FPGA处理。电路中使用FPGA一方面可以对 UART 的地址灵活配置,另一方面也可以灵活生成 UART 的选通和读写信号,从而增强系统的灵活性,方便系统调试。
3.3 FPGA部分
传统的系统设计大部分是以 DSP 为主机负责数据处理、以单片机为从机负责数据采集的多机并行系统,但从机单片微控制器的速度限制制约着整个采集处理系统的速度。针对这种情况,将传统的多机结构改为宿主式单机结构:系统仍然以 DSP 作数据处理主机,用多种计数器、逻辑电路、时钟电路组成的纯硬件子系统来代替过去的从机系统[4]。但若采用传统的方法,即用标准的数字电路芯片扩展实现此子系统,必然需要多片电路芯片,这不仅使系统结构复杂,连线增多,还使可靠性随之降低。因此,系统采用了现场可编程门阵列器件FPGA来设计该子系统。用FPGA设计本系统最大的优点是节省了PCB板子面积,并且满足低成本的要求。并且在系统设计完成后,如果想升级、改进系统,不必更改任何硬件电路,
只需要将FPGA内部逻辑重新编程即可。
FPGA掉电后配置信息不能够保存,再次上电时需要对其重新进行配置,因此需要使用片外存储器保存配置信息。本设计中选择ALTERA公司的epc2作为配置芯片。epc2是一种可以多次擦写的具有可编程FLASH的存储器,专门用于ALTERA公司的FPGA的配置。同时,系统板上的JTAG口,可以实现对epc2进行编程和对FPGA的在线配置。通过拨码开关实现对FPGA的在线配置和对epc2的编程的切换,具体硬件连接如图4所示。
nload="javascript:if(>740)=740" align=center border=0>
图4 FPGA配置连线方法
3.4 DSP部分
DSP需要系统算法程序存储器,采用FLASH存储器进行存储,本系统选用四片256k×16b CY7C1041扩展了两个256k×32b的RAM,为复杂组合算法提供了存储空间;选用了两片16位SST39VF400 FLASH芯片作为系统的程序存储器。采用FLASH存储器克服了传统EPROM体积大的缺点,同时有利于减小电路板的面积。通过DSP仿真器,按照FLASH的烧写算法可以将程序写入到FLASH中,完成DSP算法的存储。系统上电时通过自举方式,可以快速加载程序。这样做可以降低系统的成本、体积和功耗。
在DSP之前增加一个FIFO,等待数据满足要求后由DSP一起读取,由此解决IMU输出数据量大造成CPU响应频繁的问题。优化了系统的效率。IMU数据中各数据都由高字节和低字节两部分组成,通过串口接收数据后,可以合并为16位的形式。16C554芯片具有16字节的FIFO缓存器,满足系统的要求。利用FIFO的半满信号作为通知DSP接收数据的中断信号,通知DSP进行读取。根据DSP进行数据读写的开销时间以及所进行的运算量,并考虑实际接收数据的大小和传输波特率,计算出DSP对一包数据进行所花费的时间以及FIFO中写入一包数据花费时间,从而使系统能够顺利完成解算任务。
4 结束语
GPS/DR车辆组合定位导航系统将GPS系统与DR系统相结合,提高了系统的有效性、完整性和精度。利用DR航迹推算系统能保证卫星信号丢失时车辆位置信息输出。系统具有全方位、全天候、无遮挡、高精度的特点,具有良好的应用前景。此组合导航系统具有强大数据处理能力,同时具有体积小、低成本、高可靠性、实时性好等优点。该设计充分发挥了DSP强大的数据处理能力,利用了FPGA的高集成度编程仿真方便、速度快等优点,而且使得系统在今后具有很大的改进余地,可以实现用同样的硬件实现不同的功能。