[本開示の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本開示の一態様に係る車載装置は、車両に搭載される車載ECUのプログラムを更新するための処理を行う車載装置であって、前記車載ECUへの更新プログラムのフレームの送信を制御する制御部と、前記車載ECUへ前記更新プログラムのフレームを送信するためのバスにおけるバス負荷の履歴を記憶する記憶部とを備え、前記制御部は、前記更新プログラムのフレームを前記車載ECUへ送信する前に、前記履歴に基づき前記更新プログラムのフレームを送信するための送信周期を導出し、導出した前記送信周期に基づき前記更新プログラムのフレームを前記車載ECUへ送信する。
本態様にあたっては、車載装置は、更新プログラムを複数のフレームとして車載ECUへ送信する。車載装置と車載ECUとは、バスを介して更新プログラム以外のデータも送受信する。制御部は、更新プログラムを取得する際、バス負荷の履歴に基づき更新プログラムのフレームの送信周期を導出する。制御部は導出した送信周期に基づき更新プログラムのフレームを送信するので、更新プログラム以外のデータが送受信されている場合であっても、バス負荷が大きくなりすぎることを防止することができる。制御部は、更新プログラムの送信と更新プログラム以外のデータの送受信とが行われる場合であっても、バス負荷の上限値を超えないように更新プログラムを車載ECUへ送信することができる。
(2)本開示の一態様に係る車載装置は、前記制御部は、前記バス負荷、及び予め記憶してあるバス負荷と送信周期との関係に基づき前記送信周期を導出する。
本態様にあたっては、バス負荷と送信周期との関係が予め記憶されている。制御部は、上記の関係及びバス負荷に基づき更新プログラムのフレームの送信周期を導出する。制御部は上記の関係を用いることによって、バスに任意のバス負荷が生じる送信周期を導出することができる。制御部は、バスをバス負荷の上限値まで有効活用して更新プログラムのフレームを車載ECUへ送信することができるので、更新プログラムを効率的に車載ECUへ送信することができる。
(3)本開示の一態様に係る車載装置は、前記制御部は、前記バス負荷と、更新プログラムのフレーム以外の突発的なフレームの送受信によって生じると推定される推定バス負荷と、前記関係とに基づき前記送信周期を導出する。
本態様にあたっては、突発的なフレームの送受信によってバスに生じるバス負荷が推定バス負荷として予め推定される。突発的なフレームはいわゆるイベントフレームである。制御部は、バス負荷と送信周期との関係、バス負荷、及び推定バス負荷とに基づき送信周期を導出する。送信周期に推定バス負荷が考慮されるので、制御部が更新プログラムのフレームを車載ECUへ送信している際に突発的なフレームが送受信される場合であっても、制御部は、バス負荷の上限値を超えずに更新プログラムのフレームを車載ECUへ送信することができる。
(4)本開示の一態様に係る車載装置は、前記制御部は、前記バス負荷を検出し、検出した前記バス負荷と前記履歴に含まれる前記バス負荷とを比較し、検出した前記バス負荷が前記履歴に含まれる前記バス負荷よりも大きい場合、検出した前記バス負荷に基づき前記送信周期を導出し、検出した前記バス負荷が前記履歴に含まれる前記バス負荷以下である場合、前記履歴に含まれる前記バス負荷に基づき前記送信周期を導出する。
本態様にあたっては、制御部は、バス負荷を検出し、検出したバス負荷と履歴に含まれるバス負荷とを比較する。制御部は、検出したバス負荷が履歴に含まれるバス負荷よりも大きい場合、検出したバス負荷に基づき送信周期を導出する。また制御部は、検出したバス負荷が履歴に含まれるバス負荷以下である場合、履歴に含まれるバス負荷に基づき送信周期を導出する。制御部は、検出したバス負荷が履歴に含まれるバス負荷よりも大きい場合であっても、適切な送信周期を導出することができる。
(5)本開示の一態様に係る車載装置は、前記履歴は、前記更新プログラムのフレームの送信中を除く期間における前記バス負荷の最大値を含み、前記制御部は、前記最大値に基づき前記送信周期を導出する。
本態様にあたっては、履歴は更新プログラムの送信中を除く期間におけるバス負荷の最大値を含む。制御部は履歴に基づき送信周期を導出する際、履歴に含まれるバス負荷の最大値を用いる。制御部は、バス負荷の最大値に基づき送信周期を導出することによって、車載ECUへ更新プログラムのフレームを送信する際に更新プログラム以外のデータが送受信されている場合であっても、バス負荷が大きくなりすぎることを効果的に防止することができる。
(6)本開示の一態様に係る車載装置は、前記制御部は、前記更新プログラムのデータ量と、導出した前記送信周期とに基づき、前記車載ECUへの前記更新プログラムの送信に要する時間を演算し、演算した前記時間を、前記車両に設けられた表示部に表示させる。
本態様にあたっては、制御部は、車載ECUへの更新プログラムの送信に要する時間を演算し、演算した時間を車両に設けられたディスプレイ等の表示部へ表示させる。制御部は車載ECUへの更新プログラムの送信に要する時間を、車両の運転手等の乗員に通知することができる。
(7)本開示の一態様に係る車載装置は、前記制御部は、前記更新プログラムのデータ量と前記送信周期とに基づき、前記車載ECUへの前記更新プログラムの送信に要する時間を演算する端末へ、導出した前記送信周期を出力する。
本態様にあたっては、制御部は導出した送信周期を端末へ出力する。端末は、更新プログラムのデータ量と出力された送信周期とに基づき車載ECUへの更新プログラムの送信に要する時間を演算する。端末の所有者、例えば車両の整備を行う作業者に車載ECUへの更新プログラムの送信に要する時間を通知することができる。
(8)本開示の一態様に係る車載装置は、前記制御部は、前記車載ECUへの前記更新プログラムのフレームの送信を実行するか否かの情報を取得し、受信した前記車載ECUへの前記更新プログラムのフレームの送信を実行するか否かの情報に応じて、前記車載ECUへの前記更新プログラムのフレームの送信を実行するか、又は前記車載ECUへの前記更新プログラムのフレームの送信を中止する。
本態様にあたっては、制御部は、車載ECUへの更新プログラムのフレームの送信を実行するか否かの情報を取得する。制御部は、取得した情報が車載ECUへの更新プログラムのフレームの送信を実行する旨を示す場合、導出した送信周期に基づき更新プログラムのフレームを車載ECUへ送信する。車載ECUのプログラムは更新される。制御部は、取得した情報が車載ECUへの更新プログラムのフレームの送信を実行しない旨を示す場合、制御部は更新プログラムのフレームを車載ECUへ送信しない。車載ECUのプログラムは更新されない。車載ECUへの更新プログラムのフレームの送信を実行するか否かの情報に応じて車載装置は、車載ECUのプログラムの更新を実行又は中止させることができる。
(9)本開示の一態様に係る更新方法は、更新プログラムのフレームを車載ECUへ送信する前に、前記車載ECUへ前記更新プログラムのフレームを送信するためのバスにおけるバス負荷の履歴に基づき前記更新プログラムのフレームを送信するための送信周期を導出し、導出した前記送信周期に基づき前記更新プログラムのフレームを前記車載ECUへ送信する。
本態様にあたっては、態様(1)と同様に、更新プログラムの送信と更新プログラム以外のデータの送受信とが行われる場合であっても、バス負荷の上限値を超えないように更新プログラムを車載ECUへ送信することができる。
[本開示の実施形態の詳細]
本開示をその実施形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載装置を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
(実施形態1)
以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載システムのシステム構成を例示する模式図である。車載システムは、車両Cに搭載される統合ECU6、複数の個別ECU2及び、当該個別ECU2に接続される車載機器3を含む。統合ECU6と各個別ECU2とは、バス4を介して接続されている。
個別ECU2は、車両Cにおける各エリアに配置される。個別ECU2は、当該個別ECU2と接続される複数の車載機器3と信号又はデータを送受信する。また個別ECU2は統合ECU6と通信を行う。
車載機器3は、例えばLiDAR(Light Detection and Ranging)、ライトセンサ、CMOSカメラ、及び赤外線センサ等の各種センサ31と、ドア開閉装置、及びモータ装置等のアクチュエータ30とを含む。更に車載機器3は、車両Cに設けられた表示部32、及び操作部33を含む。表示部32は、例えばカーナビゲーションシステムのディスプレイである。操作部33は、例えばタッチパネルである。操作部33は車両Cの運転手等の乗員による操作を受け付ける。例えば表示部32及び操作部33とは一体に構成されている。図1において表示部32及び操作部33は一の個別ECU2を介して統合ECU6と接続されている。車載機器3は上記の例に限定されず、ドアSW(スイッチ)及びランプSW等のスイッチでもよく、ランプでもよい。
個別ECU2は車載機器3の駆動制御を行う。例えば個別ECU2はセンサ31から出力された出力信号を取得し、取得した出力信号に基づき生成した要求信号を統合ECU6に送信する。要求信号は例えばセンサ31の検出値を含む。統合ECU6は個別ECU2から送信された要求信号を取得し、センサ31の検出値に基づき生成した制御信号を個別ECU2へ送信する。個別ECU2は、統合ECU6から送信された制御信号に基づきアクチュエータ30の駆動制御を行う。
統合ECU6は、例えばヴィークルコンピュータ等の中央制御装置である。統合ECU6はバス4を介して個別ECU2と通信する。また統合ECU6は、複数の個別ECU2の間における通信を中継する。統合ECU6は、車両Cの外部に位置する外部サーバ100と、車両Cに搭載された車外通信装置1を介して通信可能に接続されている。統合ECU6は、外部サーバ100から個別ECU2の更新プログラム5を取得する。統合ECU6は、取得した更新プログラム5を更新対象の個別ECU2へ送信する。
外部サーバ100は、例えばインターネット又は公衆回線網等の外部ネットワークNに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による図示しない記憶部を備える。記憶部に更新プログラム5が記憶される。統合ECU6は、車外通信装置1と通信可能に接続され、車外通信装置1を介して外部ネットワークNを介して接続された外部サーバ100と通信し、外部サーバ100と、車両Cに搭載される個別ECU2との間の通信を中継するものであってもよい。外部サーバ100の記憶部に更新プログラム5が保存される。外部サーバ100は、対象が車両Cの個別ECU2である更新プログラム5が保存されている場合、統合ECU6へ更新通知を送信する。
車外通信装置1は、例えばTCU(Telematics Control Unit)である。車外通信装置1は、車外通信部(図示せず)及び、統合ECU6と通信するための入出力I/F(インターフェイス/図示せず)を含む。車外通信部は、4G、LTE(Long Term Evolution/登録商標)、5G、又はWiFi(登録商標)等の移動体通信のプロトコルを用いて無線通信をするための通信装置である。車外通信部は、車外通信部に接続されたアンテナ11を介して外部サーバ100とデータの送受信を行う。車外通信装置1と外部サーバ100との通信は、例えば公衆回線網又はインターネット等の外部ネットワークNを介して行われる。入出力I/Fは、統合ECU6と、例えばシリアル通信するための通信インターフェイスである。車外通信装置1と統合ECU6とは、入出力I/F及び入出力I/Fに接続されたシリアルケーブル等のワイヤーハーネスを介して相互に通信する。本実施形態において車外通信装置1は、統合ECU6と別装置とし、入出力I/F等によってこれら装置を通信可能に接続しているが、車外通信装置1の構成は上記の例に限定されない。車外通信装置1は、統合ECU6の一構成部位として、統合ECU6に内蔵されてもよい。
図2は、統合ECU6及び個別ECU2の内部構成を例示するブロック図である。統合ECU6は、制御部60、記憶部61、入出力I/F62及び車内通信部63を備える。制御部60は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等の演算処理装置である。制御部60は、記憶部61に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。
記憶部61は、RAM(Random Access Memory)等の揮発性のメモリ素子、又はROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してある。記憶部61には、制御部60によって実行される制御プログラム、及び制御部60が処理時に参照するデータが予め記憶してある。記憶部61に記憶された制御プログラムは、統合ECU6が読み取り可能な記録媒体から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部61に記憶させたものであってもよい。記憶部61には、バス4のバス負荷の履歴610が記憶される。履歴610については後述する。
入出力I/F62は、車外通信装置1の入出力I/Fと同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/F62及びシリアルケーブル等のワイヤーハーネスを介して、統合ECU6は、車外通信装置1と通信可能に接続される。
車内通信部63は、例えばCAN(Control Area Network)の通信プロトコルを用いた入出力インターフェイスである。制御部60は、車内通信部63を介してバス4に接続されている個別ECU2と相互に通信する。なお本実施形態においては、統合ECU6と個別ECU2との間の通信にCANの通信プロトコルが用いられる例を説明するが、統合ECU6と個別ECU2との間の通信に用いられる通信プロトコルはCANに限定されない。例えば統合ECU6と個別ECU2との間の通信に用いられる通信プロトコルは、CAN-FD(CAN with Flexible Data Rate)又はイーサネット(Ethernet/登録商標)でもよい。
個別ECU2は、統合ECU6と同様に、制御部20、記憶部21、入出力I/F22及び車内通信部23を備え、車載ECUに相当する。個別ECU2の制御部20、記憶部21、入出力I/F22及び車内通信部23は、統合ECU6の制御部60、記憶部61、入出力I/F62及び車内通信部63と同一の構成によるものであってもよい。
図2にはアクチュエータ30及びセンサ31が接続された個別ECU2が個別ECU2の一例として示してある。個別ECU2の入出力I/F22には、アクチュエータ30又はセンサ31等の車載機器3が、例えばシリアルケーブル等のワイヤーハーネスにより、接続されている。図示は省略してあるが、表示部32及び操作部33が接続された個別ECU2の入出力I/F22には、表示部32及び操作部33がシリアルケーブル等のワイヤーハーネスにより接続されている。
個別ECU2の制御部20は、自ECUの記憶部21に記憶されているプログラムを実行することにより、自ECUに接続されているセンサ31等の車載機器3から出力された信号を取得し、当該信号に基づき生成したデータを統合ECU6に出力する。また、個別ECU2は、統合ECU6から出力されたデータを取得し、当該データに基づき生成した信号を、自ECUに接続されているアクチュエータ30等の車載機器3に出力し、当該車載機器3の駆動制御を行う。個別ECU2の制御部20によって実行されるプログラムは、上述のように統合ECU6から送信される更新プログラム5によって更新される。例えば更新プログラム5が最新のバージョンのプログラムとして記憶部21に上書きされる。
個別ECU2同士は、統合ECU6及びバス4を介して通信を行う。統合ECU6はバス4を介して更新プログラム5を個別ECU2へ送信する。統合ECU6と個別ECU2との間においては、上述のように更新プログラム5以外のデータもバス4を介して送受信される。例えば、統合ECU6及び個別ECU2の間においては、車両Cの制御の為の制御データ、及び車載機器3の故障診断の為の診断データ等のデータのフレームがバス4を介して周期的に送受信される。更に統合ECU6及び個別ECU2の間においては、車両Cにおいて急ブレーキ又は急制動等の急な動作が行われた際、突発的なフレーム、いわゆるイベントフレームがバス4を介して送受信される。なお突発的なフレームが送受信される要因は、車両Cの急な動作に限定されない。車両Cの走行中においては、多くの上記データのフレームと多くの突発的なフレームとが送受信される。
統合ECU6の制御部60は公知の技術を用いて、例えば周期的に、各バス4のバス負荷を検出する。バス負荷の検出方法は公知の技術なので詳細な説明は省略する。履歴610には、更新プログラム5の送信中を除く期間におけるバス負荷の最大値が、バス4ごとに含まれる。制御部60は、検出したバス負荷と、履歴610に含まれるバス負荷の最大値とを比較する。検出されたバス負荷がバス負荷の最大値よりも大きい場合、制御部60は履歴610を更新する。詳しくは、制御部60は検出したバス負荷をバス負荷の最大値として履歴610に上書きする。
記憶部61にはバス4ごとに、バス負荷の上限値が設定されている。例えばバス負荷の上限値は予め、例えば車両Cの出荷時に設定される。本実施形態においてバス負荷の上限値は、バス4の設計上限値よりも小さい値である。以下、設定されたバス負荷の上限値を設定上限値とも称する。本実施形態において設定上限値はバス4ごとに設定されるが、複数のバス4に対して共通な設定上限値が設定されてもよい。
制御部60は、外部サーバ100から更新通知を受信したか否かを判定する。制御部60は更新通知を受信した場合、外部サーバ100から更新プログラム5を取得する。制御部60は、更新対象の情報に基づき更新対象の個別ECU2を特定する。例えば更新対象の情報は更新通知に含まれている。又は更新対象の情報は、更新プログラム5と共に外部サーバ100から取得される。制御部60は、取得した更新プログラム5を複数のフレームとして、更新対象の個別ECU2へ送信する。詳しくは、制御部60は更新プログラム5のフレームの送信周期を導出し、導出した送信周期に基づき周期的に更新プログラム5のフレームを1つずつ更新対象の個別ECU2へ送信する。更新プログラム5の複数のフレームの全てが個別ECU2へ送信されることによって、更新プログラム5は、個別ECU2へ送信される。更新プログラム5のフレームはいわゆるリプロフレームである。
一般に更新プログラム5はデータ量が大きいので、制御部60は更新プログラム5を個別ECU2へ早く送信するために、バス負荷が設定上限値を超えない範囲において、短い送信周期で更新プログラム5のフレームを個別ECU2へ送信する必要がある。以下、制御部60が更新プログラム5のフレームの送信周期を決定する方法について説明する。
制御部60は、外部サーバ100から更新通知を受信した際、更新対象の個別ECU2が接続されたバス4におけるバス負荷を検出する。更に制御部60は、検出したバス負荷と、履歴610に含まれる上記のバス4におけるバス負荷の最大値とを比較する。制御部60は、検出したバス負荷が履歴610に含まれるバス負荷の最大値よりも大きい場合、更新対象の個別ECU2が接続されたバス4の設定上限値と、検出したバス負荷との差分を導出する。
制御部60は、検出したバス負荷が履歴610に含まれる上記のバス4におけるバス負荷の最大値以下である場合、更新対象の個別ECU2が接続されたバス4の設定上限値と、履歴610に含まれる上記のバス4におけるバス負荷の最大値との差分を導出する。以下、設定上限値と検出されたバス負荷との差分、及び設定上限値と履歴610に含まれるバス負荷の最大値との差分を区別せずに、負荷差分と称する。
制御部60は、バス負荷と送信周期との関係、及び導出した負荷差分に基づき送信周期を導出する。図3は、バス負荷と送信周期との関係を例示する模式図である。図3において横軸は送信周期[ms]を示し、縦軸はバス負荷[%]を示す。一般にあるデータのフレームが送受信される際の送信周期と、当該フレームの送受信によってバス4に生じるバス負荷とは図3のように反比例する。送信周期が長くなるにつれて、バス負荷は小さくなる。送信周期が短くなるにつれて、バス負荷は大きくなる。例えばバス負荷及び送信周期における反比例の関係を示すグラフの近似関数が、バス負荷と送信周期との関係として記憶部61に予め記憶してある。なおバス負荷及び送信周期の単位は上記の例に限定されない。
制御部60が更新プログラム5のフレームを個別ECU2へバス4を介して送信する際、上記のバス4には負荷差分に相当するバス負荷を加えることができる。負荷差分が小さい場合、制御部60はバス4を介して、長い送信周期で更新プログラム5のフレームを個別ECU2へ送信する。負荷差分が大きい場合、制御部60はバス4を介して、短い送信周期で更新プログラム5のフレームを個別ECU2へ送信する。
制御部60は、導出した負荷差分に相当するバス負荷を上記のバス4に更に加えることができる送信周期を導出する。負荷差分がA[%]である場合を説明する。図3の例において、負荷差分に相当するA[%]というバス負荷がバス4に加わる送信周期はT1[ms]である。制御部60は、上記の近似関数とA[%]という負荷差分とを用いることによって、T1[ms]という送信周期を導出する。なおAは100未満の正の数である。T1は正の数である。
検出されたバス負荷が履歴610に含まれるバス負荷の最大値よりも大きい場合、負荷差分は設定上限値と検出されたバス負荷との差分であるので、送信周期は、バス負荷と送信周期との関係、及び設定上限値と検出されたバス負荷との差分に基づき導出される。言い換えると制御部60は、検出したバス負荷がバス負荷の最大値よりも大きい場合、検出したバス負荷に基づき送信周期を導出する。
検出されたバス負荷が履歴610に含まれるバス負荷の最大値以下である場合、負荷差分は設定上限値と履歴610に含まれるバス負荷の最大値との差分であるので、送信周期は、バス負荷と送信周期との関係、及び設定上限値と履歴610に含まれるバス負荷の最大値との差分に基づき導出される。言い換えると制御部60は、検出したバス負荷がバス負荷の最大値以下である場合、バス負荷の最大値に基づき送信周期を導出する。
送信周期の導出方法は上記の例に限定されない。制御部60は送信周期を導出する際に、突発的なフレームによってバス4に生じるバス負荷を考慮してもよい。突発的なフレームによってバス4に生じるバス負荷は、例えば予め実験によって推定される。以下、予め推定された突発的なフレームによってバス4に生じるバス負荷を、推定バス負荷とも称する。例えば推定バス負荷は、突発的なフレームが送受信されている任意の期間におけるバス負荷の平均値と、突発的なフレームが送受信されていない任意の期間におけるバス負荷の平均値との差分として推定される。推定バス負荷は、記憶部61に記憶される。本実施形態において推定バス負荷は複数のバス4に対して共通であるが、推定バス負荷はバス4ごとに記憶部61に記憶されてもよい。
制御部60は、上記のバス負荷と送信周期との関係、導出した負荷差分、及び推定バス負荷に基づき送信周期を導出する。負荷差分がA[%]であって、推定バス負荷がB[%]である場合を説明する。Bは100未満の正の数である。制御部60は、負荷差分と推定バス負荷との差分に相当する(A-B)[%]というバス負荷がバス4に加わる送信周期を上記の近似関数を用いて導出する。図3の例において(A-B)[%]というバス負荷がバス4に加わる送信周期はT2[ms]である。なおA-Bは0よりも大きい。T2は正の数である。
記憶部61に予め記憶してあるバス負荷と送信周期との関係は、上記の近似関数に限定されない。例えば検出されたバス負荷又は履歴610に含まれるバス負荷の最大値が入力された場合に送信周期が出力される関数が、バス4ごとに予め記憶されていてもよい。例えば当該関数は、入力されたバス負荷とバス4の設定上限値との差分を算出するための式と、上記の近似関数の式とを含む。制御部60は、検出したバス負荷又は履歴610に含まれるバス負荷の最大値を上記の関数に入力して送信周期を導出する。
例えばバス負荷と送信周期とが関連付けられて記憶されたテーブルが、バス負荷と送信周期との関係として予め記憶部61に記憶されていてもよい。制御部60は、検出したバス負荷又は履歴610に含まれるバス負荷の最大値と、記憶されたテーブルに基づき送信周期を導出する。
制御部60は、導出した送信周期と更新プログラム5のデータ量とに基づき、個別ECU2への更新プログラム5の送信に要する時間を演算する。以下、個別ECU2への更新プログラム5の送信に要する時間を、所要時間とも称する。通信プロトコルによってフレーム1つ当たりのデータ量は決められている。例えばCANの通信プロトコルにおいて、フレーム1つ当たりのデータ量は8バイトである。例えば通信プロトコルがCANの通信プロトコルである場合、制御部60は、所要時間[min]を、更新プログラム5のデータ量[バイト]/(8バイト/送信周期[ms])×1000/60と演算する。
制御部60は、演算した所要時間を含む確認画面を表示部32に表示させ、車両Cの運転手等の乗員に所要時間を通知する。図4は、確認画面の一例を示す模式図である。図4の確認画面は、所要時間と、「ECUのプログラムを更新しますか?」という文言と、実行ボタンと、中止ボタンとを含む。確認画面の所要時間には、制御部60によって演算された所要時間が表示される。
例えば制御部60は確認画面を表示部32に表示させる際、演算した所要時間を表示部32と接続された個別ECU2へ出力する。当該個別ECU2は出力された所要時間を受信した場合、受信した所要時間に基づき確認画面を構成する確認画面データを生成する。個別ECU2は生成した確認画面データを表示部32へ出力し、表示部32に確認画面を表示させる。車両Cの運転手等の乗員に、所要時間が通知される。制御部60が演算した所要時間に基づき確認画面データを生成してもよい。制御部60は生成した確認画面データを表示部32へ個別ECU2を介して出力し、表示部32に確認画面を表示させる。
車両Cの運転手等の乗員は確認画面において、操作部33を操作して実行ボタン又は中止ボタンを選択する。運転手は、実行ボタンを押下して、統合ECU6に個別ECU2のプログラムの更新を実行させる。詳しくは実行ボタンが押下された場合、操作部33から実行信号が統合ECU6へ出力される。実行信号は、個別ECU2への更新プログラム5のフレームの送信を実行する旨を示す。制御部60は、出力された実行信号を受信した場合、更新プログラム5のフレームを導出した送信周期に基づいて更新対象の個別ECU2へ送信する。更新プログラム5は、更新対象の個別ECU2へ送信され、当該個別ECU2に適用される。即ち個別ECU2のプログラムの更新が実行される。
車両Cの運転手等の乗員は確認画面において、中止ボタンを押下して、統合ECU6に個別ECU2のプログラムの更新を中止させる。詳しくは実行ボタンが押下された場合、操作部33から中止信号が統合ECU6へ出力される。中止信号は、個別ECU2への更新プログラム5のフレームの送信を実行しない旨を示す。制御部60は、出力された中止信号を受信した場合、更新プログラム5を個別ECU2へ送信しない。個別ECU2のプログラムの更新は中止される。実行信号及び中止信号は、車載ECUへの更新プログラムのフレームの送信を実行するか否かの情報に含まれる。
図5は、統合ECU6の制御部60が行う履歴610の更新に係る処理を例示するフローチャートである。例えば制御部60は、IGスイッチがオフからオンになった際に以下の処理を開始する。例えば制御部60は以下の処理を不定期、又は定期的に行う。
制御部60は、バス4のバス負荷を検出する(S11)。制御部60は、検出したバス負荷が履歴610に含まれるバス負荷の最大値よりも大きいか否かを判定する(S12)。検出されたバス負荷がバス負荷の最大値以下である場合(S12:NO)、制御部60は、処理を終了する。制御部60は処理を終了する代わりにS11の処理を行ってもよい。
検出されたバス負荷がバス負荷の最大値よりも大きい場合(S12:YES)、制御部60は履歴610を更新する(S13)。詳しくは、制御部60は検出したバス負荷をバス負荷の最大値として履歴610に上書きする。制御部60は処理を終了する。制御部60は処理を終了する代わりにS11の処理を行ってもよい。
図6は、統合ECU6の制御部60が行う更新対象の個別ECU2への更新プログラム5の送信に係る処理を例示するフローチャートである。例えば制御部60は、IGスイッチがオフからオンになった際に以下の処理を開始する。
制御部60は、車外通信装置1を介して外部サーバ100と定期的又は非定期的に通信する。制御部60は、外部サーバ100から出力される更新通知を受信したか否かを判定する(S21)。制御部60は、更新通知を受信していない場合(S21:NO)、再度S21の処理を行うべくループ処理を行う。制御部60は、一定時間以上、更新通知を受信しない場合、処理を終了してもよい。
制御部60は、更新通知を受信した場合(S21:YES)、外部サーバ100から更新プログラム5を取得する(S22)。制御部60は、更新対象の個別ECU2と接続されたバス4のバス負荷を検出する(S23)。詳しくは、制御部60は更新要求信号に含まれる更新対象の個別ECU2の情報に基づき更新対象の個別ECU2と、当該個別ECU2に接続されたバス4とを特定する。制御部60は、特定したバス4のバス負荷を検出する。制御部60は、検出したバス負荷が履歴610に含まれるバス負荷の最大値よりも大きいか否かを判定する(S24)。詳しくは、制御部60は記憶部61の履歴を参照し、特定したバス4のバス負荷の最大値と検出したバス負荷とを比較する。
検出されたバス負荷がバス負荷の最大値よりも大きい場合(S24:YES)、制御部60は上述のように、検出したバス負荷に基づき送信周期を導出し(S25)、後述のS26の処理を行う。
検出されたバス負荷がバス負荷の最大値よりも大きくない場合(S24:NO)、即ち検出されたバス負荷がバス負荷の最大値以下である場合、制御部60は上述のように、バス負荷の最大値に基づき送信周期を導出する(S241)。
上述のように制御部60は、導出した送信周期と更新プログラム5のデータ量とに基づき所要時間を演算する(S26)。上述のように制御部60は、演算した所要時間を表示部32と接続された個別ECU2へ出力し(S27)、当該所要時間を含む確認画面を表示部32に表示させる。制御部60は、演算した所要時間を含む確認画面を構成する確認画面データを生成し、生成した確認画面データを表示部32へ個別ECU2を介して出力してもよい。表示部32には所要時間を含む確認画面が表示されるので、所要時間は運転手に通知される。上述のように運転手が確認画面において操作部33を操作することによって、実行信号又は中止信号が制御部60へ出力される。
制御部60は、実行信号を受信したか否かを判定する(S28)。制御部60は、実行信号を受信していない場合(S28:NO)、中止信号を受信したか否かを判定する(S281)。制御部60は、中止信号を受信した場合(S281:YES)、処理を終了する。制御部60は、中止信号を受信していない場合(S281:NO)、S28の処理を行う。制御部60は、一定時間以上、実行信号及び中止信号のいずれも受信しない場合、処理を終了してもよい。
制御部60は、実行信号を受信した場合(S28:YES)、導出した送信周期に基づき、取得した更新プログラム5のフレームを更新対象の個別ECU2へ送信する(S29)。制御部60は、更新プログラム5の全てのフレームを更新対象の個別ECU2へ送信した後、処理を終了する。送信された更新プログラム5が更新対象の個別ECU2に適用されることによって、当該個別ECU2のプログラムは更新される。
制御部60は、更新通知を受信したか否かを判定する代わりに、外部サーバ100と通信し、更新プログラム5が外部サーバ100に用意されているか否かを判定してもよい。更新プログラム5が外部サーバ100に用意されている場合、制御部60はS22の処理を行う。更新プログラム5が外部サーバ100に用意されていない場合、制御部60は、更新プログラム5が外部サーバ100に用意されているか否かの判定を再度行うべくループ処理を行う。
本実施形態において制御部60は実行信号を受信したか否かを判定する前に更新プログラム5を取得するが、制御部60は実行信号を受信した場合に更新プログラム5を取得してもよい。この場合、S22の処理は省略される。制御部60は所要時間を演算する際に、外部サーバ100から更新プログラム5のデータ量を取得する。更新プログラム5のデータ量は、更新通知に含まれていてもよい。制御部60は実行信号を受信した場合に更新プログラム5を受信する。制御部60は、受信した更新プログラム5のフレームを導出した送信周期に基づき更新対象の個別ECU2へ送信する。
本実施形態においては、上述のように所要時間を運転手に通知することができるので、運転手は所要時間に基づいて個別ECU2のプログラムの更新を実行するか否かを判断することができる。例えば所要時間が長い場合、運転手は確認画面において中止ボタンを押下して更新を中止させることができる。
制御部60は、所要時間の演算及び出力を行わずに、実行信号を受信したか否かの判定を行ってもよい。例えば制御部60は送信周期を導出した後、S26及びS27の処理の代わりに、所要時間が含まれない確認画面を表示部32に表示させる。制御部60は実行信号を受信した場合に更新プログラム5のフレームを個別ECU2へ送信する。運転手の承諾が得られた場合に、個別ECU2のプログラムの更新を行うことができる。
なお制御部60は送信周期を導出した後、所要時間の演算及び出力と実行信号を受信したか否かの判定とを行わずに、導出した送信周期に基づき更新プログラム5のフレームを更新対象の個別ECU2へ送信してもよい。この場合、S26、S27、S28及びS281の処理は省略される。
更新プログラム5のフレームの送信中も更新プログラム5以外の他のデータが送受信されるのでバス負荷は変動する。履歴610には、他のデータが送受信される場合のバス負荷の最大値が含まれる。本実施形態において統合ECU6は送信周期を導出する際、バス負荷を検出し、検出したバス負荷と履歴610に含まれるバス負荷の最大値とを比較する。検出されたバス負荷がバス負荷の最大値以下である場合、統合ECU6は、上述のようにバス負荷の最大値、及びバス負荷と送信周期との関係を用いて送信周期を導出し、導出した送信周期に基づき更新プログラム5のフレームを更新対象の個別ECU2へ送信する。統合ECU6は、他のデータの送受信によってバス負荷が変動した場合であってもバス4のバス負荷が設定上限を超えることなく、更新プログラム5のフレームを個別ECU2へ送信することができる。
検出されたバス負荷がバス負荷の最大値よりも大きい場合、統合ECU6は、検出したバス負荷に基づき送信周期を導出し、導出した送信周期に基づき更新プログラム5のフレームを更新対象の個別ECU2へ送信する。例えば車両Cの使用期間が短い場合、検出されるバス負荷が履歴610に含まれるバス負荷の最大値よりも大きくなる可能性が高い。車両Cの使用期間が短い場合であっても統合ECU6は、他のデータの送受信によるバス負荷の変動によってバス4のバス負荷が設定上限を超えることなく、更新プログラム5のフレームを個別ECU2へ送信することができる。
統合ECU6は上述のようにして更新プログラム5のフレームを送信するので、他のデータが送受信されている場合であっても、他のデータの送受信による影響を受けずに、更新プログラム5のフレームを更新対象の個別ECU2へ送信することができる。また統合ECU6は他のデータの送受信に影響を与えずに更新プログラム5のフレームを更新対象の個別ECU2へ送信することができる。上記の影響は、通信の遅延と、データ又はフレームの消失とを含む。統合ECU6は、更新プログラムの送信と更新プログラム以外のデータの送受信とが行われる場合であっても、バス負荷の上限値を超えないように更新プログラムを車載ECUへ送信することができる。従って統合ECU6は適切に更新プログラム5を更新対象の個別ECU2へ送信することができる。車両Cの走行中においては、多くの他のデータのフレーム及び多くの突発的なフレームがバス4を介して送受信される。統合ECU6は、車両Cの走行中においても適切に更新プログラム5を更新対象の個別ECU2へ送信することができる。統合ECU6は車載装置に相当する。個別ECU2は車載ECUに相当する。
統合ECU6は、バス負荷と送信周期との関係、及びバス負荷に基づき送信周期を導出する。統合ECU6は上記の関係を用いることによって、バスに加えたい任意のバス負荷が生じる送信周期をバス負荷に応じて導出することができる。本実施形態において統合ECU6は、バス負荷の設定上限値と、検出したバス負荷又はバス負荷の最大値とを用いて送信周期を導出する。統合ECU6は、バス4をバス負荷の設定上限値まで有効活用して更新プログラム5のフレームを更新対象の個別ECU2へ送信することができる。統合ECU6は更新プログラム5を効率的に個別ECU2へ送信することができる。
送信周期はバス負荷と送信周期との関係、バス負荷、及び推定バス負荷に基づき導出されると好ましい。突発的なフレームによってバス4に生じるバス負荷が考慮されるので、バス4にはデータの送受信に対する余裕、いわゆるマージンが設けられる。例えば複数の突発的なフレームの送受信が重なった際にバス負荷が急上昇した場合であっても統合ECU6は、バス4のバス負荷が設定上限値を超えることなく、更新プログラム5のフレームを個別ECU2へ送信することができる。
本実施形態においてバス負荷の設定上限値は予め設定されているが、バス負荷の上限値は、適宜変更されてもよい。バス負荷の設定上限値は、バス4の設計上限値以下であれば任意に設定可能であるが、上述の例のようにバス4の設計上限値よりも小さい値であることが好ましい。フレームの送信中に突発的なフレームの送受信によってバス負荷が設定上限値を超えるおそれがあるが、設定上限値が設計上限値よりも小さい場合、バス負荷が設定上限値を超えた際に設計上限値を超えてしまうことを防止することができる。なお統合ECU6はバス負荷が設定上限値を超えた際に、バス負荷が設定上限値を超えた旨を外部サーバ100へ通知してもよい。
設定上限値が設計上限値である場合、バス負荷が設定上限値を超えた際に設計上限値も超える。バス負荷が設計上限値を超えた場合、バス4を介して送信される更新プログラム5のフレーム、又は送受信される他のデータのフレームが消失するおそれがある。また、更新プログラム5のフレームが他のデータに上書きされる、又は他のデータのフレームが更新プログラム5のフレームに上書きされるおそれがある。
本実施形態においては履歴610に、更新プログラム5の送信中を除く期間におけるバス負荷の最大値がバス4ごとに含まれるが、履歴610に含まれるバス負荷は最大値に限定されない。更新プログラム5の送信中を除く所定の期間のバス負荷がバス4ごとに履歴610に含まれてもよい。例えば制御部60は、所定の期間におけるバス負荷の最大値、又は所定の期間におけるバス負荷の平均値を用いて送信周期を導出する。
統合ECU6は、外部サーバ100以外から更新プログラム5を取得してもよい。例えば更新プログラム5は、統合ECU6が読み取り可能な記録媒体に記録されていてもよい。統合ECU6は記録媒体を読み取ることによって更新プログラム5を取得する。制御部60は、取得した更新プログラム5のフレームの送信周期を上述のようにして導出する。
(実施形態2)
図7は、実施形態2に係る車載システムのシステム構成を例示する模式図である。実施形態2に係る構成の内、実施形態1と同様な構成部については同じ符号を付し、その詳細な説明を省略する。車載システムは、車両Cに搭載される統合ECU6、複数の個別ECU2及び、当該個別ECU2に接続される車載機器3を含む。統合ECU6と各個別ECU2とは、バス4を介して接続されている。統合ECU6、個別ECU2、車載機器3及びバス4は、実施形態1の統合ECU6、個別ECU2、車載機器3及びバス4と同様なので詳細な説明は省略する。統合ECU6の記憶部61には、履歴610が記憶されている。
車両Cには、端末8と接続される接続部7が設けられている。例えば端末8は、車両Cの整備を行う作業者に所有されている。端末8は、例えばダイアグツールである。本実施形態においては端末8に更新プログラム5が保存される。端末8は図示しないディスプレイ等の表示部を備える。接続部7は、統合ECU6の入出力I/F62と接続されている。接続部7を介して、統合ECU6及び端末8は接続される。
端末8は、統合ECU6と接続された場合であって、更新プログラム5が保存されている場合に更新通知を統合ECU6へ出力する。また端末8は更新プログラム5を統合ECU6へ送信する。端末8は、統合ECU6から出力される送信周期を取得する。端末8は、取得した送信周期と更新プログラム5のデータ量とに基づき所要時間を演算する。所要時間の演算方法は実施形態1と同様なので詳細な説明は省略する。なお端末8には更新プログラム5が保存されているので、端末8は更新プログラム5のデータ量を取得できる。端末8は、演算した所要時間を含む確認画面を端末8の表示部に表示する。作業者に所要時間が通知される。
作業者は、確認画面において端末8を操作して、実行ボタン又は中止ボタンを選択する。実行ボタンが選択された場合、端末8は実行信号を統合ECU6へ送信する。中止ボタンが選択された場合、端末8は中止信号を統合ECU6へ送信する。
統合ECU6の制御部60は、端末8から更新通知を受信する。制御部60は更新通知を受信した場合、端末8から更新プログラム5を取得し、実施形態1と同様にして送信周期を導出する。制御部60は導出した送信周期を端末8へ出力する。
制御部60は、端末8から出力される実行信号を受信した場合、導出した送信周期に基づき更新プログラム5のフレームを更新対象の個別ECU2へ送信する。個別ECU2のプログラムが更新される。制御部60は、端末8から出力される中止信号を受信した場合、更新プログラム5を取得しない。個別ECU2のプログラムの更新は行われない。
図8は、実施形態2における統合ECU6の制御部60が行う更新対象の個別ECU2への更新プログラム5の送信に係る処理を例示するフローチャートである。例えば制御部60は、端末8が接続部7に接続された際に以下の処理を開始する。
制御部60は、端末8から出力される更新通知を受信したか否かを判定する(S31)。制御部60は、更新要求信号を受信していない場合(S31:NO)、再度S31の処理を行うべくループ処理を行う。制御部60は、一定時間以上、更新要求信号を受信しない場合、処理を終了してもよい。
制御部60は、更新通知を受信した場合(S31:YES)、端末8から更新プログラム5を取得し(S32)、S33及びS34の処理を行う。S33及びS34の処理は実施形態1のS23及びS24の処理と同様なので、詳細な説明は省略する。検出されたバス負荷がバス負荷の最大値よりも大きい場合(S34:YES)、制御部60は実施形態1と同様に、検出したバス負荷に基づき送信周期を導出し(S35)、後述のS36の処理を行う。
検出されたバス負荷がバス負荷の最大値よりも大きくない場合(S34:NO)、即ち検出されたバス負荷がバス負荷の最大値以下である場合、制御部60は実施形態1と同様に、バス負荷の最大値に基づき送信周期を導出する(S341)。
制御部60は、導出した送信周期を端末8へ出力する(S36)。端末8は、出力された送信周期を受信し、受信した送信周期と更新プログラム5のデータ量とに基づき所要時間を演算する。端末8は、演算した所要時間を含む確認画面を端末8の表示部に表示して、所要時間を作業者に通知する。作業者による端末8の操作によって、実行信号又は中止信号が制御部60へ出力される。
制御部60は、実行信号を受信したか否かを判定する(S37)。制御部60は、実行信号を受信していない場合(S37:NO)、中止信号を受信したか否かを判定する(S371)。制御部60は、中止信号を受信した場合(S371:YES)、処理を終了する。制御部60は、中止信号を受信していない場合(S371:NO)、S37の処理を行う。制御部60は、一定時間以上、実行信号及び中止信号のいずれも受信しない場合、処理を終了してもよい。
制御部60は、実行信号を受信した場合(S37:YES)、導出した送信周期に基づき、取得した更新プログラム5のフレームを更新対象の個別ECU2へ送信する(S38)。制御部60は、更新プログラム5の全てのフレームを更新対象の個別ECU2へ送信した後、処理を終了する。個別ECU2のプログラムが更新される。
本実施形態においては、統合ECU6は送信周期を端末8へ出力する。端末8は所要時間を演算し、演算した所要時間を含む確認画面を端末8の表示部に表示させる。端末8を所持している作業者に所要時間を通知することができる。作業者は所要時間に基づいて個別ECU2のプログラムの更新を実行するか否かを判断することができる。作業者の承諾が得られた場合に、個別ECU2のプログラムの更新は行われる。端末8が所要時間を演算するので、統合ECU6は所要時間を演算する必要がない。統合ECU6が行う処理を少なくすることができる。
例えば統合ECU6は実行信号を受信した場合に更新プログラム5を取得し、取得した更新プログラム5のフレームを導出した送信周期に基づき更新対象の個別ECU2へ送信してもよい。また統合ECU6は、実施形態1と同様に所要時間を演算し、演算した所要時間を端末8へ出力してもよい。このとき、統合ECU6は所要時間を演算する際に端末8と通信して更新プログラム5のデータ量を取得する。端末8から出力される更新要求信号に更新プログラム5のデータ量が含まれていてもよい。端末8は統合ECU6から出力された所要時間を含む確認画面を端末8の表示部に表示させる。
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。