GPS中的相关信息和专业术语解读

来源:互联网 发布:淘宝付款取消验证码 编辑:程序博客网 时间:2024/05/21 22:50

NMEANational Marine Electronics Association(美国国家海事电子协会)的缩写。该协会是一家专门从事海洋电子设备方面研究的民间机构,它制定了关于GPS(全球定位系统)电子设备之间的通信接口和协议的NMEA标准。

NMEA-0183协议是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。

一、            电器特性

Baud Rate4800bps

Data Bits8(d7=0)

ParityNone

Stop BitsOne(or more)

二、            协议

1.     语法格式

NMEA 0183的信息格式一般如下所示:

$aaaaa,df1,df2,....[CR][LF]

所有的信息由$开始,以换行结束,紧跟着$后的五个字符解释了信息的基本类型,多个参数之间用逗号隔开。

2.     协议类型

NMEA 0183中有以下三种基本的协议类型:

a)         信息源

b)        查询

c)        属性

1)     信息源

标准格式为:

$ttsss,df1,df2,....[CR][LF]

在紧随$后的两个字符用来识别作为信息内容识别码的后3个字符,信息识别码定义了保留的数据区,在NMEA 0183标准下,每个类型的数据区的信息内容是符合标准的。

例如:    $HCHDM,238,M[CR][LF]

标明“HC”说明信息源作为一个磁性的罗盘,“HDM”指明以下是磁性的船首向航向,238是船首向航向的值,M指明船首向航向的值是磁性的。

2)     查询

标准格式为:

$ttllQ,sss,[CR][LF]

头两个字符做为请求者的信息源的识别码,后两个字符作为被查询的设备的信息识别,最后一个字符说明这是一个查询信息。紧跟着的字段(sss)包含了三个字的被查询内容的记忆信息。

查询意味着接受端需要从信息源那里得到一个有规律的内容,例如,我们可以发一个信息给GPS接受器请求传送一个“DISTANCE-TO-WAYPOINT”的信息,得到响应后,GPS接受器会发送请求的内容,直到接到别的请求。

例如:  $CCGPQ,GGA[CR][LF]

说明“CC”这个设备(计算机)正从 “GP”这个设备(GPS)查询GGA的内容。GPS将每隔一秒传送这个内容,直到有别的查询请求。

3)     属性

这对厂商来说是一种使用没有在标准下预定义的特殊内容的方法。它通常的格式为:

$PmmmA,df1,df2,...,[CR][LF]

P说明是属性内容,mmm定义为厂商信息代码,A(A-Z)标明信息类型。

 

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA$GPGSA$GPGSV$GPRMC$GPVTG$GPGLL等。

 

三、TEXT文本格式说明:

    区域描述:              长度:    注释:

    ----------------------- ------- ------------------------

    句头起始符              1       始终为 '@'

    ----------------------- ------- ------------------------

   /                      2       UTC年的最后两位数字

| ----------------------- ------- ------------------------

|                       2       UTC, "01".."12"

T | ----------------------- ------- ------------------------

i |                       2       UTC, "01".."31"

m | ----------------------- ------- ------------------------

e |                       2       UTC, "00".."23"

| ----------------------- ------- ------------------------

|                       2       UTC, "00".."59"

| ----------------------- ------- ------------------------

   \                      2       UTC, "00".."59"

    ----------------------- ------- ------------------------

   /纬度半球                1       'N' 'S'

| ----------------------- ------- ------------------------

| 纬度坐标                7       WGS84坐标系统,坐标格式ddmmmmm,

|                                 在第4位数字后省略了一个小数点。

| ----------------------- ------- ------------------------

| 经度半球                1       'E' 'W'

| ----------------------- ------- ------------------------

| 经度坐标                8       WGS84坐标系统,坐标格式dddmmmmm,

P |                                 在第5位数字后省略了一个小数点。

o | ----------------------- ------- ------------------------

s | 定位状态                1       'd' 2维差分定位

i |                                 'D' 3维差分定位

t |                                 'g' 2维定位

i |                                 'G' 3维定位

o |                                 'S' 模拟状态

n |                                 '_' 无效

