基于高性能DSP的GPS导航解算模块设计与实现
2012-11-14陈小惠潘树国
吴 玮,陈小惠,潘树国
(1 南京邮电大学 南京中国 210096; 2 南京邮电大学 南京 中国 210096;3 东南大学 南京中国 210096)
0 引言
GPS的导航解算是GPS软件接收机重要的组成部分,其性能一直受到硬件以及软件功能的影响和制约。TI公司的TMS320C6747,以其突出的运算性能,再配合上TI专业的软件支持,将其应用于GPS软件接收机,使得GPS导航解算模块的性能有了进一步的提升。
本文着重讨论了GPS导航解算模块在新型DSP芯片支持下的设计和在软件模式下的优化。
1 模块的硬件设计
本模块的硬件核心就在于TMS320C6747 DSP芯片,其与FPGA芯片Altera CycloneⅢ进行交互以获得基带处理后的数据,在获得数据以后进入导航解算程序,解算出的数据送入LCD显示。为了尽可能的使用少的管脚接口和获得较快的传输速率,我们采用SPI实现DSP和FPGA的交互,在实际操作中我们有3条线、4条线和5条线3种选择,本模块我们选择了4线传输,这4条线分 别 为 SPI-SCS、SPI-CLK、SPI-SOMI、SPISIMO,若为了简化接口和管脚,可以把SPI-SOMI这条线去掉,及DSP作为主模式线去掉,其大体框图和时序如图1所示。
在对DSP上的SPI完成初始化后,把SPI设定成从模式,并确定时钟的传输速率。每16位为一个浮点数,逐个把基带传输的数据搬入SDRAM中。在进行数据搬入的过程中便可执行导航解算程序。由模块框图所示,本模块还外扩了一个LCD显示屏,DSP解算出的数据可以送入LCD显示,由此可以建立一个人机交互界面,用户可以根据自身情况选择性的观察解算数据。
图1 模块框图与时序图
2 模块的软件设计
2.1 软件整体流程
软件整体流程如图2所示。
图2 软件流程图
软件模块主要实现以下几个功能:
1)当软件流程开始后,首先要对软件进行初始化设置,它包括设置SPI传输速率,DSP上何处SPI接口进行通信以及SPI接口的使能;它还接收LCD用户反馈信息,用来适时改变显示程序,方便用户获取信息。
2) 当数据传输开始后,接口通信程序便开始工作,根据传输时序和传输速率,按照每16位为一个浮点数的原则将数据搬入存储器之中。
3) 在获得所需数据后便开始导航解算程序,期间可根据用户需求改变解算过程中所需参数,并将其送入LCD显示。
2.2 导航解算程序
图3显示的是导航解算流程图,首先接收外部送入的导航数据,通过原始导航数据位,来对导航数据的前同步位进行校验,然后经过导航电文的奇偶校验,寻找到导航数据的起始点;由导航数据计算得到的星历数据,存到存储器中,并可不断更新;通过伪码起始点采样值计算出伪距值;再由星历数据和伪距值计算得到卫星坐标和纠正卫星发射起始时间的时钟偏差值;最后若卫星数大于4颗,采用最小二乘法计算用户位置等信息。
图3 导航解算流程图
2.3 软件代码优化
由于此DSP的编译运行软件为CCS3.3,TI官方提供了多种用于提升代码运行速度的优化方法,以下列举出在实行软件代码优化所采取的方法以及注意事项:
1)首先要编写好cmd文件,特别是L1,L2高速缓存的应用,其中堆和栈的大小需要根据数据量的大小来开辟,要尽量遵循使用少的内存的原则。
2)对编写的代码中的变量在内存允许的情况下,可多设为全局变量,这可以减少变量在堆栈中开辟和释放内存的时间。
3) 注意内联函数的调用,TMS320C6000系列提供了许多内联函数,此方法可大大提升运行速度和简化代码,具体运用参看数据手册。
4)编写代码是尽量减少函数调用和循环嵌套,在代码空间可操作的情况下,可铺展开代码来方便CCS软件自行实行软件流水。
5)参看反汇编文件,采用线性汇编优化的方法优化代码。
3 解算实验
本模块的硬件实物图如图4所示。
图4 硬件实物图
我们采用5个通道37 s的数据进行测试,期间FPGA和DSP高速传输了37万个浮点数,解算出来的结果基本符合要求(如图5所示,经度:118°47′38.8164″,维度:32°3′14.9575″,高程:-71.2)。
图5 解算结果
4 结论
本设计并实现了基于新型高性能DSP芯片的导航解算模块,硬件连接简单且便于调试,在现有算法的基础之上进行了进一步软件代码的优化,在保证解算速度的前提下解算精度也得到了保证。不仅如此,此模块还设计了人机交互的LCD模块,为发展人机交互界面以及实现融合北斗或伽利略卫星导航定位系统打下基础。
[1]Manandhar D,Suh Y,Shibasaki R.GPS Signal Acquisition and Tracking-An Approach towards Development of Software-based Receiver[C].Technical Report of IEICE,2004.
[2]B.M.Ledvina,M.L.Psiaki,S.P.Powell,et al.A 12-Channel Real-Time GPS L1 Software Receiver [C].Proceedings of the 2003 Navigation National Technical Meeting,ION GNSS, Long Beach:947-955.
[3]B.M.Ledvina,M.L.Psiaki,S.P.Powell,et al.Bit-Wise Parallel Algorithms for Efficient Software Correlation Applied to a GPS Software Receiver [EB/OL].IEEE Transactions on Wireless Communications,2004,3(5).
[4]Thomas Pany,Frank Frster,Bernd Eissfeller.Real-Time Processing and Multipath Mitigation of Highbandwith L1/L2 GPS Signals with a PC-based software receiver[C].ION GNSS 17th International Technical Meeting of the Satellite Division.Long Beach, CA:2004:971-985.
[5]Kai Borre,Dennis Akos.A Software Defined GPS and Galileo Receiver Single Frequency Approch[C].ION GNSS 2005,Long Beach,2005:1632-1637.
[6]Jiangping Deng,Ruizhi Chen,Jianyu Wang.An enhanced bit-wise parallel algorithm for realtime GPS software receiver[C].GPS Solut DOI 10.1007/s10291-009-0125-4 26 March 29.
[7]Mark L.Psiaki.Real-Time Generation of Bit-Wise Parallel Representations of Over-Sampled PRN Codes [EB/OL].IEEE Transaction ON wireless communications,vol.5,NO.3,march 2006.
[8]徐敏.实时GPS软件接收机研究与实现[D].上海:上海交通大学,2007.
[9]田黎育,何佩琨.TMS320C6000 系列DSP编程工具与指南[M].北京:清华大学出版社,2006.
[10]曾庆喜,王庆.基于DSP的GPS软件接收机关键技术的研究与实现[D].南京:东南大学,2009.
[11]刘志强.GPS接收机基带信号处理与导航解算[D]. 保定:河北大学,2005.
[12]唐斌,喻夏琼,董绪荣.智能GPS软件接收机载波跟踪环路设计[J].北京航空航天大学学报,2007,33(7):807-810.