WO2021024792A1 - 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置 - Google Patents
車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置 Download PDFInfo
- Publication number
- WO2021024792A1 WO2021024792A1 PCT/JP2020/028222 JP2020028222W WO2021024792A1 WO 2021024792 A1 WO2021024792 A1 WO 2021024792A1 JP 2020028222 W JP2020028222 W JP 2020028222W WO 2021024792 A1 WO2021024792 A1 WO 2021024792A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- update
- program
- data
- vehicle
- Prior art date
Links
Images
Classifications
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
- B60R16/02—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
-
- 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/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
- G07C5/085—Registering performance data using electronic data carriers
-
- 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
Definitions
- the present invention relates to a vehicle control device.
- the vehicle control device has an arithmetic unit (for example, a microcomputer) and a storage device such as a Flash ROM (Read Only Memory) for storing a control program.
- arithmetic unit for example, a microcomputer
- a storage device such as a Flash ROM (Read Only Memory) for storing a control program.
- vehicles were often brought to dealerships and specialized maintenance personnel connected the program writing device to the vehicle to update the control program.
- so-called "connected vehicles” in which cars are always connected to the Internet, it is possible to update not only functions and map data in car navigation systems, but also vehicle control programs via wireless. It is supposed.
- Patent Document 1 Japanese Unexamined Patent Publication No. 2006-301960 stores control software that controls control processing of electronic devices mounted on an automobile, and the stored contents can be electrically rewritten from the outside.
- a non-volatile memory that retains the stored contents even when the reset signal is received, a RAM that serves as an execution memory for the control software, and a CPU that performs control processing for the electronic device based on the execution of the control software.
- the non-volatile memory includes a main storage area for storing the current version program, which is the currently used version program of the control software, and an updated version program including update points from the current version program.
- a control unit for an automobile which comprises a program rewriting means for executing a program rewriting process including a memory switching process that does not perform the switching.
- the automobile control unit described in Patent Document 1 described above has a main storage area for storing the current version of the control program and a sub storage area for storing the updated version in the Flash ROM, and the area is provided when the program is updated.
- control program of the vehicle control device includes a control code for executing processing (command code of the control program itself) and various data used for control such as a data map and characteristic data referred to at the time of control (hereinafter,). , Called control data), and any data is often stored in a rewritable non-volatile storage device.
- control code and the control data are separately arranged in different physical blocks of the Flash ROM, the control data is specified and updated, and the control code without change is updated. No method may be adopted.
- the control program is updated by alternately using the main storage area and the sub storage area. Therefore, in the update destination storage area, the currently operating control program is used. The previous old version is stored. Therefore, it is not possible to update only the control data as described above, and it is necessary to update the control code and the control data as a pair. As a result, the update time of the control program becomes long and the usability deteriorates.
- the present invention has been made in view of the above-mentioned problems, and in a vehicle control device for storing a plurality of control programs composed of a control code and control data in a non-volatile memory, a control program can be safely provided in a short time.
- a control program can be safely provided in a short time.
- the purpose is to improve usability related to updating the control program of the vehicle control device.
- a typical example of the invention disclosed in the present application is as follows. That is, it is a vehicle control device that can update the stored control program based on the update content provided by the writing device, and the control program is a control code and a control referred to when the control code is executed.
- the vehicle control device includes a non-volatile memory that can be used by switching between a first memory area and a second memory area that store both the control code and the control data, and the writing.
- the update request determination unit includes an update request determination unit that determines whether the update request from the device requires updating both the control code and the control data, or updates only the control data. When it is determined that only the control data is updated, the received control data is written to any memory area in which the currently active control program is stored.
- control program can be updated safely in a short time. Issues, configurations and effects other than those mentioned above will be clarified by the description of the following examples.
- FIG. It is a block diagram of the program update system which concerns on Example 1.
- FIG. It is a block diagram of the in-vehicle network system which a vehicle has. It is a block diagram of a vehicle control device. It is a figure which shows the internal structure of a Flash ROM. This is a sequence example showing the procedure for downloading the update package from the server to the gateway. It is a figure which shows the configuration example of the update package which a gateway acquires from a server. It is a sequence diagram which shows the example of the procedure which a vehicle control device updates a control program. It is a detailed sequence diagram of the control code update process (S703) and the control data update process (S704). It is a detailed sequence diagram of the correctness verification process (S705).
- FIG. 1 is a configuration diagram of a program update system according to a first embodiment of the present invention.
- the program update system of the first embodiment includes a vehicle 1, a server 2, an internet line 3, and a radio base station 4.
- the vehicle 1 connects to the server 2 by wireless communication via a network such as an internet line 3 and a wireless base station 4, and communicates with each other.
- a network such as an internet line 3 and a wireless base station 4
- a mobile phone network using a public line such as 3G / LTE or a line such as WiFi can be used.
- the server 2 distributes the update package 5 necessary for updating the control program of the vehicle control device 11 of the vehicle 1 to the vehicle 1.
- the vehicle control device 11 of the vehicle 1 rewrites the control program using the update package 5.
- FIG. 2 is a configuration diagram of an in-vehicle network system possessed by the vehicle 1.
- the vehicle control device 11 is a device that executes a control program that controls the operation of the vehicle 1, and is connected to a gateway 12 (program writing device) via an in-vehicle network 13 (for example, CAN (Can Ruler Area Network)).
- the vehicle control device 11 can communicate with another vehicle control device 11 via the gateway 12.
- the gateway 12 also has a role as a program writing device that controls the update of the control program for the vehicle control device 11.
- the gateway 12 receives the update package 5 from the server 2 and transmits the update instruction (reprogramming instruction) of the control program and the update control program itself to the vehicle control device 11.
- a program writing device may be provided separately from the gateway 12.
- the gateway 12 includes a calculation unit 121, a Flash ROM (Read Only Memory) 122, a SRAM (Static Random Access Memory) 123, and a communication device 124 including a CAN transceiver and a wireless communication module.
- the calculation unit 121 communicates with the vehicle control device 11 and the server 2 on the vehicle-mounted network 13 by executing the program stored in the FlashROM 122.
- the gateway 12 receives the update package 5 from the server 2 and temporarily stores it in the Flash ROM 122, and the update control unit 1221 uses the update package 5 to vehicle.
- the control program of the control device 11 is updated.
- the HMI (Human-Machine Interface) 14 is composed of, for example, a liquid crystal display device for various displays embedded in the center of the dashboard of the vehicle 1, operation switches arranged in the vicinity thereof, and an in-vehicle speaker.
- the HMI 14 displays various displays on the occupants of the vehicle 1 and processes various input operations. Further, the HMI 14 displays the update of the control program of the vehicle control device 11 and accepts the operation input.
- FIG. 3 is a configuration diagram of the vehicle control device 11.
- the vehicle control device 11 includes a calculation unit 111, a Flash ROM 112, a SRAM 113, and a communication device 114 (for example, a CAN transceiver).
- the arithmetic unit 111 is an arithmetic unit such as a microcomputer that executes a control program stored in the Flash ROM 112.
- each program may be described as an operating subject, but it is the arithmetic unit 111 that actually executes these programs.
- the Flash ROM 112 is a rewritable non-volatile memory, and includes an update processing unit 1122, a first area 1123 as a first storage area, a second area 1124 as a second storage area, and a third storage area. It has a third area as.
- the configuration will be described with reference to FIG.
- FIG. 4 is a diagram showing the internal configuration of the Flash ROM 112.
- the Flash ROM 112 includes a first area 1123 and a second area 1124 in which the control program itself is stored, which is composed of a plurality of physical blocks, and a third area used as a work area when the control program is updated. ..
- the block is a unit for erasing and rewriting the Flash ROM 112.
- the control program is composed of control codes D11 and D21 which are program main bodies for execution, and control data D12 and D22 which are referred to when the program is controlled.
- the Flash ROM 112 stores an update processing unit 1122 that communicates with the gateway 12 and performs update processing of the control program.
- the control program stored in the first area 1123 is currently operating, the version information of the control code D11 is "101", and the version information of the control data D12 is "11". ..
- the control program of the previous version (control code D21 of version "100” and control data D22 of version "01") is stored in the second area 1124. Further, the version information is stored in the non-volatile area of the vehicle control device 11 as well as the control code and the control data.
- the area in which the currently operating control program is stored is referred to as an "active surface”, and the area in which it is not operating is referred to as a "non-active surface”.
- the first area is the “active surface” and the second area is the “non-active surface”.
- the "non-active surface” becomes the update target area of the control program when the program is updated.
- FIG. 5 is a sequence example showing the procedure for downloading the update package 5 from the server 2 to the gateway 12.
- the update package 5 is registered in the server 2 in preparation for software update.
- the gateway 12 transmits a request message for the part number of the current control program to the vehicle control device 11 at the timing when the vehicle ignition is turned on (M501).
- the vehicle control device 11 responds to the request with the part number of the vehicle control device 11 and the version information of the current program (M502).
- the part number is a number that uniquely identifies the vehicle control device 11.
- the version information of the current program includes the information of the current active surface and the version of both the control code and the control data stored in the active surface.
- the gateway 12 sends an update package acquisition request message to the server 2 (M503).
- the update package acquisition request message M503 includes the part number of the vehicle control device 11 and the version information of the current control program.
- the server 2 selects the corresponding package from the registered update packages 5 based on the part number of the update data acquisition request message and the current program version information, and delivers the package to the target vehicle (M504).
- the update package 5 to be distributed includes information for designating the surfaces (first area, second area) in which the update package 5 is written.
- the gateway 12 accumulates the delivered update package 5 (S502) and completes the download. When the accumulation of all data is completed, a completion message is sent to the server 2 (M505). After that, the gateway 12 executes the software update based on the received update package 5.
- the configuration of update package 5 and the configuration of messages will be described later.
- FIG. 6 is a diagram showing a configuration example of the update package 5 acquired by the gateway 12 from the server 2.
- the update package 5 includes a control code file 61 and a control data file 62.
- the control code file 61 includes a start address 611, a transfer size 612, version information 613, association information 614, and control code 615.
- the start address 611 is information indicating the start address of the Flash ROM 112 of the vehicle control device 11 to which the control data is written in the control program update.
- the transfer size 612 is information on the capacity (number of bytes) of the control code.
- the version information 613 is the version information of the attached control code 615
- the association information 614 is the information that associates the control code 615 with the control data 625. Specifically, the control code 615 and the control data 625 are associated with each other. It is described by the version information of.
- the association information 614 may have a one-to-one association between the control code 615 and the control data 625, or one-to-many or many-to-one association between the two.
- control data file 62 Since the configuration of the control data file 62 is the same as that of the control code file 61, the description thereof will be omitted.
- FIG. 7 is a sequence diagram showing an example of a procedure in which the vehicle control device 11 updates the control program.
- the update sequence in the first embodiment will be described with reference to FIGS. 7 to 9.
- step S701 the vehicle control device 11 executes the information acquisition process of the current control program and responds with the result (M702).
- the information acquired in step S701 is, for example, the version information of the ECU ID, the control code of the current control program, the version information of the control data, and the like.
- the gateway 12 determines whether or not there is an error in the information response (M702) received in step S702, and if there is no error, the gateway 12 shifts the vehicle control device 11 from the normal mode to the reprogramming mode and starts the update process of the control program. ..
- the gateway 12 cooperates with the HMI 14 and requests the HMI 14 to display the version information of the ECU ID and the control program received from the vehicle control device 11 or the version information of the updated version of the control program held by the gateway 12.
- the user may be asked to determine the start of the control program update process.
- the control code update process (S703), the control data update process (S704), and the validity verification process (S705) are executed in this order. A detailed sequence of each process will be described with reference to FIGS. 8 and 9.
- the gateway 12 ends the reprogramming mode, transitions to the normal mode, and transmits a reset request (M703) to the vehicle control device 11.
- the updated version of the control program is applied to the vehicle control device 11 by restarting the vehicle in accordance with the reset request.
- control code update process S703
- control data update process S704
- the update control unit 1221 of the gateway 12 transmits a data transfer start request (M801) of the control code to the vehicle control device 11.
- the data transfer start request includes a write destination address indicating the write destination of the control code and information on the data size to be transmitted.
- the update processing unit 1122 of the vehicle control device 11 executes the data transfer start request processing in step S801.
- the update processing unit 1122 determines whether the update data to be transmitted from the gateway 12 is the control code or the control data based on the received data.
- the acceptance response (M802) is transmitted to the gateway 12.
- This acceptance response includes information such as a data size that can be received by the vehicle control device 11 at one time.
- the update control unit 1221 of the gateway 12 divides the control code data downloaded and accumulated from the server 2 in S502 into a data size that can be received by the vehicle control device 11 at one time, and uses it as a data transfer message (M803). It is transmitted to the vehicle control device 11.
- the update processing unit 1122 of the vehicle control device 11 receives the data transfer message (M803)
- the update processing unit 1122 executes the data writing process in step S802.
- the update request determination function 11221 first determines whether to update the control code, and performs processing based on the determination result. The details of this determination process will be described later.
- the gateway 12 and the vehicle control device 11 execute the data writing process (S802) until all the transfer of the updated data is completed. When all the transfer of the update data is completed, the vehicle control device 11 transmits a completion response (M804) to the gateway 12.
- the gateway 12 notifies the vehicle control device 11 of the data transfer completion request (M805).
- the vehicle control device 11 transmits an acceptance response (M806) to the gateway 12. This completes the control code update process (S703).
- control data update process (S703) is completed, the control data update process is subsequently performed in step S704.
- the sequence procedure of the control data update process uses the same sequence as the control code update process (S703) described above. The details of the process will be described later together with the control code update process.
- the gateway 12 sends a validity verification request message (M811) to the vehicle control device 11 so as to check the validity of the written data.
- the update processing unit 1122 of the vehicle control device 11 verifies the validity of the control program written in the data writing process (S802) in step S803 (S803).
- This verification process verifies that the data of the updated version of the control program written in the update destination area is correct based on the area updated in the data writing process (S802). Details of this verification process will be described later.
- the vehicle control device 11 responds the verification result to the gateway 12 (M812).
- the verification means can be carried out by error detection or error correction using a checksum, CRC (Cyclic Redundancy Check), hash value, or the like.
- FIG. 10 shows a configuration example of a message (M702) that the vehicle control device 11 responds to when it receives the current program information request message (M701) from the gateway 12 in the update sequence of the control program (FIG. 7). It is a figure.
- the response message M702 includes a command M7021, an ECU IDM7022 of the vehicle control device 11, a control code version information M7023, and a control data version information M7024.
- FIG. 11 is a diagram showing a configuration example of a communication message transmitted from the gateway 12 to the vehicle control device 11 in the control code and control data update process (FIG. 8) and the validity verification process (FIG. 9). ..
- the data transfer start request (M801) includes a command M8011, an update data type flag M8012, a write destination address M8013, and a transmission data size M8014.
- the data transfer (M803) is a message for transferring the update data M8032 to the vehicle control device 11, and the attached update data M8032 includes the update data version information M80321, the association information M80322, and the control code which is the update data itself. Includes control data M80323.
- the association information is information that associates the control code with the control data.
- the data transfer completion request (M805) is an instruction indicating the end of transfer of updated data.
- the validity verification request (M811) is an instruction requesting verification that the data of the updated version of the control program written in the update destination area is correct.
- the control program of the first embodiment is updated by the update sequence as described above. Next, the process executed by the vehicle control device 11 in the control program update process will be described with reference to FIGS. 12 to 15.
- FIG. 12 is a detailed flowchart of the data transfer start request processing (S801). Hereinafter, each step in FIG. 12 will be described.
- Step S801 When the calculation unit 111 of the vehicle control device 11 receives the data transfer start request M801 from the gateway 12, the calculation unit 111 starts the process shown in FIG.
- the calculation unit 111 determines whether the update data transmitted from the gateway 12 is the control code or the control data based on the write destination address M8013 included in the received data transfer start request M801, and uses the determination result as the update data type. Hold.
- the update data type is determined based on the write destination address, but as another means, the update data type flag may be acquired from the gateway 12 for this data.
- the update data type flag M8012 of the data transfer start request M801 may be used to determine whether the update data is a control code or control data.
- Step S80102 Next, the calculation unit 111 transmits a permission response to the gateway 12 and ends the process.
- FIG. 13 is a detailed flowchart of the data writing process (S802). Hereinafter, each step of FIG. 13 will be described.
- Step S802 When the calculation unit 111 of the vehicle control device 11 receives the data transfer request M803 from the gateway 12, the calculation unit 111 starts the process shown in FIG.
- the calculation unit 111 determines whether the update data type obtained in S80101 is a control code (S80201). If the update data type is a control code, the control code is written in step S80202. On the other hand, when the update data type is control data, control data is written in step S80210.
- FIG. 14 is a detailed flowchart of the control code writing process (S80202). This process is executed when the data transfer request M803 of the control code is received from the gateway 12. Hereinafter, each step in FIG. 14 will be described.
- step S802021 In the control code writing process of step S80202, first, the calculation unit 111 extracts the version information M80321 of the control code included in the update data M8032 received in step S80221.
- step S802022 the calculation unit 111 compares whether the version of the updated version of the control code extracted above is the same as the version of the current control code. As a result of the comparison, if the updated version of the control code and the current control code version are the same, the subsequent data reception of the control code is skipped and the subsequent data is not updated (S802023). Further, a message of the content of skipping the control code update process is notified to the gateway 12 (S802024).
- step S802025 As a result of the comparison in step S802022, if the updated version of the control code version and the current control code version are different, the control code data reception is continued and the write destination address included in the data transfer start request M801 (M8013). Therefore, data writing to the Flash ROM 112 is repeatedly executed for the data size (M8014) (S802025).
- the vehicle control device 11 does not have to perform the control code update process.
- FIG. 15 is a detailed flowchart of the control data writing process (S80210). This process is executed when the data transfer request M803 of the control data is received from the gateway 12. Each step of FIG. 15 will be described below.
- step S80210 control data writing process, first, the calculation unit 111 determines in step S802101 whether the control code update process step S703 has been skipped.
- step S802103 It is determined whether or not the association relationship between the currently active control program of the device 11 and the received control data is appropriate.
- the association information is information that associates the control code with the control data.
- the relationship between the version of the control code currently written on the Active surface and the version of the received control data is as follows. Determine if it is valid.
- step S802104 If it is determined that the version relationship is appropriate, the received control data is written to the third area in step S802104, and after the writing is completed, a completion response is transmitted to the gateway 12 (S802105). If it is determined in step S802103 that the version relationship is not valid, an error is returned to the gateway 12 (S802106).
- Step S802107 When the control code update process step S703 is executed in the determination of step S802101, the calculation unit 111 of the vehicle control device 11 writes the received control data to the write destination address included in the data transfer start request M801 ( From M8013), the data size (M8014) is written to the non-active surface of the Flash ROM 112. The write process is executed until all the transfer of update data is completed.
- the vehicle control device 11 once writes the control data to the third area 1125 when the update data is the same version as the control code of the currently active control program, and when the version is different, the vehicle control device 11 is non-active. Can be written on the surface.
- FIG. 16 is a detailed flowchart of the validity verification process (S803). Each step of FIG. 16 will be described below.
- Step S803 When the arithmetic unit 111 of the vehicle control device 11 receives the validity verification request M811 from the gateway 12, the calculation unit 111 starts the process shown in FIG.
- step S8031 the calculation unit 111 determines the area to which the update control program is written in the data writing process S802.
- step S80302 When the control data is written in the third area 1125, the validity of the data written in the third area 1125 is checked in step S80302.
- step S80303 When writing to the non-active surface area, in step S80303, the validity of both the control code and the control data of the corresponding area (first area 1123 or second area 1124) is checked.
- Steps S80304 to S80306 When the result of the validity check (S80302) of the data written in the third area is valid, the calculation unit 111 controls the control data stored in the third area 1125 in the active surface of the Flash ROM 112 in step S80304. Copy to the data storage area. Then, when the copy is completed, a completion response is transmitted to the gateway 12 (S80305). On the other hand, if the validity check (S80302) of the data written in the third area is abnormal, an abnormal response is transmitted to the gateway 12 (S80306).
- Step S80307 If the validity check (S80303) of the update data stored in the non-active surface is valid, a completion response is sent to the gateway 12 (S80305), and if it is abnormal, an abnormal response is sent to the gateway 12 (S80305). S80306).
- the timing of executing the process of step S80304 does not necessarily have to be the above-mentioned, and if the validity of the data is confirmed, for example, the timing of ignition OFF, the state in which the vehicle is stopped, or the vehicle control device 11 It may be executed in a safe situation such as the timing when is not operating.
- the vehicle control device 11 has a first area 1123 and a second area 1124 in the Flash ROM 112, and is a program update method having a two-sided ROM configuration in which control programs are updated alternately. If the control code of the updated version of the control program is the same version as the control program stored in the Active surface of the vehicle control device 11, only the control data is updated to the area of the Active surface (the control code is updated). Can't) As a result, the update time of the control program can be shortened. Further, when updating only the control data, the data received from the gateway 12 is written to the third area 1125 without directly overwriting the control data, and after confirming the validity of the contents of the received data, the active. By storing in the storage area of the surface, the control data can be updated safely.
- Example 2 In the first embodiment, the means for the vehicle control device 11 having the update request determination function 11221 and receiving data from the gateway 12 to update only the control data has been described. However, if the gateway 12 has an update request determination function, it is not necessary to transmit the request itself when it is not necessary to update the control code. An example of the means of the second embodiment will be described below.
- FIG. 17 is a configuration diagram of the gateway 12 according to the second embodiment of the present invention.
- the update control unit 1221 of the Flash ROM 112 has an update request determination function 12211.
- the gateway 12 uses the update request determination function 12211 to determine whether to update only the control data of the vehicle control device 11 or to update both the control code and the control data. Other than that, it is the same as the configuration diagram of the vehicle control device 11 of the first embodiment, and the description thereof will be omitted.
- FIG. 18 is a sequence diagram showing an example of a procedure in which the vehicle control device according to the second embodiment of the present invention updates the control program.
- the update request determination function 12211 of the gateway 12 determines in step S710 whether to update only the control data of the vehicle control device 11 or to update both the control code and the control data. To do.
- FIG. 19 is a detailed flowchart of the update request determination process (S710). Hereinafter, each step in FIG. 19 will be described.
- arithmetic unit 121 of the gateway 12 starts the reprogramming mode and executes the process shown in FIG. 19 before transmitting the update data.
- step S71001 the calculation unit 121 of the gateway 12 extracts the version information M7023 of the control code of the current control program and the version information M7024 of the control data from the response message M702 received from the vehicle control device 11.
- step S71002 the calculation unit 121 extracts the version information 613 of the control code of the control program of the updated version and the version information 623 of the control data from the update package 5 received from the server 2.
- step S71003 the calculation unit 121 determines whether the updated version of the control code version and the current version of the control code version are the same. If the versions of both control codes are different, both the control code and the control data are updated in step S71007.
- step S71004 determines whether the version of the updated version of the control data and the version of the current version of the control data are the same. ..
- the version of the control code of the updated version and the version of the current version are the same, neither of the update processes is executed because the versions of the control code and the control data are the same (S71005).
- the version of the control data of the updated version and the current version are different, the version of the control code is the same, so the update process of the control code is skipped and only the update process of the control data is executed (S71006).
- Example 2 Summary> As described above, if the control code of the updated version of the control program of the gateway 12 according to the second embodiment is the same version as the control code of the control program stored in the Active surface of the vehicle control device 11.
- the control code update process (S703) is skipped, and control is performed so that only the control data update process is performed. As a result, the process of determining whether or not the control code needs to be updated (S802022-S802023 in FIG. 14) becomes unnecessary on the vehicle control device side, and the update time can be shortened while reducing the addition in the vehicle control device.
- Flash ROM 112 is illustrated as an area for storing the control program, but other non-volatile storage devices may be used.
- the configuration example in which the Flash ROM 112 is divided into the first area 1123 and the second area 1124 has been described, but even if the first area 1123 and the second area 1124 are realized by two storage devices. Good. Further, three or more storage areas (or storage devices) may be provided to realize the same configuration as in the first embodiment. In this case, for example, the control program is stored in each storage area (or storage device) in order.
- the update sequence it is normal to write the latest version of the control program, but depending on the circumstances, it may be updated with the downgraded control program.
- the updated version of the control program is the downgraded control program. That is, the updated version of the control program is the control program written by the immediately preceding update sequence.
- each of the above-described configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them by, for example, an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing the program to be executed.
- the hardware or software that realizes each function may be implemented separately, or a plurality of implemented hardware or software may be used in a time-multiplexed manner. Processing may be performed. Further, even if it is a single function in terms of configuration, distributed processing may be performed using a plurality of hardware or software having the same function.
- Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, a hard disk, or SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
- a storage device such as a memory, a hard disk, or SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
- control lines and information lines indicate those that are considered necessary for explanation, and do not necessarily indicate all the control lines and information lines that are necessary for implementation. In practice, it can be considered that almost all configurations are interconnected.
- the vehicle control device of the present embodiment has a first memory area (first area 1123) and a second memory area (first area 1123) having a plurality of blocks for storing both the control code 615 and the control data 625, respectively.
- the update request from the non-volatile memory (Flash ROM 112) that can be used by switching the memory area (second area 1124) and the writing device (gateway 12) requires updating both the control code 615 and the control data 625.
- update request determination unit (update request determination function 11221) that determines whether only the control data 625 is updated, and the update request determination unit 11221 determines that only the control data 625 is updated, Since the received control data 625 is written to the designated area (active surface) of the non-volatile memory in which the currently active control program is stored, only the control data can be updated as needed, and the control program update time is shortened. it can.
- the non-volatile memory 112 includes a third memory area (third area 1125) for temporarily storing the control data 625, and the update request determination unit 11221 determines that only the control data 625 is updated, After writing the received control data to the third memory area 1125 and confirming that the control data 625 has been normally written to the third memory area 1125, the currently active control from the third memory area 1125 Since the control data is written to the designated area (active surface) of the non-volatile memory 112 in which the program is stored, the control data can be safely updated without directly overwriting the control data during operation.
- each of the control code 615 and the control data 625 has version information
- the update request determination unit 11221 includes the version information of the control code 615 received from the vehicle control device 11 and the version information of the update version of the control code 615. Since the target to be updated is determined by comparing the above, since the version information of another system is set by the control code 615 and the control data 625, only the control data can be updated and the update time of the control program is shortened. it can.
- the update request determination unit 11221 compares the version information of the currently active control code 615 with the version information of the update version control code 615, and if the versions of both control codes 615 are the same, the control data 625 If only the control code 615 is updated and the versions of the control code 615 are different, both the control code 615 and the control data 625 are updated. Therefore, only the control data can be updated as needed, and the update time of the control program can be reduced. Can be shortened.
- the vehicle control device 11 updates only the control data 625
- the vehicle control device 11 confirms the association between the control code 615 included in the currently active control program stored in the non-volatile memory 112 and the control data 625 to be updated. Then, since the control data 625 to be updated when the association is correct is written to the non-volatile memory 112, malfunction due to the update of the control data can be prevented, and the control data can be updated safely.
- the timing of storing the control data 625 in the designated area (active surface) of the non-volatile memory in which the currently active control program is stored is set to at least one of the detection of the ignition OFF of the vehicle and the stop of the vehicle. Therefore, the control data can be updated in a safe state.
- At least an input / output device HMI14 that presents information to the user is provided, and at least one of the control code version information and the control data version information is presented to the user when the control program is updated.
- the control program can be updated by using the user instruction as a trigger, and erroneous updates can be suppressed.
- the means for acquiring the version information of the control program from the vehicle control device 11 and the update of the control program are performed by updating both the control code 615 and the control data 625.
- the update request determination unit (update request determination function 12211) for determining whether it is necessary or only the control data 625 is updated is provided, and the update request determination unit 12211 determines that only the control data 625 is updated. Since the received control data 625 is stored in the designated area (active surface) of the non-volatile memory in which the currently active control program is stored, the update time of the control program is shortened while reducing the addition of the vehicle control device. it can.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
Abstract
車両制御装置の制御プログラムの更新に係る使い勝手を向上する。書込み装置から提供される更新内容に基づいて、格納している制御プログラムを更新可能な車両制御装置であって、前記制御プログラムは、制御コードと、前記制御コードの実行時に参照される制御用データとを含み、前記車両制御装置は、前記制御コードと前記制御用データとの両方を各々格納する第1のメモリ領域と第2のメモリ領域を切り替えて使用可能な不揮発メモリと、前記書込み装置からの更新要求が、前記制御コードと前記制御用データとの両方の更新が必要か、又は前記制御用データのみの更新かを判定する更新要求判定部とを備え、前記更新要求判定部は、前記制御用データのみの更新であると判定した場合、現在アクティブな制御プログラムが格納されるいずれかのメモリ領域に受信した制御用データを書き込む。
Description
本発明は、車両制御装置に関する。
車両制御装置は、演算装置(例えばマイクロコンピュータ)と、制御プログラムを格納するFlash ROM(Read Only Memory)などの記憶装置を有する。従来は、車両を販売店に持ち込み、専門の整備員がプログラム書込み装置を車両に接続して、制御プログラムを更新することが多かった。しかし、クルマがインターネットに常時接続する、いわゆる「コネクティッド・ビークル」の普及により、カーナビゲーションシステムにおける機能追加や地図データの更新にとどまらず、車両の制御プログラムも、無線を介して更新することが想定されている。
一方、プログラムの書込み処理中に何らかの要因(通信の途絶、ハードウェア異常発生など)で更新が失敗した場合、新バージョン及び旧バージョンのソフトウェアが使用不能又は機能不全となり、最悪の場合、車両が動作しいことが想定される。
本技術分野の背景技術として、以下の先行技術がある。特許文献1(特開2006-301960号公報)には、自動車上に搭載される電子機器の制御処理を司る制御用ソフトウェアを格納するとともに、記憶内容が電気的に書換え可能であって、外部からのリセット信号を受けても当該記憶内容を保持する不揮発性メモリと、該制御用ソフトウェアの実行メモリとなるRAMと、前記制御用ソフトウェアの実行に基づいて前記電子機器の制御処理を行なうCPUとを備え、前記不揮発性メモリは、前記制御用ソフトウェアの現在使用中のバージョンプログラムである現行バージョンプログラムを格納するための主格納エリアと、前記現行バージョンプログラムからの更新点を含む更新バージョンプログラムを格納するための副格納エリアとを有し、さらに、外部から取得した前記更新バージョンプログラムを前記副格納エリアに格納するプログラム格納処理と、前記更新バージョンプログラムの前記副格納エリアへの書き込みに成功した場合は、現在主格納エリアとして使用されているメモリ領域に代え、前記更新バージョンプログラムの格納が完了した前記副格納エリアを、新たな主格納エリアとして切り替える一方、前記副格納エリアへの書き込みに失敗した場合は当該切替えを行わないメモリ切替え処理とを含むプログラム書換え処理とを実行するプログラム書換え手段を有してなることを特徴とする自動車用制御ユニットが記載されている。
前述した特許文献1に記載された自動車用制御ユニットは、制御プログラムの現行バージョンを格納する主格納エリアと、更新バージョンを格納する副格納エリアとをFlash ROMに設け、プログラム更新の際、そのエリアを交互に使用することにより、万一更新バージョンプログラムの書き込みに失敗しても、旧バージョンは引き続き使用可能としている(2面ROM更新)。
また、一般的に、車両制御装置の制御プログラムには、処理を実行する制御コード(制御プログラムの命令コードそのもの)と制御時に参照されるデータマップや特性データなどの制御に使われる各種データ(以降、制御用データと呼ぶ)があり、いずれのデータも書換え可能な不揮発記憶装置内に格納することが多い。
このような構成における制御プログラムの更新では、制御コードは同じ状態(同じバージョン)で、制御コードの実行時に参照される制御用データの一部を変更する要求がある。これは、必要の無い更新を省いて、制御プログラムの更新時間を短縮したいからである。
このような場合、従来、制御コードと制御用データとをFlash ROMの異なる物理ブロックに区別して配置して、制御用データをのみを指定して更新を行い、変更のない制御コードの更新は行わない方法が採用されることがある。
しかし、特許文献1に記載された自動車用制御ユニットでは、主格納エリアと副格納エリアを交互に使って制御プログラムを更新するので、更新先の格納エリアには、現在動作している制御プログラムの1つ前の古いバージョンが格納されている。このため、前述したような制御用データのみを更新できず、制御コードと制御用データとをペアで更新する必要があり、結果、制御プログラムの更新時間が長くなり、使い勝手が悪くなる。
本発明は、前述の課題に鑑みてなされたものであり、制御コードと制御用データとから構成される制御プログラムを不揮発メモリに複数格納する車両制御装置において、短時間でかつ安全に制御プログラムを更新する手段を提供することで、車両制御装置の制御プログラムの更新に係る使い勝手の向上を目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、書込み装置から提供される更新内容に基づいて、格納している制御プログラムを更新可能な車両制御装置であって、前記制御プログラムは、制御コードと、前記制御コードの実行時に参照される制御用データとを含み、前記車両制御装置は、前記制御コードと前記制御用データとの両方を各々格納する第1のメモリ領域と第2のメモリ領域を切り替えて使用可能な不揮発メモリと、前記書込み装置からの更新要求が、前記制御コードと前記制御用データとの両方の更新が必要か、又は前記制御用データのみの更新かを判定する更新要求判定部とを備え、前記更新要求判定部は、前記制御用データのみの更新であると判定した場合、現在アクティブな制御プログラムが格納されるいずれかのメモリ領域に受信した制御用データを書き込むことを特徴とする。
本発明によれば、短時間でかつ安全に制御プログラムを更新できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
<実施例1>
以下に、本発明の一実施例に係るプログラム更新システムについて、各図を参照して説明する。
以下に、本発明の一実施例に係るプログラム更新システムについて、各図を参照して説明する。
図1は、本発明の実施例1に係るプログラム更新システムの構成図である。実施例1のプログラム更新システムは、車両1、サーバ2、インターネット回線3、及び無線基地局4を有する。車両1は、インターネット回線3及び無線基地局4等のネットワークを介し、無線通信によりサーバ2と接続し、相互に通信する。無線通信は、例えば、3G/LTEなどの公衆回線による携帯電話網やWiFiなどの回線を用いることができる。サーバ2は、車両1が有する車両制御装置11の制御プログラムの更新に必要な更新パッケージ5を、車両1に配信する。車両1の車両制御装置11は、その更新パッケージ5を用いて制御プログラムを書き換える。
図2は、車両1が有する車載ネットワークシステムの構成図である。車両制御装置11は、車両1の動作を制御する制御プログラムを実行する装置であり、車載ネットワーク13(例えばCAN(Controller Area Network))を介してゲートウェイ12(プログラム書込み装置)と接続されている。車両制御装置11は、ゲートウェイ12を介して他の車両制御装置11と通信できる。
また、ゲートウェイ12は、車両制御装置11に対して制御プログラムの更新を制御するプログラム書込み装置としての役割も有する。ゲートウェイ12は、サーバ2から更新パッケージ5を受信し、車両制御装置11に対して制御プログラムの更新命令(リプログラミング命令)及び更新用の制御プログラムそのものを送信する。ゲートウェイ12とは別に、プログラム書込み装置を設けてもよい。
ゲートウェイ12は、演算部121、Flash ROM(Read Only Memory)122、SRAM(Static Random Access Memory)123、及び、CANトランシーバ及び無線通信モジュールを含む通信装置124を有する。演算部121は、FlashROM122に格納されたプログラムを実行することによって、車載ネットワーク13上の車両制御装置11やサーバ2との間で通信する。
また、車両制御装置11の制御プログラムの更新時に、ゲートウェイ12は、サーバ2から更新パッケージ5を受信してFlash ROM122に一時的に格納し、更新制御部1221が、この更新パッケージ5を用いて車両制御装置11の制御プログラムを更新する。
また、HMI(Human-Machine Interface)14は、例えば、車両1のダッシュボート中央に埋め込まれた各種表示用の液晶ディスプレイ装置、その近傍に配置された操作スイッチ類及び車載スピーカなどで構成される。HMI14は、車両1の乗員に各種表示を行ったり、各種入力操作を処理したりする。また、HMI14は、車両制御装置11の制御プログラムの更新に係る表示をし、操作入力を受け付ける。
図3は、車両制御装置11の構成図である。車両制御装置11は、演算部111、Flash ROM112、SRAM113、通信装置114(例えばCANトランシーバ)を有する。
演算部111は、Flash ROM112に格納されている制御プログラムを実行する、例えばマイクロコンピュータなどの演算装置である。以下では記載の便宜上、各プログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのは演算部111である。
Flash ROM112は、書き換え可能な不揮発メモリであって、更新処理部1122と、第1の記憶領域としての第1エリア1123と、第2の記憶領域としての第2エリア1124と、第3の記憶領域としての第3エリアとを有する。以下、その構成について図4を用いて説明する。
図4は、Flash ROM112の内部の構成を示す図である。Flash ROM112は、複数の物理ブロックで構成され、制御プログラムそのものが格納される第1エリア1123と、第2エリア1124と、制御プログラムの更新の際、作業用エリアとして使われる第3エリアとを含む。ここで、ブロックとは、Flash ROM112の消去及び書換えの単位である。また、制御プログラムは、実行用のプログラム本体である制御コードD11及びD21と、プログラムを制御する際に参照される制御用データD12及びD22とから構成される。
更に、Flash ROM112は、ゲートウェイ12と通信を行い、制御プログラムの更新処理を行う更新処理部1122を格納する。図4に示す状態では、第1エリア1123に格納された制御プログラムが現在動作しており、制御コードD11のバージョン情報は「101」であり、制御用データD12のバージョン情報は「11」である。第2エリア1124には一つ前のバージョンの制御プログラム(バージョン「100」の制御コードD21と、バージョン「01」の制御用データD22)が格納されている。また、バージョン情報は、制御コードや制御用データと同様に、車両制御装置11の不揮発領域に格納される。また、現在動作している制御プログラムが格納されているエリアを「Active面」、動作していないエリアを「非Active面」と呼ぶ。図4に示す状態では、第1エリアが「Active面」、第2エリアが「非Active面」である。なお、「非Active面」はプログラム更新を行う際には、制御プログラムの更新対象エリアとなる。
図5は、更新パッケージ5をサーバ2からゲートウェイ12にダウンロードする手順を示すシーケンス例である。
車両制御装置11の制御プログラムの修正や機能追加が行われると、ソフト更新の準備として、更新パッケージ5がサーバ2へ登録される。
車両のイグニッションをONにしたタイミングなどで、ゲートウェイ12は、現行の制御プログラムの部品番号の要求メッセージを、車両制御装置11に送信する(M501)。車両制御装置11は、その要求に対し、車両制御装置11の部品番号と現行プログラムのバージョン情報を応答する(M502)。部品番号は、車両制御装置11を一意に識別する番号である。現行プログラムのバージョン情報は、現在のActive面の情報と、Active面に格納される制御コードと制御用データの両方のバージョンを含む。
次に、ゲートウェイ12は、更新パッケージ取得要求メッセージを、サーバ2に送信する(M503)。更新パッケージ取得要求メッセージM503には、車両制御装置11の部品番号と現行の制御プログラムのバージョン情報が含まれる。サーバ2は、ステップS501で、更新データ取得要求メッセージの部品番号と現行プログラムバージョン情報に基づいて、登録されている更新パッケージ5の中から該当するパッケージを選択し、ターゲットの車両へ配信する(M504)。なお、配信する更新パッケージ5は、該更新パッケージ5を書き込む面(第1エリア、第2エリア)を指定する情報を含む。
ゲートウェイ12では、配信された更新パッケージ5を蓄積し(S502)、ダウンロードが完了する。全てのデータの蓄積が完了したら、サーバ2に対して完了メッセージを送信する(M505)。この後、ゲートウェイ12は、受信した更新パッケージ5に基づいて、ソフト更新を実行する。更新パッケージ5の構成やメッセージの構成は後述する。
図6は、ゲートウェイ12がサーバ2から取得する更新パッケージ5の構成例を示す図である。更新パッケージ5は、制御コードファイル61及び制御データファイル62を含む。
制御コードファイル61は、開始アドレス611、転送サイズ612、バージョン情報613、紐付け情報614、及び制御コード615を含む。開始アドレス611は、制御プログラム更新で、制御データの書込み先の車両制御装置11のFlash ROM112の開始アドレスを示す情報である。また、転送サイズ612は、制御コードの容量(バイト数)の情報である。バージョン情報613は、添付される制御コード615のバージョン情報であり、紐付け情報614は、制御コード615と制御用データ625とを関連付ける情報であり、具体的には制御コード615と制御用データ625とのバージョン情報で記述される。紐付け情報614は、制御コード615と制御用データ625とが1対1で関連付けられるものや、両者が1対多や多対1で関連付けられる場合もある。
例えば、あるバージョンの制御コードで使用できる制御用データのバージョン情報を格納することによって、誤ったペアでは制御用データを使えないようにできる。制御データファイル62の構成は制御コードファイル61と同じであるため、その説明は省略する。
図7は、車両制御装置11が制御プログラムを更新する手順の例を示すシーケンス図である。以下、図7~図9を使い、実施例1における更新シーケンスについて説明する。
配信された更新パッケージ5の蓄積(S502)が完了すると、制御プログラムの更新が開始する。具体的には、ゲートウェイ12は、更新制御部1221を起動し、車両制御装置11に対して現行の制御プログラムの情報を要求する(M701)。車両制御装置11は、ステップS701で、現行の制御プログラムの情報取得処理を実行し、結果を応答する(M702)。ステップS701で取得される情報は、たとえば、ECU IDや現行制御プログラムの制御コードのバージョン情報、制御用データのバージョン情報等である。
ゲートウェイ12は、ステップS702で受信した情報応答(M702)に誤りが無いか判定し、誤りが無ければ、車両制御装置11を通常モードからリプログラミングモードに遷移させ、制御プログラムの更新処理を開始する。
例えば、ここで、ゲートウェイ12は、HMI14と連携し、車両制御装置11から受信したECU IDや制御プログラムのバージョン情報、又は、ゲートウェイ12が保持する更新版の制御プログラムのバージョン情報をHMI14に表示要求したり、制御プログラムの更新処理の開始判断をユーザに確認してもよい。
プログラム更新処理は、制御コードの更新処理(S703)、制御用データの更新処理(S704)、正当性検証処理(S705)の順に処理を実行する。それぞれの処理の詳細なシーケンスは、図8及び図9で説明する。ゲートウェイ12は、正当性検証処理S705が完了したら、リプログラミングモードを終了して通常モードへ遷移し、車両制御装置11へリセット要求(M703)を送信する。車両制御装置11は、リセット要求に従って再起動することによって、更新版の制御プログラムが適用される。
次に、図8を使って、制御コードの更新処理(S703)及び制御用データの更新処理(S704)の詳細なシーケンスを説明する。ステップS703及びステップS704は同じシーケンスにて更新処理を実行することから、ここでは、制御コードの更新処理を例として説明する。
ゲートウェイ12の更新制御部1221は、車両制御装置11に制御コードのデータ転送開始要求(M801)を送信する。データ転送開始要求は、制御コードの書込み先を示す書込み先アドレスや、送信予定のデータサイズの情報を含む。車両制御装置11の更新処理部1122は、ステップS801で、データ転送開始要求処理を実行する。ここで、更新処理部1122は、受信したデータに基づいて、ゲートウェイ12から送信しようとする更新データが制御コードか制御用データかを判定する。そして、ゲートウェイ12に受諾応答(M802)を送信する。この受諾応答は、車両制御装置11が一度に受信可能なデータサイズ等の情報を含む。
次に、ゲートウェイ12の更新制御部1221は、S502でサーバ2からダウンロードし蓄積された制御コードのデータを車両制御装置11が一度に受信可能なデータサイズに分割し、データ転送メッセージ(M803)として車両制御装置11に送信する。車両制御装置11の更新処理部1122は、データ転送メッセージ(M803)を受信すると、ステップS802でデータ書込み処理を実行する。データ書込み処理(S802)は、最初に更新要求判定機能11221にて、制御コードを更新するかを判定し、その判定結果に基づいて処理を行う。本判定処理の詳細は後述する。ゲートウェイ12と車両制御装置11は、更新データの転送がすべて完了するまでデータ書込み処理(S802)を実行する。更新データの転送がすべて完了したら、車両制御装置11は、ゲートウェイ12に完了応答(M804)を送信する。
その後、ゲートウェイ12は、車両制御装置11へデータ転送完了要求(M805)を通知する。車両制御装置11は、ゲートウェイ12に受諾応答(M806)を送信する。以上で、制御コードの更新処理(S703)が完了する。
制御コードの更新処理(S703)が完了したら、続いてステップS704で、制御用データの更新処理を実施する。制御用データの更新処理のシーケンス手順は、前述の制御コードの更新処理(S703)と同じシーケンスを使う。処理の詳細は、制御コードの更新処理とまとめて後述する。
図9を使って、正当性検証処理(S705)の詳細シーケンスを説明する。
ゲートウェイ12は、車両制御装置11に対して、書き込んだデータの正当性をチェックするように正当性検証要求メッセージ(M811)を送信する。車両制御装置11の更新処理部1122は、正当性検証要求メッセージ(M811)を受信すると、ステップS803で、データ書込み処理(S802)で書き込んだ制御プログラムの正当性を検証する(S803)。この検証処理は、データ書込み処理(S802)で更新したエリアに基づいて、更新先エリアに書き込まれた更新版の制御プログラムのデータに誤りがないかを検証する。本検証処理の詳細は、後述する。車両制御装置11は検証結果をゲートウェイ12へ応答する(M812)。検証手段は、チェックサム、CRC(Cyclic Redundancy Check)、ハッシュ値などを用いた誤り検出や誤り訂正によって実施できる。
図10は、前記制御プログラムの更新シーケンス(図7)において、車両制御装置11が、ゲートウェイ12からの現行プログラム情報要求メッセージ(M701)を受信した際に応答するメッセージ(M702)の構成例を示す図である。応答メッセージM702は、コマンドM7021、車両制御装置11のECU IDM7022、制御コードのバージョン情報M7023、及び制御用データのバージョン情報M7024を含む。
図11は、前記制御コード及び制御用データの更新処理(図8)及び正当性検証処理(図9)において、ゲートウェイ12から車両制御装置11に送信される通信メッセージの構成例を示す図である。
データ転送開始要求(M801)は、コマンドM8011、更新データ種別フラグM8012、書込み先アドレスM8013、送信データサイズM8014を含む。
データ転送(M803)は、更新データM8032を車両制御装置11へ転送するメッセージであり、付属する更新データM8032は、更新データのバージョン情報M80321、紐付け情報M80322及び、更新データそのものである制御コード又は制御用データM80323を含む。紐付け情報は、制御コードと制御用データとを関連付ける情報である。
データ転送完了要求(M805)は、更新データの転送終了を示す命令である。
正当性検証要求(M811)は、更新先のエリアに書き込まれた更新版の制御プログラムのデータに誤りがないかの検証を要求する命令である。
以上のような更新シーケンスにて、実施例1の制御プログラムが更新される。次に、図12~図15を用いて、制御プログラムの更新処理において車両制御装置11が実行する処理を説明する。
図12は、データ転送開始要求処理(S801)の詳細なフローチャートである。以下、図12の各ステップについて説明する。
(図12:ステップS801)
車両制御装置11の演算部111は、ゲートウェイ12からデータ転送開始要求M801を受信すると、図12に示す処理を開始する。
車両制御装置11の演算部111は、ゲートウェイ12からデータ転送開始要求M801を受信すると、図12に示す処理を開始する。
(図12:ステップS80101)
演算部111は、受信したデータ転送開始要求M801に含まれる書込み先アドレスM8013に基づいて、ゲートウェイ12から送信された更新データが制御コードか制御用データかを判定し、判定結果を更新データ種別として保持する。ここで、書き込み先アドレスに基づいて更新データ種別を判定するが、別の手段として、本データをゲートウェイ12から更新データ種別フラグを取得してもよい。なお、データ転送開始要求M801の更新データ種別フラグM8012を使用して、更新データが制御コードか制御用データかを判定してもよい。
演算部111は、受信したデータ転送開始要求M801に含まれる書込み先アドレスM8013に基づいて、ゲートウェイ12から送信された更新データが制御コードか制御用データかを判定し、判定結果を更新データ種別として保持する。ここで、書き込み先アドレスに基づいて更新データ種別を判定するが、別の手段として、本データをゲートウェイ12から更新データ種別フラグを取得してもよい。なお、データ転送開始要求M801の更新データ種別フラグM8012を使用して、更新データが制御コードか制御用データかを判定してもよい。
(図12:ステップS80102)
次に、演算部111は、ゲートウェイ12へ許諾応答を送信し、処理を終了する。
次に、演算部111は、ゲートウェイ12へ許諾応答を送信し、処理を終了する。
図13は、データ書込み処理(S802)の詳細なフローチャートである。以下、図13の各ステップについて説明する。
(図13:ステップS802)
車両制御装置11の演算部111は、ゲートウェイ12からデータ転送要求M803を受信すると、 図13に示す処理を開始する。
車両制御装置11の演算部111は、ゲートウェイ12からデータ転送要求M803を受信すると、 図13に示す処理を開始する。
(図13:ステップS80201~S80202、S80210)
演算部111は、S80101で求めた更新データ種別が制御コードか判定する(S80201)。更新データ種別が制御コードである場合は、ステップS80202で制御コードを書き込む。一方、更新データ種別が制御用データである場合は、ステップS80210で制御用データを書き込む。
演算部111は、S80101で求めた更新データ種別が制御コードか判定する(S80201)。更新データ種別が制御コードである場合は、ステップS80202で制御コードを書き込む。一方、更新データ種別が制御用データである場合は、ステップS80210で制御用データを書き込む。
図14は、制御コード書込み処理(S80202)の詳細なフローチャートである。本処理は、制御コードのデータ転送要求M803をゲートウェイ12から受信した際に実行される。以下、図14の各ステップについて説明する。
(図14:ステップS802021)
ステップS80202の制御コードの書込み処理では、最初に、演算部111は、ステップS802021で受信した更新データM8032に含まれる制御コードのバージョン情報M80321を抽出する。
ステップS80202の制御コードの書込み処理では、最初に、演算部111は、ステップS802021で受信した更新データM8032に含まれる制御コードのバージョン情報M80321を抽出する。
(図14:ステップS802022~S802024)
次に、演算部111は、ステップS802022で、上で抽出した更新版の制御コードのバージョンと現行の制御コードのバージョンが同じかを比較する。比較の結果、更新版の制御コードのバージョンと現行の制御コードのバージョンが同じである場合は、制御コードのそれ以降のデータ受信をスキップし、以後のデータを更新しない(S802023)。更に、制御コードの更新処理をスキップする内容のメッセージをゲートウェイ12へ通知する(S802024)。
次に、演算部111は、ステップS802022で、上で抽出した更新版の制御コードのバージョンと現行の制御コードのバージョンが同じかを比較する。比較の結果、更新版の制御コードのバージョンと現行の制御コードのバージョンが同じである場合は、制御コードのそれ以降のデータ受信をスキップし、以後のデータを更新しない(S802023)。更に、制御コードの更新処理をスキップする内容のメッセージをゲートウェイ12へ通知する(S802024)。
(図14:ステップS802025)
ステップS802022の比較の結果、更新版の制御コードのバージョンと現行の制御コードのバージョンが異なる場合は、制御コードのデータ受信を継続し、データ転送開始要求M801に含まれる書込み先のアドレス(M8013)から、データサイズ(M8014)分、Flash ROM112へのデータ書き込みを繰り返し実行する(S802025)。
ステップS802022の比較の結果、更新版の制御コードのバージョンと現行の制御コードのバージョンが異なる場合は、制御コードのデータ受信を継続し、データ転送開始要求M801に含まれる書込み先のアドレス(M8013)から、データサイズ(M8014)分、Flash ROM112へのデータ書き込みを繰り返し実行する(S802025)。
本処理によって、車両制御装置11は、更新データが現在Activeな制御プログラムの制御コードと同じバージョンである場合は、制御コードの更新処理を行わなくて済む。
図15は、制御用データを書込み処理(S80210)の詳細なフローチャートである。本処理は、制御用データのデータ転送要求M803をゲートウェイ12から受信した際に実行される。以下図15の各ステップについて説明する。
(図15:ステップS802101)
ステップS80210制御用データの書込み処理では、最初に、演算部111は、ステップS802101で、制御コードの更新処理ステップS703がスキップされたかを判定する。
ステップS80210制御用データの書込み処理では、最初に、演算部111は、ステップS802101で、制御コードの更新処理ステップS703がスキップされたかを判定する。
(図15:ステップS802102~S802106)
制御コードの更新処理がスキップされている場合は、ステップS802102で、ゲートウェイ12から受信した更新データM8032に含まれる制御用データのバージョン情報M80321と紐付け情報M80322を抽出し、ステップS802103で、車両制御装置11の現在Activeな制御プログラムと受信した制御用データとの紐付け関係が妥当かを判定する。前述した通り、紐付け情報は、制御コードと制御用データとを関連付ける情報である。ここでは、受信する制御用データを車両制御装置11のFlash ROM112のActive面へ書き込むための前処理として、現在Active面に書き込まれている制御コードのバージョンと受信する制御用データのバージョンの関係が妥当であるかを判定する。バージョンの関係が妥当であると判定した場合は、ステップS802104で、受信した制御用データを第3のエリアへ書き込み、書き込みが完了した後に、ゲートウェイ12へ完了応答を送信する(S802105)。ステップS802103で、バージョンの関係が妥当でないと判定した場合は、ゲートウェイ12へエラーを応答する(S802106)。
制御コードの更新処理がスキップされている場合は、ステップS802102で、ゲートウェイ12から受信した更新データM8032に含まれる制御用データのバージョン情報M80321と紐付け情報M80322を抽出し、ステップS802103で、車両制御装置11の現在Activeな制御プログラムと受信した制御用データとの紐付け関係が妥当かを判定する。前述した通り、紐付け情報は、制御コードと制御用データとを関連付ける情報である。ここでは、受信する制御用データを車両制御装置11のFlash ROM112のActive面へ書き込むための前処理として、現在Active面に書き込まれている制御コードのバージョンと受信する制御用データのバージョンの関係が妥当であるかを判定する。バージョンの関係が妥当であると判定した場合は、ステップS802104で、受信した制御用データを第3のエリアへ書き込み、書き込みが完了した後に、ゲートウェイ12へ完了応答を送信する(S802105)。ステップS802103で、バージョンの関係が妥当でないと判定した場合は、ゲートウェイ12へエラーを応答する(S802106)。
(図15:ステップS802107)
ステップS802101の判定で、制御コードの更新処理ステップS703が実行されている場合、車両制御装置11の演算部111は、受信される制御用データをデータ転送開始要求M801に含まれる書込み先のアドレス(M8013)から、データサイズ(M8014)分、Flash ROM112の非Active面へ書き込む。書込み処理は、更新データの転送がすべて完了するまで実行する。
ステップS802101の判定で、制御コードの更新処理ステップS703が実行されている場合、車両制御装置11の演算部111は、受信される制御用データをデータ転送開始要求M801に含まれる書込み先のアドレス(M8013)から、データサイズ(M8014)分、Flash ROM112の非Active面へ書き込む。書込み処理は、更新データの転送がすべて完了するまで実行する。
本処理によって、車両制御装置11は、更新データが現在Activeな制御プログラムの制御コードと同じバージョンである場合は、一旦、制御用データを第3エリア1125に書き込み、バージョンが異なる場合は、非Active面へ書き込むことができる。
図16は、正当性検証処理(S803)の詳細なフローチャートである。以下図16の各ステップについて説明する。
(図16:ステップS803)
車両制御装置11の演算部111は、ゲートウェイ12から正当性検証要求M811を受信すると、 図16に示す処理を開始する。
車両制御装置11の演算部111は、ゲートウェイ12から正当性検証要求M811を受信すると、 図16に示す処理を開始する。
(図16:ステップS80301)
演算部111は、まず、ステップS80301で、データ書込み処理S802において、更新制御プログラムの書込み先のエリアを判定する。
演算部111は、まず、ステップS80301で、データ書込み処理S802において、更新制御プログラムの書込み先のエリアを判定する。
(図16:ステップS80302~S80303)
第3エリア1125に制御用データを書き込んでいる場合は、ステップS80302で、第3エリア1125へ書き込んだデータの正当性をチェックする。非Active面のエリアへ書き込んでいる場合は、ステップS80303で、該当するエリア(第1エリア1123又は第2エリア1124)の制御コードと制御用データ両方の正当性をチェックする。
第3エリア1125に制御用データを書き込んでいる場合は、ステップS80302で、第3エリア1125へ書き込んだデータの正当性をチェックする。非Active面のエリアへ書き込んでいる場合は、ステップS80303で、該当するエリア(第1エリア1123又は第2エリア1124)の制御コードと制御用データ両方の正当性をチェックする。
(図16:ステップS80304~S80306)
第3エリアへ書き込んだデータの正当性チェック(S80302)の結果が妥当である場合、演算部111は、ステップS80304で、第3エリア1125に格納される制御用データをFlash ROM112のActive面の制御用データ格納領域へコピーする。そして、コピーが完了したら、ゲートウェイ12へ完了応答を送信する(S80305)。一方、第3エリアへ書き込んだデータの正当性チェック(S80302)が異常である場合は、ゲートウェイ12へ異常応答を送信する(S80306)。
第3エリアへ書き込んだデータの正当性チェック(S80302)の結果が妥当である場合、演算部111は、ステップS80304で、第3エリア1125に格納される制御用データをFlash ROM112のActive面の制御用データ格納領域へコピーする。そして、コピーが完了したら、ゲートウェイ12へ完了応答を送信する(S80305)。一方、第3エリアへ書き込んだデータの正当性チェック(S80302)が異常である場合は、ゲートウェイ12へ異常応答を送信する(S80306)。
(図16:ステップS80307)
非Active面に格納された更新データの正当性チェック(S80303)が妥当である場合は、ゲートウェイ12へ完了応答を送信し(S80305)、異常である場合は、ゲートウェイ12へ異常応答を送信する(S80306)。
非Active面に格納された更新データの正当性チェック(S80303)が妥当である場合は、ゲートウェイ12へ完了応答を送信し(S80305)、異常である場合は、ゲートウェイ12へ異常応答を送信する(S80306)。
なお、ステップS80304の処理を実行するタイミングは、必ずしも前述でなくてもよく、データの正当性が確認されれば、たとえば、イグニッションOFFのタイミング、車両が停止している状態、又は車両制御装置11が動作していないタイミング等の安全な状況で実行してもよい。
<実施例1:まとめ>
以上に説明したように、実施例1に係る車両制御装置11は、Flash ROM112内に第1エリア1123と第2エリア1124を持ち、制御プログラムの更新を交互に行う2面ROM構成のプログラム更新方式において、更新版の制御プログラムの制御コードが、車両制御装置11のActive面に格納されている制御プログラムと同じバージョンであれば、Active面のエリアへ制御用データのみを更新する(制御コードは更新しない)ことができる。これにより、制御プログラムの更新時間を短縮できる。また、制御用データのみの更新時に、制御用データを直接上書きすることなく、ゲートウェイ12から受信するデータを第3エリア1125に書き込んだ後、受信したデータの内容の正当性を確認した後に、Active面の記憶領域へ格納することで、安全に制御用データを更新できる。
以上に説明したように、実施例1に係る車両制御装置11は、Flash ROM112内に第1エリア1123と第2エリア1124を持ち、制御プログラムの更新を交互に行う2面ROM構成のプログラム更新方式において、更新版の制御プログラムの制御コードが、車両制御装置11のActive面に格納されている制御プログラムと同じバージョンであれば、Active面のエリアへ制御用データのみを更新する(制御コードは更新しない)ことができる。これにより、制御プログラムの更新時間を短縮できる。また、制御用データのみの更新時に、制御用データを直接上書きすることなく、ゲートウェイ12から受信するデータを第3エリア1125に書き込んだ後、受信したデータの内容の正当性を確認した後に、Active面の記憶領域へ格納することで、安全に制御用データを更新できる。
<実施例2>
実施例1において、車両制御装置11が更新要求判定機能11221を有し、ゲートウェイ12からデータを受信して制御用データのみを更新する手段について述べた。しかし、ゲートウェイ12が更新要求判定機能を有すれば、制御コードの更新が必要ない場合には、要求そのものを送信しなくてもよい。以下に実施例2の手段の一例を説明する。
実施例1において、車両制御装置11が更新要求判定機能11221を有し、ゲートウェイ12からデータを受信して制御用データのみを更新する手段について述べた。しかし、ゲートウェイ12が更新要求判定機能を有すれば、制御コードの更新が必要ない場合には、要求そのものを送信しなくてもよい。以下に実施例2の手段の一例を説明する。
図17は、本発明の実施例2に係るゲートウェイ12の構成図である。
実施例2においては、Flash ROM112の更新制御部1221に、更新要求判定機能12211を有する。実施例2では、ゲートウェイ12が、更新要求判定機能12211を用いて、車両制御装置11の制御用データのみを更新するか、それとも、制御コードと制御用データの両方を更新するかを判定する。それ以外は、実施例1の車両制御装置11の構成図と同じなので、それらの説明は省略する。
図18は、本発明の実施例2に係る車両制御装置が制御プログラムを更新する手順の例を示すシーケンス図である。実施例2においては、ゲートウェイ12の更新要求判定機能12211が、ステップS710で、車両制御装置11の制御用データのみを更新するか、それとも、制御コードと制御用データの両方を更新するかを判定する。
図19は、更新要求判定処理(S710)の詳細なフローチャートである。以下、図19の各ステップについて説明する。
(図19:ステップS710)
ゲートウェイ12の演算部121は、リプログラミングモードが開始され、更新データを送信する前に図19に示す処理を実行する。
ゲートウェイ12の演算部121は、リプログラミングモードが開始され、更新データを送信する前に図19に示す処理を実行する。
(図19:ステップS71001)
最初に、ゲートウェイ12の演算部121は、ステップS71001で、車両制御装置11より受信した応答メッセージM702より現行の制御プログラムの制御コードのバージョン情報M7023と制御用データのバージョン情報M7024を抽出する。
最初に、ゲートウェイ12の演算部121は、ステップS71001で、車両制御装置11より受信した応答メッセージM702より現行の制御プログラムの制御コードのバージョン情報M7023と制御用データのバージョン情報M7024を抽出する。
(図19:ステップS71002)
次に、演算部121は、ステップS71002で、サーバ2より受信した更新パッケージ5より、更新版の制御プログラムの制御コードのバージョン情報613と制御用データのバージョン情報623を抽出する。
次に、演算部121は、ステップS71002で、サーバ2より受信した更新パッケージ5より、更新版の制御プログラムの制御コードのバージョン情報613と制御用データのバージョン情報623を抽出する。
(図19:ステップS71003、S71007)
演算部121は、ステップS71003で、更新版の制御コードのバージョンと現行版の制御コードのバージョンが同じかを判定する。両者の制御コードのバージョンが異なる場合は、ステップS71007で、制御コードと制御用データの両方を更新する。
演算部121は、ステップS71003で、更新版の制御コードのバージョンと現行版の制御コードのバージョンが同じかを判定する。両者の制御コードのバージョンが異なる場合は、ステップS71007で、制御コードと制御用データの両方を更新する。
(図19:ステップS71004~S71006)
一方、ステップS71003で、両者の制御コードのバージョンが同じだと判定された場合、更に、ステップS71004で、更新版の制御用データのバージョンと現行版の制御用データのバージョンが同じかを判定する。更新版と現行版の制御コードのバージョンが同じである場合は、制御コードも制御用データもバージョンが同じなので、どちらの更新処理を実施しない(S71005)。更新版と現行版の制御用データのバージョンが異なる場合は、制御コードのバージョンが同じなので、制御コードの更新処理はスキップし、制御用データの更新処理のみ実行する(S71006)。
一方、ステップS71003で、両者の制御コードのバージョンが同じだと判定された場合、更に、ステップS71004で、更新版の制御用データのバージョンと現行版の制御用データのバージョンが同じかを判定する。更新版と現行版の制御コードのバージョンが同じである場合は、制御コードも制御用データもバージョンが同じなので、どちらの更新処理を実施しない(S71005)。更新版と現行版の制御用データのバージョンが異なる場合は、制御コードのバージョンが同じなので、制御コードの更新処理はスキップし、制御用データの更新処理のみ実行する(S71006)。
<実施例2:まとめ>
以上に説明したように、本実施例2に係るゲートウェイ12は、更新版の制御プログラムの制御コードが、車両制御装置11のActive面に格納される制御プログラムの制御コードと同じバージョンであれば、制御コードの更新処理(S703)をスキップし、制御用データの更新処理のみを実施するよう制御する。これにより、車両制御装置側で、制御コードの更新要否を判定する処理(図14のS802022-S802023)が不要になり、車両制御装置での付加を軽減しつつ、更新時間を短縮できる。
以上に説明したように、本実施例2に係るゲートウェイ12は、更新版の制御プログラムの制御コードが、車両制御装置11のActive面に格納される制御プログラムの制御コードと同じバージョンであれば、制御コードの更新処理(S703)をスキップし、制御用データの更新処理のみを実施するよう制御する。これにより、車両制御装置側で、制御コードの更新要否を判定する処理(図14のS802022-S802023)が不要になり、車両制御装置での付加を軽減しつつ、更新時間を短縮できる。
<本発明の変形例について>
本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を有するものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を有するものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
実施例1及び2においては、制御プログラムを格納するエリアとしてFlash ROM112を例示したが、その他の不揮発記憶装置を用いてもよい。
実施例1及び2においては、Flash ROM112が第1エリア1123と第2エリア1124に分かれている構成例を説明したが、第1エリア1123と第2エリア1124を二つの記憶装置によって実現してもよい。また、記憶領域(又は記憶装置)を三つ以上設け、実施例1と同様の構成を実現してもよい。この場合、例えば各記憶領域(又は記憶装置)に順番に制御プログラムを格納することになる。
更新シーケンスにおいては、制御プログラムの最新版を書き込むのが通常であるが、諸事情によってはダウンバージョンした制御プログラムで更新する可能性もある。この場合、制御プログラムの更新版とはそのダウンバージョンした制御プログラムである。すなわち制御プログラムの更新版とは、直前の更新シーケンスによって書き込まれた制御プログラムである。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。また構成上同一の機能が複数存在する場合、各機能を実現するハードウェア或いはソフトウェアは別個に実装されていても良いし、実装された一つのハードウェア或いはソフトウェアを時間多重で使用して複数の処理を行っても良い。また構成上単一の機能であっても、同一の機能を持つ複数のハードウェア或いはソフトウェアを用いて分散処理を行っても良い。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
以上に説明したように、本実施例の車両制御装置は、制御コード615と制御用データ625との両方を各々格納する複数のブロックを有する第1のメモリ領域(第1エリア1123)と第2のメモリ領域(第2エリア1124)を切り替えて使用可能な不揮発メモリ(Flash ROM112)と、書込み装置(ゲートウェイ12)からの更新要求が、制御コード615と制御用データ625との両方の更新が必要か、又は制御用データ625のみの更新かを判定する更新要求判定部(更新要求判定機能11221)とを備え、更新要求判定部11221は、制御用データ625のみの更新であると判定した場合、受信した制御用データ625を現在アクティブな制御プログラムが格納される前記不揮発メモリの指定の領域(アクティブ面)に書き込むので、必要に応じて制御用データのみを更新でき、制御プログラムの更新時間を短くできる。
また、不揮発メモリ112は、制御用データ625を一時的に記憶する第3のメモリ領域(第3エリア1125)を含み、更新要求判定部11221は、制御用データ625のみの更新と判定した場合、受信した制御用データを第3のメモリ領域1125に書き込み、制御用データ625が第3のメモリ領域1125に正常に書込まれたことを確認した後に、第3のメモリ領域1125から現在アクティブな制御プログラムが格納される不揮発メモリ112の指定の領域(アクティブ面)へ制御用データを書き込むので、動作中の制御用データを直接上書きすることなく、制御用データを安全に更新できる。
また、制御コード615及び制御用データ625の各々はバージョン情報を有し、更新要求判定部11221は、車両制御装置11から受信した制御コード615のバージョン情報と更新版の制御コード615のバージョン情報とを比較して、更新する対象を判定するので、制御コード615と制御用データ625とで別体系のバージョン情報を設定したので、制御用データのみの更新が可能となり、制御プログラムの更新時間を短くできる。
また、更新要求判定部11221は、現在アクティブな制御コード615のバージョン情報と更新版の制御コード615のバージョン情報とを比較し、両者の制御コード615のバージョンが同じである場合、制御用データ625のみを更新し、両者の制御コード615のバージョンが異なる場合、制御コード615と制御用データ625との両方を更新するので、必要に応じて制御用データのみを更新でき、制御プログラムの更新時間を短くできる。
また、車両制御装置11は、制御用データ625のみを更新する場合、不揮発メモリ112に格納されている現在アクティブな制御プログラムに含まれる制御コード615と、更新する制御用データ625との関連付けを確認し、前記関連付けが正しい場合に更新する制御用データ625を不揮発メモリ112に書き込むので、制御用データの更新による誤動作を防止し、制御用データを安全に更新できる。
また、制御用データ625を現在アクティブな制御プログラムが格納される前記不揮発メモリの指定の領域(アクティブ面)に格納するタイミングは、車両のイグニッションOFFの検出、及び車両の停止中の少なくとも一つとしたので、安全な状態で制御用データを更新できる。
また、少なくともユーザに対して情報を提示する入出力装置(HMI14)を備え、前記制御プログラムの更新時に、前記制御コードのバージョン情報及び前記制御用データのバージョン情報の少なくとも一方をユーザに提示するので、ユーザ指示をトリガとして制御プログラムを更新でき、誤った更新を抑制できる。
また、本実施例の書込み装置(ゲートウェイ12)は、車両制御装置11から制御プログラムのバージョン情報を取得する手段と、制御プログラムの更新が、制御コード615と制御用データ625との両方の更新が必要か、又は制御用データ625のみの更新かを判定する更新要求判定部(更新要求判定機能12211)とを備え、更新要求判定部12211は、制御用データ625のみの更新であると判定した場合、受信した制御用データ625を現在アクティブな制御プログラムが格納される前記不揮発メモリの指定の領域(アクティブ面)に格納するので、車両制御装置の付加を軽減しつつ、制御プログラムの更新時間を短くできる。
1 車両、2 サーバ、3 インターネット回線、4 無線基地局、5 更新パッケージ、11 車両制御装置、111 演算部、112 Flash ROM、1122 更新処理部、1123 第1エリア、1124 第2エリア、1125 第3エリア、12 ゲートウェイ(プログラム書込み装置)、13 車載ネットワーク、14 HMI(Human Machine Interface)、D11 現行プログラムの制御コード、D12 現行プログラムの制御用データ
Claims (11)
- 書込み装置から提供される更新内容に基づいて、格納している制御プログラムを更新可能な車両制御装置であって、
前記制御プログラムは、制御コードと、前記制御コードの実行時に参照される制御用データとを含み、
前記車両制御装置は、
前記制御コードと前記制御用データとの両方を各々格納する第1のメモリ領域と第2のメモリ領域を切り替えて使用可能な不揮発メモリと、
前記書込み装置からの更新要求が、前記制御コードと前記制御用データとの両方の更新が必要か、又は前記制御用データのみの更新かを判定する更新要求判定部とを備え、
前記更新要求判定部は、前記制御用データのみの更新であると判定した場合、現在アクティブな制御プログラムが格納されるいずれかのメモリ領域に受信した制御用データを書き込むことを特徴とする車両制御装置。 - 請求項1に記載の車両制御装置であって、
前記不揮発メモリは、前記制御用データを一時的に記憶する第3のメモリ領域を含み、
前記更新要求判定部は、
前記制御用データのみの更新と判定した場合、受信した制御用データを前記第3のメモリ領域に書き込み、
前記制御用データが前記第3のメモリ領域に正常に書き込まれたことを確認した後に、前記第3のメモリ領域から現在アクティブな制御プログラムが格納されるメモリ領域へ前記受信した制御用データを書き込むことを特徴とする車両制御装置。 - 請求項1に記載の車両制御装置であって、
前記制御コード及び前記制御用データの各々はバージョン情報を有し、
前記更新要求判定部は、前記車両制御装置から受信した制御コードのバージョン情報と更新版の制御コードのバージョン情報とを比較して、更新する対象を判定することを特徴とする車両制御装置。 - 請求項3に記載の車両制御装置であって、
前記更新要求判定部は、
現在アクティブな制御コードのバージョン情報と更新版の制御コードのバージョン情報とを比較し、
両者のバージョンが同じである場合、制御用データのみを更新し、
両者のバージョンが異なる場合、前記制御コードと前記制御用データとの両方を更新することを特徴とする車両制御装置。 - 請求項4に記載の車両制御装置であって、
前記車両制御装置は、制御用データのみを更新する場合、前記不揮発メモリに格納されている現在アクティブな制御プログラムに含まれる制御コードと、更新版の制御用データとの関連付けが正しい場合に、更新版の制御用データを前記不揮発メモリに書き込むことを特徴とする車両制御装置。 - 請求項1に記載の車両制御装置であって、
前記制御用データを前記いずれかのメモリ領域に格納するタイミングは、車両のイグニッションOFFの検出、及び車両の停止中の少なくとも一つであることを特徴とする車両制御装置。 - 請求項1に記載の車両制御装置であって、
前記制御プログラムの更新時に、前記制御コードのバージョン情報及び前記制御用データのバージョン情報の少なくとも一方をユーザに提示するために出力することを特徴とする車両制御装置。 - 書込み装置から提供される更新内容に基づいて、格納している制御プログラムを更新可能な車両制御装置において実行される更新プログラムであって、
前記制御プログラムは、制御コードと、前記制御コードの実行時に参照される制御用データとを含み、
前記車両制御装置は、前記制御コードと前記制御用データとの両方を各々格納する第1のメモリ領域と第2のメモリ領域を切り替えて使用可能な不揮発メモリを有し、
前記更新プログラムは、
前記書込み装置からの更新要求が、前記制御コードと前記制御用データとの両方の更新が必要か、又は前記制御用データのみの更新かを判定する手順と、
前記制御用データのみの更新であると判定した場合、現在アクティブな制御プログラムが格納されるいずれかのメモリ領域に受信した制御用データを書き込む手順とを、前記車両制御装置に実行させるための更新プログラム。 - 車両を制御する制御プログラムを更新するプログラム更新システムであって、
前記車両に搭載され、格納している制御プログラムを更新可能な車両制御装置と、
前記車両に搭載され、前記制御プログラムの更新を制御する書込み装置と、
前記制御プログラムの差分データを含む更新パッケージを前記書込み装置に配信する外部装置とを備え、
前記制御プログラムは、制御コードと、前記制御コードの実行時に参照される制御用データとを含み、
前記車両制御装置は、
前記制御コードと前記制御用データとの両方を各々格納する第1のメモリ領域と第2のメモリ領域を切り替えて使用可能な不揮発メモリと、
前記書込み装置からの更新要求が、前記制御コードと前記制御用データとの両方の更新が必要か、又は前記制御用データのみの更新かを判定する更新要求判定部と、を備え、
前記更新要求判定部は、前記制御用データのみの更新であると判定した場合、現在アクティブな制御プログラムが格納されるいずれかのメモリ領域に受信した制御用データを書き込むことを特徴とするプログラム更新システム。 - 請求項9に記載のプログラム更新システムであって、
少なくともユーザに対して情報を提示する入出力装置を備え、
前記制御プログラムの更新時に、前記制御コードのバージョン情報及び前記制御用データのバージョン情報の少なくとも一方をユーザに提示することを特徴とするプログラム更新システム。 - 車両制御装置に格納される制御プログラムの更新を制御する書込み装置であって、
前記制御プログラムは、制御コードと、前記制御コードの実行時に参照される制御用データとを含み、
前記書込み装置は、
前記車両制御装置から制御プログラムのバージョン情報を取得する手段と、
前記制御プログラムの更新が、前記制御コードと前記制御用データとの両方の更新が必要か、又は前記制御用データのみの更新かを判定する更新要求判定部と、を備え、
前記更新要求判定部は、前記制御用データのみの更新であると判定した場合、現在アクティブな制御プログラムが格納されるいずれかのメモリ領域に受信した制御用データを書き込むことを特徴とする書込み装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/628,506 US12086582B2 (en) | 2019-08-05 | 2020-07-21 | Vehicle controller, updated program, program updating system, and writing device |
CN202080042330.0A CN113939802A (zh) | 2019-08-05 | 2020-07-21 | 车辆控制装置、更新程序、程序更新系统以及写入装置 |
JP2021537683A JP7224472B2 (ja) | 2019-08-05 | 2020-07-21 | 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019143655 | 2019-08-05 | ||
JP2019-143655 | 2019-08-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021024792A1 true WO2021024792A1 (ja) | 2021-02-11 |
Family
ID=74503511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/028222 WO2021024792A1 (ja) | 2019-08-05 | 2020-07-21 | 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12086582B2 (ja) |
JP (1) | JP7224472B2 (ja) |
CN (1) | CN113939802A (ja) |
WO (1) | WO2021024792A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045732B (zh) * | 2019-12-05 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、芯片、设备及存储介质 |
KR20220139152A (ko) * | 2021-04-07 | 2022-10-14 | 현대자동차주식회사 | 차량의 업데이트 관리 장치, 그것의 동작 방법 및 차량 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
JP2002099442A (ja) * | 2000-09-26 | 2002-04-05 | Ricoh Co Ltd | Dsp信号処理装置及びそのdsp信号処理装置を使用したモデム |
JP2006243997A (ja) * | 2005-03-02 | 2006-09-14 | Canon Inc | ダウンロードシステム |
JP2007230317A (ja) * | 2006-02-28 | 2007-09-13 | Hitachi Ltd | ブレーキ制御システム及びそのプログラム更新方法 |
JP2010198307A (ja) * | 2009-02-25 | 2010-09-09 | Hitachi Automotive Systems Ltd | 自動車用制御装置 |
JP2012220990A (ja) * | 2011-04-04 | 2012-11-12 | Fujitsu Ltd | ハイパーバイザ置き換え方法および情報処理装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259207A1 (en) | 2005-04-20 | 2006-11-16 | Denso Corporation | Electronic control system for automobile |
JP4548601B2 (ja) | 2005-04-20 | 2010-09-22 | 株式会社デンソー | 自動車用制御ユニット |
WO2018139296A1 (ja) * | 2017-01-25 | 2018-08-02 | 日立オートモティブシステムズ株式会社 | 車両制御装置およびプログラム更新システム |
JP6755219B2 (ja) * | 2017-07-12 | 2020-09-16 | クラリオン株式会社 | 情報配信システム及び車載装置 |
JP7115429B2 (ja) * | 2018-08-10 | 2022-08-09 | 株式会社デンソー | 車両用マスタ装置、ロールバックの実行制御方法及びロールバックの実行制御プログラム |
JP7124627B2 (ja) * | 2018-10-16 | 2022-08-24 | 株式会社オートネットワーク技術研究所 | 車載更新装置、更新処理プログラム及び、プログラムの更新方法 |
-
2020
- 2020-07-21 WO PCT/JP2020/028222 patent/WO2021024792A1/ja active Application Filing
- 2020-07-21 JP JP2021537683A patent/JP7224472B2/ja active Active
- 2020-07-21 CN CN202080042330.0A patent/CN113939802A/zh active Pending
- 2020-07-21 US US17/628,506 patent/US12086582B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
JP2002099442A (ja) * | 2000-09-26 | 2002-04-05 | Ricoh Co Ltd | Dsp信号処理装置及びそのdsp信号処理装置を使用したモデム |
JP2006243997A (ja) * | 2005-03-02 | 2006-09-14 | Canon Inc | ダウンロードシステム |
JP2007230317A (ja) * | 2006-02-28 | 2007-09-13 | Hitachi Ltd | ブレーキ制御システム及びそのプログラム更新方法 |
JP2010198307A (ja) * | 2009-02-25 | 2010-09-09 | Hitachi Automotive Systems Ltd | 自動車用制御装置 |
JP2012220990A (ja) * | 2011-04-04 | 2012-11-12 | Fujitsu Ltd | ハイパーバイザ置き換え方法および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7224472B2 (ja) | 2023-02-17 |
US12086582B2 (en) | 2024-09-10 |
US20220276851A1 (en) | 2022-09-01 |
JPWO2021024792A1 (ja) | 2021-02-11 |
CN113939802A (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10871959B2 (en) | Vehicle control device and program update system | |
JP6571602B2 (ja) | 車両制御装置、車載ネットワークシステム | |
WO2021024792A1 (ja) | 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置 | |
CN113383390A (zh) | 电子控制装置以及程序更新方法 | |
WO2018105609A1 (ja) | プログラム更新システム、配信装置及びプログラム更新方法 | |
WO2019123747A1 (ja) | 自動車用電子制御装置及びその制御方法 | |
US20220391192A1 (en) | Ota master, center, system, method, non-transitory storage medium, and vehicle | |
JP7298427B2 (ja) | プログラム更新システムおよびプログラム更新方法 | |
KR102610730B1 (ko) | 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체 | |
US11449329B2 (en) | Vehicle control device and program update system | |
CN114040360B (zh) | 服务器、更新管理方法、非临时存储介质、软件更新装置、带服务器及软件更新装置的系统 | |
JP7540394B2 (ja) | Otaマスタ、システム、方法、プログラム、及び車両 | |
EP3923139B1 (en) | Electronic control device and method for using non-volatile memory | |
JP2018194887A (ja) | 車両用サービス管理装置及び車両用サービス管理プログラム | |
US20220244946A1 (en) | Ota master, update control method, non-transitory storage medium, and vehicle | |
US20220391193A1 (en) | Ota master, system, method, non-transitory storage medium, and vehicle | |
KR20200121657A (ko) | 차량의 업데이트 제공 장치 및 방법 | |
CN116149906A (zh) | 车辆里程信息的备份方法、装置、车辆及存储介质 | |
US11995429B2 (en) | Software update device, update control method, non-transitory storage medium, and server | |
US20240004633A1 (en) | Electronic control device | |
JP2013192092A (ja) | 車載装置 | |
CN115280280A (zh) | 用于朝向车辆的车载计算机的存储器更新包括物理地址的软件的更新方法和更新装置 | |
US20230070879A1 (en) | Information Processing Device, Program Update System, and Program Update Method | |
US11843612B2 (en) | Communication device management device, system, method, and non-transitory computer-readable recording medium | |
KR20230025107A (ko) | 차량 소프트웨어 관리 시스템 및 그의 소프트웨어 복구 방법 |
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: 20849983 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021537683 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20849983 Country of ref document: EP Kind code of ref document: A1 |