(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022167530
(43)【公開日】2022-11-04
(54)【発明の名称】センター装置及び車載電子制御装置
(51)【国際特許分類】
G06F 8/65 20180101AFI20221027BHJP
H04L 9/32 20060101ALI20221027BHJP
G09C 1/00 20060101ALI20221027BHJP
G06F 21/64 20130101ALI20221027BHJP
【FI】
G06F8/65
H04L9/00 675Z
G09C1/00 640D
G06F21/64
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021073377
(22)【出願日】2021-04-23
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】安部 真晃
(72)【発明者】
【氏名】吉見 英朗
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376CA06
(57)【要約】
【課題】各車両に対応したデータ更新用の配信パッケージを、比較的短い処理時間で用意できるセンター装置を提供する。
【解決手段】センター装置3の構成情報DB208には、複数のECU19それぞれに対する装置の識別情報及び当該装置のソフトウェアアーキテクチャに関する情報が車両の種別と共に記憶される。諸元データ生成部201は、データを更新する対象となるECU19のそれぞれについて更新データと更新前のデータとの差分である差分データを求め、その差分データのハッシュ値を計算し、計算したハッシュ値をECUリプロデータDB204に記憶する。パッケージ生成部202は、データの更新対象となるECU19について配信パッケージを生成する際に、ECUリプロデータDB204に記憶されている対応するハッシュ値を用いて生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
車両に搭載される複数の電子制御装置(19)に書込むデータを管理するセンター装置であって、
前記複数の電子制御装置それぞれに対する装置の識別情報及び当該装置のソフトウェアアーキテクチャに関する情報が、前記車両の種別と共に記憶されている車両情報記憶部(208)と、
データを更新する対象となる電子制御装置のそれぞれについて、更新データと更新前のデータとの差分である差分データを求め、前記差分データのハッシュ値を計算し、計算したハッシュ値をハッシュ値記憶部(204)に記憶するハッシュ値生成部(201)と、
前記データを更新する対象となる電子制御装置について配信パッケージを生成する際に、前記ハッシュ値記憶部に記憶されている対応するハッシュ値を用いて生成するパッケージ生成部(202)と
を備えるセンター装置。
【請求項2】
前記差分データと、当該差分データに対応するハッシュ値を含む配信パッケージとを紐付けた紐付け情報を用いてデータを管理する請求項1記載のセンター装置。
【請求項3】
前記パッケージ生成部は、複数のハッシュ値と、前記複数のハッシュ値に対応する紐付け情報とを含んだ配信パッケージを生成する請求項2記載のセンター装置。
【請求項4】
前記パッケージ生成部は、車両の識別情報を、前記配信パッケージに含めて生成する請求項1から3の何れか一項に記載のセンター装置。
【請求項5】
前記パッケージ生成部は、前記配信パッケージに、当該配信パッケージのデータを認証するために用いる署名を含めて生成する請求項1から4の何れか一項に記載のセンター装置。
【請求項6】
前記配信パッケージを前記複数の電子制御装置を搭載する車両に配信する配信部をさらに備え、
前記パッケージ生成部は、前記差分データを含まず、ハッシュ値を含む配信パッケージを生成し、
前記配信部は、前記パッケージと、前記差分データとを分けて配信する請求項1記載のセンター装置。
【請求項7】
前記配信部は、前記パッケージは圧縮ファイルとして、前記差分データは非圧縮ファイルとして、配信する請求項6記載のセンター装置。
【請求項8】
車両に搭載され、請求項1から7の何れか一項に記載のセンター装置と通信を行う電子制御装置(4)であって、受信した配信パッケージに前記ハッシュ値が含まれていると、前記センター装置に対して、前記ハッシュ値に対応する差分データのダウンロードを要求する車載電子制御装置。
【請求項9】
前記差分データのダウンロードを実行すると、前記ハッシュ値と、前記差分データについて計算したハッシュ値とを比較して、前記差分データの正当性を検証する請求項8記載の車載電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載される複数の電子制御装置に書込むデータを管理するセンター装置,及び前記センター装置と通信を行う車載電子制御装置に関する。
【背景技術】
【0002】
近年、運転支援機能や自動運転機能等の車両制御の多様化に伴い、車両の電子制御装置(以下、ECU(Electronic Control Unit)と称する)に搭載される車両制御や診断等のアプリプログラムの規模が増大している。また、機能改善等によるバージョンアップに伴い、ECUのアプリプログラムを書換える,所謂リプログを行う機会も増えつつある。一方、通信ネットワークの進展等に伴い、コネクッテッドカーの技術も普及している。このような事情から、例えば特許文献1には、サーバよりECUの更新プログラムをOTA(Over The Air)により車載装置に配信し、車両側で更新プログラムを書換える技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
更に、ユーザ毎にカスタマイズされている車両のアプリプログラムを書き換えるために、センター装置側で、それぞれの車両に対応した書換え用の配信パッケージを生成することに対する需要がある。
【0005】
しかしながら、配信パッケージのサイズは、書換え対象となるプログラムの容量によっては数Gバイト程度になることもあり、パッケージを生成する処理に時間を要する。そのため、各車両に対応した配信パッケージを個別に用意することを想定すると膨大な時間が必要となり、現実的には難しい。
【0006】
本発明は上記事情に鑑みてなされたものであり、その目的は、各車両に対応したデータ更新用の配信パッケージを、比較的短い処理時間で用意できるセンター装置,及び前記配信パッケージを受信して更新データを書き込むことができる車載電子制御装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1記載のセンター装置によれば、車両情報記憶部には、複数の電子制御装置それぞれに対する装置の識別情報及び当該装置のソフトウェアアーキテクチャに関する情報が車両の種別と共に記憶される。ハッシュ値生成部は、データを更新する対象となる電子制御装置のそれぞれについて、更新データと更新前のデータとの差分である差分データを求め、その差分データのハッシュ値を計算し、計算したハッシュ値をハッシュ値記憶部に記憶する。そして、パッケージ生成部は、データを更新する対象となる電子制御装置について配信パッケージを生成する際に、ハッシュ値記憶部に記憶されている対応するハッシュ値を用いて生成する。
【0008】
このように構成すれば、各車両に配信するパッケージに差分データのハッシュ値を含ませることでデータサイズを低減できるので、当該パッケージの処理時間を短縮できる。また、配信パッケージを受信した車両側では、そのハッシュ値に基づいて自車両に対応するデータを更新するための差分データを特定することが可能になる。
【0009】
請求項2記載のセンター装置によれば、差分データと、当該差分データに対応するハッシュ値を含む配信パッケージとを紐付けた紐付け情報を用いてデータを管理するので、そのハッシュ値を含む配信パッケージに対応する差分データを容易に特定できる。
【0010】
請求項3記載のセンター装置によれば、パッケージ生成部は、複数のハッシュ値と、それら複数のハッシュ値に対応する紐付け情報を含んだ配信パッケージを生成する。これにより、配信パッケージを受信した車両側では、それぞれのハッシュ値に基づいて、自車両に対応する複数のデータを更新するための複数の差分データを容易に特定することが可能になる。
【0011】
請求項6記載の車載電子制御装置によれば、センター装置より受信した配信パッケージにハッシュ値が含まれていると、センター装置に対してハッシュ値に対応する差分データのダウンロードを要求する。これにより、ハッシュ値に基づいて、自車両に対応するデータを更新するための差分データを確実に取得できる。
【0012】
請求項7記載の車載電子制御装置によれば、差分データのダウンロードを実行すると、前記ハッシュ値と差分データについて計算したハッシュ値とを比較して、差分データの正当性を検証するので、センター装置よりダウンロードした差分データの正当性を、配信パッケージに含まれているハッシュ値を用いて検証できる。
【図面の簡単な説明】
【0013】
【
図1】一実施形態であり、車両用プログラム書換えシステムを示す機能ブロック図
【
図5】構成情報DBに登録されるデータの一例を示す図
【
図6】ECUリプロデータDBに登録されるデータの一例を示す図
【
図7】個車情報DBに登録されるデータの一例を示す図
【
図9】新規差分データの登録処理を示すフローチャート
【
図10】配信パッケージの生成処理を示すフローチャート
【
図11】車両側システムの処理を示すフローチャート
【発明を実施するための形態】
【0014】
以下、一実施形態について図面を参照して説明する。車両用プログラム書換えシステムは、車両に搭載されているECUの車両制御や診断等のアプリプログラムをOTAにより書換え可能なシステムである。
図1に示すように、車両用プログラム書換えシステム1は、通信ネットワーク2側のセンター装置3と、車両側の車両側システム4と、表示端末5とを有する。通信ネットワーク2は、例えば4G回線等による移動体通信ネットワークやインターネットやWiFi(Wireless Fidelity:登録商標)等を含んで構成される。
【0015】
表示端末5は、ユーザからの操作入力を受付ける機能や各種画面を表示する機能を有する端末であり、例えばユーザが携帯可能なスマートフォンやタブレット等の携帯端末6、車室内に配置されているナビゲーション機能を兼用するディスプレイやメータディスプレイ等の車載ディスプレイ7である。携帯端末6は、移動体通信ネットワークの通信圏内であれば、通信ネットワーク2に接続可能である。車載ディスプレイ7は、車両側システム4に接続されている。
【0016】
ユーザは、車室外であって移動体通信ネットワークの通信圏内であれば、アプリプログラムの書換えに関与する各種画面を携帯端末6で確認しながら操作入力を行い、アプリプログラムの書換えに関与する手続きを可能である。ユーザは、車室内では、アプリプログラムの書換えに関与する各種画面を車載ディスプレイ7で確認しながら操作入力を行い、アプリプログラムの書換えに関与する手続きを可能である。即ち、ユーザは、車室外と車室内で携帯端末6と車載ディスプレイ7を使い分け、アプリプログラムの書換えに関与する手続きを可能である。
【0017】
センター装置3は、車両用プログラム書換えシステム1において通信ネットワーク2側のOTAの機能を統括し、OTAセンターとして機能する。センター装置3は、ファイルサーバ8と、ウェブサーバ9と、管理サーバ10とを有し、各サーバ8~10が相互にデータ通信可能に構成されている。
【0018】
ファイルサーバ8は、センター装置3から車両側システム4に送信されるアプリプログラムの管理機能を備え、アプリプログラムの提供事業者であるサプライヤ等から提供されるECUプログラム及びそれに付随する情報、OEM(Original Equipment Manufacturer)から提供される配信諸元データ、車両側システム4から取得する車両状態等を管理するサーバである。ファイルサーバ8は、通信ネットワーク2を介して車両側システム4との間でデータ通信可能であり、配信パッケージのダウンロード要求が発生すると、配信諸元データをパッケージ化した配信パッケージと、更新データとも称するリプログデータとを車両側システム4に送信する。ウェブサーバ9は、ウェブ情報を管理するサーバであり、携帯端末6に対し、アプリプログラムの書換えに関与する各種画面を提供する。管理サーバ10は、アプリプログラムの書換えのサービスに登録しているユーザの個人情報等を管理し、車両毎のアプリプログラムの書換え履歴等を管理する。
【0019】
尚、センター装置3は、配信パッケージを圧縮ファイルとして送信するのに対して、リプログデータを圧縮処理することなく車両側システム4に送信する。リプログデータは、センター装置3の外部において圧縮処理された場合と非圧縮の場合とがあるが、センター装置3は、外部から受信したリプログデータに対して圧縮処理を行わない。
【0020】
車両側システム4は、マスタ装置11を有する。マスタ装置11は、DCM(Data Communication Module)12とCGW(Central Gate Way)13とを有し、DCM12とCGW13が第1バス14を介してデータ通信可能に接続されている。DCM12は、センター装置3との間で通信ネットワーク2を介してデータ通信を行う車載通信機であり、ファイルサーバ8から配信パッケージをダウンロードすると、その配信パッケージから書込みデータを抽出してCGW13に転送する。または、DCM12は、ファイルサーバ8から配信パッケージをダウンロードすると、その配信パッケージをCGW13に転送する。CGW13は、配信パッケージから書込みデータを抽出する。
【0021】
CGW13は、データ中継機能を有する車両用ゲートウェイ装置であり、DCM12から書込みデータを取得すると、その書込みデータを、アプリプログラムを書換える書換え対象ECUに配信する。マスタ装置11は、車両用プログラム書換えシステム1において車両側のOTAの機能を統括し、OTAマスタとして機能する。尚、
図1では、DCM12と車載ディスプレイ7が同一の第1バス14に接続されている構成を例示しているが、DCM12と車載ディスプレイ7が別々のバスに接続されている構成でも良い。CGW13は、本開示の中継装置に対応する。
【0022】
CGW13には、第1バス14に加え、第2バス15、第3バス16、第4バス17、第5バス18が車内側のバスとして接続されており、バス15~17を介して各種ECU19が接続されていると共に、バス18を介して電源管理ECU20が接続されている。
【0023】
第2バス15は、例えばボディ系ネットワークのバスである。第2バス15に接続されているECU19は、例えばドアのロック/アンロックを制御するドアECU、メータ表示を制御するメータECU、エアコンの駆動を制御するエアコンECU、ウィンドウの開閉を制御するウィンドウECU等のボディ系の制御を行うECUである。第3バス16は、例えば走行系ネットワークのバスである。第3バス16に接続されているECU19は、例えばエンジンの駆動を制御するエンジンECU、ブレーキの駆動を制御するブレーキECU、自動変速機の駆動を制御するECT(Electronic Controlled Transmission)ECU、パワーステアリングの駆動を制御するパワーステアリングECU等の走行系の制御を行うECUである。
【0024】
第4バス17は、例えばマルチメディア,いわゆるMM系ネットワークのバスである。第4バス17に接続されているECU19は、例えばナビゲーションシステムを制御するためのナビゲーションECU、電子式料金収受システム,すなわちETC(Electronic Toll Collection System:登録商標)システムを制御するETCECU等のマルチメディア系の制御を行うECUである。バス15~17は、ボディ系ネットワークのバス、走行系ネットワークのバス、マルチメディア系ネットワークのバス以外の系統のバスであっても良い。また、バスの本数やECU19の個数は例示した構成に限らない。
電源管理ECU20は、DCM12、CGW13、各種ECU19等の電源管理を行う機能を有するECUである。
【0025】
CGW13には、第6バス21が車外側のバスとして接続されている。第6バス21には、ツール23が着脱可能に接続されるDLC(Data Link Coupler)コネクタ22が接続されている。車内側のバス14~18及び車外側のバス21は、例えばCAN(Controller Area Network:登録商標)バスにより構成されており、CGW13は、CANのデータ通信規格や診断通信規格(UDS:ISO14229)にしたがってDCM12、各種ECU19、ツール23との間でデータ通信を行う。尚、DCM12とCGW13がイーサネットにより接続されていても良いし、DLCコネクタ22とCGW13がイーサネットにより接続されても良い。
【0026】
書換え対象ECU19は、CGW13から書込みデータを受信すると、その書込みデータをフラッシュメモリに書込んでアプリプログラムを書換える。上記した構成では、CGW13は、書換え対象ECU19から書込みデータの取得要求を受信すると、書込みデータを書換え対象ECU19に配信するリプログマスタとして機能する。書換え対象ECU19は、CGW13から書込みデータを受信すると、その書込みデータをフラッシュメモリに書込んでアプリプログラムを書換えるリプログスレーブとして機能する。尚、「書換え対象ECU」を「ターゲットECU」と表記することがある。
【0027】
アプリプログラムを書換える態様としては、有線で書換える態様と、無線で書換える態様とがある。アプリプログラムを有線で書換える態様では、ツール23がDLCコネクタ22に接続されると、ツール23は、書込みデータをCGW13に転送する。CGW13は、ツール23から転送された書込みデータを書換え対象ECU19に中継又は配信する。アプリプログラムを無線で書換える態様では、上記したように、DCM12は、ファイルサーバ8から配信パッケージをダウンロードすると、その配信パッケージから書込みデータを抽出し、その書込みデータをCGW13に転送する。
【0028】
図2に示すように、CGW13は、電気的な機能ブロックとして、マイクロコンピュータ(以下、マイコンと称する)24と、データ転送回路25と、電源回路26と、電源検出回路27とを有する。マイコン24は、CPU(Central Processing Unit)24aと、ROM(Read Only Memory)24bと、RAM(Random Access Memory)24cと、フラッシュメモリ24dとを有する。マイコン24は、非遷移的実体的記憶媒体に格納されている各種制御プログラムを実行して各種処理を行い、CGW13の動作を制御する。
【0029】
データ転送回路25は、バス14~18,21との間のCANのデータ通信規格や診断通信規格に準拠したデータ通信を制御する。電源回路26は、バッテリ電源(以下、+B電源と称する)、アクセサリ電源(以下、ACC電源と称する)、イグニッション電源(以下、IG電源と称する)を入力する。電源検出回路27は、電源回路26が入力する+B電源の電圧値、ACC電源の電圧値、IG電源の電圧値を検出し、これらの検出した電圧値を所定の電圧閾値と比較し、その比較結果をマイコン24に出力する。マイコン24は、電源検出回路27から入力する比較結果により、外部からCGW13に供給されている+B電源、ACC電源、IG電源が正常であるか異常であるかを判定する。
【0030】
図3に示すように、ECU19は、電気的な機能ブロックとして、マイコン28と、データ転送回路29と、電源回路30と、電源検出回路31とを有する。マイコン28は、CPU28aと、ROM28bと、RAM28cと、フラッシュメモリ28dとを有する。マイコン28は、非遷移的実体的記憶媒体に格納されている各種制御プログラムを実行して各種処理を行い、ECU19の動作を制御する。
【0031】
データ転送回路29は、バス15~17との間のCANのデータ通信規格に準拠したデータ通信を制御する。電源回路30は、+B電源、ACC電源、IG電源を入力する。電源検出回路31は、電源回路30が入力する+B電源の電圧値、ACC電源の電圧値、IG電源の電圧値を検出し、これらの検出した電圧値を所定の電圧閾値と比較し、その比較結果をマイコン28に出力する。マイコン28は、電源検出回路27から入力する比較結果により、外部からECU19に供給されている+B電源、ACC電源、IG電源が正常であるか異常であるかを判定する。尚、ECU19は、接続する例えばセンサやアクチュエータ等の負荷が異なり、基本的には同等の構成である。また、DCM12、車載ディスプレイ7、及び電源管理ECUも、基本構成は
図3に示すECU19と同様である。
【0032】
図4に示すように、センター装置3は、パッケージ管理部3Aを備えている。パッケージ管理部3Aは、諸元データ生成部201,パッケージ生成部202及びパッケージ配信部203と、ECUリプロデータDB204,ECUメタデータDB205及びパッケージDB206とを有している。
【0033】
サプライヤは、管理サーバ10のユーザインターフェイス(UI)機能である入力部218及び表示部219を用いて、ECU個別のデータを登録する。ECU個別のデータとして、新プログラムや差分データ等のプログラムファイル、プログラムファイルの検証データやサイズ、暗号化方式等のプログラムファイル関連情報、及びECU19のメモリ構造などECU属性情報に関するものなどがある。プログラムファイルは、ECUリプロデータDB204に記憶される。ECU属性情報は、ECUメタデータDB205に記憶される。プログラムファイル関連情報は、ECUリプロデータDB204に記憶されてもよいし、ECUメタデータDB205に記憶されても良い。
【0034】
OEMは、車両型式ごとに、正規の構成情報を構成情報DB208に登録する。正規の構成情報とは、公的な機関により認可された車両の構成情報である。構成情報は、車両に搭載されるECU19のハードウェア及びソフトウェアに関する識別情報であり、車両関連情報の一例である。構成情報には、複数のECU19から成るシステム構成の識別情報や、複数のシステムから成る車両構成の識別情報も含まれる。また、構成情報として、プログラムの更新に関する車両の制約情報を登録しても良い。例えば、書換え諸元データに記載されるECUのグループ情報,バス負荷テーブル,バッテリ負荷に関する情報等を登録しても良い。
【0035】
諸元データ生成部201は、各DBを参照し、書換え諸元データを生成する。パッケージ生成部202は、書換え諸元データと差分データのHash値とを含む配信パッケージを生成し、パッケージDB206に登録する。また、パッケージDB206には、配信パッケージのID,配信パッケージファイル及び配信パッケージの完全性検証用のデータ等が登録される。パッケージ生成部202は、配信諸元データを含めて配信パッケージを生成しても良い。パッケージ配信部203は、登録された配信パッケージとリプログデータとを車両側システム4に配信する。パッケージ配信部203は、配信部に相当する。
【0036】
個車情報DB213には、個々の車両よりアップロードされる個車情報が登録される。アップロードされる前に登録される初期値としては、例えば車両生産又は販売時点での個車情報でも良い。構成情報DB208には、各車両型式の構成情報が登録されている。
【0037】
OEMは、プログラム更新に関する情報であり、車両に配信されるキャンペーン情報をキャンペーンDB217に登録する。ここでのキャンペーン情報は、前述した「配信諸元データ」に相当し、主に車両側システム4で表示する更新内容に関する情報である。車両側システム4では、センター装置3より送信されたキャンペーン情報に基づいて、更新プログラムのダウンロードを行うか否かを例えばユーザが判断し、必要であればダウンロードを行う。尚、パッケージ管理部3Aの各データベースを除く部分は、コンピュータのハードウェア及びソフトウェアにより実現されている機能である。車両通信部222は、センター装置3と車両側システム4との間で無線により相互にデータ通信を行うための機能ブロックである。
【0038】
以下、上記の処理についてより詳細に説明するが、先ず各データベースに登録されるデータの内容を説明する。
図5に示すように、構成情報DB208には、一例として以下のデータが登録される。「車両型式」は車種を示す。「Vehicle SW ID」は、車両全体に対するソフトウェアIDであり、車両ソフトウェアIDに相当する。「Vehicle SW ID」は各車両に1つだけ付与され、何れか1つ以上のECUのアプリプログラムのバージョンが更新されるのに伴い更新される。「Sys ID」は、各車両に搭載されている複数のECU19のグループを「システム」とすると、そのシステムのIDである。
【0039】
例えば、
図1において、ボディ系ECU19のグループがボディ系システム、走行系ECU19のグループが走行系システムである。「Sys ID」は、システムを構成する何れか1つ以上のECUのアプリプログラムのバージョンが更新されるのに伴い更新される。「ECU ID」は、各ECUの種別を示す装置識別用のIDである。「ECU SW ID」は、各ECUに対するソフトウェアIDであり、ECUソフトウェアIDに相当する。ここでは便宜上、「ECU ID」にソフトウェアのバージョンを付したもので示している。「ECU SW ID」は、当該ECUのアプリプログラムのバージョンが更新されるのに伴い更新される。また、同一の「ECU ID」で同一のプログラムバージョンであったとしても、ハードウェア構成が異なる場合は、異なる「ECU SW ID」を用いる。即ち、「ECU SW ID」はECUの品番を示す情報でもある。
【0040】
図5では、「車両型式」=「aaa」の車両に関する構成情報を示している。車両に搭載されるECU19のうち、自動運転ECU(ADS)、エンジンECU(ENG)、ブレーキECU(BRK)、及び電動パワーステアリングECU(EPS)を例示している。例えば、「Vehicle SW ID」=「0001」の「ECU SW ID」が、「ads_001」,「eng_010」,「brk_001」,「eps_010」であるのに対し、「Vehicle SW ID」=「0002」の「ECU SW ID」は、「ads_002」,「eng_010」,「brk_005」,「eps_011」であり、3つのソフトウェアバージョンが更新されている。これに伴い、「Sys ID」=「SA01」は「SA02」に更新され、「Sys ID」=「SA02」は「SA03」に更新される。このように、構成情報DB208には、車両の生産又は販売時点で初期値が登録され、その後、何れか1つ以上のECUのアプリプログラムのバージョンが更新されるのに伴い更新される。すなわち、構成情報DB208は、各車両型式について、市場で正規に存在する構成情報を示す。
【0041】
図6に示すように、ECUリプロデータDB204には、一例として以下のプログラムやデータが登録される。
図6では、ある車両型式に搭載されるECU19のうち、アプリプログラムが更新されるECU19として、自動運転ECU(ADS)、ブレーキECU(BRK)、及び電動パワーステアリングECU(EPS)を例示している。これら更新対象ECU19の最新の「ECU SW ID」について、ECUの旧プログラム及び新プログラムファイル,新プログラムの完全性検証データ,新プログラムと旧プログラムとの差分データである更新データファイル,更新データの完全性検証データ,同じく差分データであるロールバックデータファイル,ロールバックデータの完全性検証データ,更新データファイルにハッシュ関数を適用して得られたハッシュ値,及びロールバックデータファイルにハッシュ関数を適用して得られたハッシュ値等が登録される。以下では、ハッシュ値を「Hash値」と記載することがある。
【0042】
尚、本実施形態では、旧プログラムから新プログラムへの書換えは差分データにより実施されることを前提に記載するが、差分データの代わりに新アプリプログラムの全体に相当する全データを更新データとしても良い。ロールバックとは、プログラムの更新中にエラーやキャンセルが発生した場合に、新プログラムから旧プログラムに書き戻す処理を表す。
【0043】
また、
図6では、最新の「ECU SW ID」についてのデータ構造を示したが、古い「ECU SW ID」についてのデータが保存されている場合、旧プログラムファイルについては、1つ古い「ECU SW ID」の新プログラムファイルを参照するよう構成しても良い。また、各完全性検証データ及びハッシュ値は、サプライヤにて演算した値を登録する形式としても良いし、センター装置3が演算して登録する形式としても良い。
【0044】
ECUメタデータDB205には、一例として以下に示すECU個別の諸元データが登録される。最新の「ECU SW ID」について、更新データファイルのサイズ,ロールバックデータファイルのサイズ,ECU19が備えるフラッシュメモリ28dが2面以上の構成である場合に、A面,B面,C面等何れの面用のプログラムであるかを示す面情報,転送サイズ,プログラムファイルの読出し用アドレス等である。これらは更新データ関連情報の一例である。諸元データのより詳細な内容については、後述する。
【0045】
また、ECUメタデータDB205には、ECU19の属性を示す属性情報も登録される。属性情報とは、ECUに関するハードウェア属性、及びソフトウェア属性を示す情報である。「転送サイズ」は、CGW13からECU19へ書換えデータを分割して転送する際の転送サイズ、「鍵」は、CGW13がECU19へセキュアにアクセスする際に用いる鍵である。これらは、ソフトウェア属性情報の一例である。また、「車両型式」及び「ECU ID」について、ECU19が備えるフラッシュメモリ28dのメモリ構成,ECU19が接続されているバス種別,ECU19に接続されている電源の種類なども含まれる。これらは、ハードウェア属性情報の一例である。
【0046】
例えば、メモリ構成「1面」はフラッシュ面を1面で持つ1面単独方式メモリであり、「2面」はフラッシュ面を2面で持つ2面メモリであり、「サスペンド」はフラッシュ面を疑似的な2面で持つ1面サスペンド方式メモリである。ハードウェア属性情報及びソフトウェア属性情報は、車両側システム4において、個々のECU19の書換え制御に用いられる情報である。また、ソフトウェア属性情報は、個々のECU19の書換え動作を直接指定するデータである。
【0047】
図7に示すように、個車情報DB213には、一例として以下に示す個車毎のデータが登録される。主に、個車毎の構成情報や、プログラム更新に対する個車のステータス情報が登録される。具体的には、車両識別番号であり各車両のIDである「VIN(Vehicle Identification Number)」について、構成情報である「Vehicle SW ID」,「Sys ID」,「ECU ID」,「ECU SW ID」等が登録される。これらの構成情報についてのハッシュ値である「Digest」値も、センター装置3にて演算され、記憶される。「運用面」は、メモリ構成が2面である場合に、ECU19が現在運用しているプログラムが書き込まれている面であり、構成情報とともにアップロードされた値が登録される。
【0048】
「アクセスログ」は、車両が個車情報をセンター装置3にアップロードした年月日及び時刻である。「リプロステータス」は、車両におけるリプログのステータスを示し、例えば「キャンペーン発行済み」,「アクティベート完了」,「ダウンロード完了」等がある。つまり、この進捗ステータスにより、車両におけるリプログが、どのフェーズまで進み、どのフェーズで停滞しているかが分かる。尚、車両側システム4よりセンター装置3に対して構成情報等がアップロードされる際には、その情報等に各車両の「VIN」が付与される。
【0049】
キャンペーンDB217には、以下のデータが登録される。キャンペーン情報のID,配信パッケージID,キャンペーン内容として具体的な更新内容を示すテキスト文等のメッセージ情報,キャンペーンの対象となる車両のIDである「VIN」のリスト,更新前後の「Vehicle SW ID」,更新前後の「ECU SW ID」のリスト等である。「対象VIN」リストは、個車情報DB213とキャンペーンDB217とを照合して登録することができる。尚、これらのキャンペーン情報は、パッケージDB206に併せて登録しても良い。
【0050】
諸元データ生成部201は、ECUメタデータDB205にアクセスして、更新対象としたECU19に関する諸元データとして、更新データ関連情報、ハードウェア属性情報,ソフトウェア属性情報及び個車情報を取得する。例えば
図8に示すように、更新データ関連情報は、「更新プログラムバージョン」「更新プログラム取得アドレス」「更新プログラムサイズ」「ロールバックプログラムバージョン」「ロールバックプログラム取得アドレス」「ロールバックプログラムサイズ」「書込みデータ種別」「書込み面」「更新データ」「Hash値」である。
【0051】
ハードウェア属性情報は、「接続バス」「接続電源」「メモリ種別」である。ソフトウェア属性情報は、「書換え面情報」「セキュリティアクセス鍵情報」「書換え方法」「転送サイズ」である。「書換え方法」とは、IGオンからオフに切り替わった際、電源自己保持回路を有効として書換えを行うか(電源自己保持)、それとも、IGオン及びIGオフに従って書換えを行うか(電源制御)、を示すデータである。「セキュリティアクセス鍵情報」として、鍵以外の情報を含めても良い。
【0052】
個車情報は、上述した「VIN」である。「VIN」は、配信パッケージの配信先となる車両を特定するためのユニークな情報,すなわち車両特定情報の一例である。車両特定情報としては、「VIN」の他、例えば車台番号や車両登録番号を用いても良い。個車情報は、車両のオーナー情報を含んでも良い。
【0053】
以下、各情報について説明する。
・「書込みデータ種別」は、プログラムが差分データか全データかを示す種別である。更新プログラムに対する書込みデータ種別と、ロールバックプログラムに対する書込みデータ種別とを別々に記載しても良い。
・「書込み面」は、2面メモリのECU19に対し、いずれの面に書込むためのプログラムかを示す情報である。
・「接続バス」は、ECU19が接続されるバスを識別する情報である。
・「接続電源」は、ECU19が接続される電源状態を示す情報であり、バッテリ電源(+B電源)、アクセサリ電源(ACC電源)、及びイグニッション電源(IG電源)のいずれかを示す値が記載される。
【0054】
・「メモリ種別」は、ECU19のメモリ構成を識別する情報であり、2面メモリ、1面サスペンド方式メモリ(疑似2面メモリ)、及び1面メモリ等を示す値が記載される。
・「書換え面情報」は、ECU19のいずれの面が起動面(運用面)で、いずれの面が書換え面(非運用面)であるかを示す情報である。
・「セキュリティアクセス鍵情報」は、鍵を用いてECU19へのアクセス認証を行うための情報であり、鍵導出鍵、鍵パターン、及び復号演算パターンの情報を含む。
・「転送サイズ」は、ECU19へプログラムを分割して転送する際のデータサイズである。
・「更新データ」は、差分データである更新データファイルのファイル名である。
・「Hash値」は、更新データファイルのHash値のデータファイルのファイル名である。尚、ここにおいて、「Hash値」と差分データとが紐付けられている。換言すると、諸元データに、更新データファイルのファイル名とHash値のデータファイル名を含めることで、差分データとHash値とを紐付けている。諸元データを受信した車両側システム4は、諸元データを参照することにより、何れのHash値が何れの差分データに対応するのかを把握する。
【0055】
これらの情報は、例えば
図8に示すように、「ECU ID」をキーとして、上述した特定のECU順序として保持する。諸元データ生成部201は、全てのECUについて情報を取得すると、更新対象となる車両について「書換え環境情報」を指定する。「書換え環境情報」とは、ECUのグループ又は車両全体を対象とした、車両側システム4における書換え制御に用いられる情報であって、書換え動作を直接指定するデータである。例えば、車両全体を対象とした書換え環境情報としては、車両側システム4におけるプログラム更新を車両の走行中(IGスイッチのオン中)に行うか駐車中(IGスイッチのオフ中)に行うかを示す「車両状態」、車両側システム4においてプログラム更新を実行可能なバッテリ残量の制約を示す「バッテリ負荷(バッテリの残量)」,車両側システム4において書込みデータを転送可能なバス負荷の制約を示すバス負荷テーブル情報等である。
【0056】
また、グループを対象とした書換え環境情報としては、そのグループに属するECU19及びグループ内のECU順序等である。車両側システム4では、プログラム更新がグループ単位で同期するよう制御し、指定されたECU順序でECU19への書込みを実行する。諸元データ生成部201は、書換え環境情報登録用の画面を起動し,OEMの作業者から入力を受付ける。または、書換え環境情報が入力されたエクセル(登録商標)をインポートする形式としても良い。または、構成情報DB208に登録された制約情報を抽出する形式としても良い。
【0057】
バス負荷テーブルは、電源状態とバスの伝送許容量との対応関係を示すテーブルである。伝送許容量は、最大伝送許容量に対して伝送可能な車両制御データと書込みデータとの伝送量の合計である。例えば、第1バスの伝送許容量が最大伝送許容量に対して「80%」であれば、CGW13は、IG電源状態では、車両制御データの伝送許容量として最大伝送許容量に対して「50%」を許容し、書込みデータの伝送許容量として最大伝送許容量に対して「30%」を許容する。また、CGW13は、ACC電源状態では、車両制御データの伝送許容量として最大伝送許容量に対して「30%」を許容し、書込みデータの伝送許容量として最大伝送許容量に対して「50%」を許容する。また、CGW13は、+B電源状態では、車両制御データの伝送許容量として最大伝送許容量に対して「20%」を許容し、書込みデータの伝送許容量として最大伝送許容量に対して「60%」を許容する。第2バス及び第3バスについても同様である。
【0058】
最後に、諸元データ生成部201は、生成又は取得した各データを、予め定められた所定のデータ構造に合せて配置し、
図8に示すような書換え諸元データを生成する。すなわち、諸元データ生成部201は、車両側システム4で解釈可能なデータ構造にて書換え諸元データを生成する。なお、各ECU情報については、グループの若い順かつグループ内ECU順序に従って書換え諸元データに記載すると良い。例えば、グループ1を「ADS」とし、グループ2を1番目が「BRK」、2番目が「EPS」とする場合、諸元データのECU情報欄は、最初に「ADS」のECU情報、次に「BRK」のECU情報、最後に「EPS」のECU情報が並ぶこととなる。
【0059】
図8に示す諸元データにおいて、ECU情報の「ECU ID」~「転送サイズ」は、対象ECU19の種別を含む対象装置関連情報の一例であり、上述したハードウェア属性情報及びソフトウェア属性情報に対応する。また、「更新プログラムバージョン」~「Hash値」は更新データ関連情報の一例である。また、ECUのグループ又は車両全体を対象とした「書換え環境」は、車両における更新処理を指定する更新処理情報の一例である。
【0060】
次に、本実施形態の要旨に係る作用について説明する。
図9に示すように、諸元データ生成部201は、新規の差分データを登録する際に、その差分データのHash値を計算すると(S1)、差分データ及びHash値をECUリプロデータDB204に登録する(S2)。DB204は、ハッシュ値記憶部に相当する。
【0061】
図10に示すように、パッケージ生成部202は、更新対象となるデータの全ての差分データに対応するHash値を、ECUリプロデータDB204より取得して用意する(S11)。尚、更新対象となる差分データが複数ある場合には、差分データ毎にHash値が生成されるので、複数のHash値が生成される。次に、構成情報DB208と個車DB213とを照合し、新たなプログラムによる更新の有無,すなわちキャンペーン情報の有無を判断する。また、パッケージ生成部202は、個車パッケージ生成条件に該当するか否かを判断する(S12)。個車パッケージ生成条件に該当すると判断されると(YES)ステップS13に移行する。個車パッケージ生成条件に該当しないと判断されると(NO)ステップS14に移行する。
【0062】
個車パッケージ生成条件は、例えば、更新データが有償であるか否か、言い換えると、更新データが課金パッケージであるか否かである。更新データが有償である場合、個車パッケージ生成条件は肯定判断される。このように構成することで、有償サービスに契約したユーザの車両に更新パッケージの適用を限定することができる。または、個車パッケージ生成条件は、個車パッケージの要否を示すフラグでも良い。例えば、作業者が更新対象となるECUの種類や更新データの種類に応じてフラグを設定する。更には、S12を省略し、配信パッケージの諸元データには常に個車識別情報を格納しても良い。
【0063】
尚、車両識別情報を格納した諸元データを含むパッケージを個車用パッケージと称し、車両識別情報を格納しない諸元データを含むパッケージを汎用パッケージと称す。個車用パッケージは、個車用パッケージの諸元データにより特定される車両のみにより利用されるので、他車両のプログラム更新に用いることを防ぐことができ、カスタマイズされたECUの設定に対応することができる。対して、汎用パッケージは、所定の型式を有する車両に広く適用されるパッケージであり、1つの汎用パッケージは複数の車両に適用できることから、センター装置3における配信パッケージを生成するのに必要な処理負荷を下げることができる。
【0064】
個車用パッケージであれば、諸元データに車両特定情報である「VIN」を格納し(S13)、更にHash値と差分データとを紐付ける情報,つまりHash値及び差分データのファイル名を格納する(S14)。個車用パッケージでなければ(S12;NO)、ステップS13をスキップしてステップS14を実行する。それから、その他必要な情報を格納して配信パッケージを生成すると(S15)、最後にそのパッケージのデータを認証するための署名を付与する(S16)。
【0065】
本実施形態では、個車用パッケージ又は汎用パッケージには、更新データ及びロールバックデータは含まれない。更新データ及びロールバックデータは、数Gバイト程度のファイルサイズになることがある。これらのデータを個車用パッケージ又は汎用パッケージに含めないことで、パッケージのファイルサイズを大幅に縮小できる。個車用パッケージ又は汎用パッケージは、パッケージ生成において圧縮ファイルとして生成されるので、ファイルサイズが小さいとセンター装置3の処理負荷を低減できる。つまり、センター装置3は、更新データ及びロールバックデータを含むパッケージを生成する場合に比べて、より短時間でパッケージを生成することができる。
【0066】
次に、車載電子制御装置である車両側システム4の処理について説明する。
図11に示すように、車両側システム4は、自車両宛の配信パッケージをダウンロードし、続いて、差分データをダウンロードする(S21)。図中の「更新ソフト」は差分データに相当する。又は、車両側システム4は、自車両宛の配信パッケージをダウンロードしてその検証を完了すると、配信パッケージに格納されているファイル名の差分データをダウンロードしても良い。
【0067】
続いて、ダウンロードした差分データについてHash値を計算すると(S22)、配信パッケージに格納されているHash値と一致するか否かを判断する(S23)。双方のHash値が一致すれば(YES)OTAを実施し,つまりダウンロードした差分データのインストール及びアクティベートを行ない(S24)、Hash値が一致しなければ(NO)OTAを中止する(S25)。
【0068】
以上のように本実施形態によれば、センター装置3の構成情報DB208には、複数のECU19それぞれに対する装置の識別情報及び当該装置のソフトウェアアーキテクチャに関する情報が車両の種別と共に記憶される。諸元データ生成部201は、データを更新する対象となるECU19のそれぞれについて、更新データと更新前のデータとの差分である差分データを求め、その差分データのハッシュ値を計算し、計算したハッシュ値をECUリプロデータDB204に記憶する。そして、パッケージ生成部202は、データの更新対象となるECU19について配信パッケージを生成する際に、ECUリプロデータDB204に記憶されている対応するハッシュ値を用いて生成する。
【0069】
換言すれば、パッケージ生成部202は、データの更新対象となるECU19について配信パッケージを生成する際に、ECUリプロデータDB204に記憶されている対応するハッシュ値を含む配信パッケージを生成する。パッケージ生成部202は、更新データファイルやロールバックデータを含まない配信パッケージを生成する。
【0070】
このように構成すれば、各車両に配信するパッケージに差分データのハッシュ値を含ませることでデータサイズを低減できるので、当該パッケージの処理時間を短縮できる。また、配信パッケージを受信した車両側では、諸元データに含まれるハッシュ値と、更新データファイルより車両側で算出したハッシュ値とに基づいて、自車両に対応するデータを更新するための差分データが真正なものか否かを判定することが可能になる。
【0071】
また、センター装置3は、差分データと、当該差分データに対応するハッシュ値を含む配信パッケージとを紐付けた紐付け情報を用いてデータを管理するので、そのハッシュ値を含む配信パッケージに対応する差分データを容易に特定できる。
【0072】
また、パッケージ生成部202は、複数の「ECU ID」に対応した複数のハッシュ値と、それら複数のハッシュ値に対応する紐付け情報を含んだ配信パッケージを生成する。これにより、配信パッケージを受信した車両側では、ハッシュ値と差分データより算出したハッシュ値とに基づいて、自車両に対応する複数のデータを更新するための複数の差分データが真正なものか否かを容易に判定することが可能になる。
【0073】
更に、パッケージ生成部202は、車両の識別情報「VIN」を配信パッケージに含めて生成するので、「VIN」に基づきパッケージの配信先、つまりパッケージを受信すべき車両を特定できる。加えて、パッケージ生成部202は、配信パッケージに、当該配信パッケージのデータを認証するために用いる署名を含めて生成するので、セキュリティを向上させることができる。
【0074】
そして、車両側システム4は、センター装置3より受信した配信パッケージにハッシュ値が含まれていると、センター装置3に対してハッシュ値に対応する差分データのダウンロードを要求する。これにより、ハッシュ値に基づいて、自車両に対応するデータを更新するための差分データを確実に取得できる。
【0075】
また、車両側システム4は、差分データのダウンロードを実行すると、前記ハッシュ値と差分データについて計算したハッシュ値とを比較して、差分データの正当性を検証するので、センター装置3よりダウンロードした差分データの正当性を、配信パッケージに含まれているハッシュ値を用いて検証できる。
【0076】
(その他の実施形態)
車両の識別情報「VIN」を配信パッケージに含めて生成することや、配信パッケージについて行う署名は、必要に応じて行えば良い。
ステップS25でOTAを中止した際には、センター装置3に再度ダウンロードの要求を行なっても良い。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0077】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0078】
図面中、1は車両用プログラム書換えシステム、3はセンター装置、4は車両側システム、11はマスタ装置、12はDCM、13はCGW、19はECU、201は諸元データ生成部、202はパッケージ生成部、204はECUリプロデータDB、205はECUメタデータDB、206はパッケージDB、208は構成情報DBである。