WO2017150247A1 - 端末装置およびソフトウェア書き換えプログラム - Google Patents

端末装置およびソフトウェア書き換えプログラム Download PDF

Info

Publication number
WO2017150247A1
WO2017150247A1 PCT/JP2017/006113 JP2017006113W WO2017150247A1 WO 2017150247 A1 WO2017150247 A1 WO 2017150247A1 JP 2017006113 W JP2017006113 W JP 2017006113W WO 2017150247 A1 WO2017150247 A1 WO 2017150247A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal device
software
source code
unit
control
Prior art date
Application number
PCT/JP2017/006113
Other languages
English (en)
French (fr)
Inventor
右資 小島
慎太郎 石本
将生 松尾
山下 春造
Original Assignee
ヤンマー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヤンマー株式会社 filed Critical ヤンマー株式会社
Priority to EP17759713.5A priority Critical patent/EP3425506A4/en
Priority to CA3016285A priority patent/CA3016285A1/en
Priority to CN201780012746.6A priority patent/CN108701067A/zh
Priority to US16/081,376 priority patent/US10732958B2/en
Publication of WO2017150247A1 publication Critical patent/WO2017150247A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01DHARVESTING; MOWING
    • A01D41/00Combines, i.e. harvesters or mowers combined with threshing devices
    • A01D41/12Details of combines
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Definitions

  • the present invention relates to a terminal device and a software rewriting program used in a software rewriting system for rewriting software of a control device (for example, a control device mounted on a moving body such as a work machine or a ship).
  • a control device for example, a control device mounted on a moving body such as a work machine or a ship.
  • a software rewriting system for rewriting control unit software for example, there is a system in which update software for updating control unit software is acquired by a terminal device, and the control unit software is rewritten based on the acquired update software.
  • Patent Document 1 discloses a first storage unit that stores a first version program (software), and a second version program that is the same as the first version or a newer version than the first version.
  • the acquisition unit for acquiring the difference between the second version program and the third version program that is newer than the second version program
  • the second storage unit A configuration comprising: an update unit that generates a third version program from the second version program and the difference acquired by the acquisition unit, and stores the generated third version program in the first storage unit is doing.
  • Patent Document 1 does not describe what is the difference between programs (software) and what is the latest version of software generated from the difference. It is difficult to generate the latest version of software from the difference.
  • the present invention is a terminal device used in a software rewriting system that rewrites software of a control device, and can shorten the transmission time by using a difference in software. It is an object of the present invention to provide a terminal device and a software rewriting program that can easily generate.
  • a terminal device is a terminal device used in a software rewriting system that rewrites software of a control device, and has a text format for generating an object code in binary format that can be executed by the control device.
  • a storage unit for storing the source code acquiring a difference source code that is stored in the storage unit and is a source code of a difference with respect to a source code corresponding to the current object code; Generating the latest source code from the source code stored in the storage unit, converting the generated latest source code to the latest object code, and transmitting the converted latest object code to the control device; It is characterized by.
  • the software rewriting program according to the present invention is a software rewriting program for a terminal device used in a software rewriting system for rewriting software of a control device, and the terminal device is a binary format executable by the control device.
  • a storage unit for storing text source code for generating the object code and a computer, and a difference source code for the source code corresponding to the current object code stored in the storage unit
  • An acquisition control step for acquiring a difference source code; a generation control step for generating the latest source code from the difference source code acquired in the acquisition control step and the source code stored in the storage unit;
  • a conversion control step for converting the latest source code generated in the generation control step into the latest object code; a transmission control step for transmitting the latest object code converted in the conversion control step to the control device;
  • the computer is caused to execute a step including:
  • the “text source code” refers to a program language (for example, a non-machine language such as C language) written in a human recognizable state using a character code.
  • the “binary format object code” refers to a machine language configured in such a manner that the control apparatus can be executed using binary code.
  • control device can be exemplified as being mounted on a mobile object.
  • the terminal device there can be exemplified an aspect provided with a short-range wireless communication unit that is provided in the mobile body and communicates with another mobile body via a short-range wireless communication network.
  • the terminal device includes a short-range wireless communication unit that is provided in the mobile body and communicates with the mobile body via another short-range wireless communication network. Can be illustrated.
  • the latest object code is transmitted to the control device in its own mobile unit, and / or the short range radio communication unit and the short range radio communication network are transmitted to the other mobile unit.
  • a mode of transmitting via can be exemplified.
  • the latest object code is transmitted to the control device in its own mobile unit and / or the short-range radio is transmitted to the other mobile unit.
  • a mode of transmitting via a communication unit and the short-range wireless communication network can be exemplified.
  • the other mobile unit includes the terminal device according to the present invention, and the short-range radio communication unit and the short-range radio communication network are provided with the differential source code in the other mobile unit.
  • a mode of transmitting via can be exemplified.
  • the other mobile unit includes the terminal device according to the present invention.
  • the short-range wireless communication is performed by transmitting the differential source code to the other mobile unit. And a mode of transmitting via the short-range wireless communication network.
  • the control device is mounted on an electrical device, and the terminal device functions as a multi-function communication portable terminal device and communicates with the electrical device via a short-range wireless communication network.
  • a mode provided with a short-range wireless communication unit can be exemplified.
  • the control device is mounted on an electrical device, and the terminal device functions as a multi-function communication portable terminal device, via the electrical device and a short-range wireless communication network.
  • wireless communication part which communicates can be illustrated.
  • the latest object code is transmitted to the electrical equipment via the short-range wireless communication unit and the short-range wireless communication network.
  • the latest object code in the transmission control step, can be transmitted to the electrical equipment via the short-range wireless communication unit and the short-range wireless communication network.
  • the electrical device includes the terminal device according to the present invention, and transmits the differential source code to the electrical device via the short-range wireless communication unit and the short-range wireless communication network.
  • An aspect can be illustrated.
  • the electrical device includes the terminal device according to the present invention, and in the transmission control step, the difference source code is transmitted to the electrical device and the short-range wireless communication unit and the short communication device.
  • a mode of transmitting via a distance wireless communication network can be exemplified.
  • the transmission time can be shortened using the software difference, and the latest version of the software can be easily generated from the software difference.
  • FIG. 1 is a schematic configuration diagram schematically illustrating an example of a software rewriting system according to the first embodiment, and is a dedicated configuration provided in any mobile body that can be a distribution source among a plurality of mobile bodies. It is a schematic diagram which shows the state which the terminal device and the server are communicating via a wide area network.
  • FIG. 2 shows a state in which the dedicated terminal device that has communicated with the server and another dedicated terminal device that can be a distribution source communicate with each other via the short-range wireless communication network in the software rewriting system shown in FIG. It is a schematic diagram.
  • FIG. 3 shows a software rewriting system shown in FIG.
  • FIG. 4 is a schematic diagram illustrating an example of the data structure of the model information management database in the storage unit provided in the server.
  • FIG. 5 is a schematic diagram illustrating an example of the data structure of the update software management database in the storage unit provided in the server.
  • FIG. 6 is a schematic diagram illustrating an example of a data structure of the update software storage database in the storage unit provided in the server.
  • FIG. 7 is a schematic diagram illustrating an example of a data structure in a state where the current version of software of the control device is registered in the storage unit of the terminal device.
  • FIG. 8 is a schematic diagram illustrating an example of a data structure in a state where the source code of the control device is registered in the storage unit in the terminal device (distribution source).
  • FIG. 9 is a block diagram illustrating an example of a software configuration of the dedicated terminal device (distribution source) illustrated in FIGS. 1 to 3.
  • FIG. 10 is a schematic diagram showing an example of a data structure in which area information is added in the model information management database shown in FIG.
  • FIG. 11 is a schematic diagram showing an example of the data structure of the area information management database that constitutes the update software storage database in the storage unit provided in the server.
  • FIG. 12 is a schematic configuration diagram schematically illustrating an example of a software rewriting system according to the second embodiment, and is a schematic diagram illustrating a state in which a general-purpose terminal device communicates with a server via a wide area communication network. is there.
  • FIG. 13 is a schematic diagram showing a state in which a general-purpose terminal device that communicates with a server is communicating with a dedicated terminal device that can be a distribution source via a short-range wireless communication network in the software rewriting system shown in FIG. is there.
  • FIG. 14 shows a state in which the general-purpose terminal device that has communicated with the server is communicating with a dedicated terminal device that cannot substantially become a distribution source via the short-range wireless communication network in the software rewriting system shown in FIG.
  • FIG. 15 is a block diagram illustrating an example of a software configuration of the general-purpose terminal device illustrated in FIGS. 12 to 14.
  • FIG. 16 is a flowchart illustrating an example (an example of download processing) in which a server, a dedicated terminal device (distribution source), and / or a general-purpose terminal device communicate with each other via a wide area communication network.
  • FIG. 17 shows an example (distribution process) in which a dedicated terminal device (distribution source) and / or a general-purpose terminal device and a dedicated terminal device (distribution source) communicated with a server communicate via a short-range wireless communication network. Is an example of a flowchart.
  • FIG. 16 is a flowchart illustrating an example of download processing in which a server, a dedicated terminal device (distribution source), and / or a general-purpose terminal device communicate with each other via a wide area communication network.
  • FIG. 17 shows an example (distribution process) in which a
  • FIG. 18 illustrates an example (distribution) in which a dedicated terminal device (distribution source) and / or a general-purpose terminal device and a dedicated terminal device (non-distribution source) communicated with a server communicate via a short-range wireless communication network.
  • FIG. 19 is a flowchart showing an example of the software rewriting process in the software rewriting system of the first embodiment shown in FIGS. 1 to 11, and shows an example of the first half of the process.
  • FIG. 20 is a flowchart showing an example of the software rewriting process in the software rewriting system of the first embodiment shown in FIGS. 1 to 11, and shows an example of the latter half of the process.
  • First Embodiment 1 to 3 are schematic configuration diagrams schematically showing an example of a software rewriting system 100 according to the first embodiment.
  • FIG. 1 shows a dedicated terminal device provided in any mobile body 110 (1) that can be a distribution source among a plurality of mobile bodies 110 (1) to 110 (n) (n is an integer of 2 or more).
  • 2 is a schematic diagram showing a state in which 200 (1) and a server 130 are communicating via a wide area communication network WN.
  • FIG. 2 shows a short-range wireless communication network in which the dedicated terminal device 200 (1) that communicates with the server 130 and another dedicated terminal device 200 (2) that can be a distribution source in the software rewriting system 100 shown in FIG. It is a schematic diagram which shows the state which is communicating via LN.
  • FIG. 1 shows a dedicated terminal device provided in any mobile body 110 (1) that can be a distribution source among a plurality of mobile bodies 110 (1) to 110 (n) (n is an integer of 2 or more).
  • 2 is a schematic diagram showing a state in which 200 (1) and a server 130 are communicating via a wide area communication network WN.
  • FIG. 2 shows a short-range wireless communication network in which the dedicated
  • FIG. 3 shows a short distance between the dedicated terminal device 200 (1) that communicates with the server 130 and the other dedicated terminal device 200 (3) that cannot substantially become a distribution source in the software rewriting system 100 shown in FIG. It is a schematic diagram which shows the state which is communicating via the radio
  • FIG. 4 is a schematic diagram showing an example of the data structure of the model information management database DB1 constituting the update software storage database DB in the storage unit 133 provided in the server 130.
  • FIG. 5 is a schematic diagram showing an example of the data structure of the update software management database DB2 constituting the update software storage database DB in the storage unit 133 provided in the server 130.
  • FIG. 6 is a schematic diagram illustrating an example of a data structure of the update software storage database DB3 constituting the update software storage database DB in the storage unit 133 provided in the server 130.
  • FIG. 7 shows that the software FW (FW1 to FWm) of the current version VR of the control devices 113 (1) to 113 (m) (m is an integer of 1 or 2 or more) in the storage unit 230 of the terminal device 200 (i). It is a schematic diagram which shows an example of the data structure of the registered state. 8 shows a data structure in a state where the source code SC of the control devices 113 (1) to 113 (m) is registered in the storage unit 230 in the terminal device 200 (1), 200 (2) (distribution source). It is a schematic diagram which shows an example.
  • a software rewriting system 100 shown in FIGS. 1 to 3 includes a control device 113 (see FIG. 1 to FIG. 3) mounted on a plurality of moving bodies 110 (1) to 110 (n) (for example, traveling work machines and ships). This is a system for rewriting the software FW 1) to 113 (m).
  • the control devices 113 (1) to 113 (m) are electronic control devices (ECUs) and are mounted on the moving bodies 110 (1) to 110 (n).
  • the software FW is firmware.
  • the software rewriting system 100 includes a plurality of mobile units 110 (1) to 110 (n) and dedicated terminal devices 200 (1) to 200 (n) provided in the plurality of mobile units 110 (1) to 110 (n). ) And a server 130 (see FIG. 1) connected to the terminal devices 200 (1) to 200 (n) via the wide area communication network WN (see FIG. 1).
  • the server 130 is a large information device (specifically, a stationary computer installed at a predetermined location).
  • the present invention is not limited to this, and the server 130 is an information device capable of storing the update software storage database DB [for example, a storage unit capable of securing the data capacity required by the update software storage database DB.
  • Information equipment specifically, dedicated terminal devices 200 (1) and 200 (2) provided in the mobile bodies 110 (1) and 110 (2), and portable general-purpose terminals to be described later Device 300] may be used.
  • the terminal devices 200 (1) to (n) include at least one terminal device that can be a distribution source with respect to other terminal devices.
  • the terminal devices 200 (1) to (n) may include a terminal device that is not substantially a distribution source with respect to other terminal devices.
  • Terminal device that cannot be a distribution source substantially with respect to other terminal devices means that if the destination is a mobile device of the same model, it can be a distribution source, but the destination is a different model.
  • a terminal device that cannot be a distribution source that is, a terminal device that does not have model information MI other than its own device (destination) and update software WFW (see FIGS. 4 to 6) associated with the model information MI That's it.
  • terminal devices 200 (1) and 200 (2) are terminals that can be distribution sources with respect to other terminal devices, and cannot be substantially distribution sources with respect to other terminal devices.
  • the terminal device is described as terminal devices 200 (3) to 200 (n) (non-distribution source).
  • the terminal device 200 (1) (distribution source) can be a distribution destination from the server 130 of the update software WFW for updating the software FW of the control devices 113 (1) to 113 (m). Of the terminal devices 200 (2) to 200 (n). Similarly, the terminal device 200 (2) (distribution source) can be a distribution destination from the server 130 of the update software WFW, and the other terminal devices 200 (1), 200 (3) to 200 (n ) Can be a distribution source.
  • the terminal devices 200 (1) and 200 (2) (distribution source) send the update software WFW in the update software storage database DB (see FIGS. 4 to 6) from the server 130 to the wide area communication network WN and wide area communication. Receive via the unit 220.
  • the terminal device 200 (1) (distributor) stores the update software WFW received from the server 130 in the storage unit 230, and the update software WFW stored in the storage unit 230 is stored in the other terminal devices 200 (2) to 200. Of (n), it transmits to the other terminal device which can communicate within the short-range wireless communication range via the short-range wireless communication unit 240 and the short-range wireless communication network LN.
  • the terminal device 200 (2) (distribution source) stores the update software WFW received from the server 130 in the storage unit 230, and the update software WFW stored in the storage unit 230 is stored in the other terminal device 200 (1 ), 200 (3) to 200 (n), to other terminal devices that can communicate within the short-range wireless communication range, via the short-range wireless communication unit 240 and the short-range wireless communication network LN.
  • the terminal device 200 (1) transmits the short-range wireless communication unit 240 and the short-range wireless communication network within the short-range wireless communication range among the other terminal devices 200 (2) to 200 (n). Communication is established at random to other terminal devices that can communicate via the LN.
  • the terminal device 200 (1) (distribution source) authenticates with the other terminal devices 200 (2) to 200 (n) that have established communication, and the terminal device among the other terminal devices 200 (2) to 200 (n).
  • the update software WFW stored in the storage unit 230 of the terminal device 200 (1) (distribution source) is transmitted to the value corresponding to the subscript number of the terminal device.
  • the terminal device 200 (2) (distributor) transmits the short-range wireless communication unit 240 and the short-range wireless communication unit 240 within the short-range wireless communication range among the other terminal devices 200 (1), 200 (3) to 200 (n). Communication is randomly established with another terminal device that can communicate via the distance wireless communication network LN.
  • the terminal device 200 (2) (distribution source) stores the storage unit 230 of the terminal device 200 (2) (distribution source) among the other terminal devices 200 (1) and 200 (3) to 200 (n) that have established communication.
  • the update software WFW stored in the storage unit 230 of the terminal device 200 (2) (distribution source) is transmitted to the counterpart terminal device 200 (i) corresponding to the model information MI stored in (see FIG. 4). .
  • the server 130 is a remote monitoring center 120 (see FIG. 1) located far away from the mobile units 110 (1) to 110 (n).
  • the terminal devices 200 (1) to 200 (n) and the server 130 have wide-area communication units 220 and 132 (specifically, wide-area communication interfaces), respectively, and the wide-area communication network WN (see FIG. 1).
  • the server 130 can remotely monitor the mobile units 110 (1) to 110 (n) by the user at the remote monitoring center 120.
  • the terminal devices 200 (1) to 200 (n) are remote monitoring terminal devices in this example.
  • the wide area communication unit 220 may not be provided in the terminal devices 200 (3) to 200 (n).
  • the server 130 transmits information regarding the software FW of the control devices 113 (1) to 113 (m) in the mobile units 110 (1) to 110 (n) to the terminal device 200 in the mobile units 110 (1) and 110 (2).
  • (1), 200 (2) can be transmitted to (distribution source).
  • the terminal devices 200 (1) and 200 (2) (distribution source) in the mobile units 110 (1) and 110 (2) are controlled by the control devices 113 (1) to 113 (1) in the mobile units 110 (1) to 110 (n).
  • the information regarding the software FW 113 (m) can be received from the server 130.
  • the wide area communication network WN may be a wired communication network, a wireless communication network (a wireless communication network based on a so-called mobile communication standard), or a combination of a wired communication network and a wireless communication network.
  • the wide area communication network WN is typically a public line network provided by a telecommunications carrier, and can be a public line network in which terminals such as fixed telephones and mobile phones communicate with each other.
  • the moving bodies 110 (1) to 110 (n) include one or a plurality (here, a plurality) of working units [111 (1) to 111 (m)] to [111 (1) to 111 (m)] (FIG. 1 to FIG. 3) and terminal devices 200 (1) to 200 (n).
  • the working units 111 (1) to 111 (m) include a traveling working unit, a mowing working unit, and a threshing working unit when the agricultural working machine is a combine.
  • Control units 113 (1) to 113 (m) are provided in the respective working units 111 (1) to 111 (m).
  • the control devices 113 (1) to 113 (m) give commands to various actuators (not shown), and appropriately control the operating states of the working units 111 (1) to 111 (m).
  • the control devices 113 (1) to 113 (m) are configured to transfer data to each other based on a communication standard such as a CAN (Controller Area Network) standard.
  • each of the control devices 113 (1) to 113 (m) has detected value information (signals) detected by various sensors in each of the working units 111 (1) to 111 (m) and ON / OFF of various switches. Based on the information, the operation state of each of the working units 111 (1) to 111 (m) is controlled. In addition, each of the control devices 113 (1) to 113 (m) appropriately determines whether or not an abnormality such as a failure of the moving body 110 has occurred, and if an abnormality has occurred, Error information (specifically, an error code) corresponding to is generated.
  • the working unit 111 for operating the engine monitors the engine, the engine speed, the load state, etc., and optimizes the injection pressure and the injection timing.
  • the control apparatus 113 which controls the whole engine performs operation start / pause operation and control of the driving
  • the battery BT is appropriately charged by the electric power supplied from the generator.
  • the start switch SW is a changeover switch that selectively switches between a power-on state and a power-off state.
  • the power-on state is a state in which power is supplied from the battery BT to the control unit 210 and the control devices 113 (1) to 113 (m).
  • the power-off state is a state in which power supply from the battery BT to the control unit 210 and the control devices 113 (1) to 113 (m) is cut off.
  • the battery BT is connected to both the power supply connection line L1 connected to the control unit 210 and the power supply connection line L2 connected to the control devices 113 (1) to 113 (m) via the start switch SW. Yes.
  • the start switch SW is a so-called key switch
  • the “ON” terminal is a connection terminal of the power supply connection lines L1 and L2.
  • the “OFF” terminal is a terminal when the start switch SW is in an OFF state.
  • the battery BT and the power control unit 260 are connected via the power connection line L3.
  • the server 130 includes a control unit 131, a wide area communication unit 132, and a storage unit 133.
  • the control unit 131 includes a processing device 131a including a so-called computer such as a CPU (Central Processing Unit) and a memory device 131b including a volatile memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory). Yes.
  • a processing device 131a including a so-called computer such as a CPU (Central Processing Unit) and a memory device 131b including a volatile memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory).
  • the control unit 131 controls the operation of various components by causing the processing device 131a to load and execute a control program stored in advance in the ROM of the memory device 131b onto the RAM of the memory device 131b. .
  • control unit 131 performs transmission / reception of data during communication, various input / output controls, and control of arithmetic processing.
  • the wide area communication unit 132 is electrically connected to the data line of the control unit 131.
  • the wide area communication unit 132 under the instruction of the control unit 131, the wide area communication unit 220 of the terminal devices 200 (1) to 200 (n) in the mobile units 110 (1) to 110 (n) (see FIGS. 1 to 3). Communication is possible with the same communication protocol (communication protocol). Data transmitted / received at the time of communication is converted by the wide area communication unit 132 so as to follow the communication protocol.
  • the wide area communication unit 132 stores information regarding the software FW of the control devices 113 (1) to 113 (m) in the mobile units 110 (1) to 110 (n) recorded in the storage unit 133.
  • N Transmit to terminal devices 200 (1) to 200 (n) [in this example, terminal devices 200 (1), 200 (2)] in moving body 110 (1), 110 (2) in this example. .
  • the storage unit 133 is electrically connected to the data line of the control unit 131.
  • the storage unit 133 is subjected to write control and read control of information under the instruction of the control unit 131.
  • the storage unit 133 is a mass storage device such as a flash memory or a hard disk device.
  • the storage unit 133 stores an update software storage database DB.
  • the control devices 113 (1) to 113 mounted on the moving body 110 (i) at the other end are different, it is natural that the control devices 113 (1) to 113 mounted on the moving body 110 (i) at the other end.
  • the software FW in (m) may be different.
  • the counterpart mobile body 110 (i) is of the same type, the software FW of the control devices 113 (1) to 113 (m) mounted on different types of mobile bodies 110 (i) is different.
  • the software FW for update stored in the storage unit 230 is different from the software FW of the control devices 113 (1) to 113 (m) mounted on the mobile unit 110 (i) of the other party.
  • the software FW of the control devices 113 (1) to 113 (m) cannot be rewritten in the destination mobile unit 110 (i).
  • the update software storage database DB stores update software WFW associated with the model information MI (see FIGS. 4 to 6) of the mobile units 110 (1) to 110 (n).
  • the update software storage database DB stores update information RI (see FIG. 5) of the update software WFW.
  • the update software storage database DB includes a model information management database DB1 (see FIG. 4), an update software management database DB2 (see FIG. 5), and an update software storage database DB3 (see FIG. 6). ing.
  • the area information management database DB4 will be described later.
  • the model information management database DB1 stores model information MI of the mobile units 110 (1) to 110 (n).
  • the types MT of the mobile units 110 (1) to 110 (n) and the model codes MC of the mobile units 110 (1) to 110 (n) are registered.
  • the moving body 110 (1) of all types MT for example, traveling work machines and ships manufactured by the manufacturers of the moving bodies 110 (1) to 110 (n).
  • the model codes MC of all models 110 to 110 (n) are registered.
  • the type MT and model code MC of the mobile unit 110 are registered in the model information management database DB1 as needed.
  • the update software management database DB2 includes the update software code WFWC of the control devices 113 (1) to 113 (m) (ECU in this example) in the moving bodies 110 (1) to 110 (n). (In this example, firmware code for update) is stored.
  • the type MT of the mobile units 110 (1) to 110 (n), the model code MC of the mobile units 110 (1) to 110 (n), and the control device 113 (1 ) To 113 (m) control device code CC (in this example ECU symbol and / or number) and update software code WFWC associated with update information RI (version VR and / or year / month / day / time YMDT) are registered.
  • the moving bodies 110 (1) of all types MT for example, traveling work machines and ships manufactured by the manufacturers of the moving bodies 110 (1) to 110 (n) are stored.
  • An update software code WFWC is registered.
  • an update software code WFWC associated with the type MT, model code MC, control device code CC, and update information RI of the mobile object 110 is updated in the update software management database DB2.
  • the update software management database DB2 updates the update information RI and the update software code WFWC associated with the update information RI as needed.
  • the update software storage database DB3 stores a difference source code DSC that is a difference source code with respect to the old version of the latest version of the update software WFW.
  • the difference between the latest version and the old version is the source code SC of the latest version of the software FW and the old version (if there are a number of old versions, each old version immediately before the latest version from the oldest version). For example, if there are version 1.0 and version 1.1 on the market, and the latest version is version 1.2, the difference between the latest version and the old version is the latest version 1.2 and the old version. There are two differences: a difference from 1.0 and a difference between the latest version 1.2 and the old version 1.1. The same applies when there are three or more old versions.
  • the update software code WFWC and the difference source code DSC associated with the update software code WFWC are registered.
  • the update software storage database DB3 includes all types of MTs 110 (1 such as traveling work machines and ships) manufactured by manufacturers of the moving bodies 110 (1) to 110 (n) (1). ) To 110 (n) are registered for the differential source code DSC of all models.
  • the update software code WFWC and the difference source associated with the update software code WFWC are updated as needed in the update software storage database DB3.
  • the code DSC is registered.
  • the model information MI and the software FW of the control devices 113 (1) to 113 (m) are stored.
  • Update information RI such as version VR is registered.
  • the storage unit 230 in the terminal devices 200 (1) to 200 (n) includes model information MI (an example of a model code MC in this example), a control device code CC, and a control device 113.
  • Update information RI (in this example, current version VR) of software FW (1) to 113 (m) is registered in association with terminal identification information ID and area information AR.
  • the model code MC is registered as the model information MI in the storage unit 230.
  • the types MT of the mobile bodies 110 (1) to 110 (n) are registered. May be.
  • the current version VR is registered as the update information RI, but the date / time YMDT at which the current version VR is updated may be registered instead of or in addition to the current version VR. Good.
  • the storage units 230 of the terminal devices 200 (1) to 200 (n) in the mobile units 110 (1) to 110 (n) are in a binary format that can be executed by the control devices 113 (1) to 113 (m).
  • a text source code SC for generating an object code OC (software FW) is stored.
  • the source code SC in the text format is a program language (for example, a non-machine language such as C language) written in a state that can be recognized by humans using character codes.
  • the binary-format object code OC is a machine language configured in a state in which the control devices 113 (1) to 113 (m) can be executed using the binary code.
  • the object code OC is converted (so-called compiled or assembled) from the source code SC.
  • the storage unit 230 in the terminal device 200 (1), 200 (2) includes model information MI (an example of model code MC in this example), control device code CC.
  • the update information RI (in this example, the current version VR) and source code SC of the software FW of the control devices 113 (1) to 113 (m) and the source code SC are registered in association with the terminal identification information ID and the area information AR.
  • the model code MC is registered as the model information MI in the storage unit 230.
  • the types MT of the mobile bodies 110 (1) to 110 (n) are registered. May be.
  • the current version VR is registered as the update information RI, but the date / time YMDT at which the current version VR is updated may be registered instead of or in addition to the current version VR. Good.
  • the control device 113 (1) in its own mobile unit 110 (3) to 110 (n).
  • the terminal devices 200 (1) and 200 (2) include a control unit 210 (an example of a computer), a wide area communication unit 220, a storage unit 230, and a short distance.
  • a wireless communication unit 240, a signal communication unit 250, and a power supply control unit 260 are provided.
  • the control unit 210 includes a processing device 210a including a so-called computer such as a CPU (Central Processing Unit) and a memory device 210b including a volatile memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory). Yes.
  • a processing device 210a including a so-called computer such as a CPU (Central Processing Unit) and a memory device 210b including a volatile memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory).
  • the control unit 210 executes various programs necessary for the control unit 210 by executing a program such as a software rewriting program PP (see FIG. 9 described later) stored (installed) in the storage unit 230 in advance. It is configured. Specifically, the control unit 210 performs various processes by causing the processing device 210a to load a program such as the software rewriting program PP stored in advance in the storage unit 230 onto the RAM of the memory device 210b and execute it. It has become.
  • the RAM of the memory device 210b provides a work area for work to the control unit 210.
  • control unit 210 performs transmission / reception of data during communication, various input / output controls, and control of arithmetic processing.
  • the wide area communication unit 220 is electrically connected to the data line of the control unit 210.
  • the wide area communication unit 220 can communicate with the same communication protocol (communication protocol) as the wide area communication unit 132 (see FIG. 1) of the server 130 under the instruction of the control unit 210. Data transmitted and received at the time of communication is converted by the wide area communication unit 220 so as to follow the communication protocol.
  • the wide area communication unit 220 receives, from the server 130, information related to the software FW of the control devices 113 (1) to 113 (m) in the mobile units 110 (1) to 110 (n) recorded in the storage unit 133 of the server 130. .
  • the storage unit 230 is electrically connected to the data line of the control unit 210. In the storage unit 230, information is controlled to be written and read under the instruction of the control unit 210.
  • the storage unit 230 is a mass storage device such as a flash memory.
  • the storage unit 230 stores a model information management database DB1, an update software management database DB2, and an update software storage database DB3.
  • the data structures of the model information management database DB1, the update software management database DB2, and the update software storage database DB3 are the model information management database DB1 and update software stored in the storage unit 133 in the server 130 shown in FIGS. This is the same as the management database DB2 and the update software storage database DB3, and will not be described here.
  • the short-range wireless communication unit 240 in the terminal device 200 (1) (distribution source) performs short-range wireless communication in the terminal device 200 (2) (distribution source) and the terminal devices 200 (3) to 200 (n) (non-distribution source). Short-distance wireless communication with the communication unit 240 is performed.
  • the short-range wireless communication unit 240 in the terminal device 200 (2) (distribution source) is short in the terminal device 200 (1) (distribution source) and the terminal devices 200 (3) to 200 (n) (non-distribution source). Short-range wireless communication is performed with the distance wireless communication unit 240.
  • examples of short-range wireless communication include wireless communication that performs communication over a short distance of several meters to 100 meters.
  • wireless LAN Local Area
  • Network Wireless PAN (Personal Area Network) communication that performs communication over a short distance of several meters to several tens of meters.
  • wireless LAN communication examples include IEEE 802.11 standard wireless LAN communication represented by the WiFi (registered trademark) standard.
  • wireless PAN communication examples include IEEE 802 standard wireless PAN communication represented by the Bluetooth (registered trademark) standard.
  • the short-range wireless communication unit 240 is configured to perform wireless LAN communication conforming to the IEEE 802.11 standard.
  • the signal communication unit 250 communicates with the control devices 113 (1) to 113 (m) in the working units 111 (1) to 111 (m) according to a communication standard such as the CAN standard to exchange information.
  • the power control unit 260 supplies power to the control unit 210.
  • power supply control unit 260 is connected to battery BT regardless of whether the start switch SW is off or on.
  • an input-side power line (not shown) of the power control unit 260 and the battery BT are connected by a power connection line L3.
  • the power control unit 260 is constantly supplied with power from the battery BT.
  • control unit 210 is configured such that the power from the battery BT is supplied from the power supply control unit 260.
  • FIG. 9 is a block diagram showing an example of the software configuration of the dedicated terminal devices 200 (1) and 200 (2) (distribution source) shown in FIGS.
  • the control unit 210 includes a reception control unit Q1, a storage control unit Q2, a rewrite control unit Q3, and a transmission control unit Q4. That is, the software rewrite program PP corresponds to the reception control step corresponding to the reception control unit Q1, the storage control step corresponding to the storage control unit Q2, the rewrite control step corresponding to the rewrite control unit Q3, and the transmission control unit Q4.
  • the control part 210 is made to perform the step including the transmission control step to perform.
  • reception control step In the reception control step, the control unit 210 transmits the differential source code DSC in the update software storage database DB3 from the server 130 including the update software storage database DB3 storing the differential source code DSC to the wide area network WN and the wide area communication unit 220. Receive via.
  • the reception control unit Q1 includes an acquisition control unit Q11. That is, the reception control step includes an acquisition control step corresponding to the acquisition control unit Q11.
  • the control unit 210 acquires the difference source code DSC stored in the storage unit 230 with respect to the source code SC corresponding to the current object code OC. That is, the control unit 210 acquires a difference source code DSC between the latest version of the source code NSC corresponding to the latest version of the object code NOC and the current version of the source code SC stored in the storage unit 230.
  • the control unit 210 receives the model information MI in the update software storage database DB and the differential source code DSC associated with the model information MI from the server 130 via the wide area communication network WN and the wide area communication unit 220.
  • the control unit 210 stores, in the storage unit 230, the model information management database DB1 storing the model information MI of the mobile units 110 (1) to 110 (n), and the mobile units 110 (1) to 110 (n).
  • the update software management database DB2 storing the update software code WFWC associated with the model information MI) together with the control device code CC, and the update software storing the difference source code DSC associated with the update software code WFWC
  • the model information MI and the differential source code DSC associated with the model information MI are received via the wide area communication network WN and the wide area communication unit 220 from the server 130 having the storage database DB3.
  • control unit 210 receives the difference source code DSC and the update information RI of the difference source code DSC in the update software storage database DB from the server 130 via the wide area communication network WN and the wide area communication unit 220.
  • control unit 210 receives update software code WFWC and update software code WFWC update information RI from server 130 via wide area network WN and wide area communication unit 220.
  • control unit 210 stores the differential source code DSC received from the server 130 in the storage unit 230.
  • control unit 210 stores the model information MI received from the server 130 and the difference source code DSC associated with the model information MI in the storage unit 230.
  • the control unit 210 stores the model information MI received from the server 130 in the model information management database DB1 in the storage unit 230, and associates the update software code WFWC received from the server 130 with the model information MI.
  • the update software management database DB2 together with the control device code CC
  • the difference source code DSC received from the server 130 is stored in the update software storage database DB3 in association with the update software code WFWC.
  • control unit 210 stores the difference source code DSC received from the server 130 and the update information RI of the update software WFW in the storage unit 230.
  • control unit 210 stores update software code WFWC and update software code WFWC update information RI received from server 130 in update software management database DB2.
  • the control unit 210 stores the update software code WFWC received from the server 130 and the difference source code DSC of the update software code WFWC in the update software storage database DB3.
  • the terminal devices 200 (1) and 200 (2) are provided in the mobile units 110 (1) and 110 (2).
  • the rewrite control unit Q3 includes a generation control unit Q31 and a conversion control unit Q32 (a so-called compiler or assembler). That is, the rewrite control step includes a generation control step corresponding to the generation control unit 31 and a conversion control step corresponding to the conversion control unit Q32.
  • the control unit 210 includes the differential source code DSC acquired in the acquisition control step and the current source code DSC corresponding to the acquired differential source code DSC among the current source codes SC to SC stored in the storage unit 230.
  • the latest source code NSC is generated from the source code SC.
  • control unit 210 converts the latest source code NSC generated in the generation control step into the latest object code NOC.
  • the control unit 210 specifies the differential source code DSC corresponding to the model information MI of the mobile unit 110 (i) of the other party among the differential source code DSC stored in the storage unit 230.
  • the control unit 210 controls the control device mounted on the destination mobile unit 110 (i) from the identified differential source code DSC and the current source code SC stored in the storage unit 230 of the destination mobile unit 110 (i).
  • the latest source code NSC of 113 (1) to 113 (m) is generated (generation control step), and the generated latest source code NSC is converted into the latest object code NOC (so-called compilation or assembly) (conversion control step). ).
  • the control unit 210 transmits the converted latest object code NOC to the control devices 113 (1) to 113 (m) mounted on the destination mobile unit 110 (i). Then, in the destination mobile unit 110 (i), the terminal device (i) or the control devices 113 (1) to 113 (m) rewrites the latest object code NOC as the latest software FW.
  • the control unit 210 identifies the difference source code DSC corresponding to the model information MI of the mobile unit 110 (1), 110 (2) among the difference source code DSC stored in the storage unit 230. To do.
  • the control unit 210 determines the mobile unit 110 (1), 110 () from the current source code SC stored in the storage unit 230 in the identified differential source code DSC and the mobile unit 110 (1), 110 (2). 2)
  • the latest source code NSC of the control devices 113 (1) to 113 (m) installed in 2) is generated (generation control step), and the generated latest source code NSC is converted into the latest object code NOC (so-called compilation) (Assemble) (conversion control step).
  • the control unit 210 transmits the converted latest object code NOC to the control devices 113 (1) to 113 (m) mounted on the mobile body 110 (1), 110 (2).
  • the terminal device (i) or the control devices 113 (1) to 113 (m) rewrites the latest object code NOC as the latest software FW.
  • the dedicated terminal device 200 (2) may receive the latest object code NOC from the terminal device 200 (1) (distribution source), or may generate the generation control unit Q31 and the conversion control unit Q32. Therefore, the source codes SC to SC and the differential source code DSC of the control devices 113 (1) to 113 (m) may be received. Similarly, the dedicated terminal device 200 (1) (distribution source) may receive the latest object code NOC from the terminal device 200 (2) (distribution source), and the generation control unit Q31 and conversion control. Since the unit Q32 is included, the source codes SC to SC and the differential source code DSC of the control devices 113 (1) to 113 (m) may be received.
  • Transmission control step In the transmission control step, the control unit 210 sends the latest object code NOC converted using the difference source code DSC to the other mobile unit 110 (i) via the short-range wireless communication unit 240 and the short-range wireless communication network LN. And / or transmitted to the control devices 113 (1) to 113 (m) in its own mobile unit 110 (1), 110 (2).
  • control unit 210 transmits the difference source code DSC stored in the storage unit 230 to the mobile units 110 (2) and 110 (1) (distribution source) and the short-range wireless communication unit 240 and the short-range wireless communication. Transmit via network LN.
  • control unit 210 identifies the model information MI of the destination mobile unit 110 (i) from the model information MI stored in the storage unit 230, and among the difference source codes DSC to DSC stored in the storage unit 230.
  • the difference source code DSC corresponding to the model information MI of the destination mobile unit 110 (i) or the latest object code NOC converted using the difference source code DSC is short distance to the destination mobile unit 110 (i). Transmission is performed via the wireless communication unit 240 and the short-range wireless communication network LN.
  • control unit 210 identifies model information MI of counterpart mobile unit 110 (i) from model information MI stored in model information management database DB1.
  • control unit 210 is in communication with the counterpart mobile unit 110 (i), and acquires the model information MI of the counterpart mobile unit 110 (i).
  • control unit 210 specifies the update software code WFWC corresponding to the model information MI of the identified mobile body 110 (i) of the other party among the update software codes WFWC stored in the update software management database DB2.
  • the control unit 210 transmits the difference source code DSC corresponding to the identified update software code WFWC out of the difference source code DSC stored in the update software storage database DB3 to the partner mobile unit 110 (i) via short-range wireless communication. Transmission is performed via the communication unit 240 and the short-range wireless communication network LN.
  • the control unit 210 transmits the update information RI of the differential source code DSC stored in the storage unit 230 to the counterpart mobile unit 110.
  • (I) may be transmitted via the short-range wireless communication unit 240 and the short-range wireless communication network LN.
  • the update information RI such as the version VR of the software FW before rewriting of the control devices 113 (1) to 113 (m), the version VR of the update software WFW, etc.
  • the update information RI can be collated.
  • the terminal device 200 (1) (distribution) Source) or terminal device 200 (2) (distribution source) while requesting the differential source code DSC if it is determined that it is the latest one, terminal device 200 (1) (distribution source) or terminal device 200 ( 2) It is possible not to request the difference source code DSC from the (distribution source).
  • the destination mobile unit 110 (i) performs the software FW of the control devices 113 (1) to 113 (m) in advance. Therefore, it is possible to omit the useless transmission operation of the differential source code DSC to the counterpart mobile unit 110 (i).
  • control unit 210 controls the control devices 113 (1) to 113 (m) in the counterpart mobile unit 110 (i).
  • the update information RI of the software FW before rewriting may be received from the counterpart mobile unit 110 (i).
  • the control unit 210 collates the received update information RI such as the version VR of the software FW with the update information RI such as the version VR of the differential source code DSC stored in the storage unit 230, and controls the control devices 113 (1) to 113 (1)- It is determined whether or not the software FW before rewriting of 113 (m) is the latest, and if it is determined that the software FW is not the latest, the difference source code DSC is transmitted to the counterpart mobile unit 110 (i). On the other hand, if it is determined that it is the latest one, the difference source code DSC may not be transmitted to the counterpart mobile unit 110 (i).
  • the terminal device 200 (1) distributed source
  • the terminal device 200 (2) distributed source
  • the terminal device 200 (1) distributed source
  • the terminal device 200 (2) distributed source
  • the differential source code DSC associated with the model information MI is stored in the storage unit 230 for all types of mobile units 110 (1) to 110 (n) and all types of mobile units 110 (1) to 110 (n). If stored, the amount of data, the storage capacity of the storage unit 230 and the communication time increase accordingly.
  • the update software storage database DB stores area information AR (see FIGS. 10 and 11 to be described later) indicating the jurisdiction area of the mobile units 110 (1) to 110 (n) in the terminal devices 200 (1), 200.
  • the terminal identification information ID of the terminal devices 200 (1) to 200 (n) any device can be used as long as the terminal devices 200 (1) to 200 (n) can be uniquely distinguished.
  • serial numbers and telephone numbers can be exemplified.
  • FIG. 10 is a schematic diagram showing an example of a data structure in which area information AR is added in the model information management database DB1 shown in FIG.
  • FIG. 11 is a schematic diagram showing an example of the data structure of the area information management database DB4 constituting the update software storage database DB in the storage unit 133 provided in the server 130.
  • the update software storage database DB associates the area information AR indicating the jurisdiction area of the mobile units 110 (1) to 110 (n) with the terminal identification information ID of the terminal device 200 (1), 200 (2) (distribution source). Stored.
  • the update software storage database DB further includes an area information management database DB4. Also, area information AR is added in the model information management database DB1 shown in FIG.
  • the terminal identification information ID (distribution source) of the terminal devices 200 (1) and 200 (2), the area information AR, and the terminal devices 200 (1) and 200 (2) (distribution source).
  • Terminal identification information RID of the registered terminal devices [200 (2) to 200 (n)], [200 (1), 200 (3) to 200 (n)] and the model code MC are registered. ing.
  • the latest version update presence / absence RVR of the mobile units 110 (1) to 110 (n) of the terminal devices 200 (1) to 200 (n) is controlled by the control devices 113 (1) to 113.
  • “No update” specifically, flag “0”
  • the server 130 receives information indicating that the terminal device 200 (i) has been updated to the latest version, and the mobile unit 110 of the updated terminal device 200 (i).
  • the update version RVR of the latest version corresponding to the model code MC of (i) is set to “update available” (specifically, flag “1”).
  • the server 130 and / or the terminal devices 200 (1), 200 (2) are all updated with the latest version update presence / absence RVR for the model code MC (eg, WRK1) in the area information management database DB4. If “Yes” is displayed, the difference source code DSC corresponding to the model code MC (for example, WRK1) that is all “Updated” in the update software storage database DB3 may be deleted.
  • the update information RVR of the latest version is set to “no update” (specifically, flag “0”) (reset) as needed in the area information management database DB4. ).
  • the control unit 210 transmits the model information of the area information AR associated with the terminal identification information ID of the terminal device 200 (1), 200 (2) (distribution source) from the server 130 in the update software storage database DB.
  • the differential source code DSC associated with the MI and the model information MI is received via the wide area communication network WN and the wide area communication unit 220.
  • the control unit 210 changes the model information MI and model information MI of the area information AR associated with the terminal identification information ID of the terminal device 200 (1), 200 (2) (distribution source) from the server 130.
  • the associated differential source code DSC is received via the wide area communication network WN and the wide area communication unit 220.
  • the control unit 210 stores in the storage unit 230 the model information MI of the area information AR received from the server 130 and the differential source code DSC associated with the model information MI.
  • control unit 210 in storage unit 230, the model of area information AR associated with terminal identification information ID of terminal devices 200 (1) and 200 (2) (distribution source) received from server 130.
  • the information MI is stored in the model information management database DB1 (see FIG. 10).
  • the control unit 210 stores the update software code WFWC received from the server 130 in association with the model information MI in the update software management database DB2 (see FIG. 5) together with the control device code CC.
  • the control unit 210 stores the difference source code DSC received from the server 130 in the update software storage database DB3 (see FIG. 6) in association with the update software code WFWC. With this configuration, the control unit 210 can selectively store the update software WFW related to the model having the same area information AR as itself.
  • the terminal devices 200 (3) to 200 (n) are connected to other mobile units 110 (i) in the terminal devices 200 (1) and 200 (2) (distribution source).
  • the differential source code DSC having no model information MI is provided.
  • the terminal devices 200 (3) to 200 (n) (non-distribution source) receive the update software management database DB2 and the differential source code DSC that does not have the model information MI of the other mobile unit 110 (i).
  • the stored update software storage database DB3 is included, the model information management database DB1 and the area information management database DB4 are not included.
  • FIGS. 12 to 14 are schematic configuration diagrams schematically showing an example of the software rewriting system 100 according to the second embodiment.
  • FIG. 12 is a schematic diagram showing a state where the general-purpose terminal device 300 is communicating with the server 130 via the wide area communication network WN.
  • FIG. 13 shows a general-purpose terminal device 300 that communicates with the server 130 in the software rewriting system 100 shown in FIG. 12 communicates with a dedicated terminal device 200 (1) that can be a distribution source via the short-range wireless communication network LN.
  • FIG. FIG. 14 shows a dedicated terminal device 200 (3) in the software rewriting system 100 shown in FIG. 12, in which the general-purpose terminal device 300 that communicates with the server 130 cannot substantially become a distribution source via the short-range wireless communication network LN. It is a schematic diagram which shows the state which is communicating with.
  • the software rewriting system 100 according to the second embodiment includes a general-purpose terminal device 300 in the software rewriting system 100 according to the first embodiment.
  • the terminal device 300 includes a control unit 310 (an example of a computer), a wide area communication unit 320, a storage unit 330, a short-range wireless communication unit 340, and a user interface unit 350. I have. Note that a plurality of terminal devices 300 may be provided.
  • the general-purpose terminal device 300 is, for example, a multi-function communication portable terminal device such as a tablet computer or a smartphone.
  • the terminal identification information IDs of the terminal devices 200 (1) to 200 (n) may be any as long as the terminal devices 200 (1) to 200 (n) can be uniquely distinguished.
  • a serial number an international mobile apparatus identification number (IMEI: International Mobile Equipment Identifier number), and a telephone number can be illustrated.
  • IMEI International Mobile Equipment Identifier number
  • the control unit 310 includes a processing device 310a including a so-called computer such as a CPU (Central Processing Unit) and a memory device 310b including a volatile memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory). Yes.
  • a processing device 310a including a so-called computer such as a CPU (Central Processing Unit) and a memory device 310b including a volatile memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory).
  • the control unit 310 is configured to realize various functions necessary for the control unit 310 by executing a program such as the software rewriting program PP stored (installed) in the storage unit 330 in advance. Specifically, the control unit 310 performs various processes by causing the processing device 310a to load a program such as the software rewriting program PP stored in advance in the storage unit 330 onto the RAM of the memory device 310b and execute it. It has become.
  • the RAM of the memory device 310b provides a work area for work to the control unit 310.
  • control unit 310 performs transmission / reception of data during communication, various input / output controls, and control of arithmetic processing.
  • the wide area communication unit 320 is electrically connected to the data line of the control unit 310.
  • the wide area communication unit 320 can communicate with the wide area communication unit 132 (see FIG. 12) of the server 130 under the instruction of the control unit 310 using the same communication protocol (communication protocol). Data transmitted / received at the time of communication is converted by the wide area communication unit 320 so as to follow the communication protocol.
  • the wide area communication unit 320 receives from the server 130 information regarding the software FW of the control devices 113 (1) to 113 (m) in the mobile units 110 (1) to 110 (n) recorded in the storage unit 133 of the server 130. .
  • the storage unit 330 is electrically connected to the data line of the control unit 310.
  • the storage unit 330 is controlled to write and read information under the instruction of the control unit 310.
  • the storage unit 330 is a mass storage device such as a flash memory.
  • the software rewriting program PP is stored (installed) in the storage unit 330 in advance.
  • the software rewriting program PP is a program used for a multi-function communication portable terminal device such as a tablet computer or a smartphone, or a so-called application, and communicates from a program server (not shown) such as the Internet. Downloaded through the means.
  • the storage unit 330 stores a model information management database DB1, an update software management database DB2, and an update software storage database DB3.
  • the data structures of the model information management database DB1, the update software management database DB2, and the update software storage database DB3 are the model information management database DB1 and update software stored in the storage unit 133 in the server 130 shown in FIGS. This is the same as the management database DB2 and the update software storage database DB3, and will not be described here.
  • the short-range wireless communication unit 340 in the terminal device 300 performs short-range wireless communication with the short-range wireless communication unit 240 in the terminal devices 200 (1) to 200 (n).
  • the user interface unit 350 includes an output device such as a display device and an input device such as a touch panel. Typically, the user interface unit 350 can control activation of the software rewriting program PP, display progress information, and the like.
  • FIG. 15 is a block diagram illustrating an example of a software configuration of the general-purpose terminal device 300 illustrated in FIGS. 12 to 14.
  • the control unit 310 includes a reception control unit Q1, a storage control unit Q2, a rewrite control unit Q3, and a transmission control unit Q4. That is, the software rewrite program PP corresponds to the reception control step corresponding to the reception control unit Q1, the storage control step corresponding to the storage control unit Q2, the rewrite control step corresponding to the rewrite control unit Q3, and the transmission control unit Q4.
  • the control part 310 is made to perform the step including the transmission control step to perform.
  • the control unit 310 transmits the latest object code NOC to the mobile units 110 (1) to 110 (n) regardless of whether or not it has the generation control unit Q31 and the conversion control unit Q32. 340 and the short-range wireless communication network LN.
  • the control unit 310 transmits the difference source code DSC to the mobile units 110 (1) and 110 (2) having the generation control unit Q31 and the conversion control unit Q32, and the short-range wireless communication unit 340 and the short-range wireless communication network. Transmit via LN.
  • the processing of the reception control step and the storage control step performed by the other control unit 310 is the same as the processing of the reception control step and the storage control step of the control unit 210 in the dedicated terminal devices 200 (1) and 200 (2) described above. The description is omitted here.
  • configuration of the software rewriting system 100 according to the first embodiment may be combined with the configuration of the software rewriting system 100 according to the second embodiment.
  • FIG. 16 illustrates an example in which the server 130 communicates with the dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or the general-purpose terminal device 300 via the wide area network WN.
  • This is a flowchart showing an example.
  • FIG. 17 shows dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or general-purpose terminal device 300 and dedicated terminal devices 200 (2), 200 (1) (distribution) communicated with the server 130. It is a flowchart which shows the example (an example of a delivery process) which is communicating via the short distance radio
  • wireless communication network LN wireless communication network
  • the area information associated with the terminal identification information ID of the terminal devices 200 (1) and 200 (2) (distribution source) in the area information management database DB4 (see FIG. 11).
  • a case where the model information management database DB1 (see FIG. 10) to which an AR is added is used will be described as an example.
  • step Ss1 the control unit 131 in the server 130 receives dedicated terminal devices 200 (1) and 200 (2) (distribution source) from the wide area communication unit 132 via the wide area communication network WN. And / or communication with the general-purpose terminal device 300 (hereinafter, simply referred to as the terminal device 200, 300) is established (step Ss1), the communication from the terminal device 200, 300 is awaited (step Ss2), and the terminal It waits until there is a response from the devices 200 and 300 (step Ss2: No).
  • control units 210 and 310 in the terminal devices 200 and 300 establish communication with the server 130 from the wide-area communication units 220 and 320 via the wide-area communication network WN in an area where sufficient communication infrastructure is prepared (step St11). ) Waits for communication from the server 130 (St12), and waits until there is a response from the server 130 (Step St12: No).
  • step Ss2 when there is a response from the terminal devices 200 and 300 (step Ss2: Yes), the control unit 131 in the server 130 moves the mobile unit 110 of the area information AR associated with the terminal identification information ID of the terminal devices 200 and 300.
  • the model information MI and the update information RI of the update software WFW are synchronized with the terminal devices 200 and 300 (step Ss3), and information including the update software WFW is transmitted to the terminal devices 200 and 300 (step Ss4).
  • the control unit 131 in the server 130 receives the terminal identification information ID of the terminal devices 200 and 300, and from the storage unit 133, area information AR (for example, a terminal) associated with the terminal identification information ID of the terminal devices 200 and 300
  • area information AR for example, a terminal
  • the area information is associated with the model information MI (for example, when the area information is A4, the model code is BT1,...: See FIG. 10) and the model information MI.
  • Update software WFW for example, when the model code is BT1,..., Update software code BT1ECU1FW1,...: Differential source code BT1ECU1FW10_11.TXT,. Terminal devices 200 and 300 via WN and wide area communication units 220 and 320 To send.
  • control unit 131 in the server 130 stores the model information management database DB1, the update software management database DB2, and the update software storage database DB3 that store data corresponding to the area information AR into the wide area network WN and the wide area communication unit 220, The data is transmitted to the terminal devices 200 and 300 via 320.
  • step St12 when there is a response from the server 130 (step St12: Yes), the control units 210 and 310 in the terminal devices 200 and 300 move the area information AR associated with the terminal identification information ID of the terminal devices 200 and 300.
  • the model information MI of 110 and the update information RI of the update software WFW are synchronized with the server 130 (step St13), and the software FW of the control devices 113 (1) to 113 (m) is the latest for each mobile unit 110 ( For example, if it is not the latest version or the latest date (step St14: No), information including the update software WFW is received (step St15), and the received information is stored in the storage units 230 and 330. .
  • control units 210 and 310 in the terminal devices 200 and 300 perform area information AR (for example, if the terminal identification information ID is # 7777) associated with the terminal identification information ID of the terminal devices 200 and 300 from the server 130.
  • control units 210 and 310 in the terminal devices 200 and 300 store the model information management database DB1, the update software management database DB2, and the update software storage database DB3 that store data corresponding to the area information AR, and the wide area network WN.
  • the software FW of the control devices 113 (1) to 113 (m) is the latest in the terminal devices 200 (1) and 200 (2). If it is not the one (for example, the latest version or the latest date / time), the controller 210 or the control devices 113 (1) to 113 (m) mounted on the control unit 210 or the control device 113 (m) are controlled based on the update software WFW. The software FW of the devices 113 (1) to 113 (m) is rewritten.
  • the control units 210 and 310 in the dedicated terminal devices 200 (1) and 200 (2) (distribution source) and / or the general-purpose terminal device 300.
  • the dedicated terminal device 200 (2) is connected from the short-range wireless communication units 240 and 340 via the short-range wireless communication network LN.
  • 200 (1) (distribution source) see FIG. 17
  • dedicated terminal devices 200 (3) to 200 (n) (non-distribution source) see FIG.
  • step St21 Waiting for communication from the terminal devices 200 (2), 200 (1) (distribution source) and the dedicated terminal devices 200 (3) to 200 (n) (non-distribution source) (St22), the dedicated terminal device 200 (2), 200 (1) (distribution source) and a dedicated terminal device 200 (3) ⁇ 200 (n) until there is a response from the (non-distribution source) (Step St22: No) and waits.
  • control unit 210 in FIG. 17 and FIG. 18 in the dedicated terminal devices 200 (2), 200 (1) (distribution source) and the dedicated terminal devices 200 (3) to 200 (n) (non-distribution source).
  • the right side communicates with the dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or the general-purpose terminal device 300 via the short-range wireless communication network LN from the short-range wireless communication units 240, 340.
  • step St31 Is established (step St31), and communication from the dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or the general-purpose terminal device 300 is awaited (St32), and the dedicated terminal device 200 (1 ), 200 (2) (distribution source) and / or until there is a response from the general-purpose terminal device 300 (No at Step St32).
  • the control units 210 and 310 (see the left side in FIG. 17 and FIG. 18) in the dedicated terminal devices 200 (1) and 200 (2) (distribution source) and / or the general-purpose terminal device 300 are dedicated terminals.
  • the mobile unit 110 Dedicated terminal devices 200 (2), 200 (1) (distribution source) and dedicated terminal devices 200 (3) to 200 (n) (non-distribution source) with respect to the model information MI and the update information RI of the update software WFW Synchronize (step Ss23), and transmit information including the update software WFW (step Ss24).
  • control units 210 and 310 in the dedicated terminal devices 200 (1) and 200 (2) (distribution source) and / or the general-purpose terminal device 300 receive the model information MI and the model information MI from the storage units 230 and 330, respectively.
  • the update software WFW associated with the terminal is read out, and these pieces of information are read out via the short-range wireless communication network LN and the short-range wireless communication units 240 and 340 to the dedicated terminal devices 200 (2) and 200 (1) (distribution source).
  • control units 210 and 310 in the dedicated terminal devices 200 (1) and 200 (2) (distribution source) and / or the general-purpose terminal device 300 include the model information management database DB 1 and the update software management.
  • the database DB2 and the update software storage database DB3 are transmitted to the dedicated terminal devices 200 (2) and 200 (1) (distribution source) via the short-range wireless communication network LN and the short-range wireless communication units 240 and 340.
  • the control units 210 and 310 in the dedicated terminal devices 200 (1) and 200 (2) (distribution source) and / or the general-purpose terminal device 300 include the update software management database DB2 and the update software.
  • the stored database DB3 is transmitted to the dedicated terminal devices 200 (3) to 200 (n) (non-distribution source) via the short-range wireless communication network LN and the short-range wireless communication units 240 and 340.
  • the control unit 210 in FIG. 17 and FIG. 18 in the dedicated terminal devices 200 (2), 200 (1) (distribution source) and the dedicated terminal devices 200 (3) to 200 (n) (non-distribution source).
  • the mobile unit 110 (1) to (see the right side).
  • the model information MI of 110 (n) and the update information RI of the update software WFW are synchronized with the dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or the general-purpose terminal device 300 (step St33).
  • step St34 o
  • receiving information including updated software WFW step St35
  • dedicated terminal devices 200 (2), 200 (1) are dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or general-purpose terminals.
  • the model information MI and the update software WFW associated with the model information MI are received from the apparatus 300 via the short-range wireless communication network LN and the short-range wireless communication units 240 and 340, and the received information is stored in the storage unit 230.
  • the dedicated terminal devices 200 (3) to 200 (n) are updated from the dedicated terminal devices 200 (1), 200 (2) (distribution source) and / or the general-purpose terminal device 300.
  • the software WFW is received via the short-range wireless communication network LN and the short-range wireless communication units 240 and 340, and the received information is stored in the storage unit 230.
  • the dedicated terminal devices 200 (2), 200 (1) (distribution source) (see FIG. 17) store the model information management database DB1, the update software management database DB2, and the update software storage database DB3 in the storage unit 230.
  • the dedicated terminal devices 200 (3) to 200 (n) (non-distribution source) store the update software management database DB2 and the update software storage database DB3 in the storage unit 230.
  • the software FW of the control devices 113 (1) to 113 (m) in the terminal devices 200 (1) to 200 (n) is the latest ( For example, if it is not the latest version or the latest date, the control devices 113 (1) to 113 (m) mounted on the control unit 210 or the moving bodies 110 (1) to 110 (n) Based on the update software WFW, the software FW of the control devices 113 (1) to 113 (m) is rewritten.
  • FIGS. 19 and 20 are flowcharts showing an example of the software rewriting process in the software rewriting system 100 of the first embodiment shown in FIGS. 1 to 11.
  • FIG. 19 shows an example of processing in the first half
  • FIG. 20 shows an example of processing in the latter half.
  • the server 130 is a stationary computer
  • the dedicated terminal device 200 (1) (distribution source) generates the latest object code NOC
  • the generated latest object code NOC is A case will be described as an example where the software FW is rewritten to the control device 113 mounted on the mobile body 110 (1).
  • step S1 the developer of the control device 113 registers the source code SC of the latest version of the software FW of the control device 113 in the server 130, and in step S1.1, the server 130 stores the source code SC of the registered software FW in the storage unit 133. At this time, the server 130 does not store in the storage unit 133 if the source code SC is illegal.
  • step S1.2 the server 130 generates and generates a differential source code DSC for the latest version of the latest version from the source code SC of the registered software FW and one or more previous versions of the source code SC.
  • the difference source code DSC thus stored is stored in the update software storage database DB3.
  • step S2 the administrator and system of the server 130 instruct the server 130 to rewrite the software FW of the control device 113 with the latest version of the software FW.
  • step S2.1 the server 130 manages the state of the administrator of the server 130 and the rewrite instruction from the system.
  • step S2.2 the server 130 establishes connection to the terminal device 200 (1). Request.
  • the server 130 performs a retry when there is no connection from the terminal device 200 (1).
  • the server 130 is informed that it has started up from the terminal device 200 (1).
  • the connection request is made again.
  • step S2.2.1 the terminal device 200 (1) performs connection in response to the connection request from the server 130. At this time, the terminal device 200 (1) performs a retry when there is no acknowledgment from the server 130 within a predetermined time. If the terminal device 200 (1) does not receive an acknowledgment from the server 130 even after retrying a certain number of times, the terminal device 200 (1) ends the connection. Further, when a negative response is returned from the server 130, the terminal device 200 (1) ends the connection.
  • step S2.2.1 the server 130 acknowledges the connection from the terminal device 200 (1). At this time, the server 130 does not respond when connected from an unauthorized terminal device.
  • step S ⁇ b> 3 the terminal device 200 (1) transmits a sending instruction for the differential source code DSC to the control device 113. At this time, the terminal device 200 (1) ends the connection with the server 130 when the software device FW version VR is not transmitted from the control device 113 or when an unauthorized software version is transmitted from the control device 113. .
  • step S3 the control device 113 transmits the version VR of the software FW to the terminal device 200 (1) (responds to the software FW sending instruction). At this time, the control device 113 does not respond to an instruction from an unauthorized terminal device.
  • step S ⁇ b> 4 the terminal device 200 (1) transmits the software VR version VR of the control device 113 to the server 130. At this time, the terminal device 200 (1) performs a retry when there is no acknowledgment from the server 130 within a predetermined time. If the terminal device 200 (1) does not receive an acknowledgment from the server 130 even after retrying a certain number of times, the terminal device 200 (1) ends the connection with the server 130. Further, when a negative response is returned from the server 130, the terminal device 200 (1) ends the connection with the server 130.
  • step S4 the server 130 responds positively to the transmission of the software FW version VR from the terminal device 200 (1). At this time, the server 130 makes a negative response if the received version VR of the software FW is invalid. In addition, when the version VR of the software FW is not transmitted from the terminal device 200 (1) within a predetermined time, the server 130 ends the connection with the terminal device 200 (1).
  • step S2.3 the server 130 selects what is to be transmitted to the terminal device 200 (1) from the difference source code DSC that is held.
  • step S2.4 the server 130 transmits the differential source code DSC to the terminal device 200 (1) associated with the rewrite-destination control device 113.
  • the server 130 performs a retry. If there is no positive response from the terminal device 200 (1) even after retrying a certain number of times, the server 130 gives up the rewriting operation (rewriting state: failure). Further, when a negative response is returned from the terminal device 200 (1), the server 130 gives up the rewriting operation (rewriting state: failure).
  • step S2.4.1 the terminal device 200 (1) reflects the differential source code DSC transmitted from the server 130 in the source code SC held by itself, and generates the latest source code NSC. At this time, the terminal device 200 (1) ends the connection with the server 130 when the differential source code DSC is not transmitted from the server 130 within a predetermined time.
  • step S2.4.2 the terminal device 200 (1) converts the generated latest source code NSC into the latest object code NOC (compiles in this example), and generates the latest object code NOC. To do. At this time, the terminal device 200 (1) makes a negative response to the server 130 when the conversion result (in this example, the compilation result) is not possible (NG).
  • step S2.4 the terminal device 200 (1) acknowledges the transmission of the differential source code DSC from the server 130. At this time, the terminal device 200 (1) makes a negative response to the server 130 when the conversion result (in this example, the compilation result) is not possible (NG).
  • the conversion result in this example, the compilation result
  • step S2.5 the server 130 instructs termination of the connection to the terminal device 200 (1).
  • the server 130 ends the communication.
  • step S2.5 the terminal device 200 (1) responds positively to the connection termination instruction from the server 130.
  • step S2.6 the server 130 manages the state of the administrator of the server 130 and the rewrite instruction from the system.
  • step S5 the terminal device 200 (1) transmits a rewrite instruction to the control device 113.
  • the terminal device 200 (1) performs a retry when there is no acknowledgment from the control device 113 within a certain time. If there is no positive response from the control device 113 after retrying a certain number of times, the terminal device 200 (1) gives up rewriting and notifies the server 130 of the rewriting failure. Further, when a negative response is returned to the rewriting instruction, the terminal device 200 (1) gives up rewriting and notifies the server 130 of the rewriting failure.
  • the server 130 sets the latest version update presence / absence RVR (see FIG. 11) in the area information management database DB4 to “no update” (specifically, flag “0”).
  • step S5 the control device 113 responds positively to the rewrite instruction from the terminal device 200 (1). At this time, the control device 113 does not respond to an instruction from an unauthorized terminal device.
  • step S6 the terminal device 200 (1) transmits the generated latest object code NOC to the control device 113.
  • the terminal device 200 (1) notifies the server 130 of the rewrite failure.
  • the server 130 sets the latest version update presence / absence RVR (see FIG. 11) in the area information management database DB4 to “no update” (specifically, flag “0”).
  • step S6.1 the control device 113 rewrites the latest object code NOC transmitted from the terminal device 200 (1). At this time, if the rewrite of the latest object code NOC fails, the control device 113 returns a negative response.
  • step S6 the control device 113 responds positively to the transmission of the latest object code NOC from the terminal device 200 (1). At this time, the control device 113 does not respond to an instruction from an unauthorized terminal device. The control device 113 returns a negative response when rewriting the latest object code NOC fails.
  • step S ⁇ b> 7 the terminal device 200 (1) performs connection with the server 130.
  • the terminal device 200 (1) performs a retry when there is no acknowledgment from the server 130 within a predetermined time. If the terminal device 200 (1) does not receive an acknowledgment from the server 130 even after retrying a certain number of times, the terminal device 200 (1) ends the connection with the server 130. Further, when a negative response is returned from the server 130, the terminal device 200 (1) ends the connection with the server 130.
  • step S7 the server 130 responds positively to the connection from the terminal device 200 (1). At this time, the server 130 does not respond when connected from an unauthorized terminal device.
  • step S8 the terminal device 200 (1) notifies the server 130 of the completion of rewriting.
  • the server 130 sets the latest version update presence / absence RVR (see FIG. 11) in the area information management database DB4 to “update available” (specifically, flag “1”).
  • the terminal device 200 (1) notifies the server 130 of the rewriting failure.
  • the server 130 sets the latest version update presence / absence RVR (see FIG. 11) in the area information management database DB4 to “no update” (specifically, flag “0”).
  • step S8.1 the server 130 manages the state in response to a rewrite instruction from the administrator of the server 130 and the system.
  • step S8 the server 130 responds positively to the rewriting completion notification from the terminal device 200 (1). At this time, if the rewriting completion notification from the terminal device 200 (1) is invalid, the server 130 sets the rewriting state as failure and returns a negative response.
  • step S9 the server 130 instructs termination of connection to the terminal device 200 (1). At this time, if there is no response from the terminal device 200 (1) within a predetermined time, the server 130 ends the communication.
  • step S9 the terminal device 200 (1) responds positively to the connection termination instruction from the server 130.
  • the latest object code NOC is rewritten to the control device 113 in the control device 113 in the moving body 110 (1) of the terminal device 200 (1).
  • the short-range wireless communication with the terminal device 200 (1) may be performed to the control device 113 in the mobile units 110 (2) to 110 (n) of the other terminal devices 200 (2) to 200 (n).
  • a general-purpose terminal device 300 may be used instead of or in addition to the dedicated terminal device 200 (1).
  • the object code OC of the control device 113 in the moving bodies 110 (1) to 110 (n) can be rewritten to the latest object code NOC.
  • Software FW rewrite processing can be similarly performed for a plurality of control devices 113 (1) to 113 (m).
  • the differential source code DSC may be transmitted to another terminal device 200 (2) (distribution source) instead of the object code NOC.
  • the terminal device that has performed wide area communication with the server 130 is the dedicated terminal device 200 (1) (distribution source), but may be the dedicated terminal device 200 (2) (distribution source).
  • the server 130 is a stationary type, it may be a dedicated terminal device 200 (1), 200 (2) and / or a general-purpose terminal device 300.
  • the transmission time [this example In this case, the transmission time for transmitting the software FW of the control devices 113 (1) to 113 (m) from the server 130 to the terminal devices 200 (1) to 200 (n) can be reduced.
  • the latest source code NSC is generated from the differential source code DSC and the current source code SC, the generated latest source code NSC is converted into the latest object code NOC, and the converted latest object code NOC is converted into the control device 113.
  • control devices 113 to 113 are mounted on the moving bodies 110 (1) to 110 (n), so that the transmission time [in this example, the server 130 moves from the server 130 to the terminal devices 200 (1) to 200 (n).
  • the transmission time for transmitting the software FW of the control devices 113 (1) to 113 (m) mounted on the bodies 110 (1) to 110 (n) can be reduced.
  • the latest version of the software FW can be easily generated from the difference of the software FW, and thereby the mobile units 110 (1) to 110 It becomes possible to reliably execute the latest version of the software FW by the control devices 113 to 113 installed in (n).
  • the mobile bodies 110 (1) and 110 (2) are provided on the mobile body 110 (1 ), 110 (2) and other mobile units [in this example, [110 (2) to 110 (n)], [110 (1), 110 (3) to 110 (n)]] and short-range wireless communication
  • the short-range wireless communication unit 240 that communicates via the network LN
  • the software FW can be easily rewritten.
  • the latest object code NOC is sent to the moving body [110 (1), 110 in this example].
  • the software FW of the mounted control devices 113 (1) to 113 (m) can be rewritten and easily updated to the latest one.
  • the latest version of the software FW can be reliably executed by the control devices 113 (1) to 113 (m) in its own mobile body [110 (1), 110 (2) in this example].
  • the latest object code NOC is transferred to another mobile object 110 [in this example [110 ( 2) to 110 (n)], [110 (1), 110 (3) to 110 (n)]] via the short-range wireless communication unit 240 and the short-range wireless communication network LN.
  • the software FW of the control devices 113 (1) to 113 (m) mounted on the moving body can be easily rewritten and updated. As a result, the latest version of the software FW can be reliably executed by the control devices 113 (1) to 113 (m) mounted on the other moving bodies.
  • the differential source code DSC is stored in the mobile body [110 (1), 110 in this example]. (2)] by transmitting from (distribution source) to another mobile unit [110 (2), 110 (1) in this example] via the short-range wireless communication unit 240 and the short-range wireless communication network LN
  • the latest object code NOC is obtained from the differential source code DSC transmitted from the terminal device [200 (2), 200 (1) in this example] of the mobile body [110 (2), 110 (1)] in this example. Accordingly, the communication time can be shortened between the terminal device and another terminal device.
  • the terminal device 300 functions as a multi-function communication portable terminal device, and an electric device [in this example, the mobile unit 110 (1) to 110 (n)] via the short-range wireless communication network LN, the general-purpose terminal device that is widely used as the terminal device 300, such as a tablet computer, is provided.
  • a multi-function communication portable terminal device such as a smartphone can be used, thereby improving the convenience of rewriting the software FW of the control devices 113 (1) to 113 (m) mounted in the electrical equipment. Can do.
  • the latest object code NOC is sent to the electrical equipment via the short-range wireless communication unit 340 and the short-range wireless communication network LN.
  • the software FW of the control devices 113 (1) to 113 (m) installed in the electrical equipment can be rewritten and easily updated to the latest one.
  • the latest version of the software FW can be reliably executed by the control devices 113 (1) to 113 (m) installed in the electrical equipment.
  • the latest object code NOC can be generated from the differential source code DSC transmitted from the terminal device [200 (2), 200 (1)] (distribution source in this example), and the terminal device and other terminals can be generated accordingly. Communication time with the apparatus can be shortened.
  • the server 130 determines the area information AR.
  • the terminal device 200 (1), 200 (2), 300 may store the database in the storage unit 230. By doing so, the terminal devices 200 (1), 200 (2), and 300 can be the server 130.
  • the moving body 110 is applied to a traveling work machine such as a combine, an agricultural work machine such as a tiller or a rice transplanter, but is not limited thereto.
  • a traveling work machine such as a combine, an agricultural work machine such as a tiller or a rice transplanter, but is not limited thereto.
  • the present invention can also be suitably applied to traveling working machines such as wheel loaders and construction machines such as carriers, and ships such as pleasure boats and fishing boats.
  • one control device 113 is provided for one working unit 111, but a plurality of control devices 113 are provided for one working unit 111. May be.
  • electrical equipment in addition to the above-described moving body, for example, electrical equipment used for power equipment such as a generator can be cited.
  • the present invention relates to a terminal device and a software rewriting program used in a software rewriting system for rewriting software of a control device, and in particular, to realize a reduction in transmission time by using software differences, and to update the latest from software differences. It can be applied to applications for easily generating versions of software.
  • Software rewriting system 110 Mobile body (an example of electrical equipment) 111 Working unit 113 Control device 120 Remote monitoring center 130 Server 131 Control unit 131a Processing device 131b Memory device 132 Wide area communication unit 133 Storage unit 200 Dedicated terminal device 210 Control unit 210a Processing device 210b Memory device 220 Wide area communication unit 230 Storage unit 240 Short-range wireless communication unit 250 Signal communication unit 260 Power supply control unit 300 General-purpose terminal device 310 Control unit 310a Processing device 310b Memory device 320 Wide-area communication unit 330 Storage unit 340 Short-range wireless communication unit 350 User interface unit AR Area information BT Battery CC Control device code DB Update software storage database DB1 Model information management database DB2 Update software management database DB3 Update software storage database DB 4 Area information management database DSC Differential source code FW Software ID Terminal identification information LN Short-range wireless communication network MC Model code MI Model information MT Type of mobile object NOC Latest object code NSC Latest source code OC Object code PP Software update program Q1 Reception control unit Q11 Acquisition control unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental Sciences (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Combines (AREA)

Abstract

制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置は、制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部を備え、記憶部に記憶された、現行のオブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得し、取得した差分ソースコードおよび記憶部に記憶されたソースコードから最新のソースコードを生成し、生成した最新のソースコードを最新のオブジェクトコードに変換し、変換した最新のオブジェクトコードを制御装置に送信する。

Description

端末装置およびソフトウェア書き換えプログラム
 本発明は、制御装置(例えば作業機や船舶等の移動体に搭載された制御装置)のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置およびソフトウェア書き換えプログラムに関する。
 制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムとして、例えば、制御装置のソフトウェアを更新するための更新用ソフトウェアを端末装置により取得し、取得した更新用ソフトウェアに基づいて制御装置のソフトウェアを書き換えるものがある。
特開2010-198155号公報
 このように、取得した更新用ソフトウェアを用いて制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムにおいて、制御装置のソフトウェアを書き換える際には、ソフトウェアの全部のデータを端末装置に送信すると、端末装置に制御装置のソフトウェアを送信するための送信時間を要するという不都合がある。このことは、通信コストが高額、通信速度が遅い、といった十分な通信インフラが整っていない地域において、特に、顕著となる。
 この点に関し、特許文献1は、第1のバージョンのプログラム(ソフトウェア)を格納する第1格納部と、第1のバージョンと同じ又は第1のバージョンよりも新しいバージョンである第2のバージョンのプログラムを格納する第2格納部と、第2のバージョンのプログラムと第2のバージョンのプログラムよりもバージョンが新しい第3のバージョンのプログラムとの差分を取得する取得部と、第2格納部に格納される第2のバージョンのプログラムと取得部によって取得した差分とから第3のバージョンのプログラムを生成し、生成した第3のバージョンのプログラムを第1格納部に格納する更新部とを備える構成を開示している。
 しかしながら、特許文献1には、プログラム(ソフトウェア)の差分がどのようなもので、その差分から生成した最新バージョンのソフトウェアがどのようなものかが記載されておらず、かかる記載だけでは、ソフトウェアの差分から最新バージョンのソフトウェアを生成することが困難である。
 そこで、本発明は、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置であって、ソフトウェアの差分を用いて送信時間の短縮化を実現させることができる上、ソフトウェアの差分から最新バージョンのソフトウェアを容易に生成することができる端末装置およびソフトウェア書き換えプログラムを提供することを目的とする。
 前記課題を解決するために、次の端末装置およびソフトウェア書き換えプログラムを提供する。
 (1)端末装置
 本発明に係る端末装置は、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置であって、前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部を備え、前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得し、取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成し、生成した前記最新のソースコードを最新の前記オブジェクトコードに変換し、変換した前記最新のオブジェクトコードを前記制御装置に送信することを特徴とする。
 (2)ソフトウェア書き換えプログラム
 本発明に係るソフトウェア書き換えプログラムは、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置のソフトウェア書き換えプログラムであって、前記端末装置は、前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部と、コンピュータとを備え、前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得する取得制御ステップと、前記取得制御ステップにて取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成する生成制御ステップと、前記生成制御ステップにて生成した前記最新のソースコードを最新の前記オブジェクトコードに変換する変換制御ステップと、前記変換制御ステップにて変換した前記最新のオブジェクトコードを前記制御装置に送信する送信制御ステップとを含むステップを前記コンピュータに実行させることを特徴とする。
 ここで、前記「テキスト形式のソースコード」とは、文字コードを使用して人間が認識可能な状態で記述されているプログラム言語(例えばC言語など非マシン言語)をいう。また、前記「バイナリー形式のオブジェクトコード」とは、バイナリコードを使用して前記制御装置が実行可能な状態で構成されているマシン言語をいう。
 本発明に係る端末装置および本発明に係るソフトウェア書き換えプログラムにおいて、前記制御装置は、移動体に搭載されている態様を例示できる。
 本発明に係る端末装置において、前記移動体に設けられ、前記移動体とは他の移動体と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記端末装置は、前記移動体に設けられ、前記移動体とは他の移動体と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。
 本発明に係る端末装置において、前記最新のオブジェクトコードを、自身の移動体における前記制御装置に送信する、および/または、前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記送信制御ステップでは、前記最新のオブジェクトコードを、自身の移動体における前記制御装置に送信する、および/または、前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
 本発明に係る端末装置において、前記他の移動体は、前記本発明に係る端末装置を備え、前記差分ソースコードを前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記他の移動体は、前記本発明に係る端末装置を備え、前記送信制御ステップでは、前記差分ソースコードを前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
 本発明に係る端末装置において、前記制御装置は、電機機器に搭載されており、当該端末装置は、多機能通信携帯端末装置として機能し、前記電機機器と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記制御装置は、電機機器に搭載されており、前記端末装置は、多機能通信携帯端末装置として機能し、前記電機機器と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。
 本発明に係る端末装置において、前記最新のオブジェクトコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記送信制御ステップでは、前記最新のオブジェクトコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
 本発明に係る端末装置において、前記電機機器は、前記本発明に係る端末装置を備え、前記差分ソースコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記電機機器は、前記本発明に係る端末装置を備え、前記送信制御ステップでは、前記差分ソースコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
 本発明によると、ソフトウェアの差分を用いて送信時間の短縮化を実現させることができる上、ソフトウェアの差分から最新バージョンのソフトウェアを容易に生成することができる。
図1は、第1実施形態に係るソフトウェア書き換えシステムの一例を模式的に示す概略構成図であって、複数の移動体のうちの配信元になり得る何れかの移動体に設けられた専用の端末装置とサーバとが広域通信網を介して通信している状態を示す模式図である。 図2は、図1に示すソフトウェア書き換えシステムにおいて、サーバと通信した専用の端末装置と配信元になり得る他の専用の端末装置とが短距離無線通信網を介して通信している状態を示す模式図である。 図3は、図1に示すソフトウェア書き換えシステムにおいて、サーバと通信した専用の端末装置と実質的に配信元になれない他の専用の端末装置とが短距離無線通信網を介して通信している状態を示す模式図である。 図4は、サーバに備えられた記憶部における機種情報管理データベースのデータ構造の一例を示す模式図である。 図5は、サーバに備えられた記憶部における更新用ソフトウェア管理データベースのデータ構造の一例を示す模式図ある。 図6は、サーバに備えられた記憶部における更新用ソフトウェア保存データベースのデータ構造の一例を示す模式図ある。 図7は、端末装置における記憶部において制御装置の現在のバージョンのソフトウェアが登録されている状態のデータ構造の一例を示す模式図ある。 図8は、端末装置(配信元)における記憶部において制御装置のソースコードが登録されている状態のデータ構造の一例を示す模式図ある。 図9は、図1から図3に示す専用の端末装置(配信元)のソフトウェア構成の一例を示すブロック図である。 図10は、図4に示す機種情報管理データベースにおいてエリア情報を追加したデータ構造の一例を示す模式図である。 図11は、サーバに備えられた記憶部における更新用ソフトウェア格納データベースを構成するエリア情報管理データベースのデータ構造の一例を示す模式図である。 図12は、第2実施形態に係るソフトウェア書き換えシステムの一例を模式的に示す概略構成図であって、汎用の端末装置が広域通信網を介してサーバと通信している状態を示す模式図である。 図13は、図12に示すソフトウェア書き換えシステムにおいて、サーバと通信した汎用の端末装置が短距離無線通信網を介して配信元になり得る専用の端末装置と通信している状態を示す模式図である。 図14は、図12に示すソフトウェア書き換えシステムにおいて、サーバと通信した汎用の端末装置が短距離無線通信網を介して実質的に配信元になれない専用の端末装置と通信している状態を示す模式図である。 図15は、図12から図14に示す汎用の端末装置のソフトウェア構成の一例を示すブロック図である。 図16は、サーバと専用の端末装置(配信元)および/または汎用の端末装置とが広域通信網を介して通信している例(ダウンロード処理の一例)を示すフローチャートである。 図17は、サーバと通信した専用の端末装置(配信元)および/または汎用の端末装置と専用の端末装置(配信元)とが短距離無線通信網を介して通信している例(配信処理の一例)を示すフローチャートである。 図18は、サーバと通信した専用の端末装置(配信元)および/または汎用の端末装置と専用の端末装置(非配信元)とが短距離無線通信網を介して通信している例(配信処理の他の例)を示すフローチャートである。 図19は、図1から図11に示す第1実施形態のソフトウェア書き換えシステムにおけるソフトウェア書き換え処理の一例を示すフローチャートであって、その前半部分の処理例を示す例である。 図20は、図1から図11に示す第1実施形態のソフトウェア書き換えシステムにおけるソフトウェア書き換え処理の一例を示すフローチャートであって、その後半部分の処理例を示す例である。
 以下、本発明に係る実施の形態について電機機器の一例である移動体としてコンバイン、耕耘機や田植機等の農業作業機といった走行作業機を例にとって図面を参照しながら説明する。
 [第1実施形態]
 図1から図3は、第1実施形態に係るソフトウェア書き換えシステム100の一例を模式的に示す概略構成図である。
 図1は、複数の移動体110(1)~110(n)(nは2以上の整数)のうちの配信元になり得る何れかの移動体110(1)に設けられた専用の端末装置200(1)とサーバ130とが広域通信網WNを介して通信している状態を示す模式図である。図2は、図1に示すソフトウェア書き換えシステム100において、サーバ130と通信した専用の端末装置200(1)と配信元になり得る他の専用の端末装置200(2)とが短距離無線通信網LNを介して通信している状態を示す模式図である。図3は、図1に示すソフトウェア書き換えシステム100において、サーバ130と通信した専用の端末装置200(1)と実質的に配信元になれない他の専用の端末装置200(3)とが短距離無線通信網LNを介して通信している状態を示す模式図である。
 また、図4は、サーバ130に備えられた記憶部133における更新用ソフトウェア格納データベースDBを構成する機種情報管理データベースDB1のデータ構造の一例を示す模式図である。図5は、サーバ130に備えられた記憶部133における更新用ソフトウェア格納データベースDBを構成する更新用ソフトウェア管理データベースDB2のデータ構造の一例を示す模式図ある。図6は、サーバ130に備えられた記憶部133における更新用ソフトウェア格納データベースDBを構成する更新用ソフトウェア保存データベースDB3のデータ構造の一例を示す模式図ある。図7は、端末装置200(i)における記憶部230において制御装置113(1)~113(m)(mは1または2以上の整数)の現在のバージョンVRのソフトウェアFW(FW1~FWm)が登録されている状態のデータ構造の一例を示す模式図ある。また、図8は、端末装置200(1),200(2)(配信元)における記憶部230において制御装置113(1)~113(m)のソースコードSCが登録されている状態のデータ構造の一例を示す模式図ある。
 図1から図3に示すソフトウェア書き換えシステム100は、複数の移動体110(1)~110(n)(例えば走行作業機や船舶)(図1から図3参照)に搭載された制御装置113(1)~113(m)のソフトウェアFWを書き換えるシステムである。この例では、制御装置113(1)~113(m)は、電子制御装置(ECU:Electronic Control Unit)とされ、移動体110(1)~110(n)に搭載されている。ソフトウェアFWは、ファームウェアとされている。
 ソフトウェア書き換えシステム100は、複数の移動体110(1)~110(n)と、複数の移動体110(1)~110(n)に設けられた専用の端末装置200(1)~200(n)と、端末装置200(1)~200(n)に広域通信網WN(図1参照)を介して接続されるサーバ130(図1参照)とを備えている。
 この例では、サーバ130は、大型の情報機器(具体的には所定の場所に設置される据え置き型のコンピュータ)とされている。但し、それに限定されるものではなく、サーバ130として、更新用ソフトウェア格納データベースDBを格納可能な情報機器〔例えば、更新用ソフトウェア格納データベースDBが必要とするデータ容量を確保することが可能な記憶部を備えた小型の情報機器、具体的には、移動体110(1),110(2)に設けられる専用の端末装置200(1),200(2)や、後述する携帯型の汎用の端末装置300〕を用いてもよい。
 端末装置200(1)~(n)において、他の端末装置に対して配信元になり得る少なくとも1台の端末装置を含んでいる。端末装置200(1)~(n)において、他の端末装置に対して実質的に配信元になれない端末装置を含んでいてもよい。
 なお、「他の端末装置に対して実質的に配信元になれない端末装置」とは、相手先が同一機種の移動体であれば、配信元になれるものの、相手先が異なる機種の場合には、配信元になれない端末装置、すなわち、自機以外(相手先)の機種情報MIおよび機種情報MIに関連付けられた更新用ソフトウェアWFW(図4から図6参照)を有していない端末装置という。
 以下では、他の端末装置に対して配信元になり得る端末装置を端末装置200(1),200(2)(配信元)とし、他の端末装置に対して実質的に配信元になれない端末装置を端末装置200(3)~200(n)(非配信元)として説明する。
 端末装置200(1)(配信元)は、制御装置113(1)~113(m)のソフトウェアFWを更新するための更新用ソフトウェアWFWのサーバ130からの配信先になることができると共に、他の端末装置200(2)~200(n)に対して配信元になることができる。同様に、端末装置200(2)(配信元)は、更新用ソフトウェアWFWのサーバ130からの配信先になることができると共に、他の端末装置200(1),200(3)~200(n)に対して配信元になることができる。
 詳しくは、端末装置200(1),200(2)(配信元)は、サーバ130から更新用ソフトウェア格納データベースDB(図4から図6参照)における更新用ソフトウェアWFWを広域通信網WNおよび広域通信部220を介して受信する。
 ここで、サーバ130から受信した更新用ソフトウェアWFWがどのようなものかは、後ほど詳しく説明する。
 端末装置200(1)(配信元)は、サーバ130から受信した更新用ソフトウェアWFWを記憶部230に記憶し、記憶部230に記憶した更新用ソフトウェアWFWを他の端末装置200(2)~200(n)のうち短距離無線通信範囲内で通信可能な他の端末装置に対して短距離無線通信部240および短距離無線通信網LNを介して送信する。
 同様に、端末装置200(2)(配信元)は、サーバ130から受信した更新用ソフトウェアWFWを記憶部230に記憶し、記憶部230に記憶した更新用ソフトウェアWFWを他の端末装置200(1),200(3)~200(n)のうち短距離無線通信範囲内で通信可能な他の端末装置に対して短距離無線通信部240および短距離無線通信網LNを介して送信する。
 さらに詳しくは、端末装置200(1)(配信元)は、他の端末装置200(2)~200(n)のうち短距離無線通信範囲内で短距離無線通信部240および短距離無線通信網LNを介して通信可能な他の端末装置に対して無作為に通信を確立する。端末装置200(1)(配信元)は、通信を確立した他の端末装置200(2)~200(n)と認証して他の端末装置200(2)~200(n)のうち端末装置200(1)(配信元)の記憶部230に記憶した機種情報MI(図4参照)に対応する相手先の端末装置200(i)(iは1~nまでの整数であって相手先の端末装置の添え字番号に対応する値)に対して端末装置200(1)(配信元)の記憶部230に記憶した更新用ソフトウェアWFWを送信する。
 同様に、端末装置200(2)(配信元)は、他の端末装置200(1),200(3)~200(n)のうち短距離無線通信範囲内で短距離無線通信部240および短距離無線通信網LNを介して通信可能な他の端末装置に対して無作為に通信を確立する。端末装置200(2)(配信元)は、通信を確立した他の端末装置200(1),200(3)~200(n)のうち端末装置200(2)(配信元)の記憶部230に記憶した機種情報MI(図4参照)に対応する相手先の端末装置200(i)に対して端末装置200(2)(配信元)の記憶部230に記憶した更新用ソフトウェアWFWを送信する。
 ここで、相手先の端末装置200(i)に送信する更新用ソフトウェアWFWがどのようなものかは、後ほど詳しく説明する。
 図1から図3に示すように、サーバ130(図1参照)は、この例では、移動体110(1)~110(n)に対して遠く離れた位置にある遠隔監視センター120(図1参照)に配置されており、移動体110(1)~110(n)に搭載された制御装置113(1)~113(m)のソフトウェアFWに関する情報を蓄積するようになっている。
 詳しくは、端末装置200(1)~200(n)およびサーバ130は、それぞれ、広域通信部220,132(具体的には広域通信インタフェース)を有し、広域通信網WN(図1参照)を介して互いの広域通信部220,132で接続されることで、端末装置200(1)~200(n)とサーバ130との間で情報の送受信を行うことが可能とされている。これにより、サーバ130は、遠隔監視センター120で利用者により移動体110(1)~110(n)を遠隔監視できるようになっている。端末装置200(1)~200(n)は、この例では遠隔監視端末装置とされている。なお、場合によっては、端末装置200(3)~200(n)には、広域通信部220が設けられていなくてもよい。
 また、サーバ130は、移動体110(1)~110(n)における制御装置113(1)~113(m)のソフトウェアFWに関する情報を移動体110(1),110(2)における端末装置200(1),200(2)(配信元)に送信できるようになっている。一方、移動体110(1),110(2)における端末装置200(1),200(2)(配信元)は、移動体110(1)~110(n)における制御装置113(1)~113(m)のソフトウェアFWに関する情報をサーバ130から受信できるようになっている。
 ここで、広域通信網WNは、有線通信網でもよいし、無線通信網(所謂モバイル通信規格による無線通信網)でもよく、有線通信網および無線通信網を組み合わせたものであってもよい。広域通信網WNとしては、代表的には、電気通信事業者が提供する公衆回線網であって、固定電話機や携帯電話機等の端末機同士を通信させる公衆回線網を挙げることができる。
 移動体110(1)~110(n)は、1つまたは複数(ここでは複数)の作業部〔111(1)~111(m)〕~〔111(1)~111(m)〕(図1から図3参照)と、端末装置200(1)~200(n)とを備えている。ここで、作業部111(1)~111(m)としては、例えば、農業作業機がコンバインである場合には、走行作業部、刈り取り作業部、脱穀作業部等を挙げることができる。
 各作業部111(1)~111(m)には、制御装置113(1)~113(m)が設けられている。制御装置113(1)~113(m)は、各種アクチュエータ(図示せず)に対して指令し、各作業部111(1)~111(m)への運転状態を適切に制御する。制御装置113(1)~113(m)は、CAN(Controller Area Network)規格等の通信規格に基づいて互いにデータ転送されるようになっている。
 詳しくは、各制御装置113(1)~113(m)は、各作業部111(1)~111(m)での各種センサにて検出した検出値情報(信号)および各種スイッチのオン・オフ情報に基づいて各作業部111(1)~111(m)への運転状態を作動制御する。また、各制御装置113(1)~113(m)は、移動体110の故障等の異常が発生したか否かの異常発生の有無を適宜判断し、異常が発生した場合には、該異常に応じたエラー情報(具体的にはエラーコード)を生成する。
 作業部111(1)~111(m)のうちのエンジン(図示せず)を作動させる作業部111は、エンジンと、エンジンの回転数や負荷状態などを監視し、最適な噴射圧力や噴射時期を燃料システムに指示してエンジン全体を制御する制御装置113と、発電機(図示せず)と、起動スイッチSWとを備えており、バッテリーBTが搭載されている。そして、エンジン全体を制御する制御装置113は、エンジンを作動させる作業部111の作動制御の他、運転開始/休止の操作や、エンジンの駆動による運転状態の制御が行われるようになっている。
 なお、エンジンを作動させる作業部111のエンジンの稼動状態において、発電機から供給される電力によってバッテリーBTの充電が適宜行われるようになっている。
 起動スイッチSWは、電源オン状態と電源オフ状態とを選択的に切り替える切り替えスイッチとされている。ここで、電源オン状態は、バッテリーBTから制御部210および制御装置113(1)~113(m)へ電力を供給する状態とされる。電源オフ状態は、バッテリーBTから制御部210および制御装置113(1)~113(m)への電力供給を遮断する状態とされる。
 詳しくは、バッテリーBTは、制御部210に接続された電源接続ラインL1および制御装置113(1)~113(m)に接続された電源接続ラインL2の双方に起動スイッチSWを介して接続されている。
 この例では、起動スイッチSWは、所謂キースイッチと呼ばれるスイッチであり、「ON」端子は、電源接続ラインL1,L2の接続端子である。「OFF」端子は、起動スイッチSWがオフ状態のときの端子である。
 なお、起動スイッチSWのオン状態およびオフ状態に関わらず、バッテリーBTと電源制御部260とが電源接続ラインL3を介して接続されている。
 〔サーバ〕
 図1に示すように、サーバ130は、制御部131と、広域通信部132と、記憶部133とを備えている。
 (制御部)
 制御部131は、CPU(Central Processing Unit)等のいわゆるコンピュータからなる処理装置131aと、ROM(Read Only Memory)、RAM(Random Access Memory)等の揮発性メモリを含むメモリ装置131bとを有している。
 制御部131は、処理装置131aがメモリ装置131bのROMに予め格納された制御プログラムをメモリ装置131bのRAM上にロードして実行することにより、各種構成要素の作動制御を行うようになっている。
 本実施の形態では、制御部131は、通信時におけるデータの送受信、各種の入出力制御および演算処理の制御を行う。
 (広域通信部)
 広域通信部132は、制御部131のデータラインに電気的に接続されている。広域通信部132は、制御部131の指示の下、移動体110(1)~110(n)における端末装置200(1)~200(n)の広域通信部220(図1から図3参照)と同一の通信プロトコル(通信規約)で通信可能とされている。通信時に送受信されるデータは、通信プロトコルに従うように広域通信部132で変換される。広域通信部132は、記憶部133に記録された移動体110(1)~110(n)における制御装置113(1)~113(m)のソフトウェアFWに関する情報を移動体110(1)~110(n)〔この例では移動体110(1),110(2)〕における端末装置200(1)~200(n)〔この例では端末装置200(1),200(2)〕に送信する。
 (記憶部)
 記憶部133は、制御部131のデータラインに電気的に接続されている。記憶部133は、制御部131の指示の下、情報が書き込み制御および読み出し制御される。記憶部133は、この例では、フラッシュメモリ、ハードディスク装置等の大容量記憶装置とされている。
 記憶部133には、更新用ソフトウェア格納データベースDBが格納されている。
 ところで、相手先の移動体110(i)の種類(例えば走行作業機や船舶)が異なれば、当然のことながら相手先の移動体110(i)に搭載された制御装置113(1)~113(m)のソフトウェアFWは異なる場合がある。また、相手先の移動体110(i)が同種のものであっても、互いに異なる機種の移動体110(i)に搭載された制御装置113(1)~113(m)のソフトウェアFWは異なる場合がある。従って、相手先の移動体110(i)に搭載された制御装置113(1)~113(m)のソフトウェアFWに対して、記憶部230に記憶した更新用ソフトウェアWFWが異なっている場合には、相手先の移動体110(i)において制御装置113(1)~113(m)のソフトウェアFWを書き換えることができない。
 かかる観点から、更新用ソフトウェア格納データベースDBは、移動体110(1)~110(n)の機種情報MI(図4から図6参照)に関連付けられた更新用ソフトウェアWFWを格納している。また、更新用ソフトウェア格納データベースDBは、更新用ソフトウェアWFWの更新情報RI(図5参照)を格納している。
 本実施の形態では、更新用ソフトウェア格納データベースDBは、機種情報管理データベースDB1(図4参照)、更新用ソフトウェア管理データベースDB2(図5参照)および更新用ソフトウェア保存データベースDB3(図6参照)を備えている。なお、エリア情報管理データベースDB4については、後述する。
 図4に示すように、機種情報管理データベースDB1は、移動体110(1)~110(n)の機種情報MIを記憶している。
 詳しくは、機種情報管理データベースDB1には、移動体110(1)~110(n)の種類MTと、移動体110(1)~110(n)の機種コードMCとが登録されている。具体的には、機種情報管理データベースDB1には、移動体110(1)~110(n)のメーカーが製造している全ての種類MT(例えば走行作業機や船舶)の移動体110(1)~110(n)の全機種の機種コードMCが登録されている。
 そして、新しい機種が開発された場合には、機種情報管理データベースDB1において、随時、移動体110の種類MT、機種コードMCが登録される。
 図5に示すように、更新用ソフトウェア管理データベースDB2は、移動体110(1)~110(n)おける制御装置113(1)~113(m)(この例ではECU)の更新用ソフトウェアコードWFWC(この例では更新用ファームウェアコード)を記憶している。
 詳しくは、更新用ソフトウェア管理データベースDB2には、移動体110(1)~110(n)の種類MTと、移動体110(1)~110(n)の機種コードMCと、制御装置113(1)~113(m)の制御装置コードCC(この例ECU記号および/または番号)と、更新情報RI(バージョンVRおよび/または年月日時刻YMDT)に関連付けられた更新用ソフトウェアコードWFWCとが登録されている。具体的には、更新用ソフトウェア管理データベースDB2には、移動体110(1)~110(n)のメーカーが製造している全ての種類MT(例えば走行作業機や船舶)の移動体110(1)~110(n)の全機種の機種コードMC並びに移動体110(1)~110(n)における制御装置113(1)~113(m)の制御装置コードCCおよび更新情報RIに関連付けられた更新用ソフトウェアコードWFWCが登録されている。
 そして、新しい機種が開発された場合には、更新用ソフトウェア管理データベースDB2において、随時、移動体110の種類MT、機種コードMC、制御装置コードCCおよび更新情報RIに関連付けられた更新用ソフトウェアコードWFWCが登録され、さらに、新しいバージョンのソフトウェアFWが開発された場合には、更新用ソフトウェア管理データベースDB2において、随時、更新情報RIおよび更新情報RIに関連付けられた更新用ソフトウェアコードWFWCを更新する。
 図6に示すように、更新用ソフトウェア保存データベースDB3は、更新用ソフトウェアWFWの最新バージョンの旧バージョンに対する差分のソースコードである差分ソースコードDSCを記憶している。
 ここで、最新バージョンの旧バージョンに対する差分とは、ソフトウェアFWの最新バージョンのソースコードSCと、旧バージョン(旧バージョンが復数存在する場合、最も旧いバージョンから最新バージョンの一つ前の各旧バージョン)との差分をいい、例えば、市場にバージョン1.0およびバージョン1.1があり、最新バージョンがバージョン1.2とすると、最新バージョンの旧バージョンに対する差分は、最新バージョン1.2と旧バージョン1.0との差分と、最新バージョン1.2と旧バージョン1.1との差分との2つの差分となる。なお、旧バージョンが3つ以上の場合も同様である。
 詳しくは、更新用ソフトウェア保存データベースDB3には、更新用ソフトウェアコードWFWCと、更新用ソフトウェアコードWFWCに関連付けられた差分ソースコードDSCとが登録されている。具体的には、更新用ソフトウェア保存データベースDB3には、移動体110(1)~110(n)のメーカーが製造している全ての種類MT(例えば走行作業機や船舶)の移動体110(1)~110(n)の全機種の差分ソースコードDSCが登録されている。
 そして、新しい機種が開発された場合および新しいバージョンのソフトウェアFWが開発された場合には、更新用ソフトウェア保存データベースDB3において、随時、更新用ソフトウェアコードWFWCおよび更新用ソフトウェアコードWFWCに関連付けられた差分ソースコードDSCが登録される。
 また、移動体110(1)~110(n)における端末装置200(1)~200(n)の記憶部230には、機種情報MIおよび制御装置113(1)~113(m)のソフトウェアFWのバージョンVR等の更新情報RIが登録されている。
 詳しくは、図7に示すように、端末装置200(1)~200(n)における記憶部230には、機種情報MI(この例では機種コードMCの一例)、制御装置コードCCおよび制御装置113(1)~113(m)のソフトウェアFWの更新情報RI(この例では現在のバージョンVR)が、端末識別情報IDおよびエリア情報ARに関連付けられて登録されている。なお、記憶部230において、機種情報MIとして、この例では、機種コードMCが登録されているが、機種コードMCに加えて移動体110(1)~110(n)の種類MTが登録されていてもよい。また、更新情報RIとして、この例では、現在のバージョンVRが登録されているが、現在のバージョンVRに代えて或いは加えて現在のバージョンVRを更新した年月日時刻YMDTが登録されていてもよい。
 また、移動体110(1)~110(n)における端末装置200(1)~200(n)の記憶部230には、制御装置113(1)~113(m)で実行可能なバイナリー形式のオブジェクトコードOC(ソフトウェアFW)を生成するためのテキスト形式のソースコードSCが記憶されている。ここで、テキスト形式のソースコードSCは、文字コードを使用して人間が認識可能な状態で記述されているプログラム言語(例えばC言語など非マシン言語)である。また、バイナリー形式のオブジェクトコードOCは、バイナリコードを使用して制御装置113(1)~113(m)が実行可能な状態で構成されているマシン言語である。オブジェクトコードOCは、ソースコードSCから変換(所謂コンパイルまたはアセンブル)されたものである。
 詳しくは、図8に示すように、端末装置200(1),200(2)(配信元)における記憶部230には、機種情報MI(この例では機種コードMCの一例)、制御装置コードCC、制御装置113(1)~113(m)のソフトウェアFWの更新情報RI(この例では現在のバージョンVR)およびソースコードSCが、端末識別情報IDおよびエリア情報ARに関連付けられて登録されている。なお、記憶部230において、機種情報MIとして、この例では、機種コードMCが登録されているが、機種コードMCに加えて移動体110(1)~110(n)の種類MTが登録されていてもよい。また、更新情報RIとして、この例では、現在のバージョンVRが登録されているが、現在のバージョンVRに代えて或いは加えて現在のバージョンVRを更新した年月日時刻YMDTが登録されていてもよい。また、図8に示すソースコードSCにおいて、端末装置200(3)~200(n)(非配信元)の場合は、自身の移動体110(3)~110(n)における制御装置113(1)~113(m)のソースコードSC~SCのみを有することができる。
 〔専用の端末装置(配信元)〕
 次に、専用の端末装置200(1),200(2)(配信元)のシステム構成について図1から図3を参照しながら以下に説明する。
 -専用の端末装置(配信元)のハードウェア構成-
 図1から図3に示すように、端末装置200(1),200(2)(配信元)は、制御部210(コンピュータの一例)と、広域通信部220と、記憶部230と、短距離無線通信部240と、信号通信部250と、電源制御部260とを備えている。
 (制御部)
 制御部210は、CPU(Central Processing Unit)等のいわゆるコンピュータからなる処理装置210aと、ROM(Read Only Memory)、RAM(Random Access Memory)等の揮発性メモリを含むメモリ装置210bとを有している。
 制御部210は、記憶部230に予め格納(インストール)されたソフトウェア書き換えプログラムPP(後述する図9参照)等のプログラムを実行することによって、制御部210に必要な各種の機能を実現するように構成されている。詳しくは、制御部210は、処理装置210aが記憶部230に予め格納されたソフトウェア書き換えプログラムPP等のプログラムをメモリ装置210bのRAM上にロードして実行することにより、各種の処理を行うようになっている。メモリ装置210bのRAMは、制御部210に対して作業用のワークエリアを提供する。
 本実施の形態では、制御部210は、通信時におけるデータの送受信、各種の入出力制御および演算処理の制御を行う。
 (広域通信部)
 広域通信部220は、制御部210のデータラインに電気的に接続されている。広域通信部220は、制御部210の指示の下、サーバ130の広域通信部132(図1参照)と同一の通信プロトコル(通信規約)で通信可能とされている。通信時に送受信されるデータは、通信プロトコルに従うように広域通信部220で変換される。広域通信部220は、サーバ130の記憶部133に記録された移動体110(1)~110(n)における制御装置113(1)~113(m)のソフトウェアFWに関する情報をサーバ130から受信する。
 (記憶部)
 記憶部230は、制御部210のデータラインに電気的に接続されている。記憶部230は、制御部210の指示の下、情報が書き込み制御および読み出し制御される。記憶部230は、この例では、フラッシュメモリ等の大容量記憶装置とされている。
 記憶部230には、機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3が格納される。
 機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3のデータ構造は、図4から図6に示すサーバ130における記憶部133に格納された機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3と同様のものであり、ここでは説明を省略する。
 (短距離無線通信部)
 端末装置200(1)(配信元)における短距離無線通信部240は、端末装置200(2)(配信元)および端末装置200(3)~200(n)(非配信元)における短距離無線通信部240と短距離無線通信を行う。また、端末装置200(2)(配信元)における短距離無線通信部240は、端末装置200(1)(配信元)および端末装置200(3)~200(n)(非配信元)における短距離無線通信部240と短距離無線通信を行う。
 ここで、短距離無線通信としては、数メートルから100メートル程度の短距離で通信を行う無線通信を例示でき、例えば、数十メートル~100メートル程度の短距離で通信を行う無線LAN(Local Area Network)通信や、数メートル~数十メートル程度の短距離で通信を行う無線PAN(Personal Area Network)通信を挙げることができる。
 無線LAN通信としては、例えば、WiFi(登録商標)規格に代表されるIEEE802.11規格の無線LAN通信を挙げることができる。無線PAN通信としては、例えば、Bluetooth(登録商標)規格に代表されるIEEE802.15規格の無線PAN通信を挙げることができる。この例では、短距離無線通信部240は、IEEE802.11規格の無線LAN通信を行うようになっている。
 (信号通信部)
 信号通信部250は、作業部111(1)~111(m)における制御装置113(1)~113(m)とCAN規格等の通信規格による通信を行って情報のやりとりを行う。
 (電源制御部)
 電源制御部260は、制御部210に電力を供給する。本実施の形態では、電源制御部260は、起動スイッチSWのオフ状態およびオン状態に関わらず、バッテリーBTに接続されている。具体的には、電源制御部260の入力側電源ライン(図示せず)とバッテリーBTとが電源接続ラインL3によって接続されている。これにより、電源制御部260は、バッテリーBTからの電力が常時供給されるようになっている。
 また、制御部210は、バッテリーBTからの電力が電源制御部260から供給されるようになっている。
 -専用の端末装置(配信元)のソフトウェア構成-
 図9は、図1から図3に示す専用の端末装置200(1),200(2)(配信元)のソフトウェア構成の一例を示すブロック図である。
 図9に示すように、制御部210は、受信制御部Q1と、記憶制御部Q2と、書き換え制御部Q3と、送信制御部Q4とを備える。すなわち、ソフトウェア書き換えプログラムPPは、受信制御部Q1に対応する受信制御ステップと、記憶制御部Q2に対応する記憶制御ステップと、書き換え制御部Q3に対応する書き換え制御ステップと、送信制御部Q4に対応する送信制御ステップとを含むステップを制御部210に実行させる。
 (受信制御ステップ)
 受信制御ステップでは、制御部210は、差分ソースコードDSCを格納した更新用ソフトウェア保存データベースDB3を備えたサーバ130から更新用ソフトウェア保存データベースDB3における差分ソースコードDSCを広域通信網WNおよび広域通信部220を介して受信する。
 詳しくは、受信制御部Q1は、取得制御部Q11を備える。すなわち、受信制御ステップは、取得制御部Q11に対応する取得制御ステップを含んでいる。
 取得制御ステップでは、制御部210は、記憶部230に記憶された、現行のオブジェクトコードOCに対応するソースコードSCに対する差分ソースコードDSCを取得する。すなわち、制御部210は、最新バージョンのオブジェクトコードNOCに対応する最新バージョンのソースコードNSCと、記憶部230に記憶された現行バージョンのソースコードSCとの差分ソースコードDSCを取得する。
 制御部210は、サーバ130から更新用ソフトウェア格納データベースDBにおける機種情報MIおよび機種情報MIに関連付けられた差分ソースコードDSCを広域通信網WNおよび広域通信部220を介して受信する。本実施の形態では、制御部210は、記憶部230において、移動体110(1)~110(n)の機種情報MIを格納した機種情報管理データベースDB1、移動体110(1)~110(n)の機種情報MIに関連付けられた更新用ソフトウェアコードWFWCを制御装置コードCCと共に格納した更新用ソフトウェア管理データベースDB2、および、更新用ソフトウェアコードWFWCに関連付けられた差分ソースコードDSCを格納した更新用ソフトウェア保存データベースDB3を備えたサーバ130から機種情報MIおよび機種情報MIに関連付けられた差分ソースコードDSCを広域通信網WNおよび広域通信部220を介して受信する。
 さらに詳しくは、制御部210は、サーバ130から更新用ソフトウェア格納データベースDBにおける差分ソースコードDSCおよび差分ソースコードDSCの更新情報RIを広域通信網WNおよび広域通信部220を介して受信する。本実施の形態では、制御部210は、サーバ130から更新用ソフトウェアコードWFWCおよび更新用ソフトウェアコードWFWCの更新情報RIを広域通信網WNおよび広域通信部220を介して受信する。
 (記憶制御ステップ)
 記憶制御ステップでは、制御部210は、サーバ130から受信した差分ソースコードDSCを記憶部230に記憶する。
 詳しくは、制御部210は、サーバ130から受信した機種情報MIおよび機種情報MIに関連付けられた差分ソースコードDSCを記憶部230に記憶する。本実施の形態では、制御部210は、記憶部230において、サーバ130から受信した機種情報MIを機種情報管理データベースDB1に記憶し、サーバ130から受信した更新用ソフトウェアコードWFWCを機種情報MIに関連付けて制御装置コードCCと共に更新用ソフトウェア管理データベースDB2に記憶し、サーバ130から受信した差分ソースコードDSCを更新用ソフトウェアコードWFWCに関連付けて更新用ソフトウェア保存データベースDB3に記憶する。
 さらに詳しくは、制御部210は、サーバ130から受信した差分ソースコードDSCおよび更新用ソフトウェアWFWの更新情報RIを記憶部230に記憶する。本実施の形態では、制御部210は、サーバ130から受信した更新用ソフトウェアコードWFWCおよび更新用ソフトウェアコードWFWCの更新情報RIを更新用ソフトウェア管理データベースDB2に記憶する。制御部210は、サーバ130から受信した更新用ソフトウェアコードWFWCおよび更新用ソフトウェアコードWFWCの差分ソースコードDSCを更新用ソフトウェア保存データベースDB3に記憶する。
 (書き換え制御ステップ)
 端末装置200(1),200(2)(配信元)は、移動体110(1),110(2)に設けられている。
 書き換え制御部Q3は、生成制御部Q31と、変換制御部Q32(所謂コンパイラまたはアセンブラ)とを備える。すなわち、書き換え制御ステップは、生成制御部31に対応する生成制御ステップと、変換制御部Q32に対応する変換制御ステップとを含んでいる。
 生成制御ステップでは、制御部210は、取得制御ステップにて取得した差分ソースコードDSC、および、記憶部230に記憶された現行のソースコードSC~SCのうち取得した差分ソースコードDSCに対応する現行のソースコードSCから最新のソースコードNSCを生成する。
 変換制御ステップでは、制御部210は、生成制御ステップにて生成した最新のソースコードNSCを最新のオブジェクトコードNOCに変換する。
 詳しくは、書き換え制御ステップでは、制御部210は、記憶部230に記憶した差分ソースコードDSCのうち相手先の移動体110(i)の機種情報MIに対応する差分ソースコードDSCを特定する。制御部210は、特定した差分ソースコードDSCおよび相手先の移動体110(i)における記憶部230に記憶された現行のソースコードSCから相手先の移動体110(i)に搭載された制御装置113(1)~113(m)の最新のソースコードNSCを生成し(生成制御ステップ)、生成した最新のソースコードNSCを最新のオブジェクトコードNOCに変換(所謂コンパイルまたはアセンブル)する(変換制御ステップ)。後述する送信制御ステップにおいて、制御部210は、変換した最新のオブジェクトコードNOCを相手先の移動体110(i)に搭載された制御装置113(1)~113(m)に送信する。そして、相手先の移動体110(i)において、端末装置(i)または制御装置113(1)~113(m)は、最新のオブジェクトコードNOCを最新のソフトウェアFWとして書き換える。
 また、書き換え制御ステップでは、制御部210は、記憶部230に記憶した差分ソースコードDSCのうち自身の移動体110(1),110(2)の機種情報MIに対応する差分ソースコードDSCを特定する。制御部210は、特定した差分ソースコードDSCおよび自身の移動体110(1),110(2)における記憶部230に記憶された現行のソースコードSCから自身の移動体110(1),110(2)に搭載された制御装置113(1)~113(m)の最新のソースコードNSCを生成し(生成制御ステップ)、生成した最新のソースコードNSCを最新のオブジェクトコードNOCに変換(所謂コンパイルまたはアセンブル)する(変換制御ステップ)。送信制御ステップにおいて、制御部210は、変換した最新のオブジェクトコードNOCを自身の移動体110(1),110(2)に搭載された制御装置113(1)~113(m)に送信する。そして、自身の移動体110(1),110(2)において、端末装置(i)または制御装置113(1)~113(m)は、最新のオブジェクトコードNOCを最新のソフトウェアFWとして書き換える。
 なお、専用の端末装置200(2)(配信元)は、端末装置200(1)(配信元)から最新のオブジェクトコードNOCを受信してもよいし、生成制御部Q31および変換制御部Q32を有することから、制御装置113(1)~113(m)のソースコードSC~SC、差分ソースコードDSCを受信してもよい。また、同様に、専用の端末装置200(1)(配信元)は、端末装置200(2)(配信元)から最新のオブジェクトコードNOCを受信してもよいし、生成制御部Q31および変換制御部Q32を有することから、制御装置113(1)~113(m)のソースコードSC~SC、差分ソースコードDSCを受信してもよい。
 (送信制御ステップ)
 送信制御ステップでは、制御部210は、差分ソースコードDSCを用いて変換した最新のオブジェクトコードNOCを、他の移動体110(i)に短距離無線通信部240および短距離無線通信網LNを介して送信する、および/または、自身の移動体110(1),110(2)における制御装置113(1)~113(m)に送信する。
 また、送信制御ステップでは、制御部210は、記憶部230に記憶した差分ソースコードDSCを移動体110(2),110(1)(配信元)に短距離無線通信部240および短距離無線通信網LNを介して送信する。
 詳しくは、制御部210は、記憶部230に記憶した機種情報MIのうち相手先の移動体110(i)の機種情報MIを特定し、記憶部230に記憶した差分ソースコードDSC~DSCのうち相手先の移動体110(i)の機種情報MIに対応する差分ソースコードDSC、または、差分ソースコードDSCを用いて変換した最新のオブジェクトコードNOCを相手先の移動体110(i)に短距離無線通信部240および短距離無線通信網LNを介して送信する。本実施の形態では、制御部210は、機種情報管理データベースDB1に記憶した機種情報MIのうち相手先の移動体110(i)の機種情報MIを特定する。このとき、制御部210は、相手先の移動体110(i)とは通信状態となっており、相手先の移動体110(i)の機種情報MIを取得している。また、制御部210は、更新用ソフトウェア管理データベースDB2に記憶した更新用ソフトウェアコードWFWCのうち特定した相手先の移動体110(i)の機種情報MIに対応する更新用ソフトウェアコードWFWCを特定する。そして、制御部210は、更新用ソフトウェア保存データベースDB3に記憶した差分ソースコードDSCのうち特定した更新用ソフトウェアコードWFWCに対応する差分ソースコードDSCを相手先の移動体110(i)に短距離無線通信部240および短距離無線通信網LNを介して送信する。
 ここで、制御部210は、差分ソースコードDSCを相手先の移動体110(i)に送信するに先立って、記憶部230に記憶した差分ソースコードDSCの更新情報RIを相手先の移動体110(i)に短距離無線通信部240および短距離無線通信網LNを介して送信してもよい。
 こうすることで、相手先の移動体110(i)において、制御装置113(1)~113(m)の書き換え前のソフトウェアFWのバージョンVR等の更新情報RIと更新用ソフトウェアWFWのバージョンVR等の更新情報RIとを照合することができる。そして、制御装置113(1)~113(m)の書き換え前のソフトウェアFWが最新のものか否かを判断し、最新のものではないと判断した場合には、端末装置200(1)(配信元)または端末装置200(2)(配信元)に差分ソースコードDSCを要求する一方、最新のものであると判断した場合には、端末装置200(1)(配信元)または端末装置200(2)(配信元)に差分ソースコードDSCを要求しないようにすることができる。これにより、差分ソースコードDSCを相手先の移動体110(i)に送信する前に、相手先の移動体110(i)において、事前に制御装置113(1)~113(m)のソフトウェアFWが最新のものか否かを認識することができ、従って、差分ソースコードDSCの相手先の移動体110(i)への無駄な送信動作を省くことができる。
 また、制御部210は、差分ソースコードDSCを相手先の移動体110(i)に送信するに先立って、相手先の移動体110(i)における制御装置113(1)~113(m)の書き換え前のソフトウェアFWの更新情報RIを相手先の移動体110(i)から受信してもよい。そして、制御部210は、受信したソフトウェアFWのバージョンVR等の更新情報RIと記憶部230に記憶した差分ソースコードDSCのバージョンVR等の更新情報RIとを照合し、制御装置113(1)~113(m)の書き換え前のソフトウェアFWが最新のものか否かを判断し、最新のものではないと判断した場合には、相手先の移動体110(i)に差分ソースコードDSCを送信する一方、最新のものであると判断した場合には、相手先の移動体110(i)に差分ソースコードDSCを送信しないようにしてもよい。
 こうすることで、更新用ソフトウェアWFWを相手先の移動体110(i)に送信する前に、端末装置200(1)(配信元)または端末装置200(2)(配信元)において、事前に制御装置113(1)~113(m)のソフトウェアFWが最新のものか否かを認識することができ、従って、差分ソースコードDSCの相手先の移動体110(i)への無駄な送信動作を省くことができる。
 ところで、全種類の移動体110(1)~110(n)、全機種の移動体110(1)~110(n)に対して機種情報MIに関連付けられた差分ソースコードDSCを記憶部230に記憶すると、それだけデータ量、ひいては記憶部230の記憶容量および通信時間が大きくなる。
 かかる観点から、更新用ソフトウェア格納データベースDBは、移動体110(1)~110(n)の管轄エリアを示すエリア情報AR(後述する図10および図11参照)を端末装置200(1),200(2)(配信元)の端末識別情報ID(図11参照)に関連付けて格納している。ここで、端末装置200(1)~200(n)の端末識別情報IDとしては、端末装置200(1)~200(n)を一意に区別できるものであれば、何れのものであってもよく、それには限定されないが、シリアル番号や電話番号を例示できる。
 図10は、図4に示す機種情報管理データベースDB1においてエリア情報ARを追加したデータ構造の一例を示す模式図である。図11は、サーバ130に備えられた記憶部133における更新用ソフトウェア格納データベースDBを構成するエリア情報管理データベースDB4のデータ構造の一例を示す模式図である。
 更新用ソフトウェア格納データベースDBは、移動体110(1)~110(n)の管轄エリアを示すエリア情報ARを端末装置200(1),200(2)(配信元)の端末識別情報IDに関連付けて格納している。
 本実施の形態では、更新用ソフトウェア格納データベースDBは、エリア情報管理データベースDB4をさらに備えている。また、図4に示す機種情報管理データベースDB1においてエリア情報ARが追加されている。
 エリア情報管理データベースDB4には、端末装置200(1),200(2)の端末識別情報ID(配信元)と、エリア情報ARと、端末装置200(1),200(2)(配信元)に対して登録された端末装置〔200(2)~200(n)〕,〔200(1),200(3)~200(n)〕の端末識別情報RIDと、機種コードMCとが登録されている。
 ここで、エリア情報管理データベースDB4において、端末装置200(1)~200(n)の移動体110(1)~110(n)における最新バージョンの更新有無RVRは、制御装置113(1)~113(m)のソフトウェアFWが最新バージョンに更新されていないときには「更新無」(具体的にはフラグ「0」)を記録している。そして、サーバ130は、最新バージョンに更新されると、更新された端末装置200(i)から最新バージョンに更新された旨の情報を受信し、更新された端末装置200(i)の移動体110(i)の機種コードMCに対応する最新バージョンの更新有無RVRを「更新有」(具体的にはフラグ「1」)にする。
 なお、サーバ130および/または端末装置200(1),200(2)(配信元)は、エリア情報管理データベースDB4の機種コードMC(例えばWRK1)に対して最新バージョンの更新有無RVRが全て「更新有」となった場合には、更新用ソフトウェア保存データベースDB3において、全て「更新有」となった機種コードMC(例えばWRK1)に対応する差分ソースコードDSCを削除するようにしてもよい。
 そして、新しいバージョンのソフトウェアFWが開発された場合には、エリア情報管理データベースDB4において、随時、最新バージョンの更新有無RVRを「更新無」(具体的にはフラグ「0」)にする(リセットする)。
 受信制御ステップでは、制御部210は、サーバ130から更新用ソフトウェア格納データベースDBにおける端末装置200(1),200(2)(配信元)の端末識別情報IDに関連付けられたエリア情報ARの機種情報MIおよび機種情報MIに関連付けられた差分ソースコードDSCを広域通信網WNおよび広域通信部220を介して受信する。本実施の形態では、制御部210は、サーバ130から端末装置200(1),200(2)(配信元)の端末識別情報IDに関連付けられたエリア情報ARの機種情報MIおよび機種情報MIに関連付けられた差分ソースコードDSCを広域通信網WNおよび広域通信部220を介して受信する。
 記憶制御ステップでは、制御部210は、サーバ130から受信したエリア情報ARの機種情報MIおよび機種情報MIに関連付けられた差分ソースコードDSCを記憶部230に記憶する。本実施の形態では、制御部210は、記憶部230において、サーバ130から受信した端末装置200(1),200(2)(配信元)の端末識別情報IDに関連付けられたエリア情報ARの機種情報MIを機種情報管理データベースDB1(図10参照)に記憶する。制御部210は、記憶部230において、サーバ130から受信した更新用ソフトウェアコードWFWCを機種情報MIに関連付けて制御装置コードCCと共に更新用ソフトウェア管理データベースDB2(図5参照)に記憶する。制御部210は、記憶部230において、サーバ130から受信した差分ソースコードDSCを更新用ソフトウェアコードWFWCに関連付けて更新用ソフトウェア保存データベースDB3(図6参照)に記憶する。本構成によって制御部210は、自身と同一のエリア情報ARを有する機種に関連する更新用ソフトウェアWFWを選択的に記憶することが可能となる。
 〔専用の端末装置(非配信元)〕
 図3に示すように、端末装置200(3)~200(n)(非配信元)は、端末装置200(1),200(2)(配信元)において、他の移動体110(i)の機種情報MIを持たない差分ソースコードDSCを有している。詳しくは、端末装置200(3)~200(n)(非配信元)は、更新用ソフトウェア管理データベースDB2、および、他の移動体110(i)の機種情報MIを持たない差分ソースコードDSCを格納した更新用ソフトウェア保存データベースDB3を有しているものの、機種情報管理データベースDB1およびエリア情報管理データベースDB4は有していない。
 [第2実施形態]
 図12から図14は、第2実施形態に係るソフトウェア書き換えシステム100の一例を模式的に示す概略構成図である。
 図12は、汎用の端末装置300が広域通信網WNを介してサーバ130と通信している状態を示す模式図である。図13は、図12に示すソフトウェア書き換えシステム100において、サーバ130と通信した汎用の端末装置300が短距離無線通信網LNを介して配信元になり得る専用の端末装置200(1)と通信している状態を示す模式図である。図14は、図12に示すソフトウェア書き換えシステム100において、サーバ130と通信した汎用の端末装置300が短距離無線通信網LNを介して実質的に配信元になれない専用の端末装置200(3)と通信している状態を示す模式図である。
 第2実施形態に係るソフトウェア書き換えシステム100は、第1実施形態に係るソフトウェア書き換えシステム100において、汎用の端末装置300を備えたものである。
 次に、汎用の端末装置300のシステム構成について図12から図14を参照しながら以下に説明する。
 〔汎用の端末装置〕
 -汎用の端末装置のハードウェア構成-
 図12から図14に示すように、端末装置300は、制御部310(コンピュータの一例)と、広域通信部320と、記憶部330と、短距離無線通信部340と、ユーザインタフェース部350とを備えている。なお、端末装置300は、複数あってもよい。
 ここで、汎用の端末装置300は、例えば、タブレット型コンピュータやスマートフォン等の多機能通信携帯端末装置とされている。端末装置200(1)~200(n)の端末識別情報IDとしては、端末装置200(1)~200(n)を一意に区別できるものであれば、何れのものであってもよく、それには限定されないが、シリアル番号、国際移動体装置識別番号(IMEI:International Mobile Equipment Identifier番号)や電話番号を例示できる。
 (制御部)
 制御部310は、CPU(Central Processing Unit)等のいわゆるコンピュータからなる処理装置310aと、ROM(Read Only Memory)、RAM(Random Access Memory)等の揮発性メモリを含むメモリ装置310bとを有している。
 制御部310は、記憶部330に予め格納(インストール)されたソフトウェア書き換えプログラムPP等のプログラムを実行することによって、制御部310に必要な各種の機能を実現するように構成されている。詳しくは、制御部310は、処理装置310aが記憶部330に予め格納されたソフトウェア書き換えプログラムPP等のプログラムをメモリ装置310bのRAM上にロードして実行することにより、各種の処理を行うようになっている。メモリ装置310bのRAMは、制御部310に対して作業用のワークエリアを提供する。
 本実施の形態では、制御部310は、通信時におけるデータの送受信、各種の入出力制御および演算処理の制御を行う。
 (広域通信部)
 広域通信部320は、制御部310のデータラインに電気的に接続されている。広域通信部320は、制御部310の指示の下、サーバ130の広域通信部132(図12参照)と同一の通信プロトコル(通信規約)で通信可能とされている。通信時に送受信されるデータは、通信プロトコルに従うように広域通信部320で変換される。広域通信部320は、サーバ130の記憶部133に記録された移動体110(1)~110(n)における制御装置113(1)~113(m)のソフトウェアFWに関する情報をサーバ130から受信する。
 (記憶部)
 記憶部330は、制御部310のデータラインに電気的に接続されている。記憶部330は、制御部310の指示の下、情報が書き込み制御および読み出し制御される。記憶部330は、この例では、フラッシュメモリ等の大容量記憶装置とされている。ここで、記憶部330には、ソフトウェア書き換えプログラムPPが予め格納(インストール)される。
 なお、ソフトウェア書き換えプログラムPPは、この例では、タブレット型コンピュータやスマートフォン等の多機能通信携帯端末装置等に用いられるプログラム、所謂アプリと称されるものであり、図示しないプログラムサーバからインターネット等の通信手段を介してダウンロードされたものである。
 記憶部330には、機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3が格納される。
 機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3のデータ構造は、図4から図6に示すサーバ130における記憶部133に格納された機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3と同様のものであり、ここでは説明を省略する。
 (短距離無線通信部)
 端末装置300における短距離無線通信部340は、端末装置200(1)~200(n)における短距離無線通信部240と短距離無線通信を行う。
 (ユーザインタフェース部)
 ユーザインタフェース部350は、ディスプレイ装置等の出力装置やタッチパネル等の入力装置を含んでいる。ユーザインタフェース部350では、典型的には、ソフトウェア書き換えプログラムPPの起動制御や、進捗情報の表示などが可能である。
 -汎用の端末装置のソフトウェア構成-
 図15は、図12から図14に示す汎用の端末装置300のソフトウェア構成の一例を示すブロック図である。
 図15に示すように、制御部310は、受信制御部Q1と、記憶制御部Q2と、書き換え制御部Q3と、送信制御部Q4とを備える。すなわち、ソフトウェア書き換えプログラムPPは、受信制御部Q1に対応する受信制御ステップと、記憶制御部Q2に対応する記憶制御ステップと、書き換え制御部Q3に対応する書き換え制御ステップと、送信制御部Q4に対応する送信制御ステップとを含むステップを制御部310に実行させる。
 送信制御ステップでは、制御部310は、最新のオブジェクトコードNOCを生成制御部Q31および変換制御部Q32を有するか否かに関わらず移動体110(1)~110(n)に短距離無線通信部340および短距離無線通信網LNを介して送信する。
 送信制御ステップでは、制御部310は、差分ソースコードDSCを生成制御部Q31および変換制御部Q32を有する移動体110(1),110(2)に短距離無線通信部340および短距離無線通信網LNを介して送信する。
 なお、これ以外の制御部310で行う受信制御ステップおよび記憶制御ステップの処理は、前述した専用の端末装置200(1),200(2)における制御部210の受信制御ステップおよび記憶制御ステップの処理と同様であり、ここでは説明を省略する。
 また、第1実施形態に係るソフトウェア書き換えシステム100の構成と、第2実施形態に係るソフトウェア書き換えシステム100の構成とを組み合わせてもよい。
 [ソフトウェア書き換えシステムにおけるソフトウェア書き換え処理]
 次に、ソフトウェア書き換えシステム100におけるソフトウェア書き換え処理の一例について図16から図20を参照しながら以下に説明する。
 図16は、サーバ130と専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300とが広域通信網WNを介して通信している例(ダウンロード処理の一例)を示すフローチャーである。図17は、サーバ130と通信した専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300と専用の端末装置200(2),200(1)(配信元)とが短距離無線通信網LNを介して通信している例(配信処理の一例)を示すフローチャートである。また、図18は、サーバ130と通信した専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300と専用の端末装置200(3)~200(n)(非配信元)とが短距離無線通信網LNを介して通信している例(配信処理の他の例)を示すフローチャートである。
 なお、図16および図17に示す処理例では、エリア情報管理データベースDB4(図11参照)の端末装置200(1),200(2)(配信元)の端末識別情報IDに関連付けられたエリア情報ARを追加した機種情報管理データベースDB1(図10参照)を用いた場合を例にとって説明する。
 -図16に示すダウンロード処理の処理例-
 図16に示すソフトウェア書き換え処理のフローチャートでは、先ず、サーバ130における制御部131は、広域通信部132から広域通信網WNを介して専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300(以下、単に端末装置200,300ということがある。)と通信を確立し(ステップSs1)、端末装置200,300からの通信を待ち受けて(ステップSs2)、端末装置200,300からの応答があるまで(ステップSs2:No)待機する。
 一方、端末装置200,300における制御部210,310は、十分な通信インフラが整っている地域において、広域通信部220,320から広域通信網WNを介してサーバ130と通信を確立し(ステップSt11)、サーバ130からの通信を待ち受けて(St12)、サーバ130からの応答があるまで(ステップSt12:No)待機する。
 次に、サーバ130における制御部131は、端末装置200,300からの応答があると(ステップSs2:Yes)、端末装置200,300の端末識別情報IDに関連付けられたエリア情報ARの移動体110の機種情報MIおよび更新用ソフトウェアWFWの更新情報RIについて端末装置200,300と同期し(ステップSs3)、更新用ソフトウェアWFWを含む情報を端末装置200,300に送信する(ステップSs4)。
 詳しくは、サーバ130における制御部131は、端末装置200,300の端末識別情報IDを受信し、記憶部133から、端末装置200,300の端末識別情報IDに関連付けられたエリア情報AR(例えば端末識別情報IDが#7777の場合、エリア情報がA4:図11参照)の機種情報MI(例えばエリア情報がA4の場合、機種コードがBT1,…:図10参照)および機種情報MIに関連付けられた更新用ソフトウェアWFW(例えば機種コードがBT1,…の場合、更新用ソフトウェアコードBT1ECU1FW1,…:図5参照の差分ソースコードBT1ECU1FW10_11.TXT,…:図6参照)を読み出し、これらの情報を広域通信網WNおよび広域通信部220,320を介して端末装置200,300へ送信する。
 すなわち、サーバ130における制御部131は、エリア情報ARに対応するデータを格納した機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3を広域通信網WNおよび広域通信部220,320を介して端末装置200,300へ送信する。
 一方、端末装置200,300における制御部210,310は、サーバ130からの応答があると(ステップSt12:Yes)、端末装置200,300の端末識別情報IDに関連付けられたエリア情報ARの移動体110の機種情報MIおよび更新用ソフトウェアWFWの更新情報RIについてサーバ130と同期し(ステップSt13)、個々の移動体110について制御装置113(1)~113(m)のソフトウェアFWが最新のもの(例えば最新バージョンまたは最新年月日時刻のもの)でない場合には(ステップSt14:No)、更新用ソフトウェアWFWを含む情報を受信し(ステップSt15)、受信した情報を記憶部230,330に記憶する。
 詳しくは、端末装置200,300における制御部210,310は、サーバ130から端末装置200,300の端末識別情報IDに関連付けられたエリア情報AR(例えば端末識別情報IDが#7777の場合、エリア情報がA4:図11参照)の機種情報MI(例えばエリア情報がA4の場合、機種コードがBT1,…:図10参照)および機種情報MIに関連付けられた更新用ソフトウェアWFW(例えば機種コードがBT1,…の場合、更新用ソフトウェアコードBT1ECU1FW1,…:図5参照の差分ソースコードBT1ECU1FW10_11.TXT,…:図6参照)を広域通信網WNおよび広域通信部220,320を介して受信し、受信した情報を記憶部230,330に記憶する。
 すなわち、端末装置200,300における制御部210,310は、エリア情報ARに対応するデータを格納した機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3を広域通信網WNおよび広域通信部220,320を介してサーバ130から受信(ダウンロード)し、受信した情報を記憶部230,330に記憶する。
 そして、ダウンロード先の移動体110(1),110(2)では、自身の端末装置200(1),200(2)において、制御装置113(1)~113(m)のソフトウェアFWが最新のもの(例えば最新バージョンまたは最新年月日時刻のもの)でない場合には、制御部210又は自身に搭載されている制御装置113(1)~113(m)は、更新用ソフトウェアWFWに基づいて制御装置113(1)~113(m)のソフトウェアFWを書き換える。
 -図17および図18に示す配信処理の処理例-
 図17および図18に示すソフトウェア書き換え処理のフローチャートでは、先ず、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300における制御部210,310(図17および図18中の左側参照)は、短距離無線通信網LNが設置されている地域において、短距離無線通信部240,340から短距離無線通信網LNを介して専用の端末装置200(2),200(1)(配信元)(図17参照)および専用の端末装置200(3)~200(n)(非配信元)(図18参照)と通信を確立し(ステップSt21)、専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)からの通信を待ち受けて(St22)、専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)からの応答があるまで(ステップSt22:No)待機する。
 一方、専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)における制御部210(図17および図18中の右側参照)は、短距離無線通信部240,340から短距離無線通信網LNを介して専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300と通信を確立し(ステップSt31)、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300からの通信を待ち受けて(St32)、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300からの応答があるまで(ステップSt32:No)待機する。
 次に、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300における制御部210,310(図17および図18中の左側参照)は、専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)からの応答があると(ステップSs22:Yes)、移動体110の機種情報MIおよび更新用ソフトウェアWFWの更新情報RIについて専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)と同期し(ステップSs23)、更新用ソフトウェアWFWを含む情報を送信する(ステップSs24)。
 詳しくは、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300における制御部210,310は、記憶部230,330から、機種情報MIおよび機種情報MIに関連付けられた更新用ソフトウェアWFWを読み出し、これらの情報を短距離無線通信網LNおよび短距離無線通信部240,340を介して専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)へ送信する。
 すなわち、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300における制御部210,310(図17参照)は、機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3を短距離無線通信網LNおよび短距離無線通信部240,340を介して専用の端末装置200(2),200(1)(配信元)へ送信する。また、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300における制御部210,310(図18参照)は、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3を短距離無線通信網LNおよび短距離無線通信部240,340を介して専用の端末装置200(3)~200(n)(非配信元)へ送信する。
 一方、専用の端末装置200(2),200(1)(配信元)および専用の端末装置200(3)~200(n)(非配信元)における制御部210(図17および図18中の右側参照)は、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300からの応答があると(ステップSt32:Yes)、移動体110(1)~110(n)の機種情報MIおよび更新用ソフトウェアWFWの更新情報RIについて専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300と同期し(ステップSt33)、制御装置113(1)~113(m)のソフトウェアFWが最新のもの(例えば最新バージョンまたは最新年月日時刻のもの)でない場合には(ステップSt34:No)、更新用ソフトウェアWFWを含む情報を受信し(ステップSt35)、受信した情報を記憶部230に記憶する。
 詳しくは、専用の端末装置200(2),200(1)(配信元)(図17参照)は、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300から機種情報MIおよび機種情報MIに関連付けられた更新用ソフトウェアWFWを短距離無線通信網LNおよび短距離無線通信部240,340を介して受信し、受信した情報を記憶部230に記憶する。また、専用の端末装置200(3)~200(n)(非配信元)は、専用の端末装置200(1),200(2)(配信元)および/または汎用の端末装置300から更新用ソフトウェアWFWを短距離無線通信網LNおよび短距離無線通信部240,340を介して受信し、受信した情報を記憶部230に記憶する。
 すなわち、専用の端末装置200(2),200(1)(配信元)(図17参照)は、機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3を記憶部230に記憶する。また、専用の端末装置200(3)~200(n)(非配信元)は、更新用ソフトウェア管理データベースDB2および更新用ソフトウェア保存データベースDB3を記憶部230に記憶する。
 そして、配信先の移動体110(1)~110(n)では、端末装置200(1)~200(n)において、制御装置113(1)~113(m)のソフトウェアFWが最新のもの(例えば最新バージョンまたは最新年月日時刻のもの)でない場合には、制御部210又は移動体110(1)~110(n)に搭載されている制御装置113(1)~113(m)は、更新用ソフトウェアWFWに基づいて制御装置113(1)~113(m)のソフトウェアFWを書き換える。
 図19および図20は、図1から図11に示す第1実施形態のソフトウェア書き換えシステム100におけるソフトウェア書き換え処理の一例を示すフローチャートである。図19は、その前半部分の処理例を示しており、図20は、その後半部分の処理例を示している。
 図19および図20に示す処理例では、サーバ130を据え置き型のコンピュータとし、専用の端末装置200(1)(配信元)において最新のオブジェクトコードNOCを生成し、生成した最新のオブジェクトコードNOCを用いて移動体110(1)の自身に搭載されている制御装置113に対してソフトウェアFWを書き換える場合を例にとって説明する。
 図19に示すように、先ず、ステップS1では、制御装置113の開発者は、制御装置113のソフトウェアFWの最新バージョンのソースコードSCをサーバ130に登録操作を行い、ステップS1.1では、サーバ130は、登録操作されたソフトウェアFWのソースコードSCを記憶部133に保管する。このとき、サーバ130は、ソースコードSCが不正な場合には、記憶部133に保管しない。
 次に、ステップS1.2では、サーバ130は、登録したソフトウェアFWのソースコードSCおよび過去の1又は複数の旧バージョンのソースコードSCから最新バージョンの旧バージョンに対する差分ソースコードDSCを生成し、生成した差分ソースコードDSCを更新用ソフトウェア保存データベースDB3に保管する。
 次に、ステップS2では、サーバ130の管理者、システムは、制御装置113のソフトウェアFWを最新バージョンのソフトウェアFWに書き換えるようにサーバ130に指示する。
 次に、ステップS2.1では、サーバ130は、サーバ130の管理者、システムからの書き換え指示に対する状態を管理し、ステップS2.2では、サーバ130は、端末装置200(1)への接続を要求する。このとき、サーバ130は、端末装置200(1)への接続要求に対し、端末装置200(1)から接続がない場合、リトライを行う。また、サーバ130は、一定回数リトライしても端末装置200(1)からの接続がない場合は、書き換え動作を一時中断し、端末装置200(1)からサーバ130に起動したことが伝えられたとき、再度接続要求を行う。
 次に、ステップS2.2.1では、端末装置200(1)は、サーバ130からの接続要求に対し、接続を実施する。このとき、端末装置200(1)は、一定時間以内にサーバ130から肯定応答がない場合、リトライを行う。端末装置200(1)は、一定回数リトライしてもサーバ130から肯定応答がない場合、接続を終了する。また、端末装置200(1)は、サーバ130から否定応答が返された場合、接続を終了する。
 また、ステップS2.2.1では、サーバ130は、端末装置200(1)からの接続に対し、肯定応答する。このとき、サーバ130は、不正な端末装置から接続された場合、応答しない。
 次に、ステップS3では、端末装置200(1)は、制御装置113に差分ソースコードDSCの送付指示を送信する。このとき、端末装置200(1)は、制御装置113からソフトウェアFWのバージョンVRが送信されない場合、もしくは、制御装置113から不正なソフトウェアのバージョンが送信された場合、サーバ130との接続を終了する。
 また、ステップS3では、制御装置113は、端末装置200(1)にソフトウェアFWのバージョンVRを送信(ソフトウェアFWの送付指示を応答)する。このとき、制御装置113は、不正な端末装置からの指示には応答しない。
 次に、ステップS4では、端末装置200(1)は、サーバ130に制御装置113のソフトウェアFWのバージョンVRを送信する。このとき、端末装置200(1)は、一定時間以内にサーバ130から肯定応答がない場合、リトライを行う。端末装置200(1)は、一定回数リトライしてもサーバ130から肯定応答がない場合、サーバ130との接続を終了する。また、端末装置200(1)は、サーバ130から否定応答が返された場合、サーバ130との接続を終了する。
 また、ステップS4では、サーバ130は、端末装置200(1)からのソフトウェアFWのバージョンVRの送信に対し、肯定応答する。このとき、サーバ130は、受信したソフトウェアFWのバージョンVRが不正な場合、否定応答する。また、サーバ130は、一定時間以内に端末装置200(1)からソフトウェアFWのバージョンVRが送信されない場合、端末装置200(1)との接続を終了する。
 次に、ステップS2.3では、サーバ130は、保有する差分ソースコードDSCから、端末装置200(1)に送信するものを選択する。
 次に、ステップS2.4では、サーバ130は、差分ソースコードDSCを、書き換え先の制御装置113が紐付いている端末装置200(1)へ送信する。このとき、サーバ130は、一定時間以内に端末装置200(1)から肯定応答がない場合、リトライを行う。サーバ130は、一定回数リトライしても端末装置200(1)から肯定応答がない場合、書き換え動作を断念する(書き換え状態:失敗とする)。また、サーバ130は、端末装置200(1)から否定応答が返された場合、書き換え動作を断念する(書き換え状態:失敗とする)。
 次に、ステップS2.4.1では、端末装置200(1)は、サーバ130から送信された差分ソースコードDSCを自身が保有するソースコードSCに反映させ、最新のソースコードNSCを生成する。このとき、端末装置200(1)は、一定時間以内にサーバ130から差分ソースコードDSCが送信されない場合、サーバ130との接続を終了する。
 次に、ステップS2.4.2では、端末装置200(1)は、生成した最新のソースコードNSCを最新のオブジェクトコードNOCに変換し(この例ではコンパイルし)、最新のオブジェクトコードNOCを生成する。このとき、端末装置200(1)は、変換結果(この例ではコンパイル結果)が不可(NG)の場合、サーバ130へ否定応答する。
 また、ステップS2.4では、端末装置200(1)は、サーバ130からの差分ソースコードDSCの送信に対し、肯定応答する。このとき、端末装置200(1)は、変換結果(この例ではコンパイル結果)が不可(NG)の場合、サーバ130へ否定応答する。
 図20に示すように、次に、ステップS2.5では、サーバ130は、端末装置200(1)への接続終了を指示する。このとき、サーバ130は、一定時間以内に端末装置200(1)から応答がない場合、通信を終了する。
 また、ステップS2.5では、端末装置200(1)は、サーバ130からの接続終了の指示に対し、肯定応答する。
 次に、ステップS2.6では、サーバ130は、サーバ130の管理者、システムからの書き換え指示に対する状態を管理する。
 次に、ステップS5では、端末装置200(1)は、制御装置113に書き換え指示を送信する。このとき、端末装置200(1)は、一定時間以内に制御装置113から肯定応答がない場合、リトライを行う。端末装置200(1)は、一定回数リトライしても制御装置113から肯定応答がない場合、書き換えを断念し、書き換え失敗をサーバ130に連絡する。また、端末装置200(1)は、書き換え指示に対し、否定応答が返された場合、書き換えを断念し、書き換え失敗をサーバ130に連絡する。サーバ130は、書き換え失敗の連絡を受けると、エリア情報管理データベースDB4における最新バージョンの更新有無RVR(図11参照)を「更新無」(具体的にはフラグ「0」)にする。
 また、ステップS5では、制御装置113は、端末装置200(1)からの書き換え指示に対し、肯定応答する。このとき、制御装置113は、不正な端末装置からの指示には応答しない。
 次に、ステップS6では、端末装置200(1)は、制御装置113に、生成した最新のオブジェクトコードNOCを送信する。このとき、端末装置200(1)は、制御装置113から否定応答を返された場合、書き換え失敗をサーバ130に連絡する。サーバ130は、書き換え失敗の連絡を受けると、エリア情報管理データベースDB4における最新バージョンの更新有無RVR(図11参照)を「更新無」(具体的にはフラグ「0」)にする。
 次に、ステップS6.1では、制御装置113は、端末装置200(1)から送信されてきた最新のオブジェクトコードNOCを書き換える。このとき、制御装置113は、最新のオブジェクトコードNOCの書き換えに失敗した場合は、否定応答を返す。
 また、ステップS6では、制御装置113は、端末装置200(1)からの最新のオブジェクトコードNOCの送信に対し、肯定応答する。このとき、制御装置113は、不正な端末装置からの指示には応答しない。また、制御装置113は、最新のオブジェクトコードNOCの書き換えに失敗した場合は、否定応答を返す。
 次に、ステップS7では、端末装置200(1)は、サーバ130との接続を実施する。このとき、端末装置200(1)は、一定時間以内にサーバ130から肯定応答がない場合、リトライを行う。端末装置200(1)は、一定回数リトライしてもサーバ130から肯定応答がない場合、サーバ130との接続を終了する。また、端末装置200(1)は、サーバ130から否定応答が返された場合、サーバ130との接続を終了する。
 また、ステップS7では、サーバ130は、端末装置200(1)からの接続に対し、肯定応答する。このとき、サーバ130は、不正な端末装置から接続された場合、応答しない。
 次に、ステップS8では、端末装置200(1)は、書き換え完了をサーバ130に連絡する。サーバ130は、書き換え完了の連絡を受けると、エリア情報管理データベースDB4における最新バージョンの更新有無RVR(図11参照)を「更新有」(具体的にはフラグ「1」)にする。このとき、端末装置200(1)は、書き換えに失敗した場合は、書き換え失敗をサーバ130に連絡する。サーバ130は、書き換え失敗の連絡を受けると、エリア情報管理データベースDB4における最新バージョンの更新有無RVR(図11参照)を「更新無」(具体的にはフラグ「0」)にする。
 次に、ステップS8.1では、サーバ130は、サーバ130の管理者、システムからの書き換え指示に対する状態を管理する。
 また、ステップS8では、サーバ130は、端末装置200(1)からの書き換え完了連絡に対し、肯定応答する。このとき、サーバ130は、端末装置200(1)からの書き換え完了連絡が不正だった場合、書き換え状態を失敗とし、否定応答を返す。
 次に、ステップS9では、サーバ130は、端末装置200(1)への接続終了を指示する。このとき、サーバ130は、一定時間以内に端末装置200(1)から応答がない場合、通信を終了する。
 また、ステップS9では、端末装置200(1)は、サーバ130からの接続終了の指示に対し、肯定応答する。
 なお、以上説明した処理例では、最新のオブジェクトコードNOCの制御装置113への書き換えを、端末装置200(1)の移動体110(1)における制御装置113に行ったが、それに代えて或いは加えて、端末装置200(1)と短距離無線通信を行って他の端末装置200(2)~200(n)の移動体110(2)~110(n)における制御装置113に行ってもよい。また、専用の端末装置200(1)に代えて或いは加えて汎用の端末装置300を用いてもよい。汎用の端末装置300を用いる場合、移動体110(1)~110(n)における制御装置113のオブジェクトコードOCを最新のオブジェクトコードNOCに書き換えることができる。複数の制御装置113(1)~113(m)に対しても同様にソフトウェアFWの書き換え処理を行うことができる。また、オブジェクトコードNOCに代えて他の端末装置200(2)(配信元)に差分ソースコードDSCを送信してもよい。また、サーバ130と広域通信を行った端末装置を、専用の端末装置200(1)(配信元)としたが、専用の端末装置200(2)(配信元)としてもよい。また、サーバ130を据え置き型としたが、専用の端末装置200(1),200(2)および/または汎用の端末装置300としてもよい。
 (本実施の形態について)
 本実施の形態[第1実施形態に係る端末装置200(1),200(2)および第2実施形態に係る端末装置300]によれば、差分ソースコードDSCを用いるので、送信時間〔この例ではサーバ130から端末装置200(1)~200(n)に制御装置113(1)~113(m)のソフトウェアFWを送信するための送信時間〕の短縮化を実現させることができる。しかも、差分ソースコードDSCおよび現行のソースコードSCから最新のソースコードNSCを生成し、生成した最新のソースコードNSCを最新のオブジェクトコードNOCに変換し、変換した最新のオブジェクトコードNOCを制御装置113~113に送信するので、ソフトウェアFWの差分から最新バージョンのソフトウェアFWを容易に生成することができ、これにより、制御装置113~113で最新バージョンのソフトウェアFWを確実に実行することが可能となる。
 また、制御装置113~113は、移動体110(1)~110(n)に搭載されていることで、送信時間〔この例ではサーバ130から端末装置200(1)~200(n)に移動体110(1)~110(n)に搭載された制御装置113(1)~113(m)のソフトウェアFWを送信するための送信時間〕の短縮化を実現させることができる。しかも、変換した最新のオブジェクトコードNOCを制御装置113~113に送信するので、ソフトウェアFWの差分から最新バージョンのソフトウェアFWを容易に生成することができ、これにより、移動体110(1)~110(n)に搭載された制御装置113~113で最新バージョンのソフトウェアFWを確実に実行することが可能となる。
 第1実施形態〔この例では移動体に設けられた専用の端末装置200(1),200(2)〕では、移動体110(1),110(2)に設けられ、移動体110(1),110(2)とは他の移動体[この例では〔110(2)~110(n)〕,〔110(1),110(3)~110(n)〕]と短距離無線通信網LNを介して通信する短距離無線通信部240を備えていることで、短距離無線通信網LNの通信範囲において移動体110(1)~110(n)に搭載された制御装置113~113のソフトウェアFWを容易に書き換えることができる。
 第1実施形態〔この例では移動体に設けられた専用の端末装置200(1),200(2)〕では、最新のオブジェクトコードNOCを自身の移動体〔この例では110(1),110(2)〕における制御装置113(1)~113(m)に送信することで、最新バージョンのソフトウェアFWに基づいて、自身の移動体〔この例では110(1),110(2)〕に搭載されている制御装置113(1)~113(m)のソフトウェアFWを書き換えて最新のものに容易に更新することができる。これにより、自身の移動体〔この例では110(1),110(2)〕における制御装置113(1)~113(m)で最新バージョンのソフトウェアFWを確実に実行することができる。
 また、第1実施形態〔この例では移動体に設けられた専用の端末装置200(1),200(2)〕では、最新のオブジェクトコードNOCを他の移動体110[この例では〔110(2)~110(n)〕,〔110(1),110(3)~110(n)〕]に短距離無線通信部240および短距離無線通信網LNを介して送信することで、該他の移動体に搭載された制御装置113(1)~113(m)のソフトウェアFWを書き換えて最新のものに容易に更新することができる。これにより、該他の移動体に搭載された制御装置113(1)~113(m)で最新バージョンのソフトウェアFWを確実に実行することができる。
 また、第1実施形態〔この例では移動体に設けられた専用の端末装置200(1),200(2)〕では、差分ソースコードDSCを当該移動体〔この例では110(1),110(2)〕(配信元)から他の移動体〔この例では110(2),110(1)〕に短距離無線通信部240および短距離無線通信網LNを介して送信することで、他の移動体〔この例では110(2),110(1)〕の端末装置〔この例では200(2),200(1)〕で送信されてきた差分ソースコードDSCから最新のオブジェクトコードNOCを生成することができ、それだけ当該端末装置と他の端末装置との間で通信時間を短縮化させることができる。
 第2実施形態(この例では多機能通信携帯端末装置の汎用の端末装置300)では、端末装置300が多機能通信携帯端末装置として機能し、電機機器〔この例では移動体110(1)~110(n)〕と短距離無線通信網LNを介して通信する短距離無線通信部340を備えていることで、端末装置300として、一般に普及している汎用の端末装置、例えば、タブレット型コンピュータやスマートフォン等の多機能通信携帯端末装置を用いることができ、これにより、電機機器に搭載されている制御装置113(1)~113(m)のソフトウェアFWに対する書き換え作業の利便性を向上させることができる。
 また、第2実施形態(この例では多機能通信携帯端末装置の汎用の端末装置300)では、最新のオブジェクトコードNOCを電機機器に短距離無線通信部340および短距離無線通信網LNを介して送信することで、電機機器に搭載された制御装置113(1)~113(m)のソフトウェアFWを書き換えて最新のものに容易に更新することができる。これにより、電機機器に搭載された制御装置113(1)~113(m)で最新バージョンのソフトウェアFWを確実に実行することができる。
 また、第2実施形態(この例では多機能通信携帯端末装置の汎用の端末装置300)では、差分ソースコードDSCを生成制御部Q31および変換制御部Q32を有する電機機器〔この例では移動体110(2),110(1)〕に短距離無線通信部240および短距離無線通信網LNを介して送信することで、電機機器〔この例では移動体110(2),110(1)〕の端末装置〔この例では200(2),200(1)〕(配信元)で送信されてきた差分ソースコードDSCから最新のオブジェクトコードNOCを生成することができ、それだけ当該端末装置と他の端末装置との間で通信時間を短縮化させることができる。
 なお、専用の端末装置200(1),200(2)(配信元)および汎用の端末装置300において、記憶部230,330に記憶容量に余裕がある場合には、サーバ130は、エリア情報ARを含む全てのデータの機種情報管理データベースDB1、更新用ソフトウェア管理データベースDB2、更新用ソフトウェア保存データベースDB3およびエリア情報管理データベースDB4を専用の端末装置200(1),200(2)(配信元)および汎用の端末装置300に送信し、端末装置200(1),200(2),300は、これらのデータベースを記憶部230に記憶するようにしてもよい。こうすることで、端末装置200(1),200(2),300は、サーバ130になり得る。
 (他の実施の形態について)
 本実施の形態に係るソフトウェア書き換えシステム100において、移動体110として、コンバイン、耕耘機や田植機等の農業作業機といった走行作業機に適用したが、それに限定されるものではなく、トラクター、ショベルカー、ホイルローダやキャリヤ等の建設作業機といった走行作業機や、プレジャーボート、漁船といった船舶等にも好適に適用することができる。
 また、移動体110(1)~110(n)において、1つの作業部111に対して1つの制御装置113を設けたが、1つの作業部111に対して複数の制御装置113を設けるようにしてもよい。
 また、電機機器としては、前記した移動体の態様の他、例えば、発電機などの電力設備に用いられる電機機器などを挙げることができる。
 本発明は、以上説明した実施の形態に限定されるものではなく、他のいろいろな形で実施することができる。そのため、かかる実施の形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。さらに、請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
 この出願は、2016年3月1日に日本で出願された特願2016-038928号に基づく優先権を請求する。これに言及することにより、その全ての内容は本出願に組み込まれるものである。
 本発明は、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置およびソフトウェア書き換えプログラムに係るものであり、特に、ソフトウェアの差分を用いて送信時間の短縮化を実現させる上、ソフトウェアの差分から最新バージョンのソフトウェアを容易に生成するための用途に適用できる。
100  ソフトウェア書き換えシステム
110  移動体(電機機器の一例)
111  作業部
113  制御装置
120  遠隔監視センター
130  サーバ
131  制御部
131a 処理装置
131b メモリ装置
132  広域通信部
133  記憶部
200  専用の端末装置
210  制御部
210a 処理装置
210b メモリ装置
220  広域通信部
230  記憶部
240  短距離無線通信部
250  信号通信部
260  電源制御部
300  汎用の端末装置
310  制御部
310a 処理装置
310b メモリ装置
320  広域通信部
330  記憶部
340  短距離無線通信部
350  ユーザインタフェース部
AR   エリア情報
BT   バッテリー
CC   制御装置コード
DB   更新用ソフトウェア格納データベース
DB1  機種情報管理データベース
DB2  更新用ソフトウェア管理データベース
DB3  更新用ソフトウェア保存データベース
DB4  エリア情報管理データベース
DSC  差分ソースコード
FW   ソフトウェア
ID   端末識別情報
LN   短距離無線通信網
MC   機種コード
MI   機種情報
MT   移動体の種類
NOC  最新のオブジェクトコード
NSC  最新のソースコード
OC   オブジェクトコード
PP   ソフトウェア更新用プログラム
Q1   受信制御部
Q11  取得制御部
Q2   記憶制御部
Q3   書き換え制御部
Q31  生成制御部
Q32  変換制御部
Q4   送信制御部
RI   更新情報
RID  登録された端末識別情報
RVR  最新バージョンの更新有無
SC   ソースコード
SW   起動スイッチ
VR   バージョン
WFW  更新用ソフトウェア
WFWC 更新用ソフトウェアコード
WN   広域通信網

Claims (9)

  1.  制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置であって、
     前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部を備え、
     前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得し、取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成し、生成した前記最新のソースコードを最新の前記オブジェクトコードに変換し、変換した前記最新のオブジェクトコードを前記制御装置に送信することを特徴とする端末装置。
  2.  請求項1に記載の端末装置であって、
     前記制御装置は、移動体に搭載されていることを特徴とする端末装置。
  3.  請求項2に記載の端末装置であって、
     前記移動体に設けられ、
     前記移動体とは他の移動体と短距離無線通信網を介して通信する短距離無線通信部を備えていることを特徴とする端末装置。
  4.  請求項3に記載の端末装置であって、
     前記最新のオブジェクトコードを、自身の移動体における前記制御装置に送信する、および/または、前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
  5.  請求項3または請求項4に記載の端末装置であって、
     前記他の移動体は、請求項1または請求項2に記載の端末装置を備え、
     前記差分ソースコードを前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
  6.  請求項1に記載の端末装置であって、
     前記制御装置は、電機機器に搭載されており、
     当該端末装置は、多機能通信携帯端末装置として機能し、
     前記電機機器と短距離無線通信網を介して通信する短距離無線通信部を備えていることを特徴とする端末装置。
  7.  請求項6に記載の端末装置であって、
     前記最新のオブジェクトコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
  8.  請求項6または請求項7に記載の端末装置であって、
     前記電機機器は、請求項2から請求項4までのいずれか1つに記載の端末装置を備え、
     前記差分ソースコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
  9.  制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置のソフトウェア書き換えプログラムであって、
     前記端末装置は、前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部と、コンピュータとを備え、
     前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得する取得制御ステップと、
     前記取得制御ステップにて取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成する生成制御ステップと、
     前記生成制御ステップにて生成した前記最新のソースコードを最新の前記オブジェクトコードに変換する変換制御ステップと、
     前記変換制御ステップにて変換した前記最新のオブジェクトコードを前記制御装置に送信する送信制御ステップと
     を含むステップを前記コンピュータに実行させることを特徴とするソフトウェア書き換えプログラム。
PCT/JP2017/006113 2016-03-01 2017-02-20 端末装置およびソフトウェア書き換えプログラム WO2017150247A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP17759713.5A EP3425506A4 (en) 2016-03-01 2017-02-20 TERMINAL DEVICE AND SOFTWARE REWRITING PROGRAM
CA3016285A CA3016285A1 (en) 2016-03-01 2017-02-20 Terminal device and software rewriting program
CN201780012746.6A CN108701067A (zh) 2016-03-01 2017-02-20 终端装置以及软件改写程序
US16/081,376 US10732958B2 (en) 2016-03-01 2017-02-20 Terminal device and software rewriting program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-038928 2016-03-01
JP2016038928A JP2017156937A (ja) 2016-03-01 2016-03-01 端末装置およびソフトウェア書き換えプログラム

Publications (1)

Publication Number Publication Date
WO2017150247A1 true WO2017150247A1 (ja) 2017-09-08

Family

ID=59744015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/006113 WO2017150247A1 (ja) 2016-03-01 2017-02-20 端末装置およびソフトウェア書き換えプログラム

Country Status (6)

Country Link
US (1) US10732958B2 (ja)
EP (1) EP3425506A4 (ja)
JP (1) JP2017156937A (ja)
CN (1) CN108701067A (ja)
CA (1) CA3016285A1 (ja)
WO (1) WO2017150247A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7165799B2 (ja) 2018-03-27 2022-11-04 ヤンマーパワーテクノロジー株式会社 ソフトウェア管理装置
US11875142B2 (en) * 2019-11-01 2024-01-16 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
JP2021135777A (ja) * 2020-02-27 2021-09-13 株式会社小松製作所 作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法
JP7421387B2 (ja) * 2020-03-19 2024-01-24 本田技研工業株式会社 ソフトウェア書換装置
US11271971B1 (en) * 2021-03-19 2022-03-08 King Saud University Device for facilitating managing cyber security health of a connected and autonomous vehicle (CAV)
CN113821251B (zh) * 2021-09-29 2024-02-06 北京无限自在文化传媒股份有限公司 基于人工智能的代码优化方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005649A (ja) * 1999-06-17 2001-01-12 Mitsubishi Electric Corp システムソフトウェア更新方式
JP2009123226A (ja) * 2008-12-18 2009-06-04 Omron Corp 車載制御装置の運用システム及び車載制御装置
JP2015170195A (ja) * 2014-03-07 2015-09-28 ヤンマー株式会社 遠隔サーバ

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6276954A (ja) * 1985-09-30 1987-04-09 Toshiba Corp 通信制御装置
EP0449530A3 (en) * 1990-03-23 1993-09-01 Canon Kabushiki Kaisha A memory medium having a control program memorized therein and an information processing method and an information processing apparatus using the same medium
US5175856A (en) * 1990-06-11 1992-12-29 Supercomputer Systems Limited Partnership Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution
US5347627A (en) * 1992-04-07 1994-09-13 International Business Machines Corporation Graphical user interface including dynamic sizing and spacing
US5732273A (en) * 1995-08-11 1998-03-24 Digital Equipment Corporation System for monitoring compute system performance
US5713010A (en) * 1995-02-10 1998-01-27 Hewlett-Packard Company Source line tracking in optimized code
JP2719761B2 (ja) * 1995-02-24 1998-02-25 パイオニア株式会社 データ蓄積装置
US6067500A (en) * 1995-08-14 2000-05-23 Aisin Aw Co., Ltd. Navigation system
US5815720A (en) * 1996-03-15 1998-09-29 Institute For The Development Of Emerging Architectures, L.L.C. Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system
US5835773A (en) * 1996-04-17 1998-11-10 Hewlett-Packard, Co. Method for achieving native performance across a set of incompatible architectures using a single binary file
US6009274A (en) * 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US5920725A (en) 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6106574A (en) * 1997-12-04 2000-08-22 Unisys Corp. Computer-implemented object-oriented method for relating objects in a compiler to locations in the source program and to inlined call histories
US6305009B1 (en) * 1997-12-05 2001-10-16 Robert M. Goor Compiler design using object technology with cross platform capability
US6581157B1 (en) * 1999-04-26 2003-06-17 3Com Corporation System and method for detecting and updating non-volatile memory on an electronic adapter board installed in a computing system
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
JP3669619B2 (ja) * 1999-09-06 2005-07-13 富士通株式会社 無線端末装置のソフトウェア更新方法及びその装置
JP2001075785A (ja) * 1999-09-09 2001-03-23 Nec Corp データ更新システム
US20020178434A1 (en) * 2001-02-22 2002-11-28 Fox Gary L. Apparatus and method for automatic source code generation in a process control environment
JP4827310B2 (ja) * 2001-03-30 2011-11-30 パナソニック株式会社 リモートプログラムダウンロードシステム
US20020188934A1 (en) * 2001-06-12 2002-12-12 Nortel Networks Limited Method and system for upgrading existing firmware on third party hardware
US9134989B2 (en) * 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US6922709B2 (en) * 2002-02-19 2005-07-26 International Business Machines Corporation Method for maintaining consistent dual copies of vital product data in a dual accessor library of portable data storage media
JP2003242064A (ja) * 2002-02-19 2003-08-29 Funai Electric Co Ltd Cd−r/rw書込み用プログラム、動作制御プログラム、および、ドライブ装置
US7243347B2 (en) * 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
US20040034861A1 (en) * 2002-08-19 2004-02-19 Ballai Philip N. System and method for automating firmware maintenance
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US8250562B2 (en) * 2002-08-30 2012-08-21 Sun Microsystems, Inc. Barrier mechanism for firmware upgrade
US20040083471A1 (en) * 2002-10-21 2004-04-29 Lg Electronics Inc. Method of upgrading system software of a home appliance
DE10256799B3 (de) * 2002-12-05 2004-04-29 Wabco Gmbh & Co. Ohg Verfahren zur Programmierung von Flash-E-PROMs in einer mit einem Mikroprozessor ausgerüsteten Steuerelektronik für Straßenfahrzeuge
US20050010916A1 (en) * 2003-05-24 2005-01-13 Hagen David A. System for providing software application updates to multiple clients on a network
US7676506B2 (en) * 2003-06-20 2010-03-09 Innopath Software, Inc. Differential file compression of software image versions
JP4021407B2 (ja) * 2003-12-16 2007-12-12 シャープ株式会社 情報処理装置
TW200535697A (en) * 2004-04-30 2005-11-01 Hon Hai Prec Ind Co Ltd System and method for automatic updating program
US7788662B2 (en) * 2004-07-28 2010-08-31 Microsoft Corporation Automatic upgrade of pluggable components
US20060061789A1 (en) * 2004-09-20 2006-03-23 Kabushiki Kaisha Toshiba Image forming apparatus and image forming method
US7503040B2 (en) * 2004-09-30 2009-03-10 International Business Machines Corporation Configuring a shared library to accommodate relocatable data in a pervasive device
CN1758220A (zh) * 2004-10-08 2006-04-12 华为技术有限公司 一种升级软件版本的方法
US7409677B1 (en) * 2004-11-16 2008-08-05 Sun Microsystems, Inc. Method and system for creation and use of embedded trace description
US20060184924A1 (en) * 2004-12-14 2006-08-17 Aten International Co., Ltd. Intelligent platform management interface firmware architecture and method of building the same
US7480901B2 (en) * 2005-02-03 2009-01-20 International Business Machines Corporation System and method for producing per-processor optimized executables
JP4791061B2 (ja) * 2005-03-18 2011-10-12 富士通株式会社 計算機システムのファームウェアのバージョン管理方法及び情報処理装置
JP4924976B2 (ja) * 2005-03-23 2012-04-25 新日鉄ソリューションズ株式会社 ソフトウェア開発支援システム
US20060236310A1 (en) * 2005-04-19 2006-10-19 Domeika Max J Methods and apparatus to iteratively compile software to meet user-defined criteria
JP2006331394A (ja) * 2005-04-25 2006-12-07 Ricoh Co Ltd プログラムバージョン管理方法、プログラム及び印刷システム
KR100694124B1 (ko) * 2005-06-08 2007-03-12 삼성전자주식회사 화상형성장치의 드라이버 갱신 방법 및 장치
DE602005010858D1 (de) * 2005-08-18 2008-12-18 Ericsson Telefon Ab L M Rückgekoppelter Linker for erhöhte Delta-Performanz
US7698692B1 (en) * 2005-11-10 2010-04-13 Sun Microsystems, Inc. Preparing a binary file for future instrumentation
JP2007301866A (ja) * 2006-05-12 2007-11-22 Sony Corp 電子機器、印刷装置、プログラム及び消耗品
JP2007304998A (ja) * 2006-05-12 2007-11-22 Hitachi Software Eng Co Ltd ソースコード生成方法及び装置並びにプログラム
US7770165B2 (en) * 2006-08-25 2010-08-03 Microsoft Corporation Providing firmware updates to portable media devices
US10104432B2 (en) * 2006-12-01 2018-10-16 Time Warner Cable Enterprises Llc Methods and apparatus for software provisioning of a network device
US20080172649A1 (en) * 2007-01-16 2008-07-17 Microsoft Corporation Strategies for Synchronizing a Product
US8219977B1 (en) * 2007-01-26 2012-07-10 Xilinx, Inc. Using a software repository to increase the speed of software testing
CN101282453B (zh) * 2007-04-03 2010-08-11 华为技术有限公司 更新电子业务指南的方法、服务器、终端及系统
DE102007026602A1 (de) * 2007-06-08 2008-12-11 Abb Ag Einrichtung und Verfahren zum Prüfen der aktuellen Softwareinstallation von Feldgeräten eines verteilten Systems, insbesondere Automatisierungssystems
US8473938B1 (en) * 2007-06-21 2013-06-25 Open Invention Network Llc Security patch update processor
US8145655B2 (en) * 2007-06-22 2012-03-27 International Business Machines Corporation Generating information on database queries in source code into object code compiled from the source code
US20090037887A1 (en) * 2007-07-30 2009-02-05 Chavan Shasank K Compiler-inserted predicated tracing
US20090271768A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Discriminating program code updates after merging for live review
US8453134B2 (en) * 2008-06-04 2013-05-28 Intel Corporation Improving data locality and parallelism by code replication
US8261247B2 (en) * 2008-10-01 2012-09-04 Oracle International Corporation Method of modifying code of a running computer program based on symbol values discovered from comparison of running code to corresponding object code
JP5358153B2 (ja) * 2008-10-10 2013-12-04 株式会社ソニー・コンピュータエンタテインメント ゲーム装置および情報処理装置
CN101425078A (zh) * 2008-11-17 2009-05-06 阿里巴巴集团控股有限公司 一种软件源代码的更新方法及装置
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
US9031237B2 (en) * 2009-02-19 2015-05-12 GM Global Technology Operations LLC Method and apparatus for protecting private data on a vehicle
JP2010198155A (ja) 2009-02-24 2010-09-09 Fujitsu Ten Ltd プログラム更新装置、プログラム更新方法、及び情報処理装置
US8438558B1 (en) * 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
US8762971B2 (en) 2009-04-02 2014-06-24 International Business Machines Corporation Servicing a production program in an integrated development environment
US20110010696A1 (en) * 2009-07-09 2011-01-13 Sun Microsystems, Inc. Duplicate virtual function table removal
US8645936B2 (en) * 2009-09-30 2014-02-04 Zynga Inc. Apparatuses, methods and systems for an a API call abstractor
JP2011095950A (ja) * 2009-10-29 2011-05-12 Seiko Epson Corp ネットワークデバイス、ネットワークデバイスシステムおよびネットワークデバイスのソフトウェア更新方法
JP5171790B2 (ja) * 2009-11-12 2013-03-27 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置、通信システムおよびプログラム
KR20110092007A (ko) * 2010-02-08 2011-08-17 주식회사 만도 차량의 소프트웨어 다운로드 시스템 및 방법
US8739049B2 (en) * 2010-05-24 2014-05-27 GM Global Technology Operations LLC Vehicle system modeling systems and methods
WO2012019111A2 (en) * 2010-08-06 2012-02-09 Frederick Furtek A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system
KR101301606B1 (ko) * 2010-10-28 2013-08-29 삼성에스디에스 주식회사 애플리케이션 생성 장치 및 그 방법
KR101732764B1 (ko) * 2010-12-15 2017-05-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 코드 클론 검출을 이용하는 지능형 코드 디퍼런싱을 수행하는 방법 및 시스템
US8745612B1 (en) * 2011-01-14 2014-06-03 Google Inc. Secure versioning of software packages
US8726264B1 (en) * 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
US9223564B2 (en) * 2012-01-26 2015-12-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Update systems responsive to ongoing processing at a storage system
US20140336851A1 (en) 2012-01-30 2014-11-13 Mitsubishi Electric Corporation Train information managing apparatus and selection method for control software of train information managing apparatus
US20130346960A1 (en) * 2012-06-25 2013-12-26 Infosys Limited Method and system for updating an application
JP6064529B2 (ja) * 2012-11-07 2017-01-25 株式会社リコー 情報処理装置
JP6056424B2 (ja) * 2012-11-29 2017-01-11 株式会社デンソー 車載プログラム更新装置
CN103853574B (zh) * 2012-12-06 2015-09-16 腾讯科技(深圳)有限公司 一种软件升级的方法及系统
JP6020159B2 (ja) * 2012-12-27 2016-11-02 株式会社リコー 情報処理装置、及び情報処理方法
US20140245278A1 (en) * 2013-02-22 2014-08-28 Panasonic Automotive Systems Company Of America, Division Of Panasonic Corpor Automotive component self update via software version control
US9075686B2 (en) * 2013-02-25 2015-07-07 GM Global Technology Operations LLC System and method to improve control module reflash time
US9454363B1 (en) * 2013-03-15 2016-09-27 Data Systems International, Inc. Mobile application development system and method
US8954951B1 (en) * 2013-04-09 2015-02-10 Google Inc. Stop distribution of application updates
CN104216727A (zh) * 2013-06-04 2014-12-17 腾讯科技(深圳)有限公司 应用升级方法和系统
KR101459493B1 (ko) * 2013-10-08 2014-11-07 현대자동차 주식회사 차량 전자 제어 장치 및 차량 제어방법
JP6255880B2 (ja) * 2013-10-10 2018-01-10 株式会社ソシオネクスト 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
CN104699491A (zh) * 2013-12-06 2015-06-10 中兴通讯股份有限公司 一种应用程序的升级处理方法及终端设备
WO2015105486A1 (en) * 2014-01-08 2015-07-16 Hewlett-Packard Development Company, L.P. Dynamically applying a software patch to a computer program
US9274769B1 (en) * 2014-09-05 2016-03-01 International Business Machines Corporation Table of contents pointer value save and restore placeholder positioning
US10430176B2 (en) * 2014-11-17 2019-10-01 Hitachi Automotive Systems, Ltd. In-vehicle control device, program update system, and program update software
WO2016100767A2 (en) * 2014-12-19 2016-06-23 Aalborg Universitet Method for file updating and version control for linear erasure coded and network coded storage
CN105786459A (zh) * 2014-12-24 2016-07-20 致伸科技股份有限公司 控制系统及控制被动装置的方法
US9912655B2 (en) * 2015-03-27 2018-03-06 Amazon Technologies, Inc. Unmanned vehicle message exchange
US10261489B2 (en) * 2015-04-15 2019-04-16 Indegy Ltd. Detection of mis-configuration and hostile attacks in industrial control networks using active querying
US20170033989A1 (en) * 2015-07-31 2017-02-02 Apple Inc. Shareable code objects for accessories and user devices
US20170090910A1 (en) * 2015-09-29 2017-03-30 International Business Machines Corporation Mobile device application installation with performance enhancement
US9728087B2 (en) * 2015-12-18 2017-08-08 International Business Machines Corporation Vehicle accident response using diagnostic data burst transmission
JP2017156936A (ja) * 2016-03-01 2017-09-07 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005649A (ja) * 1999-06-17 2001-01-12 Mitsubishi Electric Corp システムソフトウェア更新方式
JP2009123226A (ja) * 2008-12-18 2009-06-04 Omron Corp 車載制御装置の運用システム及び車載制御装置
JP2015170195A (ja) * 2014-03-07 2015-09-28 ヤンマー株式会社 遠隔サーバ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3425506A4 *

Also Published As

Publication number Publication date
EP3425506A1 (en) 2019-01-09
JP2017156937A (ja) 2017-09-07
US10732958B2 (en) 2020-08-04
EP3425506A4 (en) 2019-03-20
CA3016285A1 (en) 2017-09-08
US20190073211A1 (en) 2019-03-07
CN108701067A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
WO2017150247A1 (ja) 端末装置およびソフトウェア書き換えプログラム
WO2017150235A1 (ja) 端末装置およびソフトウェア書き換えプログラム
US10282194B2 (en) Methods and systems to update a vehicle computing system
CN105808285B (zh) 车辆控制更新的方法和系统
US10061574B2 (en) Method and apparatus for multiple vehicle software module reflash
CN103207791B (zh) 远程升级方法、系统及数据终端
WO2017150242A1 (ja) 端末装置およびソフトウェア書き換えプログラム
JP6316536B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
CN103593208A (zh) 用于车辆计算机系统软件更新的方法及设备
WO2014017013A1 (ja) 近距離無線通信システム及び近距離無線通信端末
CN108023778A (zh) 固件升级方法及其系统
WO2005103623A1 (ja) ナビゲーションシステム及びナビゲーション装置
JP2018063711A (ja) 車両のプログラム更新方法及びそのシステム
US20100077024A1 (en) Method for transmitting data transmitted incompletely between server and client
CN108406781B (zh) 一种远程机器人控制系统及控制方法
JP2024040359A (ja) 更新データを配信するサーバ、更新データの配信方法及び配信プログラム、ソフトウェア更新システム
JP2017156938A (ja) 端末装置およびソフトウェア書き換えプログラム
CN109218001A (zh) 用于点火状态监测的方法和设备
JP7405033B2 (ja) サーバ、更新管理方法、更新管理プログラム、ソフトウェア更新装置、サーバ及びソフトウェア更新装置を備えるシステム、センタ、otaマスタ、センタ及びotaマスタを備えるシステム
JP6175793B2 (ja) 情報処理プログラムおよび情報処理装置
JP6158697B2 (ja) 通信システム及びソフトウェア更新方法
CN114827303B (zh) 智能家居产品管理单元、系统及应用方法和电子设备
EP4253159A1 (en) Information update system
US20200367038A1 (en) Wireless communication device, work vehicle and work vehicle wireless communication system
CN116434386A (zh) 钥匙和车辆的配对方法、装置、设备和系统

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 3016285

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2017759713

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017759713

Country of ref document: EP

Effective date: 20181001

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

Ref document number: 17759713

Country of ref document: EP

Kind code of ref document: A1