JP6504315B2 - プログラム更新システム、配信装置及びプログラム更新方法 - Google Patents

プログラム更新システム、配信装置及びプログラム更新方法 Download PDF

Info

Publication number
JP6504315B2
JP6504315B2 JP2018523532A JP2018523532A JP6504315B2 JP 6504315 B2 JP6504315 B2 JP 6504315B2 JP 2018523532 A JP2018523532 A JP 2018523532A JP 2018523532 A JP2018523532 A JP 2018523532A JP 6504315 B2 JP6504315 B2 JP 6504315B2
Authority
JP
Japan
Prior art keywords
unit
progress information
update
computer program
communication
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2018523532A
Other languages
English (en)
Other versions
JPWO2018105609A1 (ja
Inventor
翼 金森
翼 金森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
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 Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd filed Critical Sumitomo Wiring Systems Ltd
Publication of JPWO2018105609A1 publication Critical patent/JPWO2018105609A1/ja
Application granted granted Critical
Publication of JP6504315B2 publication Critical patent/JP6504315B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

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)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、プログラム更新システム、配信装置及びプログラム更新方法に関する。本出願は、2016年12月6日出願の日本出願第2016−236942号に基づく優先権を主張し、前記日本出願に記載された全ての記載事項を援用するものである。
コンピュータプログラム(以下、単にプログラムと言う)に基づく制御を行う制御装置を複数用いた制御システムが様々な分野で利用されている。車両制御の分野では、車両内に制御装置として多数のECU(Electronic Control Unit )が配されており、各ECUが車載LAN(Local Area Network )を介して情報を送受信し、協調及び連携して多様な処理を行なうように構成されている。
上記制御装置の機能を追加若しくは変更する場合、又はプログラムの不具合を解消すべき場合など、制御装置のプロセッサが実行するプログラムの更新が必要となるときがある。プログラムの更新方法としては、特定の制御装置が外部から有線又は無線通信にて受信した更新プログラムを対象の制御装置へ送信し、これを受信した制御装置にてプログラムを更新する方法が一般的に採用される。
このような制御システムにてプログラムを更新する場合、例えば、更新の対象装置にて更新プログラムが更新前の旧プログラムに上書きされる方法が採用されたときは、更新の中断により旧プログラムによる実行が不能になって、更新の再開もできなくなる可能性がある。
これに対し、特許文献1には、リプログ(プログラムの更新)の対象外となるメモリブロックに簡易通信プログラムを格納しておき、リプログ時には簡易通信プログラムに基づく簡易通信を実行することにより、リプログが中断されて旧プログラムが破壊された場合であっても、簡易通信によってリプログを再開することが可能な車載装置が開示されている。
特開2013−192092号公報
本発明の一態様に係るプログラム更新システムは、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されており、コンピュータプログラムを配信する配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新システムであって、前記配信装置及び通信装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新する第1更新部と、該第1更新部で更新した進捗情報を前記通信装置に送信する第1送信部と、該第1送信部で進捗情報を送信した場合、前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信する第1受信部と、該第1受信部で受信した進捗情報に応じて、前記通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部とを備え、前記通信装置は、前記配信装置から送信された進捗情報を受信する第2受信部と、該第2受信部で受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新する第2更新部と、該第2更新部で更新した進捗情報を前記配信装置に送信する第2送信部とを備える。
本発明の一態様に係るプログラム更新システムは、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されており、コンピュータプログラムを配信する配信装置及び配信されるべきコンピュータプログラムを保持する更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記配信装置が取得した新たなコンピュータプログラムを通信装置に配信し、該通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新システムであって、前記配信装置及び更新装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新する第1更新部と、該第1更新部で更新した進捗情報を前記更新装置に送信する第1送信部と、該第1送信部で進捗情報を送信した場合、前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信する第1受信部と、該第1受信部で受信した進捗情報に応じて、前記更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部とを備え、前記更新装置は、前記配信装置から送信された進捗情報を受信する第2受信部と、該第2受信部で受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新する第2更新部と、該第2更新部で更新した進捗情報を前記配信装置に送信する第2送信部とを備える。
本発明の一態様に係る配信装置は、メモリに記憶してあるコンピュータプログラムに基づく処理を実行する外部装置と通信可能に接続されており、前記外部装置との間で通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記外部装置に前記新たなコンピュータプログラムを配信してコンピュータプログラムを更新させる配信装置であって、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部と、前記送受信の進捗に応じて、前記記憶部に記憶する進捗情報を更新する更新部と、該更新部で更新した進捗情報を前記外部装置に送信する送信部と、該送信部で送信した進捗情報に基づいて前記外部装置にて更新された進捗情報を前記外部装置から受信する受信部と、該受信部で受信した進捗情報に応じて、前記外部装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部とを備える。
本発明の一態様に係るプログラム更新方法は、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されている通信システムにて、コンピュータプログラムを配信する配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新方法であって、前記配信装置及び通信装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記通信装置に送信し、前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信し、受信した進捗情報に応じて、前記通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定し、前記通信装置は、前記配信装置から送信された進捗情報を受信し、受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記配信装置に送信する。
本発明の一態様に係るプログラム更新方法は、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されている通信システムにて、コンピュータプログラムを配信する配信装置及び配信されるべきコンピュータプログラムを保持する更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記配信装置が取得した新たなコンピュータプログラムを通信装置に配信し、該通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新方法であって、前記配信装置及び更新装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記更新装置に送信し、前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信し、受信した進捗情報に応じて、前記更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定し、前記更新装置は、前記配信装置から送信された進捗情報を受信し、受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記配信装置に送信する。
なお、本願は、このような特徴的な処理部を備えるプログラム更新システム、配信装置及びプログラム更新方法として実現することができるだけでなく、かかる特徴的な処理を行うステップをコンピュータに実行させるためのコンピュータプログラムとして実現することができる。また、プログラム更新システム又は配信装置の一部又は全部を半導体集積回路として実現したり、プログラム更新システム又は配信装置を含むその他のシステムとして実現したりすることができる。
本発明の実施形態1に係るプログラム更新システムの構成例を示すブロック図である。 ECU間で送受信される通信信号及び更新用制御プログラムを示すシーケンス図である。 通信信号及び更新ファイルを送受信する都度、ステップ番号を含む下位信号を送受信するCPUの処理手順を示すフローチャートである。 ステップ番号の要求、応答及び通知を行う下位信号を送受信するCPUの処理手順を示すフローチャートである。 本発明の実施形態3に係るプログラム更新システムの構成例を示すブロック図である。 更新装置及びECU間で送受信される通信信号及び更新用制御プログラムを示すシーケンス図である。
[本発明が開示しようとする課題]
しかしながら、特許文献1に記載された技術では、プログラムの更新が中断された場合、更新処理の中断点から再開することは考慮されていないため、特定の制御装置で認識される中断点からプログラムの更新が再開されたときに、プログラムの更新が正常に完了しない虞があった。また、特定の制御装置と更新の対象装置との間で実行される信号の送受信に進捗のずれが生じる虞があった。
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、一の制御装置と他の制御装置との間で実行される信号の送受信に進捗のずれが生じるのを防止することが可能なプログラム更新システム、配信装置及びプログラム更新方法を提供することにある。
[本発明の効果]
上記によれば、一の制御装置と他の制御装置との間で実行される信号の送受信に進捗のずれが生じるのを防止することが可能となる。
[本発明の実施形態の説明]
最初に本発明の実施態様を列記して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本発明の一態様に係るプログラム更新システムは、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されており、コンピュータプログラムを配信する配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新システムであって、前記配信装置及び通信装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新する第1更新部と、該第1更新部で更新した進捗情報を前記通信装置に送信する第1送信部と、該第1送信部で進捗情報を送信した場合、前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信する第1受信部と、該第1受信部で受信した進捗情報に応じて、前記通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部とを備え、前記通信装置は、前記配信装置から送信された進捗情報を受信する第2受信部と、該第2受信部で受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新する第2更新部と、該第2更新部で更新した進捗情報を前記配信装置に送信する第2送信部とを備える。
(8)本発明の一態様に係るプログラム更新方法は、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されている通信システムにて、コンピュータプログラムを配信する配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新方法であって、前記配信装置及び通信装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記通信装置に送信し、前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信し、受信した進捗情報に応じて、前記通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定し、前記通信装置は、前記配信装置から送信された進捗情報を受信し、受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記配信装置に送信する。
本態様にあっては、配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信する間に、配信装置から通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させることにより、メモリ内のコンピュータプログラムを更新する。配信装置は、通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を、送受信の進捗に応じて自装置の記憶部に記憶して更新すると共に更新した進捗情報を通信装置に送信する。通信装置は、配信装置から受信した進捗を表す進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新すると共に更新した進捗情報を配信装置に送信する。そして、配信装置は、通信装置から受信した進捗情報に応じて、通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する。これにより、通信信号及び新たなコンピュータプログラム(以下、これらを総称して単に信号ともいう)の送受信の進捗と共に通信装置にて更新された進捗情報に応じて、配信装置と通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムが特定されるため、配信装置及び通信装置間における信号の送受信の進捗ずれが防止される。
(2)本発明の一態様に係るプログラム更新システムは、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されており、コンピュータプログラムを配信する配信装置及び配信されるべきコンピュータプログラムを保持する更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記配信装置が取得した新たなコンピュータプログラムを通信装置に配信し、該通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新システムであって、前記配信装置及び更新装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新する第1更新部と、該第1更新部で更新した進捗情報を前記更新装置に送信する第1送信部と、該第1送信部で進捗情報を送信した場合、前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信する第1受信部と、該第1受信部で受信した進捗情報に応じて、前記更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部とを備え、前記更新装置は、前記配信装置から送信された進捗情報を受信する第2受信部と、該第2受信部で受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新する第2更新部と、該第2更新部で更新した進捗情報を前記配信装置に送信する第2送信部とを備える。
(9)本発明の一態様に係るプログラム更新方法は、メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されている通信システムにて、コンピュータプログラムを配信する配信装置及び配信されるべきコンピュータプログラムを保持する更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記配信装置が取得した新たなコンピュータプログラムを通信装置に配信し、該通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新方法であって、前記配信装置及び更新装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、前記配信装置は、前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記更新装置に送信し、前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信し、受信した進捗情報に応じて、前記更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定し、前記更新装置は、前記配信装置から送信された進捗情報を受信し、受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を前記配信装置に送信する。
本態様にあっては、配信装置及び更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信する間に、配信装置が新たなコンピュータプログラムを更新装置から取得する。配信装置は、取得した新たなコンピュータプログラムを通信装置に配信し、通信装置は配信された新たなコンピュータプログラムを自装置のメモリに記憶させることにより、メモリ内のコンピュータプログラムを更新する。配信装置は、通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を、送受信の進捗に応じて自装置の記憶部に記憶して更新すると共に更新した進捗情報を更信装置に送信する。更信装置は、配信装置から受信した進捗を表す進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新すると共に更新した進捗情報を配信装置に送信する。そして、配信装置は、更信装置の記憶部に記憶された進捗情報を受信して、更信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する。これにより、信号の送受信の進捗と共に更信装置にて更新された進捗情報に応じて、配信装置と更信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムが特定されるため、配信装置及び更信装置間における信号の送受信の進捗ずれが防止される。
(3)前記配信装置は、前記通信信号及び新たなコンピュータプログラムの送受信を中断した場合、前記第1更新部によって自装置の記憶部に記憶する進捗情報を、送受信を再開すべき通信信号又は新たなコンピュータプログラムに応じて更新することが好ましい。
配信装置と、通信装置又は更新装置との間で行われる通信信号及び新たなコンピュータプログラムの送受信を中断した場合、配信装置は、再開時に送受信されるべき通信信号又はコンピュータプログラムに応じて、自装置の記憶部に記憶する進捗情報を更新し、更新した進捗情報を通信装置又は更新装置に送信する。以後、進捗情報の交換が前述の通り行われる。これにより、再開後に、配信装置の記憶部に記憶される進捗情報と、通信装置又は更新装置の記憶部に記憶される進捗情報とが整合するように、配信装置と、通信装置又は更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムが特定されるため、配信装置と、通信装置又は更新装置との間における信号の送受信の進捗ずれが防止される。
(4)前記配信装置は、前記通信信号及び新たなコンピュータプログラムの送受信を中断した場合、前記通信装置又は更新装置の記憶部に記憶された進捗情報の送信を要求する信号を前記通信装置又は更新装置に送信する第3送信部と、該第3送信部で信号を送信した場合、前記通信装置又は更新装置の記憶部に記憶された進捗情報を前記通信装置又は更新装置から受信する第3受信部と、該第3受信部で受信した進捗情報と自装置の記憶部に記憶した進捗情報とを比較する比較部と、該比較部の比較結果に基づいて、より遅い進捗を表す進捗情報を特定する第2の特定部と、該第2の特定部で特定した進捗情報を自装置の記憶部に記憶して更新する第3更新部と、該第3更新部で更新した進捗情報を前記通信装置又は更新装置に送信する第4送信部とを更に備え、前記通信装置又は更新装置は、前記配信装置から前記進捗情報の送信を要求する信号を受信する第4受信部と、該第4受信部で信号を受信した場合、自装置の記憶部に記憶した進捗情報を前記配信装置に送信する第5送信部と、該第5送信部で進捗情報を送信した場合、前記配信装置の記憶部に記憶された進捗情報を前記配信装置から受信する第5受信部と、該第5受信部で受信した進捗情報を自装置の記憶部に記憶して更新する第4更新部とを更に備えることが好ましい。
本態様にあっては、配信装置と、通信装置又は更新装置との間における通信信号及び新たなコンピュータプログラムの送受信を中断した場合、配信装置は、通信装置又は更新装置の記憶部に記憶された進捗情報の送信を要求する信号を通信装置又は更新装置に送信し、この信号を受信した通信装置又は更新装置は、自らの記憶部に記憶した進捗情報を配信装置に送信する。この進捗情報を受信した配信装置は、受信した進捗情報と自らの記憶部に記憶した進捗情報とを比較してより遅い進捗を表す進捗情報を特定し、特定した進捗情報を自らの記憶部に記憶して更新すると共に、更新した進捗情報を通信装置又は更新装置に送信する。この進捗情報を受信した通信装置又は更新装置は、受信した進捗情報を自らの記憶部に記憶して更新する。これにより、配信装置と、通信装置又は更新装置とのうち、信号の送受信の進捗が遅い方に合わせて次に送受信すべき通信信号又は新たなコンピュータプログラムが特定されるため、配信装置と、通信装置又は更新装置との間における信号の送受信の進捗ずれが防止される。
(5)前記通信装置又は更新装置は、前記第2受信部で受信した進捗情報が表す進捗が、自装置の記憶部に記憶した進捗情報が表す進捗よりも、前記通信信号及び新たなコンピュータプログラムの何れかの送受信2回分以上早いか否かを判定する判定部を更に備え、前記第2更新部は、前記判定部で2回分以上早くはないと判定した場合、前記第2受信部で受信した進捗情報を自装置の記憶部に記憶して更新するようにしてあり、前記第2送信部は、前記判定部の判定結果に関わらず、自装置の記憶部に記憶した進捗情報を前記配信装置に送信することが好ましい。
本態様にあっては、通信装置又は更新装置は、配信装置から受信した進捗情報が表す進捗が、自らの記憶部に記憶した進捗情報が表す進捗よりも、通信信号及び新たなコンピュータプログラムの何れかの送受信(送信又は受信)2回分以上早いとは判定されない場合に、受信した進捗情報を自らの記憶部に記憶して更新し、更新した場合及び更新しない場合の何れの場合であっても自らの記憶部に記憶した進捗情報を配信装置に送信する。これにより、通信装置又は更新装置は、受信した進捗情報によって、配信装置における信号の送受信の進捗が、予定される進捗より早いと判定した場合に、自らの記憶部に記憶する進捗情報を更新せずに配信装置に送信するため、配信装置にて信号の送受信を進捗させないようにすることができる。通信装置又は更新装置は、また、受信した進捗情報によって、配信装置における信号の送受信の進捗が、予定される進捗より早くはないと判定した場合に、受信した進捗情報を配信装置に送信するため、通信装置又は更新装置の記憶部に記憶する進捗情報を配信装置における信号の送受信の進捗に整合させることが可能となる。
(6)前記新たなコンピュータプログラムは、複数に分割されており、前記配信装置と、前記通信装置又は更新装置とは、分割されたコンピュータプログラムを順次互いに送受信するようにしてあることが好ましい。
本態様にあっては、複数に分割されている新たなコンピュータプログラムが、配信装置と、前記通信装置又は更新装置との間で順次送受信される。これにより、分割された1つ1つのコンピュータプログラムについて、送受信の進捗ずれが防止される。
(7)本発明の一態様に係る配信装置は、メモリに記憶してあるコンピュータプログラムに基づく処理を実行する外部装置と通信可能に接続されており、前記外部装置との間で通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記外部装置に前記新たなコンピュータプログラムを配信してコンピュータプログラムを更新させる配信装置であって、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部と、前記送受信の進捗に応じて、前記記憶部に記憶する進捗情報を更新する更新部と、該更新部で更新した進捗情報を前記外部装置に送信する送信部と、該送信部で送信した進捗情報に基づいて前記外部装置にて更新された進捗情報を前記外部装置から受信する受信部と、該受信部で受信した進捗情報に応じて、前記外部装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部とを備える。
本態様にあっては、配信装置が外部装置との間で通信信号及び新たなコンピュータプログラムを互いに送受信する間に、外部装置に新たなコンピュータプログラムを配信してメモリ内のコンピュータプログラムを更新させる。配信装置は、通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を、送受信の進捗に応じて記憶部に記憶して更新すると共に更新した進捗情報を外部装置に送信する。配信装置は、外部装置に送信した進捗情報に基づいて外部装置にて更新された進捗情報を外部装置から受信し、受信した進捗情報に応じて、外部装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する。これにより、信号の送受信の進捗と共に外部装置にて更新された進捗情報に応じて、外部装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムが特定されるため、配信装置及び外部装置間における信号の送受信の進捗ずれが防止される。
[本発明の実施形態の詳細]
本発明の実施形態に係るプログラム更新システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、各実施形態で記載されている技術的特徴は、お互いに組み合わせることが可能である。
(実施形態1)
図1は、本発明の実施形態1に係るプログラム更新システムの構成例を示すブロック図である。プログラム更新システムは、不図示の車載機器を制御する1又は複数のECU2(通信装置及び外部装置に相当)、及び該ECU2と通信線4を介して通信可能に接続されたECU1a(配信装置に相当)を含んで構成されている。ECU1aは、例えば一の通信線に接続されたECU2から送信された信号を受信して他の通信線に接続されたECU2に送信する中継装置であってもよい。
ECU1aは、CPU(Central Processing Unit )11(プロセッサに相当)を有するマイクロコンピュータを含んでなる。CPU11は、制御プログラム120(コンピュータプログラムに相当)等の情報を記憶するROM(Read Only Memory )12(メモリに相当)、一時的に発生した情報を記憶するRAM(Random Access Memory )13(記憶部に相当)、及び経過時間等を計時するタイマ15と互いにバス接続されている。ROM12は、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory )、EEPROM(Electrically EPROM :登録商標)等の不揮発性メモリからなる。RAM13は、DRAM(Dynamic Random Access Memory )、SRAM(Static Random Access Memory )等の書き換え可能なメモリからなる。
CPU11には、更に、CAN(Controller Area Network)、LIN(Local Interconnect Network )、MOST(Media Oriented Systems Transport )、TCP/IP(Transmission Control Protocol/Internet Protocol )、AVTP(Audio Video Transport Protocol )、FlexRay(登録商標)等の通信規格による通信を行う通信部14、及び内部記憶装置16がバス接続されている。内部記憶装置16は、例えばハードディスク装置又はフラッシュメモリであり、ECU2に送信すべき更新用制御プログラム160(新たなコンピュータプログラムに相当)が不図示の外部装置から転送されて記憶されている。
ECU2は、CPU21(プロセッサに相当)を有するマイクロコンピュータを含んでなる。CPU21は、制御プログラム220(コンピュータプログラムに相当)等の情報を記憶するROM22(メモリに相当)、一時的に発生した情報を記憶するRAM23(記憶部に相当)、及び通信部14と同じ通信規格による通信を行う通信部24とバス接続されている。ROM22は、例えばフラッシュメモリ等の書き換え可能なメモリである。
上述の構成にて、ECU1a及びECU2夫々が、通信部14及び24を用いて通信信号及び更新用制御プログラム160(以下、これらを総称して単に信号ともいう)を互いに送受信することにより、ECU1aがECU2に更新用制御プログラム160を配信する。ここでいう送受信とは、1つの通信信号又は更新用制御プログラム160が、ECU1a及びECU2の一方から送信されて他方で受信される処理を言う。ECU2は、ECU1aから配信された更新用制御プログラム160をROM22に記憶されている制御プログラム220に上書きすべくROM22に記憶させることにより、制御プログラム220を更新する。
図2は、ECU1a及びECU2間で送受信される通信信号及び更新用制御プログラム160を示すシーケンス図である。以下では、送受信の進捗をステップ番号(送受信の進捗を表す進捗情報に相当)で表す。図2では、制御プログラム220を「ソフト」と表記し、そのバージョンを「Ver」と表記する。また、制御プログラム220の更新に係る処理をリプログ又はリプロという。本実施形態1では、更新用制御プログラム160が更新ファイル161、162・・に分割されているが、これに限定されるものではない。更新ファイル161、162・・の1つ1つが、ECU1a及びECU2間で送受信される信号である。図2に示すシーケンスは1例であって、これに限定されるものではない。
リプログの実行に際し、ECU1aは、現在のソフトVer情報要求(通信信号の1つ)をECU2に送信し(ステップ1)、これを受信したECU2は、制御プログラム220の現在のバージョンを示す情報を現在のソフトVer応答(通信信号の1つ)に含ませてECU1aに返信する(ステップ2)。次に、ECU1aは、制御プログラム220のバージョンがリプログの対象バージョンであることを確認してリプロ準備完了通知(通信信号の1つ)をECU2に送信し(ステップ3)、これを受信したECU2は、自身がリプログの可能な状態である場合に、リプロ開始可能応答(通信信号の1つ)をECU1aに返信する(ステップ4)。
次に、ECU1aは、更新ファイル161、162・・を順次ECU2に送信する(ステップ5,6・・)。一方のECU2は、更新ファイル161、162・・を順次受信してRAM23内のバッファ領域(不図示)に一時記憶する。ECU1aは、複数に分割された更新用制御プログラム160を全て送信した後に、更新ファイル送信完了通知(通信信号の1つ)をECU2に送信し(ステップa)、これを受信したECU2は、更新用制御プログラム160を正常に受信した場合に、更新ファイル受信完了応答(通信信号の1つ)をECU1aに返信する(ステップa+1)。
その後、ECU1aは、ソフト更新要求(通信信号の1つ)をECU2に送信し(ステップa+2)、これを受信したECU2は、上記バッファ領域に記憶した更新用制御プログラム160を制御プログラム220に上書きしてソフト更新を実行した後に、ソフト更新完了応答(通信信号の1つ)をECU1aに返信する(ステップa+3)。
ECU1a及びECU2夫々の制御プログラム120及び220には、以上のシーケンスで各通信信号及び更新ファイル161、162・・を送受信するタスク(処理ルーチン)が含まれている。本実施形態1では、図2に示す送受信のシーケンスを実行するタスクを「上位タスク」と称し、そのフローチャートの記載を省略する。これらの上位タスクによる処理手順では、ECU1a及びECU2間で通信が一時的に中断された場合等において、ECU1a側とECU2側とで送受信の進捗が整合しなくなることがある。そこで、ECU1a側及びECU2側夫々にて、前述の上位タスクの下位に下位タスクを設け、下位タスクにて送受信の進捗を整合させる。
具体的に本実施形態1では、ECU1a及びECU2夫々にてステップ番号をRAM13及び23に記憶しておく。そして、上位タスク間で通信信号及び更新ファイル161、162・・が送受信される度に、下位タスク間でステップ番号を含む各種信号(以下、下位信号という)を送受信することにより、RAM13及び23夫々に記憶されたステップ番号を整合させるようにする。
例えば更新ファイル163の送信を中断した場合(図中の×印参照)、上位タスクは、再開時に送受信すべき更新ファイル163に対応するステップ番号(図2の例ではステップ7)を下位タスクに受け渡しておき、更新ファイル163の送信を再開する。以後、下位タスクによってRAM13及び23間で整合されたステップ番号が下位タスクから上位タスクに通知されるようにしておけば、更新ファイル161、162、163・・の送受信の連続性が保たれる。図2に白抜き矢印で示した処理については、後述する実施形態2にて説明する。以下では、上位タスクの下位に位置する下位タスクにて下位信号を送受信するECU1a及びECU2の動作を、それを示すフローチャートを用いて説明する。
図3は、通信信号及び更新ファイル161、162・・を送受信する都度、ステップ番号を含む下位信号を送受信するCPU11及びCPU21の処理手順を示すフローチャートである。図3に示すECU1a側の下位タスクの処理は、リプログがステップ1から開始されるときに起動される。また、ECU2側の下位タスクの処理は、リプログがステップ1から開始可能であるときに適時起動される。図3に示すECU1a側及びECU2側夫々の処理が起動される場合、RAM13及び23に記憶されるステップ番号は、例えばステップ1の1つ前のステップであることを表す「ステップ0」に初期化される。CPU11は、上位タスクが通信信号及び更新ファイル161、162・・の何れかを送受信する都度、上位タスクからステップ番号が指示されるものとする。リプログが完了したか否かは、上位タスクが管理しているものとする。
図3に示す処理の概要は、次のとおりである。ECU1aのCPU11は、上位タスクによる通信信号及び更新ファイル161、162・・の送受信の進捗に追従すべく、上位タスクから通知される送受信のステップ番号をRAM13に記憶して更新し、更新したステップ番号を含む下位信号をECU2に送信する。この下位信号を受信したECU2のCPU21は、受信した下位信号に含まれるステップ番号(以下、受信した各下位信号に含まれるステップ番号を、受信したステップ番号という)が、RAM23に記憶しているステップ番号より2以上大きいか否かを判定する。この判定は、ECU1a側の上位タスクによる信号の送受信がECU2側より早く進捗しているか否かを判定するものである。
上記判定で2以上大きいと判定された場合、CPU21は受信したステップ番号をRAM23に記憶しないため、予定された進捗通りに直前に実行された送受信のステップ番号がRAM23に保持される。一方、上記判定で2以上大きくはないと判定された場合、CPU21は受信したステップ番号をRAM23に記憶して更新するため、最後に実行された送受信のステップ番号がRAM23に記憶される。従って、RAM23に記憶されて更新されるステップ番号は、1回の更新で2以上増大することがなく、上位タスク間における送受信が予定通りに進捗している場合に1回の更新で1ずつ増大する。上位タスクが過去の送受信を再度実行した場合は、RAM23に記憶されて更新されるステップ番号が変化しないこともあるし、減少することもある。
CPU21は、更に、RAM23に記憶しているステップ番号を含む下位信号をECU1aに返信する。ここで返信される下位信号に含まれるステップ番号は、ECU1a及びECU2間での整合性が確認されたものである。返信された下位信号を受信したECU1aのCPU11は、受信したステップ番号に1を加算したステップ番号を特定して上位タスクに通知する。上位タスクは、通知されたステップ番号によって、ECU2との間で次に送受信すべき通信信号又は更新ファイルを決定することができる。
実際に図3の各処理が起動された場合、ECU1a側では、CPU11が、上位(タスク)よりステップ番号の指示が有ったか否かを判定し(S11)、指示が無かった場合(S11:NO)、指示が有るまで待機する。ステップ番号の指示が有った場合(S11:YES)、CPU11は、通知されたステップ番号をRAM13に記憶して更新する(S12:第1更新部に相当)と共に、更新したステップ番号を情報通知信号に含ませてECU2に送信する(S13:第1送信部及び送信部に相当)。
一方のECU2では、CPU21が、情報通知信号を受信したか否かを判定し(S21:第2受信部に相当)、受信しない場合(S21:NO)、受信するまで待機する。情報通知信号を受信した場合(S21:YES)、CPU21は、受信したステップ番号を上位(タスク)へ通知する(S22)。上位タスクは、通知されたステップ番号によって、次に送信すべき信号を変更したり、次に受信すべき信号の待ち受けを変更したりすることが好ましい。
次いで、CPU21は、受信したステップ番号が、RAM23に記憶したステップ番号+2以上であるか否かを判定し(S23:判定部に相当)、記憶したステップ番号+2以上ではない場合(S23:NO)、受信したステップ番号をRAM23に記憶して更新する(S24:第2更新部に相当)。ステップS24の処理を終えた場合、又は、受信したステップ番号が、記憶したステップ番号+2以上である場合(S23:YES)、CPU21は、RAM23に記憶したステップ番号を情報応答信号に含ませてECU1aに送信する(S25:第2送信部に相当)。
なお、ECU2で受信された情報通知信号に含まれるステップ番号が表す進捗が、RAM23に記憶されたステップ番号が表す進捗よりも信号(通信信号及び更新用制御プログラム160)の送受信1回分だけ早い場合は、最後の信号の送受信の進捗が予定通りであった場合に相当し、1回分以上早くはない場合は、過去の信号の送受信が再度実行された場合に相当する。
その後、CPU21は、リプログが完了したか否かを判定し(S26)、完了した場合(S26:YES)、図3の処理を終了する。これに対し、リプログが完了していない場合(S26:NO)、CPU21は、ステップS21に処理を移して、情報通知信号の受信待ちに戻る。
他方のECU1aでは、CPU11が、ステップS13の処理を終えたときにタイマ15による所定時間の計時を開始した(S14)後、情報応答信号を受信したか否かを判定している(S15:第1受信部及び受信部に相当)。ここでの所定時間は、上位タスクで信号の応答が監視される時間より短くしておくことが好ましい。情報応答信号を受信しない場合(S15:NO)、CPU11は、所定時間の計時が終了したか否かを判定し(S16)、終了しない場合(S16:NO)、ステップS15に処理を移す。
所定時間の計時が終了した場合(S16:YES)、CPU11は、RAM13に記憶したステップ番号を上位(タスク)に通知し(S17)、ステップS11に処理を移して、上位(タスク)からの指示待ちに戻る。これにより、上位タスクは、最後に送受信した信号の再送が必要であると判定できる。ステップS17では、ステップ番号を通知せずにタイムアウトの旨を通知し、その後の信号の送受信の変更を上位タスクで決定させるようにしてもよい。
ステップS15で情報応答信号を受信した場合(S15:YES)、CPU11は、受信したステップ番号より1つ大きいステップ番号を特定して上位(タスク)に通知する(S18:特定部に相当)。これにより、上位タスクにて次に送受信すべき通信信号又は更新ファイルが決定される。ここで上位タスクに通知されるステップ番号は、上位タスクが次に送受信を予定している信号に係るステップ番号と一致しているか、又はそれよりも若番である。ECU1a側の上位タスクは、例えば次に送信を予定している更新ファイルに係るステップ番号と、下位タスクから通知されたステップ番号とを照合する。照合結果が一致する場合、上位タスクは予定していた更新ファイルを送信する。照合結果が一致しない場合、上位タスクは、更新ファイルに係るステップ番号を通知されたステップ番号に戻す。これにより、上位タスクは、送信済みである複数の更新ファイルの一部のみを再送する形で、一連の更新ファイル161、162・・の送信を継続することができる。
その後、CPU11は、リプログが完了したか否かを判定し(S19)、完了した場合(S19:YES)、図3の処理を終了する。これに対し、リプログが完了していない場合(S19:NO)、CPU11は、ステップS11に処理を移して、上位(タスク)からの指示待ちに戻る。
以上のフローチャートに基づく処理により、ECU1a側及びECU2側夫々のRAM13及び23に記憶されるステップ番号が整合することを、図2を参照しつつ以下のケースに分けて説明する。
(a)ECU1aから送信された通信信号(例えば、現在のソフトVer情報要求)がECU2で受信されず、且つ、この通信信号に応じてECU1aから送信された下位信号(情報通知信号)がECU2で受信されたケース
(b)ECU1aから送信された通信信号(例えば、現在のソフトVer情報要求)がECU2で受信され、且つ、この通信信号に応じてECU1aから送信された下位信号(情報通知信号)がECU2で受信されないケース
(c)ECU2から送信された通信信号(例えば、現在のソフトVer応答)がECU1aで受信されないケース
(d)ECU1aから送信された更新ファイル161、162・・(例えば、更新ファイル161)がECU2で受信されず、且つ、この更新ファイル161に応じてECU1aから送信された下位信号(情報通知信号)がECU2で受信されたケース
(e)ECU1aから送信された更新ファイル161、162・・(例えば、更新ファイル161)に応じてECU1aから送信された下位信号(情報通知信号)がECU2で受信されないケース
(f)何らかの原因により、ECU1a側の上位タスクが図2に示すシーケンスを中断したケース
(a)のケース:現在のソフトVer情報要求に応じてECU1aから情報通知信号が送信された場合、RAM13及び23夫々に記憶されるステップ番号はステップ1である。その後、ECU1aで受信される情報応答信号に含まれるステップ番号(ここではステップ1)に1を加算した番号のステップ2が上位タスクに通知されるが、上位タスクは、現在のソフトVer応答が受信できないため、この通知を無視して現在のソフトVer情報要求を再送する。この再送に応じてECU1aから送信される情報通知信号に含まれるステップ番号はステップ1であるため、ステップ番号の不整合は発生しない。
(b)のケース:現在のソフト情報要求に応じてECU1aから送信された情報通知信号がECU2で受信されない状態で、現在のソフトVer応答がECU2から送信されてECU1aで受信されたことにより、ECU1aから次の情報通知信号が送信された場合、RAM13及び23夫々に記憶されるステップ番号はステップ2及びステップ1である。次いで、ECU1aで受信される情報応答信号に含まれるステップ番号(ここではステップ1)に1を加算した番号のステップ2が上位タスクに通知された場合、上位タスクはステップ番号をステップ3に進めずにステップ2に戻すために、現在のソフトVer情報要求を再送する。この再送に応じてECU1aから送信される情報通知信号に含まれるステップ番号はステップ1であるため、RAM13に記憶されるステップ番号がステップ1となり、ステップ番号の不整合が解消される。
(c)のケース:現在のソフトVer情報要求に応じてECU1aから情報通知信号が送信された場合、RAM13及び23夫々に記憶されるステップ番号はステップ1である。ECU1aの上位タスクは、現在のソフトVer応答が受信できないため、現在のソフトVer情報要求を再送する。この再送に応じてECU1aから送信される情報通知信号に含まれるステップ番号は、やはりステップ1であるため、ステップ番号の不整合は発生しない。
(d)のケース:最初の更新ファイル161に応じてECU1aから情報通知信号が送信された場合、RAM13及び23夫々に記憶されるステップ番号はステップ5である。その後、ECU1aから送信された更新ファイル162がECU2で受信された場合、ECU2の上位タスクが更新ファイルの不連続を検出してECU1aに再送を要求するように構成しておくことができる。その後、再送される更新ファイル161に応じてECU1aから送信される情報通知信号に含まれるステップ番号は、やはりステップ5であるため、ステップ番号の不整合は発生しない。
(e)のケース:1つ前のリプロ開始可能応答に応じてECU1aから情報通知信号が送信された結果、RAM13及び23夫々に記憶されたステップ番号はステップ4である。その後、更新ファイル161に応じてECU1aから送信された情報通知信号がECU2で受信されない状態で、更新ファイル162に応じてECU1aから情報通知信号が送信された場合、RAM13及び23夫々に記憶されるステップ番号がステップ6及びステップ4となる。次いで、ECU1aで受信される情報応答信号に含まれるステップ番号(ここではステップ4)に1を加算した番号のステップ5が上位タスクに通知されるため、上位タスクは、更新ファイル161を再送する。この再送に応じてECU1aから送信される情報通知信号に含まれるステップ番号はステップ5であるため、RAM13及び23夫々に記憶されるステップ番号が何れもステップ5となって不整合が解消する。なお、このケースでは、最初の更新ファイル161がECU2で受信されなかった場合であっても、上位タスク間の再送手順は必要とされない。
(f)のケース:ECU1a側の上位タスクは、図3に示すECU1a側の処理をステップS11から再開させてステップ番号が指示されるのを待ち受ける状態にしておき、この処理に対して再開時のステップ番号を指示する。これに応じて、図3に示すECU1a側の処理がステップS11で指示されたステップ番号をRAM13に記憶することにより、記憶されたステップ番号を含む情報通知信号がECU2に送信されて、図3に示す処理の全体が再開される。その後、RAM13及び23に記憶されるステップ番号が整合するように処理が進むのは、上述したケース(a)から(e)までの説明によって明らかである。
以上のように本実施形態1によれば、ECU1a及びECU2が通信信号及び更新用制御プログラム160を互いに送受信する間に、ECU1aからECU2に配信された更新用制御プログラム160を自装置のROM22に記憶させることにより、ROM22内の制御プログラム220を更新する。ECU1aは、通信信号及び更新用制御プログラム160の送受信の進捗を表すステップ番号を、送受信の進捗に応じてRAM13に記憶して更新すると共に更新したステップ番号を情報通知信号に含ませてECU2に送信する。ECU2は、ECU1aから受信した情報通知信号に含まれるステップ番号に基づいて、RAM23に記憶するステップ番号を更新すると共に更新したステップ番号を情報応答信号に含ませてECU1aに送信する。そして、ECU1aは、ECU2から受信した情報応答信号に含まれるステップ番号に応じて、ECU2との間で次に送受信すべき通信信号又は更新用制御プログラム160を特定する。これにより、信号の送受信の進捗と共にECU2にて更新されたステップ番号に応じて、ECU1aとECU2との間で次に送受信すべき通信信号又は更新用制御プログラム160が特定されるため、ECU1a及びECU2間における信号の送受信の進捗ずれを防止することが可能となる。
また、実施形態1によれば、ECU1aがECU2との間で通信信号及び更新用制御プログラム160を互いに送受信する間に、ECU2に更新用制御プログラム160を配信してROM22内の制御プログラム220を更新させる。ECU1aは、通信信号及び更新用制御プログラム160の送受信の進捗を表すステップ番号を、送受信の進捗に応じてRAM13に記憶して更新すると共に更新したステップ番号を情報通知信号に含ませてECU2に送信する。ECU1aは、情報通知信号に含ませてECU2に送信したステップ番号に基づいてECU2にて更新されたステップ番号を含む情報応答信号をECU2から受信し、受信した情報応答信号に含まれるステップ番号に応じて、ECU2との間で次に送受信すべき通信信号又は更新用制御プログラム160を特定する。これにより、信号の送受信の進捗と共にECU2にて更新されたステップ番号に応じて、ECU2との間で次に送受信すべき通信信号又は更新用制御プログラム160が特定されるため、ECU1a及びECU2間における信号の送受信の進捗ずれを防止することが可能となる。
更に、実施形態1によれば、ECU2は、ECU1aから受信した情報通知信号に含まれるステップ番号が表す進捗が、RAM23に記憶したステップ番号が表す進捗よりも、通信信号及び更新用制御プログラム160の何れかの送受信(送信又は受信)2回分以上早いとは判定されない場合に、受信したステップ番号をRAM23に記憶して更新し、更新した場合及び更新しない場合の何れの場合であってもRAM23に記憶したステップ番号を情報応答信号に含ませてECU1aに送信する。これにより、ECU2は、受信したステップ番号によって、ECU1aにおける信号の送受信の進捗が、予定される進捗より早いと判定した場合に、RAM23に記憶するステップ番号を更新せずにECU1aに送信するため、ECU1aにて信号の送受信を進捗させないようにすることが可能となる。ECU2は、また、受信したステップ番号によって、ECU1aにおける信号の送受信の進捗が、予定される進捗より早くはないと判定した場合に、受信したステップ番号をECU1aに送信するため、ECU2のRAM23に記憶するステップ番号をECU1aにおける信号の送受信の進捗に整合させることが可能となる。
更に、実施形態1によれば、ECU1aと、ECU2との間で行われる通信信号及び更新用制御プログラム160の送受信を中断した場合、ECU1aは、再開時に送受信されるべき通信信号又は更新用制御プログラム160に応じて、RAM13に記憶するステップ番号を更新し、更新したステップ番号をECU2に送信する。以後、ステップ番号の交換が前述の通り行われる。従って、再開後に、ECU1aのRAM13に記憶されるステップ番号と、ECU2のRAM23に記憶されるステップ番号とが整合するように、ECU1aとECU2との間で次に送受信すべき通信信号又は更新用制御プログラム160が特定されるため、ECU1a及びECU2間における信号の送受信の進捗ずれを防止することが可能となる。
(実施形態2)
実施形態1は、ECU1a及びECU2夫々で記憶されるステップ番号を、ECU2における判定に基づいてECU1aが整合させる形態であるのに対し、実施形態2は、ECU1aが主体的にステップ番号を整合させる形態である。実施形態2におけるプログラム更新システムの構成は、実施形態1の場合と同様であるため、実施形態1に対応する箇所には同様の符号を付してその説明を省略する。
実施形態1の例では、情報応答信号が所定時間内に受信できなかった場合(図3のステップS17参照)を含めて、一旦中断したシーケンスが再開された場合((f)のケース参照)は、上位タスクが再開時に送受信すべき信号のステップ番号を正確に把握していない限り、ECU1a及びECU2間における信号の送受信の進捗ずれを防止できないことがある。
そこで、本実施形態2では、実施形態1の図2に白抜き矢印で示すように、ECU1aがECU2に対して積極的にステップ番号を問い合わせ、取得したステップ番号とRAM13に記憶したステップ番号とを照合し、整合が取れたステップ番号をECU2に通知するようにする。以下では、図2に示す送受信のシーケンスを実行する上位タスクの下位に位置する下位タスクにて下位信号を送受信するECU1a及びECU2の動作を、それを示すフローチャートを用いて説明する。
図4は、ステップ番号の要求、応答及び通知を行う下位信号を送受信するCPU11及びCPU21の処理手順を示すフローチャートである。図4に示すECU1a側及びECU2側の下位タスクの処理は、一旦中断されたリプログが再開されるときに起動される。ECU2側では、例えば、情報通知信号の受信(図3のステップS21参照)が一定時間内に完了しないときに起動されるようにしてもよい。
図4に示す処理の概要は、次のとおりである。ECU1aのCPU11は、ECU2にステップ番号の応答を要求する下位信号を送信する。この下位信号を受信したECU2は、RAM23に記憶しているステップ番号を含む下位信号をECU1aに送信する。この下位信号を受信したECU1aは、受信したステップ番号と、RAM13に記憶しているステップ番号とを比較して若番のステップ番号を特定し、特定したステップ番号をRAM13に記憶して更新すると共に、更新したステップ番号を含む下位信号をECU2に送信する。この下位信号を受信したECU2は、受信したステップ番号をRAM23に記憶して更新する。これにより、RAM13及び23に記憶されたステップ番号が整合する。
実際に図4の処理が起動された場合、ECU1a側では、CPU11が、情報要求信号を送信する(S31:第3送信部に相当)。
一方のECU2では、CPU21が、情報要求信号を受信したか否かを判定し(S41:第4受信部に相当)、受信しない場合(S41:NO)、受信するまで待機する。情報要求信号を受信した場合(S41:YES)、CPU21は、RAM23に記憶したステップ番号を読み出し(S42)、読み出したステップ番号を情報応答信号に含ませてECU1aに送信する(S43:第5送信部に相当)。
他方のECU1aでは、CPU11が、情報応答信号を受信したか否かを判定し(S32:第3受信部に相当)、受信しない場合(S32:NO)、受信するまで待機する。情報応答信号を受信した場合(S32:YES)、CPU11は、受信したステップ番号と、RAM13に記憶したステップ番号とを比較し(S33:比較部に相当)、比較結果に基づいて若番のステップ番号を特定する(S34:第2の特定部に相当)。
次いで、CPU11は、特定したステップ番号をRAM13に記憶して更新する(S35:第3更新部に相当)と共に、更新したステップ番号を情報変更信号に含ませてECU2に送信する(S36:第4送信部に相当)。CPU11は、更新したステップ番号に変更すべき旨を上位へ通知した(S37)後、ステップS11(図3参照)へ処理を移す。以後、CPU11は、図3に示すECU1a側の処理を実行する。下位タスクからステップ番号の変更が通知された上位タスクは、例えば更新ファイルに係るステップ番号を通知されたステップ番号に変更する。これにより、上位タスクは、一連の更新ファイル161、162・・の送信の途中から処理を再開することができる。
一方のECU2では、CPU21が、情報変更信号を受信したか否かを判定し(S44:第5受信部に相当)、受信しない場合(S44:NO)、受信するまで待機する。情報変更信号を受信した場合(S44:YES)、CPU21は、受信したステップ番号をRAM23に記憶して更新する(S45:第4更新部に相当)と共に、更新したステップ番号に変更すべき旨を上位へ通知した(S46)後、ステップS21(図3参照)へ処理を移す。以後、CPU21は、図3に示すECU2側の処理を実行する。
以上のように本実施形態2によれば、ECU1aとECU2との間におけるコンピュータプログラムの送受信を中断した場合、ECU1aは、ECU2のRAM23に記憶されたステップ番号の送信を要求する情報要求信号をECU2に送信し、この情報要求信号を受信したECU2は、RAM23に記憶したステップ番号を情報応答信号に含ませてECU1aに送信する。この情報応答信号を受信したECU1aは、情報応答信号に含まれるステップ番号とRAM23に記憶したステップ番号とを比較して若番のステップ番号を特定し、特定したステップ番号をRAM13に記憶して更新すると共に、更新したステップ番号を情報変更信号に含ませてECU2に送信する。この情報変更信号を受信したECU2は、情報変更信号に含まれるステップ番号をRAM23に記憶して更新する。これにより、ECU1a及びECU2のうち、信号の送受信の進捗が遅い方に合わせて次に送受信すべき通信信号又は更新用制御プログラム160が特定されるため、ECU1a及びECU2間における信号の送受信の進捗ずれを防止することが可能となる。
(実施形態3)
実施形態1は、ECU1aが内部記憶装置16に記憶された更新用制御プログラム160をECU2に送信し、これを受信したECU2がROM22に記憶された制御プログラム220を更新する形態であった。これに対し、実施形態3は、更新装置3が内部記憶装置に記憶(保持)された更新用制御プログラムをECU1bに送信し、ECU1bが受信した更新用制御プログラムをECU2に更に送信し、これを受信したECU2がROM22に記憶された制御プログラム220を更新する形態である。
図5は、本発明の実施形態3に係るプログラム更新システムの構成例を示すブロック図である。プログラム更新システムは、1又は複数のECU2(通信装置に相当)、ECU1b(配信装置に相当)及び更新装置3を含み、これらが通信線4を介して通信可能に接続されている。更新装置3は、例えばECU1bの不図示のOBD(On-Board Diagnostics )コネクタを介して接続ケーブルで接続されていてもよい。
ECU1bは、実施形態1の図1に示すECU1aと比較して内部記憶装置16を欠いているが、その他の構成はECU1aと同様である。
更新装置3は、CPU31(プロセッサに相当)を有するマイクロコンピュータを含んでなる。CPU31は、制御プログラム320(コンピュータプログラムに相当)等の情報を記憶するROM32(メモリに相当)、一時的に発生した情報を記憶するRAM33(記憶部に相当)、通信部14,24と同じ通信規格による通信を行う通信部34、経過時間等を計時するタイマ35、及び内部記憶装置36とバス接続されている。
内部記憶装置36は、例えばハードディスク装置又はフラッシュメモリであり、ECU1bに送信すべき更新用制御プログラム360(新たなコンピュータプログラムに相当)が予め記憶されている。その他、実施形態1に対応する箇所には同様の符号を付してその説明を省略する。
上述の構成にて、ECU1b及び更新装置3夫々が、通信部14及び34を用いて通信信号及び更新用制御プログラム360(以下、これらを総称して単に信号ともいう)を互いに送受信することにより、ECU1bが更新用制御プログラム360を更新装置3から取得する。ECU1bは、取得した更新用制御プログラム360を、実施形態1に示す手順でECU2に配信し、ECU2は配信された更新用制御プログラム360をROM22に記憶されている制御プログラム220に上書きすべくROM22に記憶させることにより、制御プログラム220を更新する。
図6は、更新装置3、ECU1b及びECU2間で送受信される通信信号及び更新用制御プログラム360を示すシーケンス図である。本実施形態3では、更新用制御プログラム360が更新ファイル361,362・・に分割されているが、これに限定されるものではない。更新ファイル361,362・・の1つ1つが、更新装置3及びECU1b間と、ECU1b及びECU2間とで送受信される信号である。図6に示すシーケンスは1例であって、これに限定されるものではない。以下では、主に更新装置3及びECU1b間の通信シーケンスについて説明する。例えば、更新用制御プログラム360の送受信が中断及び再開される場合のシーケンスは、ステップ番号の問い合わせ、照合、通知が行われる場合を含めて、実施形態1の図2に示すものと同様であるため、図6への記載を省略する。ECU1b及びECU2間の通信シーケンスについては、実施形態1で既に説明したため、ここでの説明を省略する。
リプログの実行に際し、ECU1bは、ソフト新Ver有無確認要求(通信信号の1つ)を更新装置3に送信し(ステップ1)、これを受信したECU2は、更新用制御プログラム360が内部記憶装置36に記憶されている場合に、ソフト新Ver有無応答(有)(通信信号の1つ)をECU1bに返信する(ステップ2)。次に、ECU1bは、ECU2の制御プログラム220のバージョンがリプログの対象バージョンであることを確認して更新ファイルDL準備要求(通信信号の1つ)を更新装置3に送信し(ステップ3)、これを受信した更新装置3は、更新ファイル送信準備完了応答(通信信号の1つ)をECU1bに返信する(ステップ4)。
次に、ECU1bは、更新ファイル送信要求(通信信号の1つ)を更新装置3に送信し(ステップ5)、これを受信した更新装置3は、更新ファイル361、362・・を順次ECU1bに送信する(ステップ6,7・・)。更新装置3は、複数に分割された更新用制御プログラム360を全て送信した後に、更新ファイル送信終了通知(通信信号の1つ)をECU1bに送信する(ステップa)。これを受信したECU1bは、更新用制御プログラム360を正常に受信した場合に、更新ファイル受信完了応答(通信信号の1つ)を更新装置3に返信する(ステップa+1)。その後、ECU1b及びECU2間の処理手順が終了した場合、ECU1bは、リプロ完了応答(通信信号の1つ)を更新装置3に送信して(ステップa+2)リプログを終了する。
ECU1b及び更新装置3夫々の制御プログラム120及び320には、以上のシーケンスで各通信信号及び更新ファイル361、362・・を送受信する上位タスクが含まれている。ここでは、図6に示す送受信のシーケンスを実行する上位タスクのフローチャートの記載を省略する。これらの上位タスクによる処理手順では、ECU1b及び更新装置3間で通信が一時的に中断された場合等において、ECU1b側と更新装置3側とで送受信の進捗が整合しなくなることがある。そこで、ECU1b側及び更新装置3側夫々にて、前述の上位タスクの下位に下位タスクを設け、下位タスクにて送受信の進捗を整合させる。
具体的に本実施形態3では、ECU1b及び更新装置3夫々にてステップ番号をRAM13及び33に記憶しておく。そして、上位タスク間で通信信号及び更新ファイル361、362・・が送受信される度に、下位タスク間でステップ番号を含む下位信号を送受信することにより、RAM13及び33夫々に記憶されたステップ番号を整合させるようにする。
なお、ECU1b及び更新装置3で下位信号を送受信する下位タスクの動作を示すフローチャートについては、実施形態1の図3にてECU1a及びECU2夫々をECU1b及び更新装置3で置き換えたものと同様であるため、フローチャートの図示及びその説明を省略する。
図3に示すフローチャートに基づく処理により、ECU1b側及び更新装置3側夫々のRAM13及び33に記憶されるステップ番号が整合することを、図6を参照しつつ以下のケースに分けて説明する。
(a)ECU1bから送信された通信信号(例えば、ソフト新Ver有無確認要求)が更新装置3で受信されず、且つ、この通信信号に応じてECU1bから送信された下位信号(情報通知信号)が更新装置3で受信されたケース
(b)ECU1bから送信された通信信号(例えば、ソフト新Ver有無確認要求)が更新装置3で受信され、且つ、この通信信号に応じてECU1bから送信された下位信号(情報通知信号)が更新装置3で受信されないケース
(c)更新装置3から送信された通信信号(例えば、ソフト新Ver有無応答)がECU1bで受信されないケース
(d)更新装置3から送信された更新ファイル361,362・・(例えば、更新ファイル361)がECU1bで受信されず、且つ、この更新ファイル361に応じてECU1bから送信された下位信号(情報通知信号)が更新装置3で受信されたケース
(e)更新装置3から送信された更新ファイル361,362・・(例えば、更新ファイル361)に応じてECU1bから送信された下位信号(情報通知信号)が更新装置3で受信されないケース
(f)何らかの原因により、ECU1b側の上位タスクが図6に示すシーケンスを中断したケース
(a)、(b)及び(c)夫々のケースについては、実施形態1の(a)、(b)及び(c)の場合と同様に不整合が発生しないことが明らかであるため、詳細な説明を省略する。
(d)のケース:最初の更新ファイル361に応じてECU1bから情報通知信号が送信された場合、RAM13及び33夫々に記憶されるステップ番号はステップ6である。その後、更新装置3から送信された更新ファイル362がECU1bで受信された場合、ECU1bの上位タスクが更新ファイルの不連続を検出して更新装置3に再送を要求するように構成しておくことができる。その後、再送される更新ファイル361に応じてECU1bから送信される情報通知信号に含まれるステップ番号は、やはりステップ6であるため、ステップ番号の不整合は発生しない。
(e)のケース:1つ前の更新ファイル送信要求に応じてECU1bから情報通知信号が送信された結果、RAM13及び33夫々に記憶されたステップ番号はステップ5である。その後、更新ファイル361に応じてECU1bから送信された情報通知信号が更新装置3で受信されない状態で、更新ファイル362に応じてECU1bから情報通知信号が送信された場合、RAM13及び33夫々に記憶されるステップ番号がステップ7及びステップ5となる。次いで、ECU1bで受信される情報応答信号に含まれるステップ番号(ここではステップ5)に1を加算した番号のステップ6が上位タスクに通知されるため、上位タスクは、更新ファイル361を再送する。この再送に応じてECU1bから送信される情報通知信号に含まれるステップ番号はステップ6であるため、RAM13及び33夫々に記憶されるステップ番号が何れもステップ6となって不整合が解消する。なお、このケースでは、最初の更新ファイル361がECU1bで受信されなかった場合であっても、上位タスク間の再送手順は必要とされない。
(f)のケース:ECU1b側の上位タスクは、図3に示すECU1a(上記の置き換え後はECU1b)側の処理をステップS11から再開させてステップ番号が指示されるのを待ち受ける状態にしておき、この処理に対して再開時のステップ番号を指示する。これに応じて、図3に示すECU1a(1b)側の処理がステップS11で指示されたステップ番号RAM13に記憶することにより、RAM13に記憶されたステップ番号を含む情報通知信号がECU2(上記の置き換え後は更新装置3)に送信されて、図3に示す処理の全体が再開される。その後、RAM13及び33に記憶されるステップ番号が整合するように処理が進むのは、上述したケース(a)から(e)までの説明によって明らかである。
なお、本実施形態3にあっては、ECU1b及び更新装置3間の信号の送受信の進捗を表すステップ番号を、実施形態1におけるECU1a及びECU2間の信号の送受信の場合と同様の連番にしたが、これらのステップ番号が明示的に区別されるようにしてもよい。例えば、ソフト新Ver有無確認要求:ステップ1_1、ソフト新Ver有無応答:ステップ1_2、更新ファイルDL準備要求:ステップ1_3・・・・とし、現在のソフトVer情報要求:ステップ2_1、現在のソフトVer応答:ステップ2_2、リプロ準備完了通知:ステップ2_3・・・としてもよい。
また例えば、ECU1b、更新装置3及びECU2相互間の信号の送受信の進捗を連番のステップ番号で表すべく、ソフト新Ver有無確認要求:ステップ1、ソフト新Ver有無応答:ステップ2、現在のソフトVer情報要求:ステップ3、現在のソフトVer応答:ステップ4、更新ファイルDL準備要求:ステップ5・・・・としてもよい。上述の2つの例のように全てのステップ番号が明示的に区別される場合、ECU1bは、下位信号の送信先を区別する必要がなく、情報通知信号をブロードキャストしてもよい。
以上のように本実施形態3によれば、ECU1b及び更新装置3が通信信号及び更新用制御プログラム360を互いに送受信する間に、ECU1bが新たなコンピュータプログラムを更新装置3から取得する。ECU1bは、取得した新たなコンピュータプログラムをECU2に配信し、ECU2は配信された新たなコンピュータプログラムを自装置のROM22に記憶させることにより、メモリ内のコンピュータプログラムを更新する。ECU1bは、通信信号及び更新用制御プログラム360の送受信の進捗を表すステップ番号を、送受信の進捗に応じてRAM13に記憶して更新すると共に更新したステップ番号を情報通知信号に含ませて更新装置3に送信する。更新装置3は、ECU1bから受信した情報通知信号に含まれるステップ番号に基づいて、RAM33に記憶するステップ番号を更新すると共に更新したステップ番号を情報応答信号に含ませてECU1bに送信する。そして、ECU1bは、更新装置3から受信した情報応答信号に含まれるステップ番号に応じて、更新装置3との間で次に送受信すべき通信信号又は更新用制御プログラム360を特定する。これにより、信号の送受信の進捗と共に更新装置3にて更新されたステップ番号に応じて、ECU1bと更新装置3との間で次に送受信すべき通信信号又は更新用制御プログラム360が特定されるため、ECU1b及び更新装置3間における信号の送受信の進捗ずれを防止することが可能となる。
また、実施形態によれば、ECU1bと、更新装置3との間で行われる通信信号及び更新用制御プログラム360の送受信を中断した場合、ECU1bは、再開時に送受信されるべき通信信号又は更新用制御プログラム360に応じて、RAM13に記憶するステップ番号を更新し、更新したステップ番号を更新装置3に送信する。以後、ステップ番号の交換が前述の通り行われる。従って、再開後に、ECU1bのRAM13に記憶されるステップ番号と、更新装置3のRAM33に記憶されるステップ番号とが整合するように、ECU1bと更新装置3との間で次に送受信すべき通信信号又は更新用制御プログラム360が特定されるため、ECU1b及び更新装置3間における信号の送受信の進捗ずれを防止することが可能となる。
更に、実施形態1(又は3)によれば、複数に分割されている更新用制御プログラム160(又は更新用制御プログラム360)が、ECU1a及びECU2間(又はECU1b及び更新装置3間)で順次送受信される。これにより、分割された更新ファイル161、162・・(又は更新ファイル361、362・・)について、送受信の進捗ずれを防止することが可能となる。
1a、1b、2 ECU
11、21、31 CPU
12、22、32 ROM
120、220、320 制御プログラム
13、23、33 RAM
14、24、34 通信部
15、35 タイマ
16、36 内部記憶装置
160、360 更新用制御プログラム
3 更新装置
4 通信線

