(57)【特許請求の範囲】
【請求項１】
記憶媒体に記憶されたプログラムを実行することにより、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データのうちの何れかを通信対象へ送信する処理を行うマイクロコンピュータを備えた自動車用制御装置において、
前記記憶媒体に記憶されたプログラムは、
前記演算処理を行うためのアプリケーションプログラムと、
該アプリケーションプログラムとは別に設けられ、前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、その抽出した制御用データを、前記通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換する処理を行うためのデータ変換用プログラムと、
該データ変換用プログラム及び前記アプリケーションプログラムとは別に設けられ、前記データ変換用プログラムによって変換された通信データ列を、前記特定の通信プロトコルに従い前記通信対象へ送信する処理を行うための通信ドライバ用プログラムと、
からなり、
更に、前記データ変換用プログラムは、
前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出して、その抽出した各制御用データを前記通信対象との間で予め定められた順番に並べることにより、通信プロトコルに依存しないデータ列である共通パケットデータを作成する処理を行うための共通パケットデータ作成用プログラムモジュールと、
該共通パケットデータ作成用プログラムモジュールによって作成された前記共通パケットデータを、前記特定の通信プロトコルに対応した通信データ列に変換する処理を行うための通信データ変換用プログラムモジュールと、
からなることを特徴とする自動車用制御装置。
【請求項２】
請求項１に記載の自動車用制御装置において、
前記制御対象は、第１の制御対象と第２の制御対象とからなると共に、
前記アプリケーションプログラムは、前記第１の制御対象を制御するための演算処理を行うための第１のアプリケーションプログラムと、前記第２の制御対象を制御するための演算処理を行うための第２のアプリケーションプログラムとからなり、
前記共通パケットデータ作成用プログラムモジュールは、前記第１のアプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、前記第２のアプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき他の制御用データを抽出して、前記抽出した各制御用データを前記通信対象との間で予め定められた順番に並べることにより、前記共通パケットデータを作成するように構成されていること、
を特徴とする自動車用制御装置。
【請求項３】
記憶媒体に記憶されたプログラムを実行することにより、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データのうちの何れかを通信対象へ送信する処理を行うマイクロコンピュータを備え、
前記記憶媒体に記憶されたプログラムは、
前記演算処理を行うためのアプリケーションプログラムと、
該アプリケーションプログラムとは別に設けられ、前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、その抽出した制御用データを、前記通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換する処理を行うためのデータ変換用プログラムと、
該データ変換用プログラム及び前記アプリケーションプログラムとは別に設けられ、前記データ変換用プログラムによって変換された通信データ列を、前記特定の通信プロトコルに従い前記通信対象へ送信する処理を行うための通信ドライバ用プログラムと、
からなる自動車用制御装置であって、
前記制御対象は、第１の制御対象と第２の制御対象とからなると共に、
前記アプリケーションプログラムは、前記第１の制御対象を制御するための演算処理を行うための第１のアプリケーションプログラムと、前記第２の制御対象を制御するための演算処理を行うための第２のアプリケーションプログラムとからなり、
更に、当該装置は、前記第１のアプリケーションプログラムと前記第２のアプリケーションプログラムとで共通に使用される制御用データを格納するためのメモリであって、前記第１及び第２のアプリケーションプログラムの各々が各自の制御対象を制御するために用いる全ての制御用データを格納するための記憶手段とは別に設けられた共有メモリを備えると共に、
前記第１及び第２のアプリケーションプログラムは、前記共通に使用される制御用データを算出して提供する方のアプリケーションプログラムが該制御用データを前記共有メモリに書き込み、その制御用データを提供される方のアプリケーションプログラムが該制御用データを前記共有メモリから読み出すように構成されており、
前記データ変換用プログラムは、
前記共有メモリに格納されている制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出して、その抽出した各制御用データを前記通信対象との間で予め定められた順番に並べることにより、通信プロトコルに依存しないデータ列である共通パケットデータを作成する処理を行うための共通パケットデータ作成用プログラムモジュールと、
該共通パケットデータ作成用プログラムモジュールによって作成された前記共通パケットデータを、前記特定の通信プロトコルに対応した通信データ列に変換する処理を行うための通信データ変換用プログラムモジュールと、
からなることを特徴とする自動車用制御装置。
【請求項４】
請求項１ないし請求項３の何れかに記載の自動車用制御装置において、
前記データ変換用プログラムは、更に、前記共通パケットデータ作成用プログラムモジュールによって抽出された各制御用データのデータ長を、前記通信対象側で扱われるデータ長に変換する処理を行うための物理値変換用プログラムモジュールを有し、
前記共通パケットデータ作成用プログラムモジュールは、前記物理値変換プログラムモジュールによってデータ長が変換された後の各制御用データを前記通信対象との間で予め定められた順番に並べることにより、前記共通パケットデータを作成するように構成されていること、
を特徴とする自動車用制御装置。
【請求項５】
請求項１ないし請求項４の何れかに記載の自動車用制御装置において、
前記共通パケットデータを構成すべき制御用データの格納先情報と、その制御用データが前記共通パケットデータ内においてどの位置に配置されるかを示す配置位置情報とを、対応付けて記憶した共通パケットデータ情報記憶手段を備え、
前記共通パケットデータ作成用プログラムモジュールは、前記共通パケットデータ情報記憶手段に記憶されている前記格納先情報に基づいて、前記通信対象へ送信すべき制御用データの抽出を行うと共に、前記共通パケットデータ情報記憶手段に記憶されている前記配置位置情報に基づいて、前記共通パケットデータの作成を行うように構成されていること、
を特徴とする自動車用制御装置。
【請求項６】
請求項１ないし請求項５の何れかに記載の自動車用制御装置において、
前記共通パケットデータを、前記特定の通信プロトコルに対応した通信データ列に変換するための変換情報を記憶した変換情報記憶手段を備え、
前記通信データ変換用プログラムモジュールは、前記共通パケットデータ作成用プログラムモジュールによって作成された共通パケットデータを、前記変換情報記憶手段に記憶されている変換情報に基づいて、前記特定の通信プロトコルに対応した通信データ列に変換するように構成されていること、
を特徴とする自動車用制御装置。
【請求項７】
記憶媒体に記憶されたプログラムを実行することにより、通信対象から送信されて来る通信データ列を受信する処理を行うと共に、その処理によって受信した通信データ列に含まれている制御用データを用いて、自動車に搭載された制御対象を制御するための演算処理を行うマイクロコンピュータを備えた自動車用制御装置において、
前記記憶媒体に記憶されたプログラムは、
前記通信対象から送信されて来る通信データ列を、前記通信対象との間で定められた特定の通信プロトコルに従い受信し取得する処理を行うための通信ドライバ用プログラムと、
該通信ドライバ用プログラムとは別に設けられ、前記通信ドライバ用プログラムにより取得された通信データ列から、前記特定の通信プロトコルに基づき、前記制御用データを抽出すると共に、その抽出した制御用データを、該制御用データを格納するために用意された所定のメモリ領域に書き込む処理を行うためのデータ変換用プログラムと、
該データ変換用プログラム及び前記通信ドライバ用プログラムとは別に設けられ、前記所定のメモリ領域に格納された制御用データを読み出すと共に、その読み出した制御用データを用いて前記演算処理を行うためのアプリケーションプログラムと、
からなり、
更に、前記通信対象から送信されて来る通信データ列には、複数種類の制御用データが予め定められた順番に含まれており、
前記データ変換用プログラムは、
前記通信ドライバ用プログラムにより取得された通信データ列を、前記特定の通信プロトコルに基づき、複数種類の制御用データを前記通信対象から送られて来た順に並べたデータ列である共通パケットデータに変換する処理を行うための第１のプログラムモジュールと、
該第１のプログラムモジュールにより変換された前記共通パケットデータを複数種類の各制御用データに分解すると共に、該分解した各制御用データを、その各制御用データを格納するために用意された各メモリ領域に夫々書き込む処理を行うための第２のプログラムモジュールと、
からなることを特徴とする自動車用制御装置。
【請求項８】
請求項７に記載の自動車用制御装置において、
前記データ変換用プログラムは、更に、前記第２のプログラムモジュールによって前記共通パケットデータから分解された各制御用データのデータ長を、前記アプリケーションプログラムで扱われるデータ長に変換する処理を行うための物理値変換用プログラムモジュールを有し、
前記第２のプログラムモジュールは、前記物理値変換プログラムモジュールによってデータ長が変換された後の各制御用データを、対応する各メモリ領域に書き込むように構成されていること、
を特徴とする自動車用制御装置。
【請求項９】
請求項７又は請求項８に記載の自動車用制御装置において、
前記共通パケットデータを構成する各制御用データが該共通パケットデータ内においてどの位置に配置されているかを示す配置位置情報と、その各制御用データの格納先情報とを、対応付けて記憶した共通パケットデータ情報記憶手段を備え、
前記第２のプログラムモジュールは、前記共通パケットデータ情報記憶手段に記憶されている前記配置位置情報に基づいて、前記共通パケットデータの各制御用データへの分解を行うと共に、前記共通パケットデータ情報記憶手段に記憶されている前記格納先情報に基づいて、前記各メモリ領域への制御用データの書き込みを行うように構成されていること、
を特徴とする自動車用制御装置。
【請求項１０】
請求項７ないし請求項９の何れかに記載の自動車用制御装置において、
前記通信ドライバ用プログラムにより取得された通信データ列を前記共通パケットデータに変換するための変換情報を記憶した変換情報記憶手段を備え、
前記第１のプログラムモジュールは、前記通信ドライバ用プログラムにより取得された通信データ列を、前記変換情報記憶手段に記憶されている変換情報に基づいて、前記共通パケットデータに変換するように構成されていること、
を特徴とする自動車用制御装置。
【請求項１１】
記憶媒体に記憶されたプログラムを実行することにより、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データのうちの何れかを通信対象へ送信する処理を行うマイクロコンピュータを備えた自動車用制御装置において、
前記記憶媒体に記憶されたプログラムは、
前記演算処理を行うためのアプリケーションプログラムを格納したアプリケーション部と、
前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、その抽出した各制御用データを前記通信対象との間で予め定められた順番に並べることにより、通信プロトコルに依存しないデータ列である共通パケットデータを作成する処理プログラムを格納した共通パケットデータ部と、
前記共通パケットデータを前記通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換する処理プログラムを格納した通信データ変換部と、
前記通信データ変換部にて変換された通信データ列を前記通信対象へ送信する処理プログラムを格納した通信ドライバ部とが各々独立して構成されたソフトウエア構造であることを特徴とする自動車用制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータを備えた自動車用制御装置に関し、特に、そのマイクロコンピュータが、当該装置や他の自動車用制御装置に備えられた他のマイクロコンピュータとデータ通信を行うことにより、その通信対象のマイクロコンピュータと制御用データを共有するようにした自動車用制御装置に関する。
【０００２】
【従来の技術】
従来より、自動車に搭載されたエンジンやトランスミッション等の制御対象を制御する自動車用制御装置は、ＲＯＭに記憶されたプログラムを実行して制御対象を制御するための演算処理を行うマイクロコンピュータを備えている。
【０００３】
そして、近年における制御内容の複雑化に伴い、この種の自動車用制御装置では、それに搭載されたマイクロコンピュータが、同じ自動車用制御装置内や他の自動車用制御装置に搭載された他のマイクロコンピュータとデータ通信を行って、その通信対象のマイクロコンピュータと制御対象の制御に用いる制御用データを共有することにより、制御性を向上させている。
【０００４】
ここで、こうした自動車用制御装置（以下、ＥＣＵともいう）の通信形態上のシステム構成例について説明すると、まず、１つのＥＣＵに搭載された２つのマイクロコンピュータが１対１でデータ通信を行う、ＥＣＵ内通信のシステム構成がある。
【０００５】
また、２つのＥＣＵに夫々搭載された各マイクロコンピュータが、自動車内に配設されたシリアル通信線を介し１対１でデータ通信を行う、ＥＣＵ間シリアル通信のシステム構成がある。
また更に、３つ以上のＥＣＵに夫々搭載された各マイクロコンピュータが、自動車内に配設された多重通信線を介し１対多或いは多対１でデータ通信を行う、ＥＣＵ間多重通信のシステム構成がある。
【０００６】
そして、上記各システム構成を併せ持ったシステム構成もある。例えば、１つのＥＣＵに搭載されたマイクロコンピュータが、同じＥＣＵに搭載された他のマイクロコンピュータとデータ通信を行うと共に、他のＥＣＵに搭載されたマイクロコンピュータともシリアル通信線や多重通信線を介してデータ通信を行う、といったシステム構成である。
【０００７】
【発明が解決しようとする課題】
上述したように、この種の自動車用制御装置では、通信形態の異なる様々なシステム構成が採られる。また、通信形態上のシステム構成が同じであっても、通信プロトコルには様々なものがあり、特に多重通信の通信プロトコルは種類が多い。また更に、通信形態上のシステム構成や通信プロトコルが同じであっても、どのマイクロコンピュータからどのマイクロコンピュータへどの種類の制御用データを提供するか、といった制御役割分担上のシステム構成から、通信すべき制御用データの種類やデータ長、或いは、実際に送受信される通信データ列における各制御用データの並び等が変更される場合もある。
【０００８】
ところが、従来の自動車用制御装置において、マイクロコンピュータにより実行されるプログラムは、制御対象を制御するための演算処理を行う部分と、通信対象との間で制御用データをやり取りする処理を行う部分とが、明確に区別されておらず一体不可分に作成されていた。
【０００９】
このため、従来の自動車用制御装置では、通信形態上及び制御役割分担上のシステム構成や通信プロトコルが変更される毎に、プログラム全体を大幅に修正しなければならないという問題があった。また、あるシステム構成の装置用に開発したプログラムを、他のシステム構成の装置に再利用することも困難であった。
【００１０】
例えば、従来の自動車用制御装置では、制御対象に応じた制御用演算処理を行う制御プログラムによって、制御用データの算出だけではなく、その算出した制御用データを、通信対象との間の通信プロトコルに対応する通信データ列に変換し、上記通信プロトコルで定められた転送タイミングやボーレート等で送信する処理等を行っている。また逆に、上記制御プログラムにより、通信対象から送信されて来る通信データ列を上記通信プロトコルで定められたタイミングやボーレート等で受信し、その通信データ列に含まれていた制御用データを演算処理時に参照する記憶領域へ書き込む処理等を行っている。このため、通信対象との通信プロトコルや、通信すべき制御用データの種類及びデータ長などが変更されると、プログラム全体を修正しなければならない。
【００１１】
本発明は、こうした問題に鑑みなされたものであり、システム構成や通信プロトコルが変わっても、マイクロコンピュータにより実行されるプログラムの修正箇所を最小限にすることのできる自動車用制御装置を提供することを目的としている。
【００１２】
【課題を解決するための手段、及び発明の効果】
上記目的を達成するためになされた請求項１に記載の自動車用制御装置は、マイクロコンピュータを備えており、そのマイクロコンピュータは、記憶媒体に記憶されたプログラムを実行することにより、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データのうちの何れかを通信対象へ送信する処理を行う。尚、記憶媒体としては、データの書き換えが不能なマスクＲＯＭや、データの書き換えが可能なＥＥＰＲＯＭ或いはフラッシュＲＯＭが一般的であるが、それ以外のメモリでもよい。
【００１３】
ここで特に、請求項１に記載の自動車用制御装置において、前記記憶媒体に記憶されマイクロコンピュータにより実行されるプログラムは、前記演算処理を行うためのアプリケーションプログラムと、データ変換用プログラムと、通信ドライバ用プログラムとの、夫々独立したプログラムモジュールからなっている。
【００１４】
そして、データ変換用プログラムにより、前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、その抽出した制御用データを、通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換する処理が行われる。
【００１５】
また、通信ドライバ用プログラムにより、前記データ変換用プログラムによって変換された通信データ列を、前記特定の通信プロトコルに従い通信対象へ送信する処理が行われる。
この請求項１に記載の自動車用制御装置では、制御対象に応じた制御用演算処理を行うアプリケーションプログラムとは別の、独立したプログラムモジュール（データ変換用プログラムと通信ドライバ用プログラムとの各々）によって、通信対象へ送信すべき制御用データを通信プロトコルに対応した通信データ列に変換する処理と、その通信データ列を上記通信プロトコルに従い通信対象へ送信する処理とを行うようにしているため、通信プロトコルが変わったり、通信対象へ送信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わったとしても、アプリケーションプログラムを修正する必要が無い。
【００１６】
また、システム構成の変更に伴い、通信対象へ送信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わっても、通信プロトコルが同じであれば、データ変換用プログラムのみを修正すれば良く、通信ドライバ用プログラムとアプリケーションプログラムは修正する必要が無い。
【００１７】
よって、請求項１に記載の自動車用制御装置によれば、システム構成や通信プロトコルが変わっても、マイクロコンピュータにより実行されるプログラムの修正箇所を最小限にすることができる。また、当該装置のマイクロコンピュータ用に開発したプログラムの一部を、他のシステム構成の装置に再利用することが容易になる。
【００１８】
そして特に、請求項１の自動車用制御装置では、前記データ変換用プログラムが、更に、共通パケットデータ作成用プログラムモジュールと、通信データ変換用プログラムモジュールとに分かれている。
【００１９】
そして、共通パケットデータ作成用プログラムモジュールにより、前記アプリケーションプログラムによって算出される制御用データのうちから、通信対象へ送信すべき制御用データを抽出して、その抽出した各制御用データを、通信対象との間で予め定められた順番に並べることにより、通信プロトコルに依存しないデータ列である共通パケットデータを作成する処理が行われる。
【００２０】
また、通信データ変換用プログラムモジュールにより、前記共通パケットデータ作成用プログラムモジュールによって作成された共通パケットデータを、前記特定の通信プロトコルに対応した通信データ列に変換する処理が行われる。
そして、その通信データ変換用プログラムモジュールによって変換された通信データ列は、通信ドライバ用プログラムにより、前記特定の通信プロトコルに従い通信対象へ送信される。これにより、アプリケーションプログラムによって算出された送信対象の各制御用データは、前記共通パケットデータを構成する順に通信対象へ送られることとなる。
【００２１】
この請求項１の自動車用制御装置によれば、システム構成の変更に伴い、通信対象へ送信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並び（即ち、送信順序）が変わっても、通信プロトコルが同じであれば、データ変換用プログラムの一部である共通パケットデータ作成用プログラムモジュールだけを修正すれば良い。逆に、通信プロトコルだけが変わった場合には、アプリケーションプログラムはもとより、共通パケットデータ作成用プログラムモジュールも修正する必要が無い。よって、プログラムの修正箇所をより少なくすることができる。
【００２２】
次に、請求項２に記載の自動車用制御装置では、上記請求項１に記載の装置において、前記制御対象が、第１の制御対象と第２の制御対象とからなると共に、前記アプリケーションプログラムが、前記第１の制御対象を制御するための演算処理を行うための第１のアプリケーションプログラムと、前記第２の制御対象を制御するための演算処理を行うための第２のアプリケーションプログラムとからなっている。
【００２３】
そして、前記共通パケットデータ作成用プログラムモジュールは、前記第１のアプリケーションプログラムによって算出される制御用データのうちから、通信対象へ送信すべき制御用データを抽出すると共に、前記第２のアプリケーションプログラムによって算出される制御用データのうちから、通信対象へ送信すべき他の制御用データを抽出して、その抽出した各制御用データを通信対象との間で予め定められた順番に並べることにより、前記共通パケットデータを作成するように構成されている。
【００２４】
この請求項２に記載の自動車用制御装置によれば、第１と第２の複数のアプリケーションプログラムに関連した多数の制御用データを、１度の通信で通信対象へ送信することができ、非常に効率的なデータ通信が可能となる。
次に、請求項３に記載の自動車用制御装置は、上記請求項１に記載の装置と同様に、記憶媒体に記憶されたプログラムを実行することにより、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データのうちの何れかを通信対象へ送信する処理を行うマイクロコンピュータを備えている。そして、前記記憶媒体に記憶されたプログラムは、前記演算処理を行うためのアプリケーションプログラムと、該アプリケーションプログラムとは別に設けられ、前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、その抽出した制御用データを、前記通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換する処理を行うためのデータ変換用プログラムと、該データ変換用プログラム及び前記アプリケーションプログラムとは別に設けられ、前記データ変換用プログラムによって変換された通信データ列を、前記特定の通信プロトコルに従い前記通信対象へ送信する処理を行うための通信ドライバ用プログラムとからなる。
そして特に、請求項３の自動車用制御装置では、前記制御対象が、第１の制御対象と第２の制御対象とからなると共に、前記アプリケーションプログラムが、前記第１の制御対象を制御するための演算処理を行うための第１のアプリケーションプログラムと、前記第２の制御対象を制御するための演算処理を行うための第２のアプリケーションプログラムとからなっている。
【００２５】
そして、当該装置は、前記第１のアプリケーションプログラムと前記第２のアプリケーションプログラムとで共通に使用される制御用データを格納するためのメモリであって、前記第１及び第２のアプリケーションプログラムの各々が各自の制御対象を制御するために用いる全ての制御用データを格納するための記憶手段とは別に設けられた共有メモリを備えており、前記第１及び第２のアプリケーションプログラムは、前記共通に使用される制御用データを算出して提供する方のアプリケーションプログラムが該制御用データを前記共有メモリに書き込み、その制御用データを提供される方のアプリケーションプログラムが該制御用データを前記共有メモリから読み出すように構成されている。
【００２６】
そして更に、前記データ変換用プログラムは、前記共有メモリに格納されている制御用データのうちから、通信対象へ送信すべき制御用データを抽出して、その抽出した各制御用データを通信対象との間で予め定められた順番に並べることにより、通信プロトコルに依存しないデータ列である共通パケットデータを作成する処理を行うための共通パケットデータ作成用プログラムモジュールと、その共通パケットデータ作成用プログラムモジュールによって作成された共通パケットデータを、前記特定の通信プロトコルに対応した通信データ列に変換する処理を行うための通信データ変換用プログラムモジュールとに分かれている。
【００２７】
尚、上記記憶手段としては、一般に、揮発性のＲＡＭにおける所定の記憶領域が用いられるが、その場合、共有メモリとしては、上記ＲＡＭにおける他の特定の記憶領域を用いることができる。また、共有メモリとしては、上記ＲＡＭとは物理的に異なる他のメモリを用いても良い。
【００２８】
この請求項３に記載の自動車用制御装置によれば、前述した請求項１に記載の装置と同様の効果を得ることができる。また、第１及び第２のアプリケーションプログラムの各々によって算出された各制御用データが前記共有メモリに格納されると共に、共通パケットデータ作成用プログラムモジュールが、上記各アプリケーションプログラムによって算出された各制御用データを、通信対象へ送信すべき制御用データとして共有メモリから抽出するように構成すれば、請求項２に記載の装置と同様に、第１と第２の複数のアプリケーションプログラムに関連した多数の制御用データを、１度の通信で通信対象へ送信することができる。
【００２９】
そして特に、請求項３に記載の自動車用制御装置では、第１及び第２の両アプリケーションプログラム間における制御用データの共有が、別途設けられた共有メモリを介して行われるため、例えば、制御対象の変更等により、一方のアプリケーションプログラムを違うものに変更しても、他方のアプリケーションプログラムには全く影響が無い。つまり、各アプリケーションプログラムを完全に独立させることができ、各アプリケーションプログラムの入れ替えや、他のシステム構成への転用が非常に容易となる。
【００３０】
次に、請求項４に記載の自動車用制御装置では、上記請求項１〜３に記載の装置において、前記データ変換用プログラムは、更に、前記共通パケットデータ作成用プログラムモジュールによって抽出された各制御用データのデータ長を、通信対象側で扱われるデータ長に変換する処理を行うための物理値変換用プログラムモジュールを有している。そして、前記共通パケットデータ作成用プログラムモジュールは、前記物理値変換プログラムモジュールによってデータ長が変換された後の各制御用データを、通信対象との間で予め定められた順番に並べることにより、前記共通パケットデータを作成するように構成されている。
【００３１】
この請求項４に記載の自動車用制御装置によれば、通信対象へ送信する制御用データのデータ長をその通信対象側で扱われるデータ長に変換する処理が、アプリケーションプログラムとは別の物理値変換用プログラムモジュールによって行われるため、アプリケーションプログラムは、自分が算出した制御用データが通信対象側でどの様なデータ長で扱われのるかを全く意識する必要が無く、その結果、アプリケーションプログラムと通信対象との独立性を確保することができる。
【００３２】
具体的に説明すると、この種の自動車用制御装置では、例えば、エンジン回転数のデータを算出して送信する方のマイクロコンピュータが、そのデータを２バイトのデータ長で扱い、エンジン回転数のデータを受信して演算処理に用いる方のマイクロコンピュータが、そのデータを１バイトのデータ長で扱うといった具合に、送信側と受信側とで、扱うデータ長が異なる場合がある。そして、データ長＝データ精度であり、データ精度とは、そのデータのＬＳＢ当たりによって示される物理値である。例えば、上記例では、エンジン回転数のデータを受信する方のマイクロコンピュータが、そのデータを送信する方のマイクロコンピュータよりも、エンジン回転数の値を１／２8 の分解能で処理していることとなる。
【００３３】
そして、各マイクロコンピュータが、どの制御用データをどの様なデータ長で扱うかは、システム設計時に決めらるのであるが、従来の装置では、本発明でのアプリケーションプログラムに相当する制御プログラムによって、上記の如きデータ長の変換処理も行っていたため、通信対象側で扱われる制御用データのデータ長が変わると、それに伴い上記制御プログラムも修正しなければならなかった。
【００３４】
これに対して、請求項４に記載の自動車用制御装置では、こうしたデータ長の変換処理を、アプリケーションプログラムとは別に設けた物理値変換用プログラムモジュールによって行うようにしているため、通信対象で扱われる制御用データのデータ長が変わっても、アプリケーションプログラムを修正する必要が無く、プログラムの修正箇所をより少なくすることができるのである。
【００３５】
次に、請求項５に記載の自動車用制御装置は、上記請求項１〜４に記載の装置に対して、前記共通パケットデータを構成すべき制御用データの格納先情報と、その制御用データが前記共通パケットデータ内においてどの位置に配置されるかを示す配置位置情報とを、対応付けて記憶した共通パケットデータ情報記憶手段を備えている。
【００３６】
そして、前記共通パケットデータ作成用プログラムモジュールは、前記共通パケットデータ情報記憶手段に記憶されている前記格納先情報に基づいて、通信対象へ送信すべき制御用データの抽出を行うと共に、前記共通パケットデータ情報記憶手段に記憶されている前記配置位置情報に基づいて、前記共通パケットデータの作成を行うように構成されている。例えば、この共通パケットデータ作成用プログラムモジュールによる処理は、前記格納先情報によって示されるメモリ領域から制御用データを読み出し、その読み出した各制御用データを前記配置位置情報に従って並べることにより共通パケットデータを作成する、といったものである。
【００３７】
この請求項５に記載の自動車用制御装置によれば、システム構成の変更に伴って、通信対象へ送信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わった場合には、プログラム自身を変更する必要が無く、共通パケットデータ情報記憶手段に記憶させておく各情報を変更するだけで対応することができる。よって、プログラムの修正個所をより少なくすることができる。
【００３８】
次に、請求項６に記載の自動車用制御装置は、上記請求項１〜５に記載の装置に対して、前記共通パケットデータを、通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換するための変換情報を記憶した変換情報記憶手段を備えている。
【００３９】
そして、前記通信データ変換用プログラムモジュールは、前記共通パケットデータ作成用プログラムモジュールによって作成された共通パケットデータを、前記変換情報記憶手段に記憶されている変換情報に基づいて、前記特定の通信プロトコルに対応した通信データ列に変換するように構成されている。例えば、上記変換情報としては、１回に送信可能なデータ量を示す最大転送単位や、通信データ列に付加すべきヘッダ情報等が考えられる。また、この場合、通信データ変換用プログラムモジュールによる処理としては、前記共通パケットデータを、上記最大転送単位に基づき１回で送信可能なデータ列に分割したり、その分割したデータ列に上記ヘッダ情報を付加する、といったものとなる。
【００４０】
この請求項６に記載の自動車用制御装置によれば、通信対象との通信プロトコルが変わった場合に、通信データ変換用プログラムモジュール自体を変更する必要が無く、前記変換情報記憶手段に記憶させておく変換情報を変更するだけで対応することができる。よって、プログラムの修正個所をより少なくすることができる。
【００４１】
一方、請求項７に記載の自動車用制御装置も、マイクロコンピュータを備えている。そして、そのマイクロコンピュータは、記憶媒体に記憶されたプログラムを実行することにより、通信対象から送信されて来る通信データ列を受信する処理を行うと共に、その処理によって受信した通信データ列に含まれている制御用データを用いて、自動車に搭載された制御対象を制御するための演算処理を行う。
【００４２】
ここで特に、請求項７に記載の自動車用制御装置において、前記記憶媒体に記憶されマイクロコンピュータにより実行されるプログラムは、通信ドライバ用プログラムと、データ変換用プログラムと、アプリケーションプログラムとの、夫々独立したプログラムモジュールからなっている。
【００４３】
そして、通信ドライバ用プログラムにより、前記通信対象から送信されて来る通信データ列を、その通信対象との間で定められた特定の通信プロトコルに従い受信し取得する処理が行われる。
また、データ変換用プログラムにより、前記通信ドライバ用プログラムによって取得された通信データ列から、前記特定の通信プロトコルに基づき、前記制御用データを抽出すると共に、その抽出した制御用データを、該制御用データを格納するために用意された所定のメモリ領域に書き込む処理が行われる。
【００４４】
そして、アプリケーションプログラムにより、前記所定のメモリ領域に格納された制御用データが読み出され、その制御用データを用いた前記演算処理が行われる。
この請求項７に記載の自動車用制御装置では、制御対象に応じた制御用演算処理を行うアプリケーションプログラムとは別の、独立したプログラムモジュール（通信ドライバ用プログラムとデータ変換用プログラムとの各々）によって、通信対象から送信されて来る通信データ列を通信プロトコルに従い受信して取得する処理と、その取得された通信データ列から通信プロトコルに基づき制御用データを抽出して、その制御用データを所定のメモリ領域に書き込む処理とを行うようにしているため、通信プロトコルが変わったり、通信対象から送られて来る制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わったとしても、アプリケーションプログラムを修正する必要が無い。
【００４５】
また、システム構成の変更に伴い、通信対象から送られて来る制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わっても、通信プロトコルが同じであれば、データ変換用プログラムのみを修正すれば良く、通信ドライバ用プログラムとアプリケーションプログラムは修正する必要が無い。
【００４６】
よって、請求項７に記載の自動車用制御装置によれば、システム構成や通信プロトコルが変わっても、マイクロコンピュータにより実行されるプログラムの修正箇所を最小限にすることができる。また、当該装置のマイクロコンピュータ用に開発したプログラムの一部を、他のシステム構成の装置に再利用することが容易になる。
【００４７】
そして特に、請求項７に記載の自動車用制御装置では、通信対象から送信されて来る通信データ列には、複数種類の制御用データが予め定められた順番に含まれている。
そして更に、前記データ変換用プログラムが、前記通信ドライバ用プログラムにより取得された通信データ列を、前記特定の通信プロトコルに基づき、複数種類の制御用データを通信対象から送られて来た順に並べたデータ列である共通パケットデータに変換する処理を行うための第１のプログラムモジュールと、その第１のプログラムモジュールにより変換された前記共通パケットデータを、複数種類の各制御用データに分解すると共に、該分解した各制御用データを、その各制御用データを格納するために用意された各メモリ領域に夫々書き込む処理を行うための第２のプログラムモジュールとに分かれている。
【００４８】
そして、前記第２のプログラムモジュールによって前記各メモリ領域に書き込まれた制御用データは、アプリケーションプログラムによって読み出され、演算処理に用いられることとなる。
この請求項７に記載の自動車用制御装置によれば、システム構成の変更に伴い、通信対象から送られて来る制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わっても、通信プロトコルが同じであれば、データ変換用プログラムの一部である第２のプログラムモジュールだけを修正すれば良い。逆に、通信プロトコルだけが変わった場合には、アプリケーションプログラムはもとより、前記第２のプログラムモジュールも修正する必要が無い。よって、プログラムの修正箇所をより少なくすることができる。
【００４９】
次に、請求項８に記載の自動車用制御装置では、上記請求項７に記載の装置において、前記データ変換用プログラムは、更に、前記第２のプログラムモジュールによって前記共通パケットデータから分解された各制御用データのデータ長を、前記アプリケーションプログラムで扱われるデータ長に変換する処理を行うための物理値変換用プログラムモジュールを有している。そして、前記第２のプログラムモジュールは、前記物理値変換プログラムモジュールによってデータ長が変換された後の各制御用データを、対応する各メモリ領域に書き込むように構成されている。
【００５０】
この請求項８に記載の自動車用制御装置によれば、通信対象から送られて来る制御用データのデータ長をアプリケーションプログラムで扱われるデータ長に変換する処理が、そのアプリケーションプログラムとは別の物理値変換用プログラムモジュールによって行われるため、アプリケーションプログラムは、通信対象から送られて来る制御用データが、その通信対象側でどの様なデータ長で扱われているのかを全く意識する必要が無く、その結果、アプリケーションプログラムと通信対象との独立性を確保することができる。
【００５１】
つまり、前述したように自動車用制御装置では、制御用データを送信する側と受信する側とで、制御用データのデータ長が異なる場合がある。そして、双方のデータ長が異なり、かつ、送信する側がデータ長の変換を行わない場合、従来の装置では、本発明でのアプリケーションプログラムに相当する制御プログラムによって、受信した制御用データのデータ長を変換するようにしていた。このため、通信対象側で扱われる制御用データのデータ長が変わると、それに伴い上記制御プログラムも修正しなければならなかった。
これに対して、請求項８に記載の自動車用制御装置では、受信した制御用データのデータ長変換処理を、アプリケーションプログラムとは別に設けた物理値変換用プログラムモジュールによって行うようにしているため、通信対象側で扱われる制御用データのデータ長が変わっても、アプリケーションプログラムを修正する必要が無く、プログラムの修正箇所をより少なくすることができる。
【００５２】
次に、請求項９に記載の自動車用制御装置は、上記請求項７，８に記載の装置に対して、前記共通パケットデータを構成する各制御用データが該共通パケットデータ内においてどの位置に配置されているかを示す配置位置情報と、その各制御用データの格納先情報とを、対応付けて記憶した共通パケットデータ情報記憶手段を備えている。尚、システムの設計時において、通信対象が送って来る制御用データの種類，データ長，及び順番が決まれば、前記共通パケットデータ内にてどの種類の制御用データがどの位置に配置されるかが分かり、前記配置位置情報を決定することができる。
【００５３】
そして、前記第２のプログラムモジュールは、前記共通パケットデータ情報記憶手段に記憶されている前記配置位置情報に基づいて、前記共通パケットデータの各制御用データへの分解を行うと共に、前記共通パケットデータ情報記憶手段に記憶されている前記格納先情報に基づいて、前記各メモリ領域への制御用データの書き込みを行うように構成されている。
【００５４】
この請求項９に記載の自動車用制御装置によれば、システム構成の変更に伴って、通信対象から送られて来る制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わった場合には、プログラム自身を変更する必要が無く、共通パケットデータ情報記憶手段に記憶させておく各情報を変更するだけで対応することができる。よって、プログラムの修正個所をより少なくすることができる。
【００５５】
次に、請求項１０に記載の自動車用制御装置は、上記請求項７〜９に記載の装置に対して、前記通信ドライバ用プログラムにより取得された通信データ列を前記共通パケットデータに変換するための変換情報を記憶した変換情報記憶手段を備えている。そして、前記第１のプログラムモジュールは、前記通信ドライバ用プログラムにより取得された通信データ列を、前記変換情報記憶手段に記憶されている変換情報に基づいて、前記共通パケットデータに変換するように構成されている。
【００５６】
この請求項１０に記載の自動車用制御装置によれば、通信対象との通信プロトコルが変わった場合に、第１のプログラムモジュール自体を変更する必要が無く、前記変換情報記憶手段に記憶させておく変換情報を変更するだけで対応することができる。よって、プログラムの修正個所をより少なくすることができる。
【００５７】
また、請求項１１に記載の本発明は、記憶媒体に記憶されたプログラムを実行することにより、自動車に搭載された制御対象を制御するための演算処理を行うと共に、その演算処理により算出した制御用データのうちの何れかを通信対象へ送信する処理を行うマイクロコンピュータを備えた自動車用制御装置において、
前記記憶媒体に記憶されたプログラムは、
前記演算処理を行うためのアプリケーションプログラムを格納したアプリケーション部と、
前記アプリケーションプログラムによって算出される制御用データのうちから、前記通信対象へ送信すべき制御用データを抽出すると共に、その抽出した各制御用データを前記通信対象との間で予め定められた順番に並べることにより、通信プロトコルに依存しないデータ列である共通パケットデータを作成する処理プログラムを格納した共通パケットデータ部と、
前記共通パケットデータを前記通信対象との間で定められた特定の通信プロトコルに対応した通信データ列に変換する処理プログラムを格納した通信データ変換部と、
前記通信データ変換部にて変換された通信データ列を前記通信対象へ送信する処理プログラムを格納した通信ドライバ部とが各々独立して構成されたソフトウエア構造であること、を特徴としている。
【００５８】
そして、この自動車用制御装置によれば、システム構成や通信プロトコルが変わっても、プログラムの修正箇所を最小限にすることができる。
【００５９】
【発明の実施の形態】
以下、本発明が適用された実施形態の車両制御システムについて、図面を用いて説明する。
まず、図１は、実施形態の車両制御システム１の構成を表す構成図である。尚、本実施形態の車両制御システム１は、車両に搭載されたエンジン，トランスミッション，エアコン，計器類，ブレーキ及びその他の電装品を制御するものである。
【００６０】
図１に示すように、本実施形態の車両制御システム１は、主にエンジン及びトランスミッションを制御する電子制御装置（以下、エンジンＥＣＵという）２と、エアコンを制御する電子制御装置（以下、エアコンＥＣＵという）４と、メータパネル内の計器や警告灯を制御する電子制御装置（以下、メータＥＣＵという）６と、車両の不安定な横滑り状態等を抑制するための車両姿勢制御を行う電子制御装置（以下、姿勢制御ＥＣＵという）８とを備えている。
【００６１】
そして、エンジンＥＣＵ２とエアコンＥＣＵ４とメータＥＣＵ６は、多重通信線１０を介して、互いに通信可能に接続されている。また、エンジンＥＣＵ２は、多重通信線１０とは別のシリアル通信線１１を介して、姿勢制御ＥＣＵ８と１対１のシリアル通信が可能に接続されている。尚、多重通信線１０での通信プロトコルと、シリアル通信線１１での通信プロトコルとは、異なるものである。
【００６２】
ここで、エンジンＥＣＵ２は、車速ＳＰＤを検出するための車速センサ１２，エンジン回転数（以下、単に回転数Ｎｅという）を検出するためのクランク角センサ１４，及びエンジンの冷却水温（以下、単に水温ＴＨＷという）を検出するための水温センサ１６等の、各種センサからの検出信号に基づいて、車両の運転状態を検出する。そして、その検出結果や、後述するようにエアコンＥＣＵ４から送信されて来る外気温ＴＡＭのデータ等に基づいて、インジェクタ１８，イグナイタ２０，及び図示しない他のアクチュエータを駆動することにより、エンジン及びトランスミッションを最適状態に制御する。
【００６３】
そして更に、エンジンＥＣＵ２は、上記の如く検出した車速ＳＰＤ，回転数Ｎｅ，及び水温ＴＨＷ等の運転状態を表す制御用データを、多重通信線１０及びシリアル通信線１１へ適宜送信すると共に、後述するようにエアコンＥＣＵ４から送信されて来るエアコン制御データＡＣに応じて、Ａ／Ｃマグネットクラッチ２２を作動させることにより、エンジンの駆動力をエアコンの冷媒コンプレッサに伝達させて、エアコンの冷房運転を可能にする。
【００６４】
一方、エアコンＥＣＵ４は、外気センサ２６及び内気センサ２８からの検出信号に基づき車両外の気温（外気温）ＴＡＭと車室内の気温（内気温）とを検出して、該検出結果のデータを送信すると共に、その検出結果と、エンジンＥＣＵ２から送信されて来る車速ＳＰＤ，回転数Ｎｅ，及び水温ＴＨＷ等を表すデータとに応じて、送風用のブロアモータ３０や配風を切り換えるためのエアミックスダンパ３２等を駆動することにより、車室内の空調を制御する。また、エアコンＥＣＵ４は、車両の運転者等によってエアコンスイッチ２４がオンされると、エンジンＥＣＵ２にＡ／Ｃマグネットクラッチ２２を作動させるために、上述したエアコン制御データＡＣを送信する。
【００６５】
そして、メータＥＣＵ６は、エンジンＥＣＵ２から送信されて来る車速ＳＰＤ，回転数Ｎｅ，及び水温ＴＨＷ等を表すデータに応じて、メータパネル内のスピードメータ４０，タコメータ４２，及び水温メータ（図示省略）等を駆動する。また、メータＥＣＵ６は、車両の各ドアの開閉に応じて夫々オン／オフする各ドアスイッチからの信号や、車両のパーキングブレーキが引かれている時にオンするパーキングブレーキスイッチ等からの信号に基づいて、ドアが開いていることを示す半ドア警告灯４４やパーキングブレーキが引かれていることを示すブレーキ警告灯４６等を点灯させる。
【００６６】
一方また、姿勢制御ＥＣＵ８は、ヨーレートセンサ５０等の各種センサからの信号に基づき車両の走行状態を検出し、車両が横滑り状態にあると判断すると、ブレーキアクチュエータ５２を駆動してブレーキ制御を行うと共に、シリアル通信線１１を介して、エンジンＥＣＵ２へエンジン出力を低下させるための制御用データ（例えば、燃料カット信号）を送信する。すると、エンジンＥＣＵ２は、姿勢制御ＥＣＵ８からの上記制御用データに従いインジェクタ１８等を駆動して、エンジン出力を低下させる。
【００６７】
尚、各ＥＣＵ２，４，６，８はマイクロコンピュータ（以下、マイコンという）を備えており、そのマイコンがプログラムを実行することによって上記各ＥＣＵ２〜８の動作が実現されている。
次に、図２は、エンジンＥＣＵ２の内部構成を表すブロック図である。
【００６８】
図２に示すように、エンジンＥＣＵ２は、第１マイコン６０と第２マイコン６２との、２つのマイコンを備えている。尚、図示はしていないが、各マイコン６０，６２は、ＣＰＵ，プログラムを記憶する記憶媒体としてのＲＯＭ，データを一時記憶するためのＲＡＭ，及び入出力ポート等を備えた一般的なシングルチップマイクロコンピュータである。また、本実施形態において、各マイコン６０，６２のＲＡＭは、１アドレス当たりに１バイト（８ビット）のデータが格納されるものである。
【００６９】
そして、各マイコン６０，６２は、前述の各種センサ１２，１４，１６からの信号を入力回路６４を介して入力し、その入力信号に基づき制御対象を制御するための演算処理等を実行して、出力回路６６へ制御量信号を出力することにより、前述したインジェクタ１８やイグナイタ２０等の各種アクチュエータを駆動している。
【００７０】
また、第１マイコン６０と第２マイコン６２とは、通信線６８を介してデータ通信を行うことにより、制御対象を制御するための制御用データを共有している。つまり、第１マイコン６０と第２マイコン６２は、エンジン及びトランスミッションを制御するための各演算処理を分担して実行すると共に、各自の演算処理に用いる制御用データを、通信線６８を介したデータ通信により共有している。尚、この通信線６８での通信プロトコルは、ＤＭＡ通信であり、多重通信線１０及びシリアル通信線１１での通信プロトコルとは異なるものである。
【００７１】
そして更に、エンジンＥＣＵ２は、通信ＩＣ７０を備えており、その通信ＩＣ７０は、第１マイコン６０から出力された通信データ列を、送信信号として多重通信線１０へ送出すると共に、エアコンＥＣＵ４及びメータＥＣＵ６から多重通信線１０を介して送信されて来た通信データ列を所定フレーム分（本実施形態では１フレーム分）だけ受信する毎に、第１マイコン６０へ割込信号を出力するように構成されている。
【００７２】
また、前述したシリアル通信線１１は、第１マイコン６０の入出力ポートに接続されており、第１マイコン６０は、その入出力ポートを介して、姿勢制御ＥＣＵ８（詳しくは、姿勢制御ＥＣＵ８内のマイコン）と１対１でデータをやり取りするようになっている。
【００７３】
次に、図３は、第１マイコン６０内の通信モデルを仮想的に示した概念図であり、この通信モデルは、ＩＳＯ／ＯＳＩ（Open System Interconnection ）通信モデルに準拠した階層化構造である。
図３に示すように、本実施形態の第１マイコン６０で採用されている通信モデルは、制御対象を制御するための演算処理を行うアプリケーション部１００と、第２マイコン６２及び他のＥＣＵ４，６，８とデータの送受信を行う通信ドライバ部３００と、アプリケーション部１００によって算出される制御用データから、通信ドライバ部３００が送信すべき通信データ列を生成すると共に、通信ドライバ部３００によって受信された通信データ列を、アプリケーション部１００が使用可能な制御用データに変換する通信変換部２００とからなる。そして、通信変換部２００は、更に、共有メモリ部２１０と、物理値変換部２２０と、共通パケットデータ部２３０と、通信データ変換部２４０とに階層化されている。
【００７４】
また更に、第１マイコン６０は、通信制御部４００とテーブル格納部５００とを備えている。
そして、アプリケーション部１００から第２マイコン６２、或いは、他のＥＣＵ４，６，８に対して、直接データ転送されることはなく、アプリケーション部１００から下位の階層に対して順々にデータを渡し（仮想通信し）、通信ドライバ部３００にて、外部（通信対象）との物理的な通信が実現される。また、この通信モデルでの各階層は、その下の階層に対してサービスを要求し、その上の階層にサービスを提供するというものであり、各階層の目的は、上位階層でのサービスに対して実際の通信仕様等の詳細情報を隠蔽することである。
【００７５】
尚、本実施形態において、各マイコン６０，６２により実行されるＲＯＭ内のプログラムは、プログラムの全機能を単位機能毎に細分化して、その単位機能毎にオブジェクトを用意するオブジェクト指向によってプログラミングされており、オブジェクトとは、データとそのデータを処理する手続きである“メソッド”と呼ばれるプログラムとを、一まとめにしたプログラムモジュールである。
【００７６】
そして、図３の通信モデルにおいて、ソフトウエアだけに着目すると、テーブル格納部５００以外の各部１００〜４００は、第１マイコン６０のＲＯＭに格納された各オブジェクト（メソッド及びデータ）である。また、テーブル格納部５００は、第１マイコン６０のＲＯＭにて、後述する図４及び図５の各テーブルを記憶した記憶領域である。
【００７７】
そして更に、本実施形態の説明において、例えば「共有メモリ部２１０が…する。」や「物理値変換部２２０は…する。」といったオブジェクトを主語とした動作表現は、実際には、第１マイコン６０がそのオブジェクトのメソッドに従って動作する（換言すれば、第１マイコン６０がそのオブジェクトのメソッドを実行する）ことで実現される機能手段が、上記「…」の動作を行うことを示している。同様に、例えば「共有メモリ部２１０によって…される。」や「物理値変換部２２０によって…される。」といったオブジェクトによる受け身の動作表現は、実際には、第１マイコン６０がそのオブジェクトのメソッドに従って動作することで実現される機能手段によって、上記「…」の動作が行われることを示している。
【００７８】
ここで、アプリケーション部１００は、エンジンＥＣＵ２の制御対象及び制御内容毎に更に細分化された各オブジェクトからなる。そして、本実施形態において、アプリケーション部１００は、回転数Ｎｅ等の制御用データを算出して、その算出した制御用データに基づきエンジンを制御するための演算処理を行うオブジェクト（以下、エンジンアプリケーションソフトという）１１０と、車速ＳＰＤ等の制御用データを算出して、その算出した制御用データに基づきトランスミッションを制御するための演算処理を行うオブジェクト（以下、ＥＣＴアプリケーションソフトという）１２０と、エンジンのスロットル開度等の制御用データを算出して、その算出した制御用データに基づき車両を定速走行させるためのスロットル開度制御用演算処理を行うオブジェクト（以下、クルーズアプリケーションソフトという）１３０とを有している。そして、これらの各アプリケーションソフト１１０，１２０，１３０は、自分以外のアプリケーションソフトによって算出された制御用データも、自己の演算処理に用いる。つまり、各アプリケーションソフト１１０，１２０，１３０は、制御用データを互いに共有するようにしている。
【００７９】
共有メモリ部２１０は、当該第１マイコン６０に備えられたＲＡＭにおいて、アプリケーション部１００の各アプリケーションソフト１１０，１２０，１３０が制御対象を制御するために用いる全ての制御用データを一時格納するための記憶領域（記憶手段に相当し、以下、制御用データ記憶領域という）とは異なる特定の記憶領域として設定された共有メモリに、上記各アプリケーションソフト１１０，１２０，１３０間で共通使用される制御用データ、及び当該第１マイコン６０以外の第２マイコン６２や他のＥＣＵ４，６，８でも共通使用される制御用データ（以下、外部共有データという）を書き込み、また、上記共有メモリから制御用データを読み出して、他のオブジェクトに提供する。
【００８０】
また、上記共有メモリに格納される各データには、その種類を示す識別番号（以下、Handle番号と記す）が付与されており、各オブジェクトは、Handle番号を指定することにより、共有メモリから必要なデータを入手したり、共有メモリに新たなデータを書き込むことができるようになっている。
【００８１】
尚、図３では、ＥＣＴアプリケーションソフト１２０によって算出されると共に、Handle番号として“１”が付与された車速ＳＰＤのデータが、エンジンアプリケーションソフト１１０でも使用され、また、エンジンアプリケーションソフト１１０によって算出されると共に、Handle番号として“２”が付与された回転数Ｎｅのデータが、ＥＣＴアプリケーションソフト１２０でも使用されていることを例示している。そして、図３以降の各図及び以下の説明において、“Handle1 ”や“Handle2 ”とは、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番号（つまり、通信制御部４００から送られて来たパケット番号ＰＮの共通パケットデータに集約すべき制御用データの各Handle番号）と、その各Handle番号にそれぞれ対応する共通パケットデータサイズ及び共通パケットデータ位置とを、共通パケット情報として取得する。
【０１０５】
そして、共通パケットデータ部２３０は、上記取得した各Handle番号に対応する制御用データを共有メモリから取得して、その各制御用データを物理値変換部２２０にＬＳＢ変換させるための動作を行う。
例えば、通信制御部４００から共通パケットデータ部２３０へ送られたパケット番号ＰＮがＰＮ１であった場合には、共通パケットデータ部２３０は、図４の第１テーブルから、Handle1 ，Handle2 ，Handle3 ，…と、その各Handle番号にそれぞれ対応する共通パケットデータサイズ及び共通パケットデータ位置とを取得することとなる。
【０１０６】
そして、この例の場合、共通パケットデータ部２３０は、図７の［９］に示すように、まず、上記取得したHandle番号のうちの１つ（ここではHandle1 ）を、データ取得要求のメッセージと共に共有メモリ部２１０へ送る。
すると、共有メモリ部２１０は、図６の［２］，［５］と同様に、テーブル格納部５００にある第１テーブル（図４）を参照して、上記データ取得要求のメッセージと共に送られて来たHandle番号（Handle1 ）に対応する共有メモリアドレス（$FFFF0000 ）と共有メモリサイズ（２byte）とを、共有メモリ情報として取得し、更に、その取得した共有メモリ情報に基づき、共有メモリの$FFFF0000 番地から２バイト分のデータ（この例ではＳＰＤデータ）を読み出して、その読み出したデータを、図７の［１０］に示すように、共通パケットデータ部２３０へ戻り値として返す。
【０１０７】
そして、共通パケットデータ部２３０は、図７の［１１］に示すように、物理値変換部２２０に対して、共有メモリ部２１０から返されたデータ（Data）と、そのデータに対応するHandle番号（Handle1 ）とを含む物理値変換要求のメッセージを発行する。
【０１０８】
すると、物理値変換部２２０は、図７の［１２］に示すように、テーブル格納部５００にある第１テーブル（図４）を参照して、上記物理値変換要求のメッセージと共に送られて来たHandle番号（Handle1 ）に対応するＬＳＢ変換コールアドレスを取得する。そして、物理値変換部２２０は、図７の［１３］の処理にて、上記取得したＬＳＢ変換コールアドレスに格納されているプログラムを起動することにより、上記物理値変換要求のメッセージと共に送られて来たデータ（Data）に対してＬＳＢ変換を実施する。
【０１０９】
これにより、図９の３段目左側に示すように、物理値変換部２２０によって、Handle1 に対応したＳＰＤデータがＬＳＢ変換される（即ち、データ長が変換される）と共に、そのＬＳＢ変換後のデータ（以下、ＳＰＤ’データと記す）が、物理値変換部２２０の作業領域として割り当てられたＲＡＭの所定領域に、対応するHandle番号（Handle1 ）と共に格納される。
【０１１０】
その後、共通パケットデータ部２３０は、図７の［１４］に示すように、上記［８］の動作で取得したHandle番号のうちの次のHandle番号（ここではHandle2 ）を、データ取得要求のメッセージと共に共有メモリ部２１０へ送る。
すると、共有メモリ部２１０は、上述のHandle1 が送られて来た場合と同様に、テーブル格納部５００にある第１テーブル（図４）を参照して、Handle2 に対応する共有メモリアドレス（$FFFF0002 ）と共有メモリサイズ（２byte）とを、共有メモリ情報として取得し、更に、その取得した共有メモリ情報に基づき、共有メモリの$FFFF0002 番地から２バイト分のデータ（この例ではＮｅデータ）を読み出して、その読み出したデータを、図７の［１５］に示すように、共通パケットデータ部２３０へ戻り値として返す。
【０１１１】
そして、共通パケットデータ部２３０は、図７の［１６］に示す如く、上述した［１１］の場合と同様に、物理値変換部２２０に対して、共有メモリ部２１０から返されたデータ（Data）と、そのデータに対応するHandle番号（Handle2 ）とを含む物理値変換要求のメッセージを発行する。
【０１１２】
すると、物理値変換部２２０は、図７の［１７］及び［１８］に示す如く、上述した［１２］及び［１３］の場合と同様に、テーブル格納部５００にある第１テーブル（図４）を参照して、上記物理値変換要求のメッセージと共に送られて来たHandle番号（Handle2 ）に対応するＬＳＢ変換コールアドレスを取得し、上記物理値変換要求のメッセージと共に送られて来たデータ（Data）に対してＬＳＢ変換を実施する。
【０１１３】
これにより、図９の３段目右側に示すように、物理値変換部２２０によって、Handle2 に対応したＮｅデータがＬＳＢ変換されると共に、そのＬＳＢ変換後のデータ（以下、Ｎｅ’データと記す）が、物理値変換部２２０の作業領域として割り当てられたＲＡＭの所定領域に、対応するHandle番号（Handle2 ）と共に格納される。
【０１１４】
そして、図示はしていないが、通信制御部４００から共通パケットデータ部２３０へ送られたパケット番号ＰＮに対応する他のHandle番号の各々についても、図７の［９］〜［１３］及び［１４］〜［１８］と同じ処理動作が行われて、その各Handle番号の制御用データが、物理値変換部２２０によってＬＳＢ変換される。
【０１１５】
ここで、制御用データをＬＳＢ変換する理由について説明する。
図９の１段目及び２段目に示すように、エンジンアプリケーションソフト１１０、ＥＣＴアプリケーションソフト１２０といった第１マイコン６０内のアプリケーションソフトは、Ｎｅデータを２バイトのデータ長で扱い、制御量を演算している。
【０１１６】
これに対して、第１マイコン６０以外（第２マイコン６２やメータＥＣＵ６等）では、Ｎｅデータを１バイトのデータ長で扱うといったように、第１マイコン６０とその通信相手とで、扱うデータ長が異なる場合がある。つまり、前述したようにデータ長＝データ精度であり、各マイコンや各ＥＣＵ（電子制御ユニット）が、どの制御用データをどの様なデータ長で扱うかは、車両制御システムを設計する際に決められる。
【０１１７】
そこで、本実施形態では、共通パケットデータサイズと、そのデータサイズ（データ長）へのＬＳＢ変換プログラムの格納アドレス（ＬＳＢ変換コールアドレス）とを、第１テーブルにより定義し、その第１テーブルを参照することで、外部へ送信される制御用データのデータ長が、通信相手で採用されているデータ精度に応じたデータ長に変換されるようにしている。
【０１１８】
そして、本実施形態では、こうしたＬＳＢ変換動作を、アプリケーション部１００とは別に設けた物理値変換部２２０で行うようにしているため、制御対象を制御するアプリケーションソフト自身は、通信相手で採用されているデータ精度を全く意識する必要が無く、また例えば、通信相手がＮｅデータを１バイトではなく、２バイトで扱うように変更されたとしても、第１テーブルの共通パケットデータサイズとＬＳＢ変換コールアドレスとを変更するだけで済み、極めて簡単な修正作業で対応することができるのである。
図７に戻って、上述の手順により、通信制御部４００から共通パケットデータ部２３０へ送られたパケット番号ＰＮに対応する全てのHandle番号の制御用データが、物理値変換部２２０によってＬＳＢ変換されると、共通パケットデータ部２３０は、図７の［１９］の処理にて、物理値変換部２２０の上記作業領域にHandle番号と共に一時格納されているＬＳＢ変換後の各制御用データを、上記［８］の動作で第１テーブルから取得した各Handle番号に対応する共通パケットデータ位置及び共通パケットデータサイズに基づき直列に並べることにより、通信制御部４００から送られたパケット番号ＰＮの共通パケットデータを作成する。
【０１１９】
つまり、第１テーブルにおける各Handle番号に対応した共通パケットデータ位置と共通パケットデータサイズとにより、どのHandle番号の制御用データを、共通パケットデータのどの位置に、どの位のデータ長で配置するかが決められているからである。
【０１２０】
そして、この共通パケットデータ部２３０の処理により、図９の４段目に示すように、ＬＳＢ変換後の各制御用データを集めて直列に並べた共通パケットデータが、共通パケットデータ部２３０の作業領域として割り当てられたＲＡＭの所定領域に、対応するパケット番号（ＰＮ１）と共に格納される。
【０１２１】
例えば、図４に示すように、ＰＮ１に対応したHandle1 に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“０”と“２バイト”であり、また、ＰＮ１に対応したHandle2 に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“６”と“１バイト”であるため、図９の４段目に示すように、Handle1 のデータ（ＳＰＤ’データ）は、共通パケットデータの０バイト目の位置から２バイト分の領域に配置され、Handle2 のデータ（Ｎｅ’データ）は、共通パケットデータの６バイト目の位置から１バイト分の領域に配置されることとなる。
【０１２２】
そして、共通パケットデータ部２３０は、共通パケットデータの作成を終えると、図７の［２０］及び図８の［２０］に示すように、通信データ変換部２４０の上位層２４０ｕに対して、上記作成した共通パケットデータを通信対象との通信プロトコルに対応する通信データ列に変換させるために、送信要求のメッセージを発行する。また、この時、今回作成した共通パケットデータのパケット番号（この例ではＰＮ１）も、通信データ変換部２４０の上位層２４０ｕへ送られる。
【０１２３】
すると、上位層２４０ｕは、図８の［２１］に示すように、テーブル格納部５００にある第２テーブル（図５）を参照して、共通パケットデータ部２３０から送られて来たパケット番号ＰＮに対応する共通パケットデータメッセージ長と個別パケットデータメッセージ長とを、個別パケット情報として取得する。
【０１２４】
次に、上位層２４０ｕは、図８の［２２］の処理にて、共通パケットデータ部２３０の上記作業領域に一時格納されている共通パケットデータを、上記［２１］の動作で第２テーブルから取得した共通パケットデータメッセージ長と個別パケットデータメッセージ長とに基づき、個別パケットデータに変換する。
【０１２５】
例えば、パケット番号ＰＮがＰＮ１の場合、図５に示すように、ＰＮ１に対応する共通パケットデータメッセージ長（共通パケットデータの総データ長）は“１２バイト”であり、個別パケットデータメッセージ長（１度に送信可能な最大転送単位）は“８バイト”である。このため、上位層２４０ｕは、図９の５段目（上位層と記載された位置）に示すように、共通パケットデータ部２３０によって作成された１２バイトの共通パケットデータを、７バイトと５バイトとの２つのデータ列に分割すると共に、その分割した各データ列の先頭に、分割した際のデータ列の順序を示す１バイトのＦＣＩ（Flagment Control Infomation ）を付加することにより、２つの個別パケットデータを作成する。そして、上位層２４０ｕは、作成した各個別パケットデータを、当該上位層２４０ｕの作業領域として割り当てられたＲＡＭの所定領域に、対応するパケット番号（この例ではＰＮ１）と共に格納する。
【０１２６】
尚、第２テーブルから取得した共通パケットデータメッセージ長が、個別パケットデータメッセージ長以下である場合には、上位層２４０ｕは、共通パケットデータ部２３０によって作成された共通パケットデータを、そのまま個別パケットデータとして自己の作業領域に格納する。つまり、この場合には、共通パケットデータを分割してＦＣＩを付加する必要が無いためである。
【０１２７】
また例えば、最大転送単位が８バイト以外の通信プロトコルに変更した場合には、第２テーブルにおける個別パケットデータメッセージ長の項目に記憶させておく値を変更するだけで対応することができる。
そして、上位層２４０ｕは、個別パケットデータの作成を終了すると、図８の［２３］に示すように、下位層２４０ｄに対して、上記作成した個別パケットデータを通信対象との通信プロトコルに対応した通信データ列に変換させるために、送信要求のメッセージを発行する。また、この時、今回作成した個別パケットデータの元となった共通パケットデータのパケット番号も、下位層２４０ｄへ送られる。
【０１２８】
すると、下位層２４０ｄは、図８の［２４］に示すように、テーブル格納部５００にある第２テーブル（図５）を参照して、上位層２４０ｕから送られて来たパケット番号ＰＮに対応する通信方式及びヘッダ情報を、通信データ情報として取得する。
【０１２９】
そして、下位層２４０ｄは、図８の［２５］の処理にて、上位層２４０ｕの上記作業領域に一時格納されている各個別パケットデータを、上記［２４］の動作で第２テーブルから取得した通信方式及びヘッダ情報に基づき、その通信方式が示す通信プロトコルに対応した通信データ列に変換する。
【０１３０】
例えば、パケット番号ＰＮがＰＮ１の場合、図５に示すように、ＰＮ１に対応する通信方式は多重通信を示す“ＣＡＮ”であり、ヘッダ情報は“Arbitration=0x123 ”と“ML=08 ”である。尚、Arbitration は、データの優先順位を示し、データが衝突した場合の調停用データである。そして、“Arbitration=0x123 ”とは、Arbitration が１６進数表示で１２３であることを示している。また、MLは、通信データ列におけるデータフレーム部分のデータ長を示すデータであり、“ML=08 ”とは、そのデータ長が８バイトであることを示している。
【０１３１】
よって、この例の場合、下位層２４０ｄは、図９の６段目（下位層と記載された位置）に示すように、上位層２４０ｕによって作成された各個別パケットデータの先頭に、上記［２４］の動作で取得したヘッダ情報としてのArbitration とMLとを付加することにより、ＣＡＮに対応した通信データ列を夫々作成し、その作成した各通信データ列を、当該下位層２４０ｄの作業領域として割り当てられたＲＡＭの所定領域に格納する。
【０１３２】
尚、例えば、第２テーブルから取得した通信方式がシリアル通信を示す“ＳＣＩ”であった場合には、下位層２４０ｄは、上位層２４０ｕによって作成された個別パケットデータの先頭にヘッダ情報を付加すると共に、その個別パケットデータの最後尾にチェックサム用のデータも付加する。
【０１３３】
そして、下位層２４０ｄは、通信データ列の作成を終了すると、図８の［２６］に示すように、通信ドライバ部３００にあるＤＭＡ通信部３１０，シリアル通信部３２０，及び多重通信部３３０のうち、上記［２４］の動作で取得した通信方式に対応するオブジェクトに対して、送信要求のメッセージを発行する。
【０１３４】
すると、この下位層２４０ｄからのメッセージの発行先である通信ドライバ部３００内のオブジェクト（ＤＭＡ通信部３１０，シリアル通信部３２０，及び多重通信部３３０の何れか）は、下位層２４０ｄの上記作業領域に格納されている通信データ列を、自己の通信プロトコルに応じたボーレートや転送タイミングで、実際の通信データとして外部へ出力する。
【０１３５】
例えば、下位層２４０ｄは、上記［２４］の動作で第２テーブルから取得した通信方式がＣＡＮであった場合、通信ドライバ部３００の多重通信部３３０に対して、送信要求のメッセージを発行する。
すると、多重通信部３３０は、下位層２４０ｄによって作成された通信データ列を通信ＩＣ７０へ出力すると共に、その通信ＩＣ７０を制御して、多重通信線１０へ実際の通信データを送出させる。尚、この時、通信ＩＣ７０は、図９の８段目（最下段）に示すように、下位層２４０ｄによって作成された通信データ列の先頭に、通信データ１フレームの始まりを示すＳＯＦのデータを付加すると共に、その通信データ列の最後尾に、誤りチェック用のＣＲＣのデータと、通信相手からの受信応答を受けるためのＡｃｋのデータと、通信データ１フレームの終わりを示すＥＯＦのデータとを順次付加し、その各データを付加したデータ列を実際の通信データとして多重通信線１０へ送出する。そして、上述した一連の処理により、第１マイコン６０内のアプリケーション部１００で求められた制御用データが、多重通信線１０に対応した通信プロトコルのデータ列に変換されて、エアコンＥＣＵ４及びメータＥＣＵ６に送信される。
【０１３６】
ところで、上記説明では、主に、アプリケーション部１００によって求められたＳＰＤデータやＮｅデータを多重通信（ＣＡＮ）の通信プロトコルで送信する場合を例に挙げて述べたが、次に、アプリケーション部１００によって求められたＳＰＤデータやＮｅデータを、姿勢制御ＥＣＵ８へシリアル通信によって送信する場合について、図１０を用い具体的に説明する。尚、図１０は、共有メモリ内の外部共有データが、実際に送信される通信データ列に変換される様子を、シリアル通信の場合を例にして示した模式図である。
【０１３７】
図１０において、共有メモリ部２１０により共有メモリに格納されたＳＰＤデータとＮｅデータは、前述した図９の場合と共通である。そして、その共有メモリ内のＳＰＤデータとＮｅデータは、前述した図７の［７］〜［１９］及び図９と同じ要領で、図４の第１テーブルを基にＬＳＢ変換され、そのＬＳＢ変換後のＳＰＤ’データやＮｅ’データから、共通パケットデータが作成される。
【０１３８】
詳しくは、姿勢制御ＥＣＵ８へデータ送信する場合、通信制御部４００は、図７の［７］にて、共通パケットデータ部２３０へ、送信要求のメッセージと共にＰＮ２を送る。すると、図４の第１テーブルにてＰＮ２に対応するHandle1 のＳＰＤデータとHandle2 のＮｅデータとは、前述した図７の［８］〜［１８］と同じ手順により、夫々ＬＳＢ変換される（図１０の３段目参照）。
【０１３９】
そして、この場合には、図４の第１テーブルにて、ＰＮ２に対応したHandle１に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“０”と“２バイト”であり、また、ＰＮ２に対応したHandle2 に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“４”と“１バイト”である。よって、図７の［１９］の処理では、図１０の４段目に示すように、Handle1 に対応するＬＳＢ変換後のＳＰＤ’データが、共通パケットデータの０バイト目の位置から２バイト分の領域に配置され、また、Handle2 に対応するＬＳＢ変換後のＮｅ’データが、共通パケットデータの４バイト目の位置から１バイト分の領域に配置されることとなり、このようにして共通パケットデータが作成される。
【０１４０】
次に、通信データ変換部２４０により、前述した図８の［２１］〜［２５］及び図９と同じ要領で、図５の第２テーブルを基に、シリアル通信に対応した通信データ列へのデータ変換が行われる。
但し、このシリアル通信の場合、図５の第２テーブルにおいて、ＰＮ２に対応する共通パケットデータメッセージ長（１２バイト）は、同ＰＮ２に対応する個別パケットデータメッセージ長（１４バイト）よりも短いため、図１０の５段目（上位層と記載された位置）に示すように、通信データ変換部２４０の上位層２４０ｕは、図８の［２２］の処理にて、共通パケットデータ部２３０により作成された共通パケットデータを、そのまま個別パケットデータとして自己の作業領域に格納する。
【０１４１】
そして、図５の第２テーブルにおいて、ＰＮ２に対応する通信方式はシリアル通信を示す“ＳＣＩ”であり、ヘッダ情報は“ID=1”と“ML=16 ”であるため、図１０の６段目（下位層と記載された位置）に示すように、通信データ変換部２４０の下位層２４０ｄは、図８の［２５］の処理にて、上位層２４０ｕの作業領域に格納された個別パケットデータの先頭に、ヘッダ情報として上記IDとMLとを付加すると共に、その個別パケットデータの最後尾にチェックサム用のデータＳＵＭを付加することにより、シリアル通信（ＳＣＩ）に準じた通信データ列を作成する。尚、IDは、シリアルデータの送信元である第１マイコン６０の識別コードである。
【０１４２】
その後、通信データ変換部２４０の下位層２４０ｄは、図５の第２テーブルにてＰＮ２に対応する通信方式がＳＣＩであるため、図８の［２６］の動作で、通信ドライバ部３００のシリアル通信部３２０に対して、送信要求のメッセージを発行する。
【０１４３】
すると、シリアル通信部３２０は、上記下位層２４０ｄによって作成された通信データ列を、シリアル通信の通信プロトコルに応じたボーレートや転送タイミングで、シリアル通信線１１へ順次出力する。
そして、こうした一連の処理により、第１マイコン６０内のアプリケーション部１００で求められた制御用データが、シリアル通信線１１に対応した通信プロトコルの通信データ列に変換されて、姿勢制御ＥＣＵ８へ送信されることとなる。
【０１４４】
このように、多重通信の場合（図９）とシリアル通信の場合（図１０）とを比較すると、通信変換部２００の各部２１０〜２４０で実施される処理自体には相違が無く、異なっているのは、ヘッダ情報やＳＰＤデータ及びＮｅデータ等の外部共有データの通信データ列における配置位置だけであり、その相違部分は、全て第１テーブル（図４）と第２テーブル（図５）とによって定義されている。よって、この第１テーブル及び第２テーブルで定義する内容を組み換えるだけで、通信プロトコルや外部共有データの通信データ列における配置位置の違いに対応することができる。
【０１４５】
以上、第１マイコン６０から外部へ制御用データを送信する場合の通信データ列への変換処理について説明したが、第１マイコン６０が外部から制御用データを受信する場合には、通信変換部２００の各部２１０〜２４０が、上述した処理とは逆の処理を行う。
【０１４６】
そこで次に、第１マイコン６０が外部から制御用データを受信する場合に行われる処理について、多重通信の場合を例に挙げて、図１１〜図１４を用い説明する。尚、図１１〜図１３は、受信した通信データ列から制御用データへの変換処理動作を示すメッセージシーケンスチャートであり、上下方向の線や横方向の矢印等の意味は図６〜図８と同様である。また、図１４は、外部からの通信データ列が、第１マイコン６０のアプリケーション部１００で制御演算に使用される制御用データに変換される様子を、多重通信の場合を例にして示した模式図である。
【０１４７】
まず、エアコンＥＣＵ４或いはメータＥＣＵ６から多重通信線１０を介して通信データが送られて来ると、通信ドライバ部３００の多重通信部３３０が、通信ＩＣ７０から受信データ（即ち、通信ＩＣ７０にて受信された通信データ）を１フレーム分ずつ取得すると共に、図１１の［３０］に示す如く、通信データ変換部２４０の下位層２４０ｄに対して、受信通知のメッセージを発行する。
【０１４８】
尚、通信ＩＣ７０は、図１４の８段目（最下段）に示すように、多重通信線１０を介して送られて来た通信データの各フレームから、ＳＯＦ，ＣＲＣ，Ａｃｋ，及びＥＯＦの各データを削除して、ヘッダ情報（Arbitration 及びML）とデータフレーム部分（Ｄａｔａ）とからなる通信データ列を、１フレーム分の受信データとして第１マイコン６０へ出力する。また、以下の説明では、ヘッダ情報としてのArbitration とMLとが、夫々、0x124 と08である通信データが、多重通信線１０を介して送られて来たものとする。
【０１４９】
そして、通信ドライバ部３００が受信通知のメッセージを発行すると、通信データ変換部２４０の下位層２４０ｄは、図１１の［３１］に示すように、テーブル格納部５００にある第２テーブル（図５）を参照して、通信ドライバ部３００（この例では多重通信部３３０）により取得された受信データのヘッダ情報に対応した通信方式及びパケット番号を、通信データ情報として取得する。
【０１５０】
そして次に、下位層２４０ｄは、図１１の［３２］の処理にて、通信ドライバ部３００により取得された１フレーム分の各受信データを、上記［３１］の動作で第２テーブルから取得した通信方式に基づき、個別パケットデータに変換する。
【０１５１】
例えば、通信ドライバ部３００により取得された受信データのArbitration が0x124 であり、MLが08であった場合、上記［３１］の動作では、図５の第２テーブルから、通信方式としてＣＡＮが取得されると共に、パケット番号としてＰＮ３が取得されることとなる。そして、この場合、下位層２４０ｄは、図１４の６段目（下位層と記載された位置）及び５段目（上位層と記載された位置）に示すように、通信ドライバ部３００により取得された１フレーム分の各受信データから、データフレーム部分以外の情報（この例ではヘッダ情報）を削除して、個別パケットデータを作成する。
【０１５２】
尚、下位層２４０ｄは、第２テーブルから取得した通信方式がＳＣＩであった場合には、通信ドライバ部３００により取得された１フレーム分の受信データから、ヘッダ情報とチェックサム用のデータＳＵＭを削除して、個別パケットデータを作成する（図１０の６段目（下位層と記載された位置）及び５段目（上位層と記載された位置）参照）。
【０１５３】
その後、下位層２４０ｄは、図１１の［３３］に示すように、上位層２４０ｕに対して、受信通知のメッセージを発行する。また、この時、上記［３１］の動作で第２テーブルから取得したパケット番号（この例ではＰＮ３）も、上位層２４０ｕへ送られる。
【０１５４】
すると、上位層２４０ｕは、図１１の［３４］に示すように、テーブル格納部５００にある第２テーブル（図５）を参照して、下位層２４０ｄから送られて来たＰＮ３に対応する共通パケットデータメッセージ長と個別パケットデータメッセージ長とを、個別パケット情報として取得する。
【０１５５】
そして、上位層２４０ｕは、図１１の［３５］の処理にて、下位層２４０ｄによって作成された個別パケットデータから、上記［３４］の動作で取得した個別パケット情報に基づき、ＰＮ３の共通パケットデータを作成する。
具体的には、図５に示すように、ＰＮ３に対応する共通パケットデータメッセージ長は“１２バイト”であり、個別パケットデータメッセージ長は“８バイト”であるため、上位層２４０ｕは、図１４の５段目（上位層と記載された位置）及び４段目に示すように、下位層２４０ｄによって作成された各個別パケットデータからＦＣＩを削除すると共に、そのＦＣＩを削除した各個別パケットデータを、それに含まれていたＦＣＩが示す順番に並べて結合することにより、共通パケットデータを作成する。
【０１５６】
そして、上位層２４０ｕは、共通パケットデータの作成を終了すると、図１１の［３６］及び図１２の［３６］に示すように、共通パケットデータ部２３０に対して、受信通知のメッセージを発行する。また、この時、下位層２４０ｄから送られて来たパケット番号（即ち、今回作成した共通パケットデータのパケット番号）も、共通パケットデータ部２３０へ送られる。
【０１５７】
尚、上位層２４０ｕは、上記［３４］の動作で第２テーブルから取得した共通パケットデータメッセージ長が、個別パケットデータメッセージ長以下であった場合（例えば、シリアル通信の場合）には、下位層２４０ｄによって作成された個別パケットデータを、そのまま共通パケットデータとして、共通パケットデータ部２３０に対し受信通知のメッセージを発行する。つまり、この場合には、下位層２４０ｄによって個別パケットデータが１つだけ作成され、その個別パケットデータが、そのまま共通パケットデータとなる（図１０の５段目（上位層と記載された位置）及び４段目参照）。
【０１５８】
次に、上位層２４０ｕが共通パケットデータ部２３０に対して受信通知のメッセージを発行すると、共通パケットデータ部２３０は、図１２の［３７］に示すように、テーブル格納部５００にある第１テーブル（図４）を参照して、上位層２４０ｕから送られて来たパケット番号に対応する各Handle番号（つまり、上位層２４０ｕによって作成された共通パケットデータに集約されている制御用データの各Handle番号）と、その各Handle番号にそれぞれ対応する共通パケットデータサイズ及び共通パケットデータ位置とを、共通パケット情報として取得する。
【０１５９】
そして、共通パケットデータ部２３０は、図１２の［３８］の処理にて、上位層２４０ｕによって作成された共通パケットデータを、上記［３７］の動作で第１テーブルから取得した各Handle番号に対応する共通パケットデータ位置及び共通パケットデータサイズに基づいて、個々の制御用データに分解する。
【０１６０】
つまり、第１テーブルにおける各Handle番号に対応した共通パケットデータ位置と共通パケットデータサイズとにより、どのHandle番号の制御用データが、共通パケットデータのどの位置に、どの位のデータ長で配置されているかが分かるからである。
【０１６１】
例えば、上位層２４０ｕから共通パケットデータ部２３０へパケット番号としてＰＮ３が送られた場合、図４に示すように、ＰＮ３に対応したHandle20に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“０”と“２バイト”であり、また、ＰＮ３に対応したHandle21に対応する共通パケットデータ位置と共通パケットデータサイズは、夫々、“４”と“１バイト”である。よって、この場合には、図１４の４段目及び３段目に示すように、共通パケットデータの０バイト目の位置から２バイト分の領域に配置されたデータが、Handle20に対応するＬＳＢ変換前の制御用データ（本実施形態では、ＬＳＢ変換前の外気温ＴＡＭのデータであり、以下、ＴＡＭ’データという）として、共通パケットデータ部２３０の作業領域に格納され、また、共通パケットデータの４バイト目の位置から１バイト分の領域に配置されたデータが、Handle21に対応するＬＳＢ変換前の制御用データ（本実施形態では、ＬＳＢ変換前のエアコン制御データＡＣであり、以下、ＡＣ’データという）として、共通パケットデータ部２３０の作業領域に格納されることとなる。
【０１６２】
そして、共通パケットデータ部２３０は、共通パケットデータの分解を終えると、その分解によって得た各制御用データを物理値変換部２２０にＬＳＢ変換させると共に、そのＬＳＢ変換後の制御用データを、共有メモリ部２１０によって共有メモリへ格納させるための動作を行う。
【０１６３】
具体的には、この例の場合、共通パケットデータ部２３０は、まず、図１２の［３９］に示すように、物理値変換部２２０に対して、共通パケットデータの分解によって得た制御用データのうちの１つ（Data' ）と、その制御用データに対応するHandle番号（ここではHandle20）とを含む物理値変換要求のメッセージを発行する。
【０１６４】
すると、物理値変換部２２０は、図１２の［４０］に示すように、テーブル格納部５００にある第１テーブル（図４）を参照して、上記物理値変換要求のメッセージと共に送られて来たHandle番号（Handle20）に対応するＬＳＢ変換コールアドレスを取得する。そして、物理値変換部２２０は、図１２の［４１］の処理にて、上記取得したＬＳＢ変換コールアドレスに格納されているプログラムを起動することにより、上記物理値変換要求のメッセージと共に送られて来たHandle20のデータ（Data' ）に対してＬＳＢ変換を実施する。
【０１６５】
これにより、図１４の４段目及び３段目に示すように、Handle20に対応したＴＡＭ’データがＬＳＢ変換される。尚、図１４において、ＴＡＭは、Handle20に対応したＬＳＢ変換後の外気温ＴＡＭのデータであり、以下、このデータをＴＡＭデータという。
【０１６６】
その後、共通パケットデータ部２３０は、図１２の［４２］に示すように、共有メモリ部２１０に対して、物理値変換部２２０により今回ＬＳＢ変換された制御用データ（Data）と、その制御用データに対応するHandle番号（ここではHandle20）とを含むデータ更新要求のメッセージを発行する。
【０１６７】
すると、共有メモリ部２１０は、テーブル格納部５００にある第１テーブル（図４）を参照して、上記データ更新要求のメッセージと共に送られて来たHandle番号（Handle20）に対応する共有メモリアドレス（$FFFF0010 ）と共有メモリサイズ（２byte）とを取得し、更に、その取得した共有メモリアドレス及び共有メモリサイズに基づき、共有メモリの$FFFF0010 番地から２バイト分の領域に、上記データ更新要求のメッセージと共に送られて来たデータ（Data）を書き込む。これにより、図１４の３段目及び２段目に示すように、Handle20に対応したＬＳＢ変換後のＴＡＭデータが、共有メモリに更新して書き込まれることとなる。
【０１６８】
次に、共通パケットデータ部２３０は、図１２の［４３］に示すように、物理値変換部２２０に対して、共通パケットデータの分解によって得た制御用データのうちの次の制御用データ（Data' ）と、その制御用データに対応するHandle番号（ここではHandle21）とを含む物理値変換要求のメッセージを発行する。
【０１６９】
すると、物理値変換部２２０は、上述のHandle20が送られて来た場合と同様に、図１２の［４４］に示す如く、テーブル格納部５００にある第１テーブル（図４）を参照して、Handle21に対応するＬＳＢ変換コールアドレスを取得し、図１２の［４５］の処理にて、上記取得したＬＳＢ変換コールアドレスに格納されているプログラムを起動することにより、物理値変換要求のメッセージと共に送られて来たHandle21のデータ（Data' ）に対してＬＳＢ変換を実施する。
【０１７０】
これにより、図１４の４段目及び３段目に示すように、Handle21に対応したＡＣ’データがＬＳＢ変換される。尚、図１４において、ＡＣは、Handle21に対応したＬＳＢ変換後のエアコン制御データＡＣであり、以下、このデータをＡＣデータという。
【０１７１】
その後、共通パケットデータ部２３０は、図１２の［４６］に示す如く、上述した［４２］の場合と同様に、共有メモリ部２１０に対して、物理値変換部２２０により今回ＬＳＢ変換された制御用データ（Data）と、その制御用データに対応するHandle番号（ここではHandle21）とを含むデータ更新要求のメッセージを発行する。
【０１７２】
すると、共有メモリ部２１０は、上述のHandle20が送られて来た場合と同様に、テーブル格納部５００にある第１テーブル（図４）を参照して、Handle21に対応する共有メモリアドレス（$FFFF0012 ）と共有メモリサイズ（１byte）とを取得すると共に、その取得した共有メモリアドレス及び共有メモリサイズに基づき、共有メモリの$FFFF0012 番地から１バイト分の領域に、上記データ更新要求のメッセージと共に送られて来たデータ（Data）を書き込む。これにより、図１４の３段目及び２段目に示すように、Handle21に対応したＬＳＢ変換後のＡＣデータが、共有メモリに更新して書き込まれることとなる。
【０１７３】
そして、図示はしていないが、上記［３８］の処理で共通パケットデータから分解された他の制御用データの各々についても、図１２の［３９］〜［４２］及び［４３］〜［４６］と同じ処理が行われて、その各制御用データがＬＳＢ変換されると共に、そのＬＳＢ変換後の制御用データが共有メモリに更新して書き込まれる。
【０１７４】
尚、外部から送信されて来た制御用データをＬＳＢ変換して共有メモリに書き込むようにしているのは、第１マイコン６０のアプリケーション部１００で求めた制御用データを外部へ送信する場合の前述した理由と同じであり、外部から送信されて来た制御用データのデータ長を、当該第１マイコン６０のアプリケーション部１００で採用されているデータ精度に応じたデータ長に変換するためである。
【０１７５】
一方、このようにして共有メモリに書き込まれた制御用データを、アプリケーション部１００（詳しくは、アプリケーション部１００の各アプリケーションソフト）が制御用演算処理に使用する場合には、アプリケーション部１００と共有メモリ部２１０とが、図１３に示すように動作する。尚、図１３は、アプリケーション部１００のエンジンアプリケーションソフト１１０が、エアコンＥＣＵ４から取得したＴＡＭデータを演算処理に使用する場合を例示している。
【０１７６】
例えば、アプリケーション部１００にあるエンジンアプリケーションソフト１１０にて、共有メモリから外部共有データの１つであるＴＡＭデータ（外気温ＴＡＭのデータ）を読み出す処理ステップになると、図１３の［４７］に示すように、アプリケーション部１００のエンジンアプリケーションソフト１１０は、共有メモリ部２１０に対してデータ読出要求のメッセージを発行する。そして、この時、ＴＡＭデータのHandle番号（この例ではHandle20）と、エンジンアプリケーションソフト１１０でのＴＡＭデータの格納アドレス（即ち、エンジンアプリケーションソフト１１０が制御用の演算処理時にＴＡＭデータの書き込み及び読み出しを行う制御用データ記憶領域のアドレスであって、この例では＆ＴＡＭ）との各情報も、共有メモリ部２１０へ送られる。
【０１７７】
尚、データ読出要求のメッセージを発行する処理を、Ｃ言語でプログラミングした場合、ＴＡＭデータを共有メモリから読み出すためのメッセージの発行命令は、次のようになる。
Read（Handle20，＆ＴＡＭ）
この命令の意味は、ＴＡＭデータのHandle番号（Handle20）に対応するデータを読み出して、そのデータを＆ＴＡＭに記憶する、ということである。
【０１７８】
また、アプリケーション部１００の各アプリケーションソフト１１０，１２０，１３０が、共有メモリからＴＡＭデータ以外のデータを読み出す場合には、上記命令のうち、“Handle20”が、読み出すべきデータのHandle番号となり、＆ＴＡＭが、そのアプリケーションソフト用に設けられた制御用データ記憶領域のうちで、読み出すべきデータを格納するために設定された記憶領域のアドレスとなる。
【０１７９】
そして、共有メモリ部２１０は、アプリケーション部１００（エンジンアプリケーションソフト１１０）からの上記メッセージを受けると、図１３の［４８］に示すように、テーブル格納部５００にある第１テーブル（図４）を参照して、上記メッセージと共に送られて来たHandle番号（Handle20）に対応する共有メモリアドレスと共有メモリサイズとを、共有メモリ情報として取得する。
【０１８０】
すると、共有メモリ部２１０は、上記取得した共有メモリ情報に基づき、ＴＡＭデータは共有メモリにて$FFFF0010 番地を先頭にした２バイト分の領域に格納されていることを認知し、図１３の［４９］の処理にて、共有メモリの$FFFF0010 番地から２バイト分の領域に格納されているＴＡＭデータを、エンジンアプリケーションソフト１１０でのＴＡＭデータの格納アドレス（＆ＴＡＭ）にコピーする。
【０１８１】
そして、このコピーの動作により、図１４の２段目と１段目との間に示した上向き矢印の如く、共有メモリ内のＴＡＭデータがエンジンアプリケーションソフト１１０へ提供されることとなる。尚、図１３の［４９］では、このコピーの動作を「共有メモリのデータを通知」と記載している。
【０１８２】
また、図示はしていないが、共有メモリ内のＴＡＭデータ以外の制御用データも、図１３と同じ要領でアプリケーション部１００の各アプリケーションソフトに提供される。
例えば、アプリケーション部１００のエンジンアプリケーションソフト１１０が、ＥＣＴアプリケーションソフト１２０によって算出されたＳＰＤデータを共有メモリから読み出す場合や、ＥＣＴアプリケーションソフト１２０が、エンジンアプリケーションソフト１１０によって算出されたＮｅデータを共有メモリから読み出す場合にも、図１３と同じ処理が行われる。
【０１８３】
また更に、上記説明では、多重通信線１０を介して送信されて来た通信データを受信する場合について述べたが、姿勢制御ＥＣＵ８からシリアル通信線１１を介して送信されて来た通信データや、第２マイコン６２から通信線６８を介して送信されて来た通信データを受信する場合にも、図１１〜図１３と同様の変換処理動作が行われる。
【０１８４】
尚、本実施形態では、第１マイコン６０のＲＯＭに記憶された各プログラムのうち、アプリケーション部１００の各アプリケーションソフト１１０〜１３０が、アプリケーションプログラムに相当し、通信変換部２００が、データ変換用プログラムに相当し、通信ドライバ部３００の各通信部３１０，３２０，３３０が、通信ドライバ用プログラムに相当している。
【０１８５】
そして、データ送信時においては、共通パケットデータ部２３０が、共通パケットデータ作成用プログラムモジュールに相当し、通信データ変換部２４０が、通信データ変換用プログラムモジュールに相当し、物理値変換部２２０が、請求項４の物理値変換用プログラムモジュールに相当する。
【０１８６】
また、データ受信時においては、通信データ変換部２４０が、第１のプログラムモジュールに相当し、共通パケットデータ部２３０が、第２のプログラムモジュールに相当し、物理値変換部２２０が、請求項８の物理値変換用プログラムモジュールに相当する。
【０１８７】
また更に、ＲＯＭ内のテーブル格納部５００において、図４の第１テーブルを記憶した領域が、共通パケットデータ情報記憶手段に相当し、図５の第２テーブルを記憶した領域が、変換情報記憶手段に相当している。
そして、上記第１テーブルによって定義される「共有メモリアドレス」と「共有メモリサイズ」とが、制御用データの格納先情報に相当し、上記第１テーブルによって定義される「共通パケットデータサイズ」と「共通パケットデータ位置」とが、配置位置情報に相当している。
【０１８８】
また、上記第２テーブルによって定義される「通信方式」と「共通パケットデータメッセージ長」と「個別パケットデータメッセージ長」と「ヘッダ情報」とが、変換情報に相当している。
以上のように本実施形態の第１マイコン６０では、アプリケーション部１００（アプリケーションソフト１１０〜１３０）とは別の、独立した通信変換部２００と通信ドライバ部３００とにより、通信対象へ送信すべき制御用データを通信プロトコルに対応した通信データ列に変換する処理、及びその通信データ列を上記通信プロトコルに従い通信対象へ送信する処理と、通信対象から送信されて来る通信データ列を通信プロトコルに従い受信して取得する処理、及びその取得された通信データ列から通信プロトコルに基づき制御用データを抽出して、その制御用データを共有メモリに書き込む処理とを、行うようにしている。
【０１８９】
よって、通信プロトコルが変わったり、システム構成の変更に伴い、通信対象と送受信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わったとしても、アプリケーション部１００を修正する必要が無い。
【０１９０】
そして特に、本実施形態の第１マイコン６０では、通信変換部２００が、共有メモリ部２１０と物理値変換部２２０と共通パケットデータ部２３０と通信データ変換部２４０とに分割されている。そして、共通パケットデータ部２３０は、テーブル格納部５００の第１テーブルで定義された各情報に基づいて、送信すべき制御用データの抽出と共通パケットデータの作成とを行うと共に、送信されて来た制御用データからなる共通パケットデータの分解と分解した各制御用データの共有メモリへの書き込みとを行うようにしている。また、通信データ変換部２４０は、テーブル格納部５００の第２テーブルで定義された各情報に基づいて、共有パケットデータの通信プロトコルに対応した通信データ列への変換と、受信した通信データ列（通信プロトコルに依存した受信データ列）の共通パケットデータへの変換とを行うようにしている。
【０１９１】
このため、システム構成の変更に伴い、通信対象と送受信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わった場合には、アプリケーション部１００はもちろんのこと、各階層のプログラムを一切変更せずに、第１テーブルで定義しておく各情報を変更するだけで対応することができる。また、通信プロトコルが変わった場合には、その通信プロトコルに応じて、通信ドライバ部３００を変更すると共に、第２テーブルで定義しておく各情報を変更するだけで対応することができる。
【０１９２】
また、本実施形態の第１マイコン６０では、通信対象との間で制御用データのデータ長を合わせるためのＬＳＢ変換処理を、アプリケーション部１００とは別に設けた物理値変換部２２０で行うようにしているため、アプリケーション部１００の各アプリケーションソフト１１０〜１３０は、通信対象で採用されているデータ長を全く意識する必要が無く、各アプリケーションソフト１１０〜１３０と通信対象との独立性を確保することができる。
【０１９３】
また更に、本実施形態の第１マイコン６０では、各アプリケーションソフト１１０〜１３０間における制御用データの共有を、別途設けられた共有メモリを介して行うようにしているため、例えば、制御対象の変更等により、何れかのアプリケーションソフトを違うものに変更しても、他のアプリケーションソフトには全く影響が無い。つまり、各アプリケーションソフト１１０〜１３０を完全に分離させることができ、アプリケーションソフトの入れ替えや、他のシステム構成への転用が非常に容易となる。
一方また、本実施形態の第１マイコン６０では、データ送信時において、複数のアプリケーションソフト１１０〜１３０で夫々算出された各制御用データを結合することにより、送信対象の共通パケットデータを作成するようにしているため、複数のアプリケーションソフトに関連した多種多彩な制御用データを、１度の通信で通信対象へ送信することができ、非常に効率的なデータ通信が可能となる。
【０１９４】
以上、本発明の一実施形態について説明したが、本発明は、前述した実施形態に限定されるものではなく、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態の第１マイコン６０では、共通パケットデータ部２３０の処理が、図４の第１テーブルで定義された各情報に依存し、通信データ変換部２４０の処理が、図５の第２テーブルで定義された各情報に依存するものであったが、共通パケットデータ部２３０と通信データ変換部２４０との各処理を、第１テーブル及び第２テーブルを参照しない固定処理にしても良い。
【０１９５】
そして、このようにした場合、若干効果が劣るものの、例えば、通信対象と送受信すべき制御用データの種類やデータ長、或いは通信データ列における各制御用データの並びが変わった場合には、共通パケットデータ部２３０を修正するだけで済む。また、通信プロトコルが変わった場合には、通信データ変換部２４０と通信ドライバ部３００だけを修正するだけで済む。つまり、通信変換部２００の部分的な修正で対応することができる。
【０１９６】
一方、上記実施形態では、第１マイコン６０が、通信線６８を介した第２マイコン６２とのＤＭＡ通信と、シリアル通信線１１を介した姿勢制御ＥＣＵ８とのシリアル通信と、多重通信線１０を介したエアコンＥＣＵ４及びメータＥＣＵ６との多重通信とを行うものであったため、通信ドライバ部３００に、ＤＭＡ通信部３１０とシリアル通信部３２０と多重通信部３３０との、３種類の通信プロトコルに夫々対応した各通信ドライバ用プログラムを組み込んだ。
【０１９７】
これに対して、例えば、第１マイコン６０がシリアル通信だけを行うのであれば、通信ドライバ部３００をシリアル通信部３２０だけで構成すると共に、第１及び第２テーブルで定義する情報を、通信対象とのシリアル通信に対応した情報だけに書き換えれば良い。
【０１９８】
つまり、通信ドライバ部３００には、実際に使用される通信プロトコルに対応した通信ドライバ用プログラムを組み込み、また、第１テーブルで定義する各情報を、通信対象と送受信すべき制御用データの種類，データ長、及び通信データ列における並びに応じて設定すると共に、第２テーブルで定義する各情報を、実際に使用される通信プロトコルに応じて設定すれば、アプリケーション部１００はもちろんのこと、図３における通信ドライバ部３３０以外の各階層のプログラムモジュール（オブジェクト）を全く変更せずに、様々なシステム構成及び通信プロトコルのデータ通信に対応することができる。
【図面の簡単な説明】
【図１】  実施形態の車両制御システムの構成を表す構成図である。
【図２】  図１の車両制御システムを構成するエンジンＥＣＵの内部構成を表すブロック図である。
【図３】  エンジンＥＣＵに設けられた第１マイコン内の通信モデルを仮想的に示した概念図である。
【図４】  テーブル格納部に格納された第１テーブルを説明する説明図である。
【図５】  テーブル格納部に格納された第２テーブルを説明する説明図である。
【図６】  アプリケーション部によって求められた制御用データを共有メモリに格納する処理動作を示すメッセージシーケンスチャートである。
【図７】  共有メモリに格納された制御用データから共通パケットデータを生成する処理動作を示すメッセージシーケンスチャートである。
【図８】  図７の処理動作で生成された共通パケットデータを、通信データ列に変換する処理動作を示すメッセージシーケンスチャートである。
【図９】  共有メモリ内の外部共有データが、実際に送信される通信データ列に変換される様子を、多重通信の場合を例にして示した模式図である。
【図１０】  共有メモリ内の外部共有データが、実際に送信される通信データ列に変換される様子を、シリアル通信の場合を例にして示した模式図である。
【図１１】  受信データから共通パケットデータを生成する処理動作を示すメッセージシーケンスチャートである。
【図１２】  図１１の処理動作で生成された共通パケットデータから、制御用データを抽出して共有メモリに格納する処理動作を示すメッセージシーケンスチャートである。
【図１３】  アプリケーション部が共有メモリ内の制御用データを制御演算に使用する場合の処理動作を示すメッセージシーケンスチャートである。
【図１４】  外部からの通信データ列が、第１マイコンのアプリケーション部で制御演算に使用される制御用データに変換される様子を、多重通信の場合を例にして示した模式図である。
【符号の説明】
１…車両制御システム    ２…エンジンＥＣＵ    ４…エアコンＥＣＵ
６…メータＥＣＵ    ８…姿勢制御ＥＣＵ    １０…多重通信線
１１…シリアル通信線    ６０…第１マイコン    ６２…第２マイコン
６４…入力回路    ６６…出力回路    ６８…通信線    ７０…通信ＩＣ
１００…アプリケーション部    １１０…エンジンアプリケーションソフト
１２０…ＥＣＴアプリケーションソフト
１３０…クルーズアプリケーションソフト    ２００…通信変換部
２１０…共有メモリ部    ２２０…物理値変換部
２３０…共通パケットデータ部    ２４０…通信データ変換部
２４０ｕ…上位層    ２４０ｄ…下位層    ３００…通信ドライバ部
３１０…ＤＭＡ通信部    ３２０…シリアル通信部    ３３０…多重通信部
４００…通信制御部    ５００…テーブル格納部
【図１】
0003692820.tif 000002
【図２】
0003692820.tif 000003
【図３】
0003692820.tif 000004
【図４】
0003692820.tif 000005
【図５】
0003692820.tif 000006
【図６】
0003692820.tif 000007
【図７】
0003692820.tif 000008
【図８】
0003692820.tif 000009
【図９】
0003692820.tif 000010
【図１０】
0003692820.tif 000011
【図１１】
0003692820.tif 000012
【図１２】
0003692820.tif 000013
【図１３】
0003692820.tif 000014
【図１４】
0003692820.tif 000015