WO2020158675A1 - 電子制御装置及びプログラム更新方法 - Google Patents
電子制御装置及びプログラム更新方法 Download PDFInfo
- Publication number
- WO2020158675A1 WO2020158675A1 PCT/JP2020/002808 JP2020002808W WO2020158675A1 WO 2020158675 A1 WO2020158675 A1 WO 2020158675A1 JP 2020002808 W JP2020002808 W JP 2020002808W WO 2020158675 A1 WO2020158675 A1 WO 2020158675A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- storage area
- electronic control
- state
- written
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
Definitions
- the present invention relates to an electronic control device and a program updating method.
- the program of the electronic control unit installed in a vehicle such as an automobile may be updated due to addition of functions or repair of defects.
- the vehicle has been brought to a dealer or the like to update the program of the electronic control unit.
- Patent Document 1 Japanese Unexamined Patent Application Publication No. 2018-86894 (Patent Document 1), OTA (Over The Air) using wireless communication allows the user to control Techniques for updating programs have been proposed.
- the program to be executed is written in one storage area, and the other storage area is used for updating the program. It can be considered as the reserved area of. Then, by writing the update program in the reserved area and switching to the update program at the timing of, for example, restarting, the program can be updated even while the vehicle is traveling.
- the control target can be continuously controlled by switching to the program before update.
- the programs stored in the two storage areas are different, the driver of the vehicle may feel uncomfortable when switching from the update program to the pre-update program.
- an object of the present invention is to provide an electronic control device and a program updating method that make it difficult to feel a sense of discomfort due to program switching.
- the electronic control device in which two storage areas capable of exclusively switching between the active state and the inactive state are secured in the non-volatile memory has an external instruction when a program is written in the storage area in the active state.
- the program is written and updated in the storage area in the inactive state, the storage area in the active state is switched to the inactive state, and the storage area in the inactive state is switched to the active state.
- the electronic control unit inactivates the program written in the storage area switched to the active state. Copy to the state storage area.
- the program written in the storage area in the active state and the program written in the storage area in the inactive state are the same, it is possible to make it difficult to feel a sense of discomfort due to the switching of the programs.
- FIG. 7 is a flowchart showing an example of a program writing process. It is a data structure diagram of a storage area in an initial state in which programs A1 to F1 are written.
- FIG. 7 is a data structure diagram of a storage area in a state where programs A2 to D2 are written and updated. It is a data structure diagram of a storage area in a state where a program E2 is written and updated. It is a data structure diagram of a storage area in a state where a program F2 is written and updated.
- FIG. 1 shows an example of a system for updating a program of an electronic control unit mounted on a vehicle VH using OTA.
- the update program is delivered to the vehicle VH by wireless communication from a base station BS connected to a data center (not shown) called an OTA center.
- the update program distributed to the vehicle VH is sent to the electronic control unit via the wireless transceiver, the gateway, and the vehicle-mounted network, and written in the nonvolatile memory of the electronic control unit.
- the base station BS is taken as an example of the outside.
- FIG. 2 shows an example of the electronic control unit 100 mounted on the vehicle VH.
- the electronic control unit 100 connects a processor 120, a code flash memory 140, a data flash memory 160, a RAM (Random Access Memory) 180, an input/output circuit 200, a communication circuit 220, and these so that they can communicate with each other. And an internal bus 240.
- the code flash memory 140 is taken as an example of a non-volatile memory.
- the vehicle VH is equipped with a plurality of electronic control units 100 connected to an in-vehicle network such as a CAN (Controller Area Network). ing.
- CAN Controller Area Network
- the processor 120 is hardware that executes an instruction set (data transfer, calculation, processing, control, management, etc.) described in a program, and includes a calculation device, a register for storing instructions and information, a peripheral circuit, and the like. Has been done.
- the code flash memory 140 is a non-volatile memory in which data can be electrically rewritten, and stores, for example, a program for controlling an engine, an automatic transmission, a fuel injection device, and the like.
- the data flash memory 160 is a non-volatile memory in which data can be electrically rewritten, and stores data such as a learning value.
- the RAM 180 is a volatile memory in which data is lost when the power supply is cut off, and provides a temporary storage area for the processor 120.
- the input/output circuit 200 includes an A/D converter, a D/A converter, a D/D converter, and the like, and provides an input/output function of an analog signal and a digital signal with respect to an external device.
- the communication circuit 220 includes a CAN transceiver and the like, and provides a function of connecting to an in-vehicle network.
- the internal bus 240 is a path for exchanging data between devices, and an address bus for transferring an address, a data bus for transferring data, and an actual input/output with the address bus and the data bus. It includes a control bus for exchanging timing and control information.
- the communication circuit 220 of the electronic control unit 100 is connected to a wireless transceiver 280 that wirelessly communicates with the base station BS via the gateway 260.
- the gateway 260 can convert the protocol of the data transmitted from the base station BS into a protocol that can be processed by the communication circuit 220, and can process the protocol of the data processed by the electronic control unit 100 by the base station BS. Provides the function to convert to protocol.
- the update program distributed from the base station BS is received by the wireless transceiver 280 mounted on the vehicle VH, protocol-converted by the gateway 260, and sent to the processor 120 via the communication circuit 220 and the internal bus 240. .. Then, the processor 120 updates the program of the code flash memory 140, for example, according to a rewrite program stored in advance in the code flash memory 140, as described below in detail.
- the rewriting program itself stored in the code flash memory 140 in advance may also be the update target.
- a bank A and a bank B are provided as an example of two storage areas in which the active state and the inactive state can be exclusively switched. Is secured in advance.
- the programs A to F for controlling the control target of the electronic control device 100 are written in the active bank A, and the data is not written in the inactive bank B. ..
- the bank B in the inactive state is used as a reserved area for updating the programs AF.
- the bank in the active state will be referred to as "active ROM”
- the bank in the inactive state will be referred to as "inactive ROM”.
- the problems of the prior art will be described.
- the program of revision 1.0 is written in the active ROM, and the inactive ROM is unused.
- the program of revision 2.0 is written in the inactive ROM, and the active control is performed at a predetermined timing, for example, when the electronic control unit 100 is restarted.
- the ROM is switched to the inactive ROM, and the inactive ROM is switched to the active ROM. Therefore, the electronic control unit 100 can thereafter execute the revision 2.0 program written in the active ROM, and can execute the control in which, for example, a function is added or a defect is repaired.
- the revision 3.0 program is written in the inactive ROM, and the active ROM is switched to the inactive ROM at a predetermined timing.
- the inactive ROM is switched to the active ROM.
- the program written in the active ROM has a different revision from the program written in the inactive ROM. Therefore, if an abnormality occurs in the program written in the active ROM and the active ROM and the inactive ROM are switched, the control content may be slightly different and the vehicle driver may feel uncomfortable. .. Therefore, as will be described in detail below, when the program written in the active ROM is different from the program written in the inactive ROM, the electronic control device 100 loads the program written in the active ROM. Copying to the active ROM makes the revisions of the programs written in the active ROM and the inactive ROM the same.
- FIG. 5 shows an example of the program update process executed by the processor 120 of the electronic control unit 100 according to the update program written in the code flash memory 140 upon receiving the update request of the program.
- the data flash memory 160 of the electronic control unit 100 an area for storing the activation bank information and the copy request is secured in advance, and in the data structure shown in FIG. 3, the activation bank information is “bank A” as an initial value. ", and the copy request is set to "no request".
- the area for storing the activation bank information and the copy request is not limited to the data flash memory 160 but may be secured in the code flash memory 140 in advance.
- step 1 the processor 120 of the electronic control unit 100 reads the activation bank information from the data flash memory 160.
- the startup bank information is information that can specify the active ROM, and the inactive ROM can also be specified by specifying the active ROM.
- step 2 the processor 120 of the electronic control unit 100 identifies the inactive ROM based on the startup bank information. That is, the processor 120 of the electronic control unit 100 specifies that the inactive ROM is the “bank B” if the “bank A” is set in the startup bank information, and sets the “bank B” in the startup bank information. If so, the inactive ROM is identified as "bank A”.
- step 3 the processor 120 of the electronic control unit 100 receives the program distributed from the base station BS and writes it in the inactive ROM.
- the processor 120 of the electronic control device 100 may sequentially receive the programs divided into a predetermined size and sequentially write the programs in the inactive ROM.
- the program distributed from the base station BS may be encrypted with a common key or may be compressed according to a predetermined rule. Further, the program distributed from the base station BS may be a difference between the programs written in the active ROM.
- the processor 120 of the electronic control device 100 uses, for example, a CRC (Cyclic Redundancy Check) or a checksum to determine whether the program has been received and written normally, and retransmits the program if necessary. May be requested.
- CRC Cyclic Redundancy Check
- step 4 the processor 120 of the electronic control device 100 switches the inactive ROM to the active ROM at a predetermined timing, for example, when the electronic control device 100 is started, so that control can be started by the program written therein.
- Set the startup bank information to.
- the processor 120 of the electronic control device 100 sets “bank A” in the startup bank information when the program is written in the bank A, and sets the startup bank information when the program is written in the bank B. "Bank B" is set in the information.
- the predetermined timing for switching the inactive ROM to the active ROM is not limited to the startup of the electronic control device 100, but may be the idle stop or the reset (the same applies to the following processing).
- step 5 the processor 120 of the electronic control unit 100 loads the program written in the active ROM so that the revisions of the program written in the active ROM and the program written in the inactive ROM are the same. Set the copy request to copy to the active ROM.
- the processor 120 of the electronic control unit 100 when the processor 120 of the electronic control unit 100 receives the program update request, the processor 120 writes the update program in the inactive ROM, updates the activation bank information, and sets a copy request. Therefore, the processor 120 of the electronic control device 100 can prepare for the control of the controlled object using the latest program and the consistency of the programs of the active ROM and the inactive ROM in the subsequent processing.
- FIG. 6 is an example of a first initialization process executed by the processor 120 of the electronic control device 100 in accordance with the initialization program written in the code flash memory 140, triggered by the activation of the electronic control device 100. Is shown. Further, the processor 120 of the electronic control unit 100, following the first initialization process, executes normal control for controlling the engine, the automatic transmission, the motor, and the like that are control targets.
- the processor 120 of the electronic control unit 100 reads the activation bank information from the data flash memory 160.
- the processor 120 of the electronic control unit 100 specifies the active ROM and the inactive ROM according to the startup bank information. Specifically, the processor 120 of the electronic control unit 100 specifies that if the activation bank information is “bank A”, the active ROM is “bank A” and the inactive ROM is “bank B”. Further, the processor 120 of the electronic control unit 100 specifies that the active ROM is “bank B” and the inactive ROM is “bank A” if the startup bank information is “bank B”.
- step 13 the processor 120 of the electronic control unit 100 refers to the copy request of the code flash memory 140 and determines whether or not the copy request is set, that is, whether or not there is a copy request. Then, if the processor 120 of the electronic control unit 100 determines that there is a copy request (Yes), the process proceeds to step 14. On the other hand, if the processor 120 of the electronic control unit 100 determines that there is no copy request (No), it ends the first initialization process and shifts to normal control.
- the program of the active ROM that is, the update program is copied to the inactive ROM. Therefore, the program of the active ROM and the program of the inactive ROM can be the same.
- step 15 since the processor 120 of the electronic control unit 100 responds to the copy request, the copy request is reset, that is, the copy request stored in the data flash memory 160 is changed to “no request”. After that, the processor 120 of the electronic control unit 100 ends the first initialization process and shifts to the normal control.
- the program of the active ROM and the program of the inactive ROM can be made to be the same while allowing the program to be updated even while the vehicle VH is traveling. This can make it difficult for the driver and the like to feel discomfort. Further, even if an abnormality occurs in the active ROM, the same control is continued by the program written in the inactive ROM, so that the degenerate operation such as the fail safe mode can be avoided.
- the program written in the active ROM may be rewritten due to noise, for example, and it may not be possible to exhibit the required function. Therefore, as described below, the program of the active ROM is diagnosed when the electronic control unit 100 is activated, and if an abnormality has occurred in the program, a program that is considered not to have an abnormality is copied and repaired. To do so.
- FIG. 8 is an example of a second initialization process executed by the processor 120 of the electronic control device 100 according to the initialization program written in the code flash memory 140, triggered by the activation of the electronic control device 100. Is shown.
- the data flash memory 160 of the electronic control unit 100 in addition to the area for storing the startup bank information and the copy request, an area for storing the repair request is secured in advance, and the initial value of the repair request is “no request”. Is set to.
- the area for storing the repair request is not limited to the data flash memory 160 and may be secured in the code flash memory 140 in advance.
- the processor 120 of the electronic control unit 100 following the second initialization process, executes normal control for controlling the engine, the automatic transmission, the motor, and the like that are control targets.
- the description of the process common to the first initialization process will be simplified for the purpose of eliminating duplicate description. If necessary, refer to the explanation of the first initialization process.
- the processor 120 of the electronic control unit 100 reads the activation bank information from the data flash memory 160.
- step 22 the processor 120 of the electronic control unit 100 diagnoses whether or not there is an abnormality in the program written in the active ROM specified by the startup bank information, the active ROM diagnosis subroutine.
- the active ROM diagnosis as will be described in detail later, if an abnormality occurs in the active ROM, the active ROM is switched to the inactive ROM, the inactive ROM is switched to the active ROM, and the repair request is issued. Is set.
- the active ROM diagnosis is not limited to the subroutine form, and may be incorporated in the second initialization process.
- step 23 the processor 120 of the electronic control unit 100 determines whether or not there is a copy request. Then, if the processor 120 of the electronic control unit 100 determines that there is a copy request (Yes), the process proceeds to step 24. On the other hand, if the processor 120 of the electronic control unit 100 determines that there is no copy request (No), the process proceeds to step 26.
- the processor 120 of the electronic control unit 100 copies the program of the active ROM to the inactive ROM because a copy request is made.
- the processor 120 of the electronic control unit 100 resets the copy request. After that, the processor 120 of the electronic control unit 100 ends the second initialization process and shifts to the normal control.
- step 26 the processor 120 of the electronic control unit 100 refers to the repair request of the code flash memory 140 and determines whether or not the repair request is set, that is, whether or not there is a repair request. Then, if the processor 120 of the electronic control unit 100 determines that there is a repair request (Yes), the process proceeds to step 27. On the other hand, if the processor 120 of the electronic control unit 100 determines that there is no repair request (No), it ends the second initialization process and shifts to normal control.
- step 27 since the processor 120 of the electronic control unit 100 has made a repair request, the program of the active ROM, that is, the program considered to have no abnormality is copied to the inactive ROM and repaired. Therefore, the program in which the abnormality has occurred is restored, and the program in the active ROM and the program in the inactive ROM can be made the same.
- the repair request is reset, that is, the repair request stored in the data flash memory 160 is changed to “no request”. After that, the processor 120 of the electronic control unit 100 ends the second initialization process and shifts to the normal control.
- FIG. 9 shows an example of the active ROM diagnosis processing in the form of a subroutine.
- the processor 120 of the electronic control unit 100 uses the CRC, the checksum, or the like, for the active ROM specified by the startup bank information, and an abnormality occurs in the program written in the active ROM. It is determined whether or not there is. Then, if the processor 120 of the electronic control unit 100 determines that an abnormality has occurred in the program written in the active ROM (Yes), the process proceeds to step 32. On the other hand, if the processor 120 of the electronic control unit 100 determines that there is no abnormality in the program written in the active ROM, that is, the program is normal (No), the active ROM diagnostic process is terminated. And returns to the second initialization process.
- step 32 the processor 120 of the electronic control unit 100 updates the startup bank information to the inactive ROM so as to control the control target by the program written in the inactive ROM in which the abnormality is unlikely to occur. ..
- the processor 120 of the electronic control unit 100 switches between the active ROM and the inactive ROM in a later process when the program written in the active ROM is abnormal, and controls by the program written in the active ROM.
- the startup bank information is updated to continuously control the target. Note that the startup bank information does not have to be updated in view of the fact that the abnormality can be repaired by copying the program.
- step 33 the processor 120 of the electronic control unit 100 sets a repair request for requesting that a program in which no abnormality has occurred overwrite the program in which the abnormality has occurred and restores the set program. ”Is set.
- the processor 120 of the electronic control unit 100 executes a software reset in order to execute the second initialization process from the beginning.
- the software reset is executed, it is possible to prevent the initialization processing, which is not described in this specification, from being re-executed and an unexpected processing is performed. Note that the active ROM diagnosis processing is inevitably ended by executing the software reset.
- the second initialization process and the active ROM diagnosis process in addition to the function and effect of the first initialization process, when an abnormality occurs in the program written in the active ROM, the abnormality occurs in the program. Programs that are not considered to be overwritten are repaired. Therefore, even if an abnormality occurs in the program written in the active ROM for some reason after the program is updated, the revisions of the program written in the active ROM and the program written in the inactive ROM are the same. can do. Further, when an abnormality occurs in the program written in the active ROM, software reset is executed, so that the active ROM and the inactive ROM are switched with this as a trigger, and control is performed by the program written in the active ROM. The subject is continuously controlled.
- the inactive ROM secured in the code flash memory 140 is used only for updating the program, the available storage area of the code flash memory 140 becomes small. Therefore, in order to use the code flash memory 140 efficiently, when the inactive ROM is unused, arbitrary data such as failure information may be written therein.
- one of banks A and B secured in the code flash memory 140 is a dedicated area for at least one program selected from a plurality of programs by a predetermined rule.
- a shared area shared by at least one other program is partitioned into a dedicated area A of the program A, a dedicated area B of the program B, and a shared area shared by the programs C to F, but its data structure can be arbitrary. ..
- the predetermined rule may be the importance of the program that controls the vehicle VH, for example, the importance regarding safety. Note that banks A and B can exclusively switch one of the programs to the active ROM and the other to the inactive ROM for each program.
- FIG. 12 shows an example of a program writing process executed when the processor 120 of the electronic control unit 100 writes a program in the inactive ROM according to a writing program written in the code flash memory 140.
- the processor 120 of the electronic control unit 100 refers to, for example, a table defining whether each program is written in the dedicated area or the shared area, and determines whether or not the program to be written is written in the shared area.
- the table is created in consideration of the degree of importance of the program, and is stored in advance in the code flash memory 140, for example. Then, if the processor 120 of the electronic control unit 100 determines to write the program to be written in the shared area (Yes), the process proceeds to step 42. On the other hand, if the processor 120 of the electronic control unit 100 determines that the program to be written is not written in the shared area, that is, it is written in the dedicated area because its importance is high (No), the process proceeds to step 46. Proceed.
- step 42 the processor 120 of the electronic control unit 100 refers to the bank B of the code flash memory 140 and determines whether or not there is a free space in the shared area, that is, whether or not the program to be written can be written. judge. Then, if the processor 120 of the electronic control unit 100 determines that there is no free space in the shared area (Yes), the process proceeds to step 43. On the other hand, if the processor 120 of the electronic control unit 100 determines that there is a free space in the shared area (No), the process proceeds to step 45.
- step 43 the processor 120 of the electronic control unit 100 selects from among the programs written in the shared area of the bank B, for example, the one with the lowest importance, the one with the oldest time stamp, the one with a similar program size, , And at least one program to be erased is selected.
- the at least one program to be deleted is not limited to the above example and can be selected according to any rule.
- the processor 120 of the electronic control unit 100 erases at least one program selected at step 43 from the programs written in the shared area of the bank B. Therefore, a space for writing the program to be written is created in the shared area of the bank B.
- the processor 120 of the electronic control unit 100 writes the program to be written in the shared area of the bank B. After that, the processor 120 of the electronic control unit 100 ends the program writing process, and subsequently executes the process subsequent thereto.
- the processor 120 of the electronic control unit 100 writes the program to be written in the dedicated area of the bank B. After that, the processor 120 of the electronic control unit 100 ends the program writing process, and subsequently executes the process subsequent thereto.
- a highly important program is updated by using a dedicated area associated with the program, and a less important program uses a shared area shared by a plurality of programs. Will be updated.
- a shared area shared by a plurality of programs.
- the reserved area reserved in the code flash memory 140 becomes small, and the storage area of the code flash memory 140 can be efficiently used.
- processor 140 code flash memory (non-volatile memory)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保された電子制御装置は、アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に応答して、インアクティブ状態の記憶領域にプログラムを書き込んで更新し、アクティブ状態の記憶領域をインアクティブ状態に切り替え、インアクティブ状態の記憶領域をアクティブ状態に切り替える。そして、電子制御装置は、アクティブ状態の記憶領域に書き込まれたプログラムとインアクティブ状態の記憶領域に書き込まれたプログラムとが異なる場合、アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムをインアクティブ状態の記憶領域にコピーする。
Description
本発明は、電子制御装置及びプログラム更新方法に関する。
自動車などの車両に搭載された電子制御装置は、機能追加、不具合改修などによってプログラムが更新される場合がある。従来では、車両をディーラなどに持ち込んで、電子制御装置のプログラムを更新していた。この場合、車両ユーザの利便性が良くないことから、特開2018-86894号公報(特許文献1)に記載されるように、無線通信を使用したOTA(Over The Air)によって、ユーザの手元でプログラムを更新する技術が提案されている。
OTAによってプログラムを更新する場合、車両走行中などにもプログラムを更新できることが望ましい。これを実現するため、電子制御装置の不揮発性メモリに確保された2つの記憶領域を交互に使用し、一方の記憶領域に実行対象のプログラムを書き込んでおき、他方の記憶領域をプログラムの更新用の予約領域とすることが考えられる。そして、予約領域に更新プログラムを書き込み、例えば、再起動時などのタイミングで更新プログラムに切り替えることで、車両走行中などにもプログラムを更新できるようになる。
このようにした場合、更新プログラムに不具合が発生したとき、更新前のプログラムに切り替えることで、制御対象を継続して制御することができる。しかしながら、2つの記憶領域に格納されているプログラムが異なっているため、更新プログラムから更新前のプログラムに切り替えると、車両の運転者などが違和感を覚えてしまうおそれがある。
そこで、本発明は、プログラムの切り替えによる違和感を覚え難くした、電子制御装置及びプログラム更新方法を提供することを目的とする。
アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保された電子制御装置は、アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に応答して、インアクティブ状態の記憶領域にプログラムを書き込んで更新し、アクティブ状態の記憶領域をインアクティブ状態に切り替え、インアクティブ状態の記憶領域をアクティブ状態に切り替える。そして、電子制御装置は、アクティブ状態の記憶領域に書き込まれたプログラムとインアクティブ状態の記憶領域に書き込まれたプログラムとが異なる場合、アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムをインアクティブ状態の記憶領域にコピーする。
本発明によれば、アクティブ状態の記憶領域に書き込まれたプログラムとインアクティブ状態の記憶領域に書き込まれたプログラムとが同一となるので、プログラムの切り替えによる違和感を覚え難くすることができる。
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図1は、OTAを利用して、車両VHに搭載された電子制御装置のプログラムを更新するシステムの一例を示している。更新プログラムは、OTAセンターと呼ばれるデータセンター(図示せず)に接続された基地局BSから無線通信で車両VHに配信される。車両VHに配信された更新プログラムは、無線送受信機、ゲートウェイ及び車載ネットワークを介して電子制御装置に送られ、電子制御装置の不揮発性メモリに書き込まれる。ここで、基地局BSが、外部の一例として挙げられる。
図1は、OTAを利用して、車両VHに搭載された電子制御装置のプログラムを更新するシステムの一例を示している。更新プログラムは、OTAセンターと呼ばれるデータセンター(図示せず)に接続された基地局BSから無線通信で車両VHに配信される。車両VHに配信された更新プログラムは、無線送受信機、ゲートウェイ及び車載ネットワークを介して電子制御装置に送られ、電子制御装置の不揮発性メモリに書き込まれる。ここで、基地局BSが、外部の一例として挙げられる。
図2は、車両VHに搭載された電子制御装置100の一例を示している。
電子制御装置100は、プロセッサ120と、コードフラッシュメモリ140と、データフラッシュメモリ160と、RAM(Random Access Memory)180と、入出力回路200と、通信回路220と、これらを相互通信可能に接続する内部バス240と、を備えている。ここで、コードフラッシュメモリ140が、不揮発性メモリの一例として挙げられる。なお、図2においては、1つの電子制御装置100のみが図示されているが、車両VHには、CAN(Controller Area Network)などの車載ネットワークに接続された、複数の電子制御装置100が搭載されている。
電子制御装置100は、プロセッサ120と、コードフラッシュメモリ140と、データフラッシュメモリ160と、RAM(Random Access Memory)180と、入出力回路200と、通信回路220と、これらを相互通信可能に接続する内部バス240と、を備えている。ここで、コードフラッシュメモリ140が、不揮発性メモリの一例として挙げられる。なお、図2においては、1つの電子制御装置100のみが図示されているが、車両VHには、CAN(Controller Area Network)などの車載ネットワークに接続された、複数の電子制御装置100が搭載されている。
プロセッサ120は、プログラムに記述された命令セット(データの転送、演算、加工、制御、管理など)を実行するハードウエアであって、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成されている。コードフラッシュメモリ140は、電気的にデータを書き換え可能な不揮発性メモリからなり、例えば、エンジン、自動変速機、燃料噴射装置などを制御するプログラムなどを格納する。データフラッシュメモリ160は、電気的にデータを書き換え可能な不揮発性メモリからなり、例えば、学習値などのデータを格納する。RAM180は、電源供給遮断によってデータが消失する揮発性メモリからなり、プロセッサ120の一時的な記憶領域を提供する。
入出力回路200は、A/Dコンバータ、D/Aコンバータ、D/Dコンバータなどからなり、外部機器に対するアナログ信号及びデジタル信号の入出力機能を提供する。通信回路220は、CANトランシーバなどからなり、車載ネットワークに接続する機能を提供する。内部バス240は、各デバイス間でデータを交換するための経路であって、アドレスを転送するためのアドレスバス、データを転送するためのデータバス、アドレスバスやデータバスで実際に入出力を行うタイミングや制御情報を遣り取りするコントロールバスを含んでいる。
また、電子制御装置100の通信回路220は、ゲートウェイ260を介して、基地局BSと無線通信する無線送受信機280に接続されている。ここで、ゲートウェイ260は、基地局BSから送信されたデータのプロトコルを通信回路220で処理可能なプロトコルに変換すると共に、電子制御装置100で処理されるデータのプロトコルを基地局BSで処理可能なプロトコルに変換する機能を提供する。
従って、基地局BSから配信された更新プログラムは、車両VHに搭載された無線送受信機280で受信され、ゲートウェイ260によってプロトコル変換されつつ、通信回路220及び内部バス240を介してプロセッサ120に送られる。そして、プロセッサ120は、例えば、コードフラッシュメモリ140に予め格納された書き換えプログラムに従って、以下で詳細に説明するように、コードフラッシュメモリ140のプログラムを更新する。なお、コードフラッシュメモリ140に予め格納された書き換えプログラム自体も、更新対象となり得る。
コードフラッシュメモリ140には、ここに書き込まれる各プログラムについて、図3に示すように、アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域の一例として、バンクAとバンクBとが予め確保されている。図示の例では、アクティブ状態のバンクAに、電子制御装置100の制御対象を制御するためのプログラムA~Fが書き込まれ、インアクティブ状態のバンクBにデータが書き込まれていない状態を示している。ここで、インアクティブ状態のバンクBは、プログラムA~Fを更新するための予約領域として使用される。なお、以下の説明においては、アクティブ状態のバンクを「アクティブROM」、インアクティブ状態のバンクを「インアクティブROM」と呼ぶこととする。
ここで、従来技術の問題点について説明する。
電子制御装置100の初期状態では、図4に示すように、アクティブROMにリビジョン1.0のプログラムが書き込まれ、インアクティブROMが未使用となっている。この初期状態において、アクティブROMに書き込まれているプログラムを更新する場合、インアクティブROMにリビジョン2.0のプログラムが書き込まれ、例えば、電子制御装置100の再起動時などの所定のタイミングで、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられる。従って、電子制御装置100は、その後、アクティブROMに書き込まれたリビジョン2.0のプログラムを実行し、例えば、機能追加、不具合改修などが行われた制御を実行することができる。
電子制御装置100の初期状態では、図4に示すように、アクティブROMにリビジョン1.0のプログラムが書き込まれ、インアクティブROMが未使用となっている。この初期状態において、アクティブROMに書き込まれているプログラムを更新する場合、インアクティブROMにリビジョン2.0のプログラムが書き込まれ、例えば、電子制御装置100の再起動時などの所定のタイミングで、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられる。従って、電子制御装置100は、その後、アクティブROMに書き込まれたリビジョン2.0のプログラムを実行し、例えば、機能追加、不具合改修などが行われた制御を実行することができる。
そして、アクティブROMに書き込まれているリビジョン2.0のプログラムを更に更新する場合、インアクティブROMにリビジョン3.0のプログラムが書き込まれ、所定のタイミングで、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられる。このようにすることで、車両VHが走行中であってもプログラムを更新することができる。
しかしながら、図4から明確なように、アクティブROMに書き込まれているプログラムは、インアクティブROMに書き込まれているプログラムとはリビジョンが異なっている。このため、アクティブROMに書き込まれているプログラムに異常が発生して、アクティブROMとインアクティブROMとが切り替えられると、制御内容が微妙に異なることから車両運転者が違和感を覚えてしまうおそれがある。そこで、以下で詳細に説明するように、電子制御装置100は、アクティブROMに書き込まれているプログラムとインアクティブROMに書き込まれているプログラムとが異なる場合、アクティブROMに書き込まれているプログラムをインアクティブROMにコピーすることで、アクティブROM及びインアクティブROMに書き込まれているプログラムのリビジョンを同一にする。
図5は、電子制御装置100のプロセッサ120が、プログラムの更新要求を受信したことを契機として、コードフラッシュメモリ140に書き込まれている更新プログラムに従って実行する、プログラム更新処理の一例を示している。ここで、電子制御装置100のデータフラッシュメモリ160には、起動バンク情報及びコピー要求を格納する領域が予め確保され、図3に示すデータ構造においては、初期値として、起動バンク情報が「バンクA」にセットされ、コピー要求が「要求なし」にセットされている。なお、起動バンク情報及びコピー要求を格納する領域は、データフラッシュメモリ160に限らず、コードフラッシュメモリ140に予め確保されていてもよい。
ステップ1(図では「S1」と略記する。以下同様。)では、電子制御装置100のプロセッサ120が、データフラッシュメモリ160から起動バンク情報を読み込む。ここで、起動バンク情報は、アクティブROMを特定可能な情報であって、アクティブROMを特定することでインアクティブROMも特定することができる。
ステップ2では、電子制御装置100のプロセッサ120が、起動バンク情報に基づいてインアクティブROMを特定する。即ち、電子制御装置100のプロセッサ120は、起動バンク情報に「バンクA」が設定されていれば、インアクティブROMは「バンクB」であると特定し、起動バンク情報に「バンクB」が設定されていれば、インアクティブROMは「バンクA」であると特定する。
ステップ3では、電子制御装置100のプロセッサ120が、基地局BSから配信されたプログラムを受信し、これをインアクティブROMに書き込む。このとき、プログラムのサイズが大きい場合、電子制御装置100のプロセッサ120は、所定サイズに分割されたプログラムを順次受信し、これをインアクティブROMに順次書き込むようにしてもよい。また、基地局BSから配信されたプログラムは、共通キーにより暗号化されていてもよく、所定規則により圧縮されていてもよい。さらに、基地局BSから配信されたプログラムは、アクティブROMに書き込まれているプログラムの差分であってもよい。なお、電子制御装置100のプロセッサ120は、例えば、CRC(Cyclic Redundancy Check)やチェックサムなどを使用して、プログラムの受信及び書き込みが正常に行われたかを判断し、必要に応じてプログラムの再送を要求するようにしてもよい。
ステップ4では、電子制御装置100のプロセッサ120が、例えば、電子制御装置100の起動時などの所定タイミングでインアクティブROMをアクティブROMに切り替えることで、そこに書き込まれたプログラムによって制御を開始できるように起動バンク情報をセットする。具体的には、電子制御装置100のプロセッサ120は、バンクAにプログラムを書き込んだ場合には、起動バンク情報に「バンクA」をセットし、バンクBにプログラムを書き込んだ場合には、起動バンク情報に「バンクB」をセットする。なお、インアクティブROMをアクティブROMに切り替える所定タイミングは、電子制御装置100の起動時に限らず、アイドリングストップ時やリセット時などであってもよい(以下の処理についても同様)。
ステップ5では、電子制御装置100のプロセッサ120が、アクティブROMに書き込まれているプログラムとインアクティブROMに書き込まれているプログラムのリビジョンが同一となるように、アクティブROMに書き込まれているプログラムをインアクティブROMにコピーするコピー要求をセットする。
かかるプログラム更新処理によれば、電子制御装置100のプロセッサ120は、プログラムの更新要求を受信すると、インアクティブROMに更新プログラムを書き込み、起動バンク情報の更新、及びコピー要求をセットする。従って、電子制御装置100のプロセッサ120は、その後の処理において、最新のプログラムを使用した制御対象の制御、並びにアクティブROM及びインアクティブROMのプログラムの整合性をとる準備をすることができる。
図6は、電子制御装置100が起動されたことを契機として、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140に書き込まれている初期化プログラムに従って実行する、第1の初期化処理の一例を示している。また、電子制御装置100のプロセッサ120は、第1の初期化処理に続いて、制御対象であるエンジン、自動変速機、モータなどを制御する通常制御を実行する。
ステップ11では、電子制御装置100のプロセッサ120が、データフラッシュメモリ160から起動バンク情報を読み込む。
ステップ12では、電子制御装置100のプロセッサ120が、起動バンク情報に応じて、アクティブROM及びインアクティブROMを特定する。具体的には、電子制御装置100のプロセッサ120は、起動バンク情報が「バンクA」であれば、アクティブROMは「バンクA」であり、インアクティブROMが「バンクB」であると特定する。また、電子制御装置100のプロセッサ120は、起動バンク情報が「バンクB」であれば、アクティブROMは「バンクB」であり、インアクティブROMは「バンクA」であると特定する。
ステップ13では、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140のコピー要求を参照し、コピー要求がセットされているか否か、要するに、コピー要求があるか否かを判定する。そして、電子制御装置100のプロセッサ120は、コピー要求があると判定すれば(Yes)、処理をステップ14へと進める。一方、電子制御装置100のプロセッサ120は、コピー要求がないと判定すれば(No)、第1の初期化処理を終了させて通常制御へと移行する。
ステップ14では、電子制御装置100のプロセッサ120が、コピー要求があったので、アクティブROMのプログラム、即ち、更新プログラムをインアクティブROMにコピーする。従って、アクティブROMのプログラムとインアクティブROMのプログラムを同一とすることができる。
ステップ15では、電子制御装置100のプロセッサ120が、コピー要求に応答したので、コピー要求をリセット、要するに、データフラッシュメモリ160に格納されているコピー要求を「要求なし」に変更する。その後、電子制御装置100のプロセッサ120は、第1の初期化処理を終了させて通常制御へと移行する。
かかる第1の初期化処理によれば、図7に示すように、アクティブROMであるバンクAにリビジョン1.0のプログラムが書き込まれている初期状態において、外部からの更新指示に応答して、インアクティブROMであるバンクBにリビジョン2.0のプログラムが書き込まれる。その後、電子制御装置100が起動すると、アクティブROMがインアクティブROMに切り替えられると共に、インアクティブROMがアクティブROMに切り替えられ、アクティブROMであるバンクBに書き込まれているリビジョン2.0のプログラムがインアクティブROMであるバンクAにコピーされる。
また、この状態において、外部からの更新指示が再度あると、その更新指示に応答して、インアクティブROMであるバンクAにリビジョン3.0のプログラムが書き込まれる。その後、電子制御装置100が起動すると、アクティブROMがインアクティブROMに切り替えられると共に、インアクティブROMがアクティブROMに切り替えられ、アクティブROMであるバンクAに書き込まれているリビジョン3.0のプログラムがインアクティブROMであるバンクBにコピーされる。
従って、車両VHの走行中にもプログラムを更新可能としつつ、アクティブROMのプログラムとインアクティブROMのプログラムを同一とすることができ、例えば、アクティブROMの異常によってインアクティブROMに切り替えても、車両運転者などが違和感を覚え難くすることができる。また、アクティブROMに異常が発生しても、インアクティブROMに書き込まれているプログラムによって同一の制御が継続されるため、例えば、フェイルセーフモードなどの縮退運転を回避することができる。
ところで、アクティブROMに書き込まれているプログラムは、例えば、ノイズなどによって書き換わって所要の機能を発揮できなくなる可能性がある。そこで、以下説明するように、電子制御装置100の起動時にアクティブROMのプログラムを診断し、そのプログラムに異常が発生していれば、異常が発生していないと考えられるプログラムをコピーして修復するようにする。
図8は、電子制御装置100が起動されたことを契機として、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140に書き込まれている初期化プログラムに従って実行する、第2の初期化処理の一例を示している。ここで、電子制御装置100のデータフラッシュメモリ160には、起動バンク情報及びコピー要求を格納する領域に加え、修復要求を格納する領域が予め確保され、その初期値として、修復要求が「要求なし」にセットされている。修復要求を格納する領域は、データフラッシュメモリ160に限らず、コードフラッシュメモリ140に予め確保されていてもよい。また、電子制御装置100のプロセッサ120は、第2の初期化処理に続いて、制御対象であるエンジン、自動変速機、モータなどを制御する通常制御を実行する。なお、第1の初期化処理と共通する処理については、重複説明を排除する目的でその説明を簡単にする。必要があれば、第1の初期化処理の説明を参照されたい。
ステップ21では、電子制御装置100のプロセッサ120が、データフラッシュメモリ160から起動バンク情報を読み込む。
ステップ22では、電子制御装置100のプロセッサ120が、起動バンク情報により特定されるアクティブROMについて、そこに書き込まれているプログラムに異常が発生しているか否かを診断する、アクティブROM診断を行うサブルーチンをコールする。ここで、アクティブROM診断においては、詳細を後述するように、アクティブROMに異常が発生していれば、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられ、かつ修復要求がセットされる。なお、アクティブROM診断は、サブルーチン形式に限らず、第2の初期化処理に組み込むようにしてもよい。
ステップ23では、電子制御装置100のプロセッサ120が、コピー要求があるか否かを判定する。そして、電子制御装置100のプロセッサ120は、コピー要求があると判定すれば(Yes)、処理をステップ24へと進める。一方、電子制御装置100のプロセッサ120は、コピー要求がないと判定すれば(No)、処理をステップ26へと進める。
ステップ24では、電子制御装置100のプロセッサ120が、コピー要求があったので、アクティブROMのプログラムをインアクティブROMにコピーする。
ステップ25では、電子制御装置100のプロセッサ120が、コピー要求をリセットする。その後、電子制御装置100のプロセッサ120は、第2の初期化処理を終了させて通常制御へと移行する。
ステップ26では、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140の修復要求を参照し、修復要求がセットされているか否か、要するに、修復要求があるか否かを判定する。そして、電子制御装置100のプロセッサ120は、修復要求があると判定すれば(Yes)、処理をステップ27へと進める。一方、電子制御装置100のプロセッサ120は、修復要求がないと判定すれば(No)、第2の初期化処理を終了させて通常制御へと移行する。
ステップ27では、電子制御装置100のプロセッサ120が、修復要求があったので、アクティブROMのプログラム、即ち、異常が発生していないと考えられるプログラムをインアクティブROMにコピーして修復する。従って、異常が発生したプログラムが修復され、アクティブROMのプログラムとインアクティブROMのプログラムを同一とすることができる。
ステップ28では、電子制御装置100のプロセッサ120が、修復要求に応答したので、修復要求をリセット、要するに、データフラッシュメモリ160に格納されている修復要求を「要求なし」に変更する。その後、電子制御装置100のプロセッサ120は、第2の初期化処理を終了させて通常制御へと移行する。
図9は、サブルーチン形式をとるアクティブROM診断処理の一例を示している。
ステップ31では、電子制御装置100のプロセッサ120が、起動バンク情報により特定されるアクティブROMについて、例えば、CRCやチェックサムなどを使用して、アクティブROMに書き込まれているプログラムに異常が発生しているか否かを判定する。そして、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれているプログラムに異常が発生していると判定すれば(Yes)、処理をステップ32へと進める。一方、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれているプログラムに異常が発生していない、即ち、そのプログラムは正常であると判定すれば(No)、アクティブROM診断処理を終了させて第2の初期化処理へとリターンする。
ステップ31では、電子制御装置100のプロセッサ120が、起動バンク情報により特定されるアクティブROMについて、例えば、CRCやチェックサムなどを使用して、アクティブROMに書き込まれているプログラムに異常が発生しているか否かを判定する。そして、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれているプログラムに異常が発生していると判定すれば(Yes)、処理をステップ32へと進める。一方、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれているプログラムに異常が発生していない、即ち、そのプログラムは正常であると判定すれば(No)、アクティブROM診断処理を終了させて第2の初期化処理へとリターンする。
ステップ32では、電子制御装置100のプロセッサ120が、異常が発生していない可能性が高いインアクティブROMに書き込まれているプログラムにより制御対象を制御すべく、起動バンク情報をインアクティブROMに更新する。要するに、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれたプログラムに異常が発生した場合、後の処理において、アクティブROMとインアクティブROMとを切り替え、アクティブROMに書き込まれているプログラムにより制御対象を継続して制御すべく、起動バンク情報を更新する。なお、プログラムのコピーによって異常が修復され得ることを鑑み、起動バンク情報を更新しなくてもよい。
ステップ33では、電子制御装置100のプロセッサ120が、異常が発生していないプログラムを異常が発生したプログラムに上書きして修復することを要求する、修復要求をセット、要するに、修復要求に「要求あり」をセットする。
ステップ34では、電子制御装置100のプロセッサ120が、第2の初期化処理を最初から実行すべく、ソフトウエアリセットを実行する。ソフトウエアリセットを実行すると、本明細書で説明していない初期化処理が再実行され、予期せぬ処理が行われることを回避することができる。なお、ソフトウエアリセットの実行により、必然的に、アクティブROM診断処理が終了する。
かかる第2の初期化処理及びアクティブROM診断処理によれば、第1の初期化処理の作用及び効果に加え、アクティブROMに書き込まれているプログラムに異常が発生すると、これに異常が発生していないと考えられるプログラムが上書きされ、その異常が修復される。従って、プログラムの更新後において、何らかの理由によってアクティブROMに書き込まれているプログラムに異常が発生しても、アクティブROMに書き込まれているプログラムとインアクティブROMに書き込まれているプログラムのリビジョンを同一とすることができる。また、アクティブROMに書き込まれているプログラムに異常が発生するとソフトウエアリセットが実行されるので、これを契機として、アクティブROMとインアクティブROMとが切り替えられ、アクティブROMに書き込まれているプログラムにより制御対象が継続して制御される。
図10に示す具体的な事例を参照し、アクティブROMに書き込まれているプログラムに異常が発生した場合、これをどのようにして修復するかについて説明する。アクティブROMであるバンクA及びインアクティブROMであるバンクBにリビジョン1.0のプログラムが夫々書き込まれている初期状態において、何らかの理由によってアクティブROMであるバンクAに格納されているプログラムに異常が発生した場合を考察する。バンクAのプログラムに異常が発生したことが検知されると、起動バンク情報が「バンクB」に切り替えられると共に修復要求がセットされ、その後、ソフトウエアリセットが実行される。そして、第2の初期化処理が最初から実行され、修復要求のセットに応答して、異常が発生していないと考えられるバンクBに書き込まれているプログラムをバンクAにコピーし、異常が発生しているプログラムを正常なプログラムで上書きして修復する。
コードフラッシュメモリ140に確保されたインアクティブROMは、プログラムを更新するためだけに使用されるため、コードフラッシュメモリ140の利用可能な記憶領域が小さくなってしまう欠点がある。そこで、コードフラッシュメモリ140を効率的に利用することを目的として、インアクティブROMが未使用である場合、そこに故障情報などの任意のデータを書き込むようにしてもよい。
また、コードフラッシュメモリ140に確保されたバンクA及びBの一方、例えば、バンクBは、図11に示すように、複数のプログラムの中から所定規則によって選定された少なくとも1つのプログラムの専用領域と、他の少なくとも1つのプログラムで共用する共用領域と、に区画されていてもよい。図示の例では、バンクBは、プログラムAの専用領域A、プログラムBの専用領域B、及びプログラムC~Fで共用する共用領域に区画されているが、そのデータ構造は任意とすることができる。さらに、所定規則としては、車両VHを制御するプログラムの重要度、例えば、安全性に関する重要度などとすることができる。なお、バンクA及びBは、各プログラムについて、一方をアクティブROM、他方をインアクティブROMに排他的に切り替えることができる。
図12は、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140に書き込まれている書き込みプログラムに従って、インアクティブROMにプログラムを書き込むときに実行するプログラム書き込み処理の一例を示している。
ステップ41では、電子制御装置100のプロセッサ120が、例えば、各プログラムについて専用領域又は共用領域に書き込むかを定義したテーブルを参照し、書き込み対象のプログラムを共用領域に書き込むか否かを判定する。ここで、テーブルは、プログラムの重要度などを考慮して作成され、例えば、コードフラッシュメモリ140に予め格納されている。そして、電子制御装置100のプロセッサ120は、書き込み対象のプログラムを共用領域に書き込むと判定したならば(Yes)、処理をステップ42へと進める。一方、電子制御装置100のプロセッサ120は、書き込み対象のプログラムを共用領域に書き込まない、即ち、その重要度が高いために専用領域に書き込むと判定したならば(No)、処理をステップ46へと進める。
ステップ42では、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140のバンクBを参照し、その共用領域に空きがあるか否か、即ち、書き込み対象のプログラムを書き込むことができるか否かを判定する。そして、電子制御装置100のプロセッサ120は、共用領域に空きがないと判定したならば(Yes)、処理をステップ43へと進める。一方、電子制御装置100のプロセッサ120は、共用領域に空きがあると判定したならば(No)、処理をステップ45へと進める。
ステップ43では、電子制御装置100のプロセッサ120が、バンクBの共用領域に書き込まれているプログラムの中から、例えば、重要度の低いもの、タイムスタンプが最古のもの、プログラムサイズが近いものなどを考慮し、消去する少なくとも1つのプログラムを選択する。なお、消去する少なくとも1つのプログラムは、上記の例に限らず、任意の規則によって選定することができる。
ステップ44では、電子制御装置100のプロセッサ120が、バンクBの共用領域に書き込まれているプログラムの中から、ステップ43で選択された少なくとも1つのプログラムを消去する。従って、バンクBの共用領域には、書き込み対象のプログラムを書き込むためのスペースが生まれる。
ステップ45では、電子制御装置100のプロセッサ120が、バンクBの共用領域に書き込み対象のプログラムを書き込む。その後、電子制御装置100のプロセッサ120は、プログラム書き込み処理を終了させ、これに続く処理を引き続いて実行する。
ステップ46では、電子制御装置100のプロセッサ120が、バンクBの専用領域に書き込み対象のプログラムを書き込む。その後、電子制御装置100のプロセッサ120は、プログラム書き込み処理を終了させ、これに続く処理を引き続いて実行する。
かかるプログラム書き込み処理によれば、重要度の高いプログラムは、これと一対一に関連付けられた専用領域を使用して更新され、重要度の低いプログラムは、複数のプログラムで共用する共用領域を使用して更新される。このとき、共用領域に書き込み対象のプログラムを書き込む余裕がなければ、例えば、プログラムの重要度などに応じて選定された少なくとも1つのプログラムが消去され、そこにプログラムが書き込まれる。従って、コードフラッシュメモリ140に確保された予約領域が小さくなり、コードフラッシュメモリ140の記憶領域を効率的に利用することができる。
ここで、具体的な事例を想定し、バンクBの共用領域をどのように使用して、プログラムを更新するかについて説明する。
コードフラッシュメモリ140の初期状態では、図13に示すように、バンクAにプログラムA1、B1、C1、D1、E1及びF1が書き込まれており、バンクBにプログラムA及びBの専用領域とプログラムC~Fで共用する共用領域が確保されている。そして、外部からの更新要求に応じて、プログラムA2、B2、C2及びD2を書き込んで更新すると、図14に示すように、バンクBの専用領域にプログラムA2及びB2が書き込まれ、バンクBの共用領域にプログラムC2及びD2が書き込まれる。この状態では、バンクBの共用領域には空きがなく、ここに他のプログラムを書き込んで更新することができない。
コードフラッシュメモリ140の初期状態では、図13に示すように、バンクAにプログラムA1、B1、C1、D1、E1及びF1が書き込まれており、バンクBにプログラムA及びBの専用領域とプログラムC~Fで共用する共用領域が確保されている。そして、外部からの更新要求に応じて、プログラムA2、B2、C2及びD2を書き込んで更新すると、図14に示すように、バンクBの専用領域にプログラムA2及びB2が書き込まれ、バンクBの共用領域にプログラムC2及びD2が書き込まれる。この状態では、バンクBの共用領域には空きがなく、ここに他のプログラムを書き込んで更新することができない。
外部からの更新要求に応じてプログラムE2を書き込んで更新する場合、バンクBの共用領域に空きがないため、プログラムC2及びD2の少なくとも一方を消去しなければならない。そこで、図15に示すように、バンクBの共用領域について、例えば、タイムスタンプが最古のプログラムC2を消去し、そこにプログラムE2を書き込んで更新する。
その後、外部からの更新要求に応じてプログラムF2を書き込んで更新する場合、バンクBの共用領域に空きがないため、プログラムD2及びE2の少なくとも一方を消去しなければならない。そこで、図16に示すように、バンクBの共用領域について、例えば、タイムスタンプが最古のプログラムD2を消去し、そこにプログラムF2を書き込んで更新する。
なお、当業者であれば、上記実施形態の様々な技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。
100 電子制御装置
120 プロセッサ
140 コードフラッシュメモリ(不揮発性メモリ)
120 プロセッサ
140 コードフラッシュメモリ(不揮発性メモリ)
Claims (18)
- アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保され、前記アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に対応して、前記インアクティブ状態の記憶領域にプログラムを書き込んで更新し、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える電子制御装置であって、
前記アクティブ状態の記憶領域に書き込まれたプログラムと前記インアクティブ状態の記憶領域に書き込まれたプログラムとが異なる場合、前記アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムを前記インアクティブ状態の記憶領域にコピーする、
電子制御装置。 - 前記アクティブ状態の記憶領域に書き込まれたプログラムに異常が発生した場合、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替え、前記アクティブ状態に切り替えた記憶領域に書き込まれているプログラムにより制御対象を継続して制御する、
請求項1に記載の電子制御装置。 - ソフトウエアリセットを契機として、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える、
請求項2に記載の電子制御装置。 - 前記アクティブ状態の記憶領域に書き込まれたプログラムに異常が発生した場合、前記インアクティブ状態の記憶領域に書き込まれたプログラムを前記アクティブ状態の記憶領域にコピーして修復する、
請求項1に記載の電子制御装置。 - 前記プログラムの修復は、起動時に実行される、
請求項4に記載の電子制御装置。 - 前記インアクティブ状態の記憶領域は、複数のプログラムの中から所定規則によって選定された少なくとも1つのプログラムの専用領域と、他の少なくとも1つのプログラムで共用する共用領域と、に区画される、
請求項1に記載の電子制御装置。 - 前記所定規則は、プログラムの重要度である、
請求項6に記載の電子制御装置。 - 前記インアクティブ状態の記憶領域に書き込まれるプログラムは、無線通信によって取得される、
請求項1に記載の電子制御装置。 - 前記インアクティブ状態の記憶領域が未使用である場合、前記インアクティブ状態の記憶領域に任意のデータが書き込まれる、
請求項1に記載の電子制御装置。 - アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保され、前記アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に応答して、前記インアクティブ状態の記憶領域にプログラムを書き込んで更新し、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える電子制御装置が、前記アクティブ状態の記憶領域に書き込まれたプログラムと前記インアクティブ状態の記憶領域に書き込まれたプログラムとが異なる場合、前記アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムを前記インアクティブ状態の記憶領域にコピーする、
プログラム更新方法。 - 前記電子制御装置が、前記アクティブ状態の記憶領域に書き込まれたプログラムに異常が発生した場合、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替え、前記アクティブ状態に切り替えた記憶領域に書き込まれているプログラムにより制御対象を継続して制御する、
請求項10に記載のプログラム更新方法。 - 前記電子制御装置が、ソフトウエアリセットを契機として、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える、
請求項11に記載のプログラム更新方法。 - 前記電子制御装置が、前記アクティブ状態の記憶領域に書き込まれたプログラムに異常が発生した場合、前記インアクティブ状態の記憶領域に書き込まれたプログラムを前記アクティブ状態の記憶領域にコピーして修復する、
請求項10に記載のプログラム更新方法。 - 前記電子制御装置が、起動時に前記プログラムの修復を実行する、
請求項13に記載のプログラム更新方法。 - 前記インアクティブ状態の記憶領域は、複数のプログラムの中から所定規則によって選定された少なくとも1つのプログラムの専用領域と、他の少なくとも1つのプログラムで共用する共用領域と、に区画される、
請求項10に記載のプログラム更新方法。 - 前記所定規則は、プログラムの重要度である、
請求項15に記載のプログラム更新方法。 - 前記電子制御装置が、前記インアクティブ状態の記憶領域に書き込まれるプログラムを無線通信によって取得する、
請求項10に記載のプログラム更新方法。 - 前記電子制御装置が、前記アクティブ状態の記憶領域が未使用である場合、前記インアクティブ状態の記憶領域に任意のデータを書き込む、
請求項10に記載のプログラム更新方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202080011242.4A CN113383390A (zh) | 2019-01-28 | 2020-01-27 | 电子控制装置以及程序更新方法 |
US17/421,670 US11914871B2 (en) | 2019-01-28 | 2020-01-27 | Electronic control device and program-update method |
EP20749462.6A EP3920020A4 (en) | 2019-01-28 | 2020-01-27 | ELECTRONIC CONTROL DEVICE AND PROGRAM UPDATE METHOD |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-011939 | 2019-01-28 | ||
JP2019011939A JP7232062B2 (ja) | 2019-01-28 | 2019-01-28 | 電子制御装置及びプログラム更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2020158675A1 true WO2020158675A1 (ja) | 2020-08-06 |
WO2020158675A9 WO2020158675A9 (ja) | 2021-07-29 |
Family
ID=71841766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/002808 WO2020158675A1 (ja) | 2019-01-28 | 2020-01-27 | 電子制御装置及びプログラム更新方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11914871B2 (ja) |
EP (1) | EP3920020A4 (ja) |
JP (1) | JP7232062B2 (ja) |
CN (1) | CN113383390A (ja) |
WO (1) | WO2020158675A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7128763B2 (ja) * | 2019-03-18 | 2022-08-31 | 日立Astemo株式会社 | 電子制御装置及び制御データの設定方法 |
JP7448585B2 (ja) * | 2022-05-31 | 2024-03-12 | トヨタ自動車株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
CN114840449B (zh) * | 2022-06-30 | 2022-10-18 | 广州万协通信息技术有限公司 | 基于MCU片内flash的数据存储方法、装置、设备及存储介质 |
CN117742588B (zh) * | 2023-11-30 | 2024-06-04 | 武汉芯必达微电子有限公司 | 使用Flash模拟EEPROM的数据存储方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05197629A (ja) * | 1992-01-20 | 1993-08-06 | Hitachi Ltd | 記憶保護方式 |
JPH06274320A (ja) * | 1993-03-17 | 1994-09-30 | Nec Corp | システム立ち上げ時のパラメータによる動向システム生成方式 |
JP2002333390A (ja) * | 2001-05-08 | 2002-11-22 | Fujita Corp | コンクリート試験体の作製方法およびコンクリートの含水率測定方法 |
JP2003140915A (ja) * | 2001-11-01 | 2003-05-16 | Anten Corp | コンピュータ装置及びプログラムのダウンロード方法 |
WO2005059862A1 (ja) * | 2003-12-15 | 2005-06-30 | Hitachi, Ltd. | 車載制御装置の情報更新方法と更新情報通信システム、および、車両搭載制御装置と情報管理基地局装置 |
JP2009044543A (ja) * | 2007-08-09 | 2009-02-26 | Sharp Corp | テレビ受信機 |
JP2011085977A (ja) * | 2009-10-13 | 2011-04-28 | Hitachi Kokusai Electric Inc | 信号処理装置 |
JP2018086894A (ja) | 2016-11-28 | 2018-06-07 | トヨタ自動車株式会社 | リプログラミング制御装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601212B1 (en) * | 2000-03-29 | 2003-07-29 | Hewlett-Packard Development Company, Lp. | Method and apparatus for downloading firmware to a non-volatile memory |
JP2002333990A (ja) * | 2001-03-05 | 2002-11-22 | Omron Corp | プログラム更新装置およびプログラム更新方法 |
US7340638B2 (en) * | 2003-01-30 | 2008-03-04 | Microsoft Corporation | Operating system update and boot failure recovery |
US20060041738A1 (en) * | 2004-08-17 | 2006-02-23 | Yu-Chen Lai | Recovery method for master boot record of hard disk drive |
JP4548601B2 (ja) * | 2005-04-20 | 2010-09-22 | 株式会社デンソー | 自動車用制御ユニット |
US8464038B2 (en) * | 2009-10-13 | 2013-06-11 | Google Inc. | Computing device with developer mode |
JP6354566B2 (ja) * | 2014-12-19 | 2018-07-11 | 株式会社デンソー | マイクロコンピュータ |
EP3376391A1 (en) * | 2017-03-17 | 2018-09-19 | Ricoh Company Ltd. | Information processing apparatus, updating method, and carrier means |
-
2019
- 2019-01-28 JP JP2019011939A patent/JP7232062B2/ja active Active
-
2020
- 2020-01-27 US US17/421,670 patent/US11914871B2/en active Active
- 2020-01-27 CN CN202080011242.4A patent/CN113383390A/zh active Pending
- 2020-01-27 EP EP20749462.6A patent/EP3920020A4/en active Pending
- 2020-01-27 WO PCT/JP2020/002808 patent/WO2020158675A1/ja unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05197629A (ja) * | 1992-01-20 | 1993-08-06 | Hitachi Ltd | 記憶保護方式 |
JPH06274320A (ja) * | 1993-03-17 | 1994-09-30 | Nec Corp | システム立ち上げ時のパラメータによる動向システム生成方式 |
JP2002333390A (ja) * | 2001-05-08 | 2002-11-22 | Fujita Corp | コンクリート試験体の作製方法およびコンクリートの含水率測定方法 |
JP2003140915A (ja) * | 2001-11-01 | 2003-05-16 | Anten Corp | コンピュータ装置及びプログラムのダウンロード方法 |
WO2005059862A1 (ja) * | 2003-12-15 | 2005-06-30 | Hitachi, Ltd. | 車載制御装置の情報更新方法と更新情報通信システム、および、車両搭載制御装置と情報管理基地局装置 |
JP2009044543A (ja) * | 2007-08-09 | 2009-02-26 | Sharp Corp | テレビ受信機 |
JP2011085977A (ja) * | 2009-10-13 | 2011-04-28 | Hitachi Kokusai Electric Inc | 信号処理装置 |
JP2018086894A (ja) | 2016-11-28 | 2018-06-07 | トヨタ自動車株式会社 | リプログラミング制御装置 |
Non-Patent Citations (2)
Title |
---|
See also references of EP3920020A4 |
SORIMACHI TAKAYUKI : "Reduces user anxiety during abnormalities", JOURNAL OF DENSO TECHNICAL DISCLOSURE, vol. 140, 15 July 2003 (2003-07-15), JP, pages 1 - 3, XP009522762, ISSN: 1342-7970 * |
Also Published As
Publication number | Publication date |
---|---|
EP3920020A1 (en) | 2021-12-08 |
WO2020158675A9 (ja) | 2021-07-29 |
CN113383390A (zh) | 2021-09-10 |
JP2020119419A (ja) | 2020-08-06 |
US11914871B2 (en) | 2024-02-27 |
EP3920020A4 (en) | 2022-11-16 |
US20220091762A1 (en) | 2022-03-24 |
JP7232062B2 (ja) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020158675A1 (ja) | 電子制御装置及びプログラム更新方法 | |
US20180341476A1 (en) | Software updating device, software updating system, and software updating method | |
US20200183349A1 (en) | Electronic Control Unit for Vehicle and Method of Executing Program | |
US11392368B2 (en) | Electronic control system for updating circuit | |
JP7367626B2 (ja) | ソフトウェア更新装置、方法、プログラムおよび車両 | |
WO2019123747A1 (ja) | 自動車用電子制御装置及びその制御方法 | |
US11263001B2 (en) | Car onboard control device and program updating software | |
US11449329B2 (en) | Vehicle control device and program update system | |
US11945453B2 (en) | Onboard device, information generating method, non-transitory storage medium, and vehicle | |
JP7216559B2 (ja) | 電子制御装置及び不揮発性メモリの使用方法 | |
WO2020189281A1 (ja) | 電子制御装置及び制御データの設定方法 | |
US11954480B2 (en) | Center, OTA master, system, method, non-transitory storage medium, and vehicle | |
US20220244946A1 (en) | Ota master, update control method, non-transitory storage medium, and vehicle | |
JPWO2018150820A1 (ja) | 情報処理装置 | |
US20240160414A1 (en) | Vehicle Electronic Control Device and Program Rewriting Method | |
JP7559600B2 (ja) | Otaマスタ、センタ、システム、方法、プログラム、及び車両 | |
JP7266216B2 (ja) | 情報処理装置および情報処理方法 | |
US20230333838A1 (en) | Method and device for updating software of an onboard computer in a vehicle, comprising a runtime memory, a backup memory and a control memory | |
JP2019020897A (ja) | 電子制御装置及び更新ソフトウェア配信システム | |
JP2023119314A (ja) | 電子制御装置 | |
JP2001125790A (ja) | 車載電子機器のプログラム書換法 | |
JP2024014218A (ja) | 書換制御装置、電子制御装置、書換制御システム、及び書換制御方法 | |
JP2005220784A (ja) | エンジン制御プログラムのデータ適合方式、エンジン制御プログラムの適合方式、及び、メモリー制御ユニット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20749462 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020749462 Country of ref document: EP Effective date: 20210830 |