Overview
OpenECU-FS platform software supports Dana’s family of customizable Off-the-shelf rapid control prototyping ECUs suitable for use in vehicle prototypes or fleet trials for a range of applications such as automotive gateway, engine control, motor control and Electric Vehicle (EV) or Hybrid Electric Vehicle (HEV) supervisory control.
OpenECU-FS is a development platform allowing customers to develop control applications with production level Electronic Control Unit (ECU) targets using developer interfaces of Simulink® or C. OpenECU-FS platform software provides Basic Software modules (BSW) for automotive ECU software development using Model Based Development or C Programming.
OpenECU-FS has been designed as a Safety Element out of Context (SEooC) with M560 and M580 ECUs with ISO 262626 processes. M560 or M580 ECUs are generic Vehicle Control Units (VCUs) and Vehicle Charge Control Unit (VCCU) intended for onboard vehicle use. M560 or M580 is a dual microcontroller system, with various interfaces including digital, analog, PWM, and serial data communication. M560 or M580 Vehicle Control Unit (VCU) are used by customers to design Supervisory Control and Charging application software leveraging OpenECU-FS software building blocks and Simulink® API.
Functional Safety architecture of OpenECU-FS for M560 or M580 family of controllers include:
- Dual-microcontroller architecture with asymmetric hardware redundancy and diversified software redundancy
- Outputs requiring assertion from both microcontrollers for activation
- Inputs routed to both microcontrollers for reciprocal computation
- CAN buses with independent disable from secondary microcontroller
Customers can develop applications to meet safety goals up to ASIL D adhering to the product Functional Safety Manual. Enquire with Dana to learn more about the Functional Safety Manual.
For higher volume production, we develop cost-optimized custom ECUs. Dana also provides engineering services which is supported by a strong team of Systems, Controls, Software and Hardware engineers. Contact Dana for specific requirements.
Application Development: Developer API
OpenECU-FS allows customers to develop automotive ECU software application and retain Intellectual Property (IP) using our developer APIs.
In addition to OpenECU-FS’s real-time operating system, the OpenECU-FS platform software provides two distinct APIs for application development. For controls systems that use Model-Based software development, OpenECU-FS comes with the Simulink-API. This allows developers to use the Mathworks toolsuite to develop automotive ECU software. Other control systems have been developed in C. For those customers, OpenECU-FS provides a C-API for C application development. Both interfaces, C and Simulink, allow companies and their engineers to develop and retain their own designs and IP. OpenECU-FS depends on application and safety mechanisms implemented by the developer of the application software.
Developer Platform API | |
OpenECU-FS Developer Simulink-API | OpenECU-FS Developer C-API |
OpenECU-FS Platform Software Architecture
Bootloader
Bootloader in the Automotive ECU is the entry point when the Electronic Control Unit (ECU) powers up. It verifies the application and calibration binary image. OpenECU-FS uses a monolithic design of the bootloader. A monolithic bootloader initially loads the binary image into a temporary area within the automotive ECU and then the complete image is flashed or programmed into the ECU. The microprocessor invokes the boot loader when the processor comes out of reset. OpenECU-FS provides various ECU modes: Boot Mode, Reprogramming Mode, Factory Mode and Application Mode.
Vehicle ECU Reprogramming
OpenECU-FS supports ECU reprogramming, which allows users to reflash new application to target automotive or vehicle Electronic Control Unit (ECU). An OpenECU-FS rapid control prototyping embedded controller can transition to a reprogramming mode when the boot loader does the checksum and it is invalid. A user can change the target ECU to reprogramming mode when a request to flash a new application is performed using a PC based service or calibration tool.
Real-time Operating System
OpenECU-FS is a real-time operating system (RTOS) for automotive embedded software supporting Dana ECUs with dual microcontroller architectures.
OpenECU-FS RTOS for the primary microcontroller is a priority ceiling preemptive task scheduler with rate-monotonic application task prioritization and can do tasks as fast as 1ms period on the primary microprocessors. Preemptive task scheduling provides an interface for the application to monitor missed or over run tasks. Applications can create tasks at different rates allowing optimization of CPU usage and resource utilization. Rate-Monotonic Scheduling (RMS) is an application task prioritization algorithm adopted in OpenECU-FS RTOS which assigns highest priority to tasks that have high rate.
OpenECU-FS RTOS also supports a secondary microcontroller with non-preemptive, strict rate monotonic task scheduler. Secondary microcontroller uses a periodic loop and a background loop providing automotive application software developers access to implement application dependent monitoring. OpenECU-FS provides access to the secondary microcontroller to develop monitoring application to perform redundant checks to achieve functional safety goals through shut-off paths.
OpenECU-FS detects memory faults with stack monitoring. Stack monitoring scheme monitors how much stack space is utilized by the application. Stack monitoring allows safe shut-down during a stack anomaly by providing stack overflow checks. OpenECU-FS users can select stack size with Simulink build configuration.
Platform Library: Features
OpenECU-FS platform software provides services to automotive ECU application software, ECU hardware abstraction and provides a consistent programming interface for ECU software developers to design and model control applications. Available services from OpenECU-FS Platform Libraries include CAN communication services (including Wake-on CAN), diagnostics, timed I/O, angular I/O, Non-volatile data storage and many more. Peripherals include Analog IOs and Digital IOs. OpenECU-FS platform libraries initialize all the Input Output (IO) value. For functional safety, there are designated safe output states for IOs. Refer to OpenECU-FS Technical Specification or Functional Safety Manual for more details.
OpenECU-FS supports various types of ASICs. These include ASIC digital IOs, used for multiplexing signals, enabling application developers to increase the number of IO channels available to the application. ASICs that use SPI interface, NVM interface and flash drivers are also configured by OpenECU-FS. ASICs for H-bridges are also supported for target ECUs that have H-Bridges.
Vehicle to Grid (V2G) protocol stack is implemented by OpenECU-FS providing building blocks to developers to implement charge management using SAE J1772 and DIN 70121 standards for Combined Charging System.
Each Electronic Control Unit (ECU) within the OpenECU-FS family of rapid control prototyping embedded controllers has a Basic Software (BSW) or platform library component associated with specific processor providing Microcontroller Abstraction Layer (MCAL) comprising of memory drivers, communication drivers (CAN driver), I/O drivers, PWM and more.
Automotive ECU Application Software Interface
OpenECU-FS application software interface allows automotive software developers access to services and capabilities available to OpenECU-FS family of rapid control prototyping embedded controller such as the M560, M580 or M360*. Automotive ECU applications include Hybrid Control Unit (HCU) control algorithm, Vehicle Control Unit (VCU) control algorithm or supervisory control and Combined Charging System (CCS). Automotive software applications can be developed using Model Based Development through OpenECU-FS Developer Simulink API or using OpenECU-FS Developer C-API.
OpenECU-FS Platform Software Structure
OpenECU-FS platform software provides abstraction layer between specific hardware and application development. The abstraction layer allows application linking to various features developed in the form of platform libraries or services.
These platform libraries provide automotive functionalities. Features include the following:
Development environment
OpenECU-FS development environment supports various automotive ECU as targets. OpenECU-FS supports compilers such as Wind River Diab C compiler and MGCC compiler. OpenECU-FS supports calibration tools such as OpenECU Calibrator, ATI Vision, ETAS INCA and Vector CANape.
- Learn more about third party tools supported by OpenECU-FS here.
- Refer to OpenECU-FS Technical Specification for more detail.
Automotive ECU Messaging and Communication
OpenECU-FS platform software supports various industry recognized communication buses and protocols. Supported communication protocols can be visualized with the OSI model: physical, data link, network, transport and application layers.
Communication protocols available for support by OpenECU-FS platform software include ISO 11898, ISO 14229, ISO 14230, ISO 15765, J1939, SAE J1772 and DIN 70121.
CAN Calibration Protocol (CCP) allowing interaction with reprogramming and calibration tools. CCP is primarily a client/server based protocol where a client, a calibration tool requests the server, the target ECU to perform a task or provide status information.
OpenECU-FS has capabilities to implement more communication features such as automotive Ethernet and LIN. Contact Dana to learn more.
Memory Management
OpenECU-FS platform software performs management of non-volatile, adaptive and calibration memory. It handles storage of data parameters across power cycles and provide utility functions for adaptive data and maps for Non-volatile and adaptive memory. OpenECU-FS platform software handles calibration memory, whether provided by dedicated on-board memory or attachable emulators.
OpenECU-FS also provides memory mapping, allocating different memory spaces during build done by linker files.
Stack monitoring
OpenECU-FS provides a way of monitoring how much stack space is utilized by the application. For the primary microcontroller, you can select the stack size with a Simulink build configuration. OpenECU-FS provides safe shut-down during a stack anomaly by implementing stack overflow check.
Device driver
OpenECU-FS implements device drivers for hardware peripherals such as CAN transceivers, Analog inputs or outputs, digital input or outputs, and ASICs with SPI or NVM interfaces. OpenECU-FS also supports ASIC digital IOs used for multiplexing signals.