NMEA 2000 – CAN-Bus für die hohe See

Okt 29, 2017 | CAN Bus, Feldbus

Weitere Posts in dieser Kategorie:

 

 

Ausgelöst durch eine Diskussion auf Facebook, habe ich diesen Artikel geschrieben. NMEA2000 wird auch als N2K, NMEA2K, CAN-Bus oder eine Eigenkreation, zB. SimNet und Seatalk bezeichnet.

 

NMEA2000 – Das Datennetz für die hohe See

 

NMEA2000 ist ein Datenprotokoll, das auf dem SAE J1939 Protokoll aufsetzt. Die nordamerikanische Zertifizierungsstelle SAE (sae.org) ist uns allen vom Motorenöl bekannt. SAE 10W40 und SAE 5W30 sind Bezeichnungen, die den meisten Autobesitzern geläufig sind.

 

Das Datenprotokoll J1939 wurde speziell für Nutzfahrzeuge entwickelt. Alle LKW soweit es den Antriebsstrang betrifft und nahezu jede Maschine, die einen mobilen Diesel einsetzt, arbeiten inzwischen mit diesem Protokoll. Aber auch viele andere Maschinen in der Landwirtschaft, auf dem Bau oder bei uns in der Marine.

 

NMEA2000 erweitert SAE J1939 um marinespezifische Inhalte. Dinge wie Ruderlage oder Wassertiefe zu übertragen sind an Land nicht notwendig, so wurden für den marinen Einsatzzweck weitere sogenannte PGN‘s (Parameter Group Number) definiert. Aber auch prinzipielle Erweiterungen wurden speziell für den Marinesektor entwickelt, so zum Beispiel das Fast-Packet-Protokoll, das für eine schnellere Übertragung der GPS-Daten genutzt wird. Schließlich soll die gegenwärtige Position möglichst zeitnah im System bekannt gemacht werden.

 

SAE J1939 (und damit auch NMEA2000) ist ein Protokoll, das den von Bosch in den 70er Jahren entwickelten CAN-Bus nutzt. Der CAN-Bus wurde in der KFZ-Industrie notwendig, weil immer mehr elektrische Funktionen Einzug in die Fahrzeugtechnik hielten und die Kabelbäume zu umfangreich und schlicht zu schwer und zu teuer wurden. Man suchte nach einer Möglichkeit, Daten auf möglichst wenigen Leitungen zu übertragen. Aus reiner Kostensicht ideal wäre natürlich nur eine einzige Leitung, aus Gründen der Übertragungssicherheit entschied man sich aber für eine differenzielle Übertragung auf zwei Leitungen. Dabei können Störungen sehr effektiv unterdrückt werden, die Daten können trotz teilweise massiven Störungen von den Empfängern verstanden werden.

 

