J1939

<< Click to Display Table of Contents >>

Navigation:  Protokolle >

J1939

Einführung

J1939 ist ein Protokoll, das auf CAN mit erweiterten Botschaft-IDs läuft. Es ist nicht für CAN-FD spezifiziert. Es können gleichzeitig normale CAN-Nachrichten mit Standard-IDs auf dem gleichen Kanal verwenden werden.

Die Idee hinter J1939 ist, dass ein CAN-Bus mit Plug-in-Anwendungen wie Anhängern erweitert wird. Werden z.B. zwei Anhänger des gleichen Typs an einen LKW angeschlossen, sind die gleichen Steuergeräte zweimal vorhanden. In diesem Fall benötigt man eine Möglichkeit, bestimmte Funktionen in einem bestimmten Anhängern anzusprechen, z.B. um das Rücklicht des letzten Anhängers zu aktivieren.

Um dies zu erreichen wurde festgelegt, dass die Botschafts-ID dynamisch ist. Ein Teil der Botschafts-ID ist die Quell- und Zieladresse.

Die Adressen werden von so genannten Controller-Anwendungen (CA) verwaltet. Eine CA spezifiziert eine bestimmte Funktionalität in einer Steuergerät. Ein Steuergerät kann mehrere CA haben.

Jede Steuergeräteanwendung hat einen eindeutigen NAME, der ein 64-Bit-Wert ist. Ein Teil des NAME ist vordefiniert, wie die Nummer des Herstellers oder der Industriegruppe. Ein Teil wird dynamisch geändert, wie die Fahrzeuginstanz, die angibt, in welchem Anhänger sich die CA befindet.

Da ein 64-Bit-Wert etwas schwer zu verwenden ist und es nicht so viele CA auf einem CAN-Kanal geben sollte, wurde festgelegt, dass jede CA eine 8-Bit-Adresse hat. Einige der Adressen sind vordefiniert, so hat die erste Instanz der Motor-CA die Adresse 0 und die zweite Instanz die Adresse 1. Es gibt jedoch einen Bereich von Adressen, die jede CA verwenden kann.

Beim Start sendet jede CA eine Adress-Claim-Botschaft mit ihrer gewünschten Adresse und ihrem NAME. Wenn es eine andere CA gibt, die diese Adresse bereits nutzt, wird sie prüfen, ob ihr NAME kleiner ist. In diesem Fall wird sie ihre Adresse behalten und einen Claim mit ihr senden, andernfalls muss sie eine neue nehmen. Wenn keine Adresse reserviert werden kann, sendet die CA keine Botschaften mehr.

In der J1939-Spezifikation werden die Signale als spezifische Parameter (SP) und die Botschaften als Parametergruppen (PG) bezeichnet. Jeder SP hat eine Nummer (SPN) und jede PG hat eine Nummer (PGN).

Die 29-Bit-Nachrichten-ID ist in 3 Teile aufgeteilt. 3 Bit Priorität, 18 Bit PGN und 8 Bit Quelladresse.

Die PGN besteht aus 4 Teilen: 1 Bit extended data page, 1 Bit data page, 8 Bit PDU format und 8 Bit PDU specific.

Der Inhalt von des PDU specific Teils hängt vom PDU format ab. Wenn PDU format unter 240 liegt, ist es die Zieladresse, andernfalls ist es Teil der PGN und die Zieladresse ist all CA.

Priority

Extended Data Page

Data Page

PDU Format

PDU Specific

Source Address

3 bit

1 bit

1 bit

8 bit

8 bit

8 bit

 

Konfiguration

Unterhalb eines CAN-Knotens kann über das Kontextmenü eine CA (Controller Application) erstellt werden.

Jede CA hat die folgenden Properties:

Property

Beschreibung

Auto

Mit dieser Eigenschaft können alle automatischen Verhaltensweisen dieser CA deaktiviert werden. Wenn diese Eigenschaft ausgeschaltet ist, wird die CA z.B. kein Address-Claiming durchführen oder die Adressen von PG's ändern.

Address

