(57)【要約】【課題】階層構造を持つ複数の制御部のソフトウェアを適切に管理する技術を提供する。【解決手段】少なくとも３階層構造を持つ複数の制御部を有し、各制御部がそれぞれ各自のソフトウェアを実行する情報処理システムにおいて、第１層に位置する第１制御部が、第２層に位置する第２制御部から、この第２制御部のソフトウェアバージョン情報と、第２制御部により収集された第３層に位置する第３制御部のソフトウェアバージョン情報と、を収集する手段と、第１制御部のソフトウェアバージョン情報、及び、上記収集された第２制御部及び第３制御部のソフトウェアバージョン情報をセンタ装置に送信する手段と、旧バージョンを最新バージョンに更新可能な更新ソフトウェアデータをセンタ装置から受信する手段と、を備える。【選択図】図１
2010282385.tif 000002
【特許請求の範囲】
【請求項１】
最上位層である第１層、該第１層の下位層である第２層、該第２層の下位層である第３層の少なくとも３階層構造を持つ複数の制御部であって、該第１層に位置する第１制御部、該第２層に位置する第２制御部及び該第３層に位置する第３制御部を少なくとも含む複数の制御部を有し、各制御部がそれぞれ各自のソフトウェアを実行する情報処理システムにおいて、
前記第１制御部が、
前記第２制御部から、該第２制御部のソフトウェアバージョン情報と、該第２制御部により収集された前記第３制御部のソフトウェアバージョン情報と、を収集する収集手段と、
前記第１制御部のソフトウェアバージョン情報、及び、前記収集された第２制御部及び第３制御部のソフトウェアバージョン情報を無線通信を介してセンタ装置に送信する送信手段と、
前記送信された各制御部のソフトウェアバージョン情報に関し最新バージョンとなっていない旧バージョンのソフトウェアが存在する場合には、該旧バージョンを該最新バージョンに更新可能な更新ソフトウェアデータを前記センタ装置から受信する受信手段と、
を備え、
前記更新ソフトウェアデータを受信した前記第１制御部、第２制御部及び第３制御部の少なくとも１つが、
前記更新ソフトウェアデータを用いて、旧バージョンのソフトウェアを最新バージョンにバージョンアップするバージョンアップ手段、
を備えることを特徴とする情報処理システム。
【請求項２】
前記複数の制御部は、各制御部を識別するための識別データをそれぞれ保持し、
前記第１制御部の送信手段は、
前記第１制御部のソフトウェアバージョン情報、及び、前記収集された第２制御部及び第３制御部のソフトウェアバージョン情報を、各制御部の識別データとそれぞれ関連付けた状態で、無線通信を介してセンタ装置に送信し、
前記第１制御部の受信手段は、
前記更新ソフトウェアデータと旧バージョンのソフトウェアを有する制御部の識別情報とを受信し、
前記更新ソフトウェアデータを受信した前記第１制御部、第２制御部及び第３制御部の少なくとも１つが備えるバージョンアップ手段は、
前記更新ソフトウェアデータを用いて、前記識別情報で特定される制御部における旧バージョンのソフトウェアを最新バージョンにバージョンアップする、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第２制御部は、
前記第１制御部から前記ソフトウェアバージョン情報を収集するためのバージョン情報要求メッセージを受信した場合には、該第１制御部に、下位層の制御部の数を含む応答メッセージを返信し、前記第３制御部に該バージョン情報要求メッセージを送信する送信手段、
を備え、
前記第１制御部は、
前記バージョン情報要求メッセージを前記第２制御部へ送信した後に、該第２制御部から該第２制御部が管理する下位層の制御部の数を含む応答メッセージを受信した場合には、該バージョン情報要求メッセージを送信してからその応答メッセージを受信するまでのタイムアウト時間を該応答メッセージに含まれる下位層の制御部の数に応じて延長する延長手段、
を更に備えることを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記第１制御部は、
前記センタ装置から、前記送信された各制御部のソフトウェアバージョン情報のうちの最新バージョンとなっていないソフトウェアの存在に関する通知を受信する手段と、
前記通知において最新バージョンとなっていない旧バージョンのソフトウェアが存在する場合には、前記情報処理システムに接続されるユーザインタフェースに、バージョンアップの意思をユーザに確認するための確認画面を表示させる手段と、
前記ユーザインタフェースから前記確認画面のユーザによる操作結果を受信する手段と、
前記操作結果がバージョンアップ実行を示す場合に、前記センタ装置へ前記更新ソフトウェアデータを要求する手段と、
を更に備える請求項１から３のいずれか１項に記載の情報処理システム。
【請求項５】
前記複数の制御部は、各制御部を識別するための識別データをそれぞれ保持し、
前記識別データは、各制御部が位置する階層、該階層内での各制御部の識別番号、及び、各制御部を管理する上位層の制御部の識別番号を含む、
ことを特徴とする請求項１から４のいずれか１項に記載の情報処理システム。
【請求項６】
最上位層である第１層、該第１層の下位層である第２層、該第２層の下位層である第３層の少なくとも３階層構造を持ちそれぞれ各自のソフトウェアを実行する複数の制御部のうちの、該第１層に位置する第１制御部において、
前記第２層に位置する第２制御部から、該第２制御部のソフトウェアバージョン情報と、該第２制御部により収集された前記第３層に位置する第３制御部のソフトウェアバージョン情報と、を収集する収集手段と、
前記第１制御部のソフトウェアバージョン情報、及び、前記収集された第２制御部及び第３制御部のソフトウェアバージョン情報を無線通信を介してセンタ装置に送信する送信手段と、
前記送信された各制御部のソフトウェアバージョン情報に関し最新バージョンとなっていない旧バージョンのソフトウェアが存在する場合には、該旧バージョンを該最新バージョンに更新可能な更新ソフトウェアデータを前記センタ装置から受信する受信手段と、
前記更新ソフトウェアデータを前記識別情報で特定される制御部に送信する手段と、
前記更新ソフトウェアデータを用いて、旧バージョンのソフトウェアを最新バージョンにバージョンアップする制御部に該更新ソフトウェアデータを送信する手段と、
を備えることを特徴とする制御部。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層構造を持つ複数の制御部に関するソフトウェアバージョン管理技術に関する。
【背景技術】
【０００２】
車両には、ナビゲーション装置、オーディオ、テレビ等、様々な電子機器が搭載されている。これら電子機器では、ＥＣＵ（Electric Control Unit）やＣＰＵ（Central Processing Unit）と呼ばれる制御ユニットがＲＯＭ（Read Only Memory）等のメモリに格納されているプログラムを実行することにより各種機能を実現する。これら電子機器は、車載ＬＡＮ（Local Area Network）により接続され、連携動作する。なお、このような構成は、車載システムに限らず、様々なシステムに適用されている。
【０００３】
このような複数の制御ユニットが接続されたシステムにおいて、各制御ユニットのソフトウェア（制御プログラム、ファームウェア等）のバージョン情報を管理し、必要に応じてそのソフトウェアの更新を自動で行う手法が下記文献に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１５９５８号公報
【特許文献２】特開２００６−３１２３５６号公報
【特許文献３】特開２００１−６７２１５号公報
【特許文献４】特開２００７−９２６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のような従来手法は、複数のマイクロコンピュータ（以降、マイコンと表記する）が階層構造を持って接続されることにより構成される制御ユニット、或いは、各制御ユニットが階層構造を持って接続されるシステムには適用できない。ここでいう階層構造とは、或るマイコンがそれに接続される他のマイコンを制御するような構成を意味し、制御するマイコンを親マイコンと表記し、この親マイコンに制御されるマイコンを子マイコンと表記し、子マイコンに制御されるマイコンを孫マイコンと表記する。また、このような階層構造において、制御される側のマイコンから制御する側のマイコンを上位と表記し、制御する側のマイコンから制御される側のマイコンを下位と表記する場合もある。
【０００６】
すなわち、従来手法では、子マイコン及びそれより下位のマイコンのソフトウェア（例えば、制御プログラム等）を自動管理することができなかった。ここでマイコンとは、ＣＰＵ、ＥＣＵ等のようにソフトウェアを実行することにより各種処理を実行する制御部を意味する。また、マイコンのソフトウェアとは、各マイコンの機能を実現するために実行される各種プログラムを意味し、制御プログラム、ファームウェア等が含まれる。
【０００７】
本発明の目的は、このような問題点に鑑み、階層構造を持つ複数の制御部のソフトウェアを適切に管理する技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の各態様では、上述した課題を解決するために、それぞれ以下の構成を採用する。
【０００９】
本発明の第１態様は、最上位層である第１層、この第１層の下位層である第２層、この第２層の下位層である第３層の少なくとも３階層構造を持つ複数の制御部であって、第１層に位置する第１制御部、第２層に位置する第２制御部及び第３層に位置する第３制御部を少なくとも含む複数の制御部を有し、各制御部がそれぞれ各自のソフトウェアを実行する情報処理システムに関する態様である。本発明の第１態様に係る情報処理システムでは、第１層に位置する第１制御部が、第２層に位置する第２制御部から、この第２制御部のソフトウェアバージョン情報と、第２制御部により収集された第３層に位置する第３制御部のソフトウェアバージョン情報と、を収集する収集手段と、第１制御部のソフトウェアバージョン情報、及び、上記収集された第２制御部及び第３制御部のソフトウェアバージョン情報をセンタ装置に無線通信を介して送信する送信手段と、上記送信された各制御部のソフトウェアバージョン情報に関し最新バージョンとなっていない旧バージョンのソフトウェアが存在する場合には、旧バージョンを最新バージョンに更新可能な更新ソフトウェアデータを上記センタ装置から受信する受信手段と、を備え、上記更新ソフトウェアデータを受信した第１制御部、第２制御部及び第３制御部の少なくとも１つが、その更新ソフトウェアデータを用いて、上記識別情報で特定される制御部における旧バージョンのソフトウェアを最新バージョンにバージョンアップするバージョンアップ手段を備える。
【００１０】
このように第１態様によれば、複数の制御部が少なくとも３階層構造を持つような場合であっても、その最上位層に位置する第１制御部に、それより下位層の第２層及び第３層に位置する第２制御部及び第３制御部の各ソフトウェアバージョン情報を集約させることができる。
【００１１】
更に、第１態様によれば、当該第１制御部が、集約されたソフトウェアバージョン情報を無線通信を介してセンタ装置へ送ることにより最新バージョンとなっていないソフトウェアの存在に関する情報を知ることができ、旧バージョンを最新バージョンに更新可能な更新ソフトウェアデータをダウンロードすることができる。すなわち、各ソフトウェアの更新（バージョンアップ）管理をセンタ装置に行わせることができるため、当該情報処理システムは、各ソフトウェアの更新タイミングや更新情報等の複雑な管理をする必要がなく、処理を軽くすることができると共に、センタ装置との間の通信量も低減させることができる。
【００１２】
上記第１態様のより具体的態様として、上記複数の制御部が、各制御部を識別するための識別データをそれぞれ保持し、上記第１制御部の送信手段が、第１制御部のソフトウェアバージョン情報、及び、上記収集された第２制御部及び第３制御部のソフトウェアバージョン情報を、各制御部の識別データとそれぞれ関連付けた状態で、無線通信を介してセンタ装置に送信し、上記第１制御部の受信手段が、更新ソフトウェアデータと旧バージョンのソフトウェアを有する制御部の識別情報とを受信し、上記更新ソフトウェアデータを受信した第１制御部、第２制御部及び第３制御部の少なくとも１つが備えるバージョンアップ手段が、当該更新ソフトウェアデータを用いて、識別情報で特定される制御部における旧バージョンのソフトウェアを最新バージョンにバージョンアップするように構成してもよい。
【００１３】
また、この態様によれば、バージョンアップの対象となる制御部を識別するための識別情報と当該更新ソフトウェアデータとが受信されるため、その更新ソフトウェアデータによりバージョンアップする必要のある制御部を適切に特定することができる。更に、更新ソフトウェアデータを用いて旧バージョンのソフトウェアを最新バージョンにバージョンアップする手段は、第１制御部、第２制御部及び第３制御部の少なくとも１つが備えていればよい。例えば、当該識別情報で特定される制御部が第３制御部であったとして、当該バージョンアップする手段をその第３制御部が備えていなかったとしても、第１制御部又
は第２制御部がその第３制御部における旧バージョンのソフトウェアを最新バージョンにバージョンアップすることができる。当然、当該識別情報で特定される制御部が第３制御部であったとして、当該バージョンアップする手段をその第３制御部が備えている場合には、第３制御部が自身（第３制御部）の旧バージョンのソフトウェアを最新バージョンにバージョンアップするようにしてもよい。
【００１４】
なお、本発明の別態様としては、以上の何れかの構成を実現するソフトウェアバージョン管理方法であってもよいし、そのプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記憶媒体であってもよい。
【発明の効果】
【００１５】
本発明によれば、階層構造を持つ複数の制御部のソフトウェアを適切に管理する技術を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態における複数マイコンの階層構造の例を示す概念図。
【図２】実施例１における車載システムの概略構成を示すブロック図。
【図３】各マイコンのソフトウェアの構成概念を示すブロック図。
【図４Ａ】自マイコン情報テーブルの例を示す図。
【図４Ｂ】下位マイコン情報テーブルの例を示す図。
【図５】実施例１における下位マイコン存在確認処理を示すシーケンス図。
【図６】実施例１におけるバージョン情報収集処理を示すシーケンス図。
【図７】実施例１におけるバージョンアップ処理を示すシーケンス図。
【発明を実施するための形態】
【００１７】
以下、一実施形態としての車載システムについて具体例を挙げ説明する。なお、本発明は、このような車載用のシステムに限定するものではなく、複数の制御部が階層構造を持って接続されるようなシステムであれば適用可能である。本発明は以下の各実施例の構成に限定されない。
【００１８】
［実施形態の概要］
以下に、まず、実施形態の概要を説明する。
【００１９】
図１は、本実施形態における複数マイコンの階層構造の例を示す概念図である。本実施形態の車載システムは、図１の例のように、階層構造を持つ複数のマイコンから構成される。階層構造に応じて、これら複数のマイコンにはその機能に応じて主従関係がそれぞれ設定される。
【００２０】
図１の例では、マイコン１１、２１及び３１が親マイコンとして位置付けられている。各親マイコン１１及び２１及び３１は、子マイコン及び孫マイコンとして位置付けられた各マイコンをそれぞれ制御可能となるように階層構造１０、２０及び３０をそれぞれ形成する。親マイコン１１、２１及び３１には更に主従関係が設けられる。すなわち、全てのマイコンを統合するマイコンとしての親マイコン１１がマスタ親マイコンに位置付けられ、他の親マイコン２１及び３１がスレーブ親マイコンに位置付けられる。なお、本発明は、各階層構造に含まれるマイコンの数や階層の数等を限定しない。
【００２１】
図１の例では、親マイコン１１、２１及び３１は車載ＬＡＮ（Local Area Network）やＵＳＢ（Universal Serial Bus）等のネットワーク５によりそれぞれ通信可能に接続されており、各階層構造１０、２０及び３０内の親マイコン、子マイコン及び孫マイコンは内部バス７等によりそれぞれ通信可能に接続される。なお、本発明は、各マイコンの接続形
態を限定するものではないため、階層構造内のマイコンがネットワーク５で接続されてもよいし、親マイコン間が内部バス７で接続されてもよい。
【００２２】
本実施形態における車載システムは、このような階層構造を持つ各マイコンで利用される各ソフトウェアをそれぞれ管理及び更新する機能を持つ。各ソフトウェアは、センタ装置（以降、センタと表記する）１においてバージョン管理される。センタ１は、ソフトウェアが更新された場合にはその更新プログラムを取得する。この更新プログラムは、他のサーバ装置から取得されるようにしてもよい。
【００２３】
本実施形態における車載システムは、マスタ親マイコン１１の制御によりセンタ１と無線通信することにより、更新されたプログラムをセンタ１から取得し、対象マイコンのソフトウェアをその更新されたプログラムでバージョンアップする。このようなソフトウェア管理更新機能を実現するために、本実施形態における車載システムの各マイコンはそれぞれ以下のような処理を実行する。
【００２４】
階層構造１０、２０及び３０において各上位マイコンが各下位マイコンのソフトウェアのバージョン情報をそれぞれ収集し、最終的に、マスタ親マイコン１１が全てのマイコンのソフトウェアのバージョン情報を取得する。
【００２５】
マスタ親マイコン１１は、収集した全てのマイコンのソフトウェアバージョン情報をセンタ１へ送り、センタ１にバージョンアップの必要可否を判断させ、その結果を受信する。マスタ親マイコン１１は、上記結果に応じてバージョンアップを行う場合には、センタ１からその更新プログラムを受信する。
【００２６】
マスタ親マイコン１１は、その受信された更新プログラムを対象のマイコンへ送り、その更新プログラムに基づいてその対象マイコンの制御プログラムのバージョンアップを実行させる。
【００２７】
各マイコンが階層構造のどの階層に位置するかといったツリー構造情報は、例えば、各マイコンが利用するソフトウェアに設定される。その他、このツリー構造情報は、ソフトウェアにより参照される設定データ内に格納されてもよい。
【実施例１】
【００２８】
以下、実施形態としての車載システムの実施例１について説明する。
【００２９】
〔システム構成〕
図２は、実施例１における車載システムの概略構成を示すブロック図である。実施例１における車載システムは、ナビゲーションＥＣＵ（Electric Control Unit）４０、通信
ＥＣＵ６０、デジタルテレビＥＣＵ（以降、ＤＴＶ−ＥＣＵと表記する）６５、アンプＥＣＵ７０等を有する。ナビゲーションＥＣＵ４０、ＤＴＶ−ＥＣＵ６５及びアンプＥＣＵ７０は車載ＬＡＮ７２によりそれぞれ接続され、ナビゲーションＥＣＵ４０と通信ＥＣＵ６０とはＵＳＢ７３により接続される。
【００３０】
ナビゲーションＥＣＵ４０は、システムブロックコアマイコン（以降、コアマイコンと表記する）４１を含み、このコアマイコン４１の制御によりカーナビゲーションシステムを実現する。このコアマイコン４１が実施例１におけるマスタ親マイコンに位置付けられる。ナビゲーションＥＣＵ４０は、上記コアマイコン４１に加えて、更に、ＲＡＭ（Read
Access Memory）４２、ＲＯＭ（Read Only Memory）４３、ＬＡＮインタフェース（以降、ＬＡＮ−ＩＦと表記する）４４、入出力インタフェース（以降、ＩＯ−ＩＦと表記する）４５、ビデオインタフェース（以降、ビデオＩＦと表記する）４６、ＵＳＢインタフェ
ース（以降、ＵＳＢ−ＩＦと表記する）４７、ビデオデコーダ４８、メディアインタフェース（以降、メディアＩＦと表記する）５０等を有する。
【００３１】
コアマイコン４１は、ＲＯＭ４３に格納される制御プログラムをＲＡＭ４２にロードし、実行することによりカーナビゲーションシステムを実現するための各種処理を実行する。具体的には、コアマイコン４１は、ＩＯ−ＩＦ４５及びビデオＩＦ４６を介して接続されるビデオデコーダ４８に動画データを送ることにより、ナビゲーションＥＣＵ４０に接続される表示操作パネル５１へナビゲーション画面のような所定の画像を表示させる。コアマイコン４１は、表示操作パネル５１が操作されることにより入力されるデータを受け、このデータに応じた処理を実行する。また、コアマイコン４１は、ナビゲーションＥＣＵ４０に接続されるメディアドライブ５３からＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）に記憶されていたデータを受信し、このデータを処理し、ビデオデコーダ４８等に処理されたデータを送る。
【００３２】
ナビゲーションＥＣＵ４０は、更に、内部バス７１で接続されるオーディオビジュアル（以降、ＡＶと表記する）モジュール５５を有する。これにより、コアマイコン４１は、ＡＶモジュール５５を制御することによりラジオ放送又はテレビ放送からＡＶデータを取得し、スピーカユニット５２及び表示操作パネル５１にそのＡＶデータを出力する。
【００３３】
ＡＶモジュール５５は、ＡＶマイコン５８、ＩＯ−ＩＦ５６、ＲＡＭ（図示せず）、ＲＯＭ５７、ＡＶモジュールチューナマイコン５９等を有する。ＡＶモジュール５５では、ＡＶマイコン５８がＲＯＭ５７に格納される制御プログラムをＲＡＭにロードし実行することにより、ラジオやアナログテレビなどのＡＶ機能が実現される。ＡＶモジュールチューナマイコン５９は、ラジオ放送やアナログテレビ放送等の電波を受信し、この受信波を復調及び復号することによりＡＶデータを生成する。ＡＶモジュールチューナマイコン５９は、図示しないＲＯＭに格納された制御プログラムを実行することによりこのような機能を実行する。ＡＶモジュールチューナマイコン５９で生成されＡＶデータは、更にＡＶマイコン５８で処理され、ＩＯ−ＩＦ５６を介してコアマイコン４１へ送られる。
【００３４】
なお、本発明は、以上のようなナビゲーションＥＣＵ４０のカーナビゲーションシステムとしての機能を限定するものではないため、ここでは詳細説明を省略する。また、ナビゲーションＥＣＵ４０には、図２に示されない他のモジュールが含まれていてもよい。
【００３５】
実施例１では、このようなナビゲーションＥＣＵ４０に含まれる複数のマイコンのうち、コアマイコン４１がマスタ親マイコンに位置付けられ、ＡＶマイコン５８がマスタ子マイコンに位置付けられ、ＡＶモジュールチューナマイコン５９がマスタ孫マイコンに位置付けられる。
【００３６】
通信ＥＣＵ６０は、通信マイコン６１、ＲＡＭ（図示せず）、ＲＯＭ６２、ＵＳＢ−ＩＦ６３、通信モジュールチューナマイコン６４等を有する。通信ＥＣＵ６０は、通信マイコン６１がＲＯＭ６２に格納される制御プログラムをＲＡＭにロードし実行することにより、センタ１との通信機能を実行する。
【００３７】
通信モジュールチューナマイコン６４は、通信ＥＣＵ６０で実行される通信機能のうちの下位通信レイヤ処理を担当し、センタ１との間でデータ信号を送受する。通信モジュールチューナマイコン６４では、図示しないＲＯＭに格納された制御プログラムを実行することによりこのような信号制御機能を実行する。これにより、通信マイコン６１は、コアマイコン４１から、センタ１へ送信するためのデータとその送信指示をＵＳＢ−ＩＦ６３を介して受信すると、通信モジュールチューナマイコン６４を介してそのデータをセンタ１へ無線送信する。逆に、センタ１から送信されたデータが通信モジュールチューナマイ
コン６４で受信されると、通信マイコン６１は、この受信データをＵＳＢ−ＩＦ６３を介してコアマイコン４１へ送る。
【００３８】
ＤＴＶ−ＥＣＵ６５は、ＤＴＶマイコン６６、ＲＡＭ（図示せず）、ＲＯＭ６７、ＤＴＶチューナマイコン６８、ＬＡＮ−ＩＦ６９等を有する。ＤＴＶ−ＥＣＵ６５は、ＲＯＭ６７に格納される制御プログラムをＲＡＭにロードし実行することにより、デジタルテレビに関連する機能を実現する。ＤＴＶチューナマイコン６８は、デジタルテレビ放送等の電波を受信し、この受信波を復調及び復号することによりデジタルＡＶデータを生成する。ＤＴＶチューナマイコン６８は、図示しないＲＯＭに格納された制御プログラムを実行することによりこのような機能を実行する。ＤＴＶチューナマイコン６８で生成されたデジタルＡＶデータは、更にＤＴＶマイコン６６で処理され、ＩＯ−ＩＦ６９を介してコアマイコン４１へ送られる。
【００３９】
アンプＥＣＵ７０は、アンプマイコン７５、ＬＡＮ−ＩＦ７６、パワーアンプ７７、ＲＯＭ７８等を有し、アンプとして動作する。アンプマイコン７５は、ＲＯＭ７８に格納された制御プログラムを実行することによりアンプ機能を実行する。具体的には、アンプマイコン７５は、ＬＡＮ−ＩＦ７６を介してコアマイコン４１から音声データを受けると、その音声データを音声信号に変換し、パワーアンプ７７により増幅させ、パワーアンプ７７に接続されるスピーカユニット７９から所定の音声を出力させる。なお、本発明は、ＤＴＶ−ＥＣＵ６５及びアンプＥＣＵ７０の機能及び回路構成を限定するものではないため、詳細説明を省略する。
【００４０】
実施例１では、通信マイコン６１がスレーブ親マイコンに位置付けられ、この通信マイコン６１に制御される通信モジュールチューナマイコン６４がスレーブ子マイコンに位置付けられる。また、ＤＴＶマイコン６６がスレーブ親マイコンに位置付けられ、このＤＴＶマイコン６６に制御されるＤＴＶチューナマイコン６８がスレーブ子マイコンに位置付けられ、アンプマイコン７５がスレーブ親マイコンに位置付けられる。
【００４１】
従って、実施例１においては、マスタ親マイコン（コアマイコン４１）、スレーブ親マイコン（通信マイコン６１）、スレーブ親マイコン（ＤＴＶマイコン６６）、スレーブ親マイコン（アンプマイコン７５）、マスタ子マイコン（ＡＶマイコン５８）、スレーブ子マイコン（通信モジュールチューナマイコン６４）、スレーブ子マイコン（ＤＴＶチューナマイコン６８）、マスタ孫マイコン（ＡＶモジュールチューナマイコン５９）によりそれぞれ階層構造が形成される。
【００４２】
このような構成を有する実施例１における車載システムは、センタ１と無線通信することにより、センタ１へのバージョン情報データの送信、センタ１からの更新プログラムの受信を行う。具体的には、センタ１宛てのデータは、ＩＯ−ＩＦ４５、ＵＳＢ−ＩＦ４７及びＵＳＢ−ＩＦ６３を介してコアマイコン４１から通信マイコン６１に送られ、通信マイコン６１及び通信モジュールチューナマイコン６４で処理された後、無線通信によりセンタ１へ送信される。なお、本発明は、センタ１と実施例１における車載システムとの通信手法を限定するものではないため、当該車載システムは携帯電話等を介してセンタ１と通信するようにしてもよい。
【００４３】
センタ１は、上述したように、実施例１における車載システムに含まれるマイコンの種別毎に、ソフトウェアの最新バージョン情報、更新プログラムをそれぞれ管理する。マイコンの種別は、後述するように、品番情報、ＥＣＵＩＤ、マイコンＩＤにより特定される。なお、本発明は、センタ１のこれら情報の管理手法を限定するものではないため、他のサーバ装置から更新プログラムや最新バージョン情報が取得されるようにしてもよい。
【００４４】
センタ１により管理される更新プログラムは、或るバージョンにおける制御プログラムと或るバージョンにおける制御プログラムとの差分プログラムであることが望ましい。これは、センタ１と実施例１における車載システムとの間の通信容量を抑えるためには、最小限のデータであることが有効であるからである。しかしながら、更新対象の制御プログラムの構成上、差分プログラムでのバージョンアップが不可能な場合には、更新された部分のみに限らず新しい或るバージョンの制御プログラム全てを更新プログラムとしてもよい。
【００４５】
〔ソフトウェア管理更新処理〕
実施例１における車載システムを構成する各マイコンは、上述のような各処理に加えて、ソフトウェア管理更新処理をそれぞれ実行する。図３は、各マイコンのソフトウェアの構成概念を示すブロック図である。各マイコンのソフトウェアは、各マイコンに接続されるＲＯＭに格納され、各マイコンにより読み出され、実行される。
【００４６】
図３に示すように、各マイコンのためのソフトウェアには、メイン処理モジュール８２、ソフトウェア管理更新処理モジュール８４が含まれる。メイン処理モジュール８２、及びソフトウェア管理更新処理モジュール８４は、例えば、ドライバ、ファームウェア、データベース、テーブル、関数、プロシジャ、サブルーチン、プログラムコードの所定の部分、データ構造、配列、変数、パラメータ等を含む。本発明は、このような各マイコンのソフトウェアモジュールの構成を限定するものではない。
【００４７】
このうち、メイン処理モジュール８２が上述のような各マイコンに割り当てられた処理を実行する。本実施形態では、メイン処理モジュール８２を構成する制御プログラムを更新管理対象とし、ソフトウェア管理更新処理モジュール８４がこれら制御プログラムのソフトウェア管理更新処理を実現する。
【００４８】
各マイコンのソフトウェア管理更新処理モジュール８４には、マイコン情報データベース（ＤＢ）８５が含まれる。このマイコン情報データベース８５には、自マイコン情報テーブルが含まれる。自マイコン情報テーブルには、マイコンＩＤ（IDentifier）、バージョン情報及び物理アドレスがそれぞれ予め格納される。マイコンＩＤは、ＥＣＵ等の制御ユニット内で各マイコンを識別するための情報である。実施例１では、ナビゲーションＥＣＵ４０内において、コアマイコン４１、ＡＶマイコン５８、及びＡＶモジュールチューナマイコン５９のマイコンＩＤがそれぞれユニークに予め設定される。バージョン情報は、メイン処理モジュール８２等の更新対象となる制御プログラムのバージョンを示す情報である。物理アドレスは、各マイコンの通信アドレスである。各マイコンは、この物理アドレスを指定して他のマイコンと通信を行う。
【００４９】
メイン親マイコン及びスレーブ親マイコンのような親マイコンの自マイコン情報テーブルには、上記情報に加えて、更に、品番情報及びＥＣＵＩＤが格納される。品番情報は、マイコンの種別をセンタ１で識別可能とするために付された情報であり、例えば、制御ユニットとしてのＥＣＵ毎に付される。ＥＣＵＩＤは、ＥＣＵ等の各制御ユニットを識別するための情報である。実施例１では、メイン親マイコンであるナビゲーションＥＣＵ４０内のコアマイコン４１、スレーブ親マイコンである通信ＥＣＵ６０内の通信マイコン６１、ＤＴＶ−ＥＣＵ６５内のＤＴＶマイコン６６、及びアンプＥＣＵ７０内のアンプマイコン７５のＥＣＵＩＤがそれぞれユニークに予め設定される。
【００５０】
また、下位マイコンを有するマイコン（上位マイコン）のマイコン情報データベース８５には、更に、下位マイコン情報テーブルが含まれる。下位マイコン情報テーブルには、各下位マイコンのマイコンＩＤ、バージョン情報及び物理アドレスがそれぞれ格納される。下位マイコンのマイコンＩＤは、下位マイコン情報テーブルに予め格納されている。下
位マイコンの物理アドレスは、下位マイコンの存在確認処理により取得され設定される。また、下位マイコンのバージョン情報は、バージョン情報収集処理により取得される。
【００５１】
下位マイコンの存在確認処理及びバージョン情報収集処理は、上位マイコンによりソフトウェア管理更新処理モジュール８４が実行されることで実現される。上位マイコンは、その下位マイコンの存在確認を行い、その後、存在が確認された下位マイコンからソフトウェアバージョン情報を収集する。このように収集された下位マイコンの情報は、更に上位のマイコンに送られる。このようにして、下位マイコンから上位マイコンへバージョン情報が送られることにより、最終的に、マスタ親マイコンが全てのマイコンのバージョン情報を取得する。
【００５２】
これにより、マスタ親マイコンの下位マイコン情報テーブルには、自マイコン以外の全てのマイコンに関する情報が格納される。図４Ａは、自マイコン情報テーブルの例を示す図であり、図４Ｂは、下位マイコン情報テーブルの例を示す図である。具体的には、自マイコン情報テーブルには、自マイコンに関する情報が格納され、下位マイコン情報テーブルには、下位マイコンに関する情報が格納される。例えば、コアマイコン４１の下位マイコン情報テーブルには、下位マイコンとして、ＡＶマイコン５８、ＡＶモジュールチューナマイコン５９、通信マイコン６１、通信モジュールチューナマイコン６４、ＤＴＶマイコン６６、ＤＴＶチューナマイコン６８、アンプマイコン７５に関する情報が格納される。
【００５３】
マスタ親マイコンは、全てのマイコンのバージョン情報を収集し、上記下位マイコン情報テーブルを更新すると、自マイコン情報テーブル及び下位マイコン情報テーブルに格納される物理アドレス以外のデータをセンタ１へ送信する。以降、マスタ親マイコンは、センタ１と通信することにより、更新された制御プログラムをセンタ１から受信し、この制御プログラムを対象のマイコンに送る。
【００５４】
下位マイコンは、更新プログラムを受けると、この更新プログラムでメイン処理モジュール８２をバージョンアップする。この更新プログラムは、最新の更新された制御プログラムとその下位マイコンの有する既存の制御プログラムとの差分データである。下位マイコンは、このバージョンアップ処理において、例えば、メイン処理モジュール８２中のその差分データに相当する既存部品をその更新データに置き換える。なお、本発明は、この制御プログラムの置き換え処理自体を限定するものではない。
【００５５】
〔動作例〕
以下、実施例１における車載システムの動作例について図面を用いて説明する。以下の説明では、実施例１の車載システムに含まれる各マイコンがソフトウェア管理更新処理モジュール８４を実行することにより実現するソフトウェア管理更新処理における各マイコンの動作が示される。ソフトウェア管理更新処理は、前準備処理である下位マイコン存在確認処理、ソフトウェア管理処理であるバージョン情報収集処理、及び、ソフトウェア更新処理であるバージョンアップ処理に区別される。
【００５６】
〈下位マイコン存在確認処理〉
図５は、実施例１における下位マイコン存在確認処理を示すシーケンス図である。マスタ親マイコンであるコアマイコン４１は、システム起動時、バージョン情報収集前のような所定のタイミング或いは定周期で図５に示すような下位マイコン存在確認処理を実行する。
【００５７】
初期状態では、コアマイコン４１の下位マイコン情報テーブルには、スレーブ親マイコンに位置付けられている通信マイコン６１、ＤＴＶマイコン６６及びアンプマイコン７５
、並びに、マスタ子マイコンに位置付けられているＡＶマイコン５８に関するレコードが存在する。スレーブ親マイコンのレコードには、通信マイコン６１、ＤＴＶマイコン６６及びアンプマイコン７５の品番情報及びＥＣＵＩＤがそれぞれ格納され、マイコンＩＤ、バージョン情報、物理アドレスは格納されていない。マスタ子マイコンのレコードには、ＡＶマイコン５８の品番情報、ＥＣＵＩＤ及びマイコンＩＤがそれぞれ格納され、バージョン情報及び物理アドレスは格納されていない。マスタ子マイコンはナビゲーションＥＣＵ４０に含まれているため、その品番情報及びＥＣＵＩＤはコアマイコン４１と同一データが設定される。マスタ子マイコンはコアマイコン４１と同一のナビゲーションＥＣＵ４０内に存在するため、上述したように、そのレコードは、コアマイコン４１の下位マイコン情報テーブルに予め格納される。一方、他の制御ユニット内のスレーブ親マイコンについては、例えば、その制御ユニット接続時等の処理により、そのスレーブ親マイコンのレコードがコアマイコン４１の下位マイコン情報テーブルに生成される。なお、ここでは、ナビゲーションＥＣＵ４０内のマスタ孫マイコンのレコードがない例を挙げるが、これらマスタ孫マイコンのレコードが予め存在するようにしてもよい。
【００５８】
コアマイコン４１は、スレーブ親マイコンに位置付けられている通信マイコン６１、ＤＴＶマイコン６６及びアンプマイコン７５の存在確認を行うために、車載ＬＡＮ７２及びＵＳＢ７３上に存在確認メッセージをブロードキャストする（Ｓ１０）。
【００５９】
通信マイコン６１、ＤＴＶマイコン６６及びアンプマイコン７５の各スレーブ親マイコンは、このブロードキャストされた存在確認メッセージをそれぞれ受信すると、下位マイコンを有する場合には、下位マイコンの存在確認を行う。このとき、スレーブ親マイコンの下位マイコン情報テーブルには、下位マイコンにあたるスレーブ子マイコンのレコードが格納されている。具体的には、通信マイコン６１の下位マイコン情報テーブルにおけるスレーブ子マイコンのレコードには、通信モジュールチューナマイコン６４のマイコンＩＤが格納され、バージョン情報、物理アドレスは格納されていない。ＤＴＶマイコン６６の下位マイコン情報テーブルにおけるスレーブ子マイコンのレコードには、ＤＴＶチューナマイコン６８のマイコンＩＤが格納され、バージョン情報、物理アドレスは格納されていない。
【００６０】
通信マイコン６１及びＤＴＶマイコン６６は、下位マイコンの存在確認として、内部バスに存在確認メッセージをそれぞれブロードキャストする（Ｓ１１）。スレーブ子マイコンである通信モジュールチューナマイコン６４及びＤＴＶチューナマイコン６８は、この存在確認メッセージを受信すると、物理アドレスを含む存在応答メッセージをそれぞれ返信する（Ｓ１２）。通信マイコン６１及びＤＴＶマイコン６６は、各存在応答メッセージを受信することにより、通信モジュールチューナマイコン６４及びＤＴＶチューナマイコン６８の存在を確認する。このとき、通信マイコン６１及びＤＴＶマイコン６６は、その存在応答メッセージに含まれる物理アドレスを取得し（Ｓ１３）、自身の下位マイコン情報テーブルにその取得された物理アドレスを新たに格納する。これにより、通信マイコン６１の下位マイコン情報テーブルには、通信モジュールチューナマイコン６４の物理アドレスが格納され、ＤＴＶマイコン６６の下位マイコン情報テーブルには、ＤＴＶチューナマイコン６８の物理アドレスが格納される。
【００６１】
このように下位マイコンの存在確認が完了したスレーブ親マイコンである通信マイコン６１及びＤＴＶマイコン６６、並びに、下位マイコンを有さないアンプマイコン７５は、コアマイコン４１からの存在確認メッセージの応答として、存在応答メッセージをそれぞれコアマイコン４１へ送る（Ｓ１４）。このとき、各スレーブ親マイコンは、各自の品番情報、ＥＣＵＩＤ、マイコンＩＤ及び物理アドレスを存在応答メッセージに含める。なお、スレーブ親マイコン及びスレーブ子マイコンは、内部的に異常が生じている場合に、異常を示す存在応答メッセージを返信するようにしてもよい。
【００６２】
コアマイコン４１は、ＬＡＮ−ＩＦ４４及びＵＳＢ−ＩＦ４７を介して上記各存在応答メッセージをそれぞれ受信すると、各メッセージの送信元である各スレーブ親マイコンの存在を認識する。このとき、コアマイコン４１は、各メッセージから品番情報、ＥＣＵＩＤ、マイコンＩＤ及び物理アドレスをそれぞれ取得し（Ｓ２１）、取得された情報を下位マイコン情報テーブルに格納する。これにより、コアマイコン４１の下位マイコン情報テーブルの各スレーブ親マイコンのレコードには、品番情報、ＥＣＵＩＤに加えて、マイコンＩＤ及び物理アドレスがそれぞれ新たに格納される。
【００６３】
コアマイコン４１は、次に、内部バス７１で接続されるマスタ子マイコン、即ち、ＡＶマイコン５８の存在確認を行うために、内部バス７１上に存在確認メッセージをブロードキャストする（Ｓ２２）。
【００６４】
ＡＶマイコン５８は、ＩＯ−ＩＦ５６を介してこのブロードキャストされた存在確認メッセージを受信すると、下位マイコンを有する場合には、下位マイコンの存在確認を行う。このとき、マスタ子マイコンであるＡＶマイコン５８の下位マイコン情報テーブルには、マスタ孫マイコンであるＡＶモジュールチューナマイコン５９のレコードが格納されている。但し、このＡＶモジュールチューナマイコン５９のレコードには、ＡＶモジュールチューナマイコン５９のマイコンＩＤが格納され、バージョン情報、物理アドレスは格納されていない。
【００６５】
マスタ子マイコンであるＡＶマイコン５８は、上述のスレーブ親マイコンと同様に下位マイコンであるＡＶモジュールチューナマイコン５９の存在を確認する（Ｓ２３）及び（Ｓ２４）。これにより、ＡＶマイコン５８は、自身の下位マイコン情報テーブルにＡＶモジュールチューナマイコン５９の物理アドレスを設定する（Ｓ２５）。
【００６６】
このように下位マイコンの存在確認が完了したマスタ子マイコンであるＡＶマイコン５８は、コアマイコン４１からの存在確認メッセージの応答として、存在応答メッセージをコアマイコン４１へ送る（Ｓ２６）。このとき、ＡＶマイコン５８は、自身の品番情報、ＥＣＵＩＤ、マイコンＩＤ及び物理アドレスを存在応答メッセージに含める。なお、マスタ子マイコン及びマスタ孫マイコンは、内部的に異常が生じている場合に、異常を示す存在応答メッセージを返信するようにしてもよい。
【００６７】
コアマイコン４１は、ＩＯ−ＩＦ４５を介して上記存在応答メッセージを受信すると、送信元であるマスタ子マイコンの存在を確認する。このとき、コアマイコン４１は、当該メッセージからマイコンＩＤ及び物理アドレスをそれぞれ取得し（Ｓ２７）、取得された情報を下位マイコン情報テーブルに格納する。これにより、コアマイコン４１の下位マイコン情報テーブルのマスタ子マイコンのレコードには、品番情報、ＥＣＵＩＤ及びマイコンＩＤに加えて、物理アドレスがそれぞれ新たに格納される。
【００６８】
このように、実施例１における車載システムの各上位マイコンは、下位マイコンの存在確認をそれぞれ行い、自身の下位マイコン情報テーブルに下位マイコンの物理アドレスをそれぞれ格納する。以降、或るマイコン宛てにメッセージを送信する場合には、その宛先のマイコンの物理アドレスがそのメッセージに設定されて送信される。
【００６９】
〈バージョン情報収集処理〉
図６は、実施例１におけるバージョン情報収集処理を示すシーケンス図である。上述のような下位マイコン存在確認処理が完了されている状態において、このバージョン情報収集処理が実行される。
【００７０】
コアマイコン４１は、スレーブ親マイコンである通信マイコン６１、ＤＴＶマイコン６６及びアンプマイコン７５にそれぞれバージョン情報要求メッセージを送信する（Ｓ３０）。このバージョン情報要求メッセージを送信する際に、コアマイコン４１は、タイムアウト監視を行う。具体的には、コアマイコン４１は、或るマイコンへ当該バージョン情報要求メッセージを送信してから所定タイムアウト時間以内にそれに対するバージョン情報応答メッセージをそのマイコンから受けることができない場合に、当該バージョン情報要求メッセージをそのマイコンへ再送する。コアマイコン４１は、所定の再送回数分、再送を繰返しても、所定タイムアウト時間以内にバージョン情報応答メッセージを受けることができない場合には異常とする。
【００７１】
アンプマイコン７５は、下位マイコンを有していないため、バージョン情報要求メッセージを受信すると、自マイコン情報テーブルから自身のメイン処理モジュール８２等のバージョン情報を取得する。アンプマイコン７５は、この取得されたバージョン情報が設定されたバージョン情報応答メッセージを返信する（Ｓ３１）。このとき、アンプマイコン７５は、上記所定のタイムアウト時間以内にこのバージョン情報応答メッセージを返信する。
【００７２】
コアマイコン４１は、アンプマイコン７５からバージョン情報応答メッセージを受信すると、そのメッセージからバージョン情報を取得し（Ｓ３２）、下位マイコン情報テーブルにおけるアンプマイコン７５のためのレコードにそのバージョン情報を格納する。
【００７３】
一方、通信マイコン６１及びＤＴＶマイコン６６は、下位マイコンを有する。よって、通信マイコン６１及びＤＴＶマイコン６６は、バージョン情報要求メッセージを受信すると、まず、下位マイコンの数を含めた応答メッセージを上記所定タイムアウト時間以内にコアマイコン４１へ返信する（Ｓ３３）。これは、下位マイコンを有するマイコンの場合には、下位マイコンに関するバージョン情報を収集した後下位マイコンのバージョン情報も併せて応答する必要があるため、上記所定のタイムアウト時間以内にバージョン情報応答メッセージを返信できないからである。この下位マイコンの数を含めた応答メッセージを受信したコアマイコン４１は、そのメッセージに関するタイムアウト時間をその下位マイコンの数に応じて延長する。例えば、コアマイコン４１は、予め保持される下位マイコン１台当りの延長時間に基づいてこのタイムアウト時間の延長時間を決定する。
【００７４】
続いて、通信マイコン６１は、下位マイコンとしての通信モジュールチューナマイコン６４にバージョン情報要求メッセージを送信し（Ｓ３４）、ＤＴＶマイコン６６は、下位マイコンとしてのＤＴＶチューナマイコン６８にバージョン情報要求メッセージを送信する（Ｓ３４）。スレーブ親マイコンである通信マイコン６１及びＤＴＶマイコン６６は、上記コアマイコン４１と同様に、このバージョン情報要求メッセージに対するタイムアウト監視を行う。以降、いずれの階層位置のマイコンであっても、バージョン情報要求メッセージを送信するマイコンは、このタイムアウト監視を行うものとし、以降の説明ではその処理を省略する。
【００７５】
通信モジュールチューナマイコン６４及びＤＴＶチューナマイコン６８は、バージョン情報要求メッセージをそれぞれ受信すると、自マイコン情報テーブルから自身のメイン処理モジュール８２のバージョン情報をそれぞれ取得する。通信モジュールチューナマイコン６４及びＤＴＶチューナマイコン６８は、この取得されたバージョン情報が設定されたバージョン情報応答メッセージをそれぞれ返信する（Ｓ３５）。
【００７６】
通信マイコン６１は、通信モジュールチューナマイコン６４からバージョン情報応答メッセージを受信すると、そのメッセージからバージョン情報を取得し（Ｓ３６）、下位マイコン情報テーブルにおける通信モジュールチューナマイコン６４のためのレコードにそ
のバージョン情報を格納する。これにより、通信マイコン６１が有する下位マイコン情報テーブルには、通信モジュールチューナマイコン６４に関しマイコンＩＤ、バージョン情報及び物理アドレスが格納される。同様に、ＤＴＶマイコン６６は、ＤＴＶチューナマイコン６８からバージョン情報応答メッセージを受信すると、そのメッセージからバージョン情報を取得し（Ｓ３６）、下位マイコン情報テーブルにおけるＤＴＶチューナマイコン６８のためのレコードにそのバージョン情報を格納する。これにより、ＤＴＶマイコン６６が有する下位マイコン情報テーブルには、ＤＴＶチューナマイコン６８に関しマイコンＩＤ、バージョン情報及び物理アドレスが格納される。
【００７７】
通信マイコン６１及びＤＴＶマイコン６６は、下位マイコンのバージョン情報の収集が完了する、即ち、下位マイコン情報テーブルの各レコードのバージョン情報が更新されたことを検知すると、下位マイコン情報テーブルから各下位マイコンのマイコンＩＤ及びバージョン情報を抽出する。具体的には、通信マイコン６１は、通信モジュールチューナマイコン６４のマイコンＩＤ及びバージョン情報を抽出し、ＤＴＶマイコン６６は、ＤＴＶチューナマイコン６８のマイコンＩＤ及びバージョン情報を抽出する。更に、通信マイコン６１及びＤＴＶマイコン６６は、自マイコン情報テーブルから自身のマイコンＩＤ及びバージョン情報をそれぞれ抽出する。通信マイコン６１及びＤＴＶマイコン６６は、これら抽出された下位マイコンのマイコンＩＤ及びバージョン情報、並びに自身のマイコンＩＤ及びバージョン情報をバージョン情報応答メッセージに設定し、このバージョン情報応答メッセージをコアマイコン４１へそれぞれ送信する（Ｓ３７）。通常時には、このバージョン情報応答メッセージは、上述のように下位マイコン数に応じて延長されたタイムアウト時間以内に返信される。
【００７８】
コアマイコン４１は、通信マイコン６１からバージョン情報応答メッセージを受信すると、そのメッセージから通信モジュールチューナマイコン６４のマイコンＩＤ及びバージョン情報、並びに通信マイコン６１のマイコンＩＤ及びバージョン情報を取得する（Ｓ３８）。同様に、コアマイコン４１は、ＤＴＶマイコン６６から受信されるバージョン情報応答メッセージからＤＴＶチューナマイコン６８のマイコンＩＤ及びバージョン情報、並びにＤＴＶマイコン６６のマイコンＩＤ及びバージョン情報を取得する（Ｓ３８）。コアマイコン４１は、下位マイコン情報テーブルにおいて、取得された各マイコンＩＤで特定されるレコードのバージョン情報をその取得されたバージョン情報に更新する。具体的には、下位マイコン情報テーブルにおいて、スレーブ子マイコンである通信モジュールチューナマイコン６４及びＤＴＶチューナマイコン６８、スレーブ親マイコンである通信マイコン６１及びＤＴＶマイコン６６の各バージョン情報がその収集された情報でそれぞれ更新される。
【００７９】
コアマイコン４１は、スレーブ親マイコンである通信マイコン６１、ＤＴＶマイコン６６及びアンプマイコン７５からそれぞれバージョン情報応答メッセージを受信すると、スレーブ親マイコン及びスレーブ親マイコンより下位のマイコンのバージョン情報の収集が完了したと判断する。続いて、コアマイコン４１は、自身の下位マイコンのバージョン情報収集を開始する。具体的には、コアマイコン４１は、マスタ子マイコンであるＡＶマイコン５８にバージョン情報要求メッセージを送信する（Ｓ４０）。なお、本動作例では、スレーブ親マイコンのバージョン情報収集が終了した後に自信の下位マイコンのバージョン情報収集を行う例を示すが、それらが同時に実行されるようにしてもよい。
【００８０】
バージョン情報要求メッセージを受信したＡＶマイコン５８は、下位マイコンを有しているため、上述の通信マイコン６１及びＤＴＶマイコン６６と同様に、下位マイコンの数を含めた応答メッセージをコアマイコン４１へ返信する（Ｓ４１）。具体的には、ＡＶマイコン５８は、下位マイコンとしてＡＶモジュールチューナマイコン５９を有するため下位マイコン数（１）を返信する。これにより、コアマイコン４１は、ＡＶマイコン５８へ
のバージョン情報要求メッセージのタイムアウト時間を各下位マイコン数に応じて延長する。
【００８１】
続いて、ＡＶマイコン５８は、メイン孫マイコンであるＡＶモジュールチューナマイコン５９からバージョン情報を収集する。この収集方法については、上述の通信マイコン６１及びＤＴＶマイコン６６と同様である。すなわち、ＡＶマイコン５８は、メイン孫マイコンであるＡＶモジュールチューナマイコン５９にバージョン情報要求メッセージを送信し（Ｓ４６）、ＡＶモジュールチューナマイコン５９からバージョン情報応答メッセージを受信する（Ｓ４７）ことにより、下位マイコン情報テーブルにおけるＡＶモジュールチューナマイコン５９に関するレコードのバージョン情報を更新する（Ｓ４８）。
【００８２】
ＡＶマイコン５８は、下位マイコンのバージョン情報の収集が完了すると、自身のマイコンＩＤ及びバージョン情報、並びに、下位マイコンのマイコンＩＤ及びバージョン情報が設定されたバージョン情報応答メッセージをコアマイコン４１へ送信する（Ｓ４９）。このバージョン情報応答メッセージは、通常時には、上述のように下位マイコン数に応じて延長されたタイムアウト時間以内に返信される。
【００８３】
コアマイコン４１は、ＡＶマイコン５８からバージョン情報応答メッセージをそれぞれ受信し、そのメッセージに含まれるバージョン情報により下位マイコン情報テーブルを更新する（Ｓ５０）。これにより、コアマイコン４１が有する下位マイコン情報テーブルには、全ての下位マイコンに関するバージョン情報が反映される。具体的には、下位マイコン情報テーブルにおいて、マスタ子マイコンであるＡＶマイコン５８、及びマスタ孫マイコンであるＡＶモジュールチューナマイコン５９のバージョン情報が収集されたデータで更新される。
【００８４】
これにより、コアマイコン４１は、実施例１における車載システム内の全てのマイコンのソフトウェア（メイン処理モジュール８２）のバージョン情報を取得することができる。
【００８５】
〈バージョンアップ処理〉
図７は、実施例１におけるバージョンアップ処理を示すシーケンス図である。このバージョンアップ処理は、上述のバージョン情報収集処理に続いて実行されもよいし、それとは独立して以下に示すような独自のタイミングで実行されてもよい。
【００８６】
バージョンアップ処理は、例えば、メディアドライブ５３にバージョンアップディスクのような所定メディアが挿入されたことをメディアＩＦ５０及びＩＯ−ＩＦ４５等を介してコアマイコン４１が検知した際に実行されてもよい。他の例として、バージョンアップ処理は、表示操作パネル５１に表示される操作画面の所定メニューがユーザにより操作されたことをビデオＩＦ４６及びＩＯ−ＩＦ４５等を介してコアマイコン４１が検知した際に実行されてもよい。他の例として、バージョンアップ処理は、コアマイコン４１が実行するシステム起動処理において実行されるようにしてもよい。システム起動処理内では、例えば、自動ダウンロード設定のような所定の設定情報の状態に応じてこのバージョン情報収集処理が実行されるようにしてもよい。
【００８７】
コアマイコン４１は、バージョンアップ処理が開始されると、自マイコン情報テーブル及び下位マイコン情報テーブルから全てのマイコンの品番情報、ＥＣＵＩＤ、マイコンＩＤ及びバージョン情報を抽出し、これら抽出された情報をバージョン情報データとしてセンタ１に送信する（Ｓ５１）。バージョン情報データは、ＵＳＢ７３を介してコアマイコン４１から通信マイコン６１に送られ、通信マイコン６１及び通信モジュールチューナマイコン６４で処理された後、無線通信によりセンタ１へ送信される。
【００８８】
このとき、コアマイコン４１は、通信量を低減するために、バージョン情報データに重複情報が含まれないようにする。例えば、ナビゲーションＥＣＵ４０内のマイコンは、同一品番情報及び同一ＥＣＵＩＤが付されているため、コアマイコン４１以外のＡＶマイコン５８に関しては品番情報及びＥＣＵＩＤを送らないようにする。除外された重複情報を認識するためにそのフィールドには所定コードを挿入するようにしてもよい。
【００８９】
このとき、センタ１は、品番情報、ＥＣＵＩＤ及びマイコンＩＤで識別されるマイコン種別毎に、更新対象となるソフトウェア（メイン処理モジュール８２）のバージョン情報、及び、最新バージョンのソフトウェア（メイン処理モジュール８２）とそれ以前のバージョンのソフトウェアとの差分データに相当する更新プログラムを管理している。
【００９０】
センタ１は、当該車載システムからバージョン情報データを受信すると、これに含まれる全マイコンに関するソフトウェアのバージョン情報を、保持している最新のバージョン情報と比較する（Ｓ５２）。各マイコンは、品番情報、ＥＣＵＩＤ及びマイコンＩＤでその種別が識別される。センタ１は、受信されたバージョン情報データに含まれる全マイコンのうちそのバージョン情報が最新バージョンでないマイコンが存在するか否かを判定する。センタ１は、この判定結果を当該車載システムへ通知する（Ｓ５３）。例えば、センタ１は、最新バージョンでないマイコンが存在すると判定した場合には、更新する必要のあるソフトウェアが存在することを当該車載システムへ通知する（Ｓ５３）。
【００９１】
当該車載システムのコアマイコン４１は、通信モジュール６０を介してこの通知を受信すると、この通知に含まれる判定結果に応じてバージョンアップの実行確認を行う（Ｓ５４）。具体的には、コアマイコン４１は、その判定結果が更新する必要のあるソフトウェアが存在しないことを示していた場合には、このバージョンアップ処理を終了する。一方、コアマイコン４１は、その判定結果が更新する必要のあるソフトウェアが存在することを示していた場合には、ビデオＩＦ４６、ビデオデコーダ４８等を介して表示操作パネル５１に所定の画面を表示させることにより、ユーザにバージョンアップの必要性を示し、ユーザにバージョンアップを実行するか否かを決定させる。
【００９２】
表示操作パネル５１に表示された画面がユーザに操作されることにより、バージョンアップの実行が決定されると、コアマイコン４１は、その旨を検知し、プログラム更新要求メッセージをセンタ１へ送信する（Ｓ５５）。
【００９３】
センタ１は、このプログラム更新要求メッセージを当該車載システムから受信すると、上記バージョン情報比較処理（Ｓ５２）において最新バージョンとなっていないと判定された各マイコンのソフトウェアに関する各更新プログラムをそれぞれ取得する。これは、車載システムから送られたバージョン情報データに含まれる現在のバージョン情報と最新バージョン情報との差分が判定され、この差分を埋める更新プログラムが取得される。例えば、現在のバージョン情報がＶ１．１を示しており、最新のバージョン情報がＶ１．８を示している場合には、Ｖ１．８とＶ１．１との間の差分を埋めるための更新プログラムが取得される。
【００９４】
センタ１は、このように最新バージョンとなっていない各マイコンに関し取得された更新プログラムデータをそれぞれ当該車載システムへ送信する（Ｓ５６）。このとき、センタ１は、各更新プログラムデータにそのデータの所有者であるマイコンを識別するためのＥＣＵＩＤ及びマイコンＩＤ並びにその最新バージョン情報を関連付けて各更新プログラムデータを送信する。
【００９５】
当該車載システムのコアマイコン４１は、通信モジュール６０を介してこの更新プログ
ラムデータを受信すると、その更新プログラムデータに関連付けられているＥＣＵＩＤ及びマイコンＩＤに基づいてその更新プログラムデータの最終送り先となるマイコンを特定する。コアマイコン４１は、保持されている階層構造情報に基づいて、この特定されたマイコンが属する階層構造の最上位マイコン（マスタ親マイコンを除く）を特定する。
【００９６】
コアマイコン４１は、この特定された最上位マイコンに当該更新プログラムデータとそれに関連付けられたＥＣＵＩＤ及びマイコンＩＤ並びに最新バージョン情報とを含めたバージョンアップ要求メッセージを送信する（Ｓ５７）。図７の例では、スレーブ子マイコンにあたるＤＴＶチューナマイコン６８がその更新プログラムの送り先となるマイコンであり、スレーブ親マイコンにあたるＤＴＶマイコン６６がその送り先となるマイコンの階層構造の最上位マイコンと特定される。
【００９７】
ＤＴＶマイコン６６は、上記バージョンアップ要求メッセージを受信すると、それに含まれるＥＣＵＩＤ及びマイコンＩＤに基づいてそのメッセージが自分宛てでないことを確認する。これにより、ＤＴＶマイコン６６は、そのマイコンＩＤをキーに下位マイコン情報テーブルを参照することにより、そのメッセージの宛先を決定する。ＤＴＶマイコン６６は、そのバージョンアップ要求メッセージをその宛先即ちＤＴＶチューナマイコン６８に送信する（Ｓ５８）。
【００９８】
ＤＴＶチューナマイコン６８は、このバージョンアップ要求メッセージを受信すると、それに含まれるマイコンＩＤに基づいてそのメッセージが自分宛てであることを認識する。これにより、ＤＴＶチューナマイコン６８は、メイン処理モジュール８２のような自身のソフトウェアをこのメッセージに含まれる更新プログラムデータでバージョンアップする（Ｓ５９）。バージョンアップが完了すると、ＤＴＶチューナマイコン６８は、自マイコン情報テーブルのバージョン情報を当該メッセージに含まれる最新バージョン情報に更新し、バージョンアップ完了メッセージをＤＴＶマイコン６６に送信する（Ｓ６０）。ＤＴＶチューナマイコン６８は、そのバージョンアップ完了メッセージに、自身のマイコンＩＤ及び最新バージョン情報を含める。
【００９９】
ＤＴＶマイコン６６は、このバージョンアップ完了メッセージを受信すると、下位マイコン情報テーブルに関し、そのメッセージに含まれるマイコンＩＤが合致するレコードのバージョン情報をそのメッセージに含まれる最新バージョン情報で更新する（Ｓ６１）。ＤＴＶマイコン６６は、下位マイコン情報テーブルを更新すると、ＤＴＶチューナマイコン６８のマイコンＩＤ及び最新バージョン情報を含めたバージョンアップ完了メッセージをコアマイコン４１に送信する（Ｓ６２）。
【０１００】
コアマイコン４１は、このバージョンアップ完了メッセージを受信すると、下位マイコン情報テーブルに関し、そのメッセージに含まれるマイコンＩＤが合致するレコードのバージョン情報をそのメッセージに含まれる最新バージョン情報で更新する（Ｓ６３）。
【０１０１】
なお、この動作例では、ＤＴＶチューナマイコン６８でバージョンアップが完了した後に、そのＤＴＶチューナマイコン６８のバージョン情報を保持する各マイコンの下位マイコン情報テーブルが最新バージョン情報に更新された（Ｓ６１、６３）。しかしながら、この処理はなくてもよく、別途、バージョン情報収集処理により更新されるようにしてもよい。また、コアマイコン４１は、バージョンアップ完了メッセージを受信すると、表示操作パネル５１にバージョンアップの完了を示す画面を表示させるようにしてもよい。
【０１０２】
〈実施例１の作用及び効果〉
実施例１における車載システムでは、それを構成する複数のマイコンが階層的に接続され、この階層構造において各マイコンのためのソフトウェアが管理され更新される。
【０１０３】
このようなソフトウェア管理更新を行うにあたり、各階層における上位マイコンは、下位マイコンの存在確認を行う。これは、階層構造のトップに位置し全体を統括するマスタ親マイコンから端を発し、徐々に下位の階層のマイコンへと処理される。これにより、各上位マイコンにより各下位マイコンの接続状況が確認されるため、不具合等により下位マイコンの状態が確認できない場合には、上位マイコンはその下位マイコンが存在しないと認識される。
【０１０４】
従って、実施例１によれば、いずれかのマイコンが通信不能となっているような異常時においても、そのマイコンを除外して、正常なマイコンのみについてソフトウェア管理更新を継続することができる。
【０１０５】
実施例１における車載システムでは、マスタ親マイコンから端を発し、上位マイコンがその下位マイコンにバージョン情報要求メッセージを送信することにより、上位マイコンは、下位マイコンから、その下位マイコン及びそれより下位のマイコンに関するソフトウェアのバージョン情報をバージョン情報応答メッセージにより受ける。これにより、最終的に、メイン親マイコンは、全てのマイコンのソフトウェアのバージョン情報を取得することができる。
【０１０６】
更に、実施例１では、上位マイコンにより行われるバージョン情報要求メッセージのタイムアウト監視は、下位マイコンからそれより下位のマイコンの数が通知されることにより、その数に応じて延長される。
【０１０７】
これにより、最上位であるマスタ親マイコンは、最下層のマイコンのバージョン情報が収集されるまでの間、適切に待つことができる。特に、四階層構造が採られる場合には、最下層の第四階層のマイコンの数が第三階層のマイコンから第二階層のマイコンを経由して最上位層のマイコンへ伝達されれば、最上位層のマスタ親マイコンはそれにより更にタイムアウト時間を延長することができる。
【０１０８】
実施例１における車載システムでは、マスタ親マイコンは全てのマイコンのソフトウェアバージョン情報を収集すると、そのバージョン情報がセンタ１へ無線送信される。センタ１では、これに含まれる全マイコンに関するソフトウェアのバージョン情報に基づいて、全マイコンのうちそのバージョン情報が最新バージョンでないマイコンが存在するか否かが判定される。このとき、マスタ親マイコンは、重複する品番情報、ＥＣＵＩＤ等の情報をバージョン情報データに含めないため、通信量が低減される。
【０１０９】
センタ１において最新バージョンでないマイコンが存在すると判定されると、センタ１から当該車載システムにこの旨が通知される。当該車載システムでは、センタ１からのこのバージョンアップの必要性の有無に関する情報を受けることにより、ユーザにバージョンアップの実行の要否が確認される。
【０１１０】
従って、実施例１によれば、バージョンアップの必要なマイコンが存在する場合であっても、ユーザがバージョンアップを望まない場合には、無駄な通信を生じさせないようにすることができる。つまり、ユーザによりバージョンアップの実行が決定された後、センタ１から更新プログラムがダウンロードされる。
【０１１１】
また、実施例１では、この更新プログラムを最新バージョンとマイコンが有するソフトウェアの現在のバージョンとの差分を埋めるための差分データとすることにより、この更新プログラムのデータ容量を抑えることができ、センタ１と車載システムとの間の通信容量を抑えることができる。
【０１１２】
更に、実施例１では、この更新プログラムには、そのソフトウェアを有するマイコンを示すＥＣＵＩＤ及びマイコンＩＤが付されてセンタ１からダウンロードされる。
【０１１３】
これにより、この更新プログラムを受信したマスタ親マイコンは、その更新プログラムの実際の送付先となるマイコンをそれに付されるＥＣＵＩＤ、マイコンＩＤにより特定することができ、適切に送付先のマイコンまで送り届けることができる。
【０１１４】
［変形例］
上述の実施例１における車載システムは、階層構造を示すツリー構造情報が各マイコンで利用可能に保持される構成を有していたが、このツリー構造情報を保持することなく、マイコンＩＤでこのツリー構造を表すようにしてもよい。
【０１１５】
この場合、マイコンＩＤは例えば次のように構成する。ＭＳＢ（Most Significant Bit）からＬＳＢ（Least Significant Bit）方向の各位置のビットに、階層、各階層のマイ
コン番号をそれぞれ割り当てる。階層を７階層まで許容する場合には階層を示すビットを３ビットとし、各階層の最大マイコン数を１５個までとする場合には各階層のマイコン番号を示すビットをそれぞれ４ビットとする。
【０１１６】
このようにすれば、更新プログラムデータを受信したマイコンは、この更新プログラムデータを送信すべきマイコンをその更新プログラムデータと共に送られるマイコンＩＤを参照するだけで特定することができる。
【０１１７】
上述の実施例１では、コアマイコン４１は、センタ１から、バージョンアップ対象となるマイコンを識別するためのＥＣＵＩＤ及びマイコンＩＤ並びにその最新バージョン情報が関連付けられた更新プログラムデータを受信し、そのバージョンアップ対象となるマイコンへバージョンアップ要求を送り、そのマイコンでバージョンアップ処理を実行させていた。しかしながら、バージョンアップ対象となるマイコンがバージョンアップ処理の実行機能を有していない場合、バージョンアップ処理を実行するためのマイコンが定められている場合等には、そのバージョンアップ対象となるマイコン以外のマイコンによりそのバージョンアップ対象となるマイコンのためのバージョンアップ処理が実行されるようにしてもよい。また、バージョンアップ処理を実行するマイコンがセンタ１により指定されるようにしてもよい。
【０１１８】
上述の実施例１では、センタ１において最新バージョンでないマイコンが存在すると判定されると、センタ１から当該車載システムにバージョンアップの必要性の有無に関する情報が通知され、この通知に応じて、当該車載システムにおいてユーザにバージョンアップの実行の要否が確認されていた（図７のＳ５３、Ｓ５４、Ｓ５５）。しかしながら、ユーザにバージョンアップの実行の要否を確認することなく（図７のＳ５３、Ｓ５４、Ｓ５５を省き）、センタ１が最新バージョンでないマイコンが存在すると判定した場合に（Ｓ５２）、更新プログラムデータを送信する（Ｓ５６）ようにしてもよい。
【符号の説明】
【０１１９】
１  センタ装置（センタ）
１１  マスタ親マイコン
１２、１３  マスタ子マイコン
１４、１５  マスタ孫マイコン
２１、３１  スレーブ親マイコン
２２、２３、３２、３３  スレーブ子マイコン
２４、３４  スレーブ孫マイコン
４０  ナビゲーションＥＣＵ
４１  システムブロックコアマイコン（コアマイコン）
４２  ＲＡＭ
４３、５７、６２、６７  ＲＯＭ
５５  オーディオビジュアル（ＡＶ）モジュール
５８  ＡＶマイコン
５９  ＡＶモジュールチューナマイコン
６０  通信モジュール
６１  通信マイコン
６４  通信モジュールチューナマイコン
６５  デジタルテレビＥＣＵ（ＤＴＶ−ＥＣＵ）
６６  ＤＴＶマイコン
６８  ＤＴＶチューナマイコン
７０  アンプＥＣＵ
７５  アンプマイコン
【図１】
2010282385.tif 000003
【図２】
2010282385.tif 000004
【図３】
2010282385.tif 000005
【図４Ａ】
2010282385.tif 000006
【図４Ｂ】
2010282385.tif 000007
【図５】
2010282385.tif 000008
【図６】
2010282385.tif 000009
【図７】
2010282385.tif 000010