WO2018189975A1 - 中継装置、転送方法、およびコンピュータプログラム - Google Patents

中継装置、転送方法、およびコンピュータプログラム Download PDF

Info

Publication number
WO2018189975A1
WO2018189975A1 PCT/JP2018/001410 JP2018001410W WO2018189975A1 WO 2018189975 A1 WO2018189975 A1 WO 2018189975A1 JP 2018001410 W JP2018001410 W JP 2018001410W WO 2018189975 A1 WO2018189975 A1 WO 2018189975A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
transfer
update
vehicle
control
Prior art date
Application number
PCT/JP2018/001410
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 US16/604,209 priority Critical patent/US10970063B2/en
Priority to CN201880024526.XA priority patent/CN110494847B/zh
Priority to JP2018541438A priority patent/JP6620891B2/ja
Priority to DE112018001985.3T priority patent/DE112018001985T5/de
Publication of WO2018189975A1 publication Critical patent/WO2018189975A1/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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
    • B60R16/023Electric 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 for transmission of signals between vehicle parts or subsystems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • 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 

Definitions

  • the present invention relates to a relay device, a transfer method, and a computer program.
  • This application claims priority based on Japanese Patent Application No. 2017-078837 filed on April 12, 2017, and incorporates all the description content described in the above Japanese application.
  • ECUs Electronic Control Units
  • the types of ECUs include, for example, those related to the traveling system that controls the engine, brakes, EPS (Electric Power Steering), etc.
  • body-type ECUs that control the turning on / off of lights and the sounding of alarm devices
  • meter-type ECUs that control the operation of meters arranged near the driver's seat.
  • the ECU is configured by an arithmetic processing device such as a microcomputer, and the control of the in-vehicle device is realized by reading and executing a control program stored in a ROM (Read Only Memory).
  • the ECU control program may differ depending on the destination, grade, etc. of the vehicle, and it is necessary to rewrite the old version control program to the new version control program in response to the upgrade of the control program. Further, it is necessary to rewrite data necessary for execution of the control program such as map information and control parameters.
  • Patent Document 1 discloses a technique (online update function) for downloading an update program via a network and updating the program.
  • the relay device is a relay device that transfers a control program update program for the in-vehicle control device downloaded from the server to the in-vehicle control device, the size of the control program and the size of the update program. And a transfer control unit that determines whether transfer is possible based on the calculated index value.
  • the transfer method is a method of transferring a control program update program for an in-vehicle control device downloaded from a server to the in-vehicle control device, the size of the control program and the size of the update program. And a step of calculating an index value indicating the ratio of the above and a step of determining whether transfer is possible based on the index value.
  • the computer program is a computer program for causing a computer to function as a relay device that transfers a control program update program for an in-vehicle control device downloaded from a server to the in-vehicle control device,
  • the computer is caused to function as a calculation unit that calculates an index value indicating a ratio between the size of the control program and the size of the update program, and a transfer control unit that determines whether transfer is possible based on the calculated index value.
  • FIG. 1 is an overall configuration diagram of a program update system.
  • FIG. 2 is a block diagram showing the internal configuration of the gateway.
  • FIG. 3 is a block diagram showing an internal configuration of the ECU.
  • FIG. 4 is a block diagram showing the internal configuration of the management server.
  • FIG. 5 is a sequence diagram showing an example of the flow of online update of the control program executed in the program update system.
  • FIG. 6 is a flowchart showing specific contents of the download control process in the program update system according to the first embodiment.
  • FIG. 7 is a flowchart showing specific contents of the download control process in the program update system according to the second embodiment.
  • An object of an aspect of the present disclosure is to provide a relay device, a transfer method, and a method capable of both improving user convenience and avoiding a load on a device configuration related to online update in updating control data, And providing a computer program.
  • a relay device included in the present embodiment is a relay device that transfers a control program update program for an in-vehicle control device downloaded from a server to the in-vehicle control device.
  • a calculation unit that calculates an index value indicating a ratio to the size of the program; and a transfer control unit that determines whether transfer is possible based on the calculated index value.
  • the device configuration related to online update such as the available bandwidth of the in-vehicle communication line connected to the in-vehicle control device and the memory size of the in-vehicle control device, is related to the size of the control program of the in-vehicle control device. There is a case.
  • the device configuration related to online update is determined by determining whether or not the update program can be transferred to the in-vehicle control device based on the index value indicating the ratio between the size of the control program and the size of the update program. Transfer is executed in response to. Therefore, by appropriately setting the above-described ratio that allows transfer, it is possible to achieve both avoidance of the load on the device configuration related to online update and improvement of user convenience.
  • the index value is a value indicating a ratio of the size of the update program to the size of the control program
  • the transfer control unit starts transfer when the index value is equal to or less than the threshold, and the index value is the threshold If it is larger, the transfer is not started.
  • the relay device is connected to the in-vehicle control device via an in-vehicle communication line
  • the transfer control unit changes the threshold according to the available bandwidth of the in-vehicle communication line.
  • the threshold value By changing the threshold according to the available bandwidth of the in-vehicle communication line connected to the in-vehicle control device, it is determined whether transfer is possible using the threshold according to the in-vehicle communication line used for transfer.
  • the threshold value By setting the threshold value as an index value with a large load on communication via the in-vehicle communication line, it may be impossible to transfer an update program with a large load on communication via the in-vehicle communication line. it can. Therefore, the load on the in-vehicle communication line due to transfer can be suppressed.
  • the relay device is connected to the in-vehicle control device via the in-vehicle communication line, and the transfer control unit changes the threshold according to the operation status of one or a plurality of in-vehicle control devices connected to the in-vehicle communication line.
  • the bandwidth that can be used for the transfer of the update program on the in-vehicle communication line varies depending on the operation status of one or a plurality of in-vehicle control devices connected to the in-vehicle communication line.
  • the communication to the communication via the in-vehicle communication line is performed when the update data is transferred. It is possible to disable transfer of an update program that increases the load. Therefore, the load on the in-vehicle communication line due to transfer can be suppressed.
  • the transfer control unit again changes the threshold value according to the operation status during the period when the update data satisfies the predetermined hold condition, and determines whether or not transfer is possible. Judging. As a result, even if transfer is not permitted at the previous time point, the threshold value may change due to a change in the operating condition thereafter, and transfer may be permitted at the subsequent time point. Thereby, a user's convenience can be improved.
  • the operation status includes a traveling speed of a vehicle on which the in-vehicle control device is mounted.
  • the traveling speed of the vehicle is high, more information may be exchanged on the in-vehicle network. Therefore, by using a threshold value according to the traveling speed of the vehicle, it is possible to determine whether transfer is possible with higher accuracy.
  • the relay device is connected to the user interface device, and the transfer control unit outputs a control signal for notifying the user interface device that transfer is not allowed when transfer is not allowed.
  • the user interface device is, for example, a display or a speaker.
  • the control signal By outputting the control signal to the user interface device, the user interface device is notified that the update program is not transferred to the in-vehicle control device, that is, the online update is not executed. This notification allows the user to take necessary measures for updating the control program. For this reason, a user's convenience can be improved.
  • the transfer control unit starts download from the server when transfer is permitted.
  • the relay device starts downloading from the server, and transfers the downloaded update program to the in-vehicle control device. For this reason, it is not necessary to hold the downloaded update program for a long period of time, and memory pressure can be prevented.
  • the transfer method included in the present embodiment is a relay device according to any one of (1) to (8), in which the update program for the control program of the in-vehicle control device downloaded from the server is installed in the vehicle This is a method of transferring to a control device.
  • Such a downloading method has the same effects as the above relay devices (1) to (8).
  • a computer program included in the present embodiment causes a computer to function as the relay device described in any one of (1) to (8).
  • Such a computer program has the same effects as the relay devices (1) to (8).
  • FIG. 1 is an overall configuration diagram of a program update system according to an embodiment.
  • the program update system of this embodiment includes a vehicle 1, a management server 5, and a DL (download) server 6 that can communicate via a wide area communication network 2.
  • the management server 5 manages update information of the vehicle 1.
  • the DL server 6 stores an update program.
  • the management server 5 and the DL server 6 are operated by, for example, a car manufacturer of the vehicle 1 and can communicate with a large number of vehicles 1 owned by users who are registered as members in advance.
  • the vehicle 1 includes an in-vehicle network (communication network) 4 including a plurality of ECUs 30 and gateways 10 connected by an in-vehicle communication line 16, a wireless communication unit 15, and various in-vehicle devices controlled by each ECU 30 (see FIG. (Not shown).
  • the in-vehicle device includes a user interface device 7 such as a display and a speaker.
  • the in-vehicle network 4 includes a plurality of in-vehicle communication lines 16A and 16B, and includes a plurality of communication groups by a plurality of ECUs 30 connected to the in-vehicle communication lines 16A and 16B by buses.
  • the gateway 10 relays communication between communication groups. For this reason, in-vehicle communication lines 16A and 16B are connected to the gateway 10.
  • the in-vehicle communication lines 16A and 16B are also collectively referred to as the in-vehicle communication line 16.
  • the wireless communication unit 15 is communicably connected to a wide area communication network 2 such as a mobile phone network, and is connected to the gateway 10 via an in-vehicle communication line.
  • the gateway 10 transmits information received by the wireless communication unit 15 from an external device such as the management server 5 and the DL server 6 through the wide area communication network 2 to the ECU 30 via the in-vehicle communication line 16.
  • the gateway 10 transmits information acquired from the ECU 30 to the wireless communication unit 15, and the wireless communication unit 15 transmits the information to an external device such as the management server 5. Further, the ECUs 30 transmit and receive information via the in-vehicle communication line 16.
  • the wireless communication unit 15 mounted on the vehicle 1 in addition to the in-vehicle dedicated communication terminal, devices such as a mobile phone, a smartphone, a tablet terminal, and a notebook computer (Personal Computer) owned by the user can be considered.
  • the gateway 10 communicates with an external device via the wireless communication unit 15 is illustrated, but when the gateway 10 has a wireless communication function, the gateway 10 itself is a management server 5 or the like. It is good also as a structure which performs wireless communication with an external apparatus.
  • the management server 5 and the DL server 6 are configured as separate servers, but these servers 5 and 6 may be configured as one server device. Further, both the management server 5 and the DL server 6 may be composed of a plurality of devices.
  • FIG. 2 is a block diagram showing the internal configuration of the gateway 10.
  • the gateway 10 includes a CPU 11, a RAM (Random Access Memory) 12, a storage unit 13, an in-vehicle communication unit 14, and the like.
  • the gateway 10 is connected to the wireless communication unit 15 via the in-vehicle communication line, but these may be configured by a single device.
  • the CPU 11 causes the gateway 10 to function as a relay device for various types of information by reading one or more programs stored in the storage unit 13 into the RAM 12 and executing them.
  • the CPU 11 can execute a plurality of programs in parallel, for example, by switching and executing a plurality of programs in a time division manner.
  • the CPU 11 may represent a plurality of CPU groups. In this case, the functions realized by the CPU 11 are realized by the cooperation of a plurality of CPU groups.
  • the RAM 12 is composed of a memory element such as SRAM (Static RAM) or DRAM (Dynamic RAM), and temporarily stores a program executed by the CPU 11, data necessary for execution, and the like.
  • the computer program realized by the CPU 11 can be transferred while being recorded on a known recording medium such as a CD-ROM or DVD-ROM, or can be transferred by information transmission from a computer device such as a server computer.
  • the transfer (transmission) of data from the upper apparatus to the lower apparatus is also referred to as “downloading”.
  • the storage unit 13 includes a nonvolatile memory element such as a flash memory or an EEPROM.
  • the storage unit 13 stores a program executed by the CPU 11 and data necessary for the execution, and stores an update program for each ECU 30 to be downloaded received from the DL server 6.
  • a plurality of ECUs 30 are connected to the in-vehicle communication unit 14 via an in-vehicle communication line 16 disposed in the vehicle 1.
  • the in-vehicle communication unit 14 communicates with the ECU 30 according to, for example, a CAN (Controller Area Network) standard.
  • the communication standard adopted by the in-vehicle communication unit 14 is not limited to CAN, but is CANFD (CAN with Flexible Data Rate), LIN (Local Interconnect Network), Ethernet (registered trademark), or MOST (Media Oriented Systems Transport: MOST is a registered trademark). ) Or the like.
  • the plurality of in-vehicle communication lines 16A and 16B may include different communication standards.
  • the in-vehicle communication unit 14 transmits the information given from the CPU 11 to the target ECU 30 and gives the information received from the ECU 30 to the CPU 11.
  • the in-vehicle communication unit 14 may perform communication according to other communication standards used for the in-vehicle network 4 as well as the above communication standards.
  • the wireless communication unit 15 includes a wireless communication device including an antenna and a communication circuit that performs transmission / reception of a wireless signal from the antenna.
  • the wireless communication unit 15 can communicate with an external device by being connected to a wide area communication network 2 such as a mobile phone network.
  • the wireless communication unit 15 transmits information given from the CPU 11 to an external device such as the management server 5 via the wide area communication network 2 formed by a base station (not shown), and receives information received from the external device to the CPU 11. give.
  • a wired communication unit that functions as a relay device in the vehicle 1 may be employed.
  • the wired communication unit has a connector to which a communication cable conforming to a standard such as USB (Universal Serial Bus) or RS232C is connected, and performs wired communication with another communication device connected via the communication cable.
  • a communication cable conforming to a standard such as USB (Universal Serial Bus) or RS232C is connected
  • RS232C Universal Serial Bus
  • the outside of the vehicle depends on the communication path of the outside device ⁇ another communication device ⁇ the wired communication unit ⁇ the gateway 10.
  • the apparatus and the gateway 10 can communicate with each other.
  • FIG. 3 is a block diagram showing an internal configuration of the ECU 30.
  • the ECU 30 includes a CPU 31, a RAM 32, a storage unit 33, a communication unit 34, and the like.
  • the ECU 30 is an in-vehicle control device that individually controls target devices mounted on the vehicle 1. Examples of the ECU 30 include a power supply control ECU, an engine control ECU, a steering control ECU, and a door lock control ECU.
  • the CPU 31 controls the operation of the target device that it is in charge of by reading one or more programs stored in advance in the storage unit 33 into the RAM 32 and executing them.
  • the CPU 31 may also represent a plurality of CPU groups, and the control by the CPU 31 may be control by cooperation of a plurality of CPU groups.
  • the RAM 32 is configured by a memory element such as SRAM or DRAM, and temporarily stores programs executed by the CPU 31, data necessary for execution, and the like.
  • the storage unit 33 is configured by a nonvolatile memory element such as a flash memory or an EEPROM, or a magnetic storage device such as a hard disk.
  • the storage unit 33 stores a program that the CPU 31 reads and executes.
  • a computer program for causing the CPU 31 to execute information processing for controlling a target device that is a control target in the vehicle, or a program such as a parameter or map information is executed.
  • a control program which is data used at the time is included.
  • the gateway 10 is connected to the communication unit 34 via the in-vehicle communication line 16 provided in the vehicle 1.
  • the communication unit 34 communicates with the gateway 10 according to a standard such as CAN, Ethernet, or MOST.
  • the communication unit 34 transmits the information given from the CPU 31 to the gateway 10 and gives the information received from the gateway 10 to the CPU 31.
  • the communication unit 34 may communicate according to other communication standards used for the in-vehicle network, in addition to the above communication standards.
  • the CPU 31 of the ECU 30 includes an activation unit 35 that switches the control mode by the CPU 31 to either “normal mode” or “reprogramming mode” (hereinafter also referred to as “repro mode”).
  • the normal mode is a control mode in which the CPU 31 of the ECU 30 executes an original control for the target device (for example, engine control for the fuel engine, door lock control for the door lock motor, etc.).
  • the reprogramming mode is a control mode in which a control program used for controlling the target device is updated. That is, the reprogramming mode is a control mode in which the CPU 31 erases or rewrites data of the control program in the ROM area of the storage unit 33. Only in this control mode, the CPU 31 can update the control program stored in the ROM area of the storage unit 33 to a new version.
  • the activation unit 35 When the CPU 31 writes the new version of the control program in the storage unit 33 in the repro mode, the activation unit 35 once restarts (resets) the ECU 30 and executes the verify process on the storage area in which the new version of the control program is written. .
  • the activation unit 35 causes the CPU 31 to operate according to the updated control program after the above-described verification processing is completed. Downloading an update program from the DL server 6 to the ECU 30 via the gateway 10 and updating the control program using the update program is also referred to as online update.
  • FIG. 4 is a block diagram showing the internal configuration of the management server 5.
  • the management server 5 includes a CPU 51, a ROM 52, a RAM 53, a storage unit 54, a communication unit 55, and the like.
  • the CPU 51 reads out one or more programs stored in advance in the ROM 52 to the RAM 53 and executes them, thereby controlling the operation of each hardware and causing the management server 5 to function as an external device that can communicate with the gateway 10.
  • the CPU 51 may also represent a plurality of CPU groups, and the functions realized by the CPU 51 may be realized by the cooperation of a plurality of CPU groups.
  • the RAM 53 is configured by a memory element such as SRAM or DRAM, and temporarily stores programs executed by the CPU 51 and data necessary for execution.
  • the storage unit 54 includes a nonvolatile memory element such as a flash memory or an EEPROM, or a magnetic storage device such as a hard disk.
  • the communication unit 55 includes a communication device that executes communication processing in accordance with a predetermined communication standard, and is connected to the wide area communication network 2 such as a mobile phone network to execute the communication processing.
  • the communication unit 55 transmits the information given from the CPU 51 to the external device via the wide area communication network 2 and gives the information received via the wide area communication network 2 to the CPU 51.
  • FIG. 5 is a sequence diagram showing an example of an online update flow of the control program executed in the program update system of the present embodiment.
  • One or a plurality of update programs are stored in the DL server 6.
  • the management server 5 determines the timing for updating the control program of the ECU of the vehicle 1 for the vehicle 1 registered in advance.
  • the update timing may be set by, for example, the car manufacturer of the vehicle 1.
  • the control program includes not only the program itself but also data used when executing the program, such as parameters and map information. These are represented as “control programs”. Therefore, the update program includes not only a program for updating the program but also data for updating data used when the program is executed.
  • step S1 the management server 5 notifies the gateway 10 of the corresponding vehicle 1 of the update (step S1).
  • step 1 update information such as the storage destination URL of the update program and the size of the update program is sent from the management server 5 to the gateway 10 together with the download request.
  • the gateway 10 that has received the update notification from the management server 5 executes a download control process (step S2).
  • the download control process includes a process of determining whether or not the update program can be transferred to the ECU 30 and executing the transfer according to the determination result. Details of the processing will be described later.
  • step S2 When the download control process in step S2 allows the transfer of the update program to the ECU 30, the gateway 10 relays the update program downloaded from the DL server 6 to the ECU 30. That is, the gateway 10 requests the DL server 6 to download an update program based on the update information (step S3), and downloads the update program from the DL server 6 to the gateway 10.
  • the DL server 6 requested to download from the gateway 10 transfers (relays) the update program to be downloaded to the gateway 10 and requests update of the control program (step S4).
  • the gateway 10 transfers the update program to the ECU 30 and requests an update of the control program (step S5).
  • the gateway 10 may transfer the update program by receiving an update permission from the user.
  • step S6 the target ECU 30 notifies the gateway 10 of the update completion (step S7).
  • the gateway 10 Upon receiving this notification, the gateway 10 notifies the DL server 6 of the update completion (step S8).
  • CPU 11 of gateway 10 includes a calculation unit 111 and a download (DL) control unit 112 as functions for executing a download control process. These functions are functions realized in the CPU 11 when the CPU 11 reads and executes one or more programs stored in the storage unit 13. However, at least a part of the functions may be realized by hardware such as an electronic circuit.
  • the function of the CPU 11 represented by the calculation unit 111 calculates an index value for an index representing a ratio between the size X of the control program to be updated and the size ⁇ X of the update program.
  • the calculated index value is used to determine whether or not the update program can be transferred to the ECU 30.
  • the index value is, for example, ⁇ X / X.
  • the index value may be X / ⁇ X or X ⁇ X.
  • the calculation unit 111 may store the size X in advance or may acquire it from the target ECU 30. Further, the calculation unit 111 reads the size ⁇ X from the update information from the management server 5.
  • the function of the CPU 11 represented by the DL control unit 112 determines whether or not the update program can be transferred to the ECU 30 based on the index value. If the determination result is affirmative, that is, if transfer is permitted, download from the DL server 6 is started. If it is negative, that is, if transfer is not allowed, download is not performed.
  • the DL control unit 112 stores in advance a threshold value Th of an index value ⁇ X / X that permits transfer. Then, based on the comparison result between the index value ⁇ X / X and the threshold value Th, whether transfer is possible is determined. That is, the DL control unit 112 determines that the update program is transferred to the ECU 30 when the index value ⁇ X / X is equal to or smaller than the threshold Th, that is, download from the DL server 6 is started. It is determined that the update program is not transferred to the ECU 30, that is, download is not executed.
  • the case where the index value ⁇ X / X is larger than the threshold value Th means that the ratio of data to be updated with respect to the control program is large, and it can be said that the scale of the update is large.
  • the case where the index value ⁇ X / X is equal to or smaller than the threshold value Th means that the ratio of data to be updated with respect to the control program is small, and it can be said that the scale of the update is small.
  • FIG. 6 is a flowchart showing specific contents of the download control process in the program update system according to the first embodiment.
  • the processing shown in the flowchart of FIG. 6 is performed by the CPU 11 of the gateway 10 by reading one or more programs stored in the storage unit 13 onto the RAM 12 and executing them, thereby executing the functions of the calculation unit 111 and the DL control unit 112. It is executed by realizing.
  • the process of FIG. 6 is repeatedly executed at a predetermined timing such as a predetermined time interval while the CPU 11 is activated.
  • CPU 11 determines whether or not control server update is notified from management server 5, that is, whether or not there is an update program to be downloaded (step S101). If there is no update program to be downloaded (NO in step S101), the subsequent operation is not performed, and the process waits until the next predetermined timing comes.
  • step S101 If there is an update program to be downloaded (YES in step S101), the CPU 11 acquires the size ⁇ X from the update notification from the management server 5. Further, the size X is acquired from the target ECU 30. Then, the CPU 11 calculates an index value ⁇ X / X (step S103).
  • the CPU 11 compares the index value ⁇ X / X with the threshold Th stored in advance (step S105). When the index value ⁇ X / X is equal to or smaller than the threshold value Th (NO in step S105), the CPU 11 allows the update program to be transferred to the ECU 30 (step S107). In this case, the CPU 11 executes the operations after step S3 in FIG.
  • the CPU 11 When the index value ⁇ X / X is larger than the threshold Th (YES in step S105), the CPU 11 does not allow the update program to be transferred to the ECU 30. In this case, the CPU 11 outputs a control signal for notifying the user interface device 7 to the ECU 30 that controls the user interface device 7. Thereby, notification is performed by the user interface device (step S109). In this case, the operation after step S3 in FIG. 5 is not performed.
  • the notification in step S109 is a notification that the update program is not transferred to the ECU 30, a notification that prompts the vehicle 1 to stop and enter the repro mode, a notification that prompts the dealer to update the control program, and the like.
  • the user can know that the update program is not transferred to the ECU 30, that is, the online update is not executed. Therefore, the user can take measures for updating the control program, such as stopping the vehicle 1 and setting the repro mode, or entering the dealer and requesting the control program to be updated.
  • the CPU 11 complete
  • the CPU 11 repeats the above operation. Therefore, the CPU 11 determines whether or not the next update program can be transferred to the ECU 30. That is, if transfer of one update program to the ECU 30 is not permitted, whether or not transfer of the next update program is possible is determined, and if the determination result is affirmative, the update program of the next update program is determined. Download from the DL server 6 and transfer to the ECU 30 are started. Thereby, a plurality of update programs can be efficiently transferred to the corresponding ECU 30, and the control program can be updated efficiently.
  • the device configuration related to online update such as the available bandwidth (communication speed) of the in-vehicle communication line 16 to which the target ECU 30 is connected and the storage capacity of the storage unit 33 of the ECU 30, is the size of the control program of the ECU 30. May be related to That is, when the size of the control program is large, the usable bandwidth of the in-vehicle communication line 16 and the memory capacity of the ECU 30 may be large according to the size. In this case, if a large-scale update is executed by online update, there is a possibility that the communication load of the in-vehicle communication line 16 increases and the memory of the ECU 30 is compressed.
  • the maximum size of the update program that allows transfer is uniformly set, the usable bandwidth is large depending on the in-vehicle communication line 16, and therefore the communication load due to transfer of the update program is not large, Since the memory capacity is large, the update process may not compress the memory greatly. In this case, if it is determined not to execute online update, the convenience of the user is impaired.
  • the program update system according to the first embodiment determines whether transfer is possible based on the ratio between the size X and the size ⁇ X, the load on the device configuration related to online update determines whether transfer is possible. It is reflected in judgment. Therefore, in the program update system according to the first embodiment, it is possible to update the control program while achieving both improvement in user convenience and avoidance of the load on the apparatus configuration related to online update.
  • the threshold value Th may be different according to the available bandwidth of the in-vehicle communication line 16 connected to the ECU 30 used for transferring the update program.
  • the in-vehicle communication lines 16 having different usable bandwidths may be included in the plurality of in-vehicle communication lines 16A and 16B.
  • the available bandwidth of the in-vehicle communication line 16 may take into account a communication capacity limit (remaining capacity) in communication with the gateway 10.
  • the DL control unit 112 stores a threshold value Th corresponding to the usable bandwidth of the in-vehicle communication line 16 in advance. Then, using the threshold value Th corresponding to the in-vehicle communication line 16 to which the transfer destination ECU 30 is connected, it is determined whether or not the update program can be transferred.
  • the usable bandwidth of the in-vehicle communication line 16 used for transfer is determined by determining whether the update program can be transferred using the threshold Th corresponding to the in-vehicle communication line 16 used for transferring the update program. It is possible to determine whether transfer is possible or not.
  • the threshold value Th as an index value with a large load on the communication via the in-vehicle communication line 16
  • transfer of an update program with a large load on the communication via the in-vehicle communication line 16 is not permitted. . Therefore, the load on the in-vehicle communication line 16 due to the transfer of the update program can be suppressed.
  • the gateway 10 stores a threshold value Th in advance.
  • the bandwidth of the in-vehicle communication line 16 that can be used to transfer the update program varies depending on the operating status of one or more ECUs 30 connected to the in-vehicle communication line 16 connected to the transfer destination ECU 30.
  • the operation status includes, for example, the traveling speed of the vehicle 1, the type and number of ECUs 30 that are operating, the operating level of one or more ECUs 30, combinations thereof, and the like.
  • the traveling speed of the vehicle 1 when the traveling speed of the vehicle 1 is high, more information is exchanged on the in-vehicle communication line 16, so that the bandwidth of the in-vehicle communication line 16 that can be used for transferring the update program is reduced.
  • the traveling speed of the vehicle 1 when the traveling speed of the vehicle 1 is high, the maximum occupation rate allowed for the in-vehicle communication line 16 may be set low, and therefore the bandwidth of the in-vehicle communication line 16 that can be used for transfer of the update program. Becomes smaller.
  • the bandwidth of the in-vehicle communication line 16 that can be used for transferring the update program is small.
  • the amount of communication on the in-vehicle communication line 16 may vary depending on the ECU 30 that is operating. When the ECU 30 with a large amount of communication is operating, a large amount of information is exchanged on the in-vehicle communication line 16, so that the bandwidth of the in-vehicle communication line 16 that can be used for transferring the update program is reduced.
  • the communication amount of the in-vehicle communication line 16 may vary depending on the support level of the driving support function.
  • the communication level is a support level that increases, a large amount of information is exchanged on the in-vehicle communication line 16, so that the bandwidth of the in-vehicle communication line 16 that can be used for transferring the update program is reduced.
  • the threshold value Th is changed (determined) according to the operation status of one or more ECUs 30 connected to the in-vehicle communication line 16 together with the transfer destination ECU 30.
  • the one or more ECUs 30 may include a transfer destination ECU 30.
  • the DL control unit 112 of the gateway 10 includes one or more connected to the in-vehicle communication line 16 together with the ratio of the control program size X and the update program size ⁇ X and the transfer destination ECU 30. Whether or not the update program can be transferred is determined based on the operation status of the ECU 30. In order to determine whether transfer is possible in consideration of the operation status, the DL control unit 112 according to the second embodiment changes the threshold Th based on the operation status.
  • the update program sets the hold condition defined in advance. When it is satisfied, it is suspended to decide not to transfer the update program to the ECU 30.
  • the hold condition is, for example, that the update program is within a predetermined period from the time when the update program is ready to be downloaded, and the number of times the transfer program is determined to be transferred or not is within a predetermined number That is, there are other download target update programs in the DL server 6, and combinations thereof.
  • the DL control unit 112 stores in advance the correspondence between the operating situation and the threshold value Th. Then, the DL control unit 112 reads the threshold value Th corresponding to the operation status from the correspondence relationship. As another example, a calculation formula for the threshold Th using an index representing an operation state as a parameter may be stored in advance. Then, the DL control unit 112 calculates the threshold value Th by substituting the index value of the index representing the operating situation into the calculation formula. For example, the index representing the operation status is the traveling speed of the vehicle 1, and the speed is substituted into the calculation formula as the index value.
  • the update program is held in the DL server 6 as an update program to be downloaded without starting the download from the DL server 6 at the time when the update program is determined.
  • the DL control unit 112 again determines whether or not transfer can be performed for the update program within a period that satisfies the suspension condition.
  • the threshold Th Since the operating status changes, the threshold Th also changes. Therefore, even if transfer is not permitted once, transfer may be permitted by changing the threshold Th at a later time. In this case, download from the DL server 6 is started at a later time.
  • FIG. 7 is a flowchart showing specific contents of the download control process in the program update system according to the second embodiment.
  • the CPU 11 of the gateway 10 also reads one or more programs stored in the storage unit 13 on the RAM 12 and executes them, thereby executing the calculation unit 111 and the DL control unit 112. It is executed by realizing the function.
  • the operations with the same step numbers as those in the flowchart of FIG. 6 have the same contents. Differences from the flowchart of FIG. 6 will be described.
  • the CPU 11 determines a threshold value Th based on the operation status at that time (step S201). Then, the CPU 11 compares the determined threshold Th with the index value ⁇ X / X (step S105).
  • step S105 the CPU 11 further determines whether or not the update program satisfies a predetermined hold condition (step S203). If the update program satisfies the hold condition (YES in step S203), it is suspended to decide not to transfer the update program. In this case, the update program is not downloaded from the DL server 6 at that time but is held in the DL server 6. Then, the CPU 11 performs the operation from step S201 again after a predetermined period.
  • the update program is transferred to the ECU 30 following the download of the update program from the DL server 6 to the gateway 10. Therefore, download from the DL server 6 is started when transfer is allowed, and download from the DL server 6 is not executed when transfer is not allowed.
  • the determination as to whether or not the update program can be transferred is also a determination as to whether or not download from the DL server 6 is possible, and the transfer starts.
  • the gateway 10 executes the DL control process (step S2) before downloading the update program from the DL server 6 to the ECU 30, that is, before step S3 (FIG. 5). As a result, it is possible to prevent the update program from being held in the storage unit 13 of the gateway 10 for a long time and compressing the memory.
  • the transfer of the update program to the ECU 30 is executed at a timing independent from the download of the update program from the DL server 6 to the gateway 10. That is, the gateway 10 downloads the update program from the DL server 6 and stores it in the storage unit 13, and determines whether or not the stored update program can be transferred to the ECU 30.
  • the DL control process is executed between step S3 and step S4.
  • the DL control unit 112 downloads the update program from the DL server 6 to the gateway 10 at a predetermined timing such as a timing requested from the management server 5, for example. Then, the DL control unit 112 determines whether or not the stored update program can be transferred to the ECU 30, and starts transfer according to the result.
  • download and transfer can be performed at appropriate timings, so that online update can be performed efficiently.
  • whether or not transfer is possible is determined again during a period in which the update program satisfies the hold condition even if transfer is not permitted.
  • the gateway 10 retains the update program that is not permitted to be transferred from the storage unit 13 without discarding it.
  • the update program can be transferred to ECU30 without being downloaded from DL server 6 again. Therefore, the entire transfer of the update program from the DL server 6 to the ECU 30 can be accelerated, and unnecessary communication can be suppressed.
  • the disclosed features are realized by one or more modules.
  • the feature can be realized by a circuit element or other hardware module, by a software module that defines processing for realizing the feature, or by a combination of a hardware module and a software module.
  • a program that is a combination of one or more software modules for causing a computer to execute the above-described operation.
  • a program is recorded on a computer-readable recording medium such as a flexible disk attached to the computer, a CD-ROM (Compact Disk-Read Only Memory), a ROM, a RAM, and a memory card, and provided as a program product. You can also.
  • the program can be provided by being recorded on a recording medium such as a hard disk built in the computer.
  • a program can also be provided by downloading via a network.
  • the program according to the present disclosure is a program module that is provided as a part of a computer operating system (OS) and calls necessary modules in a predetermined arrangement at a predetermined timing to execute processing. Also good. In that case, the program itself does not include the module, and the process is executed in cooperation with the OS. Such a program that does not include a module may also be included in the program according to the present disclosure.
  • OS computer operating system
  • the program according to the present disclosure may be provided by being incorporated in a part of another program. Even in this case, the program itself does not include the module included in the other program, and the process is executed in cooperation with the other program.
  • a program incorporated in such another program may also be included in the program according to the present disclosure.
  • the provided program product is installed in a program storage unit such as a hard disk and executed.
  • the program product includes the program itself and a recording medium on which the program is recorded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、前記車載制御装置に転送する中継装置であって、前記制御プログラムのサイズと前記更新用プログラムのサイズとの比率を示す指標値を算出する算出部と、算出された前記指標値に基づいて、前記転送の可否を判断する転送制御部と、を備える、中継装置。

