Cars are equipped with numerous electronics for safety and convenience applications. This makes it necessary to have a common architecture so that development becomes easier since everyone will be following common architecture. Founded in 2003 by a group of OEMs and Tier 1 manufacturers the latest phase was released in December 2020 dubbed AUTOSAR R20-11.
Autosar stands for automotive open system architecture, it provides standard specifications on software modules in order to reduce effort on research and development and keep in track of growing automotive electronics. Autosar used 3 layers architecture, listed as below.
1. Application Layer
The application layer is the topmost layer of the AUTOSAR software architecture and supports custom functionalities implementation. This layer consists of the specific software components and many applications, which are a group of interconnected AUTOSAR Software Components and perform specific tasks as per instructions.
Each AUTOSAR Software Component encapsulates part of the functionality of the complete application software. AUTOSAR does not prescribe how large the AUTOSAR Software Components are. Depending on the requirements of the application an AUTOSAR Software Component might be a small, reusable piece of functionality such as lane-keeping assistance, Wiper control, Automatic door unlock, etc.
2. Runtime Environment
The RTE layer provides communication services to the application software for example AUTOSAR Software Components and/or AUTOSAR Sensor/Actuator components.
RTE Layer provides ECU independent interfaces to the application software components. The application layer consists of many SWC which does not follow layered architecture style but component style. The Software Components communicate with other components (inter and/or intra ECU) via the RTE.
3. Basic Software
Vehicles are equipped with numerous cameras and other sensors both inside and outside them. These sensors are in place to assist the driver in driving, they are used for human vision or machine vision. With a fixed number of sensors already in place, there is a need to utilize them for both machine vision as well as human vision, this gives the need for dedicated algorithms that work with the raw data from the camera making them suitable for the application. Basic software layer is further classified into:
- Services Layer,
- ECU Abstraction Layer,
- Microcontroller Abstraction and Complex Device Drivers (CDD).
- Microcontroller Abstraction Layer (MCAL)
The Microcontroller Abstraction Layer is the lowest layer of the Basic Software, this means that MCAL modules can directly access the HW resources. MCAL contains internal drivers which are software modules that are direct access to the µC and internal peripherals.
As the name resembles, the MCAL layer makes the upper layers independent of HW (MCU).
- ECU Abstraction Layer
The ECU Abstraction Layer interfaces the drivers of the Microcontroller Abstraction Layer (MCAL). It also contains drivers for external devices within the ECU and provides an abstraction for various peripheral hardware.
It provides interfaces to access all features of an ECU like communication, memory, or I/O, no matter if these features are part of the microcontroller or served by peripheral components.
- Complex Device Drivers Layer
The Complex Device Drivers (CDD) Layer spans from the hardware layer to the RTE. CDD fulfills special functions and timing requirements needed to operate complex sensors and actuators.
Provide the possibility to integrate special-purpose functionality. This layer consists of drivers for devices that are not specified within AUTOSAR, with very high timing constrains.
- Services Layer
The Services Layer is the topmost layer of the Basic Software (BSW) which also applies its relevance for the application software. It provides an independent Interface of a microcontroller (MCU) and ECU hardware to application software.
The Services Layer offers:
- Operating system functionality
- Vehicle network communication and management services
- Memory services (NVRAM management)
- Diagnostic Services (UDS, Error handling, Memory)
- ECU state management, mode management
- Logical and temporal program flow monitoring (Wdg manager) Task Provide basic services for applications, RTE, and basic software modules.
All the Autosar layers are a group of identified software modules. Each module handles interfaces between adjacent modules.