WO2023171307A1 - 車載装置、プログラム、及びプログラムの更新方法 - Google Patents

車載装置、プログラム、及びプログラムの更新方法 Download PDF

Info

Publication number
WO2023171307A1
WO2023171307A1 PCT/JP2023/005620 JP2023005620W WO2023171307A1 WO 2023171307 A1 WO2023171307 A1 WO 2023171307A1 JP 2023005620 W JP2023005620 W JP 2023005620W WO 2023171307 A1 WO2023171307 A1 WO 2023171307A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
vehicle
program
ecu
processing
Prior art date
Application number
PCT/JP2023/005620
Other languages
English (en)
French (fr)
Inventor
孝之 塩澤
健 古戸
博志 立石
Original Assignee
株式会社オートネットワーク技術研究所
住友電装株式会社
住友電気工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社オートネットワーク技術研究所, 住友電装株式会社, 住友電気工業株式会社 filed Critical 株式会社オートネットワーク技術研究所
Publication of WO2023171307A1 publication Critical patent/WO2023171307A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric 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/02Electric 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present disclosure relates to an in-vehicle device, a program, and a program update method.
  • This application claims priority based on Japanese Application No. 2022-036515 filed on March 9, 2022, and incorporates all the contents described in the said Japanese application.
  • Vehicles are equipped with an ECU (Electronic Control Unit) for controlling in-vehicle equipment such as a drive control system such as engine control, and a body system such as air conditioner control.
  • the ECU includes an arithmetic processing unit such as an MPU, a rewritable non-volatile storage unit such as an EEPROM, and a communication unit for communicating with other ECUs, and is capable of reading and executing control programs stored in the storage unit. controls on-vehicle equipment.
  • the vehicle is equipped with a communication device (update device) equipped with a wireless communication function, and communicates with a program providing device connected to a network outside the vehicle via the communication device, and updates the program providing device from the program providing device.
  • the control program of the ECU can be downloaded and received) and the control program of the ECU can be updated (for example, see Patent Document 1).
  • An in-vehicle device is an in-vehicle device that is communicably connected to an update device that performs processing for updating a program in an in-vehicle ECU installed in a vehicle using an update program acquired from an external server outside the vehicle.
  • the control unit includes a control unit that performs processing for updating a program in the update device, and when the update device is included in an update target by the update program, the control unit controls the update performed by the update device. at least part of the processing for the
  • FIG. 1 is a schematic diagram illustrating a configuration of an in-vehicle update system according to a first embodiment
  • FIG. FIG. 2 is a block diagram illustrating the physical configuration of a proxy ECU.
  • FIG. 2 is an explanatory diagram illustrating vehicle configuration information.
  • FIG. 2 is an explanatory diagram illustrating state transitions of an update device, an in-vehicle ECU to be updated, a substitute ECU, etc. in a program update process according to the first embodiment.
  • FIG. 2 is an explanatory diagram illustrating the flow (sequence) of processing by the update device, the in-vehicle ECU to be updated, the substitute ECU, etc.
  • FIG. 7 is a flowchart illustrating processing of a control unit of a proxy ECU and a control unit of an update device according to the first embodiment.
  • FIG. 2 is a schematic diagram illustrating the configuration of an in-vehicle update system according to a second embodiment.
  • FIG. 7 is an explanatory diagram illustrating state transitions of an update device, an in-vehicle ECU to be updated, a substitute ECU, etc. in a program update process according to a second embodiment.
  • FIG. 7 is an explanatory diagram illustrating a process flow (sequence) by an update device, an in-vehicle ECU to be updated, a substitute ECU, etc. according to a second embodiment; 7 is a flowchart illustrating processing of a control unit of a proxy ECU and a control unit of an update device according to a second embodiment.
  • Patent Document 1 has a problem in that it does not take any consideration into the process of updating the control program itself applied to the communication device (updating device).
  • An object of the present disclosure is to enable an update device that performs processing to update a program of an in-vehicle ECU to efficiently update a program applied to the update itself. Provides in-vehicle devices, etc.
  • an update device that performs a process of updating a program of an in-vehicle ECU efficiently performs an update process of the program when performing a process of updating a program applied to the update itself. It is possible to provide an in-vehicle device etc. that can do this.
  • An in-vehicle device is communicably connected to an update device that performs processing for updating a program in an in-vehicle ECU installed in a vehicle using an update program acquired from an external server outside the vehicle.
  • the in-vehicle device includes a control unit that performs processing for updating a program in the update device, and the control unit is configured to update the program in the update device when the update device is included in the update target by the update program. performs at least a portion of the processing performed on behalf of the client;
  • the control unit of the in-vehicle device can act as a proxy for the processing of the updating device, and can instruct the updating device to perform processing related to updating the updating device itself (its own device).
  • the update device can perform processing related to updating a program for its own device based on an instruction from an in-vehicle device (proxy ECU).
  • the update device updates its own device (the update device itself)
  • there is a concern that processing contents such as decision branching during the update will become complicated, so
  • the update device take charge of program updates (applying update programs, etc.) in its own device, the program update process in the update device can be performed smoothly.
  • the proxy processing includes activation processing of applying the update program acquired by the update device to the update device itself.
  • the update device when the update device is the update target, the update device is activated based on an instruction from the in-vehicle device (proxy ECU), so that the update-related process can be smoothly performed.
  • the proxy processing includes rollback processing according to the result of the activation processing.
  • the in-vehicle device after the update device performs activation processing in response to an activation instruction from the in-vehicle device (proxy ECU), the in-vehicle device (proxy ECU) performs the activation process (after application of the update program). Processes such as operation confirmation (abnormality detection sequence) are performed on the updated device.
  • operation confirmation abnormality detection sequence
  • the in-vehicle device proxy ECU
  • the update device that has received the rollback instruction from the in-vehicle device (proxy ECU) performs the rollback process to return to the original program before applying the update program, so even if the activation process fails, the update device will not return to the original program. If the updating device can execute the program and has the function of controlling the vehicle, it can continue controlling the vehicle.
  • information that identifies the in-vehicle device as a proxy ECU that performs the proxy process is stored in advance in the storage unit of the update device.
  • the in-vehicle device substantially identifies the in-vehicle device using an ECU-ID, an IP address, etc., or a CAN-ID (message ID) for communicating with the in-vehicle device (proxy ECU). may be specified).
  • the update device can: There is no need to determine (select) each time an ECU that will serve as an in-vehicle device that will act as a proxy for the processing of the update device, and it is possible to quickly start the update process of the update device. Further, since it is sufficient to provide only one ECU with a function as an in-vehicle device (proxy ECU) that performs processing on behalf of the update device, it is possible to save memory in other in-vehicle ECUs.
  • control unit obtains an instruction signal indicating an instruction to perform the processing for the proxy from the update device, and responds to the proxy according to the obtained instruction signal. Start the process.
  • the control unit of the in-vehicle device acquires an instruction signal (proxy instruction signal) indicating an instruction to perform processing on behalf of the in-vehicle device (proxy ECU) from the update device. Represents the processing performed by the update device.
  • the update device can perform the updating process for the in-vehicle ECU by itself if the update device is not the update target, and can have the in-vehicle device (proxy ECU) perform the update process on its behalf only if the update device is the update target.
  • the in-vehicle device does not perform processing on behalf of the update device every time the update device acquires an update program, but acts on behalf of the update device only when the update device is the update target, so there is no unnecessary processing. It is possible to perform update processing efficiently without having to act as a proxy for the processing of the update device.
  • the proxy processing includes processing for updating a program of the in-vehicle ECU, and the update device relays data transmitted and received between the in-vehicle ECUs.
  • the control unit updates the program of the in-vehicle ECU depending on whether the update device maintains the relay function. Different processing to do so.
  • the control unit of the in-vehicle device controls the update device. It is determined whether or not to maintain the relay function, and the process for updating the program of the in-vehicle ECU is varied depending on the determination result. Therefore, even if the processing performed by the control unit includes processing for updating the program of the in-vehicle ECU, the update process for the in-vehicle ECU to be updated depends on whether or not the relay function of the update device is maintained. , different processes can be performed, and appropriate proxy processing can be performed according to the update process for the update device.
  • the in-vehicle device when the update device maintains the relay function, the in-vehicle device (proxy ECU) can directly instruct the in-vehicle ECU to perform activation processing or rollback processing. Since the in-vehicle device (proxy ECU) can cause the update device and the in-vehicle ECU to execute activation processing or rollback processing at the same time, it is possible to quickly perform update-related processing through one-step processing.
  • the update device is connected to a communication line on the external server side and a communication line on the in-vehicle ECU side, and is connected to the communication line on the external server side. be done.
  • the in-vehicle device since the in-vehicle device (proxy ECU) is connected to the communication line on the external server side, it can obtain the update program sent from the external server without going through the update device.
  • the in-vehicle device (proxy ECU) connected to the communication line on the external server side is, for example, an external communication device that communicates with the external server or a security device that monitors unauthorized communication, etc. between the external server and the update device. It may also be a device installed in or a device that functions.
  • control unit acquires the update program from an external server without going through the update device, and performs the processing on behalf of the user based on the acquired update program.
  • a request signal is output to the update device requesting the update device to start.
  • the in-vehicle device acquires the update program without going through the update device, so it determines whether the update device is the update target or not, independently (separately) from the processing by the update device. It is possible to determine whether As a result, when the update device is an update target, the update device sends an instruction signal (proxy instruction signals) can be transmitted. Since the in-vehicle device (proxy ECU) acquires the update program before the update device, it is possible to determine whether the update device is an update target.
  • the update device instructs the in-vehicle ECU to perform activation processing, and then sends an instruction signal (proxy instruction signal) indicating an instruction to the in-vehicle device (proxy ECU) to perform processing on behalf of the in-vehicle ECU based on the request signal.
  • proxy instruction signal an instruction signal indicating an instruction to the in-vehicle device (proxy ECU) to perform processing on behalf of the in-vehicle ECU based on the request signal.
  • an external communication device for wirelessly communicating with the external server is connected to the communication line on the external server side, and is included in the external communication device.
  • the in-vehicle device may be included in the outside-vehicle communication device, that is, configured as a part of the outside-vehicle communication device.
  • these devices can be housed in the same housing, making it lighter and more compact than if the external communication device and the in-vehicle device were configured separately. can be converted into
  • a program according to one aspect of the present disclosure is a computer that is communicably connected to an update device that performs processing for updating a program of an in-vehicle ECU installed in a vehicle using an update program acquired from an external server outside the vehicle. performs a process for updating a program in the update device, and when the update device is included in the update target by the update program, at least a part of the update process performed in the update device is performed on behalf of the update device; Execute the process.
  • the update device can smoothly perform the program update process in the update device by having the in-vehicle device (proxy ECU) take charge of updating the program (applying the update program, etc.) in the device itself. can.
  • a program update method includes a program that is communicably connected to an update device that performs processing for updating a program of an in-vehicle ECU installed in a vehicle using an update program obtained from an external server outside the vehicle. performs a process for updating a program in the update device on a computer to be updated, and when the update device is included in the update target by the update program, at least part of the update process performed by the update device; Executes processing on behalf of.
  • the update device can smoothly perform the program update process in the update device by having the in-vehicle device (proxy ECU) take charge of updating the program (applying the update program, etc.) in the device itself. can.
  • FIG. 1 is a schematic diagram showing the configuration of an in-vehicle update system S according to a first embodiment.
  • FIG. 2 is a block diagram illustrating the physical configuration of the proxy ECU 2.
  • the in-vehicle update system S includes an out-of-vehicle communication device 1 and an update device 3 mounted on a vehicle C, and updates an update program obtained from an external server S1 (program providing device, OTA server) connected via an out-of-vehicle network N.
  • the information is transmitted to an in-vehicle ECU 4 (Electronic Control Unit) mounted on vehicle C.
  • OTA server program providing device
  • the in-vehicle update system S also includes a communication line on the in-vehicle ECU side (in-vehicle communication line 51) that connects the update device 3 and the in-vehicle ECU, and an external server side communication line that connects the update device 3 and the external communication device.
  • a vehicle-mounted device proxy ECU 2 that performs processing on behalf of the updating device 3 is connected to the vehicle-side communication line 52.
  • the external server S1 is a computer such as a server connected to an external network N such as the Internet or a public line network, and includes a storage section S11 such as RAM (Random Access Memory), ROM (Read Only Memory), or a hard disk. , corresponds to a program providing device outside the vehicle.
  • a program or data for controlling the in-vehicle ECU 4 created by a manufacturer of the in-vehicle ECU 4 is stored in a storage unit S11.
  • the program or data is transmitted to the vehicle C as an update program as described later, and is used to update the program or data of the in-vehicle ECU 4 mounted on the vehicle C.
  • the external server S1 (program providing device) configured in this manner is also referred to as an OTA (Over The Air) server.
  • the proxy ECU 2 is connected to the vehicle outside communication line 52 and can acquire the update program transmitted from the external server S1 without going through the update device 3.
  • the proxy ECU 2 determines whether the update device 3 is an update target based on the acquired update program.
  • the proxy ECU 2 outputs a request signal requesting the update device to start processing on behalf of the update device 3.
  • the proxy ECU 2 instructs the update device 3 to activate, checks the operation of the update device 3 after the activation process, and instructs a rollback when an operational defect is detected.
  • the update device 3 functions as an OTA master that transmits the update program acquired from the external server S1 to the in-vehicle ECU 4 to be updated, and sends an activation instruction for applying the transmitted update program to the in-vehicle ECU 4.
  • the update device 3 functioning as an OTA master applies the update program to its own device (activation process)
  • it transmits a proxy instruction signal to the proxy ECU 2 indicating an instruction to perform processing on behalf of the update device 3, and activates the proxy ECU 2.
  • the in-vehicle ECU 4 installed in the vehicle C acquires the update program transmitted by wireless communication from the external server S1 via the update device 3, and applies the update program in accordance with the activation instruction (activation process). , updates (reproduces) the program executed by its own ECU.
  • the program will be described as including a program code including a control syntax etc. for the in-vehicle ECU 4 to perform processing, and an external file in which data to be referred to when executing the program code is written.
  • an external file in which these program codes and data are written is transmitted from the external server S1 as, for example, an encrypted archive file.
  • external server S1 When transmitting an update program, external server S1 generates a package including the update program, and transmits the generated package to vehicle C.
  • the package includes, for example, package information (campaign information) that is information regarding program updates, information (target information) regarding the in-vehicle ECU 4 to be updated, and an update program applied to the in-vehicle ECU 4 to be updated.
  • the vehicle C is equipped with an external communication device 1, an update device 3, a display device (not shown), and a plurality of in-vehicle ECUs 4 for controlling various in-vehicle devices.
  • the external communication device 1 and the update device 3 are communicably connected, for example, by a harness such as a serial cable.
  • the update device 3 and the in-vehicle ECU 4 are communicably connected via an in-vehicle network 5 compatible with a communication protocol such as CAN (Control Area Network) or Ethernet (registered trademark).
  • the external communication device 1 includes an external communication section (not shown) and an input/output I/F (not shown) (interface) for communicating with the update device 3.
  • the external communication unit is a communication device for wireless communication using mobile communication protocols such as LTE (registered trademark), 4G, 5G, and WiFi (registered trademark), and includes an antenna 11 connected to the external communication unit. Sends and receives data to and from the external server S1 via the external server S1. Communication between the outside communication device 1 and the external server S1 is performed via an outside network N such as a public line network or the Internet.
  • the input/output I/F of the external communication device 1 is a communication interface for serial communication with the update device 3, for example.
  • the external communication device 1 and the update device 3 communicate with each other via a harness such as a serial cable connected between the input/output I/F.
  • the external communication device 1 is a separate device from the update device 3, and these devices are communicably connected through an input/output I/F, but the present invention is not limited thereto.
  • the external communication device 1 may be built into the update device 3 as a component of the update device 3.
  • the external communication device 1 and the update device 3 may be connected by an in-vehicle network 5 such as CAN.
  • the proxy ECU 2 includes a control section 20, a storage section 21, and an in-vehicle communication section 22.
  • the proxy ECU 2 functions, for example, as a security device that monitors unauthorized communications, except when a proxy instruction signal is transmitted from the update device 3.
  • the proxy ECU 2 may be built into the external communication device 1 as a component of the external communication device 1 .
  • the control unit 20 of the substitute ECU 2 is configured by a CPU (Central Processing Unit) or an MPU (Micro Processing Unit), and is capable of reading and executing a control program P (program product) and data stored in advance in a storage unit. Accordingly, various control processes, calculation processes, etc. are performed.
  • a CPU Central Processing Unit
  • MPU Micro Processing Unit
  • the storage unit 21 of the substitute ECU 2 is composed of a volatile memory element such as a RAM (Random Access Memory), or a non-volatile memory element such as a ROM (Read Only Memory), an EEPROM (Electrically Erasable Programmable ROM), or a flash memory. Ru.
  • the storage unit 21 stores a control program for the proxy ECU 2. Furthermore, the storage unit 21 stores an update program obtained from the external server S1.
  • the control program P (program product) stored in the storage unit 21 may be one that stores the control program P (program product) read from the recording medium 211 that can be read by the updating device 3 . Alternatively, the control program P may be downloaded from an external computer (not shown) connected to a communication network (not shown) and stored in the storage unit. Further, the storage unit 21 of the proxy ECU 2 may store a flag value or a setting file indicating that the ECU itself is an ECU having a function of acting as a proxy.
  • the in-vehicle communication unit 22 is an input/output interface using a communication protocol such as CAN or Ethernet (registered trademark), and the control unit is connected to the outside communication line 52 via the in-vehicle communication unit 22. It communicates with the outside communication device 1 or the update device 3.
  • a communication protocol such as CAN or Ethernet (registered trademark)
  • the control unit is connected to the outside communication line 52 via the in-vehicle communication unit 22. It communicates with the outside communication device 1 or the update device 3.
  • the update device 3 includes a control section, a storage section (a first storage section, a second storage section), an input/output I/F, and an in-vehicle communication section (all not shown).
  • the update device 3 acquires the update program (package) that the outside communication device 1 receives from the external server S1 via wireless communication from the outside communication device 1, and updates the update program to a predetermined in-vehicle ECU 4 (update) via the in-vehicle network 5.
  • the information is configured to be transmitted to the target in-vehicle ECU 4). That is, the update device 3 functions as an OTA master (reprogramming master) that controls program updates in the in-vehicle ECU 4 to be updated.
  • the update device 3 oversees buses (segments) of a plurality of systems, such as a control system in-vehicle ECU 4, a safety system in-vehicle ECU 4, and a body system in-vehicle ECU 4, and updates the in-vehicle ECUs 4 between these buses (segments).
  • This is a gateway (in-vehicle relay device) that relays communications. That is, each of the in-vehicle communication lines 51 constituting the plurality of buses (segments) is connected to the update device 3, and the in-vehicle network 5 is connected to the in-vehicle communication line 51 (segment) that is aggregated by the update device 3. is configured.
  • the update device 3 functions as a CAN gateway in relaying the CAN protocol, and functions as a layer 2 switch or layer 3 switch in relaying the TCP/IP protocol. In addition to relaying communication, the update device 3 also functions as a power distribution device that distributes and relays power output from a power supply device such as a secondary battery, and supplies power to on-vehicle devices such as actuators connected to the update device 3. It may be a functional PLB (Power Lan Box). Alternatively, the update device 3 may be configured as a functional part of a body ECU that controls the entire vehicle C. Alternatively, the update device 3 may be an integrated ECU that is configured with a central control device such as a vehicle computer and performs overall control of the vehicle C, for example.
  • a power supply device such as a secondary battery
  • PLB Power Lan Box
  • the update device 3 may be configured as a functional part of a body ECU that controls the entire vehicle C.
  • the update device 3 may be an integrated ECU that is configured with a central control device such as
  • the control unit of the update device 3 is composed of a CPU (Central Processing Unit) or MPU (Micro Processing Unit), etc., and reads and executes the control program and data of the update device 3 stored in advance in the storage unit. , various control processing, calculation processing, etc.
  • CPU Central Processing Unit
  • MPU Micro Processing Unit
  • the storage section of the update device 3 is composed of two storage areas, a first storage section and a second storage section, and each of these first storage section and second storage section is a volatile memory such as RAM (Random Access Memory). or a nonvolatile memory element such as ROM (Read Only Memory), EEPROM (Electrically Erasable Programmable ROM), or flash memory.
  • a control program and data to be referred to during processing are stored in advance in the first storage unit and the second storage unit.
  • the control program is the target to be updated by the update program obtained from the external server S1.
  • the control program stored in the storage unit (first storage unit, second storage unit) may be a control program (program product) read from a recording medium readable by the updating device 3. .
  • control program may be downloaded from an external computer (not shown) connected to a communication network (not shown) and stored in the storage unit.
  • the storage unit of the update device 3 contains the ECU-ID, IP address, etc. that identifies the proxy ECU, or the CAN-ID (message ID) for communicating with the in-vehicle device (proxy ECU). may also be stored.
  • the storage unit (first storage unit, second storage unit) of the update device 3 stores information regarding the versions of two programs (the control program of the update device 3), the current version and the old version, and the currently executed (applied) program.
  • Information regarding the area (operation area) in which the control program is stored is stored. That is, when the control program stored in the first storage section (first surface) is currently being executed, the first storage section stores that the operating surface is the first storage section (first surface). be done. In this case, the non-operating surface is stored as the second storage section (second surface).
  • the current version of the control program is stored in the first storage section, which is the operational side.
  • An old version of the control program is stored in the second storage section, which is a non-operating surface.
  • the second storage section which is a non-operating surface, may not store an old version of the control program, etc., and may be a storage area that has free capacity.
  • the non-operating surface since the non-operating surface is in a state where the free storage area or the old version of the control program, etc. is stored, it is possible to write the new version of the control program to the non-operating surface at the time of update. , it is possible to guarantee that you can revert to the previous version.
  • the input/output I/F of the update device 3 is, like the input/output I/F of the external communication device 1, a communication interface for serial communication, for example.
  • the update device 3 is communicably connected to a display device and an IG switch (not shown) via the input/output I/F.
  • the in-vehicle communication unit of the update device 3 is an input/output interface using a communication protocol such as CAN or Ethernet (registered trademark), and the control unit is connected to the in-vehicle network 5 via the in-vehicle communication unit. It mutually communicates with in-vehicle equipment such as the in-vehicle ECU 4 or other relay devices.
  • a plurality of in-vehicle communication units (four in this embodiment) are provided, and three of the four in-vehicle communication units have an in-vehicle communication line 51 that constitutes the in-vehicle network 5, respectively. (segments) are connected.
  • the in-vehicle network 5 can be divided into a plurality of segments, and each in-vehicle ECU 4 can be configured according to the functions of the in-vehicle ECU 4 (control system function, safety system function, body system function), for example. Connect to each segment.
  • the in-vehicle communication unit to which the in-vehicle communication line is not connected is connected to the outside communication line 52, and the in-vehicle communication unit connects to the outside communication device via the outside communication line 52. 1 or a substitute ECU 2.
  • the in-vehicle ECU 4 includes a control section, a storage section, and an in-vehicle communication section (not shown) similarly to the proxy ECU 2.
  • the storage unit is composed of volatile memory elements such as RAM (Random Access Memory), or non-volatile memory elements such as ROM (Read Only Memory), EEPROM (Electrically Erasable Programmable ROM), or flash memory. Programs or data for the ECU 4 are stored. Note that, similarly to the storage section of the update device 3, the storage section of the in-vehicle ECU 4 includes two storage areas: a first storage section and a second storage section. This program or data is the target to be updated by the update program transmitted from the program providing device and relayed by the update device 3.
  • the in-vehicle communication unit of the in-vehicle ECU 4 includes, for example, a CAN transceiver or an Ethernet PHY unit, and communicates with the update device 3 via the in-vehicle communication unit.
  • FIG. 3 is an explanatory diagram illustrating vehicle configuration information.
  • the update device 3 periodically, periodically or constantly communicates with all the in-vehicle ECUs 4 mounted on the vehicle C (self-vehicle) and acquires information regarding these in-vehicle ECUs 4.
  • the update device 3 regularly updates all in-vehicle ECUs 4 or a specific in-vehicle ECU 4 mounted on the vehicle C, for example, when the IG switch is turned on or off, or at a predetermined timing. , requests to transmit the configuration information of its own ECU and the update history of the configuration information.
  • the update device 3 acquires the configuration information and update history transmitted from each of the in-vehicle ECUs 4, aggregates the configuration information, etc., and stores the aggregated configuration information and update history as vehicle configuration information.
  • the update device 3 acquires and aggregates the configuration information and update history that each of the in-vehicle ECUs 4 voluntarily transmitted, without requesting the in-vehicle ECU 4 to transmit the configuration information and update history, and stores the information in the storage unit. It may be something to remember. Alternatively, the update device 3 may transmit the update program to the in-vehicle ECU 4, and each time the transmission is completed, the configuration information (vehicle configuration information) may be changed based on the transmitted update program. The update device 3 generates vehicle configuration information in a table format, for example, by aggregating the information regarding the individual in-vehicle ECUs 4 acquired from the plurality of in-vehicle ECUs 4, and stores it in the storage unit of the update device 3. The storage unit that stores the vehicle configuration information may be one that stores the vehicle configuration information redundantly in the first storage unit, the second storage unit, or both the first storage unit and the second storage unit.
  • the vehicle configuration information stored in a table format includes management items (fields) such as the manufacturing number (serial number) of the in-vehicle ECU 4, the ECU part number (model number), the software part number, the current version of the program, the previous version, It includes operational aspects, status (repro status), segment number, and update target (campaign number), and is managed in association with an ECU-ID using a serial number set so as not to overlap in each in-vehicle ECU 4.
  • the ECU-ID management item stores identification numbers such as serial numbers for uniquely identifying each of the on-vehicle ECUs 4 mounted on the vehicle C.
  • the vehicle configuration information may include a MAC (Media Access Control) address and an IP address of the in-vehicle ECU 4 as management items (fields).
  • the manufacturing number is a number given when the in-vehicle ECU 4 is manufactured, and is composed of a lot number indicating the production base, etc., and a serial number at the time of manufacturing, etc., and is a unique number that can uniquely identify the ECU. It's a number.
  • the ECU part number (model number) is a number that identifies the type of the in-vehicle ECU 4, and is, for example, a part number.
  • the software part number is a number for specifying the type of software of the update program (control program P to be updated).
  • the update device 3 is installed in the own vehicle by comparing the serial number or ECU part number included in the target information acquired from the external server S1 with the serial number or ECU part number included in the vehicle configuration information.
  • the in-vehicle ECU 4 to be updated may be specified.
  • the current version is the version number of the program currently being executed (applied) by the in-vehicle ECU 4, and is the version number of the program stored on the operational surface.
  • the old version is the version number of the program that was previously executed (applied) by the in-vehicle ECU 4, and is the version number of the program stored in the non-operational surface (storage area that is not the operational surface).
  • the operational aspect is information that specifies which storage area (surface 1: first storage section or surface 2: second storage section) in which the program being executed (applied) by the in-vehicle ECU 4 is currently stored. It is.
  • the status management item stores status information (repro status) regarding application of the update program in the corresponding in-vehicle ECU 4 (ECU-ID of the same record).
  • the update device 3 updates the status (state management items) of each in-vehicle ECU 4 by communicating with the in-vehicle ECU 4 to which the activation instruction is sent and acquiring status information (repro status) of the in-vehicle ECU 4. It may be. Thereby, the update device 3 can collect, store, and manage the state information (repro status) in each of the in-vehicle ECUs 4 after the activation process.
  • the update device 3 may refer to or update these data when installing, activating, and rolling back a new version of the program during update.
  • the segment number management item stores the number of the in-vehicle communication line 51 (segment) to which the corresponding in-vehicle ECU 4 is connected.
  • the number of the in-vehicle communication line 51 (segment) corresponds to the number (communication port number) of each of the plurality of in-vehicle communication units included in the update device 3.
  • the update device 3 can specify each in-vehicle ECU 4 that is directly connected to each in-vehicle communication section 22 in the update device 3 via the in-vehicle communication line 51 (segment).
  • a campaign number is stored for the in-vehicle ECU 4 that is the target of the current update (campaign). For example, when performing a group update in which a plurality of in-vehicle ECUs 4 are updated at the same time, it is necessary to determine consistency based on a set of versions of the plurality of in-vehicle ECUs 4 to be updated (campaign targets).
  • the in-vehicle ECU 4 that is the target of this update is stored.
  • the field of the in-vehicle ECU 4 that is not subject to update may be left blank (a null value is stored), for example.
  • information regarding a plurality of in-vehicle ECUs 4 (ECU part number, software version, etc.) whose campaign number is stored in the field to be updated may be extracted and the list may be managed in a separate table.
  • FIG. 4 is an explanatory diagram illustrating state transitions of the update device 3, the in-vehicle ECU 4 to be updated, the substitute ECU 2, etc. in the program update process according to the first embodiment.
  • the state before storing the update program and the state after storing the update program are shown with the display forms reversed.
  • the update device 3 and the in-vehicle ECU 4 are executing the control program P stored on the operational surface.
  • the updating device 3 stores the update program for the own device acquired from the external server S1 on the non-operating surface of the own device, and also transmits the update program for the in-vehicle ECU 4 to the in-vehicle ECU 4, thereby updating the update device 3 and the in-vehicle ECU 4. Update programs are stored on the non-operating surface.
  • the update device 3 transmits a proxy instruction to the proxy ECU 2 and also transmits an activation instruction to the in-vehicle ECU 4 to be updated.
  • the proxy ECU 2 starts a processing sequence and transmits an activation instruction to the update device 3.
  • the proxy ECU 2 detects whether or not there is an operational defect in the update device 3 that has performed the activation process.
  • the proxy ECU 2 When the proxy ECU 2 detects an operational defect in the update device 3 after the activation process (operation defect: present), it transmits a rollback instruction to the update device 3.
  • the update device 3 that has received the rollback instruction from the proxy ECU 2 performs rollback processing by executing the original program before applying the update program.
  • the update device 3 that performs rollback processing and executes the original program before applying the update program transmits a rollback instruction to the in-vehicle ECU 4 to be updated. Note that if the update device 3 retains a communication relay function during update processing, the proxy ECU 2 may transmit a rollback instruction to the in-vehicle ECU 4 via the relay function of the update device 3.
  • the update device 3 that has received the rollback instruction from the proxy ECU 2 performs rollback processing by executing the original program before applying the update program. Thereby, the update device 3 and the in-vehicle ECU 4 execute the original program before the update program is applied.
  • the activation process and rollback process are performed in two stages for the update device 3 and the in-vehicle ECU 4 that are the update targets.
  • a series of processes related to updating programs to the update device 3 and the in-vehicle ECU 4 are performed during a period in which the vehicle C is prohibited from entering the starting state, such as a period in which engine starting or traction motor drive is prohibited. conduct. By performing this during the prohibition period, it is possible to prevent the engine from being started in a state where a temporary inconsistency (version difference) has occurred between the applied programs.
  • the update device 3 When performing a series of processes related to the update program during a period in which the vehicle C is prohibited from being activated, the update device 3 receives an on signal output from the IG switch via the input/output I/F, etc. For example, it may be temporarily invalidated by performing mask processing or the like.
  • FIG. 5 is an explanatory diagram illustrating the flow (sequence) of processing by the update device 3, the in-vehicle ECU 4 to be updated, the substitute ECU 2, etc. according to the first embodiment.
  • the external server S1 OTA server
  • the update device 3 OTA master
  • the in-vehicle ECU 4 to be updated ( The processing sequences of the target ECU) and the substitute ECU 2 will be explained.
  • the update device 3 obtains an update program from the external server S1 (S01). For example, the update device 3 accesses the external server S1 using the identification number (VIN: Vehicle Identification Number) of the vehicle C (own vehicle) in which the update device 3 is installed, and updates the own vehicle from the external server S1. Get the package that contains the updates that are applied.
  • the package includes, for example, package information (campaign information) that is information about program updates, information (target information) about the update device 3 and in-vehicle ECU 4 that are the targets of the update, and information about the update device 3 and the in-vehicle ECU 4 that are the targets of the program update. Contains applicable updates.
  • the update device 3 stores an update program for its own device (S02).
  • the update device 3 stores an update program for its own device in a storage area (storage unit) that is a non-operating surface.
  • the update device 3 includes a first storage section and a second storage section as storage areas for storing programs. For example, if the program currently being executed is the first storage section, the first storage section corresponds to the operational aspect. In this case, in the second storage section, which is a non-operating surface, a program of an earlier version (an old version) than the program currently being executed is stored as a backup.
  • the update device 3 stores the update program for its own device obtained from the external server S1 in the second storage section, which is a non-operating surface. Thereby, the program currently being executed can maintain the state stored in the first storage unit without being overwritten.
  • the proxy ECU 2 obtains the update program from the external server S1 (S03). As described above, the proxy ECU 2 is connected to the same outside communication line 52 as the outside communication device 1, and when the update program is transmitted from the external server to the update device 3 via the outside communication line 52, The proxy ECU 2 can also receive the update program without going through the update device 3. For example, when an update program from an external server is transmitted using multicast, a plurality of communication nodes including the proxy ECU 2 and the update device 3 may simultaneously acquire the update program. In this way, the proxy ECU 2 acquires the update program by confirming the communication between the external communication device 1 and the update device 3 when the update device 3 acquires the update program. In the present embodiment, the proxy ECU 2 receives the update program without going through the update device 3; however, the present invention is not limited to this, and the substitute ECU 2 may acquire the update program from the update device 3.
  • the proxy ECU 2 transmits a request signal to the update device 3 (S04).
  • the proxy ECU 2 determines whether the update device 3 is an update target based on the acquired update program, and if the update device 3 is an update target, starts processing on behalf of the update device 3. , outputs a request signal requesting the update device.
  • the update device 3 outputs (sends) an update program for the in-vehicle ECU 4 to the in-vehicle ECU 4 to be updated (S05).
  • the update device 3 specifies the in-vehicle ECU 4 to be updated based on the target information acquired from the external server S1, and transmits an update program for the in-vehicle ECU 4 to the specified in-vehicle ECU 4.
  • the in-vehicle ECU 4 to be updated stores the update program acquired (received) from the update device 3 (S06). Similarly to the update device 3, the in-vehicle ECU 4 to be updated stores the acquired update program on the non-operating surface to avoid overwriting the program currently being executed (stored on the operating surface). can do.
  • the update device 3 transmits a proxy instruction signal to the proxy ECU 2 (S07).
  • the update device 3 When the update device 3 has acquired (received) the request signal from the proxy ECU 2, it transmits a proxy instruction signal indicating an instruction to perform processing on behalf of the update device 3 to the proxy ECU 2 that sent the request signal.
  • the proxy ECU 2 that has responded to the proxy instruction signal from the update device 3 uses the proxy instruction signal as a trigger to start a processing routine that acts as a proxy for the update device 3, for example.
  • the proxy ECU 2 functions as an activation instruction section that issues an activation instruction to the update device 3, an abnormality detection section, and a recovery control section for the update device 3 that has performed the activation process.
  • the update device 3 outputs (sends) an activation instruction to the in-vehicle ECU 4 to be updated (S08).
  • the update device 3 outputs an activation instruction to each of the in-vehicle ECUs 4 to be updated, and causes these in-vehicle ECUs 4 to execute an activation process.
  • the in-vehicle ECU 4 to be updated performs activation processing in response to the activation instruction output from the update device 3 (S09).
  • the in-vehicle ECU 4 that has acquired (received) the activation instruction output from the update device 3 performs an activation process to apply the update program by restarting the update program using the storage area in which the update program is stored as an operating surface.
  • the proxy ECU 2 outputs (sends) an activation instruction to the update device 3 (S10).
  • the update device 3 performs activation processing in response to the activation instruction output from the proxy ECU 2 (S11).
  • the update device 3 that has acquired (received) the activation instruction output from the proxy ECU 2 performs an activation process to apply the update program by rebooting the storage area in which the update program is stored as an operating surface.
  • the proxy ECU 2 performs operation confirmation (operation defect detection) processing for the update device 3 that has undergone the activation processing (S12).
  • the proxy ECU 2 abnormality detection unit
  • the substitute ECU 2 sends a test signal for detecting malfunctions to the update device 3 after the activation process, and determines the operation of the update device 3 based on whether or not a response signal to the test signal is received.
  • the proxy ECU 2 outputs (sends) a normality notification or a rollback instruction to the update device 3 according to the operation check result (S13). If the operation check result is normal, the proxy ECU 2 outputs (sends) a normality notification to the update device 3.
  • the proxy ECU 2 (recovery control unit) outputs (sends) a rollback instruction to the update device 3 when the operation check result is abnormal (defective operation detected).
  • the rollback instruction corresponds to an abnormality notification indicating that the activation process (application of the update program) in the update device 3 has failed.
  • the update device 3 performs rollback processing based on the rollback instruction output from the proxy ECU 2 (S14).
  • the update device 3 that has received the rollback instruction output from the proxy ECU 2 performs the rollback by restarting the program (original program) that was being executed before applying the update program (activation process). Perform processing.
  • the original program is stored (saved) as a backup in a storage area (non-operational area) that is different from the storage area (active area) in which the update program is stored.
  • the update device 3 can make the storage area where the update program is stored as the non-active side and perform rollback processing.
  • the update device 3 outputs (sends) a rollback instruction to the in-vehicle ECU 4 to be updated (S15).
  • the update device 3 performs rollback processing on its own device, it also outputs a rollback instruction to the in-vehicle ECU 4 to be updated, thereby preventing inconsistencies caused by differences in program versions between the update device 3 and the in-vehicle ECU 4. Eliminate what happens.
  • the update device 3 does not perform the rollback process of its own device, that is, even if the activation process of its own device ends normally, the update device 3 does not perform the activation process in any of the in-vehicle ECUs 4 among the in-vehicle ECUs 4 to be updated. If it fails, a rollback instruction is output (sent) to all the on-vehicle ECUs 4 to be updated. In this case, the update device 3 further performs rollback processing for itself. Thereby, it is possible to eliminate inconsistencies caused by differences in program versions in the update device 3 and the in-vehicle ECU 4.
  • the in-vehicle ECU 4 to be updated performs rollback processing in response to the rollback instruction output from the update device 3 (S16). Similarly to the update device 3, the in-vehicle ECU 4 to be updated is restarted by switching the correspondence between the operational and non-operational aspects in the storage area where the update program is stored and the storage area where the original program is stored. By doing this, rollback processing is performed to return to the original program execution environment.
  • the update device 3 outputs (sends) the processing results regarding the update program to the external server S1 (S17).
  • the update device 3 issues an update success notification indicating that the update program has been successfully applied to the update device 3 and the in-vehicle ECU 4 that are the update targets, or the update program application has failed and has been rolled back.
  • An update failure notification indicating this is output (sent) to the external server S1.
  • the update device 3 may output the results of processing related to the update program to a display device, and display the processing results on the display device.
  • the update device 3 may modify the vehicle configuration information regarding the update device 3 and the in-vehicle ECU 4, which are the update targets, based on the processing results of the update program.
  • the proxy ECU 2 is assumed to perform the program update process in the update device 3 as a proxy, but the proxy ECU 2 is not limited to this; It may be a substitute for.
  • FIG. 6 is a flowchart illustrating the processing of the control unit 20 of the proxy ECU 2 and the control unit of the update device 3 according to the first embodiment.
  • the control unit of the update device 3 regularly performs the following processing, for example, when the vehicle C is in a stopped state (IG switch is off).
  • the control unit of the update device 3 obtains an update program from the external server S1 (S101).
  • the control unit of the update device 3 stores an update program for its own device (S102).
  • the control unit of the update device 3 acquires a package including an update program to be applied to the update device and the in-vehicle ECU 4 from the external server S1, and stores the update program for the update device in a non-operating storage area. For example, if the first storage unit 231 is an operational side and stores the program currently being executed, the control unit of the update device 3 stores the own device in the second storage unit 232, which is a non-operational side.
  • the control unit of the update device 3 stores the own device in the second storage unit 232, which is a non-operational side.
  • the control unit 20 of the proxy ECU 2 acquires the update program from the external server S1 (S103). When the control unit 20 of the proxy ECU 2 determines that the update device 3 is an update target based on the acquired update program, it transmits a request signal to the update device 3 (S104). The control unit of the update device 3 receives the request signal from the proxy ECU 2 (S105).
  • the control unit of the update device 3 outputs (sends) an update program for the in-vehicle ECU 4 to the in-vehicle ECU 4 to be updated (S106).
  • the control unit of the update device 3 specifies the in-vehicle ECU 4 to be updated based on the target information included in the package acquired from the external server S1, and transmits the update program for the in-vehicle ECU 4 to the specified in-vehicle ECU 4.
  • the control unit of the update device 3 transmits a proxy instruction signal to the proxy ECU 2 (S107), and the proxy ECU 2 receives the proxy instruction signal from the update device 3 (S108). Then, the control unit of the update device 3 stops power supply to the in-vehicle communication unit 22 connected to the in-vehicle communication line 51 (segment) to which the in-vehicle ECU 4 to be updated is not connected, and 22 may be used to reduce power consumption.
  • Each in-vehicle communication unit 22 included in the update device 3 is provided with a relay that controls supply and cutoff of power to the in-vehicle communication unit 22, and the control unit of the update device 3 turns off the relay.
  • the control unit of the update device 3 outputs (sends) an activation instruction to the in-vehicle ECU 4 to be updated (S109).
  • the control unit of the update device 3 outputs an activation instruction to each of the in-vehicle ECUs 4 to be updated, and causes these in-vehicle ECUs 4 to execute activation processing.
  • the control unit 20 of the proxy ECU outputs an activation instruction to the update device 3 (S110), and the control unit of the update device 3 acquires (receives) the activation instruction from the proxy ECU 2 (S111).
  • the control unit of the update device 3 performs activation processing in response to the activation instruction (S112).
  • the control unit of the update device 3 executes (applies) the update program by performing an activation process, and updates the version of the control program P executed by the update device.
  • the control unit of the update device 3 outputs predetermined data (frames or messages) periodically or periodically by broadcast or multicast, for example.
  • the proxy ECU 2 determines whether or not it has received predetermined data that is periodically transmitted from the update device 3 that has performed the activation process (to which the update program has been applied), and based on the determination result, the In the update device 3, it is determined whether an operational defect has occurred. Alternatively, the proxy ECU 2 transmits a test signal to the update device 3 that has performed the activation process (to which the update program has been applied), and based on the presence or absence of a response from the update device 3, the update device 3 after the activation process is activated. , it may be determined whether or not an operational defect has occurred.
  • the proxy ECU 2 determines that an operational defect has occurred in the update device 3 after the activation process, it outputs (sends) a rollback instruction to the update device 3 (S113).
  • the proxy ECU 2 determines that no operational defect has occurred in the update device 3 after the activation process, it outputs (sends) a normality notification to the update device 3.
  • the control unit of the update device 3 determines whether a rollback instruction has been obtained (received) from the proxy ECU 2 (S114). When the rollback instruction is acquired from the proxy ECU 2 (S114: YES), the control unit of the update device 3 performs rollback processing (S115). When the control unit of the update device 3 obtains a rollback instruction from the proxy ECU 2, it restarts the program (original program) that was being executed before applying the update program (activation process). Perform rollback processing.
  • the control unit of the update device 3 determines whether the activation process of all the in-vehicle ECUs 4 to be updated has been performed normally (S1141). . If the control unit of the update device 3 does not acquire the rollback instruction from the proxy ECU 2, it determines that the application of the update program (activation process) in the update device 3 has been successfully completed. Alternatively, when the control unit of the update device 3 receives a normal notification from the proxy ECU 2, it may determine that the application of the update program (activation process) in the update device has been successfully completed.
  • control unit of the update device 3 determines whether the application (activation process) of the update program in all the in-vehicle ECUs 4 to be updated has been successfully completed.
  • the control unit of the update device 3 transmits, for example, test communication data to all the in-vehicle ECUs 4 to be updated, and activates each of these in-vehicle ECUs 4 based on whether response data to the communication data is received. It may be determined whether the processing has been completed normally.
  • the update device 3 When it is determined that the activation processing of all the in-vehicle ECUs 4 to be updated has been performed normally (S1141: YES), or after outputting a rollback instruction to the in-vehicle ECUs 4 to be updated (S116), the update device 3 is controlled.
  • the unit outputs (sends) the processing results regarding the update program to the external server S1 (S117).
  • the control unit of the update device 3 outputs the processing results regarding the update program to the external server S1 and the display device, and further modifies the vehicle configuration information regarding the update device 3 and the in-vehicle ECU 4, which are the update targets, based on the processing results. There may be.
  • the processing unit of the update device 3 determines whether the activation process for all the in-vehicle ECUs 4 to be updated has been performed normally. If the determination is made and the activation process is performed normally, a proxy instruction signal may be transmitted to the proxy ECU 2.
  • FIG. 7 is a schematic diagram illustrating the configuration of the in-vehicle update system S according to the second embodiment.
  • the substitute ECU according to the second embodiment is connected to the inside communication line 51.
  • the update device 3 according to the first embodiment does not have a communication relay function when updating itself, and the proxy ECU 2 and the in-vehicle ECU 4 cannot communicate, the update device 3 is not limited to this.
  • the update device 3 according to the present embodiment maintains a communication relay function when updating its own device, and connects the proxy ECU 2 to a vehicle interior communication line separate from the vehicle interior communication line 51 (segment) to which the proxy ECU is connected.
  • the in-vehicle ECU 4 connected to 51 (segment) can communicate via the relay function.
  • FIG. 8 is an explanatory diagram illustrating state transitions of the update device 3, the in-vehicle ECU 4 to be updated, the substitute ECU 2, etc. in the program update process according to the second embodiment.
  • the proxy ECU 2 detects an operational defect in the update device 3 after activation processing (operation defect: present), it sends a rollback instruction to the update device 3 and also sends a rollback instruction to the in-vehicle ECU 4 via the relay function of the update device 3.
  • Send rollback instructions As shown in FIG. 8, according to the present embodiment, it is possible to roll back the update device 3 and the in-vehicle ECU 4 by issuing a one-step rollback instruction from the proxy ECU 2.
  • FIG. 9 is an explanatory diagram illustrating the flow (sequence) of processing by the update device 3, the in-vehicle ECU 4 to be updated, the substitute ECU 2, etc. according to the second embodiment.
  • S21 to S32 are the same processes as S01, S02, and S05 to S14 in FIG. 5.
  • the proxy ECU 2 outputs a rollback instruction to the in-vehicle ECU 4 at the same time as or after outputting the rollback instruction to the update device 3 (S31) (S33).
  • the in-vehicle ECU 4 performs rollback processing in response to the rollback instruction output from the proxy ECU 2 (S34).
  • the update device 3 outputs (sends) the processing result regarding the update program to the external server S1 (S35).
  • FIG. 10 is a flowchart illustrating the processing of the control unit 20 of the proxy ECU 2 and the control unit of the update device 3 according to the first embodiment.
  • S201 to S211 are the same processes as S101, S102, and S106 to S114 in FIG.
  • the control unit 20 of the proxy ECU 2 outputs a rollback instruction to the update device 3 (S210), and then outputs the rollback instruction to the in-vehicle ECU 4 via the relay function of the update device 3 (S213).
  • control unit of the update device 3 determines whether the activation process of all the in-vehicle ECUs 4 to be updated has been performed normally (S2111). . If it is determined that the activation processing of all the in-vehicle ECUs 4 to be updated has been performed normally (S2111: YES), the control unit of the update device 3 outputs (sends) the processing results regarding the update program to the external server S1 (S214). ).
  • the processing unit of the update device 3 When it is determined that the activation processing of all the in-vehicle ECUs 4 to be updated has not been performed normally, that is, when it has been determined that the activation processing has not been normally performed in any one of the in-vehicle ECUs 4 among the in-vehicle ECUs 4 to be updated ( S2111: NO), the processing unit of the update device 3 outputs a rollback instruction to the in-vehicle ECU 4 (S2112), and outputs (sends) the processing result regarding the update program to the external server S1 (S214).
  • the proxy ECU 2 outputs a rollback instruction to the update device 3 and the in-vehicle ECU 4, and the activation process of the update device 3 is performed normally. If the activation process of the in-vehicle ECU 4 is not performed normally, the update device 3 outputs a rollback instruction to the in-vehicle ECU 4. Thereby, rollback processing can be performed efficiently depending on the situation.
  • An in-vehicle update system that includes an update device that performs processing for updating a program in an in-vehicle ECU installed in a vehicle using an update program obtained from an external server outside the vehicle, and an in-vehicle device that is communicably connected to the update device.
  • the in-vehicle device includes a control unit that performs processing for updating a program in the update device, and the control unit controls the update device to perform processing to update a program in the update device when the update device is included in an update target by the update program.
  • An in-vehicle update system that performs at least a portion of the update processing that is performed.
  • the update device can smoothly perform the program update process in the update device by having the in-vehicle device (proxy ECU) take charge of updating the program (applying the update program, etc.) in the device itself. can.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本開示の一態様に係る車載装置は、車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続される車載装置であって、前記更新装置におけるプログラムを更新するための処理を行う制御部を備え、前記制御部は、前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する。

Description

車載装置、プログラム、及びプログラムの更新方法
 本開示は、車載装置、プログラム、及びプログラムの更新方法に関する。
 本出願は、2022年3月9日出願の日本出願第2022-036515号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
 車両には、エンジン制御等の駆動制御系、エアコン制御等のボディ系等の車載機器を制御するためのECU(Electronic Control Unit)が搭載されている。ECUは、MPU等の演算処理部、例えばEEPROM等の書き換え可能な不揮発性の記憶部、及び他のECUと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御を行う。更に車両には、無線通信の機能を備えた通信機(更新装置)が実装されており、通信機を介して、車外のネットワークに接続されているプログラム提供装置と通信し、当該プログラム提供装置からECUの制御プログラムをダウンロード受信)し、当該ECUの制御プログラムを更新することができる(例えば特許文献1参照)。
特開2017-97851号公報
 本開示の一態様に係る車載装置は、車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続される車載装置であって、前記更新装置におけるプログラムを更新するための処理を行う制御部を備え、前記制御部は、前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する。
実施形態1に係る車載更新システムの構成を例示する模式図である。 代理ECUの物理構成を例示するブロック図である。 車両構成情報を例示する説明図である。 実施形態1に係るプログラムの更新処理における更新装置、更新対象の車載ECU及び代理ECU等の状態遷移を例示する説明図である。 実施形態1に係る更新装置、更新対象の車載ECU及び代理ECU等による処理の流れ(シーケンス)を例示する説明図である。 実施形態1に係る代理ECUの制御部及び更新装置の制御部の処理を例示するフローチャートである。 実施形態2に係る車載更新システムの構成を例示する模式図である。 実施形態2に係るプログラムの更新処理における更新装置、更新対象の車載ECU及び代理ECU等の状態遷移を例示する説明図である。 実施形態2に係る更新装置、更新対象の車載ECU及び代理ECU等による処理の流れ(シーケンス)を例示する説明図である。 実施形態2に係る代理ECUの制御部及び更新装置の制御部の処理を例示するフローチャートである。
[本開示が解決しようとする課題]
 しかしながら、特許文献1においては、通信機(更新装置)に適用されている制御プログラム自体を更新する際の処理に関し、何ら考慮されていないという問題点がある。
 本開示の目的は、車載ECUのプログラムを更新する処理を行う更新装置が、当該更新自身に適用されているプログラムを更新する処理を行うにあたり、当該プログラムの更新処理を効率的に行うことができる車載装置等を提供する。
