Thứ Ba, 2 tháng 4, 2019

SOME/IP for Adaptive Autosar

Introduction
SOME/IP provides service oriented communication over a network
SOME/IP is used for inter-ECU Client/Server communication.
SOME/IP relies on using Ethernet and TCP/IP or UDP/IP.

SOME/IP features
  - Serialization – transforming into and from on-wire representation.
  - Remote Procedure Call (RPC) – implementing remote invocation of functions.
  - Service Discovery (SD) – dynamically finding functionality and configuring its access.
  - Publish/Subscribe (Pub/Sub) – dynamically configuring which data is needed and shall be sent to the client.
  - Segmentation of UDP messages – allowing the transport of large SOME/IP messages over UDP without the need of fragmentation.

SOME/IP in AUTOSAR
- Introduction
  + AUTOSAR 4.0 – basic support for SOME/IP messages already existing.
  + AUTOSAR 4.1 – support for SOME/IP-SD and Publish/Subscribe was added.
  + AUTOSAR 4.2 – the transformer was added for serialization as well as other optimizations.
  + AUTOSAR 4.3 – fixing some transformer bugs, adding support for large UDP messages with SOME/IP-TP as well as SOME/IP-SD optimizations
- SOME/IP message format
Device B is running a service which offers a function that is called from device A by this message and the message back is the answer.
- SOME/IP Protocol
 + Transport bindings (UDP and TCP) : UDP package can be up to 1400 Bytes. If messages is bigger then using TCP. Using cookie to resume last failed sending.
 + publish/subscribe and request/response.
 + setter/getter fields via REQUEST/RESPONSE.
 + The subscription via the SOME/IP service discovery.
 + Events are grouped in event group.

- SOME/IP Service discovery  + locate service instances and to detect if service instances are running
  + implementing the Publish/Subscribe handling
  + Uses offer messages (each device broadcasts messages which contain all the services which are offered by the device).
  + SD messages are sent via UDP
  + client applications uses "find messages" to find services

Ref: https://github.com/GENIVI/vsomeip/wiki/vsomeip-in-10-minutes
Share: