[go: up one dir, main page]

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

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

Info

Publication number
WO2018189951A1
WO2018189951A1 PCT/JP2017/044758 JP2017044758W WO2018189951A1 WO 2018189951 A1 WO2018189951 A1 WO 2018189951A1 JP 2017044758 W JP2017044758 W JP 2017044758W WO 2018189951 A1 WO2018189951 A1 WO 2018189951A1
Authority
WO
WIPO (PCT)
Prior art keywords
abnormality
communication
vehicle
relay device
server
Prior art date
Application number
PCT/JP2017/044758
Other languages
English (en)
French (fr)
Inventor
中野 貴之
Original Assignee
住友電気工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 住友電気工業株式会社 filed Critical 住友電気工業株式会社
Publication of WO2018189951A1 publication Critical patent/WO2018189951A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present invention relates to a relay device, a relay method, and a computer program.
  • This application claims priority based on Japanese Patent Application No. 2017-078812 filed on Apr. 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 from a server via a network and updating the program.
  • the relay device is a relay device belonging to the in-vehicle network including the in-vehicle control device, and the update program for the in-vehicle control device transferred from the relay device to the in-vehicle control device is transmitted via wireless communication to the server A control unit that determines the reception timing of the update program according to the presence or absence of a communication abnormality that can occur from the server to the relay device, and if there is an abnormality, the type of the communication abnormality, Is provided.
  • the relay method is a relay device that belongs to an in-vehicle network that includes an in-vehicle control device, receives an update program for the in-vehicle control device transmitted from the server, and transfers the update program to the in-vehicle control device.
  • a method for receiving an update program from a server via wireless communication whether there is a communication abnormality that may occur from the server to the relay device, and if there is an abnormality, depending on the type of the communication abnormality And determining the reception timing of the update program.
  • the computer program is a computer program for causing a computer to function as a relay device belonging to an in-vehicle network including the in-vehicle control device, and the in-vehicle control device transfers the computer from the relay device to the in-vehicle control device.
  • the communication unit that receives the update program for the control device from the server via wireless communication the presence or absence of a communication abnormality that may occur from the server to the relay device, and the type of the communication abnormality if there is an abnormality
  • a control unit that determines the reception timing of the update program.
  • 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 DL control processing in the program update system according to the first embodiment.
  • FIG. 7 is a flowchart showing an example of the specifying process in step S107 of FIG.
  • FIG. 8 is a diagram illustrating an example of network information.
  • FIG. 9 is a diagram illustrating an example of a correspondence relationship between the type of abnormality and the reception timing.
  • FIG. 10 is a diagram illustrating an example of a travel model.
  • An object of an aspect of the present disclosure is to provide a relay device, a relay method, and a computer program capable of taking appropriate measures for receiving from a server an update program to be transferred to an in-vehicle control device according to a communication situation Is to provide.
  • the relay device included in the present embodiment is a relay device belonging to the in-vehicle network including the in-vehicle control device, and updates the in-vehicle control device update program transferred from the relay device to the in-vehicle control device via wireless communication.
  • Control that determines the reception timing of the update program according to the communication unit that receives from the server, the presence or absence of a communication abnormality that may occur from the server to the relay device, and the type of the communication abnormality if there is an abnormality A section.
  • reception timing is determined according to the presence or absence of a communication abnormality that can occur from the server to the relay device, and if there is an abnormality, the reception timing is determined after the abnormality is resolved.
  • An update program can be received from the server while avoiding abnormalities. Thereby, the update program can be reliably received from the server, and can be transferred to the in-vehicle control device.
  • the control unit delays the reception timing until the detected communication abnormality is resolved. Thereby, it is possible to receive the update program from the server while avoiding the abnormality. For this reason, the update program can be reliably received from the server and can be transferred to the in-vehicle control device.
  • the control unit causes the communication unit to transmit a transmission request for the update program to the server.
  • the update program can be received from the server corresponding to the transmission request. For this reason, the update program can be reliably received from the server and can be transferred to the in-vehicle control device.
  • the communication abnormality includes at least one of the following first to third abnormality.
  • First abnormality Communication failure on the server side
  • Second abnormality Communication failure due to congestion of wireless communication
  • Third abnormality Communication failure on the vehicle side
  • the relay device can identify the type of communication abnormality, The timing at which the communication abnormality is resolved with high accuracy can be determined as the reception timing.
  • the update program can be reliably received from the server, and can be transferred to the in-vehicle control device.
  • the communication unit can receive the first information indicating the occurrence period of the first abnormality, and the control unit detects the presence or absence of the first abnormality based on the received first information. To do. By detecting the presence or absence of the first abnormality using the first information, the presence or absence of the first abnormality can be identified easily and accurately.
  • the communication unit can receive the second information indicating the occurrence period of the second abnormality, and the control unit detects the presence or absence of the second abnormality based on the received second information. To do. Thereby, the presence or absence of the second abnormality can be specified easily and accurately.
  • the communication unit can receive the third information indicating the position of the vehicle on which the relay device is mounted from any of the in-vehicle control devices, and the control unit is based on the received third information.
  • the presence or absence of the third abnormality is detected. Thereby, the presence or absence of the third abnormality can be specified easily and accurately.
  • the control unit determines whether or not to delay the reception timing when the required time for receiving all the update programs is equal to or greater than a predetermined threshold.
  • a predetermined threshold In a state where the communication state from the server to the relay device is bad, the communication speed is slow, so that the time required to receive all the update programs increases. Therefore, by comparing the required time and the threshold, it is possible to easily detect the presence or absence of communication abnormality from the server to the relay device.
  • the control unit can receive vehicle information indicating whether or not the vehicle on which the relay device is mounted is in operation from any of the in-vehicle control devices. In the case of representing inside, it is determined whether or not to delay the reception timing. Thereby, the update program can be received from the server while the vehicle is in operation. Therefore, it becomes easy to update the control program while driving the vehicle, and the convenience for the user can be improved.
  • the relay method included in the present embodiment is a method for receiving the update program from the server and transferring it to the in-vehicle control device in the relay device according to any one of (1) to (9). .
  • Such a relay method has the same effects as the relay devices (1) to (9).
  • a computer program included in the present embodiment causes a computer to function as the relay device described in any one of (1) to (9). Such a computer program has the same effects as those of the relay devices (1) to (9).
  • 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 connected by in-vehicle communication lines and a gateway 10, a wireless communication unit 15, and various in-vehicle devices controlled by the ECUs 30 (not shown). )) And are installed.
  • an in-vehicle network (communication network) 4 including a plurality of ECUs 30 connected by in-vehicle communication lines and a gateway 10, a wireless communication unit 15, and various in-vehicle devices controlled by the ECUs 30 (not shown). ))
  • the gateway 10 relays communication between the communication groups.
  • 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 the external devices 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.
  • 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.
  • ECU30 transmits / receives information via an in-vehicle communication line.
  • 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 via the wireless communication unit 15 and 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 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.
  • Some in-vehicle communication lines 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.
  • the information stored in the storage unit 33 includes, for example, a computer program (hereinafter referred to as “control program”) for causing the CPU 31 to execute information processing for controlling a target device that is a control target in the vehicle, a parameter, Data used when the program is executed, such as map information, is included.
  • the communication unit 34 is connected to the gateway 10 via an in-vehicle communication line disposed 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 (DL) control process (step S2).
  • the DL control process includes a process of detecting the presence or absence of a communication abnormality that may occur in downloading an update program from the DL server 6 to the gateway 10 (detection process). Further, the DL control process includes a process of specifying the type of detected communication abnormality (identification process).
  • the DL control process includes a process for receiving the update program at the timing (reception timing) of receiving the update program from the DL server 6 (download process).
  • the download process includes a process (decision process) for determining the reception timing according to the type of communication abnormality when a communication abnormality is detected. The DL control process will be described later.
  • the gateway 10 transmits a download request for downloading the update program to the DL server 6 at the reception timing (step S3). Thereby, the update program is transmitted from the DL server 6 at the timing, and is received by the gateway 10.
  • the DL server 6 requested to download from the gateway 10 transmits the update program to be downloaded to the gateway 10 and requests the control program to be updated (step S4).
  • the gateway 10 When the gateway 10 receives the update program transmitted from the DL server 6 by the wireless communication unit 15, the gateway 10 transfers the update program to the target 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.
  • the target ECU 30 that has received the update program deploys the update program in accordance with a request from the gateway 10 and updates the control program (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 detection processing unit 111 and a download (DL) control unit 112 as functions for executing the DL control processing. 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 detection processing unit 111 executes a detection process. Specifically, the detection processing unit 111 determines whether there is a communication abnormality that may occur from the DL server 6 to the gateway 10 based on an estimated required time (assumed time) T for receiving all the update programs. Detect.
  • the communication abnormality includes a state in which communication is impossible and a state in which the communication state is worse than normal even though communication is possible.
  • the state where the communication state is bad includes a state where the communication speed is slower than the prescribed speed, a state where the occupation rate of the communication line exceeds the prescribed occupation rate, and the like.
  • the detection processing unit 111 calculates an estimated time T.
  • the assumed time T indicates the time from when the DL server 6 starts transmitting the update program until the gateway 10 completes reception.
  • the size X is acquired from, for example, an update notification from the management server 5.
  • the communication speed V is measured using, for example, a ping command that is a command using an echo command of ICMP (Internet Control Message Protocol).
  • the detection processing unit 111 outputs a ping command to other devices connected to the target communication line, and measures the response time for the command to obtain the communication speed V.
  • the detection processing unit 111 stores in advance the minimum communication speed when there is no communication abnormality as the threshold Th1, and compares the communication speed V with the threshold Th1. When it is determined that there is a communication abnormality, the reception timing is determined according to the type of the communication abnormality. For this reason, the detection processing unit 111 executes a specific process when the result of the detection process is a communication abnormality.
  • the communication abnormality is a first abnormality (abnormality A) that is a communication failure on the DL server 6 side, and wireless communication included in communication via the wide area communication network 2 from the DL server 6 to the gateway 10.
  • the detection processing unit 111 specifies the type of detected communication abnormality by specifying the presence or absence of each of the abnormalities A to C. The specific process will be described later.
  • the detection processing unit 111 stores in advance the longest required time when there is no communication abnormality as the threshold Th2, and compares the calculated estimated time T with the threshold Th2.
  • the detection processing unit 111 determines that there is no influence on the processing even if the processing requiring communication is simultaneously present in another device.
  • the detection processing unit 111 determines that there is a possibility of causing a failure in the processing that requires communication in the other device. In this case, the priority of the process of downloading the target update program is lowered.
  • the function of the CPU 11 represented by the DL control unit 112 executes a download process. Specifically, the DL control unit 112 executes a process for receiving the update program from the DL server 6 at the reception timing. For this purpose, the DL control unit 112 executes a determination process to determine the reception timing.
  • the determination process is a process of determining the reception timing according to the presence or absence of a communication abnormality and, if there is an abnormality, the type of the communication abnormality. Specifically, when there is no abnormality, the DL control unit 112 determines the timing (first timing) received from the management server 5 as the reception timing. Then, processing for receiving the update program from the DL server 6 is executed at the first timing.
  • the DL control unit 112 determines a timing (second timing) corresponding to the type of communication abnormality identified by the identifying process as the reception timing. And the process for receiving the program for an update from DL server 6 is performed at a 2nd timing. And download starts at the second timing.
  • the second timing is the timing after the communication abnormality is resolved. Therefore, determining the second timing as the reception timing means delaying the reception timing until the communication abnormality is resolved.
  • the DL control unit 112 stores a correspondence relationship between the type of communication abnormality and the reception timing (second timing) in advance in order to specify the second timing.
  • the correspondence relationship is a timing at which the abnormality is predicted to be resolved for each type of communication abnormality. The determination process using the correspondence will be described later.
  • the DL control unit 112 determines whether or not the vehicle 1 is in operation at the first timing.
  • the DL control unit 112 executes detection processing and determination processing to set the second timing. The reception timing is determined.
  • the DL control unit 112 is driven by an ECU 30 that controls a drive system such as an engine, for example, vehicle information indicating whether or not the vehicle 1 is in operation. Is determined based on the vehicle information.
  • FIG. 6 is a flowchart showing specific contents of the DL control processing in the program update system according to the present 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 detection processing unit 111 and the DL control unit 112. It is executed by realizing the function.
  • the processing in FIG. 5 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 download of the update program is requested from management server 5 (step S101). When no download is requested from the management server 5 (NO in step S101), the series of operations is terminated.
  • step S101 When download is requested from the management server 5 (YES in step S101), the CPU 11 measures the communication speed V (step S103). Then, the CPU 11 compares the communication speed V with the threshold value Th1 (step S105).
  • step S105 When the communication speed V is smaller than the threshold Th1 (V ⁇ Th1) (YES in step S105), that is, when it is determined that there is a communication abnormality based on the communication speed V, the CPU 11 performs a specific process (step S107). Execute. The specifying process in step S107 will be specifically described later.
  • step S113 the CPU 11 refers to the correspondence relationship between the type of communication abnormality stored in advance and the second timing, specifies the second timing according to the type of abnormality, and determines the reception timing. The process of step S113 will be specifically described later.
  • the CPU 11 uses the timing (first timing) at which the download of the update program is requested from the management server 5 as the reception timing. Decide and execute the download process (step S111).
  • step S105 When the communication speed V is equal to or higher than the threshold Th1 (V ⁇ Th1) (NO in step S105), that is, when it is determined that there is no communication abnormality based on the communication speed V, the CPU 11 performs a detection process (steps S115 and 117). ). That is, the CPU 11 calculates the estimated time T (step S115). Then, the CPU 11 compares the calculated estimated time T with the threshold value Th2 (step S117).
  • step S111 If the estimated time T is equal to or less than the threshold Th2 (T ⁇ Th2) (NO in step S117), the CPU 11 executes a download process (step S111).
  • step S117 If the estimated time T is greater than the threshold Th2 (T> Th2) (YES in step S117), the CPU 11 lowers the priority of the update program download process (step S119).
  • FIG. 7 is a flowchart showing an example of the specifying process in step S107 of FIG.
  • the CPU 11 specifies whether or not there is a communication failure (abnormality C) in the wireless communication unit 15 (step S201).
  • the CPU 11 can perform communication by the wireless communication unit 15 depending on whether or not the current position of the vehicle 1 on which the gateway 10 is mounted is included in a dead area where the communication state by the wireless communication unit 15 is poor. It is determined whether or not it is in a state.
  • the current position of the vehicle 1 can be acquired as follows, for example. That is, the CPU 11 acquires position information (third information) indicating the current position of the vehicle 1 from the ECU 30 that controls an in-vehicle device that is a navigation device (not shown). Alternatively, the CPU 11 may acquire position information (third information) from the ECU 30 that controls an in-vehicle device that can communicate with a GPS (Global Positioning System).
  • position information third information
  • GPS Global Positioning System
  • the CPU 11 acquires an area map including the dead area.
  • the area map is information indicating, for example, the communication strength at the position or range for each position or range.
  • the area map is assumed to be generated by a communication company that manages wireless communication performed by the wireless communication unit 15 and provided on a website or the like.
  • CPU11 can memorize
  • the CPU 11 specifies that there is no abnormality C, and then communicates with the DL server 6 via a communication failure (abnormality A) and / or the wide area communication network 2.
  • a communication failure abnormality A
  • / or the wide area communication network 2 The presence or absence of a communication failure (abnormality B) due to congestion of wireless communication included in the transmitted communication is specified.
  • the CPU 11 requests a response to the DL server 6 using a ping command (step S203).
  • the CPU 11 measures the response time RT from the DL server 6. Further, the CPU 11 stores in advance the response time from the DL server 6 when there is no abnormality in the wireless communication via the wide area communication network 2 as the threshold value Rth. Then, the CPU 11 identifies the presence or absence of abnormality A and / or abnormality B by comparing the response time RT and the threshold value Rth.
  • the CPU 11 When the response time RT is shorter than the threshold value Rth (RT ⁇ Rth) (NO in step S205), the CPU 11 specifies that there is no abnormality A and abnormality B, and specifies the abnormality type identification result as “no abnormality”. Return (step S207).
  • the CPU 11 When there is no response from the DL server 6 or when there is a response, if the response time RT is longer than the threshold value Rth (RT> Rth) (YES in step S205), the CPU 11 Specify that there is at least one. Therefore, the CPU 11 refers to information (server information: first information) related to the communication state of the DL server 6 in order to identify the presence or absence of abnormality A (step S209).
  • server information first information
  • the server information includes information indicating a period during which the communication function of the DL server 6 is not complete, that is, an occurrence period of the abnormality A (first period).
  • the first period is, for example, a date / time or a time zone in which a communication failure is scheduled due to maintenance or the like.
  • the server information is assumed to be generated by a car manufacturer or the like that operates the DL server 6 and provided on a website or the like.
  • the CPU 11 determines whether or not there is an abnormality A by determining whether or not the determination time belongs to the first period indicated in the server information (step S211).
  • the CPU 11 identifies that there is an abnormality A and determines the type of abnormality. Is returned as “abnormal A detection” (step S213).
  • the CPU 11 specifies that there is no abnormality A.
  • the CPU 11 refers to information (network information: second information) relating to the communication state of communication via the wide area communication network 2 in order to identify the presence or absence of abnormality B (step S215).
  • the network information includes information indicating a communication failure occurrence period due to wireless communication congestion, that is, an abnormality B occurrence period (second period).
  • the network information is, for example, statistical information (network statistical information) of communication volume for each predetermined unit period such as a day of the week and a time zone.
  • the network statistical information is assumed to be generated by a communication company that provides wireless communication via the wide area communication network 2 and provided on a website or the like, for example.
  • FIG. 8 is a diagram showing an example of network information, and represents statistical information on the traffic volume per hour.
  • a congestion state occurs and a time zone (congestion time zone) is shown, and further, the congestion state time zone shows the degree of congestion in two stages (congestion and most congestion). .
  • the CPU 11 determines whether or not there is an abnormality B by determining whether or not the determination time belongs to the second period indicated in the network statistical information (step S217).
  • the network information By using the network information to identify the presence / absence of abnormality B, the presence / absence of abnormality B can be identified easily and accurately.
  • the network information includes, for example, the prediction of the congestion state for each predetermined period, the measured value of the current communication speed for each measurement position, the presence / absence of the current communication failure, the maintenance, etc. It may be a scheduled time when a communication failure occurs, a date and time of an event that may cause a communication failure, a combination thereof, or the like.
  • the CPU 11 specifies that there is an abnormality B, and specifies the abnormality type specification result. Return “abnormality B detection” (step S219).
  • the CPU 11 specifies that there is no abnormality B. In this case, none of the abnormalities A to C is specified, and the types of communication abnormalities cannot be specified among these types. Therefore, the CPU 11 returns “unknown” as the result of specifying the type of abnormality (step S221).
  • the CPU 11 specifies that there is an abnormality C, and returns the result of specifying the type of abnormality as “abnormal C detection” (step S223). ).
  • FIG. 9 is a diagram illustrating an example of a correspondence relationship between the type of communication abnormality and the reception timing.
  • each of the specific results in the specific process is classified into five cases of cases 1 to 5, and the second timing determined as the reception timing in each case is defined.
  • the second timing is a timing at which elimination of the specified type of abnormality is predicted.
  • Case 1 is a case in which none of the abnormalities A to C is specified, and the specific result of the type of abnormality is “no abnormality” (step S207 in FIG. 7).
  • the reception timing is not delayed from the timing notified from the management server 5. Therefore, in this case, the reception timing is determined as the first timing.
  • Case 2 is a case where abnormality A is present and abnormality C is identified as none, presence / absence of abnormality B is not identified, and the identification result of the type of abnormality is “abnormality A” (step S213 in FIG. 7). ).
  • the second timing is specified based on the server information. Specifically, the CPU 11 specifies the timing that does not belong to the first period indicated in the server information as the second timing. Since the timing A that does not belong to the first period is predicted that the abnormality A has been eliminated, it is highly likely that the update program will be successfully received by determining the second timing as the reception timing.
  • Case 3 is a case in which neither abnormality A nor abnormality C is present and abnormality B is specified, and the abnormality type identification result is “abnormality B” (step S219 in FIG. 7).
  • the second timing is specified based on the network statistical information (FIG. 8). Specifically, the CPU 11 specifies a timing that does not belong to the second period indicated in the network statistical information as the second timing. Since the timing that does not belong to the second period is predicted that the abnormality B has been eliminated, the possibility of success in receiving the update program is increased by determining the second timing as the reception timing.
  • Case 4 is a case where abnormality C is identified as being present, presence / absence is not identified for abnormality A and abnormality B, and the abnormality type identification result is “abnormal C” (step S207 in FIG. 7).
  • the timing after movement of the vehicle 1 is specified as the second timing.
  • the CPU 11 specifies the timing at which the movement of the vehicle 1 is predicted as the second timing.
  • the wireless communication unit 15 moves away from the dead area and can communicate. Therefore, since the timing after the movement is predicted that the abnormality C has been eliminated, it is highly likely that the update program will be successfully received by determining the second timing as the reception timing.
  • the CPU 11 acquires a travel model based on the travel history of the vehicle 1 and predicts a travel route from the travel model.
  • FIG. 10 is an example of a travel model.
  • the travel history is, for example, the travel position (for example, latitude / longitude) of the vehicle 1 and the travel state (running, stopped, etc.) for each predetermined period such as day of the week, time, etc. Is obtained by statistical processing.
  • the statistical process is a process for determining a position and a traveling state that are most likely to travel every predetermined period and determining the traveling position and the traveling state in the period.
  • the travel history in the commuting time zone indicates the travel route from home to the office.
  • the method of statistical processing is not limited to a specific method, and any method can be adopted.
  • the CPU 11 predicts the travel route indicated by the travel model as the travel route of the vehicle 1.
  • the CPU 11 compares the predicted travel route with the area map, reads the timing to escape from the insensitive area that currently belongs in the predicted travel route, and determines the timing as the second timing.
  • the CPU 11 may acquire a travel route of the vehicle 1 from the navigation device by communicating with a navigation device (not shown) mounted on the vehicle 1.
  • the travel route generated by the navigation device includes the travel route and the time until the vehicle passes each position.
  • the CPU 11 may specify the second timing by predicting the travel route generated by the navigation device as the travel route of the vehicle 1 and comparing it with the area map.
  • Case 5 is a case where abnormality C is specified as none, abnormality A and abnormality B are not specified, and the specification result of the type of abnormality is “unknown” (step S221 in FIG. 7).
  • the timing after a predetermined period from the time of determination is specified as the second timing. If the type of abnormality is unknown, a temporary communication failure is included. In that case, there is a possibility that the state is removed after that timing. Therefore, by determining the second timing after a predetermined period from the determination time as the reception timing, there is a high possibility that the update program will be successfully received.
  • the reception timing is determined according to the type of communication abnormality. Specifically, the reception timing is delayed until the timing at which the communication abnormality is predicted to be resolved. Therefore, there is a high possibility that the update program will be successfully received.
  • the second timing can be specified in accordance with the presence / absence of each, that is, the cause of the abnormality. Therefore, the possibility that the communication abnormality is eliminated at the second timing can be increased, and the second timing can be specified as early as possible. That is, it is possible to increase the possibility of successful reception of the update program and to receive the update program at an early stage.
  • the DL control process is performed when the management server 5 receives a notification of downloading the update program during the operation of the vehicle 1.
  • This increases the possibility of successfully receiving the update program during the operation of the vehicle 1. Therefore, there is a high possibility that the control program can be updated while the vehicle 1 is in operation. This reduces the need for the user to stop the vehicle 1 and update the control program in the repro mode, or to store the vehicle 1 in a dealer and request an update of the control program. Therefore, user convenience can be improved.
  • a large-scale (large) update program is distributed, it is possible to prevent the communication band from being compressed by downloading the update program in advance, and to respond to communication requests from other devices. It can respond in real time.
  • step S107 a specific process
  • step S109 If no communication abnormality is detected at the second timing (YES in step S109), the previously detected communication abnormality is resolved by delaying the reception timing to the second timing. In this case, the CPU 11 transmits an update program transmission request to the DL server 6 at the second timing (step S111).
  • step S109 If further communication abnormality is detected at the second timing (NO in step S109), the previously detected communication abnormality has not been solved yet, or a new communication abnormality has occurred. In this case (NO in step S109).
  • the CPU 11 further executes a determination process (step S113) to delay the communication timing.
  • step S117 If the estimated time T at the second timing is greater than the threshold Th2 (T> Th2) (YES in step S117), the CPU 11 lowers the priority of the update program download process (step S119).
  • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