[本開示の効果]
 本開示の一態様によれば、車載ECUのプログラムを更新する処理を行う更新装置が、当該更新自身に適用されているプログラムを更新する処理を行うにあたり、当該プログラムの更新処理を効率的に行うことができる車載装置等を提供できる。
[本開示の実施形態の説明]
 最初に、本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本開示の一態様に係る車載装置は、車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続される車載装置であって、前記更新装置におけるプログラムを更新するための処理を行う制御部を備え、前記制御部は、前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる処理の少なくとも1部を代理する。
 本態様にあっては、車載装置(代理ECU)の制御部は更新装置の処理を代理し、更新装置に更新装置自身(自装置)の更新に係る処理を指示することができる。更新装置は、自装置に対するプログラムの更新に関する処理について、車載装置(代理ECU)からの指示に基づき行うことができる。即ち、更新装置は、自装置(更新装置自身)を更新する場合、当該更新の途中にて判断分岐等の処理内容が煩雑となることが懸念されるところ、車載装置(代理ECU)に対し、自装置におけるプログラム更新(更新プログラムの適用等)を担わせることにより、更新装置におけるプログラム更新処理を円滑に行うことができる。
(2)本開示の一態様に係る車載装置は、前記代理する処理は、前記更新装置が取得した前記更新プログラムを、前記更新装置自身に適用するアクティベート処理を含む。
 本態様にあっては、更新装置は、自装置が更新対象である場合、車載装置(代理ECU)からの指示に基づいてアクティベートされることで、更新に関わる処理を円滑に行うことができる。
