(57)【特許請求の範囲】
【請求項１】
１または複数の車載制御装置と車内通信線を介して通信する通信部と、
エンジンの始動を指示する指示信号を取得する取得部と、
前記指示信号の取得時に制御プログラムの更新中の前記車載制御装置が存在するか否かに基づいて、前記エンジンの始動の可否を判定する判定部と、を備える、制御装置。
【請求項２】
前記判定部は、
更新中の前記車載制御装置が存在する場合には、更に、更新中の前記車載制御装置である対象装置の種別に基づいて、前記エンジンの始動の可否を判定する、請求項１に記載の制御装置。
【請求項３】
前記種別は、前記車載制御装置と車載電源との接続関係に基づいて規定される、請求項２に記載の制御装置。
【請求項４】
前記種別には、更新中のエンジン始動を許可する許可装置と、更新中のエンジン始動を許可しない非許可装置とが含まれ、
前記許可装置は、電圧保持回路を介して前記エンジン始動のためのスタータに電力供給する第１電源と接続されている車載制御装置であり、
前記非許可装置は、前記電圧保持回路を介さずに前記第１電源と接続されている車載制御装置である、請求項３に記載の制御装置。
【請求項５】
前記種別には、更新中のエンジン始動を許可する許可装置と、更新中のエンジン始動を許可しない非許可装置とが含まれ、
前記許可装置は、前記エンジン始動のためのスタータに電力供給しない第２電源と接続されている車載制御装置であり、
前記非許可装置は、前記第２電源と接続されずに前記エンジン始動のためのスタータに電力供給する第１電源と接続されている車載制御装置である、請求項３または請求項４に記載の制御装置。
【請求項６】
前記判定部は、前記対象装置が他の車載制御装置を介して前記第１電源と接続されている場合には、当該他の車載制御装置の前記種別を用いて前記エンジンの始動の可否を判定する、請求項２〜請求項５のいずれか１項に記載の制御装置。
【請求項７】
更新中のエンジン始動を許可する許可装置は、下記の装置群に含まれる複数の装置それぞれを制御する車載制御装置のうちの少なくとも１つである、請求項３〜請求項５のいずれか１項に記載の制御装置。
装置群：ブレーキ、パワーステアリング、車内エアコン、メータ、オーディオ、ナビゲーション装置、室内灯
【請求項８】
前記種別は、前記車載制御装置の記憶部のメモリ構成に基づいて規定される、請求項１に記載の制御装置。
【請求項９】
前記種別には、更新中のエンジン始動を許可する許可装置と、更新中のエンジン始動を許可しない非許可装置とが含まれ、
前記許可装置は、前記制御プログラムのバックアップ用のメモリを有する車載制御装置であり、
前記非許可装置は、前記バックアップ用のメモリを有さない車載制御装置である、請求項８に記載の制御装置。
【請求項１０】
前記対象装置の種別が下記のいずれであるかを規定する参照テーブルを記憶する記憶部を、さらに備え、
前記判定部は、前記参照テーブルに基づいて前記対象装置の種別を判定する、請求項２〜請求項９のいずれか１項に記載の制御装置。
許可装置：制御プログラムの更新中のエンジン始動を許可する車載制御装置
非許可装置：制御プログラムの更新中のエンジン始動を許可しない車載制御装置
【請求項１１】
前記判定部は、下記の条件１を満たす場合には前記エンジンの始動を不可と判定し、下記の条件２または条件３を満たす場合には前記エンジンの始動を可と判定する、請求項１０に記載の制御装置。
条件１：前記指示信号の検出時に前記制御プログラムの更新中であり、かつ、前記対象装置が前記非許可装置であること
条件２：前記エンジンの始動を指示する前記指示信号の検出時に前記制御プログラムの更新中である車載制御装置がないこと
条件３：前記エンジンの始動を指示する前記指示信号の検出時に前記制御プログラムの更新中であり、かつ、前記対象装置が前記許可装置であること
【請求項１２】
前記通信部を制御する制御部をさらに備え、
前記制御部は、前記判定部によって前記エンジンの始動が可と判定された場合に、前記通信部に、前記エンジンを制御する車載制御装置に前記エンジンの始動の指示を送信させる、請求項１〜請求項１１のいずれか１項に記載の制御装置。
【請求項１３】
前記制御部は、前記判定部によって前記エンジンの始動が不可と判定された場合に、前記通信部に、ユーザインタフェース装置を制御する車載制御装置に前記エンジンの始動が不可であることをユーザに報知する指示を送信させる、請求項１２に記載の制御装置。
【請求項１４】
１または複数の車載制御装置と車内通信線を介して通信する制御装置による、前記車載制御装置の制御方法であって、
エンジンの始動を指示する指示信号を取得するステップと、
前記指示信号の取得時に制御プログラムの更新中の前記車載制御装置が存在するか否かに基づいて、前記エンジンの始動の可否を判定するステップと、を備える、制御方法。
【請求項１５】
１または複数の車載制御装置と車内通信線を介して通信する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
エンジンの始動を指示する指示信号を取得する取得部、および
前記指示信号の取得時に制御プログラムの更新中の前記車載制御装置が存在するか否かに基づいて、前記エンジンの始動の可否を判定する判定部、として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は制御装置、制御方法、およびコンピュータプログラムに関する。
本出願は、２０１７年８月１０日出願の日本出願第２０１７−１５５３６１号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ＥＣＵ（Electronic  Control  Unit）が多数搭載されている。
ＥＣＵの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、ＥＰＳ（Electric  Power  Steering）等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯／消灯と警報器の吹鳴等の制御を行うボディ系ＥＣＵ、運転席近傍に配設されるメータ類の動作を制御するメータ系ＥＣＵなどがある。【０００３】
一般的にＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read  Only  Memory）に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
ＥＣＵの制御プログラムは、車両の仕向け地やグレードなど応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。また、たとえば地図情報や制御用のパラメータなど、制御プログラムの実行に必要なデータも書き換える必要がある。【０００４】
たとえば、特許文献１には、ネットワークを介して更新用のプログラムをダウンロードし、プログラムの更新を行う技術（オンライン更新機能）が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３７９３８号公報
【発明の概要】
【０００６】
ある実施の形態に従うと、制御装置は、１または複数の車載制御装置と車内通信線を介して通信する通信部と、車載制御装置が下記の許可装置であるか非許可装置であるかを規定する参照テーブルを記憶する記憶部と、エンジンの始動を指示するユーザ操作の有無を監視する監視部と、ユーザ操作の検出時における車載制御装置での制御プログラムの更新状況と、参照テーブルとに基づいて、ユーザ操作に従ったエンジンの始動の可否を判定する判定部と、を備える。
許可装置：制御プログラムの更新中のエンジン始動を許可する車載制御装置
非許可装置：制御プログラムの更新中のエンジン始動を許可しない車載制御装置
【０００７】
他の実施の形態に従うと、制御方法は１または複数の車載制御装置と車内通信線を介して通信する制御装置による、車載制御装置の制御方法であって、制御装置は、車載制御装置が下記の許可装置であるか非許可装置であるかを規定する参照テーブルを記憶し、エンジンの始動を指示するユーザ操作の有無を監視するステップと、ユーザ操作の検出時における車載制御装置での制御プログラムの更新状況と、参照テーブルとに基づいて、ユーザ操作に従ったエンジンの始動の可否を判定するステップと、を備える。
許可装置：制御プログラムの更新中のエンジン始動を許可する車載制御装置
非許可装置：制御プログラムの更新中のエンジン始動を許可しない車載制御装置
【０００８】
他の実施の形態に従うと、コンピュータプログラムは１または複数の車載制御装置と車内通信線を介して通信する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータは、車載制御装置が下記の許可装置であるか非許可装置であるかを規定する参照テーブルを記憶し、コンピュータを、エンジンの始動を指示するユーザ操作の有無を監視する監視部、および、ユーザ操作の検出時における車載制御装置での制御プログラムの更新状況と、参照テーブルとに基づいて、ユーザ操作に従ったエンジンの始動の可否を判定する判定部、として機能させる。
許可装置：制御プログラムの更新中のエンジン始動を許可する車載制御装置
非許可装置：制御プログラムの更新中のエンジン始動を許可しない車載制御装置
【図面の簡単な説明】
【０００９】
【図１】図１は、プログラム更新システムの全体構成図である。
【図２】図２は、ゲートウェイの内部構成を示すブロック図である。
【図３】図３は、ＥＣＵの内部構成を示すブロック図である。
【図４】図４は、管理サーバの内部構成を示すブロック図である。
【図５】図５は、プログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。
【図６Ａ】図６Ａは、ユーザインタフェース装置に表示される報知画面の一例を表した図である。
【図６Ｂ】図６Ｂは、ユーザインタフェース装置に表示される報知画面の他の例を表した図である。
【図７】図７は、第１の実施の形態にかかるプログラム更新システムにおける更新制御処理の具体的な内容を表したフローチャートである。
【図８】図８は、車両の電源構成の他の例を表した概略図である。
【発明を実施するための形態】
【００１０】
＜本開示が解決しようとする課題＞
エンジン始動時には、スタータを作動させるためにバッテリからスタータに大電流が供給される。そのため、バッテリの電圧が一時的に低下する。ＥＣＵで制御プログラムの更新中にスタータが作動してバッテリの電圧が低下すると、当該バッテリからＥＣＵに供給される電力が更新処理に必要な電力に達しなくなる場合がある。その場合、更新が中断したり、更新が成功しなかったりする、という、更新が失敗する問題が発生する。
【００１１】
特に、特許文献１に開示されているようにオンライン更新が自動的に実行される場合には、ユーザは、オンライン更新中であることに気づかずにエンジンの始動操作をしてしまい、それによってオンライン更新に失敗してしまう場合もある。
【００１２】
制御プログラムの更新に失敗したＥＣＵがエンジンの始動に関連する機構を制御するＥＣＵである場合、上記始動操作がなされた場合であってもエンジンの始動に失敗するおそれがある。
【００１３】
本開示のある局面における目的は、エンジン始動に伴う電圧低下によるオンライン更新の失敗によってエンジンが始動されないことを回避できる制御装置、制御方法、およびコンピュータプログラムを提供することである。
【００１４】
＜本開示の効果＞
この開示によると、エンジン始動に伴う電圧低下によるオンライン更新の失敗によってエンジンが始動されないことを回避できる。
【００１５】
［実施の形態の説明］
本実施の形態には、少なくとも以下のものが含まれる。すなわち、
（１）１または複数の車載制御装置と車内通信線を介して通信する通信部と、車載制御装置が下記の許可装置であるか非許可装置であるかを規定する参照テーブルを記憶する記憶部と、エンジンの始動を指示するユーザ操作の有無を監視する監視部と、ユーザ操作の検出時における車載制御装置での制御プログラムの更新状況と、参照テーブルとに基づいて、ユーザ操作に従ったエンジンの始動の可否を判定する判定部と、を備える、制御装置。
許可装置：制御プログラムの更新中のエンジン始動を許可する車載制御装置
非許可装置：制御プログラムの更新中のエンジン始動を許可しない車載制御装置
参照テーブルにおいて許可装置／非許可装置が適切に設定されていることによって、エンジンの始動に伴う電圧低下の影響によって制御プログラムの更新が失敗することを回避できる。その結果、エンジン始動に伴う電圧低下によるオンライン更新の失敗によってエンジンが始動されないことを回避できる。
【００１６】
（２）好ましくは、判定部は、下記の条件１を満たす場合にはエンジンの始動を不可と判定し、下記の条件２または条件３を満たす場合にはエンジンの始動を可と判定する。
条件１：始動を指示するユーザ操作の検出時に制御プログラムの更新中であり、かつ、非許可装置である車載制御装置があること
条件２：始動を指示するユーザ操作の検出時に制御プログラムの更新中である車載制御装置がないこと
条件３：始動を指示するユーザ操作の検出時に制御プログラムの更新中であり、かつ、許可装置である車載制御装置があること
予め設定した条件を用いて判定することによって、高精度でエンジン始動の可否を判定することができる。そのため、高精度でエンジンの始動に伴う電圧低下の影響によって制御プログラムの更新が失敗することを回避できるとともに、更新に影響ない場合には始動を指示するユーザ操作に従ってエンジンを始動することができる。
【００１７】
（３）好ましくは、許可装置は電圧保持回路を介してエンジン始動のためのスタータに電力供給する第１電源と接続されている車載制御装置であり、非許可装置は電圧保持回路を介さずに第１電源と接続されている車載制御装置である。
上記第１電源はスタータ始動の際に電圧が低下するため、当該電圧から電力供給される車載制御装置で制御プログラムを更新中である場合には更新に必要な電力が供給されずに更新が失敗するおそれがある。そのため、第１電源に接続されている車載制御装置を非許可装置と規定しておくことで、更新の失敗を回避することができる。
【００１８】
（４）好ましくは、許可装置はエンジン始動のためのスタータに電力供給しない第２電源と接続されている車載制御装置であり、非許可装置は第２電源と接続されずにエンジン始動のためのスタータに電力供給する第１電源と接続されている車載制御装置である。
上記第２電源に接続されている車載制御装置は、第２電源からの電力供給を受けることによって第１電源における電圧低下の影響を回避することができる。そのため、このような車載制御装置を許可装置とすることによって、制御プログラムの更新を継続しつつ、ユーザ操作に従ってエンジンを始動することができる。
【００１９】
（５）好ましくは、判定部は、車載制御装置が参照テーブルにおいて許可装置と規定された車載制御装置を介して第１電源と接続されている場合には車載制御装置を許可装置としてエンジンの始動の可否を判定する。
他の車載制御装置を介して第１電源と接続され、第１電源から電力供給を受けている場合、第１電源の電圧低下の影響を受ける。そのため、このような車載制御装置で制御プログラムを更新中である場合には、第１電源の電圧低下によって更新が失敗するおそれがある。そのため、この車載制御装置を非許可装置と規定しておくことで、更新の失敗を回避できる。
【００２０】
（６）好ましくは、許可装置は、下記の装置群に含まれる複数の装置それぞれを制御する車載制御装置のうちの少なくとも１つである。
装置群：ブレーキ、パワーステアリング、車内エアコン、メータ、オーディオ、ナビゲーション装置、室内灯
上記装置群は、一般的に、第１電源に対して当該電源の電圧低下の影響を受けない接続関係であることが多い。そのため、これら装置群それぞれを制御する車載制御装置のうちの少なくとも１つが許可装置と規定されることによって、制御プログラムの更新を継続しつつ、ユーザ操作に従ってエンジンを始動することができる。
【００２１】
（７）好ましくは、許可装置は制御プログラムのバックアップ用のメモリを有する車載制御装置であり、非許可装置はバックアップ用のメモリを有さない車載制御装置である。
バックアップ用のメモリを有する車載制御装置を許可装置とすることによって、エンジンの始動に伴う電圧低下によって制御プログラムの更新の中断した場合であっても、エンジン始動が失敗することなく、ユーザ操作に従ってエンジンを始動することができる。
【００２２】
（８）好ましくは、制御装置は通信部を制御する制御部をさらに備え、制御部は、判定部によってエンジンの始動が可と判定された場合に、通信部に、エンジンを制御する車載制御装置にエンジンの始動の指示を送信させる。
これにより、エンジンの始動が可と判定された場合にエンジンが始動し、不可と判定された場合にエンジンが始動しない。そのため、エンジンの始動による制御プログラムの更新の失敗や、エンジン始動の失敗を回避することができる。
【００２３】
（９）好ましくは、制御部は、判定部によってエンジンの始動が不可と判定された場合に、通信部に、ユーザインタフェース装置を制御する車載制御装置にエンジンの始動が不可であることをユーザに報知する指示を送信させる。
これにより、エンジン始動を指示する操作を行ったユーザは、当該操作に従ってエンジンが始動されないことを知ることができる。
【００２４】
（１０）本実施の形態に含まれる制御方法は、（１）〜（９）のいずれか１つに記載の制御装置において車載制御装置を制御する方法である。
かかる制御方法は、上記（１）〜（９）の制御装置と同様の効果を奏する。
【００２５】
（１１）本実施の形態に含まれるコンピュータプログラムは、コンピュータを、（１）〜（９）のいずれか１つに記載の制御装置として機能させる。
かかるコンピュータプログラムは、上記（１）〜（９）の制御装置と同様の効果を奏する。
【００２６】
［実施の形態の詳細］
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２７】
＜第１の実施の形態＞
〔システムの全体構成〕
図１は、本発明の実施形態にかかるプログラム更新システムの全体構成図である。
図１に示すように、本実施形態のプログラム更新システムは、広域通信網２を介して通信可能な車両１、管理サーバ５およびＤＬ（ダウンロード）サーバ６を含む。
管理サーバ５は、車両１の更新情報を管理する。ＤＬサーバ６は、更新用プログラムを保存する。管理サーバ５およびＤＬサーバ６は、たとえば、車両１のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両１と通信可能である。
【００２８】
車両１には、車内通信線１６で接続された複数のＥＣＵ３０とゲートウェイ１０とを含む車内ネットワーク（通信ネットワーク）４と、無線通信部１５と、各ＥＣＵ３０によりそれぞれ制御される各種の車載機器（図示せず）と、が搭載されている。車載機器は、ディスプレイ、スピーカ等のユーザインタフェース装置７およびスタータ（以下、ＳＴと略する）４３を含む。
【００２９】
車内ネットワーク４は複数の車内通信線を有し、車内通信線それぞれにバス接続された複数のＥＣＵ３０による複数の通信グループを含む。ゲートウェイ１０は、通信グループ間の通信を中継している。このため、ゲートウェイ１０には複数の車内通信線が接続されている。
【００３０】
複数のＥＣＵ３０は、図１に示されたＥＣＵ３０Ａ〜３０Ｄを含む。ＥＣＵ３０Ｄは、ユーザインタフェース装置７を制御する。ＥＣＵ３０Ｃは、ＳＴ４３を制御する。ＥＣＵ３０Ｃは、エンジン始動のためのユーザ操作（以下、始動操作とも称する）が行われるとＳＴ４３を駆動し、図示しないエンジンのクランク軸を回転駆動してエンジンを始動させる。始動操作は、たとえば、エンジン始動を指示する図示しないボタンの押下操作や、リモコンキーからのエンジン始動を指示する無線信号の入力や、エンジンキーをまわす操作、などである。
【００３１】
また、車両１は、電源系としてバッテリ（以下、ＢＡＴと略する）４２を有する。ＢＡＴ４２は、太線で示された電源線１７を介して接続されたＳＴ４３、１つ以上のＥＣＵ３０Ａ−１，３０Ａ−２，…（これらを代表してＥＣＵ３０Ａとも称する）、および、さらに電圧保持回路４１を介して接続された１つ以上のＥＣＵ３０Ｂ−１，３０Ｂ−２，…（これらを代表してＥＣＵ３０Ｂとも称する）に電力を供給する。
【００３２】
電圧保持回路４１を介してＢＡＴ４２に接続されているＥＣＵ３０Ｂは、たとえば、ブレーキ、パワーステアリング、車内エアコン、各種メータ、オーディオ、ナビゲーション装置、室内灯を制御するＥＣＵである。電圧保持回路４１を介さずにＢＡＴ４２に接続されているＥＣＵ３０Ａは上記以外のＥＣＵであって、たとえば、パワーウィンドウ、ドアミラーを制御するＥＣＵである。
【００３３】
電圧保持回路４１は特定の回路構成に限定されない。一例として、電圧保持回路４１は、並列に接続された、図示しない抵抗およびダイオードと、当該並列接続に対して直列に接続されたコンデンサとを有する。電圧保持回路４１は、エンジン始動時などに過渡的に電圧降下したＢＡＴ４２の出力電圧を保持する。
【００３４】
無線通信部１５は、携帯電話網などの広域通信網２に通信可能に接続され、車内通信線によりゲートウェイ１０に接続されている。ゲートウェイ１０は、広域通信網２を通じて管理サーバ５およびＤＬサーバ６などの車外装置から無線通信部１５が受信した情報を、車内通信線１６を介してＥＣＵ３０に送信する。
ゲートウェイ１０は、ＥＣＵ３０から取得した情報を無線通信部１５に送信し、無線通信部１５は、その情報を管理サーバ５などの車外装置に送信する。
また、ＥＣＵ３０同士は、車内通信線を介して情報を送受信する。
【００３５】
車両１に搭載される無線通信部１５としては、車載の専用通信端末の他に、たとえば、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートＰＣ（Personal  Computer）等の装置が考えられる。
図１では、ゲートウェイ１０が無線通信部１５を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ１０が無線通信の機能を有する場合には、ゲートウェイ１０自身が管理サーバ５などの車外装置と無線通信を行う構成としてもよい。
【００３６】
また、図１のプログラム更新システムでは、管理サーバ５とＤＬサーバ６とが別個のサーバで構成されているが、これらのサーバ５，６を１つのサーバ装置で構成してもよい。また、管理サーバ５およびＤＬサーバ６は、いずれも、複数の装置からなるものであってもよい。
【００３７】
〔ゲートウェイの内部構成〕
図２は、ゲートウェイ１０の内部構成を示すブロック図である。
図２に示すように、ゲートウェイ１０は、ＣＰＵ１１、ＲＡＭ（Random  Access  Memory）１２、記憶部１３、および車内通信部１４などを備える。ゲートウェイ１０は、無線通信部１５と車内通信線を介して接続されているが、これらは一つの装置で構成してもよい。
【００３８】
ＣＰＵ１１は、記憶部１３に記憶された一または複数のプログラムをＲＡＭ１２に読み出して実行することにより、ゲートウェイ１０を各種情報の中継装置として機能させる。
ＣＰＵ１１は、たとえば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。なお、ＣＰＵ１１は複数のＣＰＵ群を代表するものであってもよい。この場合、ＣＰＵ１１の実現する機能は、複数のＣＰＵ群が協働して実現するものである。ＲＡＭ１２は、ＳＲＡＭ（Static  ＲＡＭ）またはＤＲＡＭ（Dynamic  ＲＡＭ）等のメモリ素子で構成され、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００３９】
ＣＰＵ１１が実現するコンピュータプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの周知の記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からの情報伝送によって譲渡することもできる。
この点は、後述のＥＣＵ３０のＣＰＵ３１（図３参照）が実行するコンピュータプログラム、および、後述の管理サーバ５のＣＰＵ５１（図４参照）が実行するコンピュータプログラムについても同様である。
なお、以降の説明において、上位装置が下位装置にデータを転送（送信）することを「ダウンロードする」ともいう。
【００４０】
記憶部１３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子などにより構成されている。記憶部１３は、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等を記憶するとともに、ＤＬサーバ６から受信した、ダウンロード対象の各ＥＣＵ３０の更新用プログラムなどを記憶する。
【００４１】
車内通信部１４には、車両１に配設された車内通信線を介して複数のＥＣＵ３０が接続されている。車内通信部１４は、たとえばＣＡＮ（Controller  Area  Network）の規格に応じて、ＥＣＵ３０との通信（ＣＡＮ通信とも称する）を行う。車内通信部１４の採用する通信規格はＣＡＮに限定されず、ＣＡＮＦＤ（ＣＡＮ  with  Flexible  Data  Rate）、ＬＩＮ（Local  Interconnect  Network）、Ｅｔｈｅｒｎｅｔ（登録商標）、またはＭＯＳＴ（Media  Oriented  Systems  Transport：ＭＯＳＴは登録商標）等の規格であってもよい。複数の車内通信線の中には、通信規格の異なるものが含まれていてもよい。
車内通信部１４は、ＣＰＵ１１から与えられた情報を対象のＥＣＵ３０へ送信するとともに、ＥＣＵ３０から受信した情報をＣＰＵ１１に与える。車内通信部１４は、上記の通信規格だけでなく、車内ネットワーク４に用いる他の通信規格によって通信してもよい。
【００４２】
無線通信部１５は、アンテナと、アンテナからの無線信号の送受信を実行する通信回路とを含む無線通信機よりなる。無線通信部１５は、携帯電話網等の広域通信網２に接続されることにより車外装置との通信が可能である。
無線通信部１５は、図示しない基地局により形成される広域通信網２を介して、ＣＰＵ１１から与えられた情報を管理サーバ５等の車外装置に送信するとともに、車外装置から受信した情報をＣＰＵ１１に与える。
【００４３】
図２に示す無線通信部１５に代えて、車両１内の中継装置として機能する有線通信部を採用してもよい。この有線通信部は、ＵＳＢ（Universal  Serial  Bus）またはＲＳ２３２Ｃ等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
別の通信装置と管理サーバ５等の車外装置とが広域通信網２を通じた無線通信が可能である場合には、車外装置→別の通信装置→有線通信部→ゲートウェイ１０の通信経路により、車外装置とゲートウェイ１０とが通信可能になる。
【００４４】
〔ＥＣＵの内部構成〕
図３は、ＥＣＵ３０の内部構成を示すブロック図である。
図３に示すように、ＥＣＵ３０は、ＣＰＵ３１、ＲＡＭ３２、記憶部３３、および通信部３４などを備える。ＥＣＵ３０は、車両１に搭載された対象機器を個別に制御する車載制御装置である。ＥＣＵ３０の種類には、たとえば、電源制御ＥＣＵ、エンジン制御ＥＣＵ、ステアリング制御ＥＣＵ、およびドアロック制御ＥＣＵなどがある。
【００４５】
ＣＰＵ３１は、記憶部３３に予め記憶された一または複数のプログラムをＲＡＭ３２に読み出して実行することにより、自身が担当する対象機器の動作を制御する。ＣＰＵ３１もまた複数のＣＰＵ群を代表するものであってもよく、ＣＰＵ３１による制御は、複数のＣＰＵ群が協働することによる制御であってもよい。
ＲＡＭ３２は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ３１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４６】
記憶部３３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
記憶部３３は、ＣＰＵ３１が読み出して実行するプログラムを格納する。記憶部３３が記憶する情報には、たとえば、車内の制御対象である対象機器を制御するための情報処理をＣＰＵ３１に実行させるためのコンピュータプログラムや、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータである制御プログラムが含まれる。
【００４７】
通信部３４には、車両１に配設された車内通信線を介してゲートウェイ１０が接続されている。通信部３４は、たとえばＣＡＮ、Ｅｔｈｅｒｎｅｔ、またはＭＯＳＴ等の規格に応じて、ゲートウェイ１０との通信を行う。
通信部３４は、ＣＰＵ３１から与えられた情報をゲートウェイ１０へ送信するとともに、ゲートウェイ１０から受信した情報をＣＰＵ３１に与える。通信部３４は、上記の通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【００４８】
ＥＣＵ３０のＣＰＵ３１には、当該ＣＰＵ３１による制御モードを、「通常モード」または「リプログラミングモード」のいずれかに切り替える起動部３５が含まれる。
ここで、通常モードとは、ＥＣＵ３０のＣＰＵ３１が、対象機器に対する本来的な制御（たとえば、燃料エンジンに対するエンジン制御や、ドアロックモータに対するドアロック制御など）を実行する制御モードのことである。
【００４９】
リプログラミングモードとは、対象機器の制御に用いる制御プログラムを更新する制御モードである。
すなわち、リプログラミングモードは、ＣＰＵ３１が、記憶部３３のＲＯＭ領域に対して、制御プログラムのデータの消去や書き換えを行う制御モードのことである。ＣＰＵ３１は、この制御モードのときにのみ、記憶部３３のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００５０】
リプログラミングモードにおいてＣＰＵ３１が新バージョンの制御プログラムを記憶部３３に書き込むと、起動部３５は、ＥＣＵ３０をいったん再起動（リセット）させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部３５は、上記のベリファイ処理の完了後に、ＣＰＵ３１を更新後の制御プログラムによって動作させる。
ＤＬサーバ６からゲートウェイ１０を介してＥＣＵ３０に更新用プログラムがダウンロードされ、当該更新用プログラムを用いて制御プログラムを更新することを、オンライン更新とも称する。
【００５１】
〔管理サーバの内部構成〕
図４は、管理サーバ５の内部構成を示すブロック図である。
図４に示すように、管理サーバ５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、記憶部５４、および通信部５５などを備える。
【００５２】
ＣＰＵ５１は、ＲＯＭ５２に予め記憶された一または複数のプログラムをＲＡＭ５３に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ５をゲートウェイ１０と通信可能な車外装置として機能させる。ＣＰＵ５１もまた複数のＣＰＵ群を代表するものであってもよく、ＣＰＵ５１の実現する機能は、複数のＣＰＵ群が協働して実現するものであってもよい。
ＲＡＭ５３は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ５１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００５３】
記憶部５４は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、または、ハードディスクなどの磁気記憶装置等により構成されている。
通信部５５は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網２に接続されて当該通信処理を実行する。通信部５５は、ＣＰＵ５１から与えられた情報を、広域通信網２を介して外部装置に送信するとともに、広域通信網２を介して受信した情報をＣＰＵ５１に与える。
【００５４】
〔制御プログラムの更新シーケンス〕
図５は、本実施形態のプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。ＤＬサーバ６に１または複数の更新用プログラムが格納され、一例として、管理サーバ５が、予め登録された車両１について、当該車両１のＥＣＵの制御プログラムを更新するタイミングを決定する。更新のタイミングは、たとえば、車両１のカーメーカーなどによって設定されてもよい。
【００５５】
なお、制御プログラムは、プログラムそのもののみならず、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータも含む。それらを代表させて「制御プログラム」と表現している。そのため、更新用プログラムは、プログラムの更新用のプログラムのみならず、当該プログラムを実行する際に用いるデータの更新用のデータを含む。
【００５６】
制御プログラムを更新するタイミングに達すると、管理サーバ５は、該当する車両１のゲートウェイ１０宛てに、更新を通知する（ステップＳ１）。ステップ１では、管理サーバ５からゲートウェイ１０に、ダウンロード要求とともに更新用プログラムの保存先ＵＲＬや更新用プログラムのサイズなどの更新用の情報が送られる。
【００５７】
管理サーバ５から更新の通知を受信したゲートウェイ１０は、ＤＬサーバ６からダウンロードされる更新用プログラムを、制御プログラムを更新するＥＣＵ（以下、対象ＥＣＵ）３０に中継する。すなわち、ゲートウェイ１０は、更新用の情報に基づいてＤＬサーバ６に対して更新用プログラムのダウンロードを要求する（ステップＳ２）。
【００５８】
ゲートウェイ１０からダウンロードが要求されたＤＬサーバ６は、ダウンロード対象の更新用プログラムをゲートウェイ１０に送信するとともに、制御プログラムの更新を要求する（ステップＳ３）。
【００５９】
ゲートウェイ１０は、更新用プログラムをダウンロードすると、当該更新用プログラムを対象ＥＣＵ３０に転送し、制御プログラムの更新を要求する（ステップＳ４）。ゲートウェイ１０は、ユーザから更新の許可を受けることによって更新用プログラムを転送してもよい。
また、ゲートウェイ１０は、当該車両１のエンジン始動を制御する始動制御処理を実行する（ステップＳ６）。始動制御処理については後述する。なお、図５では、ステップＳ４でゲートウェイ１０が対象ＥＣＵ３０に更新を要求した後に始動制御処理を開始する例が示されているが、始動制御処理は更新を要求するタイミングに関わらずに、常に実行されていてもよい。言い換えると、始動制御処理は、図５のオンライン更新の流れと並行して実行されていてもよい。
【００６０】
更新用プログラムを受信した対象ＥＣＵ３０は、ゲートウェイ１０からの要求に従って更新用プログラムを展開し、制御プログラムを更新する（ステップＳ５）。制御プログラムの更新が完了すると、対象ＥＣＵ３０はゲートウェイ１０に更新完了を通知する（ステップＳ７）。この通知を受けたゲートウェイ１０は、ＤＬサーバ６に更新完了を通知する（ステップＳ８）。
【００６１】
〔ゲートウェイの機能構成〕
図５のステップＳ６の始動制御処理は、この順で実行される、下の３つの処理ＳＴＥＰ１〜３を含む。
ＳＴＥＰ１：始動操作の有無を監視する監視処理
ＳＴＥＰ２：始動操作に応じたＳＴ４３の始動の可否を判定する判定処理
ＳＴＥＰ３：判定処理における判定結果に従ってＳＴ４３を始動させる始動制御処理
【００６２】
図２を参照して、ゲートウェイ１０のＣＰＵ１１は、始動制御処理を実行するための機能として、監視処理を実行する監視部１１１と、判定処理を実行する判定部１１２と、始動制御処理を実行する制御部１１３と、を含む。これら機能は、ＣＰＵ１１が記憶部１３に記憶されている１つまたは複数のプログラムを読み出して実行することによって、ＣＰＵ１１において実現される機能である。しかしながら、当該機能の少なくとも一部が、電子回路などのハードウェアによって実現されてもよい。
【００６３】
監視部１１１で表されたＣＰＵ１１の機能（以下、監視部１１１）は、ＳＴ４３を制御するＥＣＵ３０Ｃから受信するフレームを監視することによって、始動操作が行われたか否かを監視する。
【００６４】
判定部１１２で表されたＣＰＵ１１の機能（以下、判定部１１２）は、監視部１１１によって始動操作が検出されると、当該始動操作に従ったＳＴ４３の始動、つまりエンジン始動の可否を判定する。判定部１１２は、制御プログラムを更新中の対象ＥＣＵが特定のＥＣＵである場合には、エンジン始動を許可しない。このため、ゲートウェイ１０の記憶部１３には、エンジン始動を許可する、または許可しないＥＣＵを特定可能な参照テーブルＴＡが予め記憶されている。判定部１１２は、監視部１１１によって始動操作が行われたことが検出されると、始動操作の検出時における対象ＥＣＵでの更新状況と、参照テーブルＴＡとに基づいて、始動操作に従ったエンジンの始動の可否を判定する。すなわち、対象ＥＣＵが参照テーブルＴＡにおいて更新中にエンジン始動が許可されているＥＣＵであるか否か、または更新中にエンジン始動が許可されていないＥＣＵであるか否かを判定することによって、始動操作に従ったエンジン始動の可否を判定する。
【００６５】
図２に示された参照テーブルＴＡは、一例としてＥＣＵごとに、当該ＥＣＵにおいて更新中にエンジン始動を許可するか否かを規定する。参照テーブルＴＡは、他の例として、エンジン始動を許可するＥＣＵのみを規定するテーブルでもよい。この場合、判定部１１２は、当該テーブルに規定されていないＥＣＵはエンジン始動が不可と判定する。または、参照テーブルＴＡは、エンジン始動を許可しないＥＣＵのみを規定するテーブルでもよい。この場合、判定部１１２は、当該テーブルに規定されていないＥＣＵはエンジン始動が可と判定する。
【００６６】
具体的に、判定部１１２は、下記の条件１を満たす場合にはエンジンの始動を不可と判定し、下記の条件２または条件３を満たす場合にはエンジンの始動を可と判定する。
条件１：始動操作検出時に更新中のＥＣＵがあり、かつ、対象ＥＣＵが非許可ＥＣＵであること
条件２：始動操作検出時に更新中のＥＣＵがないこと
条件３：始動操作検出時に更新中のＥＣＵがあり、かつ、対象ＥＣＵが許可ＥＣＵであること
このように参照テーブルＴＡを用いることによって、容易に、かつ、高精度でエンジン始動の可否を判定することができる。
【００６７】
好ましくは、参照テーブルＴＡは、ＥＣＵが許可ＥＣＵであること、または非許可ＥＣＵであることを、下の（Ａ）または（Ｂ）により規定する。または、下の（Ａ）と（Ｂ）との組合せにより規定してもよい。
（Ａ）電源に対する接続関係
（Ｂ）記憶部３３の構成
【００６８】
参照テーブルＴＡが（Ａ）により許可／非許可ＥＣＵを規定する場合、許可ＥＣＵおよび非許可ＥＣＵはそれぞれ以下のＥＣＵである。
許可ＥＣＵ：電圧保持回路４１を介してＢＡＴ４２に接続されたＥＣＵ
非許可ＥＣＵ：電圧保持回路４１を介さずにＢＡＴ４２に接続されたＥＣＵ
図１の例ではＥＣＵ３０Ｂが許可ＥＣＵであり、ＥＣＵ３０Ａが非許可ＥＣＵである。
【００６９】
ＢＡＴ４２に電圧保持回路４１を介さずに接続されたＥＣＵ３０Ａは、エンジン始動に伴うＢＡＴ４２の電圧低下によって更新に必要な電力が供給されなくなるおそれがある。そのため、ＥＣＵ３０Ａにおいて更新中であると、更新が失敗する場合がある。そのため、エンジン始動を許可しないことによって、更新の失敗を回避できる。
【００７０】
これに対して、ＢＡＴ４２に電圧保持回路４１を介して接続されたＥＣＵ３０Ｂは、エンジン始動に伴うＢＡＴ４２の電圧が低下した場合であっても供給電力は保持される。そのため、ＥＣＵ３０Ｂにおいて更新中であっても、電力低下の影響を受けない。このため、エンジン始動が許可されることによって、ユーザ操作に従ってエンジンを始動しつつ更新も継続することができる。
【００７１】
参照テーブルＴＡが（Ｂ）により許可／非許可ＥＣＵを規定する場合、許可ＥＣＵおよび非許可ＥＣＵはそれぞれ以下のＥＣＵである。
許可ＥＣＵ：記憶部３３に第１メモリ３３１と第２メモリ３３２との両方が含まれるＥＣＵ
非許可ＥＣＵ：記憶部３３に第１メモリ３３１が含まれ第２メモリ３３２が含まれないＥＣＵ
【００７２】
なお、上記第１メモリ３３１および第２メモリ３３２は図３に示されており、それぞれ、次の機能を有する記憶領域である。
第１メモリ：ＣＰＵ３１が読み出して実行するプログラムを格納するための機能用メモリ
第２メモリ：プログラムのバックアップに用いられる待機用メモリ
【００７３】
記憶部３３に第１メモリ３３１が含まれ第２メモリ３３２が含まれないＥＣＵ３０は、更新中にエンジン始動に伴うＢＡＴ４２の電圧低下によって更新が失敗した場合、該ＥＣＵの制御プログラムを更新前の制御プログラムに戻さないとエンジンの始動が失敗するおそれがある。そのため、当該ＥＣＵについてエンジン始動を許可しないことによって、エンジンの始動の失敗を回避できる。
【００７４】
これに対して、記憶部３３に第１メモリ３３１と第２メモリ３３２との両方が含まれるＥＣＵ３０では、一方のメモリに更新前の制御プログラムが保持して、他方のメモリにおいて制御プログラムの更新が行われる。そのため、更新中にエンジン始動に伴うＢＡＴ４２の電圧低下によって更新が失敗した場合であっても、保持されている更新前の制御プログラムを用いることができる。これより、始動操作に従ったエンジン始動の失敗を回避できる。
【００７５】
制御部１１３で表されたＣＰＵ１１の機能（以下、制御部１１３）は、判定部１１２での判定結果がエンジン始動可である場合、ＳＴ４３を制御するＥＣＵ３０（図１中のＥＣＵ３０Ｃ）に対して、ＳＴ４３の始動を指示する。このため、制御部１１３は、ＥＣＵ３０Ｃとの間のＣＡＮ通信で送信される情報であるフレームを生成する。当該フレームには、ＳＴ４３の始動を指示するデータが含まれる。当該フレームは、車内通信部１４によってＥＣＵ３０Ｃに送信される。
【００７６】
判定部１１２での判定結果がエンジン始動不可である場合、制御部１１３は上記の始動制御処理を実行しない。好ましくは、制御部１１３は、エンジン始動が不許可であることを、ユーザインタフェース装置７によってユーザに報知する始動制御処理を実行する。ユーザインタフェース装置７がディスプレイである場合、判定部１１２は、たとえば図６Ａの報知画面をユーザインタフェース装置７に表示させる。そのため、制御部１１３は、ユーザインタフェース装置７を制御するＥＣＵ３０Ｄに送信されるフレームを生成する。当該フレームには、図６Ａの報知画面の表示を指示するデータが含まれる。当該フレームは、車内通信部１４によってＥＣＵ３０Ｃに送信される。
【００７７】
より好ましくは、制御部１１３は、対象ＥＣＵにおいて更新完了までに要する時間（更新時間）Ｘを取得し、当該フレームに含める。更新時間Ｘは管理サーバ５から取得してもよいし、管理サーバ５から取得した更新用プログラムのサイズと予め記憶している対象ＥＣＵの処理能力とから算出してもよい。これにより、図６Ａに示されたように、エンジン始動が可能になるまでの時間をユーザインタフェース装置７に表示させることができる。
【００７８】
なお、他の例として、ユーザインタフェース装置７がタッチパネルなどのユーザ操作を受け付ける装置である場合、制御部１１３は、更新の中断を指示するユーザ操作を受け付ける図６Ｂの報知画面をユーザインタフェース装置７に表示させてもよい。当該ユーザ操作を受け付けると、制御部１１３は、対象ＥＣＵに対して更新の中断を指示する。これにより、ユーザは、制御プログラムの更新よりもエンジン始動を優先させることができる。
【００７９】
〔始動制御処理〕
図７は、図５のステップＳ６の始動制御処理の具体例を表したフローチャートである。図７のフローチャートに表された処理は、ゲートウェイ１０のＣＰＵ１１が、記憶部１３に記憶された１つまたは複数のプログラムをＲＡＭ１２上に読み出して実行することによって図２に示された各機能を実現することで実行される。図７の処理は、ゲートウェイ１０が起動すると開始されてもよいし、ステップＳ４で対象ＥＣＵに更新を要求した後に開始されてもよい。
【００８０】
図７を参照して、ＣＰＵ１１は、ＳＴ４３を制御するＥＣＵ３０Ｃから受信するフレームを監視することによって、始動操作が行われたか否かを監視する。始動操作が検出されると（ステップＳ１０１でＹＥＳ）、ＣＰＵ１１は、制御プログラムの更新中であるＥＣＵがあるか否かを確認する。始動操作が行われた時点で制御プログラムを更新中のＥＣＵがない場合には（ステップＳ１０３でＮＯ）（上記条件２）、参照テーブルＴＡを読み取ることなく、始動操作に従ったエンジン始動が可と判定する（ステップＳ１０９）。この場合、ＣＰＵ１１は、ＳＴ４３を制御するＥＣＵ３０ＣにＳＴ４３の始動を指示するデータを含むフレームを生成し、当該フレームを車内通信部１４にＥＣＵ３０Ｃに送信させる。これにより、ユーザの始動操作に従ってＳＴ４３が始動し、エンジンが始動する。
【００８１】
始動操作が行われた時点で制御プログラムを更新中のＥＣＵがある場合（ステップＳ１０３でＹＥＳ）、ＣＰＵ１１は記憶部１３の参照テーブルＴＡを読み取り（ステップＳ１０５）、当該対象ＥＣＵが許可ＥＣＵであるか非許可ＥＣＵであるかによって、ＳＴ４３の始動、つまり、エンジン始動の可否を判定する。
【００８２】
対象ＥＣＵが許可ＥＣＵである場合（上記条件３）（ステップＳ１０７でＹＥＳ）、ＣＰＵ１１は、始動操作に従ったエンジン始動が可と判定する（ステップＳ１０９）。この場合、ＣＰＵ１１は、ＳＴ４３を制御するＥＣＵ３０ＣにＳＴ４３の始動を指示するデータを含むフレームを生成し、当該フレームを車内通信部１４にＥＣＵ３０Ｃに送信させる。これにより、ユーザの始動操作に従ってＳＴ４３が始動し、エンジンが始動する。
【００８３】
対象ＥＣＵが非許可ＥＣＵである場合（上記条件１）（ステップＳ１０７でＮＯ）、ＣＰＵ１１は、始動操作に従ったエンジン始動が不可と判定する（ステップＳ１１１）。この場合、ＣＰＵ１１は、ＥＣＵ３０Ｃに対して上記のフレームを送信する処理を実行しない。または、ＳＴ４３を始動しないことを指示するデータを含むフレームを生成し、当該フレームを車内通信部１４にＥＣＵ３０Ｃに送信させる。これにより、ユーザが始動操作を行ってもＳＴ４３が始動せず、エンジンが始動しない。
【００８４】
さらに、好ましくは、ＣＰＵ１１は、ユーザインタフェース装置７がディスプレイである場合に図６Ａや図６Ｂの報知画面を表示させるためのフレームを生成し、車内通信部１４にユーザインタフェース装置７を制御するＥＣＵ３０Ｄに当該フレームを送信させる。これにより、ユーザインタフェース装置７には図６Ａや図６Ｂの報知画面が表示され、ユーザは、始動操作に従ってエンジン始動しない理由を知ることができる。
【００８５】
より好ましくは、ＣＰＵ１１は対象ＥＣＵでの更新時間を取得し、図６Ａや図６Ｂのように報知画面に表示させるようにＥＣＵ３０Ｄに送信するフレームに含める。これにより、ユーザは、エンジンが始動可能な状態となるまでの時間を知ることができる。より好ましくは、ＣＰＵ１１は図６Ｂの報知画面において更新の中断の指示を受け付けると、対象ＥＣＵに更新処理の中止を指示するフレームを生成して車内通信部１４に送信させる。これにより、ユーザは、制御プログラムの更新よりもエンジン始動を優先させることができる。
【００８６】
〔第１の実施の形態の効果〕
第１の実施の形態にかかるプログラム更新システムでは、始動操作が検出されたときに制御プログラムの更新中であるＥＣＵがあり、かつ、対象ＥＣＵが参照テーブルＴＡにおいて非許可ＥＣＵと規定されている場合に、当該始動操作に従ってエンジンが始動されない。そのため、ＳＴ４３の始動に伴う電圧低下によって制御プログラムの更新が不成功となったためにエンジン始動が失敗することが回避される。
【００８７】
たとえば、対象ＥＣＵが電圧保持回路４１を介さずにＢＡＴ４２に接続されたＥＣＵの場合、当該始動操作に従ってエンジンが始動されない。そのため、ＳＴ４３の始動に伴う電圧低下によって制御プログラムの更新が不成功となることが回避される。
【００８８】
またたとえば、対象ＥＣＵが第１メモリ３３１のみを有して第２メモリ３３２を有しない場合には当該始動操作に従ってエンジンが始動されず、第２メモリ３３２を有する場合にエンジンが始動する。これにより、ＳＴ４３の始動に伴う電圧低下によって制御プログラムの更新が不成功となっても、始動動作に従ってエンジン始動することが可能になる。
【００８９】
＜第２の実施の形態＞
参照テーブルＴＡが（Ｂ）により許可／非許可ＥＣＵを規定する場合、許可ＥＣＵおよび非許可ＥＣＵは上記の例に限定されない。図８は、車両１の電源構成の他の例を表した概略図である。図８に示された車両１は、電源系としてメインバッテリ（メインＢＡＴ）４２Ａとサブバッテリ（サブＢＡＴ）４２Ｂとの複数の電源を有する。
【００９０】
メインＢＡＴ４２Ａは、電源線１７を介して接続されたＳＴ４３、ＥＣＵ３０Ａ、および、リレー回路４４がＯＮの場合には、さらにリレー回路４４を介して接続されたＥＣＵ３０Ｂに電力を供給する。リレー回路４４がＯＦＦの場合には、サブＢＡＴ４２Ｂは、電源線１７を介して接続されたＥＣＵ３０Ｂに電力を供給する。
【００９１】
メインＢＡＴ４２Ａに電源線１７を介して接続されたＥＣＵ３０Ａに、さらに他のＥＣＵ（図８中のＥＣＵ３０Ｅ）が接続される場合、メインＢＡＴ４２Ａは、ＥＣＵ３０Ａを介してＥＣＵ３０Ｅにも電力を供給する。
【００９２】
車両１の電源構成が図８の構成である場合であって参照テーブルＴＡが（Ｂ）により許可／非許可ＥＣＵを規定する場合、一例として、許可ＥＣＵおよび非許可ＥＣＵはそれぞれ以下のＥＣＵである。
許可ＥＣＵ：サブＢＡＴ４２Ｂに接続されたＥＣＵ
非許可ＥＣＵ：サブＢＡＴ４２Ｂに接続されずメインＢＡＴ４２Ａのみに接続されたＥＣＵ
図８の例ではＥＣＵ３０Ｂが許可ＥＣＵであり、ＥＣＵ３０Ａが非許可ＥＣＵである。
【００９３】
サブＢＡＴ４２Ｂに接続されたＥＣＵ３０Ｂは、エンジン始動に伴ってメインＢＡＴ４２Ａの電圧が低下した場合であってもサブＢＡＴ４２Ｂから電力が供給される。そのため、更新中であってもメインＢＡＴ４２Ａの電力低下の影響を受けない。これより、エンジン始動が許可されることによって、ユーザ操作に従ってエンジンを始動しつつ更新も継続することができる。
【００９４】
＜第３の実施の形態＞
図１に示された参照テーブルＴＡは、車両１に搭載されるＥＣＵごとに許可／非許可ＥＣＵを規定する。しかしながら、参照テーブルＴＡは、すべてのＥＣＵについて許可／非許可ＥＣＵを規定しなくてもよい。たとえば、当該テーブルＴＡがゲートウェイ１０の記憶部１３に格納された後に新たに搭載されたＥＣＵなど、一部のＥＣＵについて記載されていない場合もあり得る。
【００９５】
対象ＥＣＵが参照テーブルＴＡに許可／非許可ＥＣＵが規定されていない場合であって、かつ、規定されているＥＣＵ（仲介ＥＣＵとも言う）を介して電源に接続されている場合、判定部１１２は、対象ＥＣＵの仲介ＥＣＵに対する接続関係に基づいて、エンジン始動の可否を判定する。すなわち、判定部１１２は、仲介ＥＣＵが参照テーブルＴＡにおいて許可ＥＣＵであるか非許可ＥＣＵであるかに基づいてエンジン始動の可否を判定する。
【００９６】
対象ＥＣＵが図８に示されたＥＣＵ３０Ｅであって、ＥＣＵ３０Ｅが参照テーブルＴＡにおいてエンジン始動の許否が規定されていない場合、判定部１１２は、ＥＣＵ３０Ｅが接続されているＥＣＵ３０Ａ−１を仲介ＥＣＵとして、ＥＣＵ３０Ａ−１が参照テーブルＴＡにおいて許可ＥＣＵであるか非許可ＥＣＵであるかを判定する。上記したようにＥＣＵ３０Ａ−１は非許可ＥＣＵであるため、判定部１１２は、エンジン始動が不可と判定する。
【００９７】
電源の電圧低下の影響を受けるために非許可ＥＣＵとして規定されているＥＣＵ３０（第１ＥＣＵ）を介して当該電源から電力供給を受けるＥＣＵ３０（第２ＥＣＵ）は、第１ＥＣＵと同様に当該電源の電力低下の影響を受ける。そのため、このようなＥＣＵが更新中にエンジン始動を許可しないことによって、当該ＥＣＵにおける更新の失敗を回避できる。
【００９８】
開示された特徴は、１つ以上のモジュールによって実現される。たとえば、当該特徴は、回路素子その他のハードウェアモジュールによって、当該特徴を実現する処理を規定したソフトウェアモジュールによって、または、ハードウェアモジュールとソフトウェアモジュールとの組み合わせによって実現され得る。
【００９９】
上述の動作をコンピュータに実行させるための、１つ以上のソフトウェアモジュールの組み合わせであるプログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１００】
なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
【０１０１】
また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１０２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０３】
１  車両
２  広域通信網
４  車内ネットワーク
５  管理サーバ
６  ＤＬサーバ
７  ユーザインタフェース装置
１０  ゲートウェイ（制御装置）
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部
１５  無線通信部
１６  車内通信線
１７  電源線
３０，３０Ａ〜３０Ｅ  ＥＣＵ
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
４１  電圧保持回路
４２  ＢＡＴ
４２Ａ  メインＢＡＴ
４２Ｂ  サブＢＡＴ
４３  ＳＴ
４４  リレー回路
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
１１１  監視部
１１２  判定部
１１３  制御部
３３１  第１メモリ
３３２  第２メモリ（制御プログラムのバックアップ用のメモリ）
ＴＡ  参照テーブル
【要約】
１または複数の車載制御装置と車内通信線を介して通信する通信部と、前記車載制御装置が下記の許可装置であるか非許可装置であるかを規定する参照テーブルを記憶する記憶部と、エンジンの始動を指示するユーザ操作の有無を監視する監視部と、前記ユーザ操作の検出時における前記車載制御装置での制御プログラムの更新状況と、前記参照テーブルとに基づいて、前記ユーザ操作に従った前記エンジンの始動の可否を判定する判定部と、を備える、制御装置。
許可装置：制御プログラムの更新中のエンジン始動を許可する車載制御装置
非許可装置：制御プログラムの更新中のエンジン始動を許可しない車載制御装置【図１】
0006465258.tif 000002
【図２】
0006465258.tif 000003
【図３】
0006465258.tif 000004
【図４】
0006465258.tif 000005
【図５】
0006465258.tif 000006
【図６Ａ】
0006465258.tif 000007
【図６Ｂ】
0006465258.tif 000008
【図７】
0006465258.tif 000009
【図８】
0006465258.tif 000010