車載制御装置を含む車内ネットワークに属する中継装置であって、前記中継装置から前記車載制御装置に転送する当該車載制御装置の更新用プログラムを、無線通信を介してサーバから受信する通信部と、前記サーバから前記中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、前記更新用プログラムの受信タイミングを決定する制御部と、を備える、中継装置。

Description

中継装置、中継方法、およびコンピュータプログラム
 この発明は中継装置、中継方法、およびコンピュータプログラムムに関する。
 本出願は、2017年4月12日出願の日本出願第2017-078812号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
 近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ECU(Electronic Control Unit)が多数搭載されている。
 ECUの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、EPS(Electric Power Steering)等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯/消灯と警報器の吹鳴等の制御を行うボディ系ECU、運転席近傍に配設されるメータ類の動作を制御するメータ系ECUなどがある。
 一般的にECUは、マイクロコンピュータ等の演算処理装置によって構成されており、ROM(Read Only Memory)に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
 ECUの制御プログラムは、車両の仕向け地やグレードなど応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。また、たとえば地図情報や制御用のパラメータなど、制御プログラムの実行に必要なデータも書き換える必要がある。
 たとえば、特許文献1には、ネットワークを介して更新用プログラムをサーバからダウンロードし、プログラムの更新を行う技術(オンライン更新機能)が開示されている。
