Leistung optimieren

Die grundlegende SOME/IP-Übersetzung wurde entwickelt, um eine aktualisierbare Lösung für die Integration in AUTOSAR-Dienste zu bieten. Die größte Herausforderung für den Broker bestand darin, Nachrichten und RPC-Aufrufe zu übersetzen, die zum Zeitpunkt der Kompilierung nicht bekannt waren. Um dieses Problem zu beheben, wird bei Laufzeitupdates davon ausgegangen, dass SDV-Dienste dynamisch hinzugefügt oder aktualisiert werden, ähnlich wie neue Einheitstypen eingeführt werden.

Die Lösung für diese dynamische Übersetzung basiert auf RTTI (Runtime Type Information). Der Broker verwendet die Konfiguration aus allen installierten Service-Bundles und führt eine auf Reflexion basierende Übersetzung mit Datenschemas aus dieser Konfiguration durch.

Die RTTI-basierte Übersetzung bietet zwar Flexibilität, ist aber von Natur aus langsamer als vorkompilierte Methoden. Um stark ausgelastete Datenpfade zu optimieren, verwenden Sie eine Technik, bei der die Übersetzung umgangen wird.

Um die Verarbeitung großer und häufiger Nachrichten zu unterstützen, können Sie mit SDV die Übersetzung umgehen und SOME/IP-formatierte Byte an Consumer-Service-Bundles weiterleiten.

Das Service-Bundle verarbeitet die SOME/IP-formatierte Nutzlast. Es kann die Nutzlast entweder direkt verwenden oder in Protobuf übersetzen.

Geben Sie message_translation_mode: INTERPRET_AS_BYTES für das Ereignis in einer SOME/IP-Zuordnungsdatei an, um die Übersetzung zu umgehen. samples/some_ip/catalog/integration_test/byte_forward_someip.vsidl enthält ein Beispiel.

Abwägungen bei der Übersetzungsmethode

Berücksichtigen Sie bei der Auswahl einer Übersetzungsmethode die folgenden Kompromisse:

  • Systeminteraktion:Andere SDV-Dienste können in SOME/IP-Format weitergeleitete Byte ohne Kenntnis der Rohformatdetails nicht interpretieren. SDV Telemetry kann beispielsweise einzelne Felder solcher Nachrichten nicht verarbeiten.

  • Zusätzlicher Aufwand:Die Übersetzung der Rohnutzlast im SOME/IP-Format erfordert zusätzlichen Aufwand vom Entwickler des Service-Bundles.

Bibliotheksgenerator

SDV bietet einen automatisierten Generator für die Übersetzung des SOME/IP-Formats. Dieser Generator erstellt Bibliotheken auf Grundlage verfügbarer Nachrichtendefinitionen und Zuordnungen für die direkte Übersetzung ohne Reflektion. Service-Bundles, die weitergeleitete SOME/IP-Bytes verwenden, können die generierten Bibliotheken nutzen.

Empfehlung:Verwenden Sie den Generator nur, wenn Ihr OEM leistungsrelevante Ereignisse identifiziert, die nicht innerhalb der Leistungsanforderungen Ihres Projekts übersetzt werden können. In solchen Fällen sollte Ihr OEM bereits sowohl die Protobuf-Definition als auch die SOME/IP-Zuordnung für die RTTI-basierte Übersetzung haben. Dieselbe Konfiguration kann als Eingabe für den Generator dienen. Weitere Informationen finden Sie in der Datei README.md im Verzeichnis core_services/tools/someip_translation_generator/.