(57)【要約】【課題】時間駆動スケジューリングによりタスクを実行する車両制御装置において、共有メモリアクセスにともなう遅延を抑制する技術を提供する。【解決手段】本発明に係る車両制御装置は、タイムスロットの開始時点においてタスク実行制御部に対して安全要求レベルを通知することにより、タスクを実行する前にそのタスクが充足すべき安全条件を規定する。【選択図】図６
2019139669.tif 000002
【特許請求の範囲】
【請求項１】
車両の動作を制御する車両制御装置であって、
前記車両の動作を制御する第１および第２タスクを実行するタスク実行制御部を備え、
前記タスク実行制御部は、前記第１タスクに対してあらかじめ割り当てられた第１タイムスロットにおいて前記第１タスクを実行するとともに、前記第２タスクに対してあらかじめ割り当てられた第２タイムスロットにおいて前記第２タスクを実行し、
前記車両制御装置はさらに、前記第１および第２タイムスロットにおいて前記タスク実行制御部が実行するタスクが充足する必要がある安全要求レベルを前記タスク実行制御部に対して通知するスロット分類通知部を備え、
前記スロット分類通知部は、前記第１および第２タイムスロットそれぞれの開始時点において前記タスク実行制御部に対して前記安全要求レベルを通知することにより、前記タスク実行制御部が前記第１および第２タスクを実行する前に、前記第１および第２タスクが充足すべき安全条件を規定する
ことを特徴とする車両制御装置。
【請求項２】
前記車両制御装置はさらに、
前記第１タスクと前記第２タスクとの間で共有するデータを保持する共有データ部、
前記第１タスクと前記第２タスクとの間で共有するデータを前記共有データ部に格納する前に妥当性を検証するため一時的に保持する保護データ部、
を備え、
前記タスク実行制御部は、前記安全要求レベルが第１閾値未満であるタスクを実行するときは前記保護データ部に対してデータを書き込み、
前記タスク実行制御部は、前記安全要求レベルが前記第１閾値以上であるタスクを実行するときは前記共有データ部に対してデータを書き込む
ことを特徴とする請求項１記載の車両制御装置。
【請求項３】
前記車両制御装置はさらに、前記保護データ部に対して書き込まれたデータの妥当性をチェックする妥当性検証部を備え、
前記妥当性検証部は、前記保護データ部が保持しているデータが妥当であると判断した場合はそのデータを前記共有データ部に移行する
ことを特徴とする請求項２記載の車両制御装置。
【請求項４】
前記車両制御装置はさらに、前記第１タスクの信頼度と前記第２タスクの信頼度を定義する信頼度テーブルを備え、
前記タスク実行制御部は、前記安全要求レベルが前記第１閾値未満でありかつ前記信頼度テーブルが定義している前記信頼度が第２閾値以上であるタスクを実行するときは、前記共有データ部に対してデータを書き込む
ことを特徴とする請求項２記載の車両制御装置。
【請求項５】
前記タスク実行制御部は、前記安全要求レベルが前記第１閾値未満でありかつ前記信頼度テーブルが定義している前記信頼度が前記第２閾値未満であるタスクを実行するときは、前記保護データ部に対してデータを書き込む
ことを特徴とする請求項４記載の車両制御装置。
【請求項６】
前記タスク実行制御部は、前記安全要求レベルが前記第１閾値以上であるタスクを実行するときは、前記信頼度テーブルが定義している前記信頼度の値によらず、前記共有データ部に対してデータを書き込む
ことを特徴とする請求項４記載の車両制御装置。
【請求項７】
前記車両制御装置はさらに、前記保護データ部に対して書き込まれたデータの妥当性をチェックする妥当性検証部を備え、
前記妥当性検証部は、前記保護データ部が保持しているデータが妥当であると判断した場合はそのデータを前記共有データ部に移行する
ことを特徴とする請求項４記載の車両制御装置。
【請求項８】
前記車両制御装置はさらに、前記信頼度テーブルを更新する信頼度管理部を備え、
前記妥当性検証部は、前記タスク実行制御部が前記保護データ部に対してデータを書き込むごとに前記チェックを実施し、
前記信頼度管理部は、前記保護データ部に対して書き込まれたデータが妥当であると前記妥当性検証部が判断するごとに、前記保護データ部に対してデータを書き込んだタスクの前記信頼度を高める
ことを特徴とする請求項７記載の車両制御装置。
【請求項９】
前記信頼度管理部は、前記保護データ部に対して書き込まれたデータが妥当でないと前記妥当性検証部が判断したときは、前記保護データ部に対してデータを書き込んだタスクの前記信頼度を前記第２閾値未満に下げる
ことを特徴とする請求項８記載の車両制御装置。
【請求項１０】
前記第１タスクの前記安全要求レベルと前記第２タスクの前記安全要求レベルは異なる
ことを特徴とする請求項１記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両制御装置に関する。
【背景技術】
【０００２】
車両制御装置のように複数のタスクを実施する装置においては、共有メモリの更新による想定外の異常動作を防ぐため、共有メモリ内のデータを更新するときは、書込データの正常性を保護する。正常性の保護とは、タスクからの意図しない書き込みによるデータの破壊を防止することを意味する。
【０００３】
下記特許文献１は、タスク間の同期について記載している。同文献は、『よりタスク間での同期をとったタスクの実行を可能とすること。』を課題として、『本発明にかかる情報処理装置は、メモリと、メモリに格納されたデータを更新する第１のタスクが実行される第１のタイムパーティションと、メモリに格納されたデータに基づいて処理を実行する第２のタスクが実行される第２のタイムパーティションとを含む複数のタイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、第１のタスク及び第２のタスクを含む複数のタスクを実行するタスク実行部を備える。タスク実行部は、スケジューリング内容における第１のタイムパーティションのうち、予め定めた第１のタイムパーティションまでに、第１のタスクからメモリのデータを更新するための書き込みがあった場合、メモリのデータの更新を保留し、予め定めた第１のタイムパーティションがアクティブになってから、保留していたメモリのデータの更新を行う。』という技術を開示している（要約参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１４８９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１は、時間駆動スケジューリングによりタスクを実行する環境において、タスク間でデータを同期する共有メモリアクセスについて記載している。同文献においては、共有メモリに対して更新書き込みがあったとき、その更新をいったん保留することにより、更新データを使用するタスク間でデータの正常性を確保している（要約参照）。このようにデータの正常性を確保しつつ共有メモリにアクセスする手法は、データの正常性を保護するための処理に起因してある程度の遅延をともなう。
【０００６】
時間駆動スケジューリングによりタスクを実行する環境においては、エラーがタスク間で伝搬することを防ぎ、タスクが規定時間内に実行完了するように保証することが求められる。しかし特許文献１のような共有メモリアクセス手法は、正常性が比較的保証された安全タスクであっても、共有メモリにアクセスする際に遅延が生じ、タスクの実行時間を保証することが困難になる可能性がある。
【０００７】
本発明は、上記のような課題に鑑みてなされたものであり、時間駆動スケジューリングによりタスクを実行する車両制御装置において、共有メモリアクセスにともなう遅延を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る車両制御装置は、タイムスロットの開始時点においてタスク実行制御部に対して安全要求レベルを通知することにより、タスクを実行する前にそのタスクが充足すべき安全条件を規定する。
【発明の効果】
【０００９】
本発明に係る車両制御装置によれば、時間駆動スケジューリングによりタスクを実行する環境において、タスクが充足すべき安全条件に応じて正常性保護レベルを切り替えることができる。これにより共有メモリアクセスにともなう遅延を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る車両制御装置１００を備える車両システム１０の概略図である。
【図２】車両制御装置１００の構成図である。
【図３】タスクの状態遷移図である。
【図４】時間駆動スケジューリングによりタスクの実行順を制御する例を示すタイムチャートである。
【図５】スケジューリングテーブル１２３１の例である。
【図６】車両制御装置１００の詳細を説明する図である。
【図７】スケジューリング部１２３の動作を説明するフローチャートである。
【図８】タスクの動作手順を説明するフローチャートである。
【図９】スロット分類テーブル１３１１の例である。
【図１０】スロット分類通知部１３２の動作を説明するフローチャートである。
【図１１】保護適用判定部１２２の動作を説明するフローチャートである。
【図１２】データアクセス制御部１２１の動作を説明するフローチャートである。
【図１３】妥当性検証部１４２の動作を説明するフローチャートである。
【図１４】実施形態２に係る車両制御装置１００の詳細を説明する図である。
【図１５】信頼度テーブル１３１２の例である。
【図１６】妥当性検証部１４２の動作を説明するフローチャートである。
【図１７】スロット分類管理部１３１の動作を説明するフローチャートである。
【図１８】スロット分類通知部１３２の動作を説明するフローチャートである。
【図１９】保護適用判定部１２２の動作を説明するフローチャートである。
【図２０】動作ログ１５１の例である。
【図２１】動作ログ管理部１５０の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
＜実施の形態１：車両システムの構成＞
図１は、本発明の実施形態１に係る車両制御装置１００を備える車両システム１０の概略図である。車両システム１０は、車両制御装置１００、無線通信部１１、駆動装置１２、認識装置１３、出力装置１４、入力装置１５、通知装置１６を備える。
【００１２】
車両制御装置１００は、車両の動作を制御する装置であり、例えば自動運転ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）として構成されている。無線通信部１１は、地図などの情報を車外から取得する。駆動装置１２は、車両制御装置１００の制御にしたがって車両運動を制御する。駆動装置１２は、たとえばエンジン、ホイール、ブレーキ、操舵装置などを駆動する。認識装置１３は、外界から入力される情報を取得し、外界認識情報を生成するための情報を出力する。認識装置１３は、例えばカメラやセンサなどデバイスである。出力装置１４は、車両速度や警告などの情報を表示する。入力装置１５は、ペダル、ハンドルなど車両操作の指示を入力するための装置である。通知装置１６は、車両システム１０が外界に対して車両の状態などを通知するためのデバイスであり、例えばランプ、ＬＥＤ、スピーカなどによって構成されている。
【００１３】
＜実施の形態１：車両制御装置の構成＞
図２は、車両制御装置１００の構成図である。車両制御装置１００は、ソフトウェア２１０とハードウェア２２０によって構成されている。ソフトウェア２１０は、アプリケーション部１１０、タスク実行制御部１２０、システム管理部１３０、共有データ管理部１４０、動作ログ管理部１５０、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１６０を有する。ハードウェア２２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２２１、メモリ２２２、タイマ２２３、ネットワークアダプタ２２４、周辺装置２２５を有する。
【００１４】
アプリケーション部１１０は、車両制御装置１００が実行するアプリケーションプログラムの集合である。プログラムを実際に実行するのはＣＰＵ２２１であるが、以下では記載の便宜上、各プログラムを動作主体として説明する場合がある。アプリケーションプログラムとしては例えば、センサーフュージョン２１１、マップフュージョン２１２、ＡＤＡＳ（Ａｄｖａｎｃｅｄ  Ｄｒｉｖｉｎｇ  Ａｓｓｉｓｔａｎｔ  Ｓｙｓｔｅｍ）２１３、オートパーキング２１４などがある。センサーフュージョン２１１は、センサなどの周辺装置２２５から外部情報を取得する。マップフュージョン２１２は、自動運転のための地図情報を処理する。ＡＤＡＳ２１３は、（ａ）他の車両などに追突しそうになる直前に自動ブレーキを作動させて停止させる、（ｂ）前を走る車両と一定の間隔を保ったまま追従する、（ｃ）車線からはみ出さないようにステアリングを制御する、などの自動運転機能を実現する。オートパーキング２１４は、自動駐車を実現する。
【００１５】
タスク実行制御部１２０は、アプリケーション部１１０が有する各プログラムを、時間駆動スケジューリングによりリアルタイム性を保ちながらタスクとして実行する。共有データ管理部１４０は、タスク実行制御部１２０が実行するタスク間で共通して使用するデータを一元的に管理する。これにより各アプリケーションはデータ管理処理を省くことができるので、自動運転において求められる高速な応答を実現できる。システム管理部１３０は各タスクの動作を制御する方法を管理する。これら機能部の詳細については後述する。動作ログ管理部１５０は、各タスクの動作を記録する。ＯＳ１６０は例えば組込ＯＳである。
【００１６】
メモリ２２２は、ＣＰＵ２２１が一時的に使用するデータを格納する。タイマ２２３は、リアルタイム制御のタイミングをとるためのものである。ネットワークアダプタ２２４は、ネットワークにアクセスするインターフェースである。周辺装置２２５は、センサなどの外部状況を監視するデバイス、自動ブレーキ装置などのアクチュエータ、などの装置である。
【００１７】
＜実施の形態１：タスクスケジューリングについて＞
車両制御装置１００の詳細について説明する前に、タスクスケジューリングに関する概要をまず説明する。ＯＳが管理対象とするプログラムの並行実行の単位、すなわち１つのタスク中のプログラムは逐次的に実行されるのに対して、異なるタスクのプログラムは並行して実行される。ただし、並行して実行されるというのは、アプリケーションからみた概念的な動作であり、実装上はＯＳの制御のもとで、それぞれのタスクが時間駆動で実行される。タスクは１アプリケーションにつき最低１個生成される。
【００１８】
タスクは、処理の内容に応じて実行時間を保証しなければならないものと、実行時間が多少遅れてもよいものがある。ＩＳＯ２６２６２においては機能安全の視点から、タスクを危険事象の低いものから高いものへ順にＱＭ（Ｑｕａｌｉｔｙ  Ｍａｎａｇｅｍｅｎｔ）、ＡＳＩＬ−Ａ（Ａｕｔｏｍｏｔｉｖｅ  Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ−Ａ）、ＡＳＩＬ−Ｂ（Ａｕｔｏｍｏｔｉｖｅ  Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ−Ｂ）、ＡＳＩＬ−Ｃ（Ａｕｔｏｍｏｔｉｖｅ  Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ−Ｃ）、ＡＳＩＬ−Ｄ（Ａｕｔｏｍｏｔｉｖｅ  Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ−Ｄ）に分類している。大きく分類すると、安全性担保という点において実行時間を保証しなければならないタスクはＡＳＩＬ、安全保障に関係がなく実行時間が多少遅れてもよいタスクはＱＭとなる。
【００１９】
図３は、タスクの状態遷移図である。タスクの状態は、以下のように分類される。（１）実行状態（ＲＵＮＮＩＮＧ）３０１：ＣＰＵが割り当てられタスクが実行している状態。（２）実行可能状態（ＲＥＡＤＹ）３０２：タスクを実行する条件は整っているが、当該タスクよりも優先順位が高いタスクが実行状態であるため、実行できない状態。（３）待機状態（ＷＡＩＴＩＮＧ）３０３：何らかの条件が整うまで、実行を中断した状態。（４）休止状態（ＤＯＲＭＡＮＴ）３０４：タスクがいまだ起動されていないか、終了した状態。タスク実行制御部１２０は各タスクの状態を制御する。
【００２０】
新規に生成したタスクは最初に休止状態３０４に移行し、タスク起動によって実行可能状態３０２へと遷移する。時間駆動スケジューリングにおいては、タスクに割り当てられた時間（スロット）の開始タイミングにおいてタスクがディスパッチされ、実行状態３０１へと遷移し、タスク処理を実行する。タスクの実行が完了、もしくは割り当てられたスロットの時間が終了した場合、タスク状態は実行可能状態３０２へ遷移する。
【００２１】
タスクがリソースを要求し、排他制御によりリソースを取得できない場合は、タスク状態を待機状態３０３へ遷移させる。その後リソースが解放されて当該タスクがそのリソースを取得できるようになった場合は、タスク状態を待機状態３０３から実行可能状態３０２へ遷移させる。タスクが強制終了命令を受けた、もしくはタスク自身が終了処理を実施した場合、タスク状態は休止状態３０４へ遷移される。
【００２２】
図４は、時間駆動スケジューリングによりタスクの実行順を制御する例を示すタイムチャートである。時間駆動スケジューリングとは、あらかじめ決められた実行順にしたがって、あらかじめ決められた時刻において、あらかじめ決められた時間長だけタスクを実行する、ＯＳのタスク実行スケジューリング手法である。図４の横軸は時間経過であり、スロットＩＤ（ここではＳＬ１からＳＬ９）が割り振られることにより、各タイムスロットに分割されている。タスク（ここではｔ＿１、ｔ＿２、ｔ＿３）は割り当てられたスロットの時間内で処理される。最後のスロットへ到達した場合、最初のスロット（ＳＬ１）に戻りスケジューリングを継続する。
【００２３】
図５は、スケジューリングテーブル１２３１の例である。後述するスケジューリング部１２３は、スケジューリングテーブル１２３１を用いて、各タスクの実行スケジュールを管理する。スケジューリングテーブル１２３１はデータフィールドとして、スロットＩＤ、スロット開始時刻、スロット終了時刻、タスクＩＤ、時間エラー判定フラグ、排他ＩＤを有する。排他ＩＤは、タスクが自ら待機状態へ遷移するために用いる。スケジューリング部１２３は、各タスクの実行周期、最悪実行時間、安全要求レベルなどの情報に基づいてスケジューリングテーブル１２３１を作成する。スケジューリングテーブル１２３１の１サイクルの長さは、全タスクの実行周期を満たす長さとなるように作成される。サイクルの終端へ到達した場合、最初のスロットに戻りスケジューリングを継続する。
【００２４】
＜実施の形態１：車両制御装置の詳細＞
図６は、車両制御装置１００の詳細を説明する図である。便宜上、アプリケーション部１１０が実行するタスクを、第１タスク１１１と第２タスク１１２に分類した。タスク実行制御部１２０は、安全要求レベルの低いアプリケーションを第１タスク１１１として処理し、安全要求レベルの高いアプリケーションを第２タスク１１２として処理するものとする。
【００２５】
タスク実行制御部１２０は、データアクセス制御部１２１、保護適用判定部１２２、スケジューリング部１２３、タスク状態管理部１２４を有する。データアクセス制御部１２１は、共有データ管理部１４０が保持している共有データに対する書込アクセス要求を各タスクから受け付けて各タスクに代わってその共有データにアクセスする。保護適用判定部１２２は、タスクがアクセスする共有データの正常性を保護する必要があるか否かを判定する。スケジューリング部１２３は、スケジューリングテーブル１２３１を用いてタスクをスケジューリングする。タスク状態管理部１２４は、各タスクの状態を管理する。これら機能部の詳細については後述する。
【００２６】
共有データ管理部１４０は、共有データ部１４１、妥当性検証部１４２、保護通信データ部１４３を有する。共有データ部１４１は、タスク間で共有するデータを保持する。保護通信データ部１４３は、正常性を保護する必要があるデータを保持する。妥当性検証部１４２は、正常性を保護する必要があるデータが妥当であるか否かを検査し、正常なデータのみ保護通信データ部１４３から共有データ部１４１へ移動させる。これら機能部の詳細については後述する。
【００２７】
システム管理部１３０は、スロット分類管理部１３１、スロット分類通知部１３２、スロット時間監視部１３３を有する。スロット時間監視部１３３は、タスクがスロットの時間内で完了するか否かを監視する。スロット分類管理部１３１は、各スロットがデータの正常性を保護する必要があるか否か（本発明においてこれをスロット分類と呼ぶ）を管理する。スロット分類通知部１３２は、現在のスロット分類を保護適用判定部１２２へ通知する。これら機能部の詳細については後述する。
【００２８】
図７は、スケジューリング部１２３の動作を説明するフローチャートである。スケジューリング部１２３は、各スロットの開始時刻になるごとに、タイマ２２３にしたがって本フローチャートを開始する。以下図７の各ステップについて説明する。
【００２９】
（図７：ステップＳ１０１）
スケジューリング部１２３は、前のスロットのタスクが実行完了しているか否か判定する。完了している場合はステップＳ１０６へスキップし、完了していない場合はステップＳ１０２へ進む。
【００３０】
（図７：ステップＳ１０２）
スケジューリング部１２３は、スケジューリングテーブル１２３１が記述している当該タスクの時間エラー判定フラグを参照する。フラグが「する」であればステップＳ１０４へ進み、それ以外であればステップＳ１０３へ進む。
【００３１】
（図７：ステップＳ１０２：補足）
時間エラー判定フラグは、当該タスクがスロット時間内に完了したか否かを判定する場合は「する」にセットされている。すなわちそのタスクは、スロット時間内に完了することが予定されている。時間エラー判定フラグが「する」以外である場合、そのタスクは複数のスロットにまたがって実行されることが予定されている。ステップＳ１０３〜Ｓ１０５はこのことを前提にしている。
【００３２】
（図７：ステップＳ１０３）
スケジューリング部１２３は、タスク状態管理部１２４を介して、前のスロットのタスク状態を待機状態へ遷移させる。本ステップを実施する場合、前のスロットのタスクはスロット時間内に完了しないことが予定されているからである。
【００３３】
（図７：ステップＳ１０４〜Ｓ１０５）
スケジューリング部１２３は、前のスロットのエラーフラグを立てる（Ｓ１０４）。スケジューリング部１２３は、タスク状態管理部１２４を介して、前のスロットのタスクを強制終了して休止状態へ遷移させる（Ｓ１０５）。強制終了には時間を要するので、Ｓ１０５においてタスクを一時的に待機状態へ遷移させ、空いているスロットで休止状態へ遷移させてもよい。
【００３４】
（図７：ステップＳ１０６〜Ｓ１０７）
スケジューリング部１２３は、スケジューリングテーブル１２３１が記述している終了時刻においてスケジューリング部１２３が動作開始するように、タイマ２２３をセットする（Ｓ１０６）。スケジューリング部１２３は、タスク状態管理部１２４を介して、現在のスロットに割り当てられたタスクを実行状態へ遷移させる（Ｓ１０７）。スロットにタスクが割り当てられていない場合には、そのスロットではタスクを動作させない。スケジューリング部１２３は以上のステップにしたがって、決められたスロット時間内でタスクを実行する。
【００３５】
図８は、タスクの動作手順を説明するフローチャートである。本フローチャートは各タスクが共通的に実施する動作を説明する。タスクは、当該タスクの内容（内部処理と呼ぶ）を実行する（Ｓ８０１）。タスクは現タイムスロットにおける処理を実行完了すると、スケジューリング部１２３が参照することができる実行完了フラグを立ち上げる（Ｓ８０２）。タスクは、自身に割り当てられたセマフォなどの排他制御機構のキューに入り、待機状態に遷移する（Ｓ８０３）。スケジューリング部１２３は、タスクの排他制御機構を解放することにより、当該タスクを実行可能状態へ遷移させるとともに、当該タスクの実行完了フラグを立ち下げる（Ｓ８０４）。これに代えて当該タスクが次のタイムスロット開始時において前の実行完了フラグを立ち下げてもよい。タスクは車両制御装置１００が停止するまで、以上の処理を繰り返す（Ｓ８０５）。
【００３６】
図９は、スロット分類テーブル１３１１の例である。スロット分類管理部１３１は、スロット分類テーブル１３１１に各スロットのスロット分類を記述することによりこれを管理する。スロット分類テーブル１３１１はデータフィールドとして、スロットＩＤ、タスクＩＤ、スロット分類を有する。スロット分類は各スロットに割り当てられている。例えば各タスクの安全要求レベルに対応するスロット分類を各スロットに割り当てることができる。ここでは２種類の分類（ＡＳＩＬとＱＭ）を例示した。以下の説明においてもこの分類を用いる。
【００３７】
図１０は、スロット分類通知部１３２の動作を説明するフローチャートである。スロット分類通知部１３２は、スロット時間が開始するときスロットＩＤを次スロットのＩＤに更新する（Ｓ１００１）。スロット分類通知部１３２は、スロット分類管理部１３１を介して、現在のスロットＩＤに対応するスロット分類を取得する（Ｓ１００２）。スロット分類通知部１３２は、取得したスロット分類を保護適用判定部１２２へ通知する（Ｓ１００３）。
【００３８】
図１１は、保護適用判定部１２２の動作を説明するフローチャートである。タスクから共有データ管理部１４０に対する書込アクセス要求があった場合、保護適用判定部１２２はスロット分類通知部１３２から現スロットのスロット分類を受信する（Ｓ１１０１）。保護適用判定部１２２は、スロット分類がＱＭであるか否かを判定する（Ｓ１１０２）。スロット分類がＱＭであれば保護適用が必要であり（Ｓ１１０３）、それ以外であれば保護適用は不要である（Ｓ１１０４）。保護適用判定部１２２は判定結果をデータアクセス制御部１２１へ通知する（Ｓ１１０５）。
【００３９】
図１２は、データアクセス制御部１２１の動作を説明するフローチャートである。タスクから共有データ管理部１４０に対する書込アクセス要求があった場合、データアクセス制御部１２１は保護適用判定部１２２から判定結果を受信し（Ｓ１２０１）、保護適用要否を判定する（Ｓ１２０２）。データアクセス制御部１２１は、保護適用が必要であれば保護通信データ部１４３に対してデータを書き込み（Ｓ１２０３）、保護適用が不要であれば共有データ部１４１に対してデータを書き込む（Ｓ１２０４）。
【００４０】
図１３は、妥当性検証部１４２の動作を説明するフローチャートである。保護通信データ部１４３へデータが書き込まれた場合、妥当性検証部１４２は保護通信データ部１４３に対して書き込まれたデータの妥当性を検証する（Ｓ１３０１）。ここでいう妥当性チェックは例えば、（ａ）データが想定されている範囲内に収まっているか否かをチェックする、（ｂ）パリティチェックなどの妥当性検証手段を用いる、などのことである。その他適当な妥当性検証を実施することもできる。妥当性検証部１４２は、データが正常であれば共有データ部１４１へそのデータを書き込む（Ｓ１３０２）。データが異常であればそのデータを削除し（Ｓ１３０３）、現在スロットの異常通信フラグをＯＮにする（Ｓ１３０４）。
【００４１】
＜実施の形態１：まとめ＞
本実施形態１に係る車両制御装置１００は、安全要求レベルが高い第２タスク１１２（ＡＳＩＬ）を実行する際には共有データ部１４１に対してデータを書き込み、安全要求レベルが低い第１タスク１１１（ＱＭ）を実行する際には保護通信データ部１４３に対してデータを書き込む。妥当性検証部１４２は、保護通信データ部１４３に対して書き込まれたデータを検証した上で、共有データ部１４１に移行する。これにより、第２タスク１１２については遅延を防止しつつ、第１タスク１１１についてはデータの正常性を維持し、リアルタイム性とデータ正常性を両立することができる。
【００４２】
＜実施の形態２：車両制御装置の構成＞
図１４は、本発明の実施形態２に係る車両制御装置１００の詳細を説明する図である。本実施形態２においては、タスクの信頼性を判断し、信頼できるタスクについては妥当性チェックを実施しないこととする。妥当性検証部１４２／スロット分類管理部１３１／スロット分類通知部１３２／保護適用判定部１２２以外の動作は実施形態１と同様であるので、以下では主に差異点について説明する。
【００４３】
図１５は、信頼度テーブル１３１２の例である。スロット分類管理部１３１は、スロット分類テーブル１３１１に加えて信頼度テーブル１３１２を保持する。信頼度テーブル１３１２は各タスクの信頼度を管理するデータテーブルであり、データフィールドとしてタスクＩＤ、信頼度カウンタ、信頼フラグを有する。信頼度カウンタの初期値は０であり、後述するフローチャートによってカウント値が変化する。信頼フラグは各タスクの現在の信頼度レベルを表す。ＱＭタスクの初期値は「評価実施中」、ＡＳＩＬタスクの初期値は「信頼」である。
【００４４】
図１６は、妥当性検証部１４２の動作を説明するフローチャートである。ステップＳ１６０１、Ｓ１６０２、Ｓ１６０４は、ステップＳ１３０１〜Ｓ１３０３とそれぞれ同じである。妥当性検証部１４２はステップＳ１６０２に続いて、現在スロットの正常通信フラグをＯＮにする（Ｓ１６０３）。妥当性検証部１４２はステップＳ１６０４に続いて、現在スロットの異常通信フラグをＯＮにする（Ｓ１６０５）。
【００４５】
図１７は、スロット分類管理部１３１の動作を説明するフローチャートである。スロット分類管理部１３１は、スロット終端において本フローチャートを開始し、妥当性検証部１４２による検証結果を利用してタスクの信頼度を管理する。以下図１７の各ステップについて説明する。
【００４６】
（図１７：ステップＳ１７０１）
スロット分類管理部１３１は、現在のスロットの信頼フラグが「非信頼」である場合は、信頼度カウンタを更新せずステップＳ１７０９へスキップする。それ以外であればステップＳ１７０２以降を実施する。
【００４７】
（図１７：ステップＳ１７０２〜Ｓ１７０４）
スロット分類管理部１３１は、現在の異常通信フラグがＯＮであれば（Ｓ１７０２）、現在のスロットの信頼フラグを「非信頼」にセットし（Ｓ１７０３）、信頼度カウンタをリセットする（Ｓ１７０４）。現在の異常通信フラグがＯＦＦであればステップＳ１７０５へ進む。
【００４８】
（図１７：ステップＳ１７０５〜Ｓ１７０８）
スロット分類管理部１３１は、現在の正常通信フラグがＯＮであれば（Ｓ１７０５）、信頼度カウンタを１つインクリメントし（Ｓ１７０６）、信頼度カウンタが規定値以上に達すれば（Ｓ１７０７）、信頼フラグを「信頼」にセットする（Ｓ１７０８）。現在の正常通信フラグがＯＦＦであるか、または信頼度カウンタが規定値未満であれば、ステップＳ１７０９へスキップする。
【００４９】
（図１７：ステップＳ１７０９）
スロット分類管理部１３１は、信頼フラグと信頼度カウンタをセットした後、妥当性検証部１４２が立ち上げた異常通信フラグと正常通信フラグをＯＦＦにする。
【００５０】
図１８は、スロット分類通知部１３２の動作を説明するフローチャートである。スロット分類通知部１３２は、スロットＩＤを現在値に更新した後（Ｓ１８０１）、現スロットのスロット分類（Ｓ１８０２）と信頼フラグ（Ｓ１８０３）をスロット分類管理部１０９から取得する。スロット分類通知部１３２は、取得したスロット分類（Ｓ１８０４）と信頼フラグ（Ｓ１８０５）を保護適用判定部１２２へ通知する。
【００５１】
図１９は、保護適用判定部１２２の動作を説明するフローチャートである。保護適用判定部１２２は、スロット分類通知部１３２から現スロットのスロット分類と信頼フラグを受信する（Ｓ１９０１）。スロット分類がＱＭかつ信頼フラグが「信頼」以外の場合、保護適用が必要と判定する（Ｓ１９０２、Ｓ１９０３、Ｓ１９０４）。スロット分類がＱＭ以外もしくは信頼フラグが「信頼」の場合、保護適用は不要と判定する（Ｓ１９０２、Ｓ１９０３、Ｓ１９０５）。保護適用判定部１２２は、判定結果をデータアクセス制御部１０５へ通知する（Ｓ１９０６）。
【００５２】
＜実施の形態２：まとめ＞
本実施形態２に係る車両制御装置１００は、安全要求レベルが低い第１タスク１１１（ＱＭ）を実施する際には、信頼フラグによりその信頼度を判定し、信頼できる場合は妥当性チェックを省略する。また安全要求レベルが高い第２タスク１１２（ＡＳＩＬ）については、実施形態１と同様に信頼度によらず妥当性チェックを省略する。これにより、安全性を確保しつつ実行時間を確保することができる。
【００５３】
本実施形態２においては、スロット分類がＡＳＩＬであるタスク（第２タスク１１２）については妥当性チェックを省略することとしたが、ＡＳＩＬタスクのうち全部または一部については妥当性チェックの対象としてもよい。例えば、ステップＳ１９０２において保護適用不要とみなす閾値レベルを、ＡＳＩＬ−Ｄよりも高くすることにより、全てのＡＳＩＬタスクおよびＱＭタスクがステップＳ１９０３を経由することになる。すなわち信頼度カウンタによりタスクの信頼度を判定することになる。
【００５４】
＜実施の形態３＞
図２０は、動作ログ１５１の例である。動作ログ管理部１５０は、後述するフローチャートにしたがって各タスクの動作ログ１５１を記録する。動作ログ１５１はデータフィールドとして、開始時刻、終了時刻、タスクＩＤ、終了時の状態、を有する。動作ログ１５１を記録することにより、各時刻におけるタスクの状態を確認することができる。また、異常なデータ通信を試みたタスクを発見することができる。特に終了時の状態を記録しておくことにより、タスクが正常に動作しているか、時間違反が発生したことによる強制終了か、異常通信を発生させたか、などを確認することができる。
【００５５】
図２１は、動作ログ管理部１５０の動作を説明するフローチャートである。動作ログ管理部１５０は、各タイムスロットにおいてタスクの開始時刻／終了時刻／タスクＩＤを取得する（Ｓ２１０１）。動作ログ管理部１５０は、タスクの終了時の状態を取得する（Ｓ２１０２）。動作ログ管理部１５０は、取得した各情報を動作ログ１５１として出力する（Ｓ２１０３）。
【００５６】
＜実施の形態４＞
スケジューリングテーブル１２３１、スロット分類テーブル１３１１、信頼度テーブル１３１２は、自動生成することもできる。例えば各タスクの周期や最悪実行時間などの設計データにしたがって、スケジューリングテーブル１２３１を自動生成することが考えられる。さらに、生成したスケジューリングテーブル１２３１を各タスクの安全要求レベルを用いて、スロット分類テーブル１３１１を自動生成することができる。信頼度テーブル１３１２は、各タスクの安全要求レベルから自動生成することができる。
【００５７】
各テーブルの自動生成は、例えば車両制御装置１００に搭載するプログラムを開発するための開発ツールの機能として実装することができる。これにより、各タスクの保護適用要否を考慮することなくプログラムを開発できるので、開発効率向上に資する。
【００５８】
＜本発明の変形例について＞
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
【００５９】
以上の実施形態において、車両制御装置１００の構成について説明したが、時間駆動スケジューリングによってタスクを実行するその他の制御システムにおいても、本発明と同様の手法を用いることができる。
【００６０】
以上の実施形態において、スロット分類としてＱＭとＡＳＩＬを説明したが、スロット分類はこれに限られるものではない。例えばＱＭとＡＳＩＬに代えてまたはこれらに加えて、他社開発アプリケーション／自社開発アプリケーション、非安全タスク／安全タスク、などのスロット分類を用いてもよい。
【００６１】
実施形態４において、タスクの安全要求レベルに応じてテーブルを自動生成することを説明したが、スロット分類と同様に、その他の情報を用いてテーブルを自動生成してもよい。例えば他社開発アプリケーション／自社開発アプリケーションの区分に応じて、スロット分類テーブル１３１１を自動生成することが考えられる。
【符号の説明】
【００６２】
１００：車両制御装置
１１０：アプリケーション部
１１１：第１タスク
１１２：第２タスク
１２０：タスク実行制御部
１２１：データアクセス制御部
１２２：保護適用判定部
１２３：スケジューリング部
１２４：タスク状態管理部
１３０：システム管理部
１３１：スロット分類管理部
１３２：スロット分類通知部
１３３：スロット時間監視部
１４０：共有データ管理部
１４１：共有データ部
１４２：妥当性検証部
１４３：保護通信データ部
１５０：動作ログ管理部
【図１】
2019139669.tif 000003
【図２】
2019139669.tif 000004
【図３】
2019139669.tif 000005
【図４】
2019139669.tif 000006
【図５】
2019139669.tif 000007
【図６】
2019139669.tif 000008
【図７】
2019139669.tif 000009
【図８】
2019139669.tif 000010
【図９】
2019139669.tif 000011
【図１０】
2019139669.tif 000012
【図１１】
2019139669.tif 000013
【図１２】
2019139669.tif 000014
【図１３】
2019139669.tif 000015
【図１４】
2019139669.tif 000016
【図１５】
2019139669.tif 000017
【図１６】
2019139669.tif 000018
【図１７】
2019139669.tif 000019
【図１８】
2019139669.tif 000020
【図１９】
2019139669.tif 000021
【図２０】
2019139669.tif 000022
【図２１】
2019139669.tif 000023