Application
Application
R 4.x
Validation Tool chain Gateway
drivers R 3.x Partial OSEK
Mode Migration Training
ISO 14229 MCD3 API
Standardization
MBD Management MBD
Network VCI
Network
Management
OTX OSEK
Networking ASAM CT-Spec Network
Consulting
AUTOSAR
CT Specs Management
Hazard Analysis MCD3 API Gateway
ASAM Tool chain Training Hardware Management MBD
ECU eNOS AUTOSAR MBD Tool qualification ASAM Training VCI MBD ASAM Optimization
FUNCTIONAL SAFETY
CT Specs eNOS R 4.x In-vehicle CT BSW Stack OSEK hardware MCAL Networking MCD3 API
Partial Networking
Testing Optimization
ECU network R 3.x ODX BSW stack ECU ISO 26262 ASAM ISO 14229
DIAGNOSTICS
Production Ready MBD
Testing
Frugal drivers R 4.x drivers
MBD
PDU RouterASAM
Microlayer ECU hardware hardware ISO26262 HIS-MISRA Hardware Diagnostics MBD ASAM Validation
Legacy to MBD CT-Spec MBD
Mode Management Testing CoE MANAGEMENT
ECU
Testing Diagnostics Board Support
eNOS Network Management
ReNOS
4.x Efficient
FUNCTIONAL SAFETY
C AN Complex
OTX ODX Complex Drivers
Production Package Drivers
Tool chain Ready
ODX
CT-Spec
Customizable HIS-MISRA
Consulting
Scalablility LIN Gateway VCI DoIP
ECU Risk Assessment Optimization
drivers Gateway
Network Management
Training
HazardAnalysis
Gateway
Validation
Scalablility
CT Consulting
Diagnostics&
PC ToolsTraining Remote Diagnostic ECU
Consulting
SCALABLILITY
Validation
C onsulting
Toolchain
DoIP ASIL Decomposition
MBD R3.x
HIS-MISRA CT-Spec
AUTOSARCT-Spec BSW stack
ODX ISO 14229
Validation MCD3 API
TestingCoE
MBD ASAM ISO 26262 OSEK Partial
Hardware
ISO 15765
porting TestingCoE
Migration OTX Risk Assessment Mode Management BSW Stack Complex Drivers COM
Optimization
Networking
VCI MBD
Partial Networking
ASAM ARTOP Training ECU eNOS Bootloader [Link] Networking
Aftertreatment
porting ASAM MBD
Gateway
Microlayer FUNCTIONAL SAFETY Tool Optimization
Consulting
Scalablility
ISO 15765
LIN R4.x ODX FUNCTIONAL
CT-Spec Production Ready HIS-MISRA
Portability Configuration ODX
Gateway
ISO 14229
SAFETY LIN
Validation OSEK Scalability
M BD
Gateway ASIL Decomposition
ISO 14229
ARTOP ODX DoIP
APPLICATION LAYER
B S
SERVICES
A O LAYER
S F
I T COMPLE
C W ECUABSTRACTIONLAYER
A X
R DRIVERS
E MICROCONTROLLERABSTRACTION
LAYER
MICROCONTROLLER
Overview
Objective
• Understand the architecture of AUTOSAR
• AUTOSAR enabling with tools
• AUTOSAR enabling with documents
Why AUTOSAR?
Why AUTOSAR?
• Automotive Industry coping up with increasing complexity
• Software must often be rewritten from scratch when hardware is
changed.
APPLICATION LAYER
B S
SERVICES
A O LAYER
S F
I T COMPLE
C W ECUABSTRACTIONLAYER
A X
R DRIVERS
E MICROCONTROLLERABSTRACTION
LAYER
MICROCONTROLLER
AUTOSAR Architecture
AUTOSAR Basic Software Module
AUTOSAR has defined a set of BSW modules. They are
responsible for different tasks:
• Operating System
• Access to non volatile memory
• Communication via CAN, LIN, FlexRay and Ethernet
• Handling the diagnostics
• Access to I/O ports
• System services like ECU statemanagement
• In addition, so-called Complex Device Drivers can be
integrated into anAUTOSAR ECU. They are used to
access the features of the ECU, which are not covered by
the standard BSW ofAUTOSAR
CAN Stack Architecture vs AUTOSAR
AUTOSAR Methodology
AUTOSAR Methodology- Tools Perspective
AUTOSAR Interfaces
AUTOSAR Interfaces
AUTOSAR Interfaces
AUTOSAR Interfaces are used in defining the ports of software-components and/or
BSW modules. Through these ports, software-components and/or BSW modules can
communicate with each other AUTOSAR makes it possible to implement this
communication between Software-Components and/or BSW modules either locally or
via a network.
• The AUTOSAR Interface is a generic interface which is derived from the ports of a
SWC. AUTOSAR Interfaces are provided by the RTE and serve as interface
between SWCs or between SWCs or between a SWC and the ECU firmware (IO
HW and Complex Drivers). Via these interfaces, a SWC can e.g. read an input
value or write an output value.
• Rte_Write_ledDial_ledData([Link]);
▪ Std_ReturnType BswM_RequestFullComActionHandle(
constBswM_ActionListItemType *item );
▪ boolean BswM_ComMFullCommuncationlExpressionLogicalExpHandle( void );
AUTOSAR Interface
VFB Level
RTE Level
Implementation
SwcImplementation Level
ASWC Design
Types of Software Components
• Software component: software component(SWC) Is a
piece of code that carries out an application or part of an
application.
• An atomic software component is atomic in the sense that
it cannot be further decomposed and distributed across
multiple ECUs.
• In AUTOSAR, software components are not limited to the
application layer, i.e. they also exist in the RTE and BSW
layer.
Types of SoftwareComponents
Types of SWC
• Application software Component is an Atomic Software
Component that implements (part of) an application
• Sensor Actuator Software Component is an atomic SWC
that handles the specifics of sensors or actuators. It
directly interacts with the ecu-abstraction
• A Composition Software Component encapsulates a
collaboration of Software Components, thereby hiding
detail and allowing the creation of higher abstraction levels.
Through delegation connectors a composition software
component explicitly specifies, which ports of the internal
components are visible from the outside.
• The Service Proxy SW Component is responsible for
distribution of modes throughout the system.
Types of SWC
• Service Software Component provides services specified by
AUTOSAR through interfaces specified by AUTOSAR. This
component may interact directly with modules from BSW.
• The ECU-Abstraction Software Component provides access to
the ECU’s specific IO capabilities. These services are typically
provided through client-server PPorts and are used by the
sensoractuator software components.
• Parametric Software Component provides parameter values.
They can be fixed data, constant or variable. It allows access
to fixed data or calibration data. They don’t have an internal
behaviour. They only have PPorts of ParameterInterface type.
Need to be on the same ECU as the SWCs accessing them
since a parameter SWC represents the memory containing the
calibration parameter
• The Complex Driver Software Component generalizes the
“ECUabstraction component”. It can define ports to interact
with other components in specific ways and can also
interact directly
• The NV Block Software Component allows SWC-S access
to non volatile data. Specifically this block allows for the
modeling of the NV data at the VFB level with other basic-
software modules.
Port Interfaces
• Client Server- The server is provider of operations and
several clients can invoke those operations
• Sender-receiver- A sender distributes information to one or
several receivers, or one receiver gets information (events)
from several senders
• Parameter Interface- A parameter interface allows software
components access to either constant data, fixed data or
calibration data.
• Trigger Interface- The trigger interface allows software
components to trigger the execution of other software
components. The purpose of the trigger interface is to allow
for fast response times with regards to the occurrence of a
trigger which might occur sporadic.
Port Interfaces
• Mode Switch Interface- The mode switch interface is used
to notify a software component of a mode. The mode
manager provides modes that can be used by mode users
to adjust the behavior according to modes or synchronize
activities to mode switches.
• Non volatile Data Interface- Provide element level access
(read only or read/write) to non volatile data as opposed to
NV block access.
Ports
• AUTOSAR Software Components may only interact with
Port Prototypes.
• A require-port (in technical terms: RPortPrototype)
requires certain services or data
• A provide-port (or PPortPrototype) on the other hand
provides services or data.
• A provide-require-port (or PRPortPrototype) combines the
ability to provide and require services or data in one entity.
Compatibility of Data Types
Compatibility of Data Types
• SeatHeatingControl
• Input:
• Whether a Passenger is sitting on the seat
”SeatSwitch”
• Setting of the seat temperature dial “Setting”
• Some information from a central power
management system “Power Management”
• Output:
• DialLED associated with the seat temperature
“DialLED”
• Heating Element to be Turned ON
“HeatingElement”
Sender Receiver Interface
Client Server Interface
Seat Heater Controller- VFB Design
Design and Communication of Software Components
Client – Server
RPORT
The Component
reads/consumes values
of data-elements The Component
requires operation
defined in theinterface
Client - Server
PPORT
Sender -
Receiver
PPORT
The Component
provides operation
The Component
defined in theinterface
provides values ofdata-
elements
Runnable Entities
Multiple Instances
two instances of the “SeatHeatingControl” component-type are used to control the left
front seat, respectively the right front seat. These components will typically have their own
separate internal state (stored in separate memory locations) but might for example share
the same code
VFB Design
Seat Heater Controller- Internal Behaviour
Runnable Entities
Runnable Entities
• Atomic Software Components contain
• Runnable Entities as part of their internal behaviour
• Function containing the actual implementation
• Function is called by the RTE is the corresponding trigger occurs.
Implementation
SwcImplementation Level
Next Step
References
• AUTOSAR Virtual Function Bus
• AUTOSAR Methodology
• AUTOSAR Architecture
Runnable Entities
Category 1 and Category 2 Runnable
• The RTE shall support the Runnable Entity categories 1a, 1b and
2 Runnable Entity category:
• 1a) The Runnable Entity is only allowed to use implicit reading
(DataReadAccess) and writing (DataWriteAcess). A category 1a
Runnable Entity cannot block and cannot use explicit read/writ
• 1b) The Runnable Entity can use explicit reading and writing
(DataReadAccess). A category 1b Runnable Entity cannot block.
Implicit read/write is also allowed.
• 2) The Runnable Entity may use explicit reading/writing including
blocking behavior.
• Implicit reading and Writing → Here the value of the variable
does not change during the execution of the runnable
• Explicit reading and Writing→ The value of the variable shall
be updated during the execution of the runnable.
Category 1 Runnable- StateModel
The OS Scheduler
checks all the tasks
in the running and
Ready state and
decides which task
should be
started/preempted
ALARMS!!! – for
cyclical