GPS数据包解析
- 格式:pdf
- 大小:259.12 KB
- 文档页数:4
GPS协议详解协议名称:GPS协议详解一、引言GPS(全球定位系统)协议是一种用于定位和导航的全球性卫星导航系统。
本协议旨在详细介绍GPS协议的工作原理、数据格式和通信流程,以便用户能够全面了解和正确使用GPS设备。
二、协议内容1. GPS工作原理GPS系统由一组卫星、地面控制站和用户接收器组成。
卫星通过广播信号发送时间和位置信息,接收器通过接收多个卫星信号并计算距离来确定自身位置。
2. GPS数据格式GPS数据通常以NMEA(National Marine Electronics Association)格式传输。
NMEA格式使用ASCII字符,包含多个数据字段,例如时间、位置、速度、方向等。
常用的NMEA数据格式包括GGA(位置信息)、RMC(推荐最小数据集)和VTG(地面速度信息)等。
3. GPS通信流程GPS设备通过串行端口与用户设备(如计算机、智能手机等)进行通信。
通信流程如下:a. 用户设备发送请求命令给GPS设备,例如获取当前位置信息。
b. GPS设备接收到请求命令后,根据命令类型进行相应的处理。
c. GPS设备将处理结果以NMEA格式的数据包发送回用户设备。
d. 用户设备接收到GPS设备发送的数据包后,解析数据并进行相应的处理。
4. GPS协议命令GPS协议定义了一系列命令,用于控制和配置GPS设备。
常用的GPS协议命令包括:a. $PMTK(MTK定制命令):用于配置GPS设备的工作模式、输出频率等。
b. $GPGGA(GPS定位信息):用于获取GPS设备的位置信息。
c. $GPRMC(推荐最小数据集):用于获取GPS设备的位置、速度和方向信息。
d. $GPVTG(地面速度信息):用于获取GPS设备的地面速度和航向信息。
e. $GPGLL(地理定位信息):用于获取GPS设备的纬度、经度和UTC时间信息。
5. GPS数据解析用户设备在接收到GPS设备发送的数据包后,需要进行数据解析才干获取实用的信息。
GPS协议详解协议名称:GPS协议详解一、引言GPS(全球定位系统)协议是一种用于定位和导航的协议,通过卫星信号来确定地理位置和时间信息。
本协议旨在详细介绍GPS协议的工作原理、数据格式和通信流程,以便读者全面了解GPS技术。
二、协议概述GPS协议是一种规定了GPS设备与接收器之间通信方式和数据格式的协议。
它定义了数据的传输方式、数据内容以及数据的解析方法,确保GPS设备能够准确地获取卫星信号并解析出位置和时间信息。
三、GPS协议的工作原理1. GPS信号接收:GPS设备通过接收卫星发射的无线信号来获取定位信息。
卫星信号中包含有关卫星位置、时间、纠偏等信息。
2. 数据解析:GPS设备将接收到的信号解析成可用的数据。
解析过程包括解析卫星信号、计算卫星位置、计算接收器位置等。
3. 数据传输:GPS设备将解析后的数据传输给接收器。
数据传输方式可以是串口、USB、无线等。
4. 数据处理:接收器接收到GPS设备传输的数据后,进行进一步的处理,包括数据过滤、纠正、计算等。
5. 数据输出:接收器将处理后的数据输出给用户,通常以文本、数字或图形的形式呈现。
四、GPS协议的数据格式1. NMEA 0183协议:NMEA 0183是一种常用的GPS数据格式,它定义了一系列的语句(Sentence)来传输GPS数据。
常见的语句包括GGA(定位信息)、RMC(推荐定位信息)和VTG(地面速度信息)等。
2. RTCM协议:RTCM是一种用于差分GPS定位的协议,它定义了一系列的差分数据格式,用于提高GPS定位的精度。
3. SiRF协议:SiRF是一种常用的GPS芯片厂商,它定义了一种特定的数据格式,用于与其GPS芯片进行通信。
五、GPS协议的通信流程1. 初始化:接收器与GPS设备建立通信连接,并发送初始化命令,包括波特率、数据格式等。
2. 数据请求:接收器向GPS设备发送数据请求命令,要求获取特定的GPS数据。
3. 数据传输:GPS设备将请求的数据通过指定的通信方式传输给接收器。
路遥电子整理GPS上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x每行开头的字符都是‘$’,接着是信息类型,后面是数据,以逗号分隔开。
一行完整的数据如下:$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,,,A*60信息类型为:GPGSV:可见卫星信息GPGLL:地理定位信息GPRMC:推荐最小定位信息GPVTG:地面速度信息GPGGA:GPS定位信息GPGSA:当前卫星信息这里我们只解析GPRMC和GPGGA的信息GPRMC数据详解:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<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=数据无效)解析内容:1.时间,这个是格林威治时间,是世界时间(UTC),我们需要把它转换成北京时间(BTC),BTC和UTC差了8个小时,要在这个时间基础上加8个小时。
GPS专用名词解析
冷启动:冷启动是将GPS模块中的数据全部清空然后进行重新搜索的意思,也就是我们常见的第一次使用搜星或者在GPS设置中的复位按键,冷启动的搜星时间普遍较长,正常状态在50秒左右,如果处于信号不好的位置则搜星时间更长。
热启动热启动是间隔上次定位2小时以内的再次搜星,它是基于最后定位所保留的卫星信号基础上进行再次尝试连接,因此搜星速度相对较快,一般都在10秒以下。
暖启动:暖启动的搜星速度是介于冷启动和热启动之间的,判定标准以间隔上次定位2小时以后再次搜星,它同样也是基于最后定位所保留的卫星基础搜星,不同于热启动的在于并不和原来的卫星进行连接,而是通过范围位置进行重新搜星。
导航地图:我们常说的导航地图实际上是包括了导航地图运行软件和导航地图图资,其中图资就是具体的地理位置特征及丰富的POI兴趣点,而导航地图运行软件是承载导航地图图资,并将其有效运行展现在车友面前的软件。
兴趣点:兴趣点也就是我们常说的POI(Point of interest),它
是由地图厂商所收录的信息点,为了方便车友查找对应的目的地,如餐馆、大厦等。
举个例子,永盛杰导航仪使用的图吧地图除了支持北京、上海、广州、深圳等36个城市实时路况信息。
还支持我的位置周边餐饮、购物、停车场等任何信息点搜索。
这就是兴趣点的使用实例。
路径:路径是GPS内存中规划的一组数据,包括一个起点和一个终点的坐标,还可以包括若干中间点的坐标。
简单来说就是提供车友出行所到目的地的一条参考路线。
U-Blox芯片GPS 模块的UBX协议解析与配置——写代码的TobemU-Blox 支持NMEA、UBX、RTCM三种协议,程序中使用的是UBX协议,其协议格式如下图所示:需要注意的是,对于数据类型大于一个字节的数据存储,其使用的是小端模式,故进行数据读写时,先低字节,后高字节。
协议格式后两个字节的校验码按如下方式进行求取:GPS进行使用前,需进行初始化配置,主要涉及串口通信配置,将设置写入eeprom中,GPS 的更新频率、要进行转换读取的数据包等:switch(packet_count){case 1:{//配置GPS UBX协议输出,波特率为38400packet_count++;}break;case 2:{//命令存储在eeprom中packet_count++;}break;case 3:{//配置gps更新频率为4hz,导航更新为4hz,采用utc时间packet_count++;}break;case 4:{UBX_CFG_MSG_Encode(NAV_POSLLH); //配置所需数据包packet_count++;}break;case 5:{UBX_CFG_MSG_Encode(NAV_STATUS); //配置所需数据包GPS_Encode_Index = 0;packet_count++;}break;case 6:{UBX_CFG_MSG_Encode(NAV_SOL); //配置所需数据包packet_count++;}break;case 7:{UBX_CFG_MSG_Encode(NAV_VELNED); //配置所需数据包packet_count++;}break;}GPS的配置以命令形式进行,主要参考手册中的CFG的相关指令。
下面以配置GPS UBX协议输出为例,进行GPS配置命令的说明://通信协议配置void UBX_CFG_PRT_Encode(u16 Protocol_out,u32 Baudrate) //只配置输出模式和波特率(占四个字节) {write_two_byte_to_GPS_Encode_Buffer(0X0001); //目标串口1write_two_byte_to_GPS_Encode_Buffer(0X0000);write_two_byte_to_GPS_Encode_Buffer(0X08D0);write_two_byte_to_GPS_Encode_Buffer(0X0000);//配置波特率,先低字节,后高字节write_byte_to_GPS_Encode_Buffer(Baudrate%256);write_byte_to_GPS_Encode_Buffer((Baudrate%(0XFFFF+1))/256);write_byte_to_GPS_Encode_Buffer((Baudrate%(0XFFFFFF+1))/(0XFFFF+1)); write_byte_to_GPS_Encode_Buffer(Baudrate/(0XFFFFFF+1));write_two_byte_to_GPS_Encode_Buffer(0X0001); //协议输入默认为UBXwrite_two_byte_to_GPS_Encode_Buffer(Protocol_out); //输出协议格式write_two_byte_to_GPS_Encode_Buffer(0X0000);write_two_byte_to_GPS_Encode_Buffer(0X0000);}前面说到数据类型大于一字节的数据,其按小端模式进行存储,因此先写低字节,后写高字节://写2字节到编码缓存void write_two_byte_to_GPS_Encode_Buffer(u16 value){GPS_Encode_Buffer[GPS_Encode_Index++]=value; //先写低字节GPS_Encode_Buffer[GPS_Encode_Index++]=(value>>8); //后写高字节}GPS的频率配置如下,根据手册,导航频率参数设置似乎不对:UBX_CFG_RATE_Encode(250,250,Time_source_UTC); //gps测量为4hz,导航为4hz,采用utc时间程序中使用串口7中断进行GPS数据的接收,一旦还接收到数据,就将定时器7的计数清零,定时器7设置为100ms中断,假如100ms内没有数据接收到,且接收缓冲区的首地址内容非空,则认为接收完成。
GPS定位原理及车辆应用解析GPS(全球定位系统)是一种利用卫星定位技术,能够提供全球范围内精确的位置和时间信息的系统。
它由美国国防部开发,始于1973年,于1993年正式向公众开放。
如今,GPS技术已被广泛应用于车辆导航、车辆监控、车辆定位等领域,为车辆运输行业提供了更好的服务和管理手段。
卫星系统:GPS系统由约30颗绕地球运行的卫星组成,这些卫星被平均分布在6个轨道面上。
每颗卫星每天完成两个轨道的运行,它们的运行路径设计得非常精确,能够提供全球覆盖的信号。
卫星通过无线电波向用户发送数据包,其中包括它们的位置和时间信息。
用户接收器:车辆上的GPS接收器是接收和处理卫星信号,以确定车辆位置的装置。
接收器接收到来自至少4颗卫星的信号后,通过测量信号传播时间的方法,计算出车辆与每颗卫星之间的距离,并通过三角定位的方法确定车辆的精确位置。
接收器还可使用地球表面上的其它辅助信号,如地面无线电台发出的位置校正信号,以提高定位的准确性。
地面控制系统:地面控制系统主要负责维护和管理卫星系统的正常运行。
它包括多个地面控制站,用于监测卫星状态、调整卫星轨道、更新卫星钟等。
地面控制系统还负责向卫星发送校正和更新数据,确保卫星系统始终保持在一个准确的状态。
车辆应用方面,GPS定位技术在车辆导航、车辆监控和车辆定位等领域发挥了重要作用。
在车辆导航方面,GPS定位技术能够为驾驶员提供准确的导航信息,包括当前位置、行驶路线和导航指引等。
通过导航系统,驾驶员可以预先规划行驶路线,避开拥堵路段,准确抵达目的地。
同时,导航系统还提供了实时交通信息,帮助驾驶员选择最佳路线,提高行驶效率。
在车辆监控方面,GPS定位技术可以实时跟踪车辆的位置和行驶状态。
通过与地面控制系统的连接,车辆监控中心可以获取车辆的实时位置、行驶速度和行驶路线等信息。
这些信息能够帮助监控中心实时监控车辆的运行状况,及时发现并解决潜在问题,提高车辆的安全性和运输效率。
GPS协议详解协议名称:GPS协议详解一、引言GPS(全球定位系统)协议是一种用于定位和导航的协议,通过卫星和接收器之间的通信,提供准确的地理位置信息。
本协议旨在详细介绍GPS协议的工作原理、数据格式和通信流程。
二、工作原理1. GPS系统由24颗卫星组成,这些卫星围绕地球轨道运行,每颗卫星都具有精确的时钟和位置信息。
2. 接收器通过接收来自至少4颗卫星的信号,并计算信号传播的时间差来确定其位置。
3. 接收器通过与卫星的通信,获取卫星的位置和时钟信息,以便更准确地计算位置。
4. GPS协议定义了接收器与卫星之间的通信规则和数据格式。
三、数据格式1. NMEA 0183格式:最常用的GPS数据格式,包括位置、速度、时间等信息。
每条NMEA消息以"$"开始,以"\r\n"结束。
2. RTCM SC-104格式:用于差分GPS,提供更高的精度和可靠性。
包括基准站和移动站之间的数据交换。
3. SiRF二进制格式:用于SiRF接收器,提供更多的数据和控制选项。
四、通信流程1. 接收器启动,并搜索可见的卫星信号。
2. 接收器与卫星建立通信连接,获取卫星的位置和时钟信息。
3. 接收器计算自身的位置,速度和时间,并将数据以NMEA格式发送给外部设备。
4. 外部设备接收到GPS数据后,可以进行进一步的处理和应用,如导航、地图显示等。
五、协议规范1. 接收器应符合NMEA 0183、RTCM SC-104或SiRF二进制格式的规范,以确保数据的兼容性和可靠性。
2. 数据传输应使用可靠的通信协议,如串口、USB或无线网络等。
3. 接收器应具备良好的抗干扰能力,以确保在复杂的环境中仍能正常工作。
4. 接收器应提供完善的错误处理和故障诊断机制,以便及时发现和解决问题。
5. GPS数据的解析和处理应遵循相应的算法和规范,以确保数据的准确性和可靠性。
六、安全性考虑1. GPS协议的数据传输应采用加密和身份验证等安全措施,以防止数据被篡改或伪造。
GPS数据包格式解析四种定位系统:1、美国的全球定位系统(Global Positioning System,GPS)2、俄罗斯的格罗拉斯(Global Nabigation Satellite System,GLONASS)3、中国的北⽃卫星导航系统(BeiDou Navigation Satellite System,BDS)4、欧盟的伽利略卫星导航系统(Galileo Satellite Navigation System,GALILEO)GGA:定位信息GLL:地理定位信息GSA:当前卫星信息GSV:可见卫星信息RMC:推荐最⼩定位信息VTG:地⾯速度信息常⽤的定位模块有单模和双模单模就只有⼀种定位系统(GPS 或 GLONASS 或 BDS)双模就包括两种定位系统(GPS+GLONASS 或 GPS+BDS)不论哪种模式的数据包,只是前缀不同,后⾯的格式都是相同的。
$xxGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1字段0:$xxGGA,标明该包数据为定位信息字段1:UTC时间,hhmmss.sss,时分秒格式字段2:纬度ddmm.mmmm,度分格式(前导位数不⾜则补0)字段3:纬度 N(北纬)或S(南纬)字段4:经度dddmm.mmmm,度分格式(前导位数不⾜则补0)字段5:经度 E(东经)或W(西经)字段6:定位状态,0=未定位,1=⾮差分定位,2=差分定位,3=⽆效PPS,6=正在估算字段7:正在使⽤的卫星数量(00 - 12)(前导位数不⾜则补0)字段8:HDOP⽔平精度因⼦(0.5 - 99.9)字段9:海拔⾼度(-9999.9 - 9999.9)字段10:地球椭圆⾯相对⼤地⽔准⾯的⾼度字段11:差分时间(从最近⼀次接收到差分信号开始的秒数,如果不是差分定位将为空)字段12:查分站ID号0000 - 1023(前导位数不⾜则补0,如果不是差分定位将为空)字段13:校验值(异或校验)$xxGLL,4250,5589,S,14718.5084,E,092204.999,A*2D字段0:$xxGLL,表明该包数据为地理定位信息字段1:纬度ddmm.mmmm,度分格式(前导位数不⾜则补0)字段2:纬度N(北纬)或S(南纬)字段3:经度dddmm.mmmm,度分格式(前导位数不⾜则补0)字段4:经度 E(东经)或W(西经)字段5:UTC时间,hhmmss.sss格式字段6:状态,A=定位,V=未定位字段7:检验值(异或校验)$xxGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A字段0:$xxGSA,表明该包数据为当前卫星信息字段1:定位模式,A=⾃动⼿动2D/3D,M=⼿动2D/3D字段2,定位类型,1=未定位,2=2D定位,3=3D定位字段3:PRN码(伪随机噪声码),第1信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段4:PRN码(伪随机噪声码),第2信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段5:PRN码(伪随机噪声码),第3信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段6:PRN码(伪随机噪声码),第4信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段7:PRN码(伪随机噪声码),第5信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段8:PRN码(伪随机噪声码),第6信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段9:PRN码(伪随机噪声码),第7信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段10:PRN码(伪随机噪声码),第8信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段11:PRN码(伪随机噪声码),第9信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段12:PRN码(伪随机噪声码),第10信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段13:PRN码(伪随机噪声码),第11信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段14:PRN码(伪随机噪声码),第12信道正在使⽤的卫星PRN码编号(00)(前导位数不⾜则补0)字段15:PDOP综合位置精度因⼦(0.5 - 99.9)字段16:HDOP⽔平精度因⼦(0.5 - 99.9)字段17:VDOP垂直精度因⼦(0.5 - 99.9)字段18:校验值(异或校验)$xxGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70字段0:$xxGSV,表明该包数据为可见卫星信息字段1:本次GSV 语句的总数⽬(1 - 3)字段2:本条GSV 语句是本次GSV 语句的第⼏条(1 - 3)字段3:当前可见卫星总数(00 - 12)(前导位数不⾜则补0)字段4:PRN 码(伪随机噪声码)(01 - 32)(前导位数不⾜则补0)字段5:卫星仰⾓(00 - 90)度(前导位数不⾜则补0)字段6:卫星⽅位⾓(00 - 359)度(前导位数不⾜则补0)字段7:信噪⽐(00-99)dbHz字段8:PRN 码(伪随机噪声码)(01 - 32)(前导位数不⾜则补0)字段9:卫星仰⾓(00 - 90)度(前导位数不⾜则补0)字段10:卫星⽅位⾓(00 - 359)度(前导位数不⾜则补0)字段11:信噪⽐(00-99)dbHz字段12:PRN 码(伪随机噪声码)(01 - 32)(前导位数不⾜则补0)字段13:卫星仰⾓(00 - 90)度(前导位数不⾜则补0)字段14:卫星⽅位⾓(00 - 359)度(前导位数不⾜则补0)字段15:信噪⽐(00-99)dbHz字段16:校验值(异或校验)$xxRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50字段0:$xxRMC,表明该包数据为推荐最⼩定位信息字段1:UTC 时间,hhmmss.sss 格式字段2:状态,A=定位,V=未定位字段3:纬度ddmm.mmmm,度分格式(前导位数不⾜则补0)字段4:纬度N(北纬)或S(南纬)字段5:经度dddmm.mmmm,度分格式(前导位数不⾜则补0)字段6:经度E(东经)或W(西经)字段7:速度,节,Knots字段8:⽅位⾓,度字段9:UTC ⽇期,DDMMYY 格式字段10:磁偏⾓,(000 - 180)度(前导位数不⾜则补0)字段11:磁偏⾓⽅向,E=东W=西字段16:校验值(异或校验)$xxVTG,89.68,T,,M,0.00,N,0.0,K*5F字段0:$xxVTG,表明该包数据为地⾯速度信息字段1:运动⾓度,000 - 359,(前导位数不⾜则补0)字段2:T=真北参照系字段3:运动⾓度,000 - 359,(前导位数不⾜则补0)字段4:M=磁北参照系字段5:⽔平运动速度(0.00)(前导位数不⾜则补0)字段6:N=节,Knots字段7:⽔平运动速度(0.00)(前导位数不⾜则补0)字段8:K=公⾥/时,km/h字段9:校验值(异或校验)。
gps 报文解析规则GPS报文解析规则GPS(全球定位系统)是一种卫星导航系统,可以通过接收卫星信号来确定地理位置。
GPS报文是指从卫星发送到接收器的数据信息,其中包含了位置、速度、时间等相关信息。
解析GPS报文可以帮助我们理解和利用这些数据,下面将介绍一些常见的GPS报文解析规则。
1. GGA报文解析规则GGA报文是最常见的GPS报文之一,包含了位置、时间、定位质量等信息。
在解析GGA报文时,我们可以根据其固定的格式进行解析。
报文中的各个字段分别代表着不同的信息,如纬度、经度、高度、卫星数量等。
通过解析GGA报文,我们可以获取到当前接收器的精确位置信息。
2. RMC报文解析规则RMC报文也是常见的GPS报文,主要包含了位置、速度、时间等信息。
在解析RMC报文时,我们需要注意报文中的各个字段的含义和格式。
其中,位置信息通常包括纬度和经度,而速度信息可以用来计算接收器的移动速度。
通过解析RMC报文,我们可以获取到接收器当前的位置和速度信息。
3. GSV报文解析规则GSV报文主要包含了卫星的信息,如卫星编号、仰角、方位角等。
在解析GSV报文时,我们可以根据报文格式逐个解析每个卫星的信息。
通过解析GSV报文,我们可以获取到当前可见卫星的数量以及每颗卫星的具体信息。
4. VTG报文解析规则VTG报文主要包含了接收器的航向和地面速度信息。
在解析VTG 报文时,我们可以提取出航向和速度的数值。
通过解析VTG报文,我们可以获取到接收器当前的航向和地面速度。
5. GSA报文解析规则GSA报文主要包含了接收器的定位模式和卫星信息。
在解析GSA 报文时,我们可以获取到接收器当前的定位模式,如手动模式、自动模式等。
同时,我们还可以获取到接收器使用的卫星的编号。
通过解析GSA报文,我们可以了解接收器当前的定位模式和使用的卫星信息。
6. ZDA报文解析规则ZDA报文主要包含了时间和日期信息。
在解析ZDA报文时,我们可以提取出年、月、日、小时、分钟和秒的数值。
GPS数据解析函数1. 简介GPS(全球定位系统)是一种利用卫星信号进行地理定位的技术,它已广泛应用于导航、地图、交通、军事等领域。
GPS数据解析函数是一种用于解析GPS数据的功能模块,它可以将从GPS接收器获取的原始数据转化为有意义的位置信息,包括经度、纬度、海拔高度、速度等。
2. GPS数据结构GPS数据通常采用NMEA(National Marine Electronics Association)协议进行传输,其中最常用的数据格式是NMEA 0183。
该格式定义了一种文本协议,每个数据包都以’$’开头,以回车换行符结束。
2.1 数据包格式一个典型的NMEA 0183数据包由多个字段组成,字段之间用逗号进行分隔。
数据包的第一个字段表示数据的类型,后续字段表示具体的数据内容。
例如,$GPGGA表示全球定位系统定位信息数据。
2.2 常用数据字段在GPS数据解析函数中,常用的数据字段有:•经度和纬度:表示地理位置的坐标信息;•海拔高度:表示当前位置的海拔高度;•速度:表示当前位置的移动速度;•方向:表示当前移动方向的角度。
3. GPS数据解析算法GPS数据解析函数的核心是解析接收到的GPS数据包,提取其中的关键信息。
以下是一种常用的GPS数据解析算法:3.1 接收数据GPS数据解析函数首先需要从GPS接收器获取原始数据。
通常,GPS接收器会以串口的形式将数据传输给计算机。
3.2 分割数据包将接收到的数据按照回车换行符进行分割,得到多个完整的数据包。
然后遍历这些数据包,逐个解析。
3.3 解析数据包对于每个数据包,首先判断其类型。
如果是需要的数据类型(例如GPGGA),则解析后续字段;否则忽略该数据包。
3.4 提取信息对于需要解析的数据包,根据字段的位置提取其中的信息。
例如,经度和纬度字段通常位于数据包的第三个和第四个位置。
3.5 数据格式转换将提取到的信息进行格式转换,以便后续的使用。
例如,将经度和纬度字段的度、分、秒格式转换为十进制格式。
GPS数据的特征提取与分析GPS(全球定位系统)是一种通过卫星定位来确定地球上的位置的技术。
在现代社会中,GPS已广泛应用于交通、物流、导航、军事等众多领域。
但是,随着GPS数据的快速发展,如何从海量的GPS数据中提取有用的信息成为了研究热点之一。
本文将探讨GPS数据的特征提取与分析方法。
一、GPS数据的特征GPS数据包含时间、经度、纬度、高度、速度、方向、精度等信息,这些信息可以反映出行动轨迹、速度变化、信号强度等特征。
下面将详细介绍GPS数据的特征。
1. 行动轨迹GPS数据可以记录下用户的定位信息,从而反映用户的路径轨迹。
路径轨迹通常体现出用户的行动轨迹,如运动员的训练轨迹、车辆的行车轨迹、旅游者的路线轨迹等。
路径轨迹可以为用户提供参考,帮助他们更好地规划出行路线,也可以用于监管、追踪等方面。
2. 速度变化GPS数据中的速度信息,可以反映出用户在不同位置的移动速度,如车辆在高速公路上的行车速度、运动员在不同时间段的运动速度等。
速度变化可以用于评估用户的运动能力,或者评估车辆在行驶过程中的合理性和安全性。
3. 信号强度GPS数据中的信号强度可以反映出用户所处的信号环境,如天气、地形、建筑物等对GPS信号的干扰情况。
这些影响因素,可能会导致GPS信号的丢失或者变弱。
因此,在分析GPS数据时,需要考虑这些因素的影响,以准确反映用户的情况。
二、GPS数据的特征提取方法为了更好地利用GPS数据,需要根据用户的需求,提取出有意义的信息。
下面将简述GPS数据的特征提取方法。
1. 轨迹提取轨迹提取方法通常基于GPS数据中的位置信息,通过位置点的连线来描述用户的路径轨迹。
常见的轨迹提取方法包括:基于距离阈值的轨迹提取法、基于时间阈值的轨迹提取法、基于密度的轨迹提取法等。
2. 速度提取速度提取方法通常基于GPS数据中的速度信息,通过对于速度变化的分析来提取出用户的行车状态。
常见的速度提取方法包括:基于积分的速度提取法、基于加速度的速度提取法、基于滑动窗口的速度提取法等。
GPS协议详解GPS(全球定位系统)协议是一种用于定位和导航的协议,它使用卫星信号来确定接收器的位置、速度和时间。
本文将详细介绍GPS协议的标准格式,包括协议的结构、数据格式、通信流程等内容。
一、协议结构GPS协议通常由头部、数据部分和校验部分组成。
1. 头部:头部包含了协议的版本信息、数据类型和长度等字段,用于标识和解析数据。
2. 数据部分:数据部分包含了GPS接收器发送的位置、速度、时间等信息。
具体的数据格式将在下一部分进行详细介绍。
3. 校验部分:校验部分用于验证数据的完整性和准确性,通常使用校验和或CRC校验算法。
二、数据格式GPS协议的数据部分包含了多个字段,用于描述接收器的位置、速度、时间等信息。
以下是常见的GPS数据字段:1. 经度和纬度:经度和纬度是描述位置的最基本信息。
经度表示东西方向上的位置,纬度表示南北方向上的位置。
通常使用度(°)作为单位,精确到小数点后几位。
2. 海拔高度:海拔高度表示接收器距离海平面的垂直距离,通常使用米(m)作为单位。
3. 速度和方向:速度表示接收器的移动速度,方向表示接收器的移动方向。
通常使用米每秒(m/s)作为速度单位,度(°)作为方向单位。
4. 时间:时间字段表示接收器接收到信号的时间。
通常使用协调世界时(UTC)作为时间标准。
5. 卫星信息:卫星信息字段包含了接收器当前可见的卫星的编号、信号强度等信息。
6. 定位质量指示器:定位质量指示器用于表示接收器的定位精度和可靠性,通常使用PDOP(位置精度因子)和HDOP(水平精度因子)等指标。
三、通信流程GPS协议的通信流程通常包括以下几个步骤:1. 接收器初始化:接收器在开始定位之前需要进行初始化,包括设置协议参数、搜索卫星信号等。
2. 数据请求:接收器向卫星发送数据请求,请求当前位置、速度、时间等信息。
3. 数据接收:接收器接收到卫星发送的数据,并解析数据字段。
4. 数据处理:接收器根据接收到的数据进行位置计算、速度计算等处理操作。
摘要GPS是利用卫星,在全球范围内实时进行定位、导航的系统,目前可以说是最热门、最受人瞩目的一项科技。
它具有在海、陆、空进行全方位实时三维导航与定位能力,并提供实时、全天候和全球性的导航服务。
所以,船舶可以根据GPS的解析信息来确保稳定而精确最佳航线。
随着科技的迅速发展,各种新型的航海仪器均已实现了数字化和计算机化,目前各种航海仪器之间的通信一班采用NMEA-0183接口。
NMEA-0183现已成为GPS导航设备统一的标准协议,主要包括GPGGA,GPRMC,GPVTG,GPGSV,GPZDA等语句格式,其中GPVTG的功能就是解析卫星信号中的对地速度信息,将其信号序列变为非专业人员可读取的文字。
本文针对当前比较普及的GPS系统,介绍了GPS通信的NMEA-0183协议、GPVTG信息解析的实现方法。
关键字:GPS NMEA-0183协议 GPVTG目录前言 (1)第1章绪论 (2)1.1 GPS定位系统原理 (2)1.2 C语言编程特点 (3)第2章NMEA-0183协议的简介 (4)2.1 NMEA-0183协议的格式定义 (4)2.2 NMEA-0183的应用领域 (5)2.3 NMEA-0183数据处理中的注意事项 (5)第3章设计方案 (6)3.1 主要方案思路及步骤 (6)3.1.1主流程图 (6)3.1.2调用函数流程图: (7)3.1.3解析程序的编写及流程图 (7)3.2程序的编写及调试结果 (8)3.2.1 最终程序及其注解 (8)3.2.2调试步骤及显示结果 (11)3.3文本输出显示结果: (13)第4章小结 (14)4.1 设计中遇到的问题及解决方案 (14)4.2心得体会 (15)[参考文献] (17)前言GPS系统是美国研制的全球性、全天候的卫星导航系统。
它主要是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的;其基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置;主要特点有:高精度、全天候、高效率、多功能、操作简便、应用广泛等。
2. 定位状态,在接收到有效数据前,这个位是‘V’,后面的数据都为空,接到有效数据后,这个位是‘A’,后面才开始有数据。
3. 纬度,我们需要把它转换成度分秒的格式,计算方法:如接收到的纬度是:4546.408914546.40891/100=45.4640891可以直接读出45度, 4546.40891–45*100=46.40891, 可以直接读出46分46.40891–46 =0.40891*60=24.5346读出24秒, 所以纬度是:45度46分24秒。
4. 南北纬,这个位有两种值‘N’(北纬)和‘S’(南纬)5. 经度的计算方法和纬度的计算方法一样6. 东西经,这个位有两种值‘E’(东经)和‘W’(西经)7.速率,这个速率值是海里/时,单位是节,要把它转换成千米/时,根据:1海里=1.85公里,把得到的速率乘以1.85。
8. 航向,指的是偏离正北的角度9. 日期,这个日期是准确的,不需要转换GPGGA GPS 定位数据数据详解:$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>$GPGGA :起始引导符及语句格式说明(本句为GPS 定位数据);<1> UTC 时间,格式为hhmmss.sss ;<2> 纬度,格式为ddmm.mmmm(第一位是零也将传送);<3> 纬度半球,N 或S(北纬或南纬)<4> 经度,格式为dddmm.mmmm(第一位零也将传送);<5> 经度半球,E 或W(东经或西经)<6> 定位质量指示,0=定位无效,1=定位有效;<7>使用卫星数量,从00到12(第一个零也将传送)<8>水平精确度,0.5到99.9<9>天线离海平面的高度,9999.9到9999.9米M 指单位米<10>大地水准面高度,9999.9到9999.9米M 指单位米<11>差分GPS 数据期限(RTCMSC104),最后设立RTCM 传送的秒数量<12>差分参考基站标号,从0000到1023(首位0也将传送)。
解析内容:第9,10 个字段,海平面高度和大地水准面高度,单位是米GPVTG 地面速度信息 $GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh <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=数据无效随笔分类(35)C#(29)C++(1)Delphi 资料摘录(1)LINQ & Lambda(1)MapX(1)Sql代码重构和设计模式其它(2)随笔档案(42)2013年9月 (2)2013年2月 (2)2012年12月 (1)2012年6月 (2)2011年12月 (1)2011年11月 (1)2011年10月 (8)2011年9月 (6)2011年8月 (3)2011年7月 (3)2011年6月 (9)2011年5月 (4)相册(2)ArticleLegend(2)最新评论1. Re:[转]MSSQL 优化之索引优化不错 受教了茗::流2. Re:C#下水晶报表的数据动态绑定(推模式, 非关联数据库)还是换用finereport 吧,周围几个朋友用的水晶都快崩溃了ilovejava3. Re:[整理]GPS 数据包解析你好,我用的是GR213的接收器,根据他给的手册使用4800,none ,1的设置。
但是接收的是有规律的乱码,不是类似于$GPGLL,4738.0173,N,12211.1874,W,191934.7......mavapoGPGSV 可视卫星状态 例:$GPGSV ,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78 标准格式: $GPGSV ,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF) 各部分含义为: (1)总的GSV 语句电文数;2; (2)当前GSV 语句号:1; (3)可视卫星总数:08; (4)PRN 码(伪随机噪声码) 也可以认为是卫星编号 (5)仰角(00~90度):33度; (6)方位角(000~359度):240度; (7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息); *总和校验域; hh 总和校验数:78; (CR)(LF)回车,换行。
注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即: (4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。
例: $GPGSV,3,1,10,24,82,023,40,05,62,285,32,01,62,123,00,17,59,229,28*70 每条语句包含四部分内容,例如:第一部分是“24,82,023,40”,第二部分是“05,62,285,32”等等。
每部分的第一个词为PRC ,第二个词为卫星高程,跟着为方位角和信号强度。
这个语句里最重要的指标应该算是“信号躁声比(signaltonoise ratio )”(以下简称为SNR )。
这个数值标示卫星信号的接收率。
我们知道,卫星是以相同的强度发射信号,但是传播过程中难免会遇到诸如树和墙之类的 障碍物,这样就影响了信号的识别。
典型的SNR 值在0到50之间,其中50表示非常好的信号。
(SNR 可以达到99)。
GPGSA 当前卫星信息 例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A 字段0:$GPGSA ,语句ID ,表明该语句为GPS DOP and Active Satellites (GSA )当前卫星信息 字段1:定位模式,A=自动手动2D/3D ,M=手动2D/3D 字段2:定位类型,1=未定位,2=2D 定位,3=3D 定位 字段3:PRN 码(伪随机噪声码),第1信道正在使用的卫星PRN 码编号(00)(前导位数不足则补0) 字段4:PRN 码(伪随机噪声码),第2信道正在使用的卫星PRN 码编号阅读排行榜1. C# 网络连接中异常断线的处理:ReceiveTimeout,SendTimeout 及KeepAliveValues(设置心跳)(4666)2. [整理]GPS 数据包解析(4457)3. Google map 中 Marker 使用自定义图标(3423)4. C#中的多线程使用 Thread类: 使用回调函数从一个线程中检索数据(2901)5. C#下水晶报表的数据动态绑定(推模式, 非关联数据库)(2379)评论排行榜1. Google map 中 Marker 使用自定义图标(2)2. TCP Client 及 Server 示例(1)3. C#下水晶报表的数据动态绑定(推模式, 非关联数据库)(1)4. C#压缩与解压缩流类GZipStream 的使用(1)5. [整理]GPS 数据包解析(1)推荐排行榜1. Form 嵌入到Panel 里(C#)(1)沧海小小粟关注 1粉丝 3+加关注00(请您对文章做出评价)(00)(前导位数不足则补0) 字段5:PRN码(伪随机噪声码),第3信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段6:PRN码(伪随机噪声码),第4信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段7:PRN码(伪随机噪声码),第5信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段8:PRN码(伪随机噪声码),第6信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段9:PRN码(伪随机噪声码),第7信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段10:PRN码(伪随机噪声码),第8信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段11:PRN码(伪随机噪声码),第9信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段12:PRN码(伪随机噪声码),第10信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段13:PRN码(伪随机噪声码),第11信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段14:PRN码(伪随机噪声码),第12信道正在使用的卫星PRN码编号(00)(前导位数不足则补0) 字段15:PDOP综合位置精度因子(0.5 99.9) 字段16:HDOP水平精度因子(0.5 99.9) 字段17:VDOP垂直精度因子(0.5 99.9) 字段18:校验值~做事情贵在坚持~分类: 其它标签: GPS数据包解析绿色通道: 好文要顶 关注我 收藏该文与我联系« 上一篇:[转] C# API 大全» 下一篇:[C++] C++指针的那些事 常量,变量,指针及指针相关的三个数值。