WO2024080119A1 - 情報処理装置及び情報処理方法 - Google Patents

情報処理装置及び情報処理方法 Download PDF

Info

Publication number
WO2024080119A1
WO2024080119A1 PCT/JP2023/034721 JP2023034721W WO2024080119A1 WO 2024080119 A1 WO2024080119 A1 WO 2024080119A1 JP 2023034721 W JP2023034721 W JP 2023034721W WO 2024080119 A1 WO2024080119 A1 WO 2024080119A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
data
area
ecu
information processing
Prior art date
Application number
PCT/JP2023/034721
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 WO2024080119A1 publication Critical patent/WO2024080119A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • This technology relates to an information processing device and information processing method, and in particular to an information processing device and information processing method that enable appropriate software rollback.
  • Patent Document 1 The invention described in Patent Document 1 is assumed to be based on the system configuration of conventional vehicles, which use a large number of single-function, highly independent ECUs. Furthermore, in conventional vehicles, data structures are important elements that make up the software, and are typically not changed after shipment.
  • the information processing device includes a software management unit that manages software, and a storage unit that includes a first software area, a second software area, a first data area corresponding to the first software area, and a second data area corresponding to the second software area, and the software management unit stores a first current software, which is the software to be executed, in one of the first and second software areas, and stores a first old software, which is a version of software earlier than the first current software, in the other software area, and stores data in a format supported by the first current software in one of the data areas corresponding to one of the first and second data areas, and stores data in a format supported by the first old software in the other data area.
  • the information processing device stores the current software, which is the software to be executed, in one of a first software area and a second software area in a storage unit, stores the old software, which is the software previous to the current software, in the other software area, stores data in a format compatible with the current software in one data area corresponding to one of the first data area and the second data area in the storage unit, and stores data in a format compatible with the old software in the other data area.
  • the current software which is the software to be executed, is stored in one of the first and second software areas of the storage unit, and the old software, which is the previous version of the current software, is stored in the other software area, and data in a format compatible with the current software is stored in one of the first and second data areas of the storage unit that corresponds to the one of the software areas, and data in a format compatible with the old software is stored in the other data area.
  • FIG. 1 is a block diagram showing a configuration example of a NOR type flash system.
  • FIG. 1 is a block diagram showing a configuration example of a NAND flash system.
  • FIG. 2 is a diagram showing a first data configuration example of a NAND flash memory in a NAND flash system;
  • FIG. 11 is a diagram showing a second data configuration example of a NAND flash memory in a NAND flash system.
  • 1 is a block diagram showing a configuration example of a vehicle control system;
  • FIG. 2 is a diagram showing an example of a sensing region.
  • 1 is a block diagram showing a configuration example of an information processing system to which the present technology is applied.
  • FIG. 2 is a block diagram showing an example of the configuration of a high-performance ECU.
  • FIG. 1 is a block diagram showing a configuration example of a NOR type flash system.
  • FIG. 1 is a block diagram showing a configuration example of a NAND flash system.
  • FIG. 2 is a diagram showing
  • FIG. 2 is a block diagram showing an example of the configuration of a legacy ECU.
  • FIG. 2 is a sequence diagram for explaining a first embodiment of a FW update process for a high-performance ECU
  • 1 is a diagram illustrating an example of a state of a flash memory of a high-performance ECU in a first embodiment of a firmware update process for the high-performance ECU
  • FIG. 4 is a sequence diagram for explaining a startup process of the high-performance ECU.
  • 1 is a diagram showing an example of a state of a flash memory of a high-performance ECU during a startup process of the high-performance ECU
  • FIG. 11 is a sequence diagram for explaining a rollback process of the high-performance ECU.
  • FIG. 11 is a diagram showing an example of a state of a flash memory of a high-performance ECU during rollback processing of the high-performance ECU;
  • FIG. 11 is a sequence diagram for explaining a backup process of the high-performance ECU.
  • 11 is a diagram showing an example of a state of a flash memory of a high-performance ECU during backup processing of the high-performance ECU;
  • FIG. 11 is a sequence diagram for explaining a second embodiment of a FW update process for a high-performance ECU.
  • FIG. 13 is a diagram illustrating an example of a state of a flash memory of a high-performance ECU in a second embodiment of a firmware update process for the high-performance ECU.
  • FIG. 4 is a sequence diagram for explaining a first embodiment of a FW update process for a legacy ECU;
  • FIG. 4 is a sequence diagram for explaining a first embodiment of a FW update process for a legacy ECU;
  • 1A and 1B are diagrams illustrating an example of states of a flash memory of a high-performance ECU and a flash memory of a legacy ECU in a first embodiment of a firmware update process for a legacy ECU;
  • FIG. 11 is a sequence diagram for explaining a rollback process of a legacy ECU.
  • 11A and 11B are diagrams illustrating an example of the states of the flash memory of the high-performance ECU and the flash memory of the legacy ECU during rollback processing of the legacy ECU;
  • FIG. 11 is a sequence diagram for explaining a backup process of data of a legacy ECU.
  • 11 is a diagram showing an example of the states of a flash memory of a high-performance ECU and a flash memory of a legacy ECU in a backup process of data of the legacy ECU;
  • FIG. 11 is a sequence diagram for explaining a second embodiment of a FW update process for a legacy ECU.
  • FIG. 11 is a sequence diagram for explaining a second embodiment of a FW update process for a legacy ECU.
  • 13A and 13B are diagrams illustrating an example of the states of a flash memory of a high-performance ECU and a flash memory of a legacy ECU in a second embodiment of a firmware update process for a legacy ECU;
  • FIG. 1 is a block diagram illustrating an example of the configuration of a computer.
  • FIG 1 shows an example of the configuration of a NOR type flash system 2001 used in a conventional vehicle.
  • the NOR type flash system 2001 comprises a CPU (Central Processing Unit) 2011, a NOR type flash memory 2012, and a RAM (Random Access Memory) 2013.
  • a CPU Central Processing Unit
  • NOR type flash memory 2012 NOR type flash memory
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • SRAM Static Random Access Memory
  • NVRAM Non Volatile Random Access Memory
  • the CPU 2011 communicates with the NOR flash memory 2012 and RAM 2013 using a high-speed memory I/F (interface).
  • the CPU communicates with the external NVRAM 2014 using a storage I/F that is slower than the memory I/F.
  • the NOR flash memory 2012 stores, for example, software executed by the CPU 2011 and data that the software uses and needs to retain. If the capacity of the NOR flash memory 2012 is insufficient, part of the data is stored in the external NVRAM 2014.
  • the RAM 2013 temporarily stores, for example, data that the software uses temporarily but does not need to retain.
  • the boot loader When the CPU 2011 executes a program in the NOR flash system 2001, the boot loader first initializes the hardware and then sets the program counter to the address of the main program in the NOR flash memory 2012. This starts execution of the main program while it remains stored in the NOR flash memory 2012.
  • FIG. 2 shows an example configuration of a NAND flash system 2051 used in a smartphone or the like.
  • the NAND flash system 2051 includes a CPU 2061, a NAND flash memory 2062, and a RAM 2063.
  • the RAM 2063 may be, for example, a DDR SDRAM (Double-Data-Rate Synchronous Dynamic Random Access Memory).
  • the CPU 2061 and the NAND flash memory 2062 communicate using a high-speed storage I/F.
  • the CPU 2061 and the RAM 2063 communicate using a memory I/F that is slower than the storage I/F.
  • the NAND flash memory 2062 stores, for example, the software executed by the CPU 2061 and data that the software uses and needs to hold.
  • the RAM 2013 temporarily stores, for example, the software to be executed and data that the software uses temporarily and does not need to hold.
  • the boot loader When the CPU 2061 executes a program in the NAND flash system 2051, the boot loader first initializes the hardware and then copies the main program from the NAND flash memory 2062 to the RAM 2063 (Shadow). The boot loader then sets the program counter to the address of the main program placed in the RAM 2063. This starts execution of the main program placed in the RAM 2063. Furthermore, if necessary, necessary programs are placed in the RAM 2063, and low priority programs are purged from the RAM 2063.
  • the NOR flash memory 2012 can control data rewriting on a bit-by-bit basis, so no unnecessary processing occurs, and is generally more reliable and has a longer life than the NAND flash memory 2062.
  • the NOR flash memory 2012 is capable of XiP (eXecute-in-Place), so the time until program execution begins is shorter than in the NAND flash system 2051.
  • the NAND flash memory 2062 has a lower cost per bit and a larger capacity than the NOR flash memory 2012.
  • NAND flash memory such as the NAND flash system 2051
  • IT Information Technology
  • CE Consumer Electronics
  • FIG. 3 shows a first example of the data structure of the NAND flash memory 2062 of the NAND flash system 2051.
  • the NAND flash memory 2062 is provided with a main system area, an update system area, and a data area.
  • the main system area stores the software (programs) executed by the CPU 2061.
  • the main system area cannot be rewritten (RO (Read Only)) except when updating the software.
  • the update system area stores software for updating the software in the main system area.
  • the update system area is basically non-rewriteable (RO).
  • the data area is used by the NAND flash system 2051 and stores data that needs to be retained.
  • the data area is rewritable (RW (Rewritable)).
  • the update program in the update system area is loaded into RAM 2063 and executed, thereby updating the software in the main system area.
  • the NAND flash system 2051 stops normal operation while the software is being updated.
  • the NAND flash system 2051 restarts, and the new software stored in the main system area is executed, and the NAND flash system 2051 resumes normal operation.
  • data migration is performed immediately after the software is updated. This converts the format of the data stored in the data area into a format that the new software can process.
  • FIG. 4 shows a second example of the data structure of the NAND flash memory 2062 of the NAND flash system 2051.
  • the NAND flash memory 2062 is provided with a main system area A, a main system area B, and a data area.
  • the NAND flash system 2051 when the NAND flash system 2051 is operating normally, it is possible to install new software in the NAND flash memory 2062 and execute the new software after rebooting. If the format of data that the new software can process has changed, for example, data migration is executed when rebooting after installing the new software.
  • the time for which normal operation of the NAND flash system 2051 is stopped during software updates can be shortened.
  • new software and old software can be stored simultaneously, if the new software does not operate normally due to a malfunction or the like, it is possible to execute a rollback to revert to the old software.
  • the software be provided on two sides, A and B, as in the architecture in Figure 4, in order to shorten the period during which the vehicle is unable to operate during software updates and to allow the vehicle to continue running on the old software even if the new software does not operate correctly.
  • FIG. 5 is a block diagram showing an example of the configuration of a vehicle control system 11, which is an example of a mobility device control system to which the present technology is applied.
  • the vehicle control system 11 is installed in the vehicle 1 and performs processing related to driving assistance and autonomous driving of the vehicle 1.
  • the vehicle control system 11 includes a vehicle control ECU (Electronic Control Unit) 21, a communication unit 22, a map information storage unit 23, a location information acquisition unit 24, an external recognition sensor 25, an in-vehicle sensor 26, a vehicle sensor 27, a memory unit 28, a driving assistance/automated driving control unit 29, a DMS (Driver Monitoring System) 30, an HMI (Human Machine Interface) 31, and a vehicle control unit 32.
  • vehicle control ECU Electronic Control Unit
  • a communication unit 22 includes a communication unit 22, a map information storage unit 23, a location information acquisition unit 24, an external recognition sensor 25, an in-vehicle sensor 26, a vehicle sensor 27, a memory unit 28, a driving assistance/automated driving control unit 29, a DMS (Driver Monitoring System) 30, an HMI (Human Machine Interface) 31, and a vehicle control unit 32.
  • the vehicle control ECU 21, communication unit 22, map information storage unit 23, position information acquisition unit 24, external recognition sensor 25, in-vehicle sensor 26, vehicle sensor 27, memory unit 28, driving assistance/automatic driving control unit 29, driver monitoring system (DMS) 30, human machine interface (HMI) 31, and vehicle control unit 32 are connected to each other so as to be able to communicate with each other via a communication network 41.
  • the communication network 41 is composed of an in-vehicle communication network or bus that complies with a digital two-way communication standard such as CAN (Controller Area Network), LIN (Local Interconnect Network), LAN (Local Area Network), FlexRay (registered trademark), or Ethernet (registered trademark).
  • the communication network 41 may be used differently depending on the type of data being transmitted.
  • CAN may be applied to data related to vehicle control
  • Ethernet may be applied to large-volume data.
  • each part of the vehicle control system 11 may be directly connected without going through the communication network 41, using wireless communication intended for communication over relatively short distances, such as near field communication (NFC) or Bluetooth (registered trademark).
  • NFC near field communication
  • Bluetooth registered trademark
  • the vehicle control ECU 21 is composed of various processors, such as a CPU (Central Processing Unit) and an MPU (Micro Processing Unit).
  • the vehicle control ECU 21 controls all or part of the functions of the vehicle control system 11.
  • the communication unit 22 communicates with various devices inside and outside the vehicle, other vehicles, servers, base stations, etc., and transmits and receives various types of data. At this time, the communication unit 22 can communicate using multiple communication methods.
  • the communication unit 22 communicates with servers (hereinafter referred to as external servers) on an external network via base stations or access points using wireless communication methods such as 5G (fifth generation mobile communication system), LTE (Long Term Evolution), and DSRC (Dedicated Short Range Communications).
  • the external network with which the communication unit 22 communicates is, for example, the Internet, a cloud network, or an operator-specific network.
  • the communication method that the communication unit 22 uses with the external network is not particularly limited as long as it is a wireless communication method that allows digital two-way communication at a communication speed equal to or higher than a predetermined distance.
  • the communication unit 22 can communicate with a terminal present in the vicinity of the vehicle using P2P (Peer To Peer) technology.
  • the terminal present in the vicinity of the vehicle can be, for example, a terminal attached to a mobile object moving at a relatively slow speed, such as a pedestrian or a bicycle, a terminal installed at a fixed position in a store, or an MTC (Machine Type Communication) terminal.
  • the communication unit 22 can also perform V2X communication.
  • V2X communication refers to communication between the vehicle and others, such as vehicle-to-vehicle communication with other vehicles, vehicle-to-infrastructure communication with roadside devices, vehicle-to-home communication with a home, and vehicle-to-pedestrian communication with a terminal carried by a pedestrian, etc.
  • the communication unit 22 can, for example, receive from the outside a program for updating the software that controls the operation of the vehicle control system 11 (Over the Air).
  • the communication unit 22 can further receive map information, traffic information, information about the surroundings of the vehicle 1, etc. from the outside.
  • the communication unit 22 can also transmit information about the vehicle 1 and information about the surroundings of the vehicle 1 to the outside.
  • Information about the vehicle 1 that the communication unit 22 transmits to the outside includes, for example, data indicating the state of the vehicle 1, the recognition results by the recognition unit 73, etc.
  • the communication unit 22 performs communication corresponding to a vehicle emergency notification system such as e-Call.
  • the communication unit 22 receives electromagnetic waves transmitted by a road traffic information and communication system (VICS (Vehicle Information and Communication System) (registered trademark)) such as a radio beacon, optical beacon, or FM multiplex broadcasting.
  • VICS Vehicle Information and Communication System
  • the communication unit 22 can communicate with each device in the vehicle using, for example, wireless communication.
  • the communication unit 22 can perform wireless communication with each device in the vehicle using a communication method that allows digital two-way communication at a communication speed equal to or higher than a predetermined speed via wireless communication, such as wireless LAN, Bluetooth, NFC, or WUSB (Wireless USB).
  • the communication unit 22 can also communicate with each device in the vehicle using wired communication.
  • the communication unit 22 can communicate with each device in the vehicle using wired communication via a cable connected to a connection terminal (not shown).
  • the communication unit 22 can communicate with each device in the vehicle using a communication method that allows digital two-way communication at a communication speed equal to or higher than a predetermined speed via wired communication, such as USB (Universal Serial Bus), HDMI (High-Definition Multimedia Interface) (registered trademark), or MHL (Mobile High-definition Link).
  • a communication method that allows digital two-way communication at a communication speed equal to or higher than a predetermined speed via wired communication, such as USB (Universal Serial Bus), HDMI (High-Definition Multimedia Interface) (registered trademark), or MHL (Mobile High-definition Link).
  • devices in the vehicle refers to devices that are not connected to the communication network 41 in the vehicle.
  • Examples of devices in the vehicle include mobile devices and wearable devices carried by passengers such as the driver, and information devices that are brought into the vehicle and temporarily installed.
  • the map information storage unit 23 stores one or both of a map acquired from an external source and a map created by the vehicle 1.
  • the map information storage unit 23 stores a three-dimensional high-precision map, a global map that is less accurate than a high-precision map and covers a wide area, etc.
  • High-precision maps include, for example, dynamic maps, point cloud maps, and vector maps.
  • a dynamic map is, for example, a map consisting of four layers of dynamic information, semi-dynamic information, semi-static information, and static information, and is provided to the vehicle 1 from an external server or the like.
  • a point cloud map is a map composed of a point cloud (point group data).
  • a vector map is, for example, a map that associates traffic information such as the positions of lanes and traffic lights with a point cloud map, and is adapted for ADAS (Advanced Driver Assistance System) and AD (Autonomous Driving).
  • the point cloud map and vector map may be provided, for example, from an external server, or may be created by the vehicle 1 based on sensing results from the camera 51, radar 52, LiDAR 53, etc. as a map for matching with a local map described below, and stored in the map information storage unit 23.
  • map data of, for example, an area of several hundred meters square regarding the planned route along which the vehicle 1 will travel is acquired from the external server, etc., in order to reduce communication capacity.
  • the location information acquisition unit 24 receives GNSS signals from Global Navigation Satellite System (GNSS) satellites and acquires location information of the vehicle 1.
  • GNSS Global Navigation Satellite System
  • the acquired location information is supplied to the driving assistance/automated driving control unit 29.
  • the location information acquisition unit 24 is not limited to a method using GNSS signals, and may acquire location information using a beacon, for example.
  • the external recognition sensor 25 includes various sensors used to recognize the situation outside the vehicle 1, and supplies sensor data from each sensor to each part of the vehicle control system 11.
  • the type and number of sensors included in the external recognition sensor 25 are arbitrary.
  • the external recognition sensor 25 includes a camera 51, a radar 52, a LiDAR (Light Detection and Ranging, Laser Imaging Detection and Ranging) 53, and an ultrasonic sensor 54.
  • the external recognition sensor 25 may be configured to include one or more types of sensors among the camera 51, the radar 52, the LiDAR 53, and the ultrasonic sensor 54.
  • the number of cameras 51, radars 52, LiDAR 53, and ultrasonic sensors 54 is not particularly limited as long as it is a number that can be realistically installed on the vehicle 1.
  • the types of sensors included in the external recognition sensor 25 are not limited to this example, and the external recognition sensor 25 may include other types of sensors. Examples of the sensing areas of each sensor included in the external recognition sensor 25 will be described later.
  • the imaging method of camera 51 is not particularly limited.
  • cameras of various imaging methods such as a ToF (Time Of Flight) camera, a stereo camera, a monocular camera, and an infrared camera, which are imaging methods capable of distance measurement, can be applied to camera 51 as necessary.
  • ToF Time Of Flight
  • stereo camera stereo camera
  • monocular camera stereo camera
  • infrared camera infrared camera
  • the present invention is not limited to this, and camera 51 may simply be used to obtain a photographed image, without being related to distance measurement.
  • the external recognition sensor 25 can be equipped with an environmental sensor for detecting the environment relative to the vehicle 1.
  • the environmental sensor is a sensor for detecting the environment such as the weather, climate, brightness, etc., and can include various sensors such as a raindrop sensor, a fog sensor, a sunlight sensor, a snow sensor, an illuminance sensor, etc.
  • the external recognition sensor 25 includes a microphone that is used to detect sounds around the vehicle 1 and the location of sound sources.
  • the in-vehicle sensor 26 includes various sensors for detecting information inside the vehicle, and supplies sensor data from each sensor to each part of the vehicle control system 11. There are no particular limitations on the types and number of the various sensors included in the in-vehicle sensor 26, so long as they are of the types and number that can be realistically installed in the vehicle 1.
  • the in-vehicle sensor 26 may be equipped with one or more types of sensors including a camera, radar, a seating sensor, a steering wheel sensor, a microphone, and a biometric sensor.
  • the camera equipped in the in-vehicle sensor 26 may be a camera using various imaging methods capable of measuring distances, such as a ToF camera, a stereo camera, a monocular camera, or an infrared camera. Without being limited to this, the camera equipped in the in-vehicle sensor 26 may be a camera simply for acquiring captured images, regardless of distance measurement.
  • the biometric sensor equipped in the in-vehicle sensor 26 is provided, for example, on a seat, steering wheel, etc., and detects various types of biometric information of passengers such as the driver.
  • the vehicle sensor 27 includes various sensors for detecting the state of the vehicle 1, and supplies sensor data from each sensor to each part of the vehicle control system 11. There are no particular limitations on the types and number of the various sensors included in the vehicle sensor 27, so long as they are of the types and number that can be realistically installed on the vehicle 1.
  • the vehicle sensor 27 includes a speed sensor, an acceleration sensor, an angular velocity sensor (gyro sensor), and an inertial measurement unit (IMU) that integrates these.
  • the vehicle sensor 27 includes a steering angle sensor that detects the steering angle of the steering wheel, a yaw rate sensor, an accelerator sensor that detects the amount of accelerator pedal operation, and a brake sensor that detects the amount of brake pedal operation.
  • the vehicle sensor 27 includes a rotation sensor that detects the number of rotations of the engine or motor, an air pressure sensor that detects the air pressure of the tires, a slip ratio sensor that detects the slip ratio of the tires, and a wheel speed sensor that detects the rotation speed of the wheels.
  • the vehicle sensor 27 includes a battery sensor that detects the remaining charge and temperature of the battery, and an impact sensor that detects external impacts.
  • the memory unit 28 includes at least one of a non-volatile storage medium and a volatile storage medium, and stores data and programs.
  • the memory unit 28 is used, for example, as an EEPROM (Electrically Erasable Programmable Read Only Memory) and a RAM (Random Access Memory), and the storage medium may be a magnetic storage device such as a hard disc drive (HDD), a semiconductor storage device, an optical storage device, or a magneto-optical storage device.
  • the memory unit 28 stores various programs and data used by each part of the vehicle control system 11.
  • the memory unit 28 includes an EDR (Event Data Recorder) and a DSSAD (Data Storage System for Automated Driving), and stores information about the vehicle 1 before and after an event such as an accident, and information acquired by the in-vehicle sensor 26.
  • EDR Event Data Recorder
  • DSSAD Data Storage System for Automated Driving
  • the driving assistance/automated driving control unit 29 controls driving assistance and automatic driving of the vehicle 1.
  • the driving assistance/automated driving control unit 29 includes an analysis unit 61, an action planning unit 62, and an operation control unit 63.
  • the analysis unit 61 performs analysis processing of the vehicle 1 and the surrounding conditions.
  • the analysis unit 61 includes a self-position estimation unit 71, a sensor fusion unit 72, and a recognition unit 73.
  • the self-position estimation unit 71 estimates the self-position of the vehicle 1 based on the sensor data from the external recognition sensor 25 and the high-precision map stored in the map information storage unit 23. For example, the self-position estimation unit 71 generates a local map based on the sensor data from the external recognition sensor 25, and estimates the self-position of the vehicle 1 by matching the local map with the high-precision map.
  • the position of the vehicle 1 is based on, for example, the center of the rear wheel pair axle.
  • the local map is, for example, a three-dimensional high-precision map or an occupancy grid map created using technology such as SLAM (Simultaneous Localization and Mapping).
  • the three-dimensional high-precision map is, for example, the point cloud map described above.
  • the occupancy grid map is a map in which the three-dimensional or two-dimensional space around the vehicle 1 is divided into grids of a predetermined size, and the occupancy state of objects is shown on a grid-by-grid basis.
  • the occupancy state of objects is indicated, for example, by the presence or absence of an object and the probability of its existence.
  • the local map is also used, for example, in detection processing and recognition processing of the situation outside the vehicle 1 by the recognition unit 73.
  • the self-position estimation unit 71 may estimate the self-position of the vehicle 1 based on the position information acquired by the position information acquisition unit 24 and the sensor data from the vehicle sensor 27.
  • the sensor fusion unit 72 performs sensor fusion processing to combine multiple different types of sensor data (e.g., image data supplied from the camera 51 and sensor data supplied from the radar 52) to obtain new information.
  • Methods for combining different types of sensor data include integration, fusion, and association.
  • the recognition unit 73 executes a detection process to detect the situation outside the vehicle 1, and a recognition process to recognize the situation outside the vehicle 1.
  • the recognition unit 73 performs detection and recognition processing of the situation outside the vehicle 1 based on information from the external recognition sensor 25, information from the self-position estimation unit 71, information from the sensor fusion unit 72, etc.
  • the recognition unit 73 performs detection processing and recognition processing of objects around the vehicle 1.
  • Object detection processing is, for example, processing to detect the presence or absence, size, shape, position, movement, etc. of an object.
  • Object recognition processing is, for example, processing to recognize attributes such as the type of object, and to identify a specific object.
  • detection processing and recognition processing are not necessarily clearly separated, and there may be overlap.
  • the recognition unit 73 detects objects around the vehicle 1 by performing clustering to classify a point cloud based on sensor data from the radar 52, the LiDAR 53, or the like into clusters of points. This allows the presence or absence, size, shape, and position of objects around the vehicle 1 to be detected.
  • the recognition unit 73 detects the movement of objects around the vehicle 1 by performing tracking to follow the movement of clusters of point clouds classified by clustering. This allows the speed and direction of travel (movement vector) of objects around the vehicle 1 to be detected.
  • the recognition unit 73 detects or recognizes vehicles, people, bicycles, obstacles, structures, roads, traffic lights, traffic signs, road markings, etc. based on image data supplied from the camera 51.
  • the recognition unit 73 may also recognize the types of objects around the vehicle 1 by performing recognition processing such as semantic segmentation.
  • the recognition unit 73 can perform recognition processing of traffic rules around the vehicle 1 based on the map stored in the map information storage unit 23, the result of self-location estimation by the self-location estimation unit 71, and the result of recognition of objects around the vehicle 1 by the recognition unit 73. Through this processing, the recognition unit 73 can recognize the positions and states of traffic lights, the contents of traffic signs and road markings, the contents of traffic regulations, and lanes on which travel is possible, etc.
  • the recognition unit 73 can perform recognition processing of the environment around the vehicle 1.
  • the surrounding environment that the recognition unit 73 recognizes may include weather, temperature, humidity, brightness, and road surface conditions.
  • the behavior planning unit 62 creates a behavior plan for the vehicle 1. For example, the behavior planning unit 62 creates the behavior plan by performing route planning and route following processing.
  • Global path planning is a process that plans a rough route from the start to the goal. This route planning is called trajectory planning, and also includes a process of local path planning that takes into account the motion characteristics of vehicle 1 on the planned route and generates a trajectory that allows safe and smooth progress in the vicinity of vehicle 1.
  • Path following is a process of planning operations for safely and accurately traveling along a route planned by a route plan within a planned time.
  • the action planning unit 62 can, for example, calculate the target speed and target angular velocity of the vehicle 1 based on the results of this path following process.
  • the operation control unit 63 controls the operation of the vehicle 1 to realize the action plan created by the action planning unit 62.
  • the operation control unit 63 controls the steering control unit 81, the brake control unit 82, and the drive control unit 83 included in the vehicle control unit 32 described below, and performs acceleration/deceleration control and directional control so that the vehicle 1 proceeds along the trajectory calculated by the trajectory plan.
  • the operation control unit 63 performs cooperative control aimed at realizing ADAS functions such as collision avoidance or impact mitigation, following driving, maintaining vehicle speed, collision warning for the vehicle itself, and lane departure warning for the vehicle itself.
  • the operation control unit 63 performs cooperative control aimed at automatic driving, which drives autonomously without the driver's operation.
  • the DMS 30 performs processes such as authenticating the driver and recognizing the driver's state based on the sensor data from the in-vehicle sensors 26 and the input data input to the HMI 31 (described later).
  • Examples of the driver's state to be recognized include physical condition, alertness, concentration, fatigue, line of sight, level of intoxication, driving operation, posture, etc.
  • the DMS 30 may also perform authentication processing for passengers other than the driver and recognition processing for the status of the passengers.
  • the DMS 30 may also perform recognition processing for the situation inside the vehicle based on sensor data from the in-vehicle sensor 26. Examples of the situation inside the vehicle that may be recognized include temperature, humidity, brightness, odor, etc.
  • HMI31 inputs various data and instructions, and displays various data to the driver, etc.
  • the HMI 31 is equipped with an input device that allows a person to input data.
  • the HMI 31 generates input signals based on data and instructions input via the input device, and supplies the signals to each part of the vehicle control system 11.
  • the HMI 31 is equipped with input devices such as a touch panel, buttons, switches, and levers. Without being limited to these, the HMI 31 may further be equipped with an input device that allows information to be input by a method other than manual operation, such as voice or gestures.
  • the HMI 31 may use, as an input device, an externally connected device such as a remote control device that uses infrared or radio waves, or a mobile device or wearable device that supports the operation of the vehicle control system 11.
  • the HMI 31 generates visual information, auditory information, and tactile information for the occupants or the outside of the vehicle.
  • the HMI 31 also performs output control to control the output, output content, output timing, output method, etc. of each piece of generated information.
  • the HMI 31 generates and outputs, as visual information, information indicated by images or light, such as an operation screen, a status display of the vehicle 1, a warning display, and a monitor image showing the situation around the vehicle 1.
  • the HMI 31 also generates and outputs, as auditory information, information indicated by sounds, such as voice guidance, warning sounds, and warning messages.
  • the HMI 31 also generates and outputs, as tactile information, information that is imparted to the occupants' sense of touch by, for example, force, vibration, movement, etc.
  • the output device from which the HMI 31 outputs visual information may be, for example, a display device that presents visual information by displaying an image itself, or a projector device that presents visual information by projecting an image.
  • the display device may be a device that displays visual information within the field of vision of the passenger, such as a head-up display, a transmissive display, or a wearable device with an AR (Augmented Reality) function, in addition to a display device having a normal display.
  • the HMI 31 may also use display devices such as a navigation device, instrument panel, CMS (Camera Monitoring System), electronic mirror, lamp, etc., provided in the vehicle 1 as output devices that output visual information.
  • CMS Camera Monitoring System
  • the output device through which the HMI 31 outputs auditory information can be, for example, an audio speaker, headphones, or earphones.
  • Haptic elements using haptic technology can be used as an output device for the HMI 31 to output haptic information.
  • the haptic elements are provided on parts of the vehicle 1 that are in contact with passengers, such as the steering wheel and the seat.
  • the vehicle control unit 32 controls each part of the vehicle 1.
  • the vehicle control unit 32 includes a steering control unit 81, a brake control unit 82, a drive control unit 83, a body control unit 84, a light control unit 85, and a horn control unit 86.
  • the steering control unit 81 detects and controls the state of the steering system of the vehicle 1.
  • the steering system includes, for example, a steering mechanism including a steering wheel, an electric power steering, etc.
  • the steering control unit 81 includes, for example, a steering ECU that controls the steering system, an actuator that drives the steering system, etc.
  • the brake control unit 82 detects and controls the state of the brake system of the vehicle 1.
  • the brake system includes, for example, a brake mechanism including a brake pedal, an ABS (Antilock Brake System), a regenerative brake mechanism, etc.
  • the brake control unit 82 includes, for example, a brake ECU that controls the brake system, and an actuator that drives the brake system.
  • the drive control unit 83 detects and controls the state of the drive system of the vehicle 1.
  • the drive system includes, for example, an accelerator pedal, a drive force generating device for generating drive force such as an internal combustion engine or a drive motor, and a drive force transmission mechanism for transmitting the drive force to the wheels.
  • the drive control unit 83 includes, for example, a drive ECU for controlling the drive system, and an actuator for driving the drive system.
  • the body system control unit 84 detects and controls the state of the body system of the vehicle 1.
  • the body system includes, for example, a keyless entry system, a smart key system, a power window device, a power seat, an air conditioning system, an airbag, a seat belt, a shift lever, etc.
  • the body system control unit 84 includes, for example, a body system ECU that controls the body system, an actuator that drives the body system, etc.
  • the light control unit 85 detects and controls the state of various lights of the vehicle 1. Examples of lights to be controlled include headlights, backlights, fog lights, turn signals, brake lights, projection, and bumper displays.
  • the light control unit 85 includes a light ECU that controls the lights, an actuator that drives the lights, and the like.
  • the horn control unit 86 detects and controls the state of the car horn of the vehicle 1.
  • the horn control unit 86 includes, for example, a horn ECU that controls the car horn, an actuator that drives the car horn, etc.
  • FIG. 6 is a diagram showing an example of a sensing area by the camera 51, radar 52, LiDAR 53, ultrasonic sensor 54, etc. of the external recognition sensor 25 in FIG. 5. Note that FIG. 6 shows a schematic view of the vehicle 1 as seen from above, with the left end side being the front end of the vehicle 1 and the right end side being the rear end of the vehicle 1.
  • Sensing area 101F and sensing area 101B show examples of sensing areas of ultrasonic sensors 54. Sensing area 101F covers the periphery of the front end of vehicle 1 with multiple ultrasonic sensors 54. Sensing area 101B covers the periphery of the rear end of vehicle 1 with multiple ultrasonic sensors 54.
  • sensing results in sensing area 101F and sensing area 101B are used, for example, for parking assistance for vehicle 1.
  • Sensing area 102F to sensing area 102B show examples of sensing areas of a short-range or medium-range radar 52. Sensing area 102F covers a position farther in front of the vehicle 1 than sensing area 101F. Sensing area 102B covers a position farther in the rear of the vehicle 1 than sensing area 101B. Sensing area 102L covers the rear periphery of the left side of the vehicle 1. Sensing area 102R covers the rear periphery of the right side of the vehicle 1.
  • the sensing results in sensing area 102F are used, for example, to detect vehicles, pedestrians, etc., that are in front of vehicle 1.
  • the sensing results in sensing area 102B are used, for example, for collision prevention functions behind vehicle 1.
  • the sensing results in sensing area 102L and sensing area 102R are used, for example, to detect objects in blind spots to the sides of vehicle 1.
  • Sensing area 103F to sensing area 103B show examples of sensing areas by camera 51. Sensing area 103F covers a position farther in front of vehicle 1 than sensing area 102F. Sensing area 103B covers a position farther in the rear of vehicle 1 than sensing area 102B. Sensing area 103L covers the periphery of the left side of vehicle 1. Sensing area 103R covers the periphery of the right side of vehicle 1.
  • the sensing results in sensing area 103F can be used, for example, for recognizing traffic signals and traffic signs, lane departure prevention support systems, and automatic headlight control systems.
  • the sensing results in sensing area 103B can be used, for example, for parking assistance and surround view systems.
  • the sensing results in sensing area 103L and sensing area 103R can be used, for example, for surround view systems.
  • Sensing area 104 shows an example of the sensing area of LiDAR 53. Sensing area 104 covers a position farther in front of vehicle 1 than sensing area 103F. On the other hand, sensing area 104 has a narrower range in the left-right direction than sensing area 103F.
  • the sensing results in the sensing area 104 are used, for example, to detect objects such as surrounding vehicles.
  • Sensing area 105 shows an example of the sensing area of long-range radar 52. Sensing area 105 covers a position farther in front of vehicle 1 than sensing area 104. On the other hand, sensing area 105 has a narrower range in the left-right direction than sensing area 104.
  • the sensing results in the sensing area 105 are used, for example, for ACC (Adaptive Cruise Control), emergency braking, collision avoidance, etc.
  • ACC Adaptive Cruise Control
  • emergency braking braking
  • collision avoidance etc.
  • the sensing areas of the cameras 51, radar 52, LiDAR 53, and ultrasonic sensors 54 included in the external recognition sensor 25 may have various configurations other than those shown in FIG. 6. Specifically, the ultrasonic sensor 54 may also sense the sides of the vehicle 1, and the LiDAR 53 may sense the rear of the vehicle 1.
  • the installation positions of the sensors are not limited to the examples described above. The number of sensors may be one or more.
  • FIG. 7 shows an example of the configuration of an information processing system 201 to which the present technology is applied.
  • the information processing system 201 is, for example, a system that realizes functions of the vehicle control system 11 of the vehicle 1 in FIG. 5 that are mainly executed by software.
  • the information processing system 201 includes high-performance ECUs 211-1 through 211-m and legacy ECUs 212-1 through 212-n.
  • the high-performance ECUs 211-1 through 211-m and legacy ECUs 212-1 through 212-n are each connected to a bus 213 and can communicate with each other.
  • the high-performance ECU 211 when there is no need to distinguish between the high-performance ECU 211-1 through the high-performance ECU 211-m, they will simply be referred to as the high-performance ECU 211.
  • the legacy ECU 212-1 through the legacy ECU 212-n when there is no need to distinguish between the legacy ECU 212-1 through the legacy ECU 212-n, they will simply be referred to as the legacy ECU 212.
  • the description of the bus 213 will be omitted.
  • the high-performance ECU 211 and the legacy ECU 212 communicate via the bus 213, it will simply be described that the high-performance ECU 211 and the legacy ECU 212 communicate.
  • the high-performance ECU 211 is, for example, a high-performance ECU equipped with a SoC.
  • the high-performance ECU 211 is, for example, an ECU in which various functions are integrated. In other words, one high-performance ECU 211 is capable of executing various functions of the vehicle 1. Furthermore, the high-performance ECU 211 controls software upgrades and rollbacks of the legacy ECU 212 as necessary.
  • the legacy ECU 212 is, for example, an ECU with lower performance than the high-performance ECU 211.
  • the legacy ECU 212 is an ECU with limited functions that is installed in conventional vehicles.
  • the number of high-performance ECUs 211 and legacy ECUs 212 is not particularly limited. Also, it is not necessary to provide the legacy ECUs 212 in the information processing system 201.
  • Fig. 8 shows an example of the configuration of the high-performance ECU 211.
  • the high-performance ECU 211 has a configuration similar to that of the NAND flash system 2051 in Fig. 2.
  • the high-performance ECU 211 includes a CPU 251, a flash memory 252, and a RAM 253.
  • the flash memory 252 is, for example, a NAND flash memory.
  • the RAM 253 is, for example, a DDR SDRAM.
  • the CPU 251 and flash memory 252 communicate using a storage I/F.
  • the CPU 251 and RAM 253 communicate using a memory I/F.
  • the CPU 251 executes a specific control program to realize a software management unit 261 that manages the software and data stored in the flash memory 252.
  • the software management unit 261 includes a main module 271, a backup module 272, and a data migration module 273.
  • the main module 271 controls the entire software management unit 261 while communicating with the outside. For example, the main module 271 controls the execution of the software of the high-performance ECU 211, as well as the upgrade and roll-down of the software. Also, for example, the main module 271 controls the upgrade and roll-down of the software of the legacy ECU 212 as necessary.
  • the backup module 272 controls the backup of the software and data of the high-performance ECU 211. Also, for example, the backup module 272 controls the backup of the software and data of the legacy ECU 212 as necessary.
  • the data migration module 273, controls data migration of the high-performance ECU 211. Also, for example, the data migration module 273 controls data migration of the legacy ECU 212 as necessary.
  • the flash memory 252 stores, for example, the software executed by the CPU 251 and data that the software uses and needs to hold.
  • the flash memory 252 also stores (backs up) the software and data of the legacy ECU 212, for example, as needed.
  • the flash memory 252 has a main system area A, a non-volatile data area A, a main system area B, a non-volatile data area B, a SW area for other ECUs, and a data area for other ECUs.
  • Main system area A and main system area B each store software executed by CPU 251.
  • Main system area A and main system area B can each store different versions of software.
  • Main system area A and main system area B are basically non-rewriteable (RO) except when updating the software.
  • Non-volatile data area A is an area that corresponds to main system area A, and stores data used by the software stored in main system area A.
  • Non-volatile data area A is rewritable (RW).
  • Non-volatile data area B corresponds to main system area B, and stores data used by the software stored in main system area B.
  • Non-volatile data area B is rewritable (RW).
  • the other ECU SW area is an area for backing up the software of the legacy ECU 212.
  • the other ECU SW area is basically non-rewriteable (RO) except when backing up the software.
  • the other ECU data area is an area for backing up data of the legacy ECU 212.
  • the other ECU data area is basically non-rewriteable (RO) except when backing up data.
  • this diagram shows one each of the SW area for other ECUs and the data area for other ECUs
  • the number of SW areas for other ECUs and the data areas for other ECUs is not particularly limited.
  • the number of SW areas for other ECUs and the data areas for other ECUs is set based on the number of legacy ECUs 212 that back up software and data.
  • RAM 253 temporarily stores, for example, the software to be executed and data that is used temporarily by the software and does not need to be retained.
  • Fig. 9 shows an example of the configuration of the legacy ECU 212.
  • the legacy ECU 212 has a configuration similar to that of the NOR type flash system 2001 in Fig. 1.
  • the legacy ECU 212 includes a CPU 301, a flash memory 302, and a RAM 303.
  • a NOR type flash memory is used for the flash memory 302.
  • an SRAM is used for the RAM 303.
  • an external NVRAM 304 is provided as necessary.
  • the CPU 301 communicates with the flash memory 302 and RAM 303 using a storage I/F.
  • the CPU 301 communicates with the external NVRAM 304 using a memory I/F.
  • the CPU 301 executes a specific control program to realize a software management unit 311 that manages the software and data stored in the flash memory 302.
  • the software management unit 311 includes a main module 321 and a data migration module 322.
  • the main module 321 controls the entire software management unit 311 while communicating with the outside.
  • the main module 321 controls the execution of the software of the legacy ECU 212, as well as the upgrade and roll-down of the software.
  • the data migration module 322 controls data migration of the legacy ECU 212. Note that the data migration module 322 does not necessarily have to be provided.
  • Flash memory 302 stores, for example, software executed by CPU 301 and data that the software needs to use and retain.
  • Flash memory 302 has a main system area and a non-volatile data area.
  • the main system area stores the software executed by the CPU 301.
  • the main system area is basically non-rewriteable (RO) except when updating or rolling down the software.
  • the non-volatile data area corresponds to the main system area A and stores data used by the software stored in the main system area.
  • the non-volatile data area is rewritable (RW).
  • RAM 303 temporarily stores data that is used temporarily by software and does not need to be retained, for example.
  • the external NVRAM 304 stores part of the data when the capacity of the flash memory 302 is insufficient.
  • FW (Ver.X) currently being executed is stored in the main system area A. It is assumed that data for FW (Ver.X) used by FW (Ver.X) is stored in the non-volatile data area A according to the format supported by FW (Ver.X). It is assumed that FW (Ver.X-1), which is one version earlier than FW (Ver.X), is stored in the main system area B. It is assumed that data for FW (Ver.X-1) used by FW (Ver.X-1) is stored in the non-volatile data area B according to the format supported by FW (Ver.X-1).
  • the main system area in which the FW to be executed is stored and the non-volatile data area corresponding to the main system area are referred to as the valid area or the area in use.
  • the FW stored in the valid area or the area in use is also referred to as the valid FW or the FW in use.
  • the data stored in the valid area or the area in use is also referred to as the valid data or the data in use.
  • the main system area in which the FW not to be executed is stored and the non-volatile data area corresponding to the main system area are referred to as the reserve area.
  • step S1 the high-performance ECU 211 receives a FW update request, for example, from an external server or the like via the communication unit 22 or the like, over the air.
  • the FW update request includes, for example, a FW for version upgrade (hereinafter referred to as an update FW).
  • step S2 a FW update request is provided to the main module 271.
  • step S3 the main module 271 transitions to the update mode. This causes the high-performance ECU 211 to temporarily stop normal operation, and normal operation such as driving the vehicle 1 is temporarily disabled.
  • step S4 the main module 271 sends a backup request to the backup module 272.
  • step S5 the backup module 272 copies the data in the non-volatile data area in use to the spare non-volatile data area. This updates the data in the spare non-volatile data area with the data in the non-volatile data area in use, and the two pieces of data are synchronized.
  • the data in the spare non-volatile data area B is updated with the FW (Ver.X) data in the non-volatile data area A that is in use, and the data in the non-volatile data area A and the data in the non-volatile data area B are synchronized.
  • FW VeryX
  • step S6 the backup module 272 notifies the main module 271 that the backup is complete.
  • step S7 the main module 271 writes the update FW to the spare main system area. This causes the FW in the spare main system area to be updated with the update FW.
  • the FW in the main system area B is updated with the FW for updating the next version (Ver.X+1).
  • the FW in the main system area B is updated to the latest FW (Ver.X+1), and the data in the non-volatile data area B is updated to the data for the FW (Ver.X) of the previous version.
  • step S8 the main module 271 changes the startup system. That is, the main module 271 swaps the reserve area with the used area, and sets the FW stored in the used area after the change as the execution target. As a result, the FW set as the execution target will be started the next time the high-performance ECU 211 is started.
  • main system area B and non-volatile data area B are set as used areas, and main system area A and non-volatile data area A are set as spare areas. Then, FW (Ver.X+1) in main system area B is set as the execution target, and FW (Ver.X+1) will be started the next time the high-performance ECU 211 is started.
  • step S21 the high-performance ECU 211 receives a startup request, for example, from the vehicle control ECU 21.
  • step S22 a startup request is provided to the main module 271.
  • steps S23 to S25 are executed.
  • step S23 the main module 271 requests the data migration module 273 to execute a data format migration process (data migration).
  • step S24 the data migration module 273 updates the format of the data in the non-volatile data area used by the upgraded FW (hereinafter referred to as the new FW).
  • the data migration module 273 converts the format of the data in the non-volatile data area used by the new FW into a format supported by the new FW.
  • the data in non-volatile data area B used by the new FW (Ver.X+1) is converted to a format compatible with FW (Ver.X+1).
  • the data for FW (Ver.X) stored in non-volatile data area B is converted to data for FW (Ver.X+1).
  • FW (Ver.X+1) stored in main system area B becomes executable.
  • step S25 the data migration module 273 notifies the main module 271 of the completion of the data migration.
  • steps S23 to S25 can be omitted.
  • step S26 if the high-performance ECU 211 is started for the second or subsequent time after the FW update process, steps S23 to S25 are skipped and the process proceeds to step S26.
  • step S26 the main module 271 starts the FW to be executed. That is, the main module 271 places at least a portion of the FW to be executed in the RAM 253 and then starts it.
  • FW (Ver.X+1) stored in main system area B is placed in RAM 253 and then started up. Then, data for FW (Ver.X+1) stored in non-volatile data area B is placed in RAM 253 as appropriate, and FW (Ver.X+1) is executed while being used.
  • step S41 the high-performance ECU 211 receives a rollback request, for example, via OTA from an external server or the like via the communication unit 22 or the like.
  • step S42 a rollback request is provided to the main module 271.
  • step S43 the activation system is changed in the same manner as in step S8 of FIG. 10.
  • main system area A and non-volatile data area A are set as in-use areas, and main system area B and non-volatile data area B are set as spare areas. Then, FW (Ver.X) in main system area A is set as the execution target, and FW (Ver.X) will be started the next time the high-performance ECU 211 is started.
  • step S5 data in the non-volatile data area in use is copied to a spare non-volatile data area. Therefore, the larger the amount of data in the non-volatile data area, the longer it takes to copy the data in the non-volatile data area, and the longer it takes to complete the FW update process.
  • the vehicle 1 cannot perform normal operations such as driving, which may result in reduced convenience for the user.
  • steps S101 to S104 are executed.
  • the main module 271 determines that there is a possibility that a rollback will occur in the future until it is notified by the FW provider or the like that a rollback will not occur in the future.
  • the main module 271 determines thereafter that a rollback will not occur in the future.
  • the main module 271 determines that there is a possibility that a rollback will occur in the future during the period from when the firmware of the high-performance ECU 211 was last updated until a specified time has elapsed.
  • the main module 271 determines that a rollback will not occur in the future after a specified time has elapsed since the firmware of the high-performance ECU was last updated.
  • the specified time may be preset to a specific time, such as one week or one month.
  • the specified time may be specified by the FW provider, for example, when updating the FW.
  • the timing for backup is set, for example, to a time when the vehicle 1 is unlikely to be used.
  • the timing for backup is set to when the vehicle 1 is charging and at a specified date and time.
  • the specified date and time is set, for example, to a specified time every day, a specified time on a specified day of the week, or a specified time on a specified date, etc.
  • step S101 the main module 271 sends a backup request to the backup module 272.
  • step S102 is executed.
  • step S102 data in the non-volatile data area in use is copied to a spare non-volatile data area, similar to the processing in step S5 of FIG. 10.
  • the data for FW (Ver.X+1) in non-volatile data area B that is currently in use is copied to spare non-volatile data area A.
  • the data in spare non-volatile data area A is updated with the data for FW (Ver.X+1) in non-volatile data area B that is currently in use, and the data in non-volatile data area A and the data in non-volatile data area B are synchronized.
  • the data for FW (Ver.X+1) in non-volatile data area B is backed up to non-volatile data area A.
  • step S103 if there is a past backup history, that is, if this backup is the second or subsequent backup since the FW was updated, the process of step S103 is executed.
  • step S103 the backup module 272 copies the difference from the non-volatile data area in use to the spare non-volatile data area.
  • the backup module 272 copies the difference between the data in the spare non-volatile data area and the data in the in-use non-volatile data area to the spare non-volatile data area.
  • data that exists in the in-use non-volatile data area but does not exist in the spare non-volatile data area is copied to the spare non-volatile data area.
  • the backup module 272 deletes the difference between the data in the spare non-volatile data area and the data in the non-volatile data area in use from the spare non-volatile data area. In other words, data that exists in the spare non-volatile data area but does not exist in the data in the non-volatile data area in use is deleted from the spare non-volatile data area.
  • data that exists in the in-use non-volatile data area B but not in the spare non-volatile data area A is copied to non-volatile data area A.
  • data that exists in the spare non-volatile data area A but not in the in-use non-volatile data area B is deleted from non-volatile data area A.
  • the data in the spare non-volatile data area A is synchronized with the data for FW (Ver. X+1) in the in-use non-volatile data area B.
  • step S104 the backup module 272 notifies the main module 271 that the backup is complete.
  • the data in the spare non-volatile data area is synchronized with the data in the non-volatile data area in use, for example periodically, so that the two data areas match.
  • steps S121 to S124 the same processing as in steps S1 to S4 in FIG. 10 is performed.
  • step S125 If there is a data difference between the non-volatile data areas, the process of step S125 is executed.
  • step S125 the difference from the non-volatile data area in use is copied to the spare non-volatile data area, similar to the processing in step S103 of FIG. 16. This synchronizes the data in the spare non-volatile data area with the data in the non-volatile data area in use.
  • steps S126 to S128 the same processing as in steps S6 to S8 of FIG. 10 is performed.
  • the FW in the main system area A is updated with FW (Ver.X+2). Furthermore, the main system area A and non-volatile data area A are set as used areas, and the main system area B and non-volatile data area B are set as spare areas. Then, the FW (Ver.X+2) in the main system area A is set as the execution target, and the FW (Ver.X+2) will be started the next time the high-performance ECU 211 is started.
  • the FW (Ver. Y) currently being executed by the legacy ECU 212 is stored in the main system area of the flash memory 302 of the legacy ECU 212. It is assumed that data for the FW (Ver. Y) used by the FW (Ver. Y) is stored in the non-volatile data area of the flash memory 302 of the legacy ECU 212 according to a format supported by the FW (Ver. Y). It is assumed that the previous version of the FW (Ver. Y-1) is stored in the SW area for other ECUs of the flash memory 252 of the high-performance ECU 211. It is assumed that data for the FW (Ver. Y-1) used by the FW (Ver. Y-1) is stored in the data area for other ECUs of the flash memory 252 of the high-performance ECU 211 according to a format supported by the FW (Ver. Y-1).
  • the high-performance ECU 211 receives a FW update request for the legacy ECU 212, for example, by OTA from an external server or the like via the communication unit 22 or the like.
  • the FW update request for the legacy ECU 212 includes, for example, a FW for upgrading the legacy ECU 212 (update FW).
  • step S202 a firmware update request for the legacy ECU 212 is supplied to the main module 271 of the high-performance ECU 211.
  • step S203 the main module 271 of the high-performance ECU 211 transitions to the update mode. This causes the high-performance ECU 211 to temporarily stop normal operation, and normal operation such as driving the vehicle 1 is temporarily disabled.
  • step S204 the main module 271 of the high-performance ECU 211 sends a FW transfer request to the legacy ECU 212.
  • the main module 321 of the legacy ECU 212 receives a FW transfer request from the high-performance ECU 211.
  • step S205 the FW is transferred from the legacy ECU 212 to the main module 271 of the high-performance ECU 211.
  • the main module 321 of the legacy ECU 212 transmits the currently used pre-update FW stored in the main system area of the flash memory 302 to the high-performance ECU 211.
  • the main module 271 of the high-performance ECU 211 receives the FW from the legacy ECU 212.
  • the FW (Ver. Y) stored in the main system area of the legacy ECU 212 is transferred from the legacy ECU 212 to the high-performance ECU 211.
  • step S206 the main module 271 of the high-performance ECU 211 sends a data transfer request to the legacy ECU 212.
  • the main module 321 of the legacy ECU 212 receives a data transfer request from the high-performance ECU 211.
  • step S207 data is transferred from the legacy ECU 212 to the main module 271 of the high-performance ECU 211.
  • the main module 321 of the legacy ECU 212 transmits the data that is currently in use and not yet updated, which is stored in the non-volatile data area of the flash memory 302, to the high-performance ECU 211.
  • the main module 271 of the high-performance ECU 211 receives data from the legacy ECU 212.
  • data for FW (Ver. Y) stored in the non-volatile data area of the legacy ECU 212 is transferred from the legacy ECU 212 to the high-performance ECU 211.
  • step S208 the main module 271 of the high-performance ECU 211 sends a backup request to the backup module 272.
  • step S209 the backup module 272 of the high-performance ECU 211 backs up the firmware and data of the legacy ECU 212 before the update.
  • the backup module 272 copies the FW received from the legacy ECU 212 to the other ECU SW area of the flash memory 252.
  • the FW in the other ECU SW area of the high-performance ECU 211 is currently in use and is updated by the FW of the legacy ECU 212 before the update.
  • the FW of the legacy ECU 212 before the update is backed up in the other ECU SW area of the high-performance ECU 211.
  • the backup module 272 copies the data received from the legacy ECU 212 to the other ECU data area of the flash memory 252.
  • the data in the other ECU data area of the high-performance ECU 211 is currently in use and is updated with the firmware data of the legacy ECU 212 before the update.
  • the firmware data of the legacy ECU 212 before the update is backed up in the other ECU data area of the high-performance ECU 211.
  • the FW in the SW area for other ECUs of the high-performance ECU 211 is currently in use and will be updated with the FW (Ver. Y) before the update.
  • the data in the data area for other ECUs of the high-performance ECU 211 is currently in use and will be updated with the data for the FW (Ver. Y) before the update.
  • step S210 the backup module 272 of the high-performance ECU 211 notifies the main module 271 that the backup is complete.
  • step S211 the main module 271 of the high-performance ECU 211 transmits a FW update request to the legacy ECU 212.
  • the FW update request includes, for example, the FW to be updated.
  • the main module 321 of the legacy ECU 212 receives a FW update request from the high-performance ECU 211.
  • step S212 the main module 321 of the legacy ECU 212 updates the FW. Specifically, the main module 321 writes the update FW to the main system area of the flash memory 302. As a result, the FW in the main system area of the flash memory 302 is updated with the update FW.
  • the firmware in the main system area of the legacy ECU 212 is updated with the latest firmware (Ver. Y+1).
  • step S213 the main module 321 of the legacy ECU 212 notifies the main module 271 of the high-performance ECU 211 of the completion of the FW update.
  • steps S214 to S219 are executed.
  • step S214 the main module 271 of the high-performance ECU 211 requests the data migration module 273 to execute a data format migration process (data migration).
  • step S215 the data migration module 273 of the high-performance ECU 211 generates data for the updated FW. Specifically, the data migration module 273 generates data by converting the data in the other ECU data area of the high-performance ECU 211 into a format compatible with the updated FW.
  • data for FW (Ver. Y+1) is generated according to the format that the updated FW (Ver. Y+1) supports.
  • step S216 the data migration module 273 of the high-performance ECU 211 transmits the updated FW data to the main module 271.
  • step S217 the main module 271 of the high-performance ECU 211 transmits a data update request to the legacy ECU 212.
  • the data update request includes, for example, data for the updated FW.
  • the main module 321 of the legacy ECU 212 receives a data update request from the high-performance ECU 211.
  • step S218 the main module 321 of the legacy ECU 212 updates the data. Specifically, the main module 321 copies the updated FW data received from the high-performance ECU 211 to the non-volatile data area of the flash memory 302. As a result, the data in the non-volatile data area of the flash memory 302 is updated with the updated FW data.
  • the data in the non-volatile data area of the legacy ECU 212 is updated with data for FW (Ver. Y+1).
  • the legacy ECU 212 becomes capable of executing FW (Ver. Y+1).
  • step S219 the main module 321 of the legacy ECU 212 notifies the main module 271 of the high-performance ECU 211 of the completion of the data update.
  • step S220 the main module 271 of the high-performance ECU 211 requests the legacy ECU 212 to execute a data format migration process (data migration).
  • step S221 the data migration module 322 of the legacy ECU 212 updates the format of the data in the non-volatile data area of the legacy ECU 212.
  • data for FW (Ver. Y) in the non-volatile data area of the legacy ECU 212 is converted to data for FW (Ver. Y+1) that conforms to a format supported by FW (Ver. Y+1).
  • the legacy ECU 212 becomes capable of executing FW (Ver. Y+1).
  • step S222 the data migration module 273 of the legacy ECU 212 notifies the main module 271 of the high-performance ECU 211 of the completion of data migration.
  • step S241 the high-performance ECU 211 receives a rollback request for the legacy ECU 212 via OTA, for example, from an external server or the like via the communication unit 22 or the like.
  • step S242 a rollback request is supplied to the main module 271 of the high-performance ECU 211.
  • step S243 the main module 271 of the high-performance ECU 211 transmits a FW rollback request to the legacy ECU 212.
  • the FW rollback request includes, for example, the FW stored in the SW area for other ECUs of the high-performance ECU 211, i.e., the previous version of the FW.
  • the main module 321 of the legacy ECU 212 receives a FW rollback request from the high-performance ECU 211.
  • step S244 the main module 321 of the legacy ECU 212 rolls back the FW. Specifically, the main module 321 copies the FW included in the FW rollback request, i.e., the previous version of the FW, to the main system area of the flash memory 302. As a result, the FW in the main system area of the legacy ECU 212 is rolled back to the previous version of the FW.
  • the FW in the main system area of the legacy ECU 212 is rolled back from FW(Ver.Y+1) to FW(Ver.Y).
  • step S245 the main module 321 of the legacy ECU 212 notifies the main module 271 of the high-performance ECU 211 of the completion of the FW rollback.
  • step S246 the main module 271 of the high-performance ECU 211 sends a data rollback request to the legacy ECU 212.
  • the data rollback request includes, for example, data stored in the other ECU data area of the high-performance ECU 211, i.e., data for the previous version of the FW.
  • the main module 321 of the legacy ECU 212 receives a data rollback request from the high-performance ECU 211.
  • step S247 the main module 321 of the legacy ECU 212 rolls back the data. Specifically, the main module 321 copies the data included in the data rollback request, i.e., the data for the previous version of the FW, to the non-volatile data area of the flash memory 302. As a result, the data in the non-volatile data area of the legacy ECU 212 is rolled back to the data for the previous version of the FW.
  • the data in the non-volatile data area of the legacy ECU 212 is rolled back from data for FW (Ver. Y+1) to data for FW (Ver. Y). This makes the legacy ECU 212 capable of executing the previous version of FW (Ver. Y).
  • step S248 the main module 321 of the legacy ECU 212 notifies the main module 271 of the high-performance ECU 211 of the completion of the data rollback.
  • the legacy ECU 212 can execute the previous version of the firmware as is without any special data conversion, etc.
  • step S209 data in the non-volatile data area of the legacy ECU 212 is copied to the other ECU data area of the high-performance ECU 211. Therefore, the larger the amount of data in the non-volatile data area of the legacy ECU 212, the longer it takes to copy the data, and the longer it takes to perform the FW update process of the legacy ECU 212.
  • the vehicle 1 cannot perform normal operations such as driving, which may result in reduced convenience for the user.
  • the main module 271 of the high-performance ECU 211 determines that a rollback of the legacy ECU 212 will not occur in the future and that it is time to perform a backup, the processes of steps S301 to S306 are executed.
  • the method for determining whether a rollback of the legacy ECU 212 will occur in the future is the same as the method for determining whether a rollback of the high-performance ECU 211 will occur in the backup process of the high-performance ECU 211 described above with reference to FIG. 16.
  • the timing of the backup is also the same as that of the backup process of the high-performance ECU 211 described above with reference to FIG. 16.
  • steps S301 to S303 the same processing as in steps S206 to S208 of FIG. 20 described above is executed.
  • step S304 If this is the first backup, i.e., if this is the first backup since the firmware of the legacy ECU 212 was updated, the process of step S304 is executed.
  • step S304 the backup module 272 of the high-performance ECU 211 copies the data of the legacy ECU 212 to the other ECU data area. That is, the backup module 272 copies the data received from the legacy ECU 212 to the other ECU data area of the flash memory 252.
  • the data in the other ECU data area of the high-performance ECU 211 is updated by the data in the non-volatile data area of the legacy ECU 212, and the data in the non-volatile data area of the legacy ECU 212 and the data in the other ECU data area of the high-performance ECU 211 are synchronized.
  • the data in the other ECU data area of the high-performance ECU 211 is updated by the FW (Ver. Y+1) data in the non-volatile data area of the legacy ECU 212, and the data in the non-volatile data area of the legacy ECU 212 and the other ECU data area of the high-performance ECU 211 are synchronized.
  • the FW (Ver. Y+1) data in the non-volatile data area of the legacy ECU 212 is backed up in the other ECU data area of the high-performance ECU 211.
  • step S305 is executed.
  • step S305 the backup module 272 of the high-performance ECU 211 copies the difference between the data of the legacy ECU 212 and the high-performance ECU 211 to the data area for other ECUs.
  • the backup module 272 copies the difference between the data in the other ECU data area of the high-performance ECU 211 and the data in the non-volatile data area of the legacy ECU 212 to the other ECU data area.
  • data that exists in the non-volatile data area of the legacy ECU 212 but does not exist in the other ECU data area of the high-performance ECU 211 is copied to the other ECU data area.
  • the backup module 272 deletes the difference between the data in the other ECU data area of the high-performance ECU 211 and the data in the non-volatile data area of the legacy ECU 212 from the other ECU data area.
  • data that exists in the other ECU data area of the high-performance ECU 211 and does not exist in the non-volatile data area of the legacy ECU 212 is deleted from the other ECU data area.
  • the data in the other ECU data area of the high-performance ECU 211 is synchronized with the data for FW (Ver. Y+1) in the non-volatile data area of the legacy ECU 212.
  • step S306 the backup module 272 of the high-performance ECU 211 notifies the main module 271 that the backup is complete.
  • the data area for other ECUs in the high-performance ECU 211 is synchronized with the non-volatile data area of the legacy ECU 212, for example periodically, so that the data of both is consistent.
  • steps S301 to S308 the same processing as in steps S201 to S208 in FIG. 20 is performed.
  • step S309 is executed.
  • step S309 the backup module 272 of the high-performance ECU 211 backs up the data differences and firmware of the legacy ECU 212 before the update.
  • the backup module 272 copies the FW received from the legacy ECU 212 to the other ECU SW area of the flash memory 252, similar to the process of step S209 in FIG. 20 described above.
  • the backup module 272 also copies the differences from the data of the legacy ECU 212 to the data area for other ECUs, similar to the processing of step S305 in FIG. 25 described above.
  • the FW in the other ECU SW area of the high-performance ECU 211 is updated with FW (Ver. Y+1).
  • the data in the other ECU data area of the high-performance ECU 211 is synchronized with the data for FW (Ver. Y+1) in the non-volatile data area of the legacy ECU 212.
  • the FW (Ver. Y+1) before the update and the data for FW (Ver. Y+1) are backed up by the high-performance ECU 211.
  • step S310 is executed.
  • step S310 the backup module 272 of the high-performance ECU 211 backs up the FW of the legacy ECU 212 before the update. Specifically, the backup module 272 copies the FW received from the legacy ECU 212 to the other ECU SW area of the flash memory 252, similar to the process of step S209 in FIG. 20 described above.
  • the FW in the other ECU SW area of the high-performance ECU 211 is updated with FW (Ver. Y+1).
  • the data in the other ECU data area of the high-performance ECU 211 is already synchronized with the data for FW (Ver. Y+1) in the non-volatile data area of the legacy ECU 212.
  • the FW (Ver. Y+1) before the update and the data for FW (Ver. Y+1) are backed up by the high-performance ECU 211.
  • steps S311 to S323 the same processing as in step S210 in FIG. 20 to step S222 in FIG. 21 described above is executed.
  • the FW in the main system area of the legacy ECU 212 is updated with FW (Ver. Y+2).
  • the data in the non-volatile data area of the legacy ECU 212 is updated with data for FW (Ver. Y+2) that conforms to the format supported by FW (Ver. Y+2).
  • the legacy ECU 212 becomes capable of executing FW (Ver. Y+2).
  • the high-performance ECU 211 does not necessarily need to back up the FW of the legacy ECU 212. In this case, it is also possible to delete the SW area for other ECUs in the high-performance ECU 211.
  • the high-performance ECU 211 may be provided with two SW areas for other ECUs and two data areas for other ECUs for one legacy ECU 212. The high-performance ECU 211 may then back up the FW to be executed and the data for that FW, as well as older versions of the FW and the data for that FW.
  • This technology can also be applied to cases where non-volatile, rewritable memory (storage unit) other than flash memory is used, for example.
  • This technology can be applied to devices and systems other than vehicles that perform software updates and rollbacks via OTA, etc.
  • Examples include smartphones, PCs, tablet devices, digital cameras, robots, and moving objects other than vehicles.
  • the above-mentioned series of processes can be executed by hardware or software.
  • the programs constituting the software are installed in a computer.
  • the computer includes a computer built into dedicated hardware, and a general-purpose personal computer, for example, capable of executing various functions by installing various programs.
  • FIG. 30 is a block diagram showing an example of the hardware configuration of a computer that executes the above-mentioned series of processes using a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • an input/output interface 1005 Connected to the input/output interface 1005 are an input unit 1006, an output unit 1007, a storage unit 1008, a communication unit 1009, and a drive 1010.
  • the input unit 1006 includes an input switch, a button, a microphone, an image sensor, etc.
  • the output unit 1007 includes a display, a speaker, etc.
  • the storage unit 1008 includes a hard disk, a non-volatile memory, etc.
  • the communication unit 1009 includes a network interface, etc.
  • the drive 1010 drives removable media 1011 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 1001 loads a program recorded in the storage unit 1008, for example, into the RAM 1003 via the input/output interface 1005 and the bus 1004, and executes the program, thereby performing the above-mentioned series of processes.
  • the program executed by the computer 1000 can be provided by being recorded on a removable medium 1011 such as a package medium, for example.
  • the program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the storage unit 1008 via the input/output interface 1005 by inserting the removable medium 1011 into the drive 1010.
  • the program can also be received by the communication unit 1009 via a wired or wireless transmission medium and installed in the storage unit 1008.
  • the program can be pre-installed in the ROM 1002 or storage unit 1008.
  • the program executed by the computer may be a program in which processing is performed chronologically in the order described in this specification, or a program in which processing is performed in parallel or at the required timing, such as when called.
  • a system refers to a collection of multiple components (devices, modules (parts), etc.), regardless of whether all the components are in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device in which multiple modules are housed in a single housing, are both systems.
  • this technology can be configured as cloud computing, in which a single function is shared and processed collaboratively by multiple devices over a network.
  • each step described in the sequence diagram above can be executed by a single device, or can be shared and executed by multiple devices.
  • one step includes multiple processes
  • the multiple processes included in that one step can be executed by one device, or can be shared and executed by multiple devices.
  • a software management department that manages software
  • a storage unit including a first software area, a second software area, a first data area corresponding to the first software area, and a second data area corresponding to the second software area
  • an information processing device wherein the software management unit stores a first current software, which is the software to be executed, in one of the first software area and the second software area, and stores a first old software, which is an earlier version of software than the first current software, in the other software area, stores data in a format supported by the first current software in one data area corresponding to one of the software areas of the first data area and the second data area, and stores data in a format supported by the first old software in the other data area.
  • the information processing device is provided in a vehicle, The information processing device described in any of (3) to (6), wherein, when the software management unit determines that a rollback from the first current software to the first old software will not occur, the software management unit updates the data in the other data area with the data in the one data area while the vehicle is charging.
  • the software management unit stores the new software in the other software area, updates the data in the other data area with the data in one data area, and converts the updated data in the other data area into a format compatible with the new software.
  • the storage unit further includes a third data area, The information processing device described in (1), wherein the software management unit stores old data in the third data area, the old data being data in a format compatible with second old software, which is software of an earlier version than second current software, which is software to be executed by another information processing device. (10) The information processing device described in (9), wherein the software management unit transmits the old data in the third data area to the other information processing device when rolling back from the second current software to the second old software.
  • the software management unit generates new data that is data obtained by converting the current data into a format compatible with the new software, and transmits the new data to the other information processing device.
  • the storage unit further includes a third software area, The information processing device according to any one of (9) to (12), wherein the software management unit stores the second old software in the third software area.
  • the information processing device according to any one of (1) to (15), wherein the storage unit is a flash memory.
  • the information processing device is provided in a vehicle.
  • An information processing device storing a current software, which is software to be executed, in one of a first software area and a second software area of the storage unit, and storing an old software, which is software of a version previous to the current software, in the other software area;
  • An information processing method comprising: storing data in a format supported by the current software in one of a first data area and a second data area of the storage unit which corresponds to one of the software areas; and storing data in a format supported by the old software in the other data area.
  • Vehicle 11 Vehicle control system, 21 Vehicle control system, 201 Information processing system, 211-1 to 211-m High performance ECU, 212-1 to 212-n Legacy ECU, 251 CPU, 252 Flash memory, 253 RAM, 261 Software management unit, 271 Main module, 272 Backup module, 273 Data migration module, 301 CPU, 302 Flash memory, 303 RAM, 304 External NVRAM, 311 Software management unit, 321 Main module, 322 Data migration module