Claims (13)

  1. メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されており、コンピュータプログラムを配信する配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新システムであって、
    前記配信装置及び通信装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、
    前記配信装置は、
    前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新する第1更新部と、
    該第1更新部で更新した進捗情報を前記通信装置に送信する第1送信部と、
    該第1送信部で進捗情報を送信した場合、前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信する第1受信部と、
    該第1受信部で受信した進捗情報に応じて、前記通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部と
    を備え、
    前記通信装置は、
    前記配信装置から送信された進捗情報を受信する第2受信部と、
    該第2受信部で受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新する第2更新部と、
    該第2更新部で更新した進捗情報を前記配信装置に送信する第2送信部と
    を備えるプログラム更新システム。
  2. メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されており、コンピュータプログラムを配信する配信装置及び配信されるべきコンピュータプログラムを保持する更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記配信装置が取得した新たなコンピュータプログラムを通信装置に配信し、該通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新システムであって、
    前記配信装置及び更新装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、
    前記配信装置は、
    前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新する第1更新部と、
    該第1更新部で更新した進捗情報を前記更新装置に送信する第1送信部と、
    該第1送信部で進捗情報を送信した場合、前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信する第1受信部と、
    該第1受信部で受信した進捗情報に応じて、前記更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部と
    を備え、
    前記更新装置は、
    前記配信装置から送信された進捗情報を受信する第2受信部と、
    該第2受信部で受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新する第2更新部と、
    該第2更新部で更新した進捗情報を前記配信装置に送信する第2送信部と
    を備えるプログラム更新システム。
  3. 前記配信装置は、前記通信信号及び新たなコンピュータプログラムの送受信を中断した場合、前記第1更新部によって自装置の記憶部に記憶する進捗情報を、送受信を再開すべき通信信号又は新たなコンピュータプログラムに応じて更新するようにしてある請求項1に記載のプログラム更新システム。
  4. 前記配信装置は、前記通信信号及び新たなコンピュータプログラムの送受信を中断した場合、前記第1更新部によって自装置の記憶部に記憶する進捗情報を、送受信を再開すべき通信信号又は新たなコンピュータプログラムに応じて更新するようにしてある請求項2に記載のプログラム更新システム。
  5. 前記配信装置は、
    前記通信信号及び新たなコンピュータプログラムの送受信を中断した場合、前記通信装置の記憶部に記憶された進捗情報の送信を要求する信号を前記通信装置に送信する第3送信部と、
    該第3送信部で信号を送信した場合、前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信する第3受信部と、
    該第3受信部で受信した進捗情報と自装置の記憶部に記憶した進捗情報とを比較する比較部と、
    該比較部の比較結果に基づいて、より遅い進捗を表す進捗情報を特定する第2の特定部と、
    該第2の特定部で特定した進捗情報を自装置の記憶部に記憶して更新する第3更新部と、
    該第3更新部で更新した進捗情報を前記通信装置に送信する第4送信部と
    を更に備え、
    前記通信装置は
    前記配信装置から前記進捗情報の送信を要求する信号を受信する第4受信部と、
    該第4受信部で信号を受信した場合、自装置の記憶部に記憶した進捗情報を前記配信装置に送信する第5送信部と、
    該第5送信部で進捗情報を送信した場合、前記配信装置の記憶部に記憶された進捗情報を前記配信装置から受信する第5受信部と、
    該第5受信部で受信した進捗情報を自装置の記憶部に記憶して更新する第4更新部と
    を更に備える
    請求項1に記載のプログラム更新システム。
  6. 前記配信装置は、
    前記通信信号及び新たなコンピュータプログラムの送受信を中断した場合、前記更新装置の記憶部に記憶された進捗情報の送信を要求する信号を前記更新装置に送信する第3送信部と、
    該第3送信部で信号を送信した場合、前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信する第3受信部と、
    該第3受信部で受信した進捗情報と自装置の記憶部に記憶した進捗情報とを比較する比較部と、
    該比較部の比較結果に基づいて、より遅い進捗を表す進捗情報を特定する第2の特定部と、
    該第2の特定部で特定した進捗情報を自装置の記憶部に記憶して更新する第3更新部と、
    該第3更新部で更新した進捗情報を前記更新装置に送信する第4送信部と
    を更に備え、
    前記更新装置は、
    前記配信装置から前記進捗情報の送信を要求する信号を受信する第4受信部と、
    該第4受信部で信号を受信した場合、自装置の記憶部に記憶した進捗情報を前記配信装置に送信する第5送信部と、
    該第5送信部で進捗情報を送信した場合、前記配信装置の記憶部に記憶された進捗情報を前記配信装置から受信する第5受信部と、
    該第5受信部で受信した進捗情報を自装置の記憶部に記憶して更新する第4更新部と
    を更に備える
    請求項2に記載のプログラム更新システム。
  7. 前記通信装置は
    前記第2受信部で受信した進捗情報が表す進捗が、自装置の記憶部に記憶した進捗情報が表す進捗よりも、前記通信信号及び新たなコンピュータプログラムの何れかの送受信2回分以上早いか否かを判定する判定部を更に備え、
    前記第2更新部は、前記判定部で2回分以上早くはないと判定した場合、前記第2受信部で受信した進捗情報を自装置の記憶部に記憶して更新するようにしてあり、
    前記第2送信部は、前記判定部の判定結果に関わらず、自装置の記憶部に記憶した進捗情報を前記配信装置に送信するようにしてある
    請求項1、3及び5の何れか1項に記載のプログラム更新システム。
  8. 前記更新装置は、
    前記第2受信部で受信した進捗情報が表す進捗が、自装置の記憶部に記憶した進捗情報が表す進捗よりも、前記通信信号及び新たなコンピュータプログラムの何れかの送受信2回分以上早いか否かを判定する判定部を更に備え、
    前記第2更新部は、前記判定部で2回分以上早くはないと判定した場合、前記第2受信部で受信した進捗情報を自装置の記憶部に記憶して更新するようにしてあり、
    前記第2送信部は、前記判定部の判定結果に関わらず、自装置の記憶部に記憶した進捗情報を前記配信装置に送信するようにしてある
    請求項2、4及び6の何れか1項に記載のプログラム更新システム。
  9. 前記新たなコンピュータプログラムは、複数に分割されており、
    前記配信装置と前記通信装置とは、分割されたコンピュータプログラムを順次互いに送受信するようにしてある
    請求項1、3、5及び7の何れか1項に記載のプログラム更新システム。
  10. 前記新たなコンピュータプログラムは、複数に分割されており、
    前記配信装置と前記更新装置とは、分割されたコンピュータプログラムを順次互いに送受信するようにしてある
    請求項2、4、6及び8の何れか1項に記載のプログラム更新システム。
  11. メモリに記憶してあるコンピュータプログラムに基づく処理を実行する外部装置と通信可能に接続されており、前記外部装置との間で通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記外部装置に前記新たなコンピュータプログラムを配信してコンピュータプログラムを更新させる配信装置であって、
    前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部と、
    前記送受信の進捗に応じて、前記記憶部に記憶する進捗情報を更新する更新部と、
    該更新部で更新した進捗情報を前記外部装置に送信する送信部と、
    該送信部で送信した進捗情報に基づいて前記外部装置にて更新された進捗情報を前記外部装置から受信する受信部と、
    該受信部で受信した進捗情報に応じて、前記外部装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定する特定部と
    を備える配信装置。
  12. メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されている通信システムにて、コンピュータプログラムを配信する配信装置及び通信装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新方法であって、
    前記配信装置及び通信装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、
    前記配信装置は、
    前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新し、
    更新した進捗情報を前記通信装置に送信し、
    前記通信装置の記憶部に記憶された進捗情報を前記通信装置から受信し、
    受信した進捗情報に応じて、前記通信装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定し、
    前記通信装置は、
    前記配信装置から送信された進捗情報を受信し、
    受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新し、
    更新した進捗情報を前記配信装置に送信するプログラム更新方法。
  13. メモリに記憶してあるコンピュータプログラムに基づく処理を実行するプロセッサを備える複数の装置が通信可能に接続されている通信システムにて、コンピュータプログラムを配信する配信装置及び配信されるべきコンピュータプログラムを保持する更新装置が通信信号及び新たなコンピュータプログラムを互いに送受信することにより、前記配信装置が取得した新たなコンピュータプログラムを通信装置に配信し、該通信装置に配信された新たなコンピュータプログラムを自装置のメモリに記憶させてコンピュータプログラムを更新するプログラム更新方法であって、
    前記配信装置及び更新装置夫々は、前記通信信号及び新たなコンピュータプログラムの送受信の進捗を表す進捗情報を記憶するための記憶部を備え、
    前記配信装置は、
    前記送受信の進捗に応じて、自装置の記憶部に記憶する進捗情報を更新し、
    更新した進捗情報を前記更新装置に送信し、
    前記更新装置の記憶部に記憶された進捗情報を前記更新装置から受信し、
    受信した進捗情報に応じて、前記更新装置との間で次に送受信すべき通信信号又は新たなコンピュータプログラムを特定し、
    前記更新装置は、
    前記配信装置から送信された進捗情報を受信し、
    受信した進捗情報に基づいて、自装置の記憶部に記憶する進捗情報を更新し、
    更新した進捗情報を前記配信装置に送信するプログラム更新方法。
