Sie sind auf Seite 1von 159
EI-312, 20.11.2012 ADVANCED TRAINING SYSTEM BEHAVIOR ETHERNET
EI-312, 20.11.2012 ADVANCED TRAINING SYSTEM BEHAVIOR ETHERNET
EI-312, 20.11.2012
EI-312, 20.11.2012

ADVANCED TRAINING

SYSTEM BEHAVIOR ETHERNET

EI-312, 20.11.2012 ADVANCED TRAINING SYSTEM BEHAVIOR ETHERNET
EI-312, 20.11.2012 ADVANCED TRAINING SYSTEM BEHAVIOR ETHERNET

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

BMW BILDUNGSAKADEMIE. TRAININGSANGEBOT: ETHERNET.

Ab 2013: zwei Trainingsbausteine im Angebot:

Dauer:

Voraussetzung:

Inhalt / Ziel:

Seminarnummer:

Anmeldung:

Basisschulung / Überblick

Aufbauschulung

0,5 Tage keine • Überblick über die Ethernet- Technolo g ie • Einfluss auf Fzgentwicklung,
0,5 Tage
keine
• Überblick über die Ethernet-
Technolo
g ie
• Einfluss auf Fzgentwicklung, -
absicherung u. -programmierung
• relevante Infos / Ansprechpartner
07797
Über Intranet Bildungsakademie
Trainingsmagazin oder

1,5 Tage

Basiswissen aus Training 07797

Vertiefung zu Themen, wie:

Physical Layer SomeIP und

,

ServiceDiscovery, Bordnetztopologie - Startup - VLAN, Operative Bedatung, Kommunikationsarchitektur, Logging Programmierung

Praxis Demonstrationen zu

Startup / Shutdown Verhalten

07798

Über Intranet Bildungsakademie Trainingsmagazin oder

trainingsline@bmw.de trainingsline@bmw.de

BMW BILDUNGSAKADEMIE. ANMELDUNG ZU DEN TRAININGS .

Über BMW Intranet -> Bildungsakademie

-> Trainingsmagazin oder „Training suchen“ -> Seminarnr.: 07797 und 07798
-> Trainingsmagazin oder
„Training suchen“
-> Seminarnr.: 07797 und
07798

Oder über trainingsline@bmw.de bzw. +49 89 382-61111

BMW BILDUNGSAKADEMIE. ANSPRECHPARTNER.

Ihr Ansprechpartner zu den Ethernet-Trainings in der Bildungsakademie:

Sybille Schmidt Tel.: 089-382-39809 Sybille.Schmidt@bmw.de

Vielen Dank für Ihre Aufmerksamkeit

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

TRAINING OVERVIEW. GOALS OF THE TRAINING.

This training provides you with a recipe and a “How To” to build a communication system based on Ethernet for BMW.

After the training the participants know about

… Server/Client communication principles

… System StartUp and ShutDown behavior

… Error scenarios and error handling

behavior − … Error scenarios and error handling How To System Behavior Ethernet, EI-312, 2012-11-20. P
behavior − … Error scenarios and error handling How To System Behavior Ethernet, EI-312, 2012-11-20. P
behavior − … Error scenarios and error handling How To System Behavior Ethernet, EI-312, 2012-11-20. P
How To
How To

TRAINING OVERVIEW. STRUCTURE OF THE TRAINING.

TRAINING OVERVIEW. STRUCTURE OF THE TRAINING. Com lete S stem p y Communication / Network Com

Com

lete S stem

p

y

Communication / Network

Com

p onents

Startup

Stead -State

y

Communication

Shutdown / Restart

Motivation

Topology

Ethernet ECUs

Ethernet-Wakeup-line

(WakeUp Authorization)

UDP-NM PWF-Status Eth-Wakeup-line SOME/IP + SD

SOME/IP + SD PWF-Status

UDP-NM PWF-Status Eth-Wakeup-line SOME/IP + SD

ECU Architecture

SD-Module

Server-/Client-

State Machine

Error Handling

TRAINING EXAMPLE. HANDOUT.

SI Environment SI VehCondition EG Light EG VehCon E Flashlight E EngineStarting F Brightness F
SI Environment SI VehCondition EG Light EG VehCon E Flashlight E EngineStarting F Brightness F
SI Environment SI VehCondition EG Light EG VehCon E Flashlight E EngineStarting F Brightness F
SI Environment
SI VehCondition
EG Light
EG VehCon
E
Flashlight
E
EngineStarting
F
Brightness
F
EngineState
F
CalibBrightness
F
DriveMode
provide
„KL30“
ZGW
I&K-CAN
„KL15N“
(Fahren)
BDC
C2
„KL30B“
(Wohnen)
Switch
HU
consume
„KL30B“
(Wohnen)
Ethernet
C1
Wakeup-line
provide
provide

SI

CameraControl

M

CameraActivateDeactivate

f

EG CameraIn o

E

HighTemperature

E

ObjectIdentified

System Configuration

C1 uses Service Interface VehCondition.

ZGW also provides the SI Environment.

HU consumes SI Environment.

C1 provides SI CameraControl.

HU consumes SI CameraControl.

C2 provides a second SI CameraControl instance.

HU consumes also the second SI CameraControl.

System Behavior Ethernet, EI-312, 2012-11-20.

Page 10

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

BASICS AND DEFINITIONS.

Schedule

Topic

Speaker

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

 

1. SOME/IP and SOME/IP-SD

Lars Völker, EI-312

 

2. Training Example

Thomas Kirchmeier, EI-312

 

3. Summary

Lars Völker, EI-312

10:45-11:00

Break

 

BASIC CONCEPTS AND TERMS. SOME/IP.

BASIC CONCEPTS AND TERMS. SOME/IP. Client Server Visible: App. App. Interface SOME/IP Middleware Visible: Packets
Client Server Visible: App. App. Interface SOME/IP Middleware Visible: Packets TCP/ IP TCP/ IP Stack
Client
Server
Visible:
App.
App.
Interface
SOME/IP Middleware
Visible:
Packets
TCP/ IP
TCP/ IP
Stack
Stack
Automotive Ethernet Network

SOME/IP allows applications to communicate.

Packet formats are automatically determined by the specification of the Service.

Server offers a Service Instance that implements the Service Interface.

Client uses the Service Instance using SOME/IP.

SOME/IP SERIALIZATION. SERVICE.

SOME/IP SERIALIZATION. SERVICE. C S C S Request/Response Fire & Forget C S C S Field
C S C S Request/Response Fire & Forget C S C S Field Events
C S
C S
Request/Response
Fire & Forget
C
S
C
S
Field
Events
Fire & Forget C S C S Field Events Client ≠ AUTOSAR Client/ Server. SERVICE. A

Client ≠ AUTOSAR Client/ Server.

SERVICE.

A Service is defined by its Service Interface. This is comparable to a MOST Functional
A Service is defined by its Service Interface. This
is comparable to a MOST Functional Block
(FBlock) and may include:
− Methods:
− With response (Request/Response).
− Without response (Fire&Forget).
− Events: Message from Server to Client when something
happens.
− Fields: Getter/Setter/Notifier of a property/status.
− Eventgroups: A logical group of Events and Fields used
for publish/subscribe handling.

