一.GPS全球定位系统的组成

(1)GPS卫星(空间部分)

由沿接近环形的地球轨道运行的24颗卫星组成,位于距地表20200千米的高空,均匀分布在6个轨道面上(每个轨道面4颗),轨道倾角55度。此外,还有4颗有源备份卫星在轨道运行。卫星分布使得全球任何地方、任何事件都可观测到4颗以上的卫星,并能保持良好的定位几何图象,这就提供在时间上连续的全球导航能力。

(2)地面监控系统(地面控制部分)

由1个主控站、5个全球监测站和3个地面控制站组成。5个监控站分布在世界各地,不间断追踪监控卫星,通过地面和卫星链接将原数据和导航信号传到主控站。主控站从各监测站手机跟踪数据,计算出卫星的轨道和时钟参数,然后将结果送到3个地面控制站。地面控制站在每颗卫星运行至上空,把这些导航数据及主控站指令注入到卫星。

(3)GPS信号接收机(用户设备部分)

GPS信号接收机根据射频信号的行驶时间测量卫星距离,根据一个简单数学原理(三维空间的三边测量)推断自身位置,当接收机捕获到跟踪卫星信号后,即可测量出接收天线至卫星的伪距离和距离的变化率,解出卫星轨道参数等数据。根据这些数据,接收机中的微处理计算机就可按定位解算方法进行定位计算,计算出用户所在地理位置的经纬度、高度、速度、时间等信息。

二、NMEA

(1)简介

NMEA协议是为了在不同GPS导航设备中建立统一的标准,NMEA协议有0180、0182、0183三种,0183是目前GPS接收机使用最广泛的协议。GPS接收机根据NMEA-0183协议标准规范,将位置、速度等信息通过串口传送到PC机、PDA等嵌入式设备中。

(2)NMEA-0183协议使用

命令 说明
$GPGGA 全球定位数据
$GPGSA 导航偏差和有源卫星
$GPGSV 卫星状态信息
$GPRMC 运输定位数据
$GPVTG 地面速度信息
$GPGLL 大地坐标信息

语句格式:$aaccc,ddd,ddd,...,ddd*hh<CR><LF>

$:帧命令起始位

aaccc:地址域,前两位为标示符,后三位为语句名

ddd...ddd:数据

*:校验和前缀

hh:校验和(check sum),$与*之间所有自负ASCII码的检验和各字节做异或运算,得到校验和后,再转换十六进制格式的ASCII字符

<CR><LF>:回车和换行

例如:$GPGGA,012440.00,3202.1798,N,11849.0763,E,1,05,2.7,40.2,M,0.5,M,*6F

时间:01时24分40秒

纬度:北纬32度02.1798分

经度:东经118度49.0763分

定位:1=(定位sps模式)0=(未定位)

应用卫星数:5个

HDOP:2.7米

海拔:40.2

海拔单位:M=米

WGS84水准划分:0.5

WGS84水准划分单位:M(米)

校验位:6F

最新文章

  1. NetMQ(二): 请求响应模式 Request-Reply
  2. java classpath、path用法
  3. Qt容器类的对象模型及应用(线性结构篇)(好多图,比较清楚)
  4. 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)
  5. Ubuntu为已经安装的PHP7单独编译mysqli
  6. linux同步windows的时间
  7. jvm003 类加载的过程
  8. setImmediate()
  9. 为什么要使用`QuerySet.iterator()`
  10. [Swift]LeetCode54. 螺旋矩阵 | Spiral Matrix
  11. yarn安装ant-报错
  12. vmware 下linux 共享文件夹消失
  13. 类方法@classmethod
  14. panel内嵌程序窗体
  15. hdu1495(经典bfs,平分水问题)
  16. 图片上传转base64
  17. static final修饰的静态变量修改后更新到服务器,重启无法生效的问题
  18. Absolute positioning
  19. FFmpeg进行屏幕录像和录音
  20. Battery Historian之App耗电量测试

热门文章

  1. Spring Boot-------项目搭建及注解
  2. 嵌套ajax 页面卡死的问题
  3. js中防止全局变量被污染的方法
  4. MySQLzip archive版本(5.7.19)安装教程
  5. 个人作业3--个人总结(Alpha阶段)
  6. bean的单例
  7. 201521123079《java程序设计》第6周学习总结
  8. Oracle数据泵的导入导出
  9. python面向对象之封装
  10. Python可视化----------matplotlib.pylot