(57)【要約】【課題】再構成可能回路装置の回路部の構成の更新を行うために必要な通信データ量を低減できるようにする。【解決手段】ＦＰＧＡ３を備える車載制御システム１０において、ＦＰＧＡ３は、再構成可能な回路を有する回路部と、回路部の構成情報を記憶する回路ＳＲＡＭとを有し、回路部の回路要素の変更部分に関する差分コマンドを取得する転送チェック部と、差分コマンドに基づいて、構成情報を更新するデータ変換部４と、を備えるように構成する。更に、車載制御システム１０において、回路ＳＲＡＭに格納される構成情報を記憶する不揮発メモリ６をさらに備え、データ変換部４は、転送チェック部が取得した差分コマンドに基づいて、不揮発メモリ６に記憶されている構成情報を更新するようにしてもよい。【選択図】図２
2019016026.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能回路装置を備える電子制御システムであって、
前記再構成可能回路装置は、再構成可能な回路を有する回路部と、前記回路部の構成情報を記憶する設定記憶部とを有し、
前記回路部の回路要素の変更部分に関する差分情報を取得する取得部と、
前記差分情報に基づいて、前記構成情報を更新するデータ変換部と、
を備える電子制御システム。
【請求項２】
前記差分情報は、前記回路部における前記回路要素を識別する情報と、前記回路要素に対する設定情報とを含むコマンドである
請求項１に記載の電子制御システム。
【請求項３】
前記設定記憶部に格納される前記構成情報を記憶する不揮発性記憶部をさらに備え、
前記データ変換部は、前記取得部が取得した差分情報に基づいて、前記不揮発性記憶部に記憶されている前記構成情報を更新する
請求項１又は請求項２に記載の電子制御システム。
【請求項４】
前記データ変換部は、
前記回路要素の識別情報に基づいて、前記回路要素の設定情報が格納されている前記不揮発性記憶部のアドレスを計算するアドレス計算部と、
前記不揮発性記憶部の前記アドレスに対応する領域に、前記回路要素の前記設定情報を格納する設定情報格納部と、
を備える請求項３に記載の電子制御システム。
【請求項５】
前記取得部は、前記不揮発性記憶部に取得した前記差分情報を格納し、
前記差分情報のすべての設定情報が前記不揮発性記憶部の前記構成情報に反映されているか否かを診断する診断部と、
前記再構成可能回路装置における前記回路部の回路の再構成時に、前記差分情報のすべての設定情報を前記不揮発性記憶部の前記構成情報に反映されていない場合には、前記不揮発性記憶部に記憶されている前記構成情報の内の異常動作を起こさない所定の構成情報のみを前記設定記憶部に格納させるようにする再構成制御部と
をさらに備える請求項３又は請求項４に記載の電子制御システム。
【請求項６】
前記取得部は、前記不揮発性記憶部に取得した前記差分情報を格納し、
前記差分情報のすべての設定情報が前記不揮発性記憶部の前記構成情報に反映されているか否かを診断する診断部をさらに備え、
前記データ変換部は、前記診断部により、前記差分情報のすべての設定情報を前記不揮発性記憶部の前記構成情報に反映されていないと診断された場合に、前記差分情報の反映されていない設定情報を前記不揮発性記憶部の前記構成情報に反映させる
請求項３から請求項５のいずれか一項に記載の電子制御システム。
【請求項７】
所定の時点における前記構成情報を記憶する不揮発性記憶部をさらに備え、
前記取得部は、前記所定の時点以降に取得した前記差分情報を前記不揮発性記憶部に格納し、
前記再構成可能回路装置は、前記データ変換部を有し、
前記データ変換部は、前記回路部の回路の再構成に、前記不揮発性記憶部から構成情報と前記差分情報とを取得し、前記差分情報に基づいて前記構成情報を更新し、更新後の構成情報を前記設定記憶部に格納する
請求項１又は請求項２に記載の電子制御システム。
【請求項８】
前記再構成可能回路装置は、
前記差分情報のすべてが前記不揮発性記憶部に格納されているか否かを診断する診断部をさらに備え、
前記データ変換部は、前記不揮発性記憶部に前記差分情報のすべてが格納されていないと診断された場合に、前記不揮発性記憶部の前記構成情報を前記設定記憶部に格納する
請求項７に記載の電子制御システム。
【請求項９】
前記所定の時点以降に取得した前記差分情報に基づいて、前記所定の時点における前記構成情報を最新の構成情報に更新し、前記最新の構成情報を前記不揮発性記憶部に格納させる最新構成情報生成部をさらに備える
請求項７又は請求項８に記載の電子制御システム。
【請求項１０】
前記取得部は、前記差分情報を、無線を介して受信する
請求項１から請求項９のいずれか一項に記載の電子制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の再構成可能回路装置を備える電子制御システムに関する。
【背景技術】
【０００２】
車両に搭載される電子制御システム内の電子制御装置（ＥＣＵ）の機能変更や機能追加に対し、ＯＴＡ（Ｏｖｅｒ−ｔｈｅ−ａｉｒ）によるマイコンのソフトウェア更新が行われている。
【０００３】
また、車両に搭載されるカメラ等を制御するＥＣＵにおいては、再構成可能回路装置、例えば、ＦＰＧＡの搭載が進んでおり、出荷後において、ＦＰＧＡのロジックの不具合の修正、機能変更、機能追加等に対応するために、マイコンのソフトウェア更新と同様に、ＯＴＡによりＦＰＧＡのロジック変更を行うことが考えられる。
【０００４】
ＯＴＡによりＦＰＧＡのロジック変更を行う場合には、マイコンのソフトウェア更新と同様に、データセンタから車両へ無線通信で更新後のロジック（更新ロジック）が送られる。無線通信で送信されるデータ量が多いと通信コストや通信時間が掛かるため、送信するデータ量を低減することが要請される。
【０００５】
例えば、ＯＴＡによりＦＰＧＡのロジック変更を行う場合に、全コンフィグレーションデータを更新すると、通信データ量が多くなるため、一部のコンフィグレーションデータを送信する方法として、パーシャルリコンフィグレーションと呼ばれる部分再構成機能が知られている。パーシャルリコンフィグレーションは、モジュールと呼ばれる予め設定されているエリア内のロジックのみを変更することができるので、全コンフィグレーションデータを送信せずに、モジュールを単位としてコンフィグレーションデータを送信することにより、ＦＰＧＡのロジック変更を行うことができる。しかしながら、パーシャルリコンフィグレーションによると、モジュールを単位としたロジックの変更であり、モジュール間のインターフェースを変えることができないという制約がある。
【０００６】
ここで、パーシャルリコンフィグレーションについて簡単に説明する。パーシャルリコンフィグレーションでは、ＦＰＧＡ内のモジュールＡ１を同一のインターフェースを有し、且つ異なる機能を有するモジュールＡ２に置き換えることができる。モジュールＡ１とモジュールＡ２とは、インターフェースが同一であるので、モジュールＡ２と、モジュールＡ１と接続されていた他のモジュールＢ１、Ｃ１とは、モジュールＡ１をモジュールＡ２に置き換えるだけで接続されることとなる。例えば、特許文献１には、複数のコンフィグレーションＲＯＭを用意しておき、パーシャルリコンフィグレーションを用いた部分再構成により、ＦＰＧＡの機能を入れ替える例が開示されている。
【０００７】
また、ＦＰＧＡのロジック更新に関する技術として、特許文献２には、更新前に使用していなかった部分にも回路が構成される場合に、故障が診断できるようにするために、ＦＰＧＡの更新データと共に、診断プログラムを併せて電子制御装置に供給する技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１６−９３３９号公報
【特許文献２】特開２０１５−１０６５９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記したように、送信されるデータ量が多いと通信コストが掛かるため、送信するデータ量をさらに低減することが要請されている。
【００１０】
これに対して、特許文献１に記載された技術は、パーシャルリコンフィグレーションによる部分再構成であり、更新対象のモジュールは、更新前後で同じロジックが含まれていたとしても、モジュール内の回路の全てが更新される。このため、モジュールを単位としたデータの送信が必要となる。さらに、パーシャルリコンフィグレーションによる部分再構成では、モジュール間におけるビット幅やモジュールの境界が変わらないことが前提となっているために、モジュール間のビット幅やモジュールの境界の変更を伴うロジックの不具合の修正、機能追加、機能変更等に柔軟に対応できないという問題がある。
【００１１】
また、車両においては、ドライバーがいつでもイグニションスイッチをオフにできたり、車両のバッテリーに蓄積されている電力が枯渇する可能性があったりするので、任意の時点に電子制御装置への電力の供給が遮断されることがある。このため、車両に搭載される電子制御装置のＦＰＧＡのロジックを更新する場合においては、更新途中の状態で電源が遮断されてしまっても、ＦＰＧＡのロジックが破壊されないことや、以降においてＦＰＧＡのロジックの更新を正常に行えるようにする必要がある。
【００１２】
本発明は、上記事情に鑑みなされたものであり、その目的は、再構成可能回路装置の構成情報を更新するために必要な通信データ量を適切に低減することができる技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、一観点に係る電子制御システムは、再構成可能回路装置を備える電子制御システムであって、再構成可能回路装置は、再構成可能な回路を有する回路部と、回路部の構成情報を記憶する設定記憶部とを有し、回路部の回路要素の変更部分に関する差分情報を取得する取得部と、差分情報に基づいて、構成情報を更新するデータ変換部と、を備える。
【発明の効果】
【００１４】
本発明によれば、再構成可能回路装置の構成情報を更新するために必要な通信データ量を適切に低減することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、第１実施形態に係る車両管理システムの全体構成図である。
【図２】図２は、第１実施形態に係る更新対象のＥＣＵの構成図である。
【図３】図３は、第１実施形態に係る差分コマンドによるロジックの更新を説明する図である。
【図４】図４は、第１実施形態に係るロジックの結線を変更する差分コマンドを説明する図である。
【図５】図５は、第１実施形態に係るＦＰＧＡの構成図である。
【図６】図６は、第１実施形態に係るＦＰＧＡにおける回路部の構成と、差分コマンドを説明する図である。
【図７】図７は、第１実施形態に係るデータ変換部の機能構成図である。
【図８】図８は、第２実施形態に係るＥＣＵの構成図である。
【図９】図９は、第２実施形態に係るＥＣＵの診断部及びデータ変換部の機能構成図である。
【図１０】図１０は、第２実施形態に係るＥＣＵにおけるＦＰＧＡ更新管理処理のフローチャートである。
【図１１】図１１は、第３実施形態に係るＥＣＵの構成図である。
【図１２】図１２は、第３実施形態に係る差分コマンド反映処理を説明する図である。
【発明を実施するための形態】
【００１６】
いくつかの実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１７】
まず、第１実施形態に係る車両管理システムについて説明する。
【００１８】
図１は、第１実施形態に係る車両管理システムの全体構成図である。
【００１９】
車両管理システム１０００は、データセンタ（ＤＣ）１６と、１以上の車両１００とを備える。
【００２０】
車両１００は、電子制御システムの一例としての車両制御システム１０と、バッテリー１４と、イグニッションスイッチ１５とを備える。バッテリー１４は、電力を蓄積し、車両制御システム１０の各部を動作させるための電力を供給する。イグニッションスイッチ１５は、車両１００のドライバーによる操作を受けて、バッテリー１４から車両制御システム１００への電力供給と、電力遮断とを切り替える。
【００２１】
車両制御システム１０は、取得部の一例としてのＴＣＵ（Ｔｅｌｅｍａｔｉｃｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｔ）１１と、セントラルゲートウェイ（ＣＧＷ：Ｃｅｎｔｒａｌ  Ｇａｔｅｗａｙ）１２と、１以上のＥＣＵ（電子制御装置）１とを備える。ＣＧＷ１２と、ＥＣＵ１とは、例えば、ＣＡＮ（Ｃｏｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＥｔｈｅｒｎｅｔ（登録商標）等のネットワーク１３を介して接続されている。
【００２２】
ＴＣＵ１１は、データセンタ１６からＯＴＡ（例えば、無線）により配信された差分コマンドを受信してＣＧＷ１２に送る。ＣＧＷ１２は、ＴＣＵ１１から受け取った差分コマンドに対して、暗号の解読、認証処理等を行うとともに、差分コマンドとともに送られる誤り訂正符号による誤り訂正を行って、差分コマンドが正しく受信できているか否かを確認する。また、ＣＧＷ１２は、データセンタ１６からの送信内容に基づいて、差分コマンドを適用する更新対象のＥＣＵ１を特定し、差分コマンドを正しく受信できていると確認した場合には、差分コマンドを更新対象のＥＣＵ１にネットワーク１３を介して送信する。ＥＣＵ１は、車両１００における各種制御を実行する。また、ＥＣＵ１は、差分コマンドに基づいて、後述するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）３の回路部の回路構成を更新する処理を実行する。なお、ＥＣＵ１の詳細については後述する。
【００２３】
データセンタ１６は、差分生成部１７と、通信部１８とを備える。差分生成部１７は、車両１００の所定のＥＣＵ１のＦＰＧＡ３の更新前の回路構成情報（旧コンフィグレーションデータ）と、ＦＰＧＡの更新後の回路構成情報（新コンフィグレーションデータ）とから差分を更新するための差分コマンドを生成する。通信部１８は、差分コマンドを、更新対象のＦＰＧＡ３を備えるＥＣＵ１を搭載している車両１００（更新対象車両）に対して、差分コマンドを無線により送信する。本実施形態では、ＯＴＡにより差分コマンドを送信するようにしているので、送信データ量を低減することができ、通信コストを低減することができると共に、通信時間を短縮することができる。
【００２４】
図２は、第１実施形態に係る更新対象のＥＣＵの構成図である。
【００２５】
ＥＣＵ１は、プロセッサの一例としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２と、再構成可能回路装置の一例としてのＦＰＧＡ３と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）５と、不揮発性記憶部の一例として不揮発メモリ６とを備える。
【００２６】
ＣＰＵ２は、各種処理を実行する。例えば、ＣＰＵ２は、車両１００に搭載された図示しないカメラによる画像に基づいて各種処理を実行する。また、ＣＰＵ２は、ＦＰＧＡ３を新コンフィグレーションデータにより再構成するための処理を実行する。ＣＰＵ２は、データ変換部４を有する。データ変換部４は、旧コンフィグレーションデータを、差分コマンドに基づいて変換（更新）することにより、新コンフィグレーションデータを生成する。
【００２７】
ＤＲＡＭ５は、ＣＰＵ２により実行されるプログラムや、ＣＰＵ２により利用される各種情報を格納する。
【００２８】
不揮発メモリ６は、例えば、フラッシュメモリ等のバッテリー１４からの電力の供給がない場合であっても、長期間にわたってデータを記憶可能なメモリであり、ＦＰＧＡ３の回路を構成するための回路構成情報（コンフィグレーションデータ）を記憶する。本実施形態では、コンフィグレーションデータは、例えば、ＦＰＧＡ３のベンダが提供するデータ（ベンダデータ）７と、ＦＰＧＡ３の機能を拡充させるためにＦＰＧＡ３を構築するユーザが提供するユーザデータ８とを含む。本実施形態では、ベンダデータ７は、比較的信頼性が高く、基本的には更新されないデータであり、ベンダデータ７のみによりＦＰＧＡ３の回路を構成することにより、ＦＰＧＡ３が異常動作を行わない状態（セキュア状態）とすることができる。ユーザデータ８は、ベンダデータに比べると信頼性が低く、不具合の解消、機能追加、機能変更等を行う際に更新されるデータである。
【００２９】
次に、差分コマンドによるロジックの更新の一例について説明する。
【００３０】
図３は、第１実施形態に係る差分コマンドによるロジックの更新を説明する図である。図３（ａ）は、ＦＰＧＡ３の回路における予め設定されているモジュールの境界を変更しない場合の更新の例を示し、図３（ｂ）は、ＦＰＧＡ３の回路における予め設定されているモジュールの境界を変更する場合の更新の例を示している。
【００３１】
本実施形態においては、例えば、モジュールＡ１をモジュールＡ２に更新する場合には、図３（ａ）に示すように、モジュールＡ２とモジュールＡ１との差分に対応する差分コマンド２５を送信することにより、結果的に、モジュールＡ１をモジュールＡ２に変換するようにする。この場合には、モジュールＡ２のすべての構成情報ではなく、差分コマンド２５のみを送信すればよいので、転送するデータ量を低減することができる。
【００３２】
また、本実施形態においては、モジュールＡ１及びＢ１を、モジュールＥ１、Ｆ１、及びＧ１に更新する場合には、図３（ｂ）に示すように、モジュールＥ１、Ｆ１、及びＧ１とモジュールＡ１及びＢ１との差分に対応する差分コマンド２６を送信することにより、結果的に、モジュールＡ１及びＢ１を、モジュールＥ１、Ｆ１、及びＧ１に変換するようにする。この場合には、ジュールＥ１、Ｆ１、及びＧ１のすべての構成情報ではなく、差分コマンド２６のみを送信すればよいので、転送するデータ量を低減することができる。また、モジュールを単位とした更新ではなく、モジュールの境界を変更するような更新を行うことができる。
【００３３】
次に、差分コマンドの一例について説明する。
【００３４】
図４は、第１実施形態に係るロジックの結線を変更する差分コマンドを説明する図である。
【００３５】
図４は、５個のロジックエレメントＬＥ１〜ＬＥ５を有するモジュール３２において、
ロジックエレメントＬＥ３を削除し、新たなロジックエレメントＬＥ６を追加し、ロジックエレメントＬＥ３に対する結線をロジックエレメントＬＥ６に対する結線に切り替える場合を示している。
【００３６】
このように結線を切り替える場合における差分コマンドとしては、ロジックエレメントＬＥ１、ＬＥ２とロジックエレメントＬＥ３との結線、及びロジックエレメントＬＥ３とロジックエレメントＬＥ５との結線を削除するコマンド部分３３と、ロジックエレメントＬＥ３を削除し、ロジックエレメントＬＥ６のインスタンスを有効化するコマンド部分３４と、ロジックエレメントＬＥ１、ＬＥ２とロジックエレメントＬＥ６との結線、及びロジックエレメントＬＥ６とロジックエレメントＬＥ５との結線を接続するコマンド部分３５とを有する。差分コマンドは、変更する要素に依存し、モジュール３２内のロジックエレメントの数には依存しない。このため、モジュール３２に数千のロジックエレメントＬＥがある場合でも、変更する要素のみについての差分コマンドとなる。したがって、モジュール３２の全体に対する構成情報よりも差分コマンドのデータ量を低減することができ、通信すべきデータ量を低減することができる。
【００３７】
次に、ＦＰＧＡについて説明する。
【００３８】
図５は、第１実施形態に係るＦＰＧＡの構成図である。
【００３９】
ＦＰＧＡ３は、回路部４０と、設定記憶部の一例としての回路ＳＲＡＭ４１とを備える。
【００４０】
回路部４０は、再構成可能な回路であり、回路要素として、複数のロジックエレメント（ＬＥ）４３と、ロジックエレメント４３間の接続を切換え可能な複数のスイッチボックス４４とを有する。
【００４１】
回路ＳＲＡＭ４１は、回路部４０の各回路要素に対する構成情報（コンフィグレーションデータ）を格納する。回路ＳＲＡＭ４１に格納されたコンフィグレーションデータによって、回路部４０の各回路要素に対する設定が行われ、回路部４０のロジックが決定される。コンフィグレーションデータは、例えば、ＦＰＧＡ３の起動時に不揮発メモリ６から読み出されて、回路ＳＲＡＭ４１に格納される。
【００４２】
回路ＳＲＡＭ４１のコンフィグレーションデータによって、（１）ロジックエレメント４３のルックアップテーブルの設定、（２）ロジックエレメント４３を接続するスイッチボックス４４の接続ネットワーク設定、（３）図示しない乗算器などの特殊セルの接続ネットワーク設定、（４）図示しないブロックＲＡＭ（ＳＲＡＭ）へのデータ設定、（５）クロックネットワーク設定等が行われる。
【００４３】
図６は、第１実施形態に係るＦＰＧＡにおける回路部の構成と、差分コマンドを説明する図である。図６においては、（１）ロジックエレメント４３のルックアップテーブルの設定、（２）ロジックエレメント４３を接続するスイッチボックス４４の接続ネットワーク設定及びそれに関する差分コマンドの例を示している。
【００４４】
ＦＰＧＡ３の回路部４０は、複数（図６では、９個）のロジックエレメント４３と、複数（図６では、４個）のスイッチボックス４４とを備える。
【００４５】
ロジックエレメント４３は、ルックアップテーブル５０と、フリップフロップ５１とを有する。ルックアップテーブル５０は、例えば、４入力から１出力を行うために用いるテーブルである。
【００４６】
ここで、ＬＥ１のロジックエレメント４３のルックアップテーブル５０を、４入力ＡＮＤ（Ａ０＆Ａ１＆Ａ２＆Ａ３）から、２入力ＡＮＤ−ＯＲ（（Ａ０＆Ａ１）｜（Ａ２＆Ａ３））に変更する場合における差分コマンドについて説明する。
【００４７】
この場合には、ＬＥ１のロジックエレメント４３のルックアップテーブル５０における出力の値を書き換えることとなる。差分コマンド５２は、例えば、書き換える対象のロジックエレメント４３を識別する情報（ここでは、ＬＥ１）と、４入力Ａ３、Ａ２、Ａ１、Ａ０の値と、出力（アウト）の変更値とを含む。
【００４８】
例えば、ＴＯ＿１  ＬＥ１＿００１１は、ＬＥ１のロジックエレメント４３のルックアップテーブル５０を、Ａ３＝０、Ａ２＝０、Ａ１＝１、Ａ０＝１の４入力の時に、出力値を“１”に変更すること（ＴＯ＿１）を示している。
【００４９】
スイッチボックス４４は、図６に示すように、例えば、６方向のスイッチ５３（ＵＬ、ＵＲ、ＤＬ、ＤＲ、ＬＲ、ＵＤ）を有する。
【００５０】
スイッチボックス４４において、上右方向のスイッチ５３（ＵＲ）をオフに変更し、下右方向のスイッチ５３（ＤＲ）をオンに変更する設定を行う場合には、差分コマンド５５は、例えば、書き換える対象のスイッチボックス４４を識別する情報と、対象のスイッチ５３を識別する情報と、オン（１）又はオフ（０）の設定値とを含む。具体的には、差分コマンド５５における「ＴＯ＿０  ＢＯＸ２＿ＵＲ」は、ＢＯＸ２のスイッチボックス４４のＵＲのスイッチ５３をオフに変更することを示し、「ＴＯ＿１  ＢＯＸ２＿ＤＲ」は、ＢＯＸ２のスイッチボックス４４のＤＲのスイッチ５３をオンに変更することを示している。
【００５１】
回路ＳＲＡＭ４１は、回路部４０の全てのロジックエレメント４３及びスイッチボックス４４等の各回路要素の設定（構成）を格納する領域に対するアドレスを有している。変更する回路の設定を格納する回路ＳＲＡＭ４１のアドレスのデータを変更することにより、回路は変更される。このため、差分コマンドには、変更箇所を指定するための回路ＳＲＡＭ４１のアドレスが含まれる。差分コマンド５２、５５には、一例として、１２ビットの回路ＳＲＡＭ４１のアドレスを示す。ルックアップテーブル５０の各要素とスイッチボックス４４の個別スイッチ５３に独立のアドレスが与えられる。
【００５２】
次に、データ変換部４について詳細に説明する。
【００５３】
図７は、第１実施形態に係るデータ変換部の機能構成図である。
【００５４】
データ変換部４は、不揮発メモリ６の旧コンフィグレーションデータの内のユーザデータ（旧データ）と、ＣＧＷ１２から受け取った差分コマンドとを用いて、不揮発メモリ６のコンフィグレーションデータの内のユーザデータ８を新データに更新する。差分コマンドには、変更部分のＦＰＧＡ回路情報の回路ＳＲＡＭ４１のアドレスとそれに対応するデータが含まれるため、コンフィグレーションデータに含まれる回路ＳＲＡＭ４１の情報を書き換えることにより、旧データから新データへの更新が可能となる。そして、新コンフィグレーションデータを用いることで、ＦＰＧＡ３の起動時に、不揮発メモリ６からＦＰＧＡ３の回路ＳＲＡＭ４１に読み込まれ、回路部４０の構成が新しく決定される。
【００５５】
より具体的には、データ変換部４は、コマンドデコーダ６０と、アドレス計算部６１と、コンフィグレーションデータ生成部６２と、変換制御部６３とを備える。
【００５６】
変換制御部６３は、コマンドデコーダ６０と、コンフィグレーションデータ生成部６２との処理を制御する。
【００５７】
コマンドデコーダ６０は、ＣＧＷ１２から受け取った差分コマンドをデコードし、回路部４０における変更対象の回路要素（ロジックエレメント、スイッチボックス等）を特定する情報と、変更する設定内容（ルックアップテーブルの出力値、スイッチのオン／オフ）とを含む回路変更情報をコンフィグレーションデータ生成部６２に出力する。
【００５８】
アドレス計算部６１は、差分コマンドに含まれる回路ＳＲＡＭ４１のアドレスを入力とし、不揮発メモリ６に格納されている旧コンフィグデータの差分コマンドに含まれる回路要素の設定情報に対応する不揮発メモリアドレスを計算する。
【００５９】
コンフィグレーションデータ生成部６２は、不揮発メモリアドレスを不揮発メモリ６に出力することにより、不揮発メモリ６における対象アドレスに対応する領域に格納されている、対応する回路要素の更新前の設定情報（旧コンフィグデータ）を入力する。差分コマンドの回路変更情報と旧コンフィグデータから、コンフィグレーションデータ生成部６２は、新データを作成し、対象アドレスと、新データとを不揮発メモリ６に出力する。なお、新データには、このデータを格納すべき回路ＳＲＡＭ４１のアドレスが含まれる。これにより、不揮発メモリ６は、対象アドレスに対応する領域を新データに更新することとなる。なお、旧データと新データとが格納される不揮発メモリ６の領域を異なるアドレスとしてもよい。
【００６０】
上記実施形態に係る車両制御システム１０によると、不揮発メモリ６には、差分コマンドに基づいたユーザデータの新データが格納されることとなり、ＦＰＧＡ３の起動時には、不揮発メモリ６に格納された新コンフィグレーションデータ（ベンダデータ７及び新データとなったユーザデータ８）が回路ＳＲＡＭ４１に格納されることとなり、ＦＰＧＡ３の回路部４０が新コンフィグレーションデータに従う回路構成に設定されることとなる。これにより、ＦＰＧＡ３の不具合の解消、機能追加、機能変更等を行うことができる。
【００６１】
次に、第２実施形態に係る車両管理システムについて説明する。
【００６２】
第２実施形態に係る車両管理システム１０は、第１実施形態に係る車両管理システムにおいて、不揮発メモリ６におけるコンフィグレーションデータの更新作業中に任意の電源遮断が発生した場合であっても、ＦＰＧＡ３の回路部４０が破壊されないようにしたものであり、第１実施形態に係る車両管理システムとは、ＥＣＵ１の一部の構成が異なっている。なお、第１実施形態に係る車両管理システムと同様な部分については同一の符号を付し、重複する説明を省略する。
【００６３】
第２実施形態に係る車両管理システム１０は、イグニッションスイッチ１５による電源遮断や、バッテリー１４の枯渇による電源遮断等の任意の電源遮断の発生に対して、（１）ＥＣＵ１に差分コマンドが正しく届いていることと、（２）差分コマンドを用いて新コンフィグレーションデータが正しく生成されていることを確認し、（１）、（２）が正しくない場合において、ＦＰＧＡ３の回路部４０のロジックを破壊しないようにしている。
【００６４】
図８は、第２実施形態に係るＥＣＵの構成図である。
【００６５】
ＥＣＵ１は、ＣＰＵ２と、ＦＰＧＡ３と、ＤＲＡＭ５と、不揮発メモリ６とを備える。ＣＰＵ２は、転送チェック部７０と、診断部７１と、データ変換部７３とを備える。ＦＰＧＡ３は、再構成制御部の一例としての判定部７２と、回路ＳＲＡＭ４１と、回路部４０とを備える。不揮発メモリ６は、ベンダデータ７と、ユーザデータ８と、差分コマンド７５と、コマンド進捗情報７６とを格納する。ユーザデータ８は、差分コマンドによる更新が行われていない場合には、旧データであり、差分コマンドによる更新が完了した場合には、新データである。
【００６６】
転送チェック部７０は、（１）ＥＣＵ１にＣＧＷ１２から差分コマンドが正しく届いているか否かについての確認及び検証を行う。なお、車両１００にデータセンタ１６から差分コマンドが正しく届いているか否かについては、ＣＧＷ１２が確認、検証を行っている。差分コマンドが正しいか否かの検証は、差分コマンドに対してチャックサムなどの誤り訂正符号を付加しておき、誤り訂正符号を用いることにより実現できる。
【００６７】
差分コマンドは、ＥＣＵ１に正しく届くことが必要であるが、ＥＣＵ１に差分コマンドが届いた直後に、電源遮断が起きると、差分コマンドが消えてしまう。そこで、転送チェック部７０は、受信した差分コマンドを不揮発メモリ６に保存する。なお、以降の処理では、不揮発メモリ６に保存された差分コマンドを用いる。
【００６８】
本実施形態では、転送チェック部７０は、電源遮断に対応した差分コマンドのチェックとして、（ａ）ＣＧＷ１２からＥＣＵ１に差分コマンドが正しく届いたか否かをチェックし、次に、（ｂ）ＥＣＵ１で不揮発メモリ６に正しく差分コマンドが保存されたか否かをチェックする２段階チェックを行っている。具体的には、転送チェック部７０は（ａ）のチェックを行い、正しく受信したと確認された差分コマンドを不揮発メモリ６に格納し、その後、（ｂ）のチェックを行う。
【００６９】
転送チェック部７０は、（ａ）において、ＥＣＵ１にＣＧＷ１２から差分コマンドが正しく届いていないと確認された場合には、ＣＧＷ１２に差分コマンドの再送リクエストを行う。また、転送チェック部７０は、（ｂ）において、不揮発メモリ６に差分コマンドが正しく保存されていないと確認された場合には、ＥＣＵ１は差分コマンドを保持していないことを意味しているので、ＣＧＷ１２に差分コマンドの再送リクエストを行う。転送チェック部７０は、（ａ）、（ｂ）のチェック結果をデータ変換部７３、診断部７１に通知する。
【００７０】
なお、ＣＧＷ１２側でも差分コマンドを保持していない場合は、ＣＧＷ１２は、ＴＣＵ１１を介して、データセンタ１６から差分コマンドを入手する。
【００７１】
データ変換部７３は、（ａ）、（ｂ）におけるチェックにおいて、正常であることが確認されないと、不揮発メモリ６のコンフィグレーションデータの内のユーザデータを更新しない。このため、不揮発メモリ６のコンフィグレーションデータを回路ＳＲＡＭ４１に読み出しても、コンフィグレーションデータは更新前のデータであるので、ＦＰＧＡ３の回路部４０のロジックは破壊されない。
【００７２】
データ変換部７３は、（ｂ）において、差分コマンドがＥＣＵ１に正常に保存していることが確認されると、不揮発メモリ６に保持された差分コマンドを用いて、コンフィグレーションデータのユーザデータの更新を行う。
【００７３】
診断部７１は、（２）差分コマンドを用いて新コンフィグレーションデータが不揮発メモリ６に正しく生成されているか否かのチェックを行う。ここで、差分コマンドの末尾は、差分コマンドの末尾であることを判定可能な特殊な記述となっている。
【００７４】
具体的には、診断部７１は、データ変換部７３によるコンフィグレーションデータの更新処理時において、データ変換部７３から差分コマンドの進捗情報（差分コマンドに含まれる複数のコマンドのうち、どのコマンドまでが完了したかを示す情報：コマンド進捗情報という）を受け取り、コマンド進捗情報に、差分コマンドの末尾を示す記述が含まれているか否かにより、差分コマンドの末尾まで更新を実行したか否かをチェックする。なお、コマンド進捗情報は、更新の途中において、電源遮断が起きた場合に、その後の更新処理を再開する差分コマンドの箇所を特定するためにも使用される。
【００７５】
データ変換部７３は、コマンド進捗情報を、新データと同時に不揮発メモリ６へ書き込む。新データとコマンド進捗情報との不揮発メモリ６への書込みは、不可分で行えるように、これらを実行する時間においては、電源遮断に対して耐えられるようにしておく必要がある。具体的には、短時間だけ電力の供給が継続できるようにする図示しないキャパシタなどを備えるようにしてもよい。
【００７６】
差分コマンドを用いて新コンフィグレーションデータを生成している途中で電源が遮断され、新コンフィグレーションデータが正しく生成されていないときは、次の二つのことを行う。一つは、診断部７１は、ＦＰＧＡ３がセキュアブート（ベンダデータ７のみでのブート）を行うように、ＦＰＧＡ３の判定部７２に指示する。ＦＰＧＡ３の判定部７２は、セキュアブートの指示を受け取った場合には、ＦＰＧＡ３の起動をセキュアブートで行う、すなわち、ベンダデータのみを不揮発メモリ６から回路ＳＲＡＭ４１に転送するようにする。もう一つは、データ変換部７３は、次に電源が投入された際に、差分コマンド７５とコマンド進捗情報とを用いて、差分コマンドの複数のコマンドのうち、実行が完了した次のコマンドからユーザデータを新データに更新する処理を再開する。
【００７７】
これにより、差分コマンドを用いて新コンフィグレーションデータを生成している途中で電源遮断され、新コンフィグレーションデータが正しく生成されていないときには、診断部７１はＦＰＧＡ３の判定部７２にＦＰＧＡ３のブートモードとして、セキュアブートを通知するので、ＦＰＧＡ３はセキュアブートで起動することとなり、ＦＰＧＡ３の回路部４０は、ロジックが破壊されていることによる不正な動作はしない。また、電源復帰後においては、データ変換部７３は、差分コマンドの実行されていない途中のコマンド部分から、継続してコンフィグレーションデータを更新する。そして、診断部７１は、コンフィグレーションデータが正しく更新されたことを確認すると、ＦＰＧＡ３の判定部７２に更新後のユーザデータ８を用いたブートモードを通知する。この結果、ＦＰＧＡ３の判定部７２は、ＦＰＧＡ３の次の起動時に、ベンダデータと更新後のユーザデータとを含む新コンフィグレーションデータが回路ＳＲＡＭ４１に転送されて、回路部４０の再構成が行われる。
【００７８】
図９は、第２実施形態に係るＥＣＵの診断部及びデータ変換部の機能構成図である。
【００７９】
データ変換部７３は、アドレス計算部６１と、コマンドデコーダ６４と、コンフィグレーションデータ生成部６５と、変換制御部６６とを備える。コマンドデコーダ６４、コンフィグレーションデータ生成部６５、及び変換制御部６６は、第１実施形態におけるコマンドデコーダ６０、コンフィグレーションデータ生成部６２、及び変換制御部６３のそれぞれに対して、電源遮断に対応する処理をさらに実行するようにしたものである。
【００８０】
診断部７１は、データ変換部７３から新データと、対応するコマンド進捗情報とを受け取り、新データの回路情報のチェックと、コマンド進捗情報に基づいて差分コマンドが最後まで正常に実行されているかどうかを判定する。診断部７１は、差分コマンドが最後まで正常に実行されていない場合には、ＦＰＧＡ３のブートモードとして、セキュアブートモードを示す信号をＦＰＧＡ３の判定部７２に出力し、差分コマンドが最後まで正常に実行されている場合には、ユーザデータを用いたブートモードを示す信号をＦＰＧＡ３の判定部７２に出力する。
【００８１】
このような構成により、データ変換部７３のコマンドデコーダ６４は、旧データと、差分コマンドとを不揮発メモリ６から入力し、入力したコマンドをデコードしてコンフィグレーションデータ生成部６５に渡す。この際、差分コマンドは、複数のコマンド群となっているため、所定の塊に分割され、分割された塊ごとに、コンフィグレーションデータ生成部６５に渡される。コンフィグレーションデータ生成部６５は、この塊毎に新データを生成する。この際、コンフィグレーションデータ生成部６５は、差分コマンドの複数のコマンド群の内のどのコマンド部分までを用いて新データを生成したかがわかるように、用いたコマンド部分を特定可能なコマンドの進捗を示すコマンド進捗情報を生成し、生成した新データと、新データに対応する不揮発メモリ６のアドレスと、コマンド進捗情報とを不可分に不揮発メモリ６に出力する。コンフィグレーションデータ生成部６５は、新データの生成が開始され、一部の不揮発メモリ６のみが更新されて、全体の新データの更新及び保存が完了する前に電源遮断が発生した場合には、電源復帰後において、不揮発メモリ６に保存しているコマンド進捗情報に基づいて、差分コマンドにおける実行されていない部分からの新データの生成及び不揮発メモリ６への保存を行う。
【００８２】
次に、第２実施形態に係るＥＣＵ１におけるＦＰＧＡ更新管理処理について説明する。
【００８３】
図１０は、第２実施形態に係るＥＣＵにおけるＦＰＧＡ更新管理処理のフローチャートである。
【００８４】
ＦＰＧＡ更新管理処理は、例えば、ＥＣＵ１がＣＧＷ１２から更新コマンドを受信した場合や、ＥＣＵ１の電源復帰後等に実行される
【００８５】
ＥＣＵ１の転送チェック部７０は、ＣＧＷ１２から受信した差分コマンドが正しいか否かを判定する（ステップＳ１１）。この結果、差分コマンドが正しくない場合（ステップＳ１１：Ｎｏ）には、転送チェック部７０は、ＣＧＷ１２に差分コマンドの再送転送要求を送信し（ステップＳ１２）、処理をステップＳ１１に進める。一方、差分コマンドが正しい場合（ステップＳ１１：Ｙｅｓ）には、転送チェック部７０は、差分コマンドを不揮発メモリ６に保存する（ステップＳ１３）。
【００８６】
次に、データ変換部４が、不揮発メモリ６に格納された差分コマンドと、旧データ（更新前のユーザデータ）とに基づいて、新データ（更新後のユーザデータ）を生成し、生成した新データを不揮発メモリ６に保存する（ステップＳ１４）と同時に、差分コマンドの内の使用したコマンド部分を特定可能なコマンド進捗情報を不揮発メモリ６に保存する（ステップＳ１５）。なお、本実施形態では、データ変換部４は、生成した新データを保存する際は、不揮発メモリ６における旧データを更新している。このため、不揮発メモリ６においては、旧データと新データとを併存させて保存させていないので、不揮発メモリ６として必要な記憶容量を低減することができる。
【００８７】
次に、診断部７１は、コンフィグレーションデータ生成部６５が出力したコマンド進捗情報に基づいて、差分コマンドの最後の部分まで使用され、且つ、新データが不揮発メモリ６に正しく格納されたか否かを判定する（ステップＳ１６）。この結果、差分コマンドの最後の部分まで使用されていない場合又は、不揮発メモリ６の新データが正しくない場合（ステップＳ１６：Ｎｏ）には、診断部７１は、ＦＰＧＡ３の判定部７２にセキュアブートを行うように通知する。この結果、ＦＰＧＡ３の判定部７２は、不揮発メモリ６のベンダデータのみを用いてＦＰＧＡ３を起動するセキュアブートを行い（ステップＳ１７）、処理をステップＳ１４に進める。なお、ステップＳ１４以降の処理により、差分コマンドの内、使用されていない部分による新データへの更新処理が行われることとなる。
【００８８】
一方、差分コマンドの最後の部分まで使用されていて、且つ、不揮発メモリ６の新データが正しい場合（ステップＳ１６：Ｙｅｓ）には、診断部７１は、ＦＰＧＡ３の判定部７２にユーザデータを用いたブートを行うように通知する。この結果、ＦＰＧＡ３の判定部７２は、不揮発メモリ６のベンダデータと新データ（更新済みのユーザデータ）とを含む新コンフィグレーションデータを用いてＦＰＧＡ３を起動するブートを行う（ステップＳ１８）。
【００８９】
この処理によると、差分コマンドによる新データへの更新の途中で電源遮断が発生していた場合には、電源復帰後のＦＰＧＡ更新管理処理において、ステップＳ１１で差分コマンドが正しいか否かが判定され、差分コマンドが正しくない場合には、ステップＳ１２の処理が実行される。また、ステップＳ１６において、コンフィグレーションデータ生成部６５が出力したコマンド進捗情報に基づいて、差分コマンドの最後の部分まで使用されていなかったり、新データが不揮発メモリ６に正しく格納されていなかったりしていることが確認されると、ステップＳ１７以降の処理が実行されることとなり、差分コマンドの内の電源遮断で実行されていなかった部分に対応する新データが生成される。これにより、以降において、支障なく差分コマンドに対応する新データが不揮発メモリ６に格納されることとなる。
【００９０】
次に、第３実施形態に係る車両管理システムについて説明する。
【００９１】
第３実施形態に係る車両管理システム１０は、第１実施形態に係る車両管理システムにおけるデータ変換部７３と診断部７１との機能をＦＰＧＡ３により実行するようにしたシステムである。なお、第１実施形態及び第２実施形態に係る車両管理システムと同様な部分については同一の符号を付し、重複する説明を省略する。
【００９２】
図１１は、第３実施形態に係るＥＣＵの構成図である。
【００９３】
第３実施形態に係るＥＣＵ１においては、不揮発メモリ６には、ベンダデータ７と、更新前のユーザデータ８（旧データ）と、差分コマンド９０とを格納し、更新後のユーザデータ（新データ）を格納しない。
【００９４】
ＣＰＵ２は、最新構成情報生成部の一例としてのデータ集約部９１をさらに有する。データ集約部９１は、データ変換部４と同様な機能を有している。
【００９５】
ＣＰＵの転送チェック部７０は、差分コマンドがＣＧＷ１２から正しく受信したか否かのチェックと、差分コマンドが不揮発メモリ６へ正しく格納されたか否かのチェックを行い、そのチェック結果を、ＦＰＧＡ３の診断部７４に通知する。
【００９６】
ＦＰＧＡ３は、診断部７４と、データ変換部７８とをさらに有する。データ変換部７８は、不揮発メモリ６と回路ＳＲＡＭ４１の間に配置される。データ変換部７８は、不揮発メモリ６からコンフィグレーションデータ（ベンダデータ及びユーザデータ（旧データ））を取得し、不揮発メモリ６に差分コマンドがない場合には、取得したコンフィグレーションデータを回路ＳＲＡＭ４１にする一方、不揮発メモリ６に差分コマンドがある場合には、不揮発メモリ６から取り出したコンフィグレーションデータと、差分コマンドとを用いて、ユーザデータの新データを生成して、ベンダデータと新データとを含む新コンフィグレーションデータを回路ＳＲＡＭ４１に格納する。
【００９７】
診断部７４は、転送チェック部７０から差分コマンドが正しく不揮発メモリ６に書かれていないとの通知を受けている場合には、不揮発メモリ６の差分データを使用しないで、旧コンフィグレーションデータ（ベンダデータ及び旧データ）をそのまま回路ＳＲＡＭ４１に格納するブート（セキュアブート）となるように、判定部７２に通知する。また、診断部７４は、差分コマンドが正しく不揮発メモリ６に書かれているとの通知を受けている場合には、不揮発メモリ６の差分コマンドと、旧データとを用いて新データを生成して、新コンフィグレーションデータ（ベンダデータ及び新データ）を回路ＳＲＡＭ４１に格納するブートとなるように判定部７２に通知する。
【００９８】
判定部７２は、診断部７４からの通知に従ったブートを行うように、データ変換部７８を制御する。すなわち、判定部７２は、差分コマンドが正しく不揮発メモリ６に格納されていない場合は、診断部７４から差分コマンドを使用しないように指示を受けるので、ＦＰＧＡ３の起動時に旧コンフィグレーションデータを回路ＳＲＡＭ４１に格納させることができる。このため、ＦＰＧＡ３の回路部４０のロジックが破壊されない。
【００９９】
第３実施形態に係る車両管理システムによると、第２実施形態に係る車両管理システムに比べて、電源遮断時に対する対応が単純化できるという効果がある。すなわち、第２実施形態では、不揮発メモリ６のユーザデータを新データに書き換える必要があり、任意のタイミングでの電源遮断が発生した後の電源復帰後に、コンフィグレーションデータの更新を継続可能にするために、差分コマンドのコマンド進捗情報を不揮発メモリ６に格納する構成が必要であるとともに、コンフィグレーションデータと、コマンド進捗情報との不揮発メモリ６への更新を不可分にする構成が必要であった。これに対して、第３実施形態では、不揮発メモリ６のユーザデータにおいて、旧データを更新せずにそのままとし、回路ＳＲＡＭ４１へコンフィグレーションデータを格納する際に、差分コマンドと、旧データとに基づいて新データを生成するようにしているので、電源遮断後における対応としては、差分コマンドが不揮発メモリ６に正しく格納されているか否かを判定し、正しく格納されていない場合に差分コマンドを不揮発メモリ６に正しく格納させるようにすればよい。
【０１００】
また、不揮発メモリ６から回路ＳＲＡＭ４１にコンフィグレーションデータを転送中に電源遮断が発生したかどうかを診断部７４がチェックする。セキュアブートの際は、診断部７４は、末尾のベンダデータが回路ＳＲＡＭ４１に正しく格納されたかどうかをチェックし、通常ブートの際は、末尾の差分コマンドが変換され、回路ＳＲＡＭ４１に格納されたかどうかをチェックする。電源投入後、診断部７４は回路ＳＲＡＭ４１への転送途中で電源遮断が発生したことを判断すると、判定部７２に再度、ブートするように指示する。指示を受けた判定部７２は、コンフィグレーションデータの回路ＳＲＡＭ４１への転送を始めから行い、データ変換部７８を制御する。
【０１０１】
第３実施形態では、例えば、ＯＴＡにより差分コマンドを複数回受信した場合、すなわち、複数回のユーザデータの更新が発生した場合には、不揮発メモリ６には、各回の差分コマンドが蓄積されて格納されることとなる。このように不揮発メモリ６に複数回の差分コマンドが格納されている場合には、ＦＰＧＡ３の起動時において、データ変換部７８は、各回の差分コマンドのすべてを実行して最新のユーザデータを生成することとなる。このため、差分コマンドの数が多くなりすぎると、ＦＰＧＡ３の起動時間が長期化してしまう問題がある。
【０１０２】
そこで、本実施形態では、更新前のユーザデータと、その後の複数回の差分コマンドとに基づいて、複数回の更新が反映された最新のユーザデータを生成する差分コマンド反映処理を行うようにしている。
【０１０３】
図１２は、第３実施形態に係る差分コマンド反映処理を説明する図である。
【０１０４】
差分コマンド反映処理は、例えば、所定時間ごと、差分コマンドの数が所定数以上となった場合、複数の差分コマンドの容量が所定量を超えた場合等に実行される。この差分コマンド反映処理は、ＥＣＵ１への電源供給が確実に確保されている条件下（例えば、車両１００が車両のディーラーにおいて電源が確保されている状態とされている場合、ドライバーがイグニッションスイッチをオンで維持するようにしている場合等）で実行されることを想定している。
【０１０５】
図１２の左図に示すように、不揮発メモリ６において、複数回の更新に対応する差分コマンド（差分コマンド１、２、３、４、・・）が格納された場合において、データ集約部９１は、ユーザデータ（旧データ）と、その直後の更新における差分コマンドとに基づいて、新たなユーザデータを生成し、その後は、生成したユーザデータと、その次の順番の更新における差分コマンドとに基づいて、新たなユーザデータを生成していくことにより、各回の更新に対応する差分コマンドを用いてユーザデータを更新する処理を繰り返し行って、最新のユーザデータを生成し、図１２の右図に示すよう不揮発メモリ６に、最新のユーザデータを格納し、さらに、不揮発メモリ６から更新に利用した差分コマンドを削除する。
【０１０６】
この差分コマンド反映処理を実行すると、以降のＦＰＧＡ３の起動時には、新たな差分コマンドを受信していなければ、差分コマンドを用いての更新処理を実行する必要がないので、起動を高速化することができる。また、それまでに格納されていた差分コマンドを不揮発メモリ６から削除することができるので、以降の差分コマンドを格納する領域を適切に確保することができるようになるとともに、不揮発メモリ６に要求される容量を低減することができる。
【０１０７】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【０１０８】
例えば、上記実施形態では、差分コマンドをＯＴＡで受信する例を示していたが、本発明はこれに限られず、差分コマンドを、有線回線を介して受信するようにしてもよい。また、差分データを車両制御システム１０に接続可能な記憶媒体（ＤＶＤ、ＣＤ、フラッシュメモリ等）に格納させておき、その記憶媒体から受信するようにしてもよい。
【０１０９】
また、上記実施形態では、コンフィグレーションデータにおけるユーザデータのみを差分コマンドで更新する例を示していたが、本発明はこれに限られず、ベンダデータを差分コマンドで更新するようにしてもよい。
【０１１０】
また、上記実施形態では、車両に搭載されている電子制御システムを例に示していたが、本発明はこれに限られず、例えば、車両に搭載されていない電子制御システムに対しても本発明を適用することができる。
【符号の説明】
【０１１１】
１…ＥＣＵ、２…ＣＰＵ、３…ＦＰＧＡ、４…データ変換装置、５…ＤＲＡＭ、６…不揮発メモリ、１０…車両制御システム、１６…データセンタ、４０…再構成可能回路部、４１…回路ＳＲＡＭ、１００…車両、１０００…車両管理システム
【図１】
2019016026.tif 000003
【図２】
2019016026.tif 000004
【図３】
2019016026.tif 000005
【図４】
2019016026.tif 000006
【図５】
2019016026.tif 000007
【図６】
2019016026.tif 000008
【図７】
2019016026.tif 000009
【図８】
2019016026.tif 000010
【図９】
2019016026.tif 000011
【図１０】
2019016026.tif 000012
【図１１】
2019016026.tif 000013
【図１２】
2019016026.tif 000014