<< 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.