基于JP7-T的GPS接收机和定位系统设计
扫描二维码
随时随地手机看文章
0引言
作为导航领域内一种全新的技术,GPS全球定位系统主要利用卫星进行定位。GPS最初由美国政府机构控制使用,是目前世界上最为成熟和完好的全球卫星导航系统。它由30颗(4颗为备份星)在轨卫星组成。早期的GPS系统对民用信号的定位精度限制为100米左右,2000年后则取消这一限制。目前,GPS可以提供的民用信号定位精度为10米左右。GPS现可应用于多领域(如民用航空,车辆调度管理,深海海运等整个海陆空范围内的导航等),特别是在目前的车载导航领域,GPS全球卫星定位技术更是具有广泛的应用。随着应用领域的日益扩大,中国卫星导航仪的市场规模已从2000年的不到10亿元增长到了2005年的120亿元。因此,对GPS进行研究和二次开发势在必行。
1 JP7-T型GPS OEM板的组成
本设计根据实际项目需要将所调研的几种GPS资料进行了比较权衡,最后选择了德国FALCOM公司生产的JP7-T(SIRF2)GPS模块。该模块有12个信道GPS接收模块、完整的温度补偿晶体振荡器、SiRF2型芯片一低功率芯片集、高级TIFF频率、3种不同供电模式、更小的体积、PIN脚与JP7-LP兼容并有记忆功能,同时内嵌Falcom记忆查询软件。利用此模块作为核心部分,笔者还设计了一块demo板进行测试。FAL-COM公司生产的JP7-T(SIRF2)GPS模块的内部信号流的处理过程如图1所示。
JP7-TX系列GPS定位系统采用的是L1信号频率(1575.42 MHz)。该模块可以分为四大块:RF信号下转换器、数字基带解调、嵌入式ARM微处理器和用于存储内置GPS软件的8MBit Flash存储器。其中前两者用于硬件电路处理,而ARM微处理器则可采用内置GPS软件来计算GPS的位置、速度、时间等。
系统中的射频部分用作GPS信号(通常是一130 dBm)的补偿和过滤,然后将其转换成中频信号并输出到信号处理部分。数字基带解调器的功能是载有量化了的GPS信号和检测卫星的串行比特流数据和伴随伪序列。这个过程通过扩展谱和信号多普勒频率部分的移动来获得串行数据。ARM微处理器用来监督信道的分配,并提取原始的卫星跟踪数据,同时在计算出位置和时间后,将其采用串行方式发送到高层应用部分。支持微处理器处理过程的硬件电路包括RTC和复位脉冲产生器电路。内置的GPS软件用来管理信道分配,并可采用卫星的伪序列来计算位置、速度和时间,并重定数据格式后输出到串行口或用于本地决策。
2 JP7-T GPS接收机的Demo板设计
在了解了JP7-T GPS模块的内部原理后,要知道是否适合产品的设计需要,还要再设计一块demo板来进行性能测试。Demo板的基本硬件设计框图如图2所示。
通过分析GPS模块的内部电路和引脚可知,其4、5引脚为第一组I/O口,分别是SDI1和SDO1,其中SDI1是主要的接收信道。用来接收GPS板的软件命令,SDO1是主要的传输信道,用来将导航数据传输到用户程序;6,7号引脚为第二组I/O口,分别是SDI2和SDO2;17号引脚是RF_IN,用于为GPS提供从天线接收到的信号;19号引脚用于为天线提供电源。其中SDI和SDO都是TTL电平,故在将其通过RS-232串口与PC机相连以进行测试前,必须将TTL标准信号转换成232标准信号才能与PC机进行通信,本设计采用MAX3232电平转换芯片,其转换电路如图3所示。鉴于GPS模块的频率和项目产品的设计需要,本设计选择了5米GPS车用磁性吸盘天线,其中心频率也是L1,它接收卫星定位信息的定位精度小于15米。
图4所示是基于JP7-T的最小启动电路而设计的GPS接收机电路。图5给出了该电路的电源部分电路图。
|
本系统的软件部分主要完成对经纬度、UTC时间、GPS定位有效性、移动端速度的采集、解码和显示。本设计将WGS-84坐标的经纬度都转换成以度为单位,UTC时间转换为北京时间,并将速度的knop单位转化为以km/h为单位。
3.1 JP7-T的GPS数据格式
NMEA-0183协议是美国国家海洋电子协会(NationaIMarineElectronlcsAssociation)制定的GPS接口协议标准。NMEA-0183协议中定义了若干代表不同含义的语句,每个语句实际上就是一个ASCII码串。这种码比较直观,易于识别和应用。其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同。帧头主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾来标识一帧的结束。使用中不需要了解NMEA-0183通信协议的全部信息,仅需要从中挑选出需要的那部分定位数据即可,而将其余的信息忽略掉。
本项目中所使用的GPS导航数据可以在"$GPRMC"帧中获得,其帧格式如下:
(1)当前位置的格林尼治时间,格式为hh-mmss;
(2)状态,A为有效位置,V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗;
(3)纬度,格式为ddmm.mmmm;
(4)用于标明南北半球,N为北半球、S为南半球;
(5)径度,格式为dddmm.mmmm;
(6)用于标明东西半球,E为东半球、W为西半球;
(7)地面上的速度,范围为0.0到999.9;
(8)方位角,范围为000.0到359.9度;
(9)日期,格式为ddmmyy;
(10)地磁变化,从000.0到180.0度;
(11)地磁变化方向,为E或W
3.2定位信息系统设计流程 JP7-T手册中提示该GPS的NMEA要使用的波特率为4800,所以,在软件中可以将串口波特率设置成4800定值。
(1)时间转换
GPS接收到的时间是UTC制时间,故应将它转换为北京时间。其核心算法为:hour+8;year+2000;设计时,如hour大于24,则dav+1,hour-24;接着根据月份和是否闰年来判断day处理后是否有相应月份要相继处理;然后根据处理后的月份判断年份是否要相继处理等等。需要注意的是:不要忘记判断平年和闰年。
(2) WGS-84经纬度单位转换
本设计选用的电子地图采用的是WGS84坐标系,而GPS测量得到的是WGS-84中的地心空间直角坐标系下的数据,所以,不用坐标转换。但由于GPS接收到的经纬度是以度和分为单位的,而我们日常生活中都是以度为计量单位,所以要进行单位转换。单位转换的算法(以纬度为例)是将接收到的纬度格式(ddmm.mmmm)除以100,以得到dd.mmmmmm,然后再调用modf函数分离出度和分,最后将分乘100并除以60,从而将分化成度。
(3)速度单位转换
本GPS获得的速度是以knot为单位的。而通常除了航海采用knot单位之外,陆空一般都是采用km/h为单位(1knot=1.8519 km/h),所以,设计时还要将获得的速度乘以该单位转换参数。
本系统的软件设计流程图如图6所示。
软件编写完后,应先在PC机上用gcc编译,编译过程一般没有什么大问题。然后,可以将做好的GPS接收机通过串口接在PC机上进行软件和硬件的调试。本设计的GPS机经过连续几天运行都没有什么问题,非常稳定。但是,做这个demo板的最终目的是为设计一款基于ARM9处理器的手持机。所以,笔者又将该软件交叉编译。采用的编译器是3.3.2版本的arm-linux-gcc。为了验证测试板和软件在嵌入式系统下的可行性,笔者还将其与广州Friendly-arm生产的S3C2410实验箱相连并进行了测试。测试结果十分稳定,定位非常精确。
设计本硬件和软件的主要目的是为一款手持导航仪的GPS选型作准备的。结果表明,选用该型号的GPS和本软件设计的系统十分稳定.定位快,热启动条件下首次定位只要8 s;冷启动时。首次定位时间也只要45 s,定位精度为10 m,是目前民用GPS中精度较高的了;而且可以在不影响功能的条件下设计出外观精美的产品。设计的软件可以将GPS定位信息通过GPS接收机完整接收,而且灵活性较大。如果换用其它坐标系的电子地图,则可以在描点前一步加坐标系转换模块。所处理的数据对于高层决策且有重要作用,可广泛用于导航、轨迹回放、中心车辆监控与调度等。