(57)【要約】【課題】プログラムの更新の効率化を図る。【解決手段】制御システム（１０Ａ）は、主記憶領域及び副記憶領域を有し、主記憶領域に記憶されるプログラムを実行する第１の制御装置（１３）と、副記憶領域を備えず、主記憶領域を有し、主記憶領域に記憶されるプログラムを実行する第２の制御装置（１４）と、取得したプログラムを一時的に記憶するプログラム記憶部（１２９ｂ）と、第１の制御装置で記憶される第１のプログラムを優先して取得してプログラム記憶部に記憶させ、第１のプログラムがプログラム記憶部から第１の制御装置の副記憶領域に記憶されると、第２の制御装置で記憶されるプログラムを取得してプログラム記憶部に記憶させるプログラム取得部（１２６）と、プログラム記憶部に記憶された第２のプログラムを第２の制御装置の主記憶領域に記憶させ、第１の制御装置の主記憶領域と副記憶領域を切り替える更新部（１２７）とを備える。【選択図】図２
2020144682.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの更新に関する情報を管理する管理サーバと、プログラムを実行する制御装置を複数備える制御システムとが接続され、前記プログラムを更新するプログラム更新システムであって、
前記管理サーバは、
前記制御システムに、更新が必要なプログラムの取得に利用されるアドレスを含むデータを送信する送信部を備え、
前記制御システムは、
主記憶領域及び副記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、
副記憶領域を備えず、主記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、
取得したプログラムを一時的に記憶するプログラム記憶部と、
前記管理サーバから受信したデータにしたがって、前記第１の制御装置に記憶させる第１のプログラムを優先して取得して前記プログラム記憶部に記憶させるとともに、当該第１のプログラムが前記プログラム記憶部から前記第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムを前記プログラム記憶部から削除し、前記第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、
前記プログラム記憶部に記憶された前記第１のプログラムを前記第１の制御装置の主記憶領域に記憶させ、前記プログラム記憶部に記憶された前記第２のプログラムを前記第２の制御装置の主記憶領域に記憶させるとともに、前記第１の制御装置の主記憶領域と副記憶領域を切り替える更新部と、
を備えるプログラム更新システム。
【請求項２】
プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムであって、
主記憶領域及び副記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、
副記憶領域を備えず、主記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、
取得したプログラムを一時的に記憶するプログラム記憶部と、
前記第１の制御装置に記憶させる第１のプログラムを優先して取得して前記プログラム記憶部に記憶させるとともに、当該第１のプログラムが前記プログラム記憶部から前記第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムを前記プログラム記憶部から削除し、前記第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、
前記プログラム記憶部に記憶された前記第１のプログラムを前記第１の制御装置の主記憶領域に記憶させ、前記プログラム記憶部に記憶された前記第２のプログラムを前記第２の制御装置の主記憶領域に記憶させるとともに、前記第１の制御装置の主記憶領域と副記憶領域を切り替える更新部と、
を備える制御システム。
【請求項３】
各制御装置の識別情報と、各制御装置のメモリにそれぞれ記憶されるプログラムの更新情報とを含む管理データを記憶する管理データ記憶部と、
前記管理データ記憶部に記憶される管理データを前記管理サーバに送信する管理データ送信部と、
前記プログラム取得部は、前記管理サーバから、前記管理データに含まれるプログラムに対し、更新が必要なプログラムの取得に利用するアドレスを含むアドレスデータを受信すると、当該アドレスデータにしたがって、前記第１のプログラムの取得を開始する、
請求項２に記載の制御システム。
【請求項４】
前記更新部は、前記第２のプログラムが前記プログラム記憶部に記憶されると、複数の前記制御装置におけるプログラムの実行を停止し、第２のプログラムを前記第２の制御装置の主記憶領域に記憶させ、各制御装置を再起動させる
請求項３に記載の制御システム。
【請求項５】
前記プログラム取得部は、前記制御装置の主記憶領域に記憶されるプログラムと、最新のプログラムとの差分を取得する
請求項２乃至４のいずれか１に記載の制御システム。
【請求項６】
請求項２乃至５のいずれか１に記載の制御システムを備える移動体。
【請求項７】
プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムにおいて、前記プログラムを更新するプログラム更新方法であって、
プログラム記憶部と、
主記憶領域及び副記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第１の制御装置で記憶させる第１のプログラムを優先して取得し、プログラムを一時的に記憶するプログラム記憶部に記憶させるステップと、
前記第１のプログラムを前記プログラム記憶部から前記第１の制御装置の副記憶領域に記憶させるステップと、
前記第１のプログラムを前記プログラム記憶部から削除するステップと、
副記憶領域を備えず、主記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるステップと、
前記プログラム記憶部に記憶された前記第２のプログラムを前記第２の制御装置の主記憶領域に記憶させるステップと、
前記第１の制御装置の主記憶領域と副記憶領域を切り替えるステップと、
を有するプログラム更新方法。
【請求項８】
請求項７に記載の方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１は、車両に搭載された制御装置でプログラムを更新する際、更新後の相互間の動作確認が取れている複数の更新プログラムを、単独での更新が可能である更新プログラムより優先して記憶部へ格納することが記載される。この特許文献１に記載の技術では、中継装置のメモリの空き容量が不足しても、動作確認が取れた複数の制御装置についての更新を実行することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６３６１６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、複数の制御装置を有する制御システムにおける各制御装置で利用されるプログラムの更新に関する、プログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムを提供する。
【課題を解決するための手段】
【０００５】
本開示のプログラム更新システムは、プログラムの更新に関する情報を管理する管理サーバと、プログラムを実行する制御装置を複数備える制御システムとが接続され、プログラムを更新するプログラム更新システムであって、管理サーバは、制御システムに、更新が必要なプログラムの取得に利用されるアドレスを含むデータを送信する送信部を備え、制御システムは、主記憶領域及び副記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、副記憶領域を備えず、主記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、取得したプログラムを一時的に記憶するプログラム記憶部と、管理サーバから受信したデータにしたがって、第１の制御装置に記憶させる第１のプログラムを優先して取得してプログラム記憶部に記憶させるとともに、当該第１のプログラムがプログラム記憶部から第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムをプログラム記憶部から削除し、第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、プログラム記憶部に記憶された第１のプログラムを第１の制御装置の主記憶領域に記憶させ、プログラム記憶部に記憶された第２のプログラムを第２の制御装置の主記憶領域に記憶させるとともに、第１の制御装置の主記憶領域と副記憶領域を切り替える更新部とを備える。
【０００６】
これらの概括的かつ特定の態様は、システム、方法、及びコンピュータプログラム、並びに、それらの組み合わせにより、実現されてもよい。
【発明の効果】
【０００７】
本開示のプログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムによれば、プログラムの更新の際の同時更新を可能とし、更新によりユーザの制御システムの利用の停止時間を短くすることができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るプログラム更新システムの構成を示すブロック図である。
【図２】実施の形態１に係る制御システムの構成を示すブロック図である。
【図３】制御システムの有するプログラム記憶部の記憶容量と記憶するプログラムのデータ容量の関係を説明する概念図である。
【図４Ａ】制御システムにおけるデータの書き込みと削除の一例について説明する概念図である。
【図４Ｂ】制御システムにおけるデータの書き込みと削除の他の例について説明する概念図である。
【図５】実施の形態１に係る制御システムにおける処理の一例を説明するフローチャートである。
【図６】実施の形態１に係る管理サーバにおける処理の一例を説明するフローチャートである。
【図７】実施の形態２に係る制御システムの構成を示すブロック図である。
【図８】実施の形態２に係る制御システムにおける処理の一例を説明するフローチャートである。
【図９】実施の形態２に係る管理サーバにおける処理の一例を説明するフローチャートである。
【図１０】実施の形態３に係るプログラム更新システムの構成を示すブロック図である。
【図１１】実施の形態３に係る制御システムにおける処理の一例を説明するフローチャートである。
【図１２Ａ】実施の形態３に係る管理サーバにおける管理データ取得の処理の一例を説明するフローチャートである。
【図１２Ｂ】実施の形態３に係る管理サーバにおけるアドレスデータ送信の処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
［本開示の基礎となった知見］
自動車には、例えば、ＥＣＵ（Electronic Control Unit）と言われる複数の制御装置が搭載されている。各ＥＣＵは、例えば、アクセル、ブレーキ、ハンドルの操作、車内照明、ヘッドライトの点灯と消灯、オーディオシステムやカーナビゲーションシステム等を制御する。このようなＥＣＵは、それぞれが異なるプログラムにより実行されているが、それらプログラムのバージョンアップに合わせて、ＥＣＵ内のプログラム更新することがある。
【００１０】
近年では、自動車等の移動体でも種々の通信機能を有しており、ハッカーの攻撃対象となりうる。また、仮に、攻撃対象となった場合、事故を招く恐れもある。したがって、プログラムの脆弱性対策、バグフィックス、機能追加のため、プログラムの更新、いわゆる、ＦＯＴＡ（Firmware Over The Air）技術が利用される。
【００１１】
自動車に搭載されている複数のＥＣＵは相互に接続されて自動運転等の高度な機能を実現していることもある。また、関連した複数のＥＣＵのプログラムを同時に更新することもある。このような、複数のプログラムを同時更新する場合、中継装置の記憶部には、一旦、これら複数のプログラムを記憶させておき、一括して同時更新を行う必要がある。しかしながら、記憶部の記憶容量は限定されており、この容量を超えるプログラムの取得を効率的に実行するのが困難である。例えば、プログラムの更新の際には、制御装置が動作しないため、自動車が使えない時間が生じ、ユーザの利便性を妨げる恐れがある。具体的には、自動車の運転をするタイミングでこのようなプログラムの更新が始まると、ユーザは長時間、運転できなくなる不具合が生じる。
【００１２】
本開示は、複数の制御装置を備える制御システムにおける各制御装置のプログラムの更新において、各制御装置のメモリの構成に応じて更新プログラムの取得タイミングを設定する。これにより、本開示では、プログラムの更新を効率的に実行することができる。具体的には、本開示のプログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムによれば、プログラムの更新の際の同時更新を可能とし、更新によりユーザの制御システムの利用の停止時間を短くすることができる
【００１３】
［実施形態］
以下に、図面を参照して実施形態に係るプログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムについて説明する。実施形態に係るプログラム更新システムは、移動体に備えられる複数の制御装置（ＥＣＵ）を実行するプログラムを更新するものとして説明するが、そのようなプログラムに限定しない。すなわち、複数の制御装置で同時に異なる複数のプログラムを更新するものであれば、実施形態に係るプログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムを利用することができる。以下の説明では、同一の構成について、同一の符号を付して説明を省略する。
【００１４】
詳細な説明において、従来技術および実質的に同一の構成に関する説明のうち不必要な部分は省略されることもある。これは、説明を簡単にするためである。また、以下の説明および添付の図面は、当業者が本開示を充分に理解できるよう開示されるのであって、特許請求の範囲の主題を限定することを意図されていない。
【００１５】
以下の説明では、「移動体」は、自動車であるものとして説明するが、制御装置の制御対象となりうる移動する物体であればよい。たとえば、移動体は、電車、飛行機、ドローン、建設機械、船等の移動する物体である。
「同時更新」は、複数のプログラムを更新する際、システムの起動の停止を複数回繰り返すことなく、１回の停止により実行するものとする。
【００１６】
〈実施の形態１〉
《プログラム更新システム》
図１に示すように、実施の形態１に係るプログラム更新システム１Ａは、移動体に備えられ、移動体における種々の制御を実行する制御システム１０Ａ、プログラムの更新に関する情報を管理する管理サーバ２０Ａ及び制御システム１０Ａで利用されるプログラムを提供する提供サーバ３０とがネットワーク４０を介して接続され、互いにデータ通信が可能である。
【００１７】
制御システム１０Ａは、通信部１１、中継装置１２、複数の制御装置（ＥＣＵ）１３（１３ａ，１３ｂ），１４（１４ａ，１４ｂ）を備え、移動体（図示せず）に設置される。各ＥＣＵ１３，１４は、それぞれ異なるプログラムを記憶し、移動体である自動車が備える種々の構成の制御等を実行する。
【００１８】
また、制御システム１０Ａは、管理サーバ２０Ａから各ＥＣＵ１３，１４に記憶されるいずれかのプログラムの更新に関する情報を取得すると、提供サーバ３０から更新されたプログラムを取得する。この制御システム１０Ａの構成については、後述する。なお、図１では、説明の便宜上、プログラム更新システム１Ａが有する制御システム１０Ａの数が１台の例で示すが、その数は限定されない。すなわち、異なる複数の移動体が備える複数の制御システム１０Ａが管理サーバ２０Ａ及び提供サーバ３０と接続されてもよい。
【００１９】
管理サーバ２０Ａは、プログラムの更新に関する情報を管理する。また、管理サーバ２０Ａは、制御システム１０Ａに最新のプログラムを提要する提供サーバ３０の情報であるアドレスデータを送信する。この管理サーバ２０Ａの構成については、後述する。
【００２０】
提供サーバ３０は、制御システム１０Ａからのリクエストに応じて、制御システム１０Ａに最新のプログラムを送信する。なお、図１では、説明の便宜上、プログラム更新システム１Ａが有する提供サーバ３０の数が１台の例で示すが、その数は限定されない。例えば、制御システムは複数のＥＣＵ１３，１４を備え、それぞれが異なる提供サーバから提供されることもありうる。したがって、制御システム１０Ａは、複数台の提供サーバ３０と接続されてもよい。
【００２１】
ネットワーク４０は、制御システム１０Ａ、管理サーバ２０Ａ及び提供サーバ３０との間のデータの送受信に利用されるネットワーク網であって、その通信方式は限定されない。上述したように、制御システム１０Ａは、移動体に備えられる。したがって、例えば、ネットワーク４０はその一部において、無線通信を利用して制御システム１０Ａと接続される。
【００２２】
《制御システム》
図２に示すように、制御システム１０Ａは、ネットワーク４０を介した通信を実現する通信部１１、中継装置１２、第１のＥＣＵ１３（１３ａ，１３ｂ）及び第２のＥＣＵ１４（１４ａ，１４ｂ）を備える。
【００２３】
ここで、第１のＥＣＵ１３は、主記憶領域及び副記憶領域を備えるが、第２のＥＣＵ１４は、主記憶領域のみ備え、副記憶領域を備えない。例えば、第１メモリ１３２をメインのメモリである主記憶領域とし、第２メモリを予備のメモリである副記憶領域とする。そして、第１のＥＣＵ１３は、メインのメモリである主記憶領域に記憶されるプログラムを実行する。
【００２４】
ここで、「副記憶領域」とは、複数台のストレージないし複数の区画に分割されたプログラムを記憶する領域のうち、予めバージョンアップ後のプログラムを記憶する目的で用意された、現在実行対象としているプログラムが記憶されている領域とは別の記憶領域である。
【００２５】
例えば、図２に示すように、第１のＥＣＵ１３ａは、第１メモリ１３２と、第２メモリ１３３とを備え、制御部１３１により主記憶領域と副記憶領域をスイッチ１３４の利用によって切り替えることができる。具体的には、図２に示す例では、スイッチ１３４を介して制御部１３１と第１メモリ１３２とが接続される。したがって、第１メモリ１３２が主記憶領域となり、制御部１３１は、第１メモリ１３２に記憶されるプログラムを実行する。また、このとき、第２メモリ１３３は、副記憶領域である。仮に、スイッチ１３４が切り替えられ、制御部１３１が第１メモリ１３２と非接続となり、第２メモリ１３３と接続された場合、第１メモリ１３２が副記憶領域となり、第２メモリ１３３が主記憶領域となるため、制御部１３１は、主記憶領域である第２メモリ１３３に記憶されるプログラムを実行する。なお、以下では、第１メモリ１３２が主記憶領域であり、第２メモリ１３３が副記憶領域であり、これを切り替える例で説明する。また、プログラムの実行とプログラムの更新がされる場合、実行中のプログラムが記憶される主記憶領域と、更新プログラムの書き込み及びベリファイの実行で利用される副記憶領域の両方にアクセスされる場合もあるが、これについては説明を省略する。
【００２６】
なお、図示を省略するが第１のＥＣＵ１３ｂも、例えば、第１のＥＣＵ１３ａと同様に、制御部１３１、メモリ１３２，１３３及びスイッチ１３４を備える構成である。すなわち、第１のＥＣＵ１３ｂもメモリの主記憶領域と副記憶領域を備え、制御部１３１で接続される領域を切り替えてメモリを使用することができる。
【００２７】
また、制御部１３１とメモリ１３２，１３３との切り替えは、図２に示すスイッチ１３４を利用する構成に限定されない。具体的には、物理的に２つのメモリ１３２，１３３を利用し、スイッチ１３４で切り替える構成にする必要はない。例えば、１つのメモリ内における書き込み読み出し領域を、タイミングに応じて切り替えるような構成であってもよい。したがって、主記憶領域と副記憶領域を有するメモリは、２バンク構成等の複数バンク構成、複数ディレクトリ構成、複数のＳＤカードの利用、ネットワークストレージの利用等様々な形態で実現することができる。
【００２８】
ここでは、第１のＥＣＵ１３のメモリ１３２，１３３に記憶されるプログラムを「第１のプログラム」とし、第２のＥＣＵ１４のメモリ１４２に記憶されるプログラムを「第２のプログラム」とする。すなわち、主記憶領域及び副記憶領域を有する第１のＥＣＵ１３で実行するプログラムを第１のプログラムとし、副記憶領域を有さない第２のＥＣＵ１４で実行するプログラムを第２のプログラムとする。したがって、各ＥＣＵ１３は、メモリ１３２又は１３３に記憶される第１のプログラムに応じて、各ＥＣＵ１４は、メモリ１４２に記憶される第２のプログラムに応じて、処理を実行する。例えば、制御部１３１，１４１が、アクセル、ブレーキ、ハンドルの操作、車内照明、ヘッドライトの点灯と消灯、オーディオシステムやカーナビゲーションシステム等の制御をそれぞれ実行する。
【００２９】
なお、図２では、便宜的に制御システム１０Ａが、２つの第１のＥＣＵ１３ａ，１３ｂと、２つの第２のＥＣＵ１４ａ，１４ｂを備える例を示すが、その数は、限定されない。自動車には、多数のＥＣＵを備えるものが多く、その数が、例えば、１００や２００を超えるものもある。
【００３０】
各ＥＣＵ１３，１４は、外部の装置との通信をすることができない。したがって、制御システム１０Ａにおいて各ＥＣＵ１３，１４のプログラムを更新する際、まず、中継装置１２が、各ＥＣＵ１３，１４で使用するプログラムを一旦取得してプログラム記憶部１２９ｂに一時的に記憶させる。その後、中継装置１２は、プログラム記憶部１２９ｂに記憶されるプログラムを、対象のＥＣＵ１３，１４のメモリ１３２，１３３，１４２に書き込む。
【００３１】
ここで、図３の（１）で示すように、制御システム１０Ａにおいて、プログラム記憶部１２９ｂの最大記憶容量が『Ｂ』であるとする。また、図３の（２）で示すように、第１のＥＣＵ１３ａが実行するプログラムＰ１１のデータ容量が『Ｂ１』であり、第１のＥＣＵ１３ｂが実行するプログラムＰ１２のデータ容量が『Ｂ２』であり、第２のＥＣＵ１４ａが実行するプログラムＰ２１のデータ容量が『Ｂ３』であり、第４のＥＣＵ１４ｂが実行するプログラムＰ２２のデータ容量が『Ｂ４』であるとする。
【００３２】
図３に示す例では、プログラムＰ１１，Ｐ１２，Ｐ２１，Ｐ２２のデータ容量の合計（Ｂ１＋Ｂ２＋Ｂ３＋Ｂ４）は、中継装置１２のプログラム記憶部１２９ｂの記憶容量（Ｂ）を上回る。そのため、この例では、中継装置１２は、全てのプログラムＰ１１〜Ｐ２２を同時にプログラム記憶部１２９ｂに記憶させることができない。したがって、本開示に係る制御システム１０Ａでは、後述する方法で順に各プログラムＰ１１〜Ｐ２２を取得することで、効率的にプログラムの更新を実現する。
【００３３】
通信部１１は、ネットワーク４０を介して管理サーバ２０Ａと通信を可能とするインタフェース回路（モジュール）である。例えば、通信部１１は、Ｗｉ−Ｆｉ、ＩＥＥＥ８０２．２、ＩＥＥＥ８０２．３、３Ｇ、ＬＴＥ、５Ｇ等の規格にしたがい通信を行う。
【００３４】
中継装置１２は、いわゆるゲートウェイといわれる外部の装置と複数のＥＣＵ１３，１４の通信を中継するものであり、例えば、制御部１２２及び記憶部１２９を備える。
【００３５】
記憶部１２９は、情報を記憶する記憶媒体であって、例えば、種々の情報を記録する記録媒体である。記憶部１２９は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＳＳＤ（Solid State Device）、ハードディスク、その他の記憶デバイス又はそれらを適宜組み合わせて実現される。
【００３６】
記憶部１２９は、関連データを記憶する管理データ記憶部１２９ａと、図１を用いて上述した提供サーバ３０から取得したプログラムを一時的に記憶するプログラム記憶部１２９ｂとを少なくとも有する。また、記憶部１２９は、制御システム１０Ａでプログラムの更新処理を実行する更新実行プログラムＰを記憶する。
【００３７】
管理データ記憶部１２９ａで記憶される管理データは、各ＥＣＵ１３，１４の型番等のＥＣＵの識別情報と、各ＥＣＵ１３，１４のメモリに記憶されるプログラムのバージョンを特定するバージョン番号等とを関連付けるデータである。例えば、この管理データによって、各ＥＣＵ１３，１４が副記憶領域を有するか否かを判別することができる。
【００３８】
図示を用いた説明を省略するが、管理データ記憶部１２９ａに記憶される管理データは、ＥＣＵ１３，１４においてメモリ１３２，１３３，１４２に新たなプログラムが記憶されると、記憶された新たなプログラムのバージョンを特定するバージョン番号等とを関連付けるデータに、書き換えられる。すなわち、管理データでは、各ＥＣＵ１３，１４で現在使用するプログラムのバージョンを管理する。
【００３９】
プログラム記憶部１２９ｂは、ＥＣＵ１３，１４のプログラムの更新の際に取得する新たなプログラムを記憶する。図３を用いて上述したように、プログラム記憶部１２９ｂは、予め記憶容量が限定されており、その記憶容量を超えるデータ容量のプログラムを記憶することはできない。したがって、制御システム１０Ａは、データ容量の合計がプログラム記憶部１２９ｂの記憶容量を超える複数のプログラムを取得する場合、複数回に分けてデータを取得する。
【００４０】
制御部１２２は、制御システム１０Ａ全体の制御を司るコントローラであるＣＰＵやＭＰＵ等である。制御部１２２は、記憶部１２９に記憶される更新実行プログラムＰを呼び出して実行することにより、図２に示すように、管理データ送信部１２３、一覧取得部１２４、判定部１２５、プログラム取得部１２６及び更新部１２７としての処理を実行する。制御部１２２は、ハードウェアとソフトウェアの協働により所定の機能を実現するものに限定されず、所定の機能を実現する専用に設計されたハードウェア回路でもよい。すなわち、制御部１２２は、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣ等、種々のプロセッサで実現することができる。
【００４１】
管理データ送信部１２３は、所定のタイミングで、管理データ記憶部１２９ａに記憶される管理データを管理サーバ２０Ａに送信する。所定のタイミングとは、各ＥＣＵを実行するプログラムの更新の有無を確認するタイミングであって、例えば、自動車のアクセサリー電源がはいり、通信部が通信できるようになったタイミングである。また例えば、所定のタイミングとは、前回のプログラムの更新から一定期間が経過した際に、定期更新するタイミングである。
【００４２】
一覧取得部１２４は、プログラムの更新に関する情報であるアドレスデータを管理サーバ２０Ａから取得する。例えば、アドレスデータは、制御システム１０Ａでプログラムの更新が必要な各ＥＣＵ１３，１４の型番と、そのプログラムの取得に利用するアドレスを関連付けるデータである。
【００４３】
判定部１２５は、プログラムを更新するＥＣＵが、副記憶領域を有するものがあるか否かを判定する。上述したように、管理データ記憶部１２９ａに記憶された管理データに含まれる型番等を利用して、メモリが副記憶領域を有するか否かを判定できる。したがって、判定部１２５は、管理データ記憶部１２９ａの管理データを読み出し、判定に使用する。
【００４４】
プログラム取得部１２６は、判定部１２５の判定が終了すると、更新対象となる新たなプログラムの取得を開始する。ここで、プログラム取得部１２６は、更新が必要な第１のプログラムを優先して取得した後、更新が必要な第２のプログラムを取得する。
【００４５】
具体的には、プログラム取得部１２６は、提供サーバ３０から第１のプログラムを優先して取得してプログラム記憶部１２９ｂに記憶させ、第１のプログラムの取得完了の通知を更新部１２７に出力する。また、プログラム取得部１２６は、第１のプログラム記憶部１２９ｂから第１のＥＣＵ１３ａの副記憶領域である第２メモリ１３３への書き込みが完了した通知が更新部１２７から入力されると、プログラム記憶部１２９ｂの第１のプログラムを削除する。その後、プログラム取得部１２６は、提供サーバ３０から第２のプログラムを取得してプログラム記憶部１２９ｂに記憶させ、第２のプログラムの取得完了の通知を更新部１２７に出力する。例えば、プログラム取得部１２６は、更新部１２７から第２のプログラムのメモリ１４２への記憶が完了した通知が入力されると、プログラム記憶部１２９ｂに記憶された第２のプログラムを削除してもよい。
【００４６】
なお、更新が必要な第１のプログラムが複数あり、そのデータ量の合計が、プログラム記憶部１２９ｂの記憶容量を上回るとき、プログラム取得部１２６は、第１のプログラムを複数回に分けて取得する。また、更新が必要な第２のプログラムが複数あり、そのデータ量の合計が、プログラム記憶部１２９ｂの記憶容量を上回るときにも、プログラム取得部１２６は、第２のプログラムを複数回に分けて取得する。
【００４７】
プログラム取得部１２６は、更新後のプログラム、すなわち、新たなプログラムの全てを取得してもよいし、更新後のプログラムの一部を取得してもよい。ここで、一部を取得するとは、管理データ記憶部１２９ａに記憶される管理データで特定されるバージョンのプログラムと、最新のバージョンのプログラムとの差分のみを取得することである。例えば、更新プログラムでは、過去のプログラムの一部のみが書き換えられている場合もあるが、このような場合、書き換えられた部分のみを取得することで、プログラムの取得に要する時間を短くすることができるとともに、プログラムの更新時のプログラム記憶部１２９ｂの使用容量も低減することができる。
【００４８】
更新部１２７は、プログラム取得部１２６から新たな第１のプログラムをプログラム記憶部１２９ｂに記憶した通知が入力されると、プログラム記憶部１２９ｂに記憶された新たな第１のプログラムを第１のＥＣＵ１３の副記憶領域であるメモリ１３３に記憶させる。また、更新部１２７は、プログラム取得部１２６から新たな第２のプログラムをプログラム記憶部１２９ｂに記憶した通知が入力されると、プログラム記憶部１２９ｂに記憶された新たな第２のプログラムを第２のＥＣＵのメモリ１４２に記憶させる。
【００４９】
さらに、更新部１２７は、新たなプログラムを実行させるため、各ＥＣＵ１３，１４を再起動する。具体的には、更新部１２７は、第１のプログラムを第２メモリ１３３に記憶した後、第２のＥＣＵ１４を、プログラムを実行する通常の状態から、リプロモード（プログラムを更新するための専用処理を実施するモード）にするため、複数の制御装置におけるプログラムの実行を停止する。これにより、リプロモードとなることで、新たな第２のプログラムを第２のＥＣＵのメモリ１４２に記憶させることが可能となる。また、更新部１２７は、第２のプログラムを第２のＥＣＵ１４のメモリ１４２へ書き込みを行い、第１のＥＣＵ１３ａの第１メモリ１３２及び第２メモリ１３３を切り替えることにより第２メモリ１３３を主記憶領域とした後、全てのＥＣＵ１３，１４を再起動することで、プログラムの更新処理を実行する。なお、例えば、更新部１２７は、第２のプログラムをメモリ１４２に記憶させたタイミングで、第２のプログラムをプログラム記憶部１２９ｂから削除してもよい。
【００５０】
（プログラムの更新）
図４Ａを用いて、プログラムＰ１１，Ｐ１２，Ｐ２１，Ｐ２２を取得する場合の一例を説明する。プログラム取得部１２６は、第１のプログラムＰ１１を取得し、プログラム記憶部１２９ｂに書き込む。また、更新部１２７は、プログラム記憶部１２９ｂの第１のプログラムＰ１１を第１のＥＣＵ１３ａの副記憶領域である第２メモリ１３３に記憶させる（取得１）。その後、プログラム取得部１２６は、プログラム記憶部１２９ｂの第１のプログラムＰ１１を削除する（削除１）。
【００５１】
次に、プログラム取得部１２６は、第１のプログラムＰ１２を取得し、プログラム記憶部１２９ｂに書き込む。また、更新部１２７は、プログラム記憶部１２９ｂの第１のプログラムＰ１２を第１のＥＣＵ１３ｂの副記憶領域である第２メモリ１３３に記憶させる（取得２）。その後、プログラム取得部１２６は、プログラム記憶部１２９ｂの第１のプログラムＰ１２を削除する（削除２）。
【００５２】
続いて、プログラム取得部１２６は、第２のプログラムＰ２１，Ｐ２２を取得し、プログラム記憶部１２９ｂに書き込む。また、更新部１２７は、プログラム記憶部１２９ｂの第２のプログラムＰ２１を第２のＥＣＵ１４ａのメモリ１４２に記憶させ、第２のプログラムＰ２２を第２のＥＣＵ１４ｂのメモリ１４２に記憶させる（取得３）。
【００５３】
プログラムを更新する場合、制御システム１０Ａでは、システムを停止させる必要がある。この停止は、各ＥＣＵ１３，１４でのメモリの書き込みと再起動に要する時間、処理を実行できないことによる。仮に、図４の例において、副記憶領域の第２メモリ１３３を使用できない場合、『取得１』においてプログラム記憶部１２９ｂから第１メモリ１３２への第１のプログラムＰ１１の書き込みを開始するタイミングから、プログラム記憶部１２９ｂから各メモリ１４２への第２のプログラムＰ２１，Ｐ２２の書き込みを終了タイミングまでの時間、システムを停止する必要がある。すなわち、ＥＣＵ１３の実行には副記憶領域の第２メモリ１３３を利用する必要がないため、主記憶領域である第１メモリ１３２に記憶されるプログラムが利用されることにより、制御システム１０Ａを停止することなく処理を実行できるためである。
【００５４】
図４Ａに示す方法の例では、第１のプログラムＰ１１，Ｐ１２は、実行対象のプログラムが記憶される主記憶領域であるメモリ１３２ではなく、副記憶領域であるメモリ１３３に書き込むため、メモリへの書き込みの際に、システムを停止させる必要はない。したがって、図４Ａに示す例では『取得３』において、第２のプログラムＰ２１，Ｐ２２をプログラム記憶部１２９ｂからメモリ１４２に書き込む間のみ、システムを停止すればよい。したがって、図４Ａに示す方法を利用することで、ユーザが制御システム１０Ａを利用できない時間を最小限にすることができる。
【００５５】
なお、プログラムの書き込み方法は、図４Ａに示す方法に限定されず、例えば、図４Ｂに示すように行ってもよい。図４Ｂに示す例では、プログラム取得部１２６は、第１のプログラムＰ１１，Ｐ１２を取得し、プログラム記憶部１２９ｂに書き込む。また、更新部１２７は、プログラム記憶部１２９ｂの第１のプログラムＰ１１を第１のＥＣＵ１３ａの副記憶領域である第２メモリ１３３に記憶させ、第１のプログラムＰ１２を第１のＥＣＵ１３ｂの副記憶領域である第２メモリ１３３に記憶させる（取得１）。その後、プログラム取得部１２６は、プログラム記憶部１２９ｂの第１のプログラムＰ１１，第１のプログラムＰ１２を削除する（削除１）。
【００５６】
次に、プログラム取得部１２６は、第２のプログラムＰ２１，Ｐ２２を取得し、プログラム記憶部１２９ｂに書き込み、また、プログラム記憶部１２９ｂの第２のプログラムＰ２１を第２のＥＣＵ１４ａのメモリ１４２に記憶させ、第２のプログラムＰ２２を第２のＥＣＵ１４ｂのメモリ１４２に記憶させる（取得２）。
【００５７】
図４Ｂに示す例でも、『取得２』において、第２のプログラムＰ２１，Ｐ２２をプログラム記憶部１２９ｂからメモリ１４２に書き込む間のみ、システムを停止すればよい。したがって、図４Ａで上述した場合と同様に、ユーザが制御システム１０Ａを利用できない時間を最小限にすることができる。
【００５８】
《管理サーバ》
次に、図１を用いて、管理サーバ２０Ａについて説明する。管理サーバ２０Ａは、通信部２１と、制御部２２と、記憶部２３とを備える。
【００５９】
通信部２１は、ネットワーク４０を介して制御システム１０Ａとの通信を可能とするためのインタフェース回路（モジュール）である。通信部２１は、Ｗｉ−Ｆｉ、ＩＥＥＥ８０２．２、ＩＥＥＥ８０２．３、３Ｇ、ＬＴＥ、５Ｇ等の規格にしたがい通信を行う。
【００６０】
記憶部２３は、情報を記憶する記憶媒体であって、例えば、種々の情報を記録する記録媒体である。記憶部２３は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＳＳＤ（Solid State Device）、ハードディスク、その他の記憶デバイス又はそれらを適宜組み合わせて実現される。記憶部２３は、一覧データＤ１及び更新データＤ２を記憶する。
【００６１】
制御部２２は、管理サーバ２０Ａ全体の制御を司るコントローラである。制御部２２は、プログラムを実行することにより所定の機能を実現するＣＰＵまたはＭＰＵのような汎用プロセッサを含む。例えば、管理サーバ２０Ａでは、記憶部２３に記憶される管理プログラム（図示せず）が読み出されて実行されることで、制御部２２が、取得部２２１、判定部２２２及び送信部２２３としての処理を実行する。なお、制御部２２は、ハードウェアとソフトウェアの協働により所定の機能を実現するものに限定されず、所定の機能を実現する専用に設計されたハードウェア回路でもよい。すなわち、制御部２２は、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣ等、種々のプロセッサで実現することができる。
【００６２】
ここで、管理サーバ２０Ａは、１台のコンピュータにより実現されてもよいし、ネットワークを介して接続される複数台のコンピュータの組み合わせにより実現されてもよい。また例えば、記憶部２３に記憶されるデータの全部又は一部が、ネットワーク４０を介して接続される外部の記憶媒体に記憶され、管理サーバ２０Ａは、外部の記憶媒体に記憶されるデータを使用するように構成されていてもよい。具体的には、一覧データＤ１や、更新データＤ２を外部の記憶媒体に記憶してもよい。
【００６３】
一覧データＤ１は、各ＥＣＵ１３，１４を実行可能な最新のプログラムに関するデータである。例えば、一覧データＤ１は、制御システム１０Ａの識別情報と、制御システム１０Ａが備えるＥＣＵ１３，１４の識別情報である型番等と、各プログラムの最新のバージョン番号とを関連付ける。
【００６４】
更新データＤ２は、各ＥＣＵ１３，１４を実行可能なプログラムを提供する提供サーバ３０のアクセス情報に関するデータである。例えば、更新データＤ２は、ＥＣＵ１３，１４の識別情報である型番等と、各ＥＣＵが使用するプログラムを提供する提供サーバ３０のアドレスとを関連付ける。具体的には、更新データＤ２は、プログラムを提供する提供サーバ３０のＩＰアドレスやドメイン名を含む。
【００６５】
取得部２２１は、制御システム１０Ａから送信された管理データを取得する。また、取得した管理データを判定部２２２に出力する。
【００６６】
判定部２２２は、各ＥＣＵ１３，１４が使用するプログラムが最新のバージョンであるか否かにより、プログラムの更新の必要の有無を判定する。具体的には、判定部２２２は、記憶部２３から一覧データＤ１を読み出し、管理データに含まれるバージョン番号と、一覧データＤ１に含まれるバージョン番号とを比較する。比較の結果、各ＥＣＵ１３，１４が現在使用可能なプログラムが最新のバージョンでない場合、判定部２２２は、プログラムの更新が必要であると判定する。すなわち、判定部２２２は、管理データに含まれる各プログラムのバージョン番号と、一覧データＤ１の各プログラムのバージョン番号とが異なる場合、プログラムが最新のバージョンではないため、更新の必要があると判定する。
【００６７】
送信部２２３は、プログラムの更新が必要な制御装置があると判定された場合、プログラムの更新に利用されるアドレスデータを送信する。具体的には、送信部２２３は、更新の必要があるプログラムについて、ＥＣＵ１３，１４の識別情報である型番等と、更新データＤ２に含まれる提供サーバのアドレスとを含むアドレスデータを生成する。また、送信部２２３は、生成したアドレスデータを制御システム１０Ａに送信する。
【００６８】
上述した実施の形態１に係るプログラム更新システム１Ａでは、制御システム１０Ａにおいて、プログラムを更新する際に、複数プログラムの同時更新を可能とし、また、制御システム１０Ａで同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現することができる。
【００６９】
《プログラム更新方法》
図５及び図６に示すフローチャートを用いて、プログラム更新の処理の一例を説明する。
【００７０】
（制御システム）
まず、図５を用いて、制御システム１０Ａにおける処理を説明する。
制御システム１０Ａは、所定のタイミングで管理サーバ２０Ａに管理データを送信する（Ｓ０１）。
【００７１】
制御システム１０Ａは、ステップＳ０１で送信した管理データに対し、管理サーバ２０Ａからアドレスデータを取得しない場合（Ｓ０２でＮＯ）、更新するプログラムがないため、処理を終了する。
一方、アドレスデータを取得した場合（Ｓ０２でＹＥＳ）、制御システム１０Ａは、更新が必要な第１のプログラムがあるか否かを判定する（Ｓ０３）。
【００７２】
更新が必要な第１のプログラムがあるとき（Ｓ０３でＹＥＳ）、制御システム１０Ａは、ステップＳ０２で取得したアドレスデータに含まれる取得方法にしたがって、更新が必要な第１のプログラムを取得し、プログラム記憶部１２９ｂに記憶させる（Ｓ０４）。
続いて、制御システム１０Ａは、プログラム記憶部１２９ｂに記憶した第１のプログラムを第１のＥＣＵ１３の副記憶領域である第２メモリ１３３に記憶させる（Ｓ０５）。
その後、制御システム１０Ａは、プログラム記憶部１２９ｂに記憶される第１のプログラムを削除する（Ｓ０６）。
なお、更新が必要な第１のプログラムがないとき（Ｓ０３でＮＯ）、制御システム１０Ａは、このステップＳ０４〜Ｓ０６の処理を実行せずに、ステップＳ０７に進む。
【００７３】
次に、制御システム１０Ａは、ステップＳ０２で取得したアドレスデータに含まれる取得方法にしたがって、更新が必要な第２のプログラムを取得し、プログラム記憶部１２９ｂに記憶させる（Ｓ０７）。
続いて、制御システム１０Ａは、第２のＥＣＵをリプロモードに遷移させる。（Ｓ０８）。これにより、第２のＥＣＵでは、プログラムの実行が停止する。
その後、制御システム１０Ａは、プログラム記憶部１２９ｂに記憶した第２のプログラムを第２のＥＣＵ１４のメモリ１４２に記憶させる（Ｓ０９）。
【００７４】
制御システム１０Ａは、第１のプログラムの更新があったか否かを判定する（Ｓ１０）。すなわち、制御システム１０Ａは、ステップＳ０５で、第１のプログラムが副記憶領域である第２メモリ１３３に記憶されたか否かを判定する。
第１のプログラムの更新があった場合（Ｓ１０でＹＥＳ）、制御システム１０Ａは、副記憶領域である第２メモリ１３３を主記憶領域に切り替える（Ｓ１１）。
なお、第１のプログラムの更新がなかった場合（Ｓ１０でＮＯ）、制御システム１０Ａは、ステップＳ１１の処理を実行せずに、ステップＳ１２に進む。
【００７５】
その後、制御システム１０Ａは、全てのＥＣＵを一斉に再起動させる（Ｓ１２）。これにより、制御システム１０Ａの各ＥＣＵ１３，１４は、最新のプログラムで実行されることになる。
また、制御システム１０Ａは、更新されたプログラムのバージョンで、管理データ記憶部１２９ａの管理データを更新する（Ｓ１３）。
【００７６】
（管理サーバ）
続いて、図６を用いて、管理サーバ２０Ａにおける処理を説明する。
管理サーバ２０Ａは、制御システム１０Ａから送信された管理データを受信する（Ｓ２１）。
その後、管理サーバ２０Ａは、記憶部２３から一覧データＤ１を読み出し、ステップＳ２１で受信した管理データと読み出した一覧データＤ１を比較し、更新が必要なプログラムがあるか否かを判定する（Ｓ２２）。すなわち、制御システム１０Ａの各ＥＣＵ１３，１４が最新のプログラムを使用しているか否かを判定する。
【００７７】
更新が必要なプログラムがない場合（Ｓ２２でＮＯ）、管理サーバ２０Ａは、処理を終了する。
【００７８】
更新が必要なプログラムがある場合（Ｓ２２でＹＥＳ）、管理サーバ２０Ａは、記憶部２３から更新データＤ２を読み出し、アドレスデータを生成する（Ｓ２３）。具体的には、管理サーバ２０Ａは、読み出した更新データＤ２から更新するプログラムを提供する提供サーバ３０のアドレスを抽出し、アドレスデータを生成する。
【００７９】
また、管理サーバ２０Ａは、ステップＳ２３で生成したアドレスデータを制御システム１０Ａに送信する（Ｓ２４）。
このようにして管理サーバ２０Ａから送信されたアドレスデータが、制御システム１０Ａにおいて受信され、使用される（図５のステップＳ０２以降）。
【００８０】
上述したプログラム更新方法により、複数プログラムの同時更新を可能とし、また、制御システム１０Ａで同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現することができる。
【００８１】
〈実施の形態２〉
《プログラム更新システム》
実施の形態２に係るプログラム更新システムの構成は、図１を用いて上述した構成であるため、図１を用いて説明する。また、図７に、実施の形態２に係る制御システム１０Ｂを示す。
【００８２】
《制御システム》
図７に示す実施の形態２に係る制御システム１０Ｂは、図１に示す実施の形態２に係る制御システム１０Ａと比較して、判定部１２５を備えない点で異なる。
制御システム１０Ａは、一覧取得部１２４において、更新が必要な全てのプログラムを取得するためのアドレスを含むアドレスデータを取得する。また、判定部１２５において、アドレスデータが含む各アドレスを用いて取得するプログラムが、メモリの副記憶領域を有する第１のＥＣＵ１３で利用される第１のプログラムであるか、メモリの副記憶領域の無い第２のＥＣＵ１４で利用される第２のプログラムであるかを判定する。
【００８３】
これに対し、制御システム１０Ｂは、一覧取得部１２４が、第１のプログラムを取得するアドレスと、第２のプログラムを取得するアドレスとを、管理サーバ２０Ａから別々に取得する。具体的には、一覧取得部１２４は、第１のプログラムを取得するアドレスのみを含む第１のアドレスデータと、第２のプログラムを取得するアドレスのみを含む第２のアドレスデータとを区別して取得する。そのため、中継装置１２においては、各アドレスで取得するプログラムが第１のプログラムであるか第２のプログラムであるかを判定する必要がない。
【００８４】
プログラム取得部１２６は、一覧取得部１２４が取得した第１のアドレスデータに基づいて、更新する必要のある第１のプログラムを優先して取得する。また、プログラム取得部１２６は、第１のアドレスデータにも続く取得が終了した後、一覧取得部１２４が取得した第２のアドレスデータに基づいて、更新する必要のある第２のプログラムを取得する。
【００８５】
したがって、実施の形態２に係る制御システム１０Ｂでは、中継装置１２においてアドレスデータに含まれる各アドレスで取得するプログラムが、第１のプログラムであるか第２のプログラムであるかを判定する処理負担を軽減することができる。
【００８６】
《管理サーバ》
上述したように、実施の形態２の管理サーバ２０Ａ（図１）は、第１のアドレスデータと第２のアドレスデータとを別々に送信する。
【００８７】
したがって、実施の形態２においては、判定部２２２で、制御システム１０Ｂの各ＥＣＵ１３，１４で更新が必要なプログラムがあるか否かを判定するとともに、各プログラムがメモリの副記憶領域がある第１のＥＣＵ１３で利用される第１のプログラムであるか、メモリの副記憶領域の無い第２のＥＣＵ１４で利用される第２のプログラムであるかを判定する。ここで、判定部２２２は、取得部２２１が制御システム１０Ｂから取得した管理データに基づいて、第１のプログラムであるか又は第２のプログラムであるかを判定する。なお、判定部２２２は、管理データに含まれるＥＣＵ１３，１４の型番等の情報により、メモリが副記憶領域を有するか否かを特定する。
【００８８】
また、送信部２２３は、更新の必要がある第１のプログラムについて第１のアドレスデータを生成し、更新の必要がある第２のプログラムについて第２のアドレスデータを生成し、生成した第１のアドレスデータ及び第２のアドレスデータを制御システム１０Ｂに送信する。
【００８９】
上述した実施の形態２に係るプログラム更新システムでは、制御システム１０Ｂにおいて、プログラムを更新する際に、複数プログラムの同時更新を可能とし、また、制御システム１０Ｂで同時更新での停止時間の短縮化を可能とするとともに、制御システム１０Ｂでの処理負担を軽減し、効率的なプログラム更新を実現することができる。
【００９０】
《プログラム更新方法》
図８及び図９に示すフローチャートを用いて、実施の形態２におけるプログラム更新の処理の一例を説明する。
【００９１】
（制御システム）
まず、図８を用いて、実施の形態２の制御システム１０Ｂにおける処理を説明する。なお、図５を用いて上述した処理と同様の処理については、同一の符号を用いて説明を省略する。
【００９２】
制御システム１０Ｂは、管理サーバ２０Ａから、ステップＳ０１で送信した管理データに対して第１のアドレスデータを取得したか否かを判定する（Ｓ３１）。
第１のアドレスデータを取得した場合（Ｓ３１でＹＥＳ）、更新する第１のプログラムがあるため、制御システム１０Ｂは、ステップＳ０４〜Ｓ０６の処理を実行する。
一方、第１のアドレスデータを取得しないとき（Ｓ３１でＮＯ）、更新する第１のプログラムはないため、制御システム１０Ｂは、ステップＳ０４〜Ｓ０６の処理を実行せずに、ステップＳ３２に進む。
【００９３】
次に、制御システム１０Ｂは、管理サーバ２０Ａから、ステップＳ０１で送信した管理データに対して第２のアドレスデータを取得したか否かを判定する（Ｓ３２）。
第２のアドレスデータを取得した場合（Ｓ３２でＹＥＳ）、更新する第２のプログラムがあるため、制御システム１０Ｂは、ステップＳ０７〜Ｓ０９の処理を実行する。
一方、第２のアドレスデータを取得しないとき（Ｓ３２でＮＯ）、更新する第２のプログラムはないため、制御システム１０Ｂは、ステップＳ０７〜Ｓ０９の処理を実行せずに、ステップＳ１０の処理に進む。
【００９４】
制御システム１０Ｂは、ステップＳ１０及びＳ１１の後、プログラムの更新がされたか否かを判定する（Ｓ３３）。
また、プログラムの更新がされていた場合（Ｓ３３でＹＥＳ）、制御システム１０Ｂは、全てのＥＣＵを一斉に再起動させる（Ｓ１２）。これにより、制御システム１０Ｂの各ＥＣＵ１３，１４は、最新のプログラムで実行されることになる。
さらに、制御システム１０Ｂは、更新されたプログラムのバージョンで、管理データ記憶部１２９ａの管理データを更新する（Ｓ１３）。
【００９５】
なお、プログラムが更新されていない場合（Ｓ３３でＮＯ）、すなわち、第１のアドレスデータ及び第２のアドレスデータを取得しておらず、プログラムが更新していない場合、ＥＣＵを再起動する必要もないため、制御システム１０Ｂは、処理を終了する。
【００９６】
（管理サーバ）
続いて、図９を用いて、実施の形態２の管理サーバ２０Ａにおける処理を説明する。なお、図６を用いて上述した処理と同様の処理については、同一の符号を用いる。
管理サーバ２０Ａは、制御システム１０Ａから送信された管理データを受信する（Ｓ２１）。
その後、管理サーバ２０Ａは、記憶部２３から一覧データＤ１を読み出し、ステップＳ２１で受信した管理データと読み出した一覧データＤ１を比較し、更新が必要なプログラムがない場合（Ｓ２２でＮＯ）、管理サーバ２０Ａは、処理を終了する。
【００９７】
一方、更新が必要なプログラムがある場合（Ｓ２２でＹＥＳ）、管理サーバ２０Ａは、更新の必要があるプログラムの中に、メモリの副記憶領域のあるＥＣＵ１３で利用される第１のプログラムがあるか否かを判定する（Ｓ４１）。
【００９８】
更新の必要がある第１のプログラムがある場合（Ｓ４１でＹＥＳ）、管理サーバ２０Ａは、更新の必要がある第１のプログラムのアドレスを含む第１のアドレスデータを生成する（Ｓ４２）。
また、管理サーバ２０Ａは、ステップＳ４２で生成した第１のアドレスデータを制御システム１０Ｂに送信する（Ｓ４３）。
このようにして管理サーバ２０Ａから送信された第１のアドレスデータが、制御システム１０Ｂにおいて受信され、判定に利用される（図８のステップＳ３１）。
【００９９】
更新の必要がある第１のプログラムがない場合（Ｓ４１でＮＯ）、ステップＳ４２及びＳ４３の処理を実行せずにステップＳ４４に進む。
【０１００】
更新の必要がある第２のプログラムがある場合（Ｓ４４でＹＥＳ）、管理サーバ２０Ａは、更新の必要がある第２のプログラムのアドレスを含む第２のアドレスデータを生成する（Ｓ４５）。
また、管理サーバ２０Ａは、ステップＳ４５で生成した第２のアドレスデータを制御システム１０Ｂに送信する（Ｓ４３）。
このようにして管理サーバ２０Ａから送信されたアドレスデータが、制御システム１０Ｂにおいて受信され、使用される（図８のステップＳ３１以降）。
【０１０１】
上述したプログラム更新方法により、複数プログラムの同時更新を可能とし、また、制御システム１０Ｂで同時更新での停止時間の短縮化を可能とするとともに、制御システム１０Ｂでの処理負担を軽減し、効率的なプログラム更新を実現することができる。
【０１０２】
〈実施の形態３〉
《プログラム更新システム》
図１０に示すように、実施の形態３に係るプログラム更新システム１Ｃは、制御システム１０Ｃ、管理サーバ２０Ｃ及び提供サーバ３０が、ネットワーク４０を介して接続される構成である。
【０１０３】
実施の形態１及び２に係るプログラム更新システム１Ａでは、制御システム１０Ａ，１０Ｂは、プル配信によってアドレスデータを取得していた。これに対し、実施の形態３に係るプログラム更新システム１Ｃにおいては、制御システム１０Ｃは、プッシュ配信によってアドレスデータを取得する。
【０１０４】
《制御システム》
実施の形態３に係る制御システム１０Ｃは、図７を用いて上述した制御システム１０Ｂと同一の構成であるため、新たな図示を省略し、図７を参照する。
図７を用いて上述した実施の形態２に係る制御システム１０Ｂは、ＥＣＵ１３，１４のプログラムの更新の有無を確認する所定のタイミングで管理サーバ２０Ａに管理データを送信した。これに対し、実施の形態３に係る制御システム１０Ｃは、各ＥＣＵ１３，１４のプログラムを更新したタイミングで管理サーバ２０Ｃに管理データを送信する。したがって、実施の形態３に係る制御システム１０Ｃは、更新のタイミングを管理する必要がない。
【０１０５】
具体的には、管理データ送信部１２３は、いずれかのＥＣＵ１３，１４のプログラムの更新をしたタイミングで、プログラムを更新したＥＣＵ１３，１４に関する管理データを管理サーバ２０Ｃに送信する。また、管理データ送信部１２３は、いずれかのＥＣＵ１３，１４を交換等することにより管理データ記憶部１２９ａで記憶される管理データの内容に変更になった場合にも、新たなＥＣＵ１３，１４に関する管理データを管理サーバ２０Ｃに送信する。
【０１０６】
また、一覧取得部１２４は、制御システム１０Ｃが備えるＥＣＵ１３，１４の利用するプログラムに更新があった場合に、アドレスデータを受信する。
【０１０７】
したがって、実施の形態３に係る制御システム１０Ｃでは、プログラムの更新の際に管理データの更新とともに管理サーバ２０Ｃに管理データを送信するだけでよく、中継装置１２における管理データの送信タイミングの管理に関する処理負担を軽減することができる。
【０１０８】
《管理サーバ》
図１０に示すように、実施の形態３の管理サーバ２０Ｃは、プッシュ配信によってアドレスデータを送信するため、記憶部２３で管理データＤ３を記憶する。
管理データＤ３は、制御システム１０Ｃの識別情報に、制御システム１０Ｃの各ＥＣＵ１３，１４の型番等のＥＣＵの識別情報と、各ＥＣＵ１３，１４のメモリに記憶されるプログラムのバージョンを特定するバージョン番号等とを関連付けるデータである。
【０１０９】
したがって、実施の形態３においては、取得部２２１は、制御システム１０Ｃから取得した管理データを、制御システム１０Ｃの識別情報とともに、管理データＤ３として記憶部２３に記憶させる。
【０１１０】
また、判定部２２２は、取得部２２１が制御システム１０Ｃから管理データを取得したタイミングではなく、所定のタイミングで、記憶部２３から管理データＤ３及び一覧データＤ１を読み出し、制御システム１０ＣのＥＣＵ１３，１４のプログラムの更新の必要の有無を判定する。ここで、所定のタイミングとは、例えば、定期的なタイミングや、一覧データＤ１もしくは管理データＤ３が更新されたタイミングである。
【０１１１】
上述した実施の形態３に係るプログラム更新システム１Ｃでは、制御システム１０Ｃにおいて、プログラムを更新する際に、複数プログラムの同時更新を可能とし、また、制御システム１０Ｃで同時更新での停止時間の短縮化を可能とするとともに、制御システム１０Ｃでの処理負担を軽減し、効率的なプログラム更新を実現することができる。
【０１１２】
《プログラム更新方法》
図１１、図１２Ａ及び図１２Ｂに示すフローチャートを用いて、実施の形態３におけるプログラム更新の処理の一例を説明する。
【０１１３】
（制御システム）
まず、図１１を用いて、実施の形態３の制御システム１０Ｃにおける処理を説明する。
【０１１４】
図５を用いて上述した例では、制御システム１０Ａは、管理データの送信に対して、アドレスデータを取得する。これに対し、制御システム１０Ｃは、管理サーバ２０Ｃからのプッシュ配信によりアドレスデータを取得するため、管理データの送信とは無関係にアドレスデータを受信する（Ｓ０２）。
【０１１５】
なお、ステップＳ０３〜Ｓ１３の処理については、図５を用いて上述した処理と同一であるため、同一の符号を用いて説明を省略する。
【０１１６】
また、制御システム１０Ｃは、ステップＳ１３で更新した管理データを管理サーバ２０Ｃに送信する（Ｓ５２）。
【０１１７】
（管理サーバ）
続いて、図１２Ａ及び図１２Ｂを用いて、実施の形態３の管理サーバ２０Ｃにおける処理を説明する。なお、図６を用いて上述した処理と同様の処理については、同一の符号を用いる。管理サーバ２０Ｃでは、管理データの受信と、アドレスデータの送信とが独立している。したがって、図１２Ａを用いて管理データの受信について説明し、図１２Ｂを用いてアドレスデータの送信について説明する。
【０１１８】
図１２Ａに示すように、管理サーバ２０Ｃは、制御システム１０Ａから送信された管理データを受信すると（Ｓ６１でＹＥＳ）、記憶部２３に管理データＤ３として記憶させる（Ｓ６２）。
【０１１９】
また、図１２Ｂに示すように、管理サーバ２０Ｃは、所定のタイミングで（Ｓ６３でＹＥＳ）、記憶部２３に記憶される一覧データＤ１及び管理データＤ３を比較し、更新が必要なプログラムがあるか否かを判定する（Ｓ６４）。
【０１２０】
更新が必要なプログラムがない場合（Ｓ６４でＮＯ）、管理サーバ２０Ｃは、処理を終了する。
更新が必要なプログラムがある場合（Ｓ６４でＹＥＳ）、管理サーバ２０Ｃは、更新の必要があるプログラムのアドレスを含むアドレスデータを生成し（Ｓ２３）、生成した第２のアドレスデータを制御システム１０Ｃに送信する（Ｓ２４）。
【０１２１】
上述したプログラム更新方法により、複数プログラムの同時更新を可能とし、また、制御システム１０Ｃで同時更新での停止時間の短縮化を可能とするとともに、制御システム１０Ｃの処理負担を軽減し、効率的なプログラム更新を実現することができる。
《変形例》
なお、図１０乃至図１２Ｂを用いて上述した、実施の形態３に係るプログラム更新システム１Ｃでは、管理サーバ２０Ｃが、制御システム１０Ｃに更新対象のプログラムを取得する全てのアドレスを含むアドレスデータを送信する例で説明した。しかし、実施の形態２に係るプログラム更新システム１Ｂのように、管理サーバ２０Ｃは、第１のプログラムを取得するアドレスのみを含む第１のアドレスデータ及び第２のプログラムを取得するアドレスのみを含む第２のアドレスデータに分けて制御システム１０Ｃに送信してもよい。このようにすることで、制御システム１０Ｃで第１のプログラムを取得するアドレスと第２のプログラムを取得するアドレスとを区別する必要がなくなる。すなわち、制御システム１０Ｃにおける処理負担を軽減することができる。
【０１２２】
〈効果及び補足〉
以上のように、本出願において開示する技術の例示として、上記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施形態にも適用可能である。
【０１２３】
《実施形態の概要》
（１）本開示のプログラム更新システムは、プログラムの更新に関する情報を管理する管理サーバと、プログラムを実行する制御装置を複数備える制御システムとが接続され、プログラムを更新するプログラム更新システムであって、管理サーバは、制御システムに、更新が必要なプログラムの取得に利用されるアドレスを含むデータを送信する送信部を備え、制御システムは、主記憶領域及び副記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、副記憶領域を備えず、主記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、取得したプログラムを一時的に記憶するプログラム記憶部と、管理サーバから受信したデータにしたがって、第１の制御装置に記憶させる第１のプログラムを優先して取得してプログラム記憶部に記憶させるとともに、当該第１のプログラムがプログラム記憶部から第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムをプログラム記憶部から削除し、第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、プログラム記憶部に記憶された第２のプログラムを第２の制御装置の主記憶領域に記憶させるとともに、第１の制御装置の主記憶領域と副記憶領域を切り替える更新部とを備える。
【０１２４】
これにより、プログラムを更新する際に、複数プログラムの同時更新を可能とし、同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１２５】
（２）本開示の制御システムは、プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムであって、主記憶領域及び副記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、副記憶領域を備えず、主記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、取得したプログラムを一時的に記憶するプログラム記憶部と、第１の制御装置に記憶させる第１のプログラムを優先して取得してプログラム記憶部に記憶させるとともに、当該第１のプログラムがプログラム記憶部から第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムをプログラム記憶部から削除し、第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、プログラム記憶部に記憶された第２のプログラムを第２の制御装置の主記憶領域に記憶させるとともに、第１の制御装置の主記憶領域と副記憶領域を切り替える更新部とを備える。
【０１２６】
これにより、プログラムを更新する際に、複数プログラムの同時更新を可能とし、同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１２７】
（３）（２）の制御システムは、各制御装置の識別情報と、各制御装置のメモリにそれぞれ記憶されるプログラムの更新情報とを含む管理データを記憶する管理データ記憶部と、管理データ記憶部に記憶される管理データを管理サーバに送信する管理データ送信部と、プログラム取得部は、管理サーバから、管理データに含まれるプログラムに対し、更新が必要なプログラムの取得に利用するアドレスを含むアドレスデータを受信すると、当該アドレスデータにしたがって、第１のプログラムの取得を開始する。
【０１２８】
これにより、プログラムを更新する際に、複数プログラムの同時更新を可能とし、同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１２９】
（４）（３）の制御システムの更新部は、第２のプログラムがプログラム記憶部に記憶されると、複数の制御装置におけるプログラムの実行を停止し、第２のプログラムを第２の制御装置のメモリに記憶させ、各制御装置を再起動させてもよい。
【０１３０】
これにより、プログラムを更新する際に、停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１３１】
（５）（２）の制御システムのプログラム取得部は、制御装置のメモリに記憶されるプログラムと、最新のプログラムとの差分を取得してもよい。
【０１３２】
これにより、プログラムを更新する際に、停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１３３】
（６）本開示の移動体は、（２）〜（５）の制御システムを備えてもよい。
【０１３４】
これにより、移動体の制御システムにおいてプログラムを更新する際に、複数プログラムの同時更新を可能とし、同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１３５】
（７）本開示のプログラム更新方法は、プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムにおいて、前記プログラムを更新するプログラム更新方法であって、プログラム記憶部と、主記憶領域及び副記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第１の制御装置で記憶させる第１のプログラムを優先して取得し、プログラムを一時的に記憶するプログラム記憶部に記憶させるステップと、第１のプログラムをプログラム記憶部から第１の制御装置の副記憶領域に記憶させるステップと、第１のプログラムをプログラム記憶部から削除するステップと、副記憶領域を備えず、主記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるステップと、プログラム記憶部に記憶された第２のプログラムを第２の制御装置の主記憶領域に記憶させるステップと、第１の制御装置の主記憶領域と副記憶領域を切り替えるステップと、を有する。
【０１３６】
これにより、プログラムを更新する際に、複数プログラムの同時更新を可能とし、同時更新での停止時間の短縮化を可能とし、効率的なプログラム更新を実現する。
【０１３７】
本開示の全請求項に記載のプログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムは、ハードウェア資源、例えば、プロセッサ、メモリ、及びプログラムとの協働などによって、実現される。
【産業上の利用可能性】
【０１３８】
本開示のプログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラムは、例えば、移動体に備えられる制御部でのプログラムの更新に有用である。
【符号の説明】
【０１３９】
１Ａ，１Ｂ，１Ｃ  プログラム更新システム
１０Ａ，１０Ｂ，１０Ｃ  制御システム
１１  通信部
１２  中継装置
１２２            制御部
１２３            管理データ送信部
１２４            一覧取得部
１２５            判定部
１２６            プログラム取得部
１２７            更新部
１２９            記憶部
１２９ａ  管理データ記憶部
１２９ｂ  プログラム記憶部
１３（１３ａ，１３ｂ）  第１の制御装置（ＥＣＵ）
１３１            制御部
１３２            第１メモリ
１３３            第２メモリ
１３４            スイッチ
１４（１４ａ，１４ｂ）  第２の制御装置（ＥＣＵ）
１４１            制御部
１４２            メモリ
２０Ａ，２０Ｃ        管理サーバ
２１  通信部
２２  制御部
２２１            取得部
２２２            判定部
２２３            送信部
２３  記憶部
Ｄ１            一覧データ
Ｄ２            更新データ
Ｄ３            管理データ
３０  提供サーバ
４０  ネットワーク
【図１】
2020144682.tif 000003
【図２】
2020144682.tif 000004
【図３】
2020144682.tif 000005
【図４Ａ】
2020144682.tif 000006
【図４Ｂ】
2020144682.tif 000007
【図５】
2020144682.tif 000008
【図６】
2020144682.tif 000009
【図７】
2020144682.tif 000010
【図８】
2020144682.tif 000011
【図９】
2020144682.tif 000012
【図１０】
2020144682.tif 000013
【図１１】
2020144682.tif 000014
【図１２Ａ】
2020144682.tif 000015
【図１２Ｂ】
2020144682.tif 000016
【手続補正書】
【提出日】令和2年3月26日(2020.3.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムの更新に関する情報を管理する管理サーバと、プログラムを実行する制御装置を複数備える制御システムとが接続され、前記プログラムを更新するプログラム更新システムであって、
前記管理サーバは、
前記制御システムに、更新が必要なプログラムの取得に利用されるアドレスを含むデータを送信する送信部を備え、
前記制御システムは、
主記憶領域及び副記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、
副記憶領域を備えず、主記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、
取得したプログラムを一時的に記憶するプログラム記憶部と、
前記管理サーバから受信したデータにしたがって、前記第１の制御装置に記憶させる第１のプログラムを優先して取得して前記プログラム記憶部に記憶させるとともに、当該第１のプログラムが前記プログラム記憶部から前記第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムを前記プログラム記憶部から削除し、前記第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、
前記プログラム記憶部に記憶された前記第１のプログラムを前記第１の制御装置の主記憶領域に記憶させ、前記プログラム記憶部に記憶された前記第２のプログラムを前記第２の制御装置の主記憶領域に記憶させるとともに、前記第１の制御装置の主記憶領域と副記憶領域を切り替える更新部と、
を備えるプログラム更新システム。
【請求項２】
プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムであって、
主記憶領域及び副記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第１の制御装置と、
副記憶領域を備えず、主記憶領域を有し、自装置が有する当該主記憶領域に記憶されるプログラムを実行する第２の制御装置と、
取得したプログラムを一時的に記憶するプログラム記憶部と、
前記第１の制御装置に記憶させる第１のプログラムを優先して取得して前記プログラム記憶部に記憶させるとともに、当該第１のプログラムが前記プログラム記憶部から前記第１の制御装置の副記憶領域に記憶されると、当該第１のプログラムを前記プログラム記憶部から削除し、前記第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるプログラム取得部と、
前記プログラム記憶部に記憶された前記第１のプログラムを前記第１の制御装置の主記憶領域に記憶させ、前記プログラム記憶部に記憶された前記第２のプログラムを前記第２の制御装置の主記憶領域に記憶させるとともに、前記第１の制御装置の主記憶領域と副記憶領域を切り替える更新部と、
を備える制御システム。
【請求項３】
各制御装置の識別情報と、各制御装置のメモリにそれぞれ記憶されるプログラムの更新情報とを含む管理データを記憶する管理データ記憶部と、
前記管理データ記憶部に記憶される管理データを前記管理サーバに送信する管理データ送信部とを備え、
前記プログラム取得部は、前記管理サーバから、前記管理データに含まれるプログラムに対し、更新が必要なプログラムの取得に利用するアドレスを含むアドレスデータを受信すると、当該アドレスデータにしたがって、前記第１のプログラムの取得を開始する、
請求項２に記載の制御システム。
【請求項４】
前記更新部は、前記第２のプログラムが前記プログラム記憶部に記憶されると、複数の前記制御装置におけるプログラムの実行を停止し、第２のプログラムを前記第２の制御装置の主記憶領域に記憶させ、各制御装置を再起動させる
請求項３に記載の制御システム。
【請求項５】
前記プログラム取得部は、前記制御装置の主記憶領域に記憶されるプログラムと、最新のプログラムとの差分を取得する
請求項２乃至４のいずれか１に記載の制御システム。
【請求項６】
請求項２乃至５のいずれか１に記載の制御システムを備える移動体。
【請求項７】
プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムにおいて、前記プログラムを更新するプログラム更新方法であって、
主記憶領域及び副記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第１の制御装置で記憶させる第１のプログラムを優先して取得し、プログラムを一時的に記憶するプログラム記憶部に記憶させるステップと、
前記第１のプログラムを前記プログラム記憶部から前記第１の制御装置の副記憶領域に記憶させるステップと、
前記第１のプログラムを前記プログラム記憶部から削除するステップと、
副記憶領域を備えず、主記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるステップと、
前記プログラム記憶部に記憶された前記第２のプログラムを前記第２の制御装置の主記憶領域に記憶させるステップと、
前記第１の制御装置の主記憶領域と副記憶領域を切り替えるステップと、
を有するプログラム更新方法。
【請求項８】
請求項７に記載の方法をコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
プログラム取得部１２６は、一覧取得部１２４が取得した第１のアドレスデータに基づいて、更新する必要のある第１のプログラムを優先して取得する。また、プログラム取得部１２６は、第１のアドレスデータに基づく取得が終了した後、一覧取得部１２４が取得した第２のアドレスデータに基づいて、更新する必要のある第２のプログラムを取得する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
更新の必要がある第２のプログラムがある場合（Ｓ４４でＹＥＳ）、管理サーバ２０Ａは、更新の必要がある第２のプログラムのアドレスを含む第２のアドレスデータを生成する（Ｓ４５）。
また、管理サーバ２０Ａは、ステップＳ４５で生成した第２のアドレスデータを制御システム１０Ｂに送信する（Ｓ４６）。
このようにして管理サーバ２０Ａから送信されたアドレスデータが、制御システム１０Ｂにおいて受信され、使用される（図８のステップＳ３１以降）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１１４
【補正方法】変更
【補正の内容】
【０１１４】
図５を用いて上述した例では、制御システム１０Ａは、管理データの送信に対して、アドレスデータを取得する。これに対し、制御システム１０Ｃは、管理サーバ２０Ｃからのプッシュ配信によりアドレスデータを取得するため、管理データの送信とは無関係にアドレスデータを受信する（Ｓ５１）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
（３）（２）の制御システムは、各制御装置の識別情報と、各制御装置のメモリにそれぞれ記憶されるプログラムの更新情報とを含む管理データを記憶する管理データ記憶部と、管理データ記憶部に記憶される管理データを管理サーバに送信する管理データ送信部とを備え、プログラム取得部は、管理サーバから、管理データに含まれるプログラムに対し、更新が必要なプログラムの取得に利用するアドレスを含むアドレスデータを受信すると、当該アドレスデータにしたがって、第１のプログラムの取得を開始する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１３５
【補正方法】変更
【補正の内容】
【０１３５】
（７）本開示のプログラム更新方法は、プログラムの更新に関する情報を管理する管理サーバと接続され、プログラムを実行する制御装置を複数備える制御システムにおいて、前記プログラムを更新するプログラム更新方法であって、主記憶領域及び副記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第１の制御装置で記憶させる第１のプログラムを優先して取得し、プログラムを一時的に記憶するプログラム記憶部に記憶させるステップと、第１のプログラムをプログラム記憶部から第１の制御装置の副記憶領域に記憶させるステップと、第１のプログラムをプログラム記憶部から削除するステップと、副記憶領域を備えず、主記憶領域を有し、当該主記憶領域に記憶されるプログラムを実行する第２の制御装置に記憶させる第２のプログラムを取得して当該プログラム記憶部に記憶させるステップと、プログラム記憶部に記憶された第２のプログラムを第２の制御装置の主記憶領域に記憶させるステップと、第１の制御装置の主記憶領域と副記憶領域を切り替えるステップと、を有する。