结课大作业,把我网上找到的资料和我制作的过程整合了一下,希望对大家有所帮助
什么是GPS接收机
GPS接收机是接收全球定位系统卫星信号并确定地面空间位置的仪器。GPS卫星发送的导航定位信号,是一种可供无数用户共享的信息资源。对于陆地、 海洋和空间的广大用户,只要拥有能够接收、跟踪、变换和测量GPS信号的接收设备, 即GPS信号接收机。
一般的GPS接收机长这样:
而我们今天要用的就比较简陋了,它长这样
使用其usb串口与电脑相连,并进行相关环境的配置,我们就可以用电脑接受其数据流了。
数据流解读
GPS接收机协议
我们利用GPS接收机接收到的数据流格式是基于NMEA-0183 协议,NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、MCU等设备。
NMEA-0183 协议是目前 GPS 接收机上使用最广泛的协议,大多数常见的 GPS 接收机、GPS 数据处理软件、导航软件都遵守或者至少兼容这个协议。
数据格式
$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x
-
$
为起始标志; -
,
为域分隔符; -
*
为校验和识别符,其后两位数为校验和,代表了$
和*
之间所有字符的按位异或值(不包括这两个字符); -
\r\n
为终止符(不可见),所有的语句必须以来结束,也就是 ASCII 字符的“回车”(十六进制的0D
)和“换行”(十六进制的0A
)。
NMEA-0183 协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有 GPGGA、GPGSA、GPGSV、GPRMC、GPVTG、GPGLL 等。下面给出这些常用 NMEA 0183 语句的字段定义解释:
GPRMC
Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
各字段描述如下:
-
<1>
UTC 时间,格式 hhmmss.ssss,代表时分秒.毫秒 -
<2>
定位状态,A=有效定位,V=无效定位 -
<3>
纬度 ddmm.mmmm(度分)格式(前面的 0 也将被传输) -
<4>
纬度半球 N(北纬)或 S(南纬) -
<5>
经度 dddmm.mmmm(度分)格式(前面的 0 也将被传输) -
<6>
经度半球 E(东经)或 W(西经) -
<7>
地面速率(000.0~999.9 节,前面的 0 也将被传输) -
<8>
地面航向(方位角),等效于二维罗盘(000.0~359.9 度,以真北为参考基准,前面的 0 也将被传输) -
<9>
UTC 日期,DDMMYY(日月年)格式 -
<10>
磁偏角(000.0~180.0 度,前面的 0 也将被传输) -
<11>
磁偏角方向,E(东)或 W(西) -
<12>
模式指示(仅 NMEA0183 3.0 版本输出,A=自主定位,D=差分,E=估算,N=数据无效) -
最后两个字节是校验和
注意:
-
如果字段 4 的值等于 N,则字段 3 的值等于 ddmm.mmmmmm
-
如果字段 4 的值等于 S,则字段 3 的值等于 -ddmm.mmmmmm
-
如果字段 6 的值等于 E,则字段 5 的值等于 ddmm.mmmmmm
-
如果字段 6 的值等于 W,则字段 5 的值等于 -ddmm.mmmmmm
-
十进制北纬度数 = dd + mm.mmmmmm/60
-
十进制南纬度数 = -(dd + mm.mmmmmm/60)
-
十进制东经度数 = ddd + mm.mmmmmm/60
-
十进制西经度数 = -(ddd + mm.mmmmmm/60)
GPGGA
Global Positioning System Fix Data(GGA)GPS定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh
各字段描述如下:
-
<1>
UTC 时间,hhmmss(时分秒)格式