IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

<>
  • 特許-センタ 図1
  • 特許-センタ 図2
  • 特許-センタ 図3
  • 特許-センタ 図4
  • 特許-センタ 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-08-04
(45)【発行日】2025-08-13
(54)【発明の名称】センタ
(51)【国際特許分類】
   G06F 8/65 20180101AFI20250805BHJP
【FI】
G06F8/65
【請求項の数】 1
(21)【出願番号】P 2022109204
(22)【出願日】2022-07-06
(65)【公開番号】P2024007847
(43)【公開日】2024-01-19
【審査請求日】2024-06-20
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】佐藤 雄介
(72)【発明者】
【氏名】有我 崇徳
(72)【発明者】
【氏名】福與 賢
(72)【発明者】
【氏名】河崎 卓也
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特表2020-503605(JP,A)
【文献】中国特許出願公開第113190249(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
車両に搭載された電子制御ユニットのソフトウェア更新を、ネットワークを介した通信により管理するセンタであって、
前記電子制御ユニットから、前記ソフトウェア更新に使用する更新データの送信を要求するリクエストと前記リクエストから生成したメッセージ認証コードとを受信する通信部と、
前記メッセージ認証コードを用いて前記リクエストが適正であるか否かを判定し、今回適正であると判定した前記リクエストの前記メッセージ認証コードと前回適正であると判定した前記リクエストの前記メッセージ認証コードとの同一性を判定する判定部と、
前記判定部による判定に基づいて、前記通信部により前記電子制御ユニットに対して前記更新データを送信する制御部と、を備え、
前記判定部は、
前記リクエストが適正であり且つ前回と今回の前記メッセージ認証コードが同じではないと判定した場合、前記通信部を介して前記電子制御ユニットに成功レスポンスを送信し、
前記リクエストが適正ではないと判定した場合、前記通信部を介して前記電子制御ユニットにエラーレスポンスを送信し
記リクエストが適正であり且つ前回と今回の前記メッセージ認証コードが同じであると判定した場合
今回の前記メッセージ認証コードが前回の前記メッセージ認証コードの受信から所定の時間以内に受信されたものであり且つ今回の前記メッセージ認証コードの受信回数が所定の回数以内であれば、前記通信部を介して前記電子制御ユニットに成功レスポンスを送信し、
今回の前記メッセージ認証コードが前回の前記メッセージ認証コードの受信から所定の時間以内に受信されたものではないか、または今回の前記メッセージ認証コードの受信回数が所定の回数を超えていれば、前記通信部を介して前記電子制御ユニットに前記エラーレスポンスを送信する、センタ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両に搭載された電子制御ユニットのソフトウェア更新を、ネットワークを介した通信により管理するセンタに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニットが搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部である不揮発性メモリとを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置(OTAマスタ)が、無線通信を介してセンタなどのサーバーからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェア更新や追加を行うOTA(Over The Air)技術が知られている。例えば、特許文献1を参照。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-326689号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
車載通信機器を介して電子制御ユニット自身がセンタに更新データの分割データを要求するメッセージ認証コード付きのHTTPリクエストを行って、センタから分割データを何度も受信することによって更新データをダウンロードする制御が考えられる。
【0006】
ここで、センタは、HTTPリクエストを受信するとメッセージ認証コードにより認証を行うが、この認証に問題が無い場合であっても、DoS攻撃対策として、所定の時間以内(例えば1秒以内)に同一のメッセージ認証コードを受信した場合には、この所定の時間以内のHTTPリクエストのうち2回目以降のHTTPリクエストについてはエラーのHTTPレスポンスを送信する。このため、電子制御ユニットがセンタに送信するHTTPリクエストに付加されるメッセージ認証コードが所定の時間以内において同一になってしまう場合にはエラーとなってしまうため、改善の余地があった。
【0007】
本開示は、上記課題を鑑みてなされたものであり、所定の時間以内に同一のメッセージ認証コード付きのHTTPリクエストを電子制御ユニットから受信してもエラーとしないセンタを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本開示技術の一態様は、車両に搭載された電子制御ユニットのソフトウェア更新を、ネットワークを介した通信により管理するセンタであって、電子制御ユニットから、ソフトウェア更新に使用する更新データの送信を要求するリクエストとリクエストから生成したメッセージ認証コードとを受信する通信部と、メッセージ認証コードを用いてリクエストが適正であるか否かを判定し、リクエストが前回のリクエストと同一のメッセージ認証コードのリクエストである特定リクエストであるか否かを判定する判定部と、判定部による判定に基づいて、通信部により電子制御ユニットに対して更新データまたはエラーレスポンスを送信する制御部と、を備え、制御部は、リクエストが適正であり且つ特定リクエストではないと判定された場合、更新データを送信し、リクエストが適正ではないと判定された場合、エラーレスポンスを送信し、リクエストが特定リクエストであると判定された場合、エラーレスポンスを送信し、リクエストが適正であり且つ特定リクエストであると判定された場合において、特定リクエストが所定の時間以内に受信された所定の回数以内のリクエストである場合には、エラーレスポンスを送信せず更新データを送信する、センタである。
【発明の効果】
【0009】
本開示によれば、所定の時間以内に同一のメッセージ認証コード付きのHTTPリクエストを電子制御ユニットから受信してもエラーとしないセンタを提供できる。
【図面の簡単な説明】
【0010】
図1】本実施形態に係るセンタを含むネットワークシステムの全体構成図
図2】電子制御ユニットの機能ブロック図
図3】HTTPリクエストの一例
図4】センタが実行する制御の処理フローチャート
図5】電子制御ユニットが実行する制御の処理フローチャート
【発明を実施するための形態】
【0011】
<実施形態>
[構成]
図1は、本開示の一実施形態に係るネットワークシステムの全体構成を示すブロック図である。図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット40a、40b、及び40cのソフトウェアを更新するためのシステムであり、車両の外にあるセンタ10と、車両内に構築される車載ネットワーク20と、を備える。
【0012】
(1)センタ
センタ10は、ネットワーク70及び通信モジュール50を介して、車載ネットワーク20が備える複数の電子制御ユニット40a、40b、及び40cと通信可能である。センタ10は、複数の電子制御ユニット40a、40b、及び40cとの間で、複数の電子制御ユニット40a、40b、及び40cのソフトウェアの更新データの送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などを行って、複数の電子制御ユニット40a、40b、及び40cのソフトウェア更新を制御及び管理することができる。このセンタ10は、いわゆるサーバーとしての機能を有する。
【0013】
センタ10は、通信部11と、記憶部12と、判定部13と、制御部14と、を備える。このセンタ10は、典型的には、CPU(Central Processing Unit)、RAM(Random Access Memory)、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの読み書き可能な記憶媒体を備えた記憶装置、及びネットワーク70を介して複数の電子制御ユニット40a、40b、及び40cと通信を行うための通信装置など、を含んで構成される。センタ10において、CPUは、記憶装置から読み出したプログラムを、RAMを作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。
【0014】
通信部11は、複数の電子制御ユニット40a、40b、及び40cとの間で、データ、情報、及び要求などの送信及び受信を行う。通信部11は、電子制御ユニット40a、40b、及び40cからソフトウェアの更新確認要求を受信する。更新確認要求は、例えば、車両において電源又はイグニッションがオンされた時に送信される情報であって、車両構成情報に基づいて電子制御ユニット40a、40b、及び40cの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部11は、更新確認要求を受信すると、更新データの有無を示す情報を電子制御ユニット40a、40b、及び40cに送信する。また、通信部11は、電子制御ユニット40a、40b、及び40cからの配信パッケージの送信要求(ダウンロード要求)を受信する。また、通信部11は、配信パッケージのダウンロード要求を受信すると、ソフトウェアの更新データを含む配信パッケージを更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)に送信する。また、通信部11は、電子制御ユニット40a、40b、及び40cから分割データ(更新データ)の送信を要求するメッセージ認証コード付のHTTPリクエスト(後述する)を受信する。
【0015】
記憶部12は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部12は、車両を識別する車両識別情報(車両ID)ごとに、電子制御ユニット40a、40b、及び40cで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニット40a、40b、及び40cのソフトウェアの更新データとを、少なくとも記憶する。電子制御ユニット40a、40b、及び40cで利用可能なソフトウェアを示す情報としては、例えば、複数の電子制御ユニット40a、40b、及び40cの各ソフトウェアの最新のバージョン情報の組み合わせが定義される。また、ソフトウェア更新処理に関する情報として、記憶部12は、車両で実施されているソフトウェアの更新状態を示す更新ステータスを記憶することができる。
【0016】
判定部13は、電子制御ユニット40a、40b、及び40cから受信したメッセージ認証コード付のHTTPリクエストを用いて、認証処理を行う。そして、判定部13は、認証の結果とメッセージ認証コードの同一性とに基づいて、成功又は失敗(エラー)のレスポンスを電子制御ユニット40a、40b、及び40cに送信することを行う。この判定部13の処理については、後述する。
【0017】
制御部14は、通信部11が電子制御ユニット40a、40b、及び40cから更新確認要求を受信すると、記憶部12に記憶されている更新管理情報(電子制御ユニットのバージョンなど)に基づいて、更新確認要求に含まれる車両IDで特定される電子制御ユニット40a、40b、及び40cについてソフトウェアの更新データがあるか否かを判定する。制御部14は、電子制御ユニット40a、40b、及び40cのソフトウェアの更新データがある場合、更新確認要求をしてきた電子制御ユニットに更新データを含む配信パッケージを生成して送信する。
【0018】
(2)車載ネットワーク
車載ネットワーク20は、複数の電子制御ユニット40a、40b、及び40cと、通信モジュール50と、を備える。このうちの電子制御ユニット40aは、OTAマスタ機能を有する電子制御ユニットである。電子制御ユニット40a、40b、及び40cと通信モジュール50とは、バス60を介して接続されている。
【0019】
通信モジュール50は、センタ10と車両との通信を制御する機能を持ったDCMユニットであり、車載ネットワーク20をセンタ10に接続するための通信機器である。通信モジュール50は、ネットワーク70経由でセンタ10と無線で接続され、電子制御ユニット40a、40b、及び40cによる車両の認証や更新データのダウンロードなどが行われる。
【0020】
複数の電子制御ユニット40a、40b、及び40cは、車両の各部の動作を制御するための装置(ECU:Electronic Control Unit)である。この複数の電子制御ユニット40a、40b、及び40cは、バス60及び通信モジュール50を介してネットワーク70経由でセンタ10と無線による通信が可能である。図1においては、車載ネットワーク20が3つの電子制御ユニット40a、40b、及び40cを備えている例を示したが、電子制御ユニットの数は特に限定されない。例えば、電子制御ユニット40a、40b、及び40cのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うための表示装置(HMI)が、バス60に接続されていてもよい。
【0021】
電子制御ユニット40aが有するOTAマスタ機能は、OTA状態を管理し、ソフトウェア更新処理の流れである更新シーケンスを制御して更新対象となるターゲット電子制御ユニットのソフトウェア更新を実施する機能である。OTAマスタ機能では、電子制御ユニット40a、40b、及び40cのうちターゲット電子制御ユニットのソフトウェア更新を制御することができる。
【0022】
このOTAマスタ機能を有する電子制御ユニット40aは、典型的には、CPU、RAM、ROM(Read-Only Memory)、記憶装置、及びネットワーク70を介してセンタ10と通信を行うための通信装置など、を含んで構成される。電子制御ユニット40aにおいて、CPUは、ROMから読み出したプログラムを、RAMを作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。所定の処理を実行する機能ブロックとして、電子制御ユニット40a、40b、及び40cは、図2に示すように、通信部41と、記憶部42と、作成部43と、制御部44と、をそれぞれ備える。
【0023】
通信部41は、センタ10との間で、データ、情報、及び要求などの送信及び受信を行う。通信部41は、例えば、車両の電源ONを契機としてソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、例えば、車両を識別するための車両IDと電子制御ユニットのソフトウェアの現バージョンに関する情報とを含む。車両ID及び電子制御ユニット40a、40b、及び40cのソフトウェアの現バージョンは、センタ10が車両IDごとに保持するソフトウェアの最新バージョンとの比較により、電子制御ユニット40a、40b、及び40cのソフトウェアの更新データがあるか否かを判定するために用いられる。また、通信部41は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。ソフトウェアの更新データがある場合、通信部41は、ソフトウェアの更新データの配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを、制御部44による制御に基づいて受信(ダウンロード)する。また、通信部41は、ソフトウェアの更新状態をセンタ10に送信する。
【0024】
記憶部42は、電子制御ユニットのソフトウェア更新を実行するためのプログラム(OTAマスタ機能の制御用プログラム)や、ソフトウェア更新を実行する際に用いる各種データの他、センタ10からダウンロードしたソフトウェアの更新データなどを記憶する。
【0025】
作成部43は、センタ10に更新データ(分割データ)の送信を要求するためのHTTPリクエストを作成する。図3に、作成部43が作成するHTTPリクエストの一例を示す。図3に例示するHTTPリクエストは、HTTPリクエストライン、ECUシリアルNo、ECU_GPS時刻、HTTPボディ、及びHTTPヘッダ、を含んで構成されている。また、作成部43は、HTTPリクエストの一部(HTTPリクエストライン、ECUシリアルNo、ECU_GPS時刻、及びHTTPボディ)から、メッセージ認証コードを生成する。
【0026】
制御部44は、通信部41が受信した更新確認要求に対するセンタ10からの応答に基づいて、ソフトウェアの更新データがあるか否かを判定する。また、制御部44は、通信部41がセンタ10から受信(ダウンロード)して記憶部42に格納した配信パッケージの復号や真正性の検証を行う。また、制御部44は、センタ10から受信(ダウンロード)した更新データを用い、ソフトウェア更新処理(各種の検証、インストール、アクティベートなど)を制御する。具体的には、制御部44は、更新データに基づく更新ソフトウェアをインストールし、インストールした更新ソフトウェアを有効化させるアクティベートを行う。
【0027】
[制御]
次に、図4及び図5をさらに参照して、本実施形態に係るネットワークシステムにおいて実行される制御を説明する。図4は、センタ10が実行する制御の処理フローチャートである。図5は、各電子制御ユニット40a、40b、及び40cが実行する制御の処理フローチャートである。
【0028】
(1)センタの制御
図4に示すセンタの制御は、センタ10が、電子制御ユニット40a、40b、及び40cから分割データ(更新データ)の送信を要求するHTTPリクエストとメッセージ認証コードとを受信すると開始される。
【0029】
(ステップS401)
センタ10は、受信したHTTPリクエスト及びメッセージ認証コードを用いて、送信してきた電子制御ユニットの認証処理を実施する。認証処理が実施されると、ステップS402に処理が進む。
【0030】
(ステップS402)
センタ10は、実施した認証処理が成功したのか失敗したのかを判断する。認証処理が成功した場合は(ステップS402、はい)、ステップS403に処理が進み、認証処理が失敗した場合は(ステップS402、いいえ)、ステップS407に処理が進む。
【0031】
(ステップS403)
センタ10は、今回認証処理が成功したHTTPリクエストのメッセージ認証コードが、前回認証処理が成功したHTTPリクエストのメッセージ認証コードと同じであるか否かを判定する。今回のHTTPリクエスト(リクエスト)のメッセージ認証コードが前回のHTTPリクエスト(特定リクエスト)のメッセージ認証コードと同一である場合は(ステップS403、はい)、ステップS404に処理が進み、今回のメッセージ認証コードが前回のメッセージ認証コードと同一ではない場合は(ステップS403、いいえ)、ステップS406に処理が進む。
【0032】
(ステップS404)
センタ10は、今回のメッセージ認証コードを、同一のメッセージ認証コードを前回受信してから所定の時間以内に受信したか否かを判断する。所定の時間は、例えば1秒とすることができる。メッセージ認証コードを所定の時間以内に受信した場合は(ステップS404、はい)、ステップS405に処理が進み、メッセージ認証コードを所定の時間以内に受信していない場合は(ステップS404、いいえ)、ステップS407に処理が進む。
【0033】
(ステップS405)
センタ10は、今回のメッセージ認証コードの受信が、所定の回数以内のものであるか否かを判断する。所定の回数は、例えば3回とすることができる。メッセージ認証コードが所定の回数以内である場合は(ステップS405、はい)、ステップS406に処理が進み、メッセージ認証コードが所定の回数以内ではない場合は(ステップS405、いいえ)、ステップS407に処理が進む。
【0034】
(ステップS406)
センタ10は、成功レスポンスを、HTTPリクエスト及びメッセージ認証コードを送信してきた電子制御ユニットに送信する。また、センタ10は、要求された分割データをHTTPリクエスト及びメッセージ認証コードを送信してきた電子制御ユニットに送信する。成功レスポンス及び分割データが電子制御ユニットに送信されると、センタ10による本制御が終了する。
【0035】
(ステップS407)
センタ10は、失敗レスポンス(エラーレスポンス)を、HTTPリクエスト及びメッセージ認証コードを送信してきた電子制御ユニットに送信する。この場合は、要求された分割データが電子制御ユニットに送信されない。失敗レスポンス(エラーレスポンス)が電子制御ユニットに送信されると、センタ10による本制御が終了する。
【0036】
(2)ECUの制御
図5に示すECU(電子制御ユニット)の制御は、電子制御ユニット40a、40b、及び40cのそれぞれにおいて、センタ10から更新データをダウンロードする処理が開始すると実行される。以下、電子制御ユニット40aを代表としてECUの制御を説明する。
【0037】
(ステップS501)
電子制御ユニット40aは、センタ10に要求する更新データの一部である分割データを決定する。要求する分割データが決定されると、ステップS502に処理が進む。
【0038】
(ステップS502)
電子制御ユニット40aは、通信モジュール50からGPS時刻を取得する。GPS時刻が取得されると、ステップS503に処理が進む。
【0039】
(ステップS503)
電子制御ユニット40aは、上記ステップS501で決定した分割データと上記ステップS502で取得したGPS時刻とを用いて、HTTPリクエスト(図3)を作成する。HTTPリクエストが作成されると、ステップS504に処理が進む。
【0040】
(ステップS504)
電子制御ユニット40aは、上記ステップS503で作成したHTTPリクエストに基づいて、メッセージ認証コード(図3)を作成する。GPS時刻によって1秒間隔で変化するメッセージ認証コードを作成することができる。メッセージ認証コードが作成されると、ステップS505に処理が進む。
【0041】
(ステップS505)
電子制御ユニット40aは、上記ステップS503及びS504で作成したHTTPリクエスト及びメッセージ認証コードを、センタ10に送信する。なお、メッセージ認証コードは、HTTPヘッダに含んで送信することができる。HTTPリクエスト及びメッセージ認証コードがセンタ10に送信されると、ステップS506に処理が進む。
【0042】
(ステップS506)
電子制御ユニット40aは、HTTPリクエスト及びメッセージ認証コードの応答として、センタ10から成功レスポンスを受信し、要求した分割データを受信したか否かを判断する。分割データをセンタ10から受信した場合は(ステップS506、はい)、ステップS507に処理が進み、分割データをセンタ10から受信していない場合は(ステップS506、いいえ)、ステップS408に処理が進む。
【0043】
(ステップS507)
電子制御ユニット40aは、上記ステップS506で受信した分割データを用いて、インストール処理を実施する。このインストール処理は、電子制御ユニット40aの不揮発性メモリに分割データを書き込む処理である。分割データのインストール処理が実施されると、ステップS408に処理が進む。
【0044】
(ステップS508)
電子制御ユニット40aは、センタ10に対して次に要求する分割データがないか否かを判断する。すなわち、更新データのダウンロードが完了したか否かを判断する。次に要求する分割データがある場合は(ステップS508、いいえ)、ステップS501に処理が進み、次に要求する分割データがない場合は(ステップS508、はい)、電子制御ユニット40aによる本制御が終了する。
【0045】
なお、電子制御ユニット40a、40b、及び40cは、HTTPリクエスト及びメッセージ認証コードの応答として失敗レスポンス(エラーレスポンス)を受信した場合には、例えば、3分間に3回までHTTPリクエストを再送し、それでもエラーが解消されなければダウンロード処理を最初からやり直すようにしてもよい。
【0046】
<効果>
以上のように、本開示の一実施形態に係るセンタ10によれば、所定の時間以内に受信する同一のメッセージ認証コードが付加されたHTTPリクエストを、所定の回数までは許容可能とする。これにより、DoS攻撃を抑えつつ、HTTPリクエストに対するエラーの発生を抑制することができる。
【産業上の利用可能性】
【0047】
本開示技術は、車両に搭載された電子制御ユニットのソフトウェアを更新するためのネットワークシステムをネットワーク通信によって管理するセンタに利用できる。
【符号の説明】
【0048】
10 センタ
11、41 通信部
12、42 記憶部
13 判定部
14、44 制御部
43 作成部
20 車載ネットワーク
40a、40b、40c 電子制御ユニット(ECU)
50 通信モジュール
60 バス
70 ネットワーク
図1
図2
図3
図4
図5