(3)本開示の一態様に係る車載装置は、前記代理する処理は、アクティベート処理の結果に応じたロールバック処理を含む。
 本態様にあっては、車載装置(代理ECU)からのアクティベート指示に応じて、更新装置がアクティベート処理を行った後、車載装置(代理ECU)は、アクティベート処理後(更新プログラムの適用後)の更新装置に対し動作確認等の処理(異常検出シーケンス)を行う。車載装置(代理ECU)は、アクティベート処理後の更新装置において、異常を検出した場合、ロールバック指示を当該更新装置に送信(出力)する。車載装置(代理ECU)からロールバック指示を取得した更新装置は、更新プログラムを適用する前の元プログラムに戻すロールバック処理を行うため、アクティベート処理が失敗した場合であっても、更新装置は元プログラムを実行することができ、更新装置が車両に関する制御を行う機能を有する場合は、車両に関する制御を継続することができる。
(4)本開示の一態様に係る車載装置は、前記更新装置の記憶部には、前記代理する処理を行う代理ECUとして前記車載装置を特定する情報が、予め記憶されている。
 本態様にあっては、車載装置(代理ECU)は、ECU-ID、IPアドレス等、又は、車載装置(代理ECU)と通信するためのCAN-ID(メッセージIDにより実質的に車載装置を特定するものであってもよい)により特定される。更新プログラムの対象となる車載ECUに関わらず、更新装置の処理を代理する車載装置を一のECU(代理ECU)に予め定めておくこと(代理ECUを固定的に設定)により、更新装置は、更新装置の処理を代理する車載装置となるECUを都度決定(選定)する必要がなく、迅速に更新装置の更新処理を開始することが可能である。また、一のECUにのみ更新装置の処理を代理する車載装置(代理ECU)としての機能を持たせれば足りるので、他の車載ECUの省メモリ化が可能である。