特開2012-178035号公報 特開2012-13253号公報 特開2014-118071号公報
 ある実施の形態に従うと、中継装置は車載制御装置を含む車内ネットワークに属する中継装置であって、中継装置から車載制御装置に転送する当該車載制御装置の更新用プログラムを、無線通信を介してサーバから受信する通信部と、サーバから中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、更新用プログラムの受信タイミングを決定する制御部と、を備える。
 他の実施の形態に従うと、中継方法は、車載制御装置を含む車内ネットワークに属する中継装置において、サーバから送信される車載制御装置の更新用プログラムを受信し、当該車載制御装置に転送する、中継方法であって、更新用プログラムを、無線通信を介してサーバから受信するステップと、サーバから中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、更新用プログラムの受信タイミングを決定するステップと、を備える。
 他の実施の形態に従うと、コンピュータプログラムは、車載制御装置を含む車内ネットワークに属する中継装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、中継装置から車載制御装置に転送する当該車載制御装置の更新用プログラムを、無線通信を介してサーバから受信する通信部と、サーバから中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、更新用プログラムの受信タイミングを決定する制御部と、として機能させる。
図1は、プログラム更新システムの全体構成図である。 図2は、ゲートウェイの内部構成を示すブロック図である。 図3は、ECUの内部構成を示すブロック図である。 図4は、管理サーバの内部構成を示すブロック図である。 図5は、プログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。 図6は、第1の実施の形態にかかるプログラム更新システムにおけるDL制御処理の具体的な内容を表したフローチャートである。 図7は、図6のステップS107の特定処理の一例を表したフローチャートである。 図8は、ネットワーク情報の一例を示す図である。 図9は、異常の種類と受信タイミングとの対応関係の一例を表した図である。 図10は、走行モデルの一例を示す図である。
<本開示が解決しようとする課題>
 特許文献1に開示されているようにオンライン更新を実行する場合、通信状況によってはダウンロード時間が長時間におよび、他の処理に影響を与えたり、ダウンロードに失敗したりする場合がある。また、通信が不通のタイミングにはダウンロードが成功せず、オンライン更新を行うことができない。
 本開示のある局面における目的は、通信状況に応じて、車載制御装置に転送する更新用プログラムの、サーバからの受信のために適切な対処をとることができる中継装置、中継方法、およびコンピュータプログラムを提供することである。
