WO2017119345A1 - 車載更新装置、更新システム及び更新処理プログラム - Google Patents

車載更新装置、更新システム及び更新処理プログラム Download PDF

Info

Publication number
WO2017119345A1
WO2017119345A1 PCT/JP2016/088755 JP2016088755W WO2017119345A1 WO 2017119345 A1 WO2017119345 A1 WO 2017119345A1 JP 2016088755 W JP2016088755 W JP 2016088755W WO 2017119345 A1 WO2017119345 A1 WO 2017119345A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
communication
divided data
vehicle
data
Prior art date
Application number
PCT/JP2016/088755
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 株式会社オートネットワーク技術研究所
Priority to CN201680074875.3A priority Critical patent/CN108475222A/zh
Priority to US15/777,834 priority patent/US20180373522A1/en
Publication of WO2017119345A1 publication Critical patent/WO2017119345A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Definitions

  • the present invention relates to an in-vehicle update device, an update system, and an update processing program that perform an update process of the in-vehicle communication device by transmitting an update program or data to the in-vehicle communication device.
  • a vehicle includes a plurality of in-vehicle communication devices such as an ECU (Electronic Control Unit), and the plurality of ECUs are connected via a communication line such as a CAN (Controller Area Network) bus to transmit and receive information to and from each other. It is possible.
  • ECU Electronic Control Unit
  • a communication line such as a CAN (Controller Area Network) bus to transmit and receive information to and from each other. It is possible.
  • Each ECU reads and executes a program stored in a storage unit such as a flash memory or an EEPROM (ElectricallyrasErasable Programmable Read Only Memory) by a processing device such as a CPU (Central Processing Unit), thereby performing various control such as vehicle control Is being processed.
  • a storage unit such as a flash memory or an EEPROM (ElectricallyrasErasable Programmable Read Only Memory)
  • CPU Central Processing Unit
  • the program or data stored in the storage unit of the ECU needs to be updated to be rewritten with a new program or data, for example, when it becomes necessary to add a function, correct a defect, or upgrade a version.
  • an update program or data is transmitted to the ECU to be updated by a communication line.
  • Patent Document 1 a rewriting device and a plurality of rewriting target ECUs are connected by the same network bus, and the rewriting device uses a predetermined specific ID for all the rewriting target ECUs.
  • a program rewriting method has been proposed in which data is transmitted at the same time, the rewriting target ECU generates individual IDs using the individual identification data, and transmits the data to the rewriting device using the generated IDs.
  • the present invention has been made in view of such circumstances, and an object of the present invention is to provide an in-vehicle update device capable of efficiently performing an update process for an in-vehicle communication device connected to a plurality of communication lines. To provide a system and an update processing program.
  • An in-vehicle update device is an in-vehicle update device that is connected to an in-vehicle communication device via at least two communication lines and performs processing for updating a program or data stored in a storage unit of the in-vehicle communication device.
  • a storage unit for storing a plurality of update divided data obtained by dividing an update program or data to be transmitted to the in-vehicle communication device, a communication state determination unit for determining a communication state for each communication line, and the communication state determination
  • a transmission processing unit that performs a process of distributing and transmitting a plurality of update divided data stored in the storage unit to the in-vehicle communication device via the at least two communication lines according to a determination result of the unit. It is characterized by.
  • the communication state determination unit determines a communication load for each communication line, and the transmission processing unit includes the plurality of communication lines on the at least two communication lines according to the communication load.
  • the update divided data is distributed.
  • the in-vehicle update device includes a communication unit that communicates with the storage device that stores the update divided data, and the update divided data received from the storage device via the communication unit. And a storage processing unit for performing processing stored in the storage unit.
  • the update system includes an in-vehicle communication device having a first storage unit that is connected to at least two communication lines and stores a program or data, and the in-vehicle communication device via the at least two communication lines.
  • An in-vehicle update device that is connected and performs a process of updating a program or data stored in the first storage unit of the in-vehicle communication device, wherein the in-vehicle update device transmits to the in-vehicle communication device
  • a storage unit that stores a plurality of update divided data obtained by dividing an update program or data, a communication state determination unit that determines a communication state for each communication line, and a determination result of the communication state determination unit
  • the update system further includes a storage device storing the update divided data
  • the in-vehicle update device includes a communication unit that communicates with the storage device that stores the update divided data.
  • a storage processing unit that performs a process of storing the update divided data received from the storage device via the communication unit in the storage unit.
  • the storage device attaches order information to the update divided data and transmits the order information to the in-vehicle update device, and the storage processing unit of the in-vehicle update device has the order information
  • the attached divided data for update is stored in the storage unit.
  • the update system includes a second storage unit that temporarily stores the update divided data received from the in-vehicle update device by the in-vehicle communication device via the at least two communication lines; Based on the order information attached to the updated divided data stored in the second storage unit, the updated divided data stored in the second storage unit is used to store the updated divided data in the first storage unit. And an update processing unit for performing processing for updating the program or data.
  • an update processing program is an in-vehicle update device that is connected to an in-vehicle communication device via at least two communication lines and performs processing for updating a program or data stored in a storage unit of the in-vehicle communication device.
  • a storage processing unit for performing processing for storing a plurality of update divided data obtained by dividing an update program or data to be transmitted to the in-vehicle communication device in a storage unit, and a communication state determination for determining a communication state for each communication line And a plurality of update divided data stored in the storage unit are distributed and transmitted to the in-vehicle communication device via the at least two communication lines according to the determination result of the communication unit and the communication state determination unit It is characterized by operating as a transmission processing unit.
  • an in-vehicle communication device connected to at least two communication lines transmits an update program or data to the in-vehicle communication device connected to the two communication lines. Perform update processing.
  • the in-vehicle update device stores the update program or data divided into a plurality of pieces as update divided data in the storage unit.
  • the in-vehicle update device determines a communication state for each communication line, appropriately distributes a plurality of update divided data to a plurality of communication lines according to the determined communication state, and distributes the plurality of update divided data to a plurality of communication lines. To the in-vehicle communication device.
  • the in-vehicle update device can efficiently use the plurality of communication lines and efficiently transmit the plurality of pieces of update divided data to the in-vehicle communication device at high speed.
  • the in-vehicle update device determines the communication load for each communication line for a plurality of communication lines connected to the in-vehicle communication device to be updated.
  • the in-vehicle update device can distribute the update divided data according to the determined communication load, for example, preferentially distribute the update divided data to a low-load communication line.
  • the vehicle-mounted update apparatus can use a some communication line efficiently.
  • a storage device different from the in-vehicle update device stores the divided data for update.
  • the divided data for update is transmitted from the storage device to the in-vehicle update device, and this divided data for update is given from the in-vehicle update device to the in-vehicle communication device.
  • the in-vehicle update device does not need to store the update divided data, and may store the update divided data given from the storage device temporarily.
  • the in-vehicle update device and the storage device may perform either wired or wireless communication, and in the case of wired communication, the storage device may be detachable from the in-vehicle update device via a communication cable or the like.
  • the storage device attaches order information for restoring the divided data for update obtained by dividing the program or data for update to the in-vehicle update device.
  • the in-vehicle update device receives the update divided data from the storage device
  • the in-vehicle update device stores the update divided data together with the order information in the storage unit.
  • the in-vehicle update device transmits the update divided data to which the order information is attached to the in-vehicle communication device.
  • the in-vehicle communication device that has received the update divided data via the plurality of communication lines can use the original program from the plurality of update divided data even when the order of the update divided data is different from the reception order. Or the data can be restored.
  • the in-vehicle communication device temporarily stores the divided data for update received from the in-vehicle update device via a plurality of communication lines, separately from the first storage unit storing the program or data used for its own processing.
  • a second storage unit The in-vehicle communication device performs a process of updating the program or data stored in the first storage unit using the update divided data stored in the second storage unit based on the order information attached to the update divided data. Do. Thereby, the update process of a program or data can be reliably performed using the divided data for update received in random order via a plurality of communication lines.
  • the in-vehicle update device appropriately distributes the plurality of update divided data to the plurality of communication lines according to the communication state for each communication line, and transmits the update divided data to the update target in-vehicle communication device.
  • the configuration it is possible to efficiently use the plurality of communication lines and transmit the divided data for update efficiently and at high speed, so that the in-vehicle communication device connected to the plurality of communication lines is efficiently updated. be able to.
  • FIG. 1 is a schematic diagram illustrating a configuration example of an update system according to the present embodiment.
  • the update system according to the present embodiment includes a communication system in which a plurality of ECUs 3a to 3d, 10 mounted on a vehicle 1 can communicate with each other via communication lines 2a to 2c and a gateway 30.
  • the gateway 30 updates the programs or data stored in the ECUs 3a to 3d and 10.
  • the vehicle 1 is provided with four ECUs 3 a to 3 d and one ECU 10.
  • the ECU 3a is connected to the communication line 2a
  • the ECU 3b is connected to the communication line 2b
  • the ECUs 3c and 3d are connected to the communication line 2c.
  • Each of the ECUs 3a to 3d can transmit / receive information to / from one communication line 2a to 2c to which the ECU 3a to 3d is connected.
  • the ECU 10 is connected to the two communication lines 2a and 2b, and can send and receive information to and from both communication lines 2a and 2b.
  • the ECU 10 can use the communication line 2a when communicating with the ECU 3a, and can use the communication line 2b when communicating with the ECU 3b.
  • the communication lines 2a to 2c to which the ECUs 3a to 3d and 10 are connected are connected to the gateway 30, respectively.
  • the gateway 30 is a device that relays communication between the communication lines 2a to 2c.
  • the gateway 30 relays communication by transmitting information received on any of the three communication lines 2a to 2c from the other communication lines 2a to 2c.
  • the ECU 3a can communicate with the ECU 3b via the communication line 2a, the gateway 30, and the communication line 2b.
  • the gateway 30 is connected to an OBD (On-Board Diagnostics) connector 5 arranged at an appropriate position of the vehicle 1 via a communication line 6.
  • the OBD connector 5 is a connector for an external device to acquire various information based on the self-diagnosis function of the vehicle 1.
  • a reprogramming tool hereinafter referred to as a reprotool
  • a reprotool a reprogramming tool provided in a dealer or a maintenance shop of the vehicle 1 is connected to the OBD connector 5 of the vehicle 1 via a dedicated communication cable.
  • the repro tool 50 gives the update program or data for the ECUs 3a to 3d, 10 to the gateway 30, and the gateway 30 sends the received update program or data to the target ECUs 3a to 3d, 10 for reception.
  • the ECUs 3a to 3d and 10 are updated.
  • FIG. 2 is a block diagram showing the configuration of the ECU 10.
  • the ECU 10 includes a processing unit 11, two communication units 12a and 12b, a flash memory 13, a RAM (Random Access Memory) 14, and the like.
  • the processing unit 11 is configured using an arithmetic processing device such as a CPU.
  • the processing unit 11 reads out and executes an application program (described as an application in the drawing) 13b stored in the flash memory 13, thereby performing a control process of the vehicle 1 and various arithmetic processes.
  • an application program described as an application in the drawing
  • the processing unit 11 reads out and executes a boot loader program (described as a boot loader in the drawing) 13a stored in the flash memory 13, thereby performing an initial setting process of the ECU 10, an update process of the application program 13b, and the like. .
  • a boot loader program (described as a boot loader in the drawing) 13a stored in the flash memory 13, thereby performing an initial setting process of the ECU 10, an update process of the application program 13b, and the like.
  • an update processing unit 11a that performs update processing of the application program 13b is realized as a software functional block.
  • the ECU 10 has two communication units 12a and 12b, and can communicate with the other ECUs 3a to 3d via the two communication lines 2a and 2b.
  • the communication unit 12a is connected to the communication line 2a and performs communication via the communication line 2a.
  • the communication unit 12b is connected to the communication line 2b and performs communication via the communication line 2b.
  • the communication units 12a and 12b perform transmission of information by converting the information for transmission given from the processing unit 11 into electric signals and outputting them to the communication lines 2a and 2b, and also sample the signals of the communication lines 2a and 2b. Information is received and the received information is given to the processing unit 11. When performing information transmission, the processing unit 11 may appropriately determine which of the communication units 12a and 12b performs transmission.
  • the ECUs 3a to 3d, 10 and the gateway 30 perform communication according to the CAN communication protocol, for example, via the communication lines 2a to 2c.
  • the communication lines 2a to 2c are so-called CAN buses, and the communication units 12a and 12b can be configured using a CAN controller.
  • the flash memory 13 is a non-volatile rewritable memory element, and stores programs such as a boot loader program 13a and an application program 13b. Although not shown, data necessary for executing these programs is stored in the flash memory 13.
  • the processing unit 11 can perform various processes by reading and executing these programs from the flash memory 13. The processing unit 11 can erase and write data to the flash memory 13.
  • the RAM 14 is configured using a memory element such as SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory).
  • the processing unit 11 can read and write data from and to the RAM 14.
  • the RAM 14 temporarily stores information generated during the arithmetic processing performed by the processing unit 11. Further, for example, the RAM 14 temporarily stores information received by the communication units 12a and 12b.
  • FIG. 3 is a block diagram showing the configuration of the gateway 30.
  • the gateway 30 according to the present embodiment includes a processing unit 31, communication units 32a to 32c, a flash memory 33, a RAM 34, an OBD communication unit 35, and the like.
  • the processing unit 31 is configured using an arithmetic processing device such as a CPU.
  • the processing unit 31 reads and executes the application program 33b stored in the flash memory 33, thereby relaying communication between the communication lines 2a to 2c, updating the application program 13b of the ECUs 3a to 3d, 10, and the like. I do.
  • a relay processing unit 31a that performs processing related to communication relay and an update processing unit 31b that performs processing related to updating of the ECUs 3a to 3d, 10 have software functional blocks.
  • the processing unit 31 reads and executes the boot loader program 33a stored in the flash memory 33, thereby performing an initial setting process of the gateway 30, an update process of its own application program 33b, and the like.
  • the gateway 30 has three communication units 32a to 32c, and the communication units 32a to 32c are configured using, for example, a CAN controller.
  • the communication unit 32a is connected to the communication line 2a and performs communication via the communication line 2a.
  • the communication unit 32b is connected to the communication line 2b and performs communication via the communication line 2b.
  • the communication unit 32c is connected to the communication line 2c and performs communication via the communication line 2c.
  • the communication units 32a to 32c transmit information by converting the information for transmission given from the processing unit 31 into electrical signals and output them to the communication lines 2a to 2c, and also sample the signals of the communication lines 2a to 2c Thus, the information is received, and the received information is given to the processing unit 31.
  • the relay processing unit 31a of the processing unit 31 receives information from any of the communication units 32a to 32c
  • the relay processing unit 31a relays the communication by transmitting this information from the other communication units 32a to 32c.
  • the flash memory 33 is a rewritable nonvolatile memory element, and stores programs such as a boot loader program 33a and an application program 33b. Although not shown, data necessary for executing these programs is stored in the flash memory 33.
  • the processing unit 31 can perform various processes by reading and executing these programs from the flash memory 33. The processing unit 31 can erase and write data to the flash memory 33.
  • the RAM 34 is configured using a memory element such as SRAM or DRAM, for example.
  • the processing unit 31 can read and write data from and to the RAM 34.
  • the RAM 34 temporarily stores information generated during the arithmetic processing performed by the processing unit 31.
  • the RAM 34 temporarily stores information received by the communication units 32a to 32c.
  • the RAM 34 temporarily stores information received from the repro tool 50 via the OBD connector 5.
  • the OBD communication unit 35 is connected to the OBD connector 5 through the communication line 6.
  • the OBD communication unit 35 communicates with the repro tool 50 connected to the OBD connector 5.
  • the communication between the OBD communication unit 35 of the gateway 30 and the repro tool 50 via the OBD connector 5 may be in accordance with a CAN communication protocol, or may be in accordance with a communication protocol other than this.
  • the OBD communication unit 35 transmits information by converting the information for transmission given from the processing unit 31 into an electric signal and outputs the signal to the communication line 6, and samples and acquires the signal of the communication line 6. To receive the information and give the received information to the processing unit 31.
  • FIG. 4 is a block diagram showing the configuration of the repro tool 50.
  • the repro tool 50 according to the present embodiment is a portable device provided in, for example, a dealer of the vehicle 1 or a maintenance factory, and updates the application programs 13b and 33b of the ECUs 3a to 3d and 10 of the vehicle 1 (re-installation). Device for programming).
  • An operator downloads and stores update data from the server device or the like to the repro tool 50 when the vehicle 1 is maintained or inspected, and the repro tool 50 is connected to the OBD connector 5 of the vehicle 1 via a dedicated communication cable. Connect to.
  • the repro tool 50 After performing a predetermined process such as an authentication process between the repro tool 50 and the gateway 30, the repro tool 50 transmits the downloaded update data to the gateway 30, and the application programs 13b of the ECUs 3a to 3d, 10
  • the update of 33b is started.
  • the repro tool 50 includes a processing unit 51, a storage unit 52, an OBD communication unit 53, and the like.
  • the processing unit 51 is configured using an arithmetic processing device such as a CPU.
  • the processing unit 51 reads out and executes a program stored in the storage unit 52 or a ROM (Read Only Memory) (not shown) to perform various processes related to the update of the ECUs 3a to 3d and 10.
  • an update processing unit 51a that performs update processing of the ECUs 3a to 3d, 10 is realized as a software functional block by executing a program.
  • the storage unit 52 may be configured using a non-volatile memory element such as flash memory or EEPROM, or may be configured using a volatile memory element such as SRAM or DRAM, and may be a magnetic disk such as a hard disk. You may comprise using the memory
  • the storage unit 52 stores reprogramming data (hereinafter referred to as reprodata) 52a used for updating the ECUs 3a to 3d and 10.
  • the update process according to the present embodiment is a process for replacing (overwriting) a part or all of the application program 13b stored in the flash memory 13 of the ECU 10 with a new application program, for example.
  • the repro data 52a downloaded and stored in the storage unit 52 of the repro tool 50 is a new application program to be replaced.
  • the OBD communication unit 53 has a communication cable connected to the OBD connector 5 of the vehicle 1.
  • the communication cable may be configured to be detachable from the OBD communication unit 53, or may be configured to be fixed to the OBD communication unit 53.
  • the OBD communication unit 53 communicates with the gateway 30 of the vehicle 1 while being connected to the OBD connector 5 of the vehicle 1 via a communication cable.
  • the OBD communication unit 53 performs transmission of information by converting the information for transmission given from the processing unit 51 into an electrical signal and outputs it to the communication cable, and also samples and acquires the signal on the communication cable. To receive the information and give the received information to the processing unit 51.
  • ⁇ Update process> When updating the ECU 10 of the vehicle 1, for example, an operator such as a dealer or a maintenance shop performs an operation of storing desired repro data 52 a in the storage unit 52 of the repro tool 50.
  • the repro data 52a may be downloaded from the server device or the like to the repro tool 50 by wireless or wired communication, for example, and is acquired by the repro tool 50 via a recording medium such as a memory card or an optical disk. It may be a thing.
  • the operator After storing the repro data 52 a in the storage unit 52, the operator connects the communication cable of the repro tool 50 to the OBD connector 5 of the vehicle 1. As a result, an authentication process is performed between the repro tool 50 and the gateway 30 of the vehicle 1. When the authentication process is successful, the repro tool 50 and the gateway 30 can communicate with each other, and an update process can be performed. It becomes.
  • the update processing unit 51 a of the repro tool 50 transmits a request to perform the update process from the OBD communication unit 53 to the gateway 30 of the vehicle 1.
  • the update processing unit 51a of the repro tool 50 starts the update processing.
  • the update processing unit 51 a reads the repro data 52 a stored in the storage unit 52 and transmits it from the OBD communication unit 53 to the gateway 30.
  • FIG. 5 is a schematic diagram for explaining the transmission of the repro data 52 a by the repro tool 50.
  • the repro data 52a stored in the storage unit 52 of the repro tool 50 is a data group in which a replacement application program is divided into data of a predetermined length (for example, several bytes to several bytes).
  • the application program is divided into N pieces and shown as repro data 1 to N.
  • the application program divided in advance is stored in the storage unit 52 of the repro tool 50.
  • the present invention is not limited to this, and the repro tool 50 divides the application program. You may go.
  • the update processing unit 51a of the repro tool 50 sequentially transmits the divided data to the gateway 30 by sequentially reading the repro data divided from the storage unit 52 (hereinafter referred to as divided data) and giving it to the OBD communication unit 53. At this time, the update processing unit 51a gives order information to the divided data.
  • the assigned order information is stored in, for example, a header or a footer, and is transmitted from the repro tool 50 to the gateway 30 together with the divided data.
  • the repro tool 50 may notify the gateway 30 of the number of update application programs divided and transmitted, that is, the value of N in FIG.
  • FIG. 6 is a flowchart showing the procedure of the repro data 52a transmission process performed by the repro tool 50.
  • the update processing unit 51a of the repro tool 50 transmits a request to perform update processing from the OBD communication unit 53 to the gateway 30 (step S1).
  • the update processing unit 51a determines whether or not the response given from the gateway 30 in response to this request permits the update process (step S2).
  • the update processing unit 51a ends the update process.
  • the update processing unit 51a When permission to perform update processing is given from the gateway 30 (S2: YES), the update processing unit 51a reads one of the divided data from the storage unit 52 (step S3). The update processing unit 51a gives order information to the read divided data (step S4). The update processing unit 51a transmits the divided data to the gateway 30 by providing the divided data together with the order information to the OBD communication unit 53 (step S5). The update processing unit 51a determines whether or not transmission of all divided data of the repro data 52a stored in the storage unit 52 has been completed (step S6). If the transmission of all the divided data has not been completed (S6: NO), the update processing unit 51a returns the process to step S3 and transmits the next divided data. When transmission of all the divided data is finished (S6: YES), the update processing unit 51a finishes the update process.
  • the gateway 30 to which the update process request is given from the repro tool 50 via the OBD connector 5 determines whether or not to permit the update process based on, for example, the state of the ignition switch of the vehicle 1 or the detection results of various sensors. And the determination result is transmitted to the repro tool 50 as a response.
  • the gateway 30 may be configured not to permit the update process when it is determined that the vehicle 1 is traveling, and to permit the update process when it is determined that the vehicle 1 is not traveling.
  • the repro tool 50 When the response permitting the update process is transmitted from the gateway 30 to the repro tool 50, the repro tool 50 starts transmitting the divided data of the repro data 52a as described above.
  • the update processing unit 31 b of the gateway 30 receives the divided data transmitted from the repro tool 50 by the OBD communication unit 35 and stores the received divided data in the RAM 34.
  • the update processing unit 31b calculates the load factor of each of the communication lines 2a and 2b as the communication state, and determines the usage rate of the communication lines 2a and 2b used for the update process according to the calculated load factor. .
  • the update processing unit 31b checks the time during which the communication lines 2a and 2b have been used within a predetermined time (messages are transmitted and received), and calculates the ratio of the usage time with respect to the predetermined time as a load factor.
  • the ECU to be updated is connected to the three communication lines 2a to 2c, the load factor of the communication line 2a is X%, the load factor of the communication line 2b is Y%, and the load of the communication line 2c
  • FIG. 7 is a flowchart showing the procedure of the reception process of the repro data 52a performed by the gateway 30.
  • the update processing unit 31b of the gateway 30 determines whether or not the OBD communication unit 35 has received a request to perform update processing from the repro tool 50 (step S11). When the update processing request is not received (S11: NO), the update processing unit 31b stands by until the request is received. When the update processing request is received (S11: YES), the update processing unit 31b transmits a response indicating that the update processing is permitted from the OBD communication unit 35 to the repro tool 50 (step S12). In this flowchart, the processing procedure when the update process is not permitted is omitted.
  • the update processing unit 31b determines whether or not the divided data of the repro data 52a is received from the repro tool 50 by the OBD communication unit 35 (step S13). When the divided data is not received (S13: NO), the update processing unit 31b stands by until the divided data is received. When the divided data is received (S13: YES), the update processing unit 31b stores the received divided data in the RAM 34 (along with the order information attached to the divided data) (step S14). The update processing unit 31b determines whether or not all the divided data of the repro data 52a has been received (step S15). If all the divided data has not been received (S15: NO), the update processing unit 31b returns the process to step S13 and continues to receive the divided data. When all the divided data have been received (S15: YES), the update processing unit 31b ends the reception process.
  • FIG. 8 is a flowchart showing the procedure of the transmission process of the repro data 52a performed by the gateway 30, and is a process performed in parallel with the reception process described above after performing an authorization response to the update process request from the repro tool 50. is there.
  • the update processing unit 31b of the gateway 30 examines the time during which communication is performed during a predetermined time for the plurality of communication lines 2a and 2b to which the ECU 10 to be updated is connected, thereby loading the communication lines 2a and 2b. Is calculated (step S21).
  • the update processing unit 31b reads out an upper limit of a predetermined load factor (Step S22).
  • the update processing unit 31b calculates the margin of each of the communication lines 2a and 2b based on the load factor calculated in step S21 and the upper limit read in step S22 (step S23).
  • the update processing unit 31b determines the distribution ratio of the divided data to the plurality of communication lines 2a and 2b based on the calculated margins of the communication lines 2a and 2b (step S24).
  • the update processing unit 31b determines whether or not the divided data is stored in the RAM 34 (step S25). When the divided data is not stored (S25: NO), the update processing unit 31b waits until the divided data is received from the repro tool 50 and stored in the RAM 34. When the divided data is stored (S25: YES), the update processing unit 31b reads one piece of divided data from the RAM 34 (step S26). At this time, it is preferable that the update processing unit 31b checks the order information attached to the divided data and reads the divided data with the earliest order. Based on the distribution ratio determined in step S24, the update processing unit 31b determines one of the plurality of communication lines 2a and 2b as the communication line 2a and 2b that is the transmission destination of the current divided data (step S27). ). The update processing unit 31b transmits the divided data read in step S26 through the communication lines 2a and 2b determined in step S27 (step S28).
  • the update processing unit 31b determines whether or not all the divided data of the repro data 52a to be transmitted to the ECU 10 has been transmitted (step S29). If all the divided data has not been transmitted (S29: NO), the update processing unit 31b returns the process to step S25, and continues to transmit the divided data. When all the divided data have been transmitted (S29: YES), the update processing unit 31b ends the transmission process.
  • the divided data of the repro data 52a transmitted by the gateway 30 via the plurality of communication lines 2a and 2b is received by the ECU 10 connected to the communication lines 2a and 2b.
  • the ECU 10 that has received the divided data stores the received divided data in the RAM 14. Even when the gateway 30 transmits the divided data in the order indicated by the order information, the ECU 10 that receives the divided data via the plurality of communication lines 2a and 2b does not necessarily divide the data in the order indicated by the order information. Data is not always received.
  • the update processing unit 11a of the ECU 10 performs a process of restoring the repro data 52a after receiving all the divided data, and replacing the application program 13b stored in the flash memory 13 with the application program given as the repro data 52a.
  • the update process can be performed.
  • the update processing unit 11a may partially replace the application program 13b by using the received divided data even before receiving all the divided data, thereby speeding up the update process. Is possible.
  • FIG. 9 is a flowchart showing a procedure of reception processing of the repro data 52a performed by the ECU 10.
  • the update processing unit 11a of the ECU 10 determines whether or not the divided data of the repro data 52a from the gateway 30 is received by any of the communication units 12a and 12b (step S41). When none of the communication units 12a and 12b has received the divided data (S41: NO), the update processing unit 11a waits until the divided data is received. When the divided data is received (S41: YES), the update processing unit 11a stores the received data in the RAM 14 (step S42). The update processing unit 11a determines whether or not all the divided data of the repro data 52a has been received (step S43). If all the divided data has not been received (S43: NO), the update processing unit 11a returns the process to step S41 and continues to receive the divided data. When all the divided data have been received (S43: YES), the update processing unit 11a ends the reception process.
  • FIG. 10 is a flowchart showing a procedure of update processing of the application program 13b performed by the ECU 10.
  • a variable n that stores the order information of the divided data to be written is used. This variable can be realized by using a register in the processing unit 11, for example.
  • the update processing unit 11a of the ECU 10 first initializes the value of the variable n to 1 (step S51). Next, the update processing unit 11a determines whether or not the divided data with the order information indicating the nth is stored in the RAM 14 (step S52). When the n-th divided data is not stored (S52: NO), the update processing unit 11a waits until the n-th divided data is stored in the RAM 14.
  • the update processing unit 11a When the n-th divided data is stored in the RAM 14 (S52: YES), the update processing unit 11a replaces a part of the application program 13b stored in the flash memory 13 with the n-th divided data stored in the RAM 14. The replacement process is performed (step S53). At this time, the update processing unit 11a can perform replacement by deleting the corresponding part of the application program 13b from the flash memory 13 and writing the nth divided data in the deleted part. However, the update processing unit 11 a may first erase all of the application program 13 b and write the n-th divided data in the empty area of the flash memory 13.
  • the update processing unit 11a After completing the writing of the divided data to the flash memory 13, the update processing unit 11a adds 1 to the value of the variable n (Step S54).
  • the update processing unit 11a determines whether or not the value of the variable n exceeds the number N of divided data (step S55). When the value of the variable n does not exceed the number N of divided data (S55: NO), the update processing unit 11a returns the process to step S52 and continues to write the divided data. When the value of the variable n exceeds the number N of divided data (S55: YES), the update processing unit 11a ends the update process.
  • the gateway 30 connected to the two communication lines 2a and 2b is updated by the repro data for update with respect to the ECU 10 connected to the two communication lines 2a and 2b.
  • the ECU 10 is updated by transmitting 52a.
  • the gateway 30 stores the divided data obtained by dividing the repro data 52a into a plurality of pieces in the RAM 34.
  • the gateway 30 determines the communication state for each of the communication lines 2a and 2b, appropriately distributes the plurality of divided data to the plurality of communication lines 2a and 2b according to the determined communication state, and distributes the plurality of divided data to the plurality of communication lines. It transmits to ECU10 via line 2a, 2b.
  • the gateway 30 can efficiently use the plurality of communication lines 2a and 2b to efficiently transmit the plurality of divided data to the ECU 10 at high speed.
  • the gateway 30 calculates the load factor for each communication line for the plurality of communication lines 2a and 2b connected to the ECU 10 to be updated. For example, the gateway 30 can distribute the divided data according to the determined load factor, such as preferentially distributing the divided data to the low-load communication lines 2a and 2b. As a result, the gateway 30 can efficiently use the plurality of communication lines 2a and 2b.
  • the repro tool 50 different from the gateway 30 stores the divided data of the repro data 52a in the storage unit 52.
  • the split data of the repro data 52 a is transmitted from the repro tool 50 to the gateway 30, and this split data is given from the gateway 30 to the ECU 10.
  • the gateway 30 does not need to store the repro data 52a, and the divided data of the repro data 52a given from the repro tool 50 may be temporarily stored in the RAM 34.
  • the repro tool 50 transmits the divided data obtained by dividing the repro data 52a to the gateway 30 with order information for restoring them.
  • the gateway 30 receives the divided data from the repro tool 50, the gateway 30 stores the divided data in the RAM 34 together with the order information. Further, the gateway 30 transmits the divided data with the order information to the ECU 10.
  • the ECU 10 that has received the divided data of the repro data 52a via the plurality of communication lines 2a and 2b can obtain the original repro data from the plurality of divided data even when the order of the divided data is different from the receiving order. 52a can be restored.
  • the ECU 10 In addition to the flash memory 13 storing the application program 13b used for its own processing, the ECU 10 temporarily stores the divided data of the repro data 52a received from the gateway 30 through the plurality of communication lines 2a and 2b. Have The ECU 10 performs a process of updating the application program 13b stored in the flash memory 13 using the divided data stored in the RAM 14 based on the order information added to the divided data. Thereby, ECU10 can perform the update process of the application program 13b reliably using the divided data received in random order via several communication line 2a, 2b.
  • the gateway 30 transmits the divided data of the repro data 52a to the ECU 10 to be updated.
  • the present invention is not limited to this.
  • the other ECUs 3a to 3d may be configured to transmit the divided data of the repro data 52a to the ECU 10, and further, another device such as a car navigation device mounted on the vehicle 1 transmits the divided data to the ECU 10. It is good.
  • the update target device is the ECU 10
  • the present invention is not limited to this, and various devices other than the ECU 10 mounted on the vehicle 1 can be the target of the update process.
  • segmentation data of the repro data 52a to the gateway 30 was used as the repro tool 50, it is not restricted to this, For example, using a general purpose portable apparatus like a notebook personal computer, a smart phone, or a tablet-type terminal etc. Alternatively, it may be a stationary device that is not portable and is installed in a dealer of the vehicle 1 or a maintenance shop.
  • the application program 13b stored in the flash memory 13 of the ECU 10 is updated.
  • the data stored in the flash memory 13 of the ECU 10 for example, data such as setting values related to the operation of the ECU 10 may be updated, or the application program 13 b and the data may be updated together.
  • the update processing unit 31b of the gateway 30 calculates the load factor of each communication line 2a, 2b and distributes the divided data to the plurality of communication lines 2a, 2b based on this load factor. It is not a thing.
  • the update processing unit 31b checks, for example, the priority given to the message transmitted to each communication line 2a, 2b, and the distribution ratio of the divided data to the communication lines 2a, 2b to which many messages with high priority are transmitted. For example, the divided data may be distributed based on a communication state other than the load factor.
  • the gateway 30 and the repro tool 50 communicate with each other by connecting a communication cable to the OBD connector 5 of the vehicle 1, this is not restrictive.
  • the connection between the repro tool 50 and the vehicle 1 may be based on a standard other than OBD.
  • the gateway 30 and the repro tool 50 may be configured to be connected wirelessly instead of being connected by wire.
  • FIG. 11 is a schematic diagram illustrating a configuration example of an update system according to a modification.
  • the gateway 30 is connected to the wireless communication device 105 via the communication line 6.
  • the wireless communication device 105 can perform wireless communication with the repro tool 150 via a wireless network such as a mobile phone communication network or a wireless local area network (LAN).
  • the repro tool 150 according to the modification has substantially the same configuration as the repro tool 50 shown in FIG. 4, but includes a wireless communication unit instead of the OBD communication unit 35, and the gateway 30 of the vehicle 1 via the wireless network.
  • Wireless communication can be performed with thereby, in the update system according to the modification, the repro tool 50 transmits the divided data of the repro data 52a to the wireless communication device 105 of the vehicle 1 by wireless communication, and transmits the divided data received by the wireless communication device 105 to the gateway 30. be able to.
  • the gateway 30 uses the wireless communication device 105 to perform wireless communication with the repro tool 150.
  • the wireless communication partner is not limited to the repro tool 150.
  • the gateway 30 may acquire the repro data 52a by directly communicating with a server device that distributes the repro data 52a without using the repro tool 150.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

