(57)【要約】【課題】相互に連携する複数の制御装置のソフトウェアの更新処理を効率良く適切に行う技術を提供する。【解決手段】ソフトウェア更新装置は、サーバ装置から送信された更新ソフトウェアを、現在使用されるソフトウェアが記憶される第１領域とは別に設けられる第２領域に書き込むことを制御装置に対して指示する書込み指示部と、前記ソフトウェアの更新対象となる複数の前記制御装置のうち、連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認部と、前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示部と、を有する。【選択図】図１
2018200510.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置及び複数の制御装置と通信を行い、前記複数の制御装置のソフトウェアの更新処理を制御するソフトウェア更新装置であって、
前記サーバ装置から送信された更新ソフトウェアを、現在使用されるソフトウェアが記憶される第１領域とは別に設けられる第２領域に書き込むことを前記制御装置に対して指示する書込み指示部と、
前記ソフトウェアの更新対象となる複数の前記制御装置のうち、相互に連携して制御を行う前記制御装置の集合である連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認部と、
前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示部と、
を有する、ソフトウェア更新装置。
【請求項２】
前記切替え指示部は、前記連携制御装置群に属さない前記制御装置に対して、他の前記制御装置とは独立して前記切替え処理を行うことを指示する、請求項１に記載のソフトウェア更新装置。
【請求項３】
前記切替え指示部は、前記連携制御装置群が複数存在する場合、前記連携制御装置群毎に別々に前記切替え処理を行うことを指示する、請求項１又は２に記載のソフトウェア更新装置。
【請求項４】
前記連携制御装置群の中に前記書込み指示部からの指令による前記更新ソフトウェアの書き込みを行うことができない別方式の制御装置が含まれる場合に、
前記確認部は、前記連携制御装置群を構成する全ての前記制御装置から前記別方式の制御装置を除いた残りの前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認し、
前記切替え指示部は、前記確認部の確認完了後、且つ、前記別方式の制御装置のソフトウェアの更新のための書換完了後に、前記更新ソフトウェアへの切り替えを、前記連携制御装置群を構成する全ての前記制御装置から前記別方式の制御装置を除いた残りの前記制御装置に指示する、請求項１から３のいずれか１項に記載のソフトウェア更新装置。
【請求項５】
当該ソフトウェア更新装置及び前記複数の制御装置は車両に搭載され、
前記切替え指示部は、前記確認部による確認完了後に、一旦、前記車両の電源がオフされ、その後前記電源がオンされた後に、前記切替え処理の指示を行う、請求項１から４のいずれか１項に記載のソフトウェア更新装置。
【請求項６】
複数の制御装置と、
前記複数の制御装置のソフトウェアの更新処理を制御するソフトウェア更新装置と、
前記ソフトウェア更新装置に前記ソフトウェアの更新情報を送信するサーバ装置と、
を備えるソフトウェア更新システムであって、
複数の前記制御装置のそれぞれが有する記憶部は、
現在使用される前記ソフトウェアが記憶される第１領域と、
前記更新情報に含まれる更新ソフトウェアが記憶される第２領域と、
を有し、
前記ソフトウェア更新装置は、
前記更新ソフトウェアを前記第２領域に書き込むことを前記制御装置に対して指示する書込み指示部と、
前記ソフトウェアの更新対象となる複数の前記制御装置のうち、相互に連携して制御を行う前記制御装置の集合である連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認部と、
前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示部と、
を有する、ソフトウェア更新システム。
【請求項７】
前記切替え処理によって、切り替え前において前記第２領域として使用されていた領域が前記第１領域に、前記第１領域として使用されていた領域が前記第２領域に入れ替わる、請求項６に記載のソフトウェア更新システム。
【請求項８】
サーバ装置及び複数の制御装置と通信を行うソフトウェア更新装置によって前記制御装置のソフトウェアを更新する方法であって、
前記サーバ装置から送信された更新ソフトウェアを、現在使用されるソフトウェアが記憶される第１領域とは別に設けられる第２領域に書き込むことを前記制御装置に対して指示する書込み指示工程と、
前記ソフトウェアの更新対象となる複数の前記制御装置のうち、相互に連携して制御を行う前記制御装置の集合である連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認工程と、
前記確認工程の完了後に、前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示工程と、
を有する、ソフトウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法に関する。
【背景技術】
【０００２】
特許文献１には、複数のマイコンのメモリそれぞれに記憶されたデータを順次一つずつ書き換える書換装置を備える制御システムが開示される。
【０００３】
また、特許文献２には、サーバおよび複数の制御装置と接続しデータの送受信を行うソフト更新装置が開示される。ソフト更新装置は、サーバから更新する情報をダウンロードして記憶部に保持する。その後、ソフト更新装置は、エンジン状態が起動中から停止に状態が遷移したときに、個々の制御装置に対して更新処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５９２０２４３号公報
【特許文献２】特開２０１６−１７０７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年においては、車両１台に備えられる電子制御装置（ＥＣＵ：Electric Control Unit）の数が非常に多くなっている。このために、例えば特許文献１や２の構成を車両のＥＣＵのソフトウェアの更新に適用する場合、ソフトウェアの更新処理に要する時間が非常に長くなることが懸念される。更新処理が長くなると、例えば、車両の所有者を待たせる時間が長くなり過ぎることが懸念される。また、ソフトウェアの更新処理は、エンジンの停止中に実施する必要があり、更新処理に時間がかかると、車両のバッテリが上がる可能性がある。
【０００６】
複数のＥＣＵの間で、ソフトウェアの更新処理を行うタイミングをずらすことが考えられる。例えば、車両が停車するタイミングに合わせて、ソフトウェアの更新処理を順次行うことが考えられる。これにより、車両の所有者を待たせたり、車両のバッテリが上がったりすることを防止することができる。しかしながら、このような構成では、相互に連携する複数のＥＣＵの中に、ソフトウェアの更新処理が完了しているＥＣＵと、ソフトウェアの更新処理が完了していないＥＣＵとが混在する可能性がある。このような混在が発生すると、例えばインターフェースの不整合等によって、車両が誤作動を起こす可能性がある。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、相互に連携する複数の制御装置のソフトウェアの更新処理を効率良く適切に行う技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明のソフトウェア更新装置は、サーバ装置及び複数の制御装置と通信を行い、前記複数の制御装置のソフトウェアの更新処理を制御するソフトウェア更新装置であって、前記サーバ装置から送信された更新ソフトウェアを、現在使用されるソフトウェアが記憶される第１領域とは別に設けられる第２領域に書き込むことを前記制御装置に対して指示する書込み指示部と、前記ソフトウェアの更新対象となる複数の前記制御装置のうち、相互に連携して制御を行う前記制御装置の集合である連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認部と、前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示部と、を有する構成（第１の構成）になっている。
【０００９】
上記第１の構成のソフトウェア更新装置において、前記切替え指示部は、前記連携制御装置群に属さない前記制御装置に対して、他の前記制御装置とは独立して前記切替え処理を行うことを指示する構成（第２の構成）であることが好ましい。
【００１０】
上記第１又は第２の構成のソフトウェア更新装置において、前記切替え指示部は、前記連携制御装置群が複数存在する場合、前記連携制御装置群毎に別々に前記切替え処理を行うことを指示する構成（第３の構成）であることが好ましい。
【００１１】
上記第１から第３のいずれかの構成のソフトウェア更新装置において、前記連携制御装置群の中に前記書込み指示部からの指令による前記更新ソフトウェアの書き込みを行うことができない別方式の制御装置が含まれる場合に、前記確認部は、前記連携制御装置群を構成する全ての前記制御装置から前記別方式の制御装置を除いた残りの前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認し、前記切替え指示部は、前記確認部の確認完了後、且つ、前記別方式の制御装置のソフトウェアの更新のための書換完了後に、前記更新ソフトウェアへの切り替えを、前記連携制御装置群を構成する全ての前記制御装置から前記別方式の制御装置を除いた残りの前記制御装置に指示する構成（第４の構成）であってよい。
【００１２】
上記第１から第４のいずれかの構成のソフトウェア更新装置において、当該ソフトウェア更新装置及び前記複数の制御装置は車両に搭載され、前記切替え指示部は、前記確認部による確認完了後に、一旦、前記車両の電源がオフされ、その後前記電源がオンされた後に、前記切替え処理の指示を行う構成（第５の構成）であることが好ましい。
【００１３】
上記目的を達成するために本発明のソフトウェア更新システムは、複数の制御装置と、前記複数の制御装置のソフトウェアの更新処理を制御するソフトウェア更新装置と、前記ソフトウェア更新装置に前記ソフトウェアの更新情報を送信するサーバ装置と、を備える。複数の前記制御装置のそれぞれが有する記憶部は、現在使用される前記ソフトウェアが記憶される第１領域と、前記更新情報に含まれる更新ソフトウェアが記憶される第２領域と、を有する。前記ソフトウェア更新装置は、前記更新ソフトウェアを前記第２領域に書き込むことを前記制御装置に対して指示する書込み指示部と、前記ソフトウェアの更新対象となる複数の前記制御装置のうち、相互に連携して制御を行う前記制御装置の集合である連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認部と、前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示部と、を有する構成（第６の構成）になっている。
【００１４】
上記第６の構成のソフトウェア更新システムにおいて、前記切替え処理によって、切り替え前において前記第２領域として使用されていた領域が前記第１領域に、前記第１領域として使用されていた領域が前記第２領域に入れ替わる構成（第７の構成）であることが好ましい。
【００１５】
上記目的を達成するために本発明のソフトウェア更新方法は、サーバ装置及び複数の制御装置と通信を行うソフトウェア更新装置によって前記制御装置のソフトウェアを更新する方法であって、前記サーバ装置から送信された更新ソフトウェアを、現在使用されるソフトウェアが記憶される第１領域とは別に設けられる第２領域に書き込むことを前記制御装置に対して指示する書込み指示工程と、前記ソフトウェアの更新対象となる複数の前記制御装置のうち、相互に連携して制御を行う前記制御装置の集合である連携制御装置群を構成する全ての前記制御装置に対して、前記更新ソフトウェアが前記第２領域に書き込まれたことを確認する確認工程と、前記確認工程の完了後に、前記第２領域に書き込まれた前記更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、前記連携制御装置群を構成する全ての前記制御装置に指示する切替え指示工程と、を有する構成（第８の構成）になっている。
【発明の効果】
【００１６】
本発明によると、相互に連携する複数の制御装置のソフトウェアの更新処理を効率良く適切に行う技術を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】ソフトウェア更新システムの概要を示す図
【図２】ソフトウェア更新装置の構成を示すブロック図
【図３】ＥＣＵの基本構造を示すブロック図
【図４】ソフトウェア更新システムによって実行されるソフトウェアの更新方法の概要を示すフローチャート
【図５】稼働させるソフトウェアの切替えイメージを示す模式図
【図６】ソフトウェアの更新方法の前半部分を示すフローチャート
【図７】ソフトウェアの更新方法の後方部分を示すフローチャート
【図８】ソフトウェアの更新処理時における、ソフトウェア更新装置と、連携ＥＣＵ群を構成する各ＥＣＵとの関係を示す模式図
【図９】本発明の実施形態の第１変形例を説明するための図
【図１０】本発明の実施形態の第２変形例を説明するための図
【発明を実施するための形態】
【００１８】
以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。
【００１９】
＜１．システムの概要＞
図１は、本発明の実施形態に係るソフトウェア更新システム１００の概要を示す図である。ソフトウェア更新システム１００は、車両１０が有する複数の制御装置のソフトウェアの更新処理を行うシステムである。ソフトウェアは、アプリケーションソフトウェアでも、システムソフトウェアでもよい。本実施の形態では、ソフトウェアは、制御装置の制御プログラムである。ただし、これは例示であり、ソフトウェアは、例えば、制御装置の制御に必要なパラメータやデータ等の制御情報を含んでもよい。
【００２０】
図１に示すように、ソフトウェア更新システム１００は、サーバ装置１と、ソフトウェア更新装置２と、複数のＥＣＵ３と、備える。ＥＣＵ３は、本発明の制御装置の一例である。ソフトウェア更新装置２と、複数のＥＣＵ３とは、車両１０に搭載される。本実施の形態では、複数のＥＣＵ３は、第１ＥＣＵ３ａと、第２ＥＣＵ３ｂと、第３ＥＣＵ３ｃとを含む。ＥＣＵ３の数は特に限定されず、２つ以上であればよい。複数のＥＣＵ３は、互いに異なる機能を発揮する。複数のＥＣＵ３は、例えば、車両１０のエンジンを制御するエンジンＥＣＵ、車両１０のステアリングの舵角を制御するステアリングＥＣＵ、車両１０のブレーキを制御するブレーキＥＣＵ、車両１０のシフトを制御するシフトＥＣＵ、車両１０の電源制御用ＥＣＵ、車両１０のライトを制御するライトＥＣＵ等を含んでよい。
【００２１】
本実施の形態では、第１ＥＣＵ３ａと第２ＥＣＵ３ｂとは相互に連携し、連携ＥＣＵ群４を構成する。連携ＥＣＵ群４は、本発明の連携制御装置群の一例である。連携ＥＣＵ群４は、相互に連携して制御を行うＥＣＵ３の集合である。例えば、第１ＥＣＵ３ａと第２ＥＣＵ３ｂとは、先進運転システム（ＡＤＡＳ：Advanced Driver Assistance System）を構成する複数のＥＣＵの中に含まれてよい。より詳細には、第１ＥＣＵ３ａ及び第２ＥＣＵ３ｂは、例えば自動ブレーキシステムを構成する複数のＥＣＵの中に含まれてよい。例えば、第１ＥＣＵ３ａはブレーキＥＣＵであり、第２ＥＣＵ３ｂはステアリングＥＣＵであってよい。
【００２２】
サーバ装置１とソフトウェア更新装置２とは、例えばインターネット等のネットワークを介して通信を行い、情報のやり取りを行う。サーバ装置１は、ソフトウェア更新装置２にソフトウェアの更新情報を送信する。ソフトウェア更新装置２と複数のＥＣＵ３とは、車内ＬＡＮ（Local Area Network）５を介して通信を行い、情報のやり取りを行う。ソフトウェア更新装置２は、複数のＥＣＵ３のソフトウェアの更新処理を制御する。
【００２３】
ソフトウェア更新システム１００によれば、サーバ装置１からソフトウェアの更新情報を受信して各ＥＣＵ３のソフトウェアの更新を行うことができる。このために、ソフトウェアの更新情報を素早く入手して、早いタイミングでソフトウェアの更新処理を行うことができる。
【００２４】
＜２．ソフトウェア更新装置の構成＞
図２は、本発明の実施形態に係るソフトウェア更新装置２の構成を示すブロック図である。ソフトウェア更新装置２は、サーバ装置１及び複数のＥＣＵ３と通信を行い、複数のＥＣＵ３のソフトウェアの更新処理を制御する。図２に示すように、ソフトウェア更新装置２は、制御部２１と、記憶部２２と、ＷＡＮ（Wide Area Network）インターフェース（以下、ＷＡＮ−ＩＦと表記する）２３と、ＬＡＮ（Local Area Network）インターフェース（以下、ＬＡＮ−ＩＦと表記する）２４とを有する。
【００２５】
制御部２１は、図示しないＣＰＵ（Central Processing Unit）を備えるコンピュータである。制御部２１は、例えば記憶部２２に記憶された制御プログラムに基づいて情報の処理及び送受信を行い、ソフトウェア更新装置２の全体を制御する。制御部２１は、書込み指示部２１１と、確認部２１２と、切替え指示部２１３とを備える。これら各部２１１〜２１３の機能は、記憶部２２に記憶されたプログラムにしたがってＣＰＵが演算処理を実行することによって実現される。各機能部２１１〜２１３の詳細については後述する。
【００２６】
記憶部２２は、揮発性メモリと不揮発性メモリとを含む。揮発性メモリは、例えば制御プログラムの動作に必要なデータ等を一時的に記憶する。不揮発性メモリは、制御プログラムやパラメータ等、ソフトウェア更新装置２を動作させるための制御情報を記憶する。不揮発性メモリは、例えば、ＥＥＰＲＯＭ、フラッシュメモリ、ハードディスクドライブ等であってよい。不揮発メモリの一部又は全部を、ＳＤメモリカード（登録商標）、ＵＳＢ（Universal Serial Bus）メモリ等の可搬型記憶媒体で構成し、ソフトウェア更新装置２の本体に対して装脱着可能にしてもよい。
【００２７】
本実施の形態においては、記憶部２２には、サーバ装置１から送信されたソフトウェアの更新情報２２１が記憶される。また、記憶部２２には、複数のＥＣＵ３のうち、相互に連携するＥＣＵ３がいずれかであることを示すＥＣＵ連携情報２２２が記憶される。本実施の形態では、制御部２１は、ＥＣＵ連携情報２２２によって、第１ＥＣＵ３ａと第２ＥＣＵ３ｂとが相互に連携するＥＣＵであることを認識することができる。その他、記憶部２２には、ソフトウェア更新装置２と接続されるＥＣＵ３の構成情報、各ＥＣＵ３のソフトウェアの更新状態等、ソフトウェア更新装置２によってＥＣＵ３を更新するために必要となる各種の情報が記憶される。
【００２８】
ＷＡＮ−ＩＦ２３は、ソフトウェア更新装置２がインターネット等のネットワークを介してサーバ装置１との間でデータの送受信を行うことを可能にする。本実施の形態では、ＷＡＮ−ＩＦ２３は無線通信部として構成される。ＷＡＮ−ＩＦ２３は、有線通信部として構成されてもよい。
【００２９】
ＬＡＮ−ＩＦ２４は、ソフトウェア更新装置２が車内ＬＡＮ５を介して複数のＥＣＵ３との間でデータの送受信を行うことを可能にする。本実施の形態では、ソフトウェア更新装置２と複数のＥＣＵ３とは有線で接続される。これらは、場合によっては無線接続であってもよい。
【００３０】
＜３．ＥＣＵの構成＞
本実施の形態では、ソフトウェア更新システム１００は、第１ＥＣＵ３ａ、第２ＥＣＵ３ｂ、及び、第３ＥＣＵ３ｃを含む。これらのＥＣＵ３ａ〜３ｂの基本的な構造は同様である。図３を参照して、ＥＣＵ３の基本的な構造について説明する。図３は、本発明の実施形形態に係るＥＣＵ３の基本構造を示すブロック図である。図３に示すように、ＥＣＵ３は、制御部３１と、記憶部３２と、ＬＡＮ−ＩＦ３３とを備える。
【００３１】
制御部３１は、図示しないＣＰＵを備えるコンピュータである。制御部３１は、例えば記憶部３２に記憶されたプログラムに基づいて情報の処理及び送受信を行い、ＥＣＵ３の全体を制御する。詳細には、制御部３１は、通常の動作を行うための制御プログラムにしたがって動作する他、リプログラミングソフトによって動作をする場合がある。本明細書では、リプログラミングソフトによって動作するモードをリプログモードと表記する。リプログモードは、ソフトウェアの更新処理を行う際に適用される。
【００３２】
記憶部３２は、ソフトウェア更新装置２と同様に、揮発性メモリと不揮発性メモリとを含む。本実施の形態では、複数のＥＣＵ３のそれぞれが有する記憶部３２は、第１領域３２１と第２領域３２２とを有する。第１領域３２１は、現在使用される制御プログラム（ソフトウェア）が記憶されるソフトウェア記憶領域である。第２領域３２２は、ソフトウェア更新装置２がサーバ装置１から受信した更新情報に含まれる更新ソフトウェアが記憶されるソフトウェア記憶領域である。  
【００３３】
ＬＡＮ−ＩＦ３３は、ＥＣＵ３が車内ＬＡＮ５を介してソフトウェア更新装置２との間でデータの送受信を行うことを可能にする。
【００３４】
＜４．ソフトウェア更新装置の機能＞
ソフトウェア更新装置２の制御部２１が備える各機能部２１１〜２１３（図２参照）の詳細について説明する。
【００３５】
書込み指示部２１１は、サーバ装置１から送信された更新ソフトウェアを第１領域３２１とは別に設けられる第２領域３２２に書き込むことをＥＣＵ３に対して指示する。詳細には、書込み指示部２１１は、サーバ装置１から送信された更新ソフトウェアが複数のＥＣＵのうちのいずれの更新ソフトウェアかを判断し、更新対象となるＥＣＵ３に対して書込み指示を行う。或る更新ソフトウェアがいずれのＥＣＵ３の更新ソフトウェアであるかは、例えばサーバ装置１から送信される更新情報や更新ソフトウェア自身に含まれる。
【００３６】
なお、更新ソフトウェアは、第１領域３２１とは別に設けられる第２領域３２２に書き込めば良い。このために、第１領域３２１に記憶されるソフトウェアの稼働中に、バックグラウンドで更新ソフトウェアの書き込み処理を行うことができる。
【００３７】
確認部２１２は、ソフトウェアの更新対象となる複数のＥＣＵ３のうち、連携ＥＣＵ群４を構成する全てのＥＣＵ３に対して、更新ソフトウェアが第２領域３２２に書き込まれたことを確認する。なお、連携ＥＣＵ群４は、相互に連携して制御を行うＥＣＵ３の集合である。本実施の形態では、連携ＥＣＵ群４は、第１ＥＣＵ３ａと、第２ＥＣＵ３ｂとで構成される。詳細には、確認部２１２は、記憶部２２に記憶されるＥＣＵ連携情報２２２に基づいて、連携ＥＣＵ群４を構成する複数のＥＣＵ３を認識する。ソフトウェアの更新対象となる複数のＥＣＵ３の中に、連携ＥＣＵ群４が存在しない場合には、確認部２１２による確認は実質的には行われない。
【００３８】
切替え指示部２１３は、第２領域３２２に書き込まれた更新ソフトウェアを今後稼働させるソフトウェアに切り替えることを、連携ＥＣＵ群４を構成する全てのＥＣＵ３に指示する。詳細には、切替え指示部２１３は、ソフトウェアを切り替えることを、連携ＥＣＵ群４を構成する全てのＥＣＵ３に同時期に指示する。切替え指示部２１３による切替え指示は、確認部２１２の確認完了後に行われる。すなわち、切替え指示部２１３は、連携ＥＣＵ群４を構成する全てのＥＣＵ３において、更新ソフトウェアが第２領域３２２に書き込まれたことを確認するまで、切替え指示を行わない。
【００３９】
本実施の形態によれば、各ＥＣＵ３において、更新ソフトウェアの書き込みを通常動作を行いながらバックグラウンドで実行させることができる。すなわち、本実施の形態によれば、ソフトウェアを旧バージョンから新バージョンに更新する処理を、車両１０のエンジンを停止して実行する時間を短くすることができる。
【００４０】
また、本実施の形態によれば、連携ＥＣＵ群４を構成するＥＣＵ３のソフトウェアの更新を同時期に行うことができる。このために、相互に連携する複数のＥＣＵ３の中に、ソフトウェアの更新処理が完了しているＥＣＵと、ソフトウェアの更新処理が完了していないＥＣＵとが混在することを防止することができる。すなわち、本実施の形態によれば、相互に連携するＥＣＵ間に不整合が生じて誤動作等が発生することを防止することができる。
【００４１】
＜５．ソフトウェア更新方法＞
＜５−１．ソフトウェア更新方法の概要＞
図４は、本発明の実施形態に係るソフトウェア更新システム１００によって実行されるソフトウェアの更新方法の概要を示すフローチャートである。前段階として、ソフトウェア更新装置２にサーバ装置１から更新情報が受信されると、受信された更新情報は記憶部２２に記憶される。ソフトウェア更新装置２は、受信した更新情報の正当性を確認する。
【００４２】
その後、書込み指示部２１１によって、ソフトウェアの更新対象となるＥＣＵ３に対して、更新ソフトウェアを第２領域３２２に書き込むことが指示される（ステップＳ１）。ソフトウェア更新装置２からの書込み指示によって、ソフトウェアの更新対象となるＥＣＵ３の制御部３１は、書込み処理を行う。書込み処理は、第１領域３２１に記憶されるソフトウェアを稼働させながら、バックグラウンドで行われることが好ましい。これによって、車両１０のエンジンを停止した状態でソフトウェアの更新処理を行う時間を短くすることができる。
【００４３】
なお、第２領域３２２には、更新ソフトウェアの書込みが行われる前に、バージョンの古いソフトウェアが書き込まれていてよい。この場合には、ＥＣＵ３の制御部３１は、古いバージョンのソフトウェアを消去した後に、更新ソフトウェアの書込みを行う。すなわち、本発明のソフトウェアの書込み処理には、ソフトウェアの書換処理が含まれる。
【００４４】
次に、確認部２１２によって、連携ＥＣＵ群４を構成する全てのＥＣＵ３において更新ソフトウェアが第２領域３２２に書き込まれたことを確認する工程が行われる（ステップＳ２）。なお、ソフトウェアの更新対象となる複数のＥＣＵ３の中に、連携ＥＣＵ群４に属さないＥＣＵ３が含まれることがある。連携ＥＣＵ群４に属さないＥＣＵ３については、確認部２１２による確認処理の対象外である。
【００４５】
確認部２１２の確認完了後、すなわち、確認部２１２によって、連携ＥＣＵ群４を構成する全てのＥＣＵ３において更新ソフトウェアが第２領域３２２に書き込まれたことが確認された後、一旦、車両１０の電源がオフされ、その後、電源がオンされる（ステップＳ３）。本実施の形態では、電源のオンオフは、ＡＣＣのオンオフである。
【００４６】
ＡＣＣがオンされた後、切替え指示部２１３は、第２領域３２２に書き込まれた更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行うことを、連携ＥＣＵ群４を構成する全てのＥＣＵ３に同時期に指示する（ステップＳ４）。切替え指示によって、各ＥＣＵ３は、第２領域３２２に書き込まれた更新ソフトウェアを今後稼働させるソフトウェアに変更する。
【００４７】
図５は、稼働させるソフトウェアの切替えイメージを示す模式図である。図５に示すように、本実施の形態では、切替え処理によって、切替え前において第２領域として使用されていた領域が第１領域に、第１領域として使用されていた領域が第２領域に入れ替わる。これによれば、ソフトウェアの更新処理のために必要以上に格納領域を増やす必要がなく、記憶部３２の記憶容量をなるべく小さく抑えることができる。
【００４８】
本実施の形態では、切替え指示部２１３は、確認部２１２による確認完了後に、一旦、車両１０の電源がオフされ、その後電源がオンされた後に、切替え処理の指示を行う。本実施の形態では、電源のオンオフは、ＡＣＣのオンオフである。このために、車両１０のエンジンが稼働している間に、各ＥＣＵ３に対して更新ソフトウェアのダウンロードを行わせ、その後、停止されたエンジンが再始動する前に複数のＥＣＵ３に対して纏めて更新ソフトウェアへの切替えを行うことができる。このために、安全、且つ、効率良く、ソフトウェアの更新処理を行うことができる。
【００４９】
なお、ソフトウェアの更新対象となる複数のＥＣＵ３の中に、連携ＥＣＵ群４に属するＥＣＵ３と、連携ＥＣＵ群４に属さないＥＣＵ３とが含まれることがある。連携ＥＣＵ群４に属さないＥＣＵ３については、他のＥＣＵ３と連携してソフトウェアの更新を行う必要がない。また、ソフトウェアの更新対象となる少なくとも１つのＥＣＵ３の中に、連携ＥＣＵ群４が含まれない場合には、各ＥＣＵ３は、連携ＥＣＵ群４に属さないＥＣＵであり、他のＥＣＵ３と連携してソフトウェアの更新を行う必要がない。すなわち、これらのＥＣＵ３に対しては、ステップＳ２の確認部２１２による確認処理は不要である。本実施の形態では、切替え指示部２１３は、連携ＥＣＵ群４に属さないＥＣＵ３に対して、他のＥＣＵ３とは独立して切替え処理を行うことを指示する。これにより、連携ＥＣＵ群４に属さないＥＣＵ３は、それぞれ適当なタイミングでソフトウェアの更新処理を行うことができる。例えば、連携ＥＣＵ群４に属さないＥＣＵ３のソフトウェアの更新処理は、単独で実施されてもよいし、他のＥＣＵ３と更新日時を合わせて実施されてもよい。
【００５０】
また、ソフトウェアの更新処理は、切替え処理が実行される前の適当なタイミングで、ユーザが更新を望むか否かを確認し、更新を望む場合にのみ実施される構成としてもよい。ユーザへの確認は、例えば画面表示や音声が利用されてよい。ユーザからの指令は、例えば入力キーや音声入力等が利用されてよい。
【００５１】
＜５−２．ソフトウェアの更新方法の詳細＞
次に、ソフトウェアの更新対象となる複数のＥＣＵ３の中に連携ＥＣＵ群４が含まれる場合における、連携ＥＣＵ群４を構成する各ＥＣＵ３のソフトウェアの更新方法について、更に詳細に説明する。図６は、ソフトウェアの更新方法の前半部分を示すフローチャートである。図７は、ソフトウェアの更新方法の後方部分を示すフローチャートである。図８は、ソフトウェアの更新処理時における、ソフトウェア更新装置２と、連携ＥＣＵ群４を構成する各ＥＣＵ３との関係を示す模式図である。なお、本実施の形態では、連携ＥＣＵ群４は、第１ＥＣＵ３ａと第２ＥＣＵ３ｂとによって構成される。また、本実施の形態では、好ましい例として、図６に示すフローは、車両１０のエンジン稼働中に実施される。好ましい例として、図７に示すフローは、車両１０のエンジン停止中に実施される。
【００５２】
図６に示すように、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する第１ＥＣＵ３ａ及び第２ＥＣＵ３ｂに更新ソフトウェアの書込み指示を行う（ステップＳ１１）。詳細には、図８に示すように、ソフトウェア更新装置２は、各ＥＣＵ３ａ、３ｂに対して、それぞれ対応する更新ソフトウェアのデータを転送する。各ＥＣＵ３ａ、３ｂは、ソフトウェア更新装置２から転送された更新ソフトウェアを、バックグラウンドで第２領域３２２に書き込む。各ＥＣＵ３ａ、３ｂは、更新ソフトウェアの書込み後、ベリファイを行う。なお、各ＥＣＵ３ａ、３ｂは、書込み及びベリファイをバックグラウンドで実行している間も、第１領域３２１に記憶される制御プログラムによって稼働している。換言すると、各ＥＣＵ３ａ、３ｂは通常動作を継続しながら、更新ソフトウェアの書込み処理を行う。
【００５３】
図６に示すように、ソフトウェア更新装置２は、各ＥＣＵ３ａ、３ｂにて更新ソフトウェアの書込み処理が開始すると、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂにおいて更新ソフトウェアの書込み処理が完了した否かを監視する（ステップＳ１２）。詳細には、図８に示すように、ソフトウェア更新装置２は、データ転送後、各ＥＣＵ３ａ、３ｂからの書込み完了通知を待つ。各ＥＣＵ３ａ、３ｂは、ベリファイの完了後、ソフトウェア更新装置２に対して書込み完了通知を行う。
【００５４】
図６に示すように、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂにおいて更新ソフトウェアの書込み処理が完了したことを認識すると、各ＥＣＵ３ａ、３ｂに対して切替え準備を指示する（ステップＳ１３）。図８に示すように、各ＥＣＵ３ａ、３ｂは、これにより、他のＥＣＵも書込みが完了したことを認識するとともに、切替え待機状態に入ったことをソフトウェア更新装置２に通知する。
【００５５】
図６に示すように、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂが切替え待機状態に入ったか否かを監視する（ステップＳ１４）。ソフトウェア更新装置２は、全てのＥＣＵ３ａ、３ｂから切替え待機状態に入ったことの通知を受けた段階で、切替え準備完了を認識する。詳細には、ソフトウェア更新装置２は、ソフトウェア更新処理の後半部分が実行できることを認識する。当該後半部分は、稼働させるソフトウェアを切り替える処理である。本実施の形態では、ソフトウェアの切替え処理は、安全性等を考慮してエンジンの停止時に行われる。このために、図８に示すように、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂが切替え待機状態に入ったことを認識後、切替え処理を保留して車両１０のＡＣＣが一旦オフされることを待つ。
【００５６】
図８に示すように、ソフトウェア更新装置２は、車両１０のＡＣＣが一旦オフされ、その後ＡＣＣがオンされると、切替え処理を実行する。ＡＣＣオンによって、各ＥＣＵ３ａ、３ｂはリプログモードで起動する。
【００５７】
図７に示すように、ソフトウェア更新装置２は、車両１０のＡＣＣがオンされると、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂにおいて切替え準備が完了しているか否かを再確認する（ステップＳ２１）。この間、各ＥＣＵ３ａ、３ｂは、ソフトウェア更新装置２からの指示を待つ。
【００５８】
なお、連携ＥＣＵ群４を構成するＥＣＵ３ａ、３ｂの中に、切替え準備ができていないＥＣＵが存在する場合には（ステップＳ２１でＮｏ）、切替え処理は実行できないために、ソフトウェア更新装置２は、各ＥＣＵ３ａ、３ｂに対してリプログモードを解除する指示を行う。各ＥＣＵ３ａ、３ｂは、リプログモードを解除して、ソフトウェアの更新処理を中止して、第１領域３２１に記憶されるソフトウェアを起動して通常動作を行う。
【００５９】
図７に示すように、切替準備が完了していることを確認後（ステップＳ２１でＹｅｓ）、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する各ＥＣＵ３ａ、３ｂに対して、切替え処理を実施することを指示する（ステップＳ２２）。これにより、図８に示すように、各ＥＣＵ３ａ、３ｂは、第２領域３２２に書き込まれた更新ソフトウェアを今後稼働させるソフトウェアとする切替え処理を行う。各ＥＣＵ３ａ、３ｂは、切替え処理の完了後、その旨をソフトウェア更新装置２に通知する。
【００６０】
図７に示すように、切替え指示の後、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂが切替え処理を完了したか否かを監視する（ステップＳ２３）。ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂからの完了通知を受け取った時点で切替え処理の完了を認識する。図８に示すように、各ＥＣＵ３ａ、３ｂは、完了通知後、リプログモードの解除指示を待つ。
【００６１】
図７に示すように、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂの切替え処理を認識すると（ステップＳ２３でＹｅｓ）、各ＥＣＵ３ａ、３ｂに対してリプログモードの解除指示を行う（ステップＳ２４）。これにより、図８に示すように、各ＥＣＵ３ａ、３ｂは、更新ソフトウェアを起動させ、通常の動作を開始する。各ＥＣＵ３ａ、３ｂは、更新ソフトウェアの起動の完了をソフトウェア更新装置２に通知する。ソフトウェア更新装置２は、これによって、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂで更新ソフトウェアによる通常動作が開始したことを認識して更新完了を認識する。
【００６２】
本実施の形態では、連携ＥＣＵ群４を構成する複数のＥＣＵ３の新旧のソフトウェアの切替え処理を、切替え準備と切替え実行との２つのフェーズに分けて実行する。このために、連携ＥＣＵ群４を構成する全てのＥＣＵ３が新しいソフトウェアの切替え準備ができたことを、ソフトウェア更新装置が認識した後に、連携ＥＣＵ群４を構成する各ＥＣＵ３に対して同時期にソフトウェアの切替え実行を指示することができる。この結果、相互に連携するＥＣＵ３が不整合を起すことなく、ソフトウェアの更新を行うことができる。
【００６３】
リプログモードに入るまでは、現在使用中のソフトウェアをそのまま使用して、車両１０の走行中に更新ソフトウェアの書込み処理を行うことができる。また、ソフトウェアの更新処理のためにエンジン停止中に実施する処理は、切替えに関わる処理のみとすることができるために、バッテリが上がる可能性を抑制してソフトウェアの更新処理を行うことができる。また、ソフトウェアの更新処理のために、ユーザを待たせる時間を低減できる。
【００６４】
なお、ステップＳ２３において、ソフトウェア更新装置２が、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂの完了通知を所定の時間を超えても認識できないことも起こり得る。この場合、エンジンの始動開始をなかなかできず、ユーザを待たせることになる。このような事態を避けるために、ソフトウェア更新装置２が所定の時間内に全てのＥＣＵ３ａ、３ｂの完了通知を受けることができない場合には、ソフトウェアの更新処理を中止する構成としてもよい。更新の中止を決定した場合、ソフトウェア更新装置２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂに対して、更新前のソフトウェアによる起動を実行させる。なお、更新前のソフトウェアは、第１領域３２１に記憶されるソフトウェアのことである。
【００６５】
＜６．変形例等＞
＜６−１．第１変形例＞
図９は、本発明の実施形態の第１変形例を説明するための図である。図９に示すように、第１変形例では、第１ＥＣＵ３ａと第２ＥＣＵ３ｂとは、相互に連携し、第１連携ＥＣＵ群４ａを構成する。第３ＥＣＵ３ｃと第４ＥＣＵ３ｄとは、相互に連携し、第２連携ＥＣＵ群４ｂを構成する。すなわち、第１変形例では、連携ＥＣＵ群が複数存在する。なお、第４ＥＣＵ４ｄの基本的な構造は他のＥＣＵ３ａ〜３ｃと同様である。
【００６６】
ソフトウェア更新装置２の切替え指示部２１３は、連携ＥＣＵ群４が複数存在する場合、連携ＥＣＵ群毎に別々に切替え処理を行うことを指示する。本変形例では、第１連携ＥＣＵ群４ａと第２連携ＥＣＵ群４ｂとは独立して切替え処理が実行される。本構成によれば、複数種類の連携ＥＣＵ群の更新処理を一時期に集中して行うことを避けることができるために、例えば、ソフトウェアの更新処理のためにユーザを長く待たせたり、バッテリが上がったりすることを避けることができる。
【００６７】
なお、場合によっては、複数の連携ＥＣＵ群の更新処理の日時を同じとして、複数の連携ＥＣＵ群の更新処理を一時期に行う構成としてもよい。
【００６８】
＜６−２．第２変形例＞
図１０は、本発明の実施形態の第２変形例を説明するための図である。図１０に示すように、第２変形例では、車両１０に、第１ＥＣＵ３ａ、第２ＥＣＵ３ｂ、及び、第５ＥＣＵ３ｅが備えられる。第１及び第２ＥＣＵ３ａ、３ｂの基本的な構造は、上述の通りである。第５ＥＣＵ３ｅは、第１及び第２ＥＣＵ３ａ、３ｂとは異なる構造であり、更新ソフトウェアの書込み方式が異なる。なお、第１ＥＣＵ３ａ、第２ＥＣＵ３ｂ、及び、第５ＥＣＵ３ｅは、相互に連携し、連携ＥＣＵ群４を構成する。
【００６９】
本変形例では、連携ＥＣＵ群４の中に、書込み指示部２１１からの指令による更新ソフトウェアの書込みを行うことができない別方式のＥＣＵ（第５ＥＣＵ３ｅ）が含まれる。これに対応して、確認部２１２及び切替え指示部２１３の機能が上述した実施形態の構成と若干異なる。すなわち、確認部２１２は、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂ、３ｅから上述の別方式のＥＣＵ３ｅを除いた残りのＥＣＵ３ａ、３ｂに対して、更新ソフトウェアが第２領域３２２に書き込まれたことを確認する。切替え指示部２１３は、確認部２１２による確認完了後、且つ、別方式のＥＣＵ３ｅのソフトウェアの更新のための書換完了後に、更新ソフトウェアへの切替えを、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂ、３ｅから別方式のＥＣＵ３ｅを除いた残りのＥＣＵ３ａ、３ｂに指示する。本実施の形態では、切替え指示部２１３は、更新ソフトウェアへの切替を、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂ、３ｅから別方式のＥＣＵ３ｅを除いた残りのＥＣＵ３ａ、３ｂに同時期に指示する。
【００７０】
詳細について、一例を挙げて説明する。まず、エンジン稼働中に、ソフトウェア更新装置２の指令によって、第１ＥＣＵ３ａ及び第２ＥＣＵ３ｂの第２領域３２２に更新ソフトウェアが書き込まれ、切替え準備（例えば図８参照）が完了する。ＡＣＣが一旦オフされ、その後ＡＣＣがオンされると、連携ＥＣＵ群４を構成する各ＥＣＵ３ａ、３ｂ、３ｅがリプログモードで起動される。
【００７１】
リプログモードによる起動後、ソフトウェア更新装置２を用いて、まず、第５ＥＣＵ３ｅのソフトウェアが、旧バージョンから新バージョンに書き換えられる。例えば、ＳＡＥ（Society of Automoitve Engineers,inc,）規格やＵＤＳ（Unified Diagnosis Services）規格等に基づく方式（ＦＬＡＳＨ直接書換方式）の書換処理が行われる。この書換処理の完了後、第１及び第２ＥＣＵ３ａ、３ｂの切替え処理が同時期に行われる。この後、全てのＥＣＵ３ａ、３ｂ、３ｅについてリプログモードが解除され、更新ソフトウェアの起動が行われる。これにより、連携ＥＣＵ群４を構成する全てのＥＣＵ３ａ、３ｂ、３ｅにおいて、同時期にソフトウェアの更新処理が完了する。すなわち、相互に連携するＥＣＵの間で不整合が生じることを防止することができる。
【００７２】
＜６−３．その他＞
本明細書で示す実施形態や変形例の構成は、本発明の例示にすぎない。実施形態や変形例の構成は、本発明の技術的思想を超えない範囲で適宜変更されてもよい。また、複数の実施形態及び変形例は、可能な範囲で組み合わせて実施されてよい。
【００７３】
また、以上に示した実施形態では、ソフトウェア更新装置の各種の機能が、プログラムに従ったＣＰＵの演算処理によってソフトウェア的に実現されていると説明したが、これらの機能のうちの少なくとも一部は電気的なハードウェア回路により実現されてもよい。
【００７４】
また、以上においては、本発明が車両に搭載される複数のＥＣＵのソフトウェアの更新処理に適用される場合を示したが、これは例示である。本発明は、例えば、家庭用の電気機器、車両以外の輸送機等、相互に連携する複数のＥＣＵを備える装置のソフトウェアの更新処理に対して広く適用することが可能である。
【符号の説明】
【００７５】
１  サーバ装置
２  ソフトウェア更新装置
３  ＥＣＵ（制御装置）
４  連携ＥＣＵ群（連携制御装置群）
１０  車両
３２  記憶部
１００  ソフトウェア更新システム
２１１  書込み指示部
２１２  確認部
２１３  切替え指示部
３２１  第１領域
３２２  第２領域
【図１】
2018200510.tif 000003
【図２】
2018200510.tif 000004
【図３】
2018200510.tif 000005
【図４】
2018200510.tif 000006
【図５】
2018200510.tif 000007
【図６】
2018200510.tif 000008
【図７】
2018200510.tif 000009
【図８】
2018200510.tif 000010
【図９】
2018200510.tif 000011
【図１０】
2018200510.tif 000012