(5)本開示の一態様に係る車載装置は、前記制御部は、前記更新装置から、前記代理する処理を行う指示を示す指示信号を取得し、取得した前記指示信号に応じて、前記代理する処理を開始する。
 本態様にあっては、車載装置(代理ECU)の制御部は、更新装置から、車載装置(代理ECU)に代理する処理を行う指示を示す指示信号(代理指示信号)を取得した場合のみ、更新装置が行う処理を代理する。更新装置は、自装置が更新対象でない場合は自身で車載ECUの更新処理を行い、自装置が更新対象である場合のみ、車載装置(代理ECU)に更新処理を代理させることができる。車載装置(代理ECU)は、更新装置が更新プログラムを取得する毎に更新装置を代理して処理を行うのではなく、更新装置が更新対象である場合のみ更新装置を代理するので、不必要に更新装置の処理を代理することがなく、効率的に更新処理を行うことが可能である。
(6)本開示の一態様に係る車載装置は、前記代理する処理は、前記車載ECUのプログラムを更新するための処理を含み、前記更新装置は、車載ECU間にて送受信されるデータを中継する中継機能を有し、前記制御部は、前記更新プログラムによる更新対象に前記更新装置が含まれる際、前記更新装置が中継機能を維持するか否かに応じて、前記車載ECUのプログラムを更新するための処理を異ならせる。
 本態様にあっては、車載装置(代理ECU)の制御部は、更新プログラムによる更新対象に更新装置が含まれる際、すなわち更新装置が自装置のプログラムを更新する処理中において、当該更新装置が中継機能を維持するか否かを判定し、判定結果に応じて、車載ECUのプログラムを更新するための処理を異ならせる。従って、制御部が代理する処理に、車載ECUのプログラムを更新するための処理が含まれる場合であっても、更新装置による中継機能が維持されるか否かによって更新対象となる車載ECUに対し、異なる処理を行うことができ、更新装置に対する更新処理に応じた適切な代理処理を行うことができる。即ち、前記更新装置が中継機能を維持する場合、車載装置(代理ECU)が直接、車載ECUに対してアクティベート処理又はロールバック処理を指示しすることが可能である。車載装置(代理ECU)は、更新装置及び車載ECUに、同時にアクティベート処理又はロールバック処理を実行させることが可能なので、一段階の処理によって、迅速に更新に係る処理を行うことができる。
(7)本開示の一態様に係る車載装置は、前記更新装置には、前記外部サーバ側の通信線と、前記車載ECU側の通信線とが接続され、前記外部サーバ側の通信線に接続される。
 本態様にあっては、車載装置(代理ECU)は、外部サーバ側の通信線に接続されるため、外部サーバから送信された更新プログラムを、更新装置を介することなく、取得することができる。このように外部サーバ側の通信線に接続される車載装置(代理ECU)は、例えば、外部サーバと通信する車外通信装置又は不正な通信を監視するセキュリティ装置等、外部サーバと更新装置との間に設けられる装置としても、機能させるものであってもよい。
(8)本開示の一態様に係る車載装置は、前記制御部は、前記更新装置を介することなく、外部サーバから前記更新プログラムを取得し、取得した前記更新プログラムに基づいて、前記代理する処理を開始することを、前記更新装置に対し要求する要求信号を出力する。
 本態様にあっては、車載装置(代理ECU)は、更新装置を介することなく更新プログラムを取得するので、更新装置による処理とは独立し(別個に)、更新装置が更新対象であるか否かを判定することが可能である。これにより、更新装置が更新対象である場合、更新装置は、車載装置(代理ECU)からの要求信号に応じて、車載装置(代理ECU)に代理する処理を行う指示を示す指示信号(代理指示信号)を送信することができる。車載装置(代理ECU)は、更新装置よりも先に更新プログラムを取得するので、更新装置が更新対象であるか否かを判定することが可能である。更新装置が更新対象である場合、更新装置は、車載ECUにアクティベート処理を指示した後、要求信号に基づいて、車載装置(代理ECU)に代理する処理を行う指示を示す指示信号(代理指示信号)を送信することが可能であるので、更新装置自身で車載装置(代理ECU)に代理指示信号を送信するか否かを判定する必要がなく、車載装置(代理ECU)に処理を迅速に引き継ぐことができる。
(9)本開示の一態様に係る車載装置は、前記外部サーバ側の通信線には、外部サーバと無線通信するための車外通信装置が接続され、前記車外通信装置に含まれる。
 本態様にあっては、車載装置は、車外通信装置に含まれ、すなわち車外通信装置の一部位として構成されるものであってよい。このように車外通信装置に車載装置を内蔵することにより、同じ筐体に、これら装置を収納することができ、これら車外通信装置及び車載装置が別体として構成されるよりも、軽量化及び小型化することができる。
(10)本開示の一態様に係るプログラムは、車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続されるコンピュータに、前記更新装置におけるプログラムを更新するための処理を行い、前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する処理を実行させる。
 本態様にあっては、更新装置は、車載装置(代理ECU)に対し、自装置におけるプログラム更新(更新プログラムの適用等)を担わせることにより、更新装置におけるプログラム更新処理を円滑に行うことができる。
(11)本開示の一態様に係るプログラムの更新方法は、車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続されるコンピュータに、前記更新装置におけるプログラムを更新するための処理を行い、前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する処理を実行させる。
 本態様にあっては、更新装置は、車載装置(代理ECU)に対し、自装置におけるプログラム更新(更新プログラムの適用等)を担わせることにより、更新装置におけるプログラム更新処理を円滑に行うことができる。
[本開示の実施形態の詳細]
 本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る更新装置3を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
(実施形態1)
 以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載更新システムSの構成を示す模式図である。図2は、代理ECU2の物理構成を例示するブロック図である。車載更新システムSは、車両Cに搭載された車外通信装置1及び更新装置3を含み、車外ネットワークNを介して接続された外部サーバS1(プログラム提供装置、OTAサーバ)から取得した更新プログラムを、車両Cに搭載されている車載ECU4(Electronic Control Unit)に送信する。また、車載更新システムSは、更新装置3と車載ECUとに接続する、車載ECU側の通信線(車内側通信線51)と、更新装置3と車外通信装置とに接続する、外部サーバ側の通信線(車外側通信線52)とを含み、車外側通信線52には、更新装置3の処理を代理する車載装置(代理ECU2)が接続される。
 外部サーバS1は、例えばインターネット又は公衆回線網等の車外ネットワークNに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による記憶部S11を備え、車外のプログラム提供装置に相当する。外部サーバS1には、車載ECU4の製造メーカ等によって作成された当該車載ECU4を制御するためのプログラム又はデータが、記憶部S11に保存されている。当該プログラム又はデータは、更新プログラムとして、後述のごとく車両Cに送信され、車両Cに搭載されている車載ECU4のプログラム又はデータを更新するために用いられる。このように構成された外部サーバS1(プログラム提供装置)は、OTA(Over The Air)サーバとも称される。
 代理ECU2は、車外側通信線52に接続され、更新装置3を介さずに外部サーバS1から送信された更新プログラムを取得することが可能である。代理ECU2は、取得した更新プログラムに基づき、更新装置3が更新対象であるか否かを判定する。代理ECU2は、更新装置3が更新対象である場合、更新装置3を代理する処理を開始することを、前記更新装置に対し要求する要求信号を出力する。代理ECU2は、更新装置3から送信される代理指示信号に応じて、更新装置3へのアクティベート指示、アクティベート処理後の更新装置3における動作確認、動作不備を検出した際のロールバック指示を行う。
 更新装置3は、外部サーバS1から取得した更新プログラムを、更新対象の車載ECU4への送信、及び送信した更新プログラムを、当該車載ECU4に適用させるためのアクティベート指示を送信するOTAマスタとして機能する。OTAマスタとして機能する更新装置3は、自装置に対し更新プログラムを適用(アクティベート処理)するにあたり、代理ECU2に更新装置3を代理する処理を行う指示を示す代理指示信号を送信し、代理ECU2の指示に応じてアクティベート処理又はロールバック処理を行う。車両Cに搭載される車載ECU4は、更新装置3を介して、外部サーバS1から無線通信により送信された更新プログラムを取得し、アクティベート指示に応じて当該更新プログラムを適用(アクティベート処理)することにより、自ECUが実行するプログラムを更新(リプロ)する。
 以降、プログラムは、車載ECU4が処理を行うための制御構文等を含むプログラムコード及び、当該プログラムコードを実行するにあたり参照するデータが記載される外部ファイルを含むものとして説明する。更新プログラムの送信時において、これらプログラコード及びデータが記載される外部ファイルは、例えば暗号化されたアーカイブファイルとして、外部サーバS1から送信される。外部サーバS1は、更新プログラムを送信する際、当該更新プログラムを含むパッケージを生成し、生成したパッケージを車両Cに送信する。パッケージは、例えば、プログラム更新に関する情報であるパッケージ情報(キャンペーン情報)、更新対象となる車載ECU4に関する情報(ターゲット情報)、更新対象の車載ECU4に対し適用される更新プログラムを含む。
 車両Cには、車外通信装置1、更新装置3、表示装置(図示略)、及び種々の車載機器を制御するための複数の車載ECU4が搭載されている。車外通信装置1と更新装置3とは、例えばシリアルケーブル等のハーネスにより通信可能に接続されている。更新装置3及び車載ECU4は、CAN(Control Area Network)又はEthernet(登録商標)等の通信プロトコルに対応した車載ネットワーク5によって通信可能に接続されている。
 車外通信装置1は、車外通信部(図示せず)及び、更新装置3と通信するための入出力I/F(図示せず)(インターフェイス)を含む。車外通信部は、LTE(登録商標)、4G、5G、WiFi(登録商標)等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナ11を介して外部サーバS1とデータの送受信を行う。車外通信装置1と外部サーバS1との通信は、例えば公衆回線網又はインターネット等の車外ネットワークNを介して行われる。
 車外通信装置1の入出力I/Fは、更新装置3と、例えばシリアル通信するための通信インターフェイスである。車外通信装置1と更新装置3とは、入出力I/F間に接続されたシリアルケーブル等のハーネスを介して相互に通信する。本実施形態では、車外通信装置1は、更新装置3と別装置とし、入出力I/F等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置1は、更新装置3の一構成部位として、更新装置3に内蔵されるものであってもよい。又は、車外通信装置1と更新装置3は、CAN等の車載ネットワーク5により接続されていてもよい。
 代理ECU2は、制御部20、記憶部21、及び車内通信部22を含む。代理ECU2は、更新装置3から代理指示信号が送信された場合以外は、例えば、不正な通信を監視するセキュリティ装置として機能する。なお、代理ECU2は、車外通信装置1の一構成部位として、車外通信装置1に内蔵されるものであってもよい。
 代理ECU2の制御部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部に予め記憶された制御プログラムP(プログラム製品)及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。
 代理ECU2の記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成される。記憶部21には、代理ECU2の制御プログラムが記憶される。また、記憶部21には、外部サーバS1から取得した更新プログラムが記憶される。記憶部21に記憶された制御プログラムP(プログラム製品)は、更新装置3が読み取り可能な記録媒体211から読み出された制御プログラムP(プログラム製品)を記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムPをダウンロードし、記憶部に記憶させたものであってもよい。また、代理ECU2の記憶部21には、自身が代理する機能を有するECUであることを示すフラグ値又は設定ファイル等が記憶されているものであってもよい。
 車内通信部22は、例えばCAN又はイーサネット(Ethernet/登録商標)等の通信プロトコルを用いた入出力インターフェイスであり、制御部は、車内通信部22を介して、車外側通信線52に接続された車外通信装置1又は更新装置3と相互に通信する。
 更新装置3は、制御部、記憶部(第1記憶部、第2記憶部)、入出力I/F、及び車内通信部(すべて図示略)を含む。更新装置3は、車外通信装置1が無線通信によって外部サーバS1から受信した更新プログラム(パッケージ)を、車外通信装置1から取得し、車載ネットワーク5を介して当該更新プログラムを所定の車載ECU4(更新対象の車載ECU4)に送信するように構成されている。すなわち、更新装置3は、更新象の車載ECU4におけるプログラム更新を制御するOTAマスタ(リプロマスタ)として機能する。
 更新装置3は、例えば、制御系の車載ECU4、安全系の車載ECU4及び、ボディ系の車載ECU4等の複数の系統のバス(セグメント)を統括し、これらバス(セグメント)間での車載ECU4同士の通信を中継するゲートウェイ(車載中継装置)である。すなわち、更新装置3には、これら複数のバス(セグメント)を構成する車内側通信線51それぞれが接続され、当該更新装置3によって集約される複数の車内側通信線51(セグメント)により車載ネットワーク5が構成される。更新装置3は、CANプロトコルの中継においてはCANゲートウェイとして機能し、TCP/IPプロトコルの中継においてはレイヤー2スイッチ又はレイヤー3スイッチとして機能する。更新装置3は、通信に関する中継に加え、二次電池等の電源装置から出力された電力を分配及び中継し、自装置に接続されるアクチュエータ等の車載器に電力を供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。又は、更新装置3は、車両C全体をコントロールするボディECUの一機能部として構成されるものであってもよい。又は、更新装置3は、例えばヴィークルコンピュータ等の中央制御装置にて構成され、車両Cの全体的な制御を行う統合ECUであってもよい。
 更新装置3の制御部は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部に予め記憶された更新装置3の制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。
 更新装置3の記憶部は、第1記憶部、及び第2記憶部による2つの記憶領域により構成され、これら第1記憶部及び第2記憶部それぞれは、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成される。第1記憶部及び第2記憶部には、制御プログラム及び処理時に参照するデータが予め記憶してある。当該制御プログラムが、外部サーバS1から取得した更新プログラムによって、更新される対象である。記憶部(第1記憶部、第2記憶部)に記憶された制御プログラムは、更新装置3が読み取り可能な記録媒体から読み出された制御プログラム(プログラム製品)を記憶したものであってもよい。なお、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部に記憶させたものであってもよい。また、更新装置3の記憶部には、代理ECUを特定するECU-ID、IPアドレス等、又は、車載装置(代理ECU)と通信するためのCAN-ID(メッセージIDにより実質的に車載装置を特定するものであってもよい)等が記憶されてもよい。
 更新装置3の記憶部(第1記憶部、第2記憶部)には、現バージョン及び旧バージョンの2つのプログラム(更新装置3の制御プログラム)夫々のバージョンに関する情報、及び現在実行(適用)している制御プログラムが記憶されている領域(動作面)に関する情報が記憶されている。すなわち、現状において第1記憶部(第1面)に記憶されている制御プログラムを実行している場合、第1記憶部には、動作面は第1記憶部(第1面)であると記憶される。この場合、非動作面は、第2記憶部(第2面)であると記憶される。動作面である第1記憶部には、現バージョンの制御プログラムが記憶されている。非動作面である第2記憶部には、旧バージョンの制御プログラムが記憶されている。又は、非動作面である第2記憶部には、旧バージョンの制御プログラム等が記憶されておらず、空き容量となる記憶領域であってもよい。このように非動作面が、空き容量の記憶領域又は旧バージョンの制御プログラム等が記憶されている状態となっていることにより、更新時に、当該非運用面に新バージョンの制御プログラムを書き込むことで、旧バージョンに戻せる状態を担保することができる。
 更新装置3の入出力I/Fは、車外通信装置1の入出力I/Fと同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/Fを介して、更新装置3は、表示装置及びIGスイッチ(図示略)と通信可能に接続される。
 更新装置3の車内通信部は、例えばCAN又はイーサネット(Ethernet/登録商標)等の通信プロトコルを用いた入出力インターフェイスであり、制御部は、車内通信部を介して車載ネットワーク5に接続されている車載ECU4又は他の中継装置等の車載機器と相互に通信する。車内通信部は、複数個(本実施形態では4個)設けられており、4個の車内通信部のうち3個には、車内通信部夫々に、車載ネットワーク5を構成する車内側通信線51(セグメント)が接続されている。このように車内通信部を複数個設けることにより車載ネットワーク5を複数個のセグメントに分け、例えば車載ECU4の機能(制御系機能、安全系機能、ボディ系機能)に応じて、個々の車載ECU4を各セグメントに接続する。4個の車内通信部のうち、車内側通信線が接続されない車内通信部には、車外側通信線52が接続されており、該車内通信部は、車外側通信線52を介して車外通信装置1又は代理ECU2と相互に通信する。
 車載ECU4は、代理ECU2と同様に制御部、記憶部及び車内通信部(図示せず)を含む。記憶部は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、車載ECU4のプログラム又はデータが記憶されている。なお、車載ECU4の記憶部は、更新装置3の記憶部と同様に、第1記憶部、及び第2記憶部による2つの記憶領域により構成される。このプログラム又はデータが、プログラム提供装置から送信され、更新装置3によって中継される更新プログラムによって、更新される対象である。車載ECU4の車内通信部は、更新装置3と同様に、例えば、CANトランシーバ又はイーサネットPHY部等により構成され、当該車内通信部を介して更新装置3と通信する。
