Vergleich CANopen – J1939

J1939

CANopen und J1939 sind zwei auf CAN basierende Kommunikationsprotokolle.

Physikalische Schicht von CANopen und J1939

Beide Protokolle verwenden CAN nach ISO 11898-2. Bei CANopen sind die Bitrate zwischen 10 kbit/s bis 1000 kbit/s variabel, wobei einen fester Satz an Bitraten definiert ist. Bei J1939 ist die Bitrate in den meisten Anwendungsfällen, wie in J1939-11 definiert, auf 250 kbit/s festgelegt. CANopen definiert keine Kabel, wobei J1939 ein geschirmtes, verdrilltes Kabel festlegt. CANopen definiert in CiA 303 die PIN-Belegung für über 20 verschiedene Steckverbinder, aber legt keinen fest. Dagegen sind bei J1939 nur 2 Typen an Steckverbindern definiert.

Sonderfälle mit anderen Bitraten und abweichenden Kabeldefinition sind in J1939-14 (500 kBit/s) und J1939-15 (250 kBit/s, Un-Shielded Twisted Pair (UTP)) definiert.

Bei CANopen sind theoretisch bis zu 127 Knoten im Netzwerk erlaubt, J1939 unterstützt bis zu 254 logische Knoten und beschränkt dies auf 30 Knoten pro Segment. Aufgrund der definierten Bitrate ist die Leitungslänge bei J1939 auf 40m beschränkt, wobei bei CANopen bei 10 kbit/s Leitungen bis zu 5000m erlaubt sind.

CANopen nutzt hauptsächlich 11-bit CAN-IDs und J1939 29-bit CAN-IDs, wobei das jeweils andere CAN-ID-Format nicht ausgeschlossen ist. Somit ist die Aussage bezüglich der ID-Typen meist richtig, jedoch nicht als 100% gültig zu betrachten. Hinsichtlich der Remote Transmission Request (RTR)-Telegramme gibt es weitere Unterschiede. J1939 erlaubt keine RTR-Telegramme, wobei diese bei CANopen erlaubt, jedoch nicht mehr für neuere Geräte empfohlen sind.

Standardisierungsorganisationen

CAN in Automation e.V.

Der CAN in Automation e.V., oft als CiA abgekürzt, ist ein in Nürnberg beheimateter Verein. Die Mitglieder des Vereins sind hauptsächlich Unternehmen, sowie Hochschulen und Forschungseinrichtungen. Mitte 2016 hatte der Verein 614 Mitglieder von denen etwas ein Drittel aus Deutschland stammen und die anderen sich auf weitere Industrieländer verteilen. Der CiA standardisiert CANopen mit allen Kommunikationsprofilen, Geräteprofilen und Applikationsprofilen und vergibt die CANopen-Vendor-ID, welche Hersteller von CANopen-Geräten eindeutig kennzeichnen. Darüber hinaus organisiert der Verein Schulungen und Konferenzen zum Thema CAN und CANopen und führt den CANopen Conformance Test durch.

SAE International

Die SAE International wurde ursprünglich als Society of Automotive Engineers 1905 in den USA gegründet und hat ihren Sitz in Warrendale (Pennsylvania). Im Gegensatz zum CiA e.V. sind die Mitglieder Einzelpersonen. Mitte 2016 waren über 120000 Personen Mitglieder der Gesellschaft.

Spezifikationen und Profile

CANopen

CANopen hat eine klare Trennung zwischen Daten und Diensten. Daten (Prozessdaten, Konfigurationsdaten oder Geräte-ID-Informationen) werden bei CANopen global in einem Objektverzeichnis abgelegt. Dabei kann jedes Datum über einen 16-bit Index und einen 8-bit Subindex adressiert werden. Zur Übertragung der Daten sind verschiedene Dienste definiert, welche sind hinsichtlich Geschwindigkeit, Zugriffsmöglichkeit, Flexibilität und maximaler Nutzunglast (>8 Byte) unterscheiden. Bei CANopen sind dies die Dienste SDO, PDO und MPDO. Zusätzlich gibt es in CANopen Dienste zur Netzwerkverwaltung, Knotenüberwachung und Fehlersignalisierung.

