(57)【要約】      （修正有）【課題】セキュアブート処理の処理時間を短縮することができる制御装置を提供する。【解決手段】モータ制御装置１００は、制御に関わる状態情報を入手する状態情報入手部１１２、制御データを格納する第一の記憶領域１２０、状態情報を格納する第二の記憶領域１２１、第一の記憶領域のデータから生成された期待値を格納する第三の記憶領域１２２、第一の記憶領域のデータから検証値を生成する検証値生成部１１４、期待値と検証値とから制御部１１０を起動するかを判定する第一の判定部１１５および制御部の停止時に第二の記憶領域に格納した状態情報と、制御部の起動時に再入手した状態情報との差分に基づいて、第一の判定部による判定を実施する領域を選択する第一の選択部１１６を備えている。【選択図】図１
2020072431.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の制御を行う制御部と、
前記制御に関わる状態情報を取得する状態情報入手部と、
２以上の領域を有し、データの重要度に応じて各領域に分けて前記制御部の前記制御に必要なデータを格納する第一の記憶部と、
前記制御部の停止時に前記状態情報入手部が入手した前記状態情報が格納される第二の記憶部と、
前記第一の記憶部の各領域のデータから生成された期待値を予め格納する第三の記憶部と、
前記制御部の起動時に前記状態情報入手部によって入手される前記状態情報と、前記第二の記憶部に格納された前記停止時の前記状態情報との差分に基づいて、前記第一の記憶部の各領域の中から検証値の生成に用いる領域を選択する、第一の選択部と、
前記第一の選択部によって選択された前記領域のデータに基づいて前記検証値を生成する検証値生成部と、
前記検証値生成部によって生成された前記検証値を、前記検証値の生成に用いた領域と同一の領域のデータから生成されて前記第三の記憶部に格納された前記期待値と比較することにより、前記制御部を起動するか否かを判定する第一の判定部と、
前記第一の判定部が前記制御部を起動すると判定した場合に、前記制御部を起動させる制御起動部と
を備えた、
制御装置。
【請求項２】
前記状態情報入手部は、前記制御装置内の情報から前記状態情報を取得する、
請求項１に記載の制御装置。
【請求項３】
前記制御装置の起動時にカウント値をインクリメントするカウント部をさらに備え、
前記状態情報入手部は、前記カウント部から、前記カウント値を前記状態情報として取得する、
請求項１または２に記載の制御装置。
【請求項４】
他の制御装置である第二の制御装置と通信線を介してデータの送受信を行うデータ送受信部をさらに備え、
前記状態情報入手部は、前記データ送受信部により、前記通信線を介して、前記第二の制御装置から、前記第二の制御装置内の情報を、前記状態情報として取得する、
請求項１または２に記載の制御装置。
【請求項５】
前記第一の記憶部の前記２以上の領域は、第一の領域と、前記第一の領域に格納されたデータよりも重要度の低いデータを格納する第二の領域とを含み、
前記第一の選択部は、前記差分が、予め設定された設定範囲に入っている場合には、前記第一の領域を選択し、前記差分が、前記設定範囲に入っていない場合には、前記第二の領域を選択する、
請求項１から４までのいずれか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、起動時に期待値と検証値とを比較して検証を行う制御装置に関する。
【背景技術】
【０００２】
一般に、車両には、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と呼ばれる制御装置が複数台搭載されている。ＥＣＵは、他のＥＣＵまたは車両外の通信機器と有線または無線によって接続される。そのため、ＥＣＵは、不正に侵入される恐れがある。ＥＣＵは、不正に侵入されると、ＥＣＵのプログラムデータが改ざんされる、または、遠隔操作される可能性がある。
【０００３】
ＥＣＵのデータ改ざんへの対策の一つとして、セキュアブートが知られている。セキュアブートは、暗号技術を用いて事前にデータから作成した期待値と、データからその時点で作成した検証値との完全性を検証することで、データの改ざんを検知する技術である。ＥＣＵは、制御に関する処理を起動する前に、前回終了時からデータが改ざんされていないかをセキュアブート処理を行って検証することにより、ＥＣＵを正常な状態で起動できるか否かを判定することができる。
【０００４】
一方で、ＥＣＵは、起動時間の制約が厳しい。そのため、セキュアブート処理の処理時間も、ＥＣＵの起動時間の制約内に収めなければならない。すなわち、ＥＣＵによる制御が開始するまでの要求時間内に、セキュアブート処理を完了する必要がある。そのため、データの改ざんがないことを保証した上でＥＣＵを起動させるためには、セキュアブート処理の処理時間の短縮化が求められる。
【０００５】
特許文献１では、上記の課題を解決するために、処理装置が、保存しておいたプログラムリストを参照して、対象のプログラムまたはデータが、検証が必要なプログラムまたはデータであるか否かを判定する。対象のプログラムまたはデータが、検証が必要なプログラムまたはデータである場合にのみ、処理装置は、対象のプログラムまたはデータの検証を実行する。これにより、検証範囲を最小限に留めることができるため、セキュアブート処理を高速に安全に実行することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−３３２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術においては、次のような課題がある。特許文献１では、制御装置が、セキュアブート処理において、処理のイベント発生ごとの検証範囲が予め決定されているリストを元に、検証範囲を段階的に設定する。しかしながら、起動時には、同一のイベントが特定の順番で発生してしまうため、それらのイベントに応じたセキュアブート処理を段階的に実施する必要がある。その結果、セキュアブート処理全体が完了するまでの処理時間は、セキュアブート処理を実施しない通常起動時間に比べて大幅に増加してしまう。
【０００８】
この発明は、かかる課題を解決するためになされたものであり、起動時のセキュアブート処理の処理時間の短縮を図る制御装置を得ることを目的としている。
【課題を解決するための手段】
【０００９】
この発明は、制御対象の制御を行う制御部と、前記制御に関わる状態情報を取得する状態情報入手部と、２以上の領域を有し、データの重要度に応じて各領域に分けて前記制御部の前記制御に必要なデータを格納する第一の記憶部と、前記制御部の停止時に前記状態情報入手部が入手した前記状態情報が格納される第二の記憶部と、前記第一の記憶部の各領域のデータから生成された期待値を予め格納する第三の記憶部と、前記制御部の起動時に前記状態情報入手部によって入手される前記状態情報と、前記第二の記憶部に格納された前記停止時の前記状態情報との差分に基づいて、前記第一の記憶部の各領域の中から検証値の生成に用いる領域を選択する、第一の選択部と、前記第一の選択部によって選択された前記領域のデータに基づいて前記検証値を生成する検証値生成部と、前記検証値生成部によって生成された前記検証値を、前記検証値の生成に用いた領域と同一の領域のデータから生成されて前記第三の記憶部に格納された前記期待値と比較することにより、前記制御部を起動するか否かを判定する第一の判定部と、前記第一の判定部が前記制御部を起動すると判定した場合に、前記制御部を起動させる制御起動部とを備えた、制御装置である。
【発明の効果】
【００１０】
この発明にかかる制御装置によれば、起動時のセキュアブート処理の処理時間の短縮を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１に係る制御装置の構成を示すブロック図である。
【図２】この発明の実施の形態１に係る制御装置の第一の記憶領域を示す図である。
【図３】この発明の実施の形態１に係る制御装置の停止時の処理の流れを示す図である。
【図４】この発明の実施の形態１に係る制御装置の起動時の処理の流れを示す図である。
【図５】この発明の実施の形態２に係る制御装置の構成を示すブロック図である。
【図６】この発明の実施の形態２に係る制御装置の第一の記憶領域を示す図である。
【図７】この発明の実施の形態２に係る制御装置の停止時の処理の流れを示す図である。
【図８】この発明の実施の形態２に係る制御装置の起動時の処理の流れを示す図である。
【図９】この発明の実施の形態１に係るモータ制御装置のハードウェア構成、および、この発明の実施の形態２に係るドア制御装置のハードウェア構成の一例を示した図である。
【図１０】この発明の実施の形態１に係るモータ制御装置のハードウェア構成、および、この発明の実施の形態２に係るドア制御装置のハードウェア構成の一例を示した図である。
【発明を実施するための形態】
【００１２】
以下、この発明に係る制御装置の実施の形態について、図面を用いて説明する。なお、各実施の形態において、同一もしくは相当する部分は同一符号で示し、重複する説明は省略する。
【００１３】
実施の形態１．
図１は、この発明の実施の形態１に係る制御装置の構成の一例を示した図である。図１では、制御装置として、車両制御システムの場合を例に挙げて示している。本実施の形態１に係る制御装置は、安全かつ高速な起動動作を可能とする起動方法が実施される。
【００１４】
図１に示す車両制御システムは、制御装置としてのモータ制御装置１００と駆動用モータ１０１とを備えて構成されている。駆動用モータ１０１は、モータ制御装置１００の制御対象である。なお、図１に示す車両制御システムは、実際には、図１に示す以外の構成も含まれているが、図１においては、本実施の形態１に直接関係しないものについては図示を省略している。
【００１５】
モータ制御装置１００は、駆動用モータ１０１に接続され、駆動用モータ１０１を制御する。モータ制御装置１００は、制御部１１０と、停止部１１１と、状態情報入手部１１２と、制御起動部１１３と、検証値生成部１１４と、第一の判定部１１５と、第一の選択部１１６と、カウント部１１７と、起動モード確認部１１８と、記憶領域書き換え部１１９と、第一の記憶領域１２０と、第二の記憶領域１２１と、第三の記憶領域１２２とを備えて構成されている。
【００１６】
以下、モータ制御装置１００の各構成要素とその機能について簡単に説明する。
【００１７】
制御部１１０は、駆動用モータ１０１の制御を行う。具体的には、制御部１１０は、駆動用モータ１０１の制御に関わる制御量または各種処理値を演算する。
【００１８】
停止部１１１は、車両内のＩＧ（ignition）スイッチのＯＦＦへの切り替えを検知したことなどをトリガーとして、モータ制御装置１００の動作を終了させる。停止部１１１は、電源リレー等を制御することにより、モータ制御装置１００への電源の供給を停止することで、モータ制御装置１００の動作を終了させる。
【００１９】
状態情報入手部１１２は、駆動用モータ１０１の状態情報を入手する。状態情報とは、モータ制御装置１００自体が有する、駆動用モータ１０１の制御に関わる状態を示す情報である。本実施の形態１では、状態情報として、カウント部１１７が保有するカウント値を用いる。カウント値については、後述する。そのため、本実施の形態１では、状態情報入手部１１２が、状態情報として、カウント部１１７からカウント値を入手する。なお、状態情報入手部１１２は、モータ制御装置１００を停止時に、カウント部１１７から入手した駆動用モータ１０１の状態情報を第二の記憶領域１２１に格納する。
【００２０】
制御起動部１１３は、第一の判定部１１５の判定結果に基づき、制御部１１０を起動させる。具体的には、第一の判定部１１５の判定結果が「正常」の場合には、制御部１１０を起動させ、判定結果が「異常」の場合には、制御部１１０を起動させない。
【００２１】
検証値生成部１１４は、第一の記憶領域１２０の領域Ａまたは領域Ｂに格納されているデータに基づいて、検証値を生成する。領域Ａまたは領域Ｂについては後述する。
【００２２】
第一の判定部１１５は、第三の記憶領域１２２に予め格納されている期待値と、検証値生成部１１４によって生成された検証値とに基づいて、制御部１１０を起動させるか否かを判定する。
【００２３】
第一の選択部１１６は、第二の記憶領域１２１に格納されている状態情報と、状態情報入手部１１２が今回入手した状態情報とを比較する。なお、ここで、第二の記憶領域１２１に格納されている状態情報は、前回、モータ制御装置１００を停止させるときに、状態情報入手部１１２が第二の記憶領域１２１に格納したものである。本実施の形態１では、上述したように、状態情報は、カウント部１１７によって保有されるカウント値である。従って、第一の選択部１１６は、第二の記憶領域１２１に格納されているカウント値と、状態情報入手部１１２が今回入手したカウント値とを比較する。第一の選択部１１６は、当該比較により、第二の記憶領域１２１に格納されているカウント値と、状態情報入手部１１２が今回入手したカウント値との差分が、予め設定された範囲内に収まっているか否かを判定する。第一の選択部１１６は、判定結果に基づいて、第一の記憶領域１２０の領域Ａまたは領域Ｂのどちらのデータを用いて検証値生成部１１４が検証値を生成するかを選択する。
【００２４】
カウント部１１７は、モータ制御装置１００が起動する度に、自身が保有しているカウント値をインクリメントする。
【００２５】
起動モード確認部１１８は、モータ制御装置１００の起動時に、ユーザから要求される起動モードの種別を確認する。ここでは、起動モードとして、駆動用モータ１０１の制御を行う「制御モード」と、第一の記憶領域１２０と第三の記憶領域１２２との格納データを書き換える「書き換えモード」とが、予め用意されている。なお、通常時は、制御モードに設定されている。書き換えモードへの切替は、ユーザが予め設定された或る動作を行った場合に実行される。ここでは、例えば、モータ制御装置１００に対して、ユーザが、テスター等の機器を外部から接続したことを検知した場合、当該検知を切替要求として認識して、書き換えモードへの切替が実行される。
【００２６】
記憶領域書き換え部１１９は、第一の記憶領域１２０と第三の記憶領域１２２とのそれぞれに格納されているデータを実際に書き換える。
【００２７】
第一の記憶領域１２０は、制御部１１０が制御に必要とするデータを格納している。第一の記憶領域１２０は、図２に示すように、第一の領域としての領域Ａと第二の領域としての領域Ｂとに分類されている。領域Ａのサイズは、領域Ｂのサイズより小さい。特に重要なデータを領域Ａに格納し、重要度の低いデータを領域Ｂに格納する。第一の記憶領域１２０は、例えばメモリデバイスの記憶領域から構成される。第一の記憶領域１２０は、第一の記憶部を構成している。
【００２８】
第二の記憶領域１２１は、状態情報入手部１１２が入手した状態情報を格納する。第二の記憶領域１２１は、例えばメモリデバイスの記憶領域から構成される。第二の記憶領域１２１は、第二の記憶部を構成している。
【００２９】
第三の記憶領域１２２は、予め生成された期待値を格納している。期待値は、第一の判定部１１５によって、検証値生成部１１４が生成した検証値と比較される。期待値は、予め、記憶領域書き換え部１１９によって、第一の記憶領域１２０に格納されたデータから生成されて、第三の記憶領域１２２に格納される。ここでは、第三の記憶領域１２２は、第一の記憶領域１２０の領域Ａと領域Ｂとに格納されたデータのそれぞれから作成された期待値Ａと期待値Ｂとを格納していることとする。なお、第三の記憶領域１２２は、例えばメモリデバイスの記憶領域から構成される。第三の記憶領域１２２は、第三の記憶部を構成している。
【００３０】
なお、第一の記憶領域１２０、第二の記憶領域１２１、および、第三の記憶領域１２２は、別々のメモリデバイスに分けて設けることが望ましいが、一つのメモリデバイス上で別領域として定義してもよい。
【００３１】
次に、実施の形態１に係る車両制御システムのモータ制御装置１００の停止時および起動時の処理の流れについて、それぞれ、図３および図４のフローチャートを用いて説明する。図３の停止時の処理は、車両内のＩＧスイッチがＯＦＦにされたことの検知などをトリガーとして、モータ制御装置１００を停止させるときの最後の処理として実行される。
図４の起動時の処理は、車両内のＩＧスイッチがＯＮにされたことなどをトリガーとして、モータ制御装置１００へ電源が供給されたとき、あるいは、リセットにより再起動されたときに、最初に実行される。
【００３２】
まず、モータ制御装置１００の停止時の処理について、図３を用いて説明する。
【００３３】
図３において、ステップＳ２０１において、制御部１１０は、モータ制御に係る自身の処理が停止しているか否かを判定する。制御部１１０のモータ制御に係る処理が終了していれば、ステップＳ２０２へ進む。制御部１１０のモータ制御に係る処理が終了していない場合は、終了するまで待機する。
【００３４】
続いて、ステップＳ２０２において、状態情報入手部１１２は、カウント部１１７から、カウント部１１７が保有するカウント値を状態情報として入手する。
【００３５】
ステップＳ２０３において、状態情報入手部１１２は、カウント部１１７から入手したカウント値を第二の記憶領域１２１に対して格納することを試みる。
【００３６】
続いて、ステップＳ２０４において、状態情報入手部１１２は、当該カウント値の格納が完了した場合は、ステップＳ２０５へ進む。一方、当該カウント値の格納が完了していない場合は、ステップＳ２０３へ戻る。
【００３７】
ステップＳ２０５において、停止部１１１は、電源リレー等を制御することにより、モータ制御装置１００への電源供給を停止してモータ制御装置１００を停止させる。
【００３８】
次に、モータ制御装置１００の起動時の処理について図４を用いて説明する。
【００３９】
図４において、ステップＳ３０１において、カウント部１１７は、自身が保有するカウント値を更新する。具体的には、カウント部１１７が、自身保有しているカウント値を＋１とする。
【００４０】
ステップＳ３０２において、起動モード確認部１１８が起動モードの種別を確認する。起動モードが、駆動用モータ１０１の制御を行う「制御モード」であれば、ステップＳ３０３へ進む。一方、起動モードが、第一の記憶領域１２０と第三の記憶領域１２２との格納データを書き換える「書き換えモード」であれば、ステップＳ３１０へ進む。
【００４１】
ステップＳ３０３において、状態情報入手部１１２は、カウント部１１７が保有するカウント値を状態情報として、カウント部１１７から入手する。
【００４２】
続いて、ステップＳ３０４において、カウント部１１７によるカウント値の入手が完了していれば、ステップＳ３０５へ進み、カウント部１１７によるカウント値の入手が完了していない場合は、完了まで待機する。
【００４３】
ステップＳ３０５において、第一の選択部１１６は、ステップＳ３０３で状態情報入手部１１２が入手したカウント値から、第二の記憶領域１２１に格納されているカウント値を差し引いた差分を求める。
【００４４】
続いて、ステップＳ３０６において、第一の選択部１１６は、ステップＳ３０５で求められた差分が、予め設定された設定範囲に入っているか否かを判定する。ここでは、設定範囲を、＋１以下の範囲とする。当該差分が設定範囲に入っている場合は、すなわち、当該差分が＋１以下の場合は、ステップＳ３０７へ進み、当該差分が設定範囲に入っていない場合は、ステップＳ３１２へ進む。
【００４５】
ステップＳ３０７においては、検証値生成部１１４は、第一の記憶領域１２０に格納されている領域Ａのデータから検証値を生成する。
【００４６】
ステップＳ３１２において、検証値生成部１１４は、第一の記憶領域１２０に格納されている領域Ｂのデータから検証値を生成する。
【００４７】
ステップＳ３０８において、第一の判定部１１５は、第三の記憶領域１２２に格納される期待値、すなわち、期待値Ａまたは期待値Ｂと、ステップＳ３０７またはステップＳ３１２で生成された検証値、すなわち、検証値Ａまたは検証値Ｂとを比較して判定を行う。つまり、領域Ａから検証値を生成した場合は、検証値Ａと期待値Ａとを比較して判定し、領域Ｂから検証値を生成した場合は、検証値Ｂと期待値Ｂとを比較判定する。
【００４８】
続いて、ステップＳ３０９において、ステップＳ３０８の比較判定の結果、期待値と検証値とが同じであれば、ステップＳ３１１へ進む。一方、期待値と検証値とが異なれば、制御部１１０を起動せずに、図４の処理フローを終了する。
【００４９】
ステップＳ３１１において、制御起動部１１３は、制御部１１０を起動させる。
【００５０】
なお、ステップＳ３０７、ステップＳ３０８、ステップＳ３０９、および、ステップＳ３１２が、セキュアブート処理として処理時間を要する部分となる。
【００５１】
一方、ステップＳ３１０においては、記憶領域書き換え部１１９は、第一の記憶領域１２０の格納データを書き換える。また、記憶領域書き換え部１１９は、第一の記憶領域１２０に格納したデータから期待値を生成し、生成した期待値を第三の記憶領域１２２に書き込む。その後、制御部１１０を起動させずに、図４の処理フローを終了する。なお、記憶領域書き換え部１１９の動作に関しては、本実施の形態１の動作および効果には影響しないため、特に限定しない。
【００５２】
以上のように、本実施の形態１においては、モータ制御装置１００は、停止時に、図３に示す処理フローに従って、状態情報として、自身が持つカウント値を第二の記憶領域１２１に格納しておく。その後、モータ制御装置１００を起動するときには、図４に示す処理フローに従って、第二の記憶領域１２１に格納しておいたカウント値と、起動時に再度入手したカウント値との差分が、予め設定された設定範囲に入っているかを確認する。当該差分が設定範囲に入っているときには、モータ制御装置１００を終了してから本起動までに一度も起動されていないと判断し、領域Ａのデータから生成した検証値を用いて検証を行う。これにより、検証する範囲は、領域Ａのみとなる。ここで、上述したように、領域Ａは、領域Ｂより小さいため、上記差分が設定範囲に入っている場合には、検証する範囲を狭めて制御部１１０を起動させることができる。一方、差分が設定範囲に入っていないときには、モータ制御装置１００を終了してから本起動までに起動された可能性が高いと判断し、領域Ｂのデータから生成した検証値を用いて検証を行う。これにより、検証する範囲は、領域Ａよりも広い領域Ｂとなる。
【００５３】
このように、本実施の形態１に係る制御装置によれば、モータ制御装置１００の停止時の状態情報と、起動時の状態情報とを比較することによって、停止中に書き換えの為等で起動されていないこと、および、意図せず起動されていないことが確認できた場合には、起動時に検証する範囲を狭めることが出来る。その結果、セキュアブート処理の処理時間が短縮でき、セキュリティに対する安全性を確保しつつ高速にモータ制御装置１００を起動することができる。
【００５４】
なお、上記の本実施の形態１においては、状態情報としてカウント値を用いる場合を例に挙げて説明したが、これに限るものではない。例えば、モータ制御装置１００がバックアップ用に保有する電池の電圧値などのアナログ値を、状態情報として用いてもよい。この場合、図４のステップＳ３０６で用いる検証時の設定範囲を適切に定めることで、停止中に意図せず起動されていないか否か、および、短時間での再起動であるか否かを検出することができる。その結果、停止中に意図せず起動されていない場合、または、短時間での再起動であった場合には、起動時の検証領域を狭めることで、安全かつ高速にモータ制御装置１００を起動することができる。
【００５５】
また、図３のステップＳ２０３で、状態情報を第二の記憶領域１２１に格納するときに、状態情報を暗号化するようにしてもよい。その場合には、図４のステップＳ３０５で、第二の記憶領域１２１に格納されている暗号化された状態情報を復号化する。このように、状態情報を第二の記憶領域１２１に格納するときに状態情報を暗号化することにより、状態情報そのものを改ざんされる可能性が下がり、セキュリティに対する安全性を高めることができる。
【００５６】
さらに、本実施の形態１では、第一の記憶領域１２０を領域Ａと領域Ｂとの２つに分ける場合を例にあげて説明したが、これに限るものではない。第一の記憶領域１２０における、領域の個数、および、領域の分け方はこれに限るものではない。
【００５７】
実施の形態２．
次に、この発明の実施の形態２に係る制御装置について、図５から図８までに基づいて説明する。図５は、この発明の実施の形態２に係る制御装置の構成の一例を示した図である。図５では、制御装置として、車両制御システムを例に挙げて示している。本実施の形態２に係る制御装置は、安全かつ高速な起動動作を可能とする起動方法が実施される。
【００５８】
上記の実施の形態１においては、車両制御システムは、モータ制御装置１００と駆動用モータ１０１とを備えて構成されていたが、本実施の形態２に係る車両制御システムは、図５に示されるように、モータ制御装置１００と、駆動用モータ１０１と、他の制御装置である第二の制御装置としてのドア制御装置４１０とを備えて構成される。
【００５９】
本実施の形態２においては、モータ制御装置１００が、図１に示したカウント部１１７の代わりに、データ送受信部４０１を備えている点が、図１と異なる。
【００６０】
他の構成については、実施の形態１と同じであるため、ここでは、その説明を省略する。
【００６１】
なお、図５において、モータ制御装置１００およびドア制御装置４１０は、図５に示す以外の構成も備えているが、実施の形態２に直接関係しないものについては図示を省略している。また、図１に示す上記の実施の形態１において説明したものについては、同じ符号を付して、ここではその説明を省略する。
【００６２】
本実施の形態２に係る車両制御システムにおいては、モータ制御装置１００とドア制御装置４１０とは、車両の通信線として、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ネットワーク４００を介して互いに通信可能に接続されている。
【００６３】
まず、実施の形態２に係るモータ制御装置１００の追加された構成と機能について簡単に説明する。データ送受信部４０１は、ＣＡＮネットワーク４００を介して、接続されたドア制御装置４１０とデータを送受信する。
【００６４】
図６に示すように、モータ制御装置１００の第一の記憶領域１２０は、第一の領域としての領域Ａと第二の領域としての領域Ｂと第三の領域として領域Ｃに分類されている。第一の記憶領域１２０には、制御部１１０が制御に必要とするデータが格納されている。領域Ａのサイズは領域Ｂのサイズより小さくし、領域Ｂのサイズは領域Ｃのサイズより小さくする。データの重要度に応じて、特に重要なデータから順に、領域Ａ、領域Ｂ、領域Ｃの順で格納するようにする。従って、領域Ａのデータの重要度が最も高く、領域Ｂのデータの重要度は、領域Ａのデータよりも低く、領域Ｃのデータよりも高く、領域Ｃのデータの重要度が最も低い。
【００６５】
図５の説明に戻る。
【００６６】
第二の記憶領域１２１は、状態情報入手部１１２が入手した状態情報を格納する。
【００６７】
第三の記憶領域１２２は、第一の記憶領域１２０に格納するデータから予め生成した期待値を格納する。ここでは、第一の記憶領域１２０のうち、領域Ａ、領域Ｂ、および、領域Ｃのそれぞれから作成された期待値Ａと期待値Ｂと期待値Ｃとが格納される。これらの記憶領域は、メモリデバイスごと分けることが望ましいが、一つのメモリデバイス上で別領域として定義してもよい。
【００６８】
ドア制御装置４１０は、車両のドアモジュール４１１に接続されている。ドア制御装置４１０は、車両のドアのロック／アンロックを制御する。
【００６９】
ドア制御装置４１０の構成と機能について簡単に説明する。ドア制御装置４１０は、第二の制御部４２０、記憶領域４２１、状態検出部４２２、および、第二のデータ送受信部４２３を備えて構成されている。
【００７０】
第二の制御部４２０は、ドアモジュール４１１の動作の制御を実施する。
【００７１】
記憶領域４２１は、第二の制御部４２０が制御に必要とするデータを格納する。
【００７２】
状態検出部４２２は、ドアに関する状態情報として、ここでは、車両の運転席のドア開閉回数を収集する。ただし、状態情報は、これに限るものではなく、他のデータでもよい。
【００７３】
第二のデータ送受信部４２３は、ＣＡＮネットワーク４００を介して、モータ制御装置１００のデータ送受信部４０１とデータを送受信する。
【００７４】
次に、実施の形態２に係る車両制御システムのモータ制御装置１００の停止時および起動時の処理の流れについて、それぞれ、図７および図８のフローチャートを用いて説明する。図７の停止時の処理は、車両内のＩＧスイッチがＯＦＦにされたことの検知などをトリガーとして、モータ制御装置１００を停止させるときに最後の処理として実行される。図８の起動時の処理は、車両内のＩＧスイッチがＯＮにされたことなどをトリガーとして、モータ制御装置１００へ電源が供給されたとき、あるいは、リセットにより再起動されたときに、最初に実行される。
【００７５】
まず、モータ制御装置１００の停止時の処理について図７を用いて説明する。
【００７６】
図７において、ステップＳ５０１において、制御部１１０は、モータ制御に係る自身の処理が停止しているか否かを判定する。制御部１１０のモータ制御に係る処理が終了していれば、ステップＳ５０２へ進み、モータ制御に係る処理が終了していない場合は、終了するまで待機する。
【００７７】
続いて、ステップＳ５０２において、状態情報入手部１１２が、データ送受信部４０１を用いて、ドア制御装置４１０へ状態情報の送付を依頼する。
【００７８】
続いて、ステップＳ５０３において、状態情報入手部１１２は、ドア制御装置４１０から、状態情報として、ドア開閉回数の受信を完了させていれば、ステップＳ５０４へ進み、ドア開閉回数の受信が完了していない場合は、受信まで待機する。
【００７９】
ステップＳ５０４において、状態情報入手部１１２は、ドア制御装置４１０から受信したドア開閉回数を、第二の記憶領域１２１に対して格納を試みる。
【００８０】
続いて、ステップＳ５０５において、状態情報入手部１１２のドア開閉回数の格納が完了していれば、ステップＳ５０６へ進み、ドア開閉回数の格納が完了していない場合は、ステップＳ５０４へ戻る。
【００８１】
ステップＳ５０６において、停止部１１１は、電源リレー等を制御することにより、モータ制御装置１００への電源供給を停止して、モータ制御装置１００を停止させる。
【００８２】
次に、モータ制御装置１００の起動時の処理について図８を用いて説明する。
【００８３】
図８において、ステップＳ６０１において、モータ制御装置１００は、データ送受信部４０１を起動させる。
【００８４】
ステップＳ６０２において、起動モード確認部１１８は、起動モードの種別を確認する。起動モードが、駆動用モータ１０１の制御を行う「制御モード」であれば、ステップＳ６０３へ進み、起動モードが、第一の記憶領域１２０と第三の記憶領域１２２との格納データを書き換える「書き換えモード」であれば、ステップＳ６１０へ進む。
【００８５】
ステップＳ６０３において、状態情報入手部１１２が、データ送受信部４０１を用いて、ドア制御装置４１０へ状態情報の送付を依頼する。
【００８６】
続いて、ステップＳ６０４において、状態情報としてドア開閉回数の受信が完了していれば、ステップＳ６０５へ進み、ドア開閉回数の受信が完了していない場合は、受信が完了するまで待機する。
【００８７】
ステップＳ６０５において、第一の選択部１１６は、第二の記憶領域１２１に格納されているドア開閉回数と、ステップＳ６０４で状態情報入手部１１２が今回入手したドア開閉回数とを比較する。具体的には、第一の選択部１１６が、第二の記憶領域１２１に格納されているドア開閉回数から、ステップＳ６０４で状態情報入手部１１２が今回入手したドア開閉回数を差し引いた差分を求める。
【００８８】
続いて、ステップＳ６０６において、第一の選択部１１６は、ステップＳ６０５で求められた差分が、予め設定されたどの設定範囲に入っているかを確認する。差分の値が１より小さい範囲に入っている場合は、ステップＳ６０７へ進み、差分の値が１以上２以下の範囲に入っている場合は、ステップＳ６１２へ進み、差分の値が２より大きい範囲に入っている場合は、ステップＳ６１３へ進む。
【００８９】
ステップＳ６０７において、検証値生成部１１４は、第一の記憶領域１２０に格納されている領域Ａのデータから検証値Ａを生成する。
【００９０】
ステップＳ６１２において、検証値生成部１１４は、第一の記憶領域１２０に格納されている領域Ｂのデータから検証値Ｂを生成する。
【００９１】
ステップＳ６１３において、検証値生成部１１４は、第一の記憶領域１２０に格納されている領域Ｃのデータから検証値Ｃを生成する。
【００９２】
ステップＳ６０８において、第一の判定部１１５は、第三の記憶領域１２２に格納される期待値、すなわち、期待値Ａまたは期待値Ｂまたは期待値Ｃと、ステップＳ６０７、ステップＳ６１２、または、ステップＳ６１３で生成した検証値、すなわち、検証値Ａまたは検証値Ｂまたは検証値Ｃとを比較判定する。
【００９３】
つまり、領域Ａから検証値Ａを生成した場合は、検証値Ａと期待値Ａとを比較判定し、領域Ｂから検証値Ｂを生成した場合は、検証値Ｂと期待値Ｂとを比較判定し、領域Ｃから検証値Ｃを生成した場合は、検証値Ｃと期待値Ｃとを比較判定する。
【００９４】
続いて、ステップＳ６０９において、ステップＳ６０８の比較判定の結果、期待値と検証値とが同じであれば、ステップＳ６１１へ進み、期待値と検証値とが異なれば、制御部１１０を起動せずに、図８の処理フローを終了する。なお、ステップＳ６０７、ステップＳ６０８、ステップＳ６０９、ステップＳ６１２、および、ステップＳ６１３が、セキュアブート処理として処理時間を要する部分となる。
【００９５】
ステップＳ６１１において、制御起動部１１３は、制御部１１０を起動させる。
【００９６】
一方、ステップＳ６１０において、記憶領域書き換え部１１９は、第一の記憶領域１２０の格納データを書き換えるとともに、第三の記憶領域１２２に対して、第一の記憶領域１２０に格納したデータから予め生成した期待値を書き込む。その後、制御部１１０を実施せずに処理を終了する。なお、記憶領域書き換え部１１９に関しては、本実施の形態２の動作および効果には影響しないため、ここでは特に限定しない。
【００９７】
以上のように、本実施の形態２においては、モータ制御装置１００は、停止時に、図７に示す処理フローに従って、状態情報として、ドア制御装置４１０から受信したドア開閉回数を第二の記憶領域１２１に格納しておく。その後、モータ制御装置１００を起動するときには、図８に示す処理フローに従って、第二の記憶領域１２１に格納しておいたドア開閉回数と、再度ドア制御装置４１０から受信したドア開閉回数とを比較して、それらの差分を求める。次に、当該差分の値が、どの範囲に入っているかを確認する。その範囲に基づいて、モータ制御装置１００を終了してから本起動までにモータ制御装置１００にアクセスされている可能性の大小を考慮し、検証する範囲を最小限に狭めて、制御部１１０を起動させることができる。
【００９８】
本実施の形態２によれば、停止時の状態情報と、起動時の状態情報との比較によって、停止中に書き換えの為に起動されていないこと、あるいは、意図せず起動されていないことの可能性を考慮して、起動時の検証処理範囲を最小限に狭めることが出来るので、セキュリティに対する安全を確保しつつ高速に制御装置を起動することができる。
【００９９】
なお、上記の実施の形態２の説明において、状態情報を、ドア制御装置４１０が有するドアの開閉回数として説明したが、これに限るものではない。例えば、モータ制御装置１００が保有する車両に対するアクセス回数が示せる他の状態情報を用いても、同様に、検証する領域を狭めて、安全かつ高速に制御装置を起動することができる。また、他の制御装置が保有する時間情報などを状態情報として用いて、ステップＳ６０６で用いる検証時の設定範囲を適切に定めることで、短時間での再起動であることを検出し、同様に、検証する領域を狭めて、安全かつ高速に制御装置を起動することができる。
【０１００】
また、図７のステップＳ５０４で、状態情報を第二の記憶領域１２１に格納するときに、状態情報を暗号化するようにしてもよい。その場合には、図８のステップＳ６０５で、第二の記憶領域１２１に格納されている暗号化された状態情報を復号化する。このように、状態情報を第二の記憶領域１２１に格納するときに状態情報を暗号化することにより、状態情報そのものを改ざんされる可能性が下がり、セキュリティに対する安全性を高めることができる。
【０１０１】
さらに、ドア制御装置４１０が状態情報を送信するときに暗号化し、モータ制御装置１００が状態情報を受信した後に復号化することで、ＣＡＮネットワーク４００上で状態情報を改ざんされる可能性が下がり、セキュリティに対する安全性を高めることができる。
【０１０２】
また、実施の形態２では、通信線としてＣＡＮネットワーク４００を挙げて説明したが、ネットワークの種類はこれに限るものではない。
【０１０３】
さらに、本実施の形態２では、第一の記憶領域１２０を、領域Ａ、領域Ｂ、および、領域Ｃの３つに分ける場合を説明したが、これに限るものではない。第一の記憶領域１２０における、領域の個数、および、領域の分け方はこれに限るものではない。
【０１０４】
ここで、上述した実施の形態１および２に係るモータ制御装置１００、および、実施の形態２に係るドア制御装置４１０のハードウェア構成について説明する。
【０１０５】
上述した実施の形態１および２に係るモータ制御装置１００における各機能は、処理回路によって実現される。同様に、実施の形態２に係るドア制御装置４１０における各機能は、それぞれ、処理回路によって実現される。各機能を実現する処理回路は、専用のハードウェアであってもよく、メモリに格納されるプログラムを実行するプロセッサであってもよい。図９は、本発明の実施の形態１および２に係るモータ制御装置１００の各機能を専用のハードウェアである処理回路１０００で実現する場合を示した構成図である。また、同様に、本発明の実施の形態２に係るドア制御装置４１０の各機能についても、図９に示す専用のハードウェアである処理回路１０００で実現してよい。また、図１０は、本発明の実施の形態１および２に係るモータ制御装置１００の各機能をプロセッサ２００１およびメモリ２００２を備えた処理回路２０００により実現する場合を示した構成図である。また、同様に、本発明の実施の形態２に係るドア制御装置４１０の各機能についても、図１０に示すプロセッサ２００１およびメモリ２００２を備えた処理回路２０００により実現してもよい。
【０１０６】
処理回路が専用のハードウェアである場合、処理回路１０００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、またはこれらを組み合わせたものが該当する。モータ制御装置１００の制御部１１０、停止部１１１、状態情報入手部１１２、制御起動部１１３、検証値生成部１１４、第一の判定部１１５、第一の選択部１１６、カウント部１１７、起動モード確認部１１８、記憶領域書き換え部１１９、第一の記憶領域１２０、第二の記憶領域１２１、第三の記憶領域１２２、および、データ送受信部４０１との各部の機能それぞれを個別の処理回路１０００で実現してもよいし、各部の機能をまとめて処理回路１０００で実現してもよい。同様に、ドア制御装置４１０の第二の制御部４２０、記憶領域４２１、状態検出部４２２、および、第二のデータ送受信部４２３の各部の機能それぞれを個別の処理回路１０００で実現してもよいし、各部の機能をまとめて処理回路１０００で実現してもよい。
【０１０７】
一方、処理回路がプロセッサ２００１の場合、モータ制御装置１００の制御部１１０、停止部１１１、状態情報入手部１１２、制御起動部１１３、検証値生成部１１４、第一の判定部１１５、第一の選択部１１６、カウント部１１７、起動モード確認部１１８、記憶領域書き換え部１１９、第一の記憶領域１２０、第二の記憶領域１２１、第三の記憶領域１２２、および、データ送受信部４０１の各部の機能、並びに、ドア制御装置４１０の第二の制御部４２０、記憶領域４２１、状態検出部４２２、および、第二のデータ送受信部４２３の各部の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアおよびファームウェアは、プログラムとして記述され、メモリ２００２に格納される。プロセッサ２００１は、メモリ２００２に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、モータ制御装置１００およびドア制御装置４１０は、処理回路２０００により実行されるときに、それぞれ、制御ステップ、停止ステップ、状態情報入手ステップ、制御起動ステップ、検証値生成ステップ、第一の判定ステップ、第一の選択ステップ、カウントステップ、起動モード確認ステップ、記憶領域書き換えステップ、データ送受信ステップ、および、第二の制御ステップ、状態検出ステップ、第二のデータ送受信部が結果的に実行されることになるプログラムを格納するためのメモリ２００２を備える。
【０１０８】
これらのプログラムは、上述した各部の手順あるいは方法をコンピュータに実行させるものであるともいえる。ここで、メモリ２００２とは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の、不揮発性または揮発性の半導体メモリが該当する。また、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等も、メモリ２００２に該当する。
【０１０９】
なお、上述した各部の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【０１１０】
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述した各部の機能を実現することができる。
【０１１１】
以上、この発明の実施の形態１および２について説明したが、この発明は、実施の形態１および２に限定されるものではなく、種々の設計変更を行うことが可能である。その発明の範囲内において、各実施の形態を自由に組み合わせたり、あるいは、各実施の形態の構成を、適宜、変形、省略することが可能である。
【産業上の利用可能性】
【０１１２】
この発明は、車両制御システムのモータ制御装置として利用できる他、ＥＣＵで制御される制御装置を含むシステムであれば、起動時の記憶領域の検証部としてどのような制御装置にも利用することができる。
【符号の説明】
【０１１３】
１００  モータ制御装置、１０１  駆動用モータ、１１０  制御部、１１１  停止部、１１２  状態情報入手部、１１３  制御起動部、１１４  検証値生成部、１１５  第一の判定部、１１６  第一の選択部、１１７  カウント部、１１８  起動モード確認部、１１９  記憶領域書き換え部、１２０  第一の記憶領域、１２１  第二の記憶領域、１２２  第三の記憶領域、４００  ＣＡＮネットワーク、４０１  データ送受信部、４１０  ドア制御装置、４１１  ドアモジュール、４２０  第二の制御部、４２１  記憶領域、４２２  状態検出部、４２３  第二のデータ送受信部。
【図１】
2020072431.tif 000003
【図２】
2020072431.tif 000004
【図３】
2020072431.tif 000005
【図４】
2020072431.tif 000006
【図５】
2020072431.tif 000007
【図６】
2020072431.tif 000008
【図７】
2020072431.tif 000009
【図８】
2020072431.tif 000010
【図９】
2020072431.tif 000011
【図１０】
2020072431.tif 000012
【手続補正書】
【提出日】令和1年11月14日(2019.11.14)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2020072431.tif 000013
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2020072431.tif 000014