Description

中継装置、転送方法、およびコンピュータプログラム
 この発明は中継装置、転送方法、およびコンピュータプログラムに関する。
 本出願は、2017年4月12日出願の日本出願第2017-078837号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
 近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ECU(Electronic Control Unit)が多数搭載されている。
 ECUの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、EPS(Electric Power Steering)等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯/消灯と警報器の吹鳴等の制御を行うボディ系ECU、運転席近傍に配設されるメータ類の動作を制御するメータ系ECUなどがある。
 一般的にECUは、マイクロコンピュータ等の演算処理装置によって構成されており、ROM(Read Only Memory)に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
 ECUの制御プログラムは、車両の仕向け地やグレードなど応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。また、たとえば地図情報や制御用のパラメータなど、制御プログラムの実行に必要なデータも書き換える必要がある。
 たとえば、特許文献1には、ネットワークを介して更新用のプログラムをダウンロードし、プログラムの更新を行う技術(オンライン更新機能)が開示されている。
特開2015-37938号公報
 ある実施の形態に従うと、中継装置はサーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、車載制御装置に転送する中継装置であって、制御プログラムのサイズと前記更新用プログラムのサイズとの比率を示す指標値を算出する算出部と、算出された指標値に基づいて、転送の可否を判断する転送制御部と、を備える。
 他の実施の形態に従うと、転送方法は、サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、車載制御装置に転送する方法であって、制御プログラムのサイズと更新用プログラムのサイズとの比率を示す指標値を算出するステップと、指標値に基づいて転送の可否を判断するステップと、を備える。
 他の実施の形態に従うと、コンピュータプログラムは、サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、車載制御装置に転送する中継装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、制御プログラムのサイズと更新用プログラムのサイズとの比率を示す指標値を算出する算出部と、算出された指標値に基づいて、転送の可否を判断する転送制御部、として機能させる。
