惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Privacy International News Feed
T
Tor Project blog
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
L
Lohrmann on Cybersecurity
博客园_首页
T
Tailwind CSS Blog
A
Arctic Wolf
P
Proofpoint News Feed
H
Help Net Security
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
F
Fortinet All Blogs
罗磊的独立博客
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
博客园 - 聂微东
Security Latest
Security Latest
V
Visual Studio Blog
腾讯CDC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Microsoft Security Blog
Microsoft Security Blog
I
InfoQ
S
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cyberwarzone
Cyberwarzone
T
Tenable Blog
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
The Cloudflare Blog
U
Unit 42
Latest news
Latest news
AWS News Blog
AWS News Blog
J
Java Code Geeks
N
News and Events Feed by Topic
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
Help Net Security
Help Net Security

博客园 - niceboy

Redhat Linux 7.3 虚拟机通过USB挂载NTFS格式的移动硬盘 自己写的一个记录日常事务的小软件,也可以作为密码保险箱和提醒工具 访问IIS元数据库失败解决办法 海事卫星通信 操作或事件已被禁用模式阻止 售前工程师的来世今生(转载自IT售前论坛的经典基础知识)【转】 用Oracle Instant client 打包Oracle客户端 Oracle数据库中 编号自动增长的实现 关于FTP端口【转】 轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题 论《金瓶梅》与项目管理中人际关系协调 软件开发质量管理层次模型 软件开发中项目需求管理简述 软件测试的基本概念和方法 Web应用程序的整体测试 VSS使用手册 .Net 2.0新功能:重构(Refactoring)(4) .Net 2.0新功能:重构(Refactoring)(3) .Net 2.0新功能:重构(Refactoring)(2)
关于GPS车载终端的研究
niceboy · 2009-06-19 · via 博客园 - niceboy

  最近,一个客户要求做一个GPS车辆监控的系统,要把汽车的位置实时的显示在电子地图上,以前还真没有接触过,从头开始学习啦。

  首先得明白GPS信号的格式和传输方法,不然怎么用程序获得汽车的坐标呢。上网g一下,GPS终端型号甚多、性能各异,但是他们的GPS定位信息串行输出格式大多采用美国国家海洋电子协会制定的NMEA-0183通信标准格式。其输出的数据采用ASCII码,内容包含了经度、维度、高度、速度、日期、时间、航向以及卫星状况等信息,常用的语句有6种,包括GGA、GLL、GSA、GSV、RMC和VTG。

 下面先分别说明一下各个语句的含义吧。

GPS-NMEA0183格式

说明:NMEA0183格式以“$”开始,主要语句有GPGGA,GPVTG,GPRMC等

1、 GPS DOP and Active Satellites(GSA)当前卫星信息

$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>

<1>模式 :M = 手动, A = 自动。
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
<4> PDOP位置精度因子(0.5~99.9)
<5> HDOP水平精度因子(0.5~99.9)
<6> VDOP垂直精度因子(0.5~99.9)
<7> Checksum.(检查位).

2、 GPS Satellites in View(GSV)可见卫星信息

$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>

<1> GSV语句的总数
<2> 本句GSV的编号
<3> 可见卫星的总数,00 至 12。
<4> 卫星编号, 01 至 32。
<5>卫星仰角, 00 至 90 度。
<6>卫星方位角, 000 至 359 度。实际值。
<7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。
<8>Checksum.(检查位).

第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。

3、Global Positioning System Fix Data(GGA)GPS定位信息

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>

<1> UTC时间,hhmmss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)


4、Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>

<1> UTC时间,hhmmss(时分秒)格式
<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.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

5、 Track Made Good and Ground Speed(VTG)地面速度信息

$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF>

<1> 以真北为参考基准的地面航向(000~359度,前面的0也将被传输)
<2> 以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)
<3> 地面速率(000.0~999.9节,前面的0也将被传输)
<4> 地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)
<5> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

了解了格式就好说了,网上有好多解译这些语句的类,偷个懒、下载修改一下就可以用了。

有了软件没有硬件也白闹啊,巧妇难为无米之炊! 嘿嘿,好在客户提供了一台车载GPS终端设备,接下来就可以测试了。

我用的这个车载GPS需要一个SIM卡,要支持CMNET方式上网,为了这个我还把自己的手机卡开通了GPRS功能, 初始化车载GPS终端,接上终端用自带的服务器端接收测试工具进行测试......不行啊?没有数据,一直连不上服务器,问过经销商才知道这个GPS终端的SIM卡只支持CMNET方式的网络,而我的是CMWAP的!换上别人的卡,等待几秒后数据终于出来啦,还算顺利。

 自带的那个测试程序只能接受数据进行显示,要跟电子地图联系起来还要自己写程序写呀,我写了一个接收的程序,用的是TCP连接方式,测试不行,只能收到一个终端的编号,往下就没有数据了,找不到原因啊,换种方式,把终端设成用UDP协议的,重新用UDP协议写了一个接收程序,竟然还真的解决了,看到接收区显示出一串串数据,终于完成了。不过一直没明白为什么TCP连接方式不行。

 把GPS车载终端接到汽车上,出去转了一圈,效果还不错,误差基本在10米以内,也可能跟地图的精度有关啊。