Nothing Special   »   [go: up one dir, main page]

WO2022162815A1 - ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム - Google Patents

ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム Download PDF

Info

Publication number
WO2022162815A1
WO2022162815A1 PCT/JP2021/002961 JP2021002961W WO2022162815A1 WO 2022162815 A1 WO2022162815 A1 WO 2022162815A1 JP 2021002961 W JP2021002961 W JP 2021002961W WO 2022162815 A1 WO2022162815 A1 WO 2022162815A1
Authority
WO
WIPO (PCT)
Prior art keywords
vehicle
package
software
common package
identification information
Prior art date
Application number
PCT/JP2021/002961
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 EP21921666.0A priority Critical patent/EP4287032A4/en
Priority to JP2022577902A priority patent/JP7494944B2/ja
Priority to PCT/JP2021/002961 priority patent/WO2022162815A1/ja
Priority to US18/259,595 priority patent/US20240061671A1/en
Priority to CN202180092369.8A priority patent/CN116888580A/zh
Publication of WO2022162815A1 publication Critical patent/WO2022162815A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • 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 software update device, an in-vehicle terminal device, and a software update system.
  • the information center selects target software as upgrade candidates based on information on the software/hardware owned by the vehicle, and transmits the selected target software to the vehicle.
  • Patent Document 1 A technique for doing so is known.
  • a demo image showing the functions realized by the target software is displayed to the user on the vehicle side, and the user selects whether or not to upgrade the target software.
  • the in-vehicle terminal device of the vehicle requests the information center to transmit the target software, and the information center transmits the target software to the in-vehicle terminal device.
  • a server functioning as an information center stores target software and transmits the target software to an in-vehicle terminal device.
  • software to be updated is prepared for each vehicle, the number of processing steps executed by the server to update the software stored in the vehicle-mounted terminal device of each vehicle and the capacity of the storage device of the server.
  • the problem to be solved by the present invention is to provide a software update device, an in-vehicle terminal device, and a software update system that reduce the processing load and storage capacity of the server in the process of updating vehicle software.
  • the present invention is a software update device for updating software using update data for vehicle software, comprising a common package including at least update data, common package identification information assigned to the common package, and common package identification information. and an identification package including vehicle identification information for identifying the associated vehicle, and transmitting the identification package including the vehicle identification information associated with the target vehicle to the target vehicle whose software is to be updated. Then, according to a request from the target vehicle, the common package to which the common package identification information contained in the identification package is assigned is transmitted to the target vehicle.
  • the processing load and storage capacity of the server are reduced in the process of updating vehicle software.
  • FIG. 1 is a diagram showing an example of the configuration of a software update system according to this embodiment.
  • FIG. 2 is an example of a software update list according to this embodiment.
  • FIG. 3A is a diagram showing the relationship between common packages and identification packages.
  • FIG. 3B is an example showing an identification package according to this embodiment.
  • FIG. 4A is an example showing a common package according to this embodiment.
  • FIG. 4B is an example showing a common package according to this embodiment.
  • FIG. 5A is an example showing a common package according to this embodiment.
  • FIG. 5B is an example showing a common package according to this embodiment.
  • FIG. 6 is an example showing the control flow of the software update device according to this embodiment.
  • FIG. 7 is an example showing a control flow of the in-vehicle terminal device according to this embodiment.
  • FIG. 8 is a sequence diagram showing the flow of control in the software update system of this embodiment.
  • FIG. 1 is a block diagram showing an example of a software update system 100 including a software update device 1, an in-vehicle terminal device 20 mounted on a vehicle 2, and a communication network 3 according to this embodiment.
  • the software update system 100 is a FOTA (Firmware Over The Air) system capable of updating the software of the ECU installed in the vehicle 2 by OTA (Over The Air).
  • the software update device 1 and the in-vehicle terminal device 20 can transmit and receive data to and from each other via the communication network 3 .
  • the software update device 1 When the software supplier inputs update data for rewriting the software, the software update device 1 stores the update data. When receiving a request for software update data from an in-vehicle terminal device 20 , the software update device 1 transmits a distribution package including the update data to the requested in-vehicle terminal device 20 via the communication network 3 . Upon receiving the distribution package from the software update device 1, the in-vehicle terminal device 20 rewrites and updates the software of the ECU to be updated using the update data included in the distribution package.
  • the communication network 3 includes, for example, a mobile communication network such as a 4G line, the Internet, and the like.
  • the software update data is update program data for updating the software of the ECU of the vehicle 2 and is provided by the software supplier.
  • the update data may be all data corresponding to the entire software after the update, or may be difference data corresponding to the difference between the software before the update and the software after the update. Also, the update data may be compressed by a known data compression technique.
  • the software update data received by the vehicle is used to update the software of the own vehicle in order to prevent the software from being updated unintentionally by the software supplier. Data may be guaranteed.
  • the update data is data for updating the software of the own vehicle
  • the update data and the vehicle identification information for identifying the vehicle to be updated are associated with each other and included in the distribution package.
  • the data structure of the distribution package is a structure in which vehicle identification information and update data are stored in association with each other. Since update data will be stored in correspondence with the information, distribution packages for the number of vehicles are required. Since update data is larger in data size than vehicle identification information, if distribution packages containing update data are prepared for the number of vehicles and stored in a storage device, the storage capacity increases. In addition, the number of processing man-hours required to update the software of all target vehicles also increases.
  • the software update device 1 divides the distribution package into two types of packages and transmits them to the in-vehicle terminal device 20 .
  • the software update device 1 uses a common package including update data in common among a plurality of vehicles.
  • the software update device 1 updates an identification package containing vehicle identification information and common package identification information for each vehicle to be updated as information for determining that the common package is data for updating the software of the own vehicle.
  • the packages having a large data size are prepared as data common to all vehicles to be updated.
  • packages containing small data size vehicle identification information and common package identification information are prepared according to the number of vehicles.
  • the vehicle 2 uses the package containing the vehicle identification number to confirm that the update data is data for updating the software of the own vehicle, thereby reducing the processing man-hours and storage capacity for updating the software. while improving cyber security. A more detailed description will be given below.
  • the software update device 1 is a server that manages software update data provided by a software supplier or the like, and transmits the update data to a vehicle to be updated.
  • the software update device 1 has a controller 10, a storage device 11, a communication device 12, and an input device 13, and is configured to be able to communicate data with each other.
  • the controller 10 in this embodiment includes a computer having hardware and software, and the computer includes a ROM (Read Only Memory) storing a program and a CPU (Central Processing Unit) executing the program stored in the ROM. and a RAM (Random Access Memory) that functions as an accessible storage device.
  • ROM Read Only Memory
  • CPU Central Processing Unit
  • RAM Random Access Memory
  • the controller 10 manages the software update list, and updates the software update list that manages the update data when software update data is input from the software supplier. Also, the controller 10 generates a common package (details of which will be described later) including the input update data, and stores the generated common package in the storage device 11 .
  • the software update list includes, for each software update campaign, a campaign ID, a target VIN, a target ECU, a software version of the updated software, a link to the common package, A common package identifier is managed.
  • a campaign means a unit of information for linking input update data with information of one or more vehicles to be updated and managing the information.
  • the target VIN is the vehicle identification number (VIN for short) of the vehicle to be updated.
  • the target ECU is an ECU that is subject to software update. In the software update campaign, the target ECU is not limited to one ECU, and when there are a plurality of target ECUs, a plurality of ECUs may be input as the target ECU.
  • the software version is the updated version of the software distributed to the in-vehicle terminal device 20 .
  • the controller 10 assigns a campaign ID to the software update campaign.
  • Campaign ID is an identification number assigned to identify a software update campaign.
  • the controller 10 stores the generated common package in the storage device 11 and inputs the link of the storage destination into the software update list as a link to the common package.
  • a common package identifier is identification information for identifying a common package.
  • the controller 10 inputs the common package identifier generated for each common package to the software update list. Controller 10 stores the generated software update list in storage device 11 .
  • the controller 10 determines whether software update is necessary for all vehicles under management. Specifically, first, for each vehicle, the controller 10 compares the vehicle identification number of the vehicle with the target VIN managed as a software update target, and determines whether or not the vehicle identification numbers match. do. If the vehicle identification numbers match, the controller 10 compares the software version of the current ECU of the vehicle with the matching vehicle identification number with the software version of the updated software. Then, the controller 10 determines that software update is necessary when the current software version of the ECU of the vehicle is a software version earlier than the software version of the updated software.
  • the controller 10 When it is determined that the software update is required, the controller 10 generates an identification package for each vehicle determined to require the software update, and stores the generated identification package in the in-vehicle terminal device 20 of the vehicle. send a unique identification package.
  • the controller 10 When there are multiple target vehicles, the controller 10 generates different identification packages for each of the multiple target vehicles.
  • the identification package includes, for each target vehicle, vehicle identification information corresponding to the target vehicle and a common package identifier assigned to the common package for identifying the common package.
  • the identification package is data for the in-vehicle terminal device 20 to determine that the common package is data for updating the software of the own vehicle. For example, the identification package includes a vehicle identification number (VIN) as vehicle identification information.
  • VIN vehicle identification number
  • the common package includes update data and a common package identifier, as described later. If the vehicles to be updated are vehicle A, vehicle B, and vehicle C, an identification package for vehicle A, an identification package for vehicle B, and an identification package for vehicle C are generated as identification packages.
  • Each identification package contains the VIN of each vehicle and the same common package identifier that is common to multiple vehicles.
  • Each vehicle's VIN is associated with a common package identifier. Specifically, the VIN of each vehicle is the VIN of the vehicle whose software is to be updated using the update data included in the common package.
  • the common package identifier included in the identified package and the common package identifier included in the common package are the same.
  • the vehicle identification information may be information on the vehicle type.
  • the vehicle-mounted terminal device 20 that has acquired the identification package uses the vehicle identification number included in the identification package and the The vehicle identification numbers are compared to determine whether or not the vehicle identification number included in the identification package matches the vehicle identification number of the host vehicle. If the vehicle identification numbers match, the in-vehicle terminal device 20 can confirm that the common package corresponding to the common package identifier included in the identification package is the package for its own vehicle.
  • the common package identifier is identification information for identifying a common package, and is used by the in-vehicle terminal device 20 to prove that the common package transmitted to the in-vehicle terminal device 20 is the data requested by the in-vehicle terminal device 20. It is.
  • a common package identifier is, for example, a hash value generated from a common package using a hash function. Specifically, the common package identifier is generated from data included in the common package. For example, a common package identifier is generated by calculating a hash value from update data. In this embodiment, a common calculation formula for calculating hash values is implemented in the software update device 1 and the in-vehicle terminal device 20 .
  • the software update device 1 and the in-vehicle terminal device 20 separately calculate hash values.
  • the hash value is calculated using various calculation formulas such as checksum, CRC, ND5, and SHA-1.
  • the common package identifier may be a predetermined value, such as a campaign ID attached to the campaign.
  • the identification package does not include the update data itself.
  • the data size of the VIN included in the identification package is 17 bytes, and the VIN is data with a small data size. That is, the identification package does not contain data of large size, but data of small size.
  • the processing man-hours required for updating the software in the controller 10 and the storage capacity of the storage device 11 are reduced compared to the case where a package including the software main body and the vehicle identification information for identifying the target vehicle is generated and stored for each vehicle. can do.
  • the controller 10 may generate an identifier using the vehicle identification number of the vehicle 2 to be updated as a common package identifier to be included in the identification package.
  • the controller 10 includes a value obtained by adding the vehicle identification number of the vehicle 2 to the hash value generated from the common package as a common package identifier in the identification package.
  • the vehicle 2 that has acquired the identification package is generated from the common package by subtracting the vehicle identification number of its own vehicle from the common package identifier (value obtained by adding the vehicle identification number to the hash value) included in the identification package.
  • a hash value can be calculated.
  • the software update device 1 calculates a common package identifier according to the above formula using the hash value of the common package and the VIN, and transmits the calculated common package identifier to the vehicle 2 . Then, the vehicle 2 uses the common package identifier and VIN to calculate the hash value of the common package according to the above formula.
  • the controller 10 may generate an identification package including additional data in addition to the vehicle identification number and the common package identifier.
  • the additional data included in the identification package is, for example, the location data of the common package and the decompression password of the common package.
  • the common package location data is, for example, the URL of the server in which the common package is stored. This ensures that the vehicle-mounted terminal device 20 that has acquired the identification package acquires the common package from an appropriate storage server.
  • the common package decompression password is a password for decompressing the compressed common package.
  • the controller 10 may also include in the identity package a common key for encryption and decryption of data contained in the identity package.
  • the common key may be, for example, a vehicle identification number.
  • the key for encrypting and decrypting data is not limited to a common key, and may be a public key used in public key cryptography.
  • the controller 10 may include a password for downloading the common package or a password used for encrypting the communication path between the software update device 1 and the in-vehicle terminal device 20 in the identification package.
  • the controller 10 may encrypt the identification package and transmit the encrypted identification package to the vehicle-mounted terminal device 20 .
  • the in-vehicle terminal device 20 obtains the data contained in the identification package by decrypting the encrypted identification package. This can increase the cyber security of the identification package.
  • the controller 10 receives from the in-vehicle terminal device 20 a request signal requesting acquisition of the common package.
  • the controller 10 transmits to the in-vehicle terminal device 20 the common package including the common package identifier specified in the request signal.
  • a common package is a package that includes update data and a common package identifier.
  • a common package is a package generated for each software update campaign. That is, when there are multiple vehicles to be updated in the campaign, the common package is a package common to the multiple vehicles to be updated.
  • the controller 10 prepares a common package that is commonly used by the 1 million vehicles, and distributes the same package to each vehicle. send a common package of Also, the common package identifier is the same as the common package identifier included in the identification package.
  • the controller 10 generates a common package when update data is input from a software supplier. The controller 10 stores the generated common package in the storage device 11 .
  • the common package may include additional data in addition to update data.
  • the accompanying data includes, for example, the software version and electronic signature of the updated software.
  • the electronic signature is for proving the integrity of the update data, that is, proof that there is no falsification, garbled characters, or the like.
  • An electronic signature is, for example, an encrypted hash value calculated from update data.
  • FIG. 4A is a diagram showing an example of a common package.
  • the common package (PKG03.zip) includes a common package identifier in addition to a file (CONTENTS.zip) containing update data (ECM_v3.bin) and an electronic signature (Signature.txt).
  • the common package identifier is a hash value calculated from a file (CONTENTS.zip) in which the update data (ECM_v3.bin) and electronic signature (Signature.txt) are combined in an archive format such as zip or tar. Also, the common package identifier may be a predetermined value, such as a campaign ID. Further, as shown in FIG.
  • the common package identifier when the software of a plurality of ECUs is updated in a campaign, the common package identifier includes a plurality of update data (update data 1, update data 2, and update data 3), It may be generated by calculating a hash value from a file (CONTENTS.zip) in which the electronic signatures (electronic signature 1, electronic signature 2, and electronic signature 3) of each of the plurality of update data are combined. Further, when the identifier of the common package is a predetermined value such as a campaign ID, the common package includes a file (CONTENTS.zip) in which a plurality of update data and electronic signatures for each of the plurality of update data are combined; A campaign ID may be included as an identifier of the common package corresponding to the file.
  • the common package may not include a common package identifier.
  • the in-vehicle terminal device 20 that has received the common package calculates a hash value from the common package using a hash function, and obtains the calculated hash value as the common package identifier.
  • FIG. 5A is a diagram showing an example of a common package.
  • the common package is shown as a file (PKG03.zip) containing update data (ECM_v3.bin) and electronic signature (Signature.txt). Also, in FIG.
  • the common package when there is a plurality of update data in the campaign, the common package includes a plurality of update data (update data 1, update data 2, and update data 3) and an electronic signature corresponding to each of the update data (electronic signature 1, electronic signature 2, and electronic signature 3) as a file (PKG03.zip). Also in this case, the vehicle-mounted terminal device 20 that has received the common package calculates a hash value from the common package using a hash function, and obtains the calculated hash value as the common package identifier.
  • the storage device 11 stores various data related to software update of the ECU of the vehicle 2 . Specifically, the storage device 11 stores a common package. The storage device 11 also stores a database that manages software update lists. Also, the storage device 11 may store an identification package.
  • the communication device 12 is connected to the in-vehicle communication device 22 of the in-vehicle terminal device 20 via the communication network 3, and transmits and receives various data. For example, the communication device 12 transmits the identification package and common package generated by the controller 10 to the vehicle-mounted communication device 22 .
  • the input device 13 receives data input by software suppliers. Specifically, the input device 13 receives input of update data for the software of the vehicle 2 .
  • the input device 13 receives incidental data including vehicle identification information of a target vehicle to be updated, a target ECU to be updated, and a software version of software after update.
  • the input device 13 outputs the update data to the controller 10 upon receiving the input of the update data.
  • the in-vehicle terminal device 20 controls various ECUs mounted in the vehicle, and when receiving update data for the software of the ECU from the software update device 1, uses the update data to update the software of the ECU to be updated. do.
  • the in-vehicle terminal device 20 includes a CGW (Central Gateway) 21, an in-vehicle communication device 22, an ECU 23, and an in-vehicle storage device 24. Data communication is performed between the CGW 21 and the in-vehicle communication device 22 and between the CGW 21 and the ECU 23. connected as possible.
  • CGW Central Gateway
  • the CGW 21 is a vehicle gateway device having a data relay function, and when update data is acquired from the vehicle-mounted communication device 22, it distributes the update data to the ECU to be updated. First, the CGW 21 determines whether or not the vehicle identification number included in the identification package received from the software update device 1 matches the vehicle identification number of its own vehicle. Specifically, the CGW 21 first acquires the vehicle identification number of its own vehicle from the in-vehicle storage device 24 . Next, when the CGW 21 receives the identification package from the software update device 1 via the in-vehicle communication device 22, the CGW 21 acquires the vehicle identification number from the identification package, Compare with identification number.
  • the CGW 21 determines whether or not the vehicle identification number included in the identification package matches the vehicle identification number of its own vehicle.
  • the CGW 21 sends the common package to the software update device 1 via the in-vehicle communication device 22. Send a request signal to request acquisition.
  • the CGW 21 acquires the common package identifier from the identification package and transmits a request signal requesting acquisition of the common package to which the common package identifier is assigned.
  • the CGW 21 compares the vehicle identification number included in the identification package with the vehicle identification number of the own vehicle to confirm that the information in the identification package is for updating the software of the own vehicle. can.
  • the CGW 21 can acquire the common package, which is data for updating the software of the own vehicle, by requesting acquisition of the common package to which the common package identifier included in the identification package is assigned.
  • the CGW 21 Upon receiving the common package from the software update device 1, the CGW 21 acquires a common package identifier from the common package. For example, when the common package identifier is stored in the common package in the software update device 1, the CGW 21 acquires the common package identifier stored in the common package. Also, when the common package identifier is generated by calculating a hash value from the common package, the CGW 21 may calculate the hash value from the acquired common package to acquire the common package identifier. Next, the CGW 21 determines whether the acquired common package identifier matches the common package identifier included in the identification package. Then, when it is determined that the common package identifier obtained from the common package matches the common package identifier included in the identified package, the CGW 21 extracts update data from the common package.
  • the CGW 21 transmits the extracted update data to the update target ECU, and uses the update data to update the software of the update target ECU.
  • the CGW 21 compares the common package identifier acquired from the common package with the common package identifier included in the identification package, so that the common package transmitted from the software updating device 1 is the requested common package. You can confirm that it is a package. Thereby, the CGW 21 can prevent software from being updated unintended by the software supplier.
  • the CGW 21 aggregates the software versions of the software of the multiple ECUs 23 . Specifically, when the ignition power source of the vehicle 2 is turned on, the CGW 21 aggregates the software versions of the ECUs at that time. In addition, the CGW 21 aggregates the software versions of the ECUs at that time at regular intervals. The CGW 21 transmits the integrated software version of each ECU to the software update device 1 via the in-vehicle communication device 22 .
  • the in-vehicle communication device 22 is an in-vehicle communication device that performs data communication with the software update device 1 via the communication network 3.
  • the received information is received. It transfers the identified package and common package to the CGW 21 .
  • the in-vehicle communication device 22 may use different communication paths depending on the type of data to be received. Specifically, when receiving the update data from the software update device 1, the in-vehicle communication device 22 receives the update data via the first communication path for providing the software. When receiving data other than the update data, the in-vehicle communication device 22 transmits the data other than the update data via the second communication path for providing the data other than the software update data.
  • the in-vehicle communication device 22 receives the map data via the second communication path.
  • the first communication path is a communication path with a higher security level than the second communication path.
  • the security degree is a value that is set higher for a communication route that is evaluated to have a lower security risk in the security risk analysis of the communication route.
  • the ECU 23 includes, for example, a body system ECU, a driving system ECU, and an information system ECU.
  • the body system ECU controls body systems such as a door ECU that controls door locking/unlocking, a meter ECU that controls meter display, an air conditioner ECU that controls the operation of the air conditioner, and a window ECU that controls the opening and closing of windows. It is an ECU that performs
  • the traveling system ECU is an ECU that controls the traveling system, such as an engine ECU that controls the driving of the engine, a brake ECU that controls the driving of the brake, and a power steering ECU that controls the driving of the power steering.
  • the information system ECU is an ECU that controls information systems such as a navigation ECU that controls a navigation system and an audio ECU that controls audio equipment.
  • the type of ECU 23 is not limited to the illustrated configuration.
  • ECU23 will update software using the said update data, if update data are acquired from CGW21.
  • ECU23 manages the software version of software, and transmits a software version according to the request signal from CGW21.
  • the in-vehicle storage device 24 stores various data.
  • the in-vehicle storage device 24 stores the vehicle identification number assigned to the own vehicle.
  • FIG. 6 shows a control flow for executing the software update control process in the software update device 1 .
  • the control flow starts from step S1.
  • step S1 the software update device 1 accepts update data input by the software supplier.
  • step S2 the software update device 1 creates a software update list based on the update data acquired in step S1.
  • the software update device 1 generates a common package based on the update data obtained at step S1. Specifically, the software update device 1 generates a common package including update data and a common package identifier. The software update device 1 may generate a common package that includes update data and does not include a common package identifier.
  • step S ⁇ b>4 the software update device 1 receives the vehicle identification number of the vehicle 2 and the software version of the ECU of the vehicle 2 from the in-vehicle terminal device 20 .
  • step S5 the software update device 1 determines whether software update is necessary.
  • the software update device 1 compares the vehicle identification number acquired from the in-vehicle terminal device 20 with the vehicle identification number of the update target vehicle stored in the software update list. Then, the software update device 1 determines whether or not the software version of the ECU of the vehicle with the matching vehicle identification number matches the software version of the updated software. If it is determined that the software needs to be updated, the software update device 1 proceeds to step S6. If it is not determined that the software needs to be updated, the software update device 1 terminates the control flow. Further, the control of steps S4 to S5 is executed for all vehicles under management.
  • step S6 the software update device 1 generates an identification package for each vehicle determined to require software update in step S5.
  • the identification package includes the vehicle identification number of the vehicle 2 whose software needs to be updated in step S5 and the common package identifier of the common package generated in step S3.
  • the software update device 1 transmits the identification package generated at step S ⁇ b>6 to the in-vehicle terminal device 20 .
  • the software update device 1 transmits an identification package including the vehicle identification number associated with the target vehicle to which the software is to be updated, to the in-vehicle terminal device 20 of the target vehicle.
  • step S ⁇ b>8 the software update device 1 receives a request signal requesting acquisition of the common package from the in-vehicle terminal device 20 .
  • step S ⁇ b>9 the software update device 1 searches for a common package to which the common package identifier requested by the in-vehicle terminal device 20 is assigned. Specifically, according to the requested common package identifier, the software update device 1 searches for a common package to which the common package identifier is assigned from among the plurality of common packages stored in the storage device 11 .
  • step S10 the software update device 1 transmits the common package retrieved in step S9 to the in-vehicle terminal device 20.
  • FIG. 7 shows a control flow for executing control processing for updating software in the in-vehicle terminal device 20 .
  • the in-vehicle terminal device 20 starts the control flow from step S21 when the ignition power is turned on.
  • the in-vehicle terminal device 20 may start the control flow from step S21 at regular intervals.
  • the CGW 21 acquires the vehicle identification number of the own vehicle from the onboard storage device 24.
  • the CGW 21 aggregates software versions of the ECU 23 of the vehicle 2 . Specifically, the CGW 21 acquires the software versions of the ECUs from all the ECUs 23 mounted on the vehicle 2 .
  • the CGW 21 transmits the vehicle identification number obtained in step S21 and the software version obtained in step S22 to the software update device 1.
  • the CGW 21 determines whether or not the identification package has been received from the software update device 1. FIG. When it is determined that the identification package has been received, the CGW 21 proceeds to step S25.
  • step S25 the CGW 21 determines whether or not the vehicle identification numbers match. That is, the CGW 21 compares the vehicle identification number included in the identification package with the vehicle identification number of its own vehicle to determine whether the vehicle identification numbers match. When it is determined that the vehicle identification numbers match, the CGW 21 proceeds to step S26. If it is determined that the vehicle identification numbers do not match, the CGW 21 terminates the control flow.
  • the CGW 21 requests a common package. Specifically, the CGW 21 acquires the common package identifier from the identification package received in step S24, and transmits to the software updating device 1 a request signal requesting acquisition of the common package to which the common package identifier is assigned. .
  • the CGW 21 receives the common package via the in-vehicle communication device 22 .
  • the CGW 21 determines whether or not the common package identifiers match. That is, the CGW 21 compares the common package identifier included in the identification package received in step S24 with the common package identifier acquired from the common package received in step S27 to determine whether the common package identifiers match.
  • step S29 the CGW 21 updates the software. Specifically, the in-vehicle terminal device 20 acquires the update data from the common package received in step S27, and updates the software of the ECU of the vehicle 2 using the update data.
  • FIG. 8 is a sequence diagram of software update control processing in the software update system.
  • the control flow starts from step S31.
  • step S31 the software update device 1 accepts update data input by the software supplier.
  • step S32 the software update device 1 creates a software update list based on the update data acquired in step S1.
  • the software update device 1 generates a common package based on the update data acquired at step S31.
  • step S34 the vehicle-mounted terminal device 20 acquires the vehicle identification number of the own vehicle and the software version of each ECU of the own vehicle.
  • step S ⁇ b>35 the vehicle-mounted terminal device 20 transmits the vehicle identification number and the software version acquired in step S ⁇ b>34 to the software update device 1 .
  • step S36 the software update device 1 determines whether or not the software of the vehicle 2 needs to be updated based on the vehicle identification number received from the in-vehicle terminal device 20 and the software version. If it is determined that software update is necessary, the software update device 1 proceeds to step S37. If it is determined that software update is not necessary, the software update device 1 ends the control flow. Further, the control of steps S34 to S36 is executed for all vehicles under management. For example, when the ignition power source of the vehicle is turned on, or at regular intervals, the control of steps S4 to S6 is executed.
  • step S37 the software update device 1 generates an identification package for each vehicle 2 determined to require software update in step S36.
  • the software update device 1 transmits the identification package generated at step S ⁇ b>37 to the vehicle-mounted terminal device 20 .
  • step S39 the vehicle-mounted terminal device 20 determines whether or not the vehicle identification number included in the identification package transmitted in step S38 matches the vehicle identification number of its own vehicle. If it is determined that the vehicle identification numbers match, the in-vehicle terminal device 20 proceeds to step S40. If it is determined that the vehicle identification numbers do not match, the in-vehicle terminal device 20 terminates the control flow.
  • step S40 the vehicle-mounted terminal device 20 transmits a request signal requesting acquisition of the common package to the software update device 1.
  • step S41 the software update device 1 searches for the common package requested by the in-vehicle terminal device 20 in step S40.
  • step S42 the software update device 1 transmits the common package retrieved in step S41 to the in-vehicle terminal device 20.
  • step S43 the vehicle-mounted terminal device 20 determines whether the common package identifier included in the identification package transmitted in step S38 matches the common package identifier acquired from the common package transmitted in step S42. judge. If it is determined that the common package identifiers match, the in-vehicle terminal device 20 proceeds to step S44. If it is determined that the common package identifiers do not match, the in-vehicle terminal device 20 terminates the control flow.
  • step S ⁇ b>44 the vehicle-mounted terminal device 20 updates the software of the vehicle 2 . Further, in this embodiment, the control from steps S37 to S44 is executed for all vehicles determined to require software update.
  • the software update device is provided outside the vehicle and updates the software using update data for the software of the vehicle.
  • An identification package including the associated vehicle identification information is transmitted, and a common package to which the common package identification information included in the identification package is assigned is transmitted to the target vehicle in response to a request from the target vehicle. This reduces the processing load and storage capacity of the server in the process of updating the software of the vehicle.
  • common package identification information common to the plurality of target vehicles and vehicle identification information assigned to each of the plurality of target vehicles are added to each of the plurality of target vehicles. Generate an identity package containing Accordingly, even if there are a plurality of vehicles whose software is to be updated, the identification information is generated for each vehicle, so the storage capacity can be reduced.
  • the same common package is transmitted to a plurality of target vehicles.
  • the same common package is transmitted, so the storage capacity can be reduced.
  • an identification package is generated that includes a hash value generated from a common package using a hash function as common package identification information.
  • the data size of the identification package can be made smaller than when the entire update data is included.
  • common package identification information is generated based on the vehicle identification information of the target vehicle, and an identification package including the generated common package identification information and the vehicle identification information is generated.
  • the target vehicle can acquire the identification information for identifying the common package, so that the strength of cyber security can be enhanced.
  • an in-vehicle terminal device for a vehicle that acquires update data of software to be updated from a server provided outside the vehicle and updates the software of the vehicle, and includes the update data.
  • An identification package stored in a server containing common package identification information assigned to each common package stored in the server and vehicle identification information for identifying a vehicle associated with the common package identification information. receive from the server, acquire common package identification information from the received identification package, receive from the server the common package to which the acquired common package identification information is assigned, and update data contained in the received common package to update the vehicle's software. This reduces the processing load and storage capacity of the server in the process of updating the software of the vehicle.
  • the vehicle identification information included in the received identification package matches the vehicle identification information assigned to the vehicle. determines whether or not the common package identification information contained in the identification package matches the common package identification information acquired from the common package, and if it is determined that the common package identification information matches, the software is Update. Thereby, the vehicle can guarantee that the update data is data for updating the software of the own vehicle.
  • the vehicle determines whether or not the vehicle identification information included in the received identification package matches the vehicle identification information assigned to the vehicle. sends a request signal requesting acquisition of a common package to the server, and receives the common package from the server as a response signal to the request signal. Thereby, the vehicle can guarantee that the update data is data for updating the software of the own vehicle.
  • update data when update data is acquired from the server, the update data is acquired from the server via the first communication path, and the first communication path is used for supplying data other than the update data.
  • Security level is higher than 2 communication paths. As a result, the cyber security strength of update data can be enhanced.
  • a software update system includes an in-vehicle terminal device mounted in a vehicle and a software update device provided outside the vehicle, and updates software using update data for software in the vehicle.
  • a software updater stores a common package containing at least update data, and an identification package containing common package identification information assigned to the common package and vehicle identification information associated with the common package identification information and identifying a vehicle.
  • An identification package including vehicle identification information associated with the vehicle is transmitted to a vehicle whose software is to be updated, and common package identification information included in the identification package is transmitted in response to a request from the vehicle.
  • the vehicle receives the identification package containing the vehicle identification information of the vehicle from the software update device, obtains the common package identification information from the received identification package, and obtains A common package to which common package identification information is assigned is received from the software update device, and software of the vehicle is updated using update data included in the received common package. This reduces the processing load and storage capacity of the server in the process of updating the software of the vehicle.