<本開示の効果>
 この開示によると、中継装置が、車載制御装置に転送する当該車載制御装置の更新用プログラムのサーバから受信ができない通信状況であっても、受信のために適切な対処をとることができる。
[実施の形態の説明]
 本実施の形態には、少なくとも以下のものが含まれる。すなわち、
 (1)本実施の形態に含まれる中継装置は車載制御装置を含む車内ネットワークに属する中継装置であって、中継装置から車載制御装置に転送する当該車載制御装置の更新用プログラムを、無線通信を介してサーバから受信する通信部と、サーバから中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、更新用プログラムの受信タイミングを決定する制御部と、を備える。
 サーバから中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて受信タイミングが決定されるため、受信タイミングを異常の解消後に決定することによって、当該異常を避けて更新用プログラムをサーバから受信することができる。これにより、確実にサーバから更新用プログラムを受信することができ、車載制御装置に転送することができる。
 (2)好ましくは、制御部は、通信異常を検知した場合には、検知した当該通信異常が解消されるまで受信タイミングを遅らせる。
 これにより、異常を避けて更新用プログラムをサーバから受信することができる。このため、確実にサーバから更新用プログラムを受信することができ、車載制御装置に転送することができる。
 (3)好ましくは、制御部は、検知した通信異常が解消した場合に、サーバに対する更新用プログラムの送信要求を通信部に送信させる。
 これにより、通信異常が解消した後に、当該送信要求に応じたサーバから更新用プログラムを受信することができる。このため、確実にサーバから更新用プログラムを受信することができ、車載制御装置に転送することができる。
 (4)好ましくは、通信異常には、下記の第1~第3の異常のうちの少なくとも1つが含まれる。
  第1の異常:サーバ側の通信障害
  第2の異常:無線通信の混雑による通信障害
  第3の異常:車両側の通信障害
 これにより、中継装置では、通信異常の種類を特定することができ、高い精度で通信異常が解消するタイミングを受信タイミングと決定することができる。これにより、確実にサーバから更新用プログラムを受信することができ、車載制御装置に転送することができる。
 (5)好ましくは、通信部は、第1の異常の発生期間を表す第1の情報を受信可能であり、制御部は、受信した第1の情報に基づいて第1の異常の有無を検知する。
 第1の情報を用いて第1の異常の有無を検知することで、容易に、かつ、精度よく第1の異常の有無を特定することができる。
 (6)好ましくは、通信部は、第2の異常の発生期間を表す第2の情報を受信可能であり、制御部は、受信した第2の情報に基づいて第2の異常の有無を検知する。
 これにより、容易に、かつ、精度よく第2の異常の有無を特定することができる。
 (7)好ましくは、通信部は、中継装置が搭載された車両の位置を表す第3の情報をいずれかの車載制御装置から受信可能であり、制御部は、受信した第3の情報に基づいて第3の異常の有無を検知する。
 これにより、容易に、かつ、精度よく第3の異常の有無を特定することができる。
 (8)好ましくは、制御部は、更新用プログラムをすべて受信するための所要時間が所定の閾値以上である場合に、受信タイミングを遅らせるか否かを決定する。
 サーバから中継装置まで通信状態が悪い状態では通信速度が遅くなるため、更新用プログラムをすべて受信するための所要時間が大きくなる。そのため、当該所要時間と閾値とを比較することで、容易に、サーバから中継装置まで通信異常の有無を検知することができる。
 (9)好ましくは、制御部は、中継装置が搭載された車両が運転中か否かを表す車両情報をいずれかの車載制御装置から受信可能であり、制御部は、受信した車両情報が運転中を表す場合に、受信タイミングを遅らせるか否かを決定する。
 これにより、当該車両が運転中の状態において更新用プログラムをサーバから受信することができる。そのため、車両を運転中に制御プログラムが更新されやすくなり、ユーザの利便性を向上させることができる。
 (10)本実施の形態に含まれる中継方法は、(1)~(9)のいずれか1つに記載の中継装置において更新用プログラムをサーバから受信し、車載制御装置に転送する方法である。
 かかる中継方法は、上記(1)~(9)の中継装置と同様の効果を奏する。
 (11)本実施の形態に含まれるコンピュータプログラムは、コンピュータを、(1)~(9)のいずれか1つに記載の中継装置として機能させる。
 かかるコンピュータプログラムは、上記(1)~(9)の中継装置と同様の効果を奏する。
