"Demystifying AUTOSAR: An In-Depth Exploration of Open System Architecture in Automotive Software Development"
Published: 2023-11-14 06:31:49

Hello Readers,
My name is Sadashiv, and I work as a junior software engineer at Luxoft India. I'm happy to share this post, in which I relate my previous experience in Autosar

**What is AUTOSAR?**
 AUTOSAR is an alliance of more than 150 companies from vehicle manufacturers and suppliers.
• AUtomotive is short for Open System Architecture.
• AUTOSAR aims to develop an open and comprehensive automotive software system.
• Simplifies automotive software development.
• AUTOSAR helps ensure product variability, reliable development, reuse and scalability in software development.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cbze8gswja61nn12tfcv.png)
• Due to innovations in the automotive electronics industry, the ECU (Electronic Control Unit) is increasingly dependent on software hardware. This results in higher costs and efforts to move services between ECUs.
• AUTOSAR introduces a standardized layer between the application software and the ECU (i.e. hardware). This makes the software independent of the chosen microcontroller and OEM. This simplifies development processes and helps reuse application software
• AUTOSAR covers the following business topics consisting of software architecture, methodology and application interfaces. The standardized layer is called the "Basic software" layer in the AUTOSAR architecture as described below

**AUTOSAR Architecture layers**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2c8h5cdyha2r4ya5hwme.png)
Let us understand the AUTOSAR architecture layers as part of the AUTOSAR tutorial. As shown in Figure-2, AUTOSAR architecture has 3 main layers viz. Application level, RTE and basic software. The basic software consists of several sublayers such as service layer, ECU abstraction layer and microcontroller abstraction layer. These three sub layers of the "basic software" layer provide modules for various service functions such as OS services, network communication, memory services, management services, etc. Also there are different bus types in these three sub layers including CAN, LIN, Flexray, . MORE
**Application Layer**
The application layer consists of interconnected software components. A software component is a self-contained reusable artifact that implements a function with given properties. This software component contains the components of the application and communicates via a hardware independent bus called VFB ("Virtual Functional Bus"). If the software components belong to different ECUs, then they can communicate with the original software level through their respective RTEs. In this case, the RTE uses the VFB on the dedicated ECU. "Basic Software" provides various service services to application developers
**Virtual Functional Bus** :The virtual functional bus is an abstraction of the AUTOSAR Software Components connections throughout the vehicle. Interactions between software components and between software components and their environment (e.g., hardware driver, OS, services, etc.) can be specified independently of any underlying hardware (e.g., communication system) VFB implementation is provided by an interactive model.

**RTE (Runtime Environment)**
• All communication between AUTOSAR Software Components is routed through the AUTOSAR Runtime Environment. The AUTOSAR Interface specification assures communication.
• The AUTOSAR Runtime Environment (RTE) acts as a system-level communication hub for information exchange between and within the ECU.
• RTE is the runtime representation of the Virtual Function Bus for a particular ECU. • RTE provides communication abstractions for AUTOSAR software components to provide the same interface and services for inter-ECU (using CAN, LIN, Flexray, MOST etc.) or intra-ECU communication.
• Since the communication requirements of the software components are application dependent, the RTE must be designed accordingly.
• RTE will support different instances of software components

**Basic Software**
• The AUTOSAR Software Component is not allowed to access the Basic Software directly.
• The core software is a custom software layer, which provides services for the SW components. It has no active roles and is under the AUTOSAR Runtime Environment. It includes standard features and specific ECU features.
• Standard products include the following.
➤Services including diagnostic protocols; NVRAM, flash and memory configuration.
➤Communication protocols for communication systems (e.g. CAN, LIN, FlexRay…), I/O management, and network management.
• Typical ECU components include the following.
➤Operating system
➤Microcontroller abstraction
➤Complex Device Drivers

**AUTOSAR components, Ports, Interfaces**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6pspjrfrecvvuzutt20n.png)
SW Component: A self-contained reusable component that implements a function with a given property. A floor has well-defined ports through which the object can communicate with other objects.
Port: A port always belongs to exactly one object and represents a communication point where the object communicates with other objects. The AUTOSAR Interface concept is used to define services or data that are provided or requested on a component’s port.
Communication: The AUTOSAR communication can be either client-server or sender-receiver type.
• Client-Server Interface defining the types of functions that can be called.
• Sender-receiver interface, for communication of data.
It can be a port
- PPort (provided connection) .
- RPort (required) .
While PPort provides an interface to which the component has a port
- For functionality defined in the Client-Server Interface
- For data defined in the data-oriented Sender- Receiver Interface.
If a component RPort requires an AUTOSAR Interface, the component can
- Call function when interface is Client-Server
- Read data elements described in Sender-Receiver
The communication.

**AUTOSAR Communication Patterns**
Basic communication diagram
- Client-Server interface
- a sender-receiver
Interfaces show
- Transmitted by information sender and receiver communication
- Ability to invoke disputed services through client-server communication
A formal description of the interface is contained in the software component template, including usable data types and interface compatibility.
The detailed behavior of the main communication system is determined by the availability of resources. For example, with that attribute, the length of the data line and the behavior of the receivers (blocking, blocking, etc.) and sender (cyclic sending, etc.) can be defined in.
Client-Server Communication:
The server is the provider and the client is the consumer of a service.
The client initiates a connection, requests that the server perform the service, and transfers the parameter sets if necessary.
The server waits for incoming connection requests from clients, executes the requested service, and sends a response to the client request.
The basic instructions are used to classify the AUTOSAR Software Component as a client or server. A component may consist of a client and a server based on a software realization.
Once a service request is initiated, it can run a client until a response is received from the server
- Blocked (simultaneous communication) - Blocked (simultaneous communication).

Sender-Receiver Communication:
An example of asynchronous transmission in which the transmitter transmits information to one or several receivers.
The sender is uninterrupted (asynchronous communication) and does not expect or receive information from the receivers (data or control flow), the sender only provides information and the receivers themselves decide when and how to move decision to implement.
Distribution of information is the responsibility of the network.
The sender does not know who or how many people will be served

**AUTOSAR Architecture with example**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ey2uh4apjsab2ei8eyg2.png)
The figure shows the AUTOSAR system with an example implementation.