Deze gegevens zijn afkomstig uit:
The NMEA FAQ
Version 6.1 Sept. 15, 1997
(NMEA URL updated)
Author: Peter Bennett bennett@triumf.ca
1. Wat is NMEA?
De National Marine Electronics Association houdt zich bezig met het bevorderen van kennis en ontwikkeling bij de maritieme electronica industrie en de markt die ze bedient. Het is een niet op winst gericht verband bestaande uit fabrikanten, distributeurs, dealers, opleidingsinstituten en anderen die geinteresseerd zijn in maritieme electronische randapparatuur.
1.1 Wat is een NMEA standaard?
Voor ons doel kan het omschreven worden als een dataprotocol voor een electrische interface ter regeling van de communicatie tussen maritieme instrumenten.
1.2 NMEA adres
P.O. Box 3435
New Bern NC, 28564-3435
U.S.A.
Phone: 919-638-2626
Fax: 919-638-4885
email: nmea@coastalnet.com
web pagina: http://www4.coastalnet.com/nmea/default.html
2. Electrische interface
Deze standaard geeft aan dat er een enkele "zender" op een circuit is aangesloten, en verschillende "ontvangers". De aanbevolen verbinding bestaat uit een afgeschermde 'twisted pair' kabel, met de mantel alleen geaard op de zender. De standaard schrijft niet het gebruik van bepaalde connectoren voor.
3. NMEA-0180 and NMEA-0182
NMEA-0180 en 0182 zijn erg beperkt en regelen alleen de communicatie tussen een Loran-C ontvanger en een stuurautomaat.
4. NMEA-0183 - Algemeen formaat
Onder de NMEA-0183 standaard bestaan alle gebruikte tekens uit printbare ASCII tekst (plus carriage return en linefeed). NMEA-0183 wordt verzonden op 4800 baud. De data worden verzonden in de vorm van "zinnen". Elke zin begint met een "$", een twee letterige "zender ID", een drie letterige "zins ID", gevolgd door een aantal data velden, gescheiden door komma's, en afgesloten door een optionele checksum, alsmede een carriage return annex linefeed. Een zin kan tot 82 tekens bevatten, inclusief de "$" en de CR/LF. Als de data voor een veld niet beschikbaar zijn, wordt het veld gewoon weggelaten, maar de komma's die hem begrenzen worden wel verzonden, echter zonder iets daar tussen. Omdat sommige velden een variabele omvang hebben, of mogen worden weggelaten (zoals hierboven vermeld staat), moet de ontvanger de gewenste data velden localiseren door de komma's te tellen, en niet via de positie van de letter in de zin.
De standaard staat fabrikanten toe om eigen zinsformaten te definiëren. Deze zinnen beginnen met "$P", dan een 3 letterige fabrikanten ID, gevolgd door welke data de fabrikant maar wil, volgens de algemene regels voor de standaard zinnen. Enkele bekende zender ID's zijn:
GP Global Positioning System ontvanger
LC Loran-C ontvanger
OM Omega Navigatie ontvanger
II Integrated Instrumentation (b.v. een AutoHelm Seatalk systeem)
5. RS-232 verbindingen
Hoewel dit niet echt een onderdeel van NMEA is, willen veel mensen toch een GPS verbinden aan een computer, zodat ze wel iets moeten weten over de RS-232 seriële poorten op een computer. De RS-232 standaard definieert twee klassen van apparaten die kunnen communiceren middels RS-232 seriële data: Data Terminal Equipment (DTE) en Data Communication Equipment (DCE). Computers en terminals worden beschouwd als DTE, terwijl modems gezien worden als DCE. De standaard omschrijft de pinbezetting voor DTE en DCE zodanig, dat een 1-op-1 kabel (pin 2 aan pin 2, 3 aan 3, enzovoorts) gebruikt kan worden tussen DTE en DCE. Om twee DTE's te verbinden, hebt u een nulmodem kabel nodig, die de twee uiteinden omwisselt (b.v. pin 2 aan 3 en 3 aan 2). Helaas is er soms onenigheid of een bepaald apparaat nu DTE of DCE is. Vandaar mijn standaard RS-232 lapmiddel: als het niet werkt, verwissel dan pin 2 en 3!
De standaard RS-232 connector is een 25 pins DB-25, hoewel veel PC's (en sommige andere apparaten) een 9 pins DE-9 gebruiken (vaak ten onrechte DB-9 genoemd).
Seriële Poort Verbindingen
| Computer (DTE) | Modem (DCE) | Signaal richting | |
| DB-25 | DE-9 | DB-25 | |
| 2 | 3 | Tx Data -> | 2 |
| 3 | 2 | Rx Data<- | 3 |
| 4 | 7 | Request to send -> | 4 |
| 5 | 8 | Clear to send <- | 5 |
| 6 | 6 | Data Set Ready<- | 6 |
| 7 | 5 | Signal Ground | 7 |
| 8 | 1 | Data Carrier Detect <- | 8 |
| 20 | 4 | Data Terminal Ready -> | 20 |
| 22 | 9 | Ring Indicator <- | 22 |
Voor de NMEA-0183 interface hebben we alleen te maken met Rx Data, Aarde (en mogelijk Tx Data, als we de computer willen laten praten tegen de GPS). NMEA-0183 data worden verzonden op 4800 baud.
6. Troubleshooting
Ga eerst na of de zender (gewoonlijk de GPS of Loran) NMEA-0183 kan zenden, en stel vast welke zinnen hij zend. Ga ook na of de ontvanger NMEA-0183 begrijpt en dat hij de zinnen begrijpt die de zender stuurt. In sommige gevallen kan dezelfde info in twee of meer verschillende zinnen worden verzonden. Als de zender en de ontvanger niet allebei dezelfde zinnen gebruiken, zal er geen communicatie zijn. De mogelijkheid bestaat dat u de zinnen van de zender zo kunt veranderen dat ze door de ontvanger begrepen kunnen worden.
Ga vervolgens na of de zender inderdaad ingesteld is om NMEA-0183 data te zenden. Sommige zenders hebben voorzieningen om NMEA-0180 of 0182 te zenden, of een eigensoortig formaat.
Een computer met een standaard terminal programma (Telix, Procomm, Windows Terminal, enz.) ingesteld op 4800 baud, kan worden gebruikt om de NMEA data te controleren, en vast te stellen welke zinnen worden gebruikt en of de data in het juiste formaat staat.
Ga na of de bedrading correct is - dat de zender data uitvoer verbonden is met de ontvanger data invoer, en dat een signaal aarde draad verbonden is tussen de beide apparaten.
Als u meerdere ontvangers verbonden hebt aan een enkele zender, overbelast u misschien de zender poort. Probeer telkens 1 ontvanger per keer te verbinden.
Op een NMEA-0183 circuit kan er slechts *één* zender zijn! Als u meer dan één zender wilt gebruiken, en één van de zenders kan ook als ontvanger optreden, kunt u misschien de zaak 'in serie' schakelen, zodat een alleen-zender uitvoer verbonden is aan een ontvanger/zender invoer, en de ontvanger/zender uitvoer verbonden is met andere ontvangers. Echter kunnen sommige ontvanger/zenders de data omvormen, of alleen die data doorsluizen die ze zelf begrijpen. (Het Autohelm Seatalk systeem doet dat, en claimt de data voor zichzelf door alle uitvoer zinnen te beginnen met "$II")
In het bijzonder met oudere apparatuur kan het gebeuren dat het apparaat zegt overeen te komen met NMEA-0183, maar in feite een fout heeft in het data formaat. (Mijn Kings 8001 Loran-C zegt een APB zin te zenden, maar zet een aantal van de velden in de verkeerde volgorde, zodat mijn stuurautomaat hem niet begrijpt.) Dit soort problemen kan worden vastgesteld door de NMEA-0183 data op een computer te bekijken.
7. About the author
This FAQ was written by: Peter Bennett bennett@triumf.ca
I have an FTP site containing this file, a GPS FAQ, and other NMEA information files and PC programs for capturing and displaying NMEA data, and related things:
ftp://sundae.triumf.ca/pub/peter/index.html
This site is mirrored in Germany at:
ftp://ftp-i2.informatik.rwth-aachen.de/pub/arnd/GPS/peter/index.html
7.1 Acknowlegments
I would like to thank the following for their
contributions or corrections to this document:
Tom Clark, clark@tomcat.gsfc.nasa.gov
Bob Shearer, t.shearer@unixa.nerc-wallingford.ac.uk
David Steckler, davidst@nobeltec.com
Karl Olmstead, olmstead@ridgecrest.ca.us
Dave Wells, KD6TO, davew@cruzio.com
Mike Morrow, caveman@castles.com