3454 views|1 replies

83

Posts

0

Resources
The OP
 

Ntrip Communication Protocol 1.0 [Copy link]

1 What is Ntrip?

CORS (Continuously Operating Reference Stations) is a network base station that sends and receives GPS differential data through the network. After users access CORS, they can achieve differential positioning of GPS mobile stations without setting up a separate GPS base station.

To access the CORS system, a network communication protocol is required. NTRIP (Networked Transport of RTCM via Internet Protocol) is one of the communication protocols of the CORS system.

2 System composition

The CORS system using the NTRIP communication protocol, its composition is shown in the figure below

Figure 1 Ntrip system composition

NtripSource is used to generate GPS differential data and submit the differential data to NtripServer

NtripServer is responsible for submitting GPS differential data to NtripCaster

NtripCaster differential data center, responsible for receiving and sending GPS differential data

After NtripClient logs in to NtripCaster, NtripCaster sends GPS differential data to it

NtripSource and NtripServer are usually integrated into a GPS base station, which generates differential data (playing the role of NtripSource) and then sends it to NtripCaster (playing the role of NtripServer) through the network.

NtripSource and NtripServer can also be separated: the GPS base station generates differential data, and then sends it to a program through the serial port, and the program sends the differential data to NtripCaster. Here, the GPS base station plays the role of NtripSource, and the program plays the role of NtripServer.

NtripCaster is generally a server with a fixed IP address, which is responsible for receiving and sending differential data. There are two ways to send differential data to NtripClient: one is to directly forward the differential data generated by NtripSource; the other is to generate a virtual reference station (VRS) for NtripClient by solving the differential data of multiple NtripSources.

NtripClient is usually a GPS mobile station. After logging into NtripCaster, it sends its own coordinates to NtripCaster. NtripCaster selects or generates differential data and then sends it to NtripClient. In this way, the GPS mobile station can achieve high-precision differential positioning.

3 NtripServer

Steps for NtripServer to access NtripCaster

1. Establish a TCP connection with NtripCaster;

2. Send the following data to NtripCaster (↙ represents \r\n, i.e. 0DH and 0AH):

SOURCE letmein /Mountpoint↙

Source-Agent: NTRIP NtripServerCMD/1.0↙

The Mountpoint above is the mount point name. Note that the / in front of it cannot be omitted. There may be multiple NtripServers, and the mount point is used to distinguish them.

The above letmein is the password corresponding to this mount point. Without the password, any program can connect to the mount point, and the entire system is vulnerable to malicious attacks.

The line "Source-Agent: NTRIP NtripServerCMD/1.0" is not necessary. It indicates the software name and version number of NtripServer. The software name here is NtripServerCMD and the version number is 1.0.

3. NtripCaster's reply to NtripServer

The mount point and password are both valid, and the result is:

ICY 200 OK↙

The mount point or password is invalid, and the return value is:

ERROR - Bad Password↙

4. NtripServer sends differential data to NtripCaster

After NtripCaster replies ICY 200 OK, NtripServer can send differential data to NtripCaster.

4 NtripClient

NtripClient accesses NtripCaster for two purposes: obtaining source list and obtaining differential data. The following describes each of them.

4.1 Get source list

Multiple NtripServers send differential data to NtripCaster, so NtripCaster will get multiple differential data. Before NtripClient gets differential data, it needs to know how many differential data there are and what formats they are in. ... This requires getting the source list, and the steps are as follows:

1. Establish a TCP connection with NtripCaster;

2. Send the following data to NtripCaster:

GET / HTTP/1.0 ↙

User-Agent: NTRIP GNSSInternetRadio/1.4.10↙