Landscapes

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

Abstract

本技術は、ソフトウエアのロールバックを適切に実行できるようにする情報処理装置及び情報処理方法に関する。 情報処理装置は、ソフトウエアを管理するソフトウエア管理部と、第1のソフトウエア領域、第2のソフトウエア領域、前記第1のソフトウエア領域に対応する第1のデータ領域、及び、前記第2のソフトウエア領域に対応する第2のデータ領域を備える記憶部とを備え、前記ソフトウエア管理部は、一方のソフトウエア領域に現ソフトウエアを格納し、他方のソフトウエア領域に旧ソフトウエアを格納し、一方のデータ領域に前記現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に前記旧ソフトウエアが対応するフォーマットのデータを格納する。本技術は、例えば、車両に適用できる。

Description

情報処理装置及び情報処理方法
 本技術は、情報処理装置及び情報処理方法に関し、特に、ソフトウエアのロールバックを適切に実行できるようにした情報処理装置及び情報処理方法に関する。
 従来、複数の車載ECU(Electronic Control Unit)のプログラムのアップデートをキャンセルする場合に、各ECUのキャンセル方法およびロールバック方法を管理することで、車載システム全体のソフトウエアを健全な状態に管理することが提案されている(例えば、特許文献1参照)。
特開2020-27630号公報
 特許文献1に記載の発明は、単機能かつ独立性が高いECUを多数用いた従来の車両のシステム構成を前提にしたものであると想定される。また、従来の車両では、データ構造は、ソフトウエアを構成する重要な要素であり、出荷時より変更されないことが通常であった。
 一方、今後、コネクティッドカー等の高機能な車両においては、例えば、ECUに高性能なSoC(System on a Chip)が用いられ、ECUが集約され、多機能化することが想定される。そして、車両のソフトウエア化が進むにつれて、ソフトウエア制御が増大するだけでなく、昨今のPC(Personal Computer)やスマートフォンのように、各種の動作データ(例えば、ユーザの好みの設定値等)が保持されるとともに、データ量が増大することが予測される。
 そして、PCやスマートフォンの例から、ソフトウエアが継続的に進化する場合、ソフトウエアの進化に合わせて、データ構造が変更されることが想定される。データ構造が変更された場合、保持されているデータが新しいソフトウエアに適した構造になるように、データマイグレーションと呼ばれる処理が、ソフトウエアの更新直後に実行される必要がある。
 一方、車載用のソフトウエアでは、アップデート時又はアップデート後に不具合が発生した場合の緊急措置として、過去のバージョンのソフトウエアに戻すロールバックが義務付けられている。
 しかしながら、新バージョンのソフトウエア用にデータマイグレーションが実行され、データ構造が変更されると、ロールバックが実行された場合に、旧バージョンのソフトウエアと整合性が取れなくなり、車両が正常に動作しなくなるおそれがある。
 本技術は、このような状況に鑑みてなされたものであり、ソフトウエアのロールバックを適切に実行できるようにするものである。
 本技術の第1の側面の情報処理装置は、ソフトウエアを管理するソフトウエア管理部と、第1のソフトウエア領域、第2のソフトウエア領域、前記第1のソフトウエア領域に対応する第1のデータ領域、及び、前記第2のソフトウエア領域に対応する第2のデータ領域を備える記憶部とを備え、前記ソフトウエア管理部は、前記第1のソフトウエア領域及び前記第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである第1の現ソフトウエアを格納し、他方のソフトウエア領域に、前記第1の現ソフトウエアより前のバージョンのソフトウエアである第1の旧ソフトウエアを格納し、前記第1のデータ領域及び前記第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記第1の現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に、前記第1の旧ソフトウエアが対応するフォーマットのデータを格納する。
 本技術の第2の側面の情報処理方法は、情報処理装置が、記憶部の第1のソフトウエア領域及び第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである現ソフトウエアを格納し、他方のソフトウエア領域に、前記現ソフトウエアの前のバージョンのソフトウエアである旧ソフトウエアを格納し、前記記憶部の第1のデータ領域及び第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に、前記旧ソフトウエアが対応するフォーマットのデータを格納する。
 本技術の第1の側面又は第2の側面においては、記憶部の第1のソフトウエア領域及び第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである現ソフトウエアが格納され、他方のソフトウエア領域に、前記現ソフトウエアの前のバージョンのソフトウエアである旧ソフトウエアが格納され、前記記憶部の第1のデータ領域及び第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記現ソフトウエアが対応するフォーマットのデータが格納され、他方のデータ領域に、前記旧ソフトウエアが対応するフォーマットのデータが格納される。