複数の通信線に接続された車載通信装置の更新処理を効率よく行うことができる車載更新装置、更新システム及び更新処理プログラムを提供する。 通信線に接続されたECUに対して、通信線を利用してゲートウェイが更新用のリプロデータを送信することによって、ECUの更新処理を行う。リプロツールは、リプロデータの分割データを記憶しており、ゲートウェイへ分割データを送信する。リプロツールは、リプロデータを複数に分割した分割データに対して、これらを復元するための順序情報を付してゲートウェイへ送信する。ゲートウェイは、通信線毎の通信状態を判定し、判定した通信状態に応じて、リプロデータを複数に分割した分割データを、複数の通信線に適宜に分配し、複数の分割データを複数の通信線を介してECUへ送信する。

Description

車載更新装置、更新システム及び更新処理プログラム
 本発明は、車載通信装置に対して更新用のプログラム又はデータを送信することによって、この車載通信装置の更新処理を行う車載更新装置、更新システム及び更新処理プログラムに関する。
 従来、車両には複数のECU(Electronic Control Unit)などの車載通信装置が搭載され、複数のECUがCAN(Controller Area Network)バスなどの通信線を介して接続されて相互に情報の送受信を行うことが可能とされている。各ECUは、フラッシュメモリ又はEEPROM(Electrically Erasable Programmable Read Only Memory)等の記憶部に記憶されたプログラムをCPU(Central Processing Unit)などの処理装置が読み出して実行することにより、車両の制御などの種々の処理を行っている。ECUの記憶部に記憶されたプログラム又はデータは、例えば機能追加、不具合の修正又はバージョンアップ等の必要が生じた際には、新たなプログラム又はデータに書き換える更新処理を行う必要がある。この場合、更新処理の対象となるECUに対して、通信線を介して更新用のプログラム又はデータを送信することが行われている。
 特許文献1においては、書換装置と複数の書換対象ECUとが同一のネットワークバスで接続された構成を持ち、書換装置は予め定められた特定のIDを使用して全ての書換対象ECUに対して同時にデータを送信し、書換対象ECUは個体識別データを使用してそれぞれ異なったIDを生成し、生成したIDを使用して書換装置へデータを送信するプログラム書換方法が提案されている。
