基于DSP的GPS定位解算算法研究与实现
扫描二维码
随时随地手机看文章
摘要:采用TI公司的TMS320C6713DSP芯片实现了GPS接收机定位解算功能。利用该芯片实现GPS接收机各模块的调度,完成对时间观测量和导航电文的提取,进行卫星位置解算和用户位置解算以及对外接口。试验结果表明,根据该方案设计的GPS接收机工程样机可以准确地实现定位解算功能。
关键词:GPS接收机;TMS320C6713;中断;EMIF;定位解算
0 引言
全球定位系统(GlobaI Positioning System,GPS)是一种全天候、全球覆盖、高精度的卫星导航定位系统。该系统向有适当接收设备的全球范围用户提供精确、连续的三维位置和时间信息。DSP芯片具有适合于数字信号处理的硬件和软件资源,运算速度快,精度高,接口丰富,稳定性好,可用于实现复杂的数字信号处理算法。随着DSP技术的发展,GPS卫星信号的实时处理越来越趋向于用DSP来实现。TMS320C67 13是TI公司生产的一种32位高性能浮点型数字信号处理器,功能强大,片内资源丰富,外扩存储器方便,运算速度快,无论从速度上还是精度上,TMS320C6713芯片都完全可以满足GPS接收机系统的设计要求。
1 GPS定位解算原理
1.1 用户位置的计算
GPS卫星定位系统定位的基本原理是延时测距,通过测量空间己知位置上信号传播的时间延迟,确定该己知位置至用户的距离,根据测量距离解算出用户的三维位置和用户与已知位置的时间偏移量。为了确定用户的三维位置(xu,yu,zu)和时间偏移量,需要同时对4颗卫星进行跟踪并获取其伪距:
由于这个方程组是非线性的,很难直接求解,解非线性方程组一个常用的方法就是线性化。由于用户的三维位置和时间偏移量是未知量,于是可以认为未知的接收机位置和时间偏移量由近似分量和修正分量△xu,△yu,△zu,△tu两部分组成,即:
式中:ρj是第j颗卫星的伪距观测量;xj,yj,zj是根据第j颗卫星的星历计算出该颗卫星的位置,均为已知量;用户的三维位置和时间偏移量的修正分量△xu,△yu,△zu,△tu是未知量,近似分量可以认为是已知量。因为可以给这些近似分量赋初值,由初值可以解出一组修正分量△xu,△yu,△zu,△tu,近似分量经过修正之后又可以认为是已知量,重复这个计算过程,直到修正分量小到预定的范围之内。最后的近似分量就是要解的用户的三维位置和时间偏移量。这种方法即基于线性化的迭代法。[!--empirenews.page--]
1.2 伪距的获取
分析GPS定位解算算法可知,要解算用户的三维位置和时间偏移量,首先需要获得各颗卫星的位置和相应的伪距观测量,因此,伪距观测量的精度直接影响到用户位置解算的精度。
在GPS接收机中,可以任意选择一个时刻作为本地参考时间,本地参考时间与GPS系统时间的差值即为时间偏移量tu。对于GPS信号发射时间而言,如果不考虑每颗卫星的时钟修正项,所有卫星的导航电文子帧1的起始点都是在同一时刻发射的,因此可以认为不同卫星的导航电文子帧1的发射时刻是相同的,但是不同卫星的子帧1的起始点是在不同时刻接收到的,这个时间差就代表不同卫星到接收机的时间差,即距离差。在导航电文中,子帧1每30 s出现1次,而不同卫星信号到达接收机所需时间的差值最大只有20 ms。因此,很容易保证所观测的不同卫星的子帧1都是在同一时刻发送的。统计本地参考时间与所接收到的卫星星历子帧1的开始位置的时间间隔即可得到伪距信息,如图1所示为伪距测量的时间关系。
在GPS接收机内部存在两种时间统计方式,本地时间T和道时间Ti。本地时间可以选择任意一个时刻作为参考,之后便由本地晶振计数累加。通道时间由三部分组成:20 ms计数TD,1 ms计数TCA和C/A码相位计数TCAphasc。每个通道在接收到导航电文子帧1的TLM遥测字时刻,三个计数值同时清零,之后由跟踪得到的C/A码相位为步长累加,即通道时间Ti为:
Ti=TD/50+TCA/1 000+TCAphasc/(1 023×1 000)
在某一中断时刻,本地参考时间与GPS系统时间的差值即为时间偏移量tu,本地参考时问和各个通道时间的差值与光速乘积即为ρi,即:
ρi=(T-Ti)·c
2 系统方案设计
一般来说,在实时信号处理系统中,底层信号处理的特点是处理的数据量大,处理速度高,但运算结构相对比较简单,适于用FPGA进行硬件实现,这样能同时兼顾速度及灵活性。上层信号处理的特点是处理的数据量较少,但算法的控制结构复杂,适于用运算速度高,寻址方式灵活,通信机制丰富的DSP芯片来实现。
由于GPS接收机系统涉及到GPS信号捕获算法、载波跟踪算法、码跟踪算法、卫星位置解算,用户位置解算、以及大量的相关算法计算,综合算法复杂且运算量相当大,同时GPS接收机系统要求很高的定位精度和实时的动态性能,对系统的体积、功耗、稳定性等也都有较严格的要求。如果所有任务都由DSP来完成,不仅对DSP的压力很大,还有可能满足不了系统的实时性要求。为了协同DSP完成整个GPS接收机系统的工作,在该系统中采用一片DSP高速微处理器和FPGA大规模可编程阵列组合搭建了系统硬件平台,FPGA主要完成GPS信号的捕获、跟踪和解扩解调,以得到导航和测距信息;DSP芯片作为系统的主处理芯片,主要负责数据处理,以及对逻辑控制模块的通信与控制,而系统外围设备的控制与通信工作由FPGA完成。这样可以使整个系统的任务合理分配,DSP芯片能更专注于大量数据的处理,使信号处理的实时性得以保证。总体框图如2所示。
[!--empirenews.page--]
以下简要说明DSP的工作流程:
(1)DSP系统初始化,等待外部中断;
(2)中断到来,由外部中断4得到时间观测量,由外部中断5得到导航电文;
(3)对时间观测量和导航电文进行拼接组合,由时间观测量得到伪距信息,由导航电文计算卫星发射时刻的位置,其中包括观测卫星在WGS-84坐标系下的三维位置、仰角和方位角等;
(4)根据观测卫星的星历对伪距进行修正,并进行电离层和对流层校正等;
(5)根据定位原理,计算出用户的三维位置,校正本地时间,并将三维位置转换成所需要的坐标格式;
(6)通过McBSP串口输出定位结果,并对输出结果进行记录。
2.1 中断
中断是DSP系统的基本功能。一般而言,中断表明一个特别事件的开始或结束。一个DSP系统需要与多个事件打交道,这些事件可能是内部的,也可能是外部的,而这些事件发生的时间是不确定的,也就是这些事件可能是异步的。异步事件的发生具有时间上的不确定性,一旦异步事件发生,就要求DSP能够随之做出相应的反应和处理。中断就可以提供这样的一种机制,一旦异步事件发生,DP立即暂停CPU当前的处理任务,按预先的安排对该事件进行处理,处理完毕后,CPU再继续原来的任务。中断可以由外部设备产生,也可以由DSP内部产生。由硬件或软件驱动的中断信号可使DSP中止当前程序并执行另一个程序,该程序称为中断服务程序。
TMS320C6713的中断处理过程分为三个阶段:
(1)中断请求。当有中断请求时,DSP将IFR寄存器的相应位置1。
(2)中断确认。对于软件中断和不可屏蔽中断,CPU是立即响应的;对于可屏蔽中断,要满足下列条件才能响应:CSR寄存器的GIE位为0,IER寄存器的NMIE位为1,IER寄存器的相应位为1,优先级最高。
(3)中断处理。保护特定的寄存器,执行中断服务程序,完成后恢复寄存器。
如图2所示,在该系统的设计中,使用了外部中断4和外部中断5。每当DSP接收到中断请求,立即暂停CPU当前的处理任务,进入中断服务程序,处理完毕后,CPU再继续原来的任务。由外部中断4得到时间观测量,由外部中断5得到导航电文。DSP提供的中断是以中断向量表的形式出现的,该系统的部分中断向量表如下:
2.2 EMIF接口
EMIF是外部存储器与TMS320C6713片内单元间的接口。CPU访问片外存储器时一般通过EMIF接口,DSP的EMIF具有很强的接口能力。TMS320~C6713的EMIF接口有20根地址总线,32位数据总线,4个片选信号和多种控制信号,能够支持多种不同类型的外部存储器件。其中,每个片选空间是相对独立的,各自占用一段地址,能够适应不同速率的存储器件。
如图2所示,图中ED[31:0]表示数据总线,EA[21:2]表示地址总线,CE[3:0]为片选信号,AOE为输出使能信号,ARE为读使能信号,AWE为写使能信号。通过控制信号、数据总线和地址总线的配合使用,就可以完成DSP与外部存储器件的数据交换。
图3所示为TMS320C6713EMIF接口的读时序。图中读的建立需要两个时钟周期,之后每个触发需要两个时钟周期,在AlRE的下降沿,FPGA将时间观测量和导航电文放在数据总线上,在ARE的上升沿,也就是数据保持的中间时刻,DSP读取数据,这样就完成了FPGA与DSP的数据交换。
在该系统的设计中,时间观测量的帧格式如图4所示,导航电文的帧格式如图5所示,DSP由EMIF接口接收到时间观测量和导航电文之后,首先进行数据的拼接组合,由时间观测量得到伪距,由导航电文计算出卫星发射时刻的位置。[!--empirenews.page--]
3 试验结果
在本设计的试验中使用了某种GPS卫星信号模拟器,采用信号直接注入的方法,模拟器模拟用户在WG-84坐标系下某静态位置。接收机经过射频前端模块、数字信号转换模块、基带信号处理模块之后,由EMIF接口将时间观测量和导航电文传给DSP,之后由DSP负责定位解算数据处理。在本系统中,导航电文每6 s发送1次,时间观测量每100 ms发送1次,即每秒进行10次定位解算。由McBSP串口发送连续1 000点定位解算结果,如图6所示,图6(a),(c),(e)为定位解算结果,图6(b),(d),(f)为定位解算结果与模拟位置距离之差。从图中可以看出,定位解算结果与模拟位置之差为5 m左右。
4 结语
本文设计的基于TMS320C6713的GPS定位解算可以完整的实现定位解算功能,但与高精度GPS接收机相比,由于跟踪环路的设计与电离层、对流层修正模型的区别,定位精度还是存在一定的差距,需要进一步改进。