Landscapes

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

Abstract

コントローラ(10)と、記憶装置(11)とを備え、車両(2)のソフトウェアの更新データを用いて、ソフトウェアを更新するソフトウェア更新装置(1)であって、記憶装置(11)は、少なくとも更新データを含む共通パッケージと、共通パッケージに割り当てられた共通パッケージ識別情報と共通パッケージ識別情報に対応づけられ車両を識別する車両識別情報とを含む識別パッケージとを記憶し、コントローラ(10)は、ソフトウェアの更新対象となる対象車両に、対象車両に対応付けられた車両識別情報を含む識別パッケージを送信し、対象車両からの要求に応じて、識別パッケージに含まれる共通パッケージ識別情報が割り当てられた共通パッケージを対象車両に送信する。

Description

ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム
 本発明は、ソフトウェア更新装置、車載端末装置及びソフトウェア更新システムに関するものである。
 車両の車載端末装置のソフトウェアをメンテナンスするメンテナンスシステムにおいて、情報センタが、車両側の保有ソフト/ハード情報に基づいて、バージョンアップ候補となる対象ソフトウェアを選択し、選択された対象ソフトウェアを車両に送信する技術が知られている(特許文献1)。
 特許文献1に係る技術では、車両側で、対象ソフトウェアによって実現される機能を示すデモ画像がユーザに表示され、ユーザが対象ソフトウェアをバージョンアップするか否かを選択する。そして、ユーザがバージョンアップをすることを選択した場合に、車両の車載端末装置は情報センタに対象ソフトウェアの送信を要求し、情報センタは対象ソフトウェアを車載端末装置に送信する。