Accept: */*↙

Connection: close↙

"User-Agent: NTRIP GNSSInternetRadio/1.4.10" indicates the software name and version number of NtripClient. The software name here is GNSSInternetRadio and the version number is 1.4.10.

3. NtripCaster will return the following data and then automatically disconnect the TCP connection

SOURCETABLE 200 OK↙

Server: NTRIP Trimble NTRIP Caster↙

Content-Type: text/plain↙

Content-Length: 441↙

Date: 02/Jun/2010:14:13:32 UTC↙

STR;RTCM23;RTCM23;RTCM 2.3;1(1),3(10),18(1),19(1);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B ;N;0;;↙

STR;CMR;CMR;CMR;CMR;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;CMRP;CMRP;CMR+;CMR;2;GPS;SGNET;CHN;31;121;1;1;Trimble GPSNet;None;B;N;0;;↙

STR;DGPS;DGPS;RTCM 2.1;RTCM 2.1;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;RTCM3X;RTCM3X;RTCM 3.X;1004(1),1005/1007(5),PBS(10);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B; N;0;;↙

END SOURCE TABLE ↙

The source list data starts with SOURCETABLE and ends with ENDSOURCETABLE.

200 OK means everything is OK.

"Server: NTRIP Trimble NTRIP Caster" is a description of the NtripCaster software.

"Date: 02/Jun/2010:14:13:32 UTC" indicates the current time. Its format is not fixed, such as:

Date: Sun, 01 May 2016 08:40:39 China Standard Time↙

The following content is the source list data. "Content-Length: 441" means the number of bytes of the source list data is 441, including the \r\n at the end of each line.

STR;RTCM23;RTCM23;RTCM 2.3;1(1),3(10),18(1),19(1);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B ;N;0;;↙

STR;CMR;CMR;CMR;CMR;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;CMRP;CMRP;CMR+;CMR;2;GPS;SGNET;CHN;31;121;1;1;Trimble GPSNet;None;B;N;0;;↙

STR;DGPS;DGPS;RTCM 2.1;RTCM 2.1;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;RTCM3X;RTCM3X;RTCM 3.X;1004(1),1005/1007(5),PBS(10);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B; N;0;;↙

In the source list data, one line represents one mount point. Each line is separated by a semicolon. The meanings are shown in the following table.

Serial number

Example

illustrate

1

STR

Type STR/CAS/NET, only STR is described here

2

RTCM23

Mountpoint

3

RTCM23

identifier

4

RTCM 2.3

Differential data format

5

1(1),3(10)

Data 1 (output once every 1 second); Data 3 (output once every 10 seconds)

6

2

Carrier phase data 0—None 1—Single frequency 2—Dual frequency

7

GPS

Navigation systems, such as GPS, GPS+GLO, EGNOS

8

SGNET

network

9

CHN

nation

10

31

latitude

11

121

longitude

12

1

Whether to send NMEA. 0—Not required 1—Required

13

1

Base station type: 0—Single base station 1—Network

14

SGCAN

The name of the software that generates this data stream

15

None

Compression Algorithm

16

B

Access Protection N—None B—Basic D—Digest

17

N

Y/N

18

0

Bit rate

19

As mentioned above, there are two situations when NtripCaster sends differential data to NtripClient:

1. Directly forward the differential data generated by NtripSource. In this case, NtripClient only needs to specify the mount point;

2. Generate a virtual base station for NtripClient by solving the differential data of multiple NtripSources. In this case, NtripClient not only needs to specify the mount point, but also needs to send its own coordinates to NtripCaster, and NtripCaster can generate a virtual base station based on these coordinates.

NtripClient sends its own coordinates to NtripCaster, using the GGA data in NMEA. The 12th data in the above table indicates whether it is necessary to send GGA data to NtripCaster, 0 means no, 1 means yes.

4.2 Obtaining differential data

The process of NtripClient obtaining differential data is as follows:

1. Establish a TCP connection with NtripCaster;

2. Send the following command to NtripCaster

GET /RTCM23 HTTP/1.0↙

User-Agent: NTRIP GNSSInternetRadio/1.4.10↙

Accept: */*↙

Connection: close↙

Authorization: Basic VXNlcjpQd2Q=↙

RTCM23 above is the mount point name.

VXNlcjpQd2Q= is the Base64 encoding of the user name and password, which is decoded to User:Pwd. That is, the user name is User and the password is Pwd, separated by a colon.

3. NtripCaster’s reply

If the username, password, and mount point are all valid, the following data will be returned:

ICY 200 OK↙

Server: Trimble-iGate/1.0↙

Date: Wed, 18 May 2016 07:20:55 China Standard Time ↙

200 OK means everything is normal. Note: Some servers only return 200 OK without returning other data lines; some servers return 200 OK without a carriage return or line feed.

If the username, password, or mount point is invalid, the following data will be returned:

HTTP/1.0 401 Unauthorized↙

4. Send GGA data to NtripCaster

An example of GGA data is as follows

$GPGGA,230331,3115.27393,N,12133.89226,E,1,09,1.0,19.31,M,1,M,,*7F↙

Notice:

1) As mentioned above, some mount points need to send GGA data, while some mount points do not need to send GGA data;

2) The UTC time format must be hhmmss. For example, 80331 is not acceptable and must be changed to 080331.

3) The verification code must be correct.

5. After receiving the GGA data, NtripCaster will send differential data to NtripClient.

This post is from RF/Wirelessly

Latest reply

Are there any specific cases to explain?   Details Published on 2020-5-22 15:44
 

32

Posts

0

Resources
2
 

Are there any specific cases to explain?

This post is from RF/Wirelessly
 
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

快速回复 返回顶部 Return list