(57)【特許請求の範囲】
【請求項１】
第１の制御プログラムに従って、自動車に設けられた第１の制御対象を制御する第１の制御手段と、
第２の制御プログラムに従って、前記自動車に設けられた第２の制御対象を制御する第２の制御手段とを備え、
前記両制御手段のうちの少なくとも一方の制御手段が、他方の制御手段によって求められた所定の制御用データを、前記両制御手段で共有する共有データとして、自己の制御対象を制御するために用いると共に、
前記両制御手段のうちで前記共有データを求めて提供する方の制御手段から、前記共有データを提供される方の制御手段への前記共有データの転送は、前記各制御手段が各自の制御対象を制御するために用いる全ての制御用データを格納するための記憶手段とは別に設けられた共有メモリを介して行うように構成されている自動車用制御装置であって、
前記第１の制御手段と前記第２の制御手段とは、２つのマイクロコンピュータの各々からなると共に、
前記共有メモリは、前記第１の制御手段側と前記第２の制御手段側との各々に設けられた同一アドレス空間を有する２つのメモリからなり、
前記両制御手段のうちで前記共有データを求めて提供する方の制御手段が、前記共有メモリにおける所定の格納位置に前記共有データを書き込む書込手段を有すると共に、
前記両制御手段のうちで前記共有データを提供される方の制御手段が、前記共有メモリにおける前記所定の格納位置から前記共有データを読み出す読出手段を有し、
更に、前記書込手段によって前記共有データを提供する方の制御手段側の共有メモリに書き込まれた共有データを、該共有データを提供される方の制御手段側の共有メモリにおいて、前記共有データを提供する方の制御手段側の共有メモリと同じ格納位置に転送する転送手段を備え、
前記両制御手段は、前記共有データの種類と該共有データの前記共有メモリにおける格納位置を表す格納情報とを対応付けて記憶した格納情報記憶手段を備えており、
前記書込手段は、前記共有メモリに書き込むべき前記共有データの該共有メモリにおける格納位置を、前記格納情報記憶手段に記憶されている格納情報に基づき特定して、その特定した格納位置に前記共有データを書き込み、
前記読出手段は、前記共有メモリから読み出すべき前記共有データの該共有メモリにおける格納位置を、前記格納情報記憶手段に記憶されている格納情報に基づき特定して、その特定した格納位置から前記共有データを読み出すこと、
を特徴とする自動車用制御装置。
【請求項２】
請求項１に記載の自動車用制御装置において、
前記格納情報記憶手段は、前記格納情報として、前記共有データのデータ長と前記共有メモリにおける格納先頭アドレスとを記憶していること、
を特徴とする自動車用制御装置。
【請求項３】
請求項１又は請求項２に記載の自動車用制御装置において、
前記格納情報記憶手段は、前記共有メモリの１アドレス当たりに格納可能なビット数よりもデータ長が小さい共有データの前記格納情報として、その共有データの前記共有メモリにおける格納アドレスと該格納アドレスにおける格納ビット位置とを記憶していること、
を特徴とする自動車用制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動車に設けられた複数の制御対象を制御する自動車用制御装置に関する。
【０００２】
【従来の技術】
従来より、自動車に設けられてエンジンやトランスミッション等の複数の制御対象を制御する自動車用制御装置は、各制御対象用の制御プログラムに従って該当する制御対象を夫々制御する複数の制御手段としての制御部を備えており、その各制御部同士が制御用データを共有することにより、制御性を向上させている。
【０００３】
例えば、エンジン制御用の制御プログラムに従ってエンジンを制御するエンジン制御部と、トランスミッション制御用の制御プログラムに従ってトランスミッションを制御するトランスミッション制御部とを備えた自動車用制御装置の場合には、エンジン制御部側で回転センサからの信号に基づき算出されたエンジン回転数ＮＥのデータを、トランスミッション制御部側でトランスミッションを制御するために用いたり、逆に、トランスミッション制御部側で駆動軸等の回転数に基づき算出された車速ＳＰＤのデータを、エンジン制御部側でエンジンを制御するために用いたりしている。
【０００４】
次に、こうした自動車用制御装置の様々なシステム構成について、エンジン制御部とトランスミッション制御部とを備えると共に、その両制御部がエンジン回転数ＮＥのデータと車速ＳＰＤのデータとを共有する場合を例に挙げて、図１０を用い説明する。
【０００５】
まず図１０（ａ）に示すように、１つの電子制御ユニット（以下、ＥＣＵという）５０に設けられた１つのマイクロコンピュータ（以下、ＣＰＵという）１に、エンジン制御部Ａ１とトランスミッション制御部Ａ２とを組み込んだシステム構成がある。つまり、図１０（ａ）に示す１ＥＣＵ且つ１ＣＰＵのシステム構成においては、１つのＥＣＵ５０に設けられた１つのＣＰＵ１が、エンジン制御用の制御プログラムとトランスミッション制御用の制御プログラムとの各々を実行することにより、エンジン制御部Ａ１とトランスミッション制御部Ａ２との各々として機能する。
【０００６】
そして、この１ＥＣＵ且つ１ＣＰＵのシステム構成では、１つのＣＰＵ１によって実現されるエンジン制御部Ａ１とトランスミッション制御部Ａ２とが、制御用データを格納するために当該ＣＰＵ１に設けられた通常のＲＡＭを介して、エンジン回転数ＮＥのデータや車速ＳＰＤのデータを共有している。
【０００７】
具体的に説明すると、エンジン制御部Ａ１は（換言すれば、ＣＰＵ１がエンジン制御部Ａ１として機能する場合には）、上記ＲＡＭの所定格納位置から、トランスミッション制御部Ａ２によって書き込まれた（換言すれば、ＣＰＵ１がトランスミッション制御部Ａ２として機能することで書き込まれた）車速ＳＰＤのデータを読み出し、また、トランスミッション制御部Ａ２は（換言すれば、ＣＰＵ１がトランスミッション制御部Ａ２として機能する場合には）、上記ＲＡＭの他の所定格納位置から、エンジン制御部Ａ１によって書き込まれた（換言すれば、ＣＰＵ１がエンジン制御部Ａ１として機能することで書き込まれた）エンジン回転数ＮＥのデータを読み出す。
【０００８】
一方、近年における複雑な制御内容を容易に実現するために、図１０（ｂ）に示す如く、１つのＥＣＵ６０に２つのＣＰＵ１，２を設けると共に、その一方のＣＰＵ１にエンジン制御部Ａ１を組み込み、他方のＣＰＵ２にトランスミッション制御部Ａ２を組み込むようにしたシステム構成もある。つまり、図１０（ｂ）に示す１ＥＣＵ且つ２ＣＰＵのシステム構成においては、１つのＥＣＵ６０に設けられた２つのＣＰＵ１，２のうち、一方のＣＰＵ１が、エンジン制御用の制御プログラムを実行することにより、エンジン制御部Ａ１として機能し、他方のＣＰＵ２が、トランスミッション制御用の制御プログラムを実行することにより、トランスミッション制御部Ａ２として機能する。
【０００９】
そして、この１ＥＣＵ且つ２ＣＰＵのシステム構成では、エンジン制御部Ａ１を成すＣＰＵ１側に、トランスミッション制御部Ａ２を成すＣＰＵ２へエンジン回転数ＮＥのデータを送信すると共に、ＣＰＵ２から送信されてくる車速ＳＰＤのデータを受信するためのＣＰＵ間通信制御部Ｂ１が組み込まれ、また、ＣＰＵ２側に、ＣＰＵ１へ車速ＳＰＤのデータを送信すると共に、ＣＰＵ１から送信されてくるエンジン回転数ＮＥのデータを受信するためのＣＰＵ間通信制御部Ｂ２が組み込まれる。
【００１０】
そして更に、この１ＥＣＵ且つ２ＣＰＵのシステム構成では、ＣＰＵ１によって実現されるエンジン制御部Ａ１が、ＣＰＵ２から送信されて自分側のＣＰＵ間通信制御部Ｂ１（詳しくは、ＣＰＵ間通信制御部Ｂ１を構成するデータ受信用のレジスタ等）に記憶された車速ＳＰＤのデータを読み出し、また、ＣＰＵ２によって実現されるトランスミッション制御部Ａ２が、ＣＰＵ１から送信されて自分側のＣＰＵ間通信制御部Ｂ２（詳しくは、ＣＰＵ間通信制御部Ｂ２を構成するデータ受信用のレジスタ等）に記憶されたエンジン回転数ＮＥのデータを読み出すことにより、制御用データの共有が行われる。
【００１１】
一方また、自動車内におけるＥＣＵの配置スペースによる制約等から、図１０（ｃ）に示す如く、エンジン制御部Ａ１が組み込まれた（エンジン制御部Ａ１として機能する）ＣＰＵ１と、トランスミッション制御部Ａ２が組み込まれた（トランスミッション制御部Ａ２として機能する）ＣＰＵ２との各々を、２つの各ＥＣＵ７０，８０に設けるようにした、２ＥＣＵのシステム構成もある。尚、この２ＥＣＵのシステム構成では、２つのＥＣＵ７０，８０が、自動車内に配設されたネットワーク（以下、ＬＡＮという）を介して接続される。
【００１２】
そして、この２ＥＣＵのシステム構成では、一方のＥＣＵ７０に設けられたエンジン制御部Ａ１を成すＣＰＵ１側に、上記ＬＡＮへエンジン回転数ＮＥのデータを送信すると共に、他方のＥＣＵ８０から送信された車速ＳＰＤのデータを上記ＬＡＮから受信するためのＬＡＮ通信制御部Ｃ１が組み込まれ、また、ＥＣＵ８０に設けられたトランスミッション制御部Ａ２を成すＣＰＵ２側に、上記ＬＡＮへ車速ＳＰＤのデータを送信すると共に、ＥＣＵ７０から送信されたエンジン回転数ＮＥのデータを上記ＬＡＮから受信するためのＬＡＮ通信制御部Ｃ２が組み込まれる。
【００１３】
そして更に、この２ＥＣＵのシステム構成では、ＣＰＵ１によって実現されるエンジン制御部Ａ１が、他方のＥＣＵ８０から送信されて自分側のＬＡＮ通信制御部Ｃ１（詳しくは、ＬＡＮ通信制御部Ｃ１を構成するデータ受信用のレジスタ等）に記憶された車速ＳＰＤのデータを読み出し、また、ＣＰＵ２によって実現されるトランスミッション制御部Ａ２が、他方のＥＣＵ７０から送信されて自分側のＬＡＮ通信制御部Ｃ２（詳しくは、ＬＡＮ通信制御部Ｃ２を構成するデータ受信用のレジスタ等）に記憶されたエンジン回転数ＮＥのデータを読み出すことにより、制御用データの共有が行われる。
【００１４】
【発明が解決しようとする課題】
前述した図１０（ａ）〜（ｃ）のように、この種の自動車用制御装置は、同じ内容のエンジン制御やトランスミッション制御を行うものであっても、適用される車種等に応じてシステム構成が異なる。
【００１５】
そして、従来の自動車用制御装置では、前述したように、システム構成の違いに応じて、各制御部で共有する制御用データ（共有データ）の格納場所が異なる。
ここで、共有データの格納場所が異なるということは、各制御部が他の制御部と制御用データを共有するためにアクセスすべきアクセス先が異なるということであり、このため、同じ内容のエンジン制御やトランスミッション制御を行う場合であっても、各々のシステム構成毎に各制御部の制御プログラムを作成しなければならないという問題があった。
【００１６】
つまり、制御ロジック自体に変更が無くても、共有データをやり取りするためのアクセス先やアクセス方法が変わるため、各制御部の制御プログラムを変更せざるを得なかったのである。そして、このような共有データは、上記例で挙げたエンジン回転数ＮＥや車速ＳＰＤのデータだけではなく、他のセンサ情報のデータやトランスミッションの変速状態を示すデータなど、多種類にわたって存在するため、制御プログラムの変更箇所も膨大なものとなっていた。
【００１７】
本発明は、こうした問題に鑑みなされたものであり、制御プログラムに従って制御対象を制御する複数のマイクロコンピュータからなる制御手段（制御部）が、制御用データを共有しつつ各自の制御対象を制御する自動車用制御装置において、他のシステム構成を採った場合にでも、同じ制御プログラムを用いることができるようにすることを目的としている。
【００１８】
【課題を解決するための手段、及び発明の効果】
まず、本発明の前提構成について説明する。前提構成の自動車用制御装置は、第１の制御プログラムに従って自動車に設けられた第１の制御対象を制御する第１の制御手段と、第２の制御プログラムに従って前記自動車に設けられた第２の制御対象を制御する第２の制御手段とを備えている。そして、その両制御手段（第１の制御手段及び第２の制御手段）のうちの少なくとも一方の制御手段が、他方の制御手段によって求められた所定の制御用データを、前記両制御手段で共有する共有データとして、自己の制御対象を制御するために用いる。
【００１９】
そして更に、前提構成の自動車用制御装置は、前記両制御手段のうちで前記共有データを求めて提供する方の制御手段から前記共有データを提供される方の制御手段への前記共有データの転送を、前記各制御手段が各自の制御対象を制御するために用いる全ての制御用データを格納するための記憶手段とは別に設けられた共有メモリを介して行うように構成されている。
【００２０】
尚、上記記憶手段としては、一般に、揮発性のＲＡＭにおける所定の記憶領域が用いられるが、その場合、共有メモリとしては、上記ＲＡＭにおける他の特定の記憶領域を用いることができる。また、共有メモリとしては、上記ＲＡＭとは物理的に異なる他のメモリを用いても良い。
【００２１】
そして、このような前提構成の自動車用制御装置によれば、図１０（ａ）に示した１ＥＣＵ且つ１ＣＰＵのシステム構成と、図１０（ｂ）に示した１ＥＣＵ且つ２ＣＰＵのシステム構成と、図１０（ｃ）に示した２ＥＣＵのシステム構成との、何れのシステム構成を採った場合にでも、各制御手段で共有する制御用データ（共有データ）の格納場所を、共有メモリにおける同じ格納位置とすることができ、各制御手段が他の制御手段と制御用データを共有するためにアクセスすべきアクセス先を、システム構成に拘わらず同じにすることができる。
【００２２】
よって、同じ内容の制御を行うのであれば、各々のシステム構成毎に各制御手段の制御プログラム（第１の制御プログラム及び第２の制御プログラム）を作成する必要が無く、他のシステム構成を採った場合にでも、同じ制御プログラムを用いることができるようになる。つまり、異なるシステム構成間での制御プログラムの共用化を達成することができ、装置開発に必要な時間や経費を大幅に削減することができる。
【００２３】
具体的に説明すると、１ＥＣＵ且つ２ＣＰＵのシステム構成あるいは２ＥＣＵのシステム構成の場合には、第１の制御手段と第２の制御手段とが、２つのマイクロコンピュータ（ＣＰＵ）の各々によって実現されることとなる。
【００２４】
そこで、請求項１に記載の自動車用制御装置では、第１の制御手段と第２の制御手段とが、２つのマイクロコンピュータ（ＣＰＵ）の各々からなると共に、前記共有メモリが、第１の制御手段側と第２の制御手段側との各々に設けられた同一アドレス空間を有する２つのメモリからなる。
【００２５】
そして、前記両制御手段（第１の制御手段及び第２の制御手段）のうちで共有データを求めて提供する方の制御手段に設けられた書込手段が、自己側の共有メモリにおける所定の格納位置に共有データを書き込む。また、前記両制御手段のうちで共有データを提供される方の制御手段に設けられた読出手段が、自己側の共有メモリにおける前記所定の格納位置から共有データを読み出す。
【００２６】
そして更に、請求項１に記載の自動車用制御装置では、転送手段が、前記書込手段によって共有データを提供する方の制御手段側の共有メモリに書き込まれた共有データを、その共有データを提供される方の制御手段側の共有メモリにおいて、前記共有データを提供する方の制御手段側の共有メモリと同じ格納位置に転送する。
【００２７】
つまり、一方の制御手段に設けられた書込手段により、その制御手段側の共有メモリにおける所定の格納位置に共有データが書き込まれると、その共有データは、転送手段により、他方の制御手段側の共有メモリにおける同じ格納位置に転送される。そして、その転送された共有データは、上記他方の制御手段に設けられた読出手段によって読み出されることとなり、こうした一連の動作により、両制御手段での制御用データの共有が実現される。
【００２８】
尚、参考として、１ＥＣＵ且つ１ＣＰＵのシステム構成の場合には、第１の制御手段と第２の制御手段が、１つのマイクロコンピュータ（ＣＰＵ）によって実現されることとなるが、この場合には、前記共有メモリが、第１の制御手段側と第２の制御手段側とに共通に設けられた１つのメモリからなる。そして、前記両制御手段（第１の制御手段及び第２の制御手段）のうちで共有データを求めて提供する方の制御手段に設けられた書込手段が、前記共有メモリにおける所定の格納位置に共有データを書き込み、また、前記両制御手段のうちで共有データを提供される方の制御手段に設けられた読出手段が、前記共有メモリにおける前記所定の格納位置から共有データを読み出す。
【００２９】
ここで、請求項１に記載の自動車用制御装置によれば、１ＥＣＵ且つ２ＣＰＵのシステム構成から２ＥＣＵのシステム構成へ変更する場合には、転送手段での転送処理内容を、ＣＰＵ間通信に適合する処理内容からＥＣＵ間通信に適合する処理内容へ変更するだけで良く、逆に、２ＥＣＵのシステム構成から１ＥＣＵ且つ２ＣＰＵのシステム構成へ変更する場合には、転送手段での転送処理内容を、ＥＣＵ間通信に適合する処理内容からＣＰＵ間通信に適合する処理内容へ変更するだけで良い。また、１ＥＣＵ且つ１ＣＰＵのシステム構成へ変更する場合には、当該請求項１に記載の構成と上記参考の構成との比較から分かるように、共有メモリを両制御手段に共通の１つのメモリとすると共に、転送手段を削除するだけで良い。
【００３１】
このように、請求項１に記載の自動車用制御装置によれば、各制御手段の制御プログラムを修正することなく、他のシステム構成に変更することができ、異なるシステム構成間での制御プログラムの共用化が可能となる。
そして更に、請求項１に記載の自動車用制御装置では、前記両制御手段（第１の制御手段及び第２の制御手段）が、前記共有データの種類と該共有データの前記共有メモリにおける格納位置を表す格納情報とを対応付けて記憶した格納情報記憶手段を備えている。
【００３２】
そして、前記書込手段は、前記共有メモリに書き込むべき前記共有データの該共有メモリにおける格納位置を、前記格納情報記憶手段に記憶されている格納情報に基づき特定して、その特定した格納位置に前記共有データを書き込み、前記読出手段は、前記共有メモリから読み出すべき前記共有データの該共有メモリにおける格納位置を、前記格納情報記憶手段に記憶されている格納情報に基づき特定して、その特定した格納位置から前記共有データを読み出す。
【００３３】
このような請求項１に記載の自動車用制御装置によれば、何等かの要因で、何れかの共有データの共有メモリにおける格納位置を変更しなければならない場合でも、格納情報記憶手段に記憶させておく格納情報を変更するだけで対応することができ、非常に有利である。
【００３４】
また特に、請求項２に記載の如く、格納情報記憶手段が、前記格納情報として、共有データのデータ長と該共有データの前記共有メモリにおける格納先頭アドレス（データを格納すべき先頭のアドレス）とを記憶するように構成すれば、何等かの要因で、何れかの共有データのデータ長が変更された場合でも、格納情報記憶手段に記憶させておく格納情報のうちのデータ長の項目を変更するだけで対応することができ、非常に有利である。
【００３５】
つまり、書込手段と読出手段は、格納情報記憶手段に記憶されている格納情報としての格納先頭アドレスとデータ長とから、共有データの共有メモリにおける格納位置を特定して、その共有データの書き込み／読み出しを行うこととなるからである。
【００３６】
ところで、この種の自動車用制御装置に用いられるＲＡＭなどのメモリは、一般に、１アドレス当たりに１バイト（＝８ビット）あるいは複数バイトのデータを格納することができる。これに対して、この種の自動車用制御装置において、各制御手段が共有する制御用データ（共有データ）としては、バイト単位のデータに限らず、例えばスイッチのオン／オフ状態を示すスイッチデータやフラグデータなど、１バイトに満たないビット単位のデータもある。
【００３７】
ここで、上記のようなビット単位の共有データが複数種類ある場合、その各共有データを共有メモリの異なるアドレスに夫々格納するようにしても良いが、そのようにすると、共有メモリの記憶領域を有効に活用することができない。
そこで、請求項３に記載の自動車用制御装置では、上記請求項１，２に記載の自動車用制御装置において、格納情報記憶手段が、前記共有メモリの１アドレス当たりに格納可能なビット数よりもデータ長が小さい共有データの前記格納情報として、その共有データの前記共有メモリにおける格納アドレス（データを格納すべきアドレス）と該格納アドレスにおける格納ビット位置（データを格納すべきビット位置）とを記憶するようにしている。
【００３８】
このため、請求項３に記載の自動車用制御装置によれば、両制御手段が、共有メモリの１アドレス当たりに格納可能なビット数よりもデータ長が小さいビット単位のデータを共有データとして用いる場合に、そのビット単位の共有データは、書込手段により、格納情報記憶手段に記憶されている格納アドレスと格納ビット位置によって特定されるビット単位の格納位置に書き込まれ、また、そのビット単位の共有データは、読出手段により、上記格納アドレスと格納ビット位置によって特定されるビット単位の格納位置から読み出されることとなる。
【００３９】
よって、この自動車用制御装置によれば、共有メモリの１アドレスに、ビット単位の複数種類の共有データを任意に記憶させることができるようになり、共有メモリの記憶領域を有効に活用することができるようになる。特に、この種の自動車用制御装置では、メモリの容量を大きく設定するのに限度があるため、非常に有利である。
【００４０】
【発明の実施の形態】
以下、本発明が適用された実施形態の自動車用制御装置について図面を用いて説明する。
まず図１（ａ）は、自動車に搭載された内燃機関型エンジンとトランスミッションとを制御する第１実施形態の自動車用制御装置の構成図である。尚、図１において、前述した図１０と同様の機能を有する部分については、同じ符号を付している。
【００４１】
図１（ａ）に示すように、本第１実施形態の自動車用制御装置は、１つのＥＣＵ１０内に２つのＣＰＵ１，２を備えた１ＥＣＵ且つ２ＣＰＵのシステム構成を採っており、図１０（ｂ）に示した従来装置と同様に、エンジン制御用の制御プログラムに従ってエンジンを制御する第１の制御手段としてのエンジン制御部Ａ１が、一方のＣＰＵ１に組み込まれ、トランスミッション制御用の制御プログラムに従ってトランスミッションを制御する第２の制御手段としてのトランスミッション制御部Ａ２が、他方のＣＰＵ２に組み込まれている。
【００４２】
つまり、１つのＥＣＵ１０に設けられた各ＣＰＵ１，２は、プログラム及び該プログラムの実行時に参照されるデータを格納したＲＯＭや、そのプログラムの実行により算出されて制御に用いられる制御用データを一時格納するためのＲＡＭなどを備えており、その２つのＣＰＵ１，２のうち、一方のＣＰＵ１が、自分側のＲＯＭに格納されたエンジン制御用の制御プログラムを実行することにより、エンジン制御部Ａ１として機能し、他方のＣＰＵ２が、自分側のＲＯＭに格納されたトランスミッション制御用の制御プログラムを実行することにより、トランスミッション制御部Ａ２として機能する。
【００４３】
また、本第１実施形態の自動車用制御装置においても、図１０に示した従来装置と同様に、エンジン制御部Ａ１側で算出されたエンジン回転数ＮＥやエンジンの冷却水温などの制御用データを、トランスミッション制御部Ａ２側でトランスミッションを制御するために用い、逆に、トランスミッション制御部Ａ２側で算出された車速ＳＰＤなどの制御用データを、エンジン制御部Ａ１側でエンジンを制御するために用いるといった具合に、両制御部Ａ１，Ａ２同士が所定の制御用データを共有することにより、制御性を向上させている。
【００４４】
そして、本第１実施形態の自動車用制御装置においては、両制御部Ａ１，Ａ２間での制御用データの共有を実現するために、両ＣＰＵ１，２の各々に、共有メモリ部Ｄ１，Ｄ２と、ＣＰＵ間通信制御部Ｂ１，Ｂ２とが組み込まれている。
尚、本実施形態の自動車用制御装置において、各ＣＰＵ１，２により実行されるＲＯＭ内のプログラムは、プログラムの全機能を単位機能毎に細分化して、その単位機能毎にオブジェクトを用意するオブジェクト指向によってプログラミングされており、オブジェクトとは、データとそのデータを処理する手続きである“メソッド”と呼ばれるプログラムとを、一まとめにしたソフトウェアモジュールである。
【００４５】
そして、ソフトウエアだけに着目すると、上記エンジン制御部Ａ１は、ＣＰＵ１側のＲＯＭに格納されたエンジン制御用のオブジェクト（エンジン制御用のメソッド及びデータ）であり、そのエンジン制御部Ａ１と共にＣＰＵ１に組み込まれた上記共有メモリ部Ｄ１及びＣＰＵ間通信制御部Ｂ１の各々も、ＣＰＵ１側のＲＯＭに格納された各オブジェクト（メソッド及びデータ）である。同様に、上記トランスミッション制御部Ａ２は、ＣＰＵ２側のＲＯＭに格納されたトランスミッション制御用のオブジェクト（トランスミッション制御用のメソッド及びデータ）であり、そのトランスミッション制御部Ａ２と共にＣＰＵ２に組み込まれた上記共有メモリ部Ｄ２及びＣＰＵ間通信制御部Ｂ２の各々も、ＣＰＵ２側のＲＯＭに格納された各オブジェクト（メソッド及びデータ）である。
【００４６】
また、本実施形態の説明において、例えば「エンジン制御部Ａ１が…する。」や「共有メモリ部Ｄ１は…する。」といったオブジェクトを主語とした動作表現は、実際には、ＣＰＵがそのオブジェクトのメソッドに従って動作する（換言すれば、ＣＰＵがそのオブジェクトのメソッドを実行する）ことで実現される機能手段が、上記「…」の動作を行うことを示している。また同様に、例えば「エンジン制御部Ａ１によって…される。」や「共有メモリ部Ｄ１によって…される。」といったオブジェクトによる受け身の動作表現は、実際には、ＣＰＵがそのオブジェクトのメソッドに従って動作することで実現される機能手段によって、上記「…」の動作が行われることを示している。
【００４７】
ここで、ＣＰＵ１側の共有メモリ部Ｄ１は、当該ＣＰＵ１に備えられたＲＡＭにおいて、エンジン制御部Ａ１がエンジンを制御するために用いる全ての制御用データを一時格納するための記憶領域（記憶手段に相当し、以下、制御用データ記憶領域という）とは異なる特定の記憶領域として設定された共有メモリＭ１に、エンジン制御部Ａ１により算出された制御用データのうちでトランスミッション制御部Ａ２でも使用する制御用データ（エンジン回転数ＮＥのデータなど）を書き込むと共に、トランスミッション制御部Ａ２によって算出された制御用データ（車速ＳＰＤのデータなど）を、上記共有メモリＭ１から読み出してエンジン制御部Ａ１に提供するためのオブジェクトである。
【００４８】
同様に、ＣＰＵ２側の共有メモリ部Ｄ２は、当該ＣＰＵ２に備えられたＲＡＭにおいて、トランスミッション制御部Ａ２がトランスミッションを制御するために用いる全ての制御用データを一時格納するための記憶領域（記憶手段に相当し、以下、制御用データ記憶領域という）とは異なる特定の記憶領域として設定された共有メモリＭ２に、トランスミッション制御部Ａ２により算出された制御用データのうちでエンジン制御部Ａ１でも使用する制御用データ（車速ＳＰＤのデータなど）を書き込むと共に、エンジン制御部Ａ１によって算出された制御用データ（エンジン回転数ＮＥのデータなど）を、上記共有メモリＭ２から読み出してトランスミッション制御部Ａ２に提供するためのオブジェクトである。
【００４９】
尚、ＣＰＵ１側の共有メモリ部Ｄ１とＣＰＵ２側の共有メモリ部Ｄ２は、ソフトウエア上、全く同じものである。また、上記２つの共有メモリＭ１，Ｍ２のメモリ空間（アドレス）は、ＣＰＵ１側とＣＰＵ２側とで同一に設定されている。また更に、本実施形態において、両ＣＰＵ１，２のＲＡＭ（延いては、共有メモリＭ１，Ｍ２）は、１アドレス当たりに１バイトのデータが格納されるものである。
【００５０】
一方、ＣＰＵ１側のＣＰＵ間通信制御部Ｂ１は、共有メモリ部Ｄ１によって共有メモリＭ１に書き込まれた制御用データをＣＰＵ２へ送信すると共に、ＣＰＵ２から送信されて来た制御用データを受信して共有メモリＭ１に書き込むためのオブジェクトである。
【００５１】
同様に、ＣＰＵ２側のＣＰＵ間通信制御部Ｂ２は、共有メモリ部Ｄ２によって共有メモリＭ２に書き込まれた制御用データをＣＰＵ１へ送信すると共に、ＣＰＵ１から送信されて来た制御用データを受信して共有メモリＭ２に書き込むためのオブジェクトである。
【００５２】
そして、ＣＰＵ１側のＣＰＵ間通信制御部Ｂ１は、ＣＰＵ２側のＣＰＵ間通信制御部Ｂ２によって送信されて来た共有メモリＭ２内の制御用データを、共有メモリＭ１の記憶領域のうち、その制御用データの共有メモリＭ２における格納位置と同じ格納位置に書き込む。
【００５３】
また同様に、ＣＰＵ２側のＣＰＵ間通信制御部Ｂ２は、ＣＰＵ１側のＣＰＵ間通信制御部Ｂ１によって送信されて来た共有メモリＭ１内の制御用データを、共有メモリＭ２の記憶領域のうち、その制御用データの共有メモリＭ１における格納位置と同じ格納位置に書き込む。
【００５４】
つまり、上記２つのＣＰＵ間通信制御部Ｂ１，Ｂ２により、エンジン制御部Ａ１とトランスミッション制御部Ａ２とのうちで、共有データ（即ち、エンジン制御部Ａ１とトランスミッション制御部Ａ２とで共有する制御用データ）を求めて提供する方の制御部側の共有メモリに書き込まれた共有データが、共有データを提供される方の制御部側の共有メモリにおいて、共有データを提供する方の制御部側の共有メモリと同じ格納位置に転送される。
【００５５】
一方更に、本実施形態の自動車用制御装置において、ＣＰＵ１，２の各々に備えられた各ＲＯＭの所定記憶領域には、図２に示すように、共有データの種類を示す識別コード（以下、Handle.ID と記す）と、そのHandle.ID が示す共有データの共有メモリＭ１，Ｍ２における格納位置を表す格納情報としての格納アドレス，データ長，及びオフセットとを、対応付けて定義した格納位置定義テーブルが記憶されている。
【００５６】
そして、この格納位置定義テーブルにおいて、データ長は、Handle.ID が示す共有データ（つまり、共有メモリＭ１，Ｍ２に格納する共有データ）のデータ長を示し、格納アドレスは、Handle.ID が示す共有データを格納すべき共有メモリＭ１，Ｍ２のアドレス（本実施形態では１６進数表示）を示している。また、オフセットは、Handle.ID が示す共有データが、上記格納アドレスにおける何れのビット位置から上位側に格納されるかを示すものであり、格納アドレスにおける最下位ビット位置を０ビット目とした場合の格納ビット位置を示している。
【００５７】
尚、格納位置定義テーブルにおいて、データ長が１バイト，２バイト，…といったバイト単位の共有データについては、オフセットとして、常に０が設定される（図２にてHandle.ID が１又は６の欄を参照）。よって、バイト単位の共有データについては、格納アドレスは、その共有データの共有メモリＭ１，Ｍ２における格納先頭アドレスを示すこととなる。
【００５８】
そして、共有メモリ部Ｄ１，Ｄ２は、エンジン制御部Ａ１あるいはトランスミッション制御部Ａ２による共有データの書込要求及び読出要求に応じて、その要求に含まれるHandle.ID が示す共有データの共有メモリＭ１，Ｍ２における格納位置を、上記格納位置定義テーブルから特定し、その特定した格納位置へ該当する共有データを書き込んだり、その特定した格納位置から該当する共有データを読み出す。
【００５９】
次に、ＣＰＵ１とＣＰＵ２との各々で実行される処理の内容について、トランスミッション制御部Ａ２側で算出された車速ＳＰＤのデータを、エンジン制御部Ａ１側でエンジンのアイドリング状態を判定するために用いる場合と、トランスミッション制御部Ａ２側で検出されたトランスミッションのシフト位置（１速〜４速などの変速段）を示すデータを、エンジン制御部Ａ１側でエンジンのアイドリング目標回転数を設定するために用いる場合とを、例に挙げて説明する。
【００６０】
まず、図３に示すように、ＣＰＵ２で定期的に実行されるトランスミッション制御部Ａ２の車速算出処理では、最初のステップ（以下、「Ｓ」と記す）１００にて、車速センサからの信号に基づき車速ＳＰＤを算出し、続くＳ１１０にて、その算出した車速ＳＰＤのデータ（本実施形態では８ビット）を、トランスミッションの制御に用いるために、当該ＣＰＵ２に備えられたＲＡＭの制御用データ記憶領域に格納する。
【００６１】
そして、続くＳ１２０にて、上記算出した車速ＳＰＤのデータを共有メモリＭ２にも書き込む（コピーする）ために、共有メモリ部への車速ＳＰＤの書込要求を行い、その後、当該車速算出処理が終了する。
ここで、この車速ＳＰＤの書込要求は、車速ＳＰＤのHandle.ID と、上記Ｓ１００で算出した車速ＳＰＤのデータ（Data）とを引数とするものであり、本処理をＣ言語でプログラミングした場合、車速ＳＰＤの書込要求を行うための命令は、次のようになる。
【００６２】
Write（車速ＳＰＤのHandle.ID ，Data）
尚、この命令の意味は、車速ＳＰＤのHandle.ID に対応する格納位置にData（この場合、車速ＳＰＤのデータ）を書き込む、ということである。また、車速ＳＰＤ以外の共有データを共有メモリに書き込む場合には、上記命令における引数のうち、Handle.ID が、書き込むべきデータの種類を示すHandle.ID となり、Dataが、書き込むべきデータとなる。
【００６３】
そして、このようにして、トランスミッション制御部Ａ２により共有メモリ部への書込要求が行われると（Ｓ１２０）、ＣＰＵ２は、共有メモリ部Ｄ２の処理のうち、図４に示す共有メモリへの書込処理を実行する。
この書込処理では、まずＳ２００にて、図２に示した格納位置定義テーブルから、上記書込要求の一方の引数であるHandle.ID に対応した、格納アドレス，データ長，及びオフセットからなる格納情報を取得する。そして、続くＳ２１０にて、上記書込要求の他方の引数であるDataを、上記Ｓ２００で取得した格納情報に従って共有メモリＭ２に書き込み、その後、当該書込処理が終了する。
【００６４】
例えば、この例の場合には、図２に示すように、車速ＳＰＤのHandle.ID （＝６）に対応した格納情報としては、格納アドレスが８００３番地であり、データ長が８ビット（１バイト）であり、オフセットが０であるため、トランスミッション制御部Ａ２で算出された車速ＳＰＤの８ビットデータが、共有メモリＭ２の８００３番地に書き込まれることとなる。
【００６５】
そして、このようにしてＣＰＵ２側の共有メモリＭ２の８００３番地に書き込まれた車速ＳＰＤのデータは、両ＣＰＵ１，２に組み込まれたＣＰＵ間通信制御部Ｂ１，Ｂ２により、ＣＰＵ１側の共有メモリＭ１の８００３番地にも書き込まれる。
【００６６】
尚、図４の書込処理は、ＣＰＵ１においても、共有メモリ部Ｄ１の処理のうちの１つとして実行されるものであり、エンジン制御部Ａ１によって求めた共有データを共有メモリＭ１へ書き込む際に実行される。
例えば、ＣＰＵ１においては、エンジン制御部Ａ１により回転センサからの信号に基づきエンジン回転数ＮＥが算出されるが、そのエンジン制御部Ａ１によって、図３のＳ１２０と同様に、共有メモリ部へのエンジン回転数ＮＥの書込要求が行われると、図４の書込処理が実行される。そして、この場合には、図２に示すように、エンジン回転数ＮＥのHandle.ID （＝１）に対応した格納情報としては、格納アドレスが８０００番地であり、データ長が１６ビット（２バイト）であり、オフセットが０であるため、エンジン制御部Ａ１により算出されたエンジン回転数ＮＥの１６ビットデータが、共有メモリＭ１における８０００番地を先頭にして書き込まれることとなる。つまり、エンジン回転数ＮＥの１６ビットデータは、共有メモリＭ１の８０００番地と８００１番地とに亘って書き込まれる。また、このようにしてＣＰＵ１側の共有メモリＭ１の８０００番地及び８００１番地に書き込まれたエンジン回転数ＮＥのデータは、両ＣＰＵ１，２に組み込まれたＣＰＵ間通信制御部Ｂ１，Ｂ２により、ＣＰＵ２側の共有メモリＭ２の８０００番地及び８００１番地にも書き込まれることとなる。
【００６７】
一方、図５に示すように、ＣＰＵ１で定期的に実行されるエンジン制御部Ａ１のアイドリング判定処理では、まずＳ３００にて、共有メモリＭ１からトランスミッション制御部Ａ２によって算出された車速ＳＰＤのデータを読み出すために、共有メモリ部への車速ＳＰＤの読出要求を行う。
ここで、この車速ＳＰＤの読出要求は、車速ＳＰＤのHandle.ID を引数とするものであり、本処理をＣ言語でプログラミングした場合、車速ＳＰＤの読出要求を行うための命令は、次のようになる。
【００６８】
SPD_Eng ＝read（車速ＳＰＤのHandle.ID ）
尚、この命令の意味は、車速ＳＰＤのHandle.ID に対応するデータを読み出して、そのデータを、ＲＡＭの制御用データ記憶領域のうち、車速ＳＰＤのデータを格納するために設定された記憶領域SPD_Eng に記憶する、ということである。また、共有メモリから車速ＳＰＤ以外の共有データを読み出す場合には、上記命令において、Handle.ID が、読み出すべきデータの種類を示すHandle.ID となり、SPD_Eng が、ＲＡＭの制御用データ記憶領域のうち、読み出すべきデータを格納するために設定された記憶領域となる。
【００６９】
そして、このようにして、エンジン制御部Ａ１により共有メモリ部への読出要求が行われると（Ｓ３００）、ＣＰＵ１は、共有メモリ部Ｄ１の処理のうち、図６に示す共有メモリからの読出処理を実行する。
この読出処理では、まずＳ４００にて、図２に示した格納位置定義テーブルから、上記読出要求の引数であるHandle.ID に対応した、格納アドレス，データ長，及びオフセットからなる格納情報を取得する。次に、Ｓ４１０にて、上記Ｓ４００で取得した格納情報に従って、共有メモリＭ１からデータを読み出し、その読み出したデータを、戻り値として上記記憶領域SPD_Eng に書き込む。そして、その後、当該読出処理が終了する。
【００７０】
例えば、この例の場合には、図２に示すように、車速ＳＰＤのHandle.ID （＝６）に対応した格納情報としては、格納アドレスが８００３番地であり、データ長が８ビット（１バイト）であり、オフセットが０であるため、共有メモリＭ１の８００３番地から、トランスミッション制御部Ａ２によって算出された車速ＳＰＤの８ビットデータが読み出されて、上記記憶領域SPD_Eng に記憶されることとなる。
【００７１】
そして、このようにして共有メモリＭ１から車速ＳＰＤのデータが読み出されると、処理の実行が図５のアイドリング判定処理に戻り、そのＳ３１０にて、上記記憶領域SPD_Eng に記憶された車速ＳＰＤのデータや、エンジン制御部Ａ１の他の処理で算出されたスロットル開度（エンジンのスロットル弁の開度）等を用いて、エンジンのアイドリング状態が判定され、その後、当該アイドリング判定処理が終了する。
【００７２】
尚、図６の読出処理は、ＣＰＵ２においても、共有メモリ部Ｄ２の処理のうちの１つとして実行されるものであり、共有メモリＭ２からエンジン制御部Ａ１によって算出された共有データを読み出す際に実行される。
例えば、ＣＰＵ２において、トランスミッション制御部Ａ２により、図５のＳ３００と同様に、共有メモリ部へのエンジン回転数ＮＥの読出要求が行われると、図６の読出処理が実行される。そして、この場合には、図２に示すように、エンジン回転数ＮＥのHandle.ID （＝１）に対応した格納情報としては、格納アドレスが８０００番地であり、データ長が１６ビット（２バイト）であり、オフセットが０であるため、共有メモリＭ２の８０００番地及び８００１番地に格納されている２バイトデータが、エンジン制御部Ａ１により算出されたエンジン回転数ＮＥのデータとして読み出されて、トランスミッションの制御に用いられることとなる。
【００７３】
以上のようにして、ＣＰＵ１側のエンジン制御部Ａ１とＣＰＵ２側のトランスミッション制御部Ａ２とで、車速ＳＰＤやエンジン回転数ＮＥなどのバイト単位の制御用データが共有される。
次に、図７に示す如く、ＣＰＵ２で定期的に実行されるトランスミッション制御部Ａ２のシフト位置検出処理では、まずＳ５００にて、トランスミッションに対する制御状況から該トランスミッションの現在のシフト位置を判定し、続くＳ５１０にて、その判定したシフト位置のデータ（本実施形態では２ビット）を、トランスミッションの制御に用いるために、当該ＣＰＵ２に備えられたＲＡＭの制御用データ記憶領域に格納する。
【００７４】
そして、続くＳ５２０にて、上記判定したシフト位置のデータを共有メモリＭ２にも書き込む（コピーする）ために、共有メモリ部へのシフト位置の書込要求を行い、その後、当該シフト位置検出処理が終了する。
尚、本処理をＣ言語でプログラミングした場合、上記Ｓ５２０にてシフト位置の書込要求を行うための命令は、前述した車速ＳＰＤの書込要求と同様に、次のようになる。
【００７５】
Write（シフト位置のHandle.ID ，Data）
そして、この命令の意味は、シフト位置のHandle.ID に対応する格納位置にData（この場合、シフト位置のデータ）を書き込む、ということである。
このようにして、トランスミッション制御部Ａ２により共有メモリ部への書込要求が行われると（Ｓ５２０）、前述したように、ＣＰＵ２は、共有メモリ部Ｄ２の処理のうち、図４に示す共有メモリへの書込処理を実行する。
【００７６】
すると、この例の場合には、図２に示すように、シフト位置のHandle.ID （＝３）に対応した格納情報としては、格納アドレスが８００２番地であり、データ長が２ビットであり、オフセットが４であるため、トランスミッション制御部Ａ２により求められたシフト位置の２ビットデータは、図９（ｅ）に示すように、共有メモリＭ２の８００２番地にて最下位ビットを０ビット目とした場合の４ビット目と５ビット目に書き込まれることとなる。
【００７７】
そして、このようにして共有メモリＭ２の８００２番地における４，５ビット目に書き込まれたシフト位置のデータは、両ＣＰＵ１，２に組み込まれたＣＰＵ間通信制御部Ｂ１，Ｂ２により、ＣＰＵ１側の共有メモリＭ１の８００２番地における４，５ビット目にも書き込まれることとなる。
【００７８】
一方、図８に示すように、ＣＰＵ１で定期的に実行されるエンジン制御部Ａ１のアイドリング目標回転数設定処理では、まずＳ６００にて、共有メモリＭ１からトランスミッション制御部Ａ２によって求められたシフト位置のデータを読み出すために、共有メモリ部へのシフト位置の読出要求を行う。
【００７９】
尚、本処理をＣ言語でプログラミングした場合、上記Ｓ６００にてシフト位置の読出要求を行うための命令は、前述した車速ＳＰＤの読出要求と同様に、次のようになる。
SHIFT_Eng ＝read（シフト位置のHandle.ID ）
そして、この命令の意味は、シフト位置のHandle.ID に対応するデータを読み出して、そのデータを、ＲＡＭの制御用データ記憶領域のうち、シフト位置のデータを格納するために設定された記憶領域SHIFT_Eng に記憶する、ということである。
【００８０】
このようにして、エンジン制御部Ａ１により共有メモリ部への読出要求が行われると（Ｓ６００）、前述したように、ＣＰＵ１は、共有メモリ部Ｄ１の処理のうち、図６に示す共有メモリからの読出処理を実行する。
すると、この例の場合には、図２に示すように、シフト位置のHandle.ID （＝３）に対応した格納情報としては、格納アドレスが８００２番地であり、データ長が２ビットであり、オフセットが４であるため、共有メモリＭ１の８００２番地における４ビット目と５ビット目から、トランスミッション制御部Ａ２によって求められたシフト位置の２ビットデータが読み出されて、上記記憶領域SHIFT_Eng に記憶されることとなる。
【００８１】
そして、図６の読出処理により共有メモリＭ１からシフト位置のデータが読み出されると、処理の実行が図８のアイドリング目標回転数設定処理に戻り、そのＳ６１０にて、上記記憶領域SHIFT_Eng に記憶されたシフト位置のデータや、他の処理で検出されたエアコンの動作状態等を用いて、エンジンのアイドリング目標回転数が設定され、その後、当該アイドリング目標回転数設定処理が終了する。
【００８２】
以上のようにして、ＣＰＵ１側のエンジン制御部Ａ１とＣＰＵ２側のトランスミッション制御部Ａ２とで、１バイトに満たないシフト位置の２ビットデータが共有されるが、本実施形態においては、トランスミッション制御部Ａ２により、ドライバーがトランスミッションの変速パターンを設定するために操作するモードスイッチの状態（パワーモード，エコノミーモード，オーバードライブカットなど）や、トランスミッションを変速動作させてからの経過時間である変速後時間なども検出している。そして、トランスミッション制御部Ａ２からエンジン制御部Ａ１へ、上記モードスイッチの状態を示すデータ（本実施形態では１ビット）や変速後時間のデータ（本実施形態では４ビット）、あるいは更に、トランスミッションの他の制御状態を示すフラグのデータ（本実施形態では１ビット）なども提供するようにしている。
【００８３】
そして、例えば、トランスミッション制御部Ａ２により求めらてエンジン制御部Ａ１でも用いられるフラグの１ビットデータを、ＣＰＵ２側で共有メモリＭ２に書き込む際には、図７のＳ５２０と同様に、トランスミッション制御部Ａ２により共有メモリ部へのフラグの書込要求（フラグのHandle.ID を引数とする書込要求）が行われて、図４の書込処理が実行されることとなるが、この場合、図２に示すように、フラグのHandle.ID （＝２）に対応した格納情報としては、格納アドレスが８００２番地であり、データ長が１ビットであり、オフセットが７であるため、フラグの１ビットデータは、図９（ｅ）に示すように、共有メモリＭ２の８００２番地にて最下位ビットを０ビット目とした場合の７ビット目に書き込まれることとなる。
【００８４】
同様に、トランスミッション制御部Ａ２により求めらてエンジン制御部Ａ１でも用いられる変速後時間の４ビットデータを、ＣＰＵ２側で共有メモリＭ２に書き込む際には、トランスミッション制御部Ａ２により共有メモリ部への変速後時間の書込要求（変速後時間のHandle.ID を引数とする書込要求）が行われて、図４の書込処理が実行されることとなるが、この場合、図２に示すように、変速後時間のHandle.ID （＝４）に対応した格納情報としては、格納アドレスが８００２番地であり、データ長が４ビットであり、オフセットが０であるため、変速後時間の４ビットデータは、図９（ｅ）に示すように、共有メモリＭ２の８００２番地にて最下位ビットを０ビット目とした場合の０ビット目から３ビット目までに書き込まれることとなる。
【００８５】
また、トランスミッション制御部Ａ２により求めらてエンジン制御部Ａ１でも用いられる、モードスイッチの１ビットデータを、ＣＰＵ２側で共有メモリＭ２に書き込む際には、トランスミッション制御部Ａ２により共有メモリ部へのモードスイッチの書込要求（モードスイッチのHandle.ID を引数とする書込要求）が行われて、図４の書込処理が実行されることとなるが、この場合、図２に示すように、モードスイッチのHandle.ID （＝５）に対応した格納情報としては、格納アドレスが８００２番地であり、データ長が１ビットであり、オフセットが６であるため、モードスイッチの１ビットデータは、図９（ｅ）に示すように、共有メモリＭ２の８００２番地にて最下位ビットを０ビット目とした場合の６ビット目に書き込まれることとなる。
【００８６】
つまり、シフト位置のデータ，フラグのデータ，変速後時間のデータ，及びモードスイッチのデータといった、１バイトに満たないビット単位の各共有データは、図９（ｅ）からも分かるように、共有メモリＭ２（延いては両共有メモリＭ１，Ｍ２）の１アドレスに充填して格納するようにしている。尚、ビット単位の各共有データを共有メモリに書き込むタイミングは、全て同じである必要は無く、各共有データは各々の処理の中で適宜書き込まれる。
【００８７】
ここで、この理由について説明する。
まず一般に、この種の自動車用制御装置において、ＲＡＭの制御用データ記憶領域には、各種のデータが、フラグのデータ，スイッチのデータ，時間を示すカウント値からなる時間のデータ，他の情報のデータといった具合に、データの種別毎に格納される。
【００８８】
例えば、トランスミッション制御部Ａ２が組み込まれたＣＰＵ２においては、図９（ａ）に示す如く、１バイトに満たない複数のフラグデータが、ＲＡＭの制御用データ記憶領域における何れかのアドレスＡＤａにまとめて格納され、また図９（ｂ）に示す如く、１バイトに満たない複数の情報データが、ＲＡＭの制御用データ記憶領域における他のアドレスＡＤｂにまとめて格納される。同様に、図９（ｃ）に示す如く、１バイトに満たない複数の時間データが、ＲＡＭの制御用データ記憶領域における何れかのアドレスＡＤｃにまとめて格納され、また図９（ｄ）に示す如く、１バイトに満たない複数のスイッチデータが、ＲＡＭの制御用データ記憶領域における他のアドレスＡＤｄにまとめて格納される。
【００８９】
即ち、一般に、１バイトに満たないビット単位の各データは、トランスミッション制御部Ａ２だけで使用されるデータか、エンジン制御部Ａ１などの他の制御部との間で共通使用（共有）されるデータであるか、といった観点から分類及び集約されてＲＡＭの制御用データ記憶領域に格納される訳ではない。
【００９０】
これは、トランスミッション制御部Ａ２にて演算する場合に、１バイトに満たない同じ種別の複数のデータを１バイト単位で処理（例えば一括にリセットするなど）できるようにして、演算速度を向上させるためである。
尚、図９（ａ）は、ＲＡＭの制御用データ記憶領域におけるフラグデータ格納用のアドレスＡＤａにおいて、０〜３ビット目と５〜７ビット目には、トランスミッション制御部Ａ２だけで使用されるフラグデータが格納され、４ビット目には、エンジン制御部Ａ１との間で共通使用されるフラグデータが格納されていることを示している。また、図９（ｂ）は、ＲＡＭの制御用データ記憶領域における情報データ格納用のアドレスＡＤｂにおいて、０，１ビット目と４〜７ビット目には、トランスミッション制御部Ａ２だけで使用される情報データが格納され、２，３ビット目には、エンジン制御部Ａ１との間で共通使用される情報データ（具体的には、前述したシフト位置のデータ）が格納されていることを示している。また更に、図９（ｃ）は、ＲＡＭの制御用データ記憶領域における時間データ格納用のアドレスＡＤｃにおいて、０〜３ビット目には、トランスミッション制御部Ａ２だけで使用される時間データが格納され、４〜７ビット目には、エンジン制御部Ａ１との間で共通使用される時間データ（具体的には、前述した変速後時間のデータ）が格納されていることを示している。そして、図９（ｄ）は、ＲＡＭの制御用データ記憶領域におけるスイッチデータ格納用のアドレスＡＤｄにおいて、１〜７ビット目には、トランスミッション制御部Ａ２だけで使用されるスイッチデータが格納され、０ビット目には、エンジン制御部Ａ１との間で共通使用されるスイッチデータ（具体的には、前述したモードスイッチのデータ）が格納されていることを示している。
【００９１】
ここで仮に、トランスミッション制御部Ａ２が制御に用いるＲＡＭの制御用データ記憶領域内の上記フラグデータや情報データを、図９（ａ）〜（ｄ）に例示したメモリ配置のままで共有メモリＭ２（延いては両共有メモリＭ１，Ｍ２）に格納するように構成すると、共有メモリＭ１，Ｍ２内に、共有データ以外の不要なデータ（この例の場合、トランスミッション制御部Ａ２だけで使用されるデータ）も格納されることとなり、共有メモリＭ１，Ｍ２の容量を大きく設定しなければならなくなる。
【００９２】
そこで、本実施形態では、格納位置定義テーブルにより、共有メモリＭ１，Ｍ２の１アドレス当たりに格納可能な１バイトよりもデータ長が小さい共有データについては、その共有データの共有メモリＭ１，Ｍ２における格納アドレスと該格納アドレスにおける格納ビット位置（オフセット及びデータ長）とを定義して、図９（ｅ）に示したように、１バイトに満たないビット単位の各共有データを、共有メモリＭ１，Ｍ２の１つのアドレスに再配置して充填格納するようにしているのである。
【００９３】
このため、共有メモリＭ１，Ｍ２の１アドレスに、ビット単位の複数種類の共有データを任意に効率良く充填して格納することができ、共有メモリＭ１，Ｍ２の必要容量を小さく抑えることができる。特に、この種の自動車用制御装置では、メモリの容量を大きく設定するのに限度があるため、非常に有利である。
【００９４】
尚、本第１実施形態の自動車用制御装置では、図３のＳ１２０及び図７のＳ５２０で具体的に説明した共有メモリ部への書込要求を行う処理と、図４の共有メモリへの書込処理とが、書込手段に相当し、図５のＳ３００及び図８のＳ６００で具体的に説明した共有メモリ部への読出要求を行う処理と、図６の共有メモリからの読出処理とが、読出手段に相当している。また、ＣＰＵ間通信制御部Ｂ１，Ｂ２が転送手段に相当し、各ＣＰＵ１，２のＲＯＭにおいて図２の格納位置定義テーブルを記憶した所定記憶領域が、格納情報記憶手段に相当している。
【００９５】
以上詳述したように、本第１実施形態の自動車用制御装置は、エンジン制御部Ａ１が組み込まれたＣＰＵ１とトランスミッション制御部Ａ２が組み込まれたＣＰＵ２とを１つのＥＣＵ１０内に備えた１ＥＣＵ且つ２ＣＰＵのシステム構成を採っているが、エンジン制御部Ａ１とトランスミッション制御部Ａ２とのうちで、共有データを求めて提供する方の制御部から該共有データを提供される方の制御部への共有データの転送を、各制御部Ａ１，Ａ２が各自の制御対象を制御するために用いる全ての制御用データを格納するためのＲＡＭの制御用データ記憶領域とは別に設けられた共有メモリＭ１，Ｍ２を介して行うようにしている。
【００９６】
このため、本第１実施形態の自動車用制御装置によれば、図１（ｂ）に示すように、エンジン制御部Ａ１が組み込まれたＣＰＵ１を一方のＥＣＵ２０に設けると共に、トランスミッション制御部Ａ２が組み込まれたＣＰＵ２を他方のＥＣＵ３０に設けて、その両ＥＣＵ２０，３０を自動車内のＬＡＮを介して通信可能に接続するようにした２ＥＣＵのシステム構成へ変更する場合、或いは、図１（ｃ）に示すように、１つのＥＣＵ４０に設けられた１つのＣＰＵ１にエンジン制御部Ａ１とトランスミッション制御部Ａ２との両方を組み込むようにした１ＥＣＵ且つ１ＣＰＵのシステム構成へ変更する場合でも、エンジン制御部Ａ１とトランスミッション制御部Ａ２とで共有する制御用データ（共有データ）の格納場所を全く同じにすることができ、両制御部Ａ１，Ａ２が制御用データを共有するためにアクセスすべきアクセス先を、システム構成に拘わらず同じにすることができる。
【００９７】
よって、本第１実施形態の自動車用制御装置によれば、同じ内容のエンジン制御とトランスミッション制御を行うのであれば、各々のシステム構成毎に制御プログラム（エンジン制御用の制御プログラム及びトランスミッション制御用の制御プログラム）を作成する必要が無く、他のシステム構成を採った場合にでも、同じ制御プログラムを用いることができるようになる。即ち、異なるシステム構成間での制御プログラムの共用化を達成することができ、装置開発に必要な時間や経費を大幅に削減することができる。
【００９８】
具体的に説明すると、まず、▲１▼：図１（ａ）に示した本第１実施形態の自動車用制御装置を、２ＥＣＵのシステム構成に変更する場合には、図１（ｂ）に示すように、ＥＣＵ２０側のＣＰＵ１とＥＣＵ３０側のＣＰＵ２との各々に、ＣＰＵ間通信制御部Ｂ１，Ｂ２に代えて、ＬＡＮを介してデータ通信を行うためのＬＡＮ通信制御部Ｃ１，Ｃ２を組み込む。そして、ＣＰＵ１側のＬＡＮ通信制御部Ｃ１が、ＣＰＵ２側のＬＡＮ通信制御部Ｃ２によってＬＡＮへ送信された共有メモリＭ２内の制御用データを、共有メモリＭ１の記憶領域のうち、その制御用データの共有メモリＭ２における格納位置と同じ格納位置に書き込み、また、ＣＰＵ２側のＬＡＮ通信制御部Ｃ２が、ＣＰＵ１側のＬＡＮ通信制御部Ｃ１によってＬＡＮへ送信された共有メモリＭ１内の制御用データを、共有メモリＭ２の記憶領域のうち、その制御用データの共有メモリＭ１における格納位置と同じ格納位置に書き込むようにすれば良い。
【００９９】
また、▲２▼：図１（ａ）に示した本第１実施形態の自動車用制御装置を、１ＥＣＵ且つ１ＣＰＵのシステム構成に変更する場合には、図１（ｃ）に示すように、ＥＣＵ４０に設けられた１つのＣＰＵ１に、エンジン制御部Ａ１及びトランスミッション制御部Ａ２と共有メモリ部Ｄ１とを組み込むようにすれば良い。つまり、この場合には、図１（ａ）のＣＰＵ１にトランスミッション制御部Ａ２を組み込み、その代わりにＣＰＵ間通信制御部Ｂ１を削除したような構成となり、エンジン制御部Ａ１とトランスミッション制御部Ａ２は、図４及び図６に示した共有メモリ部Ｄ１の処理によって、１つの共有メモリＭ１にアクセスすることとなる。
【０１００】
このように、本第１実施形態の自動車用制御装置によれば、２ＥＣＵのシステム構成と１ＥＣＵ且つ１ＣＰＵのシステム構成との何れに変更する場合でも、エンジン制御部Ａ１とトランスミッション制御部Ａ２とが制御用データを共有するためにアクセスするアクセス先及びアクセス方法を、全く同じにすることができ、制御プログラムを変更する必要が無くなる。
【０１０１】
一方逆に、図１（ｂ）に示した２ＥＣＵのシステムを、本発明が適用された第２実施形態の自動車用制御装置としたならば、前述した▲１▼の変更を逆に行うだけで、図１（ａ）に示した１ＥＣＵ且つ２ＣＰＵのシステム構成に変更することができ、また、前述した▲２▼と同様の変更を行うだけで、図１（ｃ）に示した１ＥＣＵ且つ１ＣＰＵのシステム構成に変更することができる。つまり、第１実施形態の自動車用制御装置と同様に、他のシステム構成を採った場合にでも制御プログラムを変更する必要が無い。
【０１０３】
一方更に、上記実施形態の自動車用制御装置では、エンジン制御部Ａ１とトランスミッション制御部Ａ２とが、共有メモリ部への書込要求あるいは読出要求を行い、共有メモリ部Ｄ１，Ｄ２は、その要求に含まれるHandle.ID が示す共有データの共有メモリＭ１，Ｍ２における格納位置を、格納位置定義テーブルから特定して、その特定した格納位置へ該当する共有データを書き込み、また、その特定した格納位置から該当する共有データを読み出すようにしている。
【０１０４】
このため、何等かの要因で、何れかの共有データの共有メモリＭ１，Ｍ２における格納位置を変更しなければならない場合でも、格納位置定義テーブルに記憶させておく格納情報を変更するだけで対応することができる。
例えば、エンジン回転数ＮＥのデータの格納アドレスを８０００番地から６０００番地に変更しなければならない場合でも、エンジン回転数ＮＥのHandle.ID が１であることには変わりがないため、エンジン制御部Ａ１とトランスミッション制御部Ａ２とのプログラムを変更する必要は無く、図２の格納位置定義テーブルにて、Handle.ID ＝１に対応する格納アドレスを、８０００から６０００に変更するだけで済むのである。
【０１０５】
また、上記実施形態の自動車用制御装置では、格納位置定義テーブルにおける格納情報の１つとして、共有データのデータ長を定義するようにしているため、ＣＰＵ１，２間やＥＣＵ２０，３０間における通信プロトコルや通信速度などの要因により、何れかの共有データのデータ長が変更された場合でも、格納位置定義テーブルに記憶させておく格納情報のうちのデータ長の項目を変更するだけで対応することができる。
【０１０６】
例えば、車速ＳＰＤのデータ長が８ビットから１６ビットに変更された場合でも、Handle.ID が６であることには変わりがないため、エンジン制御部Ａ１とトランスミッション制御部Ａ２とのプログラムを変更する必要は無く、図２の格納位置定義テーブルにて、Handle.ID ＝６に対応するデータ長を、８から１６に変更するだけで済むのである。
【０１０７】
そして更に、上記実施形態の自動車用制御装置によれば、仕様や仕向先の違いなどによって共有データの種類や数を変更しなければならない場合でも、どのデータをどの位置に格納するかといった情報は図２の格納位置定義テーブルによって定義されるため、その格納位置定義テーブル内の情報を変更するだけで、メモリ効率良く（即ち、共有メモリに空きエリアが生じることなく）共有データを格納することができる。
【０１０８】
以上、本発明の一実施形態について説明したが、本発明は、前述した実施形態に限定されるものではなく、種々の形態を採り得ることは言うまでもない。
例えば、上記各実施形態の自動車用制御装置は、エンジンとトランスミッションを制御するものであったが、本発明は、他の様々な制御対象を制御するための自動車用制御装置に対して全く同様に適用することができる。
【図面の簡単な説明】
【図１】  実施形態の自動車用制御装置の構成図である。
【図２】  格納位置定義テーブルの説明図である。
【図３】  トランスミッション制御部の車速算出処理を表すフローチャートである。
【図４】  共有メモリへの書込処理を表すフローチャートである。
【図５】  エンジン制御部のアイドリング判定処理を表すフローチャートである。
【図６】  共有メモリからの読出処理を表すフローチャートである。
【図７】  トランスミッション制御部のシフト位置検出処理を表すフローチャートである。
【図８】  エンジン制御部のアイドリング目標回転数設定処理を表すフローチャートである。
【図９】  １バイト未満の共有データの共有メモリに対する書き込み状態を説明する説明図である。
【図１０】  従来技術の問題を説明する説明図である。
【符号の説明】
１，２…ＣＰＵ（マイクロコンピュータ）
１０，２０，３０，４０…ＥＣＵ（電子制御ユニット）
Ａ１…エンジン制御部    Ａ２…トランスミッション制御部
Ｂ１，Ｂ２…ＣＰＵ間通信制御部    Ｃ１，Ｃ２…ＬＡＮ通信制御部
Ｄ１，Ｄ２…共有メモリ部    Ｍ１，Ｍ２…共有メモリ
【図１】
0003666286.tif 000002
【図２】
0003666286.tif 000003
【図３】
0003666286.tif 000004
【図４】
0003666286.tif 000005
【図５】
0003666286.tif 000006
【図６】
0003666286.tif 000007
【図７】
0003666286.tif 000008
【図８】
0003666286.tif 000009
【図９】
0003666286.tif 000010
【図１０】
0003666286.tif 000011