Solution Adaptive MICROSAR

Ready for Next Generation ECUs

V1.5.04 | 2019-01-21 Automotive Trends User Experience Connectivity Electrification Automated Driving

Enablers Connectivity Offboard Eco Systems Supercomputers On Board

2 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Automotive Trends

Cloud / Backend  support of high performance processors  high bandwidth

 service based architectures

 open source, agile development

 dynamic and updatable

 internet

 safe

 secure Embedded Systems  embedded integration and debugging

 automotive supply chain

 automotive communication protocols

 automotive diagnostics AUTOSAR Classic

3 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Automotive Trends Adaptive – best of two worlds

Cloud / Backend  supportAdaptive of high performance AUTOSAR processors ➔ system and mobility strategies  high bandwidth ➔ deep learning  service based architectures  open source, agile development

 dynamic and updatable

 internet On board Supercomputers ➔ multipurpose computing servers ➔ connectivity, gateways, HMI  safe ➔ automated driving  secure mastered by OEM  embedded integration and debugging AUTOSAR Adaptive  safe  automotive supply chain  secure Embedded Systems  automotive communication protocols  embedded integration and debugging ➔ intelligent sensors and actuators  automotive diagnostics ➔ basic functions  automotive supply chain ➔ fallback computing  automotive communication protocols

 automotive diagnostics AUTOSAR Classic

4 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Introduction Being Prepared for the Next-Generation of ECUs

Infotainment Adaptive MICROSAR is a Seamless complete basic software interoperability with solution up to ASIL D classic AUTOSAR ECUs

Additional, high source: fotolia performance ECUs hosting applications for ADAS upcoming use cases

Applications installed and Connectivity started during runtime

Development of

applications in the Dynamic Software Platform ecosystem of POSIX- based OS (, PikeOS, QNX, Integrity, …)

5 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Introduction Statically connected HW Ressources

 Hardwired video lines between ECUs video line

 Pre-defined CAN messages on bus video line

 Exclusive camera usage

CAN Steering Angle Park Assist Activation …

6 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Introduction Flexible use of HW Ressources

Service Interfaces  Smart sensors/actuators provide HW over service interface

 All ECUs connected via Ethernet

 Compound service, using base services as lower layer

 Applications can provide services for e.g. HMI integration

 No function oriented wiring

Switch

7 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Introduction Drivers for Adaptive AUTOSAR

Infotainment Highly Automated Driving

source: fotolia

 2D/3D acceleration support in POSIX systems  Image- and preprocessing of Camera/Radar/LIDAR

 Video Codecs, Streaming support, multi-media , etc. …  Sensor Fusion and Machine Learning

Connectivity Dynamic Software Platform

 Car-2-X (LTE, Wi-Fi, GPS, etc.)  “App-Store” for automotive applications

 Multimedia (USB, SD-Card, NFC, etc.)  Installation and update over the air

8 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Introduction Use Cases for POSIX/ in Automotive Systems

ECU 1 MCU Process 2 MCU 1 (POSIX) MCU 2 (native POSIX) (MICROSAR) (MICROSAR) Applications as Driver SPI/ETH IPC IPC OS IPC IPC MEM 1 POSIX besides MICROSAR POSIX 2 (previously used set-up) POSIX besides MICROSAR (current QM set-up)

Core 1 MCU Core 1 or 2 (POSIX) (MICROSAR) Process 1 MCU Process 2 3 (ADAPTIVE) (ADAPTIVE) IPC IPC MEM Middleware POSIX POSIX besides MICROSAR (current safety set-up) (Hypervisor) 4 Adaptive Autosar (upcoming perspective)

9 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Agenda

Automotive Trends Introduction  Fundamentals Details and Functional Clusters Activities and Roadmap

10 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals AUTOSAR Product Comparison

AUTOSAR Classic Platform - CP AUTOSAR Adaptive Platform - AP

Application Actuator Sensor Application Software Software Software Software SWC SWC AUTOSAR SWC Component Component Application Layer Component Component Runtime Environment for Adaptive Applications AUTOSAR Interface AUTOSAR Interface AUTOSAR Interface AUTOSAR Interface OS COM API OS COM API OS COM API

