AUTOSAR EXP LayeredSoftwareArchitecture
AUTOSAR EXP LayeredSoftwareArchitecture
- AUTOSAR Confidential -
Document Title Layered Software Architecture
Revision 3
- AUTOSAR Confidential -
- AUTOSAR Confidential -
- AUTOSAR Confidential -
Disclaimer
This specification and the material contained in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the specification.
The material contained in this specification is protected by copyright and other types of Intellectual Property Rights. The commercial
exploitation of the material contained in this specification requires a license to such Intellectual Property Rights.
This specification may be utilized or reproduced without any modification, in any form or by any means, for informational purposes only.
For any other purpose, no part of the specification may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The AUTOSAR specifications have been developed for automotive applications only. They have neither been developed, nor tested for
non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
- AUTOSAR Confidential -
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
This document does not contain requirements and is informative only. The examples given are
not meant to be complete in all respects.
Inputs
This document is based on specification and requirement documents of AUTOSAR.
- AUTOSAR Confidential -
NOTE: In the AUTOSAR sense an ECU means one microcontroller plus peripherals and the according
software/configuration. The mechanical design is not in the scope of AUTOSAR. This means that if more
than one microcontroller in arranged in a housing, then each microcontroller requires its own description of
an AUTOSAR-ECU instance.
AUTOSAR extensibility
The AUTOSAR Software Architecture is a generic approach:
standard modules can be extended in functionality, while still being compliant,
still, their configuration has to be considered in the automatic Basic SW configuration process!
non-standard modules can be integrated into AUTOSAR-based systems as Complex Drivers and
The AUTOSAR Architecture distinguishes on the highest abstraction level between three
software layers: Application, Runtime Environment and Basic Software which run on a
Microcontroller.
Application Layer
Microcontroller
- AUTOSAR Confidential -
The AUTOSAR Basic Software is further divided in the layers: Services, ECU Abstraction,
Microcontroller Abstraction and Complex Drivers.
Application Layer
Runtime Environment
Services Layer
Complex
ECU Abstraction Layer Drivers
Microcontroller
- AUTOSAR Confidential -
The Basic Software Layers are further divided into functional groups. Examples of Services
are System, Memory and Communication Services.
Application Layer
Runtime Environment
System Services Memory Services Communication Services I/O Hardware Abstraction Complex
Drivers
Microcontroller
- AUTOSAR Confidential -
Microcontroller
Properties
Implementation: µC dependent
Upper Interface: standardized and µC
independent
- AUTOSAR Confidential -
Microcontroller
Task
Make higher software layers independent of
ECU hardware layout
Properties
Implementation: µC independent, ECU hardware
dependent
Upper Interface: µC and ECU hardware
independent
- AUTOSAR Confidential -
Complex
Drivers
functionality, e.g. drivers for devices: ECUECU Abstraction
Abstraction Layer
Layer
which are not specified within AUTOSAR,
Microcontroller Abstraction Layer
with very high timing constrains or
for migration purposes etc. Microcontroller
Properties
Implementation: might be application, µC and ECU
hardware dependent
Upper Interface: might be application, µC and ECU
hardware dependent
- AUTOSAR Confidential -
Complex
Drivers
Vehicle network communication and management
ECUECU Abstraction
Abstraction Layer
Layer
services
Memory services (NVRAM management) Microcontroller Abstraction Layer
Diagnostic Services (including UDS communication, error
memory and fault treatment) Microcontroller
ECU state management, mode management
Logical and temporal program flow monitoring (Wdg
manager)
Task
Provide basic services for applications and basic
software modules.
Properties
Implementation: mostly µC and ECU hardware
independent
Upper Interface: µC and ECU hardware independent
- AUTOSAR Confidential -
Services Layer
Above the RTE the software architecture style
Complex
Drivers
changes from “layered“ to “component style“.
ECUECU Abstraction
Abstraction Layer
Layer
Task
Make AUTOSAR Software Components independent
from the mapping to a specific ECU.
Properties
Implementation: ECU and application specific
(generated individually for each ECU)
Upper Interface: completely ECU independent
- AUTOSAR Confidential -
The Basic Software can be subdivided into the following types of services:
Input/Output (I/O)
Standardized access to sensors, actuators and ECU onboard peripherals
Memory
Standardized access to internal/external memory (non volatile memory)
Communication
Standardized access to: vehicle network systems, ECU onboard communication systems and
ECU internal SW
System
Provision of standardizeable (operating system, timers, error memory) and ECU specific
(ECU state management, watchdog manager) services and library functions
- AUTOSAR Confidential -
A driver contains the functionality to control and access an internal or an external device.
Internal devices are located inside the microcontroller. Examples for internal devices are:
Internal EEPROM
Internal CAN controller
Internal ADC
A driver for an internal device is called internal driver and is located in the Microcontroller
Abstraction Layer.
- AUTOSAR Confidential -
External devices are located on the ECU hardware outside the microcontroller. Examples for
external devices are:
External EEPROM
External watchdog
External flash
A driver for an external device is called external driver and is located in the ECU Abstraction
Layer. It accesses the external device via drivers of the Microcontroller Abstraction Layer.
This way also components integrated in System Basis Chips (SBCs) like transceivers and
watchdogs are supported by AUTOSAR.
Example: a driver for an external EEPROM with SPI interface accesses the external
EEPROM via the handler/driver for the SPI bus.
Exception:
The drivers for memory mapped external devices (e.g. external flash memory) may access the
microcontroller directly. Those external drivers are located in the Microcontroller Abstraction
Layer because they are microcontroller dependent.
- AUTOSAR Confidential -
An Interface (interface module) contains the functionality to abstract from modules which are
architecturally placed below them. E.g., an interface module which abstracts from the
hardware realization of a specific device. It provides a generic API to access a specific type of
device independent on the number of existing devices of that type and independent on the
hardware realization of the different devices.
Example: an interface for a CAN communication system provides a generic API to access CAN
communication networks independent on the number of CAN Controllers within an ECU and
independent of the hardware realization (on chip, off chip).
- AUTOSAR Confidential -
A handler is a specific interface which controls the concurrent, multiple and asynchronous
access of one or multiple clients to one or more drivers. I.e. it performs buffering, queuing,
arbitration, multiplexing.
Handler functionality is often incorporated in the driver or interface (e.g. SPIHandlerDriver, ADC
Driver).
- AUTOSAR Confidential -
A manager offers specific services for multiple clients. It is needed in all cases where pure
handler functionality is not enough to abstract from multiple clients.
Besides handler functionality, a manager can evaluate and change or adapt the content of the
data.
Example: The NVRAM manager manages the concurrent access to internal and/or external
memory devices like flash and EEPROM memory. It also performs distributed and reliable
data storage, data checking, provision of default values etc.
- AUTOSAR Confidential -
AUTOSAR Libraries
Libraries: Runtime Environment (RTE)
can be called by BSW modules (that Basic Software
including the RTE), SW-Cs, libraries
or integration code
run in the context of the caller in the
same protection environment
can only call libraries
are re-entrant ECU Hardware
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
Complex Drivers
System Services Services I/O HW
The µC Abstraction Layer consists of the following module groups: Services
Abstraction
Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
Communication Drivers Micro- Communi-
Drivers for ECU onboard (e.g. SPI) and vehicle communication (e.g. CAN). controller
Memory
cation
I/O
Drivers Drivers
OSI-Layer: Part of Data Link Layer Drivers Drivers
I/O Drivers Microcontroller (µC)
Drivers for analog and digital I/O (e.g. ADC, PWM, DIO)
Memory Drivers
Drivers for on-chip memory devices (e.g. internal Flash, internal EEPROM) and memory mapped external memory devices
(e.g. external Flash)
Microcontroller Drivers
Drivers for internal peripherals (e.g. Watchdog, General Purpose Timer)
Functions with direct µC access (e.g. Core test) Group of
Software
modules of
Microcontroller Drivers Memory Drivers Communication Drivers I/O Drivers
similar type
Ethernet Driver
FlexRay Driver
PORT Driver
PWM Driver
MCU Driver
ADC Driver
CAN Driver
GPT Driver
Flash Test
DIO Driver
ICU Driver
LIN Driver
RAM Test
Core Test
Software
module
internal
Clock Unit
EEPROM
peripheral
Power &
FLASH
LIN or
PWM
CCU
WDT
MCU
CAN
ADC
GPT
DIO
SCI
SPI
Microcontroller device
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
The SPIHandlerDriver allows concurrent Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
access of several clients to one or more SPI Micro-
Memory
Communi-
I/O
controller cation
busses. Drivers
Drivers
Drivers
Drivers
Microcontroller (µC)
External
External Driver for ext. Driver for ext.
EEPROM
Watchdog Driver ADC ASIC I/O ASIC
Driver
Communication Drivers
SPIHandlerDriver
µC SPI
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
A Complex Driver is a module which implements non- Onboard Memory COM HW
Abstraction
standardized functionality within the basic software Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
stack. controller
Memory
cation
I/O
Drivers Drivers
Drivers Drivers
Microcontroller (µC)
An example is to implement complex sensor
evaluation and actuator control with direct access
to the µC using specific interrupts and/or complex Example:
µC peripherals (like PCP, TPU), e.g.
Complex Drivers
Injection control
Electric valve control
Incremental position detection
Injection Control
Task:
Fulfill the special functional and timing requirements
for handling complex sensors and actuators
Properties:
Implementation: highly µC, ECU and application
dependent
Upper Interface to SW-Cs: specified and implemented
according to AUTOSAR (AUTOSAR interface)
e.g. CCU
e.g. PCP
e.g. TPU
Lower interface: restricted access to Standardized µC
Interfaces
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
The I/O Hardware Abstraction is a group of modules Onboard Memory COM HW
Abstraction
which abstracts from the location of peripheral I/O Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
devices (on-chip or on-board) and the ECU controller
Memory
cation
I/O
Drivers Drivers
hardware layout (e.g. µC pin connections and Drivers Drivers
SPIHandler
ADC Driver
DIO Driver
Properties:
Driver
Implementation: µC independent, ECU hardware
dependent
Upper Interface: µC and ECU hardware independent,
dependent on signal type specified and
ADC
DIO
SPI
implemented according to AUTOSAR (AUTOSAR µC
interface)
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
The Communication Hardware Abstraction is a Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
group of modules which abstracts from the Micro- Communi-
Memory I/O
location of communication controllers and the ECU controller
Drivers
cation
Drivers
Drivers Drivers
hardware layout. For all communication systems a
Microcontroller (µC)
specific Communication Hardware Abstraction is
required (e.g. for LIN, CAN, FlexRay).
Example: An ECU has a microcontroller with 2 internal
CAN channels and an additional on-board ASIC
with 4 CAN controllers. The CAN-ASIC is Example:
connected to the microcontroller via SPI. Communication Hardware Abstraction
Provide equal mechanisms to access a bus channel I/O Drivers Communication Drivers
SPIHandler
CAN Driver
DIO Driver
Driver
Properties:
Implementation: µC independent, ECU hardware
dependent and external device dependent
CAN
DIO
SPI
µC
Upper Interface: bus dependent, µC and ECU
hardware independent
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
The Memory Hardware Abstraction is a group of Onboard Memory COM HW
Abstraction
modules which abstracts from the location of Dev. Abstr. HW Abstr. Abstr.
peripheral memory devices (on-chip or on-board) Micro-
Memory
Communi-
I/O
controller cation
and the ECU hardware layout. Drivers
Drivers
Drivers
Drivers
Flash Driver
SPIHandler
EEPROM
(EEPROM, Flash).
Internal
Driver
Driver
Properties:
Implementation: µC independent, external device
dependent
EEPROM
Flash
SPI
Upper Interface: µC, ECU hardware and memory µC
device independent
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
The Onboard Device Abstraction contains Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
drivers for ECU onboard devices which Micro-
Memory
Communi-
I/O
controller cation
cannot be seen as sensors or actuators like Drivers
Drivers
Drivers
Drivers
Example:
Task: Onboard Device Abstraction
Abstract from ECU specific onboard devices. Watchdog Interface
External
Watchdog Driver
SPIHandler
watchdog
Driver
device dependent
internal
driver
Upper Interface: µC independent, partly ECU
hardware dependent
Wdg
SPI
µC
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
The Communication Services are a group of Onboard Memory COM HW
Abstraction
modules for vehicle network communication (CAN, Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
LIN and FlexRay). They interface with the controller
Memory
cation
I/O
Drivers Drivers
communication drivers via the communication Drivers Drivers
Task:
Provide a uniform interface to the vehicle network for
communication.
Provide uniform services for network management
Provide uniform interface to the vehicle network for Example:
diagnostic communication Communication Services
Hide protocol and message properties from the Generic NM
application. DCM Interface
AUTOSAR Diagnostic
Debugging
COM Com.
Manager
Properties: <Bus
specific>
Implementation: µC and ECU HW independent, partly State <Bus
Manager
dependent on bus type PDU Router
specific>
NM
IPDU
Upper Interface: µC, ECU hardware and bus type Multiplexer
<Bus specific>
independent Transport Protocol
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Example: Abstraction
Onboard Memory COM HW
Communication Services Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
Memory I/O
Generic NM controller cation
Debugging
Diagnostic
Drivers Drivers
Manager
Com. Interface Drivers Drivers
AUTOSAR
COM Microcontroller (µC)
CAN
State
PDU Router Manager The CAN Communication Services are a group of modules
Multiplexer
CAN NM
for vehicle network communication with the communication
IPDU
CAN Transport
Protocol
J1939 Transport
system CAN.
Protocol
Task:
Communication Hardware Abstraction Provide a uniform interface to the CAN network. Hide
protocol and message properties from the application.
CAN Interface
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Properties: Onboard
Dev. Abstr.
Memory
HW Abstr.
COM HW
Abstr.
Implementation: µC and ECU HW independent, partly Micro-
Memory
Communi-
I/O
controller cation
dependent on CAN. Drivers
Drivers
Drivers
Drivers
Complex Drivers
System Services Services
Services I/O HW
Example: Abstraction
Onboard Memory COM HW
Communication Services Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
Memory I/O
Generic NM controller cation
Debugging
Diagnostic
Drivers Drivers
Manager
Com. Interface Drivers Drivers
AUTOSAR
COM Microcontroller (µC)
CAN
State
Manager The TTCAN Communication Services are the optional
multiplexer
SPIHandler
Please Note:
DIO Driver CAN Driver TTCAN
Driver
The CAN Interface with TTCAN can serve both a
µC SPI TTCAN
plain CAN Driver and a CAN Driver TTCAN.
External
TTCAN Controller
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Properties: Onboard
Dev. Abstr.
Memory
HW Abstr.
COM HW
Abstr.
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Example: Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
Communication Services Memory I/O
controller cation
Drivers Drivers
Drivers Drivers
Generic
Diagnostic
Microcontroller (µC)
Manager
NM
Com.
AUTOSAR
Interface
COM
LIN State
The LIN Communication Services are a group of modules for vehicle
Manager network communication with the communication system LIN.
LIN NM
PDU Router Task:
Provide a uniform interface to the LIN network. Hide protocol and
message properties from the application.
Communication Hardware Abstraction
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Note: Integration of LIN into AUTOSAR: Onboard
Dev. Abstr.
Memory
HW Abstr.
COM HW
Abstr.
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
LIN Slaves usually are „intelligent“ actuators and Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
slaves that are seen as black boxes. As they Micro- Communi-
Memory I/O
provide very little hardware capabilities and controller
Drivers
cation
Drivers
Drivers Drivers
resources, it is not intended to shift AUTOSAR SW-
Microcontroller (µC)
Components onto such systems. Therefore it is not
necessary to have an AUTOSAR system on LIN
Slaves.
Complex Drivers
Example: System Services Services
Services I/O HW
Abstraction
Communication Services Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
Generic Micro- Communi-
Debugging
Diagnostic
NM Memory I/O
Manager controller cation
Com.
AUTOSAR Interface Drivers Drivers
Drivers Drivers
COM
Microcontroller (µC)
FlexRay
State
Manager The FlexRay Communication Services are a group
PDU Router FlexRay
of modules for vehicle network communication with
multiplexer
NM
IPDU
Task:
Communication Hardware Abstraction
Provide a uniform interface to the FlexRay network.
FlexRay Interface
Hide protocol and message properties from the
application.
Driver for FlexRay Driver for external
Transceiver FlexRay Controller
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Properties: Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
Implementation: µC and ECU HW independent, Micro-
Memory
Communi-
I/O
controller cation
partly dependent on FlexRay. Drivers
Drivers
Drivers
Drivers
- AUTOSAR Confidential -
Complex Drivers
Example: System Services Services
Services I/O HW
Abstraction
Onboard Memory COM HW
Communication Services Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
Memory I/O
Generic NM controller cation
Debugging
Diagnostic
Drivers Drivers
Manager Interface Drivers Drivers
Com.
AUTOSAR
COM Microcontroller (µC)
Ethernet
UDP NM
State The TCP/IP Communication Services are a
Manager
group of modules for vehicle network
multiplexer
PDU Router
IPDU
µC MII Ethernet
External
Ethernet Controller
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Properties: Onboard
Dev. Abstr.
Memory
HW Abstr.
COM HW
Abstr.
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
General communication stack properties: Onboard
Dev. Abstr.
Memory
HW Abstr.
COM HW
Abstr.
Micro- Communi-
Memory I/O
controller cation
Drivers Drivers
Drivers Drivers
A signal gateway is part of AUTOSAR COM to route Microcontroller (µC)
signals.
PDU based Gateway is part of PDU router.
IPDU multiplexing provides the possibility to add
information to enable the multiplexing of I-PDUs (different
contents but same IDs on the bus).
Upper Interface: µC, ECU hardware and network type
independent.
For refinement of GW architecture please refer to
“Example Communication”
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
The Memory Services consist of one module, Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
the NVRAM Manager. It is responsible for Micro-
Memory
Communi-
I/O
controller cation
the management of non volatile data Drivers
Drivers
Drivers
Drivers
etc.
NVRAM Manager
Properties:
Implementation: µC and ECU hardware
independent, highly configurable
Upper Interface: µC and ECU hardware
independent specified and implemented
according to AUTOSAR
(AUTOSAR interface)
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
The System Services are a group of modules Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
and functions which can be used by modules Micro-
Memory
Communi-
I/O
controller cation
of all layers. Examples are Real Time Drivers
Drivers
Drivers
Drivers
Watchdog Manager
Diagnostic Log and
Development Error
Function Inhibition
Manager (ComM)
Manager (BswM)
Diagnostic Event
Manager (Dem)
Communication
Manager (FIM)
base Manager
Tracer (Det)
Trace (Dlt)
dependent (like ECU State Manager) or
(WdgM)
(StbM)
(EcuM)
hardware and µC independent.
Task:
AUTOSAR OS
Provide basic services for application and
basic software modules.
Properties:
Implementation: partly µC, ECU hardware and
application specific
Upper Interface: µC and ECU hardware
independent
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Application Layer Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
Micro- Communi-
Memory I/O
AUTOSAR Runtime Environment (RTE) controller
Drivers
Drivers
cation
Drivers
Drivers
Watchdog Manager
Communication Microcontroller (µC)
Services
System Services
Function Inhibition
Manager Diagnostic Communi-
Development Error cation Manager
Tracer There are dedicated modules for different aspects
Diagnostic Log Debugging
and Trace of error handling in AUTOSAR. E.g.:
Diagnostic Event XCP The Debugging module supports debugging of
Manager
the AUTOSAR BSW. It interfaces to ECU
Onboard Device Communication internal modules and to an external host system
Abstraction Hardware
Abstraction via communication .
Watchdog Interface
The Diagnostic Event Manager is responsible
Microcontroller Drivers Communication
for processing and storing diagnostic events
Drivers (errors) and associated FreezeFrame data.
Watchdog Driver
The module Diagnostic Log and Trace
supports logging and tracing of applications. It
Microcontroller collects user defined log messages and converts
them into a standardized format.
All detected development errors in the Basic Software are reported to Development Error Tracer.
The Diagnostic Communication Manager provides a common API for diagnostic services
etc.
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Abstraction
The Sensor/Actuator AUTOSAR Software Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
Component is a specific type of AUTOSAR Micro- Communi-
Memory I/O
Software Component for sensor evaluation controller
Drivers
Drivers
cation
Drivers
Drivers
and actuator control. Though not belonging Microcontroller (µC)
to the AUTOSAR Basic Software, it is
described here due to its strong relationship
to local signals. It has been decided to locate
the Sensor/Actuator SW Components above Example:
the RTE for integration reasons
(standardized interface implementation and
Application Layer
interface description). Because of their
strong interaction with raw local signals, Actuator Sensor
relocatability is restricted. Software Software
Component Component
Task:
Provide an abstraction from the specific RTE
physical properties of hardware sensors and
actuators, which are connected to an ECU. Basic Software
Interfaces to (e.g.)
• I/O HW Abstraction (access to I/O signals)
Properties: • Memory Services (access to calibration data)
• System Services (access to Error Manager)
Implementation: µC and ECU HW independent,
sensor and actuator dependent
- AUTOSAR Confidential -
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
ECU
core 0: core 1:
Application Layer
RTE
Operating
System Services Communi- System
Memory
cation
Services
Services ECU State
I/O HW Manager
Abstraction
Complex Drivers
Complex Drivers
Onboard Dev. Memory HW COM HW
Abstraction Abstraction Abstraction
Micro-
Memory Communi- I/O
controller Core Test
Drivers cation Drivers Drivers
Drivers
Microcontroller (µC)
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
The IOC, as shown in the figure, provides communication Onboard Memory COM HW
Abstraction
Microcontroller
core 0: core 1:
System Services System Services
management Core 1
ECU State Manager
Development Error
Function Inhibition
Diagnostic Event
Communication
Inter OsApplication
Inter OsApplication
ECU state
communication
communication
Manager
Manager
Manager
Manager
Core 0
Tracer
…
iOC
iOC
AUTOSAR OS
AUTOSAR OS
- AUTOSAR Confidential -
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
Application Layer
Debug
Com
Dcm
ging
Nm
If
ComM
WdgM
BswM
NvM
StbM
Dem
Csm
FiM
Det
Dlt
IpduM
PduR
XCP
Nm
Tp
Driver for Driver for
Onboard Device Memory Hardware Communication ext. ext.
AUTOSAR OS
FlsTst
MCU
Pwm
Wdg
Eep
Can
Port
Adc
Gpt
Dio
Fls
Spi
Eth
Icu
Lin
Fr
Microcontroller
Application Layer
PDU Router
O CAN … …
S CAN St Mgr …
CAN CAN
..
TP NM
CAN Interface
CAN Driver
ECU Hardware
Application Layer
Proprietary software
ECU Hardware
- AUTOSAR Confidential -
Application Layer
Basic Software
ECU Hardware
ICC 3 compliant
behavior
- AUTOSAR Confidential -
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
- AUTOSAR Confidential -
Interface
Interface Interface Interface
.............. Interface
relevant
Operating Complex
BSW System Drivers
relevant Standardized
Interface
Possible interfaces
inside Basic Software Microcontroller
Basic Software
(which are
Abstraction
not specified
within AUTOSAR)
ECU-Hardware
Note: This figure is incomplete with respect to the possible interactions between the layers.
- AUTOSAR Confidential -
Services Layer: horizontal interfaces are allowed One Layer may access all interfaces of the SW layer
Example: Error Manager saves fault data using the below
NVRAM manager
ECU Abstraction Layer: horizontal interfaces are Bypassing of one software layer should be avoided
allowed
A complex driver may use selected other BSW Bypassing of two or more software layers is not
modules allowed
Microcontroller (µC)
- AUTOSAR Confidential -
Communication Drivers
Microcontroller Drivers
“is allowed to use”
Memory Services
System Services
”is not allowed to use”
Complex Drivers
Memory Drivers
“restricted use uses
I/O Drivers
(callback only)”
Complex Drivers
System Services Services
Services I/O HW
Abstraction
Complex Drivers may need to interface to other modules Onboard Memory COM HW
Dev. Abstr. HW Abstr. Abstr.
in the layered software architecture, or modules in Micro- Communi-
Memory I/O
the layered software architecture may need to interface controller
Drivers
cation
Drivers
Drivers Drivers
to a Complex Driver. If this is the case,
Microcontroller (µC)
the following rules apply:
This is only allowed if the Complex Driver offers an interface which can be generically configured by the accessing
AUTOSAR module.
A typical example is the PDU Router: a Complex Driver may implement the interface module of a new bus system.
This is already taken care of within the configuration of the PDU Router.
Again, this is only allowed if the respective modules of the layered software architecture offer the interfaces, and are
prepared to be accessed by a Complex Driver. Usually this means that
The respective interfaces are defined to be re-entrant.
If call back routines are used, the names are configurable
No upper module exists which does a management of states of the module (parallel access would change states
without being noticed by the upper module)
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
In general, it is possible to access the following modules: Onboard Memory COM HW
Abstraction
The I/O drivers with the restriction that re-entrancy often only exists for Microcontroller (µC)
separate groups/channels/etc. Parallel access to the same
group/channel/etc. is mostly not allowed. This has to be taken care of during configuration.
The NVRAM Manager as exclusive access point to the memory stack
The Watchdog Manager as exclusive access point to the watchdog stack
The PDU Router as exclusive bus and protocol independent access point to the communication stack
The bus specific interface modules as exclusive bus specific access point to the communication stack
The NM Interface Module as exclusive access point to the network management stack
The Communication Manager (only from upper layer) and the Basic Software Mode Manager
as exclusive access points to state management
Det, Dem and Dlt
The OS as long as the used OS objects are not used by a module of the layered software architecture
Still, for each module it is necessary to check if the respective function is marked as being re-entrant. For example,
‘init’ functions are usually not re-entrant and should only be called by the ECU State Manager.
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
In case of multi core architectures, there are additional rules: Onboard Memory COM HW
Abstraction
In AUTOSAR release 4.0, the BSW resides on the master core. Dev. Abstr.
Micro-
HW Abstr. Abstr.
Communi-
Memory I/O
Consequently, if the CDD needs to access standardized interfaces controller
Drivers
Drivers
cation
Drivers
Drivers
- AUTOSAR Confidential -
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
- AUTOSAR Confidential -
External External
Watchdog EEPROM
- AUTOSAR Confidential -
Architecture Description
The NVRAM Manager accesses drivers via the
Memory Abstraction Interface. It addresses Nvm_Write(BlockIndex)
different memory devices using a device index.
Memory Services
Ea_Write(
BlockNumber, Fee_Write(
The EEPROM Abstraction as well as the Flash BlockNumber,
DataBufferPtr)
EEPROM Emulation could have the following DataBufferPtr)
interface (e.g. for the write function):
EEPROM Abstaction Flash
EEPROM Emulation
Std_ReturnType Ea_Write
(
uint16 BlockNumber,
uint8 *DataBufferPtr
)
- AUTOSAR Confidential -
File MemIf.h:
#include “Ea.h“ /* for providing access to the EEPROM Abstraction */
...
#define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr) \
Ea_Write(BlockNumber, DataBufferPtr)
File MemIf.c:
Does not exist
Result:
No additional code at runtime, the NVRAM Manager virtually accesses the EEPROM Abstraction or the Flash
Emulation directly.
- AUTOSAR Confidential -
File MemIf.h:
File MemIf.c:
#include “Ea.h“ /* for getting the API function addresses */
#include “Fee.h“ /* for getting the API function addresses */
#include “MemIf.h“ /* for getting the WriteFctPtrType */
Result:
The same code and runtime is needed as if the function pointer tables would be inside the NVRAM Manager.
The Memory Abstraction Interface causes no overhead.
- AUTOSAR Confidential -
Conclusions:
The Memory Abstraction Interface eases the access of the NVRAM Manager to one or more
EEPROM and Flash devices
- AUTOSAR Confidential -
SDU LayerN_Tx(*PDU);
PCI
void LayerN+1_Tx(*SDU);
PCI is the abbreviation of “Protocol Control Layer N-1
Information”. This Information is needed to pass a
SDU from one instance of a specific protocol layer PCI data structure SDU
to another instance. E.g. it contains source and
target information.
The PCI is added by a protocol layer on the
transmission side and is removed again on the
receiving side. TP
PCI data structure SDU
PDU
PDU is the abbreviation of “Protocol Data Unit”. PCI data structure PDU
The PDU contains SDU and PCI.
On the transmission side the PDU is passed from
the upper layer to the lower layer, which interprets CAN IF
this PDU as its SDU.
PCI data structure
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
SDU and PDU Naming Conventions Onboard Memory COM HW
Abstraction
The bus prefix and layer prefix are described in the following table:
ISO Layer Layer AUTOSAR PDU Name CAN / LIN prefix FlexRay
Prefix Modules TTCAN prefix
prefix
Layer 6: I COM, DCM I-PDU N/A
Presentation
I PDU router, PDU I-PDU N/A
(Interaction)
multiplexer SF:
Single Frame
Layer 3: N TP Layer N-PDU CAN SF LIN SF FR SF FF:
Network Layer CAN FF LIN FF FR FF First Frame
CAN CF LIN CF FR CF CF:
Consecutive
CAN FC LIN FC FR FC
Frame
Layer 2: L Driver, Interface L-PDU CAN LIN FR FC:
Data Link Layer Flow Control
Examples:
I-PDU or I-SDU For details on the frame types, please refer to the
AUTOSAR Transport Protocol specifications for CAN,TTCAN, LIN and FlexRay.
CAN FF N-PDU or FR CF N-SDU
LIN L-PDU or FR L-SDU
- AUTOSAR Confidential -
Components
PDU Router:
Provides routing of PDUs between different abstract communication controllers and upper layers
Scale of the Router is ECU specific (down to no size if e.g. only one communication controller exists)
Provides TP routing on-the-fly. Transfer of TP data is started before full TP data is buffered
COM:
Provides routing of individual signals or groups of signals between different I-PDUs
NM Coordinator:
Synchronization of Network States of different communication channels connected to an ECU via the
network managements handled by the NM Coordinator
Communication State Managers:
Start and Shutdown the hardware units of the communication systems via the interfaces
Control PDU groups
- AUTOSAR Confidential -
RTE
Communication
Signals
Manager
FlexRay TTCAN
Diagnostic Eth State CAN State LIN State Generic
IPDU State State
AUTOSAR Communi- Manager Manager Manager NM interface
multi- Debugging Manager Manager
plexer COM cation
Manager
NM
Coordinator
I-PDU I-PDU I-PDU I-PDU
XCP
PDU Router
Internet Protocol
I-PDU1 I-PDU1 NM
I-PDU I-PDU1 I-PDU I-PDU NM
Module
NM
will be described on Module
NM
CAN Tp Module
the next slide Module
FlexRay Tp J1939Tp
Communication
HW
LIN Interface
Eth Interface FlexRay Interface CAN Interface2 Abstraction
(incl. LIN TP)
Communication Drivers
Eth Driver FlexRay Driver CAN Driver2 LIN Low Level Driver
1 The Interface between PduR and Tp differs significantly compared to the interface between PduR and the Ifs.
In case of TP involvement a handshake mechanism is implemented allowing the transmission of I-Pdus > Frame size.
2 CanIf with TTCAN serves both CanDrv with or without TTCAN. CanIf without TTCAN cannot serve CanDrv with TTCAN.
- AUTOSAR Confidential -
DoIP UDP NM
Socket Adaptor
Messages Streams
UDP TCP
Protocol Stack
Internet
Packet Segment
DHCP
IP
ARP ICMP
Datagram
Communication HW
Eth Interface Abstraction
Eth. Frame
Communication Drivers
Eth Driver
- AUTOSAR Confidential -
Table of contents
1. Architecture
1. Overview of Software Layers
2. Content of Software Layers
3. Content of Software Layers in Multi Core systems
4. Overview of Modules
5. Interfaces
1. General
2. Interaction of Layers (Examples)
2. Configuration
3. Integration and Runtime aspects
- AUTOSAR Confidential -
1. Pre-compile time
Preprocessor instructions
Code generation (selection or synthetization)
2. Link time
Constant data outside the module; the data can be configured after the module has been
compiled
3. Post-build time
Loadable constant data outside the module. Very similar to [2], but the data is located in
a specific memory segment that allows reloading (e.g. reflashing in ECU production line)
Single or multiple configuration sets can be provided. In case that multiple configuration
sets are provided, the actually used configuration set is to be specified at runtime.
In many cases, the configuration parameters of one module will be of different configuration
classes.
Example: a module providing Post-build time configuration parameters will still have some
parameters that are Pre-compile time configurable.
- AUTOSAR Confidential -
Use cases
Pre-compile time configuration would be chosen for
Enabling/disabling optional functionality
This allows to exclude parts of the source code that are not needed
Optimization of performance and code size
Using #defines results in most cases in more efficient code than
access to constants or even access to constants via pointers.
Generated code avoids code and runtime overhead.
Restrictions
The module must be available as source code
The configuration is static. To change the configuration, the module
has to be recompiled
Nm_Cfg.c Nm_Cfg.h
Required implementation
Pre-compile time configuration shall be done via the module‘s two
uses includes
configuration files (*_Cfg.h, *_Cfg.c) and/or by code generation: (optional)
*_Cfg.h stores e.g. macros and/or #defines
Nm.c
*_Cfg.c stores e.g. constants
- AUTOSAR Confidential -
File Spi_Cfg.c:
const uint8 myconstant = 1U;
Note: The Compiler Abstraction and Memory Abstraction (as specified by AUTOSAR) are not used to keep the example simple.
- AUTOSAR Confidential -
#define DemConf_DemEventParameter_FLS_E_ERASE_FAILED_0 1U
#define DemConf_DemEventParameter_FLS_E_ERASE_FAILED_1 2U Example for a multiple
#define DemConf_DemEventParameter_FLS_E_WRITE_FAILED_0 3U instance driver (e.g. internal
#define DemConf_DemEventParameter_FLS_E_WRITE_FAILED_1 4U and external flash module)
#define DemConf_DemEventParameter_NVM_E_REQ_FAILED 5U
#define DemConf_DemEventParameter_CANSM_E_BUS_OFF 6U
...
File Dem.h:
#include "Dem_Cfg.h" /* for providing access to event symbols */
Dem_ReportErrorStatus(DemConf_DemEventParameter_NVM_E_REQ_FAILED, DEM_EVENT_STATUS_PASSED);
- AUTOSAR Confidential -
Use cases
Link time configuration would be chosen for
Configuration of modules that are only available as object code
(e.g. IP protection or warranty reasons)
Selection of configuration set after compilation but before linking.
Required implementation
1. One configuration set, no runtime selection
Configuration data shall be captured in external constants. These external constants are
located in a separate file. The module has direct access to these external constants.
- AUTOSAR Confidential -
Example 1: Event IDs reported to the Dem by a multiple instantiated module (Flash Driver) only available as object code
XML configuration file of the Flash Driver:
Specifies that it needs the event symbol FLS_E_WRITE_FAILED for production error reporting.
#define DemConf_DemEventParameter_FLS_E_ERASE_FAILED_0 1U
#define DemConf_DemEventParameter_FLS_E_ERASE_FAILED_1 2U
#define DemConf_DemEventParameter_FLS_E_WRITE_FAILED_0 3U
#define DemConf_DemEventParameter_FLS_E_WRITE_FAILED_1 4U
#define DemConf_DemEventParameter_NVM_E_REQ_FAILED 5U
#define DemConf_DemEventParameter_CANSM_E_BUS_OFF 6U
...
File Fls_Lcfg.c:
#include "Dem_Cfg.h" /* for providing access to event symbols */
Dem_ReportErrorStatus(Fls_WriteFailed[instance], DEM_EVENT_STATUS_FAILED);
Note: the complete include file structure with all forward declarations is not shown here to keep the example simple.
- AUTOSAR Confidential -
Example 2: Event IDs reported to the Dem by a module (Flash Driver) that is available as object code only
Problem
Dem_EventIdType is also generated depending of the total number of event IDs on this ECU. In this example it is represented
as uint16. The Flash Driver uses this type, but is only available as object code.
Solution
In the contract phase of the ECU development, a bunch of variable types (including Dem_EventIdType) have to be fixed and
distributed for each ECU. The object code suppliers have to use those types for their compilation and deliver the object code
using the correct types.
- AUTOSAR Confidential -
Use cases
Post-build time configuration would be chosen for
Configuration of data where only the structure is defined but the contents not known during ECU-build time
Configuration of data that is likely to change or has to be adapted after ECU-build time
(e.g. end of line, during test & calibration)
Reusability of ECUs across different product lines (same code, different configuration data)
Restrictions
Implementation requires dereferencing which has impact on performance, code and data size
Required implementation
- AUTOSAR Confidential -
Direct access
(via reference as given by
Linker control file the pointer parameter of
PduR’s initialization function)
- AUTOSAR Confidential -
Required implementation 2: Configuration of CAN Driver that is available as object code only; multiple configuration
sets can be selected during initialization time.
File Can_PBcfg.c:
#include “Can.h” /* for getting Can_ConfigType */
const Can_ConfigType MySimpleCanConfig [2] =
{
{
Can_BitTiming = 0xDF,
Can_AcceptanceMask1 = 0xFFFFFFFF,
Can_AcceptanceMask2 = 0xFFFFFFFF,
Can_AcceptanceMask3 = 0x00034DFF, Compiler
Can_AcceptanceMask4 = 0x00FF0000
},
{ … }
};
File EcuM.c:
#include “Can.h“ /* for initializing the CAN Driver */
Can_Init(&MySimpleCanConfig[0]); Linker
- AUTOSAR Confidential -
Different use cases require different kinds of configurability. Therefore the following configuration variants are
provided:
VARIANT-PRE-COMPILE
Only parameters with "Pre-compile time" configuration are allowed in this variant.
VARIANT-LINK-TIME
Only parameters with "Pre-compile time" and "Link time" are allowed in this variant.
VARIANT-POST-BUILD
Parameters with "Pre-compile time", "Link time" and "Post-build time" are allowed in this variant.
To allow the implementation of such different use cases in each BSW module, up to 3 variants can be
specified:
A variant is a dedicated assignment of the configuration parameters of a module to configuration
classes
Within a variant a configuration parameter can be assigned to only ONE configuration class
Within a variant a configuration class for different configuration parameters can be different (e.g. Pre-
Compile for development error detection and post-build for reprogrammable PDU routing tables
It is possible and intended that specific configuration parameters are assigned to the same
configuration class for all variants (e.g. development error detection is in general Pre-compile time
configurable). - AUTOSAR Confidential -
EcuM defines the index: Description where to find what is an overall agreement:
1. EcuM needs to know all addresses including index
0x8000 &index (=0x8000)
2. The modules (xx, yy, zz) need to know their own
0x8000 &xx_configuration = 0x4710
start address: in this case: 0x4710, 0x4720 …
0x8002 &yy_configuration = 0x4720
3. The start addresses might be dynamic i.e. changes
0x8004 &zz_configuration = 0x4730
with new configuration
…
4. When initializing a module (e.g. xx, yy, zz), EcuM
passes the base address of the configuration data (e.g.
Xx defines the modules configuration data: 0x4710, 0x4720, 0x4730) to the module to allow for
0x4710 &the_real_xx_configuration variable sizes of the configuration data.
0x4710 lower = 2
0x4712 upper =7 The module data is agreed locally (in the module) only
0x4714 more_data 1. The module (xx, yy) knows its own start address
… (to enable the implementer to allocate data section)
2. Only the module (xx, yy) knows the internals of
Yy defines the modules configuration data:
its own configuration
0x4720 &the_real_yy_configuration
ation” in
0x4720 Xx_data1=0815
p le ment
0x4722 Yy_data2=4711
er “ Po s t build im ules.pdf”
pt entation
R
0x4724 more_data
e t ails , see Cha Im p le m
For d C
… U T O S AR_TR_
“ A
- AUTOSAR Confidential -
le m en tation” in
imp
ter “ Post build R u les.pdf”
C hap nta t ion
ils, see mpleme
For deta AR_ T R_ C I
“AUTOS
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
VFB-
view
active parts of SW-C Runnable
Software Components
They can be executed 0..* 0..*
concurrently, by
Implementation/ECU-view
1
mapping them to
different Tasks. Task
The figure shows
further entities like OS- 0..*
applications, Partitions, 1 1
µC-Cores and BSW-
Resources which have 1 1
Partition OS-Application
to be considered for
this mapping. 0..*
1
0..* 1
BSW-Ressource µC-Core
(E.g., NV-block)
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
- AUTOSAR Confidential -
Protection Hook
Executed on protection violation (memory or timing)
Decides what the action is (Terminate, Restart, Shutdown, Nothing)
Provided by integrator
OS acts on decision by inspecting return value
OsRestartTask
Started by OS in case Protection Hook returns Restart
Provided by integrator
Runs in the partition’s context and initiates necessary cleanup and restart activities, such as:
Stopping communication (ComM)
Updating NvM
Informing Watchdog, CDDs etc.
RTE
Functions for performing cleanup and restart of RTE in partition
Triggers init runnables for restarted partition
Handles communication consistency for restarting/terminated partitions
Operating System
OS acts on OS-Applications, which are containers for partitions
OS-Applications have states (APPLICATION_ACCESSIBLE, APPLICATION_RESTART,
APPLICATION_TERMINATED)
OS provides API to terminate other OS-Applications (for other errors than memory/timing)
- AUTOSAR Confidential -
sd TerminateRestartPartition
Os-Application
state for the OS ProtectionHook OSRestartTask RTE BSW modules
considered
Partition.
APPLICATION_ACTIVE
ProtectionHook
inform the RTE
APPLICATION_RESTARTING ActivateTask
AllowAccess
APPLICATION_ACTIVE
TerminateTask
- AUTOSAR Confidential -
Termination
A partition can be terminated directly
Also for termination, some cleanup may be needed, and this shall be performed in the
same way as when restarting a partition
No restart is possible without a complete ECU restart
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
the synchronized triggering of both, Runnable Entities and BSW Main Functions by the
same External Trigger Occurred Event.
- AUTOSAR Confidential -
Centralize the BSW schedule in the BSW Scheduler configured by the ECU/BSW integrator and generated by the RTE
generator together with the RTE
Eases the integration task
Enables applying different scheduling strategies to schedulable objects
Preemptive, non-preemptive, ...
Enables applying different data consistency mechanisms
Enables reducing resources (e.g., minimize the number of tasks)
Enables interlaced execution sequences of Runnable Entities and BSW Main functions
- AUTOSAR Confidential -
Zzz_MainFunction_Aaa
BSW Events
BswTimingEvent
BswBackgroundEvent
BswModeSwitchEvent
BswModeSwitchedAckEvent
BswInternalTriggerOccuredEvent
Yyy_MainFunction_Aaa
BswExternalTriggerOccuredEvent
Triggers
Main functions can be triggered in all layers by
the listed BSW Events
Xxx_Isr_Yyy
- AUTOSAR Confidential -
Transformation
- AUTOSAR Confidential -
Task1 {
Zzz_MainFunction_Bbb();
Zzz_MainFunction_Bbb(); Yyy_MainFunction_Aaa();
Yyy_MainFunction_Aaa(); glue code
Xxx_MainFunction_Aaa(); Xxx_MainFunction_Aaa();
glue code
...
}
Transformation
- AUTOSAR Confidential -
Xxx_MainFunction_Bbb();
...
Xxx_MainFunction_Bbb(); }
Yyy_MainFunction_Bbb(); Task3 {
...
Yyy_MainFunction_Bbb();
...
}
Transformation
- AUTOSAR Confidential -
Xxx_Module
Xxx_MainFunction();
Yyy_ AccessResource();
XYZ resource
?
Yyy_MainFunction();
Yyy_Module
Transformation
- AUTOSAR Confidential -
Transformation
- AUTOSAR Confidential -
Transformation
- AUTOSAR Confidential -
The mode dependent scheduling of BSW Modules is identical to the mode dependent
scheduling of runnables of software components.
A mode manager defines a Provide ModeDeclarationGroupPrototype in its Basic
Software Module Description, and the BSW Scheduler provides an API to communicate mode
switch requests to the BSW Scheduler
A mode user defines a Required ModeDeclarationGroupPrototype in its Basic Software
Module Description. On demand the BSW Scheduler provides an API to read the current
active mode
If the Basic Software Module Description defines Mode Disabling Dependencies, the BSW
Scheduler suppresses the scheduling of BSW Main functions in particular modes.
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
3
2
Modes
Every system contains Modes at
Influence each other
different levels of granularity. As shown
in the figure, there are vehicle modes Application
1
1
2
2
3 1 2
Therefore:
Depending on vehicle modes, applications may be active or inactive and thus be in different
application modes.
Vice versa, the operational state of certain applications may cause vehicle mode changes.
Depending on vehicle and application modes, the BSW modes may change, e.g. the
communication needs of an application may cause a change in the BSW mode of a
communication network.
Vice versa, BSW modes may influence the modes of applications and even the whole
vehicle, e.g. when a communication network is unavailable, applications that depend on it
may change into a limp-home mode.
- AUTOSAR Confidential -
Mode Mode
Mode Mode Mode
Request Switch
Requester Manager User
Mode
Mode Mode
Switch
Manager User
- AUTOSAR Confidential -
Complex Drivers
System Services Services
Services I/O HW
Layer Functionality per module Onboard Memory COM HW
Abstraction
Microcontroller (µC)
The distribution of mode requests is performed by the RTE and the RTE also implements
the handling of mode switches.
E.g. for vehicle modes, a mode request originates from one central mode requestor SW-C
and has to be received by the BswMs in many ECUs. This is an exception of the rule that
SW-Cs may only communicate to local BSW.
- AUTOSAR Confidential -
Applications
Mode Processing Cycle
Mode requesting Mode using
The mode requester SW-C requests
SW-C SW-C
mode A through its sender port. The RTE
distributes the request and the BswM 3: switch
receives it through its receiver port. 1: request mode A´
mode A
The BswM evaluates its rules and if a
rule triggers, it executes the
corresponding action list. RTE
When executing the action list, the BswM Mode request Local mode
may issue a (configurable optional) RTE distribution handling
call to the mode switch API as a last
action to inform the mode users about the
arbitration result, e.g. the resulting mode BswM
A’. Mode Mode
Control
Any SW-C, especially the mode Arbitration
requester can register to receive the Action list
mode switch indication. 2: execute
associated Mode arbitration Action 1
The mode requests can originate from action list overrides the Action 2
local and remote ECUs.
request for mode …
Note that the mode requestor can only A with mode A´.
receive the mode switch indications from RteSwitch(mode A´)
the local BswM, even if the requests are
sent out to multiple ECUs.
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
Types of errors
Software errors
Root cause: Wrong software or system design, because software itself can never fail.
Example 1: wrong API parameter (EEPROM target address out of range)
Example 2: Using not initialized data
System errors
Example 1: CAN receive buffer overflow
Example 2: time-out for receive messages
- AUTOSAR Confidential -
Development
Those errors shall be detected and fixed during development phase. In most cases, those errors are
software errors. The detection of errors that shall only occur during development can be switched off
for production code (by static configuration namely preprocessor switches).
Production / series
Those errors are hardware errors and software exceptions that cannot be avoided and are also expected
to occur in production code.
- AUTOSAR Confidential -
1. Development Errors
The detection and reporting can be statically switched on/off
2. Production relevant errors and exceptions
This detection is ‚hard coded‘ and always active.
There are several alternatives to report an error (detailed on the following slides):
Via API
Inform the caller about success/failure of an operation.
Via statically definable callback function (notification)
Inform the caller about failure of an operation
Via central Error Hook (Development Error Tracer)
For logging and tracing errors during product development. Can be switched off for production code.
Via central Error Function (AUTOSAR Diagnostic Event Manager)
For error reaction and logging in series (production code)
Each application software component (SW-C) can report errors to the Dlt.
- AUTOSAR Confidential -
Diagnostic
Log End to End
and Trace Communication
(Dlt) Application Layer (E2E)
Basic Software
Diagnostic Event
Manger (Dem)
Debug-
and Function
ging
Inhibition
(Dbg)
Manager (Fim)
- AUTOSAR Confidential -
- AUTOSAR Confidential -
The Diagnostic Event Manager is a standard AUTOSAR module which is always available in production code
and whose functionality is specified within AUTOSAR.
The Development Error Tracer is just a help for SW development and integration and is not necessarily
contained in the production code. The API is specified within AUTOSAR, but the functionality can be
chosen/implemented by the developer according to his specific needs.
The detection and reporting of development errors to the Development Error Tracer can be statically switched
on/off per module (preprocessor switch or two different object code builds of the module).
- AUTOSAR Confidential -
API
The Diagnostic Event Manager has semantically the following API:
Dem_ReportErrorStatus(EventId, EventStatus)
Problem: the error IDs passed with this API have to be ECU wide defined, have to be statically defined and have to occupy a
compact range of values for efficiency reasons. Reason: The Diagnostic Event Manager uses this ID as index for accessing
ROM arrays.
Process:
Each BSW Module declares all production code relevant error variables it needs as “extern”
Each BSW Module stores all error variables that it needs in the ECU configuration description (e.g. CANSM_E_BUS_OFF)
The configuration tool of the Diagnostic Event Manager parses the ECU configuration description and generates a single
file with global constant variables that are expected by the SW modules (e.g.
const Dem_EventIdType DemConf_DemEventParameter_CANSM_E_BUS_OFF=7U; or
#define DemConf_DemEventParameter_CANSM_E_BUS_OFF ((Dem_EventIdType)7))
The reaction to the errors is also defined in the Error Manager configuration tool. This configuration is project specific.
- AUTOSAR Confidential -
API
The Development Error Tracer has syntactically the following API:
Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId)
InstanceId (uint8)
The Instance ID represents the identifier of an indexed based module starting from 0. If the module is a single instance
module it shall pass 0 as an instance ID.
ApiId (uint8)
The API-IDs are specified within the software specifications of the BSW modules. They can be #defines or constants
defined in the module starting with 0.
ErrorId (uint8)
The Error IDs are specified within the software specifications of the BSW modules. They can be #defines defined in the
module‘s header file.
If there are more errors detected by a particular software module which are not specified within the AUTOSAR module
software specification, they have to be documented in the module documentation.
- AUTOSAR Confidential -
The module Diagnostic Log and Trace (Dlt) collects log messages and converts them into a
standardized format. The Dlt forwards the data to the Dcm or a CDD which uses a serial
interface for example.
Therefore the Dlt provides the following functionalities:
Logging
logging of errors, warnings and info messages from AUTOSAR SW-Cs, providing a
standardized AUTOSAR interface,
gathering all log and trace messages from all AUTOSAR SW-Cs in a centralized
AUTOSAR service component (Dlt) in the BSW,
logging of messages from Det and
logging of messages from Dem.
Tracing
of RTE activities
Control
individual log and trace messages can be enabled/disabled and
Log levels can be controlled individually by back channel.
Generic
Dlt is available during development and production phase,
access over standard diagnosis or platform specific test interface is possible and
security mechanisms to prevent misuse in production phase are provided.
- AUTOSAR Confidential -
- AUTOSAR Confidential -
API
The Diagnostic Log and Trace has syntactically the following API:
Dlt_SendLogMessage(Dlt_SessionIDType session_id, Dlt_MessageLogInfoType log_info, uint8
*log_data,
uint16 log_data_length)
log_info contains:
Application ID / Context ID
Application ID is a short name of the SW-C. It identifies the SW-C in the log and trace message. Context ID is a user
defined ID to group log and trace messages produced by a SW-C to distinguish functionality. Each Application ID can
own several Context IDs. Context ID’s are grouped by Application ID’s. Both are composed by four 8 bit ASCII
characters.
Message ID
Messaged ID is the ID to characterize the information, which is transported by the message itself. It can be used for
identifying the source (in source code) of a message and shall be used for characterizing the payload of a message. A
message ID is statically fixed at development or configuration time.
log_data
Contain the log or trace data it self. The content and the structure of this provided buffer is specified by the Dlt
transmission protocol.
Description File
Normally the log_data contains only contents of not fixed variables or information (e.g. no static strings are transmitted).
Additionally a description file shall be provided. Within this file the same information for a log messages associated with the
Message ID are posted. These are information how to interpret the log_data buffer and what fixed entries belonging to a log
message.
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
The goal of the Debugging Module is to support a user (system integrator or BSW developer)
during development, in case the basic software does not behave as expected. To do so, it
collects as much information as possible about the runtime behavior of the systems without
halting the processor. This data is transmitted to an external host system via communication,
to enable the user to identify the source of a problem. An internal buffer is provided to
decouple data collection from data transmission.
- AUTOSAR Confidential -
- AUTOSAR Confidential -
Example:
confirmation
collection of data
processing of host
commands
- AUTOSAR Confidential -
Example:
message fragment 1
message fragment 2
collection of data
message fragment n
debugging communication
module contains
implementation of simplified
TP
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
RTE
XCP within AUTOSAR provides
the following basic features:
Signals
I-PDU
development purposes AUTOSAR Tp
N-PDU N-PDU
Communication HW Abstraction
Bus Interface(s)
(or Socket Adaptor on ethernet)
L-PDU
Communication Drivers
Bus Driver(s)
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
core/partition switch
H2. Failure of HW network
System Services Memory Services Communication I/O Hardware CDD H2. Network EMI
Services Abstraction H3. Microcontroller failure during
S4 S2 context switch (partition) or on the
communication between cores
IOC
H3 H4
Microcontroller 2
Microcontroller 1 / ECU 1
/ ECU 2
- AUTOSAR Confidential -
Receiver 1 Sender 1
Application logic Application logic
9. Consume safe data elements 1. Produce safe data elements
Notes:
For each RTE Write or Read function that transmits safety-related data (like Rte_Write_<p>_<o>()), there is the
corresponding E2E protection wrapper function.
The wrapper function invokes AUTOSAR E2E Library.
The wrapper function is a part of Software Component and is preferably generated.
The wrapper function has the same signature as the corresponding RTE function, just instead of Rte_ there is E2EPW_.
The E2EPW_ function is called by Application logic of SW-Cs, and the wrapper does the protection/checks and calls
internally the RTE function.
For inter-ECU communication, the data elements sent through E2E Protection wrapper are be byte arrays. The byte
arrays are put without any alterations in COM I-PDUs.
- AUTOSAR Confidential -
Table of contents
1. Architecture
2. Configuration
3. Integration and Runtime aspects
1. Mapping of Runnables
2. Partitioning
3. Scheduling
4. Mode Management
5. Error Handling, Reporting and Diagnostic
6. Debugging
7. Measurement and Calibration
8. Functional Safety
9. Energy Management
- AUTOSAR Confidential -
The goal of efficient energy management in AUTOSAR is to provide mechanisms for power
saving, especially while bus communication is active (e.g. charging or clamp 15 active).
AUTOSAR R3.2 and R4.0.3 support only Partial Networking.
Partial Networking
Allows for turning off network communication across multiple ECUs in case their provided
functions are not required under certain conditions. Other ECUs can continue to
communicate on the same bus channel.
Uses NM messages to communicate the request/release information of a partial network
cluster between the participating ECUs.
- AUTOSAR Confidential -
Initial situation:
1
ECUs “A” and “B” are members of Partial Network Cluster (PNC) 1.
ECU
ECU AA ECUs “B”, “C” and “D” are members of PNC 2.
All functions of the ECUs are organized either in PNC 1 or PNC 2.
1 Both PNCs are active.
ECU
ECU B
B PNC 2 is only requested by ECU “C”.
2
The function requiring PNC 2 on ECU “C” is terminated, therefore
ECU “C” can release PNC 2.
This is what happens:
ECU
ECU C
C
2 ECU “C” stops requesting PNC 2 to be active.
ECUs “C” and “D” are no longer participating in any PNC and can be
shutdown.
2
ECU
ECU D
D ECU “B” ceases transmission and reception of all signals associated
with PNC 2.
ECU “B” still participates in PNC 1. That means it remains awake
Physical CAN Bus
and continues to transmit and receive all signals associated with PNC
Partial Network Cluster 1 1.
Partial Network Cluster 2 ECU “A” is not affected at all.
- AUTOSAR Confidential -
A significant part of energy management is about mode handling. For the terms
Vehicle Mode,
Application Mode and
Basic Software Mode
see chapter 3.4 of this document.
Virtual Function Cluster (VFC): groups the communication on port level between SW-
components that are required to realize one or more vehicle functions.
This is the logical view and allows for a reusable bus/ECU independent design.
VFC-Controller: Special SW-component that decides if the functions of a VFC are required at
a given time and requests or releases communication accordingly.
Partial Network Cluster (PNC): is a group of system signals necessary to support one or
more vehicle functions that are distributed across multiple ECUs in the vehicle network.
This represents the system view of mapping a group of buses to one ore more VFCs.
- AUTOSAR Confidential -
Restrictions on FlexRay
FlexRay is only supported for requesting and releasing PNCs.
FlexRay nodes cannot be shut down since there is no hardware available which supports
partial networking.
- AUTOSAR Confidential -
SW-C
SW-C
SW-C SW-C
SW-C SW-Component of VFC1
SW-C 44 66
22
SW-C
SW-C
SW-Component of VFC2
11 SW-C
SW-C
55
SW-C
SW-C SW-C
SW-C SW-Component of VFC3
33 77
CompositionType Communication Port
VFC1
VFC1 VFC2
VFC2 VFC3
VFC3
Mapping of
VFC on PNC
PNC1
PNC1 PNC2
PNC2
- AUTOSAR Confidential -
System Services
Communication Services ComM_UserRequest
BswM ComM
PNC states
Network
I-PDU GroupSwitch
PNC request/release Request Request
information ComMode
•• Exchange
Exchange PNCPNC request
request // release
release COM NmIf
information
information between NM
between NM andand
ComM
ComM via
via NMNM user
user data
data
•• Enable
Enable // disable
disable I-PDU-groups
I-PDU-groups
Trigger Transmit
PduR CanNm CanSm
- AUTOSAR Confidential -