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

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

▶ 日立オートモティブシステムズ株式会社の特許一覧

特開2024-47740電子制御装置、車両制御システム、及びタスクの制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024047740
(43)【公開日】2024-04-08
(54)【発明の名称】電子制御装置、車両制御システム、及びタスクの制御方法
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240401BHJP
【FI】
G06F9/48 300A
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022153400
(22)【出願日】2022-09-27
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】溝口 将史
(72)【発明者】
【氏名】蛯名 朋仁
(72)【発明者】
【氏名】前田 功治
(72)【発明者】
【氏名】石郷岡 祐
(72)【発明者】
【氏名】吉村 健太郎
(57)【要約】
【課題】車両制御ソフトの変更前後で既存のタスクに関して処理結果が変化しないことが保証できるタスクのスケジューリングを提供する。
【解決手段】タイムスロット割り付け部は、当該新規タスクに入力されるデータを生成するタスクの情報と当該新規タスクを起動するタイムスロットから起算して何周期前に前記タスクが生成したデータを使用するかの情報を含むデータフロー要求情報、及び、当該新規タスクを実行するために必要なタイムスロット数の情報を含むタイムスロット要求情報との入力を受け、タイムスロット割り付け情報と前記データフロー要求情報と前記タイムスロット要求情報とに基づいて、前記新規タスクを実行する空きタイムスロットを探索し、前記探索された空きタイムスロットに当該新規タスクを割り付けるように前記タイムスロット割り付け情報を更新することを特徴とする電子制御装置。
【選択図】図1
【特許請求の範囲】
【請求項1】
電子制御装置であって、
所定の演算処理を行って、周期的にタスクを実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを備え、
前記タスクのデータ入力とデータ出力のタイミングは予め定められており、
前記予め定められたデータ入力タイミングからデータ出力タイミングの間における前記タスクの実行タイミングを規定するタイムスロット割り付け情報を保存するタイムスロット割り付け情報保存部と、
前記タイムスロット割り付け情報に従って前記タスクを起動するタスク起動部と、
新規タスクの実行タイミングに従って、当該新規タスクの情報を前記タイムスロット割り付け情報保存部に保存するタイムスロット割り付け部とを有し、
前記タイムスロット割り付け部は、
当該新規タスクに入力されるデータを生成するタスクの情報と当該新規タスクを起動するタイムスロットから起算して何周期前に前記タスクが生成したデータを使用するかの情報を含むデータフロー要求情報、及び、当該新規タスクを実行するために必要なタイムスロット数の情報を含むタイムスロット要求情報との入力を受け、
前記タイムスロット割り付け情報と前記データフロー要求情報と前記タイムスロット要求情報とに基づいて、前記新規タスクを実行する空きタイムスロットを探索し、
前記探索された空きタイムスロットに当該新規タスクを割り付けるように前記タイムスロット割り付け情報を更新することを特徴とする電子制御装置。
【請求項2】
請求項1に記載の電子制御装置であって、
前記タイムスロット割り付け部は、前記新規タスクのレイテンシが短くなるように、前記探索された空きタイムスロットに当該新規タスクを割り付けて前記タイムスロット割り付け情報を更新することを特徴とする電子制御装置。
【請求項3】
請求項1に記載の電子制御装置であって、
前記タイムスロット割り付け部は、
前記新規タスクに関する前記データフロー要求情報と前記タイムスロット要求情報の両方を満たす空きタイムスロットの探索に失敗した場合、前記データフロー要求情報と前記タイムスロット割り付け情報を参照し、既存タスクのデータフロー要求を満たすように前記既存タスクに割り付けたタイムスロットを変更して空きタイムスロットを生成し、
前記生成された空きタイムスロットに当該新規タスクの実行を割り付けるように前記タイムスロット割り付け情報を更新することを特徴とする電子制御装置。
【請求項4】
請求項1に記載の電子制御装置であって、
前記タスクを実行する他の電子制御装置と時刻同期し、
各タスクの入力と出力のタイミングは前記同期された時刻に基づいて予め定められており、
前記データフロー要求情報に基づいて前記他の電子制御装置との間でデータ通信が必要な場合、前記タイムスロット割り付け情報は予め定められた前記タスク間のデータ通信のタイミングを含むことを特徴とする電子制御装置。
【請求項5】
請求項1に記載の電子制御装置であって、
前記タイムスロット割り付け部は、前記新規タスクに関する前記データフロー要求情報と前記タイムスロット要求情報の両方を満たす空きタイムスロットの探索に失敗した場合、当該新規タスクの追加要求を棄却し、前記データフロー要求情報と前記タイムスロット割り付け情報を更新しないことを特徴とする電子制御装置。
【請求項6】
請求項1に記載の電子制御装置であって、
前記タイムスロット割り付け部は、
既存の前記タスクの処理時間が増加又は減少した場合、前記タイムスロット割り付け情報と前記データフロー要求情報と前記タイムスロット要求情報とに基づいて、前記処理時間が変更される既存のタスクを実行する空きタイムスロットを探索し、
前記探索された空きタイムスロットに当該既存のタスクを割り付けるように前記タイムスロット割り付け情報を更新することを特徴とする電子制御装置。
【請求項7】
請求項1に記載の電子制御装置であって、
前記タイムスロット割り付け部は、
既存の前記タスクの削除要求に従って、前記データフロー要求情報及び前記タイムスロット割り付け情報から前記削除要求にかかる既存のタスクの情報を削除することを特徴とする電子制御装置。
【請求項8】
請求項7に記載の電子制御装置であって、
前記タイムスロット割り付け部は、
前記データフロー要求情報を解析し、
前記削除にかかる既存のタスクが他の前記タスクの入力データを生成する場合、当該削除要求を棄却し、前記データフロー要求情報と前記タイムスロット割り付け情報を更新しないことを特徴とする電子制御装置。
【請求項9】
車両制御システムであって、
請求項1から8のいずれか一つに記載の電子制御装置と、
前記電子制御装置と通信可能なサーバとを備え、
前記サーバは、
タイムスロット割り付け情報とデータフロー要求情報を保存し、
前記タイムスロット割り付け情報と前記データフロー要求情報とに基づいて、タイムスロットの要求に従って空きタイムスロットを探索し、
前記探索された空きタイムスロットに前記要求にかかるタスクを割り付けるように前記タイムスロット割り付け情報を更新し、
前記更新されたタイムスロット割り付け情報を前記電子制御装置に送信し、
前記電子制御装置は、前記サーバから受信したタイムスロット割り付け情報で、自己が保存するタイムスロット割り付け情報を更新することを特徴とする車両制御システム。
【請求項10】
請求項9に記載の車両制御システムであって、
前記サーバは、前記タイムスロットの探索の結果として、前記タスクのタイムスロット数の変更の要求の棄却に関する情報を提示する改善情報表示部を有し、
当該棄却に関する情報は、前記データフロー要求情報を満たす空きタイムスロット数の最大値、及び、前記入力データを生成する既存のタスクの情報の少なくとも一つを含むことを特徴とする車両制御システム。
【請求項11】
電子制御装置が実行するタスクの制御方法であって、
前記電子制御装置は、所定の演算処理を行って、周期的にタスクを実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを有し、
前記タスクのデータ入力とデータ出力のタイミングは予め定められており、
前記記憶装置は、前記予め定められたデータ入力タイミングからデータ出力タイミングの間における前記タスクの実行タイミングを規定するタイムスロット割り付け情報を保存し、
前記タスクの制御方法は、
前記演算装置が、前記タイムスロット割り付け情報に従って前記タスクを起動するタスク起動手順と、
前記演算装置が、新規タスクの実行タイミングに従って、当該新規タスクの情報を保存するタイムスロット割り付け手順とを含み、
前記タイムスロット割り付け手順では、
前記演算装置が、当該新規タスクに入力されるデータを生成するタスクの情報と当該新規タスクを起動するタイムスロットから起算して何周期前に前記タスクが生成したデータを使用するかの情報を含むデータフロー要求情報、及び、当該新規タスクを実行するために必要なタイムスロット数の情報を含むタイムスロット要求情報との入力を受け、
前記演算装置が、前記タイムスロット割り付け情報と前記データフロー要求情報と前記タイムスロット要求情報とに基づいて、前記新規タスクを実行する空きタイムスロットを探索し、
前記演算装置が、前記探索された空きタイムスロットに当該新規タスクを割り付けるように前記タイムスロット割り付け情報を更新することを特徴とするタスクの制御方法。
【請求項12】
請求項11に記載のタスクの制御方法であって、
前記タイムスロット割り付け手順では、前記演算装置が、前記新規タスクのレイテンシが短くなるように、前記探索された空きタイムスロットに当該新規タスクを割り付けて、前記タイムスロット割り付け情報を更新することを特徴とするタスクの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置及び車両制御システムに関する。
【背景技術】
【0002】
自動運転等などの車両制御の高度化・複雑化に従って、車両制御ソフトの継続的な改善が求められている。車両制御ソフトはリアルタイム性を要求され、各タスクは所定のデッドラインまでに処理を完了させる必要がある。しかし、車両制御ソフトを変更するたびにタスクスケジューリングを実施すると、その設計及び検証にコストを要するため、車両制御ソフトの継続的な改善におけるボトルネックとなっている。
【0003】
タスクスケジューリング技術として、特開2012-181852(特許文献1)に記載の技術がある。この公報は、特にオンボードエレクトロニクスの分野に使用するのに適している、リソースを有効に使用できるタスクの処理のスケジューリング方法を提供することを課題とし、その解決手段として、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、設定されたリソース上でタスクを実行するステップとを含み、スケジューリングにおいて、少なくとも1つの処理すべきタスクレベルを選択することからなるステップと、優先順位に従って処理すべきタスクレベルに基づいてタスクをソートすることにより、タスクの処理に必要なリソースの数、及びタスクの特性時間に応じたタスクの処理の優先順位を決定するステップとを含むことが記載されている。
【0004】
また、特開2009-80820号公報(特許文献2)によれば、各タスクの必要性能を満たすための優先度を指定するプログラム設計を容易にし、プログラム設計の柔軟性を有するタスク切換装置を提供することを課題とし、その解決手段として、プロセッサにおいてタイムスロットを切り換えることによりタイムスロットに割り当てられたタスクの実行を切り換えるタスク切換装置であって、タスクとタイムスロットを対応付けるポインタ及び割当時間の指定を有する第1タイプの複数のタスクのそれぞれの割当時間を記憶するタイムスロット情報記憶手段と、優先度を有する第2タイプの複数のタスクのそれぞれの優先度を記憶するタスク記憶手段と、一周期内の複数のタイムスロットに対して、前記第1タイプの複数のタスクのそれぞれを前記ポインタに基づいて1タスク対1タイムスロットで1つのタイムスロットに割り当て、前記第2タイプの複数のタスクを前記ポインタに基づいて多タスク対1タイムスロットで前記第1タイプのタスクが割り当てられていない1つの特定のタイムスロットに割り当てる割当手段と、前記タイムスロット情報記憶手段に記憶された前記第1タイプの複数のタスクのそれぞれに指定された割当時間に基づいてタイムスロットの切り換えを行うタイムスロット切換手段と、前記特定のタイムスロット以外のタイムスロットに切り換えられた場合に、当該タイムスロットに割り当てられたタスクを選択し、前記特定のタイムスロットに切り換えられた場合に、第二タイプの複数のタスクから前記タスク記憶手段に記憶された前記優先度に基づいて1つのタスクを選択するタスク選択手段とを備えることが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2012-181852号公報
【特許文献2】特開2009-80820号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1によれば、各タスクの実行に必要なCPU(Central Processing Unit)のリソース量と、残り時間や優先度グループにより算出される特性値に基づいて、タスクをソートしリソースを割り当てることでリソースを効率的に利用できる。しかしながら、ソートにより各タスクがCPUによって処理されるタイミングが変動するため、車両制御ソフトを更新した場合、各タスクの処理タイミングが変動する可能性がある。これは、タスク間のデータ通信や、電子制御装置(ECU:Electronic Control Unit)外部との通信に影響する可能性がある。従って、車両制御ソフトの変更により通信に影響が生じないことを検証する必要がある。
【0007】
特許文献2によれば、タイムスロットを2種類に分け、第1タイムスロットに1対1でタスクを割り付け、第二タイムスロットに多対1でタスクを割り付けることにより優先度設計を容易化する。しかしながら、特に第二のタイムスロットは車両制御ソフトの変更によりスケジューリングが変化する可能性があり、特許文献1と同様に、検証が必要となる。
【0008】
上記を踏まえ、本発明は、車両制御ソフトの変更時におけるリアルタイムタスクのスケジューリング設計及び検証をできる限り不要化することを目的とし、車両制御ソフトの変更前後で既存のタスクに関して処理結果が変化しないことが保証できるタスクのスケジューリングの提供が課題である。
【課題を解決するための手段】
【0009】
前述の課題を解決するために、本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、電子制御装置であって、所定の演算処理を行って、周期的にタスクを実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを備え、前記タスクのデータ入力とデータ出力のタイミングは予め定められており、前記予め定められたデータ入力タイミングからデータ出力タイミングの間における前記タスクの実行タイミングを規定するタイムスロット割り付け情報を保存するタイムスロット割り付け情報保存部と、前記タイムスロット割り付け情報に従って前記タスクを起動するタスク起動部と、新規タスクの実行タイミングに従って、当該新規タスクの情報を前記タイムスロット割り付け情報保存部に保存するタイムスロット割り付け部とを有し、前記タイムスロット割り付け部は、当該新規タスクに入力されるデータを生成するタスクの情報と当該新規タスクを起動するタイムスロットから起算して何周期前に前記タスクが生成したデータを使用するかの情報を含むデータフロー要求情報、及び、当該新規タスクを実行するために必要なタイムスロット数の情報を含むタイムスロット要求情報との入力を受け、前記タイムスロット割り付け情報と前記データフロー要求情報と前記タイムスロット要求情報とに基づいて、前記新規タスクを実行する空きタイムスロットを探索し、前記探索された空きタイムスロットに当該新規タスクを割り付けるように前記タイムスロット割り付け情報を更新することを特徴とする電子制御装置。
【発明の効果】
【0010】
本発明の一態様によれば、電子制御装置に新規にタスクを追加してもタイミング設計及び検証を不要化し、車両制御ソフトの継続的な改善を実現できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0011】
図1】第一の実施例の電子制御装置のハードウェア構成を示す図である。
図2】第一の実施例の電子制御装置のソフトウェア構成を示す図である。
図3】第一の実施例のミドルウェアの構成を示す図である。
図4】第一の実施例のタイムスロット割り付け情報を示す図である。
図5】第一の実施例のタイムスロット割り付け情報保存部に保存される情報の更新を示す図である。
図6】第一の実施例のデータフロー要求情報を示す図である。
図7】第一の実施例のデータフロー要求情報保存部に保存される情報の更新を示す図である。
図8】第一の実施例の通信API提供部の機能概要を示す図である。
図9】第一の実施例のタイムスロット要求情報を示す図である。
図10】第一の実施例のタイムスロット割り付け部によるタイムスロットの探索方法を示すフローチャートである。
図11】第二の実施例の新規タスク(第四のタスク)のタイムスロット要求情報を示す図である。
図12】第二の実施例のタイムスロット割り付け情報とデータフロー要求情報の更新を示す図である。
図13】第三の実施例の車両制御システムのハードウェア構成を示す図である。
図14】第三の実施例の第一の電子制御装置及び第二の電子制御装置のソフトウェア構成を示す図である。
図15】第三の実施例の第一の電子制御装置及び第二の電子制御装置のミドルウェアの構成を示す図である。
図16】第三の実施例のタイムスロット割り付け情報(新規タスク追加前)を示す図である。
図17】第三の実施例のデータフロー要求情報(新規タスク追加前)を示す図である。
図18A】第三の実施例の新規タスク(第四のタスク)に関するデータフロー要求情報を示す図である。
図18B】第三の実施例の新規タスク(第四のタスク)に関するタイムスロット要求情報を示す図である。
図19】第三の実施例のタイムスロット割り付け部によるタイムスロットの探索処理のフローチャートである。
図20】第三の実施例のタイムスロット割り付け情報(新規タスク追加後)を示す図である。
図21】第五の実施例のタイムスロット割り付け情報とデータフロー要求情報の更新を示す図である。
図22】第六の実施例のタイムスロット割り付け情報とデータフロー要求情報の更新を示す図である。
図23】第八の実施例の車両制御システムのハードウェア構成を示す図である。
図24】第八の実施例の車両制御システムのソフトウェア構成を示す図である。
図25】第九の実施例の車両制御システムのソフトウェア構成を示す図である。
【発明を実施するための形態】
【0012】
本発明は、電子制御装置(ECU)及び車両制御システムに関するものである。
【0013】
以下、本発明に好適な実施例を説明する。本発明の実施例においては、簡単のため、電子制御装置は一つのCPUを持ちリアルタイムOperating System(OS)を搭載する例を説明するが、タイムスロット割り付け情報を搭載コア数やスレッド数に基づいて多重化することによって、マルチコアCPUを搭載したECUや非リアルタイムOSであるPOSIXなどにも容易に適用可能である。
【実施例0014】
<構成>
図1は、第一の実施例の電子制御装置0のハードウェア構成を示す図であり、図2は、本実施例の電子制御装置0のソフトウェア構成を示す図である。
【0015】
<電子制御装置0>
図1を参照して、本実施例にかかる電子制御装置0のハードウェア構成について説明する。電子制御装置0は、CPU1と、メモリ2と、タイマ3を含む。メモリ2は、タスクのコードやパラメータなどの情報を保存する。メモリ2に保存されたデータは、CPU1に転送されて演算処理が行われ、演算処理結果がメモリ2に格納される。タイマ3は、電子制御装置0の内部で時刻を取得するために使用される。本実施例では、タイマ3は10ミリ秒が経過するごとにCPU1に時刻を通知する機能を有する。
【0016】
図2を参照して、本実施例にかかる電子制御装置0のソフトウェア構成について説明する。ソフトウェアは電子制御装置0のメモリ2に保存され、CPU1で実行される。電子制御装置0は、Operating System(OS)100と、ミドルウェア101と、アプリケーションとして第一のタスク102と第二のタスク103と第三のタスク104を搭載する。OS100は、一般的なリアルタイムOSやPOSIXなどのOSであればよい。ミドルウェア101は、OS100から起動され、アプリケーションである第一のタスク102と第二のタスク103と第三のタスク104を起動する。すなわち、アプリケーションはOS100から直接起動されるのではなく、ミドルウェア101によって起動される構成を採用する。また、アプリケーション間のデータ通信はミドルウェア101を経由して行う。すなわち、アプリケーション自身で共有メモリを配置することは禁止されており、アプリケーション間のデータ通信は全てミドルウェア101が提供するAPI(Application Programming Interface)を用いて行う構成とする。
【0017】
<ミドルウェア101>
図3は、本実施例のミドルウェア101の構成を示す図である。
【0018】
本実施例では、ミドルウェア101は、通信API提供部1011と、タイムスロット割り付け部1012と、をタスク起動部1013と、タイムスロット割り付け情報保存部1015と、データフロー要求情報保存部1016を有する。各部の機能及び動作は後述する。
【0019】
<タイムスロット割り付け情報4、タスク起動部1013>
図4は、本実施例のタイムスロット割り付け情報4を示す図である。
【0020】
タイムスロット割り付け情報4は、タスクとタイムスロットの割り付けを記述する。図4では、表形式で記述されるタイムスロット割り付け情報4を示すが、タイムスロット割り付け情報4が他の形式で示されてもよい。図4を参照して、タイムスロット割り付け情報4を用いたタスク起動部1013によるタスク起動について説明する。タイマ3は、OS100を経由してタスク起動部1013に時刻を通知する。タスク起動部1013は、タイマ3から1回目の時刻が通知されると、タイムスロット割り付け情報4における1番のタイムスロットを検索し、割り付けされた第一のタスク102を起動する。10ミリ秒後、タスク起動部1013はタイマ3から2回目の時刻が通知されると、タイムスロット割り付け情報4における2番のタイムスロットを検索し、割り付けされた第二のタスク103を起動する。さらに10ミリ秒後、タスク起動部1013はタイマ3から3回目の時刻が通知されると、タイムスロット情報4における3番目のタイムスロットを検索する。今回は、第二のタスク103が割り付けられているがタスク2は2番のタイムスロットにて起動済みであり3番にも継続して割り付けられているので、タスク起動部1013は第二のタスク103の処理を継続する。もし、第二のタスク103の処理が2番のタイムスロットにて完了している場合、3番のタイムスロットにおいてタスク起動部1013はいずれのタスクも起動しない(すなわち、新たに第二のタスク103を起動しない)。さらに10ミリ秒後、タスク起動部1013はタイマ3から4回目の時刻が通知されると、タイムスロット割り付け情報4における4番のタイムスロットを検索する。今回はどのタスクも割り付けられていないので、タスク起動部1013はいずれのタスクも起動しない。このようにして、タスク起動部1013は各タイムスロットでどのタスクを起動するかを選択する。図4において、八つのタイムスロットが示されているが、これはタスクの起動が周期8で繰り返されることを示す。すなわち、ミドルウェア101がタイマ3から9回目の時刻が通知されると、タスク起動部1013は1回目の時刻通知の時と同様に、1番のタイムスロットを検索する。以下、このようなタイムスロット割り付け情報4の周期をハイパーピリオドと呼称する。なお、図4ではハイパーピリオドを8として例示したが、任意の非負整数であればよい。
【0021】
<タイムスロット割り付け情報保存部1015>
図5は、本実施例のタイムスロット割り付け情報保存部1015に保存されるタイムスロット割り付け情報4の更新を示す図である。
【0022】
タイムスロット割り付け情報保存部1015はタイムスロット割り付け部1012からタイムスロット割り付け情報4の更新が指示されると、入力された新規タスクの番号(ID:Identifier)と割り付け位置と周期の情報(データフロー要求情報5、タイムスロット要求情報6)とに従って、新規タスクをタイムスロット割り付け情報4に追加して、タイムスロット割り付け情報保存部1015に保存されるタイムスロット割り付け情報4を更新する。
【0023】
<データフロー要求情報5>
図6は、本実施例のデータフロー要求情報5を示す図である。
【0024】
データフロー要求情報5は、電子制御装置0の外部からミドルウェア101に送信される情報である。図5に示すように、電子制御装置0に追加される第四のタスク105は、第一のタスク102と第三のタスク104の処理結果を使用することが、データフロー要求情報5に定められる。本実施例においては、タスクは全て周期的に実行されるタスクであるため、第一のタスク102及び第三のタスク104がどの時点で生成した処理結果を第四のタスク105が使用するのかを考慮する必要がある。このため、データフロー要求情報5には時差の情報を含む。時差とは、新規タスク(第四のタスク105)が起動されるタイムスロットから起算して各入力データ生成タスク(第一のタスク102及び第三のタスク104)が何周期前に生成したデータを新規タスク(第四のタスク105)の入力データとして使用するかを示す情報である。
【0025】
<データフロー要求情報保存部1016>
図7は、データフロー要求情報保存部1016に保存されるデータフロー要求情報5の更新を示す図である。
【0026】
データフロー要求情報保存部1016は、タイムスロット割り付け部1012から新規タスクの保存を指示されると、入力された新規タスクである第四のタスク105に関するデータフロー要求情報5に従って、第四のタスク105に関するデータフロー要求情報5を新規に追加して、データフロー要求情報保存部1016を更新する。
【0027】
<通信API提供部1011>
図8は、通信API提供部1011の機能概要を示す図である。
【0028】
通信API提供部1011は、タスク間で共有されるデータを管理し、タスクからの呼び出しに従ってデータを提供する役割を有する。このとき、通信API提供部1011は、データフロー要求情報5を参照し、適切な時刻に生成されたデータを提供する。第一のタスク102は他のタスク(第二のタスク103と第三のタスク104)に処理結果を提供するため、通信API提供部1011が提供するAPIであるWrite_dataをコールする。第一のタスク102が生成した通信データは、第二のタスク103においては0周期遅れて使用され、第三のタスク104においては1周期遅れて使用されることが、データフロー要求情報保存部1016に保存されたデータフロー要求情報5によって分かる。従って、通信API提供部1011は、第一のタスク生成データ保存部を設け、第一のタスク102が直近に生成したデータとその1周期前に生成したデータを保存する。例えば、図8において、バッファ0に最新値を保存し、バッファ1に1周期前の値を保存する。すなわち、第一のタスク102がWrite_dataをコールすると通信API提供部1011は第一のタスク生成データ保存部のバッファ0に保存されたデータをバッファ1にコピーした後、バッファ0にデータを書き込む。第二のタスク103は、第一のタスク102が生成したデータを使用するためにRead_dataをコールする。この時、通信API提供部1011は、第二のタスク103が第一のタスク102の生成データを0周期の時差で使用することが、データフロー要求情報5を参照して分かるため、第一のタスク生成データ保存部のバッファ0に格納されたデータをコピーして第二のタスク103に渡す。同様に、第三のタスク104は、第一のタスク102が生成したデータを使用するためにRead_dataをコールする。このとき、通信API提供部1011は、第二のタスク103が第一のタスク102の生成データを1周期の時差で使用することが、データフロー要求情報5を参照し分かるため、第一のタスク生成データ保存部のバッファ1に保存されたデータをコピーして第三のタスク104に渡す。このことから分かるように、各タスクの生成データ保存部に設けられるバッファの数は、データフロー要求情報5に含まれる時差の最大値によって定められる。タスク間のデータ通信を全て通信API提供部1011を経由して実行することによって、データフロー要求情報5を充足するように各タスクがデータを取得及び公開できる。
【0029】
<タイムスロット要求情報6>
図9は、本実施例のタイムスロット要求情報6を示す図である。
【0030】
タイムスロット要求情報6は、電子制御装置0の外部からミドルウェア101に送信される情報である。タイムスロット要求情報6は、タスクの周期と、タスクの処理1回のためにいくつのタイムスロットの割り付けをミドルウェア101に要求するかを示す。図5に示すタイムスロット要求情報6では、第四のタスク105は8タイムスロット分(すなわち80ミリ秒)の周期で実行され、二つのタイムスロットを要求する。これは、第四のタスク105の1回の処理に対してCPU1の20ミリ秒の処理時間を要求することである。なお、タスクの周期を全てハイパーピリオドとした場合は、タイムスロット要求情報6において周期の情報が省略されてもよい。
【0031】
<タイムスロット割り付け部1012>
図10は、本実施例のタイムスロット割り付け部1012によるタイムスロットの探索方法を示すフローチャートである。
【0032】
本実施例においては、第一のタスク102と第二のタスク103と第三のタスク104が搭載された電子制御装置0に第四のタスク105を新規に追加する。
【0033】
ステップS1において、新規に追加するタスクに番号(ID)を付与する。ステップS2において、タイムスロット割り付け情報4を取得する。すなわち、図4に示すタイムスロット割り付け情報4に従って、タイムスロット割り付け情報4を格納するための配列ts_info(要素数はハイパーピリオドと一致するため8)に対し、順に{1,2,2,-1,1,3,-1,-1}を代入する。なお、-1は、どのタスクも割り付けられていない空きタイムスロットであることを示す。続いて、ステップS3において、データフロー要求情報5を配列data_dlowに格納する。図6に示すデータフロー要求情報5に従って、順に{1,-1,0}をdata_flowに代入する。1番目の要素は第一のタスク102の時差が1周期であることを示し、3番目の要素は第三のタスク104の時差が0周期であることを示す。また、2番目の要素に-1を代入することにより、第二のタスク103は入力データ生成タスクではないことを示す。ステップS4において、タイムスロット要求情報6に含まれる要求スロット数と周期をそれぞれ変数ts_numとperiodに格納する。ステップS5において、探索結果保存用変数を初期化する。変数placeが新規タスク(第四のタスク105)を起動するタイムスロット番号を示し、変数latencyは、新規タスク(第四のタスク105)に対する入力データが生成完了してから新規タスク(第四のタスク105)が処理完了するまでの時間すなわち新規タスク(第四のタスク105)によるレイテンシを格納するためのものである。
【0034】
ステップS6において、繰り返し変数iにタイムスロット番号を1から8まで順に代入し、ステップS7~S10の処理を繰り返し実行する。ステップS6の処理はFor文で実装されていればよい。ステップS7において、配列ts_infoを参照して、i番目のタイムスロットから連続してts_numスロット分の空きタイムスロットが存在するかを判定する。同様に、i+period番目のタイムスロットから連続してts_numスロット分の空きタイムスロットが存在するか、i+2*period番目、i+3*period番目、…、i+(n-1)*period番目のタイムスロットについても同様に判定する。ここでnは、ハイパーピリオドを周期で除した数である。判定の結果、空きタイムスロットが存在する場合、ステップS8に進む。一方、空きタイムスロットが存在しない場合、i番目のタイムスロットに新規タスク(第四のタスク105)を追加できないので、ステップS6に戻り、変数iをインクリメントして再度ステップS7に進む。ステップS8において、i番目のタイムスロットに新規タスク(第四のタスク105)を追加した場合における新規タスク(第四のタスク105)のレイテンシを計算し、一時変数tmpに格納する。レイテンシは、データフロー要求情報5が格納された配列data_flowを参照して、新規タスク(第四のタスク105)に割り付けられたタイムスロットが終了する時刻から起算して新規タスク(第四のタスク105)の入力データを生成するタスクに割り付けたタイムスロットが終了する時刻までの時間である。入力データ生成タスクが複数存在する場合、レイテンシはi番目のタイムスロットから最も遠い入力データ生成タスクの終了時刻で計算するとよい。例えば、図4に示すタイムスロット割り付け情報4において、i=7番のタイムスロットの場合、入力データ生成タスクである第一のタスク102が終了する時刻は、data_flow[0]=1であるから、第一のタスク102が実行される5番のタイムスロットではなく1番のタイムスロットを参照し、第一のタスク102の終了から新規タスク(第四のタスク105)が終了するタイムスロットである8番までとなりレイテンシは7と計算される。第三のタスク104については、data_flow[2]=0であるから、第三のタスク104が実行される6番のタイムスロットから起算して新規タスク(第四のタスク105)が終了する8番までとなりレイテンシは2と計算される。従って、レイテンシの最大値は7であるので、tmp=7と計算される。ステップS9において、tmpの値がlatencyの値より小さいか確認する。tmpの値がlatencyの値より小さければステップS10に進み、placeとlatencyをiとtmpの値で更新する。tmpの値がlatencyの値より小さくなければ、i番のタイムスロットよりもレイテンシを短くできるタイムスロット位置が存在するので、ステップS6に戻り、変数iをインクリメントして、再度ステップS7に進む。
【0035】
ステップS6~S10の繰り返し処理が終了すると、ステップS11において、新規タスク(第四のタスク105)のデータフロー要求情報5をデータフロー要求情報保存部1016に保存するよう指示する。そして、ステップS12において、ステップS1~S10において決定したタスク番号(ID)TASK_NUMと追加タイムスロット位置placeとタイムスロット要求情報6に含まれる周期periodの情報をタイムスロット割り付け情報保存部1015に渡し、タイムスロット割り付け情報4の更新を指示する。
【0036】
本実施例によれば、電子制御装置0に新規にタスクを追加しても、既存のタスクの実行のために既に割り付け済みのタイムスロットには影響しないため、新規タスクの追加後も、タスク間のデータフローも維持され、タスクのリアルタイム性が維持される。従って、タスク間のデータ通信や電子制御装置外部との通信に対して影響を与えないことが保証され、ボトルネックとなっていたタイミング設計・検証を不要化し、車両制御ソフトの継続的な改善を実現することができる。また、通信API提供部1011及びタスク起動部1013によってタスク間のデータ交換を所定のタイミングに限定するスケジューリング手法であるLogical Execution Timeを適用可能として、各タスクの処理時間の変動を吸収したうえで、データフロー要求情報5に定めたデータフローを達成できる。さらに、既存のタスクに影響を与えないことを保証した上で、レイテンシが最も短くなるように新規にタスクを追加できる。
【実施例0037】
本発明の第二の実施例の電子制御装置について説明する。第二の実施例と第一の実施例が異なる点は、既存のタスクのタイムスロット割り付けの変更によって連続空きタイムスロットを増加させる点である。なお、第二の実施例において、第一の実施例との差異を主に説明し、第一の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0038】
<タイムスロット要求情報>
図11は、本実施例の新規タスク(第四のタスク105)のタイムスロット要求情報6を示す図である。
【0039】
タイムスロット要求情報6は、実施例1と同様に、電子制御装置0の外部からミドルウェア101に送信される情報である。図11に示すタイムスロット要求情報6では、第四のタスク105は8タイムスロット分(すなわち80ミリ秒)の周期で実行され、三つのタイムスロットを要求する。
【0040】
<タイムスロット割り付け部1012、タイムスロット割り付け情報保存部1015、データフロー要求情報保存部1016>
図12は、本実施例のタイムスロット割り付け情報4とデータフロー要求情報5の更新を示す図である。
【0041】
タイムスロット割り付け部1012は、図10に示すアルゴリズムに従って空きタイムスロットを探索する。本実施例の場合、要求タイムスロット数が3であるため、空きタイムスロットは見つからず、探索に失敗する。そこで、タイムスロット割り付け部1012は、データフロー要求情報5を解析し、前倒し可能な処理を探索する。その結果、第三のタスク104が前倒し可能であることが分かる。新規タスク(第四のタスク105)の追加前には、第三のタスク104は6番のタイムスロットで実行され、データフロー要求情報5によると、1番のタイムスロットで実行された処理結果と2番及び3番のタイムスロットで実行された処理結果を使用することが分かる。従って、第三のタスク104は、4番以降のタイムスロットで実行可能なので、第三のタスク104の実行タイミングを6番のタイムスロットから4番のタイムスロットに移動する。このとき、データフローを変化させないため、第三のタスク104は引き続き1番のタイムスロットにおける第一のタスク102の実行結果を使用するので、データフロー要求情報5における第三のタスク104の第一のタスク102からの時差を1周期から0周期に更新する。そして、タイムスロット割り付け部1012は、6番と7番と8番のタイムスロットに新規タスク(第四のタスク105)の実行を割り付け、タイムスロット割り付け情報4とデータフロー要求情報5を更新し、タイムスロット割り付け情報保存部1015とデータフロー要求情報保存部1016にデータの更新及び保存を指示する。
【0042】
本実施例によれば、電子制御装置0で既に実行されているタスクにより十分な空き時間を確保できない状況において、新たなタスクを追加する場合、既存のタスクのデータフローを保持したまま空き時間を増加でき、新たなタスクを追加できる。
【実施例0043】
本発明の第三の実施例の電子制御装置及び車両制御システムについて説明する。第三の実施例が第一の実施例と異なる点は、空きタイムスロットの探索を複数の電子制御装置間で実施する点である。なお、第三の実施例において、第一の実施例との差異を主に説明し、第一の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0044】
図13は、本実施例の車両制御システム12のハードウェア構成を示す図である。
【0045】
<車両制御システム12>
車両制御システム12は、第一の電子制御装置8と第二の電子制御装置9の二つの電子制御装置を有し、それらは通信バス11によって互いに接続され通信を行う。なお、本実施例において、二つの電子制御装置を設けたが、三つ以上の電子制御装置を設けてもよい。通信バス11は、CAN(Controller Area Network)やEthernetなどの公知の通信プロトコルに従ってデータを転送する。第一の電子制御装置0と第二の電子制御装置9は、通信バス11を経由して通信を行うためのハードウェアである通信ペリフェラル10を有する。通信ペリフェラル10は、通信を制御するハードウェアであり、具体的には、通信バス11がCANである場合はCANトランシーバ、Ethernetである場合はEthernetPHYといわれる公知のハードウェアである。
【0046】
図14は、本実施例の第一の電子制御装置8及び第二の電子制御装置9のソフトウェア構成を示す図である。
【0047】
<第一の電子制御装置8のソフトウェア構成>
第一の電子制御装置8は、第一のタスク102と、第二のタスク103と、第三のタスク104と、ミドルウェア101と、OS100と、通信ペリフェラルドライバ110と、第一の通信タスク108を有する。通信ペリフェラルドライバ110は、通信ペリフェラル10を駆動するためのソフトウェアであり、OS100又はミドルウェア101によって呼び出され、通信ペリフェラル10にアクセスし、送信するデータを通信ペリフェラル10の所定のレジスタに書き込む機能、及び受信した通信ペリフェラル10の所定のレジスタから読み取る機能を提供する。第一の通信タスク108は、第一の電子制御装置8においてデータ通信を行うためのタスクであり、その詳細は後述する。
【0048】
<第二の電子制御装置9のソフトウェア構成>
第二の電子制御装置9は、第五のタスク106と、第六のタスク107と、ミドルウェア101と、OS100と、通信ペリフェラルドライバ110と、第二の通信タスク109を有する。第二の通信タスク109は第二の電子制御装置9におけるデータ通信を行うためのタスクであり、その詳細は後述する。
【0049】
図15は、本実施例の第一の電子制御装置8及び第二の電子制御装置9のミドルウェア101の構成を示す図である。
【0050】
<ミドルウェア101>
ミドルウェア101は、通信API提供部1011と、タイムスロット割り付け部1012と、タスク起動部1013と、タイムスロット割り付け情報保存部1015と、データフロー要求情報保存部1016と、ミドルウェア間時刻同期部1014を有する。ミドルウェア間時刻同期部1014は、車両制御システム12に含まれ、通信バス11によって互いに接続された電子制御装置に搭載されたミドルウェア101間で時刻を同期する機能を有する。時刻同期は、NTP(Network Time Protocol)などの公知の方法を採用できる。
【0051】
図16は、本実施例の第一の電子制御装置8及び第二の電子制御装置9のミドルウェア101を構成するタイムスロット割り付け情報保存部1015に保存されたタイムスロット割り付け情報4(新規タスク追加前)を示す図である。
【0052】
<タイムスロット割り付け情報4>
図16に示すように、第一の電子制御装置8及び第二の電子制御装置9のミドルウェア101は共に、各電子制御装置に搭載されたタスクのタイムスロット割り付け情報4を保存する。すなわち、第一の電子制御装置8のタイムスロット割り付け情報保存部1015は、第一のタスク102と第二のタスク103と第三のタスク104と第一の通信タスク108だけでなく、第二の電子制御装置9で実行される第五のタスク106と第六のタスク107と第二の通信タスク109のタイムスロット割り付け情報4も保持する。第二の電子制御装置9も同様に、第一の電子制御装置8で実行されるタスクと、第二の電子制御装置9で実行されるタスクのタイムスロット割り付け情報4を保持する。タイムスロット割り付け情報4は、各タスクが割り当てられる電子制御装置を識別するための情報を含む。
【0053】
図17は、本実施例の第一の電子制御装置8及び第二の電子制御装置9のミドルウェア101を構成するデータフロー要求情報保存部1016に保存されたデータフロー要求情報5(新規タスク追加前)を示す図である。
【0054】
<データフロー要求情報5>
図17に示すように、第一の電子制御装置8及び第二の電子制御装置9のミドルウェア101は共に、各電子制御装置に搭載されたタスクのデータフロー要求情報5を保存する。すなわち、第一の電子制御装置8のデータフロー要求情報保存部1016は、第一のタスク102と第二のタスク103と第三のタスク104と第一の通信タスク108だけでなく、第二の電子制御装置9で実行される第五のタスク106と第六のタスク107と第二の通信タスク109のデータフロー要求情報5も保持する。第二の電子制御装置9も同様に、第一の電子制御装置8で実行されるタスクと、第二の電子制御装置9で実行されるタスクのデータフロー要求情報5を保持する。
【0055】
<第一の通信タスク108及び第二の通信タスク109(新規タスク追加前)>
第一の通信タスク108及び第二の通信タスク109は、第一の電子制御装置8及び第二の電子制御装置9において、外部と通信するタスクである。本実施例においては、新規タスクの追加前に、図16に示す各タスクの電子制御装置への割り当て及び図17に示す各タスク間のデータ通信によれば、第一の電子制御装置8と第二の電子制御装置9の間におけるデータ通信は存在しないので、第一の通信タスク108及び第二の通信タスク109の実行は不要であり、どのタイムスロットにも割り付けされない。
【0056】
図18Aは、本実施例の新規タスクである第四のタスク105に関するデータフロー要求情報5を示す図であり、図18Bは、本実施例の新規タスクである第四のタスク105に関するタイムスロット要求情報6を示す図である。
【0057】
<新規タスク(第四のタスク105)>
本実施例において新規に追加する第四のタスク105は、第一のタスク102と第二のタスク103が生成したデータを使用し、二つのタイムスロットを要求する。
【0058】
図19は、本実施例のタイムスロット割り付け部1012によるタイムスロットの探索処理のフローチャートである。図20は、本実施例の第一の電子制御装置8及び第二の電子制御装置9のミドルウェア101の構成するタイムスロット割り付け情報保存部1015に保存されたタイムスロット割り付け情報4(新規タスク追加後)を示す図である。
【0059】
<タイムスロット割り付け部1012>
第一の電子制御装置8に搭載されたタイムスロット割り付け部1012は、図19のアルゴリズムに従って空きタイムスロットを探索する。
【0060】
ステップS13において、タイムスロット割り付け情報保存部1015に保存されたタイムスロット割り付け情報4とデータフロー要求情報保存部1016に保存されたデータフロー要求情報5を取得する。ステップS14において、新規タスク(第四のタスク105)に関するデータフロー要求情報5とタイムスロット要求情報6を取得する。本実施例の場合、新規タスク(第四のタスク105)を割り当てる電子制御装置を選択する必要がある。そこで、ステップS15において、新規タスク(第四のタスク105)のデータフロー要求情報5を解析し、入力データを生成するタスクが最も多く割り当てられた電子制御装置から順に空きスロットを探索する。例えば、本実施例の場合、第四のタスク105の入力データ生成タスクは第一のタスク102と第二のタスク103であり、これらのタスクは、図16に示す通り、第一の電子制御装置8に割り当てられているので、第一の電子制御装置8から探索した後、第二の電子制御装置9を探索すると、ステップS15の探索によって、電子制御装置間の通信量が小さい電子制御装置を探索できる。
【0061】
ステップS16において、図10のステップS5~S10と同じアルゴリズムを適用し、空きスロットを探索する。このとき、空きスロットが見つかれば、第一の実施例と同様に新規タスク(第四のタスク105)を追加できるので、アルゴリズムは終了する。なお、入力データ生成タスクがすべて同一の電子制御装置に割り当てられている場合は、ステップS16で探索が終了する。従って、入力データ生成タスクが複数の電子制御装置に割り当てられている場合は、ステップS16による探索を行わず、ステップS17から探索を開始してもよい。本実施例の場合、入力データ生成タスクは全て同一の電子制御装置に割り当てられているから、ステップS16の探索はスキップせずに実施する。しかし、図16に示すように、第一の電子制御装置8には連続した二つの空きタイムスロットは存在しない。従って、ステップS15において探索対象を第二の電子制御装置9に変更して、ステップS17に進む。
【0062】
ステップS17において、第二の電子制御装置9における連続した空きスロットを探索する。図16を参照すれば、3番~4番のタイムスロットと、6番~8番のタイムスロットが連続した空きスロットである。ステップS18において、入力データ生成タスクが割り当てられた電子制御装置に通信タスクを割り当て可能かを判定する。すなわち、第一の電子制御装置8から第二の電子制御装置9へデータを送信するための第一の通信タスク108を第一の電子制御装置8に割り当て可能か判定する。データフロー要求情報5によれば、第一のタスク102と第二のタスク103が生成したデータを第二の電子制御装置9に送信する必要がある。新規タスク(第四のタスク105)を第二の電子制御装置9の3番~4番のタイムスロットに割り付けた場合、第一の電子制御装置8からデータを送信するタイミングに間に合わないことが分かる。よって、3番~4番の空きスロットは使用できない。6番~8番のタイムスロットは、第一の電子制御装置8の4番のタイムスロットに第一の通信タスク108を割り付けることができる。
【0063】
従って、ステップS18においては第二の電子制御装置9の6番~8番のタイムスロットが選択される。ステップS19において、新規タスク(第四のタスク105)を割り付けるための空きスロットを探索中の第二の電子制御装置9に、データを受信するための通信タスク(第二の通信タスク109)を割り当て可能か確認する。ステップS18において、第一の通信タスク108は第一の電子制御装置8の4番のタイムスロットに割り付けられ、4番のタイムスロットで第一の電子制御装置8から通信データが送信されるので、4番のタイムスロットより後の空きタイムスロットが第二の通信タスク109に適する。よって、第二の電子制御装置9において4番タイムスロットより後で最も早い空きタイムスロットである6番のタイムスロットに第二の通信タスク109を割り付け、残りの7番~8番のタイムスロットに新規タスク(第四のタスク105)を割り付ける。
【0064】
以上より、図20に示すように、タイムスロット割り付け情報4(新規タスク追加後)が更新される。
【0065】
本実施例によれば、電子制御装置間で時刻を同期し、通信タスクの配置によって電子制御装置のタスク間の通信の開始及び終了を所定のタイミングに限定するスケジューリング手法であるシステムレベルLogical Execution Timeを適用可能として、各電子制御装置間の通信時間の変動を吸収した上で、データフロー要求情報5に定めたデータフローを達成でき、かつ、特に新規タスクを割り当てる電子制御装置を自動的に判定し、適切なタイムスロットに新規タスクを割り付けできる。
【実施例0066】
本発明の第四の実施例の電子制御装置及び車両制御システムについて説明する。第四の実施例と第一の実施例が異なる点は、空きタイムスロットが見つからなかった場合、新規タスクのデータフロー要求情報5とタイムスロット要求情報6を棄却する点である。なお、第四の実施例において、第一の実施例との差異を主に説明し、第一の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0067】
<タイムスロット割り付け部1012、タイムスロット割り付け情報保存部1015、データフロー要求情報保存部1016>
タイムスロット割り付け部1012は、実施例1によるアルゴリズムで空きタイムスロットの探索に失敗した場合、当該新規タスクの追加要求を棄却し、タイムスロットを変更せず、タイムスロット割り付け情報保存部1015に保存されるタイムスロット割り付け情報4及びデータフロー要求情報保存部1016に保存されるデータフロー要求情報5を更新せず、新規タスク(第四のタスク105)を追加しない。
【0068】
本実施例によれば、新規タスクの追加による既存のタスクに関するデータフローの破壊を防止できる。
【実施例0069】
本発明の第五の実施例の電子制御装置及び車両制御システムについて説明する。第五の実施例と第一の実施例が異なる点は、ユースケースが、新規タスクの追加ではなく、既存のタスクに関する処理変更に伴う処理時間の伸縮である点である。なお、第五の実施例において、第一の実施例との差異を主に説明し、第一の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0070】
<タイムスロット割り付け部1012、タイムスロット割り付け情報保存部1015、データフロー要求情報保存部1016>
図21は、本実施例のタイムスロット割り付け情報4とデータフロー要求情報5の更新を示す図である。
【0071】
タイムスロット割り付け部1012は、実施例1(図10)のアルゴリズムにおいて、データフロー要求情報5とタイムスロット要求情報6が既存のタスク(例:第三のタスク104)に関するものである場合、タイムスロット割り付け情報4を参照して当該既存のタスクに関する割り付け情報を更新する。なお、データフロー要求情報5がデータフロー要求情報保存部1016に保存されている情報と同一である場合、データフロー要求情報5のタイムスロット割り付け部1012への入力は省略されてもよい。
【0072】
本実施例によれば、Over-The-Airアップデートによって既存のタスクの処理時間が増加又は減少する場合でも、他の既存タスクに影響を与えずに当該既存タスクのタイムスロットへの割り付けを更新でき、伸縮を伴うタスクをアップデートできる。
【実施例0073】
本発明の第六の実施例の電子制御装置及び車両制御システムについて説明する。第六の実施例と第一の実施例が異なる点は、ユースケースが、新規タスクの追加ではなく、要求スロット数を0に変更することによる既存タスクの削除である点である。なお、第六の実施例において、第一の実施例との差異を主に説明し、第一の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0074】
<タイムスロット割り付け部1012、タイムスロット割り付け情報保存部1015、データフロー要求情報保存部1016>
図22は、本実施例のタイムスロット割り付け情報4とデータフロー要求情報5の更新を示す図である。
【0075】
タイムスロット割り付け部1012は、タイムスロット要求情報6に含まれるタスクの要求スロット数が0である場合、要求スロット数が0であるタスクを削除する。既存タスクを削除する場合、データフロー要求情報5はタイムスロット割り付け部1012に入力されなくてもよい。タイムスロット割り付け部1012は、タイムスロット割り付け情報保存部1015とデータフロー要求情報保存部1016から、削除するタスクに関する情報を削除する。
【0076】
本実施例によれば、タスクの追加や修正と同じ処理で、既存のタスクを削除できる。
【実施例0077】
本発明の第七の実施例の電子制御装置及び車両制御システムについて説明する。第七の実施例と第六の実施例が異なる点は、一部のタスクについての削除要求を棄却する点である。なお、第七の実施例において、第一から第六の実施例との差異を主に説明し、第一から第六の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0078】
<タイムスロット割り付け部1012、タイムスロット割り付け情報保存部1015、データフロー要求情報保存部1016>
タイムスロット割り付け部1012は、タイムスロット要求情報6に含まれる要求スロット数が0である場合、当該タスクの削除を試みる。タスク削除時に、データフロー要求情報保存部1016に保存されたデータフロー要求情報5を解析し、削除しようとするタスクが他のタスクの入力データ生成タスクとなっていない、すなわち削除しようとするタスクがデータフロー要求情報5の「入力データ」の列に記録されていない場合に削除要求を受け付け、実施例6と同様にタスクを削除する。一方、削除しようとするタスクが他のタスクの入力データ生成タスクとなっている場合、実施例4と同様に要求を棄却して保存されている情報を更新しない。
【0079】
本実施例によれば、既存タスクの削除による他のタスクに関するデータフローの破壊を防止できる。
【実施例0080】
本発明の第八の実施例の電子制御装置及び車両制御システムについて説明する。第八の実施例と第一の実施例と異なる点は、タイムスロットの割り付け処理を実行するサーバを設け、複数の電子制御装置にタイムスロット割り付け情報4を提供する点である。なお、第八の実施例において、第一の実施例との差異を主に説明し、第一の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0081】
<車両制御システム12のハードウェア構成>
図23は、本実施例の車両制御システム12のハードウェア構成を示す図である。
【0082】
車両制御システム12は、電子制御装置0とサーバ13を含む。電子制御装置0はCPU1と、メモリ2と、タイマ3と、サーバ13との間でOTA通信15を行うためのOTA通信ペリフェラル7を含む。サーバ13は、電子制御装置0とOTA通信15を行うためのソフト配信装置14を含む。OTA通信15とOTA通信ペリフェラル7とソフト配信装置14については、無線によるソフトウェア更新を可能とするOver-The-Air公知技術に従うものであればよい。
【0083】
<車両制御システム12のソフトウェア構成>
図24は、本実施例の車両制御システム12のソフトウェア構成を示す図である。
【0084】
電子制御装置0は、OS100と、ミドルウェア101と、第一のタスク102と、第二のタスク103と、第三のタスク104を含む。ミドルウェア101は通信API提供部1011と、タスク起動部1013と、タイムスロット割り付け情報保存部1015と、タイムスロット割り付け情報受信部1017を含む。サーバ13は、タイムスロット割り付け部1012と、タイムスロット割り付け情報保存部1015と、データフロー要求情報保存部1016と、タイムスロット割り付け情報送信部1018を含む。電子制御装置0のミドルウェア101に含まれるタイムスロット割り付け情報保存部1015に保存されるタイムスロット割り付け情報4は、電子制御装置0自身で実行されるタスクに関するタイムスロットの割り付けの情報を含む。サーバ13に含まれるタイムスロット割り付け情報保存部1015に保存されるタイムスロット割り付け情報4は、当該サーバ13が通信を行いOTA配信の対象となる一部又は全部の電子制御装置で実行されるタスクに関するタイムスロットの割り付けの情報を含む。タイムスロット割り付け情報受信部1017は、OTA通信ペリフェラル7を用いて、タイムスロット割り付け情報4をサーバ13から受信する機能を有する。タイムスロット割り付け情報送信部1018は、ソフト配信装置14を用いて、タイムスロット割り付け情報4を電子制御装置0に送信する機能を有する。
【0085】
本実施例によれば、タイムスロットの割り付け処理をサーバ13で実行することによって、複数の電子制御装置0にタイムスロット割り付け情報4を提供でき、電子制御装置に含まれるミドルウェア101の処理負荷を軽減できる。
【実施例0086】
本発明の第九の実施例の電子制御装置及び車両制御システムについて説明する。第九の実施例と第八の実施例が異なる点は、新規タスクの追加又は既存のタスクの削除又は既存タスクの要求タイムスロット数の変更を棄却した際、棄却を回避するための情報を提供する機能をサーバに設ける点である。なお、第九の実施例において、第一から第八の実施例との差異を主に説明し、第一から第八の実施例と同じ構成には同じ符号を付して、それらの説明を省略する。
【0087】
<車両制御システム12のソフトウェア構成>
図25は、本実施例の車両制御システム12のソフトウェア構成を示す図である。
【0088】
サーバ13は、タイムスロット割り付け部1012と、タイムスロット割り付け情報保存部1015と、データフロー要求情報保存部1016と、タイムスロット割り付け情報送信部1018と、改善情報表示部1019を含む。
【0089】
<改善情報表示部1019>
改善情報表示部1019は、新規タスクの追加又は既存のタスクの削除又は既存タスクの要求タイムスロット数の変更を棄却すると判定する際、棄却を回避するための情報を提供する。具体的には、新規タスクの追加及び既存のタスクの要求タイムスロット数変更を棄却した場合、データフロー要求情報5に基づいて割り付けできる空きタイムスロット数の最大値を示し、既存のタスクの削除を棄却した場合、データフロー要求情報5から同時に(又は、先に)削除する必要があるタスクを示す。
【0090】
本実施例によれば、設計者や車両ユーザに対してタイミング設計に関する情報を提供できる。
【0091】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0092】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0093】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0094】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0095】
0 電子制御装置
1 CPU
2 メモリ
3 タイマ
4 タイムスロット割り付け情報
5 データフロー要求情報
6 タイムスロット要求情報
7 OTA通信ペリフェラル
8 第一の電子制御装置
9 第二の電子制御装置
10 通信ペリフェラル
11 通信バス
12 車両制御システム
13 サーバ
14 ソフト配信装置
15 OTA通信
100 OS
101 ミドルウェア
102 第一のタスク(アプリケーション)
103 第二のタスク(アプリケーション)
104 第三のタスク(アプリケーション)
105 第四のタスク(アプリケーション)
106 第五のタスク(アプリケーション)
107 第六のタスク(アプリケーション)
108 第一の通信タスク
109 第二の通信タスク
110 通信ペリフェラルドライバ
1011 通信API提供部
1012 タイムスロット割り付け部
1013 タスク起動部
1014 ミドルウェア間時刻同期部
1015 タイムスロット割り付け情報保存部
1016 データフロー要求情報保存部
1017 タイムスロット割り付け情報受信部
1018 タイムスロット割り付け情報送信部
1019 改善情報表示部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18A
図18B
図19
図20
図21
図22
図23
図24
図25