(57)【要約】【課題】システムに含まれる制御装置のプログラムを効率的に更新する管理装置を提供する。【解決手段】それぞれがプログラムを実行する一又は複数の制御装置を含むシステムを管理する管理装置において、システムに含まれる少なくとも一の制御装置から、該一の制御装置のプログラムの更新能力に関する情報を含む更新情報を取得するとともに、一の制御装置が有するプログラムを更新するためのプログラムとして、該一の制御装置が既に有している既存プログラムと更新が行われた後の更新プログラムとの差分である差分プログラムを準備する。そして、取得された更新情報に基づいて、準備された差分プログラムが、一の制御装置のプログラムの更新能力に応じた形式で該一の制御装置に配信される。【選択図】図１
2010218070.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがプログラムを実行する一又は複数の制御装置を含むシステムを管理する管理装置であって、
前記システムに含まれる少なくとも一の制御装置から、該一の制御装置のプログラムの更新能力に関する情報を含む更新情報を取得する更新情報取得部と、
前記一の制御装置が有するプログラムを更新するためのプログラムとして、該一の制御装置が既に有している既存プログラムと更新が行われた後の更新プログラムとの差分である差分プログラムを準備する差分プログラム準備部と、
前記差分プログラム準備部によって準備された前記差分プログラムを、前記一の制御装置のプログラムの更新能力に応じた形式で該一の制御装置に配信する配信部と、
を備える管理装置。
【請求項２】
前記更新情報に基づいて、前記一の制御装置が前記差分プログラムを前記既存プログラムと合成することで前記更新プログラムを形成することが可能か否かを判断する合成可否判断部を、更に備え、
前記配信部は、前記合成可否判断部によって前記更新プログラムの形成が可能であると判断される場合、前記差分プログラムを前記一の制御装置に配信する、
請求項１に記載の管理装置。
【請求項３】
前記更新情報に基づいて、前記一の制御装置が前記差分プログラムを前記既存プログラムと合成することで前記更新プログラムを形成することが可能か否かを判断する合成可否判断部を、更に備え、
前記配信部は、前記合成可否判断部によって前記更新プログラムの形成が可能でないと判断される場合、前記一の制御装置が有する前記既存プログラムを取得し、該取得された既存プログラムと前記差分プログラムとを合成することで生成される合成後プログラムを該一の制御装置に配信する、
請求項１に記載の管理装置。
【請求項４】
前記システムにおいて、他の制御装置が前記一の制御装置を介して前記管理装置に対して通信可能に接続されている場合、
前記更新情報取得部は、前記他の制御装置に関する前記更新情報を取得し、
前記差分プログラム準備部は、前記他の制御装置のための前記差分プログラムを準備し、
前記配信部は、前記他の制御装置では前記差分プログラムを該他の制御装置が有する既存プログラムと合成することができず、且つ前記一の制御装置では該差分プログラムと該既存プログラムとの合成が可能である場合には、該差分プログラムを該一の制御装置に配信し、
前記一の制御装置では、配信された前記差分プログラムが該他の制御装置が有する既存プログラムと合成されることで生成される合成後プログラムを該他の制御装置に配信する、
請求項１に記載の管理装置。
【請求項５】
前記差分プログラム準備部は、前記差分プログラムを復号化した状態で準備し、
前記配信部は、前記復号化された差分プログラムを、前記一の制御装置のプログラムの更新能力に応じた形式で該一の制御装置に配信する、
請求項１から請求項４の何れか一項に記載の管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行する一又は複数の制御装置を含むシステムを管理する管理装置に関する。
【背景技術】
【０００２】
カーナビゲーションシステムを搭載する車載機は、近年高性能化が進んでいる。車載機は、カーナビゲーションシステムに加え、ＤＶＤやＣＤなどのメディアの再生、デジタルテレビ電波の受信及び再生などの複数の機能を備える。車載機の高性能化に伴い、ＣＰＵの演算処理速度の高速化やソフトウェアプログラムを格納するメモリの容量の増加への要求も高まっている。
【０００３】
車載機の高性能化は、ソフトウェアプログラムの大容量化、すなわち、ソフトウェアプログラムの複雑化を意味する。ソフトウェアプログラムが複雑化すればするほど、潜伏した不具合やソフトウェアプログラムの品質を確認するための製品評価工数が膨大化していく。しかしながら、どれだけ厳密な試験を行ったとしても、製品として市場に出回ってから不具合が生じることがある。このような、販売前には予測しなかった不具合の修正や、ソフトウェアプログラムのバージョンアップ等を、ユーザの手を煩わせることなく行う方法として、例えば、メーカ（例えば、車載機を搭載する自動車のメーカ）のセンターサーバからダウンロードする方法がある。このような方法は、車載機だけでなく、携帯電話等でも採用されているプログラム更新方法である。この場合、例えば、車載機が、定期的に、又は、センターサーバからの更新プログラムの通知を契機に更新プログラムをダウンロードすることで、ユーザの手を煩わせることなくなる（例えば、特許文献１〜３を参照。）。
【０００４】
また、古いプログラムから新しいプログラムに更新する場合に、その更新を効率的に行うため新旧プログラムの差分データを利用する技術が公開されている（例えば、特許文献４、５を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２１５９５８号公報
【特許文献２】特開２００６−３１２３５６号公報
【特許文献３】特開２００７−９２６２１号公報
【特許文献４】特開２００３−２５６２４８号公報
【特許文献５】特開２００３−３３７７２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来においては、システムに含まれる制御装置内のプログラムを更新しようとする場合、当該システムを管理する管理装置が、外部に設けられたサーバから更新に必要な差分プログラムを取得し、その後、当該制御装置が有する既存のプログラムと合成させることで更新に必要な更新プログラムを生成し、当該制御装置に配信していた。これでは、管理装置から配信される更新プログラムが常に大きくなるため、制御装置の更新に要する時間が長くなる虞がある。
【０００７】
本発明は、このような課題に鑑みてなされたものであり、システムに含まれる制御装置のプログラムを効率的に更新する管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明では、システムを管理する管理装置において、該システムに含まれる制御装置のプログラム更新を行うに際して、当該制御装置のプログラムの更新能力に関する情報を含む更新情報に基づいて、管理装置から当該制御装置に配信される更新のためのプログラムの形式を適切な形式に調整する構成とした。このようにすることで、制御装置に応じた更新プログラムが準備されることになるため、制御装置のプログラム更新が効率的に実行されることになる。以下に、本発明の詳細を説明する。
【０００９】
本発明は、それぞれがプログラムを実行する一又は複数の制御装置を含むシステムを管理する管理装置であって、前記システムに含まれる少なくとも一の制御装置から、該一の制御装置のプログラムの更新能力に関する情報を含む更新情報を取得する更新情報取得部と、前記一の制御装置が有するプログラムを更新するためのプログラムとして、該一の制御装置が既に有している既存プログラムと更新が行われた後の更新プログラムとの差分である差分プログラムを準備する差分プログラム準備部と、前記差分プログラム準備部によって準備された前記差分プログラムを、前記一の制御装置のプログラムの更新能力に応じた形式で該一の制御装置に配信する配信部と、を備える。
【００１０】
上記管理装置においては、更新情報取得部が、更新の対象となるプログラムを有する制御装置から、該制御装置でのプログラム更新能力に関する更新情報を取得する。この更新情報には、例えば既存プログラムと差分プログラムを合成して新たな更新プログラムを生成する能力や、更新処理速度等の情報が含まれる。そして、場合によっては、更新能力には直接関連しない、制御装置と管理装置との間のデータの通信速度や、更新の対象となるプログラムのバージョン情報等も含まれてもよい。特に制御装置自身が差分プログラムを利用した新たな更新プログラムの生成が可能か否かに関する情報は、制御装置でのプログラム更新に大きく影響するファクタである。
【００１１】
そして、差分プログラム準備部によって更新のための差分プログラムが準備されると、配信部による差分プログラムの配信が行われる。このとき、差分プログラムは必ずしもそのまま制御装置に配信される必要はなく、例えば、上記制御装置の更新情報に基づいて、制御装置の更新能力に応じた形式で配信されてもよい。それにより、更新される側の制御装置としては、自己の更新能力に応じたプログラム更新が実現でき、以てシステム全体としても各制御装置のプログラム更新が効率的に行われることになる。
【００１２】
ここで、上記管理装置において、前記更新情報に基づいて、前記一の制御装置が前記差分プログラムを前記既存プログラムと合成することで前記更新プログラムを形成することが可能か否かを判断する合成可否判断部を、更に備える場合、前記配信部は、前記合成可否判断部によって前記更新プログラムの形成が可能であると判断される場合、前記差分プログラムを前記一の制御装置に配信するようにしてもよい。このように制御装置側で既存プログラムと差分プログラムとの合成により更新プログラムの生成が可能な場合には、配信部により差分プログラムのみを配信することで、配信データ量を小さく抑えることができる。差分プログラムを配信された制御装置は、そこで更新プログラムを生成し、それにより自己の既存プログラムの更新を行う。
【００１３】
また、上記管理装置において、前記更新情報に基づいて、前記一の制御装置が前記差分プログラムを前記既存プログラムと合成することで前記更新プログラムを形成することが可能か否かを判断する合成可否判断部を、更に備える場合、前記配信部は、前記合成可否判断部によって前記更新プログラムの形成が可能でないと判断される場合、前記一の制御装置が有する前記既存プログラムを取得し、該取得された既存プログラムと前記差分プログラムとを合成することで生成される合成後プログラムを該一の制御装置に配信するよう
にしてもよい。このように制御装置側で既存プログラムと差分プログラムとの合成により更新プログラムの生成が可能ではない場合には、管理装置側で上記合成を行い、その合成の結果生成された合成後プログラムを制御装置に配信する。当該合成後プログラムを受け取った制御装置は、それを利用して自己の既存プログラムの更新を行う。これにより、差分プログラムに直接対応できない制御装置でのプログラム更新も実現することができる。
【００１４】
また、上記管理装置が対応する前記システムにおいて、他の制御装置が前記一の制御装置を介して前記管理装置に対して通信可能に接続されている場合、前記更新情報取得部は、前記他の制御装置に関する前記更新情報を取得し、前記差分プログラム準備部は、前記他の制御装置のための前記差分プログラムを準備し、前記配信部は、前記他の制御装置では前記差分プログラムを該他の制御装置が有する既存プログラムと合成することができず、且つ前記一の制御装置では該差分プログラムと該既存プログラムとの合成が可能である場合には、該差分プログラムを該一の制御装置に配信するようにしてもよい。そして、前記一の制御装置では、配信された前記差分プログラムが該他の制御装置が有する既存プログラムと合成されることで生成される合成後プログラムを該他の制御装置に配信する。
【００１５】
このように他の制御装置は、管理装置とは直接接続されていない場合であっても、直接接続されている一の制御装置において差分プログラムを用いたプログラム合成ができる場合には、一の制御装置が他の制御装置に代わってプログラム合成を行い、それを他の制御装置に配信することで、システム内で配信されるプログラムののべ容量を抑制することができ、以て効率的なプログラム更新に貢献できる。
【００１６】
また、上述までの管理装置において、前記差分プログラム準備部は、前記差分プログラムを復号化した状態で準備し、前記配信部は、前記復号化された差分プログラムを、前記一の制御装置のプログラムの更新能力に応じた形式で該一の制御装置に配信するようにしてもよい。すなわち、プログラムの更新において、管理装置側で準備される差分プログラムの状態で復号化されることで、制御装置に復号化処理を負わせる必要がなくなるため、システム全体として効率的なプログラム更新が可能となる。
【発明の効果】
【００１７】
本発明によれば、システムに含まれる制御装置のプログラムを効率的に更新することができる。
【図面の簡単な説明】
【００１８】
【図１】カーナビゲーションシステムを実装する車載機の構成例を示す図である。
【図２】タッチパネルディスプレイのスイッチの配置例を示す図である。
【図３Ａ】マスタユニットにおける、スレーブユニットのプログラム更新に関連する機能ブロック図である。
【図３Ｂ】スレーブユニットにおける、該スレーブユニットのプログラム更新に関連する第一の機能ブロック図である。
【図３Ｃ】スレーブユニットにおける、該スレーブユニットのプログラム更新に関連する第二の機能ブロック図である。
【図４Ａ】スレーブユニットであるナビユニットとアンプユニットのプログラム更新処理時のシーケンスの例を示す第一の図である。
【図４Ｂ】スレーブユニットであるナビユニットとアンプユニットのプログラム更新処理時のシーケンスの例を示す第二の図である。
【図５】図４Ａおよび図４Ｂに示すシーケンスによってマスタユニットが作成する更新テーブルの例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【００２０】
図１は、車両に搭載され、該車両のナビゲーションを行うカーナビゲーションシステムを実装する車載機Ａ１の構成例を示す図である。車載機Ａ１は、管理装置としてのマスタユニット１と、複数のスレーブユニットとを備える。スレーブユニットとしては、ナビゲーションプログラムを実行するナビユニット２、音声供給のためのスピーカ９の出力を制御するアンプユニット３、タッチパネルディスプレイ８を制御するディスプレイユニット４、ＤＶＤの再生等を制御するＤＶＤユニット５、デジタルテレビ電波を受信しディスプレイに出力する制御を行うデジタルテレビユニット６、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）の再生等を制御するＣＤユニット７等を備える。これらのユニットは、一般的にＥＣＵ(Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ)と呼ばれるマイクロプロセッサをそれぞれに備える。また、これらのユニットは、各機能を実現するためのプログラムをそれぞれに備えている。尚、図１に示される各ユニットは例示であり、実際には車載機Ａ１は他の機能を備えるユニット(ＥＣＵ)も備えていてもよい。また、車載機Ａ１は、各ユニットが一体となった装置として実現されてもよいし、各ユニットが別の装置であり、それぞれがケーブルで接続されて実現されたシステムとして構成されてもよい。すなわち、車載機Ａ１に含まれる各装置が同一の車両に備えられ、互いに接続され通信可能な状態であればよい。
【００２１】
車載機Ａ１に含まれるマスタユニット１は、車載機Ａ１を構成する各スレーブユニット２〜７が有する制御プログラム等のプログラム更新の管理を、その機能の一つとして有している。各スレーブユニットにおいては、機能拡張や不具合の修正等の観点から、そこで使用されている各種プログラムの更新を行う必要があり、そこでマスタユニット１は、そのために必要な更新プログラムをシステム外に配置されているセンターサーバ１００から無線通信を介して取得する。以下に、マスタユニット１の構成について説明する。
【００２２】
マスタユニット１は、各スレーブユニットのプログラム更新処理を管理するユニットである。マスタユニット１は、無線通信インターフェイス１１、ＲＡＭ１２、ＲＯＭ１３、ＣＰＵ１５を備える。無線通信インターフェイス１１は、車載機Ａ１の製造会社、もしくは、車載機Ａ１を搭載する車両の製造会社のセンターサーバ１００と無線通信するインターフェイスである。このほかに、マスタユニット１は、ユーザによるリモコンなどからの遠隔操作信号を受信するインターフェイス等を備える（図示せず）。
【００２３】
マスタユニット１は、各スレーブユニットの更新プログラムをセンターサーバ１００からダウンロードし、ＲＡＭ１２に格納する。各スレーブユニットからプログラム更新の要求があった場合や、予め決められた時間に定期的に、もしくは、センターサーバ１００から更新プログラムをダウンロード後に初めて電源が投入された場合などを契機として、マスタユニット１は各スレーブユニットに更新プログラムを配信する。なお、この更新プログラムの配信の詳細については後述する。
【００２４】
マスタユニット１は、その他、車載機Ａ１の操作画面（例えば、メニュー画面）や、メッセージ画面（例えば、エラー通知メッセージ）などをＲＡＭ１２に格納する。マスタユニット１は、タッチパネルディスプレイ８への操作入力位置情報とＲＡＭ１２に格納される操作画面の情報とから、タッチパネルディスプレイ８に表示されたスイッチのうち、どのスイッチが押されたのかを解析する処理を行う。
【００２５】
更に、マスタユニット１は、スレーブユニットが行っている処理が他の処理に切り換るとき、切り換わる前の処理をＲＡＭ１２に記録する。例えば、ＤＶＤユニット５でＤＶＤを再生中に、ナビユニット２が目的地への経路案内の割り込み処理を行った場合には、マ
スタユニット１は、ＤＶＤユニット５がＤＶＤの再生処理を行っていることと、処理が切り換わる時点のＤＶＤの再生位置等を記録する。現在の処理の１つ前の処理を記録することによって、例えば、ナビユニット２の目的地への経路案内処理が終了すると、マスタユニット１は、経路案内処理の１つ前のＤＶＤ再生処理を前回のＤＶＤの再生位置から再開することができる。
【００２６】
ここで、車載機Ａ１に含まれる各スレーブユニットの説明をする。ナビユニット２は、カーナビゲーションシステムの中枢となるナビゲーションプログラムを実行するスレーブユニットである。ナビユニット２は、マイクロプロセッサ（ＥＣＵ）の他に、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛星からの信号を受信するＧＰＳ受信機と、ＶＩＣＳ（Ｖｅｈｉｃｌｅ  Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ：道路交通情報通信システム）情報を受信するための受信機とのそれぞれと接続するインターフェイスを備えている（いずれも図示せず）。またナビユニット２は、膨大な量の道路地図情報をデータベースとして、ハードディスク、ＤＶＤ  ＲＯＭディスク、ＣＤ  ＲＯＭディスク等の何れかに保持し（製品によって異なる、図示せず）、必要に応じて読み出す。
【００２７】
また、ナビユニット２は、ＧＰＳ衛星やＶＩＣＳセンターからの情報や道路地図情報から、車両の現在位置を特定する処理、目的地までの経路や要する時間の算出等の経路案内処理、周辺の店舗情報を検索する検索処理等を実行する。これらの処理の結果は、タッチパネルディスプレイ８に表示されたり、スピーカ９から音声を出力したりして、ユーザに報知される。
【００２８】
アンプユニット３は、スピーカ９からの音声の出力を制御する処理を行う。アンプユニット３は、マスタユニット１、ナビユニット２、ＤＶＤユニット５、デジタルテレビユニット６、ＣＤユニット７等の音声出力処理を含むプログラムを実行するユニットからの音声出力指示を受け付け、スピーカ９から音声を出力する。この他に、アンプユニット３は、ユーザからの音量調整操作の指示（音量調節スイッチや、リモコン等からの指示入力）を受け付け、音量を調節する処理等を行う。
【００２９】
ディスプレイユニット４は、タッチパネルディスプレイ８への映像及び画像の表示の制御を行う。タッチパネルディスプレイ８は、液晶パネルなどの表示装置とタッチパッドのような位置入力装置とを組み合わせた装置である。このディスプレイユニット４は、マスタユニット１、ナビユニット２、ＤＶＤユニット５、デジタルテレビユニット６等の映像及び画像の表示処理を含むプログラムを実行する各ユニットからの映像及び画像の表示指示を受け付け、タッチパネルディスプレイ８に出力する。また、タッチパネルディスプレイ８は、位置入力装置の電圧変化又は静電容量変化を検知し、ユーザによる接触位置（押下位置）を特定する、いわゆるタッチパネル機能を備える。そこで、ディスプレイユニット４は、タッチパネルディスプレイ８へのユーザの入力位置と、表示している画像とから、ユーザによる操作入力を解析する処理を行う。解析処理の結果は、マスタユニット１に送信され、そこで必要な情報処理が行われる。
【００３０】
ＤＶＤユニット５は、ＤＶＤの再生等の制御を行う。ＤＶＤユニット５は、マイクロプロセッサ（ＥＣＵ）に加え、ＤＶＤを収容するＤＶＤドライブを備える。ＤＶＤユニット５は、ＤＶＤドライブにセットされたＤＶＤに記録されているデータを読み出し、再生する。このとき、映像データはディスプレイユニット４へ送信され、タッチパネルディスプレイ８で表示される。音声データはアンプユニット３へ送信され、スピーカ９から出力される。また、ＤＶＤユニット５は、ユーザによる（リモコン、タッチパネルディスプレイなどからの）ＤＶＤの再生に係る操作入力（早送り、巻き戻し等）を受け付ける。
【００３１】
デジタルテレビユニット６は、地上デジタル放送を視聴するための制御を行う。デジタルテレビユニット６は、マイクロプロセッサ（ＥＣＵ）の他に地上デジタル放送電波を受信するアンテナに接続したインターフェイスと、地上デジタル放送用のチューナを備える（いずれも図示せず）。デジタルテレビユニット６は、受信した地上デジタル放送電波を映像、音声、データ放送に復号する。映像及びデータ放送に関するデータは、ディスプレイユニット４に送信されタッチパネルディスプレイ８に表示される。音声データは、アンプユニット３に送信され、スピーカ９から出力される。デジタルテレビユニット６は、ユーザによる（リモコン、タッチパネルディスプレイなどからの）操作入力（放送局選択、データ放送の表示又は非表示の選択）を受け付ける。
【００３２】
ＣＤユニット７は、ＣＤに記録された音声データの再生等を行うプログラムを実行する。ＣＤユニット７は、マイクロプロセッサ（ＥＣＵ）に加え、ＣＤを格納するためのＣＤドライブ（図示せず）を備える。ＣＤユニット７は、ＣＤドライブにセットされたＣＤから音声データを読み出し、再生する。音声データはアンプユニット３に送信されスピーカ９から出力される。ＣＤユニット７は、ユーザによる（リモコン、タッチパネルディスプレイなどからの）操作入力（曲選択など）を受け付ける。
【００３３】
尚、上述した各スレーブユニットが行う処理は、一例であり、製品仕様によって各スレーブユニットが行う処理は異なる場合がある。また、上述のスレーブユニットの列挙も例示的であり、車載機Ａ１は、他に、ラジオを受信するラジオユニット、ハードディスクオーディオユニット、ＢＬＵＥＴＯＯＴＨ（登録商標）のような近距離の無線通信規格を採用し携帯電話などと通信を行う通信ユニット等を搭載することができる。
【００３４】
図２は、タッチパネルディスプレイ８のスイッチの配置例を示す図である。タッチパネルディスプレイ８は、表示画面に車載機Ａ１の各スレーブユニットを操作するためのスイッチをその画面上に表示することができる。ユーザがこの画面上のスイッチを押下（接触）することで、対応するスレーブユニットの制御が開始される。なお、図２に示す画面上のスイッチは、図１に示す全てのスレーブユニットに対応するものではなく、一部のスレーブユニットに対応した一例である。
【００３５】
このように構成されるスレーブユニット２〜７およびマスタユニット１からなる車載機Ａ１において、各スレーブユニットが有する制御プログラムの更新の詳細について説明する。図３Ａ〜図３Ｃのそれぞれには、マスタユニット１、スレーブユニットの一例としてのナビユニット２、更にもう一例としてのアンプユニット３における、制御プログラムの更新に関する機能をイメージ化した機能ブロックを示す。これらの機能は、各ユニットでの対応するプログラムが実行されることで実現される。ここで、互いにスレーブユニットであるナビユニット２とアンプユニット３との間で、制御プログラムの更新に関して相違する点は、後述する更新のための差分プログラムと既存のプログラムとの合成を自己のユニット内で行う能力（以下、「合成能力」と言う）が有るか否かである点であり、ナビユニット２は当該プログラムの合成が可能であり、アンプユニット３は当該プログラムの合成が不可能である。その他のスレーブユニットにおいても、当該プログラムの合成の可否については、可能であるか不可能であるかの何れかであるので、以下の説明においてはナビユニット２およびアンプユニット３のケースを例示することで、その他のスレーブユニットに関する制御プログラムの更新の説明は割愛する。
【００３６】
ここで、図３Ａは、マスタユニット１における、プログラム更新に関する機能ブロックを示す。マスタユニット１には、スレーブ更新情報取得部１ａ、更新判定部１ｂ、差分プログラム取得部１ｃ、差分プログラム送信部１ｄ、更新プログラム生成配信部１ｅが備えられる。スレーブ情報取得部１ａは、プログラムが更新されるスレーブユニット（本実施例では、ナビユニット２とアンプユニット３）から、各スレーブユニットのプログラムの
更新能力に関する更新情報を取得する。この更新情報には、上記合成能力に関する情報に加えて、更新の対象となるプログラム（各スレーブユニットが現時点で保持している既存のプログラム（以下、「既存プログラム」と言う。））のバージョン情報や、各スレーブユニットとマスタユニット１との間のボーレートに関する情報等が含まれる。更新判定部１ｂは、スレーブユニットにおいて制御プログラムの更新を行うか否かの判定をする。
【００３７】
差分プログラム取得部１ｃは、制御プログラムの更新を行う必要があると判定されたスレーブユニットに対して、更新のために必要なプログラムを、マスタユニット１側で差分プログラムの形式で取得する。この差分プログラムは、スレーブユニットが既に有している既存の制御プログラムと更新が行われた後の、あるべき更新後の制御プログラムとの差分の形式で形成される。このように差分プログラムを用いて制御プログラムの更新を行うことで、更新の際に送受信するデータ量を抑制することができる。この差分データを用いたプログラムの更新技術自体は従来技術であるので、その詳細な説明は割愛する。
【００３８】
差分プログラム送信部１ｄは、制御プログラムの更新を行うスレーブユニットに対して、当該更新のためのプログラムとして差分プログラムを配信する。一方で、更新プログラム生成配信部１ｅは、制御プログラムの更新を行うスレーブユニットに対して、当該更新のためのプログラムとして、差分プログラムと当該スレーブユニットが有する既存の制御プログラムとを合成して生成された更新プログラムを配信する。マスタユニット１においては、一のスレーブユニットに対しては、差分プログラム配信部１ｄと更新プログラム配信部１ｅの何れかの機能部によって、該一のスレーブユニットでの更新のためのプログラムが配信されることになる。
【００３９】
次に、図３Ｂは、スレーブユニットであるナビユニット２における、プログラム更新に関する機能ブロックを示す。このナビユニット２は、上記合成能力を有するスレーブユニットであり、該ナビユニット２には、スレーブ更新情報送信部２ａ、差分プログラム受信部２ｂ、更新プログラム生成部２ｃが備えられる。スレーブ更新情報送信部２ａは、上記スレーブ更新情報取得部１ａからの要求に応じて、ナビユニット２の更新情報を送信する。差分プログラム受信部２ｂは、上記差分プログラム配信部１ｄに応じて、そこから配信される差分プログラムを受信する。更新プログラム生成部２ｃは、受信した差分プログラムとナビユニット２自身が既に有している既存プログラムとを合成し、更新プログラムを生成する。
【００４０】
次に、図３Ｃは、スレーブユニットであるアンプユニット３における、プログラム更新に関する機能ブロックを示す。このアンプユニット３は、上記合成能力を有していないスレーブユニットであり、該アンプユニット３には、スレーブ更新情報送信部３ａ、既存プログラム送信部３ｂ、更新プログラム受信部３ｃが備えられる。スレーブ更新情報送信部３ａは、上記スレーブ更新情報取得部１ａからの要求に応じて、アンプユニット３の更新情報を送信する。既存プログラム送信部３ｂは、上記更新プログラム生成配信部１ｅに応じて、そこにアンプユニット３の既存プログラムを送信する。更新プログラム受信部３ｃは、上記更新プログラム生成配信部１ｅから配信されてくる更新プログラムを受信する。
【００４１】
このように構成されるマスタユニット１、ナビユニット２、アンプユニット３を含む車載機Ａ１において、ナビユニット２およびアンプユニット３での制御プログラムの更新は、図４Ａおよび図４Ｂに示すフローに従って実行される。先ず、Ｓ２０１で、マスタユニット１において、各スレーブユニットの制御プログラムの更新を開始するか否かの判断が行われる。本実施例においては、車載機Ａ１が搭載されている車両において、イグニッションＯＮされたタイミングや、また所定の時期（例えば、マスタユニット１が内蔵するタイマを利用して判断される毎月所定の日等）であるか否かが判定される。次に、Ｓ２０２では、マスタユニット１からセンターサーバ１００に対して、該マスタユニット１が管理
しているスレーブユニット（ナビユニット２、アンプユニット３等）が有する制御プログラムの最新バージョン情報の問合せが行われる。このマスタユニット１からの問合せに応答して、センターサーバ１００はサーバ内に記録されている制御プログラムに関するバージョン情報をマスタユニット１に返す。本実施例においては、マスタユニット１から一回の問合せに応答して、センターサーバ１００は、車載機Ａ１に含まれる全てのスレーブユニットに関するバージョン情報を一括して返すが、マスタユニット１が特定のスレーブユニットについて問合せを行い、それに応答して当該特定のスレーブユニットに関するバージョン情報をセンターサーバ１００が返すようにしてもよい。
【００４２】
上記のようにマスタユニット１とセンターサーバ１００との間で制御プログラムの最新バージョン情報のやりとりが行われる一方で、マスタユニット１は各スレーブユニットに対してそれぞれが有する更新情報の問合せを行う（Ｓ２０３の処理）。そして、この問合せに呼応して、ナビユニット２は自身の更新情報をマスタユニット１に送信し（Ｓ３０１の処理）、アンプユニット３は自身の更新情報をマスタユニット１に送信する（Ｓ４０１の処理）。この一連の流れにおいて、マスタユニット１による各スレーブユニットの更新情報の取得処理が、上記スレーブ更新情報取得部１ａによって実行され、ナビユニット２およびアンプユニット３による各更新情報の送信処理が、上記スレーブ更新情報送信部２ａ、３ａによって実行される。
【００４３】
ここまでの処理によって、マスタユニット１は、ナビユニット２およびアンプユニット３の制御プログラムに関する最新バージョン情報と、これらユニットの更新情報を取得する。そこで、Ｓ２０４の処理において、これらの取得情報に基づいて制御プログラムの更新のための更新テーブルを作成する。図５に、この更新テーブルの一例を示す。更新テーブルのフィールドには、各スレーブユニットに対応する識別用のＩＤ、制御プログラムの現在のバージョンと最新のバージョン、各スレーブユニットのプログラム合成能力の有無とボーレートが含まれる。なお、図５においては、図１に示す各スレーブユニットに対応する欄は設けているが、説明の簡便さのため、ナビユニット２に対応する欄（スレーブユニットＩＤがNAVI_FTEN05で表される欄）とアンプユニット３に対応する欄（スレーブユ
ニットＩＤがAMP_FTEN01で表される欄）のみデータを記載している。以降、この更新テーブルに基づいて、マスタユニット１は各スレーブユニットのプログラム更新を制御する。
【００４４】
Ｓ２０４の処理が終了すると、Ｓ２０５へ進む。Ｓ２０５では、マスタユニット１において、上記更新テーブルに基づいた各スレーブユニットにおけるプログラム更新の必要性の有無が判断される。当該判定処理は、上記更新判定部１ｂによって実行される。具体的には、更新テーブル中の現在のバージョンと最新のバージョンの各フィールドが比較され、現在のバージョンが最新のバージョンでなければ、プログラムの更新を行う必要があると判断される。更新の必要有りとの判断が行われると、Ｓ２０６以降の処理が行なわれる。なお、Ｓ２０６以降の処理が行われるに当たり、Ｓ２０５での更新判断だけではなく、Ｓ２０５で更新の必要有りとの判断が行われた後にユーザに対して実際にプログラム更新を行ってよいか否か確認するプロセスがあってもよい。この場合、ディスプレイユニット４を介してタッチパネルディスプレイ８に確認のためのメッセージを表示する。本実施例においては、図５に示すように、ナビユニット２およびアンプユニット３ともに現在のバージョンが最新のバージョンではないので、各ユニットともプログラム更新の必要があると判断される。
【００４５】
次に、Ｓ２０６でプログラム更新の必要があると判断されると、マスタユニット１は、各スレーブユニットのプログラムを更新するのに必要な差分プログラムを、センターサーバ１００に対して要求する（Ｓ２０６の処理）。この要求に呼応して、センターサーバ１００は必要な差分プログラムをマスタユニット１に送信し（Ｓ１０２の処理）、該マスタユニット１は差分プログラムを取得する（Ｓ２０７の処理）。このとき、マスタユニット
１はプログラム更新の必要があるスレーブユニット分の差分プログラムを一括してセンターサーバ１００に要求し、そこより一括して取得する。この一連の流れにおいて、マスタユニット１による差分プログラムの取得処理が、上記差分プログラム取得部１ｃによって実行される。
【００４６】
その後、マスタユニット１は、一括して受け取った必要分の差分プログラムの復号化処理を行う（Ｓ２０８の処理）。センターサーバ１００から送信された差分プログラムには、通信安全のための暗号化処理が施されている。そこで、Ｓ２０８では、この暗号化された差分プログラム全体の復号化処理を、マスタユニット１側で予め一括して行うことで、その後の各スレーブユニットでの復号化処理を省略することができ、以て車載機Ａ１のシステム全体のプログラム更新を効率的に行うことが可能となる。Ｓ２０８の処理後、Ｓ２０９以降の処理が行われる。
【００４７】
Ｓ２０９では、Ｓ２０５でプログラムの更新が必要であると判断されたスレーブユニットに合成能力が備えられているか否かに基づいて、当該スレーブユニットに配信されるプログラムの切り替えが行われる。当該スレーブユニットに合成能力が備えられている場合（本実施例においては、ナビユニット２が合成能力を備えている。）、Ｓ２０９からＳ２１０へ処理が進み、マスタユニット１の差分プログラム配信部１ｄによって、ナビユニット２のプログラム更新に必要なプログラムを、差分プログラムの形式で配信される。配信された当該差分プログラムは、ナビユニット２の差分プログラム受信部２ｂによって受信され（Ｓ３０２の処理）、更に合成能力を発揮する更新プログラム生成部２ｃによって、配信された差分プログラムとナビユニット２における既存プログラムとの合成が行われて、最終的な更新プログラムが生成され、ナビユニット２のプログラム更新が実行される（Ｓ３０３の処理）。
【００４８】
一方で、スレーブユニットに合成能力が備えられていない場合（本実施例においては、アンプユニット３が合成能力を備えていない。）、Ｓ２０９からＳ２１１へ処理が進み、アンプユニット３に対して、該アンプユニット３の既存プログラムをマスタユニット１に送信するように要求が出される。この要求に呼応して、アンプユニット３では自己の有する既存プログラムをマスタユニット１に送信する準備が採られるが、その前に要求を出したマスタユニット１が送信先として正当なユニットであるか否かの確認が行われる（Ｓ４０２の処理）。具体的には、マスタユニット１が有している識別番号が、アンプユニット３が認識している番号であるか否かに基づいて、当該確認が行われる。ここで要求を出したマスタユニット１の正当性が確認されると、アンプユニット３の既存プログラム送信部３ｂによって、自己の有する既存プログラムがマスタユニット１に対して送信される（Ｓ４０３の処理）。
【００４９】
そして、アンプユニット３の既存プログラムを受信したマスタユニット１では、センターサーバ１００から取得したアンプユニット３用の差分プログラムと、該既存プログラムとを合成し、アンプユニット３用の新たな更新プログラムを生成する（Ｓ２１２の処理）。すなわち、差分プログラムの合成能力を有しないアンプユニット３に代わって、マスタユニット１が更新に必要なプログラム合成を行う。その後、Ｓ２１３の処理により、生成された更新プログラムがアンプユニット３に配信され、それを受信した該アンプユニット３側ではプログラムの既存プログラムと配信された更新プログラムの書替が行われることで、該アンプユニット３で更新が完了する。この一連の流れにおいて、センタユニット１に関するＳ２１２およびＳ２１３の処理が更新プログラム生成配信部１ｅによって実行され、アンプユニット３に関するＳ４０４の処理が更新プログラム受信部３ｃによって実行される。
【００５０】
また、上記Ｓ２１０およびＳ２１３に示した、マスタユニット１から各スレーブユニッ
トへの差分プログラムもしくは更新プログラムの配信は、図５に示す更新リストにおける各スレーブユニットのボーレートに基づいて行われる。具体的には、配信される差分プログラムもしくは更新プログラムは、各スレーブユニットのボーレート毎に分割されて配信される。これにより、円滑で確実なプログラム配信が確保される。
【００５１】
このように上述した各スレーブユニットのプログラム更新方法によれば、スレーブユニットの合成能力の有無に基づいて、センタユニット１から配信されるプログラムの形式が適切な形式に切替えられる。すなわち、更新の対象となるスレーブユニットが合成能力を有している場合には、最終的な更新プログラムの生成をスレーブユニット側に任せることで、配信されるデータ量を抑制し、一方で、更新の対象となるスレーブユニットが合成能力を有していない場合には、最終的な更新プログラムの生成をマスタユニット１側で行うことで、プログラム更新を確実に行いユーザの要求に応じたスレーブユニットの高機能化、機能修正の実現が図られ、以て車載機Ａ１の全体としての効率的なプログラム更新に寄与する。
【００５２】
＜その他の実施例＞
上記プログラム更新の例では、マスタユニット１に対して直接的に通信可能に接続されているスレーブユニットにおけるプログラム更新の例が示されたが、別のプログラム更新の形態として、マスタユニット１には直接的に通信可能に接続されておらず、このようなスレーブユニットに対して更に通信可能に接続されている、更新対象となるプログラムを有するスレーブユニットや制御装置での更新が挙げられる。例えば、図１に示す車載機Ａ１において、タッチパネルディスプレイ８上に、ディスプレイユニット４による制御機能とは異なる何らかの機能を発揮する制御部が組み込まれ、その制御部用のプログラム更新を行う場合、このタッチパネルディスプレイ８が上記別のプログラム更新の形態に該当する。
【００５３】
このような形態においては、タッチパネルディスプレイ８は、ディスプレイユニット４を介してマスタユニット１と通信可能ではある。ここで、タッチパネルディスプレイ８が有する更新情報は図４Ａに示す制御フローと同じように、マスタユニット１に対して収集され更新リストに反映される。そして、タッチパネルディスプレイ８自身が上記合成能力を有している場合には、Ｓ２１０の処理と同様に、タッチパネルディスプレイ８用の差分プログラムのみがタッチパネルディスプレイ８に配信される。一方で、タッチパネルディスプレイ８自身が上記合成能力を有していない場合であっても、該タッチパネルディスプレイ８の上流側に位置するディスプレイユニット４が合成能力を有しているのであれば、マスタユニット１は、そのディスプレイユニット４にまではタッチパネルディスプレイ８用の差分プログラムを配信し、そこで当該差分プログラムと、タッチパネルディスプレイ８から取得したその既存プログラムとを合成して、タッチパネルディスプレイ８用の更新プログラムを生成してもよい。すなわち、更新対象となるスレーブユニット等の代わりとなるプログラム合成をマスタユニット１が必ずしも行う必要は無く、当該スレーブユニット以外のスレーブユニットに代理としてプログラム合成を委ねてもよい。このようにすることで、車載機Ａ１全体のプログラム更新を司るマスタユニット１の負荷を分散させることができるので、システム全体としてのプログラム更新の効率化が図られることになる。したがって、ディスプレイユニット４に合成能力が備えられていない場合であっても、例えばＤＶＤユニット５に合成能力があるのであれば、ＤＶＤユニット５がタッチパネルディスプレイ８のためのプログラム合成を行うようにしてもよい。
【符号の説明】
【００５４】
１・・・マスタユニット
２・・・ナビユニット
３・・・アンプユニット
４・・・ディスプレイユニット
５・・・ＤＶＤユニット
６・・・デジタルテレビユニット
７・・・ＣＤユニット
８・・・タッチパネルディスプレイ
９・・・スピーカ
１１・・・無線通信インターフェイス
１２・・・ＲＡＭ
１３・・・ＲＯＭ
１５・・・ＣＰＵ
１００・・・センターサーバ
Ａ１・・・車載機
【図１】
2010218070.tif 000003
【図２】
2010218070.tif 000004
【図３Ａ】
2010218070.tif 000005
【図３Ｂ】
2010218070.tif 000006
【図３Ｃ】
2010218070.tif 000007
【図４Ａ】
2010218070.tif 000008
【図４Ｂ】
2010218070.tif 000009
【図５】
2010218070.tif 000010