gestörter CAN-Bus, differentielle ÜbertragungDie differenzielle Datenübertragung wurde bereits sehr erfolgreich in der analogen Studiotechnik sowie bei verschiedenen Computerschnittstellen genutzt. Dabei überträgt man im Falle von CAN nicht nur das Nutzsignal auf der einen Leitung, sondern ein entgegengesetzt polarisiertes Signal auf der anderen. Aus der Differenz dieser beiden Signale gewinnt man das Nutzsignal. Eine Störung wirkt auf die beiden Leitungen nahezu gleich, in der Differenz jedoch verschwindet die Störung fast vollständig. Die beiden Leitungen heißen CAN_High und CAN_Low. Von einem gemeinsamen Ruhepegel von 2,5V, der eine logische „1“ symbolisiert, bewegt sich CAN_High um 1 Volt nach oben, also auf 3,5V, während CAN_L um 1V, also auf 1,5V sinkt. Die Spannungsdifferenz zwischen den Leitungen beträgt damit bei einer logischen „1“ null Volt, im Falle einer logischen „0“ beträgt die Spannungsdifferenz zwei Volt. In einem CAN-Segment sind die Teilnehmer im Schaltbild parallel geschaltet. Es kann jeweils nur einer Senden, die anderen müssen mit Aussendungen warten bis der Bus frei ist. Es kann passieren, dass mehrere Teilnehmer gleichzeitig beginnen zu senden. Über eine „Arbitrierung“ genannte Logik, erhält derjenige exklusiven Zugang zum Bus, der den niedrigsten sogenannten Identifier (ID) aussendet. Es wird der CAN 2.0 B – Standard genutzt, bei dem 29 bit für die ID verwendet werden. In der ID, die man wie den Betreff einer E-Mail verstehen kann, wird bereits mitgeteilt, welche Daten im anschließend übertragenen Datenpaket enthalten sein werden. Dieses Datenpaket wiederum kann in einer einzigen Nachricht bis zu 64 bit enthalten. Soll mehr Dateninhalt übertragen werden, wie das zum Beispiel bei den Positionsdaten notwendig ist, dann müssen diese Daten auf mehrere Nachrichten aufgeteilt werden. Nach dem Dateninhalt folgt eine Prüfsumme, auch CRC genannt. Die Empfänger vergleichen während der Übertragung der CRC mit ihrer selbst berechneten Prüfsumme und können am Ende des letzten Bits feststellen, ob sie die Daten korrekt oder falsch empfangen haben. Verschiedene Fehlermechanismen ermöglichen es nun den Empfängern, fehlerhaft verstandene Nachrichten für den gesamten Bus ungültig zu machen. Sämtliche Teilnehmer im Bus werden die empfangenen Daten daraufhin verwerfen und der Absender wird versuchen, sein Datentelegramm erneut abzusetzen. Die Daten kommen dadurch zwar vielleicht etwas später aber dafür korrekt an. Die Datenrate beträgt bei NMEA2000 standardmäßig 250 kBit/s, ein Bit hat dabei in etwa eine Breite von 4 Mikrosekunden.

 

Um diese Dinge braucht sich der Skipper (glücklicherweise) nicht zu kümmern. Das Protokoll ist durch die Standardisierung festgelegt. NMEA2000-fähige Endgeräte werden die Dateninhalte empfangen und verstehen können. Beeinflussen kann der Eigner aber, wie sein Bus aufgebaut wird. Denn trotz der extremen Robustheit des CAN kann es zu massiven Problemen kommen, wenn der Bus falsch aufgebaut wurde. Die hohe Störsicherheit ist in einem solchen Fall nicht mehr gegeben. Die Probleme treten natürlich nicht im Hafen auf, sondern dann, wenn man sich auf die Technik verlassen muss. Es ist also unter Umständen auch lebenswichtig, einen korrekt aufgebauten NMEA2000-Bus zu haben. Dabei sind einige Dinge wichtig, die nun skizziert werden sollen.

 

 

 

1. Linienförmige Topologie

 

linienförmige Topologie in einem NMEA2000-NetzwerkNMEA2000 wird in der Regel mit T-Stücken und Standardkabeln aufgebaut. Dabei formt sich ein Hauptbus (trunk) und davon abgehende Stichleitungen (drop). Alle Teilnehmer sind am Ende parallel verschaltet, sie sind über die beiden Leitungen CAN_High und CAN_Low verbunden. Soweit ist das nicht anders als parallel verschaltete Lampen. Die Schwierigkeit beginnt, weil wir die mit der Datenrate einhergehende Frequenz von 250 kHz übertragen wollen.
Die Länge einer einzelnen Stichleitung sowie die Summe aller Stichleitungen sind durch die Physik begrenzt. Generell ist es besser, die Hauptleitung zu verlängern als lange Stichleitungen zu setzen. Leider ist man durch die T-Stücke versucht, genau das Gegenteil zu machen. Man baut sich dabei eine Art T-Stück-Batterie und legt von dort Stichleitungen zu den einzelnen Geräten. Oder man kauft sich einen 8-fach oder 16-fach-Verteiler, der nichts anderes ist. Das mag einfach und übersichtlich sein, aber man bewegt sich relativ schnell an die zulässige Grenze der Summe aller Stichleitungslängen. Besser ist es, die Stichleitungen so kurz wie möglich zu halten und die Hauptleitung von Gerät zu Gerät zu ziehen. Vielleicht kann das benötigte T-Stück direkt auf den Anschluss des Gerätes montiert werden und es braucht gar keine zusätzliche Dropline. Ist das nicht möglich, sollte man versuchen, mit möglichst kurzen Stichleitungen auszukommen. Es ist meistens für die Signalqualität günstiger, die Hauptleitung zu einem Teilnehmer hin und wieder zurück zu ziehen, als eine Stichleitung einzubauen.

 

