- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
JP7-T的GPS接收机和定位系统设计
3软件设计
本系统的软件部分主要完成对经纬度、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所示。
3.3测试
软件编写完后,应先在PC机上用gcc编译,编译过程一般没有什么大问题。然后,可以将做好的GPS接收机通过串口接在PC机上进行软件和硬件的调试。本设计的GPS机经过连续几天运行都没有什么问题,非常稳定。但是,做这个demo板的最终目的是为设计一款基于ARM9处理器的手持机。所以,笔者又将该软件交叉编译。采用的编译器是3.3.2版本的arm-linux-gcc。为了验证测试板和软件在嵌入式系统下的可行性,笔者还将其与广州Friendly-arm生产的S3C2410实验箱相连并进行了测试。测试结果十分稳定,定位非常精确。
4结束语
设计本硬件和软件的主要目的是为一款手持导航仪的GPS选型作准备的。结果表明,选用该型号的GPS和本软件设计的系统十分稳定.定位快,热启动条件下首次定位只要8 s;冷启动时。首次定位时间也只要45 s,定位精度为10 m,是目前民用GPS中精度较高的了;而且可以在不影响功能的条件下设计出外观精美的产品。设计的软件可以将GPS定位信息通过GPS接收机完整接收,而且灵活性较大。如果换用其它坐标系的电子地图,则可以在描点前一步加坐标系转换模块。所处理的数据对于高层决策且有重要作用,可广泛用于导航、轨迹回放、中心车辆监控与调度等
作者:黄春晖,许凯华 来源:电子元器件应用
上一篇:无线传感器网络轴温探测系统的设计
下一篇:GPS接收机中高频通道的仿真