SIM808为移动手机增加高性能GNSS应用,提供精准的定位、测速和授时功能。
GNSS的全称是全球导航卫星系统,模块支持全球系统GPS,区域系统QZSS,支持的SBAS(广域差分增强系统,也称作星基增强系统)有:美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)、印度的GAGAN(GPS辅助型静地轨道增强导航系统)、日本的MSAS(多功能运输卫星增强系统)。
GNSS功能建立在GSM的控制组件中,需要使用GNSS功能,就必须先打开GSM功能的开关,GNSS信息数据通过模块的串口输出,输出的数据都是遵循NME0183协议或在NMEA0183协议上的补充协议。
使用此功能,将使用到如下AT指令:
1、AT+CGNSPWR,GNSS电源开关,通过此命令开启或关闭模块GNSS功能。发送:AT+CGNSPWR=0,关闭GNSS电源,AT+CGNSPWR=1,打开GNSS电源。
2、 AT+CGNSTST,从GNSS发送数据到串口,发送:AT+CGNSTST=0,关闭数据发送,发送:AT+CGNSTST=1,开启数据发送
1 GNSS串口输出格式介绍
在介绍GNSS功能前,先介绍一下串口输出格式,下面为一个周期内串口输出的内容:
$GPGGA,082737.000,3338.1718,N,11903.7624,E,1,9,0.95,32.4,M,5.0,M,,*59
$GPGLL,3338.1718,N,11903.7624,E,082737.000,A,A*59
$GPGSA,A,3,22,06,03,30,01,193,11,19,17,,,,2.51,0.95,2.33*38
$GPGSV,3,1,12,28,82,300,18,193,56,130,42,03,49,107,37,17,47,316,20*41
$GPGSV,3,2,12,22,39,071,21,01,39,042,19,11,27,057,18,06,25,239,43*71
$GPGSV,3,3,12,19,25,294,21,30,20,208,43,08,05,094,18,07,04,186,37*74
$GPRMC,082737.000,A,3338.1718,N,11903.7624,E,0.02,338.99,220616,,,A*65
$GPVTG,338.99,T,,M,0.02,N,0.04,K,A*33
表1:地址域
下面我们将对这些语句进行介绍,数据结构:
1、“$”:帧命令起始位;
2、aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc);
3、ddd…ddd:数据;
4、“*”:校验和前缀(也可以做为语句数据结束标志);
5、hh:校验和(check sum),$与*之间的所有字符ASCII码的校验和(各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符); 6、(CR)(LF):帧结束,回车和换行。 1.1 GPGGA GPGGA(GPS定位信息,Global Positioning System Fix Data)。基本格式: $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,,*hh(CR)(LF) 例:$GPGGA,082737.000,3338.1718,N,11903.7624,E,1,9,0.95,32.4,M,5.0,M,,*59 <1>UTC时间(世界标准时间),中国使用的时间为UTC+8,格式ddmmss.ss,例中,082737.00,在中国做的测试,所以当地时间为16时27分,37秒; <2>纬度,格式为ddmm.mmmm(度分格式①),例中3338.1718,经过换算,得到的纬度为:33.636197; <3>纬度半球,N:北纬;S:南纬; <4>经度,格式dddmm.mmmm(度分格式),例中11903.7624,经过换算,得到的经度为:119.062707; <5>经度半球,E:东经;W:西经; <6>GPS状态,0:为定位;1:非查分定位;2:查分定位; <7>正在使用的用于定位的卫星数量(0~12); <8>HDOP水平精度因子(0.5~99.9); <9>海拔高度(-9999.9到9999.9米); <10>大地水准面高度(-9999.9到9999.9米)。 注①:度分格式ddmm.mmmm,指的是:dd以度为单位,mm.mmmm以分为单位,1度=60分,在日常使用中,都把经纬度的单位换算成度,以3338.1718为例,被拆分为33度,38.1718分,将38.1718/60=0.636197度,那这时得到的纬度为33.636197度。 1.2 GPGLL GPGLL(定位地理信息,Geographic Position)。基本格式: $GPGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh(CR)(LF) 例:$GPGLL,3338.1718,N,11903.7624,E,082737.000,A,A*59 <1>纬度,格式为ddmm.mmmm(度分格式); <2>纬度半球,N:北纬;S:南纬; <3>经度,格式dddmm.mmmm(度分格式); <4>经度半球,E:东经;W:西经; <5>UTC时间(世界标准时间); <6>定位状态,A:有效定位:V:无效定位; <7>模式指示,A:自主定位;D:查分;E:估算;N:数据无效。 1.3 GPGSA GPGSA(当前卫星信息,GPS DOP and Active Satellites)。基本格式: $GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>*hh(CR)(LF) 例:$GPGSA,A,3,22,06,03,30,01,193,11,19,17,,,,2.51,0.95,2.33*38 <1>模式,M:手动;A:自动; <2>定位类型,1:未定位;2:2D定位;3:3D定位; <3>正在使用的卫星号; <4>PDOP综合位置精度因子(0.5~99.9); <5>HDOP水平精度因子(0.5~99.9); <6>VDOP垂直精度因子(0.5~99.9)。 1.4 GPGSV GPGSV(可见卫星数,GPS Satellites in View)。基本格式: $GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*hh(CR)(LF)② 例:$GPGSV,3,1,12,28,82,300,18,193,56,130,42,03,49,107,37,17,47,316,20*41 $GPGSV,3,2,12,22,39,071,21,01,39,042,19,11,27,057,18,06,25,239,43*71 $GPGSV,3,3,12,19,25,294,21,30,20,208,43,08,05,094,18,07,04,186,37*74 <1>GSV语句总数; <2>本句GSV的编号; <3>可见卫星总是(00~12,前面的0也将会被传输); <4>卫星编号; <5>卫星仰角; <6>卫星方位; <7>信噪比(没有跟踪到卫星是为空)。 注②:每条GPGSV语句最多包括四颗卫星信息,其它卫星的信息将在下一条$GPGSV语句中输出。 1.5 GPRMC GPRMC(推荐定位信息,Recommended Minimum Specific GPS/Transit Data)。基本格式:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,*hh(CR)(LF) 例:$GPRMC,082737.000,A,3338.1718,N,11903.7624,E,0.02,338.99,220616,,,A*65 <1>UTC时间(世界标准时间); <2>定位状态,A:有效定位;V:无效定位; <3>纬度,格式为ddmm.mmmm(度分格式); <4>纬度半球,N:北纬;S:南纬; <5>经度,格式dddmm.mmmm(度分格式); <6>经度半球,E:东经;W:西经; <7>地面速率(000.0~999.9节); <8>地面航向(000.0~359.9度,以真北方为参考基准); <9>UTC日期,ddmmyy(日月年); <10>磁偏角; <11>磁偏角方向; <12>模式指示,A:自主定位;D:差分;E:估算;N:数据无效。 1.6 GPVTG GPVTG(地面数度信息,Track Made Good and Ground Speed)基本格式: $GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh(CR)(LF) 例:$GPVTG,338.99,T,,M,0.02,N,0.04,K,A*33 <1>以真北为参考基准的地面航向; <2>以磁北为参考基准的地面航向; <3>地面速率(000.0~999.9节); <4>地面速率(0000.0~1851.8公里/小时); <5>模式指示,A:自主定位;D:差分;E:估算;N:数据无效。 2 GNSS串口输出 发送:AT+CGNSPWR=1与AT+CGNSTST=1这两条AT指令,打开GNSS功能,打开串口输出,可以看到,周期性的输出串口数据,如下图:
从串口输出数据可以看出,模块没有定位成功,不用着急,需要等一会儿,模块启动需要一定时间,而且和您的GPS天线性能,当时的户外天气状况都有很大的关系。
从上图看出,串口输出显示,模块定位成功,打开软件“ 多功能调试助手v0.2.0”(点击此处下载或到此贴结尾下载),此软件由野火开发。
打开软件,界面如上图,选择合适的串口号和波特率,就可以接收GNSS的数据,就可以定位。点击“GPS信息方框2处,可以了解更多定位信息。入下图:
一不小心暴露了自己,如下图,定位误差在5米范围内,还是非常准确的。误差的大小还取决与您的天线和天气状况。
附件:多功能调试助手v0.2.0
|