Dies ist die aktuelle Adresse der CA. Sie kann nicht manuell geändert werden. Sie wird automatisch durch den address claim gesetzt. Ändert sie sich, werden die Quelladressen der untergeordneten PG und die Zieladressen der PG, die diese CA als Ziel haben, automatisch geändert.

DefaultAddress

Dies ist die Adresse, die beim Start der Simulation als Address Claim gesendet wird.

NAME

Der 64-Bit-NAME-Wert dieser CA der in den Daten des Address-Claims gesendet wird.

PGRefsUsingDA

Array von PGs die diese CA als Destination-Adresse verwenden.

Wenn sich die Adresse der CA ändert, wird die Zieladresse der PGs automatisch aktualisiert.

 

Über das Fenster "Empfangene Parametergruppen" oder das Kontextmenü der PG "Parametergruppen-Destination-Editor..." kann dies editiert werden.

PGRefsUsingSAForRequest

Array von PGs die beim PGN-Request die Source-Adresse dieser CA verwenden.

 

Diese kann über das Kontextmenü der PGs "Parametergruppen Request Sender Editor..." einer PG innerhalb eines realen Steuergeräts editiert werden.
 
Hinweis:
Soll die Source-Adresse des Request für den gesamten Kanal festgelegt werden kann dies alternativ auch einfach über das Kontextmenü "Default Source Address" der CA eingestellt werden.

Die Property NAME besteht aus weiteren Properties:

Property

Beschreibung

NAME_ArbitraryAddressCapable

1 Bit. Bei einem Wert von 0 kann die CA nur ihre Standardadresse verwenden.

NAME_IndustryGroup

3 Bit

NAME_VehicleSystemInstance

4 Bit

NAME_VecicleSystem

7 Bit

NAME_Function

8 Bit

NAME_FunctionInstance

5 Bit

NAME_EcuInstance

3 Bit

NAME_ManufacturerCode

11 Bit

NAME_IdentityNumber

21 Bit

Bei einer neu erstellten CA werden die Werte für NAME_Function und NAME_VehicleSystem auf unknown gesetzt (alle Bits eins). NAME_IdentityNumber wird automatisch auf einen eindeutigen Wert für diesen Kanal gesetzt.
Änderungen an NAME ändert auch alle Bestandteile und Änderungen an den Bestandteilen ändern automatisch auch die Property NAME.
Wenn  NAME_Function oder die NAME_IndustryGroup geändert werden, werden zusätzlich der Name der CA und die Standardadresse gemäß der Spezifikation aktualisiert.

 

Address claiming

Beim Start der Simulation wird für eine simulierte CA eine Adressanforderung (Address Claim) für die DefaultAddress gesendet.
Wenn die Standardadresse auf 255 gesetzt ist, wird kein Address Claim gesendet.
Konnte die Adresse nicht beansprucht werden wird versucht eine andere Adresse zu beanspruchen (sofern NAME_ArbitraryAddressCapable gesetzt ist).

Wenn keine Adresse beansprucht werden kann, schaltet die CA in den Modus "keine Adresse beanspruchbar" (Adresse wird auf 254 gesetzt) und hört automatisch auf zu senden.
In diesem Fall kann weiterhin manuell gesendet werden.

Bei einer realen CA wird die Adresse auf die Standardadresse gesetzt. Wenn ein Address Claim mit passendem NAME Wert der CA empfangen wird, wird die Adresse aktualisiert.

Um eine Übersicht aller Adressen zu sehen kann über das Menü Tools -> J1939 claimed addresses  ein Fenster geöffnet werden in dem

J1939AdressClaim

Unterstützte J1939 Funktionen:

Funktion

Beschreibung

Requests

Wenn eine Anfrage für ein PG empfangen wird, wird diese automatisch gesendet. Beim Senden einer PG von einer realen CA wird eine Anfrage gesendet.

Commanded addresses

Beim Empfang einer Commanded Address wird die Adresse-Property geändert. Wenn die DefaultAddress einer echten CA geändert wird, wird eine entsprechende Command Address gesendet.

Name management

Beim Empfang von  Name-Management-Frames wird die NAME-Property der CA aktualisiert. Wenn die NAME-Property einer realen CA geändert wird, werden entsprechende Name- Management-Frames gesendet.

 

