AUTOSAR, or AUTomotive Open System Architecture, is a standard to commonize automotive control systems across the industry. The benefit of running an AUTOSAR standard operating system across all electronic control units (ECUs) within a vehicle platform, or a company/industry, is analogous to the benefits of all PCs within an organization running a common operating system. This allows the application engineer to develop software for the standard operating system and gives the organization a single solution, which is independent of hardware variations. In addition, the concept of the run-time environment (RTE) present in AUTOSAR allows for an organization to build a library of software components that can be easily integrated into various projects. The extension of this concept to many controllers (the virtual functional bus) allows for developers to more easily focus on system-level software requirements and architecture and simplifies the creation of distributed applications which may need resources from many different controllers on a network. AUTOSAR standards define a basic software (BSW) layer which includes services that interface with specific hardware but have a common interface to the application. This allows the organization to purchase a hardware and software solution which integrates easily with an operating system and applications which are AUTOSAR compliant. The BSW contains services which are commonly required within an ECU, such as serial communication, diagnostic trouble code handling, service tool connectivity, and microprocessor services.
Serial communication is managed by the COM module found in the BSW and supports the CAN, LIN, FlexRay, and Ethernet protocols. The COM module has two main transmission methods: the periodic method sends the most recent information at a periodic rate, while the direct method sends information upon a trigger from the RTE after receiving new data. Message packing and unpacking is managed by the COM module to interface between the RTE signals and the hardware. The RTE provides the added benefit of scaling COM signals upon reception or transmission between engineering values and raw data. Upon message reception timeout, the COM module allows the developer to indicate, on a signal basis, what information should be available to the application.
The BSW supports many functions related to diagnostics and diagnostic trouble code (DTC) handling through the Diagnostic Event Manager (DEM) and the Diagnostic Communication Manager (DCM). The DEM’s main functions are to process and store incoming information about DTCs. This includes, but is not limited to, DTC status, suppression, and debounce information. DCM is found within the communications server and provides data flow and manages diagnostic status between service tools and other BSW modules. The DCM will receive a request from a service tool then retrieve the requested information from necessary BSW modules or the application layer. The data will then be compiled and sent back to the service tool through the network requesting the information.
Additionally, the AUTOSAR BSW contains another diagnostic module known as the Function Inhibition Manager (FIM), which couples strongly with the DEM and can allow for the inhibition of functionality in an application (or within the BSW) when certain conditions are met or events occur. If the DEM is reporting that a sensor is undergoing an out-of-range failure, the FIM can inhibit execution of application code related to the sensor information.
Understanding the services available in an AUTOSAR environment are important to creating software components in a way that allows for proper reuse and for keeping application-layer algorithms simple. Modules such as the COM and RTE allow for software components to easily integrate and be reused in different systems where the origin of a signal may be different. Diagnostic modules like the DEM and FIM allow for the functional behavior of software components to vary in different systems or operating contexts without adding unneeded complexity to the application layer.