図1は、プログラム更新システムの全体構成図である。 図2は、ゲートウェイの内部構成を示すブロック図である。 図3は、ECUの内部構成を示すブロック図である。 図4は、管理サーバの内部構成を示すブロック図である。 図5は、プログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。 図6は、第1の実施の形態にかかるプログラム更新システムにおけるダウンロード制御処理の具体的な内容を表したフローチャートである。 図7は、第2の実施の形態にかかるプログラム更新システムにおけるダウンロード制御処理の具体的な内容を表したフローチャートである。
<本開示が解決しようとする課題>
 特許文献1に開示されているようにオンライン更新を実行する場合、通信負荷の増加や、更新処理のためのメモリの圧迫、などの、オンライン更新に関連する装置構成の負荷をまねくおそれがある。一方で、オンライン更新をすべて不許可とすると、更新のたびにディーラーなどによる更新作業が必要となるために、ユーザの利便性が低下する。
 本開示のある局面における目的は、制御用のデータの更新において、ユーザの利便性の向上と、オンライン更新に関連する装置構成の負荷の回避と、を両立することができる中継装置、転送方法、およびコンピュータプログラムを提供することである。
<本開示の効果>
 この開示によると、ユーザの利便性の向上と、オンライン更新に関連する装置構成の負荷の回避と、を両立させることができる。
