(57)【特許請求の範囲】
【請求項１】
検出手段にて検出される車両情報に基づく演算処理を行い、当該演算処理の結果に従い駆動手段に対する駆動情報を出力することによって車両を制御する車両用制御装置において、
前記車両の制御を実現するための車両制御プログラムが、通信手段を介して接続された複数の処理実行装置に分散され搭載されており、
前記各処理実行装置に搭載されるプログラムは、
前記演算処理を実行するアプリケーション層と、
前記検出手段及び前記駆動手段に依存した処理を実行し、前記車両情報の取得及び前記駆動情報の出力を行うセンサアクチュエータ層と、
前記アプリケーション層からの前記駆動情報を取得する、又は、必要に応じて前記通信手段を介し他の処理実行装置へ送信するインターフェース層であって、さらに、他の処理実行装置から前記駆動情報が送信されると当該駆動情報を取得するインターフェース層と、
前記インターフェース層にて前記駆動情報を取得する取得タイミングとは異なるエンジンあるいは駆動系の制御に必要な情報を出力すべき出力タイミングで、リアルタイム性が要求される当該取得した駆動情報を前記センサアクチュエータ層に対して出力する情報コントロール層とを備えていること
を特徴とする車両用制御装置。
【請求項２】
請求項１に記載の車両用制御装置において、
前記アプリケーション層は、前記駆動情報を一定の形式で出力するようになっており、
前記情報コントロール層が、前記センサアクチュエータ層で直接的に処理できる情報に変換して前記駆動情報を出力することを特徴とする車両用制御装置。
【請求項３】
検出手段にて検出される車両情報に基づく演算処理を行い、当該演算処理の結果に従い駆動手段に対する駆動情報を出力することによって車両を制御する車両用制御装置において、
前記車両の制御を実現するための車両制御プログラムが、通信手段を介して接続された複数の処理実行装置に分散され搭載されており、
前記各処理実行装置に搭載されるプログラムは、
前記演算処理を実行するアプリケーション層と、
前記検出手段及び前記駆動手段に依存した処理を実行し、前記車両情報の取得及び前記駆動情報の出力を行うセンサアクチュエータ層と、
前記センサアクチュエータ層にて取得される前記車両情報を所定間隔毎に取得して、当該取得した前記車両情報を出力する情報コントロール層と、
前記アプリケーション層からの要求に基づき、前記情報コントロール層から出力される前記車両情報を取得し前記アプリケーション層へ出力する、又は、必要に応じて前記通信手段を介し他の処理実行装置へ前記車両情報を要求し、当該要求に対して送信される前記車両情報を取得し前記アプリケーション層へ出力するインターフェース層であって、さらに、他の処理実行装置から前記車両情報が要求されると前記情報コントロール層からの前記車両情報を送信するインターフェース層とを備え、
前記情報コントロール層は、前記インターフェース層が前記通信手段を介して他の処理実行装置へ前記車両情報を送信する場合は、前記センサアクチュエータ層にて所定間隔毎に取得された複数の車両情報に基づき一つの車両情報を生成すると共に、当該生成された車両情報を前記所定間隔よりも長いエンジンのクランク軸が所定角度回転する毎に訪れるタイミング毎に出力すること
を特徴とする車両用制御装置。
【請求項４】
請求項３に記載の車両用制御装置において、
前記センサアクチュエータ層は、前記車両情報を前記検出手段に応じた形式で出力するようになっており、
前記情報コントロール層が、前記アプリケーション層で直接的に処理できる情報に変換して前記車両情報を出力すること
を特徴とする車両用制御装置。
【請求項５】
請求項１又は２に記載の車両用制御装置において、
前記情報コントロール層は、前記センサアクチュエータ層にて取得される前記車両情報を所定間隔毎に取得して、当該取得した車両情報を出力し、
前記インターフェース層は、前記アプリケーション層からの要求に基づき、前記情報コントロール層から出力される前記車両情報を取得し前記アプリケーション層へ出力し、又は、必要に応じて前記通信手段を介し他の処理実行装置へ前記車両情報を要求し、当該要求に対して送信される前記車両情報を取得し前記アプリケーション層へ出力し、さらに、他の処理実行装置から前記車両情報が要求されると前記情報コントロール層からの前記車両情報を送信し、
前記情報コントロール層は、前記インターフェース層が前記通信手段を介して他の処理実行装置へ前記車両情報を送信する場合は、前記センサアクチュエータ層にて所定間隔毎に取得された複数の車両情報に基づき一つの車両情報を生成すると共に、当該生成された車両情報を前記所定間隔よりも長い間隔毎に出力する
ことを特徴とする車両用制御装置。
【請求項６】
請求項５に記載の車両用制御装置において、
前記センサアクチュエータ層は、前記車両情報を前記検出手段に応じた形式で出力するようになっており、
前記情報コントロール層が、前記アプリケーション層で直接的に処理できる情報に変換して前記車両情報を出力することを特徴とする車両用制御装置。
【請求項７】
請求項３〜６のいずれかに記載の車両用制御装置において、
前記情報コントロール層は、前記インターフェース層が前記通信手段を介して他の処理実行装置へ前記車両情報を送信する場合は、前記取得された複数の車両情報の平均を、前記生成された車両情報として出力する
ことを特徴とする車両用制御装置。
【請求項８】
請求項３〜６のいずれかに記載の車両用制御装置において、
前記情報コントロール層は、前記インターフェース層が前記通信手段を介して他の処理実行装置へ前記車両情報を送信する場合は、前回の前記車両情報の出力時から今回の前記車両情報の出力時までに取得された複数の車両情報の平均を、前記生成された車両情報として出力する
ことを特徴とする車両用制御装置。
【請求項９】
請求項１〜８のいずれかに記載の車両用制御装置において、
前記処理実行装置に搭載されるプログラムとしての前記アプリケーション層、前記インターフェース層、前記情報コントロール層及び前記センサアクチュエータ層が、部品単位又は機能単位に設けられる複数のオブジェクトで構成されている
ことを特徴とする車両用制御装置。
【請求項１０】
請求項１〜９のいずれかに記載の車両用制御装置に搭載される車両制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両制御を実現するための車両制御プログラムの構築技術に関し、詳しくは、当該プログラムの再利用性の確保を前提として、分散処理による処理タイミングの遅れを防止する技術に関する。
【０００２】
【従来の技術】
従来より、車両に搭載されるセンサからの車両情報に基づく演算処理を実行し、当該演算処理の結果に従い駆動情報をアクチュエータへ出力して車両を制御する車両用制御装置が知られている。
【０００３】
このような車両の制御は、車両制御プログラムを実行することによって実現される。そして近年、この車両制御プログラムの構成は、アプリケーションプログラムの再利用が図られるように、また、複数の電子制御装置（以下「ＥＣＵ」という。）における分散処理の実現が容易になるように工夫されている。
【０００４】
従来のＥＣＵに搭載されたプログラム構成は、図７に示すように、アプリケーション層６１０、インターフェース層６２０、ハードウェア層７００に分割されている。
アプリケーション層６１０は、上述した演算処理を実行する処理プログラムで構成される。ハードウェア層７００は、センサにて検出される車両情報を取得する処理プログラムで構成される仮想センサ部６３０、駆動情報をアクチュエータに出力する処理プログラムで構成される仮想アクチュエータ部６４０、及び通信手段を制御して他のＥＣＵとの通信を可能にする処理プログラムである通信ドライバ６５０を備えている。
【０００５】
そして、仮想センサ部６３０にて取得された車両情報がインターフェース層６２０を介してアプリケーション層６１０で演算処理され、演算処理の結果に従いアプリケーション層６１０からインターフェース層６２０を介して仮想アクチュエータ部６４０に駆動情報が出力される。
【０００６】
つまり、車種・グレードなどによって変わってくる可能性のあるハードウェアに依存する処理プログラムをハードウェア層７００としてアプリケーション層６１０と分離することによって、ハードウェアの変更があってもアプリケーション層６１０をそのまま利用できるようにし、アプリケーションプログラムが再利用できるようにしている。
【０００７】
また、インターフェース層６２０は、分散処理を実現するための機能を有している。これについて図８を参照して説明する。
ここでは、Ａ及びＢの２つのＥＣＵを例に挙げ、Ａ−ＥＣＵの仮想アクチュエータ部６４０ａにて駆動されるアクチュエータを、Ｂ−ＥＣＵのアプリケーション層６１０ｂの演算結果で制御する場合を考える。
【０００８】
このとき、Ｂ−ＥＣＵのインターフェース層６２０ｂが駆動情報の出力先である処理プログラムの所在を管理しているため、Ｂ−ＥＣＵのアプリケーション層６１０ｂは、駆動情報を出力すべき処理プログラムがどこにあるかという情報を必要としない。つまり、インターフェース層６２０ｂによっていわゆる位置透過性を実現しているのである。
【０００９】
具体的には、Ｂ−ＥＣＵのアプリケーション層６１０ｂから指定される出力先をインターフェース層６２０ｂが判断し、通信ドライバ６５０ｂを介してＡ−ＥＣＵへ駆動情報を送信する。すなわち、Ｂ−ＥＣＵの通信ドライバ６５０ｂ→通信線５００→Ａ−ＥＣＵの通信ドライバ６５０ａ→Ａ−ＥＣＵのインターフェース層６２０ａ→Ａ−ＥＣＵの仮想アクチュエータ部６４０ａという順序で駆動情報が転送される。
【００１０】
つまり、Ｂ−ＥＣＵのアプリケーション層６１０ｂでは、制御対象となるハードウェアを駆動するための処理プログラムが別のＥＣＵ内の処理プログラムとして存在していても、それを何等考慮する必要がないのである。そのため、複数のＥＣＵ間における分散処理を容易に実現できる。
【００１１】
なお、「アプリケーション層が・・・する」というのは、正確に言えば、ＥＣＵの備えるＣＰＵがアプリケーション層として構成された処理プログラムを実行することによってアプリケーション層としての機能が発揮されることを意味するが、表現が煩雑になることを避けるため、以下、処理プログラムを主体とした表現を適宜用いる。
【００１２】
【発明が解決しようとする課題】
しかしながら、上述したプログラム構成を採用すると、車両制御の中でもエンジン・駆動系などの制御においては、相対的に高いリアルタイム性が要求されるため分散処理を実現できない場合がある。なぜなら、例えば図８において、Ｂ−ＥＣＵのアプリケーション層６１０ｂからの駆動情報がリアルタイムにＡ−ＥＣＵの仮想アクチュエータ部６４０ａに転送されない可能性があるからである。具体的に言えば、Ａ−ＥＣＵの仮想アクチュエータ部６４０ａにてインジェクタが駆動されるものとし、Ｂ−ＥＣＵのアプリケーション層６１０ｂでインジェクタを制御する噴射システムを考える。この場合、Ｂ−ＥＣＵのアプリケーション層６１０ｂからの噴射指示をＡ−ＥＣＵの仮想アクチュエータ部６４０ａにリアルタイムに送信する必要がある。ところが、途中で通信線５００を介した通信が行われるため、例えば通信線５００が他の通信で使用されている場合などは駆動情報の転送が遅延する。そのため、燃料噴射システムとして成立しなくなってしまう。
【００１３】
以上はアクチュエータに対する駆動情報の出力について述べてきたが、各種センサからの車両情報の入力についても同様のことが言える。
例えば図７に示す仮想センサ部６３０にて取得される車両情報を例えば１ｍｓ間隔でアプリケーション層６１０がサンプリングし平均したものを制御に用いることがある。しかしながら、分散処理を行おうとすれば、通信線５００を介した通信処理を行うために、図８中のＡ−ＥＣＵの仮想センサ部６３０ａにて取得される車両情報を、Ｂ−ＥＣＵのアプリケーション層６１０ｂが１ｍｓというような間隔でサンプリングすることはできない。
【００１４】
本発明は、上述した問題点を解決するためになされたものであり、相対的に高いリアルタイム性を要求されるエンジン・駆動系などの制御においても分散処理を可能にし、しかも、車両制御プログラムを構成するアプリケーションプログラムの再利用性を確保することを目的とする。
【００１５】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項１に記載の車両用制御装置は、検出手段にて検出される車両情報に基づく演算処理を行い、当該演算処理の結果に従い駆動手段に対する駆動情報を出力することによって車両を制御する。ここで検出手段には車両に搭載される各種センサが該当し、一方駆動手段には、車両に搭載される各種アクチュエータが該当する。
【００１６】
本発明では、このような車両の制御を実現するための車両制御プログラムが、通信手段を介して接続された複数の処理実行装置に分散され搭載されていることを前提としている。処理実行装置は少なくとも１つのＣＰＵを備えたコンピュータシステムであり、上述したＥＣＵがその一例として挙げられる。
【００１７】
そして、各処理実行装置に搭載されるプログラムは、アプリケーション層、インターフェース層、情報コントロール層及びセンサアクチュエータ層を備えており、本発明では特に、インターフェース層とセンサアクチュエータ層との間に介在する情報コントロール層を備えていることを特徴としている。
【００１８】
アプリケーション層は、上述した演算処理を実行する。一方、センサアクチュエータ層は、図７を用いて上述したハードウェア層７００の仮想センサ部６３０及び仮想アクチュエータ部６４０として具体化され、したがって、検出手段及び前記駆動手段に依存した処理を実行し、検出手段からの車両情報の取得及び駆動手段に対する駆動情報の出力を行う。
【００１９】
インターフェース層は、アプリケーション層から出力される駆動情報を取得する。又は、アプリケーション層から出力される駆動情報を、必要に応じて通信手段を介し他の処理実行装置へ送信する。例えばアプリケーション層から指定される駆動情報の出力先を判断し、その出力先が同一の処理実行装置内のセンサアクチュエータ層であればそのまま取得する。一方、その出力先が他の処理実行装置のセンサアクチュエータ層であれば、通信手段を介して他の処理実行装置へその駆動情報を送信する。さらに、インターフェース層は、他の処理実行装置から駆動情報が送信されると当該駆動情報を取得する。つまり、インターフェース層は、同一の処理実行装置内のアプリケーション層から出力される駆動情報だけでなく、別の処理実行装置のアプリケーション層から出力される駆動情報を取得できる構成となっている。
【００２０】
そして、情報コントロール層は、インターフェース層にて駆動情報を取得する取得タイミングとは別のタイミングであって、当該取得した駆動情報をセンサアクチュエータ層に対して出力すべき出力タイミングで出力する。したがって、アプリケーション層からインターフェース層まで適当なタイミングで駆動情報が予め転送されれば、その後は、情報コントロール層によって駆動情報が適切なタイミングでセンサアクチュエータ層に出力される。すなわち、ある処理実行装置のアプリケーション層から別の処理実行装置のインターフェース層へ駆動情報が送信される場合に駆動情報の遅延が生じたとしても、情報コントロール層によって出力タイミングが適切化される。具体的に言えば、例えば時刻ｔ１，ｔ２，ｔ３，・・・でセンサアクチュエータ層に駆動情報を出力すべきシステムを考えた場合、アプリケーション層からの駆動情報がインターフェース層にて各時刻ｔ１，ｔ２，ｔ３，・・・以前に取得されるようにすれば、その後は情報コントロール層が、出力すべき時刻ｔ１，ｔ２，ｔ３，・・・に駆動情報を出力する。
【００２１】
ただし、インターフェース層へ駆動情報を予め適当なタイミングで転送できないことも考えられる。例えば、アプリケーション層が時刻ｔ１，ｔ２，ｔ３，・・・に出力すべき駆動情報をそれぞれ時刻ｔ１，ｔ２，ｔ３，・・・の直前にしか出力できない場合も考えられる。しかしその場合、情報コントロール層は、時刻ｔ１に出力すべき駆動情報を時刻ｔ２に出力し、時刻ｔ２に出力すべき駆動情報を時刻ｔ３に出力するという具合に１周期前の駆動情報を出力するようにしてもよい。それは、例えばエンジン・駆動系の制御を考えた場合、例えば点火・噴射制御に代表されるように駆動情報の出力タイミングが重要であり、出力すべき時刻ｔ１からズレた時刻ｔ１'（＜ｔ２）に駆動情報が出力されるとシステムとして致命的であるが、たとえ１周期前に出力されるはずの駆動情報が使用されたとしても、出力タイミングが適切であれば致命的な問題ではないからである。
【００２２】
このようにすれば、相対的に高いリアルタイム性を要求されるエンジン・駆動系などの制御においても、駆動情報の出力タイミングを適切にでき、複数の処理実行装置における分散処理を可能にすることができる。しかも、検出手段及び駆動手段に依存する処理プログラムをセンサアクチュエータ層として分離しているため、検出手段及び駆動手段のハードウェアが変更されても、アプリケーション層、つまりアプリケーションプログラムの再利用性が確保される。
【００２３】
ところで、従来のプログラム構成では、駆動手段を駆動するセンサアクチュエータ層に合わせた形式の駆動情報を、アプリケーション層から出力していた。例えばアプリケーション層の演算結果が多値データである場合、駆動手段に対する駆動情報が２値データであれば、多値データから２値データへの変換をアプリケーション層で行っていた。そのため、駆動手段が変更されることにより駆動情報の形式が変わると、アプリケーション層の一部を変更する必要が生じていた。
【００２４】
そこで、請求項２に示すように、アプリケーション層は駆動情報を一定の形式で出力するようにし、情報コントロール層が、センサアクチュエータ層で直接的に処理できる情報に変換して駆動情報を出力するようにすることが考えられる。つまり、駆動手段に合わせた駆動情報の変換処理を、情報コントロール層が実行するのである。これによって、車種やグレードなどによって駆動手段が変わっても、アプリケーション層に対する変更が必要なくなるため、アプリケーションプログラムの再利用性のさらなる向上が図られる。
【００２５】
上述してきた構成は、駆動情報の出力タイミングの遅延を考慮したものであったが、請求項３に示すような、車両情報の入力タイミングの遅延を考慮した構成を採用することも考えられる。
請求項３に記載の車両用制御装置は、上述の車両用制御装置と同様、検出手段にて検出される車両情報に基づく演算処理を行い、当該演算処理の結果に従い駆動手段に対する駆動情報を出力することによって車両を制御するものであり、このような車両の制御を実現するための車両制御プログラムが、通信手段を介して接続された複数の処理実行装置に分散され搭載されている。
【００２６】
また、各処理実行装置に搭載されるプログラムが、アプリケーション層、インターフェース層、情報コントロール層及びセンサアクチュエータ層を備えており、アプリケーション層が上述した演算処理を実行し、センサアクチュエータ層が、検出手段及び前記駆動手段に依存した処理を実行して検出手段からの車両情報の取得及び駆動手段に対する駆動情報の出力を行うことも同様である。
【００２７】
このとき本発明では特に、情報コントロール層が、センサアクチュエータ層にて取得される車両情報を所定間隔毎に取得して、当該取得した車両情報を出力する。インターフェース層は、アプリケーション層からの要求に基づき、情報コントロール層から出力される車両情報を取得しアプリケーション層へ出力する。又は、必要に応じて通信手段を介し他の処理実行装置へ車両情報を要求し、当該要求に対して送信される車両情報を取得しアプリケーション層へ出力する。例えばアプリケーション層から指定される車両情報の入力先を判断し、その入力先が同一の処理実行装置内のセンサアクチュエータ層であれば、情報コントロール層から出力される車両情報を取得してそのままアプリケーション層へ出力する。一方、その入力先が他の処理実行装置のセンサアクチュエータ層であれば、通信手段を介して他の処理実行装置へ車両情報を要求し、当該要求に対して送信される車両情報を取得してアプリケーション層へ出力する。このため、インターフェース層は、他のＥＣＵから車両情報が要求されると情報コントロール層からの車両情報を送信する。つまり、インターフェース層によって、アプリケーション層は、同一の処理実行装置内のセンタアクチュエータ層からの車両情報だけでなく、別の処理実行装置のセンタアクチュエータ層にて取得される車両情報を取得できる。
【００２８】
そして、情報コントロール層は、インターフェース層が通信手段を介して他の処理実行装置へ車両情報を送信する場合は、センサアクチュエータ層にて所定間隔毎に取得された複数の車両情報に基づき一つの車両情報を生成すると共に、当該生成された車両情報を所定間隔よりも長い間隔毎に出力する。
【００２９】
このようにすれば、相対的に高いリアルタイム性を要求されるエンジン・駆動系などの制御においても、車両情報の入力タイミングを適切にでき、複数の処理実行装置での分散処理を可能にすることができる。しかも、上述した車両用制御装置と同様、検出手段及び駆動手段に依存する処理プログラムをセンサアクチュエータ層として分離しているため、検出手段及び駆動手段のハードウェアが変更されても、アプリケーションプログラムの再利用性が確保される。
【００３０】
ところで、従来のプログラム構成では、例えば検出手段にて検出される車両情報を、演算処理に合わせた形式に、アプリケーション層が変換していた。例えば検出手段にて車両情報が多値データで検出される場合、演算に２値データを用いる場合は、多値データから２値データへの変換はアプリケーション層が行っていた。そのため、検出手段が変更されることにより車両情報の形式が変わると、アプリケーション層の一部を変更する必要が生じていた。
【００３１】
そこで請求項４に示すように、センサアクチュエータ層が車両情報を検出手段に応じた形式で出力することを前提として、情報コントロール層が、アプリケーション層で直接的に処理できる情報に変換して車両情報を出力するようにするとよい。つまり、アプリケーション層の演算処理に合わせた車両情報の変換処理を情報コントロール層が実行するのである。これによって、車種やグレードなどによって検出手段が変わっても、アプリケーション層に対する変更が必要なくなるため、アプリケーションプログラムの再利用性のさらなる向上が図られる。
【００３２】
上述した請求項１及び２の構成は駆動情報の出力タイミングを分散処理において適切にするための構成であり、一方、請求項３及び４は車両情報の入力タイミングを分散処理において適切にするための構成であった。もちろん、両方の構成を備える車両用制御装置を構成することも考えられる。
【００３３】
すなわち請求項５に示すように、上述した請求項１又は２に記載の構成を前提として、さらに、請求項３に示す如くインターフェース層及び情報コントロール層を構成することが考えられる。また請求項６に示すように、請求項５に記載の構成を前提として、さらに、請求項４に示す如く情報コントロール層を構成してもよい。なお、請求項５又は６に示した車両用制御装置の機能は、上述してきた車両用制御装置の説明と同様になるため省略する。このような構成を採用すれば、車両情報の入力タイミングと駆動情報の出力タイミングとの両方を適切にでき、相対的に高いリアルタイム性を要求されるエンジン・駆動系などの制御においても、複数の処理実行装置での分散処理を可能にすることができる。しかも、上述した車両用制御装置と同様、検出手段及び駆動手段に依存する処理プログラムをセンサアクチュエータ層として分離しているため、検出手段及び駆動手段のハードウェアが変更されても、アプリケーションプログラムの再利用性が確保される。
また、請求項７に示すように、請求項３〜６のいずれかに記載の構成を前提として、情報コントロール層が、インターフェース層が通信手段を介して他の処理実行装置へ車両情報を送信する場合は、取得された複数の車両情報の平均を、生成された車両情報として出力する構成が考えられる。こうすれば、例えば車両情報を例えば１ｍｓ間隔でサンプリングし平均したものをアプリケーション層が演算処理に用いる場合、情報コントロール層が１ｍｓ間隔でサンプリングしてその平均値を車両情報として出力するということができる。これによって、アプリケーション層はその平均値を相対的に大きな周期で取得すればよくなる。
さらに、請求項８に示すように、前回の車両情報の出力時から今回の車両情報の出力時までに取得された複数の車両情報の平均を、生成された車両情報として生成する構成が考えられる。つまり、請求項７とは異なり、平均を取る間隔と、その平均した値を出力する間隔とを必ず同じにする、ということである。
また、請求項９に示すように、請求項３〜８のいずれかに記載の構成を前提として、出力タイミングを、エンジンのクランク軸が所定角度回転する毎に訪れるタイミングとする構成が考えられる。
また、請求項１０に示すように、請求項１、２、５又は６に記載の構成を前提として、出力タイミングを、エンジンあるいは駆動系の制御に必要な情報を出力すべきタイミングに一致させる構成が考えられる。
【００３４】
ところで、プログラムの再利用性を向上させるという観点からは、請求項１１に示すように、処理実行装置に搭載されるプログラムとしてのアプリケーション層、インターフェース層、情報コントロール層及びセンサアクチュエータ層を、部品単位又は機能単位に設けられたオブジェクトで構成することが考えられる。「オブジェクト」とは、周知のようにオブジェクト指向プログラムの構成単位であり、データ（属性）及びメソッド（手続き）を備える。そして、各層を構成するオブジェクトがメッセージという形式で処理要求及び、駆動情報・車両情報といったデータを出力することでプログラム全体が機能する。また、部品単位にオブジェクトを設けるとは、例えばセンサアクチュエータ層の処理プログラムを、検出手段としての水温センサ・吸気管圧力センサなどの単位で、また、駆動手段としてのインジェクタ・イグナイタなどの単位でオブジェクト化することをいう。一方、機能単位にオブジェクトを設けるとは、例えばアプリケーション層の処理プログラムを、入力処理、演算処理、出力処理という単位でオブジェクト化することをいう。
【００３５】
このようにすれば、例えばイグナイタの仕様が異なるシステムの車両制御プログラムを新たに作成する場合、イグナイタに依存するオブジェクトのみを変更すればよく、他のオブジェクトを変更する必要はない。結果として、アプリケーションプログラムに限られず、車両制御プログラム全体を通して再利用性が向上する。
【００３６】
なお、このような車両制御プログラムの場合、例えば、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として前記プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いてもよい。
【００３７】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。なお、本発明は以下の実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得ることは言うまでもない。
【００３８】
図１は、本発明を具体化した車両用制御装置１の概略構成を示すブロック図である。車両用制御装置１は、複数のＥＣＵ１０を備えており、これら複数のＥＣＵ１０にて車両各部を制御する。各ＥＣＵ１０には、車両の状態を車両情報として検出する様々なセンサ３０が接続され、また、ＥＣＵ１０からの駆動情報によって車両各部を駆動する様々なアクチュエータ４０が接続されている。例えばＥＣＵ１０が主にエンジン制御を行うものであれば、センサ３０は、エンジンの運転状態を検出する様々なセンサであり、エンジンのクランク軸が所定角度回転する毎にパルス状の信号を出力する回転角センサ、エンジンの特定の気筒のピストンが所定位置（例えば上死点：ＴＤＣ）にくる度にパルス状の信号を出力する基準位置センサ、エンジンの冷却水の温度を検出する水温センサ、エンジンの吸気管の圧力を検出する吸気管圧力センサ、及び酸素濃度を計測する酸素濃度センサ等である。一方、アクチュエータ４０は、エンジンに取付けられたインジェクタ（燃料噴射装置）及びイグナイタ（点火装置）等となる。
【００３９】
ここで各ＥＣＵ１０は、例えばＣＡＮなどのプロトコルを有する車両内のネットワークを形成しており、相互の通信が可能となっている。
次に、ＥＣＵ１０の構成を図２のブロック図に基づいて説明する。ＥＣＵ１０は、センサ３０からの信号を入力して波形整形やＡ／Ｄ変換を行う入力回路２１と、入力回路２１からの車両情報に基づき、車両を制御するための様々な処理を行うマイクロコンピュータ（以下「マイコン」という。）１１と、マイコン１１からの駆動情報に応じてアクチュエータ４０を駆動する出力回路２２と、通信線５０を介して他のＥＣＵ１０と通信を行うための通信Ｉ／Ｆ２３とを、備えている。この通信線５０にて各ＥＣＵ１０が相互に接続されて上述した車両内のネットワークが形成されている。したがって、通信Ｉ／Ｆ２３及び通信線５０が「通信手段」に相当する。
【００４０】
そして、マイコン１１には、プログラムを実行する周知のＣＰＵ（中央演算処理装置）１１ａと、ＣＰＵ１１ａによって実行されるプログラムやそのプログラムの実行時に参照される制御データを記憶するＲＯＭ１１ｂと、ＣＰＵ１１ａによる演算結果等を一時的に記憶するためのＲＡＭ１１ｃと、入力回路２１、出力回路２２及び通信Ｉ／Ｆ２３との間で信号をやり取りするためのＩ／Ｏ１１ｄと、各種レジスタやフリーランカウンタ等（図示省略）とが備えられている。
【００４１】
したがって、車両用制御装置１に搭載される車両制御プログラムは、各ＥＣＵ１０の備えるマイコン１１のＲＯＭ１１ｂに分散されて格納されている。そして、このＲＯＭ１１ｂのプログラムをＣＰＵ１１ａが実行することによって、各ＥＣＵ１０が機能し、エンジン制御などを含めた車両制御が実現される。
【００４２】
本実施例では、上述した各ＥＣＵ１０におけるマイコン１１のＲＯＭ１１ｂに格納されるプログラム構成を特徴としており、このプログラム構成の工夫によってエンジン・駆動系の制御においても、複数のＥＣＵ１０での分散処理を実現した。ここでいう分散処理とは、例えばあるＥＣＵ１０に接続されたセンサ３０からの車両情報に基づく演算処理を別のＥＣＵ１０が実行したり、あるＥＣＵ１０に接続されたアクチュエータ４０に対する駆動情報の出力を別のＥＣＵ１０が行ったりすることをいう。
【００４３】
そこで次に、ＥＣＵ１０内のプログラム構成を図３に基づいて説明する。
各ＥＣＵ１０に搭載されるプログラムは、オブジェクト指向設計されており、アプリケーション層６１、インターフェース層６２、仮想センサ部６３、仮想アクチュエータ部６４、通信ドライバ６５、入力情報変換部６６、及び出力コントロール部６７からなっている。これらのプログラムは、データ及びメソッドからなるオブジェクトで構成されている。
【００４４】
アプリケーション層６１は、機能単位に設けられた複数のオブジェクトで構成されている。そして、アプリケーション層６１は、センサ３０にて取得される車両情報に基づく演算処理を実行し、演算処理の結果に従いアクチュエータ４０に対する駆動情報を出力する。このアプリケーション層６１が、いわゆるアプリケーションプログラムに該当し、上述した「アプリケーション層」に相当する。
【００４５】
また、仮想センサ部６３、仮想アクチュエータ部６４及び通信ドライバ６５は、車両用制御装置１の備えるハードウェアに対応するプログラムであり、それぞれ図２に示すセンサ３０、アクチュエータ４０、及び通信線５０を介して接続されるネットワーク構成に対応する。仮想センサ部６３及び仮想アクチュエータ部６４は、センサ３０・アクチュエータ４０に対応させて部品単位に設けられたオブジェクトで構成されている。例えば仮想センサ部６３は、水温センサからの信号を取得する水温センサオブジェクト、吸気管圧力センサからの信号を取得する吸気管圧力センサオブジェクト、酸素濃度センサからの信号を取得する酸素濃度センサオブジェクトなどで構成されるという具合である。一方、仮想アクチュエータ部６４は、イグナイタへの信号を出力するイグナイタオブジェクト、インジェクタへの信号を出力するインジェクタオブジェクトなどで構成されるという具合である。この仮想センサ部６３及び仮想アクチュエータ部６４が「センサアクチュエータ層」に相当する。
【００４６】
アプリケーション層６１は、上述したような仮想センサ部６３のオブジェクトが取得する車両情報に基づいて演算処理を行い、仮想アクチュエータ部６４のオブジェクトに対して駆動情報を出力する。このとき、アプリケーション層６１は、別のＥＣＵ１０内の仮想センサ部６３のオブジェクトから通信ドライバ６５の機能によって車両情報を取得可能であり、また、別のＥＣＵ１０内の仮想アクチュエータ部６４のオブジェクトへ通信ドライバ６５の機能によって駆動情報を出力可能である。このようにアプリケーション層６１が所望するＥＣＵ１０内の仮想センサ部６３のオブジェクトから車両情報を取得し、所望するＥＣＵ１０内の仮想アクチュエータ部６４のオブジェクトへ駆動情報を出力するために、上述したインターフェース層６２が設けられている。
【００４７】
インターフェース層６２も機能単位に設けられた複数のオブジェクトで構成されており、このインターフェース層６２が仮想センサ部６３及び仮想アクチュエータ部６４のオブジェクトの所在を管理している。オブジェクトの所在とは、どのＥＣＵ１０内にあるかという情報である。したがって、アプリケーション層６１は、オブジェクトの所在を何等知る必要がない。つまり、インターフェース層６２を設けることによって、いわゆる位置透過性を実現しているのである。そのため、アプリケーション層６１は、インターフェース層６２に対し、単に入力先のオブジェクトを指定して車両情報の入力を要求し、また、単に出力先のオブジェクトを指定して駆動情報の出力を要求する。なお詳しくは、アプリケーション層６１のオブジェクトが仮想センサ部３０又は仮想アクチュエータ部６４のオブジェクトを指定してインターフェース層６２のオブジェクトへメッセージ出力を行うのであるが、説明を簡単にするため以下では、単に「アプリケーション層６１が仮想センサ部６３又は仮想アクチュエータ部６４を指定してインターフェース層６２へメッセージを出力する」という具合にオブジェクトという文言を省略して記述する。以上のことから、インターフェース層６２が「インターフェース層」に相当する。
【００４８】
そして、本実施例のプログラム構成は、インターフェース層６２と仮想センサ部６３との間に介在する入力情報変換部６６と、インターフェース層６２と仮想アクチュエータ部６４との間に介在する出力コントロール部６７とを設けたことを特徴とする。入力情報変換部６６は、上述した仮想センサ部６３のオブジェクトに対応する部品単位のオブジェクトで構成される。また、出力コントロール部６７も同様に、上述した仮想アクチュエータ部６４のオブジェクトに対応する部品単位のオブジェクトで構成される。
【００４９】
入力情報変換部６６は、仮想センサ部６３からの車両情報をアプリケーション層６１で直接的に処理可能な情報に変換して出力する。直接的に処理可能とは、演算処理に合わせた車両情報の変換が必要ないことを意味する。
例えば本実施例のアプリケーション層６１は、スロットル開度が全閉・中間・全開のいずれであるかというスロットル開閉情報を用いて演算処理を行う。このとき、センサ３０として、接点式の全閉スイッチ及び全開スイッチを有する２入力のものが使用されることが考えられる。あるいは、アナログ式にスロットル開度を検出するものが使用されることが考えられる。このようなセンサ３０の違いにより仮想センサ部６３から出力される車両情報は異なるが、入力情報変換部６６が、この違いを吸収し、アプリケーション層６１で直接的に処理できる情報、すなわち、全閉・中間・全開のいずれであるかを示すスロットル開閉情報に変換する。
【００５０】
また例えば本実施例のアプリケーション層６１は、スタータモータの始動時にクランキング情報を用いて演算処理を行う。このとき、センサ３０として、スタータリレーのスイッチ信号を直接的に検出するものが使用されることが考えられる。あるいは、バッテリ電圧の低下を検出するものが使用されることが考えられる。バッテリ電圧の低下を検出しても、スタータリレーがオンとなったことが間接的に分かるからである。したがって、後者の場合、入力情報変換部６６は、バッテリ電圧の低下が車両情報として検出されると、クランキング情報を車両情報として生成する。
【００５１】
一方、出力コントロール部６７は、インターフェース層６２から取得した駆動情報を、仮想アクチュエータ部６４で直接的の処理可能な情報に変換して出力する。
例えば本実施例のアプリケーション層６１は、ラジエータファンの冷却強度を例えばアナログ式に所定範囲の値として算出する。このとき、ラジエータファンとして、オン／オフの２段階で駆動されるものを使用することが考えられる。また、強・中・弱といった多段階で駆動されるものを使用することが考えられる。したがって、出力コントロール部６７は、ラジエータファンに合わせ、直接的に処理可能な情報に変換して駆動情報を出力する。
【００５２】
ところで、入力情報変換部６６及び出力コントロール部６７は、車両情報・駆動情報の変換処理だけでなく、次のように機能する。
すなわち、入力情報変換部６６は、仮想センサ部６３によって取得されるセンサ３０からの車両情報を適切なタイミングで取得し、インターフェース層６２へ出力する。一方、出力コントロール部６７は、インターフェース層６２へ転送された駆動情報を取得し、適切なタイミングで仮想アクチュエータ部６４へ出力する。つまり、入力情報変換部６６及び出力コントロール部６７が、上述した「情報コントロール層」に相当する。
【００５３】
このような入力情報変換部６６及び出力コントロール部６７の入力タイミング又は出力タイミングの調整機能を詳細に説明するため、次に、駆動情報及び車両情報の流れを説明する。ここでは最初に、アプリケーション層６１から仮想アクチュエータ部６４へ駆動情報が転送される場合を説明し、次に、仮想センサ部６３からアプリケーション層６１へ車両情報が転送される場合を説明する。
【００５４】
Ｘ．アプリケーション層６１から仮想アクチュエータ部６４へ駆動情報が転送される場合
Ｘ−（１）
まずアプリケーション層６１が、インターフェース層６２へメッセージを出力する。このメッセージには、駆動情報の出力要求と、出力先の仮想アクチュエータ部６４の指定情報とが含まれている。
【００５５】
Ｘ−（２）
次にインターフェース層６２は、出力先の仮想アクチュエータ部６４がどのＥＣＵ１０内に存在するものであるかを判断する。
Ｘ−（２）−《１》
ここで出力先が同一のＥＣＵ１０内の仮想アクチュエータ部６４であれば、インターフェース層６２は、そのまま駆動情報を取得する。
【００５６】
Ｘ−（２）−《２》
一方、出力先が別のＥＣＵ１０内の仮想アクチュエータ部６４であれば、通信ドライバ６５により、通信線５０を介しその別のＥＣＵ１０へ駆動情報を転送する。すると、その別のＥＣＵ１０のインターフェース層６２が駆動情報を取得する。
【００５７】
この様子を図４を用いて説明する。図４には、Ａ及びＢの２つのＥＣＵ１０ａ，１０ｂに搭載されたプログラムを示した。そしてこれは、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂが、Ａ−ＥＣＵ１０ａの仮想アクチュエータ部６４ａを転送先として指定し、駆動情報をインターフェース層６２ｂへ出力した場合を示している。なお、ここで機能しないプログラムは破線で示した。
【００５８】
このとき、Ｂ−ＥＣＵ１０のインターフェース層６２ｂは、通信ドライバ６５ｂを介してＡ−ＥＣＵ１０へ駆動情報を転送する。すると、Ａ−ＥＣＵ１０ａのインターフェース層６２ａが通信ドライバ６５ａを介して駆動情報を取得する。
Ｘ−（３）
上記Ｘ−（２）−《１》の場合、つまり同一のＥＣＵ１０内のインターフェース層６２が駆動情報を取得した場合には、同一のＥＣＵ１０内の出力コントロール部６７がインターフェース層６２内の駆動情報を取り出し、適切なタイミングで仮想アクチュエータ部６４へ出力する。すると、仮想アクチュエータ部６４は、アクチュエータ４０へその駆動情報を出力する。
【００５９】
上記Ｘ−（２）−《２》の場合、つまり別のＥＣＵ１０内のインターフェース層６２が駆動情報を取得した場合には、その別のＥＣＵ１０内の出力コントロール部６７がインターフェース層６２の駆動情報を取り出し、適切なタイミングで仮想アクチュエータ部６４へ出力する。すると、仮想アクチュエータ部６４は、アクチュエータ４０へその駆動情報を出力する。図４で言えば、Ａ−ＥＣＵ１０ａのインターフェース層６２ａの取得した駆動情報を、Ａ−ＥＣＵ１０ａの出力コントロール部６７ａが取り出し、適切なタイミングで仮想アクチュエータ部６４ａに出力する。したがってこの場合は、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂからの駆動情報によって、Ａ−ＥＣＵ１０ａに接続されたアクチュエータ４０が駆動されることになる。
【００６０】
Ｙ．仮想センサ部６３からアプリケーション層６１へ車両情報が転送される場合
Ｙ−（１）
まずアプリケーション層６１が、インターフェース層６２へメッセージを出力する。このメッセージには、車両情報の入力要求と、入力先の仮想センサ部６３の指定情報とが含まれている。
【００６１】
Ｙ−（２）
次にインターフェース層６２は、入力先の仮想センサ部６３がどのＥＣＵ１０内に存在するものであるかを判断する。
Ｙ−（２）−《１》
入力情報変換部６６は、仮想センサ部６３にて取得される車両情報を適切なタイミングで取り出してインターフェース層６２へ出力する。したがって、入力先が同一のＥＣＵ１０内の仮想センサ部６３であれば、入力情報変換部６６が出力する車両情報をそのまま取得してアプリケーション層６１へ出力する。
【００６２】
Ｙ−（２）−《２》
一方、入力先が別のＥＣＵ１０内の仮想センサ部６３であれば、通信ドライバ６５により、通信線５０を介しその別のＥＣＵ１０へ車両情報を要求する。この様子を図５を用いて説明する。図５には、Ａ及びＢの２つのＥＣＵ１０ａ，１０ｂに搭載されたプログラムを示した。ここでは、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂが、Ａ−ＥＣＵ１０ａの仮想センサ部６３ａを入力先として指定し、車両情報をインターフェース層６２ｂへ要求した場合を示している。なお、ここでも、機能しないプログラムは破線で示した。
【００６３】
このとき、Ｂ−ＥＣＵ１０のインターフェース層６２ｂは、通信ドライバ６５ｂを介してＡ−ＥＣＵ１０へ車両情報を要求する。Ａ−ＥＣＵ１０ａでは、入力情報変換部６６ａが仮想センサ部６３ａにて取得されるセンサ３０からの車両情報を適切なタイミングで取得してインターフェース層６２ａへ出力し、上述した要求に対して、インターフェース層６２ａが、入力情報変換部６６ａから出力される車両情報を、通信ドライバ６５ａを介してＢ−ＥＣＵ１０ｂへ転送する。したがって、Ｂ−ＥＣＵ１０ｂのインターフェース層６２ｂは、通信ドライバ６５ｂを介してこの車両情報を取得し、アプリケーション層６１ｂへ出力する。この場合は、Ａ−ＥＣＵ１０ａに接続されたセンサ３０からの車両情報に基づき、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂが演算処理を実行することになる。
【００６４】
以上のようなプログラム構成を有した本実施例の車両用制御装置１によれば、エンジン・駆動系の制御においても分散処理を実現できる。これについて具体例を挙げて説明する。
例えば図４において、Ｂ−ＥＣＵ１０ｂにて燃料の噴射量を算出し、Ａ−ＥＣＵ１０ａに接続されたアクチュエータ４０としてのインジェクタを制御することを考える。この場合、図６（ａ）に示すように、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂにて噴射量算出がなされ、通信線５０を介してＡ−ＥＣＵ１０ａのインターフェース層６２ａへ駆動情報としての噴射量が転送される。すると、Ａ−ＥＣＵ１０ａの出力コントロール部６７ａが、インターフェース層６２ａへ転送された噴射量を取り出し、気筒毎の出力タイミングで仮想アクチュエータ部６４ａに噴射指示を出力する。これによって仮想アクチュエータ部６４ａがインジェクタに対する噴射パルスを出力する。
【００６５】
したがって、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂからＡ−ＥＣＵ１０ａのインターフェース層６２ａまで適当なタイミングで噴射量が予め転送されれば、その後は、出力コントロール部６７ａによって、仮想アクチュエータ部６４ａに対する噴射指示が適切なタイミングで行われる。すなわち、Ｂ−ＥＣＵ１０ｂからＡ−ＥＣＵ１０ａへの噴射量の転送時に遅延が生じたとしても、Ａ−ＥＣＵ１０ａの出力コントロール部６７ａによって出力タイミングが適切化される。例えば時刻ｔ１，ｔ２，ｔ３，・・・で噴射パルスを出力すべきシステムでは、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂからの噴射量がＡ−ＥＣＵ１０ａのインターフェース層６２ａによって各時刻ｔ１，ｔ２，ｔ３，・・・以前に取得されるようにすれば、その後は出力コントロール部６７ａが、出力すべき時刻ｔ１，ｔ２，ｔ３，・・・に噴射指示を出力する。
【００６６】
ただし、Ａ−ＥＣＵ１０ａのインターフェース層６２ａに対し、適当なタイミングで噴射量を転送できないことも考えられる。例えば、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂが時刻ｔ１，ｔ２，ｔ３，・・・に出力すべき噴射量の情報をそれぞれ時刻ｔ１，ｔ２，ｔ３，・・・の直前にしか出力できない場合もあるからである。しかしその場合、Ａ−ＥＣＵ１０ａの出力コントロール部６７ａは、時刻ｔ１に出力すべき噴射指示を時刻ｔ２に行い、時刻ｔ２に出力すべき噴射指示を時刻ｔ３に行うという具合に１周期前の噴射量に基づく噴射指示を行うようにしてもよい。それは、噴射制御において重要なのは噴射指示のタイミングであり、出力すべき時刻ｔ１からズレた時刻ｔ１'（＜ｔ２）に噴射指示が行われるとシステムとして致命的であるが、たとえ１周期前に出力されるはずの噴射量に基づく噴射指示が行われたとしても、噴射タイミングが適切であれば致命的な問題にはならないからである。
【００６７】
このように本実施例のプログラム構成では、相対的に高いリアルタイム性を要求されるエンジン・駆動系などの制御においても、駆動情報の出力タイミングを適切にでき、複数のＥＣＵ１０における分散処理を可能にすることができる。
また例えば図５において、Ａ−ＥＣＵ１０ａに接続されたセンサ３０としての吸気管圧力センサからの車両情報に基づき、Ｂ−ＥＣＵ１０ｂにて演算処理を実行する場合を考える。この場合、図６（ｂ）に示すように、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂからの要求に基づき、Ａ−ＥＣＵ１０ａのインターフェース層６２ａが平均吸気管圧力を通信線５０を介して転送する。Ａ−ＥＣＵ１０ａでは、仮想センサ部６３ａが吸気管圧力センサからの電圧値を物理値に変換し吸気管圧力を算出する。この吸気管圧力を、入力情報変換部６６ａが１ｍｓ毎のタイミングで仮想センサ部６３ａから取得（サンプリング）し、エンジンのクランク軸が１８０度回転する毎に平均した平均吸気管圧力を車両情報として出力する。したがって、Ｂ−ＥＣＵ１０ｂのアプリケーション層６１ｂは、クランク軸の１８０度回転という比較的長い時間間隔で吸気管圧力の取得を要求し、インターフェース層６２ａに出力された平均吸気管圧力を取得すればよい。
【００６８】
従来、Ａ−ＥＣＵ１０ａの仮想センサ部６３ａからＢ−ＥＣＵ１０ｂのアプリケーション層６１ｂが相対的に小さな周期で吸気管圧力をサンプリングすることは、通信の遅延のためにできなかった。これに対して本実施例では、仮想センサ部６３ａにて算出される吸気管圧力を、入力情報変換部６６ａが１ｍｓという相対的に小さな周期でサンプリングするのである。
【００６９】
これによって、相対的に高いリアルタイム性を要求されるエンジン・駆動系などの制御においても、車両情報の入力タイミングを適切にでき、複数のＥＣＵ１０における分散処理を実現できる。
また本実施例の車両用制御装置１では、センサ３０及びアクチュエータ４０に依存するオブジェクトを仮想センサ部６３・仮想アクチュエータ部６４として分離しているため、センサ３０やアクチュエータ４０が変更されても、アプリケーション層６１、つまりアプリケーションプログラムの再利用性が確保される。
【００７０】
しかも、入力情報変換部６６は、仮想センサ部６３からの車両情報をアプリケーション層６１で直接的に処理可能な情報に変換して出力し、一方、出力コントロール部６７は、インターフェース層６２から取得した駆動情報を、仮想アクチュエータ部６４で直接的の処理可能な情報に変換して出力する。つまり、アプリケーション層６１の演算処理に合わせた車両情報の変換処理を入力情報変換部６６が実行し、また、アクチュエータ４０に合わせた駆動情報の変換処理を出力コントロール部６７が実行するのである。これによって、車種やグレードなどによってセンサ３０やアクチュエータ４０が変わっても、アプリケーション層６１に対する変更が必要なくなるため、アプリケーションプログラムの再利用性のさらなる向上が図られる。
【００７１】
さらにまた、本実施例の車両用制御装置１では、車両制御プログラムをオブジェクト指向設計しており、アプリケーション層６１やインターフェース層６２を機能単位毎のオブジェクトで構成し、仮想センサ部６３ｂ・入力情報変換部６６ｂや仮想アクチュエータ部６４・出力コントロール部６７を部品単位毎のオブジェクトで構成した。これによって、例えばアクチュエータ４０としてのインジェクタの仕様が異なるシステムにおいては、このインジェクタに関連するオブジェクトのみを変更すればよく、他のオブジェクトはそのまま利用できる。したがって、アプリケーションプログラムだけでなく、車両制御プログラム全体の再利用性が確保される。
【図面の簡単な説明】
【図１】実施例の車両用制御装置の概略構成を示すブロック図である。
【図２】ＥＣＵの構成を示すブロック図である。
【図３】ＥＣＵ内のプログラム構成を示すブロック図である。
【図４】ＥＣＵ間で駆動情報を転送して出力する様子を示す説明図である。
【図５】ＥＣＵ間で車両情報を転送して取得する様子を示す説明図である。
【図６】（ａ）はＥＣＵ間で駆動情報としての噴射量を転送してインジェクタを駆動する例を示す説明図であり、（ｂ）はＥＣＵ間で車両情報としての平均吸気管圧力を転送して取得する例を示す説明図である。
【図７】従来のＥＣＵ内のプログラム構成を示すブロック図である。
【図８】従来のプログラム構成においてＥＣＵ間で駆動情報を転送して出力する様子を示す説明図である。
【符号の説明】
１…車両用制御装置
１０，１０ａ，１０ｂ…ＥＣＵ
１１…マイコン
１１ａ…ＣＰＵ
１１ｂ…ＲＯＭ
１１ｃ…ＲＡＭ
１１ｄ…Ｉ／Ｏ
２１…入力回路
２２…出力回路
２３…通信Ｉ／Ｆ
３０…センサ
４０…アクチュエータ
５０…通信線
６１，６１ａ，６１ｂ…アプリケーション層
６２，６２ａ，６２ｂ…インターフェース層
６３，６３ａ，６３ｂ…仮想センサ部
６４，６４ａ，６４ｂ…仮想アクチュエータ部
６５，６５ａ，６５ｂ…通信ドライバ
６６，６６ａ，６６ｂ…入力情報変換部
６７，６７ａ，６７ｂ…出力コントロール部
６１０，６１０ａ，６１０ｂ…アプリケーション層
６２０，６２０ａ，６２０ｂ…インターフェース層
６３０，６３０ａ，６３０ｂ…仮想センサ部
６４０，６４０ａ，６４０ｂ…仮想アクチュエータ部
６５０，６５０ａ，６５０ｂ…通信ドライバ
７００…ハードウェア層
【図１】
0004427860.tif 000002
【図２】
0004427860.tif 000003
【図３】
0004427860.tif 000004
【図４】
0004427860.tif 000005
【図５】
0004427860.tif 000006
【図６】
0004427860.tif 000007
【図７】
0004427860.tif 000008
【図８】
0004427860.tif 000009