特開2014-194688号公報
 近年、車両において重要な機能を担うECUについて、このECUを複数の通信線に接続し、車両の信頼性を向上させることが試みられている。例えば2つの通信線に接続されたECUは、いずれか一方の通信線が何らかの要因で通信不可能な状態となった場合であっても、他方の通信線を介して通信を行うことが可能であるため、このECUが担う機能が利用不可能となることを防止できる。
 このような複数の通信線に接続されたECUについて、プログラム又はデータの更新処理をどのように行うかについて、これまで検討されていなかった。
 本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、複数の通信線に接続された車載通信装置の更新処理を効率よく行うことができる車載更新装置、更新システム及び更新処理プログラムを提供することにある。
 本発明に係る車載更新装置は、少なくとも2つの通信線を介して車載通信装置に接続され、該車載通信装置の記憶部に記憶されたプログラム又はデータを更新する処理を行う車載更新装置であって、前記車載通信装置へ送信する更新用のプログラム又はデータを分割した複数の更新用分割データを記憶する記憶部と、前記通信線毎の通信状態を判定する通信状態判定部と、前記通信状態判定部の判定結果に応じて、前記記憶部に記憶された複数の更新用分割データを、前記少なくとも2つの通信線を介して前記車載通信装置へ分配送信する処理を行う送信処理部とを備えることを特徴とする。
 また、本発明に係る車載更新装置は、前記通信状態判定部が、前記通信線毎の通信負荷を判定し、前記送信処理部は、前記通信負荷に応じて前記少なくとも2つの通信線に前記複数の更新用分割データを分配することを特徴とする。
 また、本発明に係る車載更新装置は、前記更新用分割データを記憶した記憶装置との間で通信を行う通信部と、前記通信部を介して前記記憶装置から受信した前記更新用分割データを、前記記憶部に記憶する処理を行う記憶処理部とを更に備えることを特徴とする。
 また、本発明に係る更新システムは、少なくとも2つの通信線に接続され、プログラム又はデータを記憶する第1記憶部を有する車載通信装置と、前記少なくとも2つの通信線を介して前記車載通信装置に接続され、前記車載通信装置の前記第1記憶部に記憶されたプログラム又はデータを更新する処理を行う車載更新装置とを備える更新システムであって、前記車載更新装置は、前記車載通信装置へ送信する更新用のプログラム又はデータを分割した複数の更新用分割データを記憶する記憶部と、前記通信線毎の通信状態を判定する通信状態判定部と、前記通信状態判定部の判定結果に応じて、前記記憶部に記憶された複数の更新用分割データを、前記少なくとも2つの通信線を介して前記車載通信装置へ分配送信する処理を行う送信処理部とを有することを特徴とする。
 また、本発明に係る更新システムは、前記更新用分割データを記憶した記憶装置を更に備え、前記車載更新装置は、前記更新用分割データを記憶した記憶装置との間で通信を行う通信部と、前記通信部を介して前記記憶装置から受信した前記更新用分割データを、前記記憶部に記憶する処理を行う記憶処理部とを更に有することを特徴とする。
 また、本発明に係る更新システムは、前記記憶装置が、前記更新用分割データに順序情報を付して前記車載更新装置へ送信し、前記車載更新装置の前記記憶処理部は、前記順序情報が付された前記更新用分割データを前記記憶部に記憶することを特徴とする。
 また、本発明に係る更新システムは、前記車載通信装置が、前記少なくとも2つの通信線を介して前記車載更新装置から受信した前記更新用分割データを一時的に記憶する第2記憶部と、前記第2記憶部に記憶された前記更新用分割データに付された前記順序情報に基づいて、前記第2記憶部に記憶された前記更新用分割データを用いて、前記第1記憶部に記憶されたプログラム又はデータを更新する処理を行う更新処理部とを有することを特徴とする。
 また、本発明に係る更新処理プログラムは、少なくとも2つの通信線を介して車載通信装置に接続され、該車載通信装置の記憶部に記憶されたプログラム又はデータを更新する処理を行う車載更新装置を、前記車載通信装置へ送信する更新用のプログラム又はデータを分割した複数の更新用分割データを記憶部に記憶する処理を行う記憶処理部と、前記通信線毎の通信状態を判定する通信状態判定部と、前記通信状態判定部の判定結果に応じて、前記記憶部に記憶された複数の更新用分割データを、前記少なくとも2つの通信線を介して前記車載通信装置へ分配送信する処理を行う送信処理部として動作させることを特徴とする。
 本発明においては、少なくとも2つの通信線に接続された車載通信装置に対して、この2つの通信線に接続された車載更新装置が更新用のプログラム又はデータを送信することによって、車載通信装置の更新処理を行う。車載更新装置は、更新用のプログラム又はデータを複数に分割したものを更新用分割データとして記憶部に記憶する。車載更新装置は、通信線毎の通信状態を判定し、判定した通信状態に応じて複数の更新用分割データを複数の通信線へ適宜に分配し、複数の更新用分割データを複数の通信線を介して車載通信装置へ送信する。これにより車載更新装置は、複数の通信線を有効活用して、車載通信装置への複数の更新用分割データの送信を効率よく高速に行うことが可能となる。
 また本発明において車載更新装置は、更新対象となる車載通信装置が接続された複数の通信線について、通信線毎の通信負荷を判定する。車載更新装置は、例えば低負荷の通信線に対して優先的に更新用分割データを分配するなど、判定した通信負荷に応じた更新用分割データの分配を行うことができる。これにより車載更新装置は、複数の通信線を効率よく利用することができる。
 また本発明においては、車載更新装置とは異なる記憶装置が、更新用分割データを記憶しておく。更新処理を行う際には、記憶装置から車載更新装置へ更新用分割データが送信され、この更新用分割データが車載更新装置から車載通信装置へ与えられる。これにより車載更新装置は、更新用分割データを記憶しておく必要がなく、記憶装置から与えられた更新用分割データを一時的に記憶しておけばよい。なお車載更新装置及び記憶装置は、有線又は無線のいずれの通信を行ってもよく、有線通信の場合に記憶装置は通信ケーブルなどを介して車載更新装置に着脱可能な構成であってよい。
 また本発明において記憶装置は、更新のためのプログラム又はデータを分割した更新用分割データに対して、これを復元するための順序情報を付して車載更新装置へ送信する。車載更新装置は、記憶装置から更新用分割データを受信した場合、順序情報と共に更新用分割データを記憶部に記憶しておく。また車載更新装置は、順序情報が付された更新用分割データを車載通信装置に対して送信する。これにより、複数の通信線を介して更新用分割データを受信した車載通信装置は、更新用分割データの順序と受信順序とが異なる場合であっても、複数の更新用分割データから元のプログラム又はデータを復元することができる。
 また本発明において車載通信装置は、自身の処理に用いるプログラム又はデータを記憶した第1記憶部とは別に、複数の通信線を介して車載更新装置から受信した更新用分割データを一時的に記憶する第2記憶部を有する。車載通信装置は、更新用分割データに付された順序情報に基づき、第2記憶部に記憶された更新用分割データを用いて、第1記憶部に記憶されたプログラム又はデータを更新する処理を行う。これにより、複数の通信線を介して順不同に受信される更新用分割データを用いて、プログラム又はデータの更新処理を確実に行うことができる。
 本発明による場合は、車載更新装置が通信線毎の通信状態に応じて複数の更新用分割データを複数の通信線へ適宜に分配し、更新対象の車載通信装置へ更新用分割データを送信する構成とすることにより、複数の通信線を有効活用して更新用分割データの送信を効率よく高速に行うことができるため、複数の通信線に接続された車載通信装置の更新処理を効率よく行うことができる。
