NMEA-0183
Van Wikipedia
Om apparatuur aan boord van schepen gegevens te laten uitwisselen is het NMEA-0183 protocol ontwikkeld. Dit protocol is geschikt om via seriële verbindingen (met name RS-232 lijnen) informatie te versturen. Volgens het officiële protocol gaat dit met 4800 baud, maar vaak kan een hogere baudrate gekozen worden als alle apparatuur dit ondersteunt.
[bewerk] Het Protocol
Het precieze protocol is beschermd materiaal en kan via het National Marine Electronics Association (NMEA) verkregen worden. Er zijn talloze beschrijvingen van sentences te vinden op het Internet.
Het protocol bestaat uit losse berichtjes (sentences) waarin bepaalde gegevens gegroepeerd zijn. De sentences bestaan in principe alleen uit leesbare ASCII characters en de 'Carriage Return' en 'Linefeed' characters.
Iedere sentence bevat een vast aantal componenten.
- Eerst komt een dollarteken ($)
- Daarna twee tekens met de talker id. Dit is een afkorting voor de apparatuur die de sentence verstuurd (bijvoorbeeld de GPS stuurt berichtjes met de talker id GP).
- Dan volgt de sentence identifier van drie letters. Deze geeft aan wat de informatie in de sentence is en bepaald daarmee ook de layout van de rest van de sentence. Een voorbeeld van een sentence identifier is HDT voor een bericht dat de koers van een schip verstuurt.
- Het deel dat nu volgt is van variable lengte en kan getallen en tekst bevatten. De inhoud wordt bepaald door de sentence identifier en het NMEA-0183 protocol. Sommige velden in een sentence zijn niet verplicht. Deze kunnen leeg verzonden worden. Verschillende velden worden met komma's gescheiden.
- Aan het einde van het bericht mag een checksum toegevoegd worden. Als dit gedaan wordt, dan komt eerst een asterisk (*) en volgt daarna de hexadecimale weergave van de xor van alle tekens tussen de '$' en de '*'. De checksum is twee tekens lang. Voorbeeld: $TTSSS,veld,1,veld,2,,*2A.
- Als laatste volgen de tekens 'Carriage Return' en 'Linefeed'.