SOME/IP – COMMUNICATION PARADIGM. FIELDS.

Typ
Typ

Name of Field.

GETTER/SETTER/NOTIFIER UINT16 vehicleSpeed
GETTER/SETTER/NOTIFIER UINT16 vehicleSpeed
Name of Field. GETTER/SETTER/NOTIFIER UINT16 vehicleSpeed Event vehicleSpeed(UINT16 vehicleSpeed) Method
Event vehicleSpeed(UINT16 vehicleSpeed)
Event vehicleSpeed(UINT16 vehicleSpeed)
Method setVehicleSpeed(UINT16 vehicleSpeed) returns UINT16
Method setVehicleSpeed(UINT16 vehicleSpeed) returns UINT16
Method getVehicleSpeed() returns UINT16
Method getVehicleSpeed() returns UINT16

Field consists of:

0

1

Getter

Request/Response

0

1

Setter

Request/Response

0

1

Notifier

Events

Request/Response − 0 1 Notifier Events Field consists of Getter, Setter, and Notifier. System

SOME/IP. EVENTS VS. FIELDS.

Sends out Event message Event Event getter setter
Sends out Event message
Event
Event
getter
setter
Sends o t Event messa u g e Field Event Status Buffer getter setter Status
Sends o t Event messa
u
g
e
Field
Event
Status
Buffer
getter
setter
Status /
Property
Event Status Buffer getter setter Status / Property − Event is only when something happens .

Event is only when something happens .

Events do not have initial values.

The lifetime of an Event is not defined.

Status based elements shall be modeled as Field.

Event messages of Event and Field are identical.

Difference:

Initial Events only exist for Fields.

SOME/IP-SD: PUBLISH/SUBSCRIBE. SENDING EVENTS ONLY IF ECUS REQUIRE THEM.

PUBLISH/SUBSCRIBE. SENDING EVENTS ONLY IF ECUS REQUIRE THEM. Publish/Subscribe Flow Chart. Server Client cyclic Offer

Publish/Subscribe Flow Chart.

Server Client cyclic Offer
Server
Client
cyclic Offer

SOME/IP-SD manages Publish/Subscribe:

OfferService is implicit Publish.

SubscribeEventgroup is the Subscribe.

SubscribeEventgroupAck makes sure that the subscription was successful.

Subscribe acts on Eventgroups only!

Cyclic repetition of the OfferService

New (simplification):

PublishEventgroup is no longer used.

OfferService as implicit publish.

SERVICE DISCOVERY – HEADER.

SERVICE DISCOVERY – HEADER. SOME/IP Header with “special service and method” (0xffff 8100) 0 1 2
SOME/IP Header with “special service and method” (0xffff 8100) 0 1 2 3 4 5
SOME/IP Header with “special
service and method”
(0xffff 8100)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
Message ID (Service ID / Method ID) [32 bit]
(= 0xFFFF 8100)
Length [32 bit]
Notification
Request ID (Client ID / Session ID) [32 bit]
Protocol Version [8 bit]
Interface Version [8 bit]
Message Type [8 bit]
Return Code [8 bit]
=0x01
=0x01
=0x02
=0x00
SD-Header
Flags [8 bit]
Reserved [24 bit]
Length of Entries Array [32 bit]
Entries Array
Entries
e.g. Find, Offer, …
Length of Options Array [32 bit]
Options:
Options Array
e.g. IPv4-Address,
Capabilities…
SOME /IP SD
SOME/IP
Covered b
Covey
Length
red by Length
C overed by Length

SERVICE DISCOVERY – HEADER. ENTRY FORMAT.

FindService, OfferService, StopOfferService

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

 

Type

   

Index 1st options

   

Index 2nd options

 

#

of opt 1

# of opt 2

 

Service ID

   

Instance ID

 
 

Major Version

   

TTL

 
 

Minor Version

 
S SubscribeEventgroup, StopSubscribeEventgroup, u b scr ib e E ven group t A c k
S
SubscribeEventgroup, StopSubscribeEventgroup,
u
b
scr
ib
e
E
ven group
t
A
c
k
,
S
u
b
scr
ib
e
E
ven group
t
N
ac
k
0
1
2 3
4
5 6
7 8
9
10
11
12 13
14 15
16
17 18
19 20
21
22 23
24
25 26
27 28
29
30 31
Type
Index 1st options
Index 2nd options
# of opt 1
# of opt 2
Service ID
Instance ID
Major Version
TTL
Reserved (0x0000)
Eventgroup ID

bit offset

bit offset

TTL Reserved (0x0000) Eventgroup ID bit offset bit offset New (simplification): Major Version for Eventgroup entries
New (simplification): Major Version for Eventgroup entries too. (Not shown in the following Wireshark traces.)
New (simplification):
Major Version for Eventgroup entries too. (Not shown in the following Wireshark traces.)

SERVICE DISCOVERY – HEADER. OVERVIEW OF THE ENTRY TYPES.

SERVICE DISCOVERY – HEADER. OVERVIEW OF THE ENTRY TYPES.     TTL > 0    
   

TTL > 0

   

TTL = 0

 

Type

0x00

0x04

 

0x00

 

0x04

 

FindService

         

+0x00

FindEventgroup

StopFindService

StopFindEventgroup

(Multicast)

     
 

OfferService

     

StopOfferService

     

+0x01

PublishEventgroup

StopPublishEventgroup

(Multicast/Unicast)

   

(Multicast)

 
   

SubscribeEventgroup

 

StopSubscribeEventgroup

+0x02

RequestService

StopRequest

(Unicast)

(Unicast)

             

+0x03

RequestServiceAck

SubscribeEventgroupAck

RequestServiceNack

SubscribeEventgroupNack

 

(Unicast)

 

(Unicast)

Entries encode different operations (e.g. FindService, OfferService, SubscribeEventgroup, …). TTL=0 means revoke this entry.

OfferService is sent using unicast for answers to FindService.

New (simplification): Less types (no PublishEventgroups allowed)! Publish/Subscribe now is dependent on Services.
New (simplification):
Less types (no PublishEventgroups allowed)!
Publish/Subscribe now is dependent on Services.

Service Discovery Entries describe what an ECU offers and needs.

SERVICE DISCOVERY – HEADER. OPTIONS: ENDPOINT OPTIONS.

SERVICE DISCOVERY – HEADER. OPTIONS: ENDPOINT OPTIONS. IPv4 Endpoint Option (option type 0x04): IPv4 Multicast Option

IPv4 Endpoint Option (option type 0x04):

ENDPOINT OPTIONS. IPv4 Endpoint Option (option type 0x04): IPv4 Multicast Option (option type 0x14): Covered by
IPv4 Multicast Option (option type 0x14):
IPv4 Multicast Option (option type 0x14):
type 0x04): IPv4 Multicast Option (option type 0x14): Covered by Len gth (incl. Reserved ) Covered
type 0x04): IPv4 Multicast Option (option type 0x14): Covered by Len gth (incl. Reserved ) Covered
type 0x04): IPv4 Multicast Option (option type 0x14): Covered by Len gth (incl. Reserved ) Covered
type 0x04): IPv4 Multicast Option (option type 0x14): Covered by Len gth (incl. Reserved ) Covered
type 0x04): IPv4 Multicast Option (option type 0x14): Covered by Len gth (incl. Reserved ) Covered
Covered by Len gth (incl. Reserved )
Covered by Len gth
(incl. Reserved )
Covered by Le ngth (incl. Reserve d)
Covered by Le ngth
(incl. Reserve d)
New (simplification): − OfferService : 1x-2x Endpoint Options (Service access & Event source, UDP/TCP) −
New (simplification):
− OfferService :
1x-2x
Endpoint
Options (Service access & Event source, UDP/TCP)
− SubscribeEventgroup :
1x
− SubscribeEventgroupAck :
1x
Endpoint Option (Events Destination, UDP)
Multicast Option (Events Destination, UDP)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0
1
2 3
4
5 6
7 8
9 10
11
12 13
14 15
16
17
18 19
20
21
22 23
24
25 26
27
28 29
30 31
SERVICE DISCOVERY.
EXAMPLE.
Message ID (Service ID / Method ID) [32 bit]
(= 0xFFFF 8100)
Length [32 bit]
= 0x0000 004C (76)
Request ID (Client ID / Session ID) [32 bit]
SOME/IP Header with “special service and method”
(0xffff 8100)
Protocol Version [8 bit]
Interface Version [8 bit]
Message Type [8 bit]
Return Code [8 bit]
=0x01
=0x01
=0x02
=0x00
Flags [8 bit] = 0x80
Reserved [8 bit =0x00]
Length of Entries Array in Bytes [32 bit]
=0x0000 0020 (32)
ECU started up / sends multicast
Type
Index 1st options
Index 2nd options
=0 00
x
(
Fi
n
d
)
=0
=0
# of opt 1
=0 (none)
# of opt 2
= 0 (none)
Service ID
Instance ID
=0x4711
=0xFFFF (all)
Find Service 0x4711
Major Version
=0xff (any)
TTL
=3600 (search is valid for 1h)
Minor Version
=0xFFFF FFFF (any)
Type
Index 1st options
Index 2nd options
# of opt 1
=0x01 (Offer)
=0
=0
=2
# of opt 2
=0 (none)
Offer Service 0x1001 (Instance 0x0001)
Service ID
Instance ID
=0x1001
=0x0001
Major Version
TTL
=0x01
=3 (offer is valid for 3 seconds)
Minor Version
The first two options in the first run
Start: 0 / Quantity: 2
=0x00000032
Length of Options Array in Bytes
=
0x0000 0018 (24)
Length
Type
Reserved
=0x0009
=0x04 (IPv4 Endpoint)
=0x00
IPv4-Address = 192.168.0.1
IPv4 Endpoint Option: 192.168.0.1:6801 (TCP)
Reserved
L4-Proto
=0x00
=0x06 (TCP)
Port Number
=0x1A91 (Port 6801)
Length
Type
=0x04 (IPv4 Endpoint)
Reserved
=0x0009
=0x00
IPv4-Address = 192.168.0.1
IPv4 Endpoint Option: 192.168.0.1:6801 (UDP)
Reserved
L4-Proto
=0x00
=0x11 (UDP)
Port Number
=0x1A91 (Port 6801)

bit offset

BASICS AND DEFINITIONS.

Schedule

Topic

Speaker

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

 

1. SOME/IP and SOME/IP-SD

Lars Völker, EI-312

 

2. Training Example

Thomas Kirchmeier, EI-312

 

3. Summary

Lars Völker, EI-312

10:45-11:00

Break

 

TRAINING EXAMPLE. INTRODUCTION.

„KL30“ ZGW I&KI&K--CANCAN „KL15N“ „KL15N“ (Fahren) (Fahren) BDC C2 C2 „KL30B“ (Wohnen)
„KL30“
ZGW
I&KI&K--CANCAN
„KL15N“ „KL15N“
(Fahren) (Fahren)
BDC
C2 C2
„KL30B“
(Wohnen)
Switch
HU
„KL30B“ „KL30B“
(Wohnen) (Wohnen)
Ethernet Ethernet
C1 C1
Wakeup-lineWakeup-line
(Wohnen) Ethernet Ethernet C1 C1 Wakeup-lineWakeup-line − 4 Ethernet ECUs (Camera C1 & C2, HU and

4 Ethernet ECUs (Camera C1 & C2, HU and BDC/ZGW)

HU wakes up over I&K-CAN

C2 is a KL.15N ECU

C1 wakes up over Ethernet-Wakeup- line

The example will be extended throughout the training

First configuration:

Just BDC/ZGW and HU

TRAINING EXAMPLE. INTRODUCTION.

TRAINING EXAMPLE. INTRODUCTION. IP: 160.48.199.16 MAC: 00:1a:37:80:04:45 Local Port SI VehCondition:

IP:

160.48.199.16

MAC:

00:1a:37:80:04:45

Local Port SI VehCondition:

55001

Local Port SI Environment: 55003 Local Port ServiceDiscovery: 30490 „KL30“ Local Port NM: 30500 ZGW
Local Port SI Environment:
55003
Local Port ServiceDiscovery:
30490
„KL30“
Local Port NM:
30500
ZGW
I&KI&K--CANCAN
„KL15N“ „KL15N“
(Fahren) (Fahren)
BDC
C2 C2
„KL30B“
(Wohnen)
Switch
HU
„KL30B“ „KL30B“
(Wohnen) (Wohnen)
Ethernet Ethernet
IP:
160.48.199.99
C1 C1
MAC:
00:AA:BB:CC:32:58
Local Port SI VehCondition:
60001
Wakeup-lineWakeup-line
Local Port SI Environment:
60001
Local Port SI CameraControl 1:
60001
Local Port SI CameraControl 2:
60001
Local Port ServiceDiscovery:
30490

TRAINING EXAMPLE. INTRODUCTION.

„KL30“

ZGW

„KL15N“ „KL15N“ (Fahren) (Fahren) C2 C2
„KL15N“ „KL15N“
(Fahren) (Fahren)
C2 C2

BDC

Switch

„KL30B“ „KL30B“ (Wohnen) (Wohnen) Ethernet Ethernet C1 C1 Wakeup-lineWakeup-line
„KL30B“ „KL30B“
(Wohnen) (Wohnen)
Ethernet Ethernet
C1 C1
Wakeup-lineWakeup-line

IP:

MAC:

Local Port SI VehCondition: 50001

160.48.199.9

00:AA:EF:C2:6A:B2

Local Port SI CameraControl:

50001

Local Port ServiceDiscovery:

30490

I&KI&K--CANCAN

Port ServiceDiscovery: 30490 I&K I&K - - CAN CAN „KL30B“ (Wohnen) HU IP : 160 48
Port ServiceDiscovery: 30490 I&K I&K - - CAN CAN „KL30B“ (Wohnen) HU IP : 160 48

„KL30B“

(Wohnen)

HU

IP

:

160 48 199 8

.

.

.

MAC:

00:AA:EF:C2:18:35

Local Port SI VehCondition:

50001

Local Port SI CameraControl:

50001

Local Port ServiceDiscovery:

30490

Local Port NM:

30500

Port ServiceDiscovery: 30490 Local Port NM: 30500 System Behavior Ethernet, EI-312, 2012-11-20. P a g e

TRAINING EXAMPLE. SYSTEM CONFIGURATION.

SI VehCondition EG VehCon E EngineStarting F EngineState F DriveMode „KL30“ provide ZGW BDC „KL30B“
SI VehCondition
EG VehCon
E EngineStarting
F EngineState
F DriveMode
„KL30“
provide
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
SI:
EG:
E:
F:
Service Interface
Eventgroup
Event
Field
EG: E: F: Service Interface Eventgroup Event Field − ZGW provides the Service Interface VehCondition

ZGW provides the Service Interface VehCondition Provider = Server

VehCondition contains: Events, Fields and Eventgroups

An Eventgroup does not contain any data

An Eventgroup refers to Events and Fields

HU consumes the Service Interface VehCondition Consumer = Client

TRAINING EXAMPLE. SOME/IP-SD COMMUNICATION HANDSHAKE.

TRAINING EXAMPLE. SOME/IP-SD COMMUNICATION HANDSHAKE. SI VehCondition EG VehCon ZGW HU E EngineStarting (Server)
SI VehCondition EG VehCon ZGW HU E EngineStarting (Server) (Client) F EngineState F DriveMode „KL30“
SI VehCondition
EG VehCon
ZGW
HU
E
EngineStarting
(Server)
(Client)
F
EngineState
F
DriveMode
„KL30“
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
ZGW provides VehCondition
(Wohnen) Switch HU − ZGW provides VehCondition provide − HU will be informed about changes of

provide

HU will be informed about changes of the Events and Fields combined in the EG VehCon

ZGW confirms the subscription

Subscribe on EGs, not SI or E / F

SI:

Service Interface

EG:

Eventgroup

E:

Event

F:

Field

TRAINING EXAMPLE. EVENTS VS. FIELDS.

TRAINING EXAMPLE. EVENTS VS. FIELDS. SI VehCondition EG VehCon ZGW E EngineStarting (Server) F EngineState F
SI VehCondition EG VehCon ZGW E EngineStarting (Server) F EngineState F DriveMode EngineState = off
SI VehCondition
EG VehCon
ZGW
E
EngineStarting
(Server)
F
EngineState
F
DriveMode
EngineState = off
„KL30“
ZGW
EngineState = on
BDC
„KL30B“
(Wohnen)
Switch
HU
HU (Client)
HU
(Client)

provide

What was the engine state?
What was the
engine state?
SI: EG: E: F: Service Interface Eventgroup Event Field
SI:
EG:
E:
F:
Service Interface
Eventgroup
Event
Field

TRAINING EXAMPLE. OFFER SERVICE (W1.1).

SI VehCondition EG VehCon E EngineStarting F EngineState 160.48.199.16 F DriveMode „KL30“ ZGW BDC
SI VehCondition
EG VehCon
E
EngineStarting
F
EngineState
160.48.199.16
F
DriveMode
„KL30“
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
160.48.199.99

provide

System Behavior Ethernet, EI-312, 2012-11-20.

provide System Behavior Ethernet, EI-312, 2012-11-20. ZGW HU (Server) (Client) 1 . A n Off er
ZGW HU (Server) (Client) 1 . A n Off er S erv ce s a
ZGW
HU
(Server)
(Client)
1
.
A
n
Off
er
S
erv ce s a ways a
i
i
l
multicast message

2. The special Message-ID identifies the SOME/IP-Message as SD

3

. At least one Option per OfferServices Entry

4.

At least one Application-End-Point is necessary to describe the local port of this service

Page 30

TRAINING EXAMPLE. OFFER SERVICE (W1.2).

SI VehCondition Local Port: 55001 EG VehCon E EngineStarting F EngineState 160.48.199.16 F DriveMode „KL30“
SI VehCondition
Local Port: 55001
EG VehCon
E
EngineStarting
F
EngineState
160.48.199.16
F
DriveMode
„KL30“
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
160.48.199.99

provide

„KL30B“ (Wohnen) Switch HU 160.48.199.99 provide ZGW HU (Server) (Client) 1. Offer Instance 1 of Service
ZGW HU (Server) (Client)
ZGW
HU
(Server)
(Client)

1. Offer Instance 1 of Service ID 0x03bc – Version 1

2. OfferService valid for 3 seconds

3. Service reachable over IP:

160.48.199.16 Port 55001

TRAINING EXAMPLE. SUBSCRIBE EVENTGROUP (W2).

TRAINING EXAMPLE. SUBSCRIBE EVENTGROUP (W2). SI VehCondition Local Port: 55001 EG VehCon E EngineStarting F
SI VehCondition Local Port: 55001 EG VehCon E EngineStarting F EngineState 160.48.199.16 F DriveMode „KL30“
SI VehCondition
Local Port: 55001
EG VehCon
E
EngineStarting
F
EngineState
160.48.199.16
F
DriveMode
„KL30“
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
160.48.199.99
Receive Port for EG
VehCon: 60001

provide

ZGW HU (Server) (Client)
ZGW
HU
(Server)
(Client)

1. Subscribe per unicast

2. Subscribe on Eventgroup 1 (= EG VehCon) of Instance 1 of Service ID 0x03bc (VehState) – Version 1

3. Subscribe valid for 3 seconds

4. Receive Port for EG VehCon IP: 160.48.199.99 Port 60001

TRAINING EXAMPLE. SUBSCRIBE EVENTGROUP ACK (W3).

TRAINING EXAMPLE. SUBSCRIBE EVENTGROUP ACK (W3). SI VehCondition Local Port: 55001 EG VehCon E EngineStarting F
SI VehCondition Local Port: 55001 EG VehCon E EngineStarting F EngineState 160.48.199.16 F DriveMode „KL30“
SI VehCondition
Local Port: 55001
EG VehCon
E
EngineStarting
F
EngineState
160.48.199.16
F
DriveMode
„KL30“
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
160.48.199.99
Receive Port for EG
VehCon: 60001

provide

ZGW HU (Server) (Client)
ZGW
HU
(Server)
(Client)

1. SubscribeAck per unicast

2. The details of SubscribeAck are identical to the Subscribe

3. No Options except for the description of the multicast end-

i

f

po nt o

t

h

e

S

erver

TRAINING EXAMPLE. SOME/IP EVENT (W4).

SI VehCondition Local Port: 55001 EG VehCon E EngineStarting F EngineState 160.48.199.16 F DriveMode „KL30“
SI VehCondition
Local Port: 55001
EG VehCon
E
EngineStarting
F
EngineState
160.48.199.16
F
DriveMode
„KL30“
ZGW
BDC
„KL30B“
(Wohnen)
Switch
HU
160.48.199.99
Receive Port for EG
VehCon: 60001

provide

160.48.199.99 Receive Port for EG VehCon: 60001 provide ZGW HU (Server) (Client) 1. SOME/IP unicast 2.
ZGW HU (Server) (Client)
ZGW
HU
(Server)
(Client)

1.

SOME/IP unicast

2.

Ports

3.

Event-ID 1 (=EngineStarting) of Service 0x03bc (VehCondition)

4.

Payload

BASICS AND DEFINITIONS.

Schedule

Topic

Speaker

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

 

1. SOME/IP and SOME/IP-SD

Lars Völker, EI-312

 

2. Training Example

Thomas Kirchmeier, EI-312

 

3. Summary

Lars Völker, EI-312

10:45-11:00

Break

 

SOME/IP-SD: BASICS AND DEFINITIONS. SUMMARY.

SOME/IP allows Services to consist of:

SUMMARY. − SOME/IP allows Services to consist of: − Methods (Fire&Forget or Request/Response) −

Methods (Fire&Forget or Request/Response)

Events (single messages)

Fields (properties with optional Getter/Setter/Notifier)

Eventgroups (grouping Events and Fields for Publish/Subscribe)

SOME/IP-SD got simplified a bit:

No PublishEventgroup anymore (OfferService triggers Subscribe).

All Eventgroup entries are sent unicast only.

Endpoint Options do not transport Multicast Address anymore (new option).

SOME/IP-SD. TERMS AND DEFINITIONS (1).

SOME/IP-SD. TERMS AND DEFINITIONS (1). − Server : The ECU offering a service instance shall be

Server: The ECU offering a service instance shall be called Server in the context of this service instance.

Client: The ECU using the service instance of a Server shall be called Client in the context of this service instance.

Service Interface: The formal specification of the service including its methods, Events, and Fields.

Service Instance: Software implementation of the service interface, which can exist more than once in the vehicle and more than once on an ECU.

Eventgroup: A logical grouping of Events and notification Events inside a service in order to allow subscription.

SOME/IP-SD. TERMS AND DEFINITIONS (2).

SOME/IP-SD. TERMS AND DEFINITIONS (2). − Method : A method, procedure, function, or subroutine that can

Method: A method, procedure, function, or subroutine that can be called/invoked.

Parameters: Input, output or input/output arguments of a method.

Remote Procedure Call (RPC): A method call from one ECU to another that is transmitted using messages.

Request: A message of the Client to the Server invoking a method.

Response: A message of the Server to the Client transporting results of a method invocation.

Request/Response communication: A RPC that consists of request and response.

Fire&Forget communication: A RPC call that consists only of a request message.

SOME/IP-SD. TERMS AND DEFINITIONS (3).

SOME/IP-SD. TERMS AND DEFINITIONS (3). − Service : A logical combination of zero or more methods,

Service: A logical combination of zero or more methods, zero or more Events, and zero or more Fields (empty service is allowed)

Event: A Fire&Forget callback that is only invoked on changes or cyclic and is sent from Server to Client.

Field: A representation of a remote property, which has up to one getter, up to one setter and up to one notifier.

Getter: A Request/Response call that allows read access to a Field.

Setter: A Request/Response call that allows write access to a Field

Notifier: Sends out Events with a new value on change of the value of the Field

SOME/IP AND SOME/IP-SD. POSTERS.

SOME/IP AND SOME/IP-SD. POSTERS. SOME/IP. Layer 5-7 Layer 4 IEEE 1722 AVB IEEE 802.1AS (PTPv2) AVB

SOME/IP.

Layer 5-7

Layer 4

IEEE

1722

AVB

IEEE

802.1AS

(PTPv2)

AVB

UDP-

NM

UDP

HSFZ

SOME/IP

TCP and/ or UDP

SD

UDP

DHCP

ICMP

ARP

Layer 3 IPv4 SERVICE DISCOVERY AND PUBLISH/ SUBSCRIBE. Layer 2 IEEE Ethernet MAC + VLAN
Layer 3
IPv4
SERVICE DISCOVERY AND PUBLISH/ SUBSCRIBE.
Layer 2
IEEE Ethernet MAC + VLAN (802.1Q)
Layer 1
Automotive Ethernet Physical Layer (BroadR-Reach)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
Header Flags.
Startup Behavior
Publish/Subscribe
Message ID (Service ID / Method ID) [32 bit]
(= 0xFFFF 8100)
Fl
ags [
8 bit
]
R
eserve
d
[
24 bit
]
= 0 000000
x
Length [32 bit]
Server
Client
Client
Server
R
U
Reserved = 0x00
Reserved
[24 bit] = 0x000000
Request ID (Client ID / Session ID) [32 bit]
Unicast-Flag:
initial_delay
1: Response should be unicast / server can override
0: Response should be multicast
Protocol Version [8 bit]
Interface Version [8 bit]
Message Type [8 bit]
Return Code [8 bit]
1x repetitions_
=0x01
=0x01
=0x02
=0x00
base_delay
Reboot-Flag:
1: ECU has just started
0: SOME/IP Session ID has wrapped (starts with 0 again) at least once
Flags [8 bit]
Reserved [24 bit]
2x repetitions_
base_delay
Length of Entries Array [32 bit]
Entries.
4x repetitions_
base_delay
TTL>0
TTL=0
Entries Array
Type
0x00
0x04
0x00
0x04
repetitions
+0x00
FindService
FindEventgroup
(StopFindService)
(StopFindEventgroup)
_max
+0x01
OfferService
PublishEventgroup
StopOfferService
StopPublishEventgroup
Length of Options Array [32 bit]
+0x02
RequestService
SubscribeEventgroup
StopRequest
StopSubscribeEventgroup
cyclic_offers!
+0x03
RequestServiceAck
SubscribeEventgroupAck
StopRequestAck
StopSubscribeEventgroupAck
Format for Type 0x00, 0x01, 0x02, 0x03 (Services)
Options Array
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
Type
Index 1st options
Index 2nd options
# of opt 1
#
of opt 2
Service ID
Instance ID
Major Version
TTL
Minor Version
Reserved IDs.
Example.
Format for Type 0x04, 0x05, 0x06, 0x07 (Eventgroups)
Reserved and special Service-IDs:
IEEE
IEEE
UDP-
SD
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
Layer 5-7
HSFZ
SOME/IP
DHCP
1722
802.1AS
NM
(PTPv2)
ICMP
Type
Index 1st options
Index 2nd options
# of opt 1
#
of opt 2
Service-ID
Description
SOME/IP.
The Service with ID 0xFFFF is reserved for special SOME/IP
Layer 4
UDP
TCP and/ or UDP
UDP
ARP
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
AVB
AVB
Service ID
Instance ID
0x0000
Reserved
features, like Magic Cookies and Service Discovery.
SOME/IP Header with “special service
Message ID (Service ID / Method ID) [32 bit]
and method” (0xFFFF 8100)
(= 0xFFFF 8100)
Major Version
TTL
Length [32 bit]
Layer 3
IPv4
0xFFFE
Reserved for announcing non-SOME/IP
service instances.
= 0x0000 005C (92)
Notification
Reserved (0x0000)
Eventgroup ID
Service not using SOME/IP but being announced with SOME/IP-
Request ID (Client ID / Session ID) [32 bit]
REMOTE PROCEDURE CALL.
SOME/IP and SOME/IP-SD special service
0xFFFF
ECU hat started
Protocol Version [8 bit]
Interface Version [8 bit]
Message Type [8 bit]
Return Code [8 bit]
Layer 2
IEEE Ethernet MAC + VLAN (802.1Q)
(Magic Cookie, SOME/IP-SD,
).
SD have the Service ID 0xFFFE and must carry at least
“otherserv=servicename” in the configuration option, with
“servicenname” being a unique name.
=0x01
=0x01
=0x02
=0x00
Sending Multicast
Flags [8 bit] = 0x80
Reserved [8 bit =0x00]
Layer 1
Automotive Ethernet Physical Layer (BroadR-Reach)
Reserved and special Instance-IDs:
Length of Entries Array in Bytes [32 bit]
Options.
Find Service 0xFFFE
=0x0000 0020 (32)
with Instance ID 0xFFFF for 1h
Type
Index 1st options
Index 2nd options
#
of opt 1
# of opt 2
Instance-IDs
Description
=0x00 (Find)
=0
=0
=0 (none)
= 0 (none)
For Service-IDs, Instance-IDs, and Eventgroup-IDs the value of
Service ID
Instance ID
=0x1001
=0xFFFF (all)
Configuration String (ID=0x01)
Configuration String (Example)
0x0000
Reserved
0xFFFF in the coresponding entry (e.g. FindService or
Major Version
TTL
=0xff (any)
=3600 (search is valid for 1h)
FindEventgroup) shall mean all services, instances, or
Offer Service 0xFFFE
with Instance ID 0x0001 for 3sec
Minor Version
Middleware.
=0xFFFF FFFF (any)
0xFFFF
„All Instances“
eventgroups.
Type
Index 1st options
Index 2nd options
#
of opt 1
# of opt 2
=0x01 (Offer)
=0
=0
=2
=0 (none)
First Option at
Service ID
Instance ID
„Index 1st options“ to run two Options
=0xFFFE
=0x0001
Reserved and special Eventgroup-IDs:
Reserved IDs are also used for future enhancements.
Major Version
TTL
=0x01
=3 (offer is valid for 3 seconds)
Minor Version
IPv4 Endpoint Option (ID=0x04)
IPv4 Multicast Option (ID=0x14)
Eventgroup-IDs
Description
=0x00000032
Length of Options Array in Bytes
= 0x0000 0028 (40)
0x0000
Reserved
IPv4 Endpoint Option
for more Information
App
App
App
Length
Type
Reserved
Message ID (32 Bit).
Payload (variable size).
=0x0009
=0x04 (IPv4 Endpoint)
=0x00
visible:
Interface
IPv4-Address = 192.168.0.1
Middleware
0xFFFF
„All Eventgroups“
Reserved
L4-Proto
Port Number
The Message ID is a 32 Bit identifier that is used to dispatch the RPC call to a method of an
In the payload field the parameters are carried. The serialization of the parameters will be specified in the following section.
IPv6 Endpoint Option (ID=0x06)
IPv6 Multicast Option (ID=0x16)
=0x00
=0x06 (TCP)
=0x1A91
(Port 6801)
visible:
Length
Type
Reserved
application and to identify a notification. The Message ID has to uniquely identify a method.
Configuration String
TCP/ IP-Stack
TCP/ IP-Stack
The size of the payload field depends on the transport protocol used. With UDP the payload can be between 0 and 1400 Bytes. The limitation to 1400 Bytes is
=0x0025
=0x01 (Config)
=0x00
Method-IDs and Event-IDs of Service 0xFFFF:
packages
Ethernet and IP
in on-board net
Comparable with CAN ID.
Service ID
needed in order to allow for future changes to protocol stack (e.g. changing to IPv6 or adding security means).
Method-IDs / Event-IDs
Description
(16 Bit)
[0x16]otherserv=internaldiag[0]
0 Since TCP supports segmentation of payloads, larger sizes are automatically supported.
Service ID (16 Bits)
(single Bit)
Method ID [15 Bits]
first bit: 0 Bit
1 Bit
0x8100
SOME/IP-SD Messages (events)
Method ID
Event ID
Service ID (16 Bits)
1 (single Bit)
Event ID [15 Bits]
(15 Bit)
(15 bit)
Communication Concepts.
Request – a message of the client to the server invoking a method.
Length (32 Bit).
Return Code (8 Bit).
Magic Cookie.
Contact information and status.
Response – a message of the server to the client transporting
C
S
results of a method invocation.
Request/ Response – a RPC that consists of request and response.
Client
Server:
Length is a field of 32 Bits containing the length in Byte of the payload beginning with the Request
ID/ Client ID. The Length does not cover the portion of the header including the Message ID and
The Return Code is used to signal whether a request was successfully been
processed. For simplification of the header layout, every message transports
the field Return Code.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
Contact Person:
Lars Völker, lars.voelker@bmw.de
Last updated: Nov. 2012
Message ID (Service ID / Method ID) [32 bit]
Request/ Response
(= 0xFFFF 0000)
the Length field since it is based on capabilities of the AUTOSAR Socket Adaptor.
Length [32 bit]
Online Appearance: ethernet.bmwgroup.net
Messages of Type REQUEST, REQUEST_NO_RETURN, and Notification
=
0x0000 0008
Method name
Parameter
Return value
have to set the Return Code to 0x00 (E_OK). The allowed Return Codes for
Request ID (Client ID / Session ID) [32 bit]
ChangeVehicleState(VehicleStateNewState) returns Boolean
=
0xDEAD BEEF
Request ID (32 Bit).
Client
Server
specific message types are:
Protocol Version [8 bit]
Interface Version [8 bit]
Message Type [8 bit]
Return Code [8 bit]
ECU
ECU
=0x01
=0x01
=0x01
=0x00
ID
Name
Description
The Request ID allows a client to differentiate multiple calls to the same method. Therefore, the
Server
Client:
0x00
E_OK
No
error occurred
Request ID has to be unique for a single client and server combination only. When generating a
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bit offset
0x01
E_NOT_OK
An
unspecified error occurred
response message, the server has copy the Request ID from the request to the response
Message ID (Service ID / Method ID) [32 bit]
− Request – a message of the client to the server invoking a method.
0x02
E_UNKNOWN_SERVICE
The
requested Service ID is unknown
(= 0xFFFF 8000)
message. This allows the client to map a response to the issued request even with more than
− Fire&Forget – a RPC call that consists only of a request message.
The
requested Method ID is unknown. Service ID is
C
S
Length [32 bit]
0x03
E_UNKNOWN_METHOD
− Message Type „REQUEST_NO_RETURN“.
one request outstanding.
known.
=
0x0000 0008
− Has no reply and gives no Error back.
Service ID and Method ID are known. Application not
Request ID (Client ID / Session ID) [32 bit]
− Request IDs might be reused as soon as the response arrived or is not expected to arrive
0x04
E_NOT_READY
running
=
0xDEAD BEEF
System running the service is not reachable (internal
Protocol Version [8 bit]
Interface Version [8 bit]
Message Type [8 bit]
Return Code [8 bit]
Fire&Forget
0x05
E_NOT_REACHABLE
=0x01
=0x01
=0x02
=0x00
error
code only)
0x06
E_TIMEOUT
A
timeout occurred (internal error code only)
Method name
Parameter
Return value
0x07
E_WRONG_PROTOCOL_VERSION
Version of SOME/IP protocol not supported
ChangeVehicleState(VehicleStateNewState) (kein Wert, da anderer Message Type)
0x08
E_WRONG_INTERFACE_VERSION
Interface version mismatch
In order to allow resynchronization to SOME/IP over TCP in testing and
integration scenarios the SOME/IP Magic Cookie Message shall be used
Client (Sender)
Server (Receiver)
ECU
ECU
anymore (timeout). In most automotive use cases a very low number of outstanding requests
are expected. For small systems without the possibility of parallel requests, the Request ID
might always set to the same value; e.g. 0x00000000
− For AUTOSAR systems the Request ID needs to be structured as shown in the next section.
Even for non-AUTOSAR systems it is recommended to encode the callers Client ID as show.
− The Client ID is the unique identifier for the calling client inside the ECU. The Session ID is a
0x09
E_MALFORMED_MESSAGE
Deserialization error (e.g. length or type incorrect)
between SOME/IP messages over TCP.
Reserved for generic SOME/IP errors. These errors will
0x09 – 0x1f
RESERVED
Before the first SOME/IP message transported in a TCP segment the
be
specified in future versions of this document.
unique identifier chosen by the client for each call. If session handling is not used, the Session
SOME/IP Magic Cookie Message shall be included.
Reserved for specific errors of services and methods.
ID shall be set to 0x0000.
0x20 – 0x3f
RESERVED
These errors are specified by the interface specification
Add SOME/IP Magic Cookie Message once every 10 seconds to the TCP
Event – a Fire&Forget callback that is only invoked on changes or
Client ID (16 Bits)
Session ID (16 Bits)
connection as long as messages are transmitted over this TCP connection.
cyclic and is sent from Server to Client.
C
S
Send from Server to Client.
Notifier – sends out events with a new value on change of the value
New Versions: Nov. 2012 (I-210)
of the field.
Protocol Version (8 Bit).
Reserved IDs.
− is equivalent to Notification at the Property from MOST
Events
− similar to CAN normal cyclic behaviour.
Protocol Version is an 8 Bit field containing the SOME/IP protocol version, which currently shall be
set to 0x01.
Reserved and special Service-IDs:
Reserved and special Instance-IDs:
Method-IDs/ Event-IDs of Service 0xFFFF:
Method name
Parameter
Service-ID
Description
Instance-ID
Description
Method-ID / Event-ID
Description
VehiclePositionChanged(Position position)
0x0000
Reserved
0x0000
Reserved
SOME/IP Ma ic Cookies Messa es
g
0x0000
Client(Receiver)
Server (Sender)
g
(Server Client)
0xFFFF
Reserved
ECU
ECU
Interface Major Version (8 Bit).
0x0101
Enhanced Testability Service
0x8000
SOME/IP Magic Cookies Messages
(Client Server)
Reserved for announcing non-SOME/IP
0xFFFE
service instances.
− Interface Major Version is an 8 Bit field that contains the Major Version of the Service Interface.
0x8100
SOME/IP-SD Messages (events)
SOME/IP and SOME/IP-SD special
− Rationale: This is required to catch mismatches in Service definitions and allows debugging
0xFFFF
Field a representation of a remote property, which has up to one
service (Magic Cookie, SOME/IP-SD,
).
getter, up to one setter, and up to one notifier.
C
S
tools to identify the Service Interface used, if version is used.
Reserved and special Method-IDs/ Event-IDs:
Reserved and special Eventgroup-IDs:
− Getter – a Request/ Response call that allows read access to a field.
− Setter – a Request/ Response call that allows write access to a field.
Method-ID / Event-ID
Description
Eventgroup-ID
Description
Notifier – sends out events with a new value on change of the value of
Message Type (8 Bit).
0x0000
Reserved
0x0000
Reserved (none)
the field.
0x7FFF
Reserved
0xFFFF
Reserved (any)
is equivalent to Notification at the Property from MOST
Field
0x8000
Reserved
Typ
Field name
The Message Type field is used to differentiate different types of messages and may contain the
following values:
0xFFFF
Reserved
GET/SET/NOTIFY UINT16 vehicleSpeed
Number
Value
Description
EventvehicleSpeedChanged(UINT16 vehicleSpeed)
0x00
REQUEST
A request expecting a response (even void)
Contact information and status.
Method setVehicleSpeed(UINT16 vehicleSpeed) + Return
0x01
REQUEST_NO_RETURN
A fire&forget request
0x02
NOTIFICATION
A request of a notification/event callback expecting no response
Method getVehicleSpeed() returns UINT16
Contact Person:
Lars Völker, lars.voelker@bmw.de
Last updated: Nov. 2012
0x80
RESPONSE
The
response message
0x81
ERROR
The
response containing an error
Online Appearance: ethernet.bmwgroup.net
Covered by Length
(incl. Reserved)
Updated SOME/IP Posters are sent out later as pdfs.

Updated SOME/IP Posters are sent out later as pdfs.

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

ABSTRACT SYSTEM ARCHITECTURE. OVERVIEW.

ABSTRACT SYSTEM ARCHITECTURE. OVERVIEW. Application Source of Data C Status and Control SOME/IP-SD A B SOME/IP
Application Source of Data C Status and Control SOME/IP-SD A B SOME/IP Serialization TCP/IP Stack
Application
Source of Data
C
Status and Control
SOME/IP-SD
A
B
SOME/IP Serialization
TCP/IP Stack
Ethernet
A
A

Link up/down

B
B

Get/Set IP Addresses and Ports

C
C

Status Change (up/down/req/rel)

Control
Control

Data

ABSTRACT SYSTEM ARCHITECTURE. PRECONDITIONS.

ABSTRACT SYSTEM ARCHITECTURE. PRECONDITIONS. Application Source of Data C Status and Control SOME/IP-SD A B SOME/IP
Application Source of Data C Status and Control SOME/IP-SD A B SOME/IP Serialization TCP/IP Stack
Application
Source of Data
C
Status and Control
SOME/IP-SD
A
B
SOME/IP Serialization
TCP/IP Stack
Ethernet
Control
Control

Data

Precondition:

Link u p

IP Address assigned

Application ready

A
A

Link up/down

B
B

Get/Set IP Addresses and Ports

C
C

Status Change (up/down/req/rel)

INTERACTION BETWEEN SD INSTANCES. FROM APPLICATION TO FIND SERVICE.

BETWEEN SD INSTANCES. FROM APPLICATION TO FIND SERVICE. Application (Client) Application (Server) 1 SOME/IP-SD
Application (Client) Application (Server) 1 SOME/IP-SD SOME/IP-SD 2 SOME/IP Serialization TCP/IP Stack E h t
Application (Client)
Application (Server)
1
SOME/IP-SD
SOME/IP-SD
2
SOME/IP Serialization
TCP/IP Stack
E h
t ernet
SOME/IP Serialization
TCP/IP Stack
E h
t ernet
3
ernet SOME/IP Serialization TCP/IP Stack E h t ernet 3 Control Data 1 • Application requests
Control
Control

Data

1 •
1

Application requests Service Instance S1 and Eventgroup E1

2 •
2

Client SD sends “FindService S1”

3 •
3

FindService Entry on wire

INTERACTION BETWEEN SD INSTANCES. FROM FIND SERVICE TO OFFER SERVICE.

BETWEEN SD INSTANCES. FROM FIND SERVICE TO OFFER SERVICE. 1 Application (Client) Application (Server) 1 2
1 Application (Client) Application (Server) 1 2 • SOME/IP-SD SOME/IP-SD 3 • 2 4 5
1
Application (Client)
Application (Server)
1
2
SOME/IP-SD
SOME/IP-SD
3
2
4
5
4
SOME/IP Serialization
TCP/IP Stack
E h
SOME/IP Serialization
TCP/IP Stack
E h
5
6
t ernet
t ernet
3
6
TCP/IP Stack E h 5 • 6 • t ernet t ernet 3 6 Control Data
Control
Control

Data

Application requests Service Instance S1 and Eventgroup E1

Client SD sends “FindService S1”

FindService Entry on wire

Multicast SD Message arrives at Server SD instance

Server sends “OfferService S1”

OfferService Entry on wire

INTERACTION BETWEEN SD INSTANCES. FROM OFFER SERVICE TO CLIENT.

BETWEEN SD INSTANCES. FROM OFFER SERVICE TO CLIENT. Application (Client) Application (Server) 1 9 SOME/IP-SD
Application (Client) Application (Server) 1 9 SOME/IP-SD SOME/IP-SD 2 8 4 5 7 SOME/IP Serialization
Application (Client)
Application (Server)
1
9
SOME/IP-SD
SOME/IP-SD
2
8
4
5
7
SOME/IP Serialization
TCP/IP Stack
E h
t ernet
SOME/IP Serialization
TCP/IP Stack
E h
t ernet
3
6
Control
Control

Data

1 •
1

Application requests Service Instance S1 and Eventgroup E1

2 •
2

Client SD sends “FindService S1”

3 •
3

FindService Entry on wire

4 •
4

Multicast SD Message arrives at Server SD instance

5 •
5

Server sends “OfferService S1”

6 •
6

OfferService Entry on wire

7 •
7

Client SD receives Offer

8 •
8

Update addresses

9 •
9

Report “S1 up” to application

INTERACTION BETWEEN SD INSTANCES. SUBSCRIBE EVENTGROUP.

INTERACTION BETWEEN SD INSTANCES. SUBSCRIBE EVENTGROUP. Application (Client) Application (Server) 3 SOME/IP-SD
Application (Client)
Application (Client)
Application (Server)
Application (Server)
3 SOME/IP-SD SOME/IP-SD 2 SOME/IP Serialization TCP/IP Stack t ernet E h SOME/IP Serialization TCP/IP
3
SOME/IP-SD
SOME/IP-SD
2
SOME/IP Serialization
TCP/IP Stack
t ernet
E h
SOME/IP Serialization
TCP/IP Stack
t ernet
E h
1
Control
Control

Data

1 •
1

Client SD also sends SubscribeEventgroup E1 to Server

2 •
2

Server SD receives SubscribeEventgroup and sets up Fanout, sets unicast Event ports

3 •
3

Server SD sets E1 to req

INTERACTION BETWEEN SD INSTANCES. SUBSCRIBE EVENTGROUP.

INTERACTION BETWEEN SD INSTANCES. SUBSCRIBE EVENTGROUP. Application (Client) Application (Server) 6 3 SOME/IP-SD
Application (Client)
Application (Client)
Application (Server)
Application (Server)
6 3 SOME/IP-SD SOME/IP-SD 5 2 SOME/IP Serialization TCP/IP Stack E h t ernet SOME/IP
6
3
SOME/IP-SD
SOME/IP-SD
5
2
SOME/IP Serialization
TCP/IP Stack
E h
t ernet
SOME/IP Serialization
TCP/IP Stack
E h
t ernet
1
4
7
Control
Control

Data

1 •
1

Client SD also sends SubscribeEventgroup E1 to Server

2 •
2

Server SD receives SubscribeEventgroup and sets up Fanout, sets unicast Event ports

3 •
3

Server SD sets E1 to req

4 •
4

Server SD sends SubscribeEventgroupAck

5 •
5

Client SD receives EventgroupAck and sets up multicast port

6 •
6

Client SD and sets E1 to up

7•
7•

Server sends initial Events for Fields

INTERACTION BETWEEN SD INSTANCES. SUMMARY.

INTERACTION BETWEEN SD INSTANCES. SUMMARY. − SOME/IP-SD is needed to achieve synchronized system state − SOME/IP-SD

SOME/IP-SD is needed to achieve synchronized system state

SOME/IP-SD talks to client internally

What is needed? What is offered?

Service/Eventgroup up/down/req/rel

Only when state changed

SOME/IP-SD sends messages on network

Synchronizing state of different SD instances

Cyclic messages

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

AGENDA.

Schedule

Topic

Speaker

09:00-09:05

BMW Training Academy: Ethernet training offer

Sybille Schmidt, PS-310

09:05-09:15

Training Overview

Thomas Königseder, EI-312

09:15-10:45

Basics and Definitions

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

10:45-11:00

Break

 

11:00-11:30

Abstract System Architecture

Lars Völker, EI-312

11:30-12:30

Lunch

 

12:30-14:00

StartUp

Lars Völker, EI-312 Thomas Kirchmeier, EI-312

14:00-14:15

Break

 

14:15-15:15

Shutdown and Restart

Thomas Kirchmeier, EI-312

15:15-15:30

Break

 

15:30-16:45

Error Handling

Lars Völker, EI-312

16:45-17:00

Summary

Thomas Königseder EI-312

,

STARTUP.

Schedule

 

Topic

Speaker

11:30-12:30

 

Lunch

Lars Völker, EI-312

12:30-14:00

Startup

 
 

1.

System Overview

Thomas Kirchmeier, EI-312

 

2 Timings and State Machines

Lars Völker EI-312

.

,

 

3.

Training Example

Thomas Kirchmeier, EI-312

 

4.

Summary

Thomas Kirchmeier, EI-312

14:00-14:15

 

Break

 

SYSTEM OVERVIEW.

SYSTEM OVERVIEW. Ethernet-connected network Wakeup-line UDP-NM/ VehicleCondition − − − System

Ethernet-connected

network

Wakeup-line
Wakeup-line
UDP-NM/ VehicleCondition
UDP-NM/ VehicleCondition

System Behavior Ethernet, EI-312, 2012-11-20.

ZGW

CAN/FlexRay-connected

network

ZGW CAN/FlexRay-connected network Wakeup Wakeup-line/wakeup message Keep awake NM/ VehicleCondition
Wakeup Wakeup-line/wakeup message

Wakeup

Wakeup
Wakeup Wakeup-line/wakeup message
Wakeup Wakeup-line/wakeup message
Wakeup Wakeup-line/wakeup message
Wakeup Wakeup-line/wakeup message

Wakeup-line/wakeup message

Wakeup-line/wakeup message
Keep awake NM/ VehicleCondition

Keep awake

Keep awake NM/ VehicleCondition
Keep awake NM/ VehicleCondition
Keep awake NM/ VehicleCondition
Keep awake NM/ VehicleCondition
Keep awake NM/ VehicleCondition

NM/ VehicleCondition

Keep awake NM/ VehicleCondition