本実施の形態に係る更新システムの構成例を示す模式図である。 ECUの構成を示すブロック図である。 ゲートウェイの構成を示すブロック図である。 リプロツールの構成を示すブロック図である。 リプロツールによるリプロデータの送信を説明するための模式図である。 リプロツールが行うリプロデータの送信処理の手順を示すフローチャートである。 ゲートウェイが行うリプロデータの受信処理の手順を示すフローチャートである。 ゲートウェイが行うリプロデータの送信処理の手順を示すフローチャートである。 ECUが行うリプロデータの受信処理の手順を示すフローチャートである。 ECUが行うアプリケーションプログラムの更新処理の手順を示すフローチャートである。 変形例に係る更新システムの構成例を示す模式図である。
<システム構成>
 図1は、本実施の形態に係る更新システムの構成例を示す模式図である。本実施の形態に係る更新システムは、車両1に搭載された複数のECU3a~3d,10が、通信線2a~2c及びゲートウェイ30を介して相互に通信を行うことが可能な通信システムにおいて、各ECU3a~3d,10が記憶しているプログラム又はデータの更新をゲートウェイ30が行う構成である。図示の例では、車両1には4つのECU3a~3dと、1つのECU10とが備えられている。ECU3aは通信線2aに接続され、ECU3bは通信線2bに接続され、ECU3c及び3dは通信線2cに接続されている。各ECU3a~3dは、自身が接続されている1つの通信線2a~2cに対する情報の送受信を行うことができる。これに対してECU10は、通信線2a及び2bの2つに接続されており、両方の通信線2a及び2bに対する情報の送受信を行うことができる。例えばECU10は、ECU3aとの通信を行う際には通信線2aを使用し、ECU3bとの通信を行う際には通信線2bを使用することができる。
 ECU3a~3d,10が接続された通信線2a~2cは、ゲートウェイ30にそれぞれ接続されている。ゲートウェイ30は、通信線2a~2c間の通信を中継する装置である。ゲートウェイ30は、3つの通信線2a~2cのいずれかにて受信した情報を、他の通信線2a~2cから送信することにより通信を中継する。これにより例えばECU3aは、通信線2a、ゲートウェイ30及び通信線2bを介してECU3bとの通信を行うことが可能となる。
 またゲートウェイ30は、車両1の適所に配されたOBD(On-Board Diagnostics)コネクタ5に通信線6を介して接続されている。OBDコネクタ5は、車両1の自己診断機能による種々の情報を外部の装置が取得するためのコネクタである。本実施の形態のおいては、例えば車両1のディーラ又は整備工場等に備えられたリプログラミングツール(以下、リプロツールという)50を、車両1のOBDコネクタ5に専用の通信ケーブルを介して接続することにより、ゲートウェイ30及びリプロツール50の間で通信を行うことができる。リプロツール50は、ECU3a~3d,10の更新用のプログラム又はデータをゲートウェイ30へ与え、ゲートウェイ30は与えられた更新用のプログラム又はデータを対象のECU3a~3d,10へ送信し、これを受信したECU3a~3d,10にて更新が行われる。
 図2は、ECU10の構成を示すブロック図である。本実施の形態に係るECU10は、処理部11、2つの通信部12a,12b、フラッシュメモリ13及びRAM(Random Access Memory)14等を備えて構成されている。処理部11は、CPUなどの演算処理装置を用いて構成されている。処理部11は、フラッシュメモリ13に記憶されたアプリケーションプログラム(図中ではアプリケーションと記載している)13bを読み出して実行することにより、車両1の制御処理及び種々の演算処理等を行う。また処理部11は、フラッシュメモリ13に記憶されたブートローダプログラム(図中ではブートローダと記載している)13aを読み出して実行することにより、ECU10の初期設定処理及びアプリケーションプログラム13bの更新処理等を行う。処理部11には、ブートローダプログラム13aを実行することによって、アプリケーションプログラム13bの更新処理を行う更新処理部11aがソフトウェア的な機能ブロックとして実現される。
 本実施の形態に係るECU10は2つの通信部12a,12bを有しており、2つの通信線2a,2bを介して他のECU3a~3dとの通信を行うことができる。通信部12aは、通信線2aに接続されており、通信線2aを介した通信を行う。通信部12bは、通信線2bに接続されており、通信線2bを介した通信を行う。通信部12a,12bは、処理部11から与えられた送信用の情報を電気信号に変換して通信線2a,2bへ出力することにより情報送信を行うと共に、通信線2a,2bの信号をサンプリングして取得することにより情報受信を行い、受信した情報を処理部11へ与える。処理部11は、情報送信を行う場合、いずれの通信部12a,12bにて送信を行うかを適宜に判断すればよい。
 なお本実施の形態においては、ECU3a~3d,10及びゲートウェイ30は、通信線2a~2cを介して例えばCANの通信プロトコルに従った通信を行う。この場合、通信線2a~2cはいわゆるCANバスであり、通信部12a,12bはCANコントローラを用いて構成することができる。
 フラッシュメモリ13は、データ書き換え可能な不揮発性のメモリ素子であり、ブートローダプログラム13a及びアプリケーションプログラム13b等のプログラムを記憶している。また図示は省略するが、これらのプログラムの実行に必要なデータがフラッシュメモリ13に記憶されている。処理部11は、フラッシュメモリ13からこれらのプログラムを読み出して実行することにより、種々の処理を行うことができる。また処理部11は、フラッシュメモリ13に対するデータの消去及び書き込みを行うことができる。
 RAM14は、例えばSRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等のメモリ素子を用いて構成されている。処理部11は、RAM14に対してデータの読み出し及び書き込みを行うことができる。例えばRAM14は、処理部11が行う演算処理の過程で生成された情報を一時的に記憶する。また例えばRAM14は、通信部12a,12bが受信した情報を一時的に記憶する。
 図3は、ゲートウェイ30の構成を示すブロック図である。本実施の形態に係るゲートウェイ30は、処理部31、通信部32a~32c、フラッシュメモリ33、RAM34及びOBD通信部35等を備えて構成されている。処理部31は、CPUなどの演算処理装置を用いて構成されている。処理部31は、フラッシュメモリ33に記憶されたアプリケーションプログラム33bを読み出して実行することにより、通信線2a~2c間の通信を中継する処理及びECU3a~3d,10のアプリケーションプログラム13bを更新する処理等を行う。処理部31には、アプリケーションプログラム33bを実行することによって、通信の中継に係る処理を行う中継処理部31a及びECU3a~3d,10の更新に係る処理を行う更新処理部31bがソフトウェア的な機能ブロックとして実現される。また処理部31は、フラッシュメモリ33に記憶されたブートローダプログラム33aを読み出して実行することにより、ゲートウェイ30の初期設定処理及び自身のアプリケーションプログラム33bの更新処理等を行う。
 ゲートウェイ30は3つの通信部32a~32cを有しており、通信部32a~32cは例えばCANコントローラを用いて構成されている。通信部32aは、通信線2aに接続されており、通信線2aを介した通信を行う。通信部32bは、通信線2bに接続されており、通信線2bを介した通信を行う。通信部32cは、通信線2cに接続されており、通信線2cを介した通信を行う。通信部32a~32cは、処理部31から与えられた送信用の情報を電気信号に変換して通信線2a~2cへ出力することにより情報送信を行うと共に、通信線2a~2cの信号をサンプリングして取得することにより情報受信を行い、受信した情報を処理部31へ与える。処理部31の中継処理部31aは、いずれかの通信部32a~32cにて情報を受信した場合に、この情報を他の通信部32a~32cから送信することによって、通信を中継する。
 フラッシュメモリ33は、データ書き換え可能な不揮発性のメモリ素子であり、ブートローダプログラム33a及びアプリケーションプログラム33b等のプログラムを記憶している。また図示は省略するが、これらのプログラムの実行に必要なデータがフラッシュメモリ33に記憶されている。処理部31は、フラッシュメモリ33からこれらのプログラムを読み出して実行することにより、種々の処理を行うことができる。また処理部31は、フラッシュメモリ33に対するデータの消去及び書き込みを行うことができる。
 RAM34は、例えばSRAM又はDRAM等のメモリ素子を用いて構成されている。処理部31は、RAM34に対してデータの読み出し及び書き込みを行うことができる。例えばRAM34は、処理部31が行う演算処理の過程で生成された情報を一時的に記憶する。また例えばRAM34は、通信部32a~32cが受信した情報を一時的に記憶する。また例えばRAM34は、OBDコネクタ5を介してリプロツール50から受信した情報を一時的に記憶する。
 OBD通信部35は、通信線6を介してOBDコネクタ5に接続されている。OBD通信部35は、OBDコネクタ5に接続されたリプロツール50との間で通信を行う。なおOBDコネクタ5を介したゲートウェイ30のOBD通信部35とリプロツール50との通信は、CANの通信プロトコルに従うものであってもよく、これ以外の通信プロトコルに従うものであってもよい。OBD通信部35は、処理部31から与えられた送信用の情報を電気信号に変換して通信線6へ出力することにより情報送信を行うと共に、通信線6の信号をサンプリングして取得することにより情報受信を行い、受信した情報を処理部31へ与える。
 図4は、リプロツール50の構成を示すブロック図である。本実施の形態に係るリプロツール50は、例えば車両1のディーラ又は整備工場等に備えられた可搬型の装置であり、車両1のECU3a~3d,10のアプリケーションプログラム13b,33bを更新する(リプログラミングする)ための装置である。作業者は、車両1の整備又は点検等の際、サーバ装置などから更新用のデータをリプロツール50にダウンロードして記憶させ、リプロツール50を専用の通信ケーブルを介して車両1のOBDコネクタ5に接続する。リプロツール50とゲートウェイ30との間で例えば認証処理などの所定の処理を行った後、リプロツール50はダウンロードした更新用のデータをゲートウェイ30へ送信し、ECU3a~3d,10のアプリケーションプログラム13b,33bの更新を開始する。
 リプロツール50は、処理部51、記憶部52及びOBD通信部53等を備えて構成されている。処理部51は、CPUなどの演算処理装置を用いて構成されている。処理部51は、記憶部52又は図示しないROM(Read Only Memory)等に記憶されたプログラムを読み出して実行することにより、ECU3a~3d,10の更新に係る種々の処理を行う。処理部51には、プログラムの実行によって、ECU3a~3d,10の更新処理を行う更新処理部51aがソフトウェア的な機能ブロックとして実現される。
 記憶部52は、フラッシュメモリ又はEEPROM等の不揮発性のメモリ素子を用いて構成されていてもよく、SRAM又はDRAM等の揮発性のメモリ素子を用いて構成されていてもよく、ハードディスクなどの磁気記憶装置を用いて構成されていてもよい。記憶部52は、ECU3a~3d,10の更新に用いられるリプログラミングデータ(以下、リプロデータという)52aが記憶されている。本実施の形態に係る更新処理は、例えばECU10のフラッシュメモリ13に記憶されたアプリケーションプログラム13bの一部又は全部を、新たなアプリケーションプログラムにて置き換える(上書きする)処理である。リプロツール50の記憶部52にダウンロードされて記憶されるリプロデータ52aは、置き換えられる新たなアプリケーションプログラムそのものである。
 OBD通信部53は、車両1のOBDコネクタ5に接続される通信ケーブルを有している。なおこの通信ケーブルは、OBD通信部53に着脱可能な構成であってもよく、OBD通信部53に固定された構成であってもよい。OBD通信部53は、車両1のOBDコネクタ5に通信ケーブルを介して接続された状態において、車両1のゲートウェイ30との間で通信を行う。OBD通信部53は、処理部51からから与えられた送信用の情報を電気信号に変換して通信ケーブルへ出力することにより情報送信を行うと共に、通信ケーブル上の信号をサンプリングして取得することにより情報受信を行い、受信した情報を処理部51へ与える。
