[email protected] background : I need to be in imx6ull Of Linux The board receives the information of the positioning mod...">

当前位置:网站首页>GPS NMEA protocol, 0183 positioning data format dual mode positioning: gnxxx gps+bd full version

GPS NMEA protocol, 0183 positioning data format dual mode positioning: gnxxx gps+bd full version

2022-06-25 12:37:00 haoming Hu

author :haomingHu
email:[email protected]

background : I need to be in imx6ull Of Linux The board receives the information of the positioning module 0183 Format data and analyze it , And use QT Realization , Draw dynamic curves of various data of positioning information

GPS NMEA agreement ,0183 Positioning data format Dual mode positioning :GNXXX GPS+BD

If it is GN The first data is not distinguished , If it is GP perhaps BD The first data should be distinguished .

Data frame format :
$aaccc,ddd,ddd,…,ddd*hh

1、“$”—— Frame command start bit 
2、aaccc—— Address field , The first two are identifiers , The last three digits are the name of the statement 
3、ddd…ddd—— data 
4、“*”—— Checksums prefix 
5、hh—— The checksum (check sum),$ And  *  All characters between  ASCII  The check sum of the code ( XOR of each byte , Get verification 
	 And after , Retransfer  16  In decimal format  ASCII  character .)
6、<CR><LF>——CR(Carriage Return) + LF(Line Feed) End of the frame , Carriage return and line change 

Data types :

  • GNZDA:UTC Time and date

  • GNGGA:UTC Time information

  • GPGLL: Geolocation information

  • GPGSA: At present GPS Satellite information

  • BDGSA: The current Beidou Satellite Information

  • GPGSV:GPS Visible satellite information

  • BDGSV: Beidou visible satellite information

  • GNRMC: Recommended location information

  • GNVTG: Ground speed information

    1. GNZDA: Time information

    ​ UTC Time and date : there UTC Time is coordinated universal time , Equivalent to the prime meridian (0 Time in longitude ), Time difference with Beijing 8 Hours

    ​ The data sample : $GNZDA,092320.000,25,04,2021,00,00*40

    ​ The frame format :$GPZDA, <1>,<2>,<3>,<4>,<5>*hh

    ​ Data description :

    • <1> :UTC Time ,dd:dd:dd.ddd —> Minutes and seconds
    • <2>: Japan
    • <3>: month
    • <4>: year
    • <5>: The difference between local time and world time
    • <6>: Calibration position *hh

    2. GNGGA: Satellite positioning information

    The data sample :$GNGGA,092320.000,2519.0490,N,11024.8391,E,1,23,0.7,175.7,M,0.0,M,*7D

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

    • <1> UTC Time ,hhmmss( Minutes and seconds ) Format and GNZDA Of UTC equally , Belongs to coordinated universal time
    • <2> latitude ddmm.mmmm( Degrees ) Format ( Ahead 0 Will also be transmitted )
    • <3> Latitude hemisphere N( Northern Hemisphere ) or S( southern hemisphere )
    • <4> longitude dddmm.mmmm( Degrees ) Format ( Ahead 0 Will also be transmitted )
    • <5> Longitude hemisphere E( East longitude ) or W( The west longitude )
    • <6> GPS state :0= Not located ,1= Non differential positioning ,2= Differential positioning ,6= Estimating
    • <7> The number of satellites using the solution position (00~12)( Ahead 0 Will also be transmitted )
    • <8> HDOP Horizontal accuracy factor (0.5~99.9)
    • <9> Altitude (‐9999.9~99999.9)
    • <10> The height of the earth's ellipsoid relative to the geoid
    • <11> Differential time ( The number of seconds since the last differential signal received , If not, differential positioning will be empty )
    • <12> Differential station ID Number 0000~1023( Ahead 0 Will also be transmitted , If not, differential positioning will be empty )

a key :

Longitude latitude conversion method : For example, in the given data , The latitude we can get is 2519.0490 N, So the actual latitude =25+19.0490÷60, The longitude you get is 11024.8391, So the actual longitude is :110+24.8391÷60 It's because the standard metric format is used in the message , Because the ranges of longitude and latitude are 090、0180, So the cutting position is different