250 kBit / s

Maximal

Trunk

250 Meter

Drop

10 Meter

Summe aller Droplines

50 Meter

 

Da die Stichleitungen keinen Abschlusswiderstand haben dürfen, entsteht dort jeweils eine Reflexion, die im Kabel zurück läuft und sich an unserer T-Stück-Batterie oder am 8-fach-Verteiler zu den Reflexionen der anderen Teilnehmer addieren würde. Ein verteilter Aufbau hingegen verteilt auch die einzelnen Reflexionen, die sich dann nicht überlagern, sondern zeitlich nacheinander auftreten und in Summe viel kleinere Störungen verursachen.

 

 

 

2. Abschlusswiderstände (Terminierung)

 

Wie beschrieben bekommen die Stichleitungen keinen Abschlusswiderstand. Im gesamten Bus dürfen insgesamt nur zwei Abschlusswiderstände eingebaut werden. Sie gehören an den Anfang und das Ende der Trunkline. Diese Abschlusswiderstände haben 120 Ohm und schließen somit die Leitungsimpedanz des Kabels perfekt ab.

 

Wenn Sie mit einem Multimeter im stromlosen NMEA2000-Bus zwischen CAN_High und CAN_Low den Widerstand messen, dann sollten Sie in etwa 60 Ohm ablesen – zwei parallel geschaltete 120-Ohm-Abschlusswiderstände plus der Leitungswiderstand, der meist vernachlässigt werden kann.
120 Ohm bedeutet, dass ein Widerstand fehlt. 40 Ohm bedeutet, dass ein Widerstand zu viel eingebaut wurde. Beide abweichenden Fälle bedeuten nicht zwangsläufig, dass der Bus nicht läuft. Er ist aber nicht korrekt aufgebaut und die Störsicherheit sinkt.

 

Manche Hersteller verbauen Abschlusswiderstände fest in bestimmte Komponenten. Das muss natürlich entsprechend beachtet werden und beeinflusst unter Umständen die gesamte Topologie. Es sind auch sogenannte In-Line-Terminatoren erhältlich. Die kann man verwenden, wenn man vor dem letzten Gerät das T-Stück einsparen will. Zu vermeiden ist nach einem solchen In-Line-Abschlusswiderstand noch ein Kabel einzufügen, das nichts anderes als eine Stichleitung wäre.

 

 

 

3. Verwendete Kabel und Steckverbinder

 

Bei den SimNet und Seatalk genannten Netzwerken werden nun leider spezielle Stecker verwendet, die nicht kompatibel zum etablierten M12-Steckverbinder im CAN-Bereich sind. Damit ist man meistens auch auf die entsprechenden Kabel angewiesen, die vor allem in der Hinsicht auf Schirmung nicht unbedingt eine hochwertige Qualität mitbringen.
Besser sind Komponenten mit M12-Anschluss, dort können genormte Standard-CAN-Kabel verwendet werden und es sind auch hochwertige Stecker verfügbar. Wer die Selbstmontage scheut, kann gute, nicht zu teure und fertig konfektionierte Kabel aus dem Industriebereich kaufen, die alle Spezifikationen hervorragend erfüllen. Leider sind nicht alle als CAN-Kabel ausgegebene Kabel auch gute Kabel. Manche Hersteller nehmen es mit der Impedanz nicht so genau. Andere verdrillen die Adernpaare nicht einzeln sondern alles gemeinsam. Dadurch wird das Kabel sehr gleichmäßig rund, aber es kommt leicht zu Störeinstreuungen von den Spannungsadern auf die CAN-Adern.

 