<更新処理>
 車両1のECU10の更新処理を行う場合、例えばディーラ又は整備工場等の作業者は、リプロツール50の記憶部52に所望のリプロデータ52aを記憶する作業を行う。リプロデータ52aは、例えば無線又は有線の通信によりサーバ装置などからリプロツール50へダウンロードされるものであってもよく、また例えばメモリカード又は光ディスク等の記録媒体を介してリプロツール50に取得されるものであってもよい。リプロデータ52aを記憶部52に記憶した後、作業者は、リプロツール50の通信ケーブルを車両1のOBDコネクタ5に接続する。これによりリプロツール50と車両1のゲートウェイ30との間で認証処理が行われ、認証処理に成功した場合にリプロツール50とゲートウェイ30との通信が可能となり、更新処理を行うことが可能な状態となる。
 例えば作業者がリプロツール50に対して更新処理の開始操作を行った場合に、リプロツール50による更新処理が開始される。リプロツール50の更新処理部51aは、更新処理を行う要求をOBD通信部53から車両1のゲートウェイ30へ送信する。この要求に対してゲートウェイ30からの更新処理を許可する旨の応答をOBD通信部53にて受信した場合、リプロツール50の更新処理部51aは、更新処理を開始する。更新処理部51aは、記憶部52に記憶されたリプロデータ52aを読み出して、OBD通信部53からゲートウェイ30へ送信する。
 図5は、リプロツール50によるリプロデータ52aの送信を説明するための模式図である。上述のように更新処理ではECU10のフラッシュメモリ13に記憶されたアプリケーションプログラム13bが新たなアプリケーションプログラムに置き換えられるため、リプロツール50はこの置き換えるアプリケーションプログラムをゲートウェイ30へ送信する必要がある。リプロツール50の記憶部52に記憶されるリプロデータ52aは、置き換えられるアプリケーションプログラムを所定長(例えば数バイトから数バイト程度)のデータに分割したものを集めたデータ群である。図5においてはアプリケーションプログラムをN個に分割し、リプロデータ1~Nとして図示してある。なお本実施の形態においては、アプリケーションプログラムが予め分割されたものをリプロツール50の記憶部52に記憶する構成とするが、これに限るものではなく、リプロツール50がアプリケーションプログラムを分割する処理を行ってもよい。
 リプロツール50の更新処理部51aは、記憶部52から分割されたリプロデータ(以下、分割データという)を順に読み出してOBD通信部53へ与えることにより、分割データをゲートウェイ30へ順に送信する。このときに更新処理部51aは、分割データに対して順序情報を付与する。付与された順序情報は、例えばヘッダ又はフッタ等に格納されて、分割データと共にリプロツール50からゲートウェイ30へ送信される。なおリプロツール50は、分割データの送信に先立って、更新用のアプリケーションプログラムが何個に分割されて送信されるか、即ち図5においてNの値をゲートウェイ30へ通知してもよい。
 図6は、リプロツール50が行うリプロデータ52aの送信処理の手順を示すフローチャートである。リプロツール50の更新処理部51aは、OBD通信部53からゲートウェイ30へ更新処理を行う要求を送信する(ステップS1)。更新処理部51aは、この要求に対してゲートウェイ30から与えられる応答が更新処理を許可するものであるか否かを判定する(ステップS2)。更新処理を許可しない旨の応答である場合(S2:NO)、更新処理部51aは、更新処理を終了する。
 更新処理を行う許可がゲートウェイ30から与えられた場合(S2:YES)、更新処理部51aは、記憶部52から分割データの1つを読み出す(ステップS3)。更新処理部51aは、読み出した分割データに順序情報を付与する(ステップS4)。更新処理部51aは、順序情報と共に分割データをOBD通信部53へ与えることにより、分割データをゲートウェイ30へ送信する(ステップS5)。更新処理部51aは、記憶部52に記憶したリプロデータ52aの全ての分割データの送信を終了したか否かを判定する(ステップS6)。全ての分割データの送信を終了していない場合(S6:NO)、更新処理部51aは、ステップS3へ処理を戻し、次の分割データの送信を行う。全ての分割データの送信を終了した場合(S6:YES)、更新処理部51aは、更新処理を終了する。
 OBDコネクタ5を介してリプロツール50から更新処理の要求を与えられたゲートウェイ30は、例えば車両1のイグニッションスイッチの状態又は各種のセンサの検知結果等に基づいて、更新処理を許可するか否かを判定し、判定結果を応答としてリプロツール50へ送信する。ゲートウェイ30は、例えば車両1が走行していると判定される場合に更新処理を許可せず、走行していないと判定される場合に更新処理を許可する構成とすることができる。
 更新処理を許可する応答がゲートウェイ30からリプロツール50へ送信された場合、上述のようにリプロツール50はリプロデータ52aの分割データの送信を開始する。ゲートウェイ30の更新処理部31bは、リプロツール50から送信される分割データをOBD通信部35にて受信し、受信した分割データをRAM34に記憶する。
 またゲートウェイ30の更新処理部31bは、更新処理の対象が複数の通信線2a,2bに接続されたECU10である場合、リプロツール50からの分割データの受信処理と並行して、各通信線2a,2bの通信状態を判定する処理を行う。本実施の形態において更新処理部31bは、通信状態として各通信線2a,2bの負荷率を算出し、算出した負荷率に応じて更新処理に利用する通信線2a,2bの利用率を決定する。更新処理部31bは、所定時間内において通信線2a,2bが使用されていた(メッセージが送受信された)時間を調べ、所定時間に対する使用時間の割合を負荷率として算出する。
 例えば更新処理部31bの算出結果が、通信線2aの負荷率が20%であり、通信線2bの負荷率が40%であったとする。また各通信線2a,2bの負荷率の上限が50%と設定されているものとする。この場合に更新処理部31bは、通信線2aの余裕度は50%-20%=30%であり、通信線2bの余裕度は50%-40%=10%であると判断する。これらの結果から更新処理部31bは、RAM14に蓄積された複数の分割データを、通信線2a:通信線2b=3:1の比率で分配して送信する。即ち更新処理部31bは、RAM14に4つの分割データが蓄積されている場合、このうちの3つを通信線2aから送信し、1つを通信線2bから送信する。
 通信線2aの負荷率がX%であり、通信線2bの負荷率がY%であり、各通信線2a,2bの負荷率の上限がQ%に設定されている場合、更新処理部31bは、通信線2a:通信線2b=(Q-X):(Q-Y)の比率で分割データを分配する。また例えば、更新対象のECUが3つの通信線2a~2cに接続されており、通信線2aの負荷率がX%であり、通信線2bの負荷率がY%であり、通信線2cの負荷率がZ%であり、各通信線2a~2cの負荷率の上限がQ%に設定されている場合、更新処理部31bは、通信線2a:通信線2b:通信線2c=(Q-X):(Q-Y):(Q-Z)の比率で分割データを分配すればよい。更新対象のECUが4つ以上の通信線に接続されている場合も同様であるため、説明は省略する。
 図7は、ゲートウェイ30が行うリプロデータ52aの受信処理の手順を示すフローチャートである。ゲートウェイ30の更新処理部31bは、リプロツール50から更新処理を行う要求をOBD通信部35にて受信したか否かを判定する(ステップS11)。更新処理の要求を受信していない場合(S11:NO)、更新処理部31bは、要求を受信するまで待機する。更新処理の要求を受信した場合(S11:YES)、更新処理部31bは、更新処理を許可する旨の応答を、OBD通信部35からリプロツール50へ送信する(ステップS12)。なお本フローチャートにおいては、更新処理を許可しない場合の処理手順を省略する。
 その後、更新処理部31bは、OBD通信部35にてリプロツール50からリプロデータ52aの分割データを受信したか否かを判定する(ステップS13)。分割データを受信していない場合(S13:NO)、更新処理部31bは、分割データを受信するまで待機する。分割データを受信した場合(S13:YES)、更新処理部31bは、受信した分割データを(この分割データに付された順序情報と共に)RAM34に記憶する(ステップS14)。更新処理部31bは、リプロデータ52aの全ての分割データを受信したか否かを判定する(ステップS15)。全ての分割データを受信していない場合(S15:NO)、更新処理部31bは、ステップS13へ処理を戻し、分割データの受信を継続する。全ての分割データを受信した場合(S15:YES)、更新処理部31bは、受信処理を終了する。
 図8は、ゲートウェイ30が行うリプロデータ52aの送信処理の手順を示すフローチャートであり、リプロツール50からの更新処理要求に対する許可応答を行った後、上述の受信処理と並行して行われる処理である。ゲートウェイ30の更新処理部31bは、更新対象のECU10が接続されている複数の通信線2a,2bについて所定時間中に通信が行われた時間を調べることにより、各通信線2a,2bの負荷率を算出する(ステップS21)。更新処理部31bは、予め定められた負荷率の上限を読み出す(ステップS22)。更新処理部31bは、ステップS21にて算出した負荷率とステップS22にて読み出した上限とに基づいて、各通信線2a,2bの余裕度を算出する(ステップS23)。更新処理部31bは、算出した各通信線2a,2bの余裕度に基づいて、複数の通信線2a,2bに対する分割データの分配比率を決定する(ステップS24)。
 更新処理部31bは、RAM34に分割データが記憶されているか否かを判定する(ステップS25)。分割データが記憶されていない場合(S25:NO)、更新処理部31bは、リプロツール50から分割データを受信してRAM34に記憶するまで待機する。分割データが記憶されている場合(S25:YES)、更新処理部31bは、RAM34から1つの分割データを読み出す(ステップS26)。なおこのときに更新処理部31bは、分割データに付された順序情報を調べ、最も順序が早い分割データを読み出すことが好ましい。更新処理部31bは、ステップS24にて決定した分配比率に基づいて、複数の通信線2a,2bのうち、今回の分割データの送信先とする通信線2a,2bを1つ決定する(ステップS27)。更新処理部31bは、ステップS26にて読み出した分割データを、ステップS27にて決定した通信線2a,2bにて送信する(ステップS28)。
 更新処理部31bは、ECU10へ送信すべきリプロデータ52aの全ての分割データを送信したか否かを判定する(ステップS29)。全ての分割データを送信していない場合(S29:NO)、更新処理部31bは、ステップS25へ処理を戻し、分割データの送信を継続して行う。全ての分割データを送信した場合(S29:YES)、更新処理部31bは、送信処理を終了する。
 ゲートウェイ30により複数の通信線2a,2bを介して送信されたリプロデータ52aの分割データは、この通信線2a,2bに接続されたECU10にて受信される。分割データを受信したECU10は、受信した分割データをRAM14に記憶する。なお、ゲートウェイ30が順序情報に示される順序で分割データを送信した場合であっても、複数の通信線2a,2bを介して分割データを受信するECU10では、必ずしも順序情報に示される順序で分割データが受信されるとは限らない。
 ECU10の更新処理部11aは、全ての分割データを受信した後でリプロデータ52aを復元し、フラッシュメモリ13に記憶されたアプリケーションプログラム13bを、リプロデータ52aとして与えられたアプリケーションプログラムに置き換える処理を行うことで更新処理を行うことができる。ただし更新処理部11aは、全ての分割データを受信し終える前であっても、受信済みの分割データを用いて部分的にアプリケーションプログラム13bの置き換えを行ってもよく、これにより更新処理を高速化することが可能である。
 図9は、ECU10が行うリプロデータ52aの受信処理の手順を示すフローチャートである。ECU10の更新処理部11aは、通信部12a,12bのいずれかにてゲートウェイ30からのリプロデータ52aの分割データを受信したか否かを判定する(ステップS41)。いずれの通信部12a,12bも分割データを受信していない場合(S41:NO)、更新処理部11aは、分割データを受信するまで待機する。分割データを受信した場合(S41:YES)、更新処理部11aは、受信したデータをRAM14に記憶する(ステップS42)。更新処理部11aは、リプロデータ52aの全ての分割データを受信したか否かを判定する(ステップS43)。全ての分割データを受信していない場合(S43:NO)、更新処理部11aは、ステップS41へ処理を戻し、分割データの受信を継続する。全ての分割データを受信した場合(S43:YES)、更新処理部11aは、受信処理を終了する。
 図10は、ECU10が行うアプリケーションプログラム13bの更新処理の手順を示すフローチャートである。なお本処理では、書き込み対象とする分割データの順序情報を記憶する変数nを用いるが、この変数は例えば処理部11内のレジスタなどを用いて実現され得る。ECU10の更新処理部11aは、まず変数nの値を1に初期化する(ステップS51)。次いで更新処理部11aは、n番目を示す順序情報が付された分割データがRAM14に記憶されているか否かを判定する(ステップS52)。n番目の分割データが記憶されていない場合(S52:NO)、更新処理部11aは、n番目の分割データがRAM14に記憶されるまで待機する。
 n番目の分割データがRAM14に記憶されている場合(S52:YES)、更新処理部11aは、フラッシュメモリ13に記憶されたアプリケーションプログラム13bの一部を、RAM14に記憶されたn番目の分割データで置き換える処理を行う(ステップS53)。このときに更新処理部11aは、フラッシュメモリ13からアプリケーションプログラム13bの該当箇所を消去し、消去した個所にn番目の分割データを書き込むことで置き換えを行うことができる。ただし更新処理部11aは、最初にアプリケーションプログラム13bの全てを消去し、フラッシュメモリ13の空き領域にn番目の分割データを書き込んでもよい。
 フラッシュメモリ13への分割データの書き込み完了後、更新処理部11aは、変数nの値に1を加算する(ステップS54)。更新処理部11aは、変数nの値が分割データの数Nを超えるか否かを判定する(ステップS55)。変数nの値が分割データの数Nを超えない場合(S55:NO)、更新処理部11aは、ステップS52へ処理を戻し、分割データの書き込みを継続して行う。変数nの値が分割データの数Nを超えた場合(S55:YES)、更新処理部11aは、更新処理を終了する。
