设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1379|回复: 0

SIM808 GNSS定位功能,GPS定位功能,GPS模块串口输出格式说明

[复制链接]

签到天数: 63 天

[LV.6]常住居民II

发表于 2016-7-9 08:40:40 | 显示全部楼层 |阅读模式
        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:地址域
GPS串口输出格式.jpg
        下面我们将对这些语句进行介绍,数据结构:
        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功能,打开串口输出,可以看到,周期性的输出串口数据,如下图:
GPS1.png
        从串口输出数据可以看出,模块没有定位成功,不用着急,需要等一会儿,模块启动需要一定时间,而且和您的GPS天线性能,当时的户外天气状况都有很大的关系。
GPS2.png
        从上图看出,串口输出显示,模块定位成功,打开软件“多功能调试助手v0.2.0”(点击此处下载或到此贴结尾下载),此软件由野火开发。
GPS4.png
打开软件,界面如上图,选择合适的串口号和波特率,就可以接收GNSS的数据,就可以定位。点击“GPS信息方框2处,可以了解更多定位信息。入下图:
GPS5.png
一不小心暴露了自己,如下图,定位误差在5米范围内,还是非常准确的。误差的大小还取决与您的天线和天气状况。
GPS3.png
附件:多功能调试助手v0.2.0

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2017-11-19 21:59 , Processed in 0.127979 second(s), 33 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表