図3は、車両構成情報を例示する説明図である。更新装置3は、定期的、周期的又は定常的に車両C(自車)に搭載されている全ての車載ECU4と通信し、これら車載ECU4に関する情報を取得する。更新装置3は、例えば、IGスイッチがオンにされた場合、オフにされた場合又は、所定のタイミングにて、定常的に車両Cに搭載されている全ての車載ECU4又は特定の車載ECU4に対し、自ECUの構成情報及び当該構成情報の更新履歴を送信することを要求する。更新装置3は、車載ECU4夫々から送信された構成情報及び更新履歴を取得してこれら構成情報等を集約し、集約した構成情報及び更新履歴を車両構成情報として記憶する。
 更新装置3は、車載ECU4に対し構成情報及び更新履歴を送信することを要求することなく、車載ECU4夫々が自発的に送信した構成情報夫々及び更新履歴夫々を取得し集約して、記憶部に記憶するものであってもよい。又は、更新装置3は、更新プログラムを車載ECU4に送信し、当該送信が完了した都度、送信した更新プログラムに基づいて構成情報(車両構成情報)を変更してもよい。更新装置3は、これら複数の車載ECU4から取得した個々の車載ECU4に関する情報を集約することにより、例えばテーブル形式にて車両構成情報を生成し、自装置の記憶部に記憶する。車両構成情報を記憶する記憶部は、第1記憶部、第2記憶部又は、第1記憶部及び第2記憶部の双方に重複して記憶するものであってもよい。
 一例としてテーブル形式に保存される車両構成情報は、管理項目(フィールド)として、例えば車載ECU4の製造番号(シリアル番号)、ECU部番(型番)、Software部番、プログラムの現バージョン、旧バージョン、動作面、状態(リプロステータス)、セグメント番号、及び更新対象(キャンペーン番号)、を含み、個々の車載ECU4において重複しないように設定された連番等によるECU-IDに関連付けられて管理される。ECU-IDの管理項目には、車両Cに搭載される全ての車載ECU4において、これら車載ECU4を一意に識別するための連番等による識別番号が格納される。更に、車両構成情報は、管理項目(フィールド)として、車載ECU4のMAC(Media Access Control)アドレス、及びIPアドレスを含むものであってもよい。
 製造番号(シリアル番号)は、車載ECU4の製造時に付与される番号であり、生産拠点等を示すロット番号及び製造時の連番等により構成され、当該ECUを一意に特定することができるユニークな番号である。ECU部番(型番)は、車載ECU4の種類を特定する番号であり、例えば部品番号である。Software部番は、更新プログラム(更新対象となる制御プログラムP)のソフトウェアの種類を特定するための番号である。更新装置3は、外部サーバS1から取得したターゲット情報に含まれる製造番号又はECU部番と、車両構成情報に含まれる製造番号又はECU部番とを照らし合わせることにより、自車に搭載されている車載ECU4のうち、更新対象の車載ECU4を特定するものであってもよい。
 現バージョンは、現状において、車載ECU4が実行(適用)しているプログラムのバージョン番号であり、動作面に記憶されているプログラムのバージョン番号である。旧バージョンは、以前に車載ECU4が実行(適用)していたプログラムのバージョン番号であり、非動作面(動作面でない記憶領域)に記憶されているプログラムのバージョン番号である。動作面は、現状において、車載ECU4が実行(適用)しているプログラムが記憶されているいずれかの記憶領域(1面:第1記憶部又は、2面:第2記憶部)を特定する情報である。これら運用面とバージョン情報は、更新時に書き込まれた新バージョンのプログラムから、旧バージョンのプログラムにロールバックされる場合に用いられるように記憶されている。
 状態の管理項目には、対応する車載ECU4(同じレコードのECU-ID)における更新プログラムの適用に関する状態情報(リプロステータス)が格納される。更新装置3は、アクティベート指示の送信先となる車載ECU4と通信し、当該車載ECU4の状態情報(リプロステータス)を取得することにより、個々の車載ECU4の状態(状態の管理項目)を更新するものであってもよい。これにより、更新装置3は、アクティベート処理後の車載ECU4それぞれにおける状態情報(リプロステータス)を集約して、保存及び管理することができる。更新装置3は、更新時の新バージョンのプログラムのインストール時、アクティベート時、及びロールバック処理時に、これらのデータを参照又は更新を行うものであってもよい。
 セグメント番号の管理項目には、対応する車載ECU4が接続されている車内側通信線51(セグメント)の番号が格納されている。当該車内側通信線51(セグメント)の番号は、更新装置3が備える複数の車内通信部それぞれの番号(通信ポート番号)に対応している。これにより、更新装置3は、車内側通信線51(セグメント)を介して、自装置における車内通信部22それぞれに直接的に接続されている個々の車載ECU4を特定することができる。
 更新対象(キャンペーン番号)の管理項目には、今回の更新(キャンペーン)の対象となる車載ECU4に対し、例えば、キャンペーン番号が格納される。例えば、複数の車載ECU4が同時に更新されるグループ更新を行う際、当該更新対象(キャンペーン対象)となる複数の車載ECU4のバージョンのセットで整合性を判断することが必要である。これに対し、車両Cに搭載される全ての車載ECU4において、今回の更新(キャンペーン)の対象となる車載ECU4のフィールドには、当該キャンペーンの番号を格納することにより、更新対象となる車載ECU4を効率的に特定することができる。本実施形態における図示のとおり、更新対象外の車載ECU4フィールドには、例えば、空白(null値を格納)とするものであってもよい。更に、当該キャンペーンの番号が更新対象のフィールドに格納されている複数の車載ECU4に関する情報(ECU部番、ソフトウェアバージョン等)を抜き出し、別個のテーブルにてリスト管理等を行うものであってよい。
 図4は、実施形態1に係るプログラムの更新処理における更新装置3、更新対象の車載ECU4及び代理ECU2等の状態遷移を例示する説明図である。更新対象の更新装置3及び車載ECU4において、更新プログラムを記憶する前の状態と、記憶した後の状態とは、表示形態を反転して示している。
 更新プログラムを記憶する前(書換え前)の状態において、更新装置3及び車載ECU4は、動作面に記憶されている制御プログラムPを実行している。更新装置3が外部サーバS1から取得した自装置用の更新プログラムを自装置の非動作面に記憶すると共に、車載ECU4に車載ECU4用の更新プログラムを送信することにより、更新装置3及び車載ECU4の非動作面に更新プログラムが記憶される。
 更新装置3は、代理ECU2に代理指示を送信すると共に、更新対象の車載ECU4にアクティベート指示を送信する。代理指示に応答した代理ECU2は処理シーケンスを開始し、更新装置3にアクティベート指示を送信する。アクティベート指示の送信後、代理ECU2は、アクティベート処理を行った更新装置3における動作不備の有無を検出する。
 代理ECU2は、アクティベート処理後の更新装置3に動作不備を検出した場合(動作不備:有)、更新装置3にロールバック指示を送信する。代理ECU2からのロールバック指示を受信した更新装置3は、更新プログラムを適用する前の元プログラムを実行することにより、ロールバック処理を行う。ロールバック処理を行い、更新プログラムを適用する前の元プログラムを実行する更新装置3は、更新対象の車載ECU4に対し、ロールバック指示を送信する。なお、更新装置3が、更新処理の際にも通信中継機能を保持している場合、代理ECU2が更新装置3の中継機能を介して車載ECU4にロールバック指示を送信してもよい。
 代理ECU2からのロールバック指示を受信した更新装置3は、更新プログラムを適用する前の元プログラムを実行することにより、ロールバック処理を行う。これにより、更新装置3及び車載ECU4は、更新プログラムが適用される前の元プログラムを実行するものとなる。
 このように代理ECU2によって更新装置3におけるアクティベート処理及びロールバック処理を行うことにより、更新対象である更新装置3及び車載ECU4に対し、2段階でのアクティベート処理及びロールバック処理を行うものとなる。これに対し、これら更新装置3及び車載ECU4へのプログラムの更新に関する一連の処理を、エンジン始動又はトラクションモータ駆動が禁止される期間等、車両Cが起動状態となることを禁止される期間にて行う。当該禁止期間に行うことにより、適用されたプログラム間での一時的な不整合(バージョン違い)が発生した状態にて、エンジン始動等が行われることを防止することができる。更新装置3は、更新プログラムに関する一連の処理を、車両Cが起動状態となることを禁止される期間にて行うにあたり、入出力I/F等を介してIGスイッチから出力されるオン信号を、例えばマスク処理等行うことにより一時的に無効化するものであってもよい。
 図5は、実施形態1に係る更新装置3、更新対象の車載ECU4及び代理ECU2等による処理の流れ(シーケンス)を例示する説明図である。更新プログラムを用いて、更新装置3(OTAマスタ)及び更新対象の車載ECU4におけるプログラム更新に関する処理を行うにあたり、外部サーバS1(OTAサーバ)、更新装置3(OTAマスタ)、更新対象の車載ECU4(ターゲットECU)、及び代理ECU2それぞれの処理シーケンスについて説明する。
 更新装置3は、更新プログラムを外部サーバS1から取得する(S01)。更新装置3は、例えば、自装置が搭載されている車両C(自車)の識別番号(VIN:Vehicle Identification Number)を用いて、外部サーバS1にアクセスし、当該外部サーバS1から自車に対して適用される更新プログラムを含むパッケージを取得する。当該パッケージには、例えば、プログラム更新に関する情報であるパッケージ情報(キャンペーン情報)、更新対象となる更新装置3及び車載ECU4に関する情報(ターゲット情報)、プログラムの更新対象である更新装置3及び車載ECU4に適用される更新プログラムが含まれている。
 更新装置3は、自装置用の更新プログラムを記憶する(S02)。更新装置3は、自装置用の更新プログラムを、非動作面である記憶領域(記憶部)に記憶する。更新装置3は、プログラムを記憶する記憶領域として、第1記憶部及び第2記憶部を備えており、例えば、現時点にて実行しているプログラムが第1記憶部の場合、当該第1記憶部が動作面に相当する。この場合、非動作面である第2記憶部には、現時点にて実行しているプログラムよりも前のバージョン(旧バージョン)のプログラムが、バックアップとして保存されている。更新装置3は、非動作面である第2記憶部に、外部サーバS1から取得した自装置用の更新プログラムを記憶する。これにより、現時点にて実行しているプログラムは、上書きされることなく、第1記憶部にて記憶されている状態を維持することができる。 
 代理ECU2は、更新プログラムを外部サーバS1から取得する(S03)。上述のとおり、代理ECU2は、車外通信装置1と同じ車外側通信線52に接続されており、外部サーバから更新装置3に当該車外側通信線52を介して、更新プログラムが送信される際、代理ECU2も、更新装置3を介することなく、更新プログラムを受信することができる。例えば、外部サーバからの更新プログラムがマルチキャストを用いて送信される場合、これら代理ECU2及び更新装置3による複数の通信ノードが、当該更新プログラムを同時に取得するものであってもよい。このように、代理ECU2は、更新装置3が更新プログラムを取得する際に、車外通信装置1と更新装置3との通信を確認することで、更新プログラムを取得するものとなる。なお、本実施形態において、代理ECU2は、更新装置3を介することなく更新プログラムを受信するとしたがこれに限定されず、更新装置3から更新プログラムを取得するものであってもよい。
 代理ECU2は、更新装置3に、要求信号を送信する(S04)。代理ECU2は、取得した更新プログラムに基づき、更新装置3が更新の対象であるか否かを判定し、更新装置3が更新の対象である場合、更新装置3を代理する処理を開始することを、前記更新装置に対し要求する要求信号を出力する。
 更新装置3は、更新対象の車載ECU4へ、当該車載ECU4用の更新プログラムを出力(送信)する(S05)。更新装置3は、外部サーバS1から取得したターゲット情報に基づき更新対象の車載ECU4を特定し、特定した車載ECU4に対し、当該車載ECU4用の更新プログラムを送信する。
 更新対象の車載ECU4は、更新装置3から取得(受信)した更新プログラムを記憶する(S06)。更新対象の車載ECU4は、更新装置3と同様に、取得した更新プログラムを非動作面に記憶することにより、現時点にて実行しているプログラム(動作面に記憶)が、上書きされることを回避することができる。
 更新装置3は、代理ECU2に、代理指示信号を送信する(S07)。更新装置3は、代理ECU2から要求信号を取得(受信)していた場合、要求信号を送信した代理ECU2に更新装置3を代理する処理を行う指示を示す代理指示信号を送信する。
  更新装置3からの代理指示信号に応答した代理ECU2は、例えば、当該代理指示信号をトリガーとし、更新装置3を代理する処理ルーチンを開始する。これにより、代理ECU2は、更新装置3にアクティベート指示を行うアクティベート指示部、アクティベート処理を行った更新装置3に対する異常検出部及び復旧制御部として機能を発揮する。
  更新装置3は、更新対象の車載ECU4へ、アクティベート指示を出力(送信)する(S08)。更新装置3は、更新対象の車載ECU4それぞれにアクティベート指示を出力し、これら車載ECU4にアクティベート処理を実行させる。
  更新対象の車載ECU4は、更新装置3から出力されたアクティベート指示に応じて、アクティベート処理を行う(S09)。更新装置3から出力されたアクティベート指示を取得(受信)した車載ECU4は、更新プログラムが記憶された記憶領域を動作面として再起動することにより、当該更新プログラムを適用するアクティベート処理を行う。
 代理ECU2は、更新装置3に対し、アクティベート指示を出力(送信)する(S10)。更新装置3は、代理ECU2から出力されたアクティベート指示に応じて、アクティベート処理を行う(S11)。代理ECU2から出力されたアクティベート指示を取得(受信)した更新装置3は、更新プログラムが記憶された記憶領域を動作面として再起動することにより、当該更新プログラムを適用するアクティベート処理を行う。
 代理ECU2は、アクティベート処理を行った更新装置3に対し、動作確認(動作不備検出)の処理を行う(S12)。代理ECU2(異常検出部)は、例えば、アクティベート処理後の更新装置3から送信される定期的な自発送信フレームの有無を監視し、当該自発送信フレームを受信した場合はアクティベート処理後の更新装置3は正常であると判定し、受信できなかった場合は異常であると判定(動作不備検出)する。又は、代理ECU2は、動作不備検出を行うためのテスト用信号をアクティベート処理後の更新装置3に送出し、当該テスト用信号に対する応答信号を受信したか否かに基づき、当該更新装置3の動作確認(動作不備検出)を行うものであってもよい。すなわち、代理ECU2は、アクティベート処理後の更新装置3から、テスト用信号に対する応答信号を受信した場合は正常であると判定し、受信できなかった場合は異常であると判定(動作不備検出)するものであってもよい。
 代理ECU2は、動作確認結果に応じて、更新装置3に対し正常通知又はロールバック指示を出力(送信)する(S13)。代理ECU2は、動作確認結果が正常である場合、正常通知を更新装置3に出力(送信)する。代理ECU2(復旧制御部)は、動作確認結果が異常(動作不備を検出)である場合、ロールバック指示を更新装置3に出力(送信)する。当該ロールバック指示は、更新装置3におけるアクティベート処理(更新プログラムの適用)が失敗したことを示す異常通知に相当する。
 更新装置3は、代理ECU2から出力されたロールバック指示に基づき、ロールバック処理を行う(S14)。代理ECU2から出力されたロールバック指示を受信した更新装置3は、更新プログラムを適用(アクティベート処理)する前に実行していたプログラム(元プログラム)を実行すべく再起動を行うことにより、ロールバック処理を行う。当該元プログラムは、更新プログラムが記憶されている記憶領域(動作面)とは、異なる記憶領域(非動作面)にバックアップとして記憶(保存)されている。更新装置3は、当該元プログラムが記憶されている記憶領域を動作面として再起動することにより、更新プログラムが記憶されている記憶領域を非動作面とし、ロールバック処理を行うことができる。
 更新装置3は、更新対象の車載ECU4へ、ロールバック指示を出力(送信)する(S15)。更新装置3は、自装置のロールバック処理した場合、更新対象の車載ECU4に対してもロールバック指示を出力することにより、これら更新装置3及び車載ECU4においてプログラムのバージョンの差異等による不整合が発生することを解消する。
 更新装置3は、自装置のロールバック処理しなかった場合、すなわち自装置のアクティベート処理が正常終了した場合であっても、更新対象の車載ECU4のうち、いずれかの車載ECU4にてアクティベート処理が失敗した場合、更新対象の全ての車載ECU4へロールバック指示を出力(送信)する。この場合、更新装置3は、更に自装置のロールバック処理を行う。これにより、更新装置3及び車載ECU4においてプログラムのバージョンの差異等による不整合が発生することを解消することができる。
 更新対象の車載ECU4は、更新装置3から出力されたロールバック指示に応じて、ロールバック処理を行う(S16)。更新対象の車載ECU4は、更新装置3と同様に、更新プログラムが記憶されている記憶領域と、元プログラムが記憶されている記憶領域とにおける動作面及び非動作面の対応関係を切り替えて再起動することにより、元プログラムの実行環境に戻すロールバック処理を行う。
 更新装置3は、更新プログラムに関する処理結果を外部サーバS1に出力(送信)する(S17)。更新装置3は、更新プログラムに関する処理の結果として、更新対象である更新装置3及び車載ECU4への更新プログラムの適用が成功した旨を示す更新成功通知、又は更新プログラムの適用が失敗しロールバックした旨を示す更新失敗通知を外部サーバS1に出力(送信)する。更新装置3は、更新プログラムに関する処理の結果を表示装置に出力し、当該処理結果を表示装置に表示させるものであってもよい。更新装置3は、当該更新プログラムの処理結果に基づき、更新対象である更新装置3及び車載ECU4に関する車両構成情報を修正するものであってもよい。
 本実施形態において、代理ECU2は、更新装置3におけるプログラムの更新処理を代理するとしたが、これに限定されず、代理ECU2は、更新対象である更新装置3及び車載ECU4におけるプログラムの更新処理の全てを代理するものであってもよい。
 図6は、実施形態1に係る代理ECU2の制御部20及び更新装置3の制御部の処理を例示するフローチャートである。更新装置3の制御部は、例えば車両Cが停止状態(IGスイッチがオフ)において、定常的に以下の処理を行う。
 更新装置3の制御部は、外部サーバS1から更新プログラムを取得する(S101)。更新装置3の制御部は、自装置用の更新プログラムを記憶する(S102)。更新装置3の制御部は、外部サーバS1から、自装置及び車載ECU4に適用するための更新プログラムを含むパッケージを取得し、自装置用の更新プログラムを、非動作面の記憶領域に記憶する。例えば、第1記憶部231が動作面であり、現時点にて実行しているプログラムが記憶されている場合、更新装置3の制御部は、非動作面である第2記憶部232に、自装置用の更新プログラムを記憶する。
 代理ECU2の制御部20は、外部サーバS1から更新プログラムを取得する(S103)。代理ECU2の制御部20は、取得した更新プログラムに基づいて、更新装置3が更新対象であると判定した場合、要求信号を更新装置3に送信する(S104)。更新装置3の制御部は、代理ECU2から要求信号を受信する(S105)。
 更新装置3の制御部は、更新対象の車載ECU4へ、当該車載ECU4用の更新プログラムを出力(送信)する(S106)。更新装置3の制御部は、外部サーバS1から取得したパッケージに含まれるターゲット情報に基づき、更新対象の車載ECU4を特定し、特定した車載ECU4に対し当該車載ECU4用の更新プログラムを送信する。
 更新装置3の制御部は、代理ECU2に代理指示信号を送信し(S107)、代理ECU2は、更新装置3から代理指示信号を受信する(S108)。その上で、更新装置3の制御部は、更新対象の車載ECU4が接続されていない車内側通信線51(セグメント)に接続されている車内通信部22への給電を停止し、当該車内通信部22による電力消費を削減するものであってもよい。更新装置3が備える車内通信部22それぞれに対し、当該車内通信部22への電力の供給及び遮断を制御するリレーが設けられており、更新装置3の制御部は、当該リレーをオフにする。これにより、更新対象の車載ECU4が接続されていない車内側通信線51(セグメント)に接続されている車内通信部22への給電を停止するものであってもよい。プログラムの更新処理は、エンジンの停止期間中に行うことを要するため、鉛バッテリー等の蓄電装置の電力を消費するものとなるところ、当該車内通信部22への通電を停止することにより、電力消費量を低減することができる。
 更新装置3の制御部は、更新対象の車載ECU4へ、アクティベート指示を出力(送信)する(S109)。更新装置3の制御部は、更新対象の車載ECU4それぞれにアクティベート指示を出力し、これら車載ECU4にアクティベート処理を実行させる。
 代理ECUの制御部20は、更新装置3に、アクティベート指示を出力し(S110)、更新装置3の制御部は、代理ECU2からのアクティベート指示を取得(受信)する(S111)。更新装置3の制御部は、アクティベート指示に応じて、アクティベート処理を行う(S112)。更新装置3の制御部は、アクティベート処理を行うことにより更新プログラムを実行(適用)し、自装置にて実行する制御プログラムPのバージョンアップを行う。更新装置3の制御部は、当該更新プログラムを実行することにより、例えば、定期的又は周期的に所定のデータ(フレーム又はメッセージ)をブロードキャスト又はマルチキャストにて出力する。
 代理ECU2は、アクティベート処理を行った(更新プログラムを適用した)更新装置3から、定期的に送信される所定のデータを受信したか否かを判定し、当該判定結果に基づき、アクティベート処理後の更新装置3において、動作不備が発生したか否かを判定する。又は、代理ECU2は、アクティベート処理を行った(更新プログラムを適用した)更新装置3に対し、テスト用信号を送信し、当該更新装置3からの応答の有無に基づき、アクティベート処理後の更新装置3において、動作不備が発生したか否かを判定するものであってもよい。代理ECU2は、アクティベート処理後の更新装置3において動作不備が発生したと判定した場合、更新装置3にロールバック指示を出力(送信)する(S113)。代理ECU2は、アクティベート処理後の更新装置3において動作不備が発生しなかった判定した場合、更新装置3に正常通知を出力(送信)する。
 更新装置3の制御部は、代理ECU2からロールバック指示を取得(受信)したか否かを判定する(S114)。代理ECU2からロールバック指示を取得した場合(S114:YES)、更新装置3の制御部は、ロールバック処理を行う(S115)。更新装置3の制御部は、代理ECU2からロールバック指示を取得した場合、更新プログラムを適用(アクティベート処理)する前に実行していたプログラム(元プログラム)を実行すべく再起動を行うことにより、ロールバック処理を行う。
 代理ECU2からロールバック指示を取得しなかった場合(S114:NO)、更新装置3の制御部は、更新対象の全ての車載ECU4のアクティベート処理が正常に行われたか否かを判定する(S1141)。更新装置3の制御部は、代理ECU2からロールバック指示を取得しなかった場合、自装置における更新プログラムの適用(アクティベート処理)は正常に完了したと判定する。又は、更新装置3の制御部は、代理ECU2から正常通知を取得した場合、自装置における更新プログラムの適用(アクティベート処理)は正常に完了したと判定するものであってもよい。その上で、更新装置3の制御部は、更新対象の全ての車載ECU4における更新プログラムの適用(アクティベート処理)が正常に完了したか否かを判定する。更新装置3の制御部は、更新対象の全ての車載ECU4それぞれに対し、例えばテスト用の通信データを送信し、当該通信データに対する応答データを受信したか否かに基づき、これら車載ECU4それぞれのアクティベート処理が正常に完了したか否かを判定するものであってもよい。
 更新対象の全ての車載ECU4のアクティベート処理が正常に行われなかったと判定した場合、すなわち更新対象の車載ECU4のうち、いずれか1つの車載ECU4でもアクティベート処理が正常に行われなかったと判定した場合(S1141:NO)、又は、自装置のロールバック処理を行った(S115)後、更新対象の車載ECU4へ、ロールバック指示を出力(送信)する(S116)。更新対象の車載ECU4は、更新装置3から出力されたロールバック指示に応じて、ロールバック処理を行う。
 更新対象の全ての車載ECU4のアクティベート処理が正常に行われた判定した場合(S1141:YES)、又は、更新対象の車載ECU4へ、ロールバック指示を出力した(S116)後、更新装置3の制御部は、更新プログラムに関する処理結果を外部サーバS1に出力(送信)する(S117)。更新装置3の制御部は、更新プログラムに関する処理結果を外部サーバS1及び表示装置に出力し、更に当該処理結果に基づき、更新対象である更新装置3及び車載ECU4に関する車両構成情報を修正するものであってもよい。また、更新装置3の処理部は、更新対象の車載ECU4へ、当該車載ECU4用の更新プログラムを出力(送信)後、更新対象の全ての車載ECU4のアクティベート処理が正常に行われたか否かを判定し、アクティベート処理が正常に行われた場合、代理ECU2に代理指示信号を送信してもよい。