<まとめ>
 以上の構成の本実施の形態に係る更新システムは、2つの通信線2a、2bに接続されたECU10に対して、この2つの通信線2a,2bに接続されたゲートウェイ30が更新用のリプロデータ52aを送信することによって、ECU10の更新処理を行う。ゲートウェイ30は、リプロデータ52aを複数に分割した分割データをRAM34に記憶する。ゲートウェイ30は、通信線2a,2b毎の通信状態を判定し、判定した通信状態に応じて複数の分割データを複数の通信線2a,2bに適宜に分配し、複数の分割データを複数の通信線2a,2bを介してECU10へ送信する。これによりゲートウェイ30は、複数の通信線2a,2bを有効活用して、ECU10への複数の分割データの送信を効率よく高速に行うことが可能となる。
 またゲートウェイ30は、更新対象となるECU10が接続された複数の通信線2a,2bについて、通信線毎の負荷率を算出する。ゲートウェイ30は、例えば低負荷の通信線2a,2bに対して優先的に分割データを分配するなど、判定した負荷率に応じた分割データの分配を行うことができる。これによりゲートウェイ30は、複数の通信線2a,2bを効率よく利用することができる。
 また本実施の形態に係る更新システムは、ゲートウェイ30とは異なるリプロツール50が、リプロデータ52aの分割データを記憶部52に記憶しておく。更新処理を行う際には、リプロツール50からゲートウェイ30へリプロデータ52aの分割データが送信され、この分割データがゲートウェイ30からECU10へ与えられる。これによりゲートウェイ30は、リプロデータ52aを記憶しておく必要がなく、リプロツール50から与えられたリプロデータ52aの分割データをRAM34に一時的に記憶しておけばよい。
 またリプロツール50は、リプロデータ52aを分割した分割データに対して、これらを復元するための順序情報を付してゲートウェイ30へ送信する。ゲートウェイ30は、リプロツール50から分割データを受信した場合、順序情報と共に分割データをRAM34に記憶しておく。またゲートウェイ30は、順序情報が付された分割データをECU10に対して送信する。これにより、複数の通信線2a,2bを介してリプロデータ52aの分割データを受信したECU10は、分割データの順序と受信順序とが異なる場合であっても、複数の分割データから元のリプロデータ52aを復元することができる。
 またECU10は、自身の処理に用いるアプリケーションプログラム13bを記憶したフラッシュメモリ13とは別に、複数の通信線2a,2bを介してゲートウェイ30から受信したリプロデータ52aの分割データを一時的に記憶するRAM14を有する。ECU10は、分割データに付された順序情報に基づいて、RAM14に記憶された分割データを用いてフラッシュメモリ13に記憶されたアプリケーションプログラム13bを更新する処理を行う。これにより、複数の通信線2a,2bを介して順不同に受信される分割データを用いて、ECU10がアプリケーションプログラム13bの更新処理を確実に行うことができる。
 なお本実施の形態においては、更新対象のECU10に対してゲートウェイ30がリプロデータ52aの分割データを送信する構成としたが、これに限るものではない。例えば他のECU3a~3dがリプロデータ52aの分割データをECU10に対して送信する構成としてもよく、更には車両1に搭載されたカーナビゲーション装置などの他の装置が分割データをECU10に送信する構成としてもよい。また更新対象の装置をECU10としたが、これに限るものではなく、車両1に搭載されたECU10以外の種々の装置が更新処理の対象となり得る。またゲートウェイ30へリプロデータ52aの分割データを送信する装置をリプロツール50としたが、これに限るものではなく、例えばノートパソコン、スマートフォン又はタブレット型端末等のような汎用の可搬型装置を用いてもよく、車両1のディーラ又は整備工場等に設置された可搬型ではない据置型の装置であってもよい。
 また本実施の形態においては、ECU10のフラッシュメモリ13に記憶されたアプリケーションプログラム13bを更新する構成としたが、これに限るものではない。例えばECU10のフラッシュメモリ13に記憶されたデータ、例えばECU10の動作に係る設定値などのデータを更新する構成としてもよく、アプリケーションプログラム13bとデータとを共に更新する構成であってもよい。またゲートウェイ30及びECU10の間で2本の通信線2a,2bを介した通信を行う構成としたが、これに限るものではなく、3本以上の通信線を介して通信を行う構成としてもよい。
 またゲートウェイ30の更新処理部31bは、各通信線2a,2bの負荷率を算出し、この負荷率に基づいて分割データを複数の通信線2a,2bに分配する構成としたが、これに限るものではない。更新処理部31bは、例えば各通信線2a,2bに対して送信されるメッセージに付された優先度を調べ、優先度が高いメッセージが多く送信される通信線2a,2bに対する分割データの分配比率を低くするなど、負荷率以外の通信状態に基づいて分割データを分配する構成としてよい。
 また本実施の形態においては、車両1に搭載された通信システムにて更新処理を行う構成としたが、これに限るものではなく、車載以外の通信システムにて更新処理を行う構成であってもよい。
 また車両1のOBDコネクタ5に通信ケーブルを接続することによってゲートウェイ30とリプロツール50とが通信を行う構成としたが、これに限るものではない。リプロツール50と車両1との接続はOBD以外の規格によるものであってもよい。また更に、以下の変形例に示すように、ゲートウェイ30とリプロツール50とが有線接続されるのではなく、無線接続される構成であってもよい。
 (変形例)
 図11は、変形例に係る更新システムの構成例を示す模式図である。変形例に係る更新システムは、ゲートウェイ30が通信線6を介して無線通信装置105に接続されている。無線通信装置105は、例えば携帯電話通信網又は無線LAN(Local Area Network)等の無線ネットワークを介して、リプロツール150との間で無線通信を行うことができる。変形例に係るリプロツール150は、図4に示したリプロツール50と略同じ構成であるが、OBD通信部35に代えて無線通信部を備えており、無線ネットワークを介して車両1のゲートウェイ30との間で無線通信を行うことができる。これにより変形例に係る更新システムでは、リプロデータ52aの分割データをリプロツール50が無線通信により車両1の無線通信装置105へ送信し、無線通信装置105が受信した分割データをゲートウェイ30へ送信することができる。
 なお変形例に係る更新システムでは、ゲートウェイ30が無線通信装置105を利用してリプロツール150との間で無線通信を行う構成としたが、無線通信の相手はリプロツール150に限らない。例えばゲートウェイ30は、リプロツール150を介すことなく、リプロデータ52aを配信するサーバ装置などと直接的に通信を行ってリプロデータ52aを取得してもよい。
 1 車両
 2a~2c 通信線
 3a~3d ECU
 5 OBDコネクタ
 6 通信線
 10 ECU(車載通信装置)
 11 処理部
 11a 更新処理部
 12a,12b 通信部
 13 フラッシュメモリ(記憶部、第1記憶部)
 13a ブートローダプログラム
 13b アプリケーションプログラム
 14 RAM(第2記憶部)
 30 ゲートウェイ(車載更新装置)
 31 処理部
 31a 中継処理部
 31b 更新処理部(通信状態判定部、送信処理部、記憶処理部)
 32a~32c 通信部
 33 フラッシュメモリ
 33a ブートローダプログラム
 33b アプリケーションプログラム
 34 RAM(記憶部)
 35 OBD通信部(通信部)
 50 リプロツール(記憶装置)
 51 処理部
 51a 更新処理部
 52 記憶部
 52a リプロデータ
 53 OBD通信部
 105 無線通信装置
 150 リプロツール
 