特開平11-027749号公報
 特許文献1の技術では、情報センタとして機能するサーバが対象ソフトウェアを記憶し、車載端末装置に対象ソフトウェアを送信する。更新の対象となるソフトウェアが車両ごとに準備される場合には、各車両の車載端末装置に記憶されたソフトウェアを更新するためにサーバが実行する処理の工程数、及びサーバの記憶装置の容量が増大するという問題がある。
 本発明が解決しようとする課題は、車両のソフトウェアを更新する処理において、サーバの処理負荷及び記憶容量を軽減させるソフトウェア更新装置、車載端末装置及びソフトウェア更新システムを提供することである。
 本発明は、車両のソフトウェアの更新データを用いて、ソフトウェアを更新するソフトウェア更新装置であって、少なくとも更新データを含む共通パッケージと、共通パッケージに割り当てられた共通パッケージ識別情報と共通パッケージ識別情報に対応づけられ車両を識別する車両識別情報とを含む識別パッケージとを記憶する記憶装置を備え、ソフトウェアの更新対象となる対象車両に、対象車両に対応付けられた車両識別情報を含む識別パッケージを送信し、対象車両からの要求に応じて、識別パッケージに含まれる共通パッケージ識別情報が割り当てられた共通パッケージを対象車両に送信することによって上記課題を解決する。
 本発明によれば、車両のソフトウェアを更新する処理において、サーバの処理負荷及び記憶容量を軽減させる。