Achten sollte man auf diese Kabel-Merkmale:

 

  • Zulassung für CAN, CANopen, SAE J1939 oder DeviceNet

  • Impedanz = 120 Ohm, schauen Sie bitte ins Datenblatt des Kabels (wenn es kein Datenblatt gibt, ist es kein CAN-Kabel)

  • einzeln verdrillte Adernpaare für CAN und spannungsführende Leitungen

  • Schirmung mit Beilauflitze

 

 

 

Die Standard-M12-Steckerbelegung ist wie folgt: 

 

Pin

Bezeichnung

Farbe

Polbild Buchse

Polbild Stecker

1

CAN_Shield

Schirm (Beilauflitze)

NMEA2000-Buchsenbelegung

2

CAN_V+

rot

3

CAN_V-

schwarz

4

CAN_H

weiß

5

CAN_L

blau

 

 

 

Die Industrie-Netzwerk-Norm DeviceNet stellt an die Kabel sehr konkrete Forderungen. Das von dieser Organisation definierte „Thin-Cable“ erfüllt die höchsten Qualitätsstandards und sollte hervorragend für NMEA2000 geeignet sein. Es gibt von DeviceNet auch noch ein „Thick-Cable“, das ist für unsere Belange an Bord aber mechanisch zu dick. Der Anschluss eines M-12-Steckers ist dort unmöglich.

 

 

 

4. Schirmung

 

Der Schirm sollte an der Einspeisestelle für die Spannung einmal mit CAN_V- verbunden werden. In jedem M12-Stecker wird er über Pin 1 weiter geführt. Verwenden Sie ein CAN-Kabel mit einer Beilauflitze, dann lässt sich diese Verbindung ohne große Probleme herstellen. Weitere Verbindungen des Kabelschirms mit der Geräte-Masse oder CAN_V- im Busverlauf sind zu vermeiden. Das würde Schirmströme verursachen, die wiederum Einstreuungen in den Datenbus zur Folge hätten.

 

 

 

5. Spannungsabfall auf der Leitung

 

Die Geräte werden zum großen Teil über die NMEA2000-Kabel mit Strom versorgt. Dabei entstehen Spannungsabfälle über dem Leitungswiderstand. Diese sollten nicht zu groß werden, denn die Geräte benötigen jeweils eine Mindestspannung um korrekt arbeiten zu können. Da die Stromaufnahme im Betrieb schwankt, ist es nicht unbedingt leicht zu ermitteln, wie viel Spannung tatsächlich am Gerät ankommt. Ein Multimeter wird zu langsam messen um hier eine Aussage treffen zu können.
Dieser Effekt lässt nicht nur die positive Betriebsspannung am Gerät absinken, es hebt auch das Potential der negativen Betriebsspannung über den Widerstand der Leitung an. Das Potential der Gerätemasse wird so gegenüber dem Einspeisepunkt angehoben, man nennt dieses Problem daher auch GroundShift. Da sich aber die Mittenspannung der CAN-Transceiver von 2,5V auf die Gerätemasse bezieht, werden Datentelegramme mit unterschiedlichen Potentialen auf dem Bus übertragen. In bestimmten Grenzen ist das zulässig und unproblematisch. Man darf diese Sache aber gerade bei sporadischen Fehlern nicht ganz außer acht lassen. Messen lässt sich das nur mit Speicheroszilloskopen oder Spezialmessgeräten. Das Thema ist aufgrund der 12V-Spannungsversorgung an Bord der meisten Yachten und den daraus folgenden höheren Strömen kritischer als in anderen Netzwerken, in denen meistens mit 24V gearbeitet wird.

 

 

 

