Überblick

<< Click to Display Table of Contents >>

Navigation:  Protokolle > SOME/IP >

Überblick

 

SOME/IP ist ein automotive/embedded Kommunikationsprotokoll, das

Methodenaufrufe, Event-Benachrichtigungen und das zugrunde liegende Serialisierungsformat beschreibt.

 

SOME/IP ermöglicht serviceorientierte Kommunikation über ein Netzwerk. Es basiert auf

Servicedefinitionen, die bereitgestellte Funktionen eines Services beschreiben.

Ein Service kann dabei aus beliebigen Kombinationen von Events, Methoden und Feldern bestehen.

 

Events stellen Daten/Felder zur Verfügung, die zyklisch oder bei Änderung vom Provider zum Subscriber gesendet werden.

 

Methoden bieten dem Subscriber die Möglichkeit, entfernte Prozeduren aufzurufen, die

auf dem Provider ausgeführt werden.

 

Felder sind Kombinationen aus einem oder mehreren der folgenden drei:

Notifier, der Daten bei Änderung vom Provider an die Subscriber sendet

Getter, der vom Subscriber aufgerufen werden kann, um den Provider explizit nach dem Wert zu fragen

Setter, das vom Subscriber aufgerufen werden kann, wenn der Wert auf der Providerseite geändert werden soll

 

Der Hauptunterschied zwischen dem Notifier eines Feldes und einem Event besteht darin, dass Events

nur bei Änderung gesendet werden. Der Notifier eines Feldes sendet die Daten zusätzlich direkt zum Subscriber.

 

Service Discovery

Die Service Discovery bietet Funktionen zum finden (FIND) and anbieten (OFFER) von Services innerhalb des Fahrzeugnetzes.

Dazu bedient er sich der IP-Multicast- und der so genannten SOME/IP-SD-Nachrichten.

 

Alle SOME/IP-Hosts müssen den gleichen UDP-Multicast (Port 30490) verwenden.

 

IPv4: 224.0.0.5
IPv6: ff14::4:0

 

Der Startprozess der Service Discovery gilt für jeden Service und besteht aus 3 Phasen:

1.Anfängliche Wartephase

2.Wiederholungsphase

3.Hauptphase

 

Anfängliche Wartephase:

1.Zufälliges Warten im Bereich: InitialDelayMin..InitialDelayMax

2.Sende OFFER oder FIND (SOMEIP/SD-Nachricht)

 

Wiederholungsphase:   (Beispiel, wenn RepetionsMax=2)

1.Warte 2^0 * RepetitionBaseDelay (Millisekunden)

2.Senden von OFFER oder FIND

3.Warte 2^1 *  RepetitionBaseDelay (Millisekunden)

4.Senden von OFFER oder FIND

 

Hauptphase: (Endlosschleife)

1.Warte-Zykluszeit

2.Senden von OFFER oder FIND

 

Hinweis: Die Hauptphase kann ausgelassen werden, wenn es sich um einen Remote Service handelt und RepetitionMax > 0 ist.