Overview
Layers are organized in the following way:
- SW
- APPL
- RTE
- BSW
- SEL (Services Layer)
- SYSTEMSERVICES
- MEMORYSERVICES
- COMMUNICATIONSERVICES
- CRYPTOSERVICES
- OFFBOARDCOMMUNICATIONSERVICES
- ECUAL (ECU Abstraction Layer)
- ONBOARDDEVICEABSTRACTION
- MEMORYHWABSTRACTION
- CRYPTOHWABSTRACTION
- WIRELESSCOMMUNICATIONHWABSTRACTION
- COMMUNICATIONHWABSTRACTION
- IOHWABSTRACTION
- CD (Complex Driver)
- COMPLEXDRIVERS
- MCAL (Microcontroller Abstraction Layer)
- MICROCONTROLLERDRIVERS
- MEMORYDRIVERS
- CRYPTODRIVERS
- WIRELESSCOMMUNICATIONDRIVERS
- COMMUNICATIONDRIVERS
- IODRIVERS
- SEL (Services Layer)
- LIBRARY
SW is root layer. It holds APPL layer which is mandatory for every Software. Other layers can be omitted.
If Project Architecture file does not specify any layer, APPL layer will be still created and it will hold all components.
This layer organization represents AUTOSAR standard layout, but it can be used for other standards used in Aviation, Space, Railway industries etc.
The concept is almost the same in all industries. Project’s components are placed in APPL layer. Communication between APPL and BSW layer is only possible over RTE layer, which guarantees that some safety procedures are going to be fulfilled. RTE layer is a communication bridge between APPL layer and the rest of Project Architecture. RTE layer functions are automatically generated from special tools which are safety certified by Authority (some standard organization).
If the Software is not AUTOSAR project type, for example it can be Software used for operating drones, project can still use some or all layers from above. It can contain layers: APPL (where main components are placed), BSW->SEL->MEMORYSERVICES (some specific components which works with microcontroller memory) and BSW->MCAL->COMMUNICATIONDRIVERS (some custom written components for communication protocols like wifi, bluetooth etc). This will be also valid Project Architecture. This project does not contain RTE layer, because it is not based on some Operating System and Library.
Library layer holds set of functions/variables which every component can use, for example function that sorts elements in a list