(実施形態2)
 図7は、実施形態2に係る車載更新システムSの構成を例示する模式図である。実施形態2に係る代理ECUは、車内側通信線51に接続される。また、実施形態1に係る更新装置3は、自装置の更新の際に通信の中継機能を保持せず、代理ECU2と車載ECU4とは通信を行えなかったが、これに限られるものではない。本実施形態に係る更新装置3は、自装置の更新の際に通信の中継機能を保持し、代理ECU2と、代理ECUが繋がれる車内側通信線51(セグメント)とは別の車内側通信線51(セグメント)に接続される車載ECU4は、該中継機能を介して通信をすることが可能である。
 図8は、実施形態2に係るプログラムの更新処理における更新装置3、更新対象の車載ECU4及び代理ECU2等の状態遷移を例示する説明図である。代理ECU2は、アクティベート処理後の更新装置3に動作不備を検出した場合(動作不備:有)、更新装置3にロールバック指示を送信すると共に、更新装置3の中継機能を介して車載ECU4にもロールバック指示を送信する。図8に示すように、本実施形態によれば、代理ECU2による一段階のロールバック指示により、更新装置3及び車載ECU4のロールバックを行うことが可能である。
 図9は、実施形態2に係る更新装置3、更新対象の車載ECU4及び代理ECU2等による処理の流れ(シーケンス)を例示する説明図である。S21~S32は、図5におけるS01、S02、及びS05~S14と同様の処理である。代理ECU2は、更新装置3にロールバック指示を出力(S31)すると同時に、又は出力した後、車載ECU4にロールバック指示を出力する(S33)。車載ECU4は、代理ECU2から出力されたロールバック指示に応じて、ロールバック処理を行う(S34)。更新装置3は、更新プログラムに関する処理結果を外部サーバS1に出力(送信)する(S35)。
 図10は、実施形態1に係る代理ECU2の制御部20及び更新装置3の制御部の処理を例示するフローチャートである。S201~S211は、図6におけるS101,S102、及びS106~S114と同様の処理である。代理ECU2の制御部20は、更新装置3に、ロールバック指示を出力(S210)後、更新装置3の中継機能を介して、車載ECU4へ、ロールバック指示を出力する(S213)。
 更新装置3の制御部は、代理ECU2からロールバック指示を取得しなかった場合(S211:NO)、更新対象の全ての車載ECU4のアクティベート処理が正常に行われたか否かを判定する(S2111)。更新対象の全ての車載ECU4のアクティベート処理が正常に行われた判定した場合(S2111:YES)、更新装置3の制御部は、更新プログラムに関する処理結果を外部サーバS1に出力(送信)する(S214)。更新対象の全ての車載ECU4のアクティベート処理が正常に行われなかったと判定した場合、すなわち更新対象の車載ECU4のうち、いずれか1つの車載ECU4でもアクティベート処理が正常に行われなかったと判定した場合(S2111:NO)、更新装置3の処理部は、車載ECU4へロールバック指示を出力し(S2112)、更新プログラムに関する処理結果を外部サーバS1に出力(送信)する(S214)。
 以上の処理によれば、更新装置3のアクティベート処理が正常に行われなかった場合、代理ECU2が更新装置3及び車載ECU4にロールバック指示を出力し、更新装置3のアクティベート処理が正常に行われ、車載ECU4のアクティベート処理が正常に行われなかった場合、更新装置3が車載ECU4へロールバック指示を出力する。これにより、状況に応じて、効率的にロールバック処理が行われることが可能である。
 今回開示した実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。各実施例にて記載されている技術的特徴は互いに組み合わせることができ、本発明の範囲は、請求の範囲内での全ての変更及び請求の範囲と均等の範囲が含まれることが意図される。
 以上の実施形態1または2を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
 車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と、前記更新装置に通信可能に接続される車載装置とを含む車載更新システムであって、前記車載装置は、前記更新装置におけるプログラムを更新するための処理を行う制御部を備え、前記制御部は、前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する車載更新システム。
 本態様にあっては、更新装置は、車載装置(代理ECU)に対し、自装置におけるプログラム更新(更新プログラムの適用等)を担わせることにより、更新装置におけるプログラム更新処理を円滑に行うことができる。
 C 車両
 S 車載更新システム
 S1 外部サーバ(OTAサーバ)
 S11 記憶部
 N 車外ネットワーク
 1 車外通信装置
 2 代理ECU(車載装置)
 20 制御部
 21 記憶部
 211 記録媒体
 22 車内通信部
 P 制御プログラム(プログラム製品)
 3 更新装置(OTAマスタ)
 4 車載ECU
 5 車載ネットワーク
 51 車内側通信線(セグメント)
 52 車外側通信線
 