[実施の形態の説明]
 本実施の形態には、少なくとも以下のものが含まれる。すなわち、
 (1)本実施の形態に含まれる中継装置は、サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、車載制御装置に転送する中継装置であって、制御プログラムのサイズと更新用プログラムのサイズとの比率を示す指標値を算出する算出部と、算出された指標値に基づいて、転送の可否を判断する転送制御部と、を備える。
 車載制御装置の接続されている車内通信線の使用可能な帯域幅や、車載制御装置のメモリサイズなどの、オンライン更新に関連する装置構成は、車載制御装置の制御プログラムのサイズに関連している場合がある。この場合において、制御プログラムのサイズと更新用プログラムのサイズとの比率を示す指標値に基づいて更新用プログラムの車載制御装置への転送の可否が判断されることによって、オンライン更新に関連する装置構成に応じて転送が実行される。そのため、転送を許容する上記比率を適切に設定することによって、オンライン更新に関連する装置構成の負荷の回避と、ユーザの利便性の向上と、を両立させることができる。
 (2)好ましくは、指標値は制御プログラムのサイズに対する更新用プログラムのサイズの比率を示す値であって、転送制御部は、指標値が閾値以下の場合に転送を開始し、指標値が閾値より大きい場合には転送を開始しない。
 閾値を適切に設定することによって、規模の大きな更新はオンライン更新で実行しないようにし、そうでない更新をオンライン更新で実行するようにできる。これにより、オンライン更新に関連する装置構成の負荷の回避と、ユーザの利便性の向上と、を両立させることができる。
 (3)好ましくは、中継装置は車載制御装置と車内通信線を介して接続され、転送制御部は、車内通信線の使用可能な帯域幅に応じて閾値を変更する。
 車載制御装置に接続された車内通信線の使用可能な帯域幅に応じて閾値が変更されることによって、転送に用いられる車内通信線に応じた閾値を用いて転送の可否が判断される。閾値を、車内通信線を介した通信への負荷が大きい程度の指標値と設定しておくことで、車内通信線を介した通信への負荷が大きい更新用プログラムの転送を不可とすることができる。そのため、転送による車内通信線への負荷を抑えることができる。
 (4)好ましくは、中継装置は車載制御装置と車内通信線を介して接続され、転送制御部は、車内通信線に接続された1または複数の車載制御装置の動作状況に応じて閾値を変更する。
 車内通信線に接続された1または複数の車載制御装置の動作状況によって、当該車内通信線の、更新用プログラムの転送に使用可能な帯域幅は変化する。そのため、動作状況に応じて、車内通信線を介した通信への負荷が大きい程度の指標値となるように閾値を変更することによって、更新用データの転送時に車内通信線を介した通信への負荷が大きくなるような更新用プログラムの転送を不可とすることができる。そのため、転送による車内通信線への負荷を抑えることができる。
 (5)好ましくは、転送制御部は、指標値が閾値より大きい場合には、更新用データが所定の保留条件を満たす期間に、再度、動作状況に応じて閾値を変更して、転送の可否を判断する。
 これにより、先の時点において転送が許容されなかった場合であっても、その後に動作状況が変化することによって閾値が変化し、当該その後の時点においては転送が許容される場合がある。これにより、ユーザの利便性を向上させることができる。
 (6)好ましくは、動作状況は、車載制御装置が搭載された車両の走行速度を含む。
 車両の走行速度が速い場合には、より多く情報が車内ネットワーク上でやり取りされることがある。そのため、車両の走行速度に応じた閾値を用いることによって、より高精度で転送の可否を判断することができる。
 (7)好ましくは、中継装置はユーザインタフェース装置と接続され、転送制御部は、転送を許容しない場合にユーザインタフェース装置に転送が許容されないことの通知を行わせるための制御信号を出力する。
 ユーザインタフェース装置は、たとえば、ディスプレイ、スピーカなどである。制御信号が当該ユーザインタフェース装置に出力されることによって、ユーザインタフェース装置では更新用プログラムが車載制御装置に転送されないこと、つまり、オンライン更新が実行されないことが通知される。この通知によって、ユーザは、制御プログラムの更新のための必要な対処を採ることができる。このため、ユーザの利便性を向上させることができる。
 (8)好ましくは、転送制御部は、転送を許容するときにサーバからのダウンロードを開始する。
 中継装置は、サーバからのダウンロードを開始し、ダウンロードされた更新用プログラムを車載制御装置に転送する。このため、ダウンロードされた更新用プログラムを長期間、保持しておく必要がなく、メモリの圧迫を防止できる。
 (9)本実施の形態に含まれる転送方法は、(1)~(8)のいずれか1つに記載の中継装置において、サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを車載制御装置に転送する方法である。
 かかるダウンロード方法は、上記(1)~(8)の中継装置と同様の効果を奏する。
 (10)本実施の形態に含まれるコンピュータプログラムは、コンピュータを、(1)~(8)のいずれか1つに記載の中継装置として機能させる。
 かかるコンピュータプログラムは、上記(1)~(8)の中継装置と同様の効果を奏する。
