SOME/IP
Where things are configured
SOME/IP is described twice: once for the whole car in the system description (the network model all ECUs share), and once for each ECU in the ECU configuration (the containers and parameters of its basic software modules). Most ECU settings are the system description seen from one ECU.
Two layers of description
The system description (the model of the whole network, written with the AUTOSAR System Template) covers which services exist, which ECU provides or consumes which service instance, which IDs the messages carry, how data is serialized, and the Sd timing. It is the shared plan every ECU must agree on. The part of it that concerns one ECU is that ECU's ECU extract (the system description cut down to one ECU).
The ECU configuration (ECUC: the containers and parameters each basic software module of one ECU reads) is per ECU and per module: the configuration of Sd, SoAd, PduR, COM, SOME/IP TP, TcpIp and EthIf. It holds the ECU's share of the plan, plus purely local choices such as main function periods and buffer sizes.
The system description, part by part
lesson 2
Service interface
The Classic Platform has no service interface element of its own. A Collection groups the sender-receiver, client-server and trigger interfaces that make up one service, with sub-collections for fields and fire&forget methods.
lessons 4, 20, 24
SOME/IP transformation
Each ISignal that carries SOME/IP data points to a transformer chain whose first step is the SOME/IP transformer. General settings (byte order, alignment, interface version) are in the SOMEIPTransformationDescription (the transformer settings shared by all signals); per-signal settings (message type, session handling on or off, size of length fields) are in the SOMEIPTransformationISignalProps (the transformer settings of one signal).
lessons 20, 21
Header IDs
For every PDU sent over a socket, a SoConIPduIdentifier (the entry that binds a PDU to a socket and gives its header ID) holds the header ID that SoAd writes in front: Service ID plus Method ID or Event ID. Header IDs must be unique per address and direction; a request and its response may share one.
lessons 10–15
Service instances
A ProvidedServiceInstance (a service instance this ECU offers) has Service ID, Instance ID, versions, its local ApplicationEndpoints (UDP and/or TCP port plus IP address), its EventHandlers (one per eventgroup, with Eventgroup ID and multicast threshold) and a routing group for its methods. A ConsumedServiceInstance (a service instance this ECU uses) lists the ConsumedEventGroups it subscribes to.
lesson 21
PduActivationRoutingGroup
Each PduActivationRoutingGroup (a routing group as seen in the system description) names the PDUs it enables, over UDP or TCP, and for events its eventGroupControlType: unicast events, multicast events, initial events for a new subscriber, or both unicast kinds together.
lessons 11–14
Service Discovery timing
Server timing (initial delay, repetitions, CYCLIC_OFFER_DELAY, TTL of the OfferService, request-response delay) and client timing (initial delay, repetitions, TTL of the FindService) per service instance, plus subscription TTL and Subscribe retry per eventgroup.
Older releases described SOME/IP sockets as socket connection bundles. In R20-11 that part of the model is marked obsolete; the sockets come from the ApplicationEndpoints of the service instances instead. You may still meet the old form in existing projects.
The ECU configuration, module by module
| Module | Holds for SOME/IP | Lesson |
|---|---|---|
| RTE | Which transformer functions run for which signal; no module configuration for the SOME/IP transformer itself, its settings come from the system description | 24 |
| COM / LdCom | The I-PDU with one byte-array signal; NORMAL or TP | 27 |
| PduR | Routing paths: from COM to SoAd, through SOME/IP TP when needed | 27 |
| SOME/IP TP | Which PDUs are segmented, the separation time between segments and the receive timeout | 27 |
| SoAd | Socket connections and socket connection groups, header IDs, transmit and receive routes, routing groups | 27 |
| Sd | SdServerService and SdClientService with their eventgroups, timers, its own SD message PDUs, references to SoAd socket connection groups and routing groups | 26 |
| TcpIp, EthIf | Local addresses, controllers and VLANs, frame owners | 27 |
Try it
Pick a part of the system description to see where it ends up in the ECU configuration.
| In the system description | In the ECU configuration |
|---|
Things to notice. Almost every Sd parameter has a twin in the system description, often with nearly the same name. The header ID appears twice in SoAd, once for transmission and once for reception. The PduActivationRoutingGroups of the system description become SoAd routing groups that Sd's containers reference.
Check yourself optional
New terms in this lesson
| Term | Meaning |
|---|---|
| system description | The model of the whole network (System Template): services, service instances, PDUs, header IDs, Sd timing, addresses |
| ECU extract | The part of the system description that concerns one ECU |
| ECU configuration (ECUC) | The containers and parameters of each basic software module of one ECU |
ProvidedServiceInstance / ConsumedServiceInstance | A service instance this ECU offers / uses; becomes SdServerService / SdClientService |
EventHandler / ConsumedEventGroup | Server / client side of an eventgroup; becomes SdEventHandler / SdConsumedEventGroup |
PduActivationRoutingGroup | A routing group with its PDUs and, for events, its eventGroupControlType; becomes a SoAd routing group |
SoConIPduIdentifier | Binds a PDU to a socket and gives its header ID |
SOMEIPTransformationDescription | Transformer settings shared by all signals: byte order, alignment, interface version |
SOMEIPTransformationISignalProps | Transformer settings of one signal: message type, session handling, size of length fields |
ApplicationEndpoint | The local UDP or TCP port of a service instance, together with its IP address |
Source: System Template, R20-11, sections 6.7 (service instances, Service Discovery configuration), 10 and Appendix E (obsolete socket connection model); SOME/IP Transformer, R20-11, chapter 7 (no module-specific EcuC).