Übersetzungen dieser Seite:

Hintergrundwissen

Protokolle

NMEA 0183

NMEA 0183 ist ein verbreitetes Protokoll für Navigationsgeräte auf Schiffen.
NMEA 0183 ist eine serielle Schnittstelle und kein Bussystem im engeren Sinne. Pro Leitung kann es nur einen Sender, aber durchaus mehrere Empfänger geben.
Elektrisch ist NMEA 0183 eine RS422, die kompatibel zu einer RS232 ist. D.h. eine Stromschnittstelle. Es werden dort 2 Leitungen benötigt. Data+ und Data-. Fliest der Strom von + nach - ist das eine logische 0, - nach + bedeutet logische 1.
Standardparameter sind 4800Baud, 8 Datenbits, keine Parität, 1 Stopbit. (8N1)
Es gibt mittlerweile aber durchaus Geräte die auch höhere Datenraten vertragen.
Die Daten, die der Sender versendet sind reine Textdaten und auch vom Menschen leicht lesbar.
Jedes Datagramm hat maximal 80 Zeichen und beginnt mit $ oder !. Danach folgt die Geräte-ID (2 Zeichen) und dann die Daten-ID (3 Zeichen). Jetzt folgen mit Komma getrennt die für den Datensatz benötigten Daten.
Optional kann am Ende noch eine CRC Prüfsumme getrennt mit * angehängt werden.
Hier mal ein Beispielsatz:

$GPGGA,171537,3350.975,N,11823.991,W,2,07,1.1,-25.8,M,,M,1.8,,D*17

Hier wirds ausführlicher beschrieben: Wikipedia NMEA 0183

SeaTalk

SeaTalk ist ein propritäres Protokoll von Raymarine (http://www.raymarine.com/)
SeaTalk ist ein Bussystem mit mehreren Sendern und Empfängern an der selben Leitung. Dabei wird aber ebenfalls auf ein serielles Protokoll gesetzt. Standardparameter sind 4800Baud, 9 Datenbits, keine Parität, 1 Stopbit. (9N1)
das 9'te Bit gibt an, ob das Byte ein Commandbyte ist oder nicht.
Elektrisch gibt es 3 Leitungen, +12V, GND, und Data… eine 1 wird auf Data mit +12V dargestellt, eine 0 mit GND Potential.
Mehrere Sender können gleichzeitig auf den Bus senden. D.h. es gibt keinen Busmaster. Stattdessen muss der Sender vor dem Senden schauen, ob der Bus frei ist. Wenn ja darf er senden, muss dabei aber die Leitung rüfen, um eine evt. Kollision zu erkennen. Wenn diese erkannt worden ist, wird das Senden abgebrochen und eine Pause eingelegt. Danach beginnt der Prozeß wieder von vorne.
Die Daten (auch Datagramme genannt) werden binär versendet und sind für den Manschen somit nciht einfach lesbar.
1 Byte: Kommandotyp (Für dieses Byte wird das 9'te Bit gesetzt)
2 Byte: Attribut, das untere Nibble enthält die Datengröße (Gesamtgröße ist n+3 Bytes), das obere Nibble entweder eine 0 oder es ist Teil des Datenwertes.
3 Byte: 1. Datenbyte
4…18 Bytes: optionale Daten…

Die gesendeten Daten sind proritär, es gibt im Netz aber schon diverse Geräte, deren Daten entschlüsselt wurden.

Thomas Knauf, SeaTalk

NMEA 2000

NMEA 2000 soll der Nachfolger von NMEA 0183 sein. Elektrisch setzt es auf dem in der Automobilindustrie weit verbreiteten CAN Bus.
CANBUS ist wie der Name bereits vermuten läßt ein Bussystem.
Datenrate ist üblicherweise 250kBit.
Da das System bereits in der Automobilindustrie weit verbreitet ist, gibt es mittlerweile jede Menge Hardware für diesen Bus.

Wikipedia NMEA 2000

SeaTalk NG

SeaTalk NG ist die Antwort von RayMarine auf NMEA 2000. Elektrisch gesehen sind die beiden identisch. Auch SeaTalk NG setzt auf den CANBUS. Somit können beide Protokolle auf dem gleichen Bus betrieben werden. Auf Datenebene ist leider alles propritär und nicht öffentlich.

Raymarine SeaTalk NG

NMEA Onenet

Nicht unerwähnt sollte das NMEA Onenet bleiben. NMEA Onenet ist quasi das NMEA2000 Protokoll auf einem normalen IP-Netzwerk. Es soll zwar nicht das NMEA 2000 Netz ablösen, jedoch ermöglich NMEA Onenet Nachrichten über ein bereits vorhandenes Rechnernetzwerk zu schleusen.
Mal schauen, wie sich das entwickelt.
NMEA Onenet

SeaTalkHS

Auch Raymarine setzt nun auf eine wahrscheinlich IP basierte Lösung. Diese heißt SeaTalk HS. Näheres ist mir aber noch nicht bekannt.
Raymarine SeaTalkHS

Melden Sie sich an, um einen Kommentar zu erstellen.
arduino/oseam/knowhow.txt · Zuletzt geändert: 2018/11/04 10:51 von 127.0.0.1
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0