Vehicle ECU Flash Memory Block Management for Power Cycle Data Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional electronic control devices for vehicles face issues with writing learning values to flash memory during power on/off cycles, leading to corrupted data and reduced service life, especially when the self-shut relay is eliminated, causing difficulties in engine control.
Innovation Solution
The electronic control device manages learning values by writing new data in flash memory blocks only when there is residual storage capacity, and if not, it erases data in the current block and writes it in another block, ensuring complete sets of learning values are maintained, even during power fluctuations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If the self-shut relay is eliminated to reduce device complexity and cost, then the device complexity is reduced, but the learning values cannot be written in the flash memory properly during power off
Solution Approach 1:
The system performs preliminary actions by detecting power off events and initiating data saving to backup blocks before the main writing process is interrupted. The controller identifies which learning values have been updated and saves them to predetermined backup blocks in advance, ensuring data integrity even when power is cut during the writing process.
2Loss of time
If power is turned off during the writing process of learning values, then the writing process is terminated, but the learning values may be recorded in a corrupted state
Solution Approach 1:
The flash memory is divided into multiple blocks, with predetermined blocks designated as backup blocks. Learning values are segmented and written to different blocks, allowing the system to recover complete data sets from backup blocks if writing to the current block is interrupted, thus preventing corrupted data states.
Solution Approach 2:
The system creates copies of learning values in predetermined backup blocks before finalizing the writing process. If power is turned off during writing, the intact copies in backup blocks can be used to restore the complete learning values, preventing data corruption.
3Productivity
If a power on/off operation is repeated during writing, then the writing process is continuously interrupted, but corrupted learning values are continuously stored in the flash memory
Solution Approach 1:
The system performs preliminary detection of power off events and initiates data saving operations before interruption occurs. By identifying updated learning values and saving them to backup blocks in advance, the system prevents the accumulation of corrupted data even with repeated power cycles.
4Reliability
If all learning values in a block are corrupted, then the block cannot be used, but it is difficult to control the engine without normal learning values
Solution Approach 1:
Learning values are segmented across multiple blocks in the flash memory, with predetermined backup blocks containing complete sets of learning values. If one block becomes corrupted, the system can retrieve complete learning values from backup blocks, ensuring continuous engine control capability without requiring complex recovery procedures.
Data Source
Figure 1
Figure 2
Figure 3A~3B
AI summary
[Problem] To accurately obtain learning values of control parameters even if a power on/off operation is repeated. [Solution] An electronic control device (1) has a flash memory (12) that stores therein learning values of control parameters. The flash memory (12) has a plurality of blocks (31) and (32). When there is no residual storage capacity to be used in the first block (31) at the time of power on, it is checked if there is a set of learning values in the block (31). When a set of learning values is prepared completely in the second block (32), new learning values are written in the next block. On the other hand, when a set of learning values is not available in the second block (32), data in the second block (32) is erased, and then new learning values are written in the second block (32).