NOR型フラッシュシステムの構成例を示すブロック図である。 NAND型フラッシュシステムの構成例を示すブロック図である。 NAND型フラッシュシステムのNAND型フラッシュメモリの第1のデータ構成例を示す図である。 NAND型フラッシュシステムのNAND型フラッシュメモリの第2のデータ構成例を示す図である。 車両制御システムの構成例を示すブロック図である。 センシング領域の例を示す図である。 本技術を適用した情報処理システムの構成例を示すブロック図である。 高性能ECUの構成例を示すブロック図である。 レガシーECUの構成例を示すブロック図である。 高性能ECUのFWアップデート処理の第1の実施の形態を説明するためのシーケンス図である。 高性能ECUのFWアップデート処理の第1の実施の形態における高性能ECUのフラッシュメモリの状態の例を示す図である。 高性能ECUの起動処理を説明するためのシーケンス図である。 高性能ECUの起動処理における高性能ECUのフラッシュメモリの状態の例を示す図である。 高性能ECUのロールバック処理を説明するためのシーケンス図である。 高性能ECUのロールバック処理における高性能ECUのフラッシュメモリの状態の例を示す図である。 高性能ECUのバックアップ処理を説明するためのシーケンス図である。 高性能ECUのバックアップ処理における高性能ECUのフラッシュメモリの状態の例を示す図である。 高性能ECUのFWアップデート処理の第2の実施の形態を説明するためのシーケンス図である。 高性能ECUのFWアップデート処理の第2の実施の形態における高性能ECUのフラッシュメモリの状態の例を示す図である。 レガシーECUのFWアップデート処理の第1の実施の形態を説明するためのシーケンス図である。 レガシーECUのFWアップデート処理の第1の実施の形態を説明するためのシーケンス図である。 レガシーECUのFWアップデート処理の第1の実施の形態における高性能ECUのフラッシュメモリ及びレガシーECUのフラッシュメモリの状態の例を示す図である。 レガシーECUのロールバック処理を説明するためのシーケンス図である。 レガシーECUのロールバック処理における高性能ECUのフラッシュメモリ及びレガシーECUのフラッシュメモリの状態の例を示す図である。 レガシーECUのデータのバックアップ処理を説明するためのシーケンス図である。 レガシーECUのデータのバックアップ処理における高性能ECUのフラッシュメモリ及びレガシーECUのフラッシュメモリの状態の例を示す図である。 レガシーECUのFWアップデート処理の第2の実施の形態を説明するためのシーケンス図である。 レガシーECUのFWアップデート処理の第2の実施の形態を説明するためのシーケンス図である。 レガシーECUのFWアップデート処理の第2の実施の形態における高性能ECUのフラッシュメモリ及びレガシーECUのフラッシュメモリの状態の例を示す図である。 コンピュータの構成例を示すブロック図である。
 以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
 1.本技術の背景
 2.車両制御システムの構成例
 3.実施の形態
 4.変形例
 5.その他
 <<1.本技術の背景>>
 まず、図1乃至図4を参照して、本技術の背景について説明する。
 図1は、従来の車両に用いられているNOR型フラッシュシステム2001の構成例を示している。NOR型フラッシュシステム2001は、CPU(Central Processing Unit)2011、NOR型フラッシュメモリ2012、及び、RAM(Random Access Memory)2013を備える。RAM2013には、例えば、SRAM(Static Random Access Memory)が用いられる。また、必要に応じて、外付けNVRAM(Non Volatile Random Access Memory)2013が設けられる。
 CPU2011とNOR型フラッシュメモリ2012及びRAM2013とは、高速なメモリI/F(インタフェース)を用いて通信する。一方、CPUと外付けNVRAM2014とは、メモリI/Fより低速なストレージ用I/Fを用いて通信する。
 NOR型フラッシュメモリ2012には、例えば、CPU2011が実行するソフトウエア、及び、当該ソフトウエアが使用し、保持する必要があるデータが格納される。NOR型フラッシュメモリ2012の容量が十分でない場合、当該データの一部が、外付けNVRAM2014に格納される。RAM2013には、例えば、ソフトウエアが一時的に使用し、保持する必要がないデータが一時的に格納される。
 NOR型フラッシュシステム2001において、CPU2011がプログラムを実行する場合、まずブートローダ(Boot Loader)が、ハードウエアを初期化後、プログラムカウンタをNOR型フラッシュメモリ2012上のメインプログラムのアドレスにセットする。これにより、メインプログラムがNOR型フラッシュメモリ2012に格納されたまま、メインプログラムの実行が開始される。
 図2は、スマートフォン等に用いられるNAND型フラッシュシステム2051の構成例を示している。NAND型フラッシュシステム2051は、CPU2061、NAND型フラッシュメモリ2062、及び、RAM2063を備える。RAM2063には、例えば、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)が用いられる。
 CPU2061とNAND型フラッシュメモリ2062とは、高速なストレージ用I/Fを用いて通信する。CPU2061とRAM2063とは、ストレージ用I/Fより低速なメモリI/Fを用いて通信する。
 NAND型フラッシュメモリ2062には、例えば、CPU2061が実行するソフトウエア、及び、当該ソフトウエアが使用し、保持する必要があるデータが格納される。RAM2013には、例えば、実行対象となるソフトウエア、及び、当該ソフトウエアが一時的に使用し、保持する必要がないデータが一時的に格納される。
 NAND型フラッシュシステム2051において、CPU2061がプログラムを実行する場合、まずブートローダが、ハードウエアを初期化後、メインプログラムをNAND型フラッシュメモリ2062からRAM2063にコピーする(Shadow)。そして、ブートローダが、プログラムカウンタをRAM2063に配置したメインプログラムのアドレスにセットする。これにより、RAM2063に配置されたメインプログラムの実行が開始される。また、必要に応じて、必要なプログラムがRAM2063に配置され、優先度が低いプログラムがRAM2063からパージされる。
 NOR型フラッシュメモリ2012は、データの書き換えをビット単位で制御できるため、余計な処理が発生せず、NAND型フラッシュメモリ2062と比較して、一般的に高信頼かつ長寿命である。また、NOR型フラッシュメモリ2012は、XiP(eXecute-in-Place)が可能であるため、NAND型フラッシュシステム2051と比較して、プログラムの実行を開始するまでの時間が短い。一方、NAND型フラッシュメモリ2062は、NOR型フラッシュメモリ2012と比較して、ビット単価が安く、大容量である。
 従来の車両においては、通常ECUが機能毎に分散しており、各ECUに搭載されるソフトウエアは比較的小規模である。従って、従来の車両のECUにおいては、図1のNOR型フラッシュシステム2001のように、NOR型フラッシュメモリを用いたアーキテクチャが用いられてきた。
 一方、今後、コネクティッドカーなど車両のソフトウエア化が進み、ソフトウエアが大規模化したり、ソフトウエアが処理するデータ量が増大したりすることが想定される。例えば、車両のHMI(Human Machine Interface)等において、リッチOS(Operating System)、アプリケーションフレームワーク、及び、ダウンロード型の大容量のコンテンツ等が使用されることが想定される。また、例えば、コストを削減したり、ソフトウエアの管理を簡素化したりするために、ECUの数が削減され、各ECUが高機能化することが想定される。そのため、NOR型フラッシュメモリを用いたアーキテクチャでは、データ容量が不足したり、高コスト化したりすることが想定される。
 従って、今後は、車両のECUにおいて、NAND型フラッシュシステム2051のように、NAND型フラッシュメモリを用いたアーキテクチャが主流になると想定される。実際に、スマートフォン、デジタルカメラ等のIT(Information Technology)機器やCE(Consumer Electronics)機器では、ソフトウエアやデータの増大化に伴い、NOR型フラッシュメモリを用いたアーキテクチャからNAND型フラッシュメモリを用いたアーキテクチャに遷移してきている。
 図3は、NAND型フラッシュシステム2051のNAND型フラッシュメモリ2062のデータ構造の第1の例を示している。
 図3のNAND型フラッシュシステム2051では、NAND型フラッシュメモリ2062に、メインシステム領域、アップデート用システム領域、及び、データ領域が設けられている。
 メインシステム領域は、CPU2061が実行するソフトウエア(プログラム群)が格納される。メインシステム領域は、基本的にソフトウエアをアップデートする場合以外は書き換え不可(RO(Read Only))である。
 アップデート用システム領域は、メインシステム領域のソフトウエアをアップデートするためのソフトウエアが格納されている。アップデート用システム領域は、基本的に書き換え不可(RO)である。
 データ領域は、NAND型フラッシュシステム2051で使用され、保持される必要があるデータが格納される。データ領域は、書き換え可能(RW(Rewritable))である。
 メインシステム領域のソフトウエアをアップデートする場合、メインシステム領域からRAM2063にコピーされたプログラムにより、メインシステム領域に格納されているソフトウエアを書き換えることは、技術的に可能である。しかし、この場合、RAM2063からパージされたプログラムを再びロードすることができなくなるため、動作が不安定になるおそれがある。
 そこで、アップデート用システム領域のアップデート用プログラムが、RAM2063にロードされ実行されることにより、メインシステム領域のソフトウエアがアップデートされる。この場合、ソフトウエアのアップデート中には、NAND型フラッシュシステム2051は、通常の動作を停止する。そして、メインシステム領域のソフトウエアが書き換えられた後、NAND型フラッシュシステム2051が再起動することにより、メインシステム領域に格納された新しいソフトウエアが実行され、NAND型フラッシュシステム2051が通常の動作を開始する。
 このとき、新しいソフトウエアが処理可能なデータのフォーマットが変更されている場合、ソフトウエアの更新直後にデータマイグレーションが実行される。これにより、データ領域に格納されているデータのフォーマットが、新しいソフトウエアが処理可能なフォーマットに変換される。
 なお、データ領域に格納されるデータは、NAND型フラッシュシステム2051を備える装置やシステム毎に異なるため、ソフトウエアのように一律にアップデートすることは不可能である。
 図4は、NAND型フラッシュシステム2051のNAND型フラッシュメモリ2062のデータ構造の第2の例を示している。
 図4のNAND型フラッシュシステム2051では、NAND型フラッシュメモリ2062に、メインシステム領域A、メインシステム領域B、及び、データ領域が設けられている。
 このアーキテクチャでは、例えば、メインシステム領域A及びメインシステム領域Bのうち一方の領域のソフトウエアの実行中に、他方の領域のソフトウエアを書き換え、更新することが可能である。
 従って、NAND型フラッシュシステム2051が通常動作を行っている場合に、新しいソフトウエアをNAND型フラッシュメモリ2062にインストールし、再起動後に、新しいソフトウエアを実行させることが可能である。なお、新しいソフトウエアが処理可能なデータのフォーマットが変更された場合、例えば、新しいソフトウエアをインストールした後の再起動時に、データマイグレーションが実行される。
 これにより、図3の例と比較して、ソフトウエアの更新時にNAND型フラッシュシステム2051の通常動作を停止させる時間を短縮することができる。また、新しいソフトウエアと古いソフトウエアを、同時に格納することができるため、新しいソフトウエアが不具合等により正常に動作しない場合、古いソフトウエアに戻すロールバックを実行することが可能である。
 車両においては、ソフトウエアの更新中に車両が動作できない期間を短くしたり、新しいソフトウエアが正常に動作しなくても、古いソフトウエアで走行できるようにしたりするために、図4のアーキテクチャのように、ソフトウエアをA面及びB面の2面持ちすることが推奨されている。
 しかしながら、ソフトウエアの更新後にデータマイグレーションが実行されると、その後古いソフトウエアにロールバックしても、データ領域のデータが古いソフトウエアが対応するフォーマットになっていない。従って、古いソフトウエアが正常に動作しなくなるおそれがある。
 なお、例えば、データ領域のデータのファイル名をフォーマット毎に分けて、ソフトウエアのバージョン毎に使用するファイルを使い分ける方法も想定される。しかし、この場合、ファイル名が格納されているメインシステム領域も更新の対象となるため、実装及び検証が漏れ、不具合の温床となるおそれがある。
 これに対して、本技術は、ソフトウエアのロールバックを適切に実行できるようにするものである。
 <<2.車両制御システムの構成例>>
 図5は、本技術が適用される移動装置制御システムの一例である車両制御システム11の構成例を示すブロック図である。
 車両制御システム11は、車両1に設けられ、車両1の走行支援及び自動運転に関わる処理を行う。
 車両制御システム11は、車両制御ECU(Electronic Control Unit)21、通信部22、地図情報蓄積部23、位置情報取得部24、外部認識センサ25、車内センサ26、車両センサ27、記憶部28、走行支援・自動運転制御部29、DMS(Driver Monitoring System)30、HMI(Human Machine Interface)31、及び、車両制御部32を備える。
 車両制御ECU21、通信部22、地図情報蓄積部23、位置情報取得部24、外部認識センサ25、車内センサ26、車両センサ27、記憶部28、走行支援・自動運転制御部29、ドライバモニタリングシステム(DMS)30、ヒューマンマシーンインタフェース(HMI)31、及び、車両制御部32は、通信ネットワーク41を介して相互に通信可能に接続されている。通信ネットワーク41は、例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)、LAN(Local Area Network)、FlexRay(登録商標)、イーサネット(登録商標)といったディジタル双方向通信の規格に準拠した車載通信ネットワークやバス等により構成される。通信ネットワーク41は、伝送されるデータの種類によって使い分けられてもよい。例えば、車両制御に関するデータに対してCANが適用され、大容量データに対してイーサネットが適用されるようにしてもよい。なお、車両制御システム11の各部は、通信ネットワーク41を介さずに、例えば近距離無線通信(NFC(Near Field Communication))やBluetooth(登録商標)といった比較的近距離での通信を想定した無線通信を用いて直接的に接続される場合もある。
 なお、以下、車両制御システム11の各部が、通信ネットワーク41を介して通信を行う場合、通信ネットワーク41の記載を省略するものとする。例えば、車両制御ECU21と通信部22が通信ネットワーク41を介して通信を行う場合、単に車両制御ECU21と通信部22とが通信を行うと記載する。
 車両制御ECU21は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)といった各種のプロセッサにより構成される。車両制御ECU21は、車両制御システム11全体又は一部の機能の制御を行う。
 通信部22は、車内及び車外の様々な機器、他の車両、サーバ、基地局等と通信を行い、各種のデータの送受信を行う。このとき、通信部22は、複数の通信方式を用いて通信を行うことができる。
 通信部22が実行可能な車外との通信について、概略的に説明する。通信部22は、例えば、5G(第5世代移動通信システム)、LTE(Long Term Evolution)、DSRC(Dedicated Short Range Communications)等の無線通信方式により、基地局又はアクセスポイントを介して、外部ネットワーク上に存在するサーバ(以下、外部のサーバと呼ぶ)等と通信を行う。通信部22が通信を行う外部ネットワークは、例えば、インターネット、クラウドネットワーク、又は、事業者固有のネットワーク等である。通信部22が外部ネットワークに対して行う通信方式は、所定以上の通信速度、且つ、所定以上の距離間でディジタル双方向通信が可能な無線通信方式であれば、特に限定されない。
 また例えば、通信部22は、P2P(Peer To Peer)技術を用いて、自車の近傍に存在する端末と通信を行うことができる。自車の近傍に存在する端末は、例えば、歩行者や自転車等の比較的低速で移動する移動体が装着する端末、店舗等に位置が固定されて設置される端末、又は、MTC(Machine Type Communication)端末である。さらに、通信部22は、V2X通信を行うこともできる。V2X通信とは、例えば、他の車両との間の車車間(Vehicle to Vehicle)通信、路側器等との間の路車間(Vehicle to Infrastructure)通信、家との間(Vehicle to Home)の通信、及び、歩行者が所持する端末等との間の歩車間(Vehicle to Pedestrian)通信等の、自車と他との通信をいう。
 通信部22は、例えば、車両制御システム11の動作を制御するソフトウエアを更新するためのプログラムを外部から受信することができる(Over The Air)。通信部22は、さらに、地図情報、交通情報、車両1の周囲の情報等を外部から受信することができる。また例えば、通信部22は、車両1に関する情報や、車両1の周囲の情報等を外部に送信することができる。通信部22が外部に送信する車両1に関する情報としては、例えば、車両1の状態を示すデータ、認識部73による認識結果等がある。さらに例えば、通信部22は、eコール等の車両緊急通報システムに対応した通信を行う。
 例えば、通信部22は、電波ビーコン、光ビーコン、FM多重放送等の道路交通情報通信システム(VICS(Vehicle Information and Communication System)(登録商標))により送信される電磁波を受信する。
 通信部22が実行可能な車内との通信について、概略的に説明する。通信部22は、例えば無線通信を用いて、車内の各機器と通信を行うことができる。通信部22は、例えば、無線LAN、Bluetooth、NFC、WUSB(Wireless USB)といった、無線通信により所定以上の通信速度でディジタル双方向通信が可能な通信方式により、車内の機器と無線通信を行うことができる。これに限らず、通信部22は、有線通信を用いて車内の各機器と通信を行うこともできる。例えば、通信部22は、図示しない接続端子に接続されるケーブルを介した有線通信により、車内の各機器と通信を行うことができる。通信部22は、例えば、USB(Universal Serial Bus)、HDMI(High-Definition Multimedia Interface)(登録商標)、MHL(Mobile High-definition Link)といった、有線通信により所定以上の通信速度でディジタル双方向通信が可能な通信方式により、車内の各機器と通信を行うことができる。
 ここで、車内の機器とは、例えば、車内において通信ネットワーク41に接続されていない機器を指す。車内の機器としては、例えば、運転者等の搭乗者が所持するモバイル機器やウェアラブル機器、車内に持ち込まれ一時的に設置される情報機器等が想定される。
 地図情報蓄積部23は、外部から取得した地図及び車両1で作成した地図の一方又は両方を蓄積する。例えば、地図情報蓄積部23は、3次元の高精度地図、高精度地図より精度が低く、広いエリアをカバーするグローバルマップ等を蓄積する。
 高精度地図は、例えば、ダイナミックマップ、ポイントクラウドマップ、ベクターマップ等である。ダイナミックマップは、例えば、動的情報、準動的情報、準静的情報、静的情報の4層からなる地図であり、外部のサーバ等から車両1に提供される。ポイントクラウドマップは、ポイントクラウド(点群データ)により構成される地図である。ベクターマップは、例えば、車線や信号機の位置といった交通情報等をポイントクラウドマップに対応付け、ADAS(Advanced Driver Assistance System)やAD(Autonomous Driving)に適合させた地図である。
 ポイントクラウドマップ及びベクターマップは、例えば、外部のサーバ等から提供されてもよいし、カメラ51、レーダ52、LiDAR53等によるセンシング結果に基づいて、後述するローカルマップとのマッチングを行うための地図として車両1で作成され、地図情報蓄積部23に蓄積されてもよい。また、外部のサーバ等から高精度地図が提供される場合、通信容量を削減するため、車両1がこれから走行する計画経路に関する、例えば数百メートル四方の地図データが外部のサーバ等から取得される。
 位置情報取得部24は、GNSS(Global Navigation Satellite System)衛星からGNSS信号を受信し、車両1の位置情報を取得する。取得した位置情報は、走行支援・自動運転制御部29に供給される。なお、位置情報取得部24は、GNSS信号を用いた方式に限定されず、例えば、ビーコンを用いて位置情報を取得してもよい。
 外部認識センサ25は、車両1の外部の状況の認識に用いられる各種のセンサを備え、各センサからのセンサデータを車両制御システム11の各部に供給する。外部認識センサ25が備えるセンサの種類や数は任意である。
 例えば、外部認識センサ25は、カメラ51、レーダ52、LiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)53、及び、超音波センサ54を備える。これに限らず、外部認識センサ25は、カメラ51、レーダ52、LiDAR53、及び、超音波センサ54のうち1種類以上のセンサを備える構成でもよい。カメラ51、レーダ52、LiDAR53、及び、超音波センサ54の数は、現実的に車両1に設置可能な数であれば特に限定されない。また、外部認識センサ25が備えるセンサの種類は、この例に限定されず、外部認識センサ25は、他の種類のセンサを備えてもよい。外部認識センサ25が備える各センサのセンシング領域の例は、後述する。
 なお、カメラ51の撮影方式は、特に限定されない。例えば、測距が可能な撮影方式であるToF(Time Of Flight)カメラ、ステレオカメラ、単眼カメラ、赤外線カメラといった各種の撮影方式のカメラを、必要に応じてカメラ51に適用することができる。これに限らず、カメラ51は、測距に関わらずに、単に撮影画像を取得するためのものであってもよい。
 また、例えば、外部認識センサ25は、車両1に対する環境を検出するための環境センサを備えることができる。環境センサは、天候、気象、明るさ等の環境を検出するためのセンサであって、例えば、雨滴センサ、霧センサ、日照センサ、雪センサ、照度センサ等の各種センサを含むことができる。
 さらに、例えば、外部認識センサ25は、車両1の周囲の音や音源の位置の検出等に用いられるマイクロフォンを備える。
 車内センサ26は、車内の情報を検出するための各種のセンサを備え、各センサからのセンサデータを車両制御システム11の各部に供給する。車内センサ26が備える各種センサの種類や数は、現実的に車両1に設置可能な種類や数であれば特に限定されない。
 例えば、車内センサ26は、カメラ、レーダ、着座センサ、ステアリングホイールセンサ、マイクロフォン、生体センサのうち1種類以上のセンサを備えることができる。車内センサ26が備えるカメラとしては、例えば、ToFカメラ、ステレオカメラ、単眼カメラ、赤外線カメラといった、測距可能な各種の撮影方式のカメラを用いることができる。これに限らず、車内センサ26が備えるカメラは、測距に関わらずに、単に撮影画像を取得するためのものであってもよい。車内センサ26が備える生体センサは、例えば、シートやステアリングホイール等に設けられ、運転者等の搭乗者の各種の生体情報を検出する。
 車両センサ27は、車両1の状態を検出するための各種のセンサを備え、各センサからのセンサデータを車両制御システム11の各部に供給する。車両センサ27が備える各種センサの種類や数は、現実的に車両1に設置可能な種類や数であれば特に限定されない。
 例えば、車両センサ27は、速度センサ、加速度センサ、角速度センサ(ジャイロセンサ)、及び、それらを統合した慣性計測装置(IMU(Inertial Measurement Unit))を備える。例えば、車両センサ27は、ステアリングホイールの操舵角を検出する操舵角センサ、ヨーレートセンサ、アクセルペダルの操作量を検出するアクセルセンサ、及び、ブレーキペダルの操作量を検出するブレーキセンサを備える。例えば、車両センサ27は、エンジンやモータの回転数を検出する回転センサ、タイヤの空気圧を検出する空気圧センサ、タイヤのスリップ率を検出するスリップ率センサ、及び、車輪の回転速度を検出する車輪速センサを備える。例えば、車両センサ27は、バッテリの残量及び温度を検出するバッテリセンサ、並びに、外部からの衝撃を検出する衝撃センサを備える。
 記憶部28は、不揮発性の記憶媒体及び揮発性の記憶媒体のうち少なくとも一方を含み、データやプログラムを記憶する。記憶部28は、例えばEEPROM(Electrically Erasable Programmable Read Only Memory)及びRAM(Random Access Memory)として用いられ、記憶媒体としては、HDD(Hard Disc Drive)といった磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、及び、光磁気記憶デバイスを適用することができる。記憶部28は、車両制御システム11の各部が用いる各種プログラムやデータを記憶する。例えば、記憶部28は、EDR(Event Data Recorder)やDSSAD(Data Storage System for Automated Driving)を備え、事故等のイベントの前後の車両1の情報や車内センサ26によって取得された情報を記憶する。
 走行支援・自動運転制御部29は、車両1の走行支援及び自動運転の制御を行う。例えば、走行支援・自動運転制御部29は、分析部61、行動計画部62、及び、動作制御部63を備える。
 分析部61は、車両1及び周囲の状況の分析処理を行う。分析部61は、自己位置推定部71、センサフュージョン部72、及び、認識部73を備える。
 自己位置推定部71は、外部認識センサ25からのセンサデータ、及び、地図情報蓄積部23に蓄積されている高精度地図に基づいて、車両1の自己位置を推定する。例えば、自己位置推定部71は、外部認識センサ25からのセンサデータに基づいてローカルマップを生成し、ローカルマップと高精度地図とのマッチングを行うことにより、車両1の自己位置を推定する。車両1の位置は、例えば、後輪対車軸の中心が基準とされる。
 ローカルマップは、例えば、SLAM(Simultaneous Localization and Mapping)等の技術を用いて作成される3次元の高精度地図、占有格子地図(Occupancy Grid Map)等である。3次元の高精度地図は、例えば、上述したポイントクラウドマップ等である。占有格子地図は、車両1の周囲の3次元又は2次元の空間を所定の大きさのグリッド(格子)に分割し、グリッド単位で物体の占有状態を示す地図である。物体の占有状態は、例えば、物体の有無や存在確率により示される。ローカルマップは、例えば、認識部73による車両1の外部の状況の検出処理及び認識処理にも用いられる。
 なお、自己位置推定部71は、位置情報取得部24により取得される位置情報、及び、車両センサ27からのセンサデータに基づいて、車両1の自己位置を推定してもよい。
 センサフュージョン部72は、複数の異なる種類のセンサデータ(例えば、カメラ51から供給される画像データ、及び、レーダ52から供給されるセンサデータ)を組み合わせて、新たな情報を得るセンサフュージョン処理を行う。異なる種類のセンサデータを組合せる方法としては、統合、融合、連合等がある。
 認識部73は、車両1の外部の状況の検出を行う検出処理、及び、車両1の外部の状況の認識を行う認識処理を実行する。
 例えば、認識部73は、外部認識センサ25からの情報、自己位置推定部71からの情報、センサフュージョン部72からの情報等に基づいて、車両1の外部の状況の検出処理及び認識処理を行う。
 具体的には、例えば、認識部73は、車両1の周囲の物体の検出処理及び認識処理等を行う。物体の検出処理とは、例えば、物体の有無、大きさ、形、位置、動き等を検出する処理である。物体の認識処理とは、例えば、物体の種類等の属性を認識したり、特定の物体を識別したりする処理である。ただし、検出処理と認識処理とは、必ずしも明確に分かれるものではなく、重複する場合がある。
 例えば、認識部73は、レーダ52又はLiDAR53等によるセンサデータに基づくポイントクラウドを点群の塊毎に分類するクラスタリングを行うことにより、車両1の周囲の物体を検出する。これにより、車両1の周囲の物体の有無、大きさ、形状、位置が検出される。
 例えば、認識部73は、クラスタリングにより分類された点群の塊の動きを追従するトラッキングを行うことにより、車両1の周囲の物体の動きを検出する。これにより、車両1の周囲の物体の速度及び進行方向(移動ベクトル)が検出される。
 例えば、認識部73は、カメラ51から供給される画像データに基づいて、車両、人、自転車、障害物、構造物、道路、信号機、交通標識、道路標示等を検出又は認識する。また、認識部73は、セマンティックセグメンテーション等の認識処理を行うことにより、車両1の周囲の物体の種類を認識してもよい。
 例えば、認識部73は、地図情報蓄積部23に蓄積されている地図、自己位置推定部71による自己位置の推定結果、及び、認識部73による車両1の周囲の物体の認識結果に基づいて、車両1の周囲の交通ルールの認識処理を行うことができる。認識部73は、この処理により、信号機の位置及び状態、交通標識及び道路標示の内容、交通規制の内容、並びに、走行可能な車線等を認識することができる。
 例えば、認識部73は、車両1の周囲の環境の認識処理を行うことができる。認識部73が認識対象とする周囲の環境としては、天候、気温、湿度、明るさ、及び、路面の状態等が想定される。
 行動計画部62は、車両1の行動計画を作成する。例えば、行動計画部62は、経路計画、経路追従の処理を行うことにより、行動計画を作成する。
 なお、経路計画(Global path planning)とは、スタートからゴールまでの大まかな経路を計画する処理である。この経路計画には、軌道計画と言われ、計画した経路において、車両1の運動特性を考慮して、車両1の近傍で安全かつ滑らかに進行することが可能な軌道生成(Local path planning)を行う処理も含まれる。
 経路追従とは、経路計画により計画された経路を計画された時間内で安全かつ正確に走行するための動作を計画する処理である。行動計画部62は、例えば、この経路追従の処理の結果に基づき、車両1の目標速度と目標角速度を計算することができる。
 動作制御部63は、行動計画部62により作成された行動計画を実現するために、車両1の動作を制御する。
 例えば、動作制御部63は、後述する車両制御部32に含まれる、ステアリング制御部81、ブレーキ制御部82、及び、駆動制御部83を制御して、軌道計画により計算された軌道を車両1が進行するように、加減速制御及び方向制御を行う。例えば、動作制御部63は、衝突回避又は衝撃緩和、追従走行、車速維持走行、自車の衝突警告、自車のレーン逸脱警告等のADASの機能実現を目的とした協調制御を行う。例えば、動作制御部63は、運転者の操作によらずに自律的に走行する自動運転等を目的とした協調制御を行う。
 DMS30は、車内センサ26からのセンサデータ、及び、後述するHMI31に入力される入力データ等に基づいて、運転者の認証処理、及び、運転者の状態の認識処理等を行う。認識対象となる運転者の状態としては、例えば、体調、覚醒度、集中度、疲労度、視線方向、酩酊度、運転操作、姿勢等が想定される。
 なお、DMS30が、運転者以外の搭乗者の認証処理、及び、当該搭乗者の状態の認識処理を行うようにしてもよい。また、例えば、DMS30が、車内センサ26からのセンサデータに基づいて、車内の状況の認識処理を行うようにしてもよい。認識対象となる車内の状況としては、例えば、気温、湿度、明るさ、臭い等が想定される。
 HMI31は、各種のデータや指示等の入力と、各種のデータの運転者等への提示を行う。
 HMI31によるデータの入力について、概略的に説明する。HMI31は、人がデータを入力するための入力デバイスを備える。HMI31は、入力デバイスにより入力されたデータや指示等に基づいて入力信号を生成し、車両制御システム11の各部に供給する。HMI31は、入力デバイスとして、例えばタッチパネル、ボタン、スイッチ、及び、レバーといった操作子を備える。これに限らず、HMI31は、音声やジェスチャ等により手動操作以外の方法で情報を入力可能な入力デバイスをさらに備えてもよい。さらに、HMI31は、例えば、赤外線又は電波を利用したリモートコントロール装置や、車両制御システム11の操作に対応したモバイル機器又はウェアラブル機器等の外部接続機器を入力デバイスとして用いてもよい。
 HMI31によるデータの提示について、概略的に説明する。HMI31は、搭乗者又は車外に対する視覚情報、聴覚情報、及び、触覚情報の生成を行う。また、HMI31は、生成された各情報の出力、出力内容、出力タイミング及び出力方法等を制御する出力制御を行う。HMI31は、視覚情報として、例えば、操作画面、車両1の状態表示、警告表示、車両1の周囲の状況を示すモニタ画像等の画像や光により示される情報を生成及び出力する。また、HMI31は、聴覚情報として、例えば、音声ガイダンス、警告音、警告メッセージ等の音により示される情報を生成及び出力する。さらに、HMI31は、触覚情報として、例えば、力、振動、動き等により搭乗者の触覚に与えられる情報を生成及び出力する。
 HMI31が視覚情報を出力する出力デバイスとしては、例えば、自身が画像を表示することで視覚情報を提示する表示装置や、画像を投影することで視覚情報を提示するプロジェクタ装置を適用することができる。なお、表示装置は、通常のディスプレイを有する表示装置以外にも、例えば、ヘッドアップディスプレイ、透過型ディスプレイ、AR(Augmented Reality)機能を備えるウエアラブルデバイスといった、搭乗者の視界内に視覚情報を表示する装置であってもよい。また、HMI31は、車両1に設けられるナビゲーション装置、インストルメントパネル、CMS(Camera Monitoring System)、電子ミラー、ランプ等が有する表示デバイスを、視覚情報を出力する出力デバイスとして用いることも可能である。
 HMI31が聴覚情報を出力する出力デバイスとしては、例えば、オーディオスピーカ、ヘッドホン、イヤホンを適用することができる。
 HMI31が触覚情報を出力する出力デバイスとしては、例えば、ハプティクス技術を用いたハプティクス素子を適用することができる。ハプティクス素子は、例えば、ステアリングホイール、シートといった、車両1の搭乗者が接触する部分に設けられる。
 車両制御部32は、車両1の各部の制御を行う。車両制御部32は、ステアリング制御部81、ブレーキ制御部82、駆動制御部83、ボディ系制御部84、ライト制御部85、及び、ホーン制御部86を備える。
 ステアリング制御部81は、車両1のステアリングシステムの状態の検出及び制御等を行う。ステアリングシステムは、例えば、ステアリングホイール等を備えるステアリング機構、電動パワーステアリング等を備える。ステアリング制御部81は、例えば、ステアリングシステムの制御を行うステアリングECU、ステアリングシステムの駆動を行うアクチュエータ等を備える。
 ブレーキ制御部82は、車両1のブレーキシステムの状態の検出及び制御等を行う。ブレーキシステムは、例えば、ブレーキペダル等を含むブレーキ機構、ABS(Antilock Brake System)、回生ブレーキ機構等を備える。ブレーキ制御部82は、例えば、ブレーキシステムの制御を行うブレーキECU、ブレーキシステムの駆動を行うアクチュエータ等を備える。
 駆動制御部83は、車両1の駆動システムの状態の検出及び制御等を行う。駆動システムは、例えば、アクセルペダル、内燃機関又は駆動用モータ等の駆動力を発生させるための駆動力発生装置、駆動力を車輪に伝達するための駆動力伝達機構等を備える。駆動制御部83は、例えば、駆動システムの制御を行う駆動ECU、駆動システムの駆動を行うアクチュエータ等を備える。
 ボディ系制御部84は、車両1のボディ系システムの状態の検出及び制御等を行う。ボディ系システムは、例えば、キーレスエントリシステム、スマートキーシステム、パワーウインドウ装置、パワーシート、空調装置、エアバッグ、シートベルト、シフトレバー等を備える。ボディ系制御部84は、例えば、ボディ系システムの制御を行うボディ系ECU、ボディ系システムの駆動を行うアクチュエータ等を備える。
 ライト制御部85は、車両1の各種のライトの状態の検出及び制御等を行う。制御対象となるライトとしては、例えば、ヘッドライト、バックライト、フォグライト、ターンシグナル、ブレーキライト、プロジェクション、バンパーの表示等が想定される。ライト制御部85は、ライトの制御を行うライトECU、ライトの駆動を行うアクチュエータ等を備える。
 ホーン制御部86は、車両1のカーホーンの状態の検出及び制御等を行う。ホーン制御部86は、例えば、カーホーンの制御を行うホーンECU、カーホーンの駆動を行うアクチュエータ等を備える。
 図6は、図5の外部認識センサ25のカメラ51、レーダ52、LiDAR53、及び、超音波センサ54等によるセンシング領域の例を示す図である。なお、図6において、車両1を上面から見た様子が模式的に示され、左端側が車両1の前端(フロント)側であり、右端側が車両1の後端(リア)側となっている。
 センシング領域101F及びセンシング領域101Bは、超音波センサ54のセンシング領域の例を示している。センシング領域101Fは、複数の超音波センサ54によって車両1の前端周辺をカバーしている。センシング領域101Bは、複数の超音波センサ54によって車両1の後端周辺をカバーしている。
 センシング領域101F及びセンシング領域101Bにおけるセンシング結果は、例えば、車両1の駐車支援等に用いられる。
 センシング領域102F乃至センシング領域102Bは、短距離又は中距離用のレーダ52のセンシング領域の例を示している。センシング領域102Fは、車両1の前方において、センシング領域101Fより遠い位置までカバーしている。センシング領域102Bは、車両1の後方において、センシング領域101Bより遠い位置までカバーしている。センシング領域102Lは、車両1の左側面の後方の周辺をカバーしている。センシング領域102Rは、車両1の右側面の後方の周辺をカバーしている。
 センシング領域102Fにおけるセンシング結果は、例えば、車両1の前方に存在する車両や歩行者等の検出等に用いられる。センシング領域102Bにおけるセンシング結果は、例えば、車両1の後方の衝突防止機能等に用いられる。センシング領域102L及びセンシング領域102Rにおけるセンシング結果は、例えば、車両1の側方の死角における物体の検出等に用いられる。
 センシング領域103F乃至センシング領域103Bは、カメラ51によるセンシング領域の例を示している。センシング領域103Fは、車両1の前方において、センシング領域102Fより遠い位置までカバーしている。センシング領域103Bは、車両1の後方において、センシング領域102Bより遠い位置までカバーしている。センシング領域103Lは、車両1の左側面の周辺をカバーしている。センシング領域103Rは、車両1の右側面の周辺をカバーしている。
 センシング領域103Fにおけるセンシング結果は、例えば、信号機や交通標識の認識、車線逸脱防止支援システム、自動ヘッドライト制御システムに用いることができる。センシング領域103Bにおけるセンシング結果は、例えば、駐車支援、及び、サラウンドビューシステムに用いることができる。センシング領域103L及びセンシング領域103Rにおけるセンシング結果は、例えば、サラウンドビューシステムに用いることができる。
 センシング領域104は、LiDAR53のセンシング領域の例を示している。センシング領域104は、車両1の前方において、センシング領域103Fより遠い位置までカバーしている。一方、センシング領域104は、センシング領域103Fより左右方向の範囲が狭くなっている。
 センシング領域104におけるセンシング結果は、例えば、周辺車両等の物体検出に用いられる。
 センシング領域105は、長距離用のレーダ52のセンシング領域の例を示している。センシング領域105は、車両1の前方において、センシング領域104より遠い位置までカバーしている。一方、センシング領域105は、センシング領域104より左右方向の範囲が狭くなっている。
 センシング領域105におけるセンシング結果は、例えば、ACC(Adaptive Cruise Control)、緊急ブレーキ、衝突回避等に用いられる。
 なお、外部認識センサ25が含むカメラ51、レーダ52、LiDAR53、及び、超音波センサ54の各センサのセンシング領域は、図6以外に各種の構成をとってもよい。具体的には、超音波センサ54が車両1の側方もセンシングするようにしてもよいし、LiDAR53が車両1の後方をセンシングするようにしてもよい。また、各センサの設置位置は、上述した各例に限定されない。また、各センサの数は、1つでもよいし、複数であってもよい。
 <<3.実施の形態>>
 次に、図7乃至図19を参照して、本技術の実施の形態について説明する。
  <情報処理システム201の構成例>
 図7は、本技術を適用した情報処理システム201の構成例を示している。
 情報処理システム201は、例えば、図5の車両1の車両制御システム11の機能のうち主にソフトウエアにより実行される機能を実現するシステムである。
 情報処理システム201は、高性能ECU211-1乃至高性能ECU211-m、及び、レガシーECU212-1乃至レガシーECU212-nを備える。高性能ECU211-1乃至高性能ECU211-m、及び、レガシーECU212-1乃至レガシーECU212-nは、バス213にそれぞれ接続され、互いに通信することが可能である。
 以下、高性能ECU211-1乃至高性能ECU211-mを個々に区別する必要がない場合、単に高性能ECU211と称する。以下、レガシーECU212-1乃至レガシーECU212-nを個々に区別する必要がない場合、単にレガシーECU212と称する。以下、各ECUがバス213を介して通信する場合、バス213の記載を省略する。例えば、高性能ECU211とレガシーECU212がバス213を介して通信する場合、単に高性能ECU211とレガシーECU212が通信すると記載する。
 高性能ECU211は、例えば、SoCを搭載した高性能なECUである。高性能ECU211は、例えば、様々な機能が集約されたECUである。すなわち、1つの高性能ECU211により、車両1の様々な機能を実行することが可能である。また、高性能ECU211は、必要に応じて、レガシーECU212のソフトウエアのバージョンアップ及びロールバックを制御する。
 レガシーECU212は、例えば、高性能ECU211より性能が劣るECUである。例えば、レガシーECU212は、従来の車両が搭載しているような機能が限定されたECUである。
 なお、高性能ECU211及びレガシーECU212の数は特に限定されない。また、必ずしもレガシーECU212を情報処理システム201に設ける必要はない。
  <高性能ECU211の構成例>
 図8は、高性能ECU211の構成例を示している。高性能ECU211は、図2のNAND型フラッシュシステム2051と同様の構成を備えている。高性能ECU211は、CPU251、フラッシュメモリ252、及び、RAM253を備える。フラッシュメモリ252には、例えば、NAND型フラッシュメモリが用いられる。RAM253には、例えば、DDR SDRAMが用いられる。
 CPU251とフラッシュメモリ252とは、ストレージ用I/Fを用いて通信する。CPU251とRAM253とは、メモリI/Fを用いて通信する。
 CPU251は、所定の制御プログラムを実行することにより、フラッシュメモリ252が格納するソフトウエア及びデータの管理を行うソフトウエア管理部261を実現する。ソフトウエア管理部261は、メインモジュール271、バックアップモジュール272、及び、データマイグレーションモジュール273を備える。
 メインモジュール271は、外部と通信を行いながら、ソフトウエア管理部261全体を制御する。例えば、メインモジュール271は、高性能ECU211のソフトウエアの実行制御、並びに、ソフトウエアのバージョンアップ及びロールダウンを制御する。また、例えば、メインモジュール271は、必要に応じて、レガシーECU212のソフトウエアのバージョンアップ及びロールダウンを制御する。
 バックアップモジュール272は、例えば、高性能ECU211のソフトウエア及びデータのバックアップを制御する。また、例えば、バックアップモジュール272は、必要に応じて、レガシーECU212のソフトウエア及びデータのバックアップを制御する。
 データマイグレーションモジュール273は、例えば、高性能ECU211のデータマイグレーションを制御する。また、例えば、データマイグレーションモジュール273は、必要に応じて、レガシーECU212のデータマイグレーションを制御する。
 フラッシュメモリ252は、例えば、CPU251が実行するソフトウエア、及び、当該ソフトウエアが使用し、保持する必要があるデータを格納する。また、フラッシュメモリ252は、例えば、必要に応じて、レガシーECU212のソフトウエア及びデータを格納する(バックアップする)。
 フラッシュメモリ252は、メインシステム領域A、不揮発データ領域A、メインシステム領域B、不揮発データ領域B、他ECU用SW領域、及び、他ECU用データ領域を備える。
 メインシステム領域A及びメインシステム領域Bは、それぞれCPU251が実行するソフトウエアを格納する。メインシステム領域A及びメインシステム領域Bは、それぞれ異なるバージョンのソフトウエアを格納することができる。メインシステム領域A及びメインシステム領域Bは、基本的にソフトウエアをアップデートする場合以外は書き換え不可(RO)である。
 不揮発データ領域Aは、メインシステム領域Aに対応する領域であり、メインシステム領域Aに格納されているソフトウエアが使用するデータを格納する。不揮発データ領域Aは、書き換え可能(RW)である。
 不揮発データ領域Bは、メインシステム領域Bに対応する領域であり、メインシステム領域Bに格納されているソフトウエアが使用するデータを格納する。不揮発データ領域Bは、書き換え可能(RW)である。
 他ECU用SW領域は、レガシーECU212のソフトウエアをバックアップするための領域である。他ECU用SW領域は、基本的にソフトウエアをバックアップする場合以外は書き換え不可(RO)である。
 他ECU用データ領域は、レガシーECU212のデータをバックアップするための領域である。他ECU用データ領域は、基本的にデータをバックアップする場合以外は書き換え不可(RO)である。
 なお、この図では、他ECU用SW領域及び他ECU用データ領域の数をそれぞれ1つずつ示しているが、他ECU用SW領域及び他ECU用データ領域の数は、特に限定されない。例えば、他ECU用SW領域及び他ECU用データ領域の数は、ソフトウエア及びデータをバックアップするレガシーECU212の数に基づいて設定される。
 RAM253には、例えば、実行対象となるソフトウエア、及び、ソフトウエアが一時的に使用し、保持する必要がないデータが一時的に格納される。
  <レガシーECU212の構成例>
 図9は、レガシーECU212の構成例を示している。レガシーECU212は、図1のNOR型フラッシュシステム2001と同様の構成を備えている。レガシーECU212は、CPU301、フラッシュメモリ302、及び、RAM303を備える。フラッシュメモリ302には、例えば、NOR型フラッシュメモリが用いられる。RAM303には、例えば、SRAMが用いられる。また。必要に応じて、外付けNVRAM304が設けられる。
 CPU301とフラッシュメモリ302及びRAM303とは、ストレージ用I/Fが用いて通信する。CPU301と外付けNVRAM304とは、メモリI/Fを用いて通信する。
 CPU301は、所定の制御プログラムを実行することにより、フラッシュメモリ302が格納するソフトウエア及びデータの管理を行うソフトウエア管理部311を実現する。ソフトウエア管理部311は、メインモジュール321、及び、データマイグレーションモジュール322を備える。
 メインモジュール321は、外部と通信を行いながら、ソフトウエア管理部311全体を制御する。例えば、メインモジュール321は、レガシーECU212のソフトウエアの実行制御、並びに、ソフトウエアのバージョンアップ及びロールダウンを制御する。
 データマイグレーションモジュール322は、例えば、レガシーECU212のデータマイグレーションを制御する。なお、データマイグレーションモジュール322は、必ずしも設けられなくてもよい。
 フラッシュメモリ302は、例えば、CPU301が実行するソフトウエア、及び、当該ソフトウエアが使用し、保持する必要があるデータを格納する。
 フラッシュメモリ302は、メインシステム領域及び不揮発データ領域を備える。
 メインシステム領域は、CPU301が実行するソフトウエアを格納する。メインシステム領域は、基本的にソフトウエアをアップデート又はロールダウンする場合以外は書き換え不可(RO)である。
 不揮発データ領域は、メインシステム領域A対応する領域であり、メインシステム領域に格納されているソフトウエアが使用するデータを格納する。不揮発データ領域は、書き換え可能(RW)である。
 RAM303には、例えば、ソフトウエアが一時的に使用し、保持する必要がないデータが一時的に格納される。
 外付けNVRAM304は、フラッシュメモリ302の容量が十分でない場合、データの一部を格納する。
  <情報処理システム201の処理>
 次に、図10乃至図29を参照して、情報処理システム201の処理について説明する。具体的には、以下、高性能ECU211及びレガシーECU212に組み込まれ、実行されるソフトウエアであるファームウエア(以下、FWと称する)のアップデート、ロールバック等に関する処理について説明する。
   <高性能ECU211のFWアップデート処理の第1の実施の形態>
 まず、図10のシーケンス図を参照して、高性能ECU211のFWアップデート処理の第1の実施の形態について説明する。
 なお、以下、高性能ECU211のフラッシュメモリ252が、図11のAに示される状態であるものとする。
 具体的には、現在実行対象となっているFW(Ver.X)が、メインシステム領域Aに格納されているものとする。FW(Ver.X)が対応するフォーマットに従い、FW(Ver.X)により使用されるFW(Ver.X)用データが、不揮発データ領域Aに格納されているものとする。FW(Ver.X)より1つ前のバージョンのFW(Ver.X-1)が、メインシステム領域Bに格納されているものとする。FW(Ver.X-1)が対応するフォーマットに従い、FW(Ver.X-1)により使用されるFW(Ver.X-1)用データが、不揮発データ領域Bに格納されているものとする。
 なお、以下、実行対象になっているFWが格納されているメインシステム領域、及び、当該メインシステム領域に対応する不揮発データ領域を、有効領域又は使用中領域と称する。以下、有効領域又は使用中領域に格納されているFWを、有効なFW又は使用中のFWとも称する。以下、有効領域又は使用中領域に格納されているデータを、有効なデータ又は使用中のデータとも称する。以下、実行対象になっていないFWが格納されているメインシステム領域、及び、当該メインシステム領域に対応する不揮発データ領域を、予備領域と称する。
 なお、図11内の斜線で示される領域は有効領域又は使用中領域を示し、白地の領域は予備領域を示す。これは、以降の図でも同様である。
 ステップS1において、高性能ECU211は、例えば、外部のサーバ等から通信部22等を介して、OTAにより、FWアップデート要求を受信する。FWアップデート要求には、例えば、バージョンアップ用のFW(以下、更新用FWと称する)が含まれる。
 ステップS2において、FWアップデート要求が、メインモジュール271に供給される。
 ステップS3において、メインモジュール271は、アップデートモードへ移行する。これにより、高性能ECU211は、通常動作を一時的に停止し、車両1の走行等の通常動作が一時的に不可となる。
 ステップS4において、メインモジュール271は、バックアップ要求をバックアップモジュール272に送信する。
 ステップS5において、バックアップモジュール272は、使用中の不揮発データ領域のデータを予備の不揮発データ領域にコピーする。これにより、予備の不揮発データ領域のデータが、使用中の不揮発データ領域のデータにより更新され、両者のデータが同期する。
 例えば、予備の不揮発データ領域Bのデータが、使用中の不揮発データ領域AのFW(Ver.X)用データにより更新され、不揮発データ領域Aのデータと不揮発データ領域Bのデータが同期する。
 ステップS6において、バックアップモジュール272は、バックアップの完了をメインモジュール271に通知する。
 ステップS7において、メインモジュール271は、予備のメインシステム領域へ更新用FWを書き込む。これにより、予備のメインシステム領域のFWが、更新用FWにより更新される。
 例えば、メインシステム領域BのFWが、1つ後のバージョンの更新用のFW(Ver.X+1)により更新される。その結果、図11のBに示されるように、図11のAの状態と比較して、メインシステム領域BのFWが、最新のFW(Ver.X+1)に更新され、不揮発データ領域Bのデータが、1つ前のバージョンのFW(Ver.X)用データに更新された状態になる。
 ステップS8において、メインモジュール271は、起動システムを変更する。すなわち、メインモジュール271は、予備領域と使用中領域を入れ替え、変更後の使用中領域に格納されているFWを実行対象に設定する。これにより、次回以降の高性能ECU211の起動時に、実行対象に設定したFWが起動されるようになる。
 例えば、図11のBに示されるように、メインシステム領域B及び不揮発データ領域Bが使用中領域に設定され、メインシステム領域A及び不揮発データ領域Aが予備領域に設定される。そして、メインシステム領域BのFW(Ver.X+1)が、実行対象に設定され、次回以降の高性能ECU211の起動時に、FW(Ver.X+1)が起動されるようになる。
 その後、高性能ECU211のFWアップデート処理は終了する。そして、高性能ECU211のアップデートモードが解除される。
   <高性能ECU211のシステム起動処理>
 次に、図12のシーケンス図を参照して、高性能ECU211により実行されるシステム起動処理について説明する。
 なお、以下、フラッシュメモリ252の状態が、図13のAに示されるように、上述した図11のBと同様の状態であるものとする。
 ステップS21において、高性能ECU211は、例えば車両制御ECU21等から、起動要求を受信する。
 ステップS22において、起動要求が、メインモジュール271に供給される。
 次に、高性能ECU211がFWアップデート処理後に初めて起動される場合、すなわち、FWアップデート処理後の初回起動時において、ステップS23乃至ステップS25の処理が実行される。
 具体的には、ステップS23において、メインモジュール271は、データフォーマットの移行処理(データマイグレーション)の実行をデータマイグレーションモジュール273に要求する。
 ステップS24において、データマイグレーションモジュール273は、バージョンアップ後のFW(以下、新FWと称する)が使用する不揮発データ領域のデータのフォーマットを更新する。すなわち、データマイグレーションモジュール273は、新FWが使用する不揮発データ領域のデータのフォーマットを、新FWが対応するフォーマットに変換する。
 例えば、図13のBに示されるように、新FWであるFW(Ver.X+1)が使用する不揮発データ領域Bのデータが、FW(Ver.X+1)が対応するフォーマットに変換される。すなわち、不揮発データ領域Bに格納されているFW(Ver.X)用データが、FW(Ver.X+1)用データに変換される。これにより、メインシステム領域Bに格納されているFW(Ver.X+1)が実行可能な状態になる。
 ステップS25において、データマイグレーションモジュール273は、データマイグレーションの完了をメインモジュール271に通知する。
 その後、処理はステップS26に進む。
 なお、新FWにおいて、データのフォーマットが前のFWから変更されていない場合、ステップS23乃至ステップS25の処理を省略することが可能である。
 一方、高性能ECU211がFWアップデート処理後に2回目以降に起動される場合、ステップS23乃至ステップS25の処理はスキップされ、処理はステップS26に進む。
 ステップS26において、メインモジュール271は、実行対象のFWを起動する。すなわち、メインモジュール271は、実行対象のFWの少なくとも一部をRAM253に配置した後、起動する。
 例えば、メインシステム領域Bに格納されているFW(Ver.X+1)の少なくとも一部が、RAM253に配置された後、起動される。そして、不揮発データ領域Bに格納されているFW(Ver.X+1)用データが、適宜RAM253に配置され、使用されながら、FW(Ver.X+1)が実行される。
 その後、システム起動処理は終了する。
   <高性能ECU211のロールバック処理>
 次に、図14のシーケンス図を参照して、高性能ECU211により実行されるロールバック処理について説明する。
 なお、以下、フラッシュメモリ252の状態が、図15のAに示されるように、上述した図13のBと同様の状態であるものとする。
 ステップS41において、高性能ECU211は、例えば、外部のサーバ等から通信部22等を介して、OTAにより、ロールバック要求を受信する。
 ステップS42において、ロールバック要求が、メインモジュール271に供給される。
 ステップS43において、図10のステップS8の処理と同様に、起動システムが変更される。
 例えば、図15のBに示されるように、メインシステム領域A及び不揮発データ領域Aが使用中領域に設定され、メインシステム領域B及び不揮発データ領域Bが予備領域に設定される。そして、メインシステム領域AのFW(Ver.X)が、実行対象に設定され、次回以降の高性能ECU211の起動時に、FW(Ver.X)が起動されるようになる。
 このように、FWがアップデートされ、データマイグレーションが実行された後でも、FWのロールバックを適切に実行することが可能になる。すなわち、前のバージョンのFW(Ver.X)に対応するFW(Ver.X)用データが、不揮発データ領域Aにそのまま残されている。従って、ロールバック後に、特にデータの変換等を行わなくても、前のバージョンのFW(Ver.X)をそのまま実行することが可能になる。
 その後、ロールバック処理は終了する。
 ここで、上述した図10の高性能ECU211のFWアップデート処理では、ステップS5において、使用中の不揮発データ領域のデータが予備の不揮発データ領域にコピーされる。従って、不揮発データ領域のデータ量が大きくなるほど、不揮発データ領域のデータのコピーの所要時間が長くなり、FWアップデート処理の所要時間が長くなる。FWアップデート処理中は、車両1は走行等の通常動作が行えないため、その結果、ユーザの利便性が低下するおそれがある。
 これに対して、以下、FWアップデート処理の所要時間を短縮する方法について説明する。
   <高性能ECU211のデータのバックアップ処理>
 まず、図16のシーケンス図を参照して、FWがアップデートされた後に実行される、高性能ECU211のデータのバックアップ処理について説明する。
 なお、以下、フラッシュメモリ252の状態が、図17のAに示されるように、上述した図13のBと同様の状態であるものとする。
 例えば、メインモジュール271が、今後ロールバックが発生しない、かつ、バックアップするタイミングであると判定した場合、ステップS101乃至ステップS104の処理が実行される。
 ここで、今後ロールバックが発生するか否かの判定方法の具体例について説明する。
 例えば、メインモジュール271は、FWの提供元等から今後ロールバックが発生しない旨が通知されるまで、今後ロールバックが発生する可能性があると判定する。一方、例えば、メインモジュール271は、FWの提供元等からOTA等により今後ロールバックが発生しない旨が通知された場合、それ以降、今後ロールバックが発生しないと判定する。
 または、例えば、メインモジュール271は、前回高性能ECU211のFWがアップデートされてから規定時間が経過するまでの間、今後ロールバックが発生する可能性があると判定する。一方、例えば、メインモジュール271は、前回高性能ECUのFWがアップデートされてから規定時間が経過した後、今後ロールバックが発生しないと判定する。
 なお、規定時間は、例えば、1週間、1か月等、所定の時間に予め設定されてもよい。または、例えば、規定時間は、FWのアップデート時等に、FWの提供元等から指定されるようにしてもよい。
 また、バックアップするタイミングは、例えば、車両1が使用される可能性が低いタイミングに設定される。例えば、バックアップするタイミングは、車両1が充電中、かつ、所定の日時に設定される。所定の日時は、例えば、毎日所定の時刻、所定の曜日の所定の時刻、又は、所定の日にちの所定の時刻等に設定される。
 そして、ステップS101において、メインモジュール271は、バックアップ要求をバックアップモジュール272に送信する。
 これに対して、今回のバックアップが初回である場合、すなわち、今回のバックアップが、FWがアップデートされてから初めてのバックアップである場合、ステップS102の処理が実行される。
 具体的には、ステップS102において、図10のステップS5の処理と同様に、使用中の不揮発データ領域のデータが予備の不揮発データ領域にコピーされる。
 例えば、図17のBに示されるように、使用中の不揮発データ領域BのFW(Ver.X+1)用データが、予備の不揮発データ領域Aにコピーされる。これにより、予備の不揮発データ領域Aのデータが、使用中の不揮発データ領域BのFW(Ver.X+1)用データにより更新され、不揮発データ領域Aのデータと不揮発データ領域Bのデータが同期する。すなわち、不揮発データ領域BのFW(Ver.X+1)用データが、不揮発データ領域Aにバックアップされる。
 その後、処理はステップS104に進む。
 一方、過去にバックアップ履歴がある場合、すなわち、今回のバックアップが、FWがアップデートされてから2回目以降のバックアップである場合、ステップS103の処理が実行される。
 具体的には、ステップS103において、バックアップモジュール272は、使用中の不揮発データ領域との差分を予備の不揮発データ領域にコピーする。
 例えば、バックアップモジュール272は、予備の不揮発データ領域のデータに対する使用中の不揮発データ領域のデータの差分を、予備の不揮発データ領域にコピーする。すなわち、使用中の不揮発データ領域に存在し、予備の不揮発データ領域のデータに存在しないデータが、予備の不揮発データ領域にコピーされる。
 また、例えば、バックアップモジュール272は、使用中の不揮発データ領域のデータに対する予備の不揮発データ領域のデータの差分を、予備の不揮発データ領域から削除する。すなわち、予備の不揮発データ領域に存在し、使用中の不揮発データ領域のデータに存在しないデータが、予備の不揮発データ領域から削除される。
 これにより、使用中の不揮発データ領域のデータと予備の不揮発データ領域のデータが同期する。
 例えば、使用中の不揮発データ領域Bに存在し、予備の不揮発データ領域Aに存在しないデータが、不揮発データ領域Aにコピーされる。また、予備の不揮発データ領域Aに存在し、使用中の不揮発データ領域Bに存在しないデータが、不揮発データ領域Aから削除される。これにより、図17のBに示されるように、予備の不揮発データ領域Aのデータが、使用中の不揮発データ領域BのFW(Ver.X+1)用データと同期する。
 その後、処理はステップS104に進む。
 ステップS104において、バックアップモジュール272は、バックアップの完了をメインモジュール271に通知する。
 その後、高性能ECU211のバックアップ処理は終了する。
 これにより、今後ロールバックが発生しないと判定された後、例えば定期的に、予備の不揮発データ領域のデータが使用中の不揮発データ領域のデータに同期し、両者のデータが一致するようになる。
   <高性能ECU211のFWアップデート処理の第2の実施の形態>
 次に、図18のシーケンス図を参照して、高性能ECU211のFWアップデート処理の第2の実施の形態について説明する。
 なお、以下、フラッシュメモリ252の状態が、図19のAに示されるように、上述した図17のBと同様の状態であるものとする。
 ステップS121乃至ステップS124において、図10のステップS1乃至ステップS4と同様の処理が実行される。
 そして、不揮発データ領域間にデータの差分がある場合、ステップS125の処理が実行される。
 具体的には、ステップS125において、図16のステップS103の処理と同様に、使用中の不揮発データ領域との差分を予備の不揮発データ領域にコピーされる。これにより、予備の不揮発データ領域のデータが、使用中の不揮発データ領域のデータに同期する。
 ステップS126乃至ステップS128において、図10のステップS6乃至ステップS8と同様の処理が実行される。
 これにより、例えば、図19のBに示されるように、メインシステム領域AのFWが、FW(Ver.X+2)により更新される。また、メインシステム領域A及び不揮発データ領域Aが使用中領域に設定され、メインシステム領域B及び不揮発データ領域Bが予備領域に設定される。そして、メインシステム領域AのFW(Ver.X+2)が、実行対象に設定され、次回以降の高性能ECU211の起動時に、FW(Ver.X+2)が起動されるようになる。
 以上のように、FWのアップデート時に、使用中の不揮発データ領域と予備の不揮発データ領域との差分のみが、予備の不揮発データ領域にコピーされるため、不揮発データ領域のデータのコピーの所要時間が短縮される。その結果、FWのアップデートの所要時間が短縮される。
   <レガシーECU212のFWアップデート処理の第1の実施の形態>
 次に、図20及び図21のシーケンス図を参照して、レガシーECU212のFWアップデート処理の第1の実施の形態について説明する。
 なお、以下、高性能ECU211のフラッシュメモリ252及びレガシーECU212のフラッシュメモリ302が、図22のAに示される状態であるもとする。
 具体的には、現在レガシーECU212で実行対象となっているFW(Ver.Y)が、レガシーECU212のフラッシュメモリ302のメインシステム領域に格納されているものとする。FW(Ver.Y)が対応するフォーマットに従い、FW(Ver.Y)により使用されるFW(Ver.Y)用データが、レガシーECU212のフラッシュメモリ302の不揮発データ領域に格納されているものとする。1つ前のバージョンのFW(Ver.Y-1)が、高性能ECU211のフラッシュメモリ252の他ECU用SW領域に格納されているものとする。FW(Ver.Y-1)が対応するフォーマットに従い、FW(Ver.Y-1)により使用されるFW(Ver.Y-1)用データが、高性能ECU211のフラッシュメモリ252の他ECU用データ領域に格納されているものとする。
 ステップS201において、高性能ECU211は、例えば、外部のサーバ等から通信部22等を介して、OTAにより、レガシーECU212のFWアップデート要求を受信する。レガシーECU212のFWアップデート要求には、例えば、レガシーECU212のバージョンアップ用のFW(更新用FW)が含まれる。
 ステップS202において、レガシーECU212のFWアップデート要求が、高性能ECU211のメインモジュール271に供給される。
 ステップS203において、高性能ECU211のメインモジュール271は、アップデートモードへ移行する。これにより、高性能ECU211は、通常動作を一時的に停止し、車両1の走行等の通常動作が一時的に不可となる。
 ステップS204において、高性能ECU211のメインモジュール271は、FW転送要求をレガシーECU212に送信する。
 これに対して、レガシーECU212のメインモジュール321は、FW転送要求を高性能ECU211から受信する。
 ステップS205において、レガシーECU212から高性能ECU211のメインモジュール271に、FWが転送される。
 具体的には、レガシーECU212のメインモジュール321は、フラッシュメモリ302のメインシステム領域に格納されている、現在使用中であり、更新前のFWを高性能ECU211に送信する。
 これに対して、高性能ECU211のメインモジュール271は、FWをレガシーECU212から受信する。
 これにより、例えば、レガシーECU212のメインシステム領域に格納されているFW(Ver.Y)が、レガシーECU212から高性能ECU211に転送される。
 ステップS206において、高性能ECU211のメインモジュール271は、データ転送要求をレガシーECU212に送信する。
 これに対して、レガシーECU212のメインモジュール321は、データ転送要求を高性能ECU211から受信する。
 ステップS207において、レガシーECU212から高性能ECU211のメインモジュール271に、データが転送される。
 具体的には、レガシーECU212のメインモジュール321は、フラッシュメモリ302の不揮発データ領域に格納されて、現在使用中であり、更新前のデータを高性能ECU211に送信する。
 これに対して、高性能ECU211のメインモジュール271は、データをレガシーECU212から受信する。
 これにより、例えば、レガシーECU212の不揮発データ領域に格納されているFW(Ver.Y)用データが、レガシーECU212から高性能ECU211に転送される。
 ステップS208において、高性能ECU211のメインモジュール271は、バックアップ要求をバックアップモジュール272に送信する。
 ステップS209において、高性能ECU211のバックアップモジュール272は、更新前のレガシーECU212のFW及びデータをバックアップする。
 具体的には、バックアップモジュール272は、レガシーECU212から受信したFWをフラッシュメモリ252の他ECU用SW領域にコピーする。これにより、高性能ECU211の他ECU用SW領域のFWが、現在使用中であり、更新前のレガシーECU212のFWにより更新される。すなわち、更新前のレガシーECU212のFWが、高性能ECU211の他ECU用SW領域にバックアップされる。
 バックアップモジュール272は、レガシーECU212から受信したデータをフラッシュメモリ252の他ECU用データ領域にコピーする。これにより、高性能ECU211の他ECU用データ領域のデータが、現在使用中であり、更新前のレガシーECU212のFW用データにより更新される。すなわち、更新前のレガシーECU212のFW用データが、高性能ECU211の他ECU用データ領域にバックアップされる。
 例えば、図22のBに示されるように、高性能ECU211の他ECU用SW領域のFWが、現在使用中であり、更新前のFW(Ver.Y)により更新される。高性能ECU211の他ECU用データ領域のデータが、現在使用中であり、更新前のFW(Ver.Y)用データにより更新される。
 ステップS210において、高性能ECU211のバックアップモジュール272は、バックアップの完了をメインモジュール271に通知する。
 ステップS211において、高性能ECU211のメインモジュール271は、FW更新要求をレガシーECU212に送信する。FW更新要求は、例えば、更新用FWを含む。
 これに対して、レガシーECU212のメインモジュール321は、FW更新要求を高性能ECU211から受信する。
 ステップS212において、レガシーECU212のメインモジュール321は、FWを更新する。具体的には、メインモジュール321は、フラッシュメモリ302のメインシステム領域に更新用FWを書き込む。これにより、フラッシュメモリ302のメインシステム領域のFWが、更新用FWにより更新される。
 例えば、図22のBに示されるように、レガシーECU212のメインシステム領域のFWが、最新のFW(Ver.Y+1)により更新される。
 ステップS213において、レガシーECU212のメインモジュール321は、FWの更新の完了を高性能ECU211のメインモジュール271に通知する。
 次に、レガシーECU212がデータマイグレーションを実行できない場合、ステップS214乃至ステップS219の処理が実行される。
 具体的には、ステップS214において、高性能ECU211のメインモジュール271は、データフォーマットの移行処理(データマイグレーション)の実行をデータマイグレーションモジュール273に要求する。
 ステップS215において、高性能ECU211のデータマイグレーションモジュール273は、更新後のFW用のデータを生成する。具体的には、データマイグレーションモジュール273は、高性能ECU211の他ECU用データ領域のデータを、更新後のFWが対応するフォーマットに変換したデータを生成する。
 これにより、例えば、更新後のFW(Ver.Y+1)が対応するフォーマットに従ったFW(Ver.Y+1)用データが生成される。
 ステップS216において、高性能ECU211のデータマイグレーションモジュール273は、更新後のFW用データをメインモジュール271に送信する。
 ステップS217において、高性能ECU211のメインモジュール271は、データ更新要求をレガシーECU212に送信する。データ更新要求は、例えば、更新後のFW用データを含む。
 これに対して、レガシーECU212のメインモジュール321は、データ更新要求を高性能ECU211から受信する。
 ステップS218において、レガシーECU212のメインモジュール321は、データを更新する。具体的には、メインモジュール321は、高性能ECU211から受信した更新後のFW用データを、フラッシュメモリ302の不揮発データ領域にコピーする。これにより、フラッシュメモリ302の不揮発データ領域のデータが、更新後のFW用データにより更新される。
 例えば、図22のCに示されるように、レガシーECU212の不揮発データ領域のデータが、FW(Ver.Y+1)用データにより更新される。その結果、レガシーECU212が、FW(Ver.Y+1)を実行可能な状態になる。
 ステップS219において、レガシーECU212のメインモジュール321は、データの更新の完了を高性能ECU211のメインモジュール271に通知する。
 その後、レガシーECU212のFWアップデート処理は終了する。
 一方、レガシーECU212がデータマイグレーションを実行可能である場合、ステップS220乃至ステップS222の処理が実行される。
 具体的には、ステップS220において、高性能ECU211のメインモジュール271は、データフォーマットの移行処理(データマイグレーション)の実行を、レガシーECU212に要求する。
 ステップS221において、レガシーECU212のデータマイグレーションモジュール322は、レガシーECU212の不揮発データ領域のデータのフォーマットを更新する。
 例えば、図22のCに示されるように、レガシーECU212の不揮発データ領域のFW(Ver.Y)用データが、FW(Ver.Y+1)が対応するフォーマットに従ったFW(Ver.Y+1)用データに変換される。その結果、レガシーECU212が、FW(Ver.Y+1)を実行可能な状態になる。
 ステップS222において、レガシーECU212のデータマイグレーションモジュール273は、データマイグレーションの完了を高性能ECU211のメインモジュール271に通知する。
 その後、レガシーECU212のFWアップデート処理は終了する。そして、高性能ECU211のアップデートモードが解除される。
   <レガシーECU212のロールバック処理>
 次に、図23のシーケンス図を参照して、レガシーECU212のロールバック処理について説明する。
 なお、以下、高性能ECU211のフラッシュメモリ252及びレガシーECU212のフラッシュメモリ302の状態が、図24のAに示されるように、上述した図22のCと同様の状態であるものとする。
 ステップS241において、高性能ECU211は、例えば、外部のサーバ等から通信部22等を介して、OTAにより、レガシーECU212のロールバック要求を受信する。
 ステップS242において、ロールバック要求が、高性能ECU211のメインモジュール271に供給される。
 ステップS243において、高性能ECU211のメインモジュール271は、FWロールバック要求をレガシーECU212に送信する。FWロールバック要求は、例えば、高性能ECU211の他ECU用SW領域に格納されているFW、すなわち前のバージョンのFWを含む。
 これに対して、レガシーECU212のメインモジュール321は、FWロールバック要求を高性能ECU211から受信する。
 ステップS244において、レガシーECU212のメインモジュール321は、FWをロールバックする。具体的には、メインモジュール321は、FWロールバック要求に含まれるFW、すなわち前のバージョンのFWを、フラッシュメモリ302のメインシステム領域にコピーする。これにより、レガシーECU212のメインシステム領域のFWが、前のバージョンのFWにロールバックされる。
 例えば、図24のBに示されるように、レガシーECU212のメインシステム領域のFWが、FW(Ver.Y+1)からFW(Ver.Y)にロールバックされる。
 ステップS245において、レガシーECU212のメインモジュール321は、FWのロールバックの完了を高性能ECU211のメインモジュール271に通知する。
 ステップS246において、高性能ECU211のメインモジュール271は、データロールバック要求をレガシーECU212に送信する。データロールバック要求は、例えば、高性能ECU211の他ECU用データ領域に格納されているデータ、すなわち前のバージョンのFW用データを含む。
 これに対して、レガシーECU212のメインモジュール321は、データロールバック要求を高性能ECU211から受信する。
 ステップS247において、レガシーECU212のメインモジュール321は、データをロールバックする。具体的には、メインモジュール321は、データロールバック要求に含まれるデータ、すなわち前のバージョンのFW用データを、フラッシュメモリ302の不揮発データ領域にコピーする。これにより、レガシーECU212の不揮発データ領域のデータが、前のバージョンのFW用データにロールバックされる。
 例えば、図24のBに示されるように、レガシーECU212の不揮発データ領域のデータが、FW(Ver.Y+1)用データからFW(Ver.Y)用データにロールバックされる。これにより、レガシーECU212が、前のバージョンのFW(Ver.Y)を実行可能な状態になる。
 ステップS248において、レガシーECU212のメインモジュール321は、データのロールバックの完了を高性能ECU211のメインモジュール271に通知する。
 その後、レガシーECU212のロールバック処理は終了する。
 このように、高性能ECU211が、レガシーECU212の前のバージョンのFWをバックアップしているため、レガシーECU212のFWのロールバックが容易に実行される。また、高性能ECU211が、レガシーECU212の前のバージョンのFW用データをバックアップしているため、特にデータの変換等を行わなくても、レガシーECU212が、前のバージョンのFWをそのまま実行することが可能になる。
 ここで、上述した図20のレガシーECU212のFWアップデート処理では、ステップS209において、レガシーECU212の不揮発データ領域のデータが高性能ECU211の他ECU用データ領域にコピーされる。従って、レガシーECU212の不揮発データ領域のデータ量が大きくなるほど、データのコピーの所要時間が長くなり、レガシーECU212のFWアップデート処理の所要時間が長くなる。レガシーECU212のFWアップデート処理中は、車両1は走行等の通常動作が行えないため、その結果、ユーザの利便性が低下するおそれがある。
 これに対して、以下、レガシーECU212のFWアップデート処理の所要時間を短縮する方法について説明する。
   <レガシーECU212のデータのバックアップ処理>
 まず、図25のシーケンス図を参照して、レガシーECU212のFWがアップデートされた後に実行される、レガシーECU212のデータのバックアップ処理について説明する。
 なお、以下、高性能ECU211のフラッシュメモリ252及びレガシーECU212のフラッシュメモリ302の状態が、図26のAに示されるように、上述した図22のCと同様の状態であるものとする。
 例えば、高性能ECU211のメインモジュール271が、今後レガシーECU212のロールバックが発生しない、かつ、バックアップするタイミングであると判定した場合、ステップS301乃至ステップS306の処理が実行される。
 なお、今後レガシーECU212のロールバックが発生するか否かの判定方法は、例えば、図16を参照して上述した高性能ECU211のバックアップ処理における、高性能ECU211のロールバックが発生するか否かの判定方法と同様とされる。
 また、バックアップするタイミングも、例えば、図16を参照して上述した高性能ECU211のバックアップ処理におけるタイミングと同様とされる。
 ステップS301乃至ステップS303において、上述した図20のステップS206乃至ステップS208と同様の処理が実行される。
 そして、今回のバックアップが初回である場合、すなわち、今回のバックアップが、レガシーECU212のFWがアップデートされてから初めてのバックアップである場合、ステップS304の処理が実行される。
 具体的には、ステップS304において、高性能ECU211のバックアップモジュール272は、レガシーECU212のデータを他ECU用データ領域にコピーする。すなわち、バックアップモジュール272は、レガシーECU212から受信したデータをフラッシュメモリ252の他ECU用データ領域にコピーする。これにより、高性能ECU211の他ECU用データ領域のデータが、レガシーECU212の不揮発データ領域のデータにより更新され、レガシーECU212の不揮発データ領域のデータと高性能ECU211の他ECU用データ領域のデータとが同期する。
 例えば、図26のBに示されるように、高性能ECU211の他ECU用データ領域のデータが、レガシーECU212の不揮発データ領域のFW(Ver.Y+1)用データにより更新され、レガシーECU212の不揮発データ領域のデータと高性能ECU211の他ECU用データ領域とが同期する。すなわち、レガシーECU212の不揮発データ領域のFW(Ver.Y+1)用データが、高性能ECU211の他ECU用データ領域にバックアップされる。
 その後、処理はステップS306に進む。
 一方、過去にレガシーECU212のバックアップ履歴がある場合、すなわち、今回のバックアップが、レガシーECU212のFWがアップデートされてから2回目以降のバックアップである場合、ステップS305の処理が実行される。
 具体的には、ステップS305において、高性能ECU211のバックアップモジュール272は、レガシーECU212のデータとの差分を他ECU用データ領域にコピーする。
 例えば、バックアップモジュール272は、高性能ECU211の他ECU用データ領域のデータに対するレガシーECU212の不揮発データ領域のデータの差分を、他ECU用データ領域にコピーする。すなわち、レガシーECU212の不揮発データ領域に存在し、高性能ECU211の他ECU用データ領域に存在しないデータが、他ECU用データ領域にコピーされる。
 また、例えば、バックアップモジュール272は、レガシーECU212の不揮発データ領域のデータに対する高性能ECU211の他ECU用データ領域のデータの差分を、他ECU用データ領域から削除する。すなわち、高性能ECU211の他ECU用データ領域に存在し、レガシーECU212の不揮発データ領域に存在しないデータが、他ECU用データ領域から削除される。
 これにより、レガシーECU212の不揮発データ領域のデータと高性能ECU211の他ECU用データ領域のデータが同期する。
 例えば、図26のBに示されるように、高性能ECU211の他ECU用データ領域のデータが、レガシーECU212の不揮発データ領域のFW(Ver.Y+1)用データと同期する。
 その後、処理はステップS306に進む。
 ステップS306において、高性能ECU211のバックアップモジュール272は、バックアップの完了をメインモジュール271に通知する。
 その後、レガシーECU212のデータのバックアップ処理は終了する。
 これにより、今後レガシーECU212のロールバックが発生しないと判定された後、例えば定期的に、高性能ECU211の他ECU用データ領域が、レガシーECU212の不揮発データ領域に同期し、両者のデータが一致するようになる。
   <レガシーECU212のFWアップデート処理の第2の実施の形態>
 次に、図27及び図28のシーケンス図を参照して、レガシーECU212のFWアップデート処理の第2の実施の形態について説明する。
 なお、以下、高性能ECU211のフラッシュメモリ252及びレガシーECU212のフラッシュメモリ302の状態が、図29のAに示されるように、上述した図26のBと同様の状態であるものとする。
 ステップS301乃至ステップS308において、図20のステップS201乃至ステップS208と同様の処理が実行される。
 そして、高性能ECU211のバックアップモジュール272が、レガシーECU212のデータと他ECU用データ領域の差分があると判定した場合、すなわち、レガシーECU212の不揮発データ領域のデータと高性能ECU211の他ECU用データ領域のデータとの差分があると判定した場合、ステップS309の処理が実行される。
 具体的には、ステップS309において、高性能ECU211のバックアップモジュール272は、更新前のレガシーECU212のデータの差分及びFWをバックアップする。
 具体的には、バックアップモジュール272は、上述した図20のステップS209の処理と同様に、レガシーECU212から受信したFWをフラッシュメモリ252の他ECU用SW領域にコピーする。
 また、バックアップモジュール272は、上述した図25のステップS305の処理と同様に、レガシーECU212のデータとの差分を他ECU用データ領域にコピーする。
 これにより、例えば、図29のBに示されるように、高性能ECU211の他ECU用SW領域のFWが、FW(Ver.Y+1)により更新される。また、例えば、高性能ECU211の他ECU用データ領域のデータが、レガシーECU212の不揮発データ領域のFW(Ver.Y+1)用データと同期する。これにより、更新前のFW(Ver.Y+1)及びFW(Ver.Y+1)用データが、高性能ECU211によりバックアップされる。
 その後、処理はステップS311に進む。
 一方、高性能ECU211のバックアップモジュール272が、レガシーECU212のデータと他ECU用データ領域の差分がないと判定した場合、すなわち、レガシーECU212の不揮発データ領域のデータと高性能ECU211の他ECU用データ領域のデータとの差分がないと判定した場合、ステップS310の処理が実行される。
 具体的には、ステップS310において、高性能ECU211のバックアップモジュール272は、更新前のレガシーECU212のFWをバックアップする。具体的には、バックアップモジュール272は、上述した図20のステップS209の処理と同様に、レガシーECU212から受信したFWをフラッシュメモリ252の他ECU用SW領域にコピーする。
 これにより、例えば、図29のBに示されるように、高性能ECU211の他ECU用SW領域のFWが、FW(Ver.Y+1)により更新される。また、高性能ECU211の他ECU用データ領域のデータが、レガシーECU212の不揮発データ領域のFW(Ver.Y+1)用データとすでに同期している。これにより、更新前のFW(Ver.Y+1)及びFW(Ver.Y+1)用データが、高性能ECU211によりバックアップされる。
 その後、処理はステップS311に進む。
 ステップS311乃至ステップS323において、上述した図20のステップS210乃至図21のステップS222と同様の処理が実行される。
 これにより、図29のBに示されるように、レガシーECU212のメインシステム領域のFWが、FW(Ver.Y+2)により更新される。また、レガシーECU212の不揮発データ領域のデータが、FW(Ver.Y+2)が対応するフォーマットに従ったFW(Ver.Y+2)用データにより更新される。その結果、レガシーECU212が、FW(Ver.Y+2)を実行可能な状態になる。
 その後、レガシーECU212のFWアップデート処理は終了する。
 以上のように、レガシーECU212のFWのアップデート時に、レガシーECU212の不揮発データ領域のデータと高性能ECU211の他ECU用データ領域との差分のみが、高性能ECU211の他ECU用データ領域にコピーされる。従って、レガシーECU212のデータのコピーの所要時間が短縮される。その結果、レガシーECU212のFWのアップデートの所要時間が短縮される。
 <<4.変形例>>
 以下、上述した本技術の実施の形態の変形例について説明する。
 例えば、レガシーECU212が、2以上のバージョンのFWを格納できる場合、高性能ECU211は、必ずしもレガシーECU212のFWをバックアップする必要はない。また、この場合、高性能ECU211の他ECU用SW領域を削除することが可能である。
 例えば、1つのレガシーECU212に対して、それぞれ2つの他ECU用SW領域及び他ECU用データ領域を高性能ECU211に設けるようにしてもよい。そして、高性能ECU211が、実行対象となるFW及び当該FW用データ、並びに、古いバージョンのFW及び当該FW用データのバックアップを行うようにししてもよい。
 本技術は、例えば、フラッシュメモリ以外の、不揮発かつ書き換え可能なメモリ(記憶部)を用いる場合にも適用することができる。
 本技術は、車両以外にOTA等によりソフトウエアのアップデートやロールバックを実行する装置やシステムに適用することができる。例えば、スマートフォン、PC、タブレット端末、デジタルカメラ、ロボット、車両以外の移動体等が想定される。
 <<5.その他>>
  <コンピュータの構成例>
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 図30は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 コンピュータ1000において、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。
 バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、及びドライブ1010が接続されている。
 入力部1006は、入力スイッチ、ボタン、マイクロフォン、撮像素子などよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア1011を駆動する。
 以上のように構成されるコンピュータ1000では、CPU1001が、例えば、記憶部1008に記録されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ1000(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータ1000では、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のシーケンス図で説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
  <構成の組み合わせ例>
 本技術は、以下のような構成をとることもできる。
(1)
 ソフトウエアを管理するソフトウエア管理部と、
 第1のソフトウエア領域、第2のソフトウエア領域、前記第1のソフトウエア領域に対応する第1のデータ領域、及び、前記第2のソフトウエア領域に対応する第2のデータ領域を備える記憶部と
 を備え、
 前記ソフトウエア管理部は、前記第1のソフトウエア領域及び前記第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである第1の現ソフトウエアを格納し、他方のソフトウエア領域に、前記第1の現ソフトウエアより前のバージョンのソフトウエアである第1の旧ソフトウエアを格納し、前記第1のデータ領域及び前記第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記第1の現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に、前記第1の旧ソフトウエアが対応するフォーマットのデータを格納する
 情報処理装置。
(2)
 前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の旧ソフトウエアにロールバックする場合、前記他方のソフトウエア領域の前記第1の旧ソフトウエアを実行し、前記他方のデータ領域のデータを使用するように制御する
 前記(1)に記載の情報処理装置。
(3)
 前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の旧ソフトウエアへのロールバックが発生しないと判定した場合、前記他方のデータ領域のデータを前記一方のデータ領域のデータにより更新する
 前記(2)に記載の情報処理装置。
(4)
 前記ソフトウエア管理部は、前記他方のデータ領域のデータを更新した後、所定のタイミングで、前記一方のデータ領域のデータと前記他方のデータ領域のデータとの差分を、前記他方のデータ領域にコピーする
 前記(3)に記載の情報処理装置。
(5)
 前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップする場合、前記他方のソフトウエア領域に前記新ソフトウエアを格納し、前記一方のデータ領域のデータと前記他方のデータ領域のデータとの差分があるとき、前記一方のデータ領域のデータと前記他方のデータ領域のデータとの差分を、前記他方のデータ領域にコピーする
 前記(4)に記載の情報処理装置。
(6)
 前記ソフトウエア管理部は、前記他方のデータ領域のデータを前記新ソフトウエアが対応するフォーマットに変換する
 前記(5)に記載の情報処理装置。
(7)
 前記情報処理装置は、車両に設けられ、
 前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の旧ソフトウエアへのロールバックが発生しないと判定した場合、前記車両の充電中に、前記他方のデータ領域のデータを前記一方のデータ領域のデータにより更新する
 前記(3)乃至(6)のいずれかに記載の情報処理装置。
(8)
 前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップする場合、前記他方のソフトウエア領域に前記新ソフトウエアを格納し、前記他方のデータ領域のデータを前記一方のデータ領域のデータにより更新し、更新後の前記他方のデータ領域のデータを前記新ソフトウエアが対応するフォーマットに変換する
 前記(1)に記載の情報処理装置。
(9)
 前記記憶部は、第3のデータ領域をさらに備え、
 前記ソフトウエア管理部は、他の情報処理装置の実行対象となるソフトウエアである第2の現ソフトウエアより前のバージョンのソフトウエアである第2の旧ソフトウエアが対応するフォーマットのデータである旧データを前記第3のデータ領域に格納する
 前記(1)に記載の情報処理装置。
(10)
 前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の旧ソフトウエアにロールバックされる場合、前記第3のデータ領域の前記旧データを前記他の情報処理装置に送信する
 前記(9)に記載の情報処理装置。
(11)
 前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップされる場合、前記第2の現ソフトウエアが対応するフォーマットのデータである現データを前記他の情報処理装置から取得し、前記第3のデータ領域のデータを前記現データにより更新する
 前記(9)又は(10)に記載の情報処理装置。
(12)
 前記ソフトウエア管理部は、前記現データを前記新ソフトウエアが対応するフォーマットに変換したデータである新データを生成し、前記新データを前記他の情報処理装置に送信する
 前記(11)に記載の情報処理装置。
(13)
 前記記憶部は、第3のソフトウエア領域をさらに備え、
 前記ソフトウエア管理部は、前記第2の旧ソフトウエアを前記第3のソフトウエア領域に格納する
 前記(9)乃至(12)のいずれかに記載の情報処理装置。
(14)
 前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の旧ソフトウエアにロールバックされる場合、前記第3のソフトウエア領域の前記第2の旧ソフトウエア、及び、前記第3のデータ領域の前記旧データを前記他の情報処理装置に送信する
 前記(13)に記載の情報処理装置。
(15)
 前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップされる場合、前記第2の現ソフトウエア、及び、前記第2の現ソフトウエアが対応するフォーマットのデータである現データを前記他の情報処理装置から取得し、前記第3のソフトウエア領域のソフトウエアを前記第2の現ソフトウエアにより更新し、前記第3のデータ領域のデータを前記現データにより更新する
 前記(13)又は(14)に記載の情報処理装置。
(16)
 前記記憶部は、フラッシュメモリである
 前記(1)乃至(15)のいずれかに記載の情報処理装置。
(17)
 前記情報処理装置は、車両に設けられる
 前記(1)乃至(16)のいずれかに記載の情報処理装置。
(18)
 情報処理装置が、
 記憶部の第1のソフトウエア領域及び第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである現ソフトウエアを格納し、他方のソフトウエア領域に、前記現ソフトウエアの前のバージョンのソフトウエアである旧ソフトウエアを格納し、
 前記記憶部の第1のデータ領域及び第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に、前記旧ソフトウエアが対応するフォーマットのデータを格納する
 情報処理方法。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 1 車両, 11 車両制御システム, 21 車両制御システム, 201 情報処理システム, 211-1乃至211-m 高性能ECU, 212-1乃至212-n レガシーECU, 251 CPU, 252 フラッシュメモリ, 253 RAM, 261 ソフトウエア管理部, 271 メインモジュール, 272 バックアップモジュール, 273 データマイグレーションモジュール, 301 CPU, 302 フラッシュメモリ, 303 RAM, 304 外付けNVRAM, 311 ソフトウエア管理部, 321 メインモジュール, 322 データマイグレーションモジュール

Claims (18)

  1.  ソフトウエアを管理するソフトウエア管理部と、
     第1のソフトウエア領域、第2のソフトウエア領域、前記第1のソフトウエア領域に対応する第1のデータ領域、及び、前記第2のソフトウエア領域に対応する第2のデータ領域を備える記憶部と
     を備え、
     前記ソフトウエア管理部は、前記第1のソフトウエア領域及び前記第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである第1の現ソフトウエアを格納し、他方のソフトウエア領域に、前記第1の現ソフトウエアより前のバージョンのソフトウエアである第1の旧ソフトウエアを格納し、前記第1のデータ領域及び前記第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記第1の現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に、前記第1の旧ソフトウエアが対応するフォーマットのデータを格納する
     情報処理装置。
  2.  前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の旧ソフトウエアにロールバックする場合、前記他方のソフトウエア領域の前記第1の旧ソフトウエアを実行し、前記他方のデータ領域のデータを使用するように制御する
     請求項1に記載の情報処理装置。
  3.  前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の旧ソフトウエアへのロールバックが発生しないと判定した場合、前記他方のデータ領域のデータを前記一方のデータ領域のデータにより更新する
     請求項2に記載の情報処理装置。
  4.  前記ソフトウエア管理部は、前記他方のデータ領域のデータを更新した後、所定のタイミングで、前記一方のデータ領域のデータと前記他方のデータ領域のデータとの差分を、前記他方のデータ領域にコピーする
     請求項3に記載の情報処理装置。
  5.  前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップする場合、前記他方のソフトウエア領域に前記新ソフトウエアを格納し、前記一方のデータ領域のデータと前記他方のデータ領域のデータとの差分があるとき、前記一方のデータ領域のデータと前記他方のデータ領域のデータとの差分を、前記他方のデータ領域にコピーする
     請求項4に記載の情報処理装置。
  6.  前記ソフトウエア管理部は、前記他方のデータ領域のデータを前記新ソフトウエアが対応するフォーマットに変換する
     請求項5に記載の情報処理装置。
  7.  前記情報処理装置は、車両に設けられ、
     前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の旧ソフトウエアへのロールバックが発生しないと判定した場合、前記車両の充電中に、前記他方のデータ領域のデータを前記一方のデータ領域のデータにより更新する
     請求項3に記載の情報処理装置。
  8.  前記ソフトウエア管理部は、前記第1の現ソフトウエアから前記第1の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップする場合、前記他方のソフトウエア領域に前記新ソフトウエアを格納し、前記他方のデータ領域のデータを前記一方のデータ領域のデータにより更新し、更新後の前記他方のデータ領域のデータを前記新ソフトウエアが対応するフォーマットに変換する
     請求項1に記載の情報処理装置。
  9.  前記記憶部は、第3のデータ領域をさらに備え、
     前記ソフトウエア管理部は、他の情報処理装置の実行対象となるソフトウエアである第2の現ソフトウエアより前のバージョンのソフトウエアである第2の旧ソフトウエアが対応するフォーマットのデータである旧データを前記第3のデータ領域に格納する
     請求項1に記載の情報処理装置。
  10.  前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の旧ソフトウエアにロールバックされる場合、前記第3のデータ領域の前記旧データを前記他の情報処理装置に送信する
     請求項9に記載の情報処理装置。
  11.  前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップされる場合、前記第2の現ソフトウエアが対応するフォーマットのデータである現データを前記他の情報処理装置から取得し、前記第3のデータ領域のデータを前記現データにより更新する
     請求項9に記載の情報処理装置。
  12.  前記ソフトウエア管理部は、前記現データを前記新ソフトウエアが対応するフォーマットに変換したデータである新データを生成し、前記新データを前記他の情報処理装置に送信する
     請求項11に記載の情報処理装置。
  13.  前記記憶部は、第3のソフトウエア領域をさらに備え、
     前記ソフトウエア管理部は、前記第2の旧ソフトウエアを前記第3のソフトウエア領域に格納する
     請求項9に記載の情報処理装置。
  14.  前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の旧ソフトウエアにロールバックされる場合、前記第3のソフトウエア領域の前記第2の旧ソフトウエア、及び、前記第3のデータ領域の前記旧データを前記他の情報処理装置に送信する
     請求項13に記載の情報処理装置。
  15.  前記ソフトウエア管理部は、前記第2の現ソフトウエアから前記第2の現ソフトウエアより後のバージョンのソフトウエアである新ソフトウエアにバージョンアップされる場合、前記第2の現ソフトウエア、及び、前記第2の現ソフトウエアが対応するフォーマットのデータである現データを前記他の情報処理装置から取得し、前記第3のソフトウエア領域のソフトウエアを前記第2の現ソフトウエアにより更新し、前記第3のデータ領域のデータを前記現データにより更新する
     請求項13に記載の情報処理装置。
  16.  前記記憶部は、フラッシュメモリである
     請求項1に記載の情報処理装置。
  17.  前記情報処理装置は、車両に設けられる
     請求項1に記載の情報処理装置。
  18.  情報処理装置が、
     記憶部の第1のソフトウエア領域及び第2のソフトウエア領域のうち一方のソフトウエア領域に、実行対象となるソフトウエアである現ソフトウエアを格納し、他方のソフトウエア領域に、前記現ソフトウエアの前のバージョンのソフトウエアである旧ソフトウエアを格納し、
     前記記憶部の第1のデータ領域及び第2のデータ領域のうち前記一方のソフトウエア領域に対応する一方のデータ領域に、前記現ソフトウエアが対応するフォーマットのデータを格納し、他方のデータ領域に、前記旧ソフトウエアが対応するフォーマットのデータを格納する
     情報処理方法。
PCT/JP2023/034721 2022-10-14 2023-09-25 情報処理装置及び情報処理方法 WO2024080119A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-165576 2022-10-14
JP2022165576 2022-10-14

Publications (1)

Publication Number Publication Date
WO2024080119A1 true WO2024080119A1 (ja) 2024-04-18

Family

ID=90669056

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/034721 WO2024080119A1 (ja) 2022-10-14 2023-09-25 情報処理装置及び情報処理方法

Country Status (1)

Country Link
WO (1) WO2024080119A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668261B1 (en) * 1999-07-29 2003-12-23 International Business Machines Corporation Method of upgrading a program using associated configuration data
WO2015192298A1 (en) * 2014-06-16 2015-12-23 Huawei Technologies Co., Ltd. Telecommunication device and method for updating software in a telecommunication device
JP2020047139A (ja) * 2018-09-21 2020-03-26 キヤノン株式会社 組み込みシステムのファームウエアバージョン変更方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668261B1 (en) * 1999-07-29 2003-12-23 International Business Machines Corporation Method of upgrading a program using associated configuration data
WO2015192298A1 (en) * 2014-06-16 2015-12-23 Huawei Technologies Co., Ltd. Telecommunication device and method for updating software in a telecommunication device
JP2020047139A (ja) * 2018-09-21 2020-03-26 キヤノン株式会社 組み込みシステムのファームウエアバージョン変更方法及びプログラム

Similar Documents

Publication Publication Date Title
CN111201787B (zh) 成像装置、图像处理装置和图像处理方法
US11873007B2 (en) Information processing apparatus, information processing method, and program
US20240054793A1 (en) Information processing device, information processing method, and program
US20220383749A1 (en) Signal processing device, signal processing method, program, and mobile device
US20240069564A1 (en) Information processing device, information processing method, program, and mobile apparatus
WO2022075133A1 (ja) 撮像装置、情報処理装置、撮像システム及び撮像方法
US20230251846A1 (en) Information processing apparatus, information processing method, information processing system, and program
WO2024080119A1 (ja) 情報処理装置及び情報処理方法
WO2019097884A1 (ja) 情報処理装置と管理装置および方法とプログラム
US20230356603A1 (en) Information processing apparatus, information processing method, and program
US20230418586A1 (en) Information processing device, information processing method, and information processing system
US20240160467A1 (en) Information processing system, information processing method, program, and cluster system
WO2022004446A1 (ja) 情報処理装置、および情報処理方法、情報処理システム、並びにプログラム
WO2022004447A1 (ja) 情報処理装置、および情報処理方法、情報処理システム、並びにプログラム
WO2022024569A1 (ja) 情報処理装置と情報処理方法およびプログラム
EP4273834A1 (en) Information processing device, information processing method, program, moving device, and information processing system
WO2023074419A1 (ja) 情報処理装置、情報処理方法、及び、情報処理システム
WO2023063199A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
WO2022259621A1 (ja) 情報処理装置、情報処理方法、コンピュータプログラム
WO2024062976A1 (ja) 情報処理装置及び情報処理方法
US20230274316A1 (en) Information displaying apparatus, information displaying method, and program
CN117999587A (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: 23877125

Country of ref document: EP

Kind code of ref document: A1