図1は、本実施形態にかかるソフトウェア更新システムの構成の一例を示す図である。 図2は、本実施形態にかかるソフトウェア更新リストの一例である。 図3Aは、共通パッケージと識別パッケージの関係を示す図である。 図3Bは、本実施形態にかかる識別パッケージを示す一例である。 図4Aは、本実施形態にかかる共通パッケージを示す一例である。 図4Bは、本実施形態にかかる共通パッケージを示す一例である。 図5Aは、本実施形態にかかる共通パッケージを示す一例である。 図5Bは、本実施形態にかかる共通パッケージを示す一例である。 図6は、本実施形態にかかるソフトウェア更新装置の制御フローを示す一例である。 図7は、本実施形態にかかる車載端末装置の制御フローを示す一例である。 図8は、本実施形態のソフトウェア更新システムにおける制御の流れを示すシーケンス図である。
 本発明に係るシステムの一実施形態を図面に基づいて説明する。本実施形態に係る車両のECU(Electronic Control Unit)のソフトウェアを更新するソフトウェア更新システムの構成を、図1を用いて説明する。図1は、本実施形態におけるソフトウェア更新装置1と、車両2に搭載された車載端末装置20と、通信ネットワーク3と、を備えるソフトウェア更新システム100の一例を示すブロック図である。ソフトウェア更新システム100は、車両2に搭載されているECUのソフトウェアをOTA(Over The Air)により更新することができるFOTA(Firmware Over The Air)システムである。ソフトウェア更新装置1と車載端末装置20は、通信ネットワーク3を介してお互いにデータの送受信が可能である。ソフトウェア更新装置1は、ソフトウェアの供給者により、ソフトウェアの書き換えを行うための更新データの入力があると、更新データを記憶する。そして、ソフトウェア更新装置1は、車載端末装置20からソフトウェアの更新データの要求があると、通信ネットワーク3を介して、要求があった車載端末装置20に、更新データを含む配信パッケージを送信する。車載端末装置20は、ソフトウェア更新装置1から配信パッケージを受信すると、配信パッケージに含まれる更新データを用いて、更新対象となるECUのソフトウェアを書き換えて更新する。通信ネットワーク3は、例えば4G回線等による移動体通信ネットワークやインターネット等を含んで構成される。ソフトウェアの更新データは、車両2のECUのソフトウェアを更新するための更新用プログラムデータであって、ソフトウェアの供給者から提供される。更新データは、更新後のソフトウェアの全体に相当する全データであってもよいし、更新前のソフトウェアと更新後のソフトウェアとの差分に相当する差分データであってもよい。また、更新データは周知のデータ圧縮技術により圧縮されていても良い。
 OTAによるソフトウェア更新においては、サイバーセキュリティの観点から、ソフトウェアの供給者が意図しないソフトウェアの更新が行われることを防止するために、車両が受信したソフトウェアの更新データが自車両のソフトウェア更新のためのデータであることを保証してもよい。更新データが自車両のソフトウェア更新のためのデータであることを保証する方法としては、更新データと、更新対象となる車両を識別するための車両識別情報とを対応づけて配信パッケージに含めて、当該配信パッケージを更新対象となる車両に送信するという方法がある。この場合、配信パッケージを受信した車両は、配信パッケージに含まれる車両識別番号と、自車の車両識別番号とを比較することで、配信パッケージに含まれる更新データが自車両のソフトウェア更新のためのデータであることを確認することができる。しかしながら、配信パッケージのデータ構造は、車両識別情報と更新データとを対応させて格納する構造であるため、対象車両が複数ある場合には、車両数分の車両識別情報があり、それぞれの車両識別情報に対応させて更新データを格納することになるため、車両の数の配信パッケージが必要になる。そして、更新データは、車両識別情報と比べてデータサイズが大きいため、更新データを含む配信パッケージを車両数分準備して記憶装置に保存することになると、記憶容量が増大してしまう。また、対象車両全てのソフトウェア更新を行うために必要な処理工数も増大する。
 これに対して、本実施形態では、ソフトウェア更新装置1は、配信パッケージを2種類のパッケージに分けて車載端末装置20に送信する。具体的には、ソフトウェア更新装置1は、更新データを含む共通パッケージを複数の車両間で共通して使用する。さらに、ソフトウェア更新装置1は、共通パッケージが自車両のソフトウェア更新のためのデータであることを判断するための情報として、車両識別情報と共通パッケージ識別情報を含む識別パッケージを更新対象となる車両ごとに準備する。すなわち、本実施形態では、データサイズの大きい更新データを含むパッケージを車両数に応じて準備するのではなく、データサイズの大きい当該パッケージを、更新対象となる全車両に共通するデータとして準備して、データサイズの小さい車両識別情報と共通パッケージ識別情報を含むパッケージを車両の数に応じて準備する。これにより、車両2が、車両識別番号を含むパッケージを用いて、更新データが自車両のソフトウェア更新のためのデータであることを確認することで、ソフトウェア更新のための処理工数及び記憶容量を低減しつつ、サイバーセキュリティを高めることができる。以下、より詳細に説明する。
 ソフトウェア更新装置1は、ソフトウェアの供給者等から提供されるソフトウェアの更新データを管理し、更新対象となる車両に更新データを送信するサーバである。ソフトウェア更新装置1は、コントローラ10と、記憶装置11と、通信装置12と、入力装置13とを有し、相互にデータ通信可能に構成されている。本実施形態におけるコントローラ10は、ハードウェア及びソフトウェアを有するコンピュータを備えており、このコンピュータはプログラムを格納したROM(Read Only Memory)と、ROMに格納されたプログラムを実行するCPU(Central Processing Unit)と、アクセス可能な記憶装置として機能するRAM(Random Access Memory)を含むものである。
 コントローラ10は、ソフトウェア更新リストを管理していて、ソフトウェアの供給者からソフトウェアの更新データの入力があると、更新データを管理するソフトウェア更新リストを更新する。また、コントローラ10は、入力された更新データを含む共通パッケージ(詳細は後述する)を生成して、生成された共通パッケージを記憶装置11に格納する。ソフトウェア更新リストには、例えば、図2に示すように、ソフトウェア更新のキャンペーンごとに、キャンペーンIDと、対象VINと、対象ECUと、更新後のソフトウェアのソフトウェアバージョンと、共通パッケージへのリンクと、共通パッケージ識別子とが管理されている。更新データの入力があると、入力された更新データのキャンペーンごとに、更新データが管理される。キャンペーンとは、入力された更新データに対して、更新対象となる1以上の車両の情報等を紐付けして管理するための情報の単位を意味する。対象VINは、更新対象となる車両の車両識別番号(Vehicle Identification Number、略してVIN)である。対象ECUは、ソフトウェア更新対象となるECUである。ソフトウェア更新のキャンペーンにおいて、対象ECUがひとつのECUである場合に限らず、対象ECUが複数ある場合には、対象ECUには、複数のECUが入力されることとしてもよい。ソフトウェアバージョンは、車載端末装置20に配信される更新後のソフトウェアのバージョンである。コントローラ10は、ソフトウェアの供給者から更新データの入力があると、当該ソフトウェア更新のキャンペーンに対して、キャンペーンIDを付与する。キャンペーンIDは、ソフトウェア更新のキャンペーンを識別するために付与される識別番号である。また、コントローラ10は、生成した共通パッケージを記憶装置11に格納して、格納先のリンクを共通パッケージへのリンクとしてソフトウェア更新リストに入力する。共通パッケージ識別子は、共通パッケージを識別するための識別情報である。コントローラ10は、共通パッケージごとに生成された共通パッケージ識別子をソフトウェア更新リストに入力する。コントローラ10は、生成されたソフトウェア更新リストを記憶装置11に格納する。
 コントローラ10は、管理している全車両を対象として、ソフトウェアの更新が必要であるか否かの判定を行う。具体的には、まず、コントローラ10は、車両ごとに、当該車両の車両識別番号と、ソフトウェアの更新対象として管理されている対象VINとを比較し、車両識別番号が一致するか否かを判定する。車両識別番号が一致する場合には、コントローラ10は、車両識別番号が一致する車両の現在のECUのソフトウェアバージョンと、更新後のソフトウェアのソフトウェアバージョンとを比較する。そして、コントローラ10は、車両の現在のECUのソフトウェアバージョンが、更新後のソフトウェアのソフトウェアバージョンよりも前のソフトウェアバージョンである場合には、ソフトウェア更新が必要であると判定する。
 コントローラ10は、ソフトウェア更新が必要であると判定された場合には、ソフトウェア更新が必要であると判定された車両ごとに、識別パッケージを生成して、当該車両の車載端末装置20に、生成された識別パッケージを送信する。対象車両が複数ある場合には、コントローラ10は、複数の対象車両ごとに、それぞれ異なる識別パッケージを生成する。識別パッケージは、対象車両ごとに、対象車両に対応する車両識別情報と、共通パッケージに割り当てられ、共通パッケージを識別するための共通パッケージ識別子とを含む。識別パッケージは、共通パッケージが自車両のソフトウェア更新のためのデータであることを車載端末装置20で判断するためのデータである。例えば、識別パッケージは、車両識別情報として、車両識別番号(VIN)を含む。図3Aは、識別パッケージと共通パッケージの関係を示す図である。共通パッケージは、後述するとおり、更新データと共通パッケージ識別子とを含む。更新対象となる車両が車両Aと車両Bと車両Cである場合には、識別パッケージとして、車両Aの識別パッケージと、車両Bの識別パッケージと、車両Cの識別パッケージが生成される。それぞれの識別パッケージは、それぞれの車両のVINを含むとともに、複数の車両に共通する同一の共通パッケージ識別子を含む。それぞれの車両のVINは、共通パッケージ識別子に対応づけられている。具体的には、それぞれの車両のVINは、共通パッケージに含まれる更新データを用いたソフトウェア更新の対象となる車両のVINである。識別パッケージに含まれる共通パッケージ識別子と共通パッケージに含まれる共通パッケージ識別子は同一のものである。また、更新対象となる車両が車種によって識別される場合には、車両識別情報は、車両の車種の情報であってもよい。本実施形態では、更新データが自車両のソフトウェア更新のためのデータであることを確認できるように、識別パッケージを取得した車載端末装置20が、識別パッケージに含まれる車両識別番号と、自車の車両識別番号を比較し、識別パッケージに含まれる車両識別番号と自車の車両識別番号が一致するか否かを判定する。車両識別番号が一致すれば、車載端末装置20は、識別パッケージに含まれる共通パッケージ識別子に対応する共通パッケージが自車向けのパッケージであることを確認することができる。
 また、共通パッケージ識別子は、共通パッケージを識別する識別情報であり、車載端末装置20に送信された共通パッケージが、車載端末装置20が要求したデータであることを車載端末装置20で証明するためのものである。共通パッケージ識別子は、例えば、ハッシュ関数を用いて共通パッケージから生成されるハッシュ値である。具体的には、共通パッケージ識別子は、共通パッケージに含まれるデータから生成される。例えば、共通パッケージ識別子は、更新データからハッシュ値を計算して生成される。本実施形態では、ハッシュ値を計算するための共通の計算式が、ソフトウェア更新装置1と車載端末装置20に実装される。そして、ソフトウェア更新装置1と車載端末装置20は、別々にハッシュ値を算出する。ハッシュ値の計算は、例えば、チェックサム、CRC、ND5、SHA-1等、各種計算式を用いて実行される。また、共通パッケージ識別子は、所定の値、例えば、キャンペーンに付されるキャンペーンIDであってもよい。本実施形態では、識別パッケージには、更新データ本体を含まない。識別パッケージに含まれるVINのデータサイズは17バイトであり、VINは、データサイズの小さいデータである。すなわち、識別パッケージは、サイズの大きいデータを含まず、サイズが小さいデータを含む。そのため、ソフトウェア本体と対象車両を識別する車両識別情報とを含むパッケージを車両ごとに生成して格納する場合よりも、コントローラ10におけるソフトウェア更新に必要な処理工数、及び記憶装置11の記憶容量を軽減することができる。
 また、コントローラ10は、識別パッケージに含める共通パッケージ識別子として、更新対象となる車両2の車両識別番号を用いた識別子を生成してもよい。例えば、コントローラ10は、共通パッケージから生成されたハッシュ値に車両2の車両識別番号を加算した値を共通パッケージ識別子として識別パッケージに含める。この場合、識別パッケージを取得した車両2は、識別パッケージに含まれる共通パッケージ識別子(ハッシュ値に車両識別番号を加算した値)から自車の車両識別番号を減算することで、共通パッケージから生成されたハッシュ値を算出することができる。また、コントローラ10は、“共通パッケージ識別子”=f(共通パッケージのハッシュ値,VIN)であり、かつ、“共通パッケージのハッシュ値=g(“共通パッケージ識別子”,VIN)”となる演算式を用いてもよい。ソフトウェア更新装置1が、共通パッケージのハッシュ値とVINを用いて上記計算式により共通パッケージ識別子を計算して、計算された共通パッケージ識別子を車両2に送信する。そして、車両2は、共通パッケージ識別子とVINを用いて上記計算式により共通パッケージのハッシュ値を計算する。
 また、コントローラ10は、車両識別番号と共通パッケージ識別子の他に、付帯データを含んで識別パッケージを生成してもよい。図3Bに示されるように、識別パッケージに含まれる付帯データは、例えば、共通パッケージのロケーションデータや共通パッケージの解凍用パスワードである。共通パッケージのロケーションデータは、例えば、共通パッケージが格納されているサーバのURLである。これにより、識別パッケージを取得した車載端末装置20は、適切な保管サーバから共通パッケージを取得することを保証できる。共通パッケージの解凍用パスワードは、圧縮された共通パッケージを解凍するためのパスワードである。また、コントローラ10は、識別パッケージに、識別パッケージに含まれるデータの暗号化及び復号化のための共通鍵を含んでもよい。共通鍵は、例えば、車両識別番号を用いることとしてもよい。また、データの暗号化及び復号化のための鍵は、共通鍵に限らず、公開鍵暗号方式で使用される公開鍵であってもよい。また、コントローラ10は、共通パッケージをダウンロードするためのパスワード、又は、ソフトウェア更新装置1と車載端末装置20との間の通信経路の暗号化に用いられるパスワードを識別パッケージに含んでもよい。また、コントローラ10は、識別パッケージを暗号化し、暗号化した識別パッケージを車載端末装置20に送信することとしてもよい。車載端末装置20は、暗号化された識別パッケージを復号することで、識別パッケージに含まれるデータを取得する。これにより、識別パッケージのサイバーセキュリティを高めることができる。
 また、コントローラ10は、識別パッケージを車載端末装置20に送信した後、車載端末装置20から共通パッケージの取得を要求する要求信号を受信する。コントローラ10は、車載端末装置20から要求信号を受信した場合には、要求信号において指定された共通パッケージ識別子を含む共通パッケージを車載端末装置20に送信する。共通パッケージは、更新データと共通パッケージ識別子とを含むパッケージである。共通パッケージは、ソフトウェア更新のキャンペーンごとに生成されるパッケージである。すなわち、キャンペーンで更新対象となる車両が複数ある場合に、共通パッケージは、更新対象となる複数の車両に共通するパッケージである。例えば、キャンペーンにおいて、更新データの適用対象となる車両が100万台あったとしても、コントローラ10は、100万台の車両が共通して使用する共通パッケージを準備して、それぞれの車両に、同一の共通パッケージを送信する。また、共通パッケージ識別子は、識別パッケージに含まれている共通パッケージ識別子と同一のものである。本実施形態では、コントローラ10は、ソフトウェアの供給者から更新データの入力があった場合、共通パッケージを生成する。コントローラ10は、生成された共通パッケージを記憶装置11に格納する。
 共通パッケージは、更新データの他に、付帯データを含むこととしてもよい。付帯データは、例えば、更新後のソフトウェアのソフトウェアバージョンや電子署名が挙げられる。電子署名は、更新データの完全性、すなわち、改ざんや文字化け等がないことを証明するためのものである。電子署名は、例えば、更新データから計算されたハッシュ値を暗号化したものである。図4Aは、共通パッケージの一例を示す図である。図4Aでは、共通パッケージ(PKG03.zip)は、更新データ(ECM_v3.bin)と電子署名(Signature.txt)とを含むファイル(CONTENTS.zip)の他に、共通パッケージ識別子を含む。共通パッケージ識別子は、更新データ(ECM_v3.bin)と、電子署名(Signature.txt)とをzipやtar等のアーカイブフォーマットでひとつにしたファイル(CONTENTS.zip)から計算されたハッシュ値である。また、共通パッケージ識別子は、所定の値、例えば、キャンペーンIDであってもよい。また、図4Bで示されるように、キャンペーンにおいて、複数のECUのソフトウェアが更新される場合には、共通パッケージ識別子は、複数の更新データ(更新データ1、更新データ2及び更新データ3)と、複数の更新データそれぞれの電子署名(電子署名1、電子署名2及び電子署名3)とをひとつにしたファイル(CONTENTS.zip)からハッシュ値を計算して生成されてもよい。また、共通パッケージの識別子がキャンペーンID等の所定の値である場合には、共通パッケージは、複数の更新データと複数の更新データそれぞれの電子署名とをひとつにしたファイル(CONTENTS.zip)と、当該ファイルに対応する共通パッケージの識別子として、キャンペーンIDとを含んでもよい。
 また、共通パッケージは、共通パッケージ識別子を含まないこととしてもよい。この場合には、共通パッケージを受信した車載端末装置20は、ハッシュ関数を用いて共通パッケージからハッシュ値を算出して、算出されたハッシュ値を共通パッケージ識別子として取得する。図5Aは、共通パッケージの一例を示す図である。図5Aでは、共通パッケージは、更新データ(ECM_v3.bin)と、電子署名(Signature.txt)とをまとめたファイル(PKG03.zip)として示されている。また、図5Bでは、キャンペーンにおいて更新データが複数ある場合に、共通パッケージは、複数の更新データ(更新データ1、更新データ2及び更新データ3)と、更新データそれぞれに対応する電子署名(電子署名1、電子署名2及び電子署名3)とをまとめたファイル(PKG03.zip)として示されている。この場合にも、共通パッケージを受信した車載端末装置20は、ハッシュ関数を用いて共通パッケージからハッシュ値を算出して、算出されたハッシュ値を共通パッケージ識別子として取得する。
 記憶装置11は、車両2のECUのソフトウェア更新に関する各種データを記憶している。具体的には、記憶装置11は、共通パッケージを記憶する。また、記憶装置11は、ソフトウェア更新リストを管理するデータベースを記憶する。また、記憶装置11は、識別パッケージを記憶することとしてもよい。通信装置12は、通信ネットワーク3を介して、車載端末装置20の車載通信装置22と接続していて、各種データの送受信を行う。例えば、通信装置12は、コントローラ10により生成された識別パッケージや共通パッケージを車載通信装置22に送信する。入力装置13は、ソフトウェアの供給者によるデータの入力を受け付ける。具体的には、入力装置13は、車両2のソフトウェアの更新データの入力を受け付ける。また、入力装置13は、更新データとともに、更新対象となる対象車両の車両識別情報と、更新対象となる対象ECUと、更新後のソフトウェアのソフトウェアバージョンとを含む付帯データを受け付ける。入力装置13は、更新データの入力を受け付けると、更新データをコントローラ10に出力する。
 車載端末装置20は、車両に搭載された各種ECUを制御し、ソフトウェア更新装置1からECUのソフトウェアの更新データを受信した場合には、更新データを用いて、更新対象となるECUのソフトウェアを更新する。車載端末装置20は、CGW(Central Gateway)21と、車載通信装置22と、ECU23と、車載記憶装置24とを備え、CGW21と車載通信装置22との間、CGW21とECU23との間でデータ通信可能に接続されている。
 CGW21は、データ中継機能を有する車両用ゲートウェイ装置であり、車載通信装置22から更新データを取得すると、当該更新データを更新対象となるECUに配信する。まず、CGW21は、ソフトウェア更新装置1から受信された識別パッケージに含まれる車両識別番号と、自車の車両識別番号とが一致しているか否かを判定する。具体的には、CGW21は、まず、車載記憶装置24から、自車の車両識別番号を取得する。次に、CGW21は、ソフトウェア更新装置1から、車載通信装置22を介して、識別パッケージを受信すると、識別パッケージから車両識別番号を取得し、識別パッケージに含まれる車両識別番号と、自車の車両識別番号とを比較する。そして、CGW21は、識別パッケージに含まれる車両識別番号と、自車の車両識別番号とが一致しているか否かを判定する。識別パッケージに含まれる車両識別番号と、自車の車両識別番号とが一致していると判定される場合には、CGW21は、車載通信装置22を介して、ソフトウェア更新装置1に、共通パッケージの取得を要求する要求信号を送信する。具体的には、CGW21は、識別パッケージから共通パッケージ識別子を取得し、共通パッケージ識別子が割り当てられた共通パッケージの取得を要求する要求信号を送信する。以上のように、CGW21は、識別パッケージに含まれる車両識別番号と自車の車両識別番号とを比較することで、当該識別パッケージの情報が自車両のソフトウェア更新のためのものであることを確認できる。そして、CGW21は、当該識別パッケージに含まれる共通パッケージ識別子が割り当てられた共通パッケージの取得を要求することで、自車両のソフトウェア更新のためのデータである共通パッケージを取得できる。
 CGW21は、ソフトウェア更新装置1から共通パッケージを受信すると、共通パッケージから共通パッケージ識別子を取得する。例えば、ソフトウェア更新装置1において共通パッケージに共通パッケージ識別子を格納していた場合には、CGW21は、共通パッケージに格納されている共通パッケージ識別子を取得する。また、共通パッケージ識別子が、共通パッケージからハッシュ値を計算して生成されている場合には、CGW21は、取得された共通パッケージからハッシュ値を計算して共通パッケージ識別子を取得することとしてもよい。次に、CGW21は、取得された共通パッケージ識別子と、識別パッケージに含まれる共通パッケージ識別子とが一致しているか否かを判定する。そして、共通パッケージから取得された共通パッケージ識別子と、識別パッケージ内に含まれる共通パッケージ識別子とが一致していると判定される場合には、CGW21は、共通パッケージから更新データを抽出する。そして、CGW21は、更新対象となるECUに、抽出された更新データを送信し、更新データを用いて、更新対象となるECUのソフトウェアを更新する。以上のように、CGW21は、共通パッケージから取得された共通パッケージ識別子と、識別パッケージ内に含まれる共通パッケージ識別子とを比較することにより、ソフトウェア更新装置1から送信された共通パッケージが、要求した共通パッケージであることを確認することができる。これにより、CGW21は、ソフトウェアの供給者が意図しないソフトウェアの更新が行われることを防止できる。
 また、CGW21は、複数のECU23のソフトウェアのソフトウェアバージョンを集約する。具体的には、CGW21は、車両2のイグニッション電源がオンになった時に、その時点のECUのソフトウェアバージョンを集約する。また、CGW21は、一定の周期で、その時点のECUのソフトウェアバージョンを集約する。CGW21は、集約された各ECUのソフトウェアバージョンを、車載通信装置22を介してソフトウェア更新装置1に送信する。
 車載通信装置22は、ソフトウェア更新装置1との間で通信ネットワーク3を介してデータ通信を行う車載通信機であり、ソフトウェア更新装置1から、識別パッケージやソフトウェアを含む共通パッケージを受信すると、受信された識別パッケージや共通パッケージをCGW21に転送する。また、車載通信装置22は、受信するデータの種類によって、使用する通信経路を分けてもよい。具体的には、車載通信装置22は、ソフトウェア更新装置1から更新データを受信する場合には、ソフトウェアを提供するための第1通信経路を介して、更新データを受信する。また、車載通信装置22は、更新データ以外のデータを受信する場合には、ソフトウェアの更新データ以外のデータを提供するための第2通信経路を介して、更新データ以外のデータを送信する。例えば、外部の地図データ提供者が、車両で使用される地図データを車載端末装置20に提供する際には、車載通信装置22は、第2通信経路を介して、地図データを受信する。第1通信経路は、第2通信経路よりもセキュリティ度が高い通信経路である。セキュリティ度は、通信経路のセキュリティリスク分析においてセキュリティリスクが低いと評価される通信経路ほど高く設定される値である。
 ECU23は、例えば、ボディ系ECUと、走行系ECUと、情報系ECUとを含む。ボディ系ECUは、例えばドアのロック/アンロックを制御するドアECU、メータ表示を制御するメータECU、エアコンの駆動を制御するエアコンECU、ウィンドウの開閉を制御するウィンドウECU等のボディ系の制御を行うECUである。走行系ECUは、例えばエンジンの駆動を制御するエンジンECU、ブレーキの駆動を制御するブレーキECU、パワーステアリングの駆動を制御するパワーステアリングECU等の走行系の制御を行うECUである。情報系ECUは、例えばナビゲーションシステムを制御するナビゲーションECU、オーディオ機器を制御するオーディオECU等の情報系の制御を行うECUである。ECU23の種類は例示した構成に限らない。ECU23は、CGW21から更新データを取得すると、当該更新データを用いてソフトウェアを更新する。また、ECU23は、ソフトウェアのソフトウェアバージョンを管理し、CGW21からの要求信号に応じて、ソフトウェアバージョンを送信する。
 車載記憶装置24は、各種データを記憶する。本実施形態では、車載記憶装置24は、自車に割り当てられた車両識別番号を記憶する。
 次に、ソフトウェア更新装置1により実行されるソフトウェア更新の制御処理を説明する。図6は、ソフトウェア更新装置1におけるソフトウェア更新の制御処理を実行するための制御フローを示している。本実施形態では、ソフトウェアの供給者が、入力装置13に更新データを入力すると、ステップS1から制御フローを開始する。
 ステップS1では、ソフトウェア更新装置1は、ソフトウェアの供給者により入力される更新データを受け付ける。ステップS2では、ソフトウェア更新装置1は、ステップS1で取得された更新データに基づいて、ソフトウェア更新リストを作成する。ステップS3では、ソフトウェア更新装置1は、ステップS1で取得された更新データに基づいて、共通パッケージを生成する。具体的には、ソフトウェア更新装置1は、更新データと共通パッケージ識別子とを含む共通パッケージを生成する。ソフトウェア更新装置1は、更新データを含み、共通パッケージ識別子を含まない共通パッケージを生成してもよい。ステップS4では、ソフトウェア更新装置1は、車載端末装置20から、車両2の車両識別番号と車両2のECUのソフトウェアバージョンとを受信する。ステップS5では、ソフトウェア更新装置1は、ソフトウェアの更新が必要であるか否かを判定する。具体的には、ソフトウェア更新装置1は、車両ごとに、車載端末装置20から取得された車両識別番号と、ソフトウェア更新リストに記憶されている更新対象車両の車両識別番号とを比較する。そして、ソフトウェア更新装置1は、車両識別番号が一致する車両のECUのソフトウェアバージョンと、更新後のソフトウェアのソフトウェアバージョンとが一致するか否かを判定する。ソフトウェアを更新する必要があると判定される場合には、ソフトウェア更新装置1は、ステップS6に進む。ソフトウェアを更新する必要があると判定されない場合には、ソフトウェア更新装置1は、制御フローを終了する。また、ステップS4~S5の制御は、管理している全車両についてそれぞれ実行される。
 ステップS6では、ソフトウェア更新装置1は、ステップS5でソフトウェアの更新が必要と判定された車両ごとの識別パッケージを生成する。識別パッケージは、ステップS5でソフトウェアを更新する必要があると判定された車両2の車両識別番号と、ステップS3で生成された共通パッケージの共通パッケージ識別子とを含む。ステップS7では、ソフトウェア更新装置1は、ステップS6で生成された識別パッケージを車載端末装置20に送信する。具体的には、ソフトウェア更新装置1は、ソフトウェアの更新対象となる対象車両に、対象車両に対応づけられた車両識別番号を含む識別パッケージを、当該対象車両の車載端末装置20に送信する。ステップS8では、ソフトウェア更新装置1は、車載端末装置20から、共通パッケージの取得を要求する要求信号を受信する。ステップS9では、ソフトウェア更新装置1は、車載端末装置20から要求された共通パッケージ識別子が割り当てられた共通パッケージを検索する。具体的には、ソフトウェア更新装置1は、要求された共通パッケージ識別子に応じて、記憶装置11に格納されている複数の共通パッケージから、当該共通パッケージ識別子が割り当てられた共通パッケージを検索する。ステップS10では、ソフトウェア更新装置1は、ステップS9で検索された共通パッケージを車載端末装置20に送信する。ステップS10終了後、ソフトウェア更新装置1は、制御フローを終了する。また、本実施形態では、ステップS6~S10までの制御は、ソフトウェア更新が必要であると判定された全車両について実行する。
 次に、車載端末装置20により実行されるソフトウェア更新の制御処理を説明する。図7は、車載端末装置20におけるソフトウェア更新の制御処理を実行するための制御フローを示している。本実施形態では、車載端末装置20は、イグニッション電源がオンになった時に、ステップS21から制御フローを開始する。また、車載端末装置20は、一定の周期で、ステップS21から制御フローを開始してもよい。
 ステップS21では、CGW21は、車載記憶装置24から、自車の車両識別番号を取得する。ステップS22では、CGW21は、車両2のECU23のソフトウェアバージョンを集約する。具体的には、CGW21は、車両2に搭載されている全てのECU23から、当該ECUのソフトウェアバージョンを取得する。ステップS23では、CGW21は、ステップS21で取得された車両識別番号と、ステップS22で取得されたソフトウェアバージョンとをソフトウェア更新装置1に送信する。ステップS24では、CGW21は、ソフトウェア更新装置1から識別パッケージを受信したか否かを判定する。識別パッケージを受信したと判定される場合には、CGW21は、ステップS25に進む。識別パッケージを受信したと判定されない場合には、CGW21は、制御フローを終了する。ステップS25では、CGW21は、車両識別番号が一致しているか否かを判定する。すなわち、CGW21は、識別パッケージに含まれる車両識別番号と、自車の車両識別番号とを比較して、車両識別番号が一致しているか否かを判定する。車両識別番号が一致していると判定される場合には、CGW21は、ステップS26に進む。車両識別番号が一致していないと判定される場合には、CGW21は、制御フローを終了する。
 ステップS26ではCGW21は、共通パッケージを要求する。具体的には、CGW21は、ステップS24で受信した識別パッケージから、共通パッケージ識別子を取得して、当該共通パッケージ識別子が割り当てられた共通パッケージの取得を要求する要求信号をソフトウェア更新装置1に送信する。ステップS27では、CGW21は、車載通信装置22を介して、共通パッケージを受信する。ステップS28では、CGW21は、共通パッケージ識別子が一致しているか否かを判定する。すなわち、CGW21は、ステップS24で受信された識別パッケージに含まれる共通パッケージ識別子と、ステップS27で受信された共通パッケージから取得された共通パッケージ識別子とを比較して、共通パッケージ識別子が一致しているか否かを判定する。共通パッケージ識別子が一致していると判定される場合には、CGW21は、ステップS29に進む。共通パッケージ識別子が一致していると判定されない場合には、CGW21は、制御フローを終了する。ステップS29では、CGW21は、ソフトウェアを更新する。具体的には、車載端末装置20は、ステップS27で受信された共通パッケージから更新データを取得して、更新データを用いて、車両2のECUのソフトウェアを更新する。
 次に、図8のフローチャートを用いて、本実施形態に係るソフトウェア更新システムのソフトウェア更新の制御処理を説明する。図8は、ソフトウェア更新システムにおけるソフトウェア更新の制御処理のシーケンス図である。本実施形態では、ソフトウェアの供給者が、入力装置13にソフトウェアの更新データを入力すると、ステップS31から制御フローを開始する。
 ステップS31では、ソフトウェア更新装置1は、ソフトウェアの供給者により入力される更新データを受け付ける。ステップS32では、ソフトウェア更新装置1は、ステップS1で取得された更新データに基づいて、ソフトウェア更新リストを作成する。ステップS33では、ソフトウェア更新装置1は、ステップS31で取得された更新データに基づいて、共通パッケージを生成する。ステップS34では、車載端末装置20は、自車の車両識別番号と、自車の各ECUのソフトウェアバージョンを取得する。ステップS35では、車載端末装置20は、ステップS34で取得した、車両識別番号とソフトウェアバージョンをソフトウェア更新装置1に送信する。ステップS36では、ソフトウェア更新装置1は、車載端末装置20から受信した車両識別番号と、ソフトウェアバージョンとに基づいて、車両2のソフトウェアの更新が必要であるか否かを判定する。ソフトウェアの更新が必要であると判定された場合には、ソフトウェア更新装置1は、ステップS37に進む。ソフトウェアの更新が必要ではないと判定された場合には、ソフトウェア更新装置1は、制御フローを終了する。また、ステップS34~S36の制御は、管理している全車両についてそれぞれ実行される。例えば、車両のイグニッション電源がオンになった時、あるいは、一定の周期で、ステップS4~6までの制御が実行される。
 ステップS37では、ソフトウェア更新装置1は、ステップS36でソフトウェアの更新が必要であると判定された車両2ごとの識別パッケージを生成する。ステップS38では、ソフトウェア更新装置1は、ステップS37で生成された識別パッケージを車載端末装置20に送信する。ステップS39では、車載端末装置20は、ステップS38で送信された識別パッケージに含まれる車両識別番号と、自車の車両識別番号とが一致しているか否かを判定する。車両識別番号が一致していると判定される場合には、車載端末装置20は、ステップS40に進む。車両識別番号が一致していると判定されない場合には、車載端末装置20は、制御フローを終了する。ステップS40では、車載端末装置20は、共通パッケージの取得を要求する要求信号をソフトウェア更新装置1に送信する。
 ステップS41では、ソフトウェア更新装置1は、ステップS40で車載端末装置20が要求した共通パッケージを検索する。ステップS42では、ソフトウェア更新装置1は、ステップS41で検索された共通パッケージを車載端末装置20に送信する。ステップS43では、車載端末装置20は、ステップS38で送信された識別パッケージに含まれる共通パッケージ識別子と、ステップS42で送信された共通パッケージから取得された共通パッケージ識別子とが一致しているか否かを判定する。共通パッケージ識別子が一致していると判定される場合には、車載端末装置20は、ステップS44に進む。共通パッケージ識別子が一致していると判定されない場合には、車載端末装置20は、制御フローを終了する。ステップS44では、車載端末装置20は、車両2のソフトウェアを更新する。また、本実施形態では、ステップS37~S44までの制御は、ソフトウェア更新が必要であると判定された全車両について実行する。
 以上のように、本実施形態では、車両の外部に設けられ、車両のソフトウェアの更新データを用いて、ソフトウェアを更新するソフトウェア更新装置であって、少なくとも更新データを含む共通パッケージと、共通パッケージに割り当てられた共通パッケージ識別情報と共通パッケージ識別情報に対応づけられ車両を識別する車両識別情報とを含む識別パッケージとを記憶する記憶装置を備え、ソフトウェアの更新対象となる対象車両に、対象車両に対応付けられた車両識別情報を含む識別パッケージを送信し、対象車両からの要求に応じて、識別パッケージに含まれる共通パッケージ識別情報が割り当てられた共通パッケージを対象車両に送信する。これにより、車両のソフトウェアを更新する処理において、サーバの処理負荷及び記憶容量を軽減させる。
 また、本実施形態では、対象車両が複数ある場合には、複数の対象車両ごとに、複数の対象車両に共通する共通パッケージ識別情報と、複数の対象車両ごとに割り当てられた車両識別情報とを含む識別パッケージを生成する。これにより、ソフトウェアを更新する車両が複数ある場合であっても、車両ごとに識別情報を生成するため、記憶容量を軽減することができる。
 また、本実施形態では、複数の対象車両に、同一の共通パッケージを送信する。これにより、ソフトウェアを更新する車両が複数ある場合であっても、同一の共通パッケージを送信するため、記憶容量を軽減することができる。
 また、本実施形態では、ハッシュ関数を用いて共通パッケージから生成されたハッシュ値を共通パッケージ識別情報として含む識別パッケージを生成する。これにより、更新データ全体を含むよりも識別パッケージのデータサイズを小さくできる。
 また、本実施形態では、対象車両の車両識別情報に基づいて、共通パッケージ識別情報を生成し、生成された共通パッケージ識別情報と、車両識別情報と、を含む識別パッケージを生成する。これにより、対象車両のみが共通パッケージを識別するための識別情報を取得できるため、サイバーセキュリティの強度を高めることができる。
 また、本実施形態では、車両の外部に設けられたサーバから、更新の対象となるソフトウェアの更新データを取得し、車両のソフトウェアを更新する車両の車載端末装置であって、更新データを含んでサーバに格納されている共通パッケージごとに割り当てられた共通パッケージ識別情報と、共通パッケージ識別情報に対応づけられた、車両を識別する車両識別情報と、を含んでサーバに格納されている識別パッケージをサーバから受信し、受信された識別パッケージから、共通パッケージ識別情報を取得し、取得された共通パッケージ識別情報が割り当てられた共通パッケージをサーバから受信し、受信された共通パッケージに含まれる更新データを用いて、車両のソフトウェアを更新する。これにより、車両のソフトウェアを更新する処理において、サーバの処理負荷及び記憶容量を軽減させる。
 また、本実施形態では、受信された識別パッケージに含まれる車両識別情報と、車両に割り当てられた車両識別情報とが一致するか否かを判定し、車両識別情報が一致すると判定される場合には、識別パッケージに含まれる共通パッケージ識別情報と、共通パッケージから取得される共通パッケージ識別情報とが一致するか否かを判定し、共通パッケージ識別情報が一致すると判定される場合には、ソフトウェアを更新する。これにより、車両は、更新データが自車両のソフトウェア更新のためのデータであることを保証することができる。
 また、本実施形態では、受信された識別パッケージに含まれる車両識別情報と、車両に割り当てられた車両識別情報とが一致するか否かを判定し、車両識別情報が一致すると判定される場合には、共通パッケージの取得を要求する要求信号をサーバに送信し、要求信号に対する応答信号として、共通パッケージをサーバから受信する。これにより、車両は、更新データが自車両のソフトウェア更新のためのデータであることを保証することができる。
 また、本実施形態では、更新データをサーバから取得するときに、第1通信経路を介して、更新データをサーバから取得し、第1通信経路は、更新データ以外のデータを供給するための第2通信経路よりもセキュリティ度が高い。これにより、更新データのサイバーセキュリティ強度を高めることができる。
 また、本実施形態では、車両に搭載された車載端末装置と、車両の外部に設けられたソフトウェア更新装置と、を備え、車両のソフトウェアの更新データを用いて、ソフトウェアを更新するソフトウェア更新システムであって、ソフトウェア更新装置は、少なくとも更新データを含む共通パッケージと、共通パッケージに割り当てられた共通パッケージ識別情報と共通パッケージ識別情報に対応づけられ車両を識別する車両識別情報とを含む識別パッケージとを記憶する記憶装置を備え、ソフトウェアの更新対象となる車両に、車両に対応づけられた車両識別情報を含む識別パッケージを送信し、車両からの要求に応じて、識別パッケージに含まれる共通パッケージ識別情報が割り当てられた共通パッケージを車両に送信し、車両は、車両の車両識別情報を含む識別パッケージをソフトウェア更新装置から受信し、受信された識別パッケージから、共通パッケージ識別情報を取得し、取得された共通パッケージ識別情報が割り当てられた共通パッケージをソフトウェア更新装置から受信し、受信された共通パッケージに含まれる更新データを用いて、車両のソフトウェアを更新する。これにより、車両のソフトウェアを更新する処理において、サーバの処理負荷及び記憶容量を軽減させる。
 なお、以上に説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
