以下、本発明に係るソフトウェア更新装置、ソフトウェア更新システム、及びソフトウェア更新方法の実施の形態を図面に基づいて説明する。
≪第1実施形態≫
本実施形態に係るソフトウェア更新装置10は、図1に示すように、ソフトウェア更新システム100の一部として実現される。図1は、本実施形態に係るソフトウェア更新システム100の一例を示すブロック図である。ソフトウェア更新システム100は、車両1の電子制御装置(以下、ECU(Electronic Control Unit)と称する)が実行する、車両制御や診断等のソフトウェアを、OTA(Over The Air)により更新可能なシステムである。このようなOTAによりソフトウェアを更新することは、FOTA(Firmware Over The Air)とも称される。ECUのソフトウェアは、ECUが備えるマイコンがプログラムを実行することで、実現される。本実施形態では、無線によるECUのソフトウェア更新として、ECUのマイコンが実行するプログラムを無線により書き換える場合を例に挙げて説明するが、ソフトウェア更新システム100は、例えば、車両1のナビゲーションシステムで使用される地図データ、ECUで使用される制御パラメータ等、各種ソフトウェアで使用されるデータを無線で書き換える場合にも適用することができる。またソフトウェア更新システム100は、ECUにFPGA(Field Programmable Gate Array)が用いられている場合、FPGAの機能(ロジック)を無線で書き換える場合にも適用することができる。また図1では、車両1として一台の車両が図示されているが、ソフトウェア更新システム100は、複数の車両1を対象にして、ソフトウェアの更新可能なシステムである。
また本実施形態において、「ECUのソフトウェア更新」とは、ECUのソフトウェアのバージョンが新しいバージョンに変わること、すなわち、マイコンの実行対象であるプログラムが新しいバージョンに変わることを意味する。また無線によるソフトウェア更新は、新しいバージョンのプログラムそのものを車両1の外部から無線を介して取得して書き換えることに加えて、新しいバージョンのプログラムが実行される際に使用される各種データ、及び新しいバージョンのプログラムと古いバージョンのプログラムの差分データを、車両1の外部から無線を介して取得して書き換えることも含む。以降の説明では、新しいバージョンのプログラムや差分データ等、ソフトウェアの更新に必要なデータを「更新用データ」と称する。また、「新しいバージョンのプログラム」を「新プログラム」と称し、「古いバージョンのプログラム」を「旧プログラム」と称し、「新しいバージョンのプログラムと古いバージョンのプログラムの差分のデータ」を「差分データ」と称する。また本実施形態において、「完了」とは、物事が正常に終了したことを意味し、異常事態により物事が終了したことは含まない。例えば、「処理の完了」とは、処理が正常終了したことを意味し、処理が異常終了したことは含まない。また本実施形態では、ソフトウェアの更新に関する手続きを行うユーザとして、車両1の乗員(ドライバーを含む)を例に挙げて説明する。
図1に示すように、ソフトウェア更新システム100は、車両1と、サーバー2と、ユーザ端末3を含む。ソフトウェア更新システム100に含まれる各構成は、無線通信回線網4を介して、情報の授受が可能になっている。無線通信回線網4は、例えば4G回線等による移動体通信ネットワーク、インターネット、Wifi(Wireless Fidelity)(登録商標)等を含んで構成される。まず、ソフトウェア更新システム100において、車両1、サーバー2、及びユーザ端末3それぞれの役割について説明する。
車両1は、ソフトウェアを更新可能なECUを搭載する。車両1は、サーバー2との間で、ソフトウェア更新に関する各種情報の授受を行う。車両1からサーバー2には、車両1に搭載される各ECUに関する情報が送信される。ECUに関する情報としては、例えば、ソフトウェアの現在のバージョンが挙げられる。車両1が搭載する各ECUに関する情報は、所定の送信条件(例えば、所定の周期ごと)に基づき、車両1からサーバー2に送信される。
またサーバー2から車両1には、ソフトウェア更新に関する情報が送信される。ソフトウェア更新に関する情報としては、例えば、キャンペーン情報、更新用データ、更新処理に要する時間の見積り、更新の重要度等が挙げられる。キャンペーンとは、サーバー2が配信パッケージを一又は複数の車両1に配信するイベントである。配信パッケージには、更新用データ、更新用データの認証処理に用いられる認証用データ等が含まれる。キャンペーン情報は、ユーザにソフトウェア更新の概要を提示するための情報である。キャンペーン情報の具体例、更新処理に要する時間の見積り、及び更新の重要度については後述する。ソフトウェアの更新処理が開始されることに対してユーザが承諾した場合、車両1では、後述するソフトウェア更新装置10により、ソフトウェアの更新処理が実行される。車両1で更新処理が開始されると、車両1からサーバー2には、更新処理の経過状況を表す情報が送信される。
サーバー2は、ソフトウェア更新システム100においてソフトウェア更新処理を統括し、OTAセンターとして機能するサーバーである。サーバー2は、車両1との間で上述したソフトウェア更新に関する各種情報の授受を行う。またサーバー2は、ユーザ端末3との間でも、各種情報の授受を行う。
サーバー2は、更新用データを格納する格納機能、各ソフトウェアのバージョン、更新対象となる車両1の車両識別番号(VIN:Vehicle Identification Number)、更新対象のECU等を管理するデータ管理機能、キャンペーン情報の配信タイミング等のキャンペーンに関する情報を管理するキャンペーン管理機能、キャンペーン情報及び更新用データを配信する配信機能等を有している。サーバー2は、例えば、更新用データの提供事業者から、更新用データを含む各種情報を受信すると、更新用データを記憶装置に格納する。サーバー2は、提供事業者から受信した情報に基づき、更新用データの配信対象であるVIN及び更新対象のECU(以降、更新対象ECUと称す)を特定する。サーバー2は、キャンペーン情報の配信タイミングを設定し、キャンペーン情報の配信タイミングになると、キャンペーン情報を車両1及び/又はユーザ端末3に送信する。配信パッケージが車両1に送信されることに対してユーザが承諾した場合、サーバー2は、車両1に配信パッケージを送信する。サーバー2による配信パッケージの送信が完了した後に、車両1で更新処理が開始されると、サーバー2は、車両1から更新処理の進捗状況を表す進捗情報を受信し、受信した進捗情報をユーザ端末3に送信する。
ユーザ端末3は、ユーザからの操作入力を受け付ける機能や各種画面を表示する機能を有し、ユーザが携帯可能な端末である。ユーザ端末3としては、例えば、スマートフォンやタブレット等が挙げられる。ユーザ端末3は、サーバー2との間で、キャンペーン情報等の各種情報の授受を行う。ユーザ端末3は、サーバー2からキャンペーン情報を受信すると、キャンペーン情報をユーザに通知する。また配信パッケージが送信されることへの承諾を示す操作をユーザがユーザ端末3に行った場合、ユーザ端末3は、ユーザが承諾したことを表す情報を、サーバー2に送信する。またユーザ端末3は、サーバー2を介して、車両1との間で、更新処理に関する情報の授受を行う。ユーザ端末3は、サーバー2から、更新処理開始の承諾をユーザに求めるための情報が入力された場合、ユーザに承諾を求めるための画像を表示する。またユーザ端末3は、更新処理開始の承諾を示す操作をユーザがユーザ端末3に行った場合、ユーザが承諾したことを表す承諾情報をサーバー2に送信する。車両1で更新処理が開始されると、ユーザ端末3は、サーバー2から、更新処理の進捗状況を表す進捗情報を受信し、受信した進捗情報をユーザに通知する。
次に、車両1、サーバー2、及びユーザ端末3それぞれの構成について、図1を用いて説明する。まずサーバー2の構成について説明する。図1に示すように、サーバー2は、通信装置21と、データベース22と、制御装置23を備える。
通信装置21は、無線通信回線網4を介して、車両1及びユーザ端末3との間でデータ通信を行う通信機能を有する。通信装置21が車両1との間でデータの送受信を行うためには、車両1が無線通信回線網4の圏内に位置する必要がある。また通信装置21がユーザ端末3との間でデータの送受信を行うためには、ユーザ端末3が無線通信回線網4の圏内に位置する必要がある。
データベース22は、車両1の登録情報、キャンペーン情報、更新用データ等を格納する。車両1の登録情報は、少なくとも、車両1のVIN、車両1が搭載するECUの数及び各ECUの種別、及び各ECUのソフトウェアのバージョンを含む。キャンペーン情報は、更新用データのデータサイズ、更新対象のECUを識別する情報(ECU名、ECUのID等)、更新対象であるソフトウェアのバージョンの情報(バージョン名、バージョンのID等)、更新される機能の概要説明、配信パッケージのダウンロードが完了するまでの見積り時間(ダウンロード見積り時間)、及び、車両1での更新処理が完了するまでの見積り時間(更新処理見積り時間)等を含む。
制御装置23は、サーバー2の司令塔として機能する装置であって、例えば、コンピュータプログラムにより具体化された一又は複数の機能を実行するようにプログラムされたプロセッサとメモリとで構成される。制御装置23は、上述した、データ管理機能、キャンペーン管理機能、配信機能等を有している。本実施形態では、制御装置23の機能の一例として、更新処理見積り時間を算出する機能、及び更新の重要度を算出する機能について説明する。
制御装置23は、更新用データのデータサイズに基づき、更新処理見積り時間を算出する。後述するように、更新対象ECUで更新処理が実行されている間(更新対象ECUが旧プログラムでの動作を停止してから、新プログラムで正常起動するまでの期間を含む)では、更新対象ECUはソフトウェアの機能を実行できない。このため、更新処理見積り時間は、車両1が備える機能を使用できない時間として、ダウンタイムとも称される。
例えば、更新用データのデータサイズと更新処理見積り時間の関係を示すマップが予めデータベース22に格納されている場合、制御装置23は、当該マップを参照して、データサイズに応じた更新処理見積り時間を算出する。また例えば、制御装置23は、更新用データのデータサイズが大きいほど、更新処理見積り時間を長く算出する。なお、更新用データのデータサイズは、新プログラムそのもののデータサイズ、又は差分データのデータサイズのいずれであってもよい。また更新処理見積り時間の算出方法は一例であって、制御装置23は、その他の算出方法を用いて更新処理見積り時間を算出してもよい。
また制御装置23は、更新対象ECUの種別に基づき、更新の重要度を算出する。更新の重要度とは、車両1の走行及び車両1のセキュリティのうち少なくとも何れか一つの指標に基づく重要度である。車両1の走行の指標に基づく重要度としては、ASIL(Automotive Safety Integrity Level)が挙げられる。ASILとは、車両1の機能安全について規格されたIEC61508/ISO2626に規定されている、自動車の安全要求と安全対策を指定する指標である。ASILには4段階の安全性レベルが規定されており、安全性の基準が高い順に、ASIL-D、ASIL-C、ASIL-B、ASIL-Aと定められている。車両1に搭載される一部又は全部のECUには、予めASILのランクが付されている。また車両1のセキュリティの指標に基づく重要度としては、セキュリティパッチの緊急度(優先度)が挙げられる。セキュリティパッチは、セキュリティ上何らかの問題を引き起す可能性がある脆弱性やセキュリティホールが見つかった場合に、それらを修正するためのファイルである。制御装置23により算出される更新の重要度には、上述した、ASILのランク及びセキュリティパッチの緊急度が含まれる。なお、車両1に搭載されている一又は全部のECUに、ASILと同様に、規格化されたセキュリティのランクが付されている場合、制御装置23は、更新の重要度として、規格化されたセキュリティのランクを用いてもよい。
例えば、制御装置23は、更新用データの提供事業者から、更新用データとともに、更新の緊急度を表す情報を受信した場合、更新の緊急度を表す情報を受信しない場合に比べて、更新の重要度を高く算出する。また例えば、制御装置23は、更新対象ECUが車両1の走行に関与するECUの場合、更新対象ECUが車両1の走行に関与しないECUの場合に比べて、更新の重要度を高く算出する。車両1の走行に関与するECUとしては、一例として、図1に示す走行系ECU14Bが挙げられる。また車両1の走行に関与しないECUとしては、一例として、図1に示すボディ系ECU14A及びマルチメディア系ECU14Cが挙げられる。また例えば、制御装置23は、更新対象ECUに付されたASILのランクが所定の基準ランクよりも高い場合、更新対象ECUに付されたASILのランクが所定の基準ランクよりも低い場合に比べて、更新の重要度を高く算出する。なお、更新の重要度の算出方法は一例であって、制御装置23は、その他の算出方法を用いて更新の重要度を算出してもよい。
ユーザ端末3の構成について説明する。図1に示すように、ユーザ端末3は、端末通信装置31と、端末HMI(Human Machine Interface)32と、端末制御装置33を備える。
端末通信装置31は、無線通信回線網4を介して、サーバー2との間でデータ通信を行う機能を有する。端末HMI32は、ユーザの操作入力を受け付ける装置及びユーザに情報を知らせる装置のうち少なくとも何れか一方として機能する。端末HMI32としては、例えば、タッチパネルディスプレイが挙げられる。なお、端末HMI32は、情報を表示する装置に限られず、例えば、スピーカー等、情報を音声出力する装置であってもよい。なお、ユーザ端末3が、Bluetooth(登録商標)等を通じて車両1の車載装置と直接接続している場合にはユーザ端末3は、車両1の車載通信装置11を介してサーバー2とデータ通信を行ってもよい。また、車載装置とユーザ端末3が直接接続している場合には、車載装置は、ユーザ端末3から無線通信回線網4を介してサーバー2と通信してもよい。
端末制御装置33は、ユーザ端末3の司令塔として機能する装置であって、例えば、コンピュータプログラムにより具体化された一又は複数の機能を実行するようにプログラムされたプロセッサとメモリとで構成される。端末制御装置33は、車両1のECUのソフトウェア更新処理において、キャンペーン情報及び更新処理の進捗情報をユーザに通知するための処理を実行する。キャンペーン情報を例に挙げると、端末制御装置33は、端末通信装置31を介してサーバー2からキャンペーン情報を受信した場合、キャンペーン情報を端末HMI32に出力して、キャンペーン情報を端末HMI32に表示させる。また端末制御装置33は、車両1のECUのソフトウェア更新処理において、ユーザに承諾を求めるための処理を実行する。更新処理開始の承諾をユーザに求める場合を例に挙げると、端末制御装置33は、更新処理開始の承諾をユーザに求めるための承諾要求画像を生成し、承諾要求画像を端末HMI32に出力して、承諾要求画像を端末HMI32に表示させる。
車両1の室外にいるユーザは、ユーザ端末3が無線通信回線網4の圏内に位置する場合、ソフトウェア更新に関する各種情報をユーザ端末3により確認しながら操作入力を行い、ソフトウェア更新に関する手続きを行うことができる。なお、上述したユーザ端末3のブロック構成や機能は一例であって、ユーザ端末3を限定するものではない。また、本発明に係るソフトウェア更新装置、ソフトウェア更新システム、及びソフトウェア更新方法では、ユーザ端末3は必ずしも必要ではない。つまり、本発明は、ユーザ端末3を含まないソフトウェア更新システムにも適用することができる。ユーザ端末3のブロック構成や機能には、本願出願時に知られたブロック構成や機能を適用できるものとする。また本実施形態では、ユーザである乗員が車載端末12を使用して更新処理に関する手続きを行う場合を例に挙げて説明するが、本発明に係るソフトウェア更新装置、ソフトウェア更新システム、及びソフトウェア更新方法は、ユーザがユーザ端末を使用して更新処理に関する手続きを行う場合にも適用することができる。
次に、車両1の構成について説明する。図1に示すように、車両1は、ソフトウェア更新装置10と、車載通信装置11と、車載端末12と、イグニッションスイッチ13と、ボディ系ECU14Aと、走行系ECU14Bと、マルチメディア系ECU14Cと、電源系ECU14Dを含む。車両1に含まれる各構成は、例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)等の車載ネットワークよって接続されている。
車載通信装置11は、無線通信回線網4を介して、サーバー2との間でデータ通信を行う機能を有する。車載通信装置11としては、例えば、テレマティクスコントロールユニット(TCU:Telematics Control Unit)が挙げられる。
車載端末12は、車両1に乗車するユーザ(乗員)からの操作入力を受け付ける機能や各種画面を表示する機能を有する端末である。車載端末12としては、例えば、タッチパネルディスプレイ等が挙げられる。車載端末12には、ソフトウェア更新装置10から、乗員に各種情報を知らせるための信号が入力される。車載端末12は、例えば、ソフトウェア更新装置10から、更新処理開始の承諾を乗員に求めるための情報が入力された場合、乗員に承諾を求めるための画像を表示する。また車載端末12は、例えば、乗員が更新処理開始を承諾する操作を車載端末12に対して行った場合、乗員が承諾したことを表す承諾情報をソフトウェア更新装置10に出力する。車両1の室内にいるユーザは、車両1が無線通信回線網4の圏内に位置する場合、ソフトウェア更新に関する各種情報を車載端末12により確認しながら操作入力を行い、ソフトウェア更新に関する手続きを行うことができる。なお、車載端末12は、情報を表示する装置に限られず、例えば、スピーカー等、情報を音声出力する装置であってもよい。
イグニッションスイッチ13は、車両1の起動スイッチとして機能し、車両1のイグニッションをオン又はオフするためのスイッチである。イグニッションスイッチ13は、例えば、乗員がイグニッションをオンからオフにする操作を行った場合、ユーザの操作内容を表す信号をソフトウェア更新装置10に出力する。
ボディ系ECU14A、走行系ECU14B、及びマルチメディア系ECU14Cは、ソフトウェア更新装置10により更新される対象のECUの一例である。各ECUは、機能ブロックとして、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、及びフラッシュメモリ(Flash Memory)から構成されるマイコンと、電源回路、データ転送回路等を有する。フラッシュメモリには、ECUのソフトウェアを実現するためのプログラムが格納されている。マイコンがフラッシュメモリに格納されたプログラムを実行して各種処理を行うことで、ECUのソフトウェアは実現される。
ECUのフラッシュメモリは、メモリ構成に応じて、シングルバンクメモリとダブルバンクメモリに区分される。シングルバンクメモリは、プログラムの格納領域とマイコンによるプログラムの実行領域に区別がなく、マイコンがプログラムを実行中の間、シングルバンクメモリにプログラムを書き換えることはできない。一方、ダブルバンクメモリは、プログラムの格納領域として2面の領域を有しており、マイコンは、2面の格納領域のうちいずれか一方の格納領域のプログラムを実行する。このため、ダブルバンクメモリでは、マイコンがプログラムを実行中の間であっても、実行中のプログラムを格納しない他方の格納領域にプログラムを書き込むことができる。ダブルバンクメモリが有する2面のプログラム格納領域について、以降では、便宜上、第1メモリ及び第2メモリと称する。
ボディ系ECU14Aは、車両1のボディ系の制御を行うECUの総称である。ボディ系ECU14Aとしては、例えば、車両1のドアのロック/アンロックを制御するドア制御用ECU、車両1のメーター表示を制御するメーター制御用ECU、車両1のエアコンの駆動を制御するエアコン制御用ECU、車両1ウィンドウの開閉を制御するウィンドウ制御用ECU等が挙げられる。走行系ECU14Bは、車両1の走行系の制御を行うECUの総称である。走行系ECU14Bとしては、例えば、車両1の駆動源を制御する駆動源制御用ECU、車両1のブレーキの駆動を制御するブレーキ制御用ECU、車両1のパワーステアリングの駆動を制御するパワーステアリング制御用ECU等が挙げられる。マルチメディア系ECU14Cは、車両1のマルチメディア系の制御を行うECUの総称である。マルチメディア系ECU14Cとしては、例えば、車両1のナビゲーションシステムを制御するナビゲーション制御用ECU、車両1のオーディオ機器を制御するオーディオ制御用ECU等が挙げられる。
ボディ系ECU14A、走行系ECU14B、及びマルチメディア系ECU14Cには、ソフトウェア更新装置10から更新処理の制御信号が入力され、各ECUではソフトウェアの更新処理が実行される。なお、図1では、各ECUが1つずつ示されているが、更新対象ECUの数は特に限定されず、ソフトウェア更新システム100は、複数の更新対象ECUに対して、ソフトウェアを更新することができる。また図1に示すボディ系ECU14A、走行系ECU14Bと、マルチメディア系ECU14Cは、車両1に搭載されるECUの一例であって、車両1に搭載されるECUの種別やECUの区別の仕方を限定するものではない。また車両1は、図1に示されるECU以外のECUを搭載していてもよい。
電源系ECU14Dは、車両1の電源系の制御を行うECUの総称である。電源系ECU14Dとしては、例えば、車両1に搭載されているACC(アクセサリー)電源及びIG(イグニッション)電源を制御する電源制御用ECUが挙げられる。電源系ECU14Dには、ソフトウェア更新装置10から更新処理の制御信号が入力される。例えば、電源系ECU14Dは、車両1のイグニッションをオフさせる処理を実行する。
ここで、OTAによるソフトウェア更新フローの概要とECUのメモリ構成との関係について、図2~図4を用いて説明する。図2は、OTAによるソフトウェア更新のフローを説明するための説明図である。図2に示すように、OTAによるソフトウェア更新は、複数の段階を経て行われる。具体的に、OTAによるソフトウェア更新では、キャンペーン情報の通知(ステップS1)、ダウンロード(ステップS2)、インストール(ステップS3)、アクティベート(ステップS4)、更新完了確認(ステップS5)が順次行われる。
ステップS1では、サーバー2から車両1及び/又はユーザ端末3にキャンペーン情報が送信され、車載端末12及び/又はユーザ端末3を介して、ユーザにキャンペーン情報が通知される。ステップS2では、更新用データを含む配信パッケージがサーバー2から車両1に送信され、車両1では配信パッケージが格納される。ステップS3では、更新対象ECUに対して新プログラムの書き込み処理が行われる。ステップS4では、マイコンによる新プログラムの読込処理により、新プログラムが有効化される。ステップS5では、ソフトウェア更新の完了が車載端末12及び/又はユーザ端末3を介して通知される。
図3は、ECUのメモリ構成に応じた、OTAによるソフトウェア更新を説明するための説明図である。図3は、図2に示す複数のステップのうち、ダウンロード、インストール、アクティベート、及び更新完了確認の各ステップを「更新状態」として示している。また図3は、各更新状態における車両1の状態を「車両状態」として示し、更新対象ECUの動作を「対象ECU」として示し、ユーザの状態を「ユーザ」として示している。図3(A)は、ECUのメモリ構成がシングルバンクの場合でのソフトウェア更新フローの一例であり、図3(B)は、ECUのメモリ構成がダブルバンクの場合でのソフトウェア更新フローの一例である。
図3(A)に示すように、更新対象ECUのメモリ構成がシングルバンクの場合、車両1が走行可能な状態(イグニッションスイッチ13がオン)で、車両1では配信パッケージの「ダウンロード」が行われる。ダウンロード完了後、車両1が停車した状態でイグニッションスイッチ13がオンからオフに切り替わると、車両1では更新処理開始の承諾をユーザに求める「承諾要求」が行われる。本実施形態では、車両1に乗車中のユーザは、ソフトウェア更新に関する各種情報を車載端末12により確認しながら操作入力を行い、ソフトウェア更新に関する手続きを行う。
図4は、更新処理開始の承諾を車両1の乗員に求める際に車載端末12に表示される画面の一例である。サーバー2からのダウンロードが完了後、車両1の乗員(ドライバー)がイグニッションスイッチ13をオンからオフに切り替えると、例えば、図4に示すように、車両1のディスプレイ(車載端末12)には、画面Dとして、更新処理開始の承諾を乗員に求める情報C1(「ソフトウェアを更新しますか?」の表示)と、乗員が操作可能な2つのアイコンとして、承諾を示すアイコンA1(「今すぐ」の表示)及び拒否を示すアイコンA2(「後で」の表示)が表示される。乗員が更新処理開始を承諾してアイコンA1を押した場合、車両1ではECUのソフトウェア更新処理が開始される。一方、乗員が更新処理開始を承諾せずにアイコンA2を押した場合、車両1ではECUのソフトウェア更新処理が開始されることなく、車両1のイグニッションをオフする処理が電源系ECU14Dにより実行される。また車載端末12には、更新処理の延期を示す更新処理延期通知が表示される(例えば、「次回へ延期します」の表示)。
図3に戻り、乗員が更新処理開始を承諾すると、車両1では更新用データを用いた「インストール」が行われる。具体的に、ECUのフラッシュメモリでは、旧プログラムの削除後に、新プログラムを書き込む書き換え処理が行われる。書き換え処理が完了すると、ECUのマイコンに新プログラムを読み込ませる「アクティベート」が行われる。その後、車両1の電源再起動処理(リブート処理)を経て、ソフトウェア更新が完了する。ソフトウェア更新が完了すると、車載端末12には、更新が完了したことを示す更新完了通知が表示される(例えば、「ソフトウェア更新は完了しました」の表示)。また更新処理の完了後、車両1のイグニッションをオフする処理が電源系ECU14Dにより実行される。
また図3(B)に示すように、ECUのメモリ構成がダブルバンクの場合、車両1が走行可能な状態で、車両1では配信パッケージの「ダウンロード」の他、更新用データを用いた「インストール」が行われる。ECUのマイコンが第1メモリに格納されたプログラム(旧プログラム)を実行している場合、第2メモリでは、新プログラムを書き込む書き込み処理が行われる。インストール完了後、車両1が停車した状態でイグニッションスイッチ13がオンからオフに切り替わると、車両1では更新処理開始の承諾を乗員に求める「承諾要求」が行われる(図4参照)。乗員が更新処理開始を承諾すると、マイコンの読込先のメモリを第1メモリから第2メモリに変更する「アクティベート」が行われる。その後、車両1の電源再起動処理を経て、ソフトウェア更新が完了する。
このように、ECUのフラッシュメモリの構成に応じて、ソフトウェア更新処理の具体的な内容には、「インストール」及び「アクティベート」と「アクティベート」の違いがあるが、いずれの更新処理であっても、更新処理開始の承諾を乗員に求め、乗員が更新処理開始を承諾した操作を行った場合に、車両1では更新処理が実行される。しかしながら、図4の例において、車載端末12に画面D1が表示された状態で乗員が何ら操作しない場合、更新処理開始に対する乗員の意思(承諾又は拒否)を確認できず、更新処理を開始すべきか否かを判定できないという問題がある。そこで、本実施形態に係るソフトウェア更新装置10は、以下の構成及び方法によって、上記の問題の解決を図る。
次に、ソフトウェア更新装置10について説明する。図5に示すように、ソフトウェア更新装置10は、コントローラ40を備えている。図5は、ソフトウェア更新装置10のコントローラ40が有する機能ブロックの一例である。コントローラ40は、ハードウェア及びソフトウェアを備えたコンピュータにより構成され、プログラムを格納したメモリと、このメモリに格納されたプログラムを実行するCPU等を有している。なお、動作回路としては、CPUに代えて又はこれとともに、MPU、DSP、ASIC、FPGAなどを用いることができる。
図5に示すように、コントローラ40は、機能ブロックとして、情報取得部41と、記憶部42と、出力部43と、開始判定部44と、更新処理実行部45と、電源処理実行部50を有している。コントローラ40は、メモリに記憶されたソフトウェアによって、機能ブロックの各機能を実現する。
情報取得部41は、サーバー2から、車載通信装置11を介して、ソフトウェア更新に関する更新処理情報を取得する。更新処理情報は、上述した、キャンペーン情報、及び配信パッケージを含む。また情報取得部41は、イグニッションスイッチ13から、イグニッションスイッチ13のオン状態又はオフ状態を示す信号を取得する。また情報取得部41は、車載端末12から、ユーザの操作を示す信号を取得する。図4の例において、乗員が承諾表示であるアイコンA1を押した場合、情報取得部41は、車載端末12から、承諾表示が乗員により押されたことを示す信号を取得する。一方、図4の例において、乗員が拒否表示であるアイコンA2を押した場合、情報取得部41は、車載端末12から、拒否表示が乗員により押されたことを示す信号を取得する。
記憶部42は、情報取得部41により取得された情報のうち、サーバー2から取得した情報を記憶する記憶装置として機能する。記憶部42としては、例えば、フラッシュメモリ等の不揮発性記録媒体が用いられる。記憶部42は、サーバー2から取得されたキャンペーン情報及び配信パッケージを格納する。また記憶部42は、車両1に搭載されるECUに関する情報(ECUのメモリ構成等)を記憶していてもよい。記憶部42に記憶された各種情報は、更新処理実行部45での処理に用いられる。
出力部43は、更新処理実行部45による更新処理の開始を承諾するかを車両1の乗員に求める承諾要求情報を出力する。承諾要求情報としては、例えば、画像、音声などが挙げられるが、乗員に承諾を求める方法は特に限定されない。例えば、出力部43は、図4に示すような「ソフトウェアを更新しますか?」の表示画像をメモリから読み出して、画像信号を車載端末12に出力する。これにより、図4の例のような画面Dが車載端末12に表示される。また例えば、出力部43は、画像信号とともに又はこれに代えて、更新処理開始を承諾するかを乗員に求める音声信号を車載端末12に出力してもよい。これにより、音声により更新処理開始の承諾を乗員に求めることができる。
また本実施形態では、出力部43は、所定の出力条件を満たした場合、承諾要求情報を出力する。出力部43は、情報取得部41により取得された情報に基づき、イグニッションスイッチ13が乗員によりオンからオフに操作されたか否かを判定する。出力部43は、イグニッションスイッチ13の状態を示す信号がオン状態からオフ状態に切り替わった場合、承諾要求情報を出力する。なお、出力部43による出力条件は一例であって、出力条件はその他の条件であってもよい。
開始判定部44は、更新処理実行部45による更新処理を開始するか否かを判定する。開始判定部44は、出力部43により出力された承諾要求情報に対して乗員が更新処理開始を承諾した場合、更新処理を開始すると判定し、承諾要求情報に対して乗員が更新処理開始を拒否した場合、更新処理を開始しないと判定する。図4の例において、車載端末12に表示された画面Dに対して、乗員が承諾表示(アイコンA1)又は拒否表示(アイコンA2)を操作した場合、情報取得部41は、車載端末12から、承諾表示又は拒否表示が乗員により押されたことを示す操作信号を取得する。開始判定部44は、情報取得部41が取得した操作信号を、承諾要求情報に対する乗員の回答である回答情報と見なす。開始判定部44は、回答情報に応じて、更新処理を開始するか否かを判定する。例えば、開始判定部44は、回答情報が、乗員により承諾表示が操作されたことを示す場合、更新処理を開始すると判定し、回答情報が、乗員により拒否表示が操作されたことを示す場合、更新処理を開始しないと判定する。
また本実施形態では、開始判定部44は、承諾要求情報が出力された後、所定時間以上、回答情報が入力されない場合、更新処理に要する所要時間に基づき、更新処理を開始するか否かを判定する。つまり、更新処理開始を承諾するかを乗員に求めたにもかかわらず、乗員が何ら回答しない場合、開始判定部44は、更新処理に要する所要時間に基づき、更新処理を開始するか否かを判定する。所定時間は、予め設定された時間である。また更新処理に要する所要時間とは、サーバー2で算出された、車両1での更新処理が完了するまでの見積り時間である。
開始判定部44は、更新処理に要する所要時間が第1閾値未満の場合、更新処理を開始すると判定し、更新処理に要す所要時間が第1閾値以上の場合、更新処理を開始しないと判定する。第1閾値は、予め設定された閾値(単位:時間)である。第1閾値は、例えば、各ECUの更新処理の平均時間に基づき算出された時間である。
更新処理実行部45は、承諾要求情報に対する乗員の回答である回答情報に応じて、更新処理を実行する。更新処理実行部45は、開始判定部44により更新処理を開始すると判定された場合、更新処理を実行し、開始判定部44により更新処理を開始しないと判定された場合、更新処理の実行を延期する。なお、開始判定部44により更新処理を開始しないと判定された場合、更新処理の実行が延期されればよく、更新処理実行部45は、その他の処理を実行してもよい。
更新処理実行部45は、更新処理を実行する機能ブロックとして、更新対象ECUのメモリ構成に応じたインストール実行部及びアクティベート実行部を含む。図5に示すように、更新処理実行部45は、メモリ構成がシングルバンクに対応した第1インストール実行部46及び第1アクティベート実行部47と、メモリ構成がダブルバンクに対応した第2インストール実行部48及び第2アクティベート実行部49とを含む。図3を用いて説明したように、ECUのメモリ構成がシングルバンクかダブルバンクかの違いによって、「インストール」及び「アクティベート」それぞれの処理内容が異なる。このため、本実施形態では、複数のインストール実行部及び複数のアクティベート実行部が設けられている。更新対象ECUのメモリ構成がシングルバンクの場合、第1インストール実行部46により新プログラムのインストールが行われ、第1アクティベート実行部47により新プログラムのアクティベートが行われる。一方、更新対象ECUのメモリ構成がダブルバンクの場合、第2インストール実行部48により新プログラムのインストールが行われ、第2アクティベート実行部49により新プログラムのアクティベートが行われる。更新処理実行部45は、記憶部42に記憶された車両1に搭載されるECUに関する情報から、更新対象ECUのメモリ構成を判別する。
第1インストール実行部46は、フラッシュメモリに格納されている旧プログラムを削除した後に、新プログラムを書き込むインストール処理を実行する。第1アクティベート実行部47は、フラッシュメモリに書き込まれた新プログラムを、更新対象ECUが備えるマイコンに読み込ませるアクティベート処理を実行する。
フラッシュメモリの第1メモリ及び第2メモリのうち第1メモリに旧プログラムが格納され、マイコンが旧プログラムを読み込んでいる場合、第2インストール実行部48は、旧プログラムが格納されていない第2メモリに、新プログラムを書き込むインストール処理を実行する。第2アクティベート実行部49は、更新対象ECUが備えるマイコンによるプログラムの読込先を、第1メモリから第2メモリに切り替えるアクティベート処理を実行する。
電源処理実行部50は、車両1のIG電源である駆動用バッテリの出力電力をゼロにするための制御信号を電源系ECU14Dに出力し、車両1のイグニッションをオフさせる。
次に、図6のフローチャートを参照しながら、本実施形態に係るソフトウェア更新方法の一例を説明する。図6に示すフローチャートは、図5に示すソフトウェア更新装置10のコントローラ40により実行される。なお、図6のフローチャートは、更新対象ECUのメモリ構成がシングルバンクの場合のフローチャートである。また図6のフローチャートは、図2に示す、ダウンロード(ステップS2)~更新完了の確認(ステップS5)のフローチャートである。
ステップS11では、コントローラ40は、サーバー2から、車載通信装置11を介して、配信パッケージを取得する(ダウンロード)。配信パッケージは、更新用データ、更新用データの認証処理に用いられる認証用データ、及び更新処理見積り時間を含む。
ステップS12では、コントローラ40は、イグニッションスイッチ13が乗員の操作によりオンからオフに切り替わったか否かを判定する。コントローラ40は、イグニッションスイッチ13から、乗員による操作を示す信号を取得する。乗員によりイグニッションスイッチ13がオンからオフに切り替わった場合、ステップS13に進み、イグニッションスイッチ13がオンを維持する場合、乗員によりイグニッションスイッチ13がオンからオフに切り替わるまで、ステップS12で待機する。
ステップS13では、コントローラ40は、ソフトウェアの更新処理開始を車両1の乗員に承諾を求める承諾要求情報を出力する。例えば、図4の例のように、コントローラ40は、乗員に承諾を求める承諾要求情報を車載端末12の画面に表示させる。
ステップS14では、コントローラ40は、ステップS13で出力した承諾要求情報に対して乗員からの回答があるか否かを判定する。例えば、図4の例のように、承諾要求情報が車載端末12の画面に表示されている場合、コントローラ40は、画面への乗員の操作を示す信号が入力されると、入力された信号を乗員からの回答情報と見なし、乗員からの回答があると判定する。一方、コントローラ40は、画面への乗員の操作を示す信号が入力されないと、乗員からの回答がないと判定する。乗員からの回答があると判定された場合、ステップS15に進み、乗員からの回答がないと判定された場合、ステップS18に進む。
ステップS14において、乗員からの回答があると判定されると、ステップS15に進む。ステップS15では、コントローラ40は、ステップS14で入力された乗員からの回答情報が、更新処理開始に対する承諾を示す情報か否かを判定する。例えば、図4の例において、乗員がアイコンA1(「今すぐ」の表示)を押した場合、ステップS14で取得した回答情報には、乗員が承諾したことを示す情報が含まれるため、コントローラ40は、更新処理開始に乗員が承諾したと判定する。また例えば、図4の例において、乗員がアイコンA2(「後で」の表示)を押した場合、ステップS14で取得した回答情報には、乗員が拒否することを示す情報が含まれるため、コントローラ40は、更新処理開始に乗員が承諾していないと判定する。乗員が承諾したと判定された場合、ステップS16に進み、乗員が承諾していないと判定された場合、ステップS17に進む。
ステップS15で乗員が承諾したと判定された場合、ステップS16に進む。ステップS16では、コントローラ40は、更新対象ECUに対してソフトウェアの更新処理を実行する。具体的には、ECUのメモリ構成がシングルバンクの場合、図3(A)の例で示すように、コントローラ40は、インストール処理及びアクティベート処理を実行する。各処理の具体的な内容については、既述の説明を援用する。
ステップS15で乗員が承諾していないと判定された場合、又はステップS16での処理が終了した場合、ステップS17に進む。ステップS17では、コントローラ40は、ステップS12で乗員によるイグニッションスイッチ13への操作に対応する処理として、車両1のイグニッションをオフする処理を実行する。具体的には、コントローラ40は、車両1のイグニッションをオフさせる制御信号を、電源系ECU14Dに出力する。ステップS15の処理が終了すると、図6に示すフローチャートでの処理が終了する。
ステップS14で乗員からの回答がないと判定された場合、ステップS18に進む。ステップS18では、コントローラ40は、所定時間が経過したか否かを判定する。所定時間が経過したと判定した場合、ステップS19に進む。所定時間が経過していないと判定された場合、ステップS14に戻り、コントローラ40は、上述したステップS14での処理を実行する。
ステップS18で所定時間が経過したと判定された場合、ステップS19に進む。ステップS19では、コントローラ40は、ステップS11で取得した更新処理の所要時間が第1閾値未満であるか否かを判定する。具体的には、コントローラ40は、インストール処理及びアクティベート処理の所要時間が第1閾値未満か否かを判定する。更新処理の所要時間が第1閾値未満と判定された場合、ステップS20に進み、更新処理の所要時間が第1閾値以上と判定された場合、ステップS21に進む。
ステップS19で更新処理の所要時間が閾値未満と判定された場合、ステップS20に進む。ステップS20では、コントローラ40は、更新処理を開始すると判定する。その後、ステップS16に進み、コントローラ40は、上述した更新処理を実行する。一方、ステップS19で更新処理の所要時間が閾値以上と判定された場合、ステップS21に進む。ステップS21では、コントローラ40は、更新処理を開始しないと判定する。その後、ステップS17に進み、コントローラ40は、上述した車両1のイグニッションをオフさせる処理を実行し、図6に示すフローチャートでの処理が終了する。
更新対象ECUのメモリ構成がダブルバンクの場合のフローチャートについて、図6を用いて、シングルバンクでの処理と異なるステップのみを説明する。メモリ構成がダブルバンクの場合、コントローラ40は、ステップS11の処理が終了すると、ステップS12に進む前に、ステップS11で取得した新プログラムを用いて、インストール処理を実行する。具体的には、ECUのメモリ構成がダブルバンクの場合、コントローラ40は、図3(B)の例で示すようなインストール処理を実行する。処理の具体的な内容については、既述の説明を援用する。
またステップS16では、コントローラ40は、更新対象ECUに対するソフトウェアの更新処理として、アクティベート処理を実行する。具体的には、ECUのメモリ構成がダブルバンクの場合、図3(B)の例で示すように、コントローラ40は、アクティベート処理として、ECUのマイコンの読込先を旧プログラムが格納されているメモリから新プログラムが格納されているメモリに切り替える。
またステップS19では、コントローラ40は、ステップS11で取得した更新処理の所要時間が第1閾値未満であるか否かを判定する。具体的には、ECUのメモリ構成がダブルバンクの場合、コントローラ40は、アクティベート処理の所要時間が第1閾値未満であるか否かを判定する。
以上のように、本実施形態に係るソフトウェア更新装置10は、車両1に搭載されるボディ系ECU14A、走行系ECU14B、マルチメディア系ECU14Cのソフトウェアを更新するソフトウェア更新装置である。ソフトウェア更新装置10は、出力部43と、
更新処理実行部45と、開始判定部44を備える。出力部43は、サーバー2から、ソフトウェアの更新に関する更新処理情報を取得する。更新処理実行部45は、承諾要求情報に対する乗員の回答である回答情報に応じて、更新処理を実行する。開始判定部44は、承諾要求情報が出力された後、所定時間以上、回答情報が入力されない場合、更新処理に要する所要時間に基づき、更新処理を開始するか否かを判定する。本実施形態に係るソフトウェア更新装置10、ソフトウェア更新システム100、及びソフトウェア更新方法によれば、ソフトウェアの更新処理の開始を承諾するかを車両1のユーザである乗員に求め、ユーザからの回答がない場合であっても、更新処理を開始すべきか否かを判定できる。
また本実施形態では、更新処理実行部45は、開始判定部44により更新処理を開始すると判定された場合、更新処理を実行し、開始判定部44により更新処理を判定しないと判定された場合、更新処理を実行せずに延期する。これにより、ソフトウェアの更新処理の開始を承諾するかを乗員に求め、乗員からの回答がない場合であっても、自動的に更新処理を実行したり、また自動的に更新処理を延期したりすることができる。
また本実施形態では、開始判定部44は、更新処理に要する所要時間が第1閾値未満の場合、更新処理を開始すると判定し、更新処理に要する所要時間が第1閾値以上の場合、更新処理を開始しないと判定する。更新処理に要する所要時間に応じて、更新処理を開始するか否かを判定できるため、例えば、更新処理に要する所要時間が比較的長い場合、すなわち、車両1のダウンタイムが比較的長い場合、更新処理が完了するまで乗員が車両1を使用できなくなるのを防ぐことができる。また例えば、更新処理に要する時間が比較的短い場合、すなわち、車両1のダウンタイムが比較的短い場合、更新処理が開始されても、乗員は比較的短い待ち時間で車両1を使用することができる。
また本実施形態では、更新対象ECUは、旧プログラムを格納するフラッシュメモリを有し、更新処理実行部45は、旧プログラムをフラッシュメモリから削除した後に、フラッシュメモリに新プログラムを書き込むインストール処理を実行する第1インストール実行部46と、フラッシュメモリに書き込まれた新プログラムをマイコンに読み込ませるアクティベート処理を実行する第1アクティベート実行部47を含み、更新処理実行部45により実行される更新処理は、インストール処理及びアクティベート処理である。これにより、更新対象ECUのメモリ構成がシングルバンクの場合にも、更新処理を開始すべきか否かを判定できる。
また本実施形態では、更新対象ECUは、旧プログラムを格納する第1メモリと、第2メモリのダブルバンクで構成されるフラッシュメモリを有し、更新処理実行部45は、第2メモリに新プログラムを書き込む第2インストール実行部48と、マイコンのプログラムの読込先を、第1メモリから第2メモリに切り替えるアクティベート処理を実行する第2アクティベート実行部49を含み、更新処理実行部45により実行される更新処理は、インストール処理及びアクティベート処理である。これにより、更新対象ECUのメモリ構成がダブルバンクの場合にも、更新処理を開始すべきか否かを判定できる。
また本実施形態では、情報取得部41は、車両1のイグニッションスイッチ13から、イグニッションスイッチ13のオン状態又はオフ状態を示す信号を取得し、出力部43は、乗員によりイグニッションスイッチ13がオンからオフに操作された場合、承諾要求情報を出力する。乗員が車両1を使用しないことを表す操作をトリガにして、承諾要求情報を乗員に提示することができる。
また本実施形態では、情報取得部41は、サーバー2から、更新処理時間の所要時間を取得する。これにより、ソフトウェア更新装置10で更新処理の所要時間を算出することなく、更新処理を開始すべきか否かを判定できるため、ソフトウェア更新装置10での演算負荷を低減することができる。
なお、本実施形態では、ソフトウェア更新装置10が、サーバー2から更新処理の所要時間を取得する構成を例に挙げて説明したが、更新処理の所要時間を算出する主体はサーバー2に限定されず、ソフトウェア更新装置10が更新処理の所要時間を算出してもよい。
本実施形態の変形例として、コントローラ40は、機能ブロックとして、更新用データのデータサイズに基づき、更新処理に要する所要時間を算出する算出部を有していてもよい。例えば、更新用データのデータサイズと更新処理見積り時間の関係を示すマップが予め記憶部42に格納されている場合、算出部は、当該マップを参照して、データサイズに応じた更新処理見積り時間を算出してもよい。また例えば、算出部は、更新用データのデータサイズが大きいほど、更新処理見積り時間を長く算出してもよい。変形例のように、ソフトウェア更新装置10が更新処理見積り時間を算出することで、サーバー2での演算負荷を低減することができる。なお、コントローラ40が更新処理見積り時間を算出するタイミングは、更新処理見積り時間と第1閾値との比較が行われる前であれば特に限定されないが、例えば、図6のフローチャートにおいて、コントローラ40は、ステップS11とステップS12の間で、更新用データのデータサイズに基づき、更新処理に要する所要時間を算出する。
≪第2実施形態≫
次に、第2実施形態に係るソフトウェア更新装置について説明する。第2実施形態に係るソフトウェア更新装置は、上述した第1実施形態に係るソフトウェア更新装置10に対して、開始判定部44の一部の機能が異なる以外は、第1実施形態と同じ構成のため、第1実施形態と同じ構成については、既述の説明を援用する。
本実施形態では、開始判定部44は、出力部43により承諾要求情報が出力された後、所定時間以上、乗員からの回答情報が入力されない場合、ECUのソフトウェアの更新に対する重要度に基づき、更新処理を開始するか否かを判定する。ECUのソフトウェアの更新に対する重要度とは、上述した第1実施形態において、サーバー2で算出された、更新の重要度である。
開始判定部44は、更新の重要度が第2閾値以上の場合、更新処理を開始すると判定し、更新の重要度が第2閾値未満の場合、更新処理を開始しないと判定する。第2閾値は、予め設定された閾値である。第2閾値は、例えば、各ECUに付されたASILのランクを平均した平均ランクに基づき算出された値である。
次に、図7のフローチャートを参照しながら、本実施形態に係るソフトウェア更新方法の一例を説明する。図7に示すフローチャートは、本実施形態に係るソフトウェア更新装置のコントローラ40により実行される。なお、図7のフローチャートは、図6のステップS19に相当するステップが異なる以外は、図6のフローチャートと同じフローチャートであるため、図6のフローチャートと同じステップについては、既述の説明を援用する。
ステップS18で所定時間が経過したと判定された場合、ステップS22に進む。ステップS22では、コントローラ40は、ステップS11で取得した更新の重要度が第2閾値以上か否かを判定する。更新の重要度が第2閾値以上と判定された場合、ステップS20に進み、更新の重要度が第2閾値未満と判定された場合、ステップS21に進む。
以上のように、本実施形態では、開始判定部44は、出力部43により承諾要求情報が出力された後、所定時間以上、乗員からの回答情報が入力されない場合、ECUのソフトウェアの更新に対する重要度に基づき、更新処理を開始するか否かを判定する。これにより、ソフトウェアの更新処理の開始を承諾するかを車両1のユーザである乗員に求め、ユーザからの回答がない場合であっても、更新処理を開始すべきか否かを判定できる。
また本実施形態では、開始判定部44は、更新の重要度が第2閾値以上の場合、更新処理を開始すると判定し、更新の重要度が第2閾値未満の場合、更新処理を開始しないと判定する。更新の重要度に応じて、更新処理を開始するか否かを判定できるため、重要性や緊急性の高い更新処理の開始を承諾するか乗員に求め、乗員からの回答がない場合であっても、自動的に重要性や緊急性の高い更新処理を実行することができる。
なお、本実施形態では、ソフトウェア更新装置10が、サーバー2から更新の重要度を取得する構成を例に挙げて説明したが、更新の重要度を算出する主体はサーバー2に限定されず、ソフトウェア更新装置10が更新の重要度を算出してもよい。
本実施形態の変形例として、コントローラ40は、機能ブロックとして、更新対象ECUの種別に基づき、更新の重要度を算出する重要度算出部を備えていてもよい。例えば、重要度算出部は、更新対象ECUが車両1の走行に関与するECUの場合、更新対象ECUが車両1の走行に関与しないECUの場合に比べて、更新の重要度を高く算出する。また例えば、重要度算出部は、更新対象ECUに付されたASILのランクが所定の基準ランクよりも高い場合、更新対象ECUに付されたASILのランクが所定の基準ランクよりも低い場合に比べて、更新の重要度を高く算出する。ソフトウェア更新装置10が更新の重要度を算出することで、サーバー2での演算負荷を低減することができる。なお、コントローラ40が更新の重要度を算出するタイミングは、更新の重要度と第2閾値とを比較する前であれば特に限定されないが、例えば、図7のフローチャートにおいて、コントローラ40は、ステップS11とステップS12の間で、更新対象ECUの種別に基づき、更新の重要度を算出する。また更新対象ECUのメモリ構成がダンブルバンクの場合のフローチャートについては、上述した第1実施形態での説明を援用する。
≪第3実施形態≫
次に、第3実施形態に係るソフトウェア更新装置について説明する。第3実施形態に係るソフトウェア更新装置は、上述した2つの実施形態に係るソフトウェア更新装置に対して、開始判定部44の一部の機能が異なる以外は、第1実施形態及び第2実施形態と同じ構成のため、第1実施形態及び第2実施形態と同じ構成については、既述の説明を援用する。
本実施形態では、開始判定部44は、出力部43により承諾要求情報が出力された後、所定時間以上、乗員からの回答情報が入力されない場合、第1実施形態での更新処理に要する所要時間に応じた判定方法と、第2実施形態での更新の重要度に応じた判定方法とを組み合わせて、更新処理を開始するか否かを判定する。開始判定部44は、更新処理の重要度が第2閾値以上の場合、更新処理に要する所要時間が第1閾値未満であるか否かにかかわらず、更新処理を開始すると判定する。例えば、開始判定部44は、まず更新の重要度に応じた判定方法を用い、更新の重要度が第2閾値以上の場合、更新処理を開始すると判定する。開始判定部44は、更新の重要度が第2閾値未満の場合、更新処理に要する所要時間に応じた判定方法を用い、更新処理に要する時間が第1閾値未満の場合、更新処理を開始すると判定し、更新処理に要する時間が第1閾値上の場合、更新処理を開始しないと判定する。更新の重要度は、第2実施形態に係る更新の重要度であり、更新処理に要する所要時間とは、第1実施形態に係る更新処理に要する所要時間である。
次に、図8のフローチャートを参照しながら、本実施形態に係るソフトウェア更新方法の一例を説明する。図8に示すフローチャートは、本実施形態に係るソフトウェア更新装置のコントローラ40により実行される。なお、図8のフローチャートは、図7のフローチャートに対して、ステップS23が追加された以外は、図7のフローチャートと同じフローチャートであるため、図7のフローチャートと同じステップについては、既述の説明を援用する。
ステップS18で所定時間が経過したと判定された場合、ステップS22に進む。ステップS22では、コントローラ40は、ステップS11で取得した更新の重要度が第2閾値以上か否かを判定する。更新の重要度が第2閾値以上と判定された場合、ステップS20に進み、更新の重要度が第2閾値未満と判定された場合、ステップS23に進む。
ステップS22で更新の重要度が第2閾値未満と判定された場合、ステップS23に進む。ステップS23では、コントローラ40は、ステップS11で取得した更新処理の所要時間が第1閾値未満であるか否かを判定する。具体的には、コントローラ40は、インストール処理及びアクティベート処理の所要時間が第1閾値未満か否かを判定する。更新処理の所要時間が第1閾値未満と判定された場合、ステップS20に進み、更新処理の所要時間が第1閾値以上と判定された場合、ステップS21に進む。ステップS23は、第1実施形態でのステップS19に対応したステップである。
以上のように、本実施形態では、開始判定部44は、更新の重要度が第2閾値以上の場合、更新処理に要する所要時間が第1閾値未満であるか否かにかかわらず、更新処理を開始すると判定する。これにより、重要度が比較的高い更新の場合、更新処理に要する時間にかからず、更新処理を開始すると判定できるため、重要性や緊急性の高い更新処理の開始を承諾するか乗員に求め、乗員からの回答がない場合であっても、自動的に重要性や緊急性の高い更新処理を実行することができる。
なお、上述した第1実施形態及び第2実施形態と同様に、本実施形態においても、更新処理の所要時間及び更新の重要度を算出する主体はサーバー2に限定されず、ソフトウェア更新装置10が更新処理の所要時間を算出してもよい。具体的な構成については、既述の説明を援用する。また更新対象ECUのメモリ構成がダンブルバンクの場合のフローチャートについては、上述した第1実施形態での説明を援用する。
なお、以上に説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
例えば、上述した第3実施形態では、更新処理に要する所要時間に応じた開始判定の方法と更新の重要度に応じた開始判定の方法とを用いる構成を例に挙げて説明したが、第3実施形態での開始判定の方法と同等の効果が得られる方法は、2つの開始判定の方法を用いることに限られない。例えば、上述した第1実施形態において、開始判定部44は、更新の重要度に応じて、更新処理に要する所要時間との比較対象である第1閾値を設定してもよい。例えば、開始判定部44は、更新の重要度が第2閾値以上の場合、更新の重要度が第2閾値未満の場合に比べて、第1閾値を高く設定してもよい。また開始判定部44は、更新の重要度が高いほど、第1閾値を高く設定してもよい。第1閾値が高く設定されるほど、開始判定部44での更新処理に要する所要時間と第1閾値との比較では、更新処理を開始すると判定されやすくなり、第3実施形態での効果と同様の効果を得ることができる。
また例えば、上述した第1実施形態~第3実施形態では、更新処理の開始を承諾することを乗員に求め、乗員が承諾した場合、ソフトウェア更新装置10が、更新処理を実行する構成を例に挙げて説明したが、ソフトウェア更新装置10は、承諾要求情報に対する乗員の回答に加えて、車両1の停車地点に応じて、更新処理を実行してもよい。例えば、情報取得部41は、GPS等の車両1の現在地を検出する検出装置から、車両1の位置情報を取得し、更新処理実行部45は、承諾要求情報に対する乗員の回答である回答情報及び車両1の停車地点に応じて、更新処理を実行してもよい。例えば、乗員が所定の店舗に立ち寄るために、車両1を店舗の駐車場に停車させた場合、乗員の店舗での滞在時間は乗員の自宅に比べて短いため、更新処理に使用可能な時間が短い傾向にある。このような場合、更新処理実行部45は、乗員が更新処理の開始を承諾しても、更新処理を実行しない。例えば、図8のフローチャートにおいて、ソフトウェア更新装置10は、ステップS13及びステップS14の処理を省略して、ステップS12で肯定的な判定がされた場合、ステップS21の処理を実行してもよい。また例えば、乗員が帰宅するために、車両1を自宅の駐車場に停車させた場合、更新処理に使用可能な時間が比較的長い傾向にある。このような場合、更新処理実行部45は、乗員が更新処理の開始を承諾すれば、更新処理を実行する。例えば、図8のフローチャートにおいて、ソフトウェア更新装置10は、ステップS13の処理が終了した後、ステップS14の処理を省略して、ステップS16を実行してもよい。なお、車両の停車地点として、店舗とユーザの自宅を例に挙げて説明したが、車両の停車地点を限定するものではない。
また例えば、上述した第1実施形態~第3実施形態では、更新処理に要する所要時間との比較対象である第1閾値、及び更新の重要度との比較対象である第2閾値は、それぞれ予め設定された値として説明したが、第1閾値及び/又は第2閾値は、ユーザが設定可能な値であってもよい。例えば、ユーザは、車載端末12を介して第1閾値及び/又は第2閾値を設定する構成であってもよい。例えば、更新処理に要する所要時間が5分未満の場合、ソフトウェア更新装置10に更新処理を開始すると判定させたい場合、ユーザは、第1閾値を5分に設定する。