(57)【特許請求の範囲】
【請求項１】
自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データを所定の記憶部に格納し、更に、前記記憶部に格納された制御用データのうちで通信相手へ送信すべき各制御用データに対して、そのデータを、該データが示す物理値を前記通信相手側で扱われる分解能で表すデータに変換する精度変換処理を行うと共に、その精度変換処理後の制御用データを前記通信相手へ送信する情報処理装置を備えた自動車用制御装置において、
前記情報処理装置は、
前記通信相手へ送信すべき各制御用データに対して前記精度変換処理を夫々行うための複数種類の変換プログラムを格納した変換プログラム格納手段と、
前記通信相手へ送信すべき各制御用データと、前記変換プログラム格納手段に格納された各変換プログラムとの、対応関係を示す変換情報を記憶した変換情報記憶手段と、
予め定められた送信タイミングになると、前記通信相手へ今回送信すべき制御用データを示す送信指令を発行する送信動作起動手段と、
前記送信指令が発行されると、その送信指令が示す制御用データを前記記憶部から読み出すと共に、前記変換情報記憶手段に記憶されている変換情報に基づいて、前記送信指令が示す制御用データに対応した前記変換プログラム格納手段内の変換プログラムを特定し、その特定した変換プログラムを、前記読み出した制御用データを処理対象として起動することにより、前記送信指令が示す制御用データに対して前記精度変換処理を行うデータ変換手段と、
該データ変換手段による精度変換処理が完了すると、その精度変換処理後の制御用データを前記通信相手へ送信する送信手段と、
を備えていることを特徴とする自動車用制御装置。
【請求項２】
請求項１に記載の自動車用制御装置において、
前記変換情報記憶手段は、前記変換情報として、前記通信相手へ送信すべき各制御用データの種別情報と、その種別情報が示す制御用データに対して前記精度変換処理を行うための前記変換プログラムが、前記変換プログラム格納手段内において何れの格納位置に格納されているかを示す格納位置情報とを、対応付けて記述したデータテーブルを記憶しており、
前記データ変換手段は、前記データテーブルから、前記送信指令が示す制御用データの種別情報に対応した前記格納位置情報を取得し、前記記憶部から読み出した制御用データを処理対象として、前記取得した格納位置情報が示す格納位置に格納されている変換プログラムを起動することにより、前記送信指令が示す制御用データに対して前記精度変換処理を行うこと、
を特徴とする自動車用制御装置。
【請求項３】
請求項１に記載の自動車用制御装置において、
前記情報処理装置は、複数種類の制御用データを直列に並べたパケットデータを前記通信相手へ送信するものであり、
前記変換情報記憶手段は、前記変換情報として、前記パケットデータの識別番号と、その識別番号のパケットデータを構成する各制御用データの種別情報と、その種別情報が示す制御用データに対して前記精度変換処理を行うための前記変換プログラムが、前記変換プログラム格納手段内において何れの格納位置に格納されているかを示す格納位置情報とを、対応付けて記述したデータテーブルを記憶しており、
前記送信動作起動手段は、前記送信指令として、前記通信相手へ今回送信すべき前記パケットデータの識別番号を発行し、
前記データ変換手段は、
前記送信動作起動手段によって前記送信指令としての識別番号が発行されると、前記データテーブルから、前記発行された識別番号に対応した各制御用データの種別情報を取得する送信データ特定手段と、
該送信データ特定手段によって取得された前記種別情報の各々について、その種別情報に該当する制御用データを前記記憶部から読み出すと共に、前記データテーブルから、その種別情報に対応した前記格納位置情報を取得し、更に、前記読み出した制御用データを処理対象として、前記取得した格納位置情報が示す格納位置に格納されている変換プログラムを起動することにより、その各識別情報の制御用データに対して前記精度変換処理を行う精度変換手段と、
該精度変換手段によって前記精度変換処理が行われた後の各制御用データを直列に並べることにより、前記通信相手へ送信すべきパケットデータを作成するパケットデータ作成手段とを備え、
前記送信手段は、前記パケットデータ作成手段によって作成されたパケットデータを前記通信相手へ送信すること、
を特徴とする自動車用制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御対象を制御するためにマイクロコンピュータからなる情報処理装置を備えた自動車用制御装置に関し、特に、その情報処理装置が、当該自動車用制御装置内や他の自動車用制御装置に備えられた他の情報処理装置とデータ通信を行うことにより、その通信相手の情報処理装置と制御用データを共有するようにした自動車用制御装置に関する。
【０００２】
【従来の技術】
従来より、自動車に搭載されたエンジンやトランスミッション等の制御対象を制御する自動車用制御装置は、制御対象を制御するための演算処理を行う情報処理装置として、マイクロコンピュータ（以下、マイコンという）を備えている。
【０００３】
そして、近年における制御内容の複雑化に伴い、この種の自動車用制御装置では、それに搭載されたマイコンが、同じ自動車用制御装置内や他の自動車用制御装置に搭載された他のマイコンとデータ通信を行って、その通信相手のマイコンと制御対象の制御に用いる制御用データを共有することにより、制御性を向上させている。
【０００４】
例えば、こうした自動車用制御装置（以下、ＥＣＵともいう）の通信形態上のシステム構成としては、まず、１つのＥＣＵに搭載された２のマイコンがデータ通信を行う、ＥＣＵ内通信のシステム構成がある。また、２つのＥＣＵに夫々搭載された各マイコンが、自動車内に配設されたシリアル通信線を介し１対１でデータ通信を行う、ＥＣＵ間シリアル通信のシステム構成がある。また更に、３つ以上のＥＣＵに夫々搭載された各マイコンが、自動車内に配設された多重通信線を介し１対多或いは多対１でデータ通信を行う、ＥＣＵ間多重通信のシステム構成がある。そして更に、上記各システム構成を併せ持ったシステム構成もある。つまり、１つのＥＣＵに搭載されたマイコンが、同じＥＣＵに搭載された他のマイコンとデータ通信を行うと共に、他のＥＣＵに搭載されたマイコンともシリアル通信線や多重通信線を介してデータ通信を行う、といったシステム構成である。
【０００５】
次に、このようなＥＣＵの内部構成及びそれに搭載されたマイコンで行われる処理の内容について、他のＥＣＵと通信線を介してデータ通信を行うエンジン制御用のＥＣＵ（エンジンＥＣＵ）を例に挙げて、図１２を用い説明する。尚、図１２は、エンジンＥＣＵを含む複数のＥＣＵからなる一般的な車両制御システムの構成を表す構成図である。
【０００６】
図１２に示すように、エンジンＥＣＵでは、それに搭載されたマイコン６００が、エンジン回転パルス，車速パルス，及びシフトレバー位置信号などの各種信号を、入出力回路６０２を介して取り込み、エンジンを制御するための演算処理を行う。
【０００７】
ここで、エンジンＥＣＵのマイコン６００に取り込まれる入力信号や、その入力信号に基づきマイコン６００で演算される演算結果の中には、他のＥＣＵでも必要とされるものがある。例えば、エンジンＥＣＵのマイコン６００では、エンジン回転パルスのパルス間隔を計測してエンジン回転数を算出するが、エンジン回転数は、エンジンの制御に用いられるだけでなく、車室内にあるメータパネル内のエンジン回転数表示部（タコメータ）に表示されるものであるため、メータパネル内の計器類を制御するＥＣＵ（メータＥＣＵ）においても必要となる。
【０００８】
このため、エンジンＥＣＵにおいて、マイコン６００により算出されたエンジン回転数などの物理値を表す各種制御用データは、所定の送信タイミングになった時に、マイコン６００から通信ＩＣ６０４へ送られ、更にドライバ回路６０６を介して通信線へ送出される。すると、その通信線に接続されたメータＥＣＵなどの他のＥＣＵ（詳しくは、そのＥＣＵに搭載されたマイコン）は、通信線を介して送られて来た制御用データを受信して、自己の制御対象を制御するための演算処理に用いることとなる。
【０００９】
ところで、このようにＥＣＵ間でデータ通信を行う車両制御システムにおいては、同じ種別の制御用データであっても、各ＥＣＵで扱われる分解能が異なる場合がある。図１２の例で具体的に説明すると、例えば、エンジンＥＣＵでは、エンジン回転数の制御用データを、ＬＳＢ当たり（最下位の１ビット当たり）５０／２５６（＝約０．１９５）ｒｐｍの分解能で扱ってエンジンに対する制御量を求めるが、メータＥＣＵでは、エンジン回転数の制御用データを、ＬＳＢ当たり１ｒｐｍで扱う、といった具合である。そして、各制御用データの分解能（即ち、そのデータのＬＳＢ当たりによって示される物理値であり、そのデータの精度である）は、そのデータを扱うＥＣＵのマイコンで要求される演算精度に応じて適宜決められるものである。
【００１０】
そこで、従来より、この種の車両制御システムにおいては、制御用データを算出して送信する側のＥＣＵ（詳しくは、それに搭載されたマイコン）が、送信対象の制御用データに対して、「そのデータを、該データが示す物理値を通信相手側で扱われる分解能で表すデータに変換する精度変換処理」を行い、その精度変換処理後の制御用データを通信相手へ送信するようにしている。
【００１１】
尚、この精度変換処理の具体的な処理手順は様々であるが、その思想としては、変換対象の制御用データが示す１０進値を、そのデータの元の分解能Ｂ１と通信相手側の分解能Ｂ２との比（＝Ｂ２／Ｂ１）で割り、その商を示すデジタルデータを、精度変換後の制御用データとするものである。また、このことから、変換対象の制御用データを右シフトして、そのデータ長を短くする（例えば、２バイトを１バイトに変更する）といったデータ長変換も、精度変換の一つである。また更に、以下の説明では、こうした精度変換を、データのＬＳＢ当たりによって示される物理値を変更するという意味合いから、“ＬＳＢ変換”あるいは“物理値変換”とも言う。
【００１２】
そして、図１３に例示するように、従来のＥＣＵにて制御用データを送信する側のマイコンで実行される精度変換処理用のプログラム（ＬＳＢ変換プログラム）は、予め設定された変換周期毎に複数設けられ、その各ＬＳＢ変換プログラムによって、複数個の制御用データの各々に対し、通信相手側で扱われる分解能に応じた精度変換処理（ＬＳＢ変換処理）を行っていた。
【００１３】
具体的に説明すると、図１３の例では、１６ｍｓ毎に起動されるＬＳＢ変換プログラム１と、６４ｍｓ毎に起動されるＬＳＢ変換プログラム２とがある。そして、１６ｍｓ毎のＬＳＢ変換プログラム１では、１０個の制御用データＤＡＴＡ１〜ＤＡＴＡ１０の各々に対して、該当するＬＳＢ変換処理を順次行い、６４ｍｓ毎のＬＳＢ変換プログラム２では、２０個の制御用データＤＡＴＡ１１〜ＤＡＴＡ３０の各々に対して、該当するＬＳＢ変換処理を順次行う。
【００１４】
また、各ＬＳＢ変換処理は、変換対象の制御用データをＲＡＭの所定領域から読み込み、その読み込んだ制御用データを所定のデータ精度に変換してＲＡＭの他の所定領域に格納する、といった手順で行われる。
そして、上記のように定期的に起動されるＬＳＢ変換プログラムによってＬＳＢ変換された制御用データ（精度変換処理後の制御用データ）は、予め定められた送信タイミングになった時に起動される送信処理用のプログラムによって適宜読み出され、通信相手へ送信される。
【００１５】
つまり、従来のＥＣＵでは、送信対象の各制御用データを定期的にＬＳＢ変換しておき、例えば予め定められた送信周期毎に到来する送信タイミングになると、そのＬＳＢ変換されている制御用データのうちから送信すべきものを読み出して、通信相手へ送信するようにしている。このため、図１３の各ＬＳＢ変換プログラム１，２の実行周期は、そのプログラムでＬＳＢ変換する制御用データの通信相手への送信周期よりも短い時間に設定されている。
【００１６】
【発明が解決しようとする課題】
ところで、前述したエンジンＥＣＵ及びメータＥＣＵの例において、エンジンＥＣＵのマイコン６００は、メータＥＣＵへのエンジン回転数データを、ＬＳＢ当たり５０／２５６ｒｐｍの分解能からＬＳＢ当たり１ｒｐｍの分解能に変換することとなるが、こうしたＬＳＢ変換の内容は、車両機種の違いや、同じ車両機種でもメータ部分の仕様の違いなどによって変更される場合がある。
【００１７】
そして、このような変更に対して、図１３に示した従来のプログラム構造では、例えばエンジン回転数データに対するＬＳＢ変換内容の変更だけであったとしても、ＬＳＢ変換プログラム全体を詳細に見て修正箇所を抽出し、その抽出した箇所を変更しなければならず、非常に手間がかかっていた。
【００１８】
また、ＬＳＢ変換の内容自体に変更が無くても、制御用データの送信周期が変更される場合もある。特に、送信周期は、受信側での要求や、互いに接続されるＥＣＵ群で構成される通信システム全体から適宜決定されるため、変更される場合が多い。
【００１９】
そして、こうした制御用データの送信周期の変更に対して、例えば図１３の例においては、ＬＳＢ変換プログラム２に存在していたプログラムの一部を、実行周期の短いＬＳＢ変換プログラム１に移す必要が生じる。つまり、より最新の制御用データを通信相手へ送るためには、ＬＳＢ変換の周期が送信周期よりも短い必要があるためである。よって、送信周期の変更は、送信処理用のプログラムだけではなく、ＬＳＢ変換プログラム１とＬＳＢ変換プログラム２との双方を変更しなければならない事態を招いてしまう。
【００２０】
このように図１３に示した従来のプログラム構造では、ＬＳＢ変換の内容や送信周期の変更に対して、プログラムの修正箇所が多くなってしまい、しかも、その修正が容易ではないという問題があった。また、プログラムの修正箇所を特定するには、プログラム全体を理解していないとできないという問題もある。
【００２１】
尚、上記問題は、１つのＥＣＵに搭載された複数のマイコンが互いにデータ通信を行う、ＥＣＵ内通信のシステム構成でも同様である。
本発明は、こうした問題に鑑みなされたものであり、送信対象の制御用データに対する精度変換処理の内容や制御用データの送信周期が変わっても、プログラムの修正箇所を最小限にして、プログラム開発効率を向上させることのできる自動車用制御装置を提供することを目的としている。
【００２２】
【課題を解決するための手段、及び発明の効果】
上記目的を達成するためになされた請求項１に記載の本発明の自動車用制御装置は、情報処理装置を備えており、その情報処理装置は、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データを所定の記憶部に格納する。そして更に、前記情報処理装置は、前記記憶部に格納された制御用データのうちで通信相手へ送信すべき各制御用データに対して、そのデータを、該データが示す物理値を前記通信相手側で扱われる分解能で表すデータに変換する精度変換処理を行うと共に、その精度変換処理後の制御用データを前記通信相手へ送信する。
【００２３】
ここで特に、本発明の自動車用制御装置において、情報処理装置は、通信相手へ送信すべき各制御用データに対して前記精度変換処理を夫々行うための複数種類の変換プログラムを格納した変換プログラム格納手段と、前記通信相手へ送信すべき各制御用データと、前記変換プログラム格納手段に格納された各変換プログラムとの、対応関係を示す変換情報を記憶した変換情報記憶手段と、を備えている。
【００２４】
そして、この情報処理装置では、送信動作起動手段が、予め定められた送信タイミングになると、通信相手へ今回送信すべき制御用データを示す送信指令を発行し、この送信動作起動手段によって送信指令が発行されると、データ変換手段が、その送信指令が示す制御用データを前記記憶部から読み出すと共に、前記変換情報記憶手段に記憶されている変換情報に基づいて、前記送信指令が示す制御用データに対応した前記変換プログラム格納手段内の変換プログラムを特定し、その特定した変換プログラムを、前記読み出した制御用データを処理対象として起動することにより、前記送信指令が示す制御用データに対して前記精度変換処理を行う。そして更に、このデータ変換手段による精度変換処理が完了すると、送信手段が、その精度変換処理後の制御用データを通信相手へ送信する。
【００２５】
このような本発明の自動車用制御装置によれば、一定周期で起動されるプログラムによって複数の制御用データに対し精度変換処理を行うのではなく、各制御用データに対して精度変換処理を夫々行うための複数種類の変換プログラムを、変換プログラム格納手段に格納しておき、送信タイミングとなって送信動作起動手段により送信指令が発行された時に、該送信指令が示す今回送信すべき制御用データを処理対象として、その制御用データに対応した変換プログラムを起動するようにしているため、送信周期が変更されても、前述した従来装置のように精度変換処理用のプログラム（ＬＳＢ変換プログラム）を修正する必要が無い。つまり、送信動作起動手段が送信指令を発行する周期を変えるだけで、送信周期の変更に対応することができる。
【００２６】
また、制御用データを送信する直前に、その制御用データに対して精度変換処理を行うため、常に最新の物理値を示す制御用データを通信相手に送ることができる。
その上、従来装置では、一定周期毎に精度変換される複数の精度変換後の制御用データを格納するための大きな記憶領域が必要であるが、本発明の自動車用制御装置によれば、通信相手へ送信される予定の制御用データのうち、各送信タイミングで実際に送信される制御用データの分の記憶領域があれば良く、メモリ容量を削減することができる。
【００２７】
つまり、従来装置では、送信される予定の全ての制御用データを一定周期毎に精度変換しているため、各送信タイミング毎に異なる種別の制御用データを送信する場合でも、常に精度変換後の全データを逐次更新して記憶しておかなければならないが、本発明の自動車用制御装置によれば、実際に送信される精度変換後の制御用データだけを一時記憶する記憶領域があれば良く、非常に有利である。
【００２８】
そして更に、本発明の自動車用制御装置では、各制御用データと各変換プログラムとの対応関係（つまり、各制御用データに対して、どの変換プログラムを起動すべきか）を示す変換情報を、変換情報記憶手段に記憶しておき、データ変換手段が、その変換情報に基づいて、今回送信する制御用データに対して起動すべき変換プログラムを特定するようにしているため、何れかの制御用データに対する精度変換の内容に変更があっても、上記変換情報記憶手段に記憶させておく変換情報を変更するだけで対応することができる。特に、プログラム制御文自体を修正する必要がないため、プログラムに精通しない者でも比較的容易に修正作業を行うことができる。尚、新たな内容の精度変換処理が必要な場合には、その精度変換処理を行うための変換プログラムを、変換プログラム格納手段に追加した上で、上記変換情報を変更すれば良い。
【００２９】
また、本発明の自動車用制御装置では、精度変換すべき制御用データを処理対象として、変換情報記憶手段内の変換情報に基づき特定される変換プログラムを起動することにより、その制御用データに対して精度変換処理を行うようにしているため、同じ内容の精度変換を行う制御用データが複数ある場合には、その複数の制御用データに対して同じ変換プログラムを共通に使用することができ、プログラムを格納するためのＲＯＭの必要容量も削減することができる。つまり、従来装置では、異なる種別の各制御用データに対して同じ内容の精度変換処理を行う場合でも、その同じ内容の精度変換処理を行うプログラム部分を重複して設けなければならなかったが、本発明によれば、そのような無駄を回避することができる。
【００３０】
ところで、請求項１に記載の自動車用制御装置は、より具体的には、請求項２に記載の如く構成することができる。
即ち、まず変換情報記憶手段には、前記変換情報として、通信相手へ送信すべき各制御用データの種別情報と、その種別情報が示す制御用データに対して前記精度変換処理を行うための変換プログラムが、前記変換プログラム格納手段内において何れの格納位置に格納されているかを示す格納位置情報とを、対応付けて記述したデータテーブルを記憶させておく。そして、データ変換手段は、前記データテーブルから、前記送信指令が示す制御用データの種別情報に対応した格納位置情報を取得し、前記記憶部から読み出した制御用データを処理対象として、前記取得した格納位置情報が示す格納位置に格納されている変換プログラムを起動することにより、前記送信指令が示す制御用データに対して精度変換処理を行うようにする。
【００３１】
このように構成すれば、何れかの制御用データに対する精度変換の内容を変更する場合に、その制御データに対応する変換プログラムの格納位置情報を書き換えるだけで対応することができ、精度変換内容の変更に対する修正作業がより簡単になる。
【００３２】
一方、本発明の自動車用制御装置において、情報処理装置が、各送信タイミング毎に、通信相手へ、複数種類の制御用データを直列に並べたパケットデータを送信するのであれば（つまり、複数種類の制御用データをパケット化して送信するのであれば）、請求項３に記載の如く構成することにより、様々な変更に対して柔軟性の高い自動車用制御装置を得ることができる。
【００３３】
即ち、請求項３に記載の自動車用制御装置では、請求項１に記載の自動車用制御装置において、情報処理装置は、前提として、複数種類の制御用データを直列に並べたパケットデータを通信相手へ送信する。
そして、変換情報記憶手段には、前記変換情報として、前記パケットデータの識別番号と、その識別番号のパケットデータを構成する各制御用データの種別情報と、その種別情報が示す制御用データに対して前記精度変換処理を行うための変換プログラムが、前記変換プログラム格納手段内において何れの格納位置に格納されているかを示す格納位置情報とを、対応付けて記述したデータテーブルが記憶されている。
【００３４】
また、送信動作起動手段は、前記送信指令として、通信相手へ今回送信すべきパケットデータの識別番号を発行する。
そして更に、データ変換手段は、送信データ特定手段と、精度変換手段と、パケットデータ作成手段とを備えており、前記送信動作起動手段によって送信指令としてのパケットデータの識別番号が発行されると、まず、送信データ特定手段が、前記データテーブルから、前記発行された識別番号に対応した各制御用データの種別情報を取得する。
【００３５】
そして、精度変換手段が、送信データ特定手段によって取得された前記種別情報の各々について、その種別情報に該当する制御用データを前記記憶部から読み出すと共に、前記データテーブルから、その種別情報に対応した前記格納位置情報を取得し、更に、前記読み出した制御用データを処理対象として、前記取得した格納位置情報が示す格納位置に格納されている変換プログラムを起動することにより、その各識別情報の制御用データに対して前記精度変換処理を行う。
【００３６】
そして更に、パケットデータ作成手段が、精度変換手段によって精度変換処理が行われた後の各制御用データを直列に並べることにより、通信相手へ送信すべきパケットデータを作成する。
すると、送信手段は、前記パケットデータ作成手段によって作成されたパケットデータを通信相手へ送信する。
【００３７】
このような請求項３に記載の自動車用制御装置によれば、データ変換手段（送信データ特定手段，精度変換手段，及びパケットデータ作成手段）が、送信動作起動手段によって発行される識別番号から、変換情報記憶手段に記憶された変換情報としてのデータテーブルに基づいて、今回送信すべき複数の制御用データを特定すると共に、その特定した各制御用データに対し該当する変換プログラムを起動して精度変換処理を夫々行い、更に、その精度変換処理後の各制御用データから実際に送信するパケットデータ作成するため、前述した請求項１，２に記載の装置で得られる効果に加えて、更に、前記データテーブルにおけるパケットデータの識別番号と各制御用データの種別情報との対応を変更するだけで、実際に送信されるパケットデータを構成する制御用データの種別を変更することができる。
【００３８】
特に、この種の自動車用制御装置では、どの装置からどの装置へどの種別の制御用データを提供するか、といった制御役割分担上のシステム構成の変更に伴い、送信すべき制御用データの種別が変更される場合が多いが、請求項３に記載の自動車用制御装置によれば、そのような変更に極めて容易に対応することができるようになる。
【００３９】
【発明の実施の形態】
以下、本発明が適用された実施形態の車両制御システムについて、図面を用いて説明する。
まず、図１は、実施形態の車両制御システム１の構成を表す構成図である。尚、本実施形態の車両制御システム１は、車両に搭載されたエンジン，トランスミッション，エアコン，計器類及びその他の電装品を制御するものである。
【００４０】
図１に示すように、本実施形態の車両制御システム１は、主にエンジン及びトランスミッションを制御する電子制御装置（以下、エンジンＥＣＵという）２と、エアコンを制御する電子制御装置（以下、エアコンＥＣＵという）４と、メータパネル内の計器や警告灯を制御する電子制御装置（以下、メータＥＣＵという）６とを備えている。そして、上記３つのＥＣＵ２，４，６は、多重通信線１０を介して互いに通信可能に接続されている。
【００４１】
ここで、エンジンＥＣＵ２は、車速ＳＰＤを検出するための車速センサ１２，エンジン回転数（以下、単に回転数Ｎｅという）を検出するためのクランク角センサ１４，及びエンジンの冷却水温（以下、単に水温ＴＨＷという）を検出するための水温センサ１６等の、各種センサからの検出信号に基づいて、車両の運転状態を検出する。そして、その検出結果や、後述するようにエアコンＥＣＵ４から送信されて来る外気温ＴＡＭのデータ等に基づいて、インジェクタ１８，イグナイタ２０，及び図示しない他のアクチュエータを駆動することにより、エンジン及びトランスミッションを最適状態に制御する。
【００４２】
そして更に、エンジンＥＣＵ２は、上記の如く検出した車速ＳＰＤ，回転数Ｎｅ，及び水温ＴＨＷ等の運転状態を表す制御用データを、多重通信線１０へ送信すると共に、後述するようにエアコンＥＣＵ４から送信されて来るエアコン制御データＡＣに応じて、Ａ／Ｃマグネットクラッチ２２を作動させることにより、エンジンの駆動力をエアコンの冷媒コンプレッサに伝達させて、エアコンの冷房運転を可能にする。
【００４３】
一方、エアコンＥＣＵ４は、外気センサ２６及び内気センサ２８からの検出信号に基づき車両外の気温（外気温）ＴＡＭと車室内の気温（内気温）とを検出して、該検出結果のデータを多重通信線１０へ送信すると共に、その検出結果と、エンジンＥＣＵ２から送信されて来る車速ＳＰＤ，回転数Ｎｅ，及び水温ＴＨＷ等を表すデータとに応じて、送風用のブロアモータ３０や配風を切り換えるためのエアミックスダンパ３２等を駆動することにより、車室内の空調を制御する。また、エアコンＥＣＵ４は、車両の運転者等によってエアコンスイッチ２４がオンされると、エンジンＥＣＵ２にＡ／Ｃマグネットクラッチ２２を作動させるために、上述したエアコン制御データＡＣを送信する。
【００４４】
そして、メータＥＣＵ６は、エンジンＥＣＵ２から送信されて来る車速ＳＰＤ，回転数Ｎｅ，及び水温ＴＨＷ等を表すデータに応じて、メータパネル内のスピードメータ４０，タコメータ４２，及び水温メータ（図示省略）等を駆動する。また、メータＥＣＵ６は、車両の各ドアの開閉に応じて夫々オン／オフする各ドアスイッチからの信号や、車両のパーキングブレーキが引かれている時にオンするパーキングブレーキスイッチ等からの信号に基づいて、ドアが開いていることを示す半ドア警告灯４４やパーキングブレーキが引かれていることを示すブレーキ警告灯４６等を点灯させる。
【００４５】
尚、各ＥＣＵ２，４，６は、情報処理装置としてのマイコン（マイクロコンピュータ）を備えており、そのマイコンがプログラムを実行することによって上記各ＥＣＵ２〜６の動作が実現されている。
次に、図２は、エンジンＥＣＵ２の内部構成を表すブロック図である。
【００４６】
図２に示す如く、エンジンＥＣＵ２は、前述したように情報処理装置としてのマイコン６０を備えている。尚、図示はしていないが、マイコン６０は、ＣＰＵ，プログラムを記憶する記憶媒体としてのＲＯＭ，データを一時記憶するためのＲＡＭ，及び入出力ポート等を備えた一般的なシングルチップマイクロコンピュータである。また、本実施形態において、マイコン６０のＲＡＭは、１アドレス当たりに１バイト（８ビット）のデータが格納されるものである。
【００４７】
そして、マイコン６０は、前述の各種センサ１２，１４，１６からの信号を入力回路６４を介して入力し、その入力信号に基づき制御対象を制御するための演算処理等を実行して、出力回路６６へ制御量信号を出力することにより、前述したインジェクタ１８やイグナイタ２０等の各種アクチュエータを駆動している。
【００４８】
また更に、エンジンＥＣＵ２は、通信ＩＣ７０を備えており、その通信ＩＣ７０は、マイコン６０から出力された通信データ列を、送信信号として多重通信線１０へ送出すると共に、他のＥＣＵ４，６から多重通信線１０を介して送信されて来た通信データ列を所定フレーム分だけ受信する毎に、マイコン６０へ割込信号を出力するように構成されている。
【００４９】
次に、図３は、マイコン６０内の通信モデルを仮想的に示した概念図であり、この通信モデルは、ＩＳＯ／ＯＳＩ（Open System Interconnection ）通信モデルに準拠した階層化構造である。
図３に示すように、本実施形態のマイコン６０で採用されている通信モデルは、制御対象を制御するための演算処理を行うアプリケーション部１００と、通信相手（他のＥＣＵ４，６）とデータの送受信を行う通信ドライバ部３００と、アプリケーション部１００によって算出される制御用データから、通信ドライバ部３００が送信すべき通信データ列を生成すると共に、通信ドライバ部３００によって受信された通信データ列を、アプリケーション部１００が使用可能な制御用データに変換する通信変換部２００とからなる。そして、通信変換部２００は、更に、共有メモリ部２１０と、物理値変換部２２０と、共通パケットデータ部２３０と、通信データ変換部２４０とに階層化されている。また更に、マイコン６０は、通信制御部４００とテーブル格納部５００とを備えている。
【００５０】
そして、アプリケーション部１００からメータＥＣＵ６等の通信相手に対して、直接データ転送されることはなく、アプリケーション部１００から下位の階層に対して順々にデータを渡し（仮想通信し）、通信ドライバ部３００にて、外部（通信相手）との物理的な通信が実現される。また、この通信モデルでの各階層は、その下の階層に対してサービスを要求し、その上の階層にサービスを提供するというものであり、各階層の目的は、上位階層でのサービスに対して実際の通信仕様等の詳細情報を隠蔽することである。
【００５１】
尚、本実施形態において、マイコン６０により実行されるＲＯＭ内のプログラムは、プログラムの全機能を単位機能毎に細分化して、その単位機能毎にオブジェクトを用意するオブジェクト指向によってプログラミングされており、オブジェクトとは、データとそのデータを処理する手続きである“メソッド”と呼ばれるプログラムとを、一まとめにしたプログラムモジュールである。
【００５２】
そして、図３の通信モデルにおいて、ソフトウエアだけに着目すると、テーブル格納部５００以外の各部１００〜４００は、マイコン６０のＲＯＭに格納された各オブジェクト（メソッド及びデータ）であり、ＲＯＭにおける記憶領域の面から見ると、上記各部１００〜４００は、該当するオブジェクトを格納した記憶領域である。また、テーブル格納部５００は、マイコン６０のＲＯＭにて、後述する図４〜図５の各テーブルを記憶した記憶領域である。
【００５３】
そして更に、本実施形態の説明において、例えば「共有メモリ部２１０が…する。」や「物理値変換部２２０は…する。」といったオブジェクトを主語とした動作表現は、実際には、マイコン６０がそのオブジェクトのメソッドに従って動作する（換言すれば、マイコン６０がそのオブジェクトのメソッドを実行する）ことで実現される機能手段が、上記「…」の動作を行うことを示している。同様に、例えば「共有メモリ部２１０によって…される。」や「物理値変換部２２０によって…される。」といったオブジェクトによる受け身の動作表現は、実際には、マイコン６０がそのオブジェクトのメソッドに従って動作することで実現される機能手段によって、上記「…」の動作が行われることを示している。
【００５４】
ここで、アプリケーション部１００は、エンジンＥＣＵ２の制御対象及び制御内容毎に更に細分化された各オブジェクトからなる。そして、本実施形態において、アプリケーション部１００は、回転数Ｎｅ等の制御用データを算出して、その算出した制御用データに基づきエンジンを制御するための演算処理を行うオブジェクト（以下、エンジンアプリケーションソフトという）１１０と、車速ＳＰＤ等の制御用データを算出して、その算出した制御用データに基づきトランスミッションを制御するための演算処理を行うオブジェクト（以下、ＥＣＴアプリケーションソフトという）１２０と、エンジンのスロットル開度等の制御用データを算出して、その算出した制御用データに基づき車両を定速走行させるためのスロットル開度制御用演算処理を行うオブジェクト（以下、クルーズアプリケーションソフトという）１３０とを有している。そして、これらの各アプリケーションソフト１１０，１２０，１３０は、自分以外のアプリケーションソフトによって算出された制御用データも、自己の演算処理に用いる。つまり、各アプリケーションソフト１１０，１２０，１３０は、制御用データを互いに共有するようにしている。
【００５５】
共有メモリ部２１０は、当該マイコン６０に備えられたＲＡＭにおいて、アプリケーション部１００の各アプリケーションソフト１１０，１２０，１３０が制御対象を制御するために用いる全ての制御用データを一時格納するための記憶領域（以下、制御用データ記憶領域という）とは異なる特定の記憶領域として設定された共有メモリに、上記各アプリケーションソフト１１０，１２０，１３０間で共通使用される制御用データ、及び当該マイコン６０の通信相手（他のＥＣＵ４，６）でも共通使用される制御用データ（以下、外部共有データという）を書き込み、また、上記共有メモリから制御用データを読み出して、他のオブジェクトに提供する。
【００５６】
また、上記共有メモリに格納される各制御用データには、その種別を示す種別情報としての番号（以下、Handle番号と記す）が付与されており、各オブジェクトは、Handle番号を指定することにより、共有メモリから必要なデータを入手したり、共有メモリに新たなデータを書き込むことができるようになっている。
【００５７】
尚、図３では、ＥＣＴアプリケーションソフト１２０によって算出されると共に、Handle番号として“１”が付与された車速ＳＰＤのデータが、エンジンアプリケーションソフト１１０でも使用され、また、エンジンアプリケーションソフト１１０によって算出されると共に、Handle番号として“２”が付与された回転数Ｎｅのデータが、ＥＣＴアプリケーションソフト１２０でも使用されていることを例示している。そして、図３以降の各図及び以下の説明において、“Handle1 ”や“Handle2 ”とは、Handle番号が“１”や“２”であることを表している。
【００５８】
物理値変換部２２０は、当該マイコン６０から通信相手（ＥＣＵ４，６）へのデータ送信時には、上記共有メモリに格納されている制御用データのうち、送信すべき制御用データに対して、そのデジタルデータを、それが示す物理値を通信相手側で扱われる分解能で表すデジタルデータに変換するＬＳＢ変換処理を行う。また、物理値変換部２２０は、通信相手からのデータ受信時には、受信された制御用データに対して、そのデジタルデータを、それが示す物理値を各アプリケーションソフト１１０，１２０，１３０で扱われる分解能で表すデジタルデータに変換するＬＳＢ変換処理を行う。
【００５９】
つまり、ＬＳＢ変換処理とは、前述した精度変換処理のことであり、デジタルデータを、そのデータの分解能（そのデータのＬＳＢ当たりによって示される物理値であり、そのデータの精度である）が、通信相手側で採用されている分解能と同じになるように変換するものである。そして、本実施形態では、上記ＬＳＢ変換処理を行うための複数種類のＬＳＢ変換プログラム（本発明における変換プログラムに相当）が、ＲＯＭの所定領域に、物理値変換部２２０の一部として格納されている。
【００６０】
共通パケットデータ部２３０は、当該マイコン６０から通信相手へのデータ送信時には、物理値変換部２２０によってＬＳＢ変換された送信対象の制御用データを集めて直列に並べることにより、例えば多重通信，シリアル通信，ＤＭＡ通信といった種々の通信プロトコルに依存しない各通信プロトコルに共通のパケットデータ（以下、共通パケットデータという）を作成する。そして、各共通パケットデータには、それの識別番号としてのパケット番号ＰＮが付与されている。尚、図３以降の各図及び以下の説明において、“ＰＮ１”や“ＰＮ２”とは、パケット番号ＰＮが“１”や“２”であることを表している。
【００６１】
通信データ変換部２４０は、当該マイコン６０から通信相手へのデータ送信時には、共通パケットデータ部２３０によって作成された共通パケットデータを、通信相手との通信プロトコルに対応した通信データ列に変換する。具体的には、共通パケットデータのデータ列に通信プロトコルに準じたヘッダ情報等を付加する、といった処理を行う。
【００６２】
通信ドライバ部３００は、当該マイコン６０から通信相手へのデータ送信時には、通信データ変換部２４０によって作成された通信データ列を、通信相手との通信プロトコルで定められた転送データ量、ボーレート、及び転送タイミングで、実際に通信データとして出力する。
尚、通信ドライバ部３００には、通信相手との通信プロトコルに対応したプログラムが組み込まれ、本実施形態では、エアコンＥＣＵ４及びメータＥＣＵ６との多重通信を制御する多重通信用のプログラム（以下、多重通信部という）３１０が組み込まれている。また例えば、マイコン６０が、エンジンＥＣＵ２内の他のマイコンとＤＭＡ通信を行うのであれば、通信ドライバ部３００にＤＭＡ通信を制御するＤＭＡ通信用のプログラムが組み込まれ、また、マイコン６０が、他のＥＣＵと１対１のシリアル通信を行うのであれば、通信ドライバ部３００にシリアル通信を制御するシリアル通信用のプログラムが組み込まれる。
【００６３】
通信制御部４００は、内部タイマを有しており、通信相手との通信が好適なタイミングで実行されるように、通信データ列の作成及びＬＳＢ変換の実施タイミングを決定する。
一方、通信ドライバ部３００（多重通信部３１０）は、通信相手（ＥＣＵ４，６）から送信されて来たデータを受信し取得して、通信データ変換部２４０に提供する機能も有している。
【００６４】
そして、通信データ変換部２４０は、通信ドライバ部３００によって取得された通信データ列を、共通パケットデータに変換する機能も有している。
そして更に、共通パケットデータ部２３０は、通信相手からのデータ受信時には、通信データ変換部２４０によって作成された共通パケットデータを分解して、その共通パケットデータを構成していた各制御用データを抽出し、更に、その各制御用データに対し物理値変換部２２０にＬＳＢ変換を行わせて、共有メモリ部２１０に、そのＬＳＢ変換後の各制御用データを共有メモリへ更新して書き込ませる機能も有している。
【００６５】
一方また、テーブル格納部５００には、図４に示す共有メモリテーブルと、図５に示すデータ特定テーブルと、図６に示す物理値変換テーブルとが格納されている。
図４に示すように、共有メモリテーブルは、制御用データのHandle番号と、そのHandle番号に対応した制御用データが、共有メモリにおいて何れのアドレスを先頭にして格納されるかを示す共有メモリアドレスと、上記Handle番号に対応した制御用データの共有メモリ内におけるデータ長を示す共有メモリサイズとを、対応付けて記述した定義テーブルである。
【００６６】
また、図６に示すように、物理値変換テーブルは、制御用データのHandle番号と、そのHandle番号に対応した制御用データの共通パケットデータにおける配置位置を示す共通パケットデータ位置と、上記Handle番号に対応した制御用データの共通パケットデータ内におけるデータ長を示す共通パケットデータサイズと、上記Handle番号に対応した制御用データをＬＳＢ変換するためのＬＳＢ変換プログラムが、ＲＯＭの何れのアドレスを先頭にして格納されているかを示す格納位置情報としてのＬＳＢ変換コールアドレスとを、対応付けて記述した定義テーブルである。
【００６７】
尚、共通パケットデータ位置は、Handle番号に対応した制御用データが、共通パケットデータにおける最初の１バイトを０バイト目とした場合に、その共通パケットデータにて、何バイト目から配置されるかを示している。
そして、図５に示すように、データ特定テーブルは、共通パケットデータのパケット番号と、そのパケット番号に対応した共通パケットデータの送信間隔を示す通信周期と、上記パケット番号に対応した共通パケットデータを構成する各制御用データを特定するためのオフセット及びサイズとを、対応付けて記述した定義テーブルである。
【００６８】
ここで、オフセットは、図６の物理値変換テーブルにおけるHandle番号の各記述位置のうち、最初の最上段のものを０番目として上から数えた場合の記述位置を示しており、サイズは、図６の物理値変換テーブルにおいて、上記オフセットが示す記述位置から下方に数えたHandle番号の記述位置の数を示している。そして、本実施形態では、図６の物理値変換テーブルに記述された各Handle番号のうち、オフセットが示す記述位置からサイズが示す数の各記述位置に記述されている各Handle番号が、そのオフセット及びサイズに対応したパケット番号の共通パケットデータを構成する制御用データのHandle番号と見なされる。
【００６９】
例えば、図５において、ＰＮ１に対応するオフセットとサイズは、夫々、“０”と“４”であるため、ＰＮ１の共通パケットデータは、図６の最上段から４段目までに記述された４つのHandle番号（Handle１，Handle１０，Handle５，Handle２）に夫々対応する各制御用データによって構成されることとなり、また、図５において、ＰＮ２に対応するオフセットとサイズは、夫々、“４”と“３”であるため、ＰＮ２の共通パケットデータは、図６の５段目から７段目までに記述された３つのHandle番号（Handle２，Handle３，Handle６）に夫々対応する各制御用データによって構成されることとなる。
【００７０】
このように、各オブジェクトは、図５のデータ特定テーブルと図６の物理値変換テーブルとを参照することにより、例えば、ＰＮ１の共通パケットデータには、どのHandle番号の制御用データが集約されるのか等、通信データ列の作成に必要な情報を取得することができる。
【００７１】
次に、マイコン６０から外部へ制御用データを送信する場合の通信データ列への変換処理について、図７〜図１０を用いて説明する。
尚、図７〜図９は、制御用データから通信データ列への変換処理動作を示すメッセージシーケンスチャートである。そして、このメッセージシーケンスチャートでは、図３に示した各階層（オブジェクト）１００〜５００を上下方向の線で示し、その各階層から他の階層へのメッセージを横方向の実線矢印で示している。そして更に、横方向の点線矢印は、各階層がテーブル格納部５００内のテーブルを参照することを示し、上下方向の線上にある長方形の枠内には、その階層で行われる処理の内容が示されている。また、図１０は、図８の処理動作によって作成される共通パケットデータを表す模式図である。
【００７２】
まず、例えば、アプリケーション部１００にあるＥＣＴアプリケーションソフト１２０にて、共有メモリに外部共有データの１つである車速ＳＰＤのデータ（以下、ＳＰＤデータという）を書き込む処理ステップになると、図７の［１］に示すように、アプリケーション部１００のＥＣＴアプリケーションソフト１２０は、共有メモリ部２１０に対してデータ書込要求のメッセージを発行する。そして、この時、ＳＰＤデータのHandle番号（この例ではHandle1 ）と、ＥＣＴアプリケーションソフト１２０でのＳＰＤデータの格納アドレス（即ち、ＥＣＴアプリケーションソフト１２０が制御用の演算処理時にＳＰＤデータの書き込み及び読み出しを行う制御用データ記憶領域のアドレスであって、この例では＆ＳＰＤ）との各情報も、共有メモリ部２１０へ送られる。
【００７３】
尚、データ書込要求のメッセージを発行する処理を、Ｃ言語でプログラミングした場合、ＳＰＤデータを共有メモリに書き込むためのメッセージの発行命令は、次のようになる。
Write（Handle1 ，＆ＳＰＤ）
この命令の意味は、ＳＰＤデータのHandle番号（Handle1 ）に対応する共有メモリのアドレスへ、＆ＳＰＤに格納されているデータ（ＥＣＴアプリケーションソフト１２０で求められたＳＰＤデータ）を書き込む、ということである。また、アプリケーション部１００の各アプリケーションソフト１１０，１２０，１３０が、ＳＰＤデータ以外の制御用データを共有メモリに書き込む場合には、上記命令のうち、“Handle1 ”が、書き込むべきデータのHandle番号となり、“＆ＳＰＤ”が、そのアプリケーションソフト用に設けられた制御用データ記憶領域のうちで、書き込むべきデータが格納された記憶領域のアドレスとなる。
【００７４】
そして、共有メモリ部２１０は、アプリケーション部１００（ＥＣＴアプリケーションソフト１２０）からの上記メッセージを受けると、図７の［２］に示すように、テーブル格納部５００にある共有メモリテーブル（図４）を参照して、上記メッセージと共に送られて来たHandle番号（Handle1 ）に対応する共有メモリアドレスと共有メモリサイズとを、共有メモリ情報として取得する。
【００７５】
すると、共有メモリ部２１０は、上記取得した共有メモリ情報に基づき、ＳＰＤデータは共有メモリにて$FFFF0000 番地を先頭にした２バイト（byte）の領域に書き込むべきであることを認知し、図７の［３］の処理にて、ＥＣＴアプリケーションソフト１２０でのＳＰＤデータの格納アドレス（＆ＳＰＤ）から、共有メモリの$FFFF0000 番地へ、２バイトのＳＰＤデータをコピーする。
【００７６】
この共有メモリ部２１０の処理により、図３における共有メモリ部２１０の枠内に例示しているように、共有メモリへHandle1 に対応したＳＰＤデータが格納される。
また、例えば、アプリケーション部１００にあるエンジンアプリケーションソフト１１０にて、共有メモリに外部共有データの１つである回転数Ｎｅのデータ（以下、Ｎｅデータという）を書き込む処理ステップになると、図７の［４］に示すように、アプリケーション部１００のエンジンアプリケーションソフト１１０は、上述したＳＰＤデータの場合と同じ要領で、共有メモリ部２１０に対しデータ書込要求のメッセージを発行する。尚、この時、ＮｅデータのHandle番号（この例ではHandle2 ）と、エンジンアプリケーションソフト１１０でのＮｅデータの格納アドレス（即ち、エンジンアプリケーションソフト１１０が制御用の演算処理時にＮｅデータの書き込み及び読み出しを行う制御用データ記憶領域のアドレスであって、この例では＆Ｎｅ）との各情報も、共有メモリ部２１０へ送られる。
【００７７】
そして、共有メモリ部２１０は、アプリケーション部１００（エンジンアプリケーションソフト１１０）からの上記メッセージを受けると、図７の［５］に示すように、テーブル格納部５００にある共有メモリテーブル（図４）を参照して、上記メッセージと共に送られて来たHandle番号（Handle2 ）に対応する共有メモリアドレスと共有メモリサイズとを、共有メモリ情報として取得する。
【００７８】
すると、共有メモリ部２１０は、上記取得した共有メモリ情報に基づき、Ｎｅデータは共有メモリにて$FFFF0002 番地を先頭にした２バイトの領域に書き込むべきであることを認知し、図７の［６］の処理にて、エンジンアプリケーションソフト１１０でのＮｅデータの格納アドレス（＆Ｎｅ）から、共有メモリの$FFFF0002 番地へ、２バイトのＮｅデータをコピーする。
【００７９】
この共有メモリ部２１０の処理により、図３における共有メモリ部２１０の枠内に例示しているように、共有メモリへHandle2 に対応したＮｅデータが格納される。
そして、エンジンアプリケーションソフト１１０及びＥＣＴアプリケーションソフト１２０で算出された他の制御用データや、クルーズアプリケーションソフト１３０で算出された制御用データも、図７の手順と同じ要領で共有メモリにコピーされる。
【００８０】
一方、図示はしていないが、共有メモリに書き込まれた制御用データを、アプリケーション部１００（詳しくは、アプリケーション部１００の各アプリケーションソフト）が制御用演算処理に使用する場合には、アプリケーション部１００と共有メモリ部２１０とが、次のように動作する。
【００８１】
例えば、アプリケーション部１００のエンジンアプリケーションソフト１１０が、ＥＣＴアプリケーションソフト１２０によって算出されたＳＰＤデータを共有メモリから読み出す場合について説明すると、この場合、まず、エンジンアプリケーションソフト１１０が、共有メモリ部２１０に対してデータ読出要求のメッセージを発行する。そして、この時、ＳＰＤデータのHandle番号（Handle1 ）と、エンジンアプリケーションソフト１１０でのＳＰＤデータの格納アドレス（即ち、エンジンアプリケーションソフト１１０が制御用の演算処理時にＳＰＤデータの書き込み及び読み出しを行う制御用データ記憶領域のアドレス）との各情報も、共有メモリ部２１０へ送られる。
【００８２】
すると、共有メモリ部２１０は、テーブル格納部５００にある共有メモリテーブル（図４）を参照して、上記データ読出要求のメッセージと共に送られて来たHandle番号（Handle1 ）に対応する共有メモリアドレスと共有メモリサイズとを、共有メモリ情報として取得する。そして、その取得した共有メモリ情報に基づき、ＳＰＤデータは共有メモリにて$FFFF0000 番地を先頭にした２バイト分の領域に格納されていることを認知し、共有メモリの$FFFF0000 番地から２バイト分の領域に格納されているＳＰＤデータを、エンジンアプリケーションソフト１１０でのＳＰＤデータの格納アドレスにコピーする。
【００８３】
そして、このコピーの動作により、図３における共有メモリ部２１０の枠内から上向きに伸びた２つの矢印のうちの左側の矢印のように、共有メモリ内のＳＰＤデータがエンジンアプリケーションソフト１１０へ提供されることとなる。
次に、他のＥＣＵ４，６へ制御用データを送信すべきタイミングになると、図８の［７］に示すように、通信制御部４００が、共通パケットデータ部２３０に対して、図３における共通パケットデータ部２３０の枠内に例示したような共通パケットデータを作成させるために、送信指令としての送信要求のメッセージを発行する。
【００８４】
尚、図３では、パケット番号ＰＮが１つしか示されていないが、実際には多数存在するため、通信制御部４００は、今回の送信対象となる共通パケットデータのパケット番号ＰＮ（この例ではＰＮ１）も、送信要求のメッセージと共に共通パケットデータ部２３０へ送る。具体的に説明すると、通信制御部４００は、図５のデータ特定テーブルで定義されたパケット番号と通信周期とに従って、１Ｓ（秒）毎にＰＮ１を含んだ送信要求のメッセージを発行し、３Ｓ毎にＰＮ２を含んだ送信要求のメッセージを発行し、５Ｓ毎にＰＮ３を含んだ送信要求のメッセージを発行し、０．５Ｓ毎にＰＮ４を含んだ送信要求のメッセージを発行する。また、図８及び図９における（）内の記述は、通信制御部４００から共通パケットデータ部２３０へ送られたパケット番号ＰＮがＰＮ１であった場合を示している。
【００８５】
このようにして、通信制御部４００がパケット番号ＰＮを含んだ送信要求のメッセージを発行すると、共通パケットデータ部２３０は、図８の［８］に示すように、テーブル格納部５００にあるデータ特定テーブル（図５）と物理値変換テーブル（図６）とを参照して、通信制御部４００から送られて来たパケット番号ＰＮに対応する各Handle番号（つまり、通信制御部４００から送られて来たパケット番号ＰＮの共通パケットデータに集約すべき制御用データの各Handle番号）を、送信データ情報として取得する。
【００８６】
例えば、通信制御部４００から共通パケットデータ部２３０へ送られたパケット番号ＰＮがＰＮ１であった場合には、図５のデータ特定テーブルにおいて、ＰＮ１に対応するオフセットとサイズは、夫々、“０”と“４”であるため、共通パケットデータ部２３０は、図６の物理値変換テーブルの最上段から４段目までに記述された４つのHandle１，Handle１０，Handle５，及びHandle２を、ＰＮ１の共通パケットデータを構成する制御用データの各Handle番号として取得することとなる。
【００８７】
そして次に、共通パケットデータ部２３０は、図８の［９］に示すように、まず、上記取得したHandle番号のうちの最初のHandle番号（この例ではHandle1 ）を、物理値変換要求のメッセージと共に物理値変換部２２０へ送る。
すると、物理値変換部２２０は、図８の［１０］に示すように、共通パケットデータ部２３０からのHandle番号を、データ取得要求のメッセージと共に共有メモリ部２１０へ送る。
【００８８】
このデータ取得要求のメッセージにより共有メモリ部２１０は、図７の［２］，［５］と同様に、テーブル格納部５００にある共有メモリテーブル（図４）を参照して、上記データ取得要求のメッセージと共に送られて来たHandle番号（ここではHandle1 ）に対応する共有メモリアドレス（$FFFF0000 ）と共有メモリサイズ（２byte）とを、共有メモリ情報として取得し、更に、その取得した共有メモリ情報に基づき、共有メモリの$FFFF0000 番地から２バイト分のデータ（この例ではＳＰＤデータ）を読み出して、その読み出したデータを、図８の［１１］に示すように、物理値変換部２２０へ戻り値として返す。
【００８９】
すると更に、物理値変換部２２０は、図８の［１２］に示すように、テーブル格納部５００にある物理値変換テーブル（図６）を参照して、上記［１０］で自分が共有メモリ部２１０へ送ったHandle番号（Handle1 ）に対応するＬＳＢ変換コールアドレス（$00001000 ）を取得する。そして、物理値変換部２２０は、図８の［１３］にて、上記［１０］及び［１１］の動作で共有メモリから読み出したHandle1 の制御用データ（即ち、共有メモリ部２１０から戻り値として返された制御用データであって、この例では２バイトのＳＰＤデータ）を処理対象として、上記取得したＬＳＢ変換コールアドレスに格納されているＬＳＢ変換プログラムを起動することにより、その制御用データ（ＳＰＤデータ）に対してＬＳＢ変換処理を行う。
【００９０】
これにより、図３における物理値変換部２２０の枠内に例示しているように、Handle1 に対応したＳＰＤデータがＬＳＢ変換され、そのＬＳＢ変換後のデータ（以下、ＳＰＤ’データと記す）が、物理値変換部２２０の作業領域として割り当てられたＲＡＭの所定領域に、対応するHandle番号（Handle1 ）と共に格納される。
【００９１】
その後、共通パケットデータ部２３０は、図８の［１４］に示すように、テーブル格納部５００にある物理値変換テーブル（図６）を参照して、上記［９］で自分が物理値変換部２２０へ送ったHandle番号（Handle1 ）に対応する共通パケットデータサイズと共通パケットデータ位置とを、共通パケットデータ情報として取得する。
【００９２】
そして、共通パケットデータ部２３０は、図８の［１５］にて、通信制御部４００から送られて来たパケット番号（ここではＰＮ１）の共通パケットデータを作成するための共通パケットデータ生成処理を行う。
ここで、この共通パケットデータ生成処理は、作成対象の共通パケットデータにおけるデータ領域のうち、上記［１４］の動作で物理値変換テーブルから今回取得した共通パケットデータ位置及び共通パケットデータサイズにより指定される領域に、物理値変換部２２０によって今回ＬＳＢ変換された制御用データを配置する、といった手順で行われる。よって、例えば、図６の最上段に示すように、Handle1 に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“０”と“２バイト”であるため、図１０（Ａ）に示すように、Handle1 のＬＳＢ変換後のデータ（ＳＰＤ’データ）Ｈ１は、ＰＮ１の共通パケットデータにおける０バイト目の位置から２バイト分の領域に配置されることとなる。
【００９３】
このようにして、Handle1 の制御用データについてのＬＳＢ変換処理及び共通パケットデータ生成処理が終わると、図８の［１６］に示すように、共通パケットデータ部２３０が上記［８］の動作で取得した各Handle番号のうちの次のHandle番号（Handle10）について、上記［９］〜［１４］と同じ要領でＬＳＢ変換のための動作が行われ、次いで図８の［１７］に示すように、上記［１５］と同じ要領で共通パケットデータ生成処理が行われる。そして更に、共通パケットデータ部２３０が上記［８］の動作で取得した各Handle番号のうちの他のHandle番号（Handle5 ，Handle2 ）についても、図８の［１８］〜［２１］に示すように、上記［９］〜［１４］及び［１５］と同じ要領で、ＬＳＢ変換動作と共通パケットデータ生成処理とが順次行われる。
【００９４】
そして、通信制御部４００から共通パケットデータ部２３０へ送られたパケット番号ＰＮに対応する全てのHandle番号の制御用データについて、ＬＳＢ変換と共通パケットデータ生成処理とが終了すると、送信すべき共通パケットデータの作成が完了する。
【００９５】
例えば、通信制御部４００から共通パケットデータ部２３０へＰＮ１が送られた場合、図５及び図６の各テーブルに従い作成されるＰＮ１の共通パケットデータとしては、図１０（Ａ）に示すように、Handle1 のＬＳＢ変換後のデータＨ１が０バイト目の位置から２バイト分の領域に配置され、Handle10のＬＳＢ変換後のデータＨ１０が２バイト目の位置から１バイト分の領域に配置され、Handle5 のＬＳＢ変換後のデータＨ５が３バイト目の位置から３バイト分の領域に配置され、Handle2 のＬＳＢ変換後のデータＨ２が６バイト目の位置から２バイト分の領域に配置されたデータ列となる。
【００９６】
また例えば、通信制御部４００から共通パケットデータ部２３０へＰＮ２が送られた場合、図５及び図６の各テーブルに従い作成されるＰＮ２の共通パケットデータとしては、図１０（Ｂ）に示すように、Handle2 のＬＳＢ変換後のデータＨ２が０バイト目の位置から２バイト分の領域に配置され、Handle3 のＬＳＢ変換後のデータＨ３が２バイト目の位置から２バイト分の領域に配置され、Handle6 のＬＳＢ変換後のデータＨ６が４バイト目の位置から４バイト分の領域に配置されたデータ列となる。
【００９７】
次に、このようにして今回送信すべき共通パケットデータの作成が完了すると、共通パケットデータ部２３０は、図８の［２２］及び図９の［２２］に示すように、通信データ変換部２４０に対して、今回作成した共通パケットデータを通信相手との通信プロトコルに対応する通信データ列に変換させるために、送信要求のメッセージを発行する。そして、この時、今回作成した共通パケットデータのパケット番号（この例ではＰＮ１）も、通信データ変換部２４０へ送られる。
【００９８】
すると、通信データ変換部２４０は、図９の［２３］の処理にて、共通パケットデータ部２３０により今回作成された共通パケットデータを、通信相手である他のＥＣＵ４，６との多重通信の通信プロトコルに対応した通信データ列に変換する。具体的には、本実施形態の場合、図３における通信データ変換部２４０の枠内に例示しているように、共通パケットデータ部２３０によって作成された共通パケットデータの先頭に、通信相手との通信プロトコルに準拠したヘッダ情報としてのArbitration とMLとを付加する。尚、Arbitration は、データの優先順位を示し、データが衝突した場合の調停用データである。また、MLは、通信データ列におけるデータフレーム部分のデータ長を示すデータである。
【００９９】
そして、通信データ変換部２４０は、通信データ列の作成を終了すると、図９の［２４］に示すように、通信ドライバ部３００に対して、送信要求のメッセージを発行する。
すると、通信ドライバ部３００内の多重通信部３１０は、図９の［２５］の送信処理にて、通信データ変換部２４０により作成された通信データ列を、通信ＩＣ７０に出力すると共に、その通信ＩＣを制御して、上記作成された通信データ列を、通信相手との通信プロトコルに応じたボーレートや転送タイミングで多重通信線１０へ送出させる。
【０１００】
そして、上述した一連の処理により、マイコン６０内のアプリケーション部１００で算出された制御用データが、多重通信線１０に対応した通信プロトコルのデータ列に変換されて、エアコンＥＣＵ４及びメータＥＣＵ６に送信される。
尚、上記説明では、主に、ＰＮ１の共通パケットデータを作成して送信する場合（つまり、図８の［７］で通信制御部４００が共通パケットデータ部２３０へＰＮ１を含んだ送信要求のメッセージを発行した場合）について述べたが、ＰＮ１以外の他の共通パケットデータについても、ＰＮ１の共通パケットデータと同じ要領で作成されて送信される。但し、例えば、ＰＮ２の共通パケットデータについては、図８及び図９に示した処理動作が３Ｓ毎に行われて、その作成及び送信が行われ、また例えば、ＰＮ３の共通パケットデータについては、図８及び図９に示した処理動作が５Ｓ毎に行われて、その作成及び送信が行われる。そして、こうした各共通パケットデータの作成及び送信の周期は、図５のデータ特定テーブルに記述されたパケット番号と通信周期とによって決まる。
【０１０１】
一方、本実施形態では、マイコン６０のＲＡＭ内に設定された共有メモリが、記憶部に相当し、マイコン６０のＲＯＭにおける記憶領域のうちで、物理値変換部２２０により起動される複数種類のＬＳＢ変換プログラムを格納した所定領域が、変換プログラム格納手段に相当している。
【０１０２】
また、図５のデータ特定テーブルと図６の物理値変換テーブルとが、変換情報としてのデータテーブルに相当し、ＲＯＭ内のテーブル格納部５００において、その両テーブルを記憶した領域が、変換情報記憶手段に相当している。
そして、通信制御部４００が、送信動作起動手段に相当し、物理値変換部２２０及び共通パケットデータ部２３０が、データ変換手段に相当し、通信データ変換部２４０及び通信ドライバ部３００が、送信手段に相当している。
【０１０３】
また、共通パケットデータ部２３０のうちで、図８の［８］に示した処理（データ特定テーブルと物理値変換テーブルとを参照して、通信制御部４００からのパケット番号に対応した各Handle番号を取得する処理）を行う部分のプログラムが、送信データ特定手段に相当し、物理値変換部２２０が、精度変換手段に相当し、共通パケットデータ部２３０のうちで、図８の［１５］，［１７］，［１９］，［２１］に示した共通パケットデータ生成処理を行う部分のプログラムが、パケットデータ作成手段に相当している。
【０１０４】
以上詳述したように本実施形態のエンジンＥＣＵ２に設けられたマイコン６０では、図１１に示すように、通信相手へ送信する予定の制御用データの各々に対して、それに対応するＬＳＢ変換プログラムの先頭アドレス（ＬＳＢ変換コールアドレス）を物理値変換テーブルで定義しておき、送信タイミング毎に動作する物理値変換部２２０が、その物理値変換テーブルの情報に基づいて、実際に送信する制御用データに対応したＬＳＢ変換プログラムを起動することにより、その制御用データに対してＬＳＢ変換処理を行うようにしている。尚、図１１は、図８における一点鎖線の六角形の枠で示したＬＳＢ変換動作の概念図である
よって、何れかの制御用データに対するＬＳＢ変換の内容を変更する場合には、プログラム制御文自体を修正する必要が無く、物理値変換テーブルにて、その制御用データに対応したＬＳＢ変換コールアドレスを書き換えるだけで良い。尚、新たな内容のＬＳＢ変換が必要な場合には、その変換を行うためのＬＳＢ変換プログラムをＲＯＭに追加した上で、物理値変換テーブル内のＬＳＢ変換コールアドレスを変更すれば良い。
【０１０５】
また、本実施形態のマイコン６０では、ＬＳＢ変換すべき制御用データを処理対象として、物理値変換テーブルに基づき特定されるＬＳＢ変換プログラムを起動することにより、その制御用データに対してＬＳＢ変換処理を行うようにしているため、同じ内容のＬＳＢ変換を行う制御用データが複数ある場合には、例えば図６における１段目のHandle1 と４段目のHandle2 のように、物理値変換テーブル内のＬＳＢ変換コールアドレスを同じ値（$00001000 ）にしておくことで、その複数の制御用データに対して同じＬＳＢ変換プログラムを使用することができる。よって、プログラムの全容量（延いては、ＲＯＭの必要容量）を削減することができる。
【０１０６】
そして更に、本実施形態のマイコン６０によれば、例えばＰＮ１のパケットデータの送信周期を１Ｓから３Ｓに変更するような場合でも、通信制御部４００がＰＮ１を含んだ送信要求のメッセージを発行する周期を変更するだけで良く、ＬＳＢ変換プログラムはもちろんのこと、他の部分のプログラムを修正する必要が無い。特に、本実施形態では、図５のデータ特定テーブルによって、パケット番号と通信周期とを定義し、通信制御部４００が、その定義内容に基づいた周期で各パケット番号を含んだ送信要求のメッセージを発行するようにしているため、送信周期の変更も、データ特定テーブルの記述内容を書き換えるだけで良く、非常に容易である。
【０１０７】
また、本実施形態のマイコン６０では、制御用データを送信する直前に、その送信対象の制御用データをＬＳＢ変換するようにしているため、常に最新の物理値を示す制御用データを通信相手に送ることができる。
その上、ＬＳＢ変換された制御用データは、送信対象のパケットデータを構成するデータ領域に即座に格納されるため、ＬＳＢ変換後のデータを格納しておくための記憶領域を別途設ける必要が無く、メモリ容量を削減することができる。
【０１０８】
また更に、本実施形態のマイコン６０では、共通パケットデータ部２３０及び物理値変換部２２０が、通信制御部４００によって発行されるパケット番号から、データ特定テーブル及び物理値変換テーブルに基づいて、今回送信すべき複数の制御用データを特定すると共に、その特定した各制御用データに対し該当するＬＳＢ変換プログラムを起動してＬＳＢ変換処理を夫々行い、更に、そのＬＳＢ変換処理後の各制御用データから実際に送信するパケットデータ作成するため、前述の効果に加えて、更に、データ特定テーブル及び物理値変換テーブルにおけるパケット番号とHandle番号との対応を変更するだけで、実際に送信されるパケットデータを構成する制御用データの種別を変更することができる。
【０１０９】
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態の車両制御システム１では、エンジンＥＣＵ２が他の２つのＥＣＵ４，６とデータ通信を行うものであったが、ＥＣＵの数は３つに限るものではなく、２つ或いは４つ以上でも良い。
【０１１０】
また、上記実施形態は、他のＥＣＵ４，６とデータ通信を行うエンジンＥＣＵ２に本発明を適用したものであったが、本発明は、例えば、内部に搭載された複数のマイコン同士がデータ通信を行うＥＣＵに対しても、同様に適用することができる。つまり、この場合には、１つのマイコンに着目すると、その通信相手が同じＥＣＵに搭載された他のマイコンとなる。
【図面の簡単な説明】
【図１】  実施形態の車両制御システムの構成を表す構成図である。
【図２】  図１の車両制御システムを構成するエンジンＥＣＵの内部構成を表すブロック図である。
【図３】  エンジンＥＣＵに設けられたマイコン内の通信モデルを仮想的に示した概念図である。
【図４】  テーブル格納部に格納された共有メモリテーブルを説明する説明図である。
【図５】  テーブル格納部に格納されたデータ特定テーブルを説明する説明図である。
【図６】  テーブル格納部に格納された物理値変換テーブルを説明する説明図である。
【図７】  アプリケーション部によって求められた制御用データを共有メモリに格納する処理動作を示すメッセージシーケンスチャートである。
【図８】  共有メモリに格納された制御用データから共通パケットデータを生成する処理動作を示すメッセージシーケンスチャートである。
【図９】  図８の処理動作で生成された共通パケットデータを、通信データ列に変換して送信する処理動作を示すメッセージシーケンスチャートである。
【図１０】  図８の処理動作によって作成される共通パケットデータを表す模式図である。
【図１１】  図８におけるＬＳＢ変換動作の概念図である。
【図１２】  一般的な車両制御システムの構成を表す構成図である。
【図１３】  従来の精度変換処理用プログラム（ＬＳＢ変換プログラム）の構造を説明する説明図である。
【符号の説明】
１…車両制御システム    ２…エンジンＥＣＵ    ４…エアコンＥＣＵ
６…メータＥＣＵ    １０…多重通信線    ６０…マイコン
６４…入力回路    ６６…出力回路    ７０…通信ＩＣ
１００…アプリケーション部    １１０…エンジンアプリケーションソフト
１２０…ＥＣＴアプリケーションソフト
１３０…クルーズアプリケーションソフト    ２００…通信変換部
２１０…共有メモリ部    ２２０…物理値変換部
２３０…共通パケットデータ部    ２４０…通信データ変換部
３００…通信ドライバ部    ４００…通信制御部    ５００…テーブル格納部
【図１】
0003666297.tif 000002
【図２】
0003666297.tif 000003
【図３】
0003666297.tif 000004
【図４】
0003666297.tif 000005
【図５】
0003666297.tif 000006
【図６】
0003666297.tif 000007
【図７】
0003666297.tif 000008
【図８】
0003666297.tif 000009
【図９】
0003666297.tif 000010
【図１０】
0003666297.tif 000011
【図１１】
0003666297.tif 000012
【図１２】
0003666297.tif 000013
【図１３】
0003666297.tif 000014