[実施の形態の詳細]
 以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
 <第1の実施の形態>
 〔システムの全体構成〕
 図1は、実施形態にかかるプログラム更新システムの全体構成図である。
 図1に示すように、本実施形態のプログラム更新システムは、広域通信網2を介して通信可能な車両1、管理サーバ5およびDL(ダウンロード)サーバ6を含む。
 管理サーバ5は、車両1の更新情報を管理する。DLサーバ6は、更新用プログラムを保存する。管理サーバ5およびDLサーバ6は、たとえば、車両1のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両1と通信可能である。
 車両1には、車内通信線で接続された複数のECU30とゲートウェイ10とを含む車内ネットワーク(通信ネットワーク)4と、無線通信部15と、各ECU30によりそれぞれ制御される各種の車載機器(図示せず)と、が搭載されている。
 車両1には、共通の車内通信線にバス接続された複数のECU30による通信グループが存在し、ゲートウェイ10は、通信グループ間の通信を中継している。
 無線通信部15は、携帯電話網などの広域通信網2に通信可能に接続され、車内通信線によりゲートウェイ10に接続されている。ゲートウェイ10は、広域通信網2を通じて管理サーバ5およびDLサーバ6などの車外装置から無線通信部15が受信した情報を、車内通信線を介してECU30に送信する。
 ゲートウェイ10は、ECU30から取得した情報を無線通信部15に送信し、無線通信部15は、その情報を管理サーバ5などの車外装置に送信する。
 また、ECU30同士は、車内通信線を介して情報を送受信する。
 車両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に配設された車内通信線を介して複数の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は登録商標)等であってもよい。複数の車内通信線の中には、通信規格の異なるものが含まれていてもよい。
 車内通信部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に配設された車内通信線を介してゲートウェイ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は、ダウンロード(DL)制御処理を実行する(ステップS2)。DL制御処理は、DLサーバ6からゲートウェイ10までの更新用プログラムのダウンロードにおいて発生し得る通信異常の有無を検知する処理を含む(検知処理)。また、DL制御処理は、検知された通信異常の種類を特定する処理を含む(特定処理)。また、DL制御処理は、DLサーバ6から更新用プログラムを受信するタイミング(受信タイミング)に、更新用プログラムを受信するための処理を含む(ダウンロード処理)。ダウンロード処理は、通信異常が検知された場合に当該通信異常の種類に応じて受信タイミングを決定する処理(決定処理)を含む。DL制御処理については後述する。
 ダウンロード処理で、ゲートウェイ10は、受信タイミングにDLサーバ6に、更新用プログラムのダウンロードの送信要求を送信する(ステップS3)。これにより、当該タイミングにDLサーバ6から更新用プログラムが送信され、ゲートウェイ10によって受信される。
 ゲートウェイ10からダウンロードが要求されたDLサーバ6は、ダウンロード対象の更新用プログラムをゲートウェイ10に送信するとともに、制御プログラムの更新を要求する(ステップS4)。
 ゲートウェイ10は、DLサーバ6から送信された更新用プログラムを無線通信部15で受信すると、対象のECU30に更新用プログラムを転送して、制御プログラムの更新を要求する(ステップS5)。ゲートウェイ10は、ユーザから更新の許可を受けることによって更新用プログラムを転送してもよい。
 更新用プログラムを受信した対象のECU30は、ゲートウェイ10からの要求に従って更新用プログラムを展開し、制御プログラムを更新する(ステップS6)。更新が完了すると、対象のECU30はゲートウェイ10に更新完了を通知する(ステップS7)。この通知を受けたゲートウェイ10は、DLサーバ6に更新完了を通知する(ステップS8)。
 [ゲートウェイの機能構成]
 図2を参照して、ゲートウェイ10のCPU11は、DL制御処理を実行するための機能として、検知処理部111およびダウンロード(DL)制御部112を含む。これら機能は、CPU11が記憶部13に記憶されている1つまたは複数のプログラムを読み出して実行することによって、CPU11において実現される機能である。しかしながら、少なくとも一部機能が、電子回路などのハードウェアによって実現されてもよい。
 検知処理部111で表されたCPU11の機能(以下、検知処理部111)は、検知処理を実行する。具体的に、検知処理部111は、更新用プログラムをすべて受信するための、想定される所要時間(想定時間)Tに基づいて、DLサーバ6からゲートウェイ10までに発生し得る通信異常の有無を検知する。通信異常は、通信が不能な状態と、通信が可能であっても通常時よりも通信状態が悪い状態と、を含む。通信状態が悪い状態は、通信速度が規定速度よりも遅い状態、通信線の占有率が規定された占有率を超える状態、などを含む。
 検知処理部111は、想定時間Tを算出する。想定時間TはDLサーバ6が更新用プログラムの送信を開始してからゲートウェイ10で受信を完了するまでの時間を指す。想定時間Tは、DLサーバ6からゲートウェイ10まで通信経路の現在の通信速度Vで、更新用プログラムのサイズXを除して得られる(T=X/V)。サイズXは、たとえば、管理サーバ5からの更新の通知より取得される。通信速度Vは、たとえば、ICMP(Internet Control Message Protocol)のechoコマンドを利用したコマンドであるpingコマンドを利用して測定される。検知処理部111は、対象の通信回線に接続されている他の装置に対してpingコマンドを出力し、当該コマンドに対する応答時間を測定することで、通信速度Vを得る。
 検知処理部111は、通信異常がない場合の通信最低速度を閾値Th1として予め記憶しておき、通信速度Vと閾値Th1とを比較する。通信異常があると判断した場合に、当該通信異常の種類に応じて受信タイミングを決定する。そのため、検知処理部111は、検知処理の結果が通信異常ありの場合に、特定処理を実行する。図1を参照して、通信異常は、DLサーバ6側の通信障害である第1の異常(異常A)、DLサーバ6からゲートウェイ10までの広域通信網2を介した通信に含まれる無線通信の混雑による通信障害である第2の異常(異常B)、および車両1に搭載された無線通信部15の通信障害である第3の異常(異常C)の少なくとも1つを含む。検知処理部111は、異常A~Cそれぞれの有無を特定することによって、検知された通信異常の種類を特定する。特定処理については、後述する。
 検知処理部111は、通信異常がない場合の最長所要時間を閾値Th2として予め記憶しておき、算出した想定時間Tと閾値Th2とを比較する。検知処理部111は、想定時間Tが閾値Th2以下(T≦Th2)の場合、通信を要する処理が同時に他の機器に存在した場合であっても、その処理に対する影響は生じないと判断する。想定時間Tが閾値Th2より大きい(T>Th2)場合に、検知処理部111は、上記他の機器における通信を要する処理に障害を与える可能性があると判断する。この場合、対象の更新用プログラムをダウンロードする処理の優先順位を低下させる。検知処理部111において当該処理の優先順位を低下させる手法の一例として、ラウンドロビンスケジューリング処理または、現ダウンロード処理のスループットを低下させるといった手法が挙げられる。これにより、上記他の機器における通信を要する処理への影響を軽減することができる。
 DL制御部112で表されたCPU11の機能(以下、DL制御部112)は、ダウンロード処理を実行する。具体的に、DL制御部112は、受信タイミングに、更新用プログラムをDLサーバ6から受信するための処理を実行する。そのために、DL制御部112は決定処理を実行し、受信タイミングを決定する。
 決定処理は、通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、受信タイミングを決定する処理である。具体的に、DL制御部112は、異常なしの場合、管理サーバ5から通知を受けたタイミング(第1のタイミング)を受信タイミングと決定する。そして、第1のタイミングに、更新用プログラムをDLサーバ6から受信するための処理を実行する。
 異常ありの場合、DL制御部112は、特定処理によって特定された通信異常の種類に応じたタイミング(第2のタイミング)を受信タイミングと決定する。そして、第2のタイミングに、更新用プログラムをDLサーバ6から受信するための処理を実行する。
