Simulate AUTOSAR ECU software using Basic Software Blocks
AUTOSAR ECU software simulates the combined behavior of ECU application software and basic software services in a PC-based environment with Simulink®. This implies replacing the hardware with some form of emulation, which primarily helps in validating the software via modeling simulation.
You can model and simulate many basic software modules that already exist. For example, Simulink provides out-of-the-box preconfigured caller blocks and reference implementations for NVRAM Manager and Diagnostics Services, which saves time by removing the need to read specifications from AUTOSAR, NVRAM Manager, and Diagnostics services.
Published: 10 Dec 2020
Hello, my name is James. And today I would like to show you how to put Basic Software in AUTOSAR Blockset. What is Basic Software?
We can see here we have a Simulink model which has four components in it. Each is defined separately in its own model, in reference here. These components communicate with each other via the RTE, in this case represented by signal connections. Basic Software is a separate standardized functionality shared between components, accessible through the RTE.
What is our Blockset currently supports three areas of Basic Software. The Diagnostic Event Manager, which enables the reporting and querying of diagnostic events. The Function Inhibition Manager, which allows the inhibition of Blockset functionality, based on the diagnostic events mentioned previously. And the NVRAM Manager, which allows to read and write to nonvolatile memory.
Each of these is described by a highly-detailed specification. So our goal is to make it as simple and intuitive if possible to work within the Simulink environment. We recently added to the functionality of our Dem and FiM tools in R202a.
These blocks are flexible in their usage. And they lend themselves to numerous Simulink modeling applications, which you might be familiar with already. Here we can see the function inhibition query being used to enable a subsystem. In comparison to a baseline driving an event monitor, a read from NVRAM, and writing to a data store within an initialized subsystem. And then operation cycle, which is being driven by a pulse signal.
This modeling flexibility shows through in the generated code. We can see here, the same calls to Basic Software appearing seamlessly within the code. In order to simulate and validate these parts within Simulink, we need an implementation for these calls. We provide this using Service Component box, which you can find in the Simulink block library.
Taking a look inside the diagnostic service component, we can assign IDs to client ports across our coordinating components, so they can refer to the same underlying events, functions, and operation cycles. We have some options to manage event debouncing. And we also have a tab to configure the function inhibition criteria. Now we can see that our model simulates. The default is reported through Basic Software, and the system is able to react also using Basic Software.
On a final note, we were always interested in feedback from our users. So now that you've seen the capabilities of Basic Software and what is a Blockset, please let us know, or leave a comment if there are any future enhancements that you'd like to see in this area. Thank you.