Tento článek se zabývá protokolem NMEA používaným pro komunikaci mezi GPS čipem a ostatními částmi navigačního zařízení. Dále je v tomto článku popsán software vyvinutý pro analýzu NMEA protokolu. Vytvořený software umožňuje monitorování viditelných satelitů, úrovní signálu přijímaných uživatelským zařízením od jednotlivých satelitů, monitorování komunikace protokolem NMEA a dále je možné zobrazit současnou polohu uživatele.
The identification of a user’s location in satellite navigation (positioning) systems is based on measurement of delay caused by signal propagation from several satellites to the user. The derived delay is recalculated to distance between the satellite and the user., The distance from at least four satellites must be known to determine precise position in three dimensions by processing of four unknown parameters: latitude, longitude, altitude, and time.
Commonly, the most utilized navigation system is GPS (Global Positioning System) . The development of GPS system is dated to 1960, when the study of feasibility was created. The system is financed by Pentagon (Ministry of Defense of USA) since 1973. The first satellite was launched five years later and the system was fully completed in 1995.
As shown in Fig. 1, GPS system consists of three parts: space segment, ground segment, and users segment.
Fig. 1 – Segments of GPS system
The ground segment provides controlling and monitoring functions to the GPS system. Therefore, it is composed of a control station, deployed in US military base at Colorado Springs, and several monitoring stations. The monitoring stations analyze the states, positions, and technical condition of all satellites. All obtained information is forwarded to the control station. The purpose of the control station is to evaluate this information and decide whether a control procedure (e.g. adjustment of a position of a satellite) is required.
The space segment consists of up to 32 satellites deployed on six orbits with inclination of 55°. The orbits are in distance of 20180km above earth. Thus, the turnaround time of each satellite is 11 hours an 58 minutes. This constellation ensures the visibility of at least of four satellites anywhere on the earth surface. However, roughly eight of them are usually visible from the majority of earth. The satellites, entitled NAVSTAR, are manufactured by Rockwell International. The satellites are of the weight of 860 kg, and among others all of them are equipped with very precise atomic clock, solar panels (with span of 5.2 m) or with driving system. Each satellite periodically transmits navigation information to enable localization of users .
The user’s segment is represented by common GPS equipment. The general structure of the equipment is depicted in Fig. 2. Basically, it is composed of GPS chip and host device. The GPS chip is responsible for processing of data and information received from all available satellites via RF (Radio Frequency) block. The output information is further delivered to the host part by using NMEA 0183 (National Marine Electronics Association) protocol.
Fig. 2 – User's equipment
All satellites transmit a navigation message with length of 1500 bits using bitrate 50 bps. Hence the complete transmission of one message consumes 30 seconds. One message is separated into five subframes with equal length of 300 bits. Each subframe is composed of ten words. The first and second word of each subframe is occupied by TLM (Telemetry) and HOW (HandOver Word). The TLM word carries preamble, information on telemetry and parity bits. The word HOW contains information on time-of-week, alert flag, anti-spoof flag, subframe ID, and parity bits. The other eight words are different for each subframe and contain further supplementary information such as ephemeris, almanac, states of satellites, etc. (see Fig. 3).
Fig. 3 – Format of navigation message
The navigation message is transmitted by satellites. The message is coded and modulated as follows. At first, the message is added to the C/A (Coarse/Acquisition) or P (Precise) code. The C/A code is a code with short duration. On the other hand, the P code is very long code and thus it cannot be easily broken by unauthorized users. Opposite to C/A, the P code is not available for public use. The coded message is modulated to one of carrier as depicted in Fig. 4. Two (or more) carriers are utilized to minimize the negative impact of ionosphere (see  for more information on other carriers).
Fig. 4 – Multiplexing of signals and carriers
The navigation message is processed by GPS chip and the output is delivered to the host part of navigation equipment using NMEA 0183 protocol . This protocol is designed for communication between marine electronics equipment and other devices. The serial communication between devices is performed in form of sentences in ASCII code. Transmission rate is 4800 baud. The latest version of general MNEA protocol, i.e., v4.0, contains 59 types of sentences. Several of them are used for GPS navigation only. All sentences used by GPS receivers start with prefix “GP”. The most important sentences for GPS navigation are following:
The structures and examples of all four messages are presented in Fig. 5.
Fig. 5 – Structure and examples of selected NMEA message
The software tool “GPS Communicator” for monitoring and processing of NMEA protocol is developed in C++, with GUI in Qt and embedded web browser for online displaying of user’s position. The tool supports all conventional GPS equipments which communicate using serial port. Navilock USB GPS receiver NL-302U SiRF III (see ) was used in our testing.
The interface of software contains control part for selection of communication speed and communication serial port and three parts as shown in Fig. 6: Location, Communication, and Map.
The tab “Location” shows information on status of navigation, position of user, and exact GPS time. Also the list of all visible satellites and SNRs are included. All satellites which signal is not used for determination of the position, e.g., due to low SNR, are colored in red.
Fig. 6 – Main window and Location tab
The second tab, “Communication”, shows online communication between GPS chip and host unit (see Fig. 7). All NMEA sentences are displayed and can be analyzed. The title of individual sentences is highlighted by blue color. All parameters of each sentence are shown in conventional order depending on the type of sentence.
Fig. 7 – Real time communication between GPS chip and host unit
The last tab, “Map”, depicts the position of user in google maps based on the information extracted from NMEA communication (see print screen in Fig. 8). The current location is highlighted by green arrow.
Fig. 8 – Depicting of users position in map
The above described tool is available for free at .
This paper describes an analysis of communication between GPS chip and host unit. This communication exploits NMEA protocol. To analyze NMEA the software “GPS Communicator” is developed. This tool enables to display all information contained in sentences of NMEA protocol. The output of protocol analysis can be displayed in form of map and parameters or in form of list of NMEA sentences. The tool can be used in cooperation with any conventional GPS module.
This work has been supported by the grant FRVŠ No. 939/2010/F1a and MSM6840770014.
 GPS System Description, Global Positioning System Precise Positioning Service Performance Standard, 2007.
 NAVSTAR Global Positioning System: Interface specification, Navstar GPS Space Segment/Navigation User Interfaces, Revision D, Dec. 2004.
 Rocken, C. - Johnson, J. M. - Braun, J.J. - Kawawa, H. - Hatanaka, Y. - Imakiire, T., Improving GPS surveying with modeled ionospheric corrections, Geophysical research letters, Vol. 27, No. 23, pp. 3821-3824, 2000, doi:10.1029/2000GL012049.
 NMEA 0183 Standard, available at: http://www.nmea.org/content/nmea_standards/nmea_083_v_400.asp.
 Technical specification of Navilock NL-302U, available at: http://navilock.de/produkte/gruppen/3/Kabel_Empfaenger/61422_NL-302U_Sirf_3.html?show=spec.
 Software GPS Communicator, available at: http://matlab.feld.cvut.cz/download.php?sekce=14.