JP2018523532A 2016-12-06 2017-12-05 プログラム更新システム、配信装置及びプログラム更新方法 Active JP6504315B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016236942 2016-12-06
JP2016236942 2016-12-06
PCT/JP2017/043642 WO2018105609A1 (ja) 2016-12-06 2017-12-05 プログラム更新システム、配信装置及びプログラム更新方法

Publications (2)

Publication Number Publication Date
JPWO2018105609A1 JPWO2018105609A1 (ja) 2018-12-06
JP6504315B2 true JP6504315B2 (ja) 2019-04-24

Family

ID=62491101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018523532A Active JP6504315B2 (ja) 2016-12-06 2017-12-05 プログラム更新システム、配信装置及びプログラム更新方法

Country Status (5)

Country Link
US (1) US10684932B2 (ja)
EP (1) EP3438815B1 (ja)
JP (1) JP6504315B2 (ja)
CN (1) CN108780392B (ja)
WO (1) WO2018105609A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220024472A1 (en) * 2021-07-07 2022-01-27 Toyota Jidosha Kabushiki Kaisha Control apparatus for vehicle

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019050597A1 (en) * 2017-09-08 2019-03-14 Cornell University PROTECTIVE LAYERS FOR BATTERY ELECTRODES
JP7400232B2 (ja) 2018-08-10 2023-12-19 株式会社デンソー 電子制御装置、リトライポイントの特定方法、リトライポイントの特定プログラム及び車両用電子制御システム
CN110187891B (zh) * 2019-03-18 2023-03-03 杭州电子科技大学 一种用于多核可编程控制器的程序开发方法及系统
KR20200141296A (ko) * 2019-06-10 2020-12-18 현대자동차주식회사 차량 업데이트 제어 장치 및 방법
WO2023119909A1 (ja) * 2021-12-24 2023-06-29 株式会社デンソー 車両通信システム及び車載側システム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358177A (ja) * 2001-06-01 2002-12-13 Ricoh Co Ltd 画像形成装置、該装置のシリアル通信方法および該方法をコンピュータに実行させるプログラム並びに該プログラムを記録した記録媒体
JP2006180399A (ja) * 2004-12-24 2006-07-06 Iwatsu Electric Co Ltd 無線端末組み込みプログラム書き換え方法
US7539488B2 (en) * 2005-11-09 2009-05-26 Texas Instruments Norway As Over-the-air download (OAD) methods and apparatus for use in facilitating application programming in wireless network devices of ad hoc wireless communication networks
JP2008112213A (ja) * 2006-10-27 2008-05-15 Toshiba Lighting & Technology Corp Dmxノード装置及びdmxノード装置用のプログラム更新装置
CN100583782C (zh) * 2007-10-23 2010-01-20 华为技术有限公司 软件升级方法和装置
JP4722194B2 (ja) * 2009-04-13 2011-07-13 本田技研工業株式会社 車両のための書き換えシステム
US9126542B2 (en) * 2010-08-03 2015-09-08 Honda Motor Co., Ltd. Vehicle program rewriting system
JP5911271B2 (ja) * 2011-11-21 2016-04-27 キヤノン株式会社 情報処理装置、その制御方法、および制御プログラム
JP2013192092A (ja) 2012-03-14 2013-09-26 Denso Corp 車載装置
US9128798B2 (en) 2012-10-17 2015-09-08 Movimento Group Module updating device
US9298439B2 (en) * 2013-07-16 2016-03-29 Dropbox, Inc. System and method for installing a client application using a light installer
US9734694B2 (en) * 2013-10-04 2017-08-15 Sol Mingso Li Systems and methods for programming, controlling and monitoring wireless networks
JP2015129994A (ja) * 2014-01-06 2015-07-16 富士通株式会社 送信プログラム、送信方法、及び送信装置
US9417868B2 (en) * 2014-01-09 2016-08-16 Bank Of America Corporation Entity wide software tracking and maintenance reporting tool
US9639344B2 (en) * 2014-12-11 2017-05-02 Ford Global Technologies, Llc Telematics update software compatibility
US9841970B2 (en) * 2015-01-13 2017-12-12 Ford Global Technologies, Llc Vehicle control update methods and systems
KR101704567B1 (ko) * 2015-08-27 2017-02-08 현대자동차주식회사 차량 연동 앱 관리 방법, 장치 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220024472A1 (en) * 2021-07-07 2022-01-27 Toyota Jidosha Kabushiki Kaisha Control apparatus for vehicle