| ----------------------- ------- ------------------------

| 水平定位误差            3       单位为

| ----------------------- ------- ------------------------

| 高度符号                1       '+' '-'

| ----------------------- ------- ------------------------

   \高度                    5       海拔高,单位为

    ----------------------- ------- ------------------------

   //西速度方向          1       'E' 'W'

| ----------------------- ------- ------------------------

| /西速度               4      单位是/,在第三位后省略了一个小数点,

|                                 ("1234" = 123.4 m/s)

V | ----------------------- ------- ------------------------

e | /速度方向          1       'S' 'N'

l |

o | ----------------------- ------- ------------------------

c | /速度              4      单位是/,在第三位后省略了一个小数点,

i |                                 ("1234" = 123.4 m/s)

t | ----------------------- ------- ------------------------

y | 垂直速度方向            1       'U' () 'D' ()

| ----------------------- ------- ------------------------

| 垂直速度                4       单位是/,在第二位后省略了一个小数点,

   \                                ("1234" = 12.34 m/s)

    ----------------------- ------- ------------------------

    句尾结束符              2        回车, '0x0D', 和换行'0x0A'

   实际使用中在软件中需要实现的常用功能

在目前手持项目中,正常的定位或导航系统,基本主要完成如下的功能:

 

读取当前坐标

使用报文:Recommended Minimum Specific GPS/TRANSIT DataRMC)推荐定位信息

 

读取速度

使用报文:Track Made Good and Ground SpeedVTG)地面速度信息

 

读取方向

使用报文:Track Made Good and Ground SpeedVTG)地面速度信息

--注:速度和方向的计算这块,有一点需要注意,就是GPS接收机并非简单的将两次坐标相减进行计算,而是采用的多普勒效应进行处理,所以在实际应用中,速度和方向的计算会稍后一点延迟,因为信号是1秒接收一次,而且方向的计算还要根据前几秒的方向进行加权平均。

 

读取卫星数及状态

使用报文:GPS Satellites in ViewGSV)可见卫星信息

           GPS DOP and Active SatellitesGSA)当前卫星信息GPS的误差

有很多种因素会影响到GPS的准确率,以下是一个GPS误差引入简表:

卫星时钟误差:0-1.5

卫星轨道误差:1-5

电离层引入的误差:0-30

大气层引入的误差:0-30

接收机本身的噪音:0-10

多路反射:0-1

总定位误差:大约28

 

上述的简表,并不表示一定会存在这么大的误差,这是给出的最好及最差的范围,当然最好情况不能同时发生,最差的情况也不能同时发生。

实际在卫星的导航电文中,已经包含了大气层的修正参数,能够消除50%70%的误差,而且这两年出的GPS的误差大致范围是10米或以内。

在现有情况下,民用级单台GPS接收机要想达到1m以内的精度是不可能实现的,原因除GPS本身精度外,还包括地图、定位点测绘、嵌入式设备的运行速度等,所以过度追求定位精度对于民用产品来说已无实际的意义。GPS的漂移

漂移是GPS导航时需要处理的问题之一,漂移主要有两个方面,第一,速度过快,以至于GPS的响应时间短于当前运行速度,出现漂移;第二,在高大建筑密集或天气情况不好的地方,因为GPS信号经过多次的折、反射,造成信号误差,出现漂移。

 

解决GPS漂移主要从两方面入手:

一、主系统的设计主要减少在近距离内对GPS信号的干扰。

二、软件处理。软件处理主要集中在导航软件处完成,导航软件会将坐标定位在道路之内,如果GPS接收到的信号超出道路的半径范围将自动过滤这个数据,并根据上次的速度及方向推算出当前点的位置。

 

对于静态漂移,也有建议做软件判断:

1.检测到的状态为静止时,强制速度为0

2.速度为0时,强制方向为0

3.数据中的速度值为0时,就不去更新地图上的经纬度;

4.通过比较上次定位数据的经纬度差的绝对值(同时包括时间)再来判定是否有慢速移动;

 

另外有些GPS模块(UBLOX)可设置静止模式、行走模式、汽车模式、海上模式、飞行模式,通过设置这些参数来解决漂移问题。