[実施の形態の詳細]
 以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
 <第1の実施の形態>
 〔システムの全体構成〕
 図1は、実施形態にかかるプログラム更新システムの全体構成図である。
 図1に示すように、本実施形態のプログラム更新システムは、広域通信網2を介して通信可能な車両1、管理サーバ5およびDL(ダウンロード)サーバ6を含む。
 管理サーバ5は、車両1の更新情報を管理する。DLサーバ6は、更新用プログラムを保存する。管理サーバ5およびDLサーバ6は、たとえば、車両1のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両1と通信可能である。
 車両1には、車内通信線16で接続された複数のECU30とゲートウェイ10とを含む車内ネットワーク(通信ネットワーク)4と、無線通信部15と、各ECU30によりそれぞれ制御される各種の車載機器(図示せず)と、が搭載されている。車載機器は、ディスプレイ、スピーカ等のユーザインタフェース装置7を含む。
 車内ネットワーク4は複数の車内通信線16A,16Bを有し、車内通信線16A,16Bそれぞれにバス接続された複数のECU30による複数の通信グループを含む。ゲートウェイ10は、通信グループ間の通信を中継している。このため、ゲートウェイ10には車内通信線16A,16Bが接続されている。車内通信線16A,16Bを車内通信線16とも総称する。
 無線通信部15は、携帯電話網などの広域通信網2に通信可能に接続され、車内通信線によりゲートウェイ10に接続されている。ゲートウェイ10は、広域通信網2を通じて管理サーバ5およびDLサーバ6などの車外装置から無線通信部15が受信した情報を、車内通信線16を介してECU30に送信する。
 ゲートウェイ10は、ECU30から取得した情報を無線通信部15に送信し、無線通信部15は、その情報を管理サーバ5などの車外装置に送信する。
 また、ECU30同士は、車内通信線16を介して情報を送受信する。
 車両1に搭載される無線通信部15としては、車載の専用通信端末の他に、たとえば、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートPC(Personal Computer)等の装置が考えられる。
 図1では、ゲートウェイ10が無線通信部15を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ10が無線通信の機能を有する場合には、ゲートウェイ10自身が管理サーバ5などの車外装置と無線通信を行う構成としてもよい。
 また、図1のプログラム更新システムでは、管理サーバ5とDLサーバ6とが別個のサーバで構成されているが、これらのサーバ5,6を1つのサーバ装置で構成してもよい。また、管理サーバ5およびDLサーバ6は、いずれも、複数の装置からなるものであってもよい。
 〔ゲートウェイの内部構成〕
 図2は、ゲートウェイ10の内部構成を示すブロック図である。
 図2に示すように、ゲートウェイ10は、CPU11、RAM(Random Access Memory)12、記憶部13、および車内通信部14などを備える。ゲートウェイ10は、無線通信部15と車内通信線を介して接続されているが、これらは一つの装置で構成してもよい。
 CPU11は、記憶部13に記憶された一または複数のプログラムをRAM12に読み出して実行することにより、ゲートウェイ10を各種情報の中継装置として機能させる。
 CPU11は、たとえば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。なお、CPU11は複数のCPU群を代表するものであってもよい。この場合、CPU11の実現する機能は、複数のCPU群が協働して実現するものである。RAM12は、SRAM(Static RAM)またはDRAM(Dynamic RAM)等のメモリ素子で構成され、CPU11が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
 CPU11が実現するコンピュータプログラムは、CD-ROMやDVD-ROMなどの周知の記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からの情報伝送によって譲渡することもできる。
 この点は、後述のECU30のCPU31(図3参照)が実行するコンピュータプログラム、および、後述の管理サーバ5のCPU51(図4参照)が実行するコンピュータプログラムについても同様である。
 なお、以降の説明において、上位装置が下位装置にデータを転送(送信)することを「ダウンロードする」ともいう。
 記憶部13は、フラッシュメモリ若しくはEEPROM等の不揮発性のメモリ素子などにより構成されている。記憶部13は、CPU11が実行するプログラムおよび実行に必要なデータ等を記憶するとともに、DLサーバ6から受信した、ダウンロード対象の各ECU30の更新用プログラムなどを記憶する。
 車内通信部14には、車両1に配設された車内通信線16を介して複数のECU30が接続されている。車内通信部14は、たとえばCAN(Controller Area Network)の規格に応じて、ECU30との通信を行う。車内通信部14の採用する通信規格はCANに限定されず、CANFD(CAN with Flexible Data Rate)、LIN(Local Interconnect Network)、Ethernet(登録商標)、またはMOST(Media Oriented Systems Transport:MOSTは登録商標)等の規格であってもよい。複数の車内通信線16A,16Bの中には、通信規格の異なるものが含まれていてもよい。
 車内通信部14は、CPU11から与えられた情報を対象のECU30へ送信するとともに、ECU30から受信した情報をCPU11に与える。車内通信部14は、上記の通信規格だけでなく、車内ネットワーク4に用いる他の通信規格によって通信してもよい。
 無線通信部15は、アンテナと、アンテナからの無線信号の送受信を実行する通信回路とを含む無線通信機よりなる。無線通信部15は、携帯電話網等の広域通信網2に接続されることにより車外装置との通信が可能である。
 無線通信部15は、図示しない基地局により形成される広域通信網2を介して、CPU11から与えられた情報を管理サーバ5等の車外装置に送信するとともに、車外装置から受信した情報をCPU11に与える。
 図2に示す無線通信部15に代えて、車両1内の中継装置として機能する有線通信部を採用してもよい。この有線通信部は、USB(Universal Serial Bus)またはRS232C等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
 別の通信装置と管理サーバ5等の車外装置とが広域通信網2を通じた無線通信が可能である場合には、車外装置→別の通信装置→有線通信部→ゲートウェイ10の通信経路により、車外装置とゲートウェイ10とが通信可能になる。
 〔ECUの内部構成〕
 図3は、ECU30の内部構成を示すブロック図である。
 図3に示すように、ECU30は、CPU31、RAM32、記憶部33、および通信部34などを備える。ECU30は、車両1に搭載された対象機器を個別に制御する車載制御装置である。ECU30の種類には、たとえば、電源制御ECU、エンジン制御ECU、ステアリング制御ECU、およびドアロック制御ECUなどがある。
 CPU31は、記憶部33に予め記憶された一または複数のプログラムをRAM32に読み出して実行することにより、自身が担当する対象機器の動作を制御する。CPU31もまた複数のCPU群を代表するものであってもよく、CPU31による制御は、複数のCPU群が協働することによる制御であってもよい。
 RAM32は、SRAMまたはDRAM等のメモリ素子で構成され、CPU31が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
 記憶部33は、フラッシュメモリ若しくはEEPROM等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
 記憶部33は、CPU31が読み出して実行するプログラムを格納する。記憶部33が記憶する情報には、たとえば、車内の制御対象である対象機器を制御するための情報処理をCPU31に実行させるためのコンピュータプログラムや、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータである制御プログラムが含まれる。
 通信部34には、車両1に配設された車内通信線16を介してゲートウェイ10が接続されている。通信部34は、たとえばCAN、Ethernet、またはMOST等の規格に応じて、ゲートウェイ10との通信を行う。
 通信部34は、CPU31から与えられた情報をゲートウェイ10へ送信するとともに、ゲートウェイ10から受信した情報をCPU31に与える。通信部34は、上記の通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
 ECU30のCPU31には、当該CPU31による制御モードを、「通常モード」または「リプログラミングモード」(以下、「リプロモード」ともいう。)のいずれかに切り替える起動部35が含まれる。
 ここで、通常モードとは、ECU30のCPU31が、対象機器に対する本来的な制御(たとえば、燃料エンジンに対するエンジン制御や、ドアロックモータに対するドアロック制御など)を実行する制御モードのことである。
 リプログラミングモードとは、対象機器の制御に用いる制御プログラムを更新する制御モードである。
 すなわち、リプログラミングモードは、CPU31が、記憶部33のROM領域に対して、制御プログラムのデータの消去や書き換えを行う制御モードのことである。CPU31は、この制御モードのときにのみ、記憶部33のROM領域に格納された制御プログラムを新バージョンに更新することが可能となる。
 リプロモードにおいてCPU31が新バージョンの制御プログラムを記憶部33に書き込むと、起動部35は、ECU30をいったん再起動(リセット)させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
 起動部35は、上記のベリファイ処理の完了後に、CPU31を更新後の制御プログラムによって動作させる。
 DLサーバ6からゲートウェイ10を介してECU30に更新用プログラムがダウンロードされ、当該更新用プログラムを用いて制御プログラムを更新することを、オンライン更新とも称する。
 〔管理サーバの内部構成〕
 図4は、管理サーバ5の内部構成を示すブロック図である。
 図4に示すように、管理サーバ5は、CPU51、ROM52、RAM53、記憶部54、および通信部55などを備える。
 CPU51は、ROM52に予め記憶された一または複数のプログラムをRAM53に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ5をゲートウェイ10と通信可能な車外装置として機能させる。CPU51もまた複数のCPU群を代表するものであってもよく、CPU51の実現する機能は、複数のCPU群が協働して実現するものであってもよい。
 RAM53は、SRAMまたはDRAM等のメモリ素子で構成され、CPU51が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
 記憶部54は、フラッシュメモリ若しくはEEPROM等の不揮発性のメモリ素子、または、ハードディスクなどの磁気記憶装置等により構成されている。
 通信部55は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網2に接続されて当該通信処理を実行する。通信部55は、CPU51から与えられた情報を、広域通信網2を介して外部装置に送信するとともに、広域通信網2を介して受信した情報をCPU51に与える。
 〔制御プログラムの更新シーケンス〕
 図5は、本実施形態のプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。DLサーバ6に1または複数の更新用プログラムが格納され、一例として、管理サーバ5が、予め登録された車両1について、当該車両1のECUの制御プログラムを更新するタイミングを決定する。更新のタイミングは、たとえば、車両1のカーメーカーなどによって設定されてもよい。
 なお、制御プログラムは、プログラムそのもののみならず、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータも含む。それらを代表させて「制御プログラム」と表現している。そのため、更新用プログラムは、プログラムの更新用のプログラムのみならず、当該プログラムを実行する際に用いるデータの更新用のデータを含む。
 制御プログラムを更新するタイミングに達すると、管理サーバ5は、該当する車両1のゲートウェイ10宛てに、更新を通知する(ステップS1)。ステップ1では、管理サーバ5からゲートウェイ10に、ダウンロード要求とともに更新用プログラムの保存先URLや更新用プログラムのサイズなどの更新用の情報が送られる。
 管理サーバ5から更新の通知を受信したゲートウェイ10は、ダウンロード制御処理を実行する(ステップS2)。ダウンロード制御処理は、ECU30への更新用プログラムの転送の可否を判断し、その判断結果に従って転送を実行する処理を含む。処理の詳細は後述する。
 ステップS2でのダウンロード制御処理によって更新用プログラムのECU30への転送が許容される場合、ゲートウェイ10は、DLサーバ6からダウンロードされる更新用プログラムをECU30に中継する。すなわち、ゲートウェイ10は、更新用の情報に基づいてDLサーバ6に対して更新用プログラムのダウンロードを要求し(ステップS3)、DLサーバ6からゲートウェイ10まで更新用プログラムをダウンロードする。
 ゲートウェイ10からダウンロードが要求されたDLサーバ6は、ダウンロード対象の更新用プログラムをゲートウェイ10に転送(中継)するとともに、制御プログラムの更新を要求する(ステップS4)。
 ゲートウェイ10は、更新用プログラムをダウンロードすると、当該更新用プログラムをECU30に転送し、制御プログラムの更新を要求する(ステップS5)。ゲートウェイ10は、ユーザから更新の許可を受けることによって更新用プログラムを転送してもよい。
 更新用プログラムを受信したECU30は、ゲートウェイ10からの要求に従って更新用プログラムを展開し、制御プログラムを更新する(ステップS6)。更新が完了すると、対象のECU30はゲートウェイ10に更新完了を通知する(ステップS7)。この通知を受けたゲートウェイ10は、DLサーバ6に更新完了を通知する(ステップS8)。
 [ゲートウェイの機能構成]
 図2を参照して、ゲートウェイ10のCPU11は、ダウンロード制御処理を実行するための機能として、算出部111およびダウンロード(DL)制御部112を含む。これら機能は、CPU11が記憶部13に記憶されている1つまたは複数のプログラムを読み出して実行することによって、CPU11において実現される機能である。しかしながら、少なくとも一部機能が、電子回路などのハードウェアによって実現されてもよい。
 算出部111で表されたCPU11の機能(以下、算出部111)は、更新対象の制御プログラムのサイズXと、更新用プログラムのサイズΔXとの比率を表す指標についての指標値を算出する。算出された指標値は、ECU30への更新用プログラムの転送の可否の判断に用いられる。指標値は、たとえばΔX/Xである。指標値は、X/ΔXであってもよいし、X-ΔXであってもよい。
 算出部111は、サイズXを予め記憶していてもよいし、対象のECU30から取得してもよい。また、算出部111は、サイズΔXを管理サーバ5からの更新用の情報より読み出す。
 DL制御部112で表されたCPU11の機能(以下、DL制御部112)は、上記指標値に基づいて、ECU30への更新用プログラムの転送の可否を判断する。判断結果が肯定的なものである場合、つまり転送を許容する場合には、DLサーバ6からのダウンロードを開始する。否定的なものである場合、つまり転送を許容しない場合には、ダウンロードを行わない。
 DL制御部112は、転送を許容する指標値ΔX/Xの閾値Thを予め記憶しておく。そして、指標値ΔX/Xと閾値Thとの比較結果に基づいて転送の可否を判断する。すなわち、DL制御部112は、指標値ΔX/Xが閾値Th以下の場合にはECU30に更新用プログラムを転送する、つまりDLサーバ6からのダウンロードを開始すると判断し、閾値Thより大きい場合にはECU30に更新用プログラムを転送しない、つまりダウンロードを実行しないと判断する。
 指標値ΔX/Xが閾値Thより大きい場合とは、制御プログラムに対して更新するデータの比率が大きいことを意味し、更新の規模が大きい場合と言える。指標値ΔX/Xが閾値Th以下の場合とは、制御プログラムに対して更新するデータの比率が小さいことを意味し、更新の規模が小さい場合と言える。
 [ダウンロード制御処理]
 図6は、第1の実施の形態にかかるプログラム更新システムにおけるダウンロード制御処理の具体的な内容を表したフローチャートである。図6のフローチャートに表された処理は、ゲートウェイ10のCPU11が、記憶部13に記憶された1つまたは複数のプログラムをRAM12上に読み出して実行することによって算出部111およびDL制御部112の機能を実現することで実行される。図6の処理は、CPU11が起動中において、所定の時間間隔など、予め規定されたタイミングで繰り返し実行される。
 図6を参照して、CPU11は、管理サーバ5から制御プログラムの更新が通知されたか否か、つまり、ダウンロード対象の更新用プログラムがあるか否かを判断する(ステップS101)。ダウンロード対象の更新用プログラムがない場合には(ステップS101でNO)、以降の動作を行わず、上記の予め規定された次のタイミングが来るまで待機する。
 ダウンロード対象の更新用プログラムがある場合(ステップS101でYES)、CPU11は、管理サーバ5からの更新の通知よりサイズΔXを取得する。また、対象のECU30からサイズXを取得する。そして、CPU11は、指標値ΔX/Xを算出する(ステップS103)。
 CPU11は、指標値ΔX/Xと予め記憶している閾値Thとを比較する(ステップS105)。指標値ΔX/Xが閾値Th以下の場合には(ステップS105でNO)、CPU11は、更新用プログラムのECU30への転送を許容する(ステップS107)。この場合、CPU11は、図5のステップS3以降の動作を実行する。
 指標値ΔX/Xが閾値Thより大きい場合(ステップS105でYES)、CPU11は、当該更新用プログラムのECU30への転送を許容しない。この場合、CPU11は、ユーザインタフェース装置7に通知させるための制御信号を、当該ユーザインタフェース装置7を制御するECU30に出力する。これにより、当該ユーザインタフェース装置によって通知が行われる(ステップS109)。この場合、図5のステップS3以降の動作は行われない。
 ステップS109の通知は、ECU30に更新用プログラムが転送されないことの通知、車両1を停車させてリプロモードとすることを促す通知、ディーラーによる当該制御プログラムの更新を促す通知、などである。これにより、ユーザは、更新用プログラムがECU30に転送されないこと、つまり、オンライン更新が実行されないことを知ることができる。そのため、ユーザは、車両1を停車させてリプロモードとする、ディーラーに入庫して制御プログラムの更新を依頼する、などの、当該制御プログラムの更新のための対処を採ることができる。
 CPU11は、以上で、1つの更新用プログラムについて、ECU30への転送の可否の判断を終了する。CPU11は、以上の動作を繰り返す。そのため、CPU11は、次の更新用プログラムについてECU30への転送の可否を判断する。つまり、ある1つの更新用プログラムのECU30への転送を許容しない場合、次の更新用プログラムの転送の可否が判断されて、判断結果が肯定的であった場合には当該次の更新用プログラムのDLサーバ6からのダウンロードおよびECU30への転送が開始される。これにより、複数の更新用プログラムを効率的に該当するECU30に転送することができ、制御プログラムの更新を効率的に行うことができる。
 [第1の実施の形態の効果]
 第1の実施の形態にかかるプログラム更新システムでは、更新用プログラムのサイズΔXが更新対象の制御プログラムのサイズXに対して小さい場合、つまり、更新の規模が所定規模よりも小さい場合にECU30に更新用プログラムが転送され、当該制御プログラムが更新される。更新の大きい場合には当該更新用プログラムはECU30に転送されず、オンライン更新では更新が実行されない。
 対象のECU30が接続されている車内通信線16の使用可能な帯域幅(通信速度)や、当該ECU30の記憶部33の記憶容量などの、オンライン更新に関連する装置構成はECU30の制御プログラムのサイズに関連している場合がある。すなわち、制御プログラムのサイズが大きい場合、当該サイズにあわせて車内通信線16の使用可能な帯域幅やECU30のメモリ容量が大きい場合がある。この場合において、規模の大きな更新をオンライン更新によって実行すると、車内通信線16の通信負荷の増大や、ECU30のメモリの圧迫を引き起こす可能性がある。一方で、転送を許容する更新用プログラムの最大サイズを一律に設定すると、車内通信線16によっては使用可能な帯域幅が大きいために更新用プログラムの転送による通信負荷が大きくない場合や、ECU30によってはメモリ容量が大きいために更新処理がメモリを大きく圧迫しない場合がある。この場合にオンライン更新を実行しないと決定すると、ユーザの利便性を損なうことになる。
 これに対して、第1の実施の形態にかかるプログラム更新システムはサイズXとサイズΔXとの比率に基づいて転送の可否を判断するため、オンライン更新に関連する装置構成の負荷が転送の可否の判断に反映されている。従って、第1の実施の形態にかかるプログラム更新システムでは、ユーザの利便性の向上と、オンライン更新に関連する装置構成の負荷の回避と、を両立させながら、制御プログラムを更新することができる。
 <変形例>
 上記の閾値Thは、更新用プログラムの転送に用いる、ECU30が接続された車内通信線16の使用可能な帯域幅に応じて異なってもよい。言い換えると、複数の車内通信線16A,16Bの中には、使用可能な帯域幅の異なる車内通信線16が含まれていてもよい。車内通信線16の使用可能な帯域幅は、ゲートウェイ10との通信における通信容量の制限(残容量)が考慮されてもよい。
 この場合、DL制御部112は、車内通信線16の使用可能な帯域幅に応じた閾値Thを予め記憶しておく。そして、転送先のECU30が接続されている車内通信線16に対応した閾値Thを用いて、当該更新用プログラムの転送の可否を判断する。
 このように、更新用プログラムの転送に用いる車内通信線16に応じた閾値Thを用いて当該更新用プログラムの転送の可否を判断することによって、転送に用いる車内通信線16の使用可能な帯域幅に応じて転送の可否を判断することができる。閾値Thを、車内通信線16を介した通信への負荷が大きい程度の指標値と設定しておくことで、車内通信線16を介した通信への負荷が大きい更新用プログラムの転送が許容されない。そのため、更新用プログラムの転送による車内通信線16への負荷を抑えることができる。
 [第2の実施の形態]
 第1の実施の形態にかかるプログラム更新システムでは、ゲートウェイ10が閾値Thを予め記憶している。しかしながら、更新用プログラムの転送に使用可能な車内通信線16の帯域幅は、転送先のECU30に接続された車内通信線16に接続された1または複数のECU30の動作状況に応じて変化する。上記動作状況は、たとえば、車両1の走行速度、動作しているECU30の種類や数、1または複数のECU30の稼動レベル、その組み合わせ、などである。
 たとえば、車両1の走行速度が速いときには、より多く情報が車内通信線16上でやり取りされるために、更新用プログラムの転送に使用可能な車内通信線16の帯域幅は小さくなる。また、車両1の走行速度が速いときには車内通信線16に対して許容される最大占有率が低く設定されている場合があるため、更新用プログラムの転送に使用可能な車内通信線16の帯域幅は小さくなる。
 また、複数のECU30のうち稼動しているECU30の数が多くなるほど当該ECU30間でやり取りされる情報量が多くなるために、更新用プログラムの転送に使用可能な車内通信線16の帯域幅は小さくなる。また、稼動しているECU30によって車内通信線16での通信量が異なる場合がある。通信量が多いECU30が稼動している場合には、車内通信線16上で多くの情報がやり取りされるために、更新用プログラムの転送に使用可能な車内通信線16の帯域幅は小さくなる。
 たとえば、1つのECU30または複数のECU30が協働して運転支援装機能を果たしている場合には、当該運転支援機能の支援レベルに応じて車内通信線16の通信量が異なる場合がある。通信量が高くなる支援レベルである場合には、車内通信線16上で多くの情報がやり取りされるために、更新用プログラムの転送に使用可能な車内通信線16の帯域幅は小さくなる。
 そこで、第2の実施の形態にかかるプログラム更新システムでは、転送先のECU30とともに車内通信線16に接続された1または複数のECU30の動作状況に応じて閾値Thが変更(決定)される。1または複数のECU30には、転送先のECU30が含まれてもよい。
 第2の実施の形態にかかるゲートウェイ10のDL制御部112は、制御プログラムのサイズXと更新用プログラムのサイズΔXとの比率と、転送先のECU30とともに車内通信線16に接続された1または複数のECU30の動作状況と、に基づいて更新用プログラムの転送の可否を判断する。当該動作状況を考慮して転送の可否を判断するために、第2の実施の形態にかかるDL制御部112は、上記動作状況に基づいて閾値Thを変更する。
 動作状況は流動的に変化する。そこで、第2の実施の形態にかかるDL制御部112は、更新用プログラムの指標値ΔX/Xが閾値Th以上より大きかった場合であっても、当該更新用プログラムが予め規定された保留条件を満たす場合には、更新用プログラムをECU30に転送しないと決定することを保留する。保留条件は、たとえば、当該更新用プログラムがダウンロード可能な状態とされた時点から所定期間内であること、当該更新用プログラムに対して転送するか否かの判断がなされた回数が所定回数以内であること、DLサーバ6に他のダウンロード対象の更新用プログラムがあること、これらの組み合わせ、などである。
 DL制御部112は、一例として、動作状況と閾値Thとの対応関係を予め記憶しておく。そして、DL制御部112は、当該対応関係から、動作状況に応じた閾値Thを読み出す。他の例として、動作状況を表す指標をパラメータとした閾値Thの計算式を予め記憶していてもよい。そして、DL制御部112は、動作状況を表す指標の指標値を当該計算式に代入して、閾値Thを計算する。たとえば、動作状況を表す指標は車両1の走行速度であって、指標値として速度を計算式に代入する。
 更新用プログラムの転送が許容されなかった場合、当該更新用プログラムは判断された時点ではDLサーバ6からのダウンロードが開始されずに、ダウンロード対象の更新用プログラムとしてDLサーバ6に保持される。この場合、DL制御部112は、当該更新用プログラムに対して、保留条件を満たす期間内に、再度、転送の可否を判断する。
 動作状況は変化するため、閾値Thも変化する。そのため、いったん転送が許容されなかった場合であっても、その後の時点では閾値Thが変化することで、転送が許容される場合がある。この場合、その後の時点でDLサーバ6からのダウンロードが開始される。
 [転送制御処理]
 図7は、第2の実施の形態にかかるプログラム更新システムにおけるダウンロード制御処理の具体的な内容を表したフローチャートである。図7のフローチャートに表された処理もまた、ゲートウェイ10のCPU11が、記憶部13に記憶された1つまたは複数のプログラムをRAM12上に読み出して実行することによって算出部111およびDL制御部112の機能を実現することで実行される。図7のフローチャートにおいて、図6のフローチャートと同じステップ番号が付された動作は内容が同じである。図6のフローチャートとは異なる点について説明する。
 図7を参照して、CPU11は、更新用プログラムの転送の可否を判断する際に、その時点での動作状況に基づいて閾値Thを決定する(ステップS201)。そして、CPU11は、決定した閾値Thと指標値ΔX/Xとを比較する(ステップS105)。
 指標値ΔX/Xが閾値Thより大きい場合(ステップS105でYES)、CPU11は、さらに、当該更新用プログラムが予め規定された保留条件を満たすか否かを判断する(ステップS203)。更新用プログラムが保留条件を満たす場合には(ステップS203でYES)、更新用プログラムを転送しないと決定することを保留する。この場合、当該更新用プログラムはその時点ではDLサーバ6からダウンロードされずに、DLサーバ6に保持される。そして、CPU11は、予め規定された所定期間の後、上記ステップS201からの動作を再度、実行する。
 [第2の実施の形態の効果]
 第2の実施の形態にかかるプログラム更新システムでは、先の判断時点で更新用プログラムの転送が許容されなかった場合であっても、更新用プログラムが所定の保留条件を満たす期間に、再度、転送の可否が判断される。当該プログラム更新システムでは、保留条件を満たす期間内に生じた、ECU30とともに車内通信線16に接続された1または複数のECU30の動作状況の変化に応じて閾値Thを変更する。その結果、指標値ΔX/Xが閾値Th以下となると、後の判断時点において当該更新用プログラムの転送が許容される。その場合、当該後の判断時点でDLサーバ6からのダウンロードが実行される。そのため、ユーザの利便性を向上させることができるとともに、通信負荷の増大やメモリの圧迫などのオンライン更新に関連する装置構成の負荷を回避して制御プログラムの更新が可能になる。
 <変形例>
 第1の実施の形態および第2の実施の形態にかかるプログラム更新システムにおいて、ECU30への更新用プログラムの転送は、DLサーバ6からゲートウェイ10への当該更新用プログラムのダウンロードに引き続いて行われる。そのため、転送が許容される場合にDLサーバ6からのダウンロードが開始され、転送が許容されない場合にはDLサーバ6からダウンロードが実行されない。言い換えると、第1の実施の形態および第2の実施の形態にかかるプログラム更新システムでは、更新用プログラムの転送の可否の判断は、DLサーバ6からのダウンロードの可否の判断でもあり、転送の開始はダウンロードの開始に相当している。そのため、ゲートウェイ10は、DL制御処理(ステップS2)をDLサーバ6からECU30に更新用プログラムをダウンロードする前、すなわちステップS3の前に実行している(図5)。これにより、ゲートウェイ10の記憶部13に更新用プログラムが長期間保持されて、メモリを圧迫することを防止できる。
 変形例にかかるプログラム更新システムでは、ECU30への更新用プログラムの転送は、DLサーバ6からゲートウェイ10への当該更新用プログラムのダウンロードと独立したタイミングに実行される。すなわち、ゲートウェイ10は、DLサーバ6から更新用プログラムをダウンロードして記憶部13に記憶しておき、記憶されている更新用プログラムについて、ECU30への転送の可否を判断する。言い換えると、変形例にかかるプログラム更新システムでは、ステップS3とステップS4との間にDL制御処理が実行される。
 この場合、DL制御部112は、たとえば管理サーバ5から要求されたタイミングなどの所定のタイミングで、DLサーバ6からゲートウェイ10への更新用プログラムのダウンロードを実行する。そして、DL制御部112は、記憶された更新用プログラムについてECU30への転送の可否を判断し、その結果に従って転送を開始する。
 変形例にかかるプログラム更新システムでは、ダウンロードと転送とを、それぞれ適切なタイミングで行うことができるため、効率的にオンライン更新を行うことができる。特に、第2の実施の形態にかかるプログラム更新システムでは、転送が許容されない場合であっても更新用プログラムが保留条件を満たす期間には、再度、転送の可否が判断される。この場合、変形例においてゲートウェイ10は、転送が許容されなかった更新用プログラムを記憶部13から破棄せず、保持しておく。これにより、再度行った判断の結果に従ってECU30に転送する際に、再度DLサーバ6からダウンロードすることなくECU30に更新用プログラムを転送することができる。そのため、更新用プログラムのDLサーバ6からECU30への転送全体を早めることにつながるとともに、不要な通信を抑えることができる。
 開示された特徴は、1つ以上のモジュールによって実現される。たとえば、当該特徴は、回路素子その他のハードウェアモジュールによって、当該特徴を実現する処理を規定したソフトウェアモジュールによって、または、ハードウェアモジュールとソフトウェアモジュールとの組み合わせによって実現され得る。
 上述の動作をコンピュータに実行させるための、1つ以上のソフトウェアモジュールの組み合わせであるプログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD-ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
 なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
 また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 車両
 2 広域通信網
 4 車内ネットワーク
 5 管理サーバ
 6 DLサーバ
 7 ユーザインタフェース装置
 10 ゲートウェイ(中継装置)
 15 無線通信部
 16,16A,16B 車内通信線
 11 CPU
 12 RAM
 13 記憶部
 14 車内通信部
 30 ECU(車載制御装置)
 31 CPU
 32 RAM
 33 記憶部
 34 通信部
 35 起動部
 51 CPU
 52 ROM
 53 RAM
 54 記憶部
 55 通信部
 111 算出部
 112 DL制御部(転送制御部)

