<< Click to Display Table of Contents >>

Navigation:  Program use > Configuration > Modules > NMEA data parser >

Introduction

The National Marine Electronics Association (NMEA) has developed a specification that defines the interface between various pieces of marine electronic equipment. An NMEA standard defines an electrical interface and data protocol for communications between marine instrumentation. (They may also have standards for other things.)

 

NMEA 0183 devices are designated as either talkers or listeners (with some devices being both), employing an asynchronous serial interface with the following parameters: Baud rate: 4800, Number of data bits: 8 (bit 7 is 0), Stop bits: 1 (or more), Parity: none, Handshake: none. NMEA 0183 allows a single talker and several listeners on one circuit.

 

GPS receiver communication is defined within this specification. Most computer programs that provide real time position information understand and expect data to be in NMEA format. This data includes the complete PVT (position, velocity, time) solution computed by the GPS receiver. The idea of NMEA is to send a line of data called a sentence that is totally self contained and independent from other sentences. There are standard sentences for each device category and there is also the ability to define proprietary sentences for use by the individual company. All of the standard sentences have a two letter prefix that defines the device that uses that sentence type. (For GPS receivers the prefix is GP.) which is followed by a three letter sequence that defines the sentence contents. In addition NMEA permits hardware manufactures to define their own proprietary sentences for whatever purpose they see fit. All proprietary sentences begin with the letter P and are followed with 3 letters that identifies the manufacturer controlling that sentence. For example a Garmin sentence would start with PGRM and Magellan would begin with PMGN.

 

Our module parse each sentence begins with a '$' and ends with CRLF (a carriage return/line feed sequence). The data is contained within this single line with data items separated by commas. The data itself is just ASCII text and may extend over multiple sentences in certain specialized instances but is normally fully contained in one variable length sentence. The data may vary in the amount of precision contained in the message. For example time might be indicated to decimal parts of a second or location may be show with 3 or even 4 digits after the decimal point. There is a provision for a checksum at the end of each sentence which may or may not be checked by the unit that reads the data. The checksum field consists of a '*' and two hex digits.

 

Our parser module splits all data to variables and this variables can be used in data export modules.