Die Struktur des Objektverzeichnis, die Grunddienste und die CANopen-Zustandmaschine ist im CANopen-Kommunikationsprofil CiA 301 definiert. CiA 302 definiert weiteren Eigenschaften für CANopen Master und Manager und in CiA 305 sind Funktionen zur dynamischen Vergabe von Knotennummern und Bitrate definiert. Neben diesen und weiteren Kommunikationsprofilen, gibt es ab CiA 401 eine Reihe von Geräteprofilen.
Die Geräteprofile beschreiben eine Klasse von Geräte (z.B. digitale IO-Geräte, Antriebe, oder Encoder) mit ihren Parametern- und Prozessdaten im Objektverzeichnis, sowie dem PDO-Mapping und definiertem Geräteverhalten. CANopen-Applikationsprofile wie z.B. CiA 454 (EnergyBus) beschreiben gesamte CANopen-Netzwerke für einen bestimmten Anwendungsfall mit allen Querkommunikationsbeziehungen.

Eine Teilmenge der Profile ist kostenlos – nach einer Registrierung – zugänglich. Andere Dokumente stehen nur Mitgliedern des Vereins zur Verfügung. Manche Dokumente wurden in internationale Standards (EN, IEC) überführt sind über kostenpflichtig für jedermann über die Standardisierungsorganisationen verfügbar.

J1939

Bei J1939 existiert keine klare Trennung zwischen übertragenen Daten und Transportdiensten.

Die Daten bzw. Signale sind in sogenannten Parameter-Gruppen, welche über eine eindeutige Parameter Group Number (PGN) identifiziert werden kann. Innerhalb eine PGN sind mehrere Suspect Parameter Numbers (SPN), welche ein einzelnes Datum beschreiben. Die PGNs sind meist auf eine Datenlänge von 8 byte optimiert und werden meist zyklisch als einzelne CAN-Nachricht versendet. Die Inhalte der PGNs und Datentype, Wertebereiche, Bedeutungen der SPNs sind in J1939/71 definiert. Zusätzlich gibt es Dienste zur Knotennummervergabe und zum Transport von Daten, welche größer als 8 Byte sind.

SAE J1939-81 definiert das Netzwerkmanagment, d.h. die Knotennummervergabe und die Address Claiming Prozedur bei Knotennummernkonflikten.

Alle J1939-Spezifikationen sind kostenpflichtig für jedermann zugänglich.

Entwicklungs- und Analysetools, Stacks

Da beide Protokolle auf CAN basieren erscheint für eine einfache Analyse der Kommunikation ein CAN-Analzyer ausreichend. In der Praxis hat es jedoch Vorteile wenn spezialisierte Analysetools verwendet werden, die das jeweilige Protokoll verstehen und die Kommunikation im Klartext anzeigen können.

Da CANopen-Geräte entweder Master oder Slave-Geräte sein können, ist es für die Entwicklung von CANopen-Slaves hilfreichen ein CANopen-Mastertool zu haben, welches genutzt werden kann, um mit den CANopen-Slaves zu kommunizieren.

Für beide Protokolle gibt es von verschiedenen Anbietern Protokollstacks, welche die jeweiligen Dienste der Protokolle bereitstellen, so dass sich der Entwickler nur um die eigentliche Applikation kümmern muss. Der Einsatz kommerzielle Stacks ist aufgrund des Supports und die Conformance Tests zu bestehen empfehlenswert. Um CANopen und J1939 ein einem Gerät zu kombinieren, werden auch CAN-MultiProtokollstacks angeboten.

Die Firma emotas bietet ein J1939 Schulung an, welche Detailwissen zu dem Protokoll vermitteln.