3. GPGLL: Geolocation information

Example data :$GNGLL,2519.0490,N,11024.8391,E,092320.000,A,A*4A

$GNGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7> * hh

  • <1> latitude ddmm.mmmmm ( Degrees )
  • <2> Latitude hemisphere N ( Northern Hemisphere ) or S ( southern hemisphere )
  • <3> longitude dddmm.mmmmm ( Degrees )
  • <4> Longitude hemisphere E ( East longitude ) or W ( The west longitude )
  • <5> UTC Time : hhmmss ( Minutes and seconds )
  • <6> Positioning status , A= Effective positioning ,V= Invalid positioning
  • <7> Mode indication (A= Self positioning ,D= Difference ,E= Estimate ,N= Invalid data )

4. GPGSA: At present GPS Satellite information

​ Example data :$GPGSA,A,3,09,17,33,02,34,06,14,36,19,35,04,28,1.2,0.7,1.0*3B

$GPGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*hh

  • <1> Pattern 2:M = Manual , A = Automatically .

  • <2> Pattern 1: Positioning type 1 = Not located ,2 = Two dimensional positioning ,3 = Three dimensional positioning .

  • <3> The first 1 The satellite that the channel is using PRN Code number

  • <4> The first 2 The satellite that the channel is using PRN Code number

  • <5> The first 3 The satellite that the channel is using PRN Code number

  • <6> The first 4 The satellite that the channel is using PRN Code number

  • <7> The first 5 The satellite that the channel is using PRN Code number

  • <8> The first 6 The satellite that the channel is using PRN Code number

  • <9> The first 7 The satellite that the channel is using PRN Code number

  • <10> The first 8 The satellite that the channel is using PRN Code number

  • <11> The first 9 The satellite that the channel is using PRN Code number

  • <12> The first 10 The satellite that the channel is using PRN Code number

  • <13> The first 11 The satellite that the channel is using PRN Code number

  • <14> The first 12 The satellite that the channel is using PRN Code number

  • <15> PDOP Comprehensive position accuracy factor (0.5 ‐ 99.9)

  • <16> HDOP Horizontal accuracy factor (0.5 ‐ 99.9)

  • <17> VDOP Vertical precision factor (0.5 ‐ 99.9)

  • annotation :(Pseudo Random Noise, Pseudo random noise code ),01 to 32( If the number of leading digits is insufficient, it will be supplemented 0, Up to 12 Satellite information ) There must be twelve occupancy data , without , It will be empty , But it's also a occupancy data , The smaller the precision factor , The higher the accuracy ,

​ **5. BDGSA: The current Beidou Satellite Information **( Frame format and GPGSA Agreement )
Example data :$BDGSA,A,3,01,02,03,19,04,05,07,08,10,06,13,1.2,0.7,1.0*25

6. GPGSV:GPS Visible satellite information
​ Example data :
​ $GPGSV,4,1,15,02,34,276,40,03,15,039,04,07,080,38,06,57,317,4577
​ $GPGSV,4,2,15,09,15,112,43,12,08,323,14,42,164,45,17,53,053,47
7E
​ $GPGSV,4,3,15,19,55,009,44,24,05,279,28,56,168,45,33,41,115,4374
​ $GPGSV,4,4,15,34,32,164,43,35,57,065,46,36,55,145,40
4B

​ $GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,…,<4>,<5>,<6>,<7>*<8>
​ (1) GSV The total number of sentences .
​ (2) This sentence GSV The number of .
​ (3) The total number of visible satellites (00-12, Ahead 0 Will also be transmitted ).
​ (4) Satellite number (01~32, Ahead 0 Will also be transmitted ).
​ (5) Satellite elevation (00-90 degree , Ahead 0 Will also be transmitted ).
​ (6) Satellite azimuth (000~359 degree , Ahead 0 Will also be transmitted )
​ (7) Carrier to noise ratio (00~99dB, Null when no satellite is tracked ).
​ notes : Every one of them GSV The statement includes information about up to four satellites , Information from other satellites will be in the next $GPGSV Output... In the statement