100…ソフトウェア更新システム
1…ソフトウェア更新装置
 10…コントローラ
 11…記憶装置
 12…通信装置
 13…入力装置
2…車両
 20…車載端末装置
 21…CGW
 22…車載通信装置
 23…ECU
 24…車載記憶装置
3…通信ネットワーク

Claims (10)

  1.  車両の外部に設けられ、前記車両のソフトウェアの更新データを用いて、前記ソフトウェアを更新するソフトウェア更新装置であって、
     少なくとも前記更新データを含む共通パッケージと、前記共通パッケージに割り当てられた共通パッケージ識別情報と前記共通パッケージ識別情報に対応づけられ前記車両を識別する車両識別情報とを含む識別パッケージとを記憶する記憶装置を備え、
     前記ソフトウェアの更新対象となる対象車両に、前記対象車両に対応付けられた前記車両識別情報を含む前記識別パッケージを送信し、
     前記対象車両からの要求に応じて、前記識別パッケージに含まれる前記共通パッケージ識別情報が割り当てられた前記共通パッケージを前記対象車両に送信するソフトウェア更新装置。
  2.  前記対象車両が複数ある場合には、複数の前記対象車両ごとに、複数の前記対象車両に共通する前記共通パッケージ識別情報と、複数の前記対象車両ごとに割り当てられた前記車両識別情報とを含む前記識別パッケージを生成する請求項1に記載のソフトウェア更新装置。
  3.  複数の前記対象車両に、同一の前記共通パッケージを送信する請求項2に記載のソフトウェア更新装置。
  4.  ハッシュ関数を用いて前記共通パッケージから生成されたハッシュ値を前記共通パッケージ識別情報として含む前記識別パッケージを生成する請求項1~3のいずれか一項に記載のソフトウェア更新装置。
  5.  前記対象車両の前記車両識別情報に基づいて、前記共通パッケージ識別情報を生成し、
     生成された前記共通パッケージ識別情報と、前記車両識別情報と、を含む前記識別パッケージを生成する請求項1~3のいずれか一項に記載のソフトウェア更新装置。
  6.  車両の外部に設けられたサーバから、更新の対象となるソフトウェアの更新データを取得し、前記車両の前記ソフトウェアを更新する前記車両の車載端末装置であって、
     前記更新データを含んで前記サーバに格納されている共通パッケージごとに割り当てられた共通パッケージ識別情報と、前記共通パッケージ識別情報に対応づけられた、前記車両を識別する車両識別情報と、を含んで前記サーバに格納されている識別パッケージを前記サーバから受信し、
     受信された前記識別パッケージから、前記共通パッケージ識別情報を取得し、
     取得された前記共通パッケージ識別情報が割り当てられた前記共通パッケージを前記サーバから受信し、
     受信された前記共通パッケージに含まれる前記更新データを用いて、前記車両の前記ソフトウェアを更新する車載端末装置。
  7.  受信された前記識別パッケージに含まれる前記車両識別情報と、前記車両に割り当てられた前記車両識別情報とが一致するか否かを判定し、
     前記車両識別情報が一致すると判定される場合には、前記識別パッケージに含まれる前記共通パッケージ識別情報と、前記共通パッケージから取得される前記共通パッケージ識別情報とが一致するか否かを判定し、
     前記共通パッケージ識別情報が一致すると判定される場合には、前記ソフトウェアを更新する請求項6に記載の車載端末装置。
  8.  受信された前記識別パッケージに含まれる前記車両識別情報と、前記車両に割り当てられた前記車両識別情報とが一致するか否かを判定し、
     前記車両識別情報が一致すると判定される場合には、前記共通パッケージの取得を要求する要求信号を前記サーバに送信し、
     前記要求信号に対する応答信号として、前記共通パッケージを前記サーバから受信する請求項7に記載の車載端末装置。
  9.  前記更新データを前記サーバから取得するときに、第1通信経路を介して、前記更新データを前記サーバから取得し、
     前記第1通信経路は、前記更新データ以外のデータを供給するための第2通信経路よりもセキュリティ度が高い請求項6~8のいずれか一項に記載の車載端末装置。
  10.  車両に搭載された車載端末装置と、前記車両の外部に設けられたソフトウェア更新装置と、を備え、
     前記車両のソフトウェアの更新データを用いて、前記ソフトウェアを更新するソフトウェア更新システムであって、
     前記ソフトウェア更新装置は、
     少なくとも前記更新データを含む共通パッケージと、前記共通パッケージに割り当てられた共通パッケージ識別情報と前記共通パッケージ識別情報に対応づけられ前記車両を識別する車両識別情報とを含む識別パッケージとを記憶する記憶装置を備え、
     前記ソフトウェアの更新対象となる車両に、前記車両に対応づけられた前記車両識別情報を含む前記識別パッケージを送信し、
     前記車両からの要求に応じて、前記識別パッケージに含まれる前記共通パッケージ識別情報が割り当てられた前記共通パッケージを前記車両に送信し、
     前記車両は、
     前記車両の前記車両識別情報を含む前記識別パッケージを前記ソフトウェア更新装置から受信し、
     受信された前記識別パッケージから、前記共通パッケージ識別情報を取得し、
     取得された前記共通パッケージ識別情報が割り当てられた前記共通パッケージを前記ソフトウェア更新装置から受信し、
     受信された前記共通パッケージに含まれる前記更新データを用いて、前記車両の前記ソフトウェアを更新するソフトウェア更新システム。