に変更し、第2のタイミングにダウンロードを開始する。
 第2のタイミングは、当該通信異常が解消された後のタイミングである。したがって、第2のタイミングを受信タイミングに決定するということは、受信タイミングを通信異常が解消されるまで遅らせることを意味する。
 DL制御部112は、第2のタイミングを特定するために、通信異常の種類と受信タイミング(第2のタイミング)との対応関係を予め記憶している。当該対応関係は、通信異常の種類ごとの当該異常の解消が予測されるタイミングである。当該対応関係を用いた決定処理については、後述する。
 好ましくは、DL制御部112は、第1のタイミングにおいて車両1が運転中であるか否かを判断し、運転中である場合に、検知処理および決定処理を実行して、第2のタイミングを受信タイミングと決定する。車両1が運転中であるか否かを判断するために、DL制御部112は、たとえば、エンジンなどの駆動系を制御するECU30から駆動状態、つまり、運転中であるか否かを表す車両情報を取得し、当該車両情報に基づいて判断する。
 [DL制御処理]
 図6は、本実施の形態にかかるプログラム更新システムにおけるDL制御処理の具体的な内容を表したフローチャートである。図6のフローチャートに表された処理は、ゲートウェイ10のCPU11が、記憶部13に記憶された1つまたは複数のプログラムをRAM12上に読み出して実行することによって検知処理部111およびDL制御部112の機能を実現することで実行される。図5の処理は、CPU11が起動中において、所定の時間間隔など、予め規定されたタイミングで繰り返し実行される。
 図5を参照して、CPU11は、管理サーバ5から更新用プログラムのダウンロードが要求されたか否かを判断する(ステップS101)。管理サーバ5からダウンロードが要求されていないときには(ステップS101でNO)、一連の動作を終了する。
 管理サーバ5からダウンロードが要求されると(ステップS101でYES)、CPU11は、通信速度Vを測定する(ステップS103)。そして、CPU11は、通信速度Vと閾値Th1とを比較する(ステップS105)。
 通信速度Vが閾値Th1より小さい(V<Th1)場合(ステップS105でYES)、つまり、通信速度Vに基づいて通信異常があると判断される場合に、CPU11は、特定処理(ステップS107)を実行する。ステップS107の特定処理については、後に具体的に説明する。
 異常の種類が特定された場合(ステップS109でNO)、CPU11は、決定処理(ステップS113)を実行する。ステップS113でCPU11は、予め記憶している通信異常の種類と第2のタイミングとの対応関係を参照して、異常の種類に応じた第2のタイミングを特定し、受信タイミングに決定する。ステップS113の処理については、後に具体的に説明する。
 異常の種類が特定しきれず「不明」であった場合には(ステップS109でYES)、CPU11は、管理サーバ5から更新用プログラムのダウンロードが要求されたタイミング(第1のタイミング)を受信タイミングと決定してダウンロード処理を実行する(ステップS111)。
 通信速度Vが閾値Th1以上(V≧Th1)の場合(ステップS105でNO)、つまり、通信速度Vに基づいて通信異常がないと判断される場合に、CPU11は、検知処理(ステップS115,117)を実行する。すなわち、CPU11は、想定時間Tを算出する(ステップS115)。そして、CPU11は、算出した想定時間Tと閾値Th2とを比較する(ステップS117)。
 想定時間Tが閾値Th2以下(T≦Th2)の場合(ステップS117でNO)には、CPU11は、ダウンロード処理を実行する(ステップS111)。
 想定時間Tが閾値Th2より大きい(T>Th2)場合(ステップS117でYES)、CPU11は、更新用プログラムのダウンロード処理の優先順位を低下させる(ステップS119)。
 <<特定処理>>
 図7は、図6のステップS107の特定処理の一例を表したフローチャートである。図7を参照して、初めに、CPU11は、無線通信部15の通信障害(異常C)の有無を特定する(ステップS201)。ステップS201でCPU11は、たとえば、ゲートウェイ10が搭載された車両1の現在位置が、無線通信部15による通信状態が不良な不感エリアに含まれるか否かにより、無線通信部15による通信が可能な状態であるか否かを判断する。
 車両1の現在位置は、たとえば、次のようにして取得することができる。すなわち、CPU11は、図示しないナビゲーション装置である車載機器を制御するECU30から、車両1の現在位置を示す位置情報(第3の情報)を取得する。または、CPU11は、GPS(Global Positioning System)と通信可能な車載機器を制御するECU30から位置情報(第3の情報)を取得してもよい。
 現在位置が不感エリアに含まれるか否か判断するために、CPU11は、不感エリアを含むエリアマップを取得する。エリアマップは、たとえば、位置または範囲ごとに、当該位置または範囲における通信強度を示す情報である。エリアマップは、たとえば、無線通信部15の行う無線通信を管理する通信会社などによって生成されて、ウェブサイトなどで提供されることが想定される。CPU11は当該ウェブサイトのURLを予め記憶しておき、当該ウェブサイトからエリアマップを取得することができる。異常Cの有無の特定に車両1の現在位置を利用することによって、容易に、かつ、精度よく異常Cの有無を特定することができる。
 無線通信部15による通信が可能な場合(ステップS201でYES)、CPU11は、異常Cがなしと特定し、次に、DLサーバ6の通信障害(異常A)および/または広域通信網2を介した通信に含まれる無線通信の混雑による通信障害(異常B)の有無を特定する。
 異常Aおよび/または異常Bの有無を特定するために、一例として、CPU11はpingコマンドを利用して、DLサーバ6に対して応答を要求する(ステップS203)。CPU11は、DLサーバ6からの応答時間RTを測定する。また、CPU11は、広域通信網2を介した無線通信に異常がない場合のDLサーバ6からの応答時間を閾値Rthとして予め記憶しておく。そして、CPU11は、応答時間RTと閾値Rthとを比較することで、異常Aおよび/または異常Bの有無を特定する。
 応答時間RTが閾値Rthよりも短い(RT≦Rth)場合(ステップS205でNO)、CPU11は、異常Aおよび異常Bのいずれもなしと特定し、異常の種類の特定結果を「異常なし」と返す(ステップS207)。
 DLサーバ6から応答がなかった場合、または、応答があった場合でも、応答時間RTが閾値Rthよりも長い(RT>Rth)場合(ステップS205でYES)、CPU11は、異常Aおよび異常Bの少なくとも一方が有りと特定する。そこで、CPU11は、異常Aの有無を特定するために、DLサーバ6の通信状態に関する情報(サーバ情報:第1の情報)を参照する(ステップS209)。
 サーバ情報は、DLサーバ6の通信機能が完全でない期間つまり、異常Aの発生期間(第1の期間)を示す情報を含む。第1の期間は、たとえば、メンテナンス等によって通信障害の発生が予定されている日時または時間帯、などである。サーバ情報は、たとえば、DLサーバ6を運営するカーメーカーなどによって生成されて、ウェブサイトなどで提供されることが想定される。CPU11は、判断時点がサーバ情報に示される第1の期間に属しているか否かを判断することによって異常Aの有無を特定する(ステップS211)。異常Aの有無の特定にサーバ情報を利用することによって、容易に、かつ、精度よく異常Aの有無を特定することができる。
 判断時点が第1の期間に属している場合、すなわち、判断時点においてDLサーバ6に通信障害が生じている場合(ステップS211でYES)、CPU11は、異常Aがありと特定し、異常の種類の特定結果を「異常A検知」と返す(ステップS213)。
 判断時点が第1の期間に属していない場合、すなわち、判断時点においてDLサーバ6に通信障害が生じていない場合(ステップS211でNO)、CPU11は、異常Aがなしと特定する。この場合、CPU11は、異常Bの有無を特定するために、当該広域通信網2を介した通信の通信状態に関する情報(ネットワーク情報:第2の情報)を参照する(ステップS215)。
 ネットワーク情報は、無線通信の混雑による通信障害の発生期間、つまり、異常Bの発生期間(第2の期間)を示す情報を含む。ネットワーク情報は、たとえば、曜日、時間帯など、所定の単位期間ごとの通信量の統計情報(ネットワーク統計情報)である。ネットワーク統計情報は、たとえば、広域通信網2を介した無線通信を提供する通信会社などによって生成されて、ウェブサイトなどで提供されることが想定される。
 図8は、ネットワーク情報の一例を示す図であって、1時間ごとの通信量の統計情報を表している。図8では、第2の期間として、輻輳状態が生じて時間帯(混雑時間帯)が示され、さらに、輻輳状態の時間帯は輻輳度合いが二段階(混雑、最混雑)で示されている。
 CPU11は、判断時点がネットワーク統計情報に示される第2の期間に属しているか否かを判断することによって異常Bの有無を特定する(ステップS217)。異常Bの有無の特定にネットワーク情報を利用することによって、容易に、かつ、精度よく異常Bの有無を特定することができる。
 なお、ネットワーク情報は、図8のようなネットワーク統計情報のほか、所定期間ごとの輻輳状態の予測、測定位置ごとの現在の通信速度の測定値、現在の通信障害の発生の有無、メンテナンス等の予定されている通信障害の生じる時間帯、通信障害を引き起こす可能性のあるイベントの開催日時、これらの組み合わせ、などであってもよい。
 判断時点が第2の期間に属している場合、すなわち、判断時点が混雑時間帯に含まれる場合(ステップS217でYES)、CPU11は、異常Bがありと特定し、異常の種類の特定結果を「異常B検知」と返す(ステップS219)。
 判断時点が第2の期間に属していない場合、すなわち、判断時点が混雑時間帯に含まれない場合には(ステップS217でNO)、CPU11は、異常Bがなしと特定する。この場合、異常A~Cのいずれもなしと特定され、通信異常の種類がこれらの種類の中で特定しきれない。そのため、CPU11は、異常の種類の特定結果を「不明」と返す(ステップS221)。
 無線通信部15による通信が可能な状態でない場合には(ステップS201でNO)、CPU11は、異常Cがありと特定して、異常の種類の特定結果を「異常C検知」と返す(ステップS223)。
 <<決定処理>>
 図9は、通信異常の種類と受信タイミングとの対応関係の一例を表した図である。図9の例では、特定処理における特定結果ごとにケース1~5の5つのケースに分類して、それぞれの場合に受信タイミングと決定する第2のタイミングが規定されている。第2のタイミングは、特定された種類の異常の解消が予測されるタイミングである。
 ケース1は、異常A~Cのいずれもなしと特定され、異常の種類の特定結果が「異常なし」であるケースである(図7のステップS207)。ケース1では、管理サーバ5から通知されたタイミングから受信タイミングを遅らせない。したがって、この場合、受信タイミングは第1のタイミングと決定される。
 ケース2は、異常Aがあり、かつ、異常Cがなしと特定され、異常Bについて有無が特定されず、異常の種類の特定結果が「異常A」であるケースである(図7のステップS213)。ケース2では、サーバ情報に基づいて第2のタイミングを特定する。具体的に、CPU11は、サーバ情報に示される第1の期間に属さないタイミングを第2のタイミングと特定する。第1の期間に属さないタイミングは異常Aが解消されていると予測されるため、第2のタイミングを受信タイミングと決定することによって更新用プログラムの受信に成功する可能性が高くなる。
 ケース3は、異常Aおよび異常Cともになし、かつ、異常Bがありと特定され、異常の種類の特定結果が「異常B」であるケースである(図7のステップS219)。ケース3では、ネットワーク統計情報(図8)に基づいて第2のタイミングを特定する。具体的に、CPU11は、ネットワーク統計情報に示される第2の期間に属さないタイミングを第2のタイミングと特定する。第2の期間に属さないタイミングは異常Bが解消されていると予測されるため、第2のタイミングを受信タイミングと決定することによって更新用プログラムの受信に成功する可能性が高くなる。
 ケース4は、異常Cがありと特定され、異常Aおよび異常Bについて有無が特定されず、異常の種類の特定結果が「異常C」であるケースである(図7のステップS207)。ケース4では、当該車両1の移動後のタイミングを第2のタイミングと特定する。具体的に、CPU11は、車両1の移動が予測されるタイミングを第2のタイミングと特定する。車両1が現在位置から移動することによって無線通信部15が不感エリアから脱し、通信可能になる可能性が高くなる。そのため、移動後のタイミングは異常Cが解消されていると予測されるため、第2のタイミングを受信タイミングと決定することによって更新用プログラムの受信に成功する可能性が高くなる。
 車両1の移動を予測する方法の一例として、次のような方法が挙げられる。すなわち、CPU11は、車両1の走行履歴に基づく走行モデルを取得し、当該走行モデルから走行経路を予測する。図10は走行モデルの一例である。走行履歴は、たとえば、曜日、時間などの所定期間ごとの車両1の走行位置(たとえば緯度経度)や走行状態(走行中か、停車中か、等)であって、走行モデルは、当該走行履歴を統計処理して得られる。統計処理は、一例として、所定期間ごとに走行している可能性の最も高い位置および走行状態を特定して当該期間の走行位置および走行状態と決定する処理である。たとえば、月曜日から金曜日まで出勤に車両1が使用されている場合、通勤時間帯(たとえば朝8時から8時30分まで)の走行履歴は自宅から会社までの走行経路を示す。統計処理の方法は特定方法に限定されず、あらゆる方法が採用され得る。図10の走行モデルが記憶部13に記憶されている場合、CPU11は、当該走行モデルに示される走行経路を車両1の走行経路と予測する。
 CPU11は、予測される走行経路とエリアマップとを比較し、予測される走行経路において、現在属している不感エリアを脱するタイミングを読み出して、当該タイミングを第2のタイミングと決定する。
 車両1の移動を予測する方法の他の例として、次のような方法が挙げられる。すなわち、CPU11は、車両1に搭載された図示しないナビゲーション装置と通信することで、当該ナビゲーション装置から車両1の走行経路を取得してもよい。ナビゲーション装置で生成される走行経路は、走行経路と各位置を通過するまでの時間とを含む。CPU11は、ナビゲーション装置で生成される走行経路を車両1の走行経路と予測し、エリアマップとを比較することによって第2のタイミングを特定してもよい。
 ケース5は、異常Cがなしと特定され、異常Aおよび異常Bについて有無が特定されず、異常の種類の特定結果が「不明」であるケースである(図7のステップS221)。ケース5では、判断時点から予め規定した期間後のタイミングを第2のタイミングと特定する。異常の種類が不明である場合には、一時的な通信不良が含まれる。その場合、そのタイミングの後には当該状態を脱する可能性がある。そこで、判断時点から予め規定した期間後の第2のタイミングを受信タイミングと決定することによって更新用プログラムの受信に成功する可能性が高くなる。
 [第1の実施の形態の効果]
 第1の実施の形態にかかるプログラム更新システムにおいては、更新用プログラムをDLサーバ6から受信する際に通信異常が検知された場合に、通信異常の種類に応じて、受信タイミングが決定される。具体的には、当該通信異常が解消されると予測されるタイミングまで、受信タイミングを遅らせる。そのため、更新用プログラムの受信が成功する可能性が高くなる。
 このとき、特に、異常Aと異常Bとのそれぞれの有無を特定することによって、それぞれの有無、つまり、異常の原因に応じて第2のタイミングを特定することができる。そのため、第2のタイミングにおいて当該通信異常が解消されている可能性を高くすることができるとともに、第2のタイミングをできるだけ早いタイミングに特定することができる。つまり、更新用プログラムの受信が成功する可能性を高くできるとともに、早期に更新用プログラムを受信できる。
 好ましくは、第1の実施の形態にかかるプログラム更新システムにおいては、車両1の運転中に管理サーバ5から更新用プログラムのダウンロードの通知があった場合に、上記のDL制御処理を実行する。これにより、車両1の運転中に更新用プログラムの受信に成功する可能性が高くなる。そのため、車両1の運転中に制御プログラムの更新が可能になる可能性が高くなる。これによって、ユーザは、車両1を停車させてリプロモードとして制御プログラムを更新したり、車両1をディーラーに入庫して制御プログラムの更新を依頼したりする必要が少なくなる。そのため、ユーザの利便性を向上させることができる。
 また、大規模な(サイズの大きい)更新用プログラムの配信があったときも、当該更新用プログラムのダウンロードによる通信帯域の圧迫を事前に防ぐことが出来、他の機器の通信要求に対してもリアルタイムで対応ができる。
 <第2の実施の形態>
 第2の実施の形態にかかるプログラム更新システムでは、確実に更新用プログラムを受信するために、第1の実施の形態にかかるプログラム更新システムにおいて受信タイミングに決定された第2のタイミングに、さらに、通信異常が解消されているか否かを確認した上で、更新用プログラムを受信する。
 第2の実施の形態にかかるゲートウェイ10のCPU11は、上記ステップS113で決定した第2のタイミングに達すると、再度、上記ステップS103以降の動作を繰り返す。そして、通信異常が検知された場合(ステップS105でYES)、特定処理(ステップS107)を実行する。
 第2のタイミングにおいて通信異常が検知されなかった場合(ステップS109でYES)、受信タイミングを第2のタイミングに遅らせたことによって、先に検知された通信異常が解消されている。この場合、CPU11は、第2のタイミングにDLサーバ6に対して更新用プログラムの送信要求を送信する(ステップS111)。
 第2のタイミングにおいてさらに通信異常が検知された場合(ステップS109でNO)、先に検知された通信異常が未だ解消されていない、または、新たに通信異常が生じている。この場合には(ステップS109でNO)。CPU11は、さらに、決定処理(ステップS113)を実行して、通信タイミングを遅らせる。
 また、第2のタイミングにおける想定時間Tが閾値Th2より大きい(T>Th2)場合には(ステップS117でYES)、CPU11は、更新用プログラムのダウンロード処理の優先順位を低下させる(ステップS119)。
 [第2の実施の形態の効果]
 第2の実施の形態にかかるプログラム更新システムでは、検知処理→特定処理→決定処理→検知処理→…と図6の動作が繰り返される。これにより、通信異常がないことが確認されてから更新用プログラムを受信することになる。そのため、更新用プログラムの受信を成功させることができる。
 開示された特徴は、1つ以上のモジュールによって実現される。たとえば、当該特徴は、回路素子その他のハードウェアモジュールによって、当該特徴を実現する処理を規定したソフトウェアモジュールによって、または、ハードウェアモジュールとソフトウェアモジュールとの組み合わせによって実現され得る。
 上述の動作をコンピュータに実行させるための、1つ以上のソフトウェアモジュールの組み合わせであるプログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD-ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
 なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
 また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 車両
 2 広域通信網
 4 車内ネットワーク
 5 管理サーバ
 6 DLサーバ
 10 ゲートウェイ(中継装置)
 15 無線通信部(通信部)
 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 (11)

  1.  車載制御装置を含む車内ネットワークに属する中継装置であって、
     前記中継装置から前記車載制御装置に転送する当該車載制御装置の更新用プログラムを、無線通信を介してサーバから受信する通信部と、
     前記サーバから前記中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、前記更新用プログラムの受信タイミングを決定する制御部と、を備える、中継装置。
  2.  前記制御部は、前記通信異常を検知した場合には、検知した当該通信異常が解消されるまで前記受信タイミングを遅らせる、請求項1に記載の中継装置。
  3.  前記制御部は、検知した前記通信異常が解消した場合に、前記サーバに対する前記更新用プログラムの送信要求を前記通信部に送信させる、請求項2に記載の中継装置。
  4.  前記通信異常には、下記の第1~第3の異常のうちの少なくとも1つが含まれる、請求項1~請求項3のいずれか一項に記載の中継装置。
      第1の異常:サーバ側の通信障害
      第2の異常:無線通信の混雑による通信障害
      第3の異常:車両側の通信障害
  5.  前記通信部は、前記第1の異常の発生期間を表す第1の情報を受信可能であり、
     前記制御部は、受信した前記第1の情報に基づいて前記第1の異常の有無を検知する、請求項4に記載の中継装置。
  6.  前記通信部は、前記第2の異常の発生期間を表す第2の情報を受信可能であり、
     前記制御部は、受信した前記第2の情報に基づいて前記第2の異常の有無を検知する、請求項4または請求項5に記載の中継装置。
  7.  前記通信部は、前記中継装置が搭載された車両の位置を表す第3の情報をいずれかの前記車載制御装置から受信可能であり、
     前記制御部は、受信した前記第3の情報に基づいて前記第3の異常の有無を検知する、請求項4~請求項6のいずれか一項に記載の中継装置。
  8.  前記制御部は、前記更新用プログラムをすべて受信するための所要時間が所定の閾値以上である場合に、前記受信タイミングを遅らせるか否かを決定する、請求項1~請求項7のいずれか一項に記載の中継装置。
  9.  前記制御部は、前記中継装置が搭載された車両が運転中か否かを表す車両情報をいずれかの前記車載制御装置から受信可能であり、
     前記制御部は、受信した前記車両情報が運転中を表す場合に、前記受信タイミングを遅らせるか否かを決定する、請求項1~請求項8のいずれか一項に記載の中継装置。
  10.  車載制御装置を含む車内ネットワークに属する中継装置において、サーバから送信される前記車載制御装置の更新用プログラムを受信し、当該車載制御装置に転送する、中継方法であって、
     前記更新用プログラムを、無線通信を介して前記サーバから受信するステップと、
     前記サーバから前記中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、前記更新用プログラムの受信タイミングを決定するステップと、を備える、中継方法。
  11.  車載制御装置を含む車内ネットワークに属する中継装置としてコンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータを、
     前記中継装置から前記車載制御装置に転送する当該車載制御装置の更新用プログラムを、無線通信を介してサーバから受信する通信部と、
     前記サーバから前記中継装置までに発生し得る通信異常の有無、および、異常ありの場合は当該通信異常の種類に応じて、前記更新用プログラムの受信タイミングを決定する制御部と、として機能させる、コンピュータプログラム。
