J1939 Safety

J1939 Safety ist eine in der Spezifikation SAE J1939-76 beschriebene Erweiterung zum J1939-Protokoll zur Übertragung von sicherheitskritischen Daten. Die sicherheitsgerichtete Übertragung der Daten kann parallel zu einer bestehenden J1939-Datenübertragung stattfinden.

Prinzipien

Neben der herkömmlichen Datenübertragung in Parametergruppen (PG) in J1939 wird für die Safety-Erweiterung eine zusätzliche PG für die sichere Datenübertragung definiert.
Dabei werden die folgenden Prinzipien verwendet:

  • zyklische Datenübertragung mit Timeout-Überwachung
  • Prüfung den Datenkonsistenz durch CRC und Sequenzzähler
  • Prüfung des zeitlichen Abstands der zyklischen und der zusammengehörten Daten

Dabei benennt die J1939-79 Spezifikation den J1939 Kommunikationsstack als explizit als unsicheren Black Channel und weißt die Verantwortung für das sichere Handling der Safety-Applikation zu.

Einschränkungen

Die Datenübertragung nach J1939 Safety ist nur für Parametergruppen (PG) bis zu einer Länge von 8 Byte möglich. Zudem ist es auf zyklische Parametergruppen beschränkt.

Safety Data Group

Safety Header Message

Die Safety Header Message (SHM) ist eine Parametergruppe, welche vor der eigentlich Daten-Parametergruppe, Safety Data Message (SDM) genannt, gesendet wird. Die SHM beinhaltet:

  • einen 5-Bit Sequenzzähler für jede SDM separat
  • eine 32-Bit CRC über die SDM
  • die invertierte CAN-ID (ohne Prioritätsbits) der SDM

emotas CANinterpreter mit J1939 Interpretation und SHM
Empfänger der Safety-Nachrichten müssen prüfen, ob die CRC korrekt berechnet wurde und der Sequenzzähler korrekt erhöht wurde.

Safety Data Message (SDM)

Die Safety Data Message ist die normale, unveränderte PG mit den zu übertragenden Daten.

Die Safety Data Message soll immer nach der Safety Header Message gesendet werden.
Empfänger ohne Safety-Anforderungen können die SDM als normale PG empfangen und verarbeiten.

Timing

Safety Cycle Time (SCT)

Die Safety Cycle Time hängt von der Zykluszeit der PG ab, welche sicher übertragen werden soll. Dies bedeutet auch, dass nur solche Parametergruppen mittels J1939 Safety übertragen werden dürfen, welche entweder mit fixer Zykluszeit zu übertragen sind oder eine definierte Minimalzeit („not faster than xy ms“) haben. In diesem Fall ist die Minimalzeit als Zykluszeit für den Producer zu verwenden.
Bei Überschreitung der Zykluszeit plus einer in J1939-76 definierten Toleranz ist dies als sicherheitskritisches Ereignis der Applikation zu melden.

Safety Relevant Validation Time (SRVT)

Die SRVT ist der Abstand zwischen der Safety Header Message und der dazugehörigen PG als Safety Data Message. Die Zeiten für die SRVT hängen ebenfalls von der Zykluszeit der Safety Data Message ab und sind in J1939-76 definiert.

J1939 Safety Timings mit SCT und SRVT

Stacks und Analysetools

U.a. unterstützt der J1939 Stack von emotas das Senden und Empfangen von J1939 Safety Nachrichten. Zur Analyse kann der CANinterpreter mit J1939-Erweiterung verwendet werden, welcher die Safety Header Messages darstellt und auch CRC-Fehler prüft und signalisiert.