ECU Extract
In the automotive development phase, an ECU Extract refers to a subset of system-level information derived from the System Extract (SYS Extract) or Vehicle Architecture, focusing only on one specific ECU.
π Definition:
An ECU Extract is a generated data file (usually in ARXML format in AUTOSAR-based systems) that includes only the configuration, interfaces, signals, and components relevant to a particular ECU. It serves as the input for the software and configuration development of that ECU.
π οΈ When is ECU Extract used?
During the software development lifecycle, after the system architecture is finalized: 1. System Architects create a full System Description (System Extract). 2. Then, toolchains (like Vector DaVinci Developer or AUTOSAR Builder) generate ECU-specific subsets, called ECU Extracts. 3. Each development team receives the ECU Extract to develop and configure that specific ECU's software.
π What does an ECU Extract typically contain?
- ECU-specific software components (SWCs)
- Required runnables and task mappings
- Signal interfaces (e.g., CAN, LIN, FlexRay, Ethernet)
- Port definitions
- Communication matrix for that ECU (TX/RX signals)
- RTE (Runtime Environment) mapping
- Configuration for BSW modules (ComStack, Diagnostics, etc.)
β Why is ECU Extract important?
- Ensures modular development by isolating relevant data.
- Reduces complexity for the development team.
- Enables tool-based code generation (e.g., RTE generation).
- Prevents conflicts by clearly defining what the ECU is responsible for.
- Maintains traceability between system-level and ECU-level design.
βοΈ How is ECU Extract generated?
- Typically through tools like:
- Vector DaVinci Developer
- EB tresos
- Mentor Volcano VSA
- AUTOSAR Builder
- Based on the System Description (System Extract) and ECU Mapping.
π Real-world Use Example:
Letβs say a vehicle has a Body Control Module (BCM) responsible for lights, wipers, and door locks. The System Extract contains all data for all ECUs, but for BCM developers, the ECU Extract will only include:
- BCMβs software components
- Signal interfaces like TurnSignal_Status
, Wiper_Command
- Communication details over CAN (e.g., CAN0)
π Visual Diagram: ECU Extract in Development Flow
+------------------------+
| System Architecture |
| (Vehicle Functions) |
+------------------------+
β
+------------------------+
| System Extract (ARXML)|
| - All ECUs |
| - All SWCs |
| - All Signals & Ports |
+------------------------+
β
ββββββββββββββββββββββ¬βββββββββββββββββββββ¬βββββββββββββββββββββ
β β β
+-----------+ +-----------+ +-----------+
| ECU1 | | ECU2 | | ECU3 |
| Extract | | Extract | | Extract |
| (BCM.arxml)| | (IC.arxml)| | (ADAS.arxml)|
+-----------+ +-----------+ +-----------+
β β β
[ SW Dev Team 1 ] [ SW Dev Team 2 ] [ SW Dev Team 3 ]
β β β
[ RTE Gen ] [ RTE Gen ] [ RTE Gen ]
β β β
[ Code Gen ] [ Code Gen ] [ Code Gen ]
π Sample ECU Extract ARXML Snippet (Simplified)
<AUTOSAR>
<ECUC-MODULE-CONFIGURATION-VALUES>
<SHORT-NAME>BodyControlModule</SHORT-NAME>
<CONTAINER>
<SHORT-NAME>ComSignal</SHORT-NAME>
<PARAMETER>
<DEFINITION-REF>/Com/ComSignalName</DEFINITION-REF>
<VALUE>TurnSignal_Status</VALUE>
</PARAMETER>
<PARAMETER>
<DEFINITION-REF>/Com/ComSignalLength</DEFINITION-REF>
<VALUE>8</VALUE>
</PARAMETER>
</CONTAINER>
<CONTAINER>
<SHORT-NAME>RteEvent</SHORT-NAME>
<PARAMETER>
<DEFINITION-REF>/Rte/EventTiming</DEFINITION-REF>
<VALUE>10ms</VALUE>
</PARAMETER>
</CONTAINER>
<REFERENCE-BASED-VALUE>
<DEFINITION-REF>/SwComponentInstance</DEFINITION-REF>
<VALUE-REF DEST="SW-COMPONENT-PROTOTYPE">/SWCs/TurnSignalController</VALUE-REF>
</REFERENCE-BASED-VALUE>
</ECUC-MODULE-CONFIGURATION-VALUES>
</AUTOSAR>
π Key Points in the ARXML Snippet
<SHORT-NAME>
defines the ECU name (e.g., BCM).<CONTAINER>
includes signal and port configurations.<PARAMETER>
gives timing, length, etc.<VALUE-REF>
shows software component mapping (e.g., TurnSignalController SWC).