PCT/JP2021/002961 2021-01-28 2021-01-28 ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム WO2022162815A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP21921666.0A EP4287032A4 (en) 2021-01-28 2021-01-28 SOFTWARE UPDATE DEVICE, VEHICLE-MOUNTED TERMINAL DEVICE AND SOFTWARE UPDATE SYSTEM
JP2022577902A JP7494944B2 (ja) 2021-01-28 2021-01-28 ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム
PCT/JP2021/002961 WO2022162815A1 (ja) 2021-01-28 2021-01-28 ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム
US18/259,595 US20240061671A1 (en) 2021-01-28 2021-01-28 Software updating device, in-vehicle terminal, and software updating system
CN202180092369.8A CN116888580A (zh) 2021-01-28 2021-01-28 软件更新装置、车载终端装置以及软件更新系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/002961 WO2022162815A1 (ja) 2021-01-28 2021-01-28 ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム

Publications (1)

Publication Number Publication Date
WO2022162815A1 true WO2022162815A1 (ja) 2022-08-04

Family

ID=82653172

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/002961 WO2022162815A1 (ja) 2021-01-28 2021-01-28 ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム

Country Status (5)

Country Link
US (1) US20240061671A1 (ja)
EP (1) EP4287032A4 (ja)
JP (1) JP7494944B2 (ja)
CN (1) CN116888580A (ja)
WO (1) WO2022162815A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022004825A1 (de) 2022-12-20 2024-06-20 Mercedes-Benz Group AG Verfahren und System zur Verteilung von Softwarekomponenten auf Fahrzeuge

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1127749A (ja) 1997-07-04 1999-01-29 Toyota Motor Corp ソフトウェアのメンテナンスシステム、そのシステムに適した基地局側装置、およびソフトウェアのメンテナンス方法
JP2015162179A (ja) * 2014-02-28 2015-09-07 ファナック株式会社 プログラマブルコントローラのシーケンスプログラム置き換え方法
JP2019101706A (ja) * 2017-11-30 2019-06-24 株式会社日立製作所 車載ソフトウェア配信システム、車載ソフトウェア配信サーバ、及び車載ソフトウェア配信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014021914A (ja) 2012-07-23 2014-02-03 Sumitomo Electric Ind Ltd 端末装置、管理装置、通信システム、データファイル更新方法およびデータファイル更新プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1127749A (ja) 1997-07-04 1999-01-29 Toyota Motor Corp ソフトウェアのメンテナンスシステム、そのシステムに適した基地局側装置、およびソフトウェアのメンテナンス方法
JP2015162179A (ja) * 2014-02-28 2015-09-07 ファナック株式会社 プログラマブルコントローラのシーケンスプログラム置き換え方法
JP2019101706A (ja) * 2017-11-30 2019-06-24 株式会社日立製作所 車載ソフトウェア配信システム、車載ソフトウェア配信サーバ、及び車載ソフトウェア配信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP4287032A4
TERAOKA, HIDETOSHI, YAMAZAKI, HIROKI, SAKURAI, KOHEI, FUNASEKO, YOUSUKE, OZAKI, TOMOCHIKA.: "A Study of OTA Update Control Method for Vehicle System Using Lightweight Script Language", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 8, no. 3, 30 October 2018 (2018-10-30), JP , pages 32 - 42, XP009539006, ISSN: 2186-5728 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022004825A1 (de) 2022-12-20 2024-06-20 Mercedes-Benz Group AG Verfahren und System zur Verteilung von Softwarekomponenten auf Fahrzeuge
WO2024132506A1 (de) 2022-12-20 2024-06-27 Mercedes-Benz Group AG Verfahren und system zur verteilung von softwarekomponenten auf fahrzeuge

