Sie sind auf Seite 1von 2

ITESM Campus Qro Paulo Sergio Prez Mendoza 885973 Diseo de Sistemas Digitales Rick L.

Swenson 19 de agosto de 2007

The NMEA 0183 Protocol


The NMEA (National Marine Electronic Association) 0183 Protocol is the way used by the GPS units to communicate with other devices. Decoding the NMEA 0183 protocol is the key to integrate GPS data with a project using the C language. The NMEA protocol has the next serial configuration; it has a rate of 4800bps, 8 data bits, no parity bit and 1 stop bit. The protocol has the next rules: All the messages are in ASCII characters. Each message must start with the dollar sign character. The next five characters identify the type of message. All data fields that follow are separated by commas. The next character that follows the last data field character is an asterisk. The asterisk is followed by a two digit checksum representing a hex number. The checksum is the XOR of all characters between the $ and the *. The messages are finished with <CR><LF>. Now that we know some important things about the NMEA 0183 protocol we can talk about an option of using it in our project. The GPS normally has three ways of been connected with other hardware the most common are: using serial port, USB port or Bluetooth. We have to make our PC to take these connections as COM ports, as we are using serial port we have already done this. The most difficult part of reading the NMEA data is to read it in our application, but we can get a multithreaded 3rd party control to help us in this part. GPS manufacturers choose which parts of the NMEA protocol they support. So to manage our project we have to decide which sentences are we gonna used as our primary sources of position, speed, course, navigation, and satellite data. Then we have to identify other sentences which contain pieces of this information and designate them as secondary sources. This is a list of the most useful sentences: $GPAAM - Waypoint Arrival Alarm $GPBOD - Bearing, Origin to Destination $GPBWW - Bearing, Waypoint to Waypoint $GPGGA - Global Positioning System Fix Data $GPGLL - Geographic Position, Latitude/Longitude $GPGSA - GPS DOP and Active Satellites $GPGST - GPS Pseudorange Noise Statistics

$GPGSV - GPS Satellites in View $GPHDG - Heading, Deviation & Variation $GPHDT - Heading, True $GPRMB - Recommended Minimum Navigation Information $GPRMC - Recommended Minimum Specific GPS/TRANSIT Data $GPRTE - Routes $GPVTG - Track Made Good and Ground Speed $GPWCV - Waypoint Closure Velocity $GPWNC - Distance, Waypoint to Waypoint $GPWPL - Waypoint Location $GPXTE - Cross-Track Error, Measured $GPXTR - Cross-Track Error, Dead Reckoning $GPZDA - UTC Date/Time and Local Time Zone Offset $GPZFO - UTC and Time from Origin Waypoint $GPZTG - UTC and Time to Destination Waypoint

The information of all the sentences can be founded in the next page: http://home.mira.net/~gnb/gps/nmea.html but I think the most useful for the project will be the $GPRMC it reports the latitude and longitude and also the speed and it will help us in our project also it reports the direction and some other useful things. Now that we have the information is just matter of parsing the information and then we just can convert the data into the proper units. References Wikipedia. NMEA 0183. Internet. http://en.wikipedia.org/wiki/NMEA. Page visited: August 19th, 2007. Scientific Component. NMEA 0183 and GPS: Decoding the NMEA 0183 standard in your GPS Software Project. Internet. http://www.scientificcomponent.com/nmea0183.htm. Page visited: August 19th, 2007. Glenn Baddeley. Glenn Baddeley-GPS-NMEA sentence information. http://home.mira.net/~gnb/gps/nmea.html. Page visited: August 19th, 2007.

Das könnte Ihnen auch gefallen