(57)【要約】      （修正有）【課題】起動時のセキュアブート処理の処理時間を短縮することができる、制御装置を提供する。【解決手段】モータ制御装置１００は、モータ１１０の制御処理を行う制御部１０１と、第１の記憶領域および第２の記憶領域を含む記憶部１０２と、各記憶領域のデータから期待値をそれぞれ生成する期待値生成部１０３と、第１の状態情報を取得して記憶する状態情報取得部１０４と、新たに取得した第２の状態情報と、第１の状態情報との比較に基づいて、各記憶領域の中から１つの記憶領域を選択し、選択された記憶領域のデータから検証値を生成する検証値生成部１０５と、検証値と期待値との比較に基づいて、選択された記憶領域のデータの完全性を検証する判定部１０６とを備える。【選択図】図１
2020187504.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の制御処理を行う制御部と、
複数の記憶領域を含む記憶部と、
前記記憶部の前記複数の記憶領域のデータから複数の期待値をそれぞれ生成する、期待値生成部と、
制御装置の起動に伴って変化する可能性のある第１の状態情報を取得する、状態情報取得部と、
新たに取得した第２の状態情報と、前記状態情報取得部によって取得された前記第１の状態情報との比較に基づいて、前記記憶部の前記複数の記憶領域の中から１つの記憶領域を選択し、選択された前記記憶領域のデータから検証値を生成する、検証値生成部と、
前記検証値生成部によって生成された前記検証値と、該検証値の生成に用いられた記憶領域のデータから生成されて前記期待値生成部によって生成された前記期待値との比較に基づいて、前記記憶領域のデータの完全性を検証し、前記制御部による前記制御処理を開始させるか否かを判定する、判定部と
を備える、制御装置。
【請求項２】
前記記憶部は、前記複数の記憶領域として、第１の記憶領域と、該第１の記憶領域を包含する第２の記憶領域とを含み、
前記検証値生成部は、前記第２の状態情報と前記第１の状態情報との差分を計算し、該差分が予め決定された範囲内にある場合には、前記第１の記憶領域のデータから前記検証値を生成し、前記差分が前記予め決定された範囲内にない場合には、前記第２の記憶領域のデータから前記検証値を生成する、請求項１に記載の制御装置。
【請求項３】
前記状態情報取得部は、前記制御部による前記制御処理の開始後、予め決定された時間間隔で、前記第１の状態情報を取得する、請求項１または２に記載の制御装置。
【請求項４】
前記状態情報取得部は、前記制御部による前記制御処理の開始後、予め決定された事象が発生するたびに、前記第１の状態情報を取得する、請求項１または２に記載の制御装置。
【請求項５】
前記第１の状態情報および前記第２の状態情報は、前記制御装置の内部から前記状態情報取得部によって取得される、請求項１〜４のいずれか一項に記載の制御装置。
【請求項６】
前記第１の状態情報および前記第２の状態情報は、前記制御装置に接続されている外部機器から前記状態情報取得部によって取得される、請求項１〜４のいずれか一項に記載の制御装置。
【請求項７】
前記外部機器との間で有線通信および無線通信のいずれか一方によってデータの送受信を行う送受信部をさらに備え、
前記第１の状態情報および前記第２の状態情報は、前記外部機器から前記送受信部を介して前記状態情報取得部によって取得される、請求項６に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動時にデータの完全性（Ｉｎｔｅｇｒｉｔｙ）を検証する制御装置に関する。
【背景技術】
【０００２】
制御装置内のデータが不正に書き換えられることへの対策として、セキュアブート処理が知られている。セキュアブート処理では、制御装置内のデータから事前に作成した期待値と、制御装置の起動時にその時点のデータから新たに作成した検証値とを比較することによって、データの完全性を検証する。
【０００３】
制御装置の起動時間の制約が厳しい場合には、セキュアブート処理の処理時間も、制御装置の起動時間の制約内に収めなければならない。そのため、セキュアブート処理の処理時間を短縮する技術が求められている。
【０００４】
特許文献１には、検証を要するアプリケーションのリストを定義し、アプリケーションの実行要求が発生するたびに、検証の要否をリストに基づいて判定し、検証を要するアプリケーションである場合にのみ、期待値と検証値とを比較する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−３３２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、通常、制御装置の起動時には多数のアプリケーションの実行要求が発生する。そのため、特許文献１の技術では、それらに対応した多数の検証処理を行わなければならず、起動時間を短縮することができない。
【０００７】
本発明は、上記のような課題を解決するためのものであり、起動時のセキュアブート処理の処理時間を短縮することができる、制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明に係る制御装置は、制御対象の制御処理を行う制御部と、複数の記憶領域を含む記憶部と、記憶部の複数の記憶領域のデータから複数の期待値をそれぞれ生成する、期待値生成部と、制御装置の起動に伴って変化する可能性のある第１の状態情報を取得する、状態情報取得部と、新たに取得した第２の状態情報と、状態情報取得部によって取得された第１の状態情報との比較に基づいて、記憶部の複数の記憶領域の中から１つの記憶領域を選択し、選択された記憶領域のデータから検証値を生成する、検証値生成部と、検証値生成部によって生成された検証値と、当該検証値の生成に用いられた記憶領域のデータから生成されて期待値生成部によって生成された期待値との比較に基づいて、記憶領域のデータの完全性を検証し、制御部による制御処理を開始させるか否かを判定する、判定部とを備える。
【発明の効果】
【０００９】
本発明に係る制御装置によれば、起動時のセキュアブート処理の処理時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係る制御装置の構成を示す図である。
【図２】図１の制御装置の記憶部の構成を示す図である。
【図３】図１の制御装置の起動時、制御処理の開始後に行われる処理を説明するフローチャートである。
【図４】図１の制御装置の起動時、制御処理の開始前に行われる処理を説明するフローチャートである。
【図５】本発明の実施の形態２に係る制御装置の構成を示す図である。
【図６】図５の制御装置の記憶部の構成を示す図である。
【図７】図５の制御装置の起動時、制御処理の開始後に行われる処理を説明するフローチャートである。
【図８】図５の制御装置の起動時、制御処理の開始前に行われる処理を説明するフローチャートである。
【図９】本発明の実施の形態１および２に係る制御装置の各機能を専用のハードウェアである処理回路で実現する場合を示した構成図である。
【図１０】本発明の実施の形態１および２に係る制御装置の各機能をプロセッサおよびメモリを備えた処理回路より実現する場合を示した構成図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本願が開示する制御装置の実施の形態について、詳細に説明する。ただし、以下に示す実施の形態は一例であり、これらの実施の形態によって、本願発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本発明の実施の形態１に係る制御装置の構成の一例を示す図である。図１の制御装置は、車載制御システムの一部として構成されており、モータの制御を行う。
【００１３】
図１において、モータ制御装置１００は、制御対象であるモータ１１０に接続されている。モータ制御装置１００は、制御部１０１と、記憶部１０２と、期待値生成部１０３と、状態情報取得部１０４と、検証値生成部１０５と、判定部１０６と、書き換え処理部１０７と、起動モード判定部１０８とを備えている。また、モータ制御装置１００の内部には、カウンタ１０９が搭載されている。カウンタ１０９は、モータ制御装置１００が起動するたびに、自身のカウント値を＋１加算する。
【００１４】
制御部１０１は、制御対象であるモータ１１０の制御処理を行う。より詳細には、制御部１０１は、モータ１１０の制御に係る制御量および処理値の演算を行う。
【００１５】
記憶部１０２は、フラッシュメモリ等の書き換え可能なメモリデバイスによって構成されている。記憶部１０２は、制御部１０１の制御処理に用いられるプログラムおよびデータを記憶する。なお、これ以降、本願の明細書では、記憶部１０２に記憶されるプログラムおよびデータをまとめて、「データ」と呼ぶことにする。
【００１６】
図２に示されるように、記憶部１０２は、複数の記憶領域を含んでいる。この例では、複数の記憶領域は、第１の記憶領域１０２ａおよび第２の記憶領域１０２ｂである。ここで、第２の記憶領域１０２ｂは、第１の記憶領域を包含している。また、第１の記憶領域１０２ａには、第２の記憶領域１０２ｂよりも重要度の高いデータが記憶されている。
【００１７】
なお、第１の記憶領域１０２ａに記憶される重要度の高いデータとは、当該データが不正に書き換えられた場合に、モータ１１０の制御処理の安全性が確保できないようなデータである。これに対して、第２の記憶領域１０２ｂに記憶されるデータは、当該データが不正に書き換えられた場合でも、モータ１１０の制御処理の安全性が確保できるようなデータである。
【００１８】
なお、第１の記憶領域１０２ａと第２の記憶領域１０２ｂとは、別個のメモリデバイスによって構成されることが好ましい。ただし、単一のメモリデバイス上に第１の記憶領域１０２ａと第２の記憶領域１０２ｂとが含まれていてもよい。
【００１９】
図１に戻って、期待値生成部１０３は、第１の記憶領域１０２ａのデータから第１の期待値を生成して、自身の内部メモリに予め記憶する。また、期待値生成部１０３は、第２の記憶領域１０２ｂのデータから第２の期待値を生成して、自身の内部メモリに予め記憶する。
【００２０】
状態情報取得部１０４は、モータ制御装置１００の起動時、制御部１０１による制御処理の開始後に、カウンタ１０９のカウント値を第１の状態情報として取得して、自身の内部メモリに記憶する。先述したように、カウンタ１０９は、モータ制御装置１００が起動するたびに、自身のカウント値を＋１加算する。
【００２１】
検証値生成部１０５は、モータ制御装置１００の起動時、制御部１０１による制御処理の開始前に、カウンタ１０９のカウント値を第２の状態情報として新たに取得する。
【００２２】
検証値生成部１０５は、新たに取得した第２の状態情報と、状態情報取得部１０４に記憶されている第１の状態情報との比較に基づいて、記憶部１０２の第１の記憶領域１０２ａおよび第２の記憶領域１０２ｂのいずれかを選択する。
【００２３】
検証値生成部１０５は、第１の記憶領域１０２ａが選択された場合には、第１の記憶領域１０２ａのデータから第１の検証値を生成する。また、検証値生成部１０５は、第２の記憶領域１０２ｂが選択された場合には、第２の記憶領域１０２ｂのデータから第２の検証値を生成する。
【００２４】
判定部１０６は、検証値生成部１０５によって生成された検証値と、当該検証値の生成に用いられた記憶領域のデータから生成されて期待値生成部１０３に予め記憶されている期待値との比較に基づいて、当該記憶領域のデータの完全性を検証する。
【００２５】
判定部１０６は、上記の記憶領域のデータの完全性が保証され、データの不正な書き換えが行われていないと判断された場合には、制御部１０１によるモータ１１０の制御処理を開始させる。また、判定部１０６は、上記の記憶領域のデータの完全性が保証されず、データの不正な書き換えが行われていると判断された場合には、制御部１０１によるモータ１１０の制御処理を開始させない。
【００２６】
書き換え処理部１０７は、記憶部１０２に記憶されるデータの書き換え処理を行う。
【００２７】
起動モード判定部１０８は、モータ制御装置１００の起動モードの判定を行う。起動モードには、モータ１１０の制御を行う「制御モード」と、記憶部１０２のデータおよび期待値生成部１０３の期待値を書き換える「書き換えモード」とがある。
【００２８】
次に、本実施の形態１に係るモータ制御装置１００の起動時の処理について、図３および図４のフローチャートを参照して説明する。なお、図３の処理は、モータ制御装置１００の起動時、制御部１０１による制御処理の開始後に行われる処理である。また、図４の処理は、モータ制御装置１００の起動時、制御部１０１による制御処理の開始前に行われる処理である。
【００２９】
まず、モータ制御装置１００の起動時、制御部１０１による制御処理の開始後に行われる処理について、図３を参照して説明する。
【００３０】
図３のステップＳ３０１において、状態情報取得部１０４は、カウンタ１０９のカウント値を第１の状態情報として取得して、自身の内部メモリに記憶する。
【００３１】
ステップＳ３０２において、状態情報取得部１０４は、予め決定された時間が経過するまで待機する。予め決定された時間が経過すると、処理フローはステップＳ３０１に戻る。
【００３２】
以上の処理によって、制御部１０１による制御処理の開始後、状態情報取得部１０４は、予め決定された時間間隔で、カウンタ１０９のカウント値を第１の状態情報として繰り返し取得して、自身の内部メモリに記憶することになる。
【００３３】
次に、モータ制御装置１００の起動時、制御部１０１による制御処理の開始前に行われる処理について、図４を参照して説明する。
【００３４】
図４のステップ４０１において、カウンタ１０９は、自身のカウント値を更新する。詳細には、カウンタ１０９は、自身のカウント値を＋１加算する。
【００３５】
ステップＳ４０２において、起動モード判定部１０８は、モータ制御装置１００の起動モードの判定を行う。起動モードが、モータ１１０の制御を行う「制御モード」である場合には、処理フローはステップＳ４０３に進む。一方、起動モードが記憶部１０２のデータおよび期待値生成部１０３の期待値を書き換える「書き換えモード」である場合には、処理フローはステップＳ４１１に進む。
【００３６】
ステップＳ４０３において、検証値生成部１０５は、カウンタ１０９のカウント値を第２の状態情報として新たに取得して、自身の内部メモリに記憶する。
【００３７】
ステップＳ４０４において、検証値生成部１０５は、ステップＳ４０３で新たに取得された第２の状態情報と、状態情報取得部１０４に記憶されている第１の状態情報との比較に基づいて、第１の記憶領域１０２ａおよび第２の記憶領域１０２ｂのいずれかを選択する。
【００３８】
詳細には、検証値生成部１０５は、第２の状態情報であるカウント値と、第１の状態情報であるカウント値との差分を計算し、当該差分が予め決定された範囲内にあるか否かを判定する。本実施の形態１では、予め決定された範囲は＋１以下の範囲である。
【００３９】
カウント値の差分が＋１以下の範囲内にある場合には、検証値生成部１０５は、第１の記憶領域１０２ａを選択する。この場合、処理フローはステップＳ４０５に進む。ここで、ステップＳ４０５とそれに続くステップＳ４０６の処理は、本実施の形態１における第１のセキュアブート処理である。
【００４０】
一方、カウント値の差分が＋１以下の範囲内にない場合には、検証値生成部１０５は、第２の記憶領域１０２ｂを選択する。この場合、処理フローはステップＳ４０７に進む。ここで、ステップＳ４０７とそれに続くステップＳ４０８の処理は、本実施の形態１における第２のセキュアブート処理である。
【００４１】
ステップＳ４０５において、検証値生成部１０５は、第１の記憶領域１０２ａに記憶されているデータに基づいて、第１の検証値を生成する。
【００４２】
ステップＳ４０６において、判定部１０６は、検証値生成部１０５によって生成された第１の検証値と、期待値生成部１０３に予め記憶されている第１の期待値とを比較する。
【００４３】
すなわち、第１のセキュアブート処理では、第１の記憶領域１０２ａのデータに基づいて第１の検証値が生成され、当該第１の検証値と、同じく第１の記憶領域１０２ａのデータから生成された第１の期待値との比較が行われる。
【００４４】
一方、ステップＳ４０７において、検証値生成部１０５は、第２の記憶領域１０２ｂに記憶されているデータに基づいて、第２の検証値を生成する。
【００４５】
ステップＳ４０８において、判定部１０６は、検証値生成部１０５によって生成された第２の検証値と、期待値生成部１０３に予め記憶されている第２の期待値とを比較する。
【００４６】
すなわち、第２のセキュアブート処理では、第２の記憶領域１０２ｂのデータに基づいて第２の検証値が生成され、当該第２の検証値と、同じく第２の記憶領域１０２ｂのデータから生成された第２の期待値との比較が行われる。
【００４７】
上記のステップＳ４０５およびＳ４０６による第１のセキュアブート処理が行われた場合には、ステップＳ４０９において、判定部１０６は、ステップＳ４０６における検証値と期待値との比較結果が正常であるか否か、すなわち両者が一致しているか否かを判定する。
【００４８】
また、上記のステップＳ４０７およびＳ４０８による第２のセキュアブート処理が行われた場合には、ステップＳ４０９において、判定部１０６は、ステップＳ４０８における検証値と期待値との比較結果が正常であるか否か、すなわち両者が一致しているか否かを判定する。
【００４９】
上記の比較結果が正常である場合、すなわち検証値と期待値とが一致している場合には、記憶領域のデータの完全性が保証される。この場合、処理フローはステップＳ４１０に進み、制御部１０１による制御処理が開始される。
【００５０】
一方、上記の比較結果が異常である場合、すなわち検証値と期待値とが一致していない場合には、記憶領域のデータの完全性が保証されない。この場合、処理フローはステップＳ４１０に進まず、制御部１０１による制御処理は開始されない。
【００５１】
上記の図４の処理では、前回のモータ制御装置１００の起動時、制御部１０１による制御処理の開始後に状態情報取得部１０４によって取得された第１の状態情報と、今回のモータ制御装置１００の起動時、制御部１０１による制御処理の開始前に新たに取得された第２の状態情報との差分が、予め決定された範囲内にある場合には、ステップＳ４０５およびＳ４０６の第１のセキュアブート処理が行われる。この第１のセキュアブート処理では、第１の記憶領域１０２ａのデータの完全性が判定される。
【００５２】
これに対して、前回のモータ制御装置１００の起動時、制御部１０１による制御処理の開始後に状態情報取得部１０４によって取得された第１の状態情報と、今回のモータ制御装置１００の起動時、制御部１０１による制御処理の開始前に新たに取得された第２の状態情報との差分が、予め決定された範囲内にない場合には、ステップＳ４０７およびＳ４０８の第２のセキュアブート処理が行われる。この第２のセキュアブート処理では、第２の記憶領域１０２ｂのデータの完全性が判定される。
【００５３】
先述したように、第２の記憶領域１０２ｂは、第１の記憶領域１０２ａを包含している。また、第１の記憶領域１０２ａのデータの重要度は、第２の記憶領域１０２ｂのデータの重要度よりも高い。
【００５４】
したがって、第１のセキュアブート処理は、第２のセキュアブート処理と比べて扱うデータ量が少ないため、第２のセキュアブート処理よりも高速である。
【００５５】
なお、ステップＳ４１１においては、書き換え処理部１０７によって、記憶部１０２に記憶されているデータの書き換え処理が行われる。この際、期待値生成部１０３は、第１の記憶領域１０２ａのデータに基づいて第１の期待値を生成し、自身の内部メモリに記憶する。また、期待値生成部１０３は、第２の記憶領域１０２ｂのデータに基づいて第２の期待値を生成し、同じく自身の内部メモリに記憶する。
【００５６】
以上説明したように、本実施の形態１において、モータ制御装置１００は、自身の起動時、制御部１０１による制御処理の開始後に、図３のフローチャートに従って、第１の状態情報であるカウント値を予め決定された時間間隔で繰り返し取得して記憶する。
【００５７】
また、次回の起動時、モータ制御装置１００は、制御部１０１による制御処理の開始前に、図４のフローチャートに従って、前回の起動時に取得して記憶した第１の状態情報であるカウント値と、今回の起動時に新たに取得した第２の状態情報であるカウント値との差分を計算する。
【００５８】
上記の差分が予め決定された範囲内にある場合には、モータ制御装置１００は、前回の起動から今回の起動までの間に、意図しない起動による記憶部１０２のデータの不正な書き換えが行われた可能性は低いと判断する。この場合、モータ制御装置１００は、第１の記憶領域１０２ａの完全性のみを検証する高速の第１のセキュアブート処理を行う。
【００５９】
これに対して、上記の差分が予め決定された範囲内にない場合には、モータ制御装置１００は、前回の起動から今回の起動までの間に、意図しない起動による記憶部１０２のデータの不正な書き換えが行われた可能性が高いと判断する。この場合、モータ制御装置１００は、第１の記憶領域１０２ａを包含する第２の記憶領域１０２ｂの完全性を検証する低速の第２のセキュアブート処理を行う。
【００６０】
上記の特徴により、本実施の形態１に係るモータ制御装置１００では、起動時のセキュアブート処理の処理時間を短縮することができる。
【００６１】
また、図３のフローチャートに示されるように、モータ制御装置１００は、制御部１０１による制御処理の開始後は、予め決定された時間間隔で、第１の状態情報を取得して記憶する。そのため、例えばモータ制御装置１００の停止時にのみ状態情報を取得して記憶する場合に比べて、電源が突然遮断された場合等、モータ制御装置１００が正常な終了シーケンスを通らずに終了した場合でも、次回起動時に、セキュアブート処理による検証を行うことができる。
【００６２】
また、本実施の形態１では、状態情報としてカウンタ１０９のカウント値を用いる例を示したが、状態情報はこれに限定されるものではない。状態情報は、モータ制御装置１００の起動に伴って変化する可能性のある情報であればよい。例えば、モータ制御装置１００に接続されている電圧センサから取得される電池の電圧値等のアナログ値を、状態情報として用いてもよい。
【００６３】
その場合には、図３のステップＳ３０２の時間を比較的短く設定すると共に、図４のステップＳ４０４で用いる検証時の範囲を適切に定めることによって、前回の起動から今回の起動までの経過時間を調べ、短時間での再起動であるか否かを判定することができる。したがって、短時間での再起動である場合には、高速のセキュアブート処理を行うことによって、安全かつ高速にモータ制御装置１００を起動することができる。
【００６４】
また、図３のステップＳ３０１において、状態情報取得部１０４の内部メモリに第１の状態情報を記憶する際に、第１の状態情報を暗号化するようにしてもよい。その場合、図４のステップＳ４０６およびＳ４０８において、状態情報取得部１０４の内部メモリから第１の状態情報を読み出す際に、暗号化された第１の状態情報を復号する。このように、第１の状態情報を暗号化することによって、第１の状態情報そのものを不正に書き換えられる可能性が低下するため、安全性がさらに向上する。
【００６５】
また、本実施の形態１では、記憶部１０２に、第１の記憶領域１０２ａおよび第２の記憶領域１０２ｂの２つの記憶領域が含まれる場合を説明したが、記憶領域の数はこれに限定されるものではなく、３つ以上であってもよい。その場合、記憶領域の数にあわせて、状態情報および期待値の数も決定される。
【００６６】
実施の形態２．
図５は、本発明の実施の形態２に係る制御装置の構成の一例を示す図である。実施の形態１と同様に、図５の制御装置は、車載制御システムの一部として構成されており、モータの制御を行う。なお、実施の形態１と同一または同様の構成要素については、同一の参照符号を付して、詳細な説明は省略する。
【００６７】
図５において、モータ制御装置２００は、制御対象であるモータ１１０に接続されている。また、モータ制御装置２００は、有線のＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ネットワーク５２０を介して、車両ドア５１０の開閉を制御する外部機器としてのドア制御装置５００と通信可能に接続されている。
【００６８】
モータ制御装置２００は、制御部１０１と、記憶部２０２と、期待値生成部２０３と、状態情報取得部２０４と、検証値生成部２０５と、判定部２０６と、書き換え処理部１０７と、起動モード判定部１０８とを備えている。また、モータ制御装置２００は、送受信部２０９を備えている。送受信部２０９は、ドア制御装置５００との間でＣＡＮネットワーク５２０を介したデータの送受信を行う。
【００６９】
制御部１０１は、制御対象であるモータ１１０の制御処理を行う。
【００７０】
記憶部２０２は、フラッシュメモリ等の書き換え可能なメモリデバイスによって構成されている。
【００７１】
図６に示されるように、記憶部２０２には、第１の記憶領域２０２ａと、第２の記憶領域２０２ｂと、第３の記憶領域２０２ｃとが含まれている。ここで、第２の記憶領域２０２ｂは、第１の記憶領域２０２ａを包含している。また、第３の記憶領域２０２ｃは、第１の記憶領域２０２ａおよび第２の記憶領域２０２ｂを包含している。
【００７２】
第１の記憶領域２０２ａ、第２の記憶領域２０２ｂおよび第３の記憶領域２０２ｃの順に、重要度の高いデータが記憶されている。なお、各記憶領域は、別個のメモリデバイスによって構成されることが好ましい。ただし、単一のメモリデバイス上に各記憶領域が含まれていてもよい。
【００７３】
図５に戻って、期待値生成部２０３は、第１の記憶領域２０２ａのデータから第１の期待値を生成して、自身の内部メモリに予め記憶する。また、期待値生成部２０３は、第２の記憶領域２０２ｂのデータから第２の期待値を生成して、自身の内部メモリに予め記憶する。また、期待値生成部２０３は、第３の記憶領域２０２ｃのデータから第３の期待値を生成して、自身の内部メモリに予め記憶する。
【００７４】
状態情報取得部２０４は、モータ制御装置２００の起動時、制御部１０１による制御処理の開始後に、送受信部２０９およびＣＡＮネットワーク５２０介して、ドア制御装置５００から車両ドア５１０の開閉回数を第１の状態情報として取得して、自身の内部メモリに記憶する。
【００７５】
検証値生成部２０５は、モータ制御装置２００の起動時、制御部１０１による制御処理の開始前に、送受信部２０９およびＣＡＮネットワーク５２０を介して、ドア制御装置５００から車両ドア５１０の開閉回数を第２の状態情報として新たに取得する。
【００７６】
検証値生成部２０５は、新たに取得した第２の状態情報と、状態情報取得部２０４に記憶されている第１の状態情報との比較に基づいて、記憶部２０２の第１の記憶領域２０２ａ、第２の記憶領域２０２ｂおよび第３の記憶領域２０２ｃのいずれかを選択する。
【００７７】
検証値生成部２０５は、第１の記憶領域２０２ａが選択された場合には、第１の記憶領域２０２ａのデータから第１の検証値を生成する。また、検証値生成部２０５は、第２の記憶領域２０２ｂが選択された場合には、第２の記憶領域２０２ｂのデータから第２の検証値を生成する。また、検証値生成部２０５は、第３の記憶領域２０２ｃが選択された場合には、第３の記憶領域２０２ｃのデータから第３の検証値を生成する。
【００７８】
判定部２０６は、検証値生成部２０５によって生成された検証値と、当該検証値の生成に用いられた記憶領域のデータから生成されて期待値生成部２０３に予め記憶されている期待値との比較に基づいて、当該記憶領域のデータの完全性を検証する。
【００７９】
判定部２０６は、上記の記憶領域のデータの完全性が保証され、データの不正な書き換えが行われていないと判断された場合には、制御部１０１によるモータ１１０の制御処理を開始させる。また、判定部２０６は、上記の記憶領域のデータの完全性が保証されず、データの不正な書き換えが行われていると判断された場合には、制御部１０１によるモータ１１０の制御処理を開始させない。
【００８０】
書き換え処理部１０７は、記憶部１０２に記憶されるデータの書き換え処理を行う。
【００８１】
起動モード判定部１０８は、モータ制御装置１００の起動モードの判定を行う。
【００８２】
また、ドア制御装置５００は、制御部５０１と、記憶部５０２と、送受信部５０３とを備えている。
【００８３】
制御部５０１は、制御対象である車両ドア５１０の開閉の制御処理を行う。
【００８４】
記憶部５０２は、車両ドア５１０の開閉回数を記憶している。
【００８５】
送受信部５０３は、モータ制御装置２００との間でＣＡＮネットワーク５２０を介したデータの送受信を行う。
【００８６】
次に、本実施の形態２に係るモータ制御装置２００の起動時の処理について、図７および図８のフローチャートを参照して説明する。なお、図７の処理は、モータ制御装置２００の起動時、制御部１０１による制御処理の開始後に行われる処理である。また、図８の処理は、モータ制御装置２００の起動時、制御部１０１による制御処理の開始前に行われる処理である。
【００８７】
まず、モータ制御装置２００の起動時、制御部１０１による制御処理の開始後に行われる処理について、図７を参照して説明する。
【００８８】
図７のステップＳ７０１において、状態情報取得部２０４は、送受信部２０９を介して、ドア制御装置５００に対して、車両ドア５１０の開閉回数の送信を依頼する。
【００８９】
ステップＳ７０２において、状態情報取得部２０４は、ドア制御装置５００から、送受信部２０９を介して、車両ドア５１０の開閉回数が受信されるまで待機する。
【００９０】
ステップＳ７０３において、状態情報取得部２０４は、ステップＳ７０２で受信された車両ドア５１０の開閉回数を、第１の状態情報として自身の内部メモリに記憶する。
【００９１】
ステップＳ７０４において、状態情報取得部２０４は、予め決定された事象が発生するまで待機する。ここで、予め決定された事象としては、例えば、ドア制御装置５００からの特定メッセージの受信とすることができる。予め決定された事象が発生すると、処理フローはステップＳ７０１に戻る。
【００９２】
以上の処理によって、制御部１０１による制御処理の開始後、状態情報取得部２０４は、予め決定された事象が発生するたびに、車両ドア５１０の開閉回数を第１の状態情報として繰り返し取得して、自身の内部メモリに記憶することになる。
【００９３】
次に、モータ制御装置２００の起動時、制御部１０１による制御処理の開始前に行われる処理について、図８を参照して説明する。
【００９４】
図８のステップＳ８０１において、起動モード判定部１０８によって、モータ制御装置２００の起動モードの判定が行われる。起動モードが、モータ１１０の制御を行う「制御モード」である場合には、処理フローはステップＳ８０２に進む。一方、起動モードが記憶部２０２のデータおよび期待値生成部２０３の期待値を書き換える「書き換えモード」である場合には、処理フローはステップＳ８１４に進む。
【００９５】
ステップＳ８０２において、検証値生成部２０５は、送受信部２０９を介して、ドア制御装置５００に対して、車両ドア５１０の開閉回数の送信を依頼する。
【００９６】
ステップＳ８０３において、検証値生成部２０５は、ドア制御装置５００から、送受信部２０９を介して、車両ドア５１０の開閉回数が受信されるまで待機する。
【００９７】
ステップＳ８０４において、検証値生成部２０５は、ステップＳ８０３で受信された車両ドア５１０の開閉回数を、第２の状態情報として自身の内部メモリに記憶する。
【００９８】
ステップＳ８０５において、検証値生成部２０５は、ステップＳ８０４で新たに取得された第２の状態情報と、状態情報取得部２０４に記憶されている第１の状態情報との比較に基づいて、第１の記憶領域２０２ａ、第２の記憶領域２０２ｂおよび第３の記憶領域２０２ｃのいずれかを選択する。
【００９９】
詳細には、検証値生成部２０５は、第２の状態情報である開閉回数と、第１の状態情報である開閉回数との差分を計算し、当該差分に基づいて、第１の記憶領域２０２ａ、第２の記憶領域２０２ｂおよび第３の記憶領域２０２ｃのいずれかを選択する。
【０１００】
本実施の形態２では、上記の差分が１未満の範囲内にある場合には、検証値生成部２０５は、第１の記憶領域２０２ａを選択する。この場合、処理フローはステップＳ８０６に進む。ここで、ステップＳ８０６とそれに続くステップＳ８０７は、本実施の形態２における第１のセキュアブート処理である。
【０１０１】
また、上記の差分が１以上かつ２未満の範囲内にある場合には、検証値生成部２０５は、第２の記憶領域２０２ｂを選択する。この場合、処理フローはステップＳ８０８に進む。ここで、ステップＳ８０８とそれに続くステップＳ８０９は、本実施の形態２における第２のセキュアブート処理である。
【０１０２】
また、上記の差分が２以上の範囲内にある場合には、検証値生成部２０５は、第３の記憶領域２０２ｃを選択する。この場合、処理フローはステップＳ８１０に進む。ここで、ステップＳ８１０とそれに続くステップＳ８１１は、本実施の形態２における第３のセキュアブート処理である。
【０１０３】
ステップＳ８０６において、検証値生成部２０５は、第１の記憶領域２０２ａに記憶されているデータに基づいて、第１の検証値を生成する。
【０１０４】
ステップＳ８０７において、判定部２０６は、検証値生成部２０５によって生成された第１の検証値と、期待値生成部２０３に予め記憶されている第１の期待値とを比較する。
【０１０５】
すなわち、第１のセキュアブート処理では、第１の記憶領域２０２ａのデータに基づいて第１の検証値が生成され、当該第１の検証値と、同じく第１の記憶領域２０２ａのデータから生成された第１の期待値との比較が行われる。
【０１０６】
また、ステップＳ８０８において、検証値生成部２０５は、第２の記憶領域２０２ｂに記憶されているデータに基づいて、第２の検証値を生成する。
【０１０７】
ステップＳ８０９において、判定部２０６は、検証値生成部２０５によって生成された第２の検証値と、期待値生成部２０３に予め記憶されている第２の期待値とを比較する。
【０１０８】
すなわち、第２のセキュアブート処理では、第２の記憶領域２０２ｂのデータに基づいて第２の検証値が生成され、当該第２の検証値と、同じく第２の記憶領域２０２ｂのデータから生成された第２の期待値との比較が行われる。
【０１０９】
また、ステップＳ８１０において、検証値生成部２０５は、第３の記憶領域２０２ｃに記憶されているデータに基づいて、第３の検証値を生成する。
【０１１０】
ステップＳ８１１において、判定部２０６は、検証値生成部２０５によって生成された第３の検証値と、期待値生成部２０３に予め記憶されている第３の期待値とを比較する。
【０１１１】
すなわち、第３のセキュアブート処理では、第３の記憶領域２０２ｃのデータに基づいて第３の検証値が生成され、当該第３の検証値と、同じく第３の記憶領域２０２ｃのデータから生成された第３の期待値との比較が行われる。
【０１１２】
上記のステップＳ８０６およびＳ８０７による第１のセキュアブート処理が行われた場合には、ステップＳ８１２において、判定部２０６は、ステップＳ８０７における検証値と期待値との比較結果が正常であるか否か、すなわち両者が一致しているか否かを判定する。
【０１１３】
また、上記のステップＳ８０８およびＳ８０９による第２のセキュアブート処理が行われた場合には、ステップＳ８１２において、判定部２０６は、ステップＳ８０９における検証値と期待値との比較結果が正常であるか否か、すなわち両者が一致しているか否かを判定する。
【０１１４】
また、上記のステップＳ８１０およびＳ８１１による第３のセキュアブート処理が行われた場合には、ステップＳ８１２において、判定部２０６は、ステップＳ８１１における検証値と期待値との比較結果が正常であるか否か、すなわち両者が一致しているか否かを判定する。
【０１１５】
上記の比較結果が正常である場合、すなわち検証値と期待値とが一致している場合には、記憶領域のデータの完全性が保証される。この場合、処理フローはステップＳ８１３に進み、制御部１０１による制御処理が開始される。
【０１１６】
一方、上記の比較結果が異常である場合、すなわち検証値と期待値とが一致していない場合には、記憶領域のデータの完全性が保証されない。この場合、処理フローはステップＳ８１３に進まず、制御部１０１による制御処理は開始されない。
【０１１７】
上記の図８の処理では、前回のモータ制御装置２００の起動時、制御部１０１による制御処理の開始後に状態情報取得部２０４によって取得された第１の状態情報と、今回のモータ制御装置２００の起動時、制御部１０１による制御処理の開始前に新たに取得された第２の状態情報との差分が、１未満の範囲内にある場合には、ステップＳ８０６およびＳ８０７の第１のセキュアブート処理が行われる。この第１のセキュアブート処理では、第１の記憶領域２０２ａのデータの完全性が判定される。
【０１１８】
また、前回のモータ制御装置２００の起動時、制御部１０１による制御処理の開始後に状態情報取得部２０４によって取得された第１の状態情報と、今回のモータ制御装置２００の起動時、制御部１０１による制御処理の開始前に新たに取得された第２の状態情報との差分が、１以上かつ２未満の範囲内にある場合には、ステップＳ８０８およびＳ８０９の第２のセキュアブート処理が行われる。この第２のセキュアブート処理では、第２の記憶領域２０２ｂのデータの完全性が判定される。
【０１１９】
また、前回のモータ制御装置２００の起動時、制御部１０１による制御処理の開始後に状態情報取得部２０４によって取得された第１の状態情報と、今回のモータ制御装置２００の起動時、制御部１０１による制御処理の開始前に新たに取得された第２の状態情報との差分が、２以上の範囲内にある場合には、ステップＳ８１０およびＳ８１１の第３のセキュアブート処理が行われる。この第３のセキュアブート処理では、第３の記憶領域２０２ｃのデータの完全性が判定される。
【０１２０】
先述したように、第２の記憶領域２０２ｂは、第１の記憶領域２０２ａを包含している。また、第３の記憶領域２０２ｃは、第１の記憶領域２０２ａおよび第２の記憶領域２０２ｂを包含している。また、第１の記憶領域２０２ａ、第２の記憶領域２０２ｂおよび第３の記憶領域２０２ｃの順で、データの重要度が高い。
【０１２１】
したがって、第１のセキュアブート処理、第２のセキュアブート処理および第３のセキュアブート処理の順で高速である。
【０１２２】
なお、ステップＳ８１４においては、書き換え処理部１０７によって、記憶部２０２に記憶されているデータの書き換え処理が行われる。この際、期待値生成部２０３は、第１の記憶領域２０２ａのデータに基づいて第１の期待値を生成し、自身の内部メモリに記憶する。また、期待値生成部２０３は、第２の記憶領域２０２ｂのデータに基づいて第２の期待値を生成し、同じく自身の内部メモリに記憶する。さらに、期待値生成部２０３は、第３の記憶領域２０２ｃのデータに基づいて第３の期待値を生成し、同じく自身の内部メモリに記憶する。
【０１２３】
以上説明したように、本実施の形態２において、モータ制御装置２００は、自身の起動時、制御部１０１による制御処理の開始後に、図７のフローチャートに従って、第１の状態情報である車両ドア５１０の開閉回数を、予め決定された事象が発生するたびに繰り返し取得して記憶する。
【０１２４】
また、次回の起動時、モータ制御装置２００は、制御部１０１による制御処理の開始前に、図８のフローチャートに従って、前回の起動時に取得して記憶した第１の状態情報である開閉回数と、今回の起動時に新たに取得した第２の状態情報である開閉回数との差分を計算する。
【０１２５】
上記の差分が１未満の範囲内にある場合には、モータ制御装置２００は、前回の起動から今回の起動までの間に、意図しない起動による記憶領域のデータの不正な書き換えが行われた可能性は低いと判断する。この場合、モータ制御装置２００は、第１の記憶領域２０２ａの完全性のみを検証する高速の第１のセキュアブート処理を行う。
【０１２６】
また、上記の差分が１以上かつ２未満の範囲内にある場合には、モータ制御装置２００は、前回の起動から今回の起動までの間に、意図しない起動による記憶領域のデータの不正な書き換えが行われた可能性が中程度であると判断する。この場合、モータ制御装置２００は、第１の記憶領域２０２ａを包含する第２の記憶領域２０２ｂの完全性を検証する中速の第２のセキュアブート処理を行う。
【０１２７】
また、上記の差分が２以上の範囲内にある場合には、モータ制御装置２００は、前回の起動から今回の起動までの間に、意図しない起動による記憶領域のデータの不正な書き換えが行われた可能性が高いと判断する。この場合、モータ制御装置２００は、第１の記憶領域２０２ａおよび第２の記憶領域２０２ｂを包含する第３の記憶領域２０２ｃの完全性を検証する低速の第３のセキュアブート処理を行う。
【０１２８】
上記の特徴により、本実施の形態２に係るモータ制御装置２００では、起動時のセキュアブート処理の処理時間を短縮することができる。
【０１２９】
また、図７のフローチャートに示されるように、モータ制御装置２００は、制御部１０１による制御処理の開始後は、予め決定された事象が発生するたびに、第１の状態情報を取得して記憶する。そのため、例えばモータ制御装置２００の停止時にのみ状態情報を取得して記憶する場合に比べて、電源が突然遮断された場合等、モータ制御装置２００が正常な終了シーケンスを通らずに終了した場合でも、次回起動時に、セキュアブート処理による検証を行うことができる。
【０１３０】
また、本実施の形態２では、状態情報として車両ドア５１０の開閉回数を用いる例を示したが、状態情報はこれに限定されるものではない。状態情報は、モータ制御装置２００の起動に伴って変化する可能性のある情報であればよい。例えば、モータ制御装置２００から他の制御装置、外部センサ等へのアクセス回数を、状態情報として用いてもよい。
【０１３１】
また、他の制御装置が保有する時間情報を、状態情報として用いてもよい。この場合、図８のステップＳ８０５で用いる検証時の範囲を適切に定めることによって、前回の起動から今回の起動までの経過時間を調べ、短時間での再起動であるか否かを判定することができる。したがって、短時間での再起動である場合には、高速のセキュアブート処理を行うことによって、安全かつ高速にモータ制御装置２００を起動することができる。
【０１３２】
また、図７のステップＳ７０３において、状態情報取得部２０４の内部メモリに第１の状態情報を記憶する際に、第１の状態情報を暗号化するようにしてもよい。その場合、図８のステップＳ８０７、Ｓ８０９およびＳ８１１のいずれかにおいて、状態情報取得部２０４から第１の状態情報を読み出す際に、暗号化された第１の状態情報を復号する。このように、第１の状態情報を暗号化することによって、第１の状態情報そのものを不正に書き換えられる可能性が低下するため、安全性がさらに向上する。
【０１３３】
また、モータ制御装置２００とドア制御装置５００との間のＣＡＮネットワーク５２０を介した通信を暗号化してもよい。これにより、ＣＡＮネットワーク上５２０における状態情報の不正な書き換えの可能性を低下させることができる。
【０１３４】
また、本実施の形態２では、ＣＡＮネットワーク５２０による有線通信の例を示したが、モータ制御装置２００とドア制御装置５００との間の通信方法はこれに限定されるものではない。有線通信または無線通信を問わず、他の種類のネットワークを用いても同様の効果が得られる。
【０１３５】
また、本実施の形態２では、記憶部２０２に３つの記憶領域が含まれる場合を説明したが、記憶領域の数はこれに限定されるものではなく、さらに多くの記憶領域を含んでもよい。その場合、記憶領域の数にあわせて、状態情報および期待値の数も決定される。
【０１３６】
なお、上述した実施の形態１および２に係るモータ制御装置における各機能は、処理回路によって実現される。各機能を実現する処理回路は、専用のハードウェアであってもよく、メモリに格納されるプログラムを実行するプロセッサであってもよい。図９は、本発明の実施の形態１および２に係るモータ制御装置の各機能を専用のハードウェアである処理回路１０００で実現する場合を示した構成図である。また、図１０は、本発明の実施の形態１および２に係るモータ制御装置の各機能をプロセッサ２００１およびメモリ２００２を備えた処理回路２０００により実現する場合を示した構成図である。
【０１３７】
処理回路が専用のハードウェアである場合、処理回路１０００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、またはこれらを組み合わせたものが該当する。モータ制御装置の各部の機能それぞれを個別の処理回路１０００で実現してもよいし、各部の機能をまとめて処理回路１０００で実現してもよい。
【０１３８】
一方、処理回路がプロセッサ２００１の場合、モータ制御装置の各部の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアおよびファームウェアは、プログラムとして記述され、メモリ２００２に格納される。プロセッサ２００１は、メモリ２００２に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、モータ制御装置は、処理回路２０００により実行されるときに、上述した各制御が結果的に実行されることになるプログラムを格納するためのメモリ２００２を備える。
【０１３９】
これらのプログラムは、上述した各部の手順あるいは方法をコンピュータに実行させるものであるともいえる。ここで、メモリ２００２とは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の、不揮発性または揮発性の半導体メモリが該当する。また、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等も、メモリ２００２に該当する。
【０１４０】
なお、上述した各部の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【０１４１】
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述した各部の機能を実現することができる。
【符号の説明】
【０１４２】
１００，２００  モータ制御装置（制御装置）、１０１  制御部、１０２，２０２  記憶部、１０２ａ，２０２ａ  第１の記憶領域、１０２ｂ，２０２ｂ  第２の記憶領域、２０２ｃ  第３の記憶領域、１０３，２０３  期待値生成部、１０４，２０４  状態情報取得部、１０５，２０５  検証値生成部、１０６，２０６  判定部、２０９  送受信部、５００  ドア制御装置（外部機器）。
【図１】
2020187504.tif 000003
【図２】
2020187504.tif 000004
【図３】
2020187504.tif 000005
【図４】
2020187504.tif 000006
【図５】
2020187504.tif 000007
【図６】
2020187504.tif 000008
【図７】
2020187504.tif 000009
【図８】
2020187504.tif 000010
【図９】
2020187504.tif 000011
【図１０】
2020187504.tif 000012
【手続補正書】
【提出日】令和2年6月5日(2020.6.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上記の課題を解決するために、本発明に係る制御装置は、制御対象の制御処理を行う制御部と、複数の記憶領域を含む記憶部と、記憶部の複数の記憶領域のデータから複数の期待値をそれぞれ生成する、期待値生成部と、制御装置の起動に伴って変化する可能性のある第１の状態情報を取得する、状態情報取得部と、新たに取得した第２の状態情報と、状態情報取得部によって取得された第１の状態情報との比較に基づいて、記憶部の複数の記憶領域の中から１つの記憶領域を選択し、選択された記憶領域のデータから検証値を生成する、検証値生成部と、検証値生成部によって生成された検証値と、当該検証値の生成に用いられた記憶領域のデータから生成されて期待値生成部によって生成された期待値との比較に基づいて、記憶領域のデータの完全性を検証し、制御部による制御処理を開始させるか否かを判定する、判定部とを備え、記憶部は、複数の記憶領域として、第１の記憶領域と、当該第１の記憶領域を包含する第２の記憶領域とを含み、検証値生成部は、第２の状態情報と第１の状態情報との差分を計算し、当該差分が予め決定された範囲内にある場合には、第１の記憶領域のデータから検証値を生成し、差分が前記予め決定された範囲内にない場合には、第２の記憶領域のデータから検証値を生成する。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御対象の制御処理を行う制御部と、
複数の記憶領域を含む記憶部と、
前記記憶部の前記複数の記憶領域のデータから複数の期待値をそれぞれ生成する、期待値生成部と、
制御装置の起動に伴って変化する可能性のある第１の状態情報を取得する、状態情報取得部と、
新たに取得した第２の状態情報と、前記状態情報取得部によって取得された前記第１の状態情報との比較に基づいて、前記記憶部の前記複数の記憶領域の中から１つの記憶領域を選択し、選択された前記記憶領域のデータから検証値を生成する、検証値生成部と、
前記検証値生成部によって生成された前記検証値と、該検証値の生成に用いられた記憶領域のデータから生成されて前記期待値生成部によって生成された前記期待値との比較に基づいて、前記記憶領域のデータの完全性を検証し、前記制御部による前記制御処理を開始させるか否かを判定する、判定部と
を備え、
前記記憶部は、前記複数の記憶領域として、第１の記憶領域と、該第１の記憶領域を包含する第２の記憶領域とを含み、
前記検証値生成部は、前記第２の状態情報と前記第１の状態情報との差分を計算し、該差分が予め決定された範囲内にある場合には、前記第１の記憶領域のデータから前記検証値を生成し、前記差分が前記予め決定された範囲内にない場合には、前記第２の記憶領域のデータから前記検証値を生成する、制御装置。
【請求項２】
前記状態情報取得部は、前記制御部による前記制御処理の開始後、予め決定された時間間隔で、前記第１の状態情報を取得する、請求項１に記載の制御装置。
【請求項３】
前記状態情報取得部は、前記制御部による前記制御処理の開始後、予め決定された事象が発生するたびに、前記第１の状態情報を取得する、請求項１に記載の制御装置。
【請求項４】
前記第１の状態情報および前記第２の状態情報は、前記制御装置の内部から前記状態情報取得部によって取得される、請求項１〜３のいずれか一項に記載の制御装置。
【請求項５】
前記第１の状態情報および前記第２の状態情報は、前記制御装置に接続されている外部機器から前記状態情報取得部によって取得される、請求項１〜３のいずれか一項に記載の制御装置。
【請求項６】
前記外部機器との間で有線通信および無線通信のいずれか一方によってデータの送受信を行う送受信部をさらに備え、
前記第１の状態情報および前記第２の状態情報は、前記外部機器から前記送受信部を介して前記状態情報取得部によって取得される、請求項５に記載の制御装置。