7. BDGSV: Beidou visible satellite information
​ Example data :
​ $BDGSV,3,1,12,01,42,122,46,02,48,229,39,03,62,180,45,04,29,109,406C
​ $BDGSV,3,2,12,05,26,251,35,06,05,164,35,07,59,159,45,08,65,340,43
61
​ $BDGSV,3,3,12,10,80,228,44,13,61,283,44,19,41,074,48,20,05,038,*68

​ Frame format and GPGSV Agreement

8. GNRMC: Recommend minimal location information
​ Example data :$GNRMC,092320.000,A,2519.0490,N,11024.8391,E,0.00,0.00,250421,A7D
​ $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>
<13>
​ <1> UTC(Coordinated Universal Time) Time ,hhmmss( Minutes and seconds ) Format
​ <2> Positioning status ,A= Effective positioning ,V= Invalid positioning
​ <3> Latitude, latitude ddmm.mmmm( Degrees ) Format ( If the number of leading digits is insufficient, it will be supplemented 0)
​ <4> Latitude hemisphere N( Northern Hemisphere ) or S( southern hemisphere )
​ <5> Longitude, longitude dddmm.mmmm( Degrees ) Format ( If the number of leading digits is insufficient, it will be supplemented 0)
​ <6> Longitude hemisphere E( East longitude ) or W( The west longitude )
​ <7> Ground speed (000.0~999.9 section ,Knot, If the number of leading digits is insufficient, it will be supplemented 0)
​ <8> Ground course (000.0~359.9 degree , With true north as the reference , If the number of leading digits is insufficient, it will be supplemented 0)
​ <9> UTC date ,ddmmyy( The year of the sun and the moon ) Format
​ <10> Magnetic Variation, Magnetic declination (000.0~180.0 degree , If the number of leading digits is insufficient, it will be supplemented 0)
​ <11> Declination, Magnetic declination direction ,E( In the east ) or W( In the west )
​ <12> Mode Indicator, Mode indication ( only NMEA0183 3.00 Version output ,A= Self positioning ,D= Difference ,E= Estimate ,N= Invalid data )
​ <13> The checksum

9. GNVTG: Ground speed information
​ Example data :$GNVTG,0.00,T,M,0.00,N,0.00,K,A*23
​ $GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh
​ <1> Ground course with true north as reference (000~359 degree , Ahead 0 Will also be transmitted )
​ <2> Ground course with magnetic north as reference (000~359 degree , Ahead 0 Will also be transmitted )
​ <3> Ground speed (000.0~999.9 section , Ahead 0 Will also be transmitted )
​ <4> Ground speed (0000.0~1851.8 km / Hours , Ahead 0 Will also be transmitted )
​ <5> Mode indication ( only NMEA0183 3.00 Version output ,A= Self positioning ,D= Difference ,E= Estimate ,N= Invalid data )

annotation :

  • The checksum : By calculation $ and * All characters between two symbols ASCLL The XOR operation of the code yields , Will get the result to ASCII Character representation
    for example : For example, statement : $GNZDA05555.000,08,12,2015,00,00*4C, The checksum ( The red part is involved in the calculation ) The calculation method is as follows :
    0X47 xor 0X4E xor 0X5A xor 0X44 xor 0X41 xor 0X2C xor 0X30 xor 0X39 xor 0X35 xor 0X35 xor 0X35 xor 0X35 xor 0X2E xor 0X30 xor 0X30 xor 0X30 xor 0X2C xor 0X30 xor 0X38 xor 0X2Cxop 0X31 xorl0X32 xor0X20 xor 0X32 xor 0X30 xor 0X31 xor 0X35 xor 0X2C xor 0X30 xor 0X30 xor 0X2C xor 0X30 xor 0X30
    The result is 0X4C, use ASCII It means 4C.

This article is for reference only , If there is any wrong , Please leave a message in the comment area , Or send an email

原网站

版权声明
本文为[haoming Hu]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202200528576637.html

随机推荐