6. Messgeräte

 

Damit sind wir bei den Messgeräten. Ein NMEA2000-Bus lässt sich natürlich vermessen. Ohne das man misst, weiß man bei digitalen Bussen nicht, wie groß die Störreserve und damit die Übertragungssicherheit ist. Dafür sind Analysen auf der physikalischen und damit analogen Ebene nötig. Es empfiehlt sich also zumindest für Firmen, die häufig mit NMEA-Netzwerken zu tun haben, sich ein adäquates Messgerät zuzulegen. Ich spreche dabei nicht von den NMEA zu USB-Adaptern, die den Datenverkehr mitschneiden können und lediglich für die Protokollebene nutzbar sind. Damit wird man nur feststellen können, dass Datenverkehr vorhanden ist oder eben nicht. Vielleicht kann man noch feststellen, ob ein bestimmtes Gerät tatsächlich keine Daten liefert, weil während der Beobachtung keine entsprechenden Daten eintreffen. An dieser Stelle ist aber auf der Protokollebene Schluss mit der Analyse, denn eine Aussage über die Störsicherheit kann so nicht getroffen werden.
Seit einigen Jahren gibt es das Maretron N2K-Meter auch auf dem deutschen Markt. Mit ihm lassen sich grundlegende physikalische Eigenschaften bestimmen. Es kann Messungen auf dem Gesamtbus aber nicht für einzelne Geräte machen. Lediglich ein Fehlerzähler ist teilnehmerbezogen vorhanden (sinnlos). Leider sind die Einstellmöglichkeiten sehr beschränkt aber eine allgemeine Aussage über die Signalqualität ist möglich. Die Bedienung ist durch mehrere Ebenen unter Umständen verwirrend. Das Handbuch schweigt sich über das Messverfahren aus. Trotzdem kostet das Gerät bereits um die 1000€. Für eine echte Bewertung ist das Gerät eher nicht zu gebrauchen, zur Fehlersuche dürfte es nur für einzelne Szenarien sinnvoll sein.

Wesentlich umfangreichere Analysen, sowohl auf der physikalischen Schicht als auch auf Protokollebene, lassen sich mit dem abgebildeten GEMAC CANtouch realisieren. Dieses akkubetriebene Messgerät erlaubt auch das Abspeichern und Dokumentieren von Messungen, so das eine Endabnahme und Dokumentation nach einer Neu-Installation oder einer Reparatur gemeinsam mit dem Eigner möglich ist. Später lassen sich Messungen vergleichen, so sieht man schnell, ob und um wie viel der Bus gealtert ist und ob sich eventuell eine vorbeugende Wartung (meistens mit dem Austausch von Kabeln verbunden) empfiehlt. Neben dieser umfassenden Analyse auf der physikalischen Schicht mit Oszillogrammanzeige und Qualitätswertmessung sowie einer Messung für die Groundshift-Problematik sind hier auch Protokollanalysen und die Dekodierung der Daten möglich. Die Messfunktionen des Maretron-Geräts sind übrigens komplett in der Grundversion ohne Zusatzlizenzen enthalten. Dieses Gerät ist auch aufgrund des höheren Preises (Einstieg bei 2000€) eher für sehr ambitionierte Skipper und Eigner geeignet. Mit solchen umfangreichen Analysen sollte man sich vertrauensvoll an die Profis wenden.

Für den Skipper empfiehlt sich aber, wenigstens ein paar grundlegende Dinge über seinen Datenbus zu wissen. Dann sind zumindest in Sachen korrekter Verkabelung auch Aussagen mithilfe eines Multimeters möglich.