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 (Linux, 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 library, 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/Virtualization in Automotive Systems
ECU Process 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 Hypervisor 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 (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
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 APIs
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 Eclipse 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