Also Published As

Publication number Publication date
EP4287032A4 (en) 2024-03-27
US20240061671A1 (en) 2024-02-22
EP4287032A1 (en) 2023-12-06
JPWO2022162815A1 (ja) 2022-08-04
JP7494944B2 (ja) 2024-06-04
CN116888580A (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
CN109479000B (zh) 再利用系统、密钥生成装置、数据安全装置、车载计算机、再利用方法以及存储介质
JP6724717B2 (ja) 車載機器判定システム
EP3319266B1 (en) Software distribution processing device, vehicle, software distribution processing method, and computer program
US9577997B2 (en) Authentication system and authentication method
JP5949732B2 (ja) プログラム更新システム及びプログラム更新方法
JP6782446B2 (ja) 監視装置、通信システム、車両、監視方法、およびコンピュータプログラム
CN109804597B (zh) 车载网关、密钥管理装置
CN104904156B (zh) 认证处理装置、认证处理系统以及认证处理方法
US9853973B2 (en) Information distribution system, and server, on-board terminal and communication terminal used therefor
CN104580352A (zh) 从远程装置对车辆模块编程及相关方法和系统
WO2015041161A1 (ja) 書換検出システム、書換検出装置及び情報処理装置
WO2013045988A1 (en) Method and system for a vehicle information integrity verification
CN103679005A (zh) 启用安全电子控制单元的开发模式的方法
US8638932B2 (en) Security method and system and computer-readable medium storing computer program for executing the security method
WO2022162815A1 (ja) ソフトウェア更新装置、車載端末装置及びソフトウェア更新システム
CN112713999A (zh) 基于双向身份认证的网联汽车安全远程更新方法
JP2020092289A (ja) 機器統合システム及び更新管理システム
Kathiresh et al. Vehicle diagnostics over internet protocol and over-the-air updates
CN113225733B (zh) 用户识别模块、证书获取方法、装置和存储介质
CN114741100A (zh) 车辆固件的升级任务发布方法、装置、服务器及存储介质
CN115543369A (zh) 中心、ota管理器、方法、非暂时性存储介质及车辆
CN114297591A (zh) 一种数字证书的校验方法、装置、电子设备及存储介质
EP4269186A1 (en) Request processing system
KR102706926B1 (ko) 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치
WO2024127446A1 (ja) 情報処理装置及びシステム並びに車載電子装置

Legal Events

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

Ref document number: 21921666

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022577902

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18259595

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 202180092369.8

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 202347057166

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2021921666

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021921666

Country of ref document: EP

Effective date: 20230828