PCT/JP2017/044758 2017-04-12 2017-12-13 中継装置、中継方法、およびコンピュータプログラム WO2018189951A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017078812 2017-04-12
JP2017-078812 2017-04-12

Publications (1)

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

Family

ID=63792343

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/044758 WO2018189951A1 (ja) 2017-04-12 2017-12-13 中継装置、中継方法、およびコンピュータプログラム

Country Status (1)

Country Link
WO (1) WO2018189951A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114600438A (zh) * 2019-11-13 2022-06-07 株式会社自动网络技术研究所 车载中继装置及信息处理方法
WO2025032786A1 (ja) * 2023-08-09 2025-02-13 日立Astemo株式会社 車両システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006209530A (ja) * 2005-01-28 2006-08-10 Alpine Electronics Inc 情報処理装置、ナビゲーション装置、情報処理方法およびプログラム
JP2007036762A (ja) * 2005-07-28 2007-02-08 Noritz Corp 情報通信システム及び情報端末装置
JP2013050865A (ja) * 2011-08-31 2013-03-14 Brother Ind Ltd 画像処理装置
JP2013167956A (ja) * 2012-02-14 2013-08-29 Kddi Corp 通信システム、通信方法、通信プログラムおよび通信装置
WO2016190377A1 (ja) * 2015-05-26 2016-12-01 京セラ株式会社 ソフトウェア更新装置、ソフトウェア更新システムおよびソフトウェア更新方法
JP2017027484A (ja) * 2015-07-27 2017-02-02 富士通フロンテック株式会社 ダウンロード処理プログラム、端末装置及びダウンロード方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006209530A (ja) * 2005-01-28 2006-08-10 Alpine Electronics Inc 情報処理装置、ナビゲーション装置、情報処理方法およびプログラム
JP2007036762A (ja) * 2005-07-28 2007-02-08 Noritz Corp 情報通信システム及び情報端末装置
JP2013050865A (ja) * 2011-08-31 2013-03-14 Brother Ind Ltd 画像処理装置
JP2013167956A (ja) * 2012-02-14 2013-08-29 Kddi Corp 通信システム、通信方法、通信プログラムおよび通信装置
WO2016190377A1 (ja) * 2015-05-26 2016-12-01 京セラ株式会社 ソフトウェア更新装置、ソフトウェア更新システムおよびソフトウェア更新方法
JP2017027484A (ja) * 2015-07-27 2017-02-02 富士通フロンテック株式会社 ダウンロード処理プログラム、端末装置及びダウンロード方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114600438A (zh) * 2019-11-13 2022-06-07 株式会社自动网络技术研究所 车载中继装置及信息处理方法
WO2025032786A1 (ja) * 2023-08-09 2025-02-13 日立Astemo株式会社 車両システム