Runtime Environment API (tsync) API () API (com) Adaptive Platform Services Time Execution Communication Synchronization Management Management Service (nm) Service (diag) Network Memory Communication API (phm) API (log) API (per) Diagnostics System Services Management Services Services Platform Health Logging & Persistency Management Tracing I/O Hardware Service (s2s) Service (sm) Abstraction Signal to Service State API (iam) API (rest) API (crypto) Memory Communication Mapping Management Onboard Device Complex Identity Access Hardware Hardware RESTful Cryptography Abstraction Drivers Management Abstraction Abstraction Service (ucm) API (core) POSIX PSE51 / C++ STL Update & Configuration Management Core Types Microcontroller Communication Memory Drivers I/O Drivers Drivers Drivers Adaptive Platform Foundation

Microcontroller (Virtual) Machine / Hardware

 All modules completely specified  Less modules, only API specification

 Developed in C  Developed in C++

 Whole stack compiled and linked in one piece  Services as POSIX processes, separately installable

 Will still remain in the current focus  Service oriented communication (SOME/IP)

 Configuration compiled in  Configuration loaded from manifest files

11 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals AUTOSAR Product Comparison

AUTOSAR Classic Platform - CP AUTOSAR Adaptive Platform - AP

Application Actuator Sensor Application Software Software Software Software SWC SWC AUTOSAR SWC Component Component Application Layer Component Component Runtime Environment for Adaptive Applications AUTOSAR Interface AUTOSAR Interface AUTOSAR Interface AUTOSAR Interface ARA ARA ARA

Runtime Environment API (tsync) API (exec) API (com) Adaptive Platform Services Time Execution Communication Synchronization Management Management Service (nm) Service (diag) Network Memory Communication API (phm) API (log) API (per) Diagnostics System Services Management Services Services Platform Health Logging & Persistency Management Tracing I/O Hardware Service (s2s) Service (sm) Abstraction Signal to Service State API (iam) API (rest) API (crypto) Memory Communication Mapping Management Onboard Device Complex Identity Access Hardware Hardware RESTful Cryptography Abstraction Drivers Management Abstraction Abstraction Service (ucm) API (core) POSIX PSE51 / C++ STL Update & Configuration Management Core Types Operating System Microcontroller Communication Memory Drivers I/O Drivers Drivers Drivers Adaptive Platform Foundation

Microcontroller (Virtual) Machine / Hardware

Real Time Requirements

Safety Critical

Computing Power

12 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals Adaptive Applications

 Application > Multi-threaded Application (1:n Executables) > Execution states POSIX Process > Manifest contains platform related information (recovery action, INIT: dependencies to services or libraries) Manifest > Instance configuration contains application specific static information RUN:

(variant, options, …)

Thread Thread Thread  Interfaces Instance SHUTDOWN: Configuration > ara::com for communication with adaptive services PSE51 (basic services and user applications) ara::com Direct API C++ Stdlib > PSE51 is the usable OS API subset Adaptive Adaptive > The Adaptive AUTOSAR Foundation POSIX OS AUTOSAR AUTOSAR clusters (Execution Management, Services Foundation Persistency, etc.) are available via direct

13 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals Vector’s Adaptive Implementation

 Implementation available for several platforms  Guided configuration via IDE in Plugin

 Application logic is strictly separated from configuration (see /opt/ deployment directory)

 Code examples based on Vector’s implementation

14 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals Cluster Availability in Adaptive MICROSAR – 01/2019

under development

15 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals Tools and Workflow

Service Application Code Deploy Package Vehicle Description /opt/myApp/ (ARXML) Installed APP Installed APP Logic BIN BIN BIN Executable Executable AppSWCTypes ./bin/myApp Config. Config. libara Proxies / (JSON) (JSON) PortPort Port Skeletons Instance Instance Config. Config. SOME/IP (JSON) (JSON) ServiceInterface Serializer Execution Manifest ServiceInterfaceServiceInterface

Compiler ./etc/MANIFEST.arxml Generators E2E libsomeip Execution

Authoring Tool Authoring Serializer Manage- ComServer SOME/IP Config ment

POSIX IPC Instance Manifest(s) POSIX IPC

./etc/instance1.arxml Management Configuration Software Diagnostics SOMEIPd ./etc/instance2.arxml BSD Sock

Generated Static

16 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals Tooling: DaVinci Adaptive Tool Suite

1. Assistants for various 1 tasks like creation of SOME/IP deployment 5 2. Easy to understand 2 DSL to represent ARXML models. With linting support 3. Auto-completion for references and model 3 elements 4. Built-in CFG-5 generators. Direct modelling feedback and resolution suggestions 4 5. Cheat Sheets guide through the process of service creation

17 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals PREEvision: Adaptive system design with PREEvision 7 1 2

Service Interface Description 5 Adaptive System Description

Manifest 6 3 1. Diagram-based design of 5. Graphical design of Ethernet service interfaces topologies 2. Modeling of implementation 6. Assistant for creation and details of the service interfaces mapping of service instances on machines 4 3. Design of the SW components, executables and adaptive 7. Import and export of different applications model subsets in AUTOSAR XML 4. Table-based editing of deploy- ment aspects as SOMEIP IDs 18 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Fundamentals Adaptive MICROSAR Evaluation Bundle

Test your application Implement your services Adaptive MICROSAR Prepared build scripts directly in native using Eclipse source included for native Linux environment

Bundle is available off-the shelf and includes:

> Free recorded training Webinar

> Application Developer Guide

> DaVinci Adaptive Tool Suite (1 year license)

19 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Agenda

Automotive Trends Introduction Fundamentals  Details and Functional Clusters Activities and Roadmap

20 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Communication: ara::com

 Service-oriented communication

APP 1 APP 2  Location-transparent

 Supports multiple communication bindings ara::com  AUTOSAR model defines available bindings for each service provider and consumer  Explicit support for optimized shared memory implementations Services

 Applications connected at runtime (Service Discovery)

 Find service instances dynamically without hardwiring in model

 Connection between proxies and skeletons can be recovered

 Real-time support: Developers’ choice of polling or event-driven processing of communication

21 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Communication: Method Calls

 Communication initiated by the service consumer

 Bidirectional data flow

 N:1 communication: method can be called by multiple consumers  Provider controls how parallel method calls are handled (serial, full parallel)

ECU 1 (3) Method implementation called: ECU 2 ReturnType SWC1 (1) Call method as you would call a SWC2 function: Skeleton::Method(arg,…) { Client (program Service (program logic) f = Proxy.method(arg, …) return return_value; logic)

ara::com “f” is the handle for the call } ara::com

Serialize Serialize (SOME/IP, E2E) (SOME/IP, E2E)

IPC IPC

(5) Call result can be obtained using f.get()

(4) Call result transmitted (2) Method call transmitted

22 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Communication: Sending Events

 Communication initiated by the service provider

 Unidirectional data flow from provider to consumers  1:n communication

 Consumer controls buffering strategy of events

 Event has a value only in the instant that it occurs ECU 1 ECU 2 SWC1 SWC2 (1) skeleton.event.send(value) Client (program Service (program logic) logic) (3) Event stored in “invisible” buffer ara::com (4) User calls event.update() – ara::com Predefined number of events moved to Serialize visible buffer Serialize (SOME/IP, E2E) (SOME/IP, E2E)

IPC IPC

(2) Event containing value

23 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Execution Management: ara::exec

 OS launches Execution Manager (EM) (PID1, “init”)

 EM inspects system for installed applications  E.g., scan filesystem in /opt/ for application manifests Startup

 EM runs startup applications (fork(), exec())  e.g., bring up IP stack

 EM consults Machine State Manager to determine desired machine state  Machine state defines set of applications desired to run

 EM starts/stops applications to reach desired machine state (fork(), exec(), signal(SIGTERM))  EM configures scheduling parameters & resource limits  Configuration data obtained from application manifest ECU running

 EM monitors for machine state changes or process termination

24 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Execution Management: Connecting Applications - Example

 Communication via API (library with IPC included)

 Functionality provided by Execution Manager  API for applications to report application state (e.g. kInitializing, kRunning, kShuttingdown)  API for Machine State Manager to > Register as MSM > Request machine state > Get current machine state

Adaptive Application - AA Machine State Manager

MachineState ApplicationState SetMachineState() ReportApplicationState() GetMachineState()

Execution Management - exec

25 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Diagnostics: Overview

No fundamental changes to existing diagnostic workflows (like development, production, Application (Software Components) workshop,…) due to Adaptive Platform Diagnostic Coding Diagnostic Monitor  Main Tasks DiagnosticCallbacks Measurements Diagnostic Monitor DiagnosticCallbacks Routines Diagnostic Monitor  ISO 14229-5 (UDSonIP)  Including fault-memory (DTC) handling

 Including transport layers (i.e. DoIP – ara::com Faults ISO 13400-x)

 Configurable via AUTOSAR Diagnostic Diagnostic Manager Extract (DEXT)

 ARA service  Uses ara::com interfaces Diagnostic Request Diagnostic Response

Tester

26 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Diagnostics: Configuration workflow (DEXT)

CANdela DEXT Studio

Diagnostic Design references

MANIFEST PREEvision (Design)

System Design

27 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Persistency: ara::per

 library based access to non-volatile memory for Adaptive Applications.

 Key-Value Storage  Stream Storage  Multiple values stored in one storage location  Raw access to storage locations/files  Addressing of single values by using a key as identifier  Used for access to files in any format  Multiple storage locations/databases can be used  API derived from C++ Standard Library  Database format not specified by AUTOSAR std::fstream classes

28 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Details and Functional Clusters Identity and Access Management

 Offers intra ECU and inter ECU access management

 A policy decision point decides whether resource access is granted or not

Adaptive OEM PDP Application “x” Application

1. Request action 2. Is Application “x” authorized? processed Identity and Access execution Functional Cluster Management manifests

3. Yes database

4. Perform request (e.g. access resource, Policy enforcement point (PEP) communicate, get information, etc.) Policy decision point (PDP)

29 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Agenda

Automotive Trends Introduction Fundamentals Details and Functional Clusters  Activities and Roadmap

30 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Activities and Roadmap Safety as a necessity for high performance ECUs

 Use cases such as highly automated driving easily demand safety up to ASIL D Platform Partition Pool for Adaptive Applications Applications (AA)

 Architecture in high performance controllers is complex due to many involved abstraction DM AA partition n layers: … …  BSP from semiconductor vendor IP File EM COM AA partition 0  Hypervisor Stack System  Multiple Operating Systems  POSIX libraries  Adaptive AUTOSAR Basic Software  Service Oriented Applications Components

 Typically many vendors involved for these Ethernet components

PikeOS  Vector is providing the complete and ready to go solution for such controllers out of one hand.

31 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Activities and Roadmap Vectors Adaptive Activities

 Series production  Integrated tool concept projects have been  Evaluation Bundle started for many Available Off-the-shelf Products customers  Products synchronized with Autosar specification

Series Specification Production of Adaptive Development platform

 Linux

 QNX  All feature teams are Multiple POSIX systems integrated covered  PikeOS  Active participation in all working groups

32 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Activities and Roadmap Planned Adaptive MICROSAR Roadmap

Adaptive MICROSAR Adaptive MICROSAR Adaptive MICROSAR R1: R3: R5:

Development Release Production Release Production Release (QM) (ASIL D)

2018 2019 2020

PikeOS/MICROSAR PikeOS/MICROSAR PikeOS/MICROSAR Integration Integration Integration

Development Release Production Release Production Release (QM) (ASIL D)

 Adaptive MICROSAR development started in 2015

 Adaptive MICROSAR used in many evaluation and prototyping projects

 Adaptive MICROSAR used in the first series production projects

33 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 Activities and Roadmap Project Phases Overview

Project n

Project 1

Production License

MA SLP 18% year

License Custom Prototype Production SIP no branch possible SIP MA SIP MA Base Package 35% year Base Package 18% year MA MA OEM Add-on OEM Add-on 35% year 18% year Tools & BSW Branch/Freeze Evaluation Continuous Development Package

Development Share Nomination Up to 12 deliveries per year from OEM Ongoing updates

34 © 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21 For more information about Vector and our products please visit www.vector.com

Author: Dr. Markus Oertel, Mirko Tischer Vector Germany

© 2019. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V1.5.04 | 2019-01-21