Claims (10)

  1.  サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、前記車載制御装置に転送する中継装置であって、
     前記制御プログラムのサイズと前記更新用プログラムのサイズとの比率を示す指標値を算出する算出部と、
     算出された前記指標値に基づいて、前記転送の可否を判断する転送制御部と、を備える、中継装置。
  2.  前記指標値は前記制御プログラムのサイズに対する前記更新用プログラムのサイズの比率を示す値であって、
     前記転送制御部は、前記指標値が閾値以下の場合に前記転送を開始し、前記指標値が前記閾値より大きい場合には前記転送を開始しない、請求項1に記載の中継装置。
  3.  前記車載制御装置と車内通信線を介して接続され、
     前記転送制御部は、前記車内通信線の使用可能な帯域幅に応じて前記閾値を変更する、請求項2に記載の中継装置。
  4.  前記車載制御装置と車内通信線を介して接続され、
     前記転送制御部は、前記車内通信線に接続された1または複数の車載制御装置の動作状況に応じて前記閾値を変更する、請求項2に記載の中継装置。
  5.  前記転送制御部は、前記指標値が前記閾値より大きい場合には、前記更新用データが所定の保留条件を満たす期間に、再度、前記動作状況に応じて前記閾値を変更して、前記転送の可否を判断する、請求項4に記載の中継装置。
  6.  前記動作状況は、前記車載制御装置が搭載された車両の走行速度を含む、請求項4または5に記載の中継装置。
  7.  前記制御装置はユーザインタフェース装置と接続され、
     前記転送制御部は、前記転送を許容しない場合に前記ユーザインタフェース装置に前記転送が許容されないことの通知を行わせるための制御信号を出力する、請求項1~請求項6のいずれか一項に記載の中継装置。
  8.  前記転送制御部は、前記転送を許容するときに前記サーバからの前記ダウンロードを開始する、請求項1~請求項7のいずれか一項に記載の中継装置。
  9.  サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、前記車載制御装置に転送する方法であって、
     前記制御プログラムのサイズと前記更新用プログラムのサイズとの比率を示す指標値を算出するステップと、
     前記指標値に基づいて前記転送の可否を判断するステップと、を備える、転送方法。
  10.  サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを、前記車載制御装置に転送する中継装置としてコンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータを、
     前記制御プログラムのサイズと前記更新用プログラムのサイズとの比率を示す指標値を算出する算出部と、
     算出された前記指標値に基づいて、前記転送の可否を判断する転送制御部、として機能させる、コンピュータプログラム。
     