Parameter Gruppen (PG)

Unterhalb einer CA kann über das Kontextmenü ein PG erstellt werden.

Eine PG ist von einer CAN-Botschaft abgeleitet und hat daher die gleichen Properties.

Jede PG hat die folgenden zusätzlichen Properties:

Property

Beschreibung

MsgId_Priority

3 Bit der Botschafts-ID

MsgId_SourceAddress

8 Bit der Botschafts-ID

MsgId_PGN

18 Bit der Botschafts-ID

  MsgId_PGN_ExtendedDataPage

1 Bit der PGN

  MsgId_PGN_DataPage

1 Bit der PGN

  MsgId_PGN_PDUFormat

8 Bit der PGN

  MsgId_PGN_PDUSpecific

8 Bit der PGN oder der Botschafts-ID. Wenn  PDUFormat unter 240 liegt, wird es als Zieladresse verwendet, ansonsten als Gruppenerweiterung.

FilterDestAddress

Legt fest ob die Zieladresse zum Filtern der Aufzeichnung verwendet werden soll.

FilterSourceAddress

Legt fest ob die Quelladresse zum Filtern der Aufzeichnung verwendet werden soll.

Request_SourceAddress

Quelladresse der CA die einen PGN-Request verwendet wird. Wird automatisch von der CA gesetzt wenn sich die Adresse ändert.

Ein neu erstelltes PG hat die PGN und die Priorität. Nach dem Setzen einer gültigen PGN wird die Länge der PG automatisch eingestellt.
Über das Kontextmenü "Spezifische Parameter (SP) anhand der PGN erstellen" können  die SP dieser PG erstellt werden.

Änderungen an der Message-ID oder einer anderen Property, die einen Teil davon beschreibt, ändern automatisch alle beteiligten Properties auf die richtigen Werte.

Die PG kann wie jede andere CAN-Botschaft verwendet werden. Die einzigen Unterschiede sind die Message-ID-Teile und die Länge kann mehr als 8 Byte betragen.
Wenn die Länge mehr als 8 Bytes beträgt, wird automatisch das J1939 Transportprotokoll (TP) verwendet.

 

MuxMessage

Unterhalb eines PGs kann über das Kontextmenü eine Multiplex-Botschaft erstellt werden.
Da sie für J1939 eingeführt wurden, gibt es keinen Unterschied zu den CAN-Botschaften.

 

Specific Parameter (SP)

Unterhalb einer PG (Parametergruppe) kann über das Kontextmenü ein Parameter erstellt werden.
Der einzige Unterschied zu CAN-Signalen ist die Property SPN. Die SPN wird nur für die automatische Erstellung des SPs unterhalb des PGs verwendet.

 

Transport Protokoll (TP)

CanEasy unterstützt die J1939-Transportprotokolle. Wenn eine PG größer als 8 Byte ist, wird diese automatisch über das Transportprotokoll übertragen. Wenn die PG an alle CAs gerichtet ist, wird das BAM-Protokoll verwendet, ansonsten das CMDT-Protokoll.

Wenn das Auto-Flag für eine CA deaktiviert ist, können immer noch TP-Botschaften gesendet werden. Empfangene TP-Botschaften werden aber nicht mehr beantwortet.

 

Aufzeichnung

Im Detailfenster des Traces werden alle Teile der J1939 Message ID interpretiert. Über das Kontextmenü der  Spalten können zusätzliche Spalten für die Teile der J1939-Botschafts-ID aktiviert werden.

Wenn das TP verwendet wird, werden die kombinierten Botschaften in den Aufzeichnung eingefügt. Wird eine Aufzeichnung ohne die kombinierten TP-Botschaften geladen, können diese über das Kontextmenü der Aufzeichnung "Protokolle auswerten" hinzugefügt werden.

Da sich der Priority-Teil der Botschaft-ID ändern kann, wird er nicht als Filter im Trace und Plot verwendet. Zusätzlich kann die Filterung der Quell- und Zieladresse über das Kontextmenü der PGs deaktiviert werden.