(57)【特許請求の範囲】
【請求項１】
制御対象を制御する制御演算で用いる制御データと、
前記制御データを他のソフトウェア部品に対して公開するソフトウェア部品であるデータ公開元部品と、
前記制御データを参照するソフトウェア部品であるデータ参照部品と、
各前記ソフトウェア部品の実行優先度を定義する優先度定義部と、
を備え、
前記データ公開元部品は、
前記データ参照部品に対して公開する前記制御データとして公開データと保管データを備え、
前記データ公開元部品の実行優先度と前記データ参照部品の実行優先度のいずれが高いかに基づいて、前記データ参照部品が前記制御データを参照する参照先を前記公開データと前記保管データのいずれかに切り替える参照先切替部を備える
ことを特徴とする組込み制御装置。
【請求項２】
前記参照先切替部は、
前記データ公開元部品の実行優先度が前記データ参照部品の実行優先度以下である場合には前記参照先を前記公開データとし、
前記データ公開元部品の実行優先度が前記データ参照部品の実行優先度よりも高い場合には前記参照先を前記保管データとする
ことを特徴とする請求項１記載の組込み制御装置。
【請求項３】
前記データ公開元部品が前記制御データを演算する処理と同じ実行優先度で前記公開データを更新する公開データ更新部を備えた
ことを特徴とする請求項１記載の組込み制御装置。
【請求項４】
前記データ公開元部品は、前記制御データを演算する処理内で前記公開データ更新部の処理を実行することにより前記公開データを更新する
ことを特徴とする請求項３記載の組込み制御装置。
【請求項５】
前記データ公開元部品が前記制御データを演算する処理とは異なる実行優先度で前記保管データを更新する保管データ更新部を備えた
ことを特徴とする請求項１記載の組込み制御装置。
【請求項６】
前記保管データ更新部は、前記データ公開元部品および前記データ参照部品とは異なるソフトウェア部品として構成されている
ことを特徴とする請求項５記載の組込み制御装置。
【請求項７】
前記保管データ更新部は、前記データ公開元部品が前記制御データを演算する処理よりも低い実行優先度で前記保管データを更新する
ことを特徴とする請求項５記載の組込み制御装置。
【請求項８】
前記保管データ更新部は、前記データ公開元部品よりも前記データ参照部品の実行優先度が低い場合には、前記データ参照部品と同一の実行優先度で前記保管データを更新する
ことを特徴とする請求項５記載の組込み制御装置。
【請求項９】
前記保管データ更新部は、
前記データ公開元部品よりも前記データ参照部品の実行優先度が低い場合には、前記データ参照部品が処理を実行するタイミングと同一のタイミングで、前記保管データを更新する処理を実行する
ことを特徴とする請求項５記載の組込み制御装置。
【請求項１０】
前記保管データ更新部が前記保管データを更新する処理を、タイマ割込または外部割込によって起動する
ことを特徴とする請求項９記載の組込み制御装置。
【請求項１１】
前記参照先切替部は、前記データ参照部品と前記公開データまたは前記保管データとの対応関係を、前記実行優先度によらず固定的に定める
ことを特徴とする請求項１記載の組込み制御装置。
【請求項１２】
前記制御データは、
車両を制御するためのセンサ計測値、アクチュエータ制御パラメータ、車両の状態推定値、車両の制御目標値のうち少なくともいずれかである
ことを特徴とする請求項１記載の組込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み制御装置に関するものである。
【背景技術】
【０００２】
自動車、エレベータ、建設機械等の技術分野では、いわゆる組込みソフトウェアによって制御対象を制御する、組み込み制御装置が用いられている。組込みソフトウェアは、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できること、ソフトウェアの部分的な変更によって多くの派生製品を開発できることが利点として挙げられる。
【０００３】
このような組込み制御装置、例えば車両制御装置では、軽自動車、小型車、高級車、ミニバン、スポーツカーなどといった車種の違い、また仕向地毎の法規制や顧客の好みに対応するために、ソフトウェアのバリエーション数が増大する。そこで、例えばオブジェクト指向開発手法やコンポーネント指向開発手法を採用してソフトウェアを部品化し、ソフトウェアを部品単位で開発・再利用する手法が採用されている。
【０００４】
また、組込み制御装置は制御対象の物理現象を扱うため、演算処理を所定時間内に完了して応答する、いわゆるリアルタイム性が必要となる。例えば車両制御装置の一例であるエンジン制御装置の場合には、エンジンの回転角度信号に同期して演算処理を起動し、所定の応答時間内で点火制御を実行完了する必要がある。
【０００５】
このようなリアルタイム処理を実現するため、組込み制御装置では、実行優先度に基づくプリ・エンプション処理を導入している。例えば、温度計測のように応答時間が長くてもよい処理は低優先度の処理とし、点火制御のように応答時間を短くする必要がある処理を高優先度の処理として、低優先度の処理の実行中に高優先度の処理を割り込ませて実行できるようにする手法が採用されている。
【０００６】
その一方で、組み込み制御装置において広く用いられているデジタル制御理論では、ある制御処理の実行中にその制御処理が参照している制御データは変更されないということが前提となる。
【０００７】
例えば常微分方程式で設計された制御を実装する場合には、常微分方程式をある時間刻み幅で離散化して差分方程式に変換し、変換した差分方程式をマイクロコントローラ上で時間刻み幅に相当する時間周期で演算することにより、制御を実現する。このとき、制御理論上では差分方程式の演算は瞬時に完了するという仮定が置かれている。しかし、実際にはマイクロコントローラでの演算にはある一定の時間を要する。そのため、ある制御処理の実行中には参照している制御データが変更されないという、いわゆるデータ同時性を満足することが重要となる。
【０００８】
下記特許文献１には、複数のソフトウェア部品で構成される組込み制御装置の例が示されている。この組込み制御装置では、優先度の低いデータ参照部品が優先度の高いデータ公開元部品の制御データを参照する場合には、データ参照部品の実行時にデータ公開元部品に対して割込み禁止命令を発行し、データの同時性を確保する。
【０００９】
下記特許文献２には、データ公開元部品が演算する制御データとは別個に変換データを設ける組込み制御装置の例が示されている。この組込み制御装置では、データ公開元部品の公開データを、データ参照部品が要求するデータ形式へと変換したうえで変換データとして保存することによって、データの変換処理を軽減する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００２−１５７１３１号公報
【特許文献２】特開２００６−２５７９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１に記載された技術では、本来優先度が低いはずのデータ参照部品の処理が完了するまで、実行優先度の高いデータ公開元部品の処理を起動することができず、リアルタイム性が低下するという課題がある。
【００１２】
上記特許文献２に記載された技術では、データ参照部品の実行優先度が高くデータ公開元部品に割り込まれる恐れが無い場合でも、データの参照先が変換データとなる。このため、例えばセンサ計測値を演算するデータ公開元部品が最新値を更新していたとしても、データ変換処理が完了するまでは最新値が変換データに反映されず、最新の計測値を参照できないと言う課題がある。
【００１３】
本発明は、上記のような課題を解決するためになされたものであり、リアルタイム性が高く、データ同時性を保つことができる組込み制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る組込み制御装置は、データ参照部品に対して公開する制御データとして、公開データと保管データを有する。また、データ公開元部品の実行優先度とデータ参照部品の実行優先度のいずれが高いかに基づいて、データ参照部品が公開データと保管データのいずれを参照するかを切り替える。
【発明の効果】
【００１５】
本発明に係る組込み制御装置によれば、実行優先度に応じて参照すべき制御データを切り替えることにより、リアルタイム性を確保するための制御データとデータ同時性を確保するための制御データを使い分けることができる。これにより、データ同時性を確保しつつ、リアルタイム性を高めることができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１に係る組込み制御装置１０００の機能ブロック図である。
【図２】一般的な組込み制御装置におけるソフトウェア部品の動作タイミングを示す図である。
【図３】図２の例に対して特許文献１の技術を適用した組込み制御装置におけるソフトウェア部品の動作状況を示す図である。
【図４】図２の例に対して特許文献２の技術を適用した組込み制御装置におけるソフトウェア部品の動作状況を示す図である。
【図５】参照先切替部１４の参照先を保管データ１３に切り替える動作を示す図である。
【図６】参照先切替部１４の参照先を公開データ１２に切り替える動作を示す図である。
【図７】図２の例に対して本発明の技術を適用した組込み制御装置におけるソフトウェア部品の動作状況を示す図である。
【図８】実施の形態２に係る車両制御装置２０００を例とした構成例である。
【図９】ソフトウェア３の構成を示す図である。
【図１０】タスクテーブル３２２１の構成を示す図である。
【図１１】アクチュエータ制御部３２５の一部である燃料噴射装置制御ソフトウェア部品４の構成を示す図である。
【図１２】エンジン回転数ソフトウェア部品５の構成を示す図である。
【図１３】燃料噴射量ソフトウェア部品６の構成を示す図である。
【００１７】
【図１４】１０ｍｓ周期タスクにおいて実行されるＴａｓｋＦＷ３３の実行フローを示す図である。
【図１５】ステップ３３１２におけるＣａｃｈｅＦＷ３４の処理詳細を示す図である。
【図１６】ステップＳ３３１３におけるＡＰＦＷ３１５の処理詳細を示す図である。
【図１７】ステップＳ３３１３３の処理詳細を示す図である。
【図１８】ステップＳ３３１２２において、ＣａｃｈｅＦＷ３４がエンジン回転数ソフトウェア部品５の保管データ５３を更新する処理フローを示す図である。
【図１９】ステップＳ３３１３３２における参照先切替部５４の動作を示す図である。
【図２０】ステップＳ３３１３３２における参照先切替部５４の動作を示す図である。
【図２１】１ｍｓ周期タスクにおいて実行されるＴａｓｋＦＷ３３の実行フローを示す図である。
【図２２】ステップＳ３３２２の処理詳細を示す図である。
【図２３】エンジン回転割込みタスクにおいて実行されるＴａｓｋＦＷ３３の実行フローを示す図である。
【図２４】ステップＳ３３３２の処理詳細を示す図である。
【図２５】ステップＳ３３３２２の詳細フローを示す図である。
【図２６】ステップＳ３３３２２２における参照先切替部５４の動作を示す図である。
【発明を実施するための形態】
【００１８】
＜実施の形態１：基本構成＞
図１は、本発明の実施の形態１に係る組込み制御装置１０００の機能ブロック図である。組込み制御装置１０００は、制御データを公開するソフトウェア部品であるデータ公開元部品１と、制御データを参照するソフトウェア部品であるデータ参照部品２とを備える。
【００１９】
データ公開元部品１は、優先度情報１１、公開データ１２、保管データ１３、参照先切替部１４を備える。優先度情報１１は、データ公開元部品１の実行優先度を定義する。公開データ１２は、公開用の制御データである。保管データ１３は、データ参照部品２の実行優先度に応じて、公開データ１２に代えて参照される内部的な制御データである。参照先切替部１４は、データ参照部品２から参照要求があった際に制御データの参照先を切り替える。
【００２０】
データ参照部品２は、データ参照部品２の実行優先度が定義された優先度情報２１を備える。
【００２１】
参照先切替部１４は、データ参照部品２から参照要求があった際、データ公開元部品１の優先度情報１１とデータ参照部品２の優先度情報２１とを比較する。データ公開元部品１の優先度情報１１がデータ参照部品２の優先度情報２１よりも高かった場合、すなわちデータ参照部品２の動作中に公開データ１２が更新される可能性がある場合には、データ参照部品２に対して返す制御データとして保管データ１３を選択し、値を返す。データ公開元部品１の優先度情報１１がデータ参照部品２の優先度情報２１以下であった場合、すなわちデータ参照部品２の動作中に公開データ１２が更新される可能性がない場合には、データ参照部品２に対して返す制御データとして公開データ１２を選択し、値を返す。
【００２２】
＜実施の形態１：動作タイミング＞
以下では、組込み制御装置１０００の動作タイミングを説明する。なお比較のため、はじめに一般的な組込み制御装置および上記各特許文献における動作タイミングを説明し、次に組込み制御装置１０００の動作タイミングを説明する。
【００２３】
＜実施の形態１：一般的な組込み制御装置の動作タイミング＞
図２は、一般的な組込み制御装置におけるソフトウェア部品の動作タイミングを示す図である。図２の組込み制御装置では、３つのソフトウェア部品が動作しており、それぞれ低優先度、中優先度、高優先度で動作している。中優先度部品がデータ公開元部品であり、低優先度ソフトウェア部品および高優先度ソフトウェア部品がデータ参照部品である。低優先度ソフトウェア部品は、その処理中に、中優先度ソフトウェア部品が保持しているデータを複数回参照する。以下、各時刻における動作を説明する。
【００２４】
（図２：時刻ｔ１）
時刻ｔ１において中優先度ソフトウェア部品の制御データの値は“２０００”である。時刻ｔ１において、低優先度のソフトウェア部品が起動される。低優先度ソフトウェア部品は中優先度ソフトウェア部品の制御データを参照し、“２０００”の値を得る。
【００２５】
（図２：時刻ｔ２）
時刻ｔ２において、中優先度ソフトウェア部品が起動され、処理主体が低優先度ソフトウェア部品から中優先度ソフトウェア部品へと切り替わる。中優先度ソフトウェア部品は制御データの演算処理を行い、値を“３０００”に更新する。中優先度ソフトウェア部品の処理終了後、処理主体が低優先度ソフトウェア部品へと切り替わる。
【００２６】
（図２：時刻ｔ３）
時刻ｔ３において、高優先度ソフトウェア部品が起動され、処理主体が低優先度ソフトウェア部品から高優先度ソフトウェア部品へと切り替わる。高優先度ソフトウェアは中優先度ソフトウェア部品の制御データを参照し、“３０００”の値を得る。高優先度ソフトウェア部品の処理終了後、処理主体が低優先度ソフトウェア部品へと切り替わる。低優先度ソフトウェア部品は再び中優先度ソフトウェア部品の制御データを参照し、“３０００”の値を得る。
【００２７】
図２の例において、低優先度ソフトウェア部品は、処理実行中に複数回、中優先度ソフトウェア部品の値を参照する。しかし、参照するタイミングによって得られる値が異なるため、制御データの同時性が崩れるという課題がある。
【００２８】
＜実施の形態１：特許文献１の動作タイミング＞
図３は、図２の例に対して特許文献１の技術を適用した組込み制御装置におけるソフトウェア部品の動作状況を示す図である。図３の組込み制御装置においても、３つのソフトウェア部品が動作しており、それぞれ低優先度、中優先度、高優先度で動作している。以下、各時刻における動作を説明する。
【００２９】
（図３：時刻ｔ１）
時刻ｔ１において中優先度ソフトウェア部品の制御データの値は“２０００”である。時刻ｔ１において、低優先度のソフトウェア部品が起動され、同時に割込み禁止命令を発行する。低優先度ソフトウェア部品は中優先度ソフトウェア部品の制御データを参照し、“２０００”の値を得る。
【００３０】
（図３：時刻ｔ２）
時刻ｔ２において、中優先度ソフトウェア部品が起動されるが、割込み禁止状態のため、起動待ちの状態となる。低優先度ソフトウェア部品は再び中優先度ソフトウェア部品の制御データを参照し、“２０００”の値を得る。低優先度ソフトウェア部品の処理終了後、割込み禁止状態が解除され、処理主体が中優先度ソフトウェア部品に切り替わる。
【００３１】
（図３：時刻ｔ３）
時刻ｔ３において高優先度ソフトウェア部品が起動され、処理主体が高優先度ソフトウェア部品に切り替わる。高優先度ソフトウェア部品は中優先度ソフトウェア部品の制御データを参照し、“２０００”の値を得る。高優先度ソフトウェア部品の処理終了後、処理主体が中優先度ソフトウェアへと切り替わる。そして、中優先度ソフトウェア部品は制御データの演算処理を行い、値を“３０００”に更新し、処理を終了する。
【００３２】
図３の例では、低優先度ソフトウェア部品の処理中における制御データの同時性を確保することに成功している。しかしながら、低優先度ソフトウェア部品に比べて優先度が高いはずの中優先度ソフトウェア部品が、低優先度ソフトウェア部品の実行中には起動できなくなり、リアルタイム性が低下するという課題がある。
【００３３】
図４は、図２の例に対して特許文献２の技術を適用した組込み制御装置におけるソフトウェア部品の動作状況を示す図である。図４の組込み制御装置においても、３つのソフトウェア部品が動作しており、それぞれ低優先度、中優先度、高優先度で動作している。中優先度ソフトウェア部品は、中優先度ソフトウェア部品の内部データである公開データと、他のソフトウェア部品から参照される為の参照データとを有している。以下、各時刻における動作を説明する。
【００３４】
（図４：時刻ｔ０以前）
時刻ｔ０以前には、公開データの値は“２０００”、参照データの値は“１５００”である。
【００３５】
（図４：時刻ｔ０）
時刻ｔ０において、参照データの更新処理が行われ、値が“２０００”へと更新される。
【００３６】
（図４：時刻ｔ１）
時刻ｔ１において、低優先度のソフトウェア部品が起動される。低優先度ソフトウェア部品は中優先度ソフトウェア部品の制御データを参照し、参照データの値である“２０００”の値を得る。
【００３７】
（図４：時刻ｔ２）
時刻ｔ２において、中優先度ソフトウェア部品が起動され、処理主体が低優先度ソフトウェア部品から中優先度ソフトウェア部品へと切り替わる。中優先度ソフトウェア部品は制御データの演算処理を行い、公開データの値を“３０００”に更新する。中優先度ソフトウェア部品の処理終了後、処理主体が低優先度ソフトウェア部品へと切り替わる。
【００３８】
（図４：時刻ｔ３）
時刻ｔ３において、高優先度ソフトウェア部品が起動され、処理主体が低優先度ソフトウェア部品から高優先度ソフトウェア部品へと切り替わる。高優先度ソフトウェアは中優先度ソフトウェア部品の制御データを参照し、参照データの値である“２０００”の値を得る。高優先度ソフトウェア部品の処理終了後、処理主体が低優先度ソフトウェア部品へと切り替わる。低優先度ソフトウェア部品は再び中優先度ソフトウェア部品の制御データを参照し、参照データの値である“２０００”の値を得る。
【００３９】
図４の例では、低優先度ソフトウェア部品の処理中における制御データの同時性を確保するとともに、ソフトウェア部品毎に定義された優先度情報に沿って処理を実行することに成功している。しかしながら、高優先度ソフトウェア部品がデータを参照する際のように、データを参照するタイミングによっては、値が最新値に更新されているにもかかわらず、更新前の古い値を参照してしまい、リアルタイム性が低下するという課題がある。
【００４０】
＜実施の形態１：本実施形態１における参照先切り替え＞
図５は、参照先切替部１４の参照先を保管データ１３に切り替える動作を示す図である。データ参照部品２の演算処理部２２からデータ参照要求があると、参照先切替部１４は各ソフトウェア部品の実行優先度を比較する。図５の例では、データ公開元部品１の優先度１１が“中”、データ参照部品２の優先度２１が“低”であるので、「データ公開元部品優先度＞データ参照部品優先度」となり、制御データの参照先は保管データ１３となる。参照先切替部１４は、保管データ１３の値をデータ参照部品２に対して返す。
【００４１】
図６は、参照先切替部１４の参照先を公開データ１２に切り替える動作を示す図である。データ参照部品２の演算処理部２２からデータ参照要求があると、参照先切替部１４は各ソフトウェア部品の実行優先度を比較する。図６の例では、データ公開元部品１の優先度１１が“中”、データ参照部品２の優先度２１が“高”であるので、「データ公開元部品優先度≦データ参照部品優先度」となり、制御データの参照先は公開データ１２となる。参照先切替部１４は、公開データ１２の値をデータ参照部品２に対して返す。
【００４２】
＜実施の形態１：本実施形態１における動作タイミング＞
図７は、図２の例に対して本発明の技術を適用した組込み制御装置１０００におけるソフトウェア部品の動作状況を示す図である。図７の組込み制御装置においても、３つのソフトウェア部品が動作しており、それぞれ低優先度、中優先度、高優先度で動作している。中優先度ソフトウェア部品は、中優先度ソフトウェア部品が管理する制御データである公開データと保管データとを有している。以下、各時刻における動作を説明する。
【００４３】
（図７：時刻ｔ０以前）
時刻ｔ０以前には、公開データ１２の値は“２０００”、保管データ１３の値は“１５００”である。
【００４４】
（図７：時刻ｔ０）
時刻ｔ０において、保管データ１３の更新処理が行われ、値が“２０００”へと更新される。
【００４５】
（図７：時刻ｔ１）
時刻ｔ１において、低優先度のソフトウェア部品が起動される。低優先度ソフトウェア部品は中優先度ソフトウェア部品の制御データを参照し、保管データ１３の値である“２０００”の値を得る。
【００４６】
（図７：時刻ｔ２）
時刻ｔ２において、中優先度ソフトウェア部品が起動され、処理主体が低優先度ソフトウェア部品から中優先度ソフトウェア部品へと切り替わる。中優先度ソフトウェア部品は制御データの演算処理を行い、公開データ１２の値を“３０００”に更新する。中優先度ソフトウェア部品の処理終了後、処理主体が低優先度ソフトウェア部品へと切り替わる。
【００４７】
（図７：時刻ｔ３）
時刻ｔ３において、高優先度ソフトウェア部品が起動され、処理主体が低優先度ソフトウェア部品から高優先度ソフトウェア部品へと切り替わる。高優先度ソフトウェアは中優先度ソフトウェア部品の制御データを参照し、公開データ１２の値である“３０００”の値を得る。高優先度ソフトウェア部品の処理終了後、処理主体が低優先度ソフトウェア部品へと切り替わる。低優先度ソフトウェア部品は再び中優先度ソフトウェア部品の制御データを参照し、保管データ１３の値である“２０００”の値を得る。
【００４８】
＜実施の形態１：まとめ＞
以上のように、本実施の形態１において、参照先切替部１４は、データ公開元部品１の実行優先度１１とデータ参照部品２の実行優先度２１のいずれが高いかに基づいて、データ参照部品２が公開データ１２と保管データ１３のいずれを参照するかを切り替える。公開データ１２は、更新後の値をリアルタイムで取得するために用いられる。保管データ１３は、処理開始から終了まで同一の値を保つデータ同時性を維持するために用いられる。これらを使い分けることにより、制御データの同時性を保ちつつ、リアルタイム性を高めることができる。
【００４９】
また、本実施の形態１において、参照先切替部１４は、実行優先度が高いデータ参照部品２が制御データを参照する場合、すなわちデータ同時性問題の恐れが無い場合には、公開データ１２が保持している最新の制御データを返す。また、実行優先度が低いデータ参照部品２が制御データを参照する場合、すなわちデータ同時性問題の恐れがある場合には、同時性を保証した保管データ１３を返す。これにより、実行優先度が高いデータ参照部品２には制御データのリアルタイム性を提供し、実行優先度が低いデータ参照部品２にはデータ同時性を提供することができる。
【００５０】
なお、本実施の形態１において、高優先度のデータ参照部品２が取得した公開データ１２と、低優先度のデータ参照部品２が取得した保管データ１３が異なる場合がある。しかし、低優先度のデータ参照部品２に関しては、処理の重要度が低いため、必ずしもリアルタイムでデータ値を更新する必要がない。そのため、値を即時更新することよりも、処理開始から処理終了までデータ値が変化しないことを保証するほうが望ましい。そこで、低優先度のデータ参照部品２に対しては、保管データ１３を返すことにした。
【００５１】
＜実施の形態２＞
本発明の実施の形態２では、実施の形態１で説明したデータ公開元部品１とデータ参照部品２の具体例を説明する。また、組込み制御装置１０００の具体例として、車両制御装置２０００の構成を説明する。
【００５２】
図８は、本実施の形態２に係る車両制御装置２０００を例とした構成例である。図８に示す車両制御装置２０００は、エンジン７、エンジン制御装置８１、エンジン回転角センサ９１、空気流量センサ９２、インジェクタ９３、点火コイル９４、通信ネットワークバス９５、変速機制御装置８２、ブレーキ制御装置８３を備える。
【００５３】
エンジン制御装置８１は、マイクロコントローラ８１１、マイクロコントローラ上で動作するソフトウェア３を備える。
【００５４】
図９は、ソフトウェア３の構成を示す図である。ソフトウェア３は、アプリケーションソフトウェア３１、プラットフォームソフトウェア３２、ＴａｓｋＦＷ（Ｔａｓｋ  ＦｒａｍｅＷｏｒｋ）３３、ＣａｃｈｅＦＷ（Ｃａｃｈｅ  ＦｒａｍｅＷｏｒｋ）３４を備える。ＴａｓｋＦＷ３３は、ＲＴＯＳ３２２によって起動されるタスク内での実行フローを制御する。タスクとは、１以上のソフトウェア部品の処理をまとめた処理単位である。タスクの実行例については、後述の図１４以降で説明する。ＣａｃｈｅＦＷ３４は、ソフトウェア部品３１１〜３１４が保持する保管データを更新する。
【００５５】
アプリケーションソフトウェア３１は、第１ソフトウェア部品３１１、第２ソフトウェア部品３１２、第３ソフトウェア部品３１３、第Ｎソフトウェア部品３１４、ＡＰＦＷ（Ａｐｐｌｉｃａｔｉｏｎ  ＦｒａｍｅＷｏｒｋ）３１５を備える。ＡＰＦＷ３１５は、各ソフトウェア部品の実行フローを制御する。ＡＰＦＷ３１５は、各ソフトウェア部品の実行順を定義したソフト部品テーブル３１５１を備える。
【００５６】
プラットフォームソフトウェア３２は、割込み処理部３２１、リアルタイムオペレーティングシステム（ＲＴＯＳ）３２２、アプリケーションインタフェース（ＡＰＩ）３２３、センサ制御部３２４、アクチュエータ制御部３２５、通信制御部３２６、デジタル入出力制御部３２７、アナログ入出力部３２８を備える。ＲＴＯＳ３２２は、タスク名称、起動要因および優先度情報を定義したタスクテーブル３２２１を備える。
【００５７】
図１０は、タスクテーブル３２２１の構成を示す図である。エンジン回転同期タスクはエンジン回転割り込みを起動要因とし、本タスクで実行されるソフトウェア部品の優先度は高優先度となる。１ｍｓ周期タスクは１ｍｓ周期タイマを起動要因とし、本タスクで実行されるソフトウェア部品の優先度は中優先度となる。１０ｍｓタスクは１０ｍｓ周期タイマを起動要因とし、本タスクで実行されるソフトウェア部品の優先度は低優先度となる。ＲＴＯＳ３２２は、タスクテーブル３２２１が定義する優先度にしたがって、各ソフトウェア部品の優先度情報の値を設定する。
【００５８】
図１１は、アクチュエータ制御部３２５の一部である燃料噴射装置制御ソフトウェア部品４の構成を示す図である。燃料噴射装置制御ソフト部品４は、優先度定義部４１と演算処理部４２を備える。燃料噴射装置制御ソフト部品４はエンジン回転同期タスク内で実行され、優先度定義部４１は優先度“高”に設定される。演算処理部４２は、燃料噴射装置制御処理を実行する。
【００５９】
図１２は、エンジン回転数ソフトウェア部品５の構成を示す図である。エンジン回転数ソフトウェア部品５は、第１ソフトウェア部品３１１〜第Ｎソフトウェア部品３１４のうちのいずれかである。エンジン回転数ソフトウェア部品５は、優先度定義部５１、公開データ５２、保管データ５３、参照先切替部５４、演算処理部５５を備える。エンジン回転数ソフトウェア部品５は、１ｍｓ周期タスクで実行され、優先度定義部５１は優先度“中”に設定される。演算処理部５５は、制御データであるエンジン回転数を演算するためのアルゴリズムを実行し、公開データ５２を更新する。
【００６０】
図１３は、燃料噴射量ソフトウェア部品６の構成を示す図である。燃料噴射量ソフトウェア部品６は、第１ソフトウェア部品３１１〜第Ｎソフトウェア部品３１４のうちのいずれかである。燃料噴射量ソフトウェア部品６は、優先度定義部６１、公開データ６２、保管データ６３、参照先切替部６４、演算処理部６５を備える。燃料噴射量ソフトウェア部品６は、１０ｍｓ周期タスクで実行され、優先度定義部６１は優先度“低”に設定される。演算処理部６５は、制御データである燃料噴射量を演算するためのアルゴリズムを実行し、公開データ６２を更新する。
【００６１】
以上、車両制御装置２０００の構成を説明した。本実施の形態２における「保管データ更新部」は、ＣａｃｈｅＦＷ３４が相当する。また、「公開データ更新部」は、各公開データを保持するソフトウェア部品自身が相当する。
【００６２】
次に、車両制御装置２０００が備える各ソフトウェア部品の動作を説明する。なお以下の説明では、記載の便宜上、各ソフトウェア部品、ＦＷなどを動作主体として説明する場合があるが、実際に各ソフトウェア部品やＦＷが規定する動作を実行するのは、マイクロコントローラ８１１であることを付言しておく。また、以下では一部のソフトウェア部品の動作を例に説明するが、他のソフトウェア部品についても本実施形態２で説明する手法を適用できることを付言しておく。
【００６３】
図１４は、１０ｍｓ周期タスクにおいて実行されるＴａｓｋＦＷ３３の実行フローを示す図である。ステップＳ３３１１において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＴａｓｋＦＷ３３の処理を開始する。ステップＳ３３１２において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＣａｃｈｅＦＷ３４の処理を実行する。ステップＳ３３１２の詳細は、後述の図１５で改めて示す。ステップＳ３３１３において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＡＰＦＷ３１５の処理を実行する。ステップＳ３３１４において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＴａｓｋＦＷ３３の処理を終了する。
【００６４】
図１５は、ステップ３３１２におけるＣａｃｈｅＦＷ３４の処理詳細を示す図である。ステップＳ３３１２１において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＣａｃｈｅＦＷ３４の処理を開始する。ステップＳ３３１２２において、ＣａｃｈｅＦＷ３４は、エンジン回転数ソフト部品５の保管データ５３を更新する処理を実行する。ステップＳ３３１２２の詳細は、後述の図１８で改めて示す。ステップＳ３３１２３において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＣａｃｈｅＦＷ３４の処理を終了する。
【００６５】
図１６は、ステップＳ３３１３におけるＡＰＦＷ３１５の処理詳細を示す図である。ステップＳ３３１３１において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＡＰＦＷ３１５の処理を開始する。ステップＳ３３１３２において、ＡＰＦＷ３１５は、制御データのひとつである大気温度の演算処理を実行する。ステップＳ３３１３３において、ＡＰＦＷ３１５は、制御データのひとつである燃料噴射量の演算処理を実行する。ステップＳ３３１３３の詳細は、後述の図１７で改めて説明する。ステップＳ３３１３４において、マイクロコントローラ８１１は、１０ｍｓ周期タスクにおけるＡＰＦＷ３１５の処理を終了する。
【００６６】
図１７は、ステップＳ３３１３３の処理詳細を示す図である。ステップＳ３３１３３１において、ＡＰＦＷ３１５は、燃料噴射量の演算処理を開始する。ステップＳ３３１３３２において、ＡＰＦＷ３１５は、制御データのひとつであるエンジン回転数を参照し、値を取得する。ステップＳ３３１３３２の詳細は、後述の図１９で改めて説明する。ステップＳ３３１３３３において、ＡＰＦＷ３１５は、制御データのひとつである吸入空気量を参照し、値を取得する。ステップＳ３３１３３４において、ＡＰＦＷ３１５は、エンジン回転数の値および吸入空気量の値に基づいて、燃料噴射量を算出する。ステップＳ３３１３３５において、ＡＰＦＷ３１５は、ステップＳ３３１３３の処理を終了する。
【００６７】
図１８は、ステップＳ３３１２２において、ＣａｃｈｅＦＷ３４がエンジン回転数ソフトウェア部品５の保管データ５３を更新する処理フローを示す図である。ステップＳ５３１において、ＣａｃｈｅＦＷ３４は、エンジン回転数保管データを更新する処理を開始する。ステップＳ５３２において、ＣａｃｈｅＦＷ３４は、保管データ５３に対して公開データ５２の値を代入する。ステップＳ５３３において、ＣａｃｈｅＦＷ３４は、本処理を終了する。
【００６８】
図１９は、ステップＳ３３１３３２における参照先切替部５４の動作を示す図である。ステップＳ３３１３３２において、ＡＰＦＷ３１５は、データ参照部品である燃料噴射量ソフトウェア部品６の演算処理部６５から、エンジン回転数ソフトウェア部品５に対し、制御データを参照させる。以下、図１９の各ステップについて説明する。
【００６９】
ステップＳ５４１において、参照先切替部５４は、燃料噴射量ソフトウェア部品６の演算処理部６５から、制御データを参照する要求を受け取り、本処理フローを開始する。ステップＳ５４２において、参照先切替部５４は、データ公開元部品の実行優先度とデータ参照部品の実行優先度を比較する。データ公開元部品であるエンジン回転数ソフトウェア部品５の優先度５１が“中”、データ参照部品である燃料噴射量ソフト部品６の優先度６１が“低”であるので、「データ公開元部品優先度＞データ参照部品優先度」となる。したがって参照先切替部５４は、ステップＳ５４３に進み、制御データの参照先を保管データ５３に切り替え、保管データ５３の値を燃料噴射量ソフト部品６に対して返す。ステップＳ５４５において、参照先切替部５４は、本処理を終了する。
【００７０】
図２０は、ステップＳ３３１３３２における参照先切替部５４の動作を示す図である。データ参照部品である燃料噴射量ソフト部品６の演算処理部６５からデータ参照要求が出されると、参照先切替部５４は、図１９で説明した動作フローを実行する。データ公開元部品であるエンジン回転数ソフト部品５の優先度５１が“中”、データ参照部品である燃料噴射量ソフト部品６の優先度６１が“低”であるので、「データ公開元部品優先度＞データ参照部品優先度」となる。したがって、制御データの参照先は保管データ５３となる。
【００７１】
図２１は、１ｍｓ周期タスクにおいて実行されるＴａｓｋＦＷ３３の実行フローを示す図である。ステップＳ３３２１において、マイクロコントローラ８１１は、１ｍｓ周期タスクにおけるＴａｓｋＦＷ３３の処理を開始する。ステップＳ３３２２において、マイクロコントローラ８１１は、１ｍｓ周期タスクにおけるＡＰＦＷ３１５の処理を実行する。ステップＳ３３２３において、マイクロコントローラ８１１は、１ｍｓ周期タスクにおけるＴａｓｋＦＷ３３の処理を終了する。
【００７２】
図２２は、ステップＳ３３２２の処理詳細を示す図である。ステップＳ３３２２１において、ＡＰＦＷ３１５は、１ｍｓ周期タスクのＡＰＦＷ３１５の処理を開始する。ステップＳ３３２２２において、ＡＰＦＷ３１５は、エンジン回転数ソフトウェア部品５の演算処理５５を起動し、制御データのひとつであるエンジン回転数を演算する。ステップＳ３３２２３において、ＡＰＦＷ３１５は、本動作フローを終了する。
【００７３】
図２３は、エンジン回転割込みタスクにおいて実行されるＴａｓｋＦＷ３３の実行フローを示す図である。割込みタスクとは、例えばタイマ割込みなどによって他の処理の実行中に割り込むようにして起動されるタスクのことである。以下、図２３の各ステップについて説明する。
【００７４】
ステップＳ３３３１において、マイクロコントローラ８１１は、割込みタスクにおけるＴａｓｋＦＷ３３の処理を開始する。ステップＳ３３３２において、マイクロコントローラ８１１は、割込みタスクにおけるＡＰＦＷ３１５の処理を実行する。ステップＳ３３３３において、マイクロコントローラ８１１は、割込みタスクにおけるＴａｓｋＦＷ３３の処理を終了する。
【００７５】
図２４は、ステップＳ３３３２の処理詳細を示す図である。ステップＳ３３３２１において、ＡＰＦＷ３１５は、割込みタスクにおけるＡＰＦＷの処理を開始する。ステップＳ３３３２２において、ＡＰＦＷ３１５は、プラットフォームソフトウェア３２のＡＰＩ３２３を用いて、アクチュエータ制御部３２５のひとつである燃料噴射装置制御ソフトウェア部品４を実行する。ステップＳ３３３２２の詳細は、後述の図２５で説明する。ステップＳ３３３２３において、ＡＰＦＷ３１５は、割込みタスクにおけるＡＰＦＷ３１５の処理を終了する。
【００７６】
図２５は、ステップＳ３３３２２の詳細フローを示す図である。ステップＳ３３３２２１において、燃料噴射装置制御ソフトウェア部品４は動作を開始する。ステップＳ３３３２２２において、燃料噴射装置制御ソフトウェア部品４は、制御データの１つであるエンジン回転数を参照し、値を取得する。ステップＳ３３３２２３において、燃料噴射装置制御ソフトウェア部品４は、制御データの１つである燃料噴射量を参照し、値を取得する。ステップＳ３３３２２４において、燃料噴射装置制御ソフトウェア部品４は、燃料噴射タイミングを演算する。ステップＳ３３３２２５において、燃料噴射装置制御ソフトウェア部品４は、燃料噴射時間を演算する。ステップＳ３３３２２６において、燃料噴射装置制御ソフトウェア部品４は、燃料噴射タイミングおよび燃料噴射時間をマイコンのタイマに対して設定する。ステップＳ３３３２２７において、燃料噴射装置制御ソフトウェア部品４は、処理を終了する。
【００７７】
図２６は、ステップＳ３３３２２２における参照先切替部５４の動作を示す図である。データ参照部品である燃料噴射装置制御ソフト部品４の演算処理部４２からデータ参照要求が出されると、参照先切替部５４は、図１９で説明した処理を実行する。データ公開元部品であるエンジン回転数ソフト部品５の優先度５１が“中”、データ参照部品である燃料噴射装置制御ソフト部品４の優先度４１が“高”であるので、「データ公開元部品優先度≦データ参照部品優先度」となる。したがって、制御データの参照先は公開データ５２となる。
【００７８】
以上のように、本実施の形態２に係る車両制御装置２００において、公開データを保持する各ソフトウェア部品は、自らが保持する公開データを制御演算のなかで更新する。ＣａｃｈｅＦＷ３４は、制御演算を実行する各ソフトウェア部品とは別のソフトウェア部品として構成されており、各ソフトウェア部品とは異なる優先度、好ましくはより低い優先度で、各ソフトウェア部品が保持している保管データを、公開データの値によって更新する。これにより、優先度の高いソフトウェア部品に対して公開する公開データについては各ソフトウェア部品が自ら更新することによってリアルタイム性を確保し、優先度の低いソフトウェア部品に対して公開する保管データについては各ソフトウェア部品の制御演算に割り込まないようにして別途更新することができる。
【００７９】
なお、本実施の形態２において、アクチュエータ制御部３２５の一部である燃料噴射装置制御ソフトウェア部品４が、エンジン回転数を制御データとして参照する例を説明したが、センサ計測値を参照したり、その他の車両制御パラメータ、例えば車両の状態推定値や車両の制御目標値を参照するように構成することもできる。他の実施形態でも同様である。
【００８０】
＜実施の形態３＞
実施の形態２において、ＣａｃｈｅＦＷ３４が保管データを更新する処理は、１０ｍｓ周期タスク（低優先度タスク）の一部として実行することを説明した。これは、ＣａｃｈｅＦＷ３４の処理を、データ参照部品である燃料噴射量ソフトウェア部品６と同じ実行優先度または同じ実行タイミングで実行するものである。ＣａｃｈｅＦＷ３４の処理はその他にも、例えば任意のタイマ割込みまたは外部割込みによって起動することができる。
【００８１】
例えば、あるソフトウェア部品またはＦＷの処理中に、「今から１０ｍｓ後にＣａｃｈｅＦＷ３４を低優先度で起動する」といった、特定処理をタイマ実行予約することが考えられる。その他、「センサ計測値が閾値を越えたときにＣａｃｈｅＦＷ３４を低優先度で起動する」といった、車両制御装置２０００の外部要因に起因する割込み処理が考えられる。
【００８２】
＜実施の形態４＞
実施の形態１〜３において、各ソフトウェア部品が備える参照先切替部は、データ公開元部品の実行優先度とデータ参照部品の実行優先度に基づき制御データの参照先を切り替えることを説明した。一方、データ参照部品が参照する制御データが、各ソフトウェア部品の実行優先度によらず一意に定まる場合には、各ソフトウェア部品が備える参照先切替部は参照先の切り替えを、実行優先度によらず固定的に実行してもよい。
【００８３】
例えば、燃料噴射量ソフトウェア部品６が参照する制御データは必ずエンジン回転数ソフトウェア部品５の保管データ５３であると固定的に定まっているような場合には、参照先切替部５４は燃料噴射量ソフトウェア部品６からデータ参照要求を受けると必ず保管データ５３の値を返すようにしてもよい。
【符号の説明】
【００８４】
１：データ公開元部品、１１：優先度情報、１２：公開データ、１３：保管データ、１４：参照先切替部、２：データ参照部品、２１：優先度情報、２２：演算処理部、１０００：組込み制御装置、３：ソフトウェア、３１：アプリケーションソフトウェア、３１１〜３１４：ソフトウェア部品、３１５：ＡＰＦＷ、３１５１：ソフト部品テーブル、３２：プラットフォームソフトウェア、３２１：割込み処理部、３２２：リアルタイムオペレーティングシステム、３２２１：タスクテーブル、３２３：アプリケーションインタフェース、３２４：センサ制御部、３２５：アクチュエータ制御部、３２６：通信制御部、３２７：デジタル入出力制御部、３２８：アナログ入出力部、３３：ＴａｓｋＦＷ、３４：ＣａｃｈｅＦＷ、４：燃料噴射装置制御ソフトウェア部品、４１：優先度定義部、４２：演算処理部、５：エンジン回転数ソフトウェア部品、５１：優先度定義部、５２：公開データ、５３：保管データ、５４：参照先切替え部、５５：演算処理部、６：燃料噴射量ソフトウェア部品、６１：優先度定義部、６２：公開データ、６３：保管データ、６４：参照先切替部、６５：演算処理部、７：エンジン、８１：エンジン制御装置、８１１：マイクロコントローラ、８２：変速機制御装置、８３：ブレーキ制御装置、９１：エンジン回転角センサ、９２：空気流量センサ、９３：インジェクタ、９４：点火コイル、９５：通信ネットワークバス、２０００：車両制御装置。
【図１】
0005406072.tif 000002
【図２】
0005406072.tif 000003
【図３】
0005406072.tif 000004
【図４】
0005406072.tif 000005
【図５】
0005406072.tif 000006
【図６】
0005406072.tif 000007
【図７】
0005406072.tif 000008
【図８】
0005406072.tif 000009
【図９】
0005406072.tif 000010
【図１０】
0005406072.tif 000011
【図１１】
0005406072.tif 000012
【図１２】
0005406072.tif 000013
【図１３】
0005406072.tif 000014
【図１４】
0005406072.tif 000015
【図１５】
0005406072.tif 000016
【図１６】
0005406072.tif 000017
【図１７】
0005406072.tif 000018
【図１８】
0005406072.tif 000019
【図１９】
0005406072.tif 000020
【図２０】
0005406072.tif 000021
【図２１】
0005406072.tif 000022
【図２２】
0005406072.tif 000023
【図２３】
0005406072.tif 000024
【図２４】
0005406072.tif 000025
【図２５】
0005406072.tif 000026
【図２６】
0005406072.tif 000027