(57)【要約】【課題】車載ＥＣＵのプログラムを更新するにあたり当該車載ＥＣＵが車載装置を制御することができない期間を短縮することができるプログラム更新システムを提供する。【解決手段】プログラム更新システムであって、複数種類のプログラムを実行可能とし、実行するプログラムの種類に応じて異なる機能を発揮する複数の汎用ＥＣＵを備え、汎用ＥＣＵは車両に搭載される車載装置を制御するための情報を出力する状態にある動作中ＥＣＵと車載装置を制御するための情報を出力しない状態にある待機中ＥＣＵとを含み、プログラムを更新する場合、待機中ＥＣＵは車外の外部サーバから送信される更新プログラムを取得して自ＥＣＵの記憶部に記憶し、車載装置を制御するための情報を出力する動作中ＥＣＵに遷移し、更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵは、車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移する。【選択図】図１
2020075580.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載される車載ＥＣＵのプログラムを更新するための処理を行うプログラム更新システムであって、
前記車載ＥＣＵに含まれ、複数種類のプログラムを実行可能とし、実行する前記プログラムの種類に応じて異なる機能を発揮する複数の汎用ＥＣＵを備え、
前記汎用ＥＣＵは、前記車両に搭載される車載装置を制御するための情報を出力する状態にある動作中ＥＣＵと、前記車載装置を制御するための情報を出力しない状態にある待機中ＥＣＵとを含み、
前記汎用ＥＣＵのプログラムを更新する場合、
前記待機中ＥＣＵは車外の外部サーバから送信される更新プログラムを取得して自ＥＣＵの記憶部に記憶し、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移し、
前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵは、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移する
プログラム更新システム。
【請求項２】
前記汎用ＥＣＵのプログラムを更新する場合、前記更新プログラムに対応する車載装置が停止した後、
前記待機中ＥＣＵは、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移し、
前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵは、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移する
請求項１に記載のプログラム更新システム。
【請求項３】
前記待機中ＥＣＵは、前記動作中ＥＣＵであった時点に実行していたプログラムを前記記憶部に記憶しており、前記外部サーバから送信される前記更新プログラムを取得する際に、前記動作中ＥＣＵであった時点に実行していたプログラムを削除する
請求項１又は請求項２に記載のプログラム更新システム。
【請求項４】
前記車載ＥＣＵは、前記汎用ＥＣＵと、前記車載装置と直接接続される専用ＥＣＵとを含み、
前記汎用ＥＣＵは、前記車載装置と直接接続せず、前記車載装置を制御するための情報を生成して前記専用ＥＣＵに前記情報を送信し、
前記専用ＥＣＵは、前記汎用ＥＣＵが送信した前記情報を受信し、前記情報に基づいて自ＥＣＵに直接接続される前記車載装置を制御する
請求項１から請求項３のいずれか一つに記載のプログラム更新システム。
【請求項５】
前記汎用ＥＣＵと前記専用ＥＣＵとは、複数の通信系統を統合する中継装置を介して接続しており、
前記汎用ＥＣＵが接続される通信系統と、前記専用ＥＣＵが接続される通信系統とは、異なる
請求項４に記載のプログラム更新システム。
【請求項６】
コンピュータに、
車両に搭載される車載ＥＣＵに含まれ、複数種類のプログラムを実行可能とし実行する前記プログラムの種類に応じて異なる機能を発揮する複数の汎用ＥＣＵを、前記車両に搭載される車載装置を制御するための情報を出力する状態にある動作中ＥＣＵ又は、前記車載装置を制御するための情報を出力しない状態にある待機中ＥＣＵに遷移させ、
前記汎用ＥＣＵのプログラムを更新する場合、
前記待機中ＥＣＵに、車外の外部サーバから送信される更新プログラムを取得させ自ＥＣＵの記憶部に記憶させ、該待機中ＥＣＵを、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移させ、
前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵを、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移させる
処理を実行させる更新処理プログラム。
【請求項７】
前記コンピュータに、
前記汎用ＥＣＵに前記車載装置を制御するための情報を生成させ、前記車載ＥＣＵに含まれ前記車載装置と直接接続される専用ＥＣＵに対し、生成した前記情報を送信させる
処理を実行させる請求項６に記載の更新処理プログラム。
【請求項８】
前記汎用ＥＣＵと前記専用ＥＣＵとは、複数の通信系統を統合する中継装置を介して接続しており、
前記汎用ＥＣＵが接続される通信系統と、前記専用ＥＣＵが接続される通信系統とは、異なる
請求項７に記載の更新処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム更新システム及び更新処理プログラムに関する。
【背景技術】
【０００２】
車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載装置を制御するための車載ＥＣＵ（Electronic Control Unit）が搭載されている。車載ＥＣＵは、ＭＰＵ等の演算処理部、ＲＡＭ等の書き換え可能な不揮発性の記憶部、及び他の車載ＥＣＵと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載装置の制御を行う。更に車両には、無線通信の機能を備えた中継装置（ゲートウェイ）が実装されており、中継装置を介して車外のネットワークに接続されているプログラム生成装置と通信し、当該プログラム生成装置から車載ＥＣＵの制御プログラムをダウンロード（受信）し、当該車載ＥＣＵの制御プログラムを更新することができる（例えば特許文献１参照）。
【０００３】
特許文献１の車載ＥＣＵ（車載制御装置）は、ゲートウェイから送信された差分圧縮データを取得し、取得した差分圧縮データ及び旧プログラムを入力データとして、車載ＥＣＵの記憶部に記憶してある復元ソフトを実行し、新プログラムを復元する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ２０１６／１２１４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の車載ＥＣＵ（車載制御装置）は、差分圧縮データ及び旧プログラムを入力データとして、新プログラムを復元する処理を行うため、当該復元処理を行っている間、当該車載ＥＣＵが車載装置を制御することができない期間が、長くなるという問題点がある。
【０００６】
本発明の目的は、車載ＥＣＵのプログラムを更新するにあたり、当該車載ＥＣＵが車載装置を制御することができない期間を短縮することができるプログラム更新システム等を提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係るプログラム更新システムは、車両に搭載される車載ＥＣＵのプログラムを更新するための処理を行うプログラム更新システムであって、前記車載ＥＣＵに含まれ、複数種類のプログラムを実行可能とし、実行する前記プログラムの種類に応じて異なる機能を発揮する複数の汎用ＥＣＵを備え、前記汎用ＥＣＵは、前記車両に搭載される車載装置を制御するための情報を出力する状態にある動作中ＥＣＵと、前記車載装置を制御するための情報を出力しない状態にある待機中ＥＣＵとを含み、前記汎用ＥＣＵのプログラムを更新する場合、前記待機中ＥＣＵは車外の外部サーバから送信される更新プログラムを取得して自ＥＣＵの記憶部に記憶し、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移し、前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵは、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移する。
【発明の効果】
【０００８】
本開示の一態様によれば、車載ＥＣＵのプログラムを更新するにあたり、当該車載ＥＣＵが車載装置を制御することができない期間を短縮することができるプログラム更新システム等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１（専用ＥＣＵあり）に係るプログラム更新システムの構成を例示する模式図である。
【図２】汎用ＥＣＵ等の構成を例示するブロック図である。
【図３】汎用ＥＣＵの構成情報の一態様を例示する説明図である。
【図４】汎用ＥＣＵのプログラムの更新の一態様を例示する説明図である。
【図５】汎用ＥＣＵ（待機中ＥＣＵ）の制御部の処理を例示するフローチャートである。
【図６】実施形態２（専用ＥＣＵなし）に係るプログラム更新システムの構成を例示する模式図である。
【発明を実施するための形態】
【００１０】
［本発明の実施形態の説明］
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１１】
（１）本開示の一態様に係るプログラム更新システムは、車両に搭載される車載ＥＣＵのプログラムを更新するための処理を行うプログラム更新システムであって、前記車載ＥＣＵに含まれ、複数種類のプログラムを実行可能とし、実行する前記プログラムの種類に応じて異なる機能を発揮する複数の汎用ＥＣＵを備え、前記汎用ＥＣＵは、前記車両に搭載される車載装置を制御するための情報を出力する状態にある動作中ＥＣＵと、前記車載装置を制御するための情報を出力しない状態にある待機中ＥＣＵとを含み、前記汎用ＥＣＵのプログラムを更新する場合、前記待機中ＥＣＵは車外の外部サーバから送信される更新プログラムを取得して自ＥＣＵの記憶部に記憶し、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移し、前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵは、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移する。
【００１２】
本態様にあたっては、車載ＥＣＵに含まれる汎用ＥＣＵのプログラムを更新する場合、待機中ＥＣＵは、車外の外部サーバから送信される更新プログラムを取得して自ＥＣＵの記憶部に記憶する。待機中ＥＣＵは車載装置を制御するための情報を出力していないため、更新プログラムを記憶する処理を行っても、車載装置への影響は発生しない。又、待機中ＥＣＵが更新プログラムを記憶する処理を行っている間は、動作中ＥＣＵは、車載装置を制御するための情報を出力するため、動作中ＥＣＵが車載装置を制御することができない期間が発生しない。又、動作中ＥＣＵ及び待機中ＥＣＵとの間での状態遷移において、更新プログラムの復号等の処理は発生しない。従って、汎用ＥＣＵ（車載ＥＣＵ）のプログラムを更新するにあたり、当該車載ＥＣＵが車載装置を制御することができない期間を短縮することができる。
【００１３】
（２）本開示の一態様に係るプログラム更新システムは、前記汎用ＥＣＵのプログラムを更新する場合、前記更新プログラムに対応する車載装置が停止した後、前記待機中ＥＣＵは、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移し、前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵは、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移する。
【００１４】
本態様にあたっては、例えば、車両のＩＧ（イグニッション）スイッチがオフにされることにより更新プログラムに対応する車載装置が停止した後、動作中ＥＣＵは、車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移し、待機中ＥＣＵは、車載装置を制御するための情報の出力を開始して動作中ＥＣＵに遷移する。従って、汎用ＥＣＵのプログラムを確実に更新することができる。
【００１５】
（３）本開示の一態様に係るプログラム更新システムは、前記待機中ＥＣＵは、前記動作中ＥＣＵであった時点に実行していたプログラムを前記記憶部に記憶しており、前記外部サーバから送信される前記更新プログラムを取得する際に、前記動作中ＥＣＵであった時点に実行していたプログラムを削除する。
【００１６】
本態様にあたっては、待機中ＥＣＵは、動作中ＥＣＵであった時点に実行していた旧プログラムを記憶部に記憶して保持しているので、万が一、更新プログラムに問題が発生した場合であっても、当該旧プログラムを用いて復旧（ロールバック）させることができる。
【００１７】
（４）本開示の一態様に係るプログラム更新システムは、前記車載ＥＣＵは、前記汎用ＥＣＵと、前記車載装置と直接接続される専用ＥＣＵとを含み、前記汎用ＥＣＵは、前記車載装置と直接接続せず、前記車載装置を制御するための情報を生成して前記専用ＥＣＵに前記情報を送信し、前記専用ＥＣＵは、前記汎用ＥＣＵが送信した前記情報を受信し、前記情報に基づいて自ＥＣＵに直接接続される前記車載装置を制御する。
【００１８】
本態様にあたっては、汎用ＥＣＵは、実行するプログラムの種類に応じて、複数の異なる機能を発揮する。当該機能夫々は、制御対象の車載装置に対応するものであるが、車載装置と、車載装置を駆動制御するＥＣＵとは、シリアルケーブル等のワイヤーハーネス又は、内部バスにより直接接続される必要がある。これに対し、汎用ＥＣＵは、駆動対象の車載装置と直接接続せず、前記車載装置を制御するための情報を生成して出力する。そして、専用ＥＣＵと駆動対象の車載装置とを直接接続し、専用ＥＣＵは、汎用ＥＣＵが出力した情報を取得し、前記情報に基づいて直接接続される車載装置を駆動する。従って、汎用ＥＣＵ夫々と車載装置夫々とを個々のワイヤーハーネスにより接続して配策することを不要とすることができる。駆動対象の車載装置と直接接続される専用ＥＣＵは、当該車載装置と一体化して構成される場合が多く、車載装置の機構又は構造に対する依存度が高い傾向にあるため、専用ＥＣＵのプログラムの更新の頻度は低い。これに対し、汎用ＥＣＵにて実行されるプログラムは、車載装置を制御するための情報を生成する処理を行うものであり、走行安全性の向上又はセキュリティ対策を図るため、更新の頻度は、専用ＥＣＵのプログラムよりも高くなる。従って、更新の頻度が高くなるプログラムを汎用ＥＣＵで実行させ、当該汎用ＥＣＵのプログラムの更新をプログラム更新システムにて行うことにより、汎用ＥＣＵが車載装置を制御することができない期間を効率的に短縮することができる。
【００１９】
（５）本開示の一態様に係るプログラム更新システムは、前記汎用ＥＣＵと前記専用ＥＣＵとは、複数の通信系統を統合する中継装置を介して接続しており、前記汎用ＥＣＵが接続される通信系統と、前記専用ＥＣＵが接続される通信系統とは、異なる。
【００２０】
本態様にあたっては、汎用ＥＣＵが接続される通信系統と、前記専用ＥＣＵが接続される通信系統とを異なる通信系統することにより、専用ＥＣＵが接続される通信系統に対し、汎用ＥＣＵが接続される通信系統内で発生するトラフィックの影響を低減することができる。従って、車外の外部サーバから送信される更新プログラムを中継装置が、中継して汎用ＥＣＵに送信する場合、当該更新プログラムの送信によって、専用ＥＣＵが接続される通信系統のトラフィックが増加することを抑制することができる。
【００２１】
（６）本開示の一態様に係る更新処理プログラムは、コンピュータに、車両に搭載される車載ＥＣＵに含まれ、複数種類のプログラムを実行可能とし実行する前記プログラムの種類に応じて異なる機能を発揮する複数の汎用ＥＣＵを、前記車両に搭載される車載装置を制御するための情報を出力する状態にある動作中ＥＣＵ又は、前記車載装置を制御するための情報を出力しない状態にある待機中ＥＣＵに遷移させ、前記汎用ＥＣＵのプログラムを更新する場合、前記待機中ＥＣＵに、車外の外部サーバから送信される更新プログラムを取得させ自ＥＣＵの記憶部に記憶させ、該待機中ＥＣＵを、前記車載装置を制御するための情報を出力する動作中ＥＣＵに遷移させ、前記更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵを、前記車載装置を制御するための情報の出力を停止して待機中ＥＣＵに遷移させる処理を実行させる。
【００２２】
本態様にあたっては、コンピュータに更新処理プログラムを実行させることにより、プログラム更新システムとして機能させることができる。当該コンピュータは、汎用ＥＣＵに内蔵されるものに限定されない。当該コンピュータは、例えば汎用ＥＣＵと通信可能に接続された中継装置（ゲートウェイ）等、汎用ＥＣＵに対する更新プログラムの送信を制御するリプロマスターに内蔵されるものであってもよい。
【００２３】
（７）本開示の一態様に係る更新処理プログラムは、前記コンピュータに、前記汎用ＥＣＵに前記車載装置を制御するための情報を生成させ、前記車載ＥＣＵに含まれ前記車載装置と直接接続される専用ＥＣＵに対し、生成した前記情報を送信させる処理を実行させる。
【００２４】
本態様にあたっては、コンピュータに更新処理プログラムを実行させることにより、汎用ＥＣＵに情報を生成させ、当該情報を車載装置と直接接続される専用ＥＣＵに送信させる。従って、汎用ＥＣＵと車載装置とを直接接続することを不要とし、車内の配策を適正化することができる。
【００２５】
（８）本開示の一態様に係る更新処理プログラムは、前記汎用ＥＣＵと前記専用ＥＣＵとは、複数の通信系統を統合する中継装置を介して接続しており、前記汎用ＥＣＵが接続される通信系統と、前記専用ＥＣＵが接続される通信系統とは、異なる。
【００２６】
本態様にあたっては、汎用ＥＣＵが接続される通信系統と、専用ＥＣＵが接続される通信系統とを、異なる通信系統とすることにより、更新プログラムが送信させる際において、汎用ＥＣＵが接続される通信系統のトラフィックにより、専用ＥＣＵが接続される通信系統に影響が与えられることを抑制することができる。
【００２７】
[本発明の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係るプログラム更新システムＳを、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００２８】
（実施形態１）
以下、実施の形態について図面に基づいて説明する。図１は、実施形態１（専用ＥＣＵ６あり）に係るプログラム更新システムＳの構成を例示する模式図である。図２は、汎用ＥＣＵ３等の構成を例示するブロック図である。車両Ｃには、車外通信装置１、中継装置２及び、複数の汎用ＥＣＵ３を備えるプログラム更新システムＳが搭載されている。
【００２９】
車外通信装置１により車外ネットワークＮに接続し、汎用ＥＣＵ３は、車外通信装置１及び中継装置２を介して、当該車外ネットワークＮに接続されたプログラム提供装置Ｓ１からプログラム又はデータを取得する。中継装置２は、プログラム提供装置Ｓ１から取得したプログラム又はデータを、汎用ＥＣＵ３に送信するプログラム更新装置（リプロマスター）として機能するものであってもよい。
【００３０】
プログラム提供装置Ｓ１は、例えばインターネット又は公衆回線網等の車外ネットワークＮに接続されているサーバ等のコンピュータであり、車外の外部サーバに相当する。プログラム提供装置Ｓ１の記憶部Ｓ１１には、車載ＥＣＵ（汎用ＥＣＵ３、専用ＥＣＵ６）の製造メーカ等によって作成された当該車載ＥＣＵを制御するためのプログラム又はデータが記憶（保存）されている。当該プログラム又はデータは、更新プログラムとして車両Ｃに送信され、車両Ｃに搭載されている車載ＥＣＵのプログラム又はデータを更新するために用いられる。このように構成されたプログラム提供装置Ｓ１（外部サーバ）は、ＯＴＡ（Over The Air）サーバとも称される。車両に搭載される車載ＥＣＵは、プログラム提供装置Ｓ１から無線通信により送信された更新プログラムを取得し、当該更新プログラムを実行するプログラムとして適用することにより、自ＥＣＵが実行するプログラムを更新（リプロ）することができる。
【００３１】
以降、プログラムは、車載ＥＣＵが処理を行うための制御構文等を含むプログラムコード及び、当該プログラムコードを実行するにあたり参照するデータが記載される外部ファイルを含むものとして説明する。更新プログラムの送信時において、これらプログラムコード及びデータが記載される外部ファイルは、例えば暗号化されたアーカイブファイルとして、プログラム提供装置Ｓ１から送信される。
【００３２】
車両Ｃには、複数の専用ＥＣＵ６及び専用ＥＣＵ６にシリアルケーブル等のワイヤーハーネスにより直接接続された車載装置７が設けられている。すなわち、車両Ｃには、車載ＥＣＵとして汎用ＥＣＵ３及び専用ＥＣＵ６が設けられている。中継装置２は、複数の汎用ＥＣＵ３が接続される汎用ＥＣＵ通信系統と、複数の専用ＥＣＵ６が接続される専用ＥＣＵ通信系統との複数のセグメントを備えるゲートウェイである。汎用ＥＣＵ３夫々は、汎用ＥＣＵ通信系統を介して相互に通信可能に接続される。専用ＥＣＵ６夫々は、専用ＥＣＵ通信系統を介して相互に通信可能に接続される。汎用ＥＣＵ３夫々と専用ＥＣＵ６夫々とは、中継装置２を介して相互に通信可能に接続される。中継装置２が備える汎用ＥＣＵ通信系統及び専用ＥＣＵ通信系統によって、車内ＬＡＮ４が構成される。
【００３３】
詳細は後述するが、汎用ＥＣＵ３夫々は、複数の異なる種類のプログラムを実行可能とし、実行する前記プログラムの種類に応じて異なる機能を発揮する。すなわち、汎用ＥＣＵ３夫々は、例えばハードウェアの仕様は同一に構成され、一の汎用ＥＣＵ３にはエンジン用プログラムを適用することにより、エンジンを制御するための情報（データ）を出力し、他の汎用ＥＣＵ３にはブレーキ用プログラムを適用することにより、ブレーキを制御するためのデータを出力する。出力されたデータは、中継装置２を介して、当該データに対応するエンジン用又はブレーキ用の専用ＥＣＵ６によって受信される。
【００３４】
これら専用ＥＣＵ６夫々は、対応する汎用ＥＣＵ３から受信したデータに基づき、自ＥＣＵに直接接続されている車載装置７を駆動制御する。例えば、エンジン用の車載装置７に接続されているエンジン用の専用ＥＣＵ６は、エンジン用プログラムが適用されている汎用ＥＣＵ３から出力されたデータを受信し、アクチュエータであるエンジン用の車載装置７の駆動、起動又は停止等の駆動制御を行う。
【００３５】
汎用ＥＣＵ３は、動作中ＥＣＵ３ａ及び待機中ＥＣＵ３ｂを含む。動作中ＥＣＵ３ａは、上述のごとく専用ＥＣＵ６へ送信するためのデータを生成し出力する状態にある汎用ＥＣＵ３である。待機中ＥＣＵ３ｂは、当該データを出力することなく、待機している状態にある汎用ＥＣＵ３である。すなわち、動作中ＥＣＵ３ａ及び待機中ＥＣＵ３ｂは、汎用ＥＣＵ３の状態によって決定される。詳細は、フローチャート等の説明にて後述する。
【００３６】
車外通信装置１と中継装置２とは、例えばシリアルケーブル等のワイヤーハーネスにより通信可能に接続されている。中継装置２及び車載ＥＣＵ（汎用ＥＣＵ３、専用ＥＣＵ６）は、ＣＡＮ（Control Area Network／登録商標）又はＥｔｈｅｒｎｅｔ（登録商標）等の通信プロトコルに対応した車内ＬＡＮ４によって通信可能に接続されている。
【００３７】
車外通信装置１は、車外通信部１１及び、中継装置２と通信するための入出力Ｉ／Ｆ（インターフェイス）１２を含む。車外通信部１１は、３Ｇ、ＬＴＥ、４Ｇ、ＷｉＦｉ等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部１１に接続されたアンテナ１３を介してプログラム提供装置Ｓ１とデータの送受信を行う。車外通信装置１とプログラム提供装置Ｓ１との通信は、例えば公衆回線網又はインターネット等の外部ネットワークＮを介して行われる。
【００３８】
入出力Ｉ／Ｆ１２は、中継装置２と、例えばシリアル通信するための通信インターフェイスである。車外通信装置１と中継装置２とは、入出力Ｉ／Ｆ１２及び入出力Ｉ／Ｆ１２に接続されたシリアルケーブル等のワイヤーハーネスを介して相互に通信する。本実施形態では、車外通信装置１は、中継装置２と別装置とし、入出力Ｉ／Ｆ１２等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置１は、中継装置２の一構成部位として、中継装置２に内蔵されるものであってもよい。
【００３９】
中継装置２は、制御部２０、記憶部２１及び車内通信部２３を含む。中継装置２は、車外通信装置１が無線通信によってプログラム提供装置Ｓ１から受信した更新プログラムを、車外通信装置１から取得し、車内ＬＡＮ４を介して当該更新プログラムを汎用ＥＣＵ３に送信（中継）するように構成されているゲートウェイである。中継装置２は、車両Ｃ全体をコントロールするボディＥＣＵの一機能部として構成されるものであってもよい。
【００４０】
制御部２０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部２１に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。制御部２０は、プログラム提供装置Ｓ１から送信された更新プログラムを、車外通信装置１を介して取得する取得部に相当する。
【００４１】
記憶部２１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部２１に記憶させたものであってもよい。更に、記憶部２１には、車両Ｃに搭載される全ての車載ＥＣＵ（汎用ＥＣＵ３、専用ＥＣＵ６）の構成情報、プログラム提供装置Ｓ１から取得した更新プログラム、及び車載ＥＣＵに更新プログラムを送信する際の進捗状況に関する情報が、記憶される。
【００４２】
車内通信部２３は、ＣＡＮ（Control Area Network）又はＥｔｈｅｒｎｅｔ（登録商標）等の通信プロトコルを用いた入出力インターフェイスであり、制御部２０は、車内通信部２３を介して車内ＬＡＮ４に接続されている車載ＥＣＵ（汎用ＥＣＵ３、専用ＥＣＵ６）又は他の中継装置２等の車載機器と相互に通信する。車内通信部２３は、複数個（図面上では２つ）設けられており、車内通信部２３夫々に、車内ＬＡＮ４を構成する通信線が接続されている。このように車内通信部２３を複数個設けることにより、車内ＬＡＮ４は複数個のセグメントに分けられる。図１に示すごとく、一のセグメントには複数の汎用ＥＣＵ３を接続することにより、当該一のセグメントは、汎用ＥＣＵ通信系統として機能する。他のセグメントには複数の専用ＥＣＵ６を接続することにより、当該他のセグメントは、専用ＥＣＵ通信系統として機能する。
【００４３】
汎用ＥＣＵ３は、制御部３０、記憶部３１及び車内通信部３２を含む。制御部３０は、ＣＰＵ又はＭＰＵにより構成される。車内通信部３２は、中継装置２の車内通信部２３と同様の通信プロトコルを用いた入出力インターフェイスである。制御部３０は、中継装置２から送信（中継）される更新プログラムを、車内通信部３２を介して受信して当該更新プログラムを取得する。
【００４４】
記憶部３１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、汎用ＥＣＵ３のプログラム又はデータが記憶されている。このプログラム又はデータが、中継装置２から送信される更新プログラムによって更新される対象である。
【００４５】
汎用ＥＣＵ３は、異なる複数の種類のプログラムが実行可能なように構成されている。例えば、汎用ＥＣＵ３の記憶部３１にエンジン用プログラムが記憶されており、汎用ＥＣＵ３の制御部３０が当該エンジン用プログラムを読み出し実行することにより、当該汎用ＥＣＵ３は、エンジン（エンジン用の車載装置７）を制御するための情報を生成し、当該情報を送信（出力）する。又、汎用ＥＣＵ３の記憶部３１にブレーキ用プログラムが記憶されている場合、汎用ＥＣＵ３の制御部３０は、当該ブレーキ用プログラムを読み出し実行することにより、当該汎用ＥＣＵ３は、ブレーキ（ブレーキ用の車載装置７）を制御するための情報を生成し、当該情報を送信（出力）する。このように汎用ＥＣＵ３は、記憶部３１に記憶してあるプログラムの種類に応じて、異なる機能を発揮するように構成されている。
【００４６】
上述のごとく、汎用ＥＣＵ３は、動作中ＥＣＵ３ａ及び待機中ＥＣＵ３ｂを含む。動作中ＥＣＵ３ａの記憶部３１には、現在実行しているプログラムが記憶されている。待機中ＥＣＵ３ｂの記憶部３１には、以前に実行していた前バージョンのプログラム（旧プログラム）が記憶されている。なお、更新プログラムにより汎用ＥＣＵ３のプログラムの更新が一度も行われていない場合は、待機中ＥＣＵ３ｂの記憶部３１は、いずれのプログラムも記憶されていない空の状態である。汎用ＥＣＵ３夫々の記憶部３１には、自ＥＣＵの動作状態に関する情報が記憶されている。動作状態に関する情報とは、例えば動作中又は待機中を示すフラグデータである。詳細は後述するが、汎用ＥＣＵ３夫々の記憶部３１夫々には、全ての汎用ＥＣＵ３の構成情報が記憶されており、すなわち全ての汎用ＥＣＵ３の構成情報は、汎用ＥＣＵ３夫々によって共有されている。
【００４７】
当該構成情報には、動作状態に関する情報が含まれているため、汎用ＥＣＵ３夫々は、自ＥＣＵのみならず全ての汎用ＥＣＵ３の動作状態を認識することができ、どの汎用ＥＣＵ３が動作中（動作中ＥＣＵ３ａ）であり、どの汎用ＥＣＵ３が待機中（待機中ＥＣＵ３ｂ）であるかを認識することができる。
【００４８】
専用ＥＣＵ６は、汎用ＥＣＵ３と同様に図示しない制御部、記憶部、及び車内通信部を含む。又、専用ＥＣＵ６は、中継装置２と同様の入出力Ｉ／Ｆ（図示せず）を含み、当該入出力Ｉ／Ｆに接続されるシリアルケーブル等のワイヤーハーネスにより、車載装置７と通信可能に直接接続される。専用ＥＣＵ６は、上述ごとく、自ＥＣＵに直接接続される車載装置７（例えばエンジン用の車載装置７）に対応するプログラム（エンジン用プログラム）が適用されている汎用ＥＣＵ３から出力されたデータ（車載装置７を制御するための情報）を受信し、当該データに基づき、自ＥＣＵに直接接続される車載装置７の駆動又は停止等の駆動制御を行う。
【００４９】
中継装置２の入出力Ｉ／Ｆ２４には、シリアルケーブル等のワイヤーハーネスにより、表示装置５が通信可能に接続されている。表示装置５は、例えばカーナビゲーションのディスプレイ等のＨＭＩ（Human Machine Interface）装置である。表示装置５には、例えば、中継装置２の制御部２０から入出力Ｉ／Ｆ２４を介して出力されたデータ又は情報が表示される。中継装置２は、汎用ＥＣＵ３夫々の状態（動作中ＥＣＵ３ａ又は待期中ＥＣＵ３ｂであるか）に関する情報を表示装置５に送信し、当該状態を表示装置５に表示させてもよい。表示装置５と中継装置２との接続形態は、入出力Ｉ／Ｆ２４等による接続形態に限定されず、表示装置５と中継装置２とは、車内ＬＡＮ４を介した接続形態であってもよい。
【００５０】
中継装置２の入出力Ｉ／Ｆ２４には、シリアルケーブル等のワイヤーハーネスにより、車両の起動又は停止を行うＩＧスイッチ８（イグニッションスイッチ）が通信可能に接続されている。ＩＧスイッチ８がオン又はオフにされた場合、ＩＧスイッチ８から出力（送信）された信号を、中継装置２の制御部２０は、入出力Ｉ／Ｆ２４を介して取得（受信）する。中継装置２の制御部２０は、取得した信号に基づき、当該ＩＧスイッチ８のオン又はオフに関する情報として、車内通信部２３を介して、車載ＥＣＵである汎用ＥＣＵ３及び専用ＥＣＵ６に送信する。従って、汎用ＥＣＵ３は、中継装置２から送信された情報に基づき、ＩＧスイッチ８のオン又はオフに関する情報を取得することができる。
【００５１】
図３は、汎用ＥＣＵ３の構成情報の一態様を例示する説明図である。汎用ＥＣＵ３夫々の記憶部には、全ての汎用ＥＣＵ３の構成情報が記憶されている。当該構成情報は、例えば図３に示す表の項目によって示される情報群（車両構成情報マスターテーブル）によるものある。構成情報は、例えば汎用ＥＣＵ３の製造番号（シリアル番号）、ＥＣＵ部番（部番、型番）、Ｓｏｆｔｗａｒｅ部番、プログラムのバージョン、ＭＡＣ（Media Access Control）アドレス、ＩＰアドレス、機能グループ、及び動作状態を含み、個々の汎用ＥＣＵ３において重複しないように設定された連番等によるＥＣＵ−ＩＤに関連付けられて管理される。
【００５２】
製造番号（シリアル番号）は、汎用ＥＣＵ３の製造時に付与される番号であり、生産拠点等を示すロット番号及び製造時の連番等により構成され、当該ＥＣＵを一意に特定することができるユニークな番号である。ＥＣＵ部番（部番、型番）は、車載ＥＣＵの種類を特定する番号であり、例えば部品番号である。Ｓｏｆｔｗａｒｅ部番は、プログラムのソフトウェアの種類を特定するための番号である。バージョンは、記憶部に記憶されているプログラムのバージョンである。
【００５３】
ＭＡＣアドレスは、汎用ＥＣＵ３の車内通信部２３がＥｔｈｅｒｎｅｔに対応した通信ポートである場合、データリング層に対応するアドレスである。ＭＡＣアドレスは、当該車内通信部２３の製造時付与される番号であり、製造者を示すベンダーコード及び製造時の連番等により構成され、当該ＥＣＵを一意に特定することができるユニークな番号である。ＩＰアドレスは、車内通信部２３がＥｔｈｅｒｎｅｔに対応した通信ポートである場合、ＴＣＰ／ＩＰを用いた通信を行う際のネットワーク層に対応するアドレスである。
【００５４】
機能グループは、Ｓｏｆｔｗａｒｅ部番により特定されるプログラムの機能を区分したものであり、例えば制御対象の車載装置７の機能分類又は種類を示すものである。動作状態は、汎用ＥＣＵ３の状態に関する情報として、動作中又は待機中であるかを示す情報である。動作状態が動作中の汎用ＥＣＵ３は動作中ＥＣＵ３ａとして機能し、動作状態が待機中の汎用ＥＣＵ３は待機中ＥＣＵ３ｂとして機能する。
【００５５】
汎用ＥＣＵ３の構成情報は、当該汎用ＥＣＵ３を識別するための識別情報を含む。ＩＰアドレスは、車内通信部２３の設定に応じて任意に決定できるアドレスであるため、汎用ＥＣＵ３を識別するための識別情報としては、シリアル番号又はＭＡＣアドレスを用いることが望ましい。
【００５６】
図３に示すごとく、機能グループがエンジンである汎用ＥＣＵ３（ＥＣＵ−ＩＤが００１及び００３）が、２つあるとしている。この内、ＥＣＵ−ＩＤが００１の汎用ＥＣＵ３は、動作中であり、動作中ＥＣＵ３ａとしてエンジン用のプログラムを実行している。ＥＣＵ−ＩＤが００３の汎用ＥＣＵ３は、待機中であり、待機中ＥＣＵ３ｂとして、以前に実行していたエンジン用の旧プログラム（前バージョンのプログラム）を、自ＥＣＵの記憶部に記憶している。この様に旧プログラムは、待機中ＥＣＵ３ｂの記憶部に記憶してあるため、現状実行するプログラムに問題が生じた場合であっても、当該旧プログラムを用いてロールバックすることにより、当該プログラムに対応する車載装置７の制御を継続することができる。
【００５７】
図４は、汎用ＥＣＵ３のプログラムの更新の一態様を例示する説明図である。図４において、複数の汎用ＥＣＵ３（動作中ＥＣＵ３ａ、待機中ＥＣＵ３ｂ）を含むプログラム更新システムＳによるプログラムの更新を、中継装置２、動作中ＥＣＵ３ａ及び待機中ＥＣＵ３ｂの処理を含むシーケンス図を用いて説明する。
【００５８】
中継装置２は、プログラム提供装置Ｓ１から取得した更新プログラムを待機中ＥＣＵ３ｂに送信する（Ｓ１）。例えば、中継装置２は、更新プログラムをマルチキャストで全ての汎用ＥＣＵ３に対し送信する。汎用ＥＣＵ３夫々は、自ＥＣＵの動作状態が動作中（動作中ＥＣＵ３ａ）又は待機中（待機中ＥＣＵ３ｂ）であるかを記憶部３１に記憶している。従って、待機中ＥＣＵ３ｂは、中継装置２から送信された更新プログラムを取得（受信）する。又は、中継装置２は、全ての汎用ＥＣＵ３の構成情報を記憶部２１に記憶しており、待機中の汎用ＥＣＵ３、すなわち待機中ＥＣＵ３ｂを特定し、当該待機中ＥＣＵ３ｂに対し、更新プログラムをユニキャストで送信してもよい。待機中ＥＣＵ３ｂは、更新プログラムの取得（受信）を正常に終了した場合、中継装置２に対し、更新プログラムの受信が成功した旨を送信（返信）してもよい。
【００５９】
待機中ＥＣＵ３ｂは、取得（受信）した更新プログラムを自ＥＣＵの記憶部３１に記憶する（Ｓ２）。待機中ＥＣＵ３ｂの記憶部３１に、以前実行していた旧プログラムが記憶されている場合、すなわち旧プログラムが記憶部３１に残存している場合は、待機中ＥＣＵ３ｂは、更新プログラムを取得又は記憶するための準備処理として、当該旧プログラムを削除する。
【００６０】
ＩＧスイッチ８がオフにされる（Ｓ３）。ＩＧスイッチ８がオフにされることにより、車両Ｃは停止する。車両Ｃが停止することにより、専用ＥＣＵ６に接続されている車載装置７も停止となる。又、ＩＧスイッチ８がオフにされることにより、中継装置２は、ＩＧスイッチ８がオフにされた旨に関する情報を全ての汎用ＥＣＵ３（動作中ＥＣＵ３ａ、待機中ＥＣＵ３ｂ）に対し送信する。当該情報を受信した動作中ＥＣＵ３ａは、車載装置７を制御するための情報の生成及び送信を停止する。
【００６１】
待機中ＥＣＵ３ｂは、動作中ＥＣＵ３ａに対し待機状態に遷移させる信号を送信する（Ｓ４）。待機中ＥＣＵ３ｂは、（Ｓ２）の処理で記憶した更新プログラムのヘッダー情報等を参照し、当該更新プログラムのＳｏｆｔｗａｒｅ部番、バージョン及び機能グループを特定する。汎用ＥＣＵ３は、例えば特定した機能グループ又はＳｏｆｔｗａｒｅ部番と同一の機能グループ又はＳｏｆｔｗａｒｅ部番である動作中ＥＣＵ３ａ（動作中の汎用ＥＣＵ３）を特定する。例えば、更新プログラムの機能グループがエンジンである場合、機能グループがエンジンの動作中ＥＣＵ３ａを特定する。動作中ＥＣＵ３ａの特定は、例えば製造番号又はＭＡＣアドレスによって行われる。待機中ＥＣＵ３ｂは、特定した動作中ＥＣＵ３ａに対し、待機状態に遷移させる信号を送信する。
【００６２】
待機状態に遷移させる信号を受信した動作中ＥＣＵ３ａは、自ＥＣＵを待機中ＥＣＵ３ｂに遷移させる（Ｓ５）。待機状態に遷移させる信号を受信した動作中ＥＣＵ３ａは、自ＥＣＵの記憶部３１に記憶してある構成情報において、自ＥＣＵの動作状態を動作中から待機中に変更する。動作状態を動作中から待機中に変更することにより、動作中ＥＣＵ３ａであった汎用ＥＣＵ３は、待機中ＥＣＵ３ｂに遷移する。自ＥＣＵの記憶部３１に記憶してある構成情報を変更して待機中ＥＣＵ３ｂに遷移した後、当該待機中ＥＣＵ３ｂは、変更した構成情報を、例えばマルチキャストにより全汎用ＥＣＵ３及び中継装置２に送信してもよい。
【００６３】
待機状態に遷移させる信号を送信した待機中ＥＣＵ３ｂは、自ＥＣＵを動作中ＥＣＵ３ａに遷移させる（Ｓ６）。待機状態に遷移させる信号を送信した待機中ＥＣＵ３ｂは、自ＥＣＵの記憶部３１に記憶してある構成情報において、自ＥＣＵの動作状態を待機中から動作中に変更する。動作状態を待機中から動作中に変更することにより、待機中ＥＣＵ３ｂであった汎用ＥＣＵ３は、動作中ＥＣＵ３ａに遷移する。自ＥＣＵの記憶部３１に記憶してある構成情報を変更して動作中ＥＣＵ３ａに遷移した後、当該動作中ＥＣＵ３ａは、変更した構成情報を、例えばマルチキャストにより全ての汎用ＥＣＵ３及び中継装置２に送信してもよい。なお、送信される構成情報は、自ＥＣＵの動作状態に関する情報に加え、取得した更新プログラムに基づき、Ｓｏｆｔｗａｒｅ部番、バージョン及び機能グループを変更したものである。
【００６４】
このようにプログラムの更新の都度、動作状態を遷移させた汎用ＥＣＵ３が、自ＥＣＵの動作状態及び、取得した更新プログラムに基づき修正したＳｏｆｔｗａｒｅ部番、バージョン及び機能グループを含む構成情報を、全ての汎用ＥＣＵ３及び、中継装置２に送信する。従って、汎用ＥＣＵ３夫々、及び中継装置２は、常に最新の汎用ＥＣＵ３夫々の構成情報を共有することができる。
【００６５】
ＩＧスイッチ８がオンにされる（Ｓ７）。ＩＧスイッチ８がオンにされることにより、車両Ｃは起動する。ＩＧスイッチ８がオンにされた旨に関する情報は、中継装置２から全ての汎用ＥＣＵ３に送信される。
【００６６】
待機中ＥＣＵ３ｂは、中継装置２から送信される更新プログラムを待ち受ける待機処理を行う（Ｓ８）。待機中ＥＣＵ３ｂの記憶部３１には、前回、中継装置２から送信された更新プログラムと同種のプログラムであって、当該更新プログラムの前バージョンとなる旧プログラムが記憶（保存）されている。待機中ＥＣＵ３ｂは、当該旧プログラムを実行せず、待機処理を行う。従って、待機中ＥＣＵ３ｂは、車載装置７を制御するための情報の出力を実質的に停止している。車載装置７を制御するための情報の出力を実質的に停止するとは、待機中ＥＣＵ３ｂが一切の情報の出力を停止している場合に限られない。すなわち、待機中ＥＣＵ３ｂは、例えば専用ＥＣＵ６又は車載装置７の状態を確認するためのポーリングに関する情報（信号）や、専用ＥＣＵ６又は車載装置７に向けて送信する情報（信号）であっても、当該専用ＥＣＵ６又は車載装置７によって無視又は破棄される情報（信号）を出力するものであってもよい。車載装置７を制御するための情報の出力を実質的に停止するとは、車載装置７の制御に影響を与える情報の出力（送信）を停止することを意味する。従って、待機中ＥＣＵ３ｂは、車載装置７の制御に影響を与えない情報（信号）を出力（送信）するものであってもよい。
【００６７】
動作中ＥＣＵ３ａは、記憶部３１に記憶した更新プログラムを実行し、車載装置７を制御するための情報を出力する（Ｓ９）。動作中ＥＣＵ３ａは、（Ｓ２）の処理にて記憶した更新プログラムを実行し、当該更新プログラムに対応する車載装置７を制御するための情報を生成し、当該車載装置７に直接接続されている専用ＥＣＵ６に対し、当該情報を出力（送信）する。
【００６８】
待機中ＥＣＵ３ｂは、（Ｓ１）の処理と同様に、次の更新プログラムを取得する（Ｓ１０）。待機中ＥＣＵ３ｂは、中継装置２から次の更新プログラムを取得し記憶する準備処理として、例えば新たな更新プログラムの存在に関する情報が中継装置２を介してプログラム提供装置Ｓ１から送信された場合、自ＥＣＵの記憶部３１に記憶されている旧プログラムを削除する。
【００６９】
更新プログラムの取得及び記憶は、車両Ｃの起動中に待機中ＥＣＵ３ｂが行うため、車両Ｃの蓄電装置の残容量を考慮することなく行うことができる。待機中ＥＣＵ３ｂは、車載装置７を制御するための情報の生成及び出力を行っていないため、車載装置７の制御に影響を与えることなく、更新プログラムを取得することができる。
【００７０】
待機中ＥＣＵ３ｂが取得した更新プログラムを適用するためには、例えばＩＧスイッチ８のオフからオンまでの間等、更新プログラムに対応する車載装置が停止している間に、当該待機中ＥＣＵ３ｂを動作中ＥＣＵ３ａに遷移させる処理を行うことにより対応することができる。待機中ＥＣＵ３ｂから動作中ＥＣＵ３ａへの遷移は、例えば、自ＥＣＵの記憶部３１に記憶してある構成情報において、自ＥＣＵの動作状態を示す情報を、待機中から動作中に変更する処理で行うことができるため、短時間にて当該遷移を行うことができる。従って、更新プログラムの適用、すなわちプログラムの更新処理（リプロ処理）を短時間で完了させることができ、汎用ＥＣＵ３が車載装置７を制御できない時間を削減することができる。
【００７１】
待機状態に遷移させる信号を受信した動作中ＥＣＵ３ａは、例えばＩＧスイッチ８のオフからオンまでの間等、更新プログラムに対応する車載装置が停止している間に、待機中ＥＣＵ３ｂに遷移する。ＩＧスイッチ８がオンにされた後、起動した待機中ＥＣＵ３ｂは、車載装置７を制御するための情報の生成及び出力を停止している。従って、待機中ＥＣＵ３ｂの記憶部３１に記憶（保存）されている旧プログラムが実行されることを防止することができる。
【００７２】
適用した更新プログラムに問題が発生した場合、当該更新プログラムを実行している動作中ＥＣＵ３ａは待機中ＥＣＵ３ｂに遷移して当該更新プログラムの実行を停止する共に、待機中ＥＣＵ３ｂは動作中ＥＣＵ３ａに遷移して自ＥＣＵの旧プログラムを実行するロールバック処理を行ってもよい。当該ロールバック処理を行うことにより、更新プログラムに対応する車載装置７の制御を継続することができる。
【００７３】
汎用ＥＣＵ３夫々の記憶部３１には、全ての汎用ＥＣＵ３の構成情報が記憶されているとしたが、これに限定されない。汎用ＥＣＵ３夫々の記憶部３１には自ＥＣＵの構成情報のみが記憶されており、中継装置２が、汎用ＥＣＵ３夫々と通信し、汎用ＥＣＵ３夫々から送信された夫々の構成情報を取得（受信）して、当該構成情報夫々を集約するものであってもよい。すなわち、中継装置２の記憶部２１には、全ての汎用ＥＣＵ３の構成情報が記憶されており、汎用ＥＣＵ３夫々は、中継装置２と通信することにより、全ての汎用ＥＣＵ３の構成情報を取得するものであってもよい。
【００７４】
待機中ＥＣＵ３ｂが、取得した更新プログラムと同種のプログラムを実行している動作中ＥＣＵ３ａを特定し、当該動作中ＥＣＵ３ａ対し、待機状態に遷移させる信号を送信するとしたが、これに限定されない。中継装置２が、取得した更新プログラムと同種のプログラムを実行している動作中ＥＣＵ３ａを特定し、当該動作中ＥＣＵ３ａ対し、待機状態に遷移させる信号を送信してもよい。
【００７５】
図５は、汎用ＥＣＵ３（待機中ＥＣＵ３ｂ）の制御部の処理を例示するフローチャートである。待機中ＥＣＵ３ｂの状態にある汎用ＥＣＵ３の制御部３０（待機中ＥＣＵ３ｂの制御部３０）は、車両Ｃが起動状態（ＩＧスイッチ８がオン）において、中継装置２によって中継される更新プログラムを待ち受けており、以下の処理を行う。
【００７６】
待機中ＥＣＵ３ｂの制御部３０は、更新プログラムを取得する（Ｓ１００）。自ＥＣＵの記憶部３１に、旧プログラムが記憶されている場合、制御部３０は、当該プログラムを取得するための準備処理として、当該旧プログラムを削除してもよい。旧プログラムを削除することにより、自ＥＣＵの記憶部３１の記憶領域が逼迫することを抑制することができる。待機中ＥＣＵ３ｂの制御部３０は、更新プログラムを記憶する（Ｓ１０１）。制御部３０は、取得した更新プログラムの自ＥＣＵの記憶部３１に記憶する。
【００７７】
待機中ＥＣＵ３ｂの制御部３０は、ＩＧオフの信号を受信したか否か判定する（Ｓ１０２）。待機中ＥＣＵ３ｂは、例えば中継装置２から送信されるＩＧスイッチ８のオフに関する情報（ＩＧオフの信号）に基づき、ＩＧオフの信号を受信したか否かを判定する。
【００７８】
ＩＧオフの信号を受信していない場合（Ｓ１０２：ＮＯ）、待機中ＥＣＵ３ｂの制御部３０は、再度Ｓ１０２の処理を実行すべく、ループ処理を行う。
【００７９】
ＩＧオフの信号を受信した場合（Ｓ１０２：ＹＥＳ）、待機中ＥＣＵ３ｂの制御部３０は、動作状態を遷移させる信号を送信する（Ｓ１０３）。制御部３０は、取得した更新プログラムと同種のプログラム、すなわち更新プログラムの前バージョンのプログラムを実行している動作中ＥＣＵ３ａに対し、動作状態を遷移させる信号（動作中ＥＣＵ３ａから待機中ＥＣＵ３ｂに遷移させる信号）を送信する。当該信号を受信した動作中ＥＣＵ３ａは、自ＥＣＵを待機中ＥＣＵ３ｂに遷移させるように自ＥＣＵの記憶部３１に当該信号に関する情報を記憶する。又は、当該信号を受信した動作中ＥＣＵ３ａは、自ＥＣＵの記憶部３１に記憶してある更新情報において、自ＥＣＵの動作状態を動作中から待機中に変更するものであってもよい。
【００８０】
待機中ＥＣＵ３ｂの制御部３０は、自ＥＣＵを動作中ＥＣＵ３ａに遷移する。（Ｓ１０４）。待機中ＥＣＵ３ｂの制御部３０は、自ＥＣＵの記憶部３１に記憶してある更新情報において、自ＥＣＵの動作状態を待機中から動作中に変更することにより、動作中ＥＣＵ３ａに遷移する。
【００８１】
車両ＣのＩＧスイッチ８がオフされた後、オンされることにより、更新プログラムに対応する車載装置７及び当該車載装置７に直接接続される専用ＥＣＵ６は、停止された後、起動する。更新プログラムに対応する車載装置７が停止している間に、更新プログラムを取得した待機中ＥＣＵ３ｂを動作中ＥＣＵ３ａに遷移させることにより、更新プログラムを適用するだけのために当該車載装置７を停止させることを回避することができ、汎用ＥＣＵ３が車載装置７を制御することができない期間を短縮することができる。
【００８２】
当該車載装置７が停止する前にて動作中ＥＣＵ３ａであった汎用ＥＣＵ３は、車載装置７が停止している間に待機中ＥＣＵ３ｂに遷移する。待機中ＥＣＵ３ｂに遷移した汎用ＥＣＵ３の記憶部３１には、旧プログラム（更新プログラムの前バージョンのプログラム）が記憶されているが、待機中ＥＣＵ３ｂは、当該旧プログラムを実行することなく待機処理をしているので、車載装置７の制御に影響を与えることを防止することができる。すなわち、待機中ＥＣＵ３ｂは、車載装置７を制御するための情報（信号）の出力を実質的に停止している。
【００８３】
制御部３０は、自ＥＣＵを動作中ＥＣＵ３ａに遷移するにあたり、自ＥＣＵの記憶部３１に記憶してある構成情報において、自ＥＣＵの動作状態に関する情報を修正する。動作状態に関する情報の修正内容は、自ＥＣＵの動作状態を待機中から動作中に変更すると共に、（Ｓ１０３）の処理にて信号を送信した動作中ＥＣＵ３ａの動作状態を動作中から待機中に変更するものである。更に、構成情報の修正内容は、自ＥＣＵのＳｏｆｔｗａｒｅ部番、バージョン及び機能グループを、取得した更新プログラムのＳｏｆｔｗａｒｅ部番、バージョン及び機能グループに変更することも含む。
【００８４】
制御部３０は、修正した構成情報を、他の汎用ＥＣＵ３及び中継装置２に向けて送信する。当該構成情報を受信した他の汎用ＥＣＵ３は、自ＥＣＵに記憶されている構成情報を、受信した構成情報に入れ替えることにより、現時点における汎用ＥＣＵ３夫々の動作状態（動作中又は待機中）等が含まれる構成情報を共有することができる。
【００８５】
動作中ＥＣＵ３ａとなった汎用ＥＣＵ３の制御部３０（動作中ＥＣＵ３ａの制御部３０）は、ＩＧオンの信号を受信した否か判定する（Ｓ１０５）。動作中ＥＣＵ３ａとなった汎用ＥＣＵ３の制御部３０は、例えば中継装置２から送信されるＩＧスイッチ８のオンに関する情報（ＩＧオンの信号）に基づき、ＩＧオフの信号を受信したか否かを判定する。
【００８６】
ＩＧオンの信号を受信していない場合（Ｓ１０５：ＮＯ）、動作中ＥＣＵ３ａとなった汎用ＥＣＵ３の制御部３０は、再度Ｓ１０５の処理を実行すべく、ループ処理を行う。
【００８７】
ＩＧオンの信号を受信した場合（Ｓ１０５：ＹＥＳ）、動作中ＥＣＵ３ａとなった汎用ＥＣＵ３の制御部３０は、車載装置７の制御情報を出力する（Ｓ１０６）。制御部３０は、取得した更新プログラムを実行することにより、当該更新プログラムに対応する車載装置７を制御するための情報を生成し、車載装置７に直接接続されている専用ＥＣＵ６に当該情報を送信（出力）する。
【００８８】
動作状態を遷移させる信号を受信して待機中ＥＣＵ３ｂとなった汎用ＥＣＵ３の記憶部３１には、上述のごとく更新プログラムの前バージョンのプログラム（旧プログラム）が記憶されている。待機中ＥＣＵ３ｂとなった汎用ＥＣＵ３は、当該旧プログラムを実行することなく、中継装置２から送信される次の更新プログラムを待ち受ける待機処理を行う。中継装置２から次の更新プログラムが送信された場合、待機中ＥＣＵ３ｂとなった汎用ＥＣＵ３は、Ｓ１００からの処理を実行する。
【００８９】
中継装置２から更新プログラムが送信される都度、すなわちプログラムの更新処理（リプロ処理）が実行される都度、待機中ＥＣＵ３ｂは、当該更新プログラムを取得して動作中ＥＣＵ３ａに遷移することにより、当該更新プログラムを実行する。更新プログラムの前バージョンのプログラム（旧プログラム）を実行していた動作中ＥＣＵ３ａは、待機中ＥＣＵ３ｂに遷移する。この様に更新プログラムによるプログラムの更新処理の都度、待機中ＥＣＵ３ｂが移り変わる。待機中ＥＣＵ３ｂは、車載装置７を制御するための情報の生成及び出力を停止しているため、車載装置７が動作している間であっても、更新プログラムを取得することができる。更に待機中ＥＣＵ３ｂから動作中ＥＣＵ３ａへの遷移は、例えばＩＧスイッチ８がオフにされている間にて、極めて短時間で行われるため、動作中ＥＣＵ３ａによって車載装置７を制御できない時間を短縮することができる。又、当該待機中ＥＣＵ３ｂは、更新プログラムの前バージョンのプログラム（旧プログラム）を保持するため、当該更新プログラムに問題が発生した場合、当該旧プログラムによりロールバック処理を行うことができる。
【００９０】
（実施形態２）
図６は、実施形態２（専用ＥＣＵ６なし）に係るプログラム更新システムＳの構成を例示する模式図である。実施形態２のプログラム更新システムＳは、汎用ＥＣＵ３及び車載装置７による全ての組合せにおいて、汎用ＥＣＵ３夫々と車載装置７夫々とを接続する点で実施形態１と異なる。
【００９１】
汎用ＥＣＵ３は、実施形態１と同様に動作中ＥＣＵ３ａ及び待機中ＥＣＵ３ｂを含む。全ての汎用ＥＣＵ３は、制御対象となる全ての車載装置７と例えばシリアルケーブル等のワイヤーハーネスにより通信可能に接続されている。汎用ＥＣＵ３夫々は中継装置２又は実施形態１の専用ＥＣＵ６と同様の入出力Ｉ／Ｆ（図示せず）を備え、ワイヤーハーネスは当該入出力Ｉ／Ｆに接続される。
【００９２】
図６において、一例として３つの汎用ＥＣＵ３及び２つの車載装置７が示されている。汎用ＥＣＵ３夫々は、２本のワイヤーハーネスにより、２つの車載装置７夫々と接続されている。すなわち、汎用ＥＣＵ３と車載装置７とによる全ての組合せに対応するように、汎用ＥＣＵ３夫々と車載ＥＣＵ夫々は、ワイヤーハーネスによって接続されている。
【００９３】
動作状態が動作中の汎用ＥＣＵ３、すなわち動作中ＥＣＵ３ａは、記憶部３１に記憶してあるプログラムを実行し、当該プログラムに対応する車載装置７を制御するための情報を生成し、生成した情報を入出力Ｉ／Ｆを介して当該車載装置７に出力する。
【００９４】
汎用ＥＣＵ３及び車載装置７による全ての組合せにおいて、汎用ＥＣＵ３夫々と車載装置７夫々とを接続することにより、専用ＥＣＵ６を不要とすることができる。
【００９５】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９６】
Ｃ  車両
Ｓ  プログラム更新システム
Ｓ１  プログラム提供装置（外部サーバ）
Ｓ１１  記憶部
１  車外通信装置
１１  車外通信部
１２  入出力Ｉ／Ｆ
１３  アンテナ
２  中継装置
２０  制御部
２１  記憶部
２２  記録媒体
２３  車内通信部
２４  入出力Ｉ／Ｆ
３  汎用ＥＣＵ（車載ＥＣＵ）
３ａ  動作中ＥＣＵ
３ｂ  待機中ＥＣＵ
３０  制御部
３１  記憶部
３２  車内通信部
４  車内ＬＡＮ
５  表示装置
６  専用ＥＣＵ（車載ＥＣＵ）
７  車載装置
８  ＩＧスイッチ
【図１】
2020075580.tif 000003
【図２】
2020075580.tif 000004
【図３】
2020075580.tif 000005
【図４】
2020075580.tif 000006
【図５】
2020075580.tif 000007
【図６】
2020075580.tif 000008