Claims (11)

  1.  車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続される車載装置であって、
     前記更新装置におけるプログラムを更新するための処理を行う制御部を備え、
     前記制御部は、
     前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる処理の少なくとも1部を代理する
     車載装置。
  2.  前記代理する処理は、
     前記更新装置が取得した前記更新プログラムを、前記更新装置自身に適用するアクティベート処理を含む
     請求項1に記載の車載装置。
  3.  前記代理する処理は、
     アクティベート処理の結果に応じたロールバック処理を含む
     請求項1又は請求項2に記載の車載装置。
  4.  前記更新装置の記憶部には、前記代理する処理を行う代理ECUとして前記車載装置を特定する情報が、予め記憶されている
     請求項1から請求項3のいずれか1項に記載の車載装置。
  5.  前記制御部は、
     前記更新装置から、前記代理する処理を行う指示を示す指示信号を取得し、
     取得した前記指示信号に応じて、前記代理する処理を開始する
     請求項1から請求項4のいずれか1項に記載の車載装置。
  6.  前記代理する処理は、前記車載ECUのプログラムを更新するための処理を含み、
     前記更新装置は、車載ECU間にて送受信されるデータを中継する中継機能を有し、
     前記制御部は、
     前記更新プログラムによる更新対象に前記更新装置が含まれる際、前記更新装置が中継機能を維持するか否かに応じて、前記車載ECUのプログラムを更新するための処理を異ならせる
     請求項1から請求項5のいずれか1項に記載の車載装置。
  7.  前記更新装置には、前記外部サーバ側の通信線と、前記車載ECU側の通信線とが接続され、
     前記外部サーバ側の通信線に接続される
     請求項1から請求項6のいずれか1項に記載の車載装置。
  8.  前記制御部は、
     前記更新装置を介することなく、外部サーバから前記更新プログラムを取得し、
     取得した前記更新プログラムに基づいて、前記代理する処理を開始することを、前記更新装置に対し要求する要求信号を出力する
     請求項7に記載の車載装置。
  9.  前記外部サーバ側の通信線には、外部サーバと無線通信するための車外通信装置が接続され、
     前記車外通信装置に含まれる
     請求項7又は請求項8に記載の車載装置。
  10.  車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続されるコンピュータに、
     前記更新装置におけるプログラムを更新するための処理を行い、
     前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する
     処理を実行させるプログラム。
  11.  車外の外部サーバから取得した更新プログラムにより車両に搭載される車載ECUのプログラムを更新するための処理を行う更新装置と通信可能に接続されるコンピュータに、
     前記更新装置におけるプログラムを更新するための処理を行い、
     前記更新プログラムによる更新対象に前記更新装置が含まれる場合、前記更新装置にて行われる更新するための処理の少なくとも1部を代理する
     処理を実行させるプログラムの更新方法。
     
PCT/JP2023/005620 2022-03-09 2023-02-17 車載装置、プログラム、及びプログラムの更新方法 WO2023171307A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022036515A JP2023131640A (ja) 2022-03-09 2022-03-09 車載装置、プログラム、及びプログラムの更新方法
JP2022-036515 2022-03-09

Publications (1)

Publication Number Publication Date
WO2023171307A1 true WO2023171307A1 (ja) 2023-09-14

Family

ID=87936806

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/005620 WO2023171307A1 (ja) 2022-03-09 2023-02-17 車載装置、プログラム、及びプログラムの更新方法

Country Status (2)

Country Link
JP (1) JP2023131640A (ja)
WO (1) WO2023171307A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081470A (ja) * 2016-11-16 2018-05-24 三菱電機株式会社 プログラムの更新制御システムおよびプログラムの更新制御方法
JP2018120422A (ja) * 2017-01-25 2018-08-02 ルネサスエレクトロニクス株式会社 車載通信システム、ドメインマスタ、及びファームウェア更新方法
WO2018230084A1 (ja) * 2017-06-13 2018-12-20 住友電気工業株式会社 更新制御装置、制御方法、およびコンピュータプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081470A (ja) * 2016-11-16 2018-05-24 三菱電機株式会社 プログラムの更新制御システムおよびプログラムの更新制御方法
JP2018120422A (ja) * 2017-01-25 2018-08-02 ルネサスエレクトロニクス株式会社 車載通信システム、ドメインマスタ、及びファームウェア更新方法
WO2018230084A1 (ja) * 2017-06-13 2018-12-20 住友電気工業株式会社 更新制御装置、制御方法、およびコンピュータプログラム

Also Published As

Publication number Publication date
JP2023131640A (ja) 2023-09-22

Similar Documents

Publication Publication Date Title
US11392305B2 (en) Vehicle information communication system
CN109804355B (zh) 软件更新装置、软件更新方法、软件更新系统
JP7160111B2 (ja) 監視装置、監視プログラム及び監視方法
US11507365B2 (en) On-board update device, update processing program, program update method, and on-board update system
WO2020080273A1 (ja) 車載更新装置、更新処理プログラム及び、プログラムの更新方法
JP7192415B2 (ja) プログラム更新システム及び更新処理プログラム
CN113613953A (zh) 车载更新装置、更新处理程序、及程序的更新方法
JP7331818B2 (ja) 車載更新装置、更新処理プログラム及び、プログラムの更新方法
JP7184855B2 (ja) ソフトウェア更新装置、ソフトウェア更新方法
WO2023171307A1 (ja) 車載装置、プログラム、及びプログラムの更新方法
WO2023106072A1 (ja) 車載装置、プログラム、プログラムの更新方法、及び車載更新システム
US20220391194A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
JP7484791B2 (ja) Otaマスタ、更新制御方法、及び更新制御プログラム
EP3961379B1 (en) Software update device, software update method, non-transitory storage medium, and vehicle
WO2021205825A1 (ja) 車載装置、情報処理方法及びコンピュータプログラム
WO2021192961A1 (ja) 車載中継装置、情報処理方法及びプログラム
US20220126770A1 (en) On-board communication device, program, and communication method
WO2023195460A1 (ja) 車載装置、コンピュータプログラム及びプログラム更新方法
WO2023063068A1 (ja) 車載装置、プログラム及び、プログラムの更新方法
US20240028326A1 (en) Vehicular electronic control device, rewriting program, and data structure
WO2023136127A1 (ja) 中継装置、プログラム及び、プログラムの更新方法
JP7484814B2 (ja) 車両用電子制御装置及び更新プログラム
EP3933572B1 (en) Software update device, software update method, non-transitory storage medium, and vehicle
JP2022049975A (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: 23766486

Country of ref document: EP

Kind code of ref document: A1