Also Published As

Publication number Publication date
JPWO2018105609A1 (ja) 2018-12-06
WO2018105609A1 (ja) 2018-06-14
EP3438815A1 (en) 2019-02-06
CN108780392A (zh) 2018-11-09
US10684932B2 (en) 2020-06-16
US20190227785A1 (en) 2019-07-25
EP3438815B1 (en) 2023-11-22
EP3438815A4 (en) 2019-06-26
CN108780392B (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
JP6504315B2 (ja) プログラム更新システム、配信装置及びプログラム更新方法
JP4963292B2 (ja) エレベータ制御プログラムの遠隔更新システム
US10437680B2 (en) Relay apparatus, relay method, and computer program product
WO2017149825A1 (ja) プログラム更新システム、プログラム更新方法及びコンピュータプログラム
US20190235855A1 (en) Relay device, program update system, and program update method
JP4520671B2 (ja) ダウンロードシステム
JP2018181377A (ja) 中継装置、プログラム更新システム、およびプログラム更新方法
JP6915569B2 (ja) 保存装置、通信システム、保存方法及びコンピュータプログラム
JP6581859B2 (ja) 情報処理装置、ソフトウェア配信システム、およびソフトウェア配信方法
WO2016202206A1 (zh) 一种超文本传输请求的补发方法、装置及客户端
JP2004062555A (ja) ネットワーク機器およびプログラム自動更新方式
JP2018181376A (ja) 中継装置、プログラム更新システム、およびプログラム更新方法
JP2019109745A (ja) 自動車用電子制御装置
WO2021024792A1 (ja) 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置
JP2018194887A (ja) 車両用サービス管理装置及び車両用サービス管理プログラム
JP2005157544A (ja) 電気機器制御装置
WO2020195034A1 (ja) 車載更新装置、更新処理システム、更新処理方法及び処理プログラム
CN113824798A (zh) 断点续传方法及系统
JP2013192092A (ja) 車載装置
CN113204366A (zh) 一种智能售酒机系统的远程升级方法
US9049180B2 (en) Method for providing a signal output on the basis of a main file and at least one secondary file, and motor vehicle
JP2004157753A (ja) ファームウェアダウンロードシステム
US20080228840A1 (en) Data updating method and data processing system
JP5647597B2 (ja) 保守管理システムおよびクライアント端末
JP6516719B2 (ja) エレベーターのプログラム書換えシステム及びプログラム書換え方法

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180920

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190311

R150 Certificate of patent or registration of utility model

Ref document number: 6504315

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250