Claims (8)

  1.  少なくとも2つの通信線を介して車載通信装置に接続され、該車載通信装置の記憶部に記憶されたプログラム又はデータを更新する処理を行う車載更新装置であって、
     前記車載通信装置へ送信する更新用のプログラム又はデータを分割した複数の更新用分割データを記憶する記憶部と、
     前記通信線毎の通信状態を判定する通信状態判定部と、
     前記通信状態判定部の判定結果に応じて、前記記憶部に記憶された複数の更新用分割データを、前記少なくとも2つの通信線を介して前記車載通信装置へ分配送信する処理を行う送信処理部と
     を備えることを特徴とする車載更新装置。
  2.  前記通信状態判定部は、前記通信線毎の通信負荷を判定し、
     前記送信処理部は、前記通信負荷に応じて前記少なくとも2つの通信線に前記複数の更新用分割データを分配すること
     を特徴とする請求項1に記載の車載更新装置。
  3.  前記更新用分割データを記憶した記憶装置との間で通信を行う通信部と、
     前記通信部を介して前記記憶装置から受信した前記更新用分割データを、前記記憶部に記憶する処理を行う記憶処理部と
     を更に備えることを特徴とする請求項1又は請求項2に記載の車載更新装置。
  4.  少なくとも2つの通信線に接続され、プログラム又はデータを記憶する第1記憶部を有する車載通信装置と、前記少なくとも2つの通信線を介して前記車載通信装置に接続され、前記車載通信装置の前記第1記憶部に記憶されたプログラム又はデータを更新する処理を行う車載更新装置とを備える更新システムであって、
     前記車載更新装置は、
     前記車載通信装置へ送信する更新用のプログラム又はデータを分割した複数の更新用分割データを記憶する記憶部と、
     前記通信線毎の通信状態を判定する通信状態判定部と、
     前記通信状態判定部の判定結果に応じて、前記記憶部に記憶された複数の更新用分割データを、前記少なくとも2つの通信線を介して前記車載通信装置へ分配送信する処理を行う送信処理部と
     を有することを特徴とする更新システム。
  5.  前記更新用分割データを記憶した記憶装置を更に備え、
     前記車載更新装置は、
     前記更新用分割データを記憶した記憶装置との間で通信を行う通信部と、
     前記通信部を介して前記記憶装置から受信した前記更新用分割データを、前記記憶部に記憶する処理を行う記憶処理部と
     を更に有すること
     を特徴とする請求項4に記載の更新システム。
  6.  前記記憶装置は、前記更新用分割データに順序情報を付して前記車載更新装置へ送信し、
     前記車載更新装置の前記記憶処理部は、前記順序情報が付された前記更新用分割データを前記記憶部に記憶すること
     を特徴とする請求項5に記載の更新システム。
  7.  前記車載通信装置は、
     前記少なくとも2つの通信線を介して前記車載更新装置から受信した前記更新用分割データを一時的に記憶する第2記憶部と、
     前記第2記憶部に記憶された前記更新用分割データに付された前記順序情報に基づいて、前記第2記憶部に記憶された前記更新用分割データを用いて、前記第1記憶部に記憶されたプログラム又はデータを更新する処理を行う更新処理部と
     を有することを特徴とする請求項6に記載の更新システム。
  8.  少なくとも2つの通信線を介して車載通信装置に接続され、該車載通信装置の記憶部に記憶されたプログラム又はデータを更新する処理を行う車載更新装置を、
     前記車載通信装置へ送信する更新用のプログラム又はデータを分割した複数の更新用分割データを記憶部に記憶する処理を行う記憶処理部と、
     前記通信線毎の通信状態を判定する通信状態判定部と、
     前記通信状態判定部の判定結果に応じて、前記記憶部に記憶された複数の更新用分割データを、前記少なくとも2つの通信線を介して前記車載通信装置へ分配送信する処理を行う送信処理部
     として動作させることを特徴とする更新処理プログラム。
     
