(57)【要約】【課題】車載機に含まれる各機器のプログラムを極力安全に更新し、予期しない障害が発生した場合にも、障害の影響を可能な限り小さくする【解決手段】マスタユニットは、スレーブ制御手段の階層構造において、下層のスレーブ制御手段で実行されるコンピュータプログラムを優先して更新し、その更新後に、下層の上位の階層のスレーブ制御手段のコンピュータプログラムを更新するように更新順を制御するスレーブ更新制御手段と、スレーブ更新手段によって、更新対象のスレーブユニットのコンピュータプログラムが更新された後に、マスタ制御手段の階層構造において、下層のマスタ制御手段で実行されるコンピュータプログラムを優先して更新し、その更新後に、下層の上位の階層のマスタ制御手段のコンピュータプログラムを更新するように更新順を制御するマスタ更新制御手段と、を有する。【選択図】図２
2010195111.tif 000002
【特許請求の範囲】
【請求項１】
車内ネットワークで接続されるマスタユニットと１以上のスレーブユニットとを備え、
前記マスタユニットは、
車外のネットワークへの接続手段と、
前記車内ネットワークへの接続手段と、
階層構造を形成する複数のマスタ制御手段と、を有し、
前記複数のマスタ制御手段は、少なくとも一部の処理の実行を他のマスタ制御手段に指示する第１のマスタ制御手段と、前記第１のマスタ制御手段から指示された前記処理のうち少なくとも一部を実行するとともに、前記処理の少なくとも他の一部を実行する第３のマスタ制御手段が存在する場合に、前記他の一部の実行を前記第３のマスタ制御手段に指示する第２のマスタ制御手段とを含む、少なくとも２階層の階層構造を形成し、
前記複数のマスタ制御手段がそれぞれ、コンピュータプログラムを実行可能な形式で記憶する記憶手段と、前記記憶手段に記憶されたコンピュータプログラムを実行する処理手段と、を含み、
前記スレーブユニットは、
前記車内ネットワークへの接続手段と、
階層構造を形成する複数のスレーブ制御手段と、を有し、
前記複数のスレーブ制御手段は、少なくとも一部の処理の実行を他のスレーブ制御手段に指示する第１のスレーブ制御手段と、前記第１のスレーブ制御手段から指示された前記処理のうち少なくとも一部を実行するとともに、前記処理の少なくとも他の一部を実行する第３のスレーブ制御手段が存在する場合に、前記他の一部の実行を前記第３のスレーブ制御手段に指示する第２のスレーブ制御手段とを含む、少なくとも２階層の階層構造を形成し、
前記複数のスレーブ制御手段がそれぞれ、コンピュータプログラムを実行可能な形式で記憶する記憶手段と前記記憶手段に記憶されたコンピュータプログラムを実行する処理手段と、を含み、
前記マスタユニットは、
前記車外のネットワークへの接続手段を通じて、前記それぞれのコンピュータプログラムを更新するための更新プログラムを取得し、不揮発性の記憶手段に保存する手段と、
前記スレーブユニットに対して、前記スレーブ制御手段の階層構造において、下層のスレーブ制御手段で実行されるコンピュータプログラムを優先して更新し、前記下層のスレーブ制御手段で実行されるコンピュータプログラムを更新後に、前記下層の上位の階層のスレーブ制御手段で実行されるコンピュータプログラムを更新するように更新順を制御するスレーブ更新制御手段と、
前記スレーブ更新制御手段によって、更新対象のスレーブユニットのコンピュータプログラムが更新された後に、前記マスタ制御手段の階層構造において、下層のマスタ制御手段で実行されるコンピュータプログラムを優先して更新し、前記下層のマスタ制御手段で実行されるコンピュータプログラムを更新後に、前記下層の上位の階層のマスタ制御手段で実行されるコンピュータプログラムを更新するように更新順を制御するマスタ更新制御手段と、を有する車載コンピュータシステム。
【請求項２】
前記スレーブユニットの階層構造の最上位のスレーブ制御手段は、
前記車内ネットワークへの接続手段の制御のための通信プログラムの更新プログラムおよび更新前の通信プログラムの少なくとも１つを保存する手段と、
前記コンピュータプログラムの更新が開始されたことを不揮発性の記憶装置に記録する手段と、
前記コンピュータプログラムの更新が完了したことを前記不揮発性の記憶装置に記録する手段と、
電源が遮断後、再度投入されたときに、前記コンピュータプログラムの更新が開始され
た後に終了前に更新が中断したことを判定する手段と、
前記終了前に更新が中断したと判定したときに、更新プログラムが破壊されているか否かを判定する手段と、
前記通信プログラムの更新プログラムが破壊されている判定したときに前記不揮発性メモリに保存した更新プログラムまたは更新前の通信プログラムによって車内ネットワークへの接続手段の制御を復旧する手段と、
前記通信プログラム以外の更新プログラムが破壊されている判定したときに
前記マスタユニットに再送要求して前記更新プログラムを再度取得する手段と、を有し、
前記マスタユニットは、前記再送要求された更新プログラムを前記不揮発性の記憶手段から読み出して前記スレーブユニットに送信する手段を有する請求項１に記載に車載コンピュータシステム。
【請求項３】
前記マスタユニットは、車両のエンジン停止後に二次電池駆動にて前記コンピュータプログラムの更新を実行する二次電池モードでの更新実行の指示を受け付ける手段と、
二次電池モードでの更新の実行時に、前記スレーブユニットがコンピュータプログラムの更新完了後に電源を遮断したか否かを判定する手段と、
前記スレーブユニットが電源を遮断した後に、マスタユニットの電源を遮断する手段と、を有する請求項１または２に記載の車載コンピュータシステム。
【請求項４】
前記車載ネットワークはリング接続されたネットワークであり、
前記マスタユニットは、車両のエンジン停止後に二次電池駆動にて前記コンピュータプログラムの更新を実行する二次電池モードでの更新実行の指示を受け付ける手段と、
二次電池モードでの更新の実行時に、前記スレーブユニットのそれぞれにおいてコンピュータプログラムの更新が完了したか否かを判定する手段と、
すべてのスレーブユニットでの更新が完了したときに、それぞれのスレーブユニットの電源を所定時間経過後に遮断する指示を、スレーブユニットに送信する手段と、
前記所定時間を計測する手段と、
前記所定時間経過後に、マスタユニットの電源を遮断する手段と、を有する請求項１または２に記載の車載コンピュータシステム。
【請求項５】
１以上のスレーブユニットと車内ネットワークで接続されるマスタユニットであり、
前記スレーブユニットは、
前記車内ネットワークへの接続手段と、
階層構造を形成する複数のスレーブ制御手段と、を有し、
前記複数のスレーブ制御手段は、少なくとも一部の処理の実行を他のスレーブ制御手段に指示する第１のスレーブ制御手段と、前記第１のスレーブ制御手段から指示された前記処理のうち少なくとも一部を実行するとともに、前記処理の少なくとも他の一部を実行する第３のスレーブ制御手段が存在する場合に、前記他の一部の実行を前記第３のスレーブ制御手段に指示する第２のスレーブ制御手段とを含む、少なくとも２階層の階層構造を形成し、
前記複数のスレーブ制御手段がそれぞれ、コンピュータプログラムを実行可能な形式で記憶する記憶手段と前記記憶手段に記憶されたコンピュータプログラムを実行する処理手段と、を含み、
前記マスタユニットは、
車外のネットワークへの接続手段と、
前記車内ネットワークへの接続手段と、
階層構造を形成する複数のマスタ制御手段と、を有し、
前記複数のマスタ制御手段は、少なくとも一部の処理の実行を他のマスタ制御手段に指示する第１のマスタ制御手段と、前記第１のマスタ制御手段から指示された前記処理のうち少なくとも一部を実行するとともに、前記処理の少なくとも他の一部を実行する第３
のマスタ制御手段が存在する場合に、前記他の一部の実行を前記第３のマスタ制御手段に指示する第２のマスタ制御手段とを含む、少なくとも２階層の階層構造を形成し、
前記複数のマスタ制御手段がそれぞれ、コンピュータプログラムを実行可能な形式で記憶する記憶手段と、前記記憶手段に記憶されたコンピュータプログラムを実行する処理手段と、を含み、
さらに、前記マスタユニットは、
前記車外のネットワークへの接続手段を通じて、前記それぞれのコンピュータプログラムを更新するための更新プログラムを取得し、不揮発性の記憶手段に保存する手段と、
前記スレーブユニットに対して、前記スレーブ制御手段の階層構造において、下層のスレーブ制御手段で実行されるコンピュータプログラムを優先して更新し、前記下層のスレーブ制御手段で実行されるコンピュータプログラムを更新後に、前記下層の上位の階層のスレーブ制御手段で実行されるコンピュータプログラムを更新するように更新順を制御するスレーブ更新制御手段と、
前記スレーブ更新制御手段によって、更新対象のスレーブユニットのコンピュータプログラムが更新された後に、前記マスタ制御手段の階層構造において、下層のマスタ制御手段で実行されるコンピュータプログラムを優先して更新し、前記下層のマスタ制御手段で実行されるコンピュータプログラムを更新後に、前記下層の上位の階層のマスタ制御手段で実行されるコンピュータプログラムを更新するように更新順を制御するマスタ更新制御手段と、を有するマスタユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載コンピュータシステムに含まれるコンピュータプログラムの更新技術に関する。
【背景技術】
【０００２】
車載機は複数の制御装置を含み、各制御装置は互いに車載ネットワークで接続される。これらの制御装置の中には、例えば、マスタユニット、あるいはマスタＥＣＵ（Electronic Control Unit）と呼ばれ、車載機全体を管理する装置と、スレーブユニット、あるい
は、スレーブＥＣＵと呼ばれ、マスタユニットに接続され担当する処理を実行する装置が存在する。
【０００３】
また、マスタユニット、スレーブユニットともに、プロセッサとメモリを含むマイクロコンピュータ（以下、単にマイコン）等の制御部を複数階層に渡って有することがある。複数階層とは、例えば、上位側の制御部の指示にしたがって、下位側の制御部が処理を分担して実行するような親子関係の構造をいう。したがって、車載機では、複数の制御部が親子関係を構築し、車載機がいわば制御部の木構造を構築している。そして、それぞれの制御部は、メモリ上に展開されたコンピュータプログラムを実行することで、それぞれの機能を提供する。
【０００４】
このような車両上の複数の機器に組み込むべき種々の制御プログラムを外部から読込んでEEPROMに保存し、そして伝送路を通じて車両上の各種の機器を指定して該当する制御プログラムをEEPROMから転送する技術も提案されている（例えば、下記特許文献１等）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１４０９９６号公報
【特許文献２】特開２００６−１７２０９３号公報
【特許文献３】特開２００６−１８９９７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、車載機に含まれる各機器が親子関係を構築し、複雑な木構造を構築している場合に、それぞれの機器の制御プログラムを更新する際、更新が失敗した場合の配慮が十分でない。例えば、機器のプログラムを更新中に、誤操作あるいはバッテリ不足等により電源が遮断し、更新途中のプログラムが破壊されてしまう場合もあるからである。
【０００７】
本発明の目的は、車載機に含まれる各機器のプログラムを極力安全に更新し、予期しない障害が発生した場合にも、障害の影響を可能な限り小さくする技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明の一態様は、車内ネットワークで接続されるマスタユニットと１以上のスレーブユニットとを備える車載システムとして例示される。
【０００９】
ここで、マスタユニットは、車外のネットワークへの接続手段と、車内ネットワークへ
の接続手段と、階層構造を形成する複数のマスタ制御手段と、を有する。そして、複数のマスタ制御手段は、少なくとも一部の処理の実行を他のマスタ制御手段に指示する第１のマスタ制御手段と、第１のマスタ制御手段から指示された処理のうち少なくとも一部を実行するとともに、処理の少なくとも他の一部を実行する第３のマスタ制御手段が存在する場合に、他の一部の実行を第３のマスタ制御手段に指示する第２のマスタ制御手段とを含む、少なくとも２階層の階層構造を形成する。また、複数のマスタ制御手段がそれぞれ、コンピュータプログラムを実行可能な形式で記憶する記憶手段と、記憶手段に記憶されたコンピュータプログラムを実行する処理手段と、を含む。
【００１０】
一方、スレーブユニットは、車内ネットワークへの接続手段と、階層構造を形成する複数のスレーブ制御手段と、を有する以外は、マスタユニットと同様の構成である。
【００１１】
そして、マスタユニットは、車外のネットワークへの接続手段を通じて、それぞれのコンピュータプログラムを更新するための更新プログラムを取得し、不揮発性の記憶手段に保存する手段と、スレーブユニットに対して、スレーブ制御手段の階層構造において、下層のスレーブ制御手段で実行されるコンピュータプログラムを優先して更新し、下層のスレーブ制御手段で実行されるコンピュータプログラムを更新後に、下層の上位の階層のスレーブ制御手段で実行されるコンピュータプログラムを更新するように更新順を制御するスレーブ更新制御手段と、スレーブ更新手段によって、更新対象のスレーブユニットのコンピュータプログラムが更新された後に、マスタ制御手段の階層構造において、下層のマスタ制御手段で実行されるコンピュータプログラムを優先して更新し、下層のマスタ制御手段で実行されるコンピュータプログラムを更新後に、下層の上位の階層のマスタ制御手段で実行されるコンピュータプログラムを更新するように更新順を制御するマスタ更新制御手段と、を有する。
【００１２】
この構成では、車載システムのコンピュータプログラムの更新において、マスタユニットより先にスレーブユニットが更新される。更新プログラムは、マスタユニットに保持されるので、スレーブユニットでの更新が失敗しても、直ちに、マスタユニットに保持される更新プログラムで、再度更新を行うことができる。一方、マスタユニットでの更新を先に行って失敗した場合に、車載システム全体の更新プログラムが利用できなくなり、再度、更新プログラム全体を取得しなければならない状態に陥る可能が高くなる。上記例示の態様は、そのような自体を回避できる可能性が高い。
【００１３】
また、スレーブユニット、マスタユニット、それぞれの更新において、スレーブ制御手段およびマスタ制御手段の、それぞれの階層構造の下層を先に更新する。通常、プログラムの更新では、更新の初期に問題が生じることが多い。したがって、階層構造の下層で実行されるコンピュータプログラムを先に更新することで、問題の発生、あるいは、更新失敗による影響を、階層構造の下層側、すなわち、システム中の狭い範囲に限定できる可能性が高い。
【発明の効果】
【００１４】
本発明によれば、車載機に含まれる各機器のプログラムを極力安全に更新し、予期しない障害が発生した場合にも、障害の影響を可能な限り小さくできる。
【図面の簡単な説明】
【００１５】
【図１】車載システムの構成図を例である。
【図２】マスタユニットの具体例を示す図である。
【図３】スレーブユニットの管理テーブルの例である。
【図４】１つのスレーブユニットでのマイコンの管理テーブルの例である。
【図５】車載システムのプログラム更新処理の処理フローを例示する図である。
【図６】スレーブユニットに対するプログラム更新処理の詳細を例示する図である。
【図７】スレーブユニット側の親マイコンによる更新処理を例示する図である。
【図８】スレーブユニット側の親マイコンによる復旧処理を例示する図である。
【図９】実施例２に係るスレーブユニットのプログラム更新処理を例示する図である。
【図１０】実施例３に係るアクセサリ電源停止後のプログラム更新処理の例示する図である
【図１１】実施例４に係るプログラム更新処理を例示する図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係る車載システムについて説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【００１７】
＜システムの概要＞
図１に、本車載システムの構成図を例示する。本車載システムは、車載ＬＡＮ（Local Area Network）２（本発明の車内ネットワークに相当）で接続されたマスタユニット１０と、１以上のスレーブユニット２０、３０等を含む。本実施形態では、スレーブユニット２０，３０の２台で説明するが、スレーブユニットの数は、２台に限定されるわけではなく、１台の場合もあり、また、３台以上の場合もある。車載ＬＡＮとしては、様々な規格が提案されており、例えば、AVC-LAN、MOST（Media Oriented Systems Trans-port)等を
例示できる。
【００１８】
マスタユニット１０、スレーブユニット２０，３０は、いずれも、ＥＣＵ（Electronic
Control Unit）と呼ばれるものであり、内部に複数のマイクロコンピュータ（以下、マ
イコンという）を含んでいる。また、これらのマイコンは、階層的な親子関係を構成している。すなわち、図１の例では、マスタユニット１０は、親マイコン１１と親マイコン１１に管理される子マイコン１１Ａ，１１Ｂを有している。ここで、管理されるとは、例えば、親マイコン１１の指示にしたがって、親マイコンが提供する機能の一部を分担して処理していることをいう。また、子マイコン１１Ｂは、さらに、孫マイコン１１Ｃを管理している。なお、これらのマイコンとマイコンとの間は、バス（図１では、「内部接続」で示す）で接続される。複数の親マイコン１１、子マイコン１１Ａ，１１Ｂ、孫マイコン１１Ｃ等がマスタ制御手段に相当する。
【００１９】
同様に、スレーブユニット２０は、親マイコン２１、子マイコン２１Ａ，２１Ｂ，孫マイコン２１Ｃを含む。また、スレーブユニット３０は、親マイコン３１、子マイコン３１Ａ，３１Ｂ，孫マイコン３１Ｃを含む。複数の親マイコン２１、３１、子マイコン２１Ａ，２１Ｂ、３１Ａ，３１Ｂ、孫マイコン２１Ｃ，３１Ｃ等がスレーブ制御手段に相当する。図１の例では、マスタユニット１０、スレーブユニット２０，３０は、いずれも、子マイコンが２個、孫マイコンが１個の構成であるが、マイコンの階層関係がこのような構成に限定されるわけではない。
【００２０】
本車載システムは、無線通信媒体、例えば、車載データ通信モジュール（Data Communication Module：DCM）、携帯電話、ＰＨＳ（Personal Handyphone System）、無線ＬＡＮ等によって、基幹ネットワーク（コアネットワークともいう）上のセンタサーバ３と通信する。本車載システムのマスタユニット１０は、センタサーバ３から、最新バージョンのプログラムを取得し、マスタユニット１０、スレーブユニット２０，３０で実行されるコンピュータプログラムを最新バージョンのものに更新する。
【００２１】
図２に、マスタユニット１０の具体例を示す。この例では、マスタユニット１０の親マ
イコン１１は、ＣＰＵ１２（本発明の処理手段に相当）、ＲＯＭ（Read Only Memory）１３、ＲＡＭ（Random Access Memory）１４およびＩ／Ｏインターフェース１５を含む。ＲＯＭ１３は、例えば、フラッシュメモリであり、１回の書き込みと、データ消去後の再書き込みが可能である。この意味で、本実施形態のＲＯＭ１３は、不揮発性メモリ（本発明の記憶手段に相当）ともいい、書き込み不可能なメモリではない。ＲＯＭ１３には、ＣＰＵ１２で実行されるコンピュータプログラムが実行可能な形式に展開され、所定のアドレスに格納される。実行可能な形式とは、コンピュータプログラムがＣＰＵ１２の機械命令列で記述され、コンピュータプログラムが有するそれぞれの部分（モジュール）がそれぞれのアドレスに直接または間接に割り当てられ、例えば、JUMP命令等の制御命令によって、モジュール間が結合され、次の実行すべき機械命令を示すカウンタの指示にしたがって、ＣＰＵ１２が機械命令を処理可能な状態で配置されていることをいう。
【００２２】
また、ＲＯＭ１３には、スレーブユニット２０，３０にインストールされるべきプログラムが一時的に保存される。一方は、ＲＡＭ１４は、例えば、ダイナミックＲＡＭであり、ＣＰＵ１２が処理するデータ等が保持される。
【００２３】
また、図２では、子マイコン１１Ｂの例として、チューナユニットが例示されている。チューナユニットは、ＣＰＵ１１Ｂ、ＲＯＭ１３Ｂ、Ｉ／Ｏインターフェース１５Ｂ、およびチューナ１６Ｂを含む。Ｉ／Ｏインターフェース１５Ｂは、バスおよび親マイコンのＩ／Ｏインターフェース１５を通じて、子マイコン１１ＢのＣＰＵ１２Ｂと、親マイコン１１のＣＰＵ１２とを接続する。ＣＰＵ１２Ｂは、ＲＯＭ１３Ｂ上に展開されたコンピュータプログラムを実行し、チューナ１６Ｂを制御する。ＲＯＭ１３Ｂは、例えば、フラッシュメモリであり、１回の書き込みと、データ消去後の再書き込みが可能である。ＲＯＭ１３Ｂには、ＣＰＵ１２Ｂで実行されるコンピュータプログラムが実行可能な形式に展開され、所定のアドレスに格納される。チューナ１６Ｂは、例えば、サーバ３から送信される情報を無線通信信号で受信する。なお、チューナ１６Ｂの内部に、さらに、孫マイコンが設けられる場合がある。
【００２４】
子マイコン１１ＢのＣＰＵ１２Ｂは、チューナ１６Ｂで受信された情報を、Ｉ／Ｏインターフェース１５Ｂ、バス、およびＩ／Ｏインターフェース１５を介して、親マイコンのＣＰＵ１２に引き渡す。
【００２５】
図２では、他の子マイコンの例として、ビデオインターフェース１５Ｃおよびビデオデコーダ１６Ｃを含むビデオユニットが例示されている。例えば、ビデオデコーダ１６Ｃ内にも、子マイコンの構成が含まれている。その場合に、機能の複雑さに応じて、子マイコンの配下にさらに、孫マイコンが設けられる。さらに、ビデオデコーダ１６Ｃに、表示操作パネル１７Ｃが接続される。表示操作パネル１７Ｃは、映像データ、およびグラフィックスオブジェクトを画面に表示するとともに、グラフィックスオブジェクトに対するユーザ操作を検出する。すなわち、表示操作パネル１７Ｃは、いわゆるタッチパネルである。
【００２６】
また、図２では、他の子マイコンの例として、オーディオインターフェース１５Ｄおよびパワーアンプ１６Ｄを含む構成が例示されている。例えば、パワーアンプ１６Ｄ内にも、子マイコンの構成が含まれている。その場合に、機能の複雑さに応じて、子マイコンの配下にさらに、孫マイコンが設けられる。
【００２７】
さらに、図２では、Ｉ／Ｏインターフェース１５には、Ｉ／Ｏインターフェース１５Ｅを通じて入力操作部１６Ｅが接続されている。入力操作部１６Ｅは、例えば、操作ボタン列である。あるいは、入力操作部１６Ｅは、リモートコントローラからの赤外線を受光する受光部と信号処理部を含む、リモートコントローラインターフェースでもよい。入力操作部１５Ｅにも、少なくとも１つの子マイコンが設けられている。
【００２８】
また、Ｉ／Ｏインターフェース１５には、Ｉ／Ｏインターフェース１５Ｆを通じて着脱可能記憶媒体入出力装置１６Ｆが接続されている。着脱可能記憶媒体入出力装置１６Ｆは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）読み取り装置、ＤＶＤ（Digital Versatile Disk）駆動装置、ブルーレイディスク駆動装置、フラッシュメモリカー
ド入出力装置等である。着脱可能記憶媒体入出力装置１６Ｆにも、少なくとも１つの子マイコンが設けられている。
【００２９】
さらに、Ｉ／Ｏインターフェース１５に車載ＬＡＮ２へのインターフェース（本発明の車内ネットワークへの接続手段に相当）を通じて、車載ＬＡＮ２が接続される。なお、スレーブユニット２０，３０も、マスタユニット１０と同様の構成である。ただし、スレーブユニット２０，３０は、車載ＬＡＮ２へのインターフェース（本発明の車内ネットワークへの接続手段に相当）を含むが、チューナ１６Ｂ等の車外への接続手段および着脱可能記憶媒体入出力装置１６Ｆは含まない。
【００３０】
したがって、マスタユニット１０内には、装備される機器の構成にしたがって、親マイコン１１の配下に子マイコン１１Ｂ，１１Ｃ、さらに、孫マイコン１１Ｄのように（図１参照）、マイコンが階層的に接続される。
【００３１】
以上のような親マイコン以下、子マイコン、孫マイコン等の階層構造は、スレーブユニット２０，３０にも同様に存在する。スレーブユニット２０は、例えば、エアーコンディショナー制御装置である。また、スレーブユニット３０は、例えば、デジタルテレビ制御装置である。
【００３２】
本車載システムでは、各マイコンのコンピュータプログラムをバージョンアップする場合には、マスタユニット１０の親マイコン１１が、チューナユニット１１Ｂを通じて、センタサーバ３にアクセスし、更新プログラムを取得する。ただし、マスタユニット１０の親マイコンは、着脱可能記憶媒体入出力装置１６Ｆを通じて可搬媒体（ＤＶＤ，ＣＤ、メモリカード等）から更新プログラムを取得してもよい。
【００３３】
そして、マスタユニット１０の親マイコン１１は、マスタユニット１０およびスレーブユニット２０，３０のそれぞれのマイコンで実行されるコンピュータプログラムを更新する。その場合に、本車載システムは、コンピュータプログラムの更新に伴う、不具合が車載システム全体に影響及ぼす可能性を極力抑制するように、各マイコンのコンピュータプログラムを更新する。
【実施例１】
【００３４】
以下、個々のスレーブユニットは、参照番号を付して、スレーブユニット２０のように呼び、一方、複数のスレーブユニットを総称する場合には、参照番号を省略して、単にスレーブユニットと呼ぶ。
【００３５】
＜データ構造＞
図３および図４に、マスタユニット１０が、車載システムの各部のプログラムを更新するために参照するデータ例を示す。図３は、車載ＬＡＮ２によってマスタユニット１０に接続されるスレーブユニットの管理テーブルの例である。スレーブユニットの管理テーブルは、マスタユニット１０のＲＯＭ１３に保持される。
【００３６】
図３のように、スレーブユニットの管理テーブルの各レコードは、スレーブユニットの機器ＩＤと、型番と、車載ＬＡＮ２のアドレスを含む。スレーブユニットの機器ＩＤは、スレーブユニットを識別する情報である。例えば、機器ＩＤは、それぞれの機器（マスタ
ユニット、スレーブユニット等のＥＣＵ）の車載ＬＡＮ２上でのノード名である。型番は、それらの機器の製造メーカでの管理コードである。例えば、型番をキーにセンタサーバ３にアクセスし、その機器に関する詳細情報、例えば、機器内の部品構成、マイコンの数、複数のマイコンの階層構造等を取得できる。車載ＬＡＮ２のアドレスは、マスタユニット１０がスレーブユニットにアクセスするときのアドレスである。
【００３７】
スレーブユニットの管理テーブルは、次のようにしてメンテナンスされる。例えば、スレーブユニット２０が組み込まれ、最初に、マスタユニット１０とスレーブユニット２０間で、通信がなされたときに、スレーブユニット２０の情報をスレーブユニットの管理テーブルに格納するようにすればよい。スレーブユニットの管理テーブルを参照することによって、マスタユニット１０のＣＰＵ１２は、車載ＬＡＮ２に接続されたそれぞれのスレーブユニット２０等の存在の有無、型番およびそのスレーブユニット２０等にアクセスするための車載ＬＡＮ２上のアドレスを認識できる。型番については、スレーブユニット２０等のインストール時、操作表示パネル１７Ｃから入力し、機器ＩＤと対応付けて記録するようにしてもよい。また、車載システムの工場出荷時に、図３のようなスレーブユニットの管理テーブルを不揮発性メモリに格納しておくようにしてもよい。
【００３８】
図４は、例えば、スレーブユニットの１つであり、機器ＩＤ（ＥＣＵ１）によって特定されるスレーブユニットが有するマイコンの管理テーブルの例である。マイコンの管理テーブルは、マスタユニット１０、あるいは、各スレーブユニットに対してそれぞれ設けられ、それぞれに含まれるマイコンを管理する。マイコンの管理テーブルの各レコードは、マイコンＩＤ、子ＩＤ、親ＩＤ、および通信用マイコンフラグを含む。
【００３９】
例えば、機器ＩＤがＥＣＵ１のスレーブユニットの場合には、マイコンとして、ＩＤ１−ＩＤ５が例示されている。まだ、ＩＤ１のマイコンの子ＩＤとして、ＩＤ２，ＩＤ３が存在する。この例では、ＩＤ２，ＩＤ３のマイコンは、それぞれＩＤ１のマイコンの子マイコンであることを示している。また、ＩＤ１のマイコンは、ＩＤ２，ＩＤ３のマイコンの親マイコンであることを示している。ＩＤ１のマイコンの親マイコンの指定が空欄（"-"）となっており、ＩＤ１のマイコンが階層構造の最上位に位置することを示している。
【００４０】
さらに、通信用マイコンフラグから、マイコンＩＤがＩＤ５のマイコンは、通信用マイコンであることを示している。このようなマイコンの管理テーブルは、センタサーバ３から取得し、ＲＯＭ１３に格納しておけばよい。
【００４１】
すなわち、マスタユニット１０は、最初にスレーブユニット（例えば、ＥＣＵ１）と通信を確立し、ＥＣＵ１を認識したときに、そのスレーブユニットの機器ＩＤをスレーブユニットの管理テーブルに登録するとともに、センタサーバ３から、そのスレーブユニットのマイコンの管理テーブルを取得し、不揮発性メモリに格納しておけばよい。
【００４２】
＜処理フロー＞
図５に、車載システムのプログラム更新処理の処理フローを例示する。図５の処理は、マスタユニット１０のＣＰＵ１２が不揮発性メモリに展開されたコンピュータプログラムを実行することによって実現される。マスタユニット１０の入出力操作部１６Ｅへのユーザ操作をＣＰＵ１２が検知して、図５に示す処理を起動する。なお、入出力操作部１６Ｅへの操作の代わりに、表示操作パネル１７Ｃへの操作によって、図５の処理を起動してもよい。
【００４３】
この処理では、マスタユニット１０は、まず、センタサーバ３からシステムの更新プログラムを暗号化した暗号化データをダウンロードし、マスタユニット１０のＲＡＭ１４に保存する（Ｓ５）。そして、マスタユニット１０は、ダウンロードしたプログラムをマス
タユニット１０のＲＡＭ１４上で復号し、不揮発性メモリに保存する（Ｓ７）。Ｓ７の処理を実行するマスタユニット１０のＣＰＵ１２が本発明の更新プログラムを取得し、不揮発性の記憶手段に保存する手段に相当する。
【００４４】
次に、マスタユニット１０は、更新プログラムによってプログラムを更新する更新対象の機器を決定する（Ｓ８）。更新対象機器の一覧表は、更新プログラムとともに、センタサーバ３からダウンロードするようにすればよい。そして、マスタユニット１０は、更新対象機器の一覧表（型番の一覧表）と、スレーブユニット管理テーブル（図３）の型番を照合し、本車載システムに搭載されている更新対象機器を決定すればよい。
【００４５】
次に、マスタユニット１０は、復号した更新プログラムを用いて、スレーブユニットのプログラムを更新する（Ｓ９）。そして、マスタユニット１０は、すべての更新対象のスレーブユニットのプログラムを更新したか否かを判定する（Ｓ１０）。そして、更新対象のスレーブユニットで未更新のものが存在する場合に、マスタユニット１０は、制御をＳ９に戻し、残りの更新対象のスレーブユニットに対して、プログラムの更新処理を繰り返す。
【００４６】
一方、すべての更新対象のスレーブユニットの更新処理が終了すると、次に、マスタユニット１０は、マスタユニット１０自身が更新対象となっているか否かを判定する（Ｓ１２）。そして、更新プログラムによる更新対象に、マスタユニット１０のプログラムが含まれる場合、マスタユニット１０は、マスタユニット１０自身の更新対象のプログラムを更新する（Ｓ１３）。Ｓ１３の処理を実行するマスタユニット１０のＣＰＵ１２が本発明のマスタ更新制御手段に相当する。
【００４７】
図６に、スレーブユニットのプログラム更新処理（図６のＳ９）の詳細を例示する。この処理では、マスタユニット１０は、それぞれのスレーブユニットのマイコン管理テーブル（図４参照）を基に、プログラム更新対象のスレーブユニットでマイコンの階層構造をたどり、次のマイコンを検索する（Ｓ９１）。ここで、次のマイコンとは、階層構造で最も下位に位置するマイコンである。例えば、親マイコン、子マイコン、孫マイコンの３階層が存在する場合に、孫マイコンが最初に更新対象となる。階層構造で最も下位に位置するマイコンは、図４のマイコンの管理テーブルをたどることで、検索できる。また、同一階層複数のマイコンが存在する場合、図４のマイコンの管理テーブル中で先に見出された方のマイコンを先に処理する。
【００４８】
そして、検索されたマイコンがプログラムの更新対象か否かを判定する（Ｓ９３）。プログラムの更新対象のマイコンの識別情報は、例えば、更新プログラムとともに、センタサーバ３からダウンロードするようにすればよい。そして、Ｓ９１で検索された次のマイコンがプログラム更新の対象である場合、スレーブユニットにそのマイコンのプログラムの更新を指示する（Ｓ９５）。プログラムの更新は、例えば、そのマイコンが実行するスレーブユニットの不揮発性メモリ上のアドレスに該当するプログラムを書き込むことによってなされる。スレーブユニットの不揮発性メモリへのプログラムの書き込み処理は、例えば、マスタユニット１０（親マイコン１１）から、スレーブユニットに、更新対象のマイコンのＩＤと、そのマイコンの更新プログラムを引き渡し、スレーブユニットに書き込みを依頼すればよい。Ｓ９１−Ｓ９５の処理を実行するマスタユニット１０のＣＰＵ１２が本発明のスレーブ更新制御手段に相当する。
【００４９】
次に、マスタユニット１０は、当該スレーブユニットについて、すべてのマイコンのプログラム更新の確認が終了したか否かを判定する（Ｓ９７）。すべてのマイコンのプログラム更新処理が終了していない場合、マスタユニット１０は、制御をＳ９１に戻し、スレーブユニット内のマイコンの階層構造中で、次のマイコンを検索する。この処理は、階層
構造中で、最下層のマイコンから、親マイコンに至るまで繰り返される。一方、すべてのマイコンのプログラム更新の確認が終了すると、マスタユニット１０は、処理を終了する。
【００５０】
なお、ここでは、図６の処理は、マスタユニット１０で実行するものとしたが、Ｓ９１からＳ９７の処理をスレーブユニットの親マイコンが実行するようにしてもよい。
【００５１】
図７に、スレーブユニット側の親マイコンによる更新処理を例示する。この処理では、スレーブユニットは、マスタユニット１０から更新対象のマイコンのＩＤと、更新プログラムを受信する（Ｓ３１）。つぎに、スレーブユニット側の親マイコンは、受信した更新プログラムのうち、通信用マイコンの更新プログラムを不揮発性メモリに保存する（Ｓ３２）。通信用マイコンとは、車載ＬＡＮ２とのインターフェースを制御するマイコンである。
【００５２】
Ｓ３２では、通信用マイコンの更新プログラムを不揮発性メモリに保存したが、通信用マイコンの更新前のプログラムを不揮発性メモリに保存するようにしてもよい。更新プログラムを保存した場合には、更新に失敗したときに、再度更新を実行できる。また、更新前のプログラムを保存した場合には、更新に失敗したときに更新前の状態に復旧できる。したがって、通信用マイコンの更新プログラムまたは更新前のプログラムの少なくとも一方を保存すればよい。この処理を実行するスレーブユニットの親マイコンが本発明の車内ネットワークへの接続手段を制御するコンピュータプログラムの更新プログラムおよび更新前のコンピュータプログラムの少なくとも１つを保存する手段に相当する。
【００５３】
次に、更新処理の開始を不揮発性メモリに記憶する（Ｓ３３）。Ｓ３３の処理を実行するスレーブユニットの親マイコンが本発明のコンピュータプログラムの更新が開始されたことを不揮発性の記憶装置に記録する手段に相当する。
【００５４】
そして、親マイコンは、更新対象のマイコンのプログラムを更新する。すなわち、マスタユニット１０から指定されたマイコンのＩＤに対応するプログラムの格納先（不揮発性メモリのアドレス）に、更新プログラムを書き込む（Ｓ３５）。
【００５５】
そして、更新が終了すると、スレーブユニット側の親マイコンは、更新完了を不揮発性メモリに記憶する（Ｓ３９）。Ｓ３９の処理を実行するスレーブユニットの親マイコンが本発明のコンピュータプログラムの更新が完了したことを不揮発性の記憶装置に記録する手段に相当する。
【００５６】
図８に、スレーブユニット側の親マイコンによる復旧処理を例示する。これは、例えば、スレーブユニット側の親マイコンが、スレーブユニットに属するいずれかのマイコンのプログラム更新処理実行中に、電源が遮断してしまった場合に、次に、電源が再投入されたときの処理である。この処理は、電源が投入されると常に、実行される。
【００５７】
この処理では、スレーブユニット側の親マイコンは、不揮発性メモリにおいて、更新が開始され、かつ、更新が終了していない記録が存在するか否かを検索する。そのような記録が検出された場合、スレーブユニット側の親マイコンは、更新未完了と判定する（Ｓ５３）。Ｓ５３の処理を実行するスレーブユニットの親マイコンが本発明の更新が中断したことを判定する手段に相当する。
【００５８】
その場合には、スレーブユニット側の親マイコンは、不揮発性メモリに格納された更新プログラムが正常なものであるか否かを判定する（Ｓ５５）。すなわち、プログラム更新中に、電源が遮断された場合には、完全な状態で、更新プログラムが不揮発性メモリに格
納されていない可能性がある。不揮発性メモリに格納された更新プログラムが正常なものであるか否か（プログラムが破壊されているか否か）は、例えば、センタサーバ３からダウンロードされる更新プログラムにチェックサム値を付与しておけばよい。そして、不揮発性メモリに格納された更新プログラムのチェックサムを算出し、センタサーバ３からダウンロードされたチェックサムと一致するか否かを判定すればよい。Ｓ５５の処理を実行するスレーブユニットの親マイコンが本発明の更新プログラムが破壊されているか否かを判定する手段に相当する。
【００５９】
そして、プログラムが正常でない場合、スレーブユニット側の親マイコンは、破壊されたプログラムが、通信用マイコンのプログラムか否かを判定する（Ｓ５６）。破壊されているのが、通信用マイコンのプログラムでない場合、スレーブユニット側の親マイコンは、マスタユニット１０に、更新対象のマイコンのＩＤを指定し、更新プログラムの再送信を要求する（Ｓ５７）。Ｓ５７の処理を実行するスレーブユニットの親マイコンが本発明の再度の送信を要求する手段に相当する。そして、スレーブユニット側の親マイコンは、更新プログラムを再度受信し（この処理を実行するスレーブユニットの親マイコンが本発明の再度取得する手段に相当）、更新対象のマイコンのプログラムを更新する（Ｓ５８）。
【００６０】
一方、破壊されているのが、通信用マイコンのプログラムである場合、スレーブユニット側の親マイコンは、不揮発性メモリから通信用マイコンのプログラムを読み出し、更新処理を再実行する（Ｓ５９）。Ｓ５９の処理を実行するスレーブユニットの親マイコンが本発明のネットワークへの接続手段の制御を復旧する手段に相当する。そして、通信用マイコンのプログラム更新完了後に、スレーブユニット側の親マイコンは、更新完了を不揮発性メモリに記憶する（Ｓ６０）。
【００６１】
以上述べたように、本実施例に係る車載システムによれば、マスタユニット１０よりも先に、スレーブユニットのプログラムを更新する。マスタユニット１０のプログラムの更新が失敗したような場合には、例えば、着脱可能記憶媒体の入出力装置を通じて、リカバリを行い、再度センタサーバ３から更新プログラムをダウンロードできる。しかし、その場合に、全プログラムのダウンロードが必要となる。すなわち、車載システム全体の更新がやり直しとなる。一方、本実施例のように、スレーブユニット側のプログラムの更新を先に行って、更新に失敗した場合には、更新プログラムがマスタユニット１０の不揮発性メモリに残っているので、少ない負荷で再度スレーブユニットのプログラムの更新を再度実行できる。
【００６２】
しかしながら、スレーブユニットの場合には、通常、マスタユニット１０のように、着脱可能記憶媒体の入出力装置１６Ｆを接続する構成になっていない。したがって、車載ＬＡＮ２を通じたマスタユニット１０と、スレーブユニットとの通信が重要なリカバリ手段となる。そこで、本実施例では、図８に示したように、スレーブユニット側にて、少なくとも車載ＬＡＮ２を通じてマスタユニット１０と通信するための通信用マイコンの更新プログラムまたは更新前の通信プログラムを親マイコンの不揮発性メモリに保存する。これにより、通信プログラムの更新時に、電源遮断等の不慮の事態が発生しても、スレーブユニット側で、少なくとも、マスタユニット１０との通信機能を復旧できる。
【００６３】
また、スレーブユニットに対するプログラムの更新において、親マイコン、子マイコン、あるいは、孫マイコンという階層的なマイコンの構成において、下位に位置するマイコンのプログラムを先に更新した。下位のマイコンほど、プログラムの更新失敗時の影響範囲が小さいので、以上の手順によって、より安全にプログラムの更新を実施できる。例えば、更新プログラム自体に問題があって更新に失敗するような事態が発生しても、早期に、影響の少ない範囲で問題を摘出できる。
【００６４】
また、本実施例では、スレーブユニット側にて、親マイコンがそれぞれのマイコンのプログラムの更新開始と更新完了とを不揮発性メモリに記録する。そして、車載システムの電源が投入されたときに、プログラムの更新が開始され、更新が完了していない記録が残っているか否かを判定する。これによって、更新途中で中断してしまった更新処理を検出できる。さらに、そのような中断が検出されると、次に、親マイコンは、更新プログラムが破壊されているか否かを確認する。そして、通信プログラムが破壊されている場合には、親マイコンが保存したプログラムを基に通信機能を復旧する。また、通信プログラム以外のプログラムが破壊されている場合には、マスタユニットから再度更新プログラムを取得する。このように、本車載システムによれば、更新の中断、プログラムの破壊を検出可能として、プログラムの更新に伴う問題の発生を極力低減できる。
【実施例２】
【００６５】
上記実施例１では、スレーブユニット側で、通信マイコンの更新プログラムを一旦不揮発性メモリに保存した上で、プログラムの更新を実行した。そのような手順によって、少なくとも、マスタユニット１０とスレーブユニットとの間の車載ＬＡＮ２を通じた復旧手段を維持した。そのような構成に代えて、すなわち、通信マイコンの更新プログラムを一旦不揮発性メモリに保存する代わりに、スレーブユニットでのマイコンのプログラム更新手順を工夫することで、スレーブユニットのリカバリができなくなるという問題の発生をある程度低減できる。
【００６６】
図９に、スレーブユニットのプログラム更新処理の他の例を示す。この処理は、通信用マイコンについては、最後にプログラムを更新する点が、図６の場合と相異する。
【００６７】
すなわち、マスタユニット１０は、そのスレーブユニットに含まれるマイコンのうち、通信用マイコン以外のマイコンを図５のマイコン管理テーブルから、階層構造の最下層を優先して検索する（Ｓ９１Ａ）。その後のＳ９３−Ｓ９７の処理は、図６の場合と同様であるので、その説明を省略する。そして、通信用マイコンを除くマイコンに対して、プログラム更新の確認が終了すると、マスタユニット１０は、通信用マイコンがプログラム更新の対象か否かを判定する（Ｓ９８）。そして、通信用マイコンがプログラム更新の対象である場合、マスタユニット１０は、そのスレーブユニットに含まれるマイコン中の通信用マイコンのプログラムの更新を指示する（Ｓ９９）。
【００６８】
このような手順を取ることによって、更新用プログラムに問題があって、更新が失敗する場合でも、通信用マイコンのプログラム更新よりも前に問題が発生する可能性を高くすることができる。例えば、図９では、省略しているが、マイコンのプログラム更新が終了するごとに、それぞれのマイコン単独で、動作チェックを行ってもよい。また、通信用マイコン以外の更新対象のマイコンのプログラム更新が終了したときに、動作チェックを実行してもよい。
【００６９】
そして、問題が発生した段階で、更新処理を停止し、当該スレーブユニットからマスタユニット１０に問題が発生した旨を報知するようにすればよい。このような手順により、通信用マイコンでのプログラム更新失敗の可能性を低減できる。通信用マイコンで障害が発生すると、マスタユニット１０との通信が不可となり、そのスレーブユニットの使用ができなくなる場合が生じる。そのような可能性を極力低減できる。
【００７０】
なお、実施例２では、通信マイコンの更新プログラムを一旦不揮発性メモリに保存する代わりに、スレーブユニットでの通信用マイコンのプログラム更新手順を最後にすることで、問題の発生をある程度低減した。しかし、そのような手順に代えて、通信マイコンの更新プログラムを一旦不揮発性メモリに保存するとともに、さらに、スレーブユニットで
の通信用マイコンのプログラム更新を最後にするようにしてもよい。そのような組み合わせによって、確実にマスタユニット１０とスレーブユニットとの通信を復旧する手段を維持した上で、さらに、通信用マイコンでのプログラムの更新失敗の発生を低減できる。
【実施例３】
【００７１】
（アクセサリ電源遮断後のプログラム更新）
上記実施例１では、車載システムに対して、十分に電力が供給できる状態、すなわち、車両の動力源（例えば、エンジン）が始動中で、アクセサリ電源から、電力が供給される状態でのプログラムの更新処理を説明した。しかし、車両の運転中に、車載システムのプログラムが更新されると、車載システム自体が利用できなくなる。このため、ユーザに対して、車両の動力源が停止後（アクセサリ電源停止後）に、バッテリのような二次電池にて、車載システムを駆動し、プログラム更新する機能が提供される。
【００７２】
図１０に、アクセサリ電源停止後のプログラム更新処理を例示する。この処理は、入力操作部１６Ｅまたは表示操作パネル１７Ｃを通じたユーザの指示をマスタユニット１０が受け付けて実行される。その指示を検出するマスタユニット１０のＣＰＵ１２が、本発明の二次電池モードでの更新実行の指示を受け付ける手段に相当する。
【００７３】
そのような指示を受け付け、マスタユニット１０は、アクセサリ電源遮断後、二次電池にて車載システムが駆動されているときに、以下の処理を実行する。この処理では、マスタユニット１０は、二次電池の充電状態を確認する（Ｓ１）。二次電池の充電状態は、例えば、二次電池の端子電圧から判定できる。
【００７４】
そして、マスタユニット１０は、充電量が十分か否かを判定する（Ｓ３）。充電量が十分か否かの基準値は、プログラム更新処理に必要な時間から決定すればよい。例えば、車載システムのプログラム更新に必要な時間が、事前の試験等によって、Ｔ２分であるとする。一方、二次電池の開放端子電圧Ｖと、車載システムの稼働可能時間Ｔを関係付けてマップ化し、不揮発性メモリに格納しておく。そして、Ｔ２の稼働に必要な充電量に相当する開放端子電圧Ｖ２をマップから求め、基準値とすればよい。そして、開放端子電圧Ｖが基準値Ｖ２を上回っている場合には、充電量が十分であると判定すればよい。Ｓ３の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明の充電状態を検出する手段に相当する。
【００７５】
充電量が不十分な場合、マスタユニット１０は、例えば、車載システムの表示操作パネル１７Ｃに二次電池の充電量が不足している旨のメッセージを表示し（Ｓ２１）、処理を終了する。なお、このようなメッセージの代わりに、発光ダイオード等で、所定の警告を表示するようにしてもよい。Ｓ２１の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明の報知する手段に相当する。一方、充電量が十分な場合、マスタユニット１０は、Ｓ５−Ｓ１３の処理を実行する。この処理は、実施例１，２と同様である。
【００７６】
そして、スレーブユニットおよびマスタユニット１０自身のプログラム更新後に、マスタユニット１０は、それぞれのスレーブユニットが電源を遮断したか否かを確認する（Ｓ１５）。Ｓ１５の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明の更新完了後に電源を遮断したか否かを判定する手段に相当する。
【００７７】
スレーブユニットの電源が遮断されていない場合、例えば、表示操作パネル１７Ｃでの警告メッセージの表示、あるいは、発光ダイオード等による警告の表示を行えばよい。また、ブザー等の音によって、警告を発してもよい。そして、マスタユニット１０は、制御をＳ１５に戻し、再度スレーブユニットが電源を遮断したか否かを確認する。なお、それぞれのスレーブユニットが電源を遮断したか否かを確認する代わりに、それぞれのスレー
ブユニットでプログラムの更新が完了したときに、マスタユニット１０が、その更新が完了したスレーブユニットの電源を強制的に遮断するようにしてもよい。
【００７８】
一方、すべてのスレーブユニットの電源が遮断された場合、マスタユニット１０は、マスタユニット１０自身の電源を遮断する（Ｓ１９）。Ｓ１９の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明のマスタユニット１０の電源を遮断する手段に相当する。
【００７９】
以上述べたように、本実施例によれば、アクセサリ電源遮断後でも、安全にプログラムの更新処理を実行できる。また、プログラム更新終了後、確実に、スレーブユニットおよびマスタユニット１０の電源を遮断し、二次電池の消耗を回避できる。
【００８０】
また、本実施例によれば、マスタユニットは、二次電池の充電状態が十分でない場合には、二次電池の充電量が不足している旨のメッセージを表示し、処理を終了する。したがって、更新処理が途中で中断してしまうような不十分なバッテリ状態でのプログラムの更新処理の起動を抑制できる。
【実施例４】
【００８１】
図１１に、実施例４に係るプログラム更新処理を例示する。この処理は、車載ＬＡＮ２がリングネットワークであった場合の処理である。リングネットワークの場合、ネットワークに接続されるマスタユニット１０、およびスレーブユニットのいずれかが停止すると、もはや、車載システム全体の通信が遮断される。そこで、リングネットワークの場合には、プログラムの更新終了後、時刻を設定して、マスタユニット１０およびスレーブユニットが一斉に電源を遮断する。他の構成および作用は、実施例３と同様である。そこで、同一の処理ステップには、同一の符号を付してその説明を省略する。
【００８２】
すなわち、図１１で、Ｓ１から１３までの処理、およびＳ２１の処理は、図１０と同様である。実施例４では、プログラムの更新終了後（Ｓ１１でＹＥＳの場合）、マスタユニット１０は、各スレーブユニットに、所定時間（例えば、Ｔ１秒）後に、電源を遮断するように指示を送信する（Ｓ１５Ａ）。Ｓ１１の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明の更新が完了したか否かを判定する手段に相当する。また、Ｓ１５の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明のスレーブユニットの電源を遮断する指示をスレーブユニットに送信する手段に相当する。
【００８３】
そして、マスタユニット１０は、所定時間（Ｔ１秒）を計測する（Ｓ１７Ａ）。Ｓ１７の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明の計測する手段に相当する。時間の計測は、例えば、マスタユニット１０の親マイコンのクロックおよびＯＳのクロック機能をＡＰＩ（アプリケーションインターフェース）から呼び出して、実現すればよい。なお、このとき、各スレーブユニットでも、同様の計測がなされている。
【００８４】
そして、所定時間（Ｔ１秒）経過後、マスタユニット１０は、電源を遮断する（Ｓ１９）。同様に、各スレーブユニットも、電源を遮断する。Ｓ１９の処理を実行するマスタユニット１０のＣＰＵ１２が、本発明の所定時間経過後に、マスタユニット１０の電源を遮断する手段に相当する。
【００８５】
以上のような手順によって、リングネットワークの車載ＬＡＮ２であっても、二次電池によるプログラム更新実行後、マスタユニット１０およびスレーブユニットの電源を遮断し、二次電池の消耗を抑制できる。
【００８６】
＜その他＞
以上述べた車載システムの機能は、マスタユニット１０、スレーブユニット等に含まれる各親マイコン、および子マイコンが実行するコンピュータとして実現できる。また、これらのコンピュータプログラムは、着脱可能記憶媒体入出力装置１６Ｆでデータを入出力可能な媒体に記憶し、車載システムにインストールすることもできる。また、車載システムが、チューナ１６Ｂ等を通じて、車外のネットワークから、これらのコンピュータプログラムをダウンロードし、車載システムにインストールすることもできる。
【符号の説明】
【００８７】
１  車載システム
２  車載ＬＡＮ
３  センタサーバ
１０  マスタユニット
１１，２１，３１  親マイコン
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５，１５Ｂ  Ｉ／Ｏインターフェース
１１Ａ，１１Ｂ，１１Ｃ  子マイコン
２０，３０  スレーブユニット
２１Ａ，２１Ｂ，２１Ｃ，３１Ａ，３１Ｂ，３１Ｃ  子マイコン
【図１】
2010195111.tif 000003
【図２】
2010195111.tif 000004
【図３】
2010195111.tif 000005
【図４】
2010195111.tif 000006
【図５】
2010195111.tif 000007
【図６】
2010195111.tif 000008
【図７】
2010195111.tif 000009
【図８】
2010195111.tif 000010
【図９】
2010195111.tif 000011
【図１０】
2010195111.tif 000012
【図１１】
2010195111.tif 000013