(57)【要約】【課題】動的に変更可能な更新条件に基づいてプログラムを更新することができるソフトウェア更新装置を提供する。【解決手段】通信部は外部装置と通信する。ダウンロード部は、電子機器のソフトウェアを更新する更新ソフトウェアと、前記ソフトウェアの更新を実行するための更新条件を示す更新条件情報とを、通信部を介して、外部装置から受信する。更新可否判定部は、更新条件が満足しているか否かを判定する。【選択図】図１
2016218932.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行する電子機器と接続されるソフトウェア更新装置であって、
外部装置と通信する通信部と、
前記電子機器のソフトウェアを更新する更新ソフトウェアと、前記ソフトウェアの更新を実行するための更新条件を示す更新条件情報とを、前記通信部を介して前記外部装置から受信するダウンロード部と、
前記更新条件が満足しているか否かを判定する更新可否判定部と、
前記更新条件が満足していると判定したときに、前記更新ソフトウェアを用いた前記ソフトウェアの更新を前記電子機器に指示する伝送部と
を備える、ソフトウェア更新装置。
【請求項２】
請求項１に記載のソフトウェア更新装置であって、
前記電子機器は、前記ソフトウェアの更新に不備が生じたときには、前記ソフトウェア更新装置へとエラー通知を行い、
前記通信部は前記外部装置と無線通信を行い、
前記更新可否判定部は、前記外部装置との無線通信が可能であるか否かも判定し、
前記伝送部は、前記更新条件が満足し、かつ、前記外部装置との無線通信が可能であると、前記更新可否判定部が判定したときに、前記更新を前記電子機器に指示し、
前記ソフトウェア更新装置は、
前記エラー通知を前記電子機器から受け取ったときに、前記通信部を介して、その旨を前記外部装置に送信するエラー通知部を更に備える、ソフトウェア更新装置。
【請求項３】
請求項２に記載のソフトウェア更新装置であって、
前期電子機器は車両に設けられており、
前記電子機器は前記車両の走行に関する機器である、ソフトウェア更新装置。
【請求項４】
請求項１または請求項２に記載のソフトウェア更新装置であって、
ユーザインターフェースを更に備え、
前記更新可否判定部は、前記更新条件が満足していると判定したときに、前記ユーザインターフェースを介して、ユーザに更新の実行の可否を問い合わせる、ソフトウェア更新装置。
【請求項５】
請求項４に記載のソフトウェア更新装置であって、
前記更新可否判定部は、前記更新ソフトウェアの重要度を示す重要度情報を、前記通信部を介して受け取り、前記重要度が基準値よりも高いときには、前記ユーザに問い合せることになく、前記更新が可能であると判定する、ソフトウェア更新装置。
【請求項６】
請求項１から請求項５のいずれか一つに記載のソフトウェア更新装置であって、
前記電子機器には、前記ソフトウェアの更新を実行する更新条件が設定されており、
前記ソフトウェア更新装置は、
前記外部装置からの前記更新条件情報がないときには、前記電子機器側で設定された前記更新条件を採用する更新条件決定部を更に備える、ソフトウェア更新装置。
【請求項７】
請求項１から請求項６のいずれか一つに記載のソフトウェア更新装置であって、
前記通信部は、前記更新ソフトウェアよりも前記更新条件情報を先に受信し、
前記更新可否判定部によって前記更新条件が満足していると判定されたときに、前記ダウンロード部が前記外部装置から前記更新ソフトウェアを受信し、前記伝送部が当該更新ソフトウェアを用いた前記ソフトウェアの更新を前記電子機器に指示する、ソフトウェア更新装置。
【請求項８】
ソフトウェアを実行する電子機器と、
前記電子機器のソフトウェアを更新する更新ソフトウェアと、前記ソフトウェアの更新を実行するための更新条件を示す更新条件情報とを格納する外部装置と、
前記電子機器に接続されるとともに、前記外部装置と通信するソフトウェア更新装置と
を備え、
前記ソフトウェア更新装置は、
前記外部装置と通信する通信部と、
前記更新ソフトウェアと前記更新条件情報とを、前記通信部を介して、前記外部装置から受信するダウンロード部と、
前記更新条件が満足しているか否かを判定する更新可否判定部と、
前記更新条件が満足していると判定したときに、前記電子機器に前記更新ソフトウェアを用いた前記ソフトウェアの更新を指示する伝送部と
を備える、ソフトウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新装置およびソフトウェア更新システムに関する。
【背景技術】
【０００２】
特許文献１には、車両に搭載される車載装置が記載されている。この車載装置はプログラムを記憶しており、このプログラムを実行することで動作する。また車載装置は、プログラム提供会社などに配置されたセンターサーバと通信を行うことができる。このセンターサーバには、車載装置のプログラムについての更新情報が格納されている。特許文献１では、車載装置は、エンジンの停止が検出されたときに、センターサーバに更新情報を要求する。この要求を受け取ったセンターサーバは、更新情報を車載装置へと送信する。そして、車載装置は、その更新情報に更新ファイルが存在するか否かを判断し、更新ファイルが存在するときに、その更新ファイルを用いてプログラムを更新している。
【０００３】
また本願に関連する技術として特許文献２を掲示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２４９９１４号公報
【特許文献２】特開２０１４−１１８０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ソフトウェアの更新を行うための更新条件に関して、なお工夫の余地がある。例えば特許文献１では、エンジンの停止を更新条件として採用している。つまりエンジンが停止しているときに、ソフトウェアを更新している。しかるに、更新ソフトウェアの内容によっては、他の更新条件を採用した方がいい場合もある。つまり更新条件を、更新ソフトウェアの内容に応じて動的に変更した方がいい場合もある。
【０００６】
そこで本発明は、動的に変更可能な更新条件に基づいてソフトウェアを更新できるソフトウェア更新装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
ソフトウェア更新装置およびソフトウェア更新システムが開示される。一実施の形態においては、ソフトウェア更新装置は、ソフトウェアを実行する電子機器と接続される。ソフトウェア更新装置は、通信部と、ダウンロード部と、更新可否判定部と、伝送部とを備える。通信部は、外部装置と通信する。ダウンロード部は、電子機器のソフトウェアを更新する更新ソフトウェアと、ソフトウェアの更新を実行するための更新条件を示す更新条件情報とを、通信部を介して、外部装置から受信する。更新可否判定部は更新条件が満足しているか否かを判定する。伝送部は、更新条件が満足していると判定したときに、更新ソフトウェアを用いたソフトウェアの更新を電子機器に指示する。
【０００８】
ソフトウェア更新システムは、電子機器と外部装置とソフトウェア更新装置とを備える。電子機器はソフトウェアを実行する。外部装置は、電子機器のソフトウェアを更新する更新ソフトウェアと、ソフトウェアの更新を実行するための更新条件を示す更新条件情報とを格納する。ソフトウェア更新装置は通信部とダウンロード部と更新可否判定部と伝送部とを備える。通信部は、外部装置と通信する。ダウンロード部は更新ソフトウェアと更新条件情報とを、通信部を介して外部装置から受信する。更新可否判定部は更新条件が満足しているか否かを判定する。伝送部は更新条件が満足していると判定したときに、電子機器に更新ソフトウェアを用いたソフトウェアの更新を指示する。
【発明の効果】
【０００９】
本ソフトウェア更新装置および本ソフトウェア更新システムによれば、動的に変更可能な更新条件に基づいてソフトウェアを更新することができる。
【図面の簡単な説明】
【００１０】
【図１】ソフトウェア更新システムの一例を概略的に示す図である。
【図２】更新制御部の動作の一例を示すフローチャートである。
【図３】ソフトウェア更新システムと外部装置との通信の一例を概略的に示す図である。
【図４】更新制御部の動作の一例を示すフローチャートである。
【図５】更新制御部の内部構成の一例を概略的に示す図である。
【図６】更新制御部の動作の一例を示すフローチャートである。
【図７】更新制御部の動作の一例を示すフローチャートである。
【図８】更新制御部の動作の一例を示すフローチャートである。
【図９】更新制御部の動作の一例を示すフローチャートである。
【図１０】更新制御部の内部構成の一例を概略的に示す図である。
【図１１】更新制御部の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、ソフトウェア更新装置１の構成の一例を示す概略的な図である。このソフトウェア更新装置１は電子機器３と接続されている。なお、ここでいう接続とは、有線での接続の他、無線での接続をも含む。図１に例示するように、ソフトウェア更新装置１は複数の電子機器３と接続されていてもよい。
【００１２】
電子機器３は処理部３１と記憶部３２とを有している。なお図１では、一つの電子機器３についてのみ、その内部構成が図示されているものの、他の電子機器３も処理部３１と記憶部３２とを有している。
【００１３】
記憶部３２は例えばＲＯＭ(Read only Memory)などであって、当該電子機器３の動作を規定するソフトウェアＰ１（プログラムおよび設定値を含み、また、ファームウェアも含む）を記憶している。処理部３１は例えばＣＰＵ(Central Processing Unit）またはＤＳＰ(digital signal processor)などであって、このソフトウェアＰ１を記憶部３２から読み出して実行することで、電子機器３が動作する。
【００１４】
ソフトウェア更新装置１は各電子機器３へと更新ソフトウェアＵＰ１を伝送することができる。各電子機器３の処理部３１はソフトウェア更新装置１から更新ソフトウェアＵＰ１を受け取り、自身の記憶部３２に記憶されたソフトウェアＰ１を、更新ソフトウェアＵＰ１を用いて更新することができる。これにより、各電子機器３の処理部３１は最新のソフトウェアＰ１で動作する。なお以下では、処理部３１の動作を電子機器３の動作として説明することがある。例えば電子機器３がソフトウェアＰ１を更新する、と説明することがある。
【００１５】
かかるソフトウェア更新装置１および電子機器３は任意のシステムに設けられてよいものの、例えば車両に設けられる。この場合、複数の電子機器３としては、例えば車両の各構成を制御するＥＣＵ(electronic control unit)を採用できる。例えば、エンジンを制御するエンジンＥＣＵ、ブレーキを制御するブレーキＥＣＵ、オーディオを制御するオーディオＥＣＵ、撮像部（画像センサ）を制御する撮像ＥＣＵ、および、セキュリティー装置を制御するセキュリティーＥＣＵなどが挙げられる。セキュリティー装置としては、例えばエンジン停止中の振動に応じて警報を発する警報装置、または、エンジン停止中にステアリングをロックするロック装置などを採用できる。
【００１６】
図１に示すように、ソフトウェア更新装置１は外部装置２と通信可能である。外部装置２は例えばサーバであって、更新ソフトウェアＵＰ１を配信するための装置である。外部装置２は例えば更新設定部２１と通信部２２とユーザインターフェース２３とを備えている。通信部２２は例えば無線により、ソフトウェア更新装置１と通信を行うことができる。ユーザインターフェース２３は例えば表示部と入力部とを備えている。表示部には、ユーザへの通知内容および操作メニューなどが表示される。入力部はユーザによって操作され、その操作内容を、例えば更新設定部２１へと入力する。
【００１７】
更新設定部２１は、入力部に対するユーザの入力に応じて、更新ソフトウェアＵＰ１を設定することができる。例えば更新設定部２１は、更新ソフトウェアＵＰ１を外部装置２の記憶部（不図示）に記憶する。さらに更新設定部２１は、入力部に対するユーザの入力に応じて、更新条件情報も設定することができる。更新条件情報とは、更新ソフトウェアＵＰ１を実行するための条件を示している。後に詳述するように、ソフトウェア更新装置１は、更新条件情報で示された条件が成立するときに、その更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新を電子機器３に行わせる。この更新条件情報も、外部装置２の記憶部に記憶される。
【００１８】
また更新設定部２１は、更新ソフトウェアＵＰ１のバージョン情報と更新条件情報とを対応付けた更新リストを生成してもよい。バージョン情報は、所定のソフトウェアＰ１に対して複数回の更新を行う場合に、その更新ソフトウェアＵＰ１が何回目の更新に相当するのかの情報を示している。この更新リストをソフトウェア更新装置１へと送信すれば、ソフトウェア更新装置１は、設定された更新ソフトウェアＵＰ１のバージョンと、その更新ソフトウェアＵＰ１の更新条件とを、更新リストに基づいて了知することができる。
【００１９】
図１に示すように、ソフトウェア更新装置１は更新制御部１１と通信部１２と指示受付部１４とダウンロード部１５とを備えている。通信部１２は例えば無線により、外部装置２と通信することができる。
【００２０】
更新制御部１１、指示受付部１４およびダウンロード部１５を含む部分は、電子機器３におけるソフトウェアＰ１の更新を制御できる。以下に、より具体的に説明する。
【００２１】
指示受付部１４は無線部１２を介して外部装置２から更新通知を受信できる。この更新通知は例えば外部装置２において新たな更新ソフトウェアが設定されたときに行われる。
【００２２】
ダウンロード部１５は通信部１２を介して、更新ソフトウェアＵＰ１と、これに対応する更新条件情報とを外部装置２から受信することができる。また、外部装置２が上述の更新リストを送信する場合には、ダウンロード部１５は通信部１２を介して当該更新リストを受信することもできる。
【００２３】
図２は、更新ソフトウェアＵＰ１を受信するときの更新制御部１１の具体的な動作の一例を示すフローチャートである。この例では、外部装置２がソフトウェア更新装置１へと更新通知を行う。この更新通知は、例えば外部装置２において更新ソフトウェアＵＰ１が設定されたとき、または、所定の期間ごとに行われる。図２に示すように、まずステップＳＴ１にて、通知受付部１４は、外部装置２からの更新通知を受信したか否かを判定する。更新通知を受信していないと判定したときに、再びステップＳＴ１を実行する。
【００２４】
更新通知を受信したと判定した場合には、ステップＳＴ２にて、例えばダウンロード部１５は通信部１２を介して、更新リストを外部装置２へと要求し、更新リストを取得する。更新リストには、例えば表１に示すように、各電子機器３についての更新ソフトウェアＵＰ１のバージョンと、その各更新ソフトウェアＵＰ１についての更新条件情報とが含まれている。
【００２５】
【表１】
2016218932.tif 000003
【００２６】
表１は、電子機器３として、エンジンＥＣＵと撮像ＥＣＵとを採用した場合の更新リストの一例を示している。表１の例では、エンジンＥＣＵの更新ソフトウェアＵＰ１のバージョンとして、「１．０１」が示されている。また更新条件として、エンジンの停止が採用されている。エンジンが動作しているときには、エンジンＥＣＵのソフトウェアＰ１が実行中であり、これを更新できないからである。
【００２７】
また表１の例では、撮像ＥＣＵの更新ソフトウェアＵＰ１のバージョンとして、「１．０５」が示されている。また更新条件として、車両が後方走行をしていないことが採用されている。ここでは、撮像部が車両の後方走行時に動作することを想定しているからである。つまり、撮像ＥＣＵのソフトウェアＰ１が後方走行時に実行されるので、この実行中にソフトウェアＰ１の更新を行わないのである。
【００２８】
ここで、後方走行時の撮像ＥＣＵの動作の一例について説明する。例えば４台の撮像部がそれぞれ車両の前方、後方および両側に搭載される。撮像ＥＣＵは後方走行時にこの４台の撮像部を制御し、各撮像部で撮像された映像を適宜に変換して合成することで、鉛直上方から車両を見たときの映像を生成する。そしてこの映像を車内の表示部に表示する。これにより、ユーザは表示部を視認することで、車両の位置および姿勢を容易に確認することができる。ひいては、容易に駐車することができるのである。
【００２９】
ステップＳＴ２の次のステップＳＴ３にて、更新制御部１１は、実行すべき更新ソフトウェアＵＰ１があるか否かを更新リストに基づいて判定する。
【００３０】
例えば電子機器３に記憶されている現在のソフトウェアＰ１のバージョンと、更新ソフトウェアＵＰ１のバージョンとを比較し、これらが同一であれば、更新は不要である。つまりこの場合には、更新制御部１１は更新ソフトウェアを実行すべきと判定しない。
【００３１】
また、例えば更新条件を判定するための判定情報が例えば電子機器３から更新制御部１１に入力されていない場合は、更新条件の判定ができないので、更新は不要である。例えば、エンジンの停止が更新条件であるときに、エンジンの動作／停止の状態を示す情報がエンジンＥＣＵから更新制御部１１に入力されていない場合がある。この場合には、この更新条件を判定することができないので、その更新条件に対応する更新ソフトウェアＵＰ１は実行しない。よってこの場合にも、ダウンロード部１５は更新ソフトウェアを実行すべきとは判定しない。
【００３２】
逆に言えば、例えば次の場合にダウンロード部１５は更新ソフトウェアを実行すべきと判定する。即ち、更新ソフトウェアＵＰ１のバージョンが電子機器３の現在のソフトウェアＰ１のバージョンよりも上位であり、かつ、その更新ソフトウェアＵＰ１に対応する更新条件を判定するために必要な判定情報が、例えば電子機器３から更新制御部１１に入力されているときに、その更新ソフトウェアＵＰ１は実行すべき更新ソフトウェアであると判定する。
【００３３】
ステップＳＴ３にて、実行すべき更新ソフトウェアＵＰ１がないと判定したときには、再びステップＳＴ１を実行する。ステップＳＴ３にて、実行すべき更新ソフトウェアＵＰ１があると判定したときには、ステップＳＴ４にて、ダウンロード部１５は外部装置２へとその更新ソフトウェアＵＰ１を要求し、その更新ソフトウェアＵＰ１を取得する。そして、ダウンロード部１５は更新ソフトウェアＵＰ１と更新条件情報とを更新制御部１１へと出力する。
【００３４】
以上のようにして、更新制御部１１は、実行すべき更新ソフトウェアＵＰ１と、これに対応する更新条件情報とを取得する。
【００３５】
図３は、実行すべき更新ソフトウェアＵＰ１があるときの、ソフトウェア更新装置１と外部装置２との間の通信の一例を概略的に示している。まず、外部装置２からソフトウェア更新装置１へと更新通知が送信される。次に、ソフトウェア更新装置１が外部装置２へとリスト要求を送信する。この要求を受け取った外部装置２は更新リストを送信する。ソフトウェア更新装置１は、当該更新リストを確認して、実行すべき更新ソフトウェアＵＰ１があると判定し、更新ソフトウェアＵＰ１を要求する。この要求を受け取った外部装置２は更新ソフトウェアＵＰ１をソフトウェア更新装置１へと送信する。
【００３６】
なお図２および図３の例では、実行すべき更新ソフトウェアＵＰ１があるか否かを、まず判定している。そして、肯定的な判定がなされたときに、その更新ソフトウェアＵＰ１を外部装置２から取得している。これはソフトウェア更新装置１にとって必須要件ではないものの、通信量を低減することができる。なぜなら、更新ソフトウェアＵＰ１のデータ量が、更新リストのデータ量よりも大きいからである。つまり、まずデータ量の小さい更新リストを要求し、これを用いて必要な更新ソフトウェアＵＰ１を判定した上で、この更新ソフトウェアＵＰ１を要求することで、不要な更新ソフトウェアＵＰ１の通信を回避し、以て、通信量を低減しているのである。
【００３７】
次に、ソフトウェアＰ１を更新する際の動作について述べる。図１に示すように、更新制御部１１は更新可否判定部１１１と伝送部１１２とを有している。
【００３８】
なお更新制御部１１、通知受付部１４およびダウンロード部１５は例えば不図示の処理部（例えばＣＰＵまたはＤＳＰなど）と、不図示の記憶部（例えばＲＯＭなど）とを備えていてもよい。当該記憶部には、当該処理部によって実行されるソフトウェアが記憶されている。そして、この処理部が当該ソフトウェアを実行することで、更新制御部１１の機能（例えば更新可否判定部１１１および伝送部１１２）、通知受付部１４の機能およびダウンロード部１５の機能を実現してもよい。ただしこれに限らず、これらの機能の全部または一部をハードウェアで構成しても構わない。
【００３９】
更新可否判定部１１１には、実行すべき更新ソフトウェアＵＰ１の更新条件情報が入力されるとともに、その更新条件の判定に必要な各種の判定情報も入力されている。更新可否判定部１１１は、更新条件が満足しているか否かを、判定情報に基づいて判定することができる。
【００４０】
例えばエンジンＥＣＵについての更新ソフトウェアＵＰ１に対しては、判定情報として、エンジンの状態を示す情報を採用できる。例えば、車両にはエンジンキーの状態を検出する検出部が設けられており、エンジンの状態情報が判定情報として更新可否判定部１１１に入力されていてもよい。
【００４１】
また例えば撮像ＥＣＵについての更新ソフトウェアＵＰ１に対しては、判定情報として、車両が後方走行を行っているか否かを示す情報を採用できる。例えば車両に、ギアを変更するためのシフトレバーの状態を検出する検出部が設けられており、シフトレバーの状態情報が判定情報として更新可否判定部１１１に入力されていてもよい。
【００４２】
伝送部１１２は更新ソフトウェアＵＰ１を、対応する電子機器３へと伝送できる。例えば更新条件が満足したと更新可否判定部１１１が判定したときに、その更新条件に対応する更新ソフトウェアＵＰ１を電子機器３へと伝送できる。この場合、電子機器３は受け取った更新ソフトウェアＵＰ１を速やかに実行する。
【００４３】
あるいは、伝送部１１２は、更新条件とは無関係に更新ソフトウェアＵＰ１を電子機器３へと伝送しておき、更新条件が満足したときに、更新ソフトウェアＵＰ１の実行指示を電子機器３へと伝送してもよい。この場合、電子機器３は実行指示を受けて、更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新を実行する。以下では、一例として、更新条件が満足したときに更新ソフトウェアＵＰ１を伝送する態様を説明する。この態様では、更新ソフトウェアＵＰ１を受け取った電子機器３が速やかに更新を行うことから、更新ソフトウェアＵＰ１は、電子機器３に対する実行指示としても機能することとなる。
【００４４】
図４は、更新ソフトウェアＵＰ１を実行するときの更新制御部１１の動作の一例を示すフローチャートである。まずステップＳＴ１０にて、更新可否判定部１１１は、更新条件情報で示される更新条件が満足しているか否かを、取得した更新ソフトウェアＵＰ１ごとに判定する。この判定は、取得した全ての更新ソフトウェアＵＰ１に対して実行する。いずれの更新ソフトウェアＵＰ１でも更新条件が満足しないと判定したときには、再びステップＳＴ１０を実行し、次の更新通知を待つ。
【００４５】
いずれかの更新ソフトウェアＵＰ１に対応する更新条件が満足していると判定したときには、ステップＳＴ１１にて、伝送部１１２は、その更新条件に対応する更新ソフトウェアＵＰ１を、対応する各電子機器３へと伝送する。電子機器３（より詳細には処理部３１）は、受け取った更新ソフトウェアＵＰ１を用いて、ソフトウェアＰ１を更新する。
【００４６】
例えば更新可否判定部１１１には、エンジンキーの状態情報が入力される。そして、更新可否判定部１１１は、エンジンＥＣＵの更新条件の判定として、エンジンが停止しているか否かを判定する。エンジンが停止していると判定したときには、伝送部１１２は、対応する更新ソフトウェアＵＰ１を、エンジンＥＣＵへと伝送する。エンジンＥＣＵは受け取った更新ソフトウェアＵＰ１を用いて、自身のソフトウェアＰ１を更新する。
【００４７】
また例えば更新可否判定部１１１には、シフトレバーの状態情報が入力される。そして更新可否判定部１１１は、撮像ＥＣＵの更新条件の判定として、シフトレバーの状態が後方走行時の状態であるか否かを判定する。シフトレバーが後方走行時の状態ではないと判定したときには、伝送部１１２は、対応する更新ソフトウェアＵＰ１を、撮像ＥＣＵへと伝送する。撮像ＥＣＵは受け取った更新ソフトウェアＵＰ１を用いて、自身のソフトウェアＰ１を更新する。
【００４８】
以上のように、更新条件を満足するときに、更新ソフトウェアＵＰ１が実行される。よって各電子機器３に対する更新ソフトウェアＵＰ１を、各々に適切なタイミングで実行することができる。
【００４９】
しかも外部装置２において、更新条件情報を設定し、その更新条件情報を外部装置２からソフトウェア更新装置１へと送信している。よって例えばソフトウェア更新装置１が複数存在する場合に、作業員がそれぞれのソフトウェア更新装置１まで出向いて、更新条件を設定する必要はなく、外部装置２において更新条件を設定するだけでよい。つまり、外部装置２における更新条件の設定によって、実質的に全てのソフトウェア更新装置１に対して、容易に更新条件を変更できるのである。
【００５０】
また、あるソフトウェアＰ１に対して更新条件の変更を要する場合がある。例えば、上述したように車両が後方走行していないときに撮像ＥＣＵがソフトウェアＰ１を更新する例では、ソフトウェアＰ１の更新によって、撮像ＥＣＵに、走行中の景色を撮影する機能が新たに組み込まれる場合がある。このような機能が組み込まれた場合、車両の前方走行中に撮像ＥＣＵが動作するので、前方走行中にも撮像ＥＣＵのソフトウェアＰ１を更新することは好ましくない。
【００５１】
そこで作業員は、次の更新ソフトウェアＵＰ１を設定する際に、外部装置２において、撮像ＥＣＵについての更新条件情報を再設定（変更）する。例えばエンジンの停止を更新条件に設定する。表２は、この更新リストの一例を示している。
【００５２】
【表２】
2016218932.tif 000004
【００５３】
表２では、撮像ＥＣＵに対して、バージョン「１．０５」の更新ソフトウェアＵＰ１と、バージョン「２．００」の更新ソフトウェアＵＰ１とが存在していることが示されている。なおここではバージョンは、数字が大きいほど新しいことを示している。また表２では、バージョン「２．００」の更新ソフトウェアＵＰ１の更新条件として、「エンジンの停止」が採用されている。これは、バージョン「１．０５」の更新ソフトウェアによって、前方走行のときにも動作する機能が撮像ＥＣＵに追加されたことによる。
【００５４】
このように更新条件が再設定されることにより、撮像ＥＣＵの更新ソフトウェアＵＰ１を適切なタイミングで実行することができる。
【００５５】
以上のように、更新ソフトウェアＵＰ１によっては更新条件を変更する必要があるところ、本実施の形態によれば、外部装置２において更新条件情報を設定することができる。よって、このような更新条件の変更が容易になるのである。
【００５６】
表１および表２の例示では、簡単のためにエンジンＥＣＵと撮像ＥＣＵを例示したが、実際にはより多くの電子機器３が含まれていてもよい。
【００５７】
また、各車両に搭載される電子機器３の種類は車両ごとに異なり得る。例えば各車両のセキュリティー装置が相違する場合もある。このとき、セキュリティーＥＣＵのソフトウェアＰ１も互いに相違し、その更新ソフトウェアＵＰ１も互いに相違する。このような場合には、更新リストには、各車両に設けられる全種の電子機器３の情報を含んでいてもよい。つまり、ある車両にとっては、搭載されていない電子機器３の情報が更新リストに含まれていてもよい。この場合、更新制御部１１は、自身と接続される電子機器３の情報のみを更新リストから抽出すればよい。このような抽出は、電子機器３の識別情報（デバイスＩＤとも呼ばれる）に基づいて行うことができる。
【００５８】
以上のように、更新リストに全種の電子機器３の情報を含めれば、外部装置２の更新設定部２１は車両ごとに更新リストを生成する必要がないので、処理が容易である。
【００５９】
＜更新ソフトウェアの更新条件＞
更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新に不備（つまりエラー）が生じたときには、そのソフトウェアＰ１が実行できなくなる場合もあり得る。つまり更新によって電子機器３の機能不全を招き得る。例えばエンジンＥＣＵの機能を発揮できなくなると、ユーザは車両を移動させることができなくなる。
【００６０】
そこで、更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新に不備が生じたときに、外部装置２へとその旨を通知することを考える。しかしながら、無線通信においては、通信可能な範囲が存在する。よって、ソフトウェア更新装置１がこの範囲外に位置すれば、外部装置２と通信できない場合がある。このような場合には、ソフトウェアＰ１の更新に不備が生じたときに、速やかにその旨を外部装置２へと通知できない。特に移動体（ここでは車両）の移動機能が不全に陥ると、移動体を外部装置２と通信可能な圏内へと移動させることができない。よって、ユーザは他の手段で外部装置２（より詳細には作業員）と連絡する必要があり、手間がかかる。ユーザは往々にして作業員の連絡先を覚えておらず、その連絡先を調べる必要があるからである。
【００６１】
そこで、外部装置２と通信が可能な状態で、ソフトウェアＰ１の実行を行うことを企図する。図５は、更新制御部１１の内部構成の一例を概略的に示す図である。図５に示すように、更新制御部１１はエラー通知部１１３を更に備えている。
【００６２】
また、更新可否判定部１１１は、更新条件情報で示される更新条件の判定のみならず、外部装置２と通信が可能であるか否かも判定する。そして伝送部１１２は、更新条件情報で示される更新条件が満足し、かつ、ソフトウェア更新装置１と外部装置２との間の通信が可能であるときに、対応する電子機器３へと更新ソフトウェアを伝送する。つまり更新条件が満足し、かつ、ソフトウェア更新装置１と外部装置２との間の通信が可能であるときに、伝送部１１２は更新を電子機器３に指示するのである。
【００６３】
これにより、ソフトウェアＰ１の更新に不備が生じたとしても、このときには、ソフトウェア更新装置１は外部装置２と無線通信が可能である。そして、電子機器３はソフトウェアＰ１の更新に不備が生じたときに、その旨を更新制御部１１へと伝送する。この伝送を受け取ったエラー通知部１１３は、通信部１２を介して、電子機器３のソフトウェアＰ１の更新に不備が生じたことを外部装置２へと通知するのである。以下では、この通知をエラー通知とも呼ぶ。
【００６４】
エラー通知を受け取った外部装置２は、ユーザインターフェース２３を用いて、その旨を作業員に通知する。これにより、作業員は、ソフトウェアＰ１の更新に不備が生じたことを知ることができる。
【００６５】
例えば、ユーザの連絡先情報が外部装置２に格納されている場合には、作業員はユーザに連絡することができる。これにより、例えば車両に駆けつけて、ソフトウェアＰ１を復旧させやすい。
【００６６】
図６は更新制御部１１の具体的な動作の一例を示すフローチャートである。図４と比較してステップＳＴ１２を更に実行する。ステップＳＴ１２は、ステップＳＴ１１よりも前に実行され、図６の例示では、ステップＳＴ１０，ＳＴ１１の間に実行されている。
【００６７】
ステップＳＴ１２では、更新制御部１１は、通信部１２が外部装置２と通信可能か否かを判定する。例えば、外部装置２へと信号を送信し、その信号に対する応答を適切に受信したときに、外部装置２との通信が可能であると判定してもよい。
【００６８】
ステップＳＴ１０，ＳＴ１２の両方で肯定的な判定がなされると、ステップＳＴ１１にて、更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新が行われる。
【００６９】
図７はエラー通知部１１３の具体的な動作の一例を示すフローチャートである。ステップＳＴ２０にて、エラー通知部１１３は、電子機器３からエラー通知を受け取ったか否かを判定する。エラー通知を受け取っていないときには、再びステップＳＴ２０を実行する。電子機器３からエラー通知を受け取ったときには、ステップＳＴ２１にて、エラー通知部１１３は、通信部１２を介して外部装置２にエラー通知を送信する。
【００７０】
なおここでは移動可能な車両を用いて説明しているので、通信圏外により、ソフトウェア更新装置１が外部装置２と通信できない場合を説明した。しかるに、例えば通信障害によって、外部装置２とソフトウェア更新装置１とが互いに無線通信できない場合もある。このような場合でも、通信の復旧を待ってから、即ち、ソフトウェア更新装置１が外部装置２と通信可能になってから、ソフトウェアＰ１の更新を行うとよい。
【００７１】
＜エラー通知の要否＞
上述のように外部装置２と通信可能な状態でソフトウェアＰ１の更新を行うことは、全ての電子機器３に対して適用しなくてもよい。例えば車両の走行に寄与しない電子機器３は、外部装置２と通信できない状態で、ソフトウェアＰ１の更新を行ってもよい。なぜなら、車両の走行に寄与しない電子機器３に機能不全が生じても、その復旧の緊急性は低いと考えられるからである。逆にいえば、車両の走行に関する電子機器３については、ソフトウェア更新装置１と外部装置２とが通信可能な状態でソフトウェアＰ１の更新を行うとよい。これによれば、車両の走行に機能不全が生じたときに、上述のように、自動的に作業員へと連絡が入るからである。
【００７２】
＜ユーザへの問い合わせ＞
例えばある時点で更新条件が満足していても、その直後にユーザによる車両の操作によって更新条件が満足しなくなることもある。例えばエンジン停止が更新条件であるときに、ユーザがエンジンを始動すれば、更新条件が満足しなくなる。この場合には、ソフトウェアＰ１の更新を中断するか、あるいは、ユーザによる車両の操作を無効にする必要がある。
【００７３】
このような事態を回避すべく、ユーザの許可を得てからソフトウェアＰ１を更新してもよい。つまり、ユーザにソフトウェアＰ１の更新が行われることを通知し、許可を得てからソフトウェアＰ１の実行を行うことで、上記事態を回避するのである。図１の例示では、ソフトウェア更新装置１はユーザインターフェース１３を有している。このユーザインターフェース１３は、例えば表示部または音声出力部などの報知部と、入力部とを含んでいる。
【００７４】
例えば、更新可否判定部１１１は、更新条件を満足していると判断したときに、ユーザインターフェース１３を用いて、ソフトウェアＰ１の更新の可否をユーザに問い合せてもよい。この問い合わせは例えば表示または音声等によって行われる。また、この問い合わせに際して、更新の対象となる電子機器３と、その更新に必要な時間とをユーザに通知してもよい。更新に必要な時間は例えば作業員によって設定されてもよい。
【００７５】
ユーザは、ソフトウェアＰ１の更新を許可する場合に、ユーザインターフェース１３を介して、その旨を入力する。更新可否判定部１１１は、ユーザインターフェース１３から許可情報を受け取ると、ソフトウェアＰ１の更新が可能であると判定する。つまり、伝送部１１２は、更新条件情報で示される更新条件が満足し、かつ、ユーザの許可があると更新可否判定部１１１が判定したときに、対応する電子機器３へと更新を指示する。
【００７６】
これによれば、ユーザの許可なしにはソフトウェアＰ１が更新されないので、より確実に、ソフトウェアＰ１の更新をしてもよい状況で更新を実行できる。
【００７７】
図８は更新制御部１１の動作の一例を示すフローチャートである。図８の例示では、図４に比して、ステップＳＴ１３，ＳＴ１４が更に実行される。ステップＳＴ１３はステップＳＴ１０にて肯定的な判定がなされたときに実行される。ステップＳＴ１３においては、更新制御部１１はユーザインターフェース１３を用いて、更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新の可否をユーザに問い合せる。次にステップＳＴ１４にて、更新制御部１１はユーザの許可および拒否のいずれが入力されたのかを判定する。
【００７８】
ユーザが拒否を入力したと判定したときは、ステップＳＴ１０を再び実行する。ユーザが許可を入力した場合には、ステップＳＴ１１にて、更新ソフトウェアＵＰ１を用いたソフトウェアＰ１の更新を実行する。
【００７９】
＜更新ソフトウェアの重要度＞
更新ソフトウェアＵＰ１には重要度が設定されていてもよい。例えば軽微な更新に対しては、重要度を低く設定し、大幅な更新に対しては、重要度を高く設定してもよい。勿論、重要度の設定方法は任意である。この重要度の設定は外部装置２の更新設定部２１で適宜に設定すればよい。つまり作業員が更新ソフトウェアＵＰ１の設定と共に、その重要度を設定すればよい。
【００８０】
更新制御部１１は、更新ソフトウェアＵＰ１のみならず、重要度の情報（重要度情報）も外部装置２から受け取る。例えばこの重要度情報は更新リストに含まれてもよい。表３は、重要度情報を含んだ更新リストの一例を示している。
【００８１】
【表３】
2016218932.tif 000005
【００８２】
表３の例示では、エンジンＥＣＵの更新ソフトウェアＵＰ１の重要度は大きく、撮像ＥＣＵの更新ソフトウェアＵＰ１の重要度は小さい。なお重要度は、「大」「小」等の二値で示される必要はなく、多値で示されてもよい。
【００８３】
更新可否判定部１１１は、各更新ソフトウェアＵＰ１について、重要度が所定の基準値よりも高いか否かも判定する。そして、重要度が基準値よりも高い更新ソフトウェアＵＰ１については、更新条件が満足するときに、ユーザの許可がなくても、ソフトウェアＰ１の更新が可能であると判定する。一方で、重要度が所定の基準値よりも低い更新ソフトウェアＵＰ１については、更新条件が満足し、かつ、ユーザが許可したときに、ソフトウェアＰ１の更新が可能であると判定する。これにより、重要度の高いソフトウェアＰ１の更新を自動で行うことができる。
【００８４】
図９は更新制御部１１の具体的な動作の一例を示すフローチャートである。図９の例示では、図８に比して、ステップＳＴ１５が更に実行される。ステップＳＴ１５はステップＳＴ１０，ＳＴ１３の間に実行される。ステップＳＴ１５においては、更新制御部１１は満足した更新条件に対応する更新ソフトウェアＵＰ１の重要度が基準値よりも高いか否かを判定する。重要度が基準値よりも高いと判定したときには、ステップＳＴ１３，ＳＴ１４を実行せずに、ステップＳＴ１１を実行する。つまり、ユーザに問い合せることなく、ソフトウェアＰ１の更新が行われる。一方で、重要度が基準値よりも低いと判定したときには、ステップＳＴ１３，ＳＴ１４，ＳＴ１１を実行する。
【００８５】
＜ユーザの問い合わせの要否＞
上述の例では、重要度に応じてユーザの問い合わせの要否を決定した。しかるに、問い合わせの要否を示す要否情報を、外部装置２からソフトウェア更新装置１へと送信してもよい。この要否情報は例えば作業員によって設定される。例えば各更新ソフトウェアＵＰ１に対応した要否情報が更新リストに含まれてもよい。表４は、要否情報を含んだ更新リストの一例を示している。
【００８６】
【表４】
2016218932.tif 000006
【００８７】
＜電子機器３側で設定された更新条件＞
上述の例では、全ての更新ソフトウェアＵＰ１に対して、更新条件情報が設定されているものの、必ずしもこれに限らない。電子機器３側において、更新条件が設定される場合もあるからである。例えば電子機器３の記憶部３２には、自身のソフトウェアＰ１についての更新条件が予め設定されている。
【００８８】
図１０は、更新制御部１１の内部構成の一例を概略的に示す図である。図１０に示すように、更新制御部１１は更新条件決定部１１４を更に備えている。更新条件決定部１１４は、電子機器３で設定された更新条件も取得できる。例えば電子機器３へと更新条件を要求する要求信号を伝送し、電子機器３は自身に設定された更新条件を、要求信号に応じて返送する。そして、更新条件決定部１１４は、更新リストを外部装置２から受信したときに、更新条件情報が設定されていない更新ソフトウェアＵＰ１があるときには、電子機器３で設定された更新条件を、その更新ソフトウェアＵＰ１の更新条件として採用することができる。
【００８９】
これによれば、電子機器３で設定された更新条件を採用する場合には、外部装置２において更新条件情報を設定する必要がない。よって作業員の手間を低減することができる。
【００９０】
図１１は更新条件を決定するときの更新制御部１１の具体的な動作の一例を示す図である。ステップＳＴ３１にて、更新条件決定部１１４は、実行すべき更新ソフトウェアＵＰ１に対応する更新条件情報があるか否かを、更新リストに基づいて判定する。更新条件情報があると判定したときには、この更新条件情報で示される更新条件を採用する。更新条件情報がないと判定したときには、電子機器３で設定された更新条件を採用する。
【００９１】
なお、更新条件情報も電子機器３側の更新条件も設定されていないときには、更新制御部１１は、例えば、更新ソフトウェアＵＰ１を取得するとすぐに実行してもよい。
【００９２】
＜更新条件の例１＞
例えば更新条件として、自宅付近（例えば自宅の駐車場）でエンジンが停止することを採用してもよい。この更新条件は、例えばエンジンＥＣＵのソフトウェアＰ１の更新に対して適用することができる。つまり、自宅付近でエンジンを停止することは、ユーザが自宅へ戻ったと考えることができ、その後、比較的長い期間に亘って、エンジンが停止し続けると考えることができるのである。この場合、ソフトウェアＰ１の更新に適した状態が比較的長い期間に亘って維持されることとなる。
【００９３】
さて、車両の位置は例えば位置取得センサによって検出される。例えば位置取得センサは、ＧＰＳ(Global Positioning System)を利用して位置を取得してもよい。このＧＰＳにおいては、位置取得センサは複数の人工衛星からの信号を受信し、この信号に基づいて位置を算出する。
【００９４】
自宅位置情報は、例えばユーザによって入力される。図１の例示では、ソフトウェア更新装置１は例えばユーザインターフェース１３を有しており、ユーザはこのユーザインターフェース１３を介して、自宅の位置（例えば住所）を入力する。
【００９５】
更新可否判定部１１１はエンジンの状態、車両の位置および自宅位置情報に基づいて、更新条件が成立しているか否かを判定する。例えば、エンジンが停止に切り替わったときに車両が自宅付近に位置しているか否かを判定する。より具体的には、このタイミングでの車両の位置と自宅の位置との間の距離が所定の基準値よりも短いか否かを判定する。そして、当該距離が所定の基準値よりも短いときに、車両が自宅付近に位置していると判定するのである。
【００９６】
そして、更新条件を満足していると判定したときに、更新制御部１１は、更新ソフトウェアＵＰ１を、対応する電子機器３（エンジンＥＣＵ）へと伝送する。更新ソフトウェアＵＰ１を受け取った電子機器３（エンジンＥＣＵ）は、この更新ソフトウェアＵＰ１を用いて、自身のソフトウェアＰ１を更新する。
【００９７】
＜更新条件の例２＞
例えば更新条件として、ソフトウェアＰ１の復旧が可能な復旧場所（例えば販売店または修理店）の近傍でエンジンが停止することを採用してもよい。この更新条件は、例えばエンジンＥＣＵのソフトウェアの更新に対して適用することができる。復旧場所の位置情報は例えば予めソフトウェア更新装置１に格納されていてもよく、あるいは、例えば外部装置２から送信されてもよい。
【００９８】
これによれば、たとえ更新ソフトウェアＵＰ１を用いた更新に不備が生じても、ユーザは復旧場所へと速やかに移動して、更新に不備が生じたことを作業員に伝えることができる。
【００９９】
＜更新条件の例３＞
例えば更新条件として、所定の時間帯でエンジンが停止することを採用してもよい。この更新条件は、例えばエンジンＥＣＵのソフトウェアの更新に対して適用することができる。ユーザの行動パターンにおいて、車両を移動させない時間帯がほぼ決まっている場合がある。例えば夜間の２時から４時の間の時間帯では、ユーザは就寝しており、ほとんど車両を移動させないことがないことがある。そこで、この時間帯でエンジンが停止しているときに、ソフトウェアＰ１の更新を実行してもよい。
【０１００】
この時間帯は、例えばユーザによって入力されてもよい。例えばユーザインターフェース１３を用いて入力を行う。時刻は例えば計時回路（例えばタイマ回路）を設けることで計時できる。
【０１０１】
これによれば、エンジンの停止が維持されやすい時間帯で、ソフトウェアＰ１の更新を行うことができる。よって、ソフトウェアＰ１の更新を中断する必要性、あるいは、ユーザによる車両の操作を無効にする必要性を低減できる。
【０１０２】
＜更新条件の例４＞
過去の走行ログを記録し、このログに基づいて、エンジンの停止が維持されやすい時間帯を決定してもよい。走行ログは、ユーザが移動したルート、および、そのルートを通過した時間を含んでいる。
【０１０３】
＜更新条件の例５＞
電子機器３としては、セキュリティー装置を制御するセキュリティーＥＣＵを採用できる。このセキュリティー装置は、例えば運転手が乗っていないときに車両を悪意ある第三者から守るための装置である。セキュリティー装置としては、上述のように警報装置、または、ステアリングをロックするロック装置などを採用できる。
【０１０４】
このセキュリティー装置は、例えばエンジンが停止しているときに動作する。この場合には、更新条件として、エンジンの動作を採用してもよい。
【０１０５】
なお上述の一例では、ダウンロード部１５は外部装置２からの更新通知を受けたときに更新ソフトウェアＵＰ１を受信した。しかるに、更新ソフトウェアＵＰ１の受信は後のタイミングであってもよい。更新ソフトウェアＵＰ１は、ソフトウェアＰ１の更新の際に受信していれば足りるからである。よって、例えば、更新条件が成立すると更新可否判定部１１１が判定したときに、ダウンロード部１５が、その更新条件に対応する更新ソフトウェアＵＰ１を外部装置２から受信し、伝送部１１２がその更新ソフトウェアＵＰ１を、対応する電子機器３へと送信することで、ソフトウェアＰ１の更新を指示してもよい。
【０１０６】
これによれば、ソフトウェア更新装置１が外部装置２と通信できないときには、更新ソフトウェアＵＰ１を電子機器３へと送信できないので、ソフトウェアＰ１の更新を指示できない。言い換えれば、ソフトウェア更新装置１が外部装置２と通信できる状況で、ソフトウェアＰ１の更新を指示できる。よって、例えばソフトウェアＰ１の更新に不備が生じたときに、外部装置２へとエラー通知を行うことができる。
【０１０７】
また上述の一例では、ダウンロード部１５が更新ソフトウェアＵＰ１の要否を更新リストに基づいて判断していた。しかるに、外部装置２が更新ソフトウェアＵＰ１の要否を判断してもよい。例えば要否を判断するための情報(例えば電子機器３のソフトウェアＰ１のバージョン、および、更新可否判定部１１１に入力される判定情報)を、外部装置２が記憶しておく。そして、外部装置２はこれらに情報に基づいて、上述と同様にして更新ソフトウェアＵＰ１の要否を判断し、更新ソフトウェアＵＰ１が必要であると判断したときに、更新ソフトウェアＵＰ１の受信指示をソフトウェア更新装置１へと送信してもよい。これに応答して、ダウンロード部１５は、指示された更新ソフトウェアＵＰ１を外部装置２から受信する。
【０１０８】
また上述の一例では、ソフトウェア更新装置１が車両に搭載された。しかるに、例えばソフトウェア更新装置１は携帯電話機（スマートフォンを含む）に搭載されてもよい。この場合、電子機器３としては、例えば携帯電話機と無線通信する各種の電子機器を採用できる。例えば携帯電話機と無線通信する装着型機器（例えばイヤホン、ヘッドホン、腕時計型またはメガネ型の機器など）などである。
【０１０９】
例えば装着型端末が装着の有無を検出できる場合には、更新条件として、装着していないことを採用してもよい。つまり、装着型端末がユーザに装着されていないときに、装着型端末のソフトウェアを更新してもよい。これにより、装着型端末が使用されていないと想定されるときに、ソフトウェアを実行することができる。
【０１１０】
以上のように、ソフトウェア更新装置１は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、本ソフトウェア更新装置１がそれに限定されるものではない。例示されていない無数の変形例が、本発明の範囲から外れることなく想定され得る。
【０１１１】
実施の形態は、相互に矛盾しない限り、互いに組み合わせて実施することができる。例えば、図６，７を用いて説明した第１動作と、図８を用いて説明した第２動作との両方を採用してもよいし、第１動作と、図９を用いて説明した第３動作との両方を採用してもよい。また例えば、図１０を用いて説明した動作は、第１動作から第３動作のいずれにも適用可能である。
【符号の説明】
【０１１２】
１  ソフトウェア更新装置
２  外部装置
３  電子機器
１１  更新制御部
１１１  更新可否判定部
【図１】
2016218932.tif 000007
【図２】
2016218932.tif 000008
【図３】
2016218932.tif 000009
【図４】
2016218932.tif 000010
【図５】
2016218932.tif 000011
【図６】
2016218932.tif 000012
【図７】
2016218932.tif 000013
【図８】
2016218932.tif 000014
【図９】
2016218932.tif 000015
【図１０】
2016218932.tif 000016
【図１１】
2016218932.tif 000017