PCT/JP2016/088755 2016-01-06 2016-12-26 車載更新装置、更新システム及び更新処理プログラム WO2017119345A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680074875.3A CN108475222A (zh) 2016-01-06 2016-12-26 车载更新装置、更新***及更新处理程序
US15/777,834 US20180373522A1 (en) 2016-01-06 2016-12-26 In-vehicle updating device, updating system, and update processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016001107A JP6428652B2 (ja) 2016-01-06 2016-01-06 車載更新装置、更新システム及び更新処理プログラム
JP2016-001107 2016-01-06

Publications (1)

Publication Number Publication Date
WO2017119345A1 true WO2017119345A1 (ja) 2017-07-13

Family

ID=59274254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/088755 WO2017119345A1 (ja) 2016-01-06 2016-12-26 車載更新装置、更新システム及び更新処理プログラム

Country Status (4)

Country Link
US (1) US20180373522A1 (ja)
JP (1) JP6428652B2 (ja)
CN (1) CN108475222A (ja)
WO (1) WO2017119345A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113168314A (zh) * 2018-12-04 2021-07-23 三菱电机株式会社 更新管理装置、更新管理***及更新管理方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6536444B2 (ja) * 2016-03-18 2019-07-03 トヨタ自動車株式会社 ネットワークシステム
JP6731892B2 (ja) * 2017-07-28 2020-07-29 日立オートモティブシステムズ株式会社 車載メモリの改竄検知装置
JP6907803B2 (ja) * 2017-08-16 2021-07-21 住友電気工業株式会社 制御装置、制御方法、およびコンピュータプログラム
JP2019096097A (ja) * 2017-11-24 2019-06-20 クラリオン株式会社 サーバー装置、車載機およびデータ通信方法
JP6915569B2 (ja) * 2018-03-05 2021-08-04 株式会社オートネットワーク技術研究所 保存装置、通信システム、保存方法及びコンピュータプログラム
CN108829079B (zh) * 2018-04-26 2020-09-01 安徽江淮汽车集团股份有限公司 一种tcu自动刷写***及方法
JP6436608B1 (ja) * 2018-08-30 2018-12-12 三菱日立パワーシステムズインダストリー株式会社 車両用保守システム
JP7124627B2 (ja) * 2018-10-16 2022-08-24 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム及び、プログラムの更新方法
JP7128763B2 (ja) * 2019-03-18 2022-08-31 日立Astemo株式会社 電子制御装置及び制御データの設定方法
JP7287476B2 (ja) * 2019-08-28 2023-06-06 株式会社デンソー 車両用マスタ装置、車両用電子制御システム、コンフィグ情報の書換え指示方法及びコンフィグ情報の書換え指示プログラム
JP7147721B2 (ja) 2019-09-05 2022-10-05 トヨタ自動車株式会社 車載通信装置及び通信方法
JP7358928B2 (ja) 2019-11-14 2023-10-11 株式会社デンソー 車両用電子制御システム、データ中継装置、キャンペーン情報の配信制御方法及びキャンペーン情報の配信制御プログラム
JP7310570B2 (ja) * 2019-11-27 2023-07-19 株式会社オートネットワーク技術研究所 車載更新装置、プログラム及び、プログラムの更新方法
CN113434163B (zh) * 2021-05-24 2022-10-28 瑞浦兰钧能源股份有限公司 适用于电子控制单元的在线标定方法、***、设备及介质
JP2023001993A (ja) * 2021-06-22 2023-01-10 トヨタ自動車株式会社 Otaマスタ、システム、方法、プログラム、及び車両

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000124927A (ja) * 1998-10-15 2000-04-28 Harness Syst Tech Res Ltd 車載データ通信装置及び車載データ通信方法
JP2007065856A (ja) * 2005-08-30 2007-03-15 Fujitsu Ten Ltd 情報書き換えシステムおよび情報書き換え装置
JP2013069004A (ja) * 2011-09-21 2013-04-18 Hitachi Automotive Systems Ltd 自動車用電子制御装置及びデータ通信方法
JP2015138322A (ja) * 2014-01-21 2015-07-30 株式会社デンソー 電子制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103511A (zh) * 2011-02-25 2011-06-22 北京经纬恒润科技有限公司 应用程序的刷新方法和***
JP2014057209A (ja) * 2012-09-12 2014-03-27 Fujitsu Ltd 通信装置、通信システム及び通信方法
JP6056424B2 (ja) * 2012-11-29 2017-01-11 株式会社デンソー 車載プログラム更新装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000124927A (ja) * 1998-10-15 2000-04-28 Harness Syst Tech Res Ltd 車載データ通信装置及び車載データ通信方法
JP2007065856A (ja) * 2005-08-30 2007-03-15 Fujitsu Ten Ltd 情報書き換えシステムおよび情報書き換え装置
JP2013069004A (ja) * 2011-09-21 2013-04-18 Hitachi Automotive Systems Ltd 自動車用電子制御装置及びデータ通信方法
JP2015138322A (ja) * 2014-01-21 2015-07-30 株式会社デンソー 電子制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113168314A (zh) * 2018-12-04 2021-07-23 三菱电机株式会社 更新管理装置、更新管理***及更新管理方法
CN113168314B (zh) * 2018-12-04 2023-11-10 三菱电机株式会社 更新管理装置、更新管理***及更新管理方法

Also Published As

Publication number Publication date
JP2017123012A (ja) 2017-07-13
JP6428652B2 (ja) 2018-11-28
CN108475222A (zh) 2018-08-31
US20180373522A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
JP6428652B2 (ja) 車載更新装置、更新システム及び更新処理プログラム
JP6696468B2 (ja) 車載更新装置及び車載更新システム
JP6361671B2 (ja) プログラム更新システム、プログラム更新方法、中継装置及びコンピュータプログラム
JP6665728B2 (ja) 車載更新装置、車載更新システム及び通信装置の更新方法
JP6897630B2 (ja) 車載更新装置、更新処理方法及び更新処理プログラム
US10705826B2 (en) Control apparatus, program updating method, and computer program
JP6992667B2 (ja) 車載更新装置、車載更新システム、更新処理方法及び更新処理プログラム
JP6798413B2 (ja) 車載中継装置、制御プログラム及びメモリ共有方法
JP6620891B2 (ja) 中継装置、中継方法、およびコンピュータプログラム
WO2018043107A1 (ja) 車載更新装置及び車載更新システム
WO2018154949A1 (ja) プログラム更新システム、制御装置、プログラム更新方法、及びコンピュータプログラム
US20210012591A1 (en) Data storage device and non-transitory tangible computer readable storage medium
JP6547904B2 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
JP2021047875A (ja) 車載装置、制御プログラム及びメモリ共有方法
JP6631676B2 (ja) 車載更新装置、更新システム及び更新処理プログラム
JP7087334B2 (ja) 電子制御装置
JP7211189B2 (ja) 更新処理システム及び更新処理方法
JP2017228033A (ja) 車載記憶装置、車両情報記憶方法及びプログラム
US20230036444A1 (en) System, method, and non-transitory storage medium
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20230032451A1 (en) Center, method, and non-transitory storage medium
US11954480B2 (en) Center, OTA master, system, method, non-transitory storage medium, and vehicle
US20220405080A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220342654A1 (en) Update control system, update control method, non-transitory storage medium, and in-vehicle control device
JP2022187056A (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: 16883844

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16883844

Country of ref document: EP

Kind code of ref document: A1