PCT/JP2018/001410 2017-04-12 2018-01-18 中継装置、転送方法、およびコンピュータプログラム WO2018189975A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/604,209 US10970063B2 (en) 2017-04-12 2018-01-18 Relay apparatus, transfer method, and computer program
CN201880024526.XA CN110494847B (zh) 2017-04-12 2018-01-18 中继设备、传送方法和计算机程序
JP2018541438A JP6620891B2 (ja) 2017-04-12 2018-01-18 中継装置、中継方法、およびコンピュータプログラム
DE112018001985.3T DE112018001985T5 (de) 2017-04-12 2018-01-18 Relais-Einrichtung, Transferverfahren und Computerprogramm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017078837 2017-04-12
JP2017-078837 2017-04-12

Publications (1)

Publication Number Publication Date
WO2018189975A1 true WO2018189975A1 (ja) 2018-10-18

Family

ID=63792433

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/001410 WO2018189975A1 (ja) 2017-04-12 2018-01-18 中継装置、転送方法、およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US10970063B2 (ja)
JP (1) JP6620891B2 (ja)
CN (1) CN110494847B (ja)
DE (1) DE112018001985T5 (ja)
WO (1) WO2018189975A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181451A (zh) * 2019-07-03 2021-01-05 本田技研工业株式会社 信息处理装置、信息处理方法以及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6135723B2 (ja) * 2015-08-20 2017-05-31 コベルコ建機株式会社 建設機械及びこれを備えたプログラム書き換えシステム
JP6930949B2 (ja) * 2018-08-02 2021-09-01 株式会社日立製作所 ソフトウェア配信システム、ソフトウェア配信サーバ、及びソフトウェア配信方法
JP7003975B2 (ja) * 2018-08-10 2022-01-21 株式会社デンソー 車両情報通信システム,センター装置及びセンター装置のメッセージ送信方法
CN113392102A (zh) * 2020-03-12 2021-09-14 尼得科智动株式会社 网关装置和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014335A (ja) * 1999-06-30 2001-01-19 Yazaki Corp 地図検索指令システム
JP2012178035A (ja) * 2011-02-25 2012-09-13 Toyota Motor Corp 車両制御装置のデータ書き換え支援システム及びデータ書き換え支援方法
JP2015512572A (ja) * 2012-03-21 2015-04-27 ▲ホア▼▲ウェイ▼技術有限公司 肯定応答パケットを処理するための方法、装置、およびシステム
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405309B1 (en) * 1999-06-18 2002-06-11 Phoenix Technologies Ltd. Method and apparatus for creating and deploying smaller Microsoft Windows applications for automatic configuration of a computing device
JP4361902B2 (ja) * 2003-12-15 2009-11-11 株式会社日立製作所 車載制御装置の情報更新方法と更新情報通信システム、および、車両搭載制御装置と情報管理基地局装置
JP2006119745A (ja) * 2004-10-19 2006-05-11 Hitachi Ltd コンピュータシステム及びコンピュータシステムの制御方法
JP2010000636A (ja) * 2008-06-18 2010-01-07 Canon Inc 画像形成装置及び画像形成装置の制御方法
JP2011000894A (ja) * 2009-06-16 2011-01-06 Fujitsu Ten Ltd 制御装置及び制御方法
JP5699691B2 (ja) * 2011-03-03 2015-04-15 日本電気株式会社 データ転送装置、ftサーバ、データ転送方法、及びプログラム
KR20120126678A (ko) * 2011-05-12 2012-11-21 삼성전자주식회사 내구성을 향상한 비휘발성 메모리 장치 및 그 동작방법
US9800483B2 (en) * 2012-04-13 2017-10-24 CirrusWorks, Inc. Method and apparatus for dynamic bandwidth allocation for optimizing network utilization
KR101415900B1 (ko) * 2012-05-18 2014-07-08 신경민 고주파 열치료용 중첩형 바이폴라 전극
US9244673B2 (en) * 2012-06-08 2016-01-26 Apple Inc. System and method for updating application archive files
CN102799447B (zh) * 2012-06-19 2016-12-21 优视科技有限公司 移动终端内部软件的更新方法及***
DE102012023648B4 (de) * 2012-12-03 2016-09-15 Audi Ag Verfahren und System zum Aktualisieren von einem Steuergerät eines Kraftwagens
CN103970554B (zh) * 2013-01-30 2017-07-18 广东美的制冷设备有限公司 一种家电产品功能升级的控制方法
KR101463604B1 (ko) * 2013-04-24 2014-11-20 주식회사 오비고 전자제어장치의 업데이트를 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
JP6155888B2 (ja) * 2013-06-19 2017-07-05 株式会社リコー 通信装置、通信システム、通信方法及び通信プログラム
JP5975964B2 (ja) * 2013-10-18 2016-08-23 富士通株式会社 情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システム
CN104679530B (zh) * 2013-11-26 2017-12-29 英业达科技有限公司 服务器***与固件更新方法
JP5768870B2 (ja) * 2013-12-25 2015-08-26 日本電気株式会社 プログラム配信装置及びプログラム配信方法、プログラム配信システム、並びにコンピュータ・プログラム
CN103677946B (zh) * 2013-12-30 2017-02-01 广州日滨科技发展有限公司 电梯设备控制程序的更新方法和***
KR101575447B1 (ko) * 2014-02-06 2015-12-07 현대자동차주식회사 차량의 소프트웨어 업데이트 방법
CN103986792B (zh) * 2014-06-11 2015-05-27 腾讯科技(深圳)有限公司 一种群成员信息的同步方法、服务器,及***
US9722781B2 (en) * 2014-07-09 2017-08-01 Livio, Inc. Vehicle software update verification
JP5997740B2 (ja) 2014-09-17 2016-09-28 クラリオン株式会社 車載機のオンライン更新方法
JP2016060407A (ja) * 2014-09-19 2016-04-25 日産自動車株式会社 車両制御プログラム書換システム及び車両制御プログラム書換方法
US9952851B2 (en) * 2015-03-10 2018-04-24 International Business Machines Corporation Intelligent mobile application update
JP6216730B2 (ja) * 2015-03-16 2017-10-18 日立オートモティブシステムズ株式会社 ソフト更新装置、ソフト更新方法
JP6465403B2 (ja) * 2015-04-20 2019-02-06 コニカミノルタ株式会社 プリンタドライバ更新プログラム及びプリンタドライバ更新方法
US9841965B2 (en) * 2015-06-15 2017-12-12 Lear Corporation Centralized system for software updating vehicle components
WO2017002611A1 (ja) * 2015-06-30 2017-01-05 日立オートモティブシステムズ株式会社 車両データ書換制御装置および車両データ書換認証システム
CN105068848B (zh) * 2015-08-28 2018-12-11 小米科技有限责任公司 ***升级方法及装置
JP6493150B2 (ja) 2015-10-22 2019-04-03 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成方法
WO2018185994A1 (ja) * 2017-04-05 2018-10-11 住友電気工業株式会社 制御装置、転送方法、およびコンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014335A (ja) * 1999-06-30 2001-01-19 Yazaki Corp 地図検索指令システム
JP2012178035A (ja) * 2011-02-25 2012-09-13 Toyota Motor Corp 車両制御装置のデータ書き換え支援システム及びデータ書き換え支援方法
JP2015512572A (ja) * 2012-03-21 2015-04-27 ▲ホア▼▲ウェイ▼技術有限公司 肯定応答パケットを処理するための方法、装置、およびシステム
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181451A (zh) * 2019-07-03 2021-01-05 本田技研工业株式会社 信息处理装置、信息处理方法以及存储介质
JP2021009654A (ja) * 2019-07-03 2021-01-28 本田技研工業株式会社 情報処理装置、情報処理方法、及びプログラム
JP7125374B2 (ja) 2019-07-03 2022-08-24 本田技研工業株式会社 情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
CN110494847A (zh) 2019-11-22
DE112018001985T5 (de) 2019-12-19
US10970063B2 (en) 2021-04-06
JPWO2018189975A1 (ja) 2019-04-18
US20200034140A1 (en) 2020-01-30
JP6620891B2 (ja) 2019-12-18
CN110494847B (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
JP6620891B2 (ja) 中継装置、中継方法、およびコンピュータプログラム
JP6376312B1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
WO2018185994A1 (ja) 制御装置、転送方法、およびコンピュータプログラム
JP6519708B2 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
WO2018142751A1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
CN111034132B (zh) 控制设备、控制方法和计算机程序
JP2017157003A (ja) プログラム更新システム、プログラム更新方法及びコンピュータプログラム
US11288156B2 (en) Control apparatus, control method, and computer program
JP6465258B1 (ja) 制御装置、制御方法、およびコンピュータプログラム
JP7207301B2 (ja) 更新制御装置、制御方法、およびコンピュータプログラム
WO2018230314A1 (ja) 制御装置、制御方法、およびコンピュータプログラム
JP2019034652A (ja) 制御装置、制御方法、およびコンピュータプログラム
WO2018142749A1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
JP2023160068A (ja) 電子制御装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018541438

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18783713

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18783713

Country of ref document: EP

Kind code of ref document: A1