随着GPS(Global Positioning System)技术的不断发展和成熟,其全球性、全天候、低成本等特点使得GPS接收机的用户数量大幅度增加,应用领域越来越广。但由于定位过程中各种误差源的存在,单机定位精度受到影响。目前常从两个方面考虑减小误差提高精度:①用高精度相位天线、差分技术等通过提高硬件成本获取高精度;②针对误差源用滤波算法从软件方面实现精度提高。两种方法中,后者相对于前者在满足精度要求的前提下节约成本,而且便于系统融合,是应用于GPS定位的系统中更有前景的方法。但由于在系统中实现定位滤波算法需要时间,传统CPU往往不能满足实时性的要求,而FPGA以其快速并行计算越来越受到青睐。 本文在FPGA平台上,根据“先时序后电路”的设计思想,由同步没计方法以及自顶向下和自下而上的混合设计方法实现系统的总体设计。从GPS-OEM板输出的定位信息的接收到定位结果的坐标变换,最终到kalman滤波递推计算减小定位误差,实现实时、快速、高精度的GPS定位信息采集处理系统,为GPS定位数据的处理方法做了新的尝试,为基于FPGA的GPS嵌入式系统的开发奠定了基础。具体工作如下: 基于FPGA设计了GPS定位数据的正确接收和显示,以及经纬度到平面坐标的投影变换。根掘GPS输出信息标准和格式,通过串口接收模块实现串口数掘的接收和经纬度信息提取,并通过LCD实时显示。在提取信息的同时将数据格式由ASCⅡ码转变为十进制整数型,实现利用移位和加法运算达到代替乘法运算的效果,从而减少资源的利用率。在坐标转换过程中,利用查找表的方法查找转化时需要的各个参数值,并将该参数先转为双精度浮点小数,再进行坐标转换。根据高斯转化公式的规律将公式简化成只涉及加法和乘法运算,以此简化公式运算量,达到节省资源的目的。 卡尔曼滤波器的实现。首先分析了影响定位精度的各种误差因素,将各种误差因素视为一阶马尔科夫过程的总误差,建立了系统状态方程、观测方程和滤波方程,并基于分散滤波的思想进行卡尔曼滤波设计,并通过Matlab进行仿真。结果表明,本文设计的卡尔曼滤波器收敛性好,定位精度高、估计误差小。在仿真基础上,实现基于FPGA的卡尔曼滤波计算。在满足实时性的基础上,通过IP核、模块的分时复用和树状结构节省资源,实现数据卡尔曼滤波,达到提高数据精度的效果。 设计中以Xilinx公司的Virtex-5系列的XC5VLX110-FF676为硬件平台,采用Verilog HDL硬件描述语言实现,利用Xilinx公司的ISE10.1工具布局布线,一共使用44438个逻辑资源,时钟频率达到100MHZ以上,满足实时性信号处理要求,在保证精度的前提下达到资源最优。Modelsim仿真验证了该设计的正确性。