Similar Documents

Publication Publication Date Title
JP6519708B2 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
JP6525105B2 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
US10915310B2 (en) Control apparatus, program updating method, and computer program
US20200215930A1 (en) Control apparatus, control method, and computer program
WO2018079004A1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
US10625754B2 (en) Control apparatus, control method, and computer program
US11704104B2 (en) Control apparatus, control method, and computer program
US10970063B2 (en) Relay apparatus, transfer method, and computer program
WO2017149821A1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
US20190129710A1 (en) Control apparatus, method for determining whether or not a control program is updatable, and computer program
US11340891B2 (en) Control device, control method, and computer program
JP6358286B2 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
JP2018005894A (ja) プログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラム
WO2017221436A1 (ja) 中継装置、中継方法及びコンピュータプログラム
JPWO2018185994A1 (ja) 制御装置、転送方法、およびコンピュータプログラム
JP6394678B2 (ja) 制御装置、制御プログラムの更新可否の決定方法、及びコンピュータプログラム
JP2017228103A (ja) 制御装置、プログラム配信方法、およびコンピュータプログラム
WO2018189951A1 (ja) 中継装置、中継方法、およびコンピュータプログラム
WO2020054622A1 (ja) センター装置、リプログデータの配信システム及びリプログデータの配信計画作成プログラム
JP6973120B2 (ja) なりすまし検出装置、検出方法、およびコンピュータプログラム
WO2017209049A1 (ja) プログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラム
WO2017149827A1 (ja) 制御装置、プログラム配信方法、およびコンピュータプログラム
CN120051763A (zh) 更新管理装置、车载系统、控制方法及计算机程序

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: 17905322

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: 17905322

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP