(57)【要約】【課題】  共有記憶領域を介したデータ授受による差異を吸収することで、複数演算装置を用いた制御システムの開発効率を向上することができる制御ソフトウェアを提供する。【解決手段】  ネットワーク通信を行うソフトウェア部品と同じインターフェースを有し、前記複数演算装置が共有する記憶領域のデータの読み書きを行う処理ソフトウェアを部品化することで、共有記憶領域によるデータの授受を通信物理層のひとつとして扱い、制御システムを構築する。【選択図】図３
2010061324.tif 000002
【特許請求の範囲】
【請求項１】
複数の中央演算装置と、前記複数の中央演算装置が共有する共有記憶メモリと、を備える電子制御装置上で動作する制御ソフトウェアであって、
前記制御ソフトウェアは前記電子制御装置への入出力処理を行う基本ソフトウェアを有し、
前記基本ソフトウェアは、前記電子制御装置が接続されるネットワークの通信に用いるインターフェースと同じインターフェースを用いて前記共有記憶メモリのデータの読み書きを行うことを特徴とする制御ソフトウェア。
【請求項２】
前記基本ソフトウェアは、前記共有記憶メモリのデータの読み書きを行う共有メモリ処理部と、前記ネットワークとの通信を行う通信処理部とを備え、前記共有メモリ処理部と、前記通信処理部とが互換性のあるインターフェースを備えることを特徴とする請求項１に記載の制御ソフトウェア。
【請求項３】
前記基本ソフトウェアは、対象の制御を行う制御アプリケーション部を有し、前記制御アプリケーション部には制御アプリケーションソフトウェア部品を備え、前記制御ソフトウェアは、前記制御アプリケーションソフトウェア部品と前記基本ソフトウェアとを接続する接続部を有することを特徴とする請求項１または２のいずれか１項に記載の制御ソフトウェア。
【請求項４】
前記基本ソフトウェアは、ハードウェアにより処理の中断がないことを保証された処理を呼び出すことを特徴とする請求項１から３のいずれか１項に記載の制御ソフトウェア。
【請求項５】
前記基本ソフトウェアは、ハードウェアにより処理の中断がないことを保証されたテスト・アンド・セット命令を呼び出すことを特徴とする請求項１から４のいずれか１項に記載の制御ソフトウェア。
【請求項６】
前記基本ソフトウェアは、排他処理の管理を行うセマフォの処理を有することを特徴とする請求項１から５のいずれか１項に記載の制御ソフトウェア。
【請求項７】
前記共有メモリ処理部は送信に用いるインターフェースと、受信に用いるインターフェースとを有することを特徴とする請求項２から６のいずれか１項に記載の制御ソフトウェア。
【請求項８】
前記共有メモリ処理部には送信完了処理へのポインタと受信完了処理へのポインタを格納したテーブルを有することを特徴とする請求項２から７のいずれか１項に記載の制御ソフトウェア。
【請求項９】
複数の中央演算装置と、前記複数の中央演算装置が共有する共有記憶メモリと、を備える電子制御装置であって、
前記電子制御装置は、前記電子制御装置が接続されるネットワークの通信に用いるインターフェースと同じインターフェースを用いて前記共有記憶メモリのデータの読み書きを行うことを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子制御装置および前記電子制御装置に搭載する制御用ソフトウェアに関し、特に複数の車両用電子制御装置の分散制御に関する。
【背景技術】
【０００２】
自動車エンジン制御などの制御装置として、中央演算装置，ＲＯＭ，ＲＡＭ，入出力信号処理装置などを内蔵したマイクロコントローラ（以下マイコンと表記）が用いられている。マイコンに搭載されるソフトウェアは制御対象が目的とする制御動作を行うように、一般的には制御処理を行うアプリケーションプログラムと入出力を行うデバイスドライバやオペレーティングシステム（ＯＳ）などによって構成されている。
【０００３】
近年、ソフトウェアの規模の増大に伴い、個別の制御システムについてアプリケーションプログラムと入出力を行うデバイス制御プログラムとを全て開発することが困難になっており、ソフトウェアを小さな単位の部品として構成し、これを再利用する手法や、これらを階層化し変更箇所を局所化する、などの手法が採用されている。さらに、これらのソフトウェアの部品を資産として蓄積し、開発対象の電子システムの機器の構成やネットワークの構成に応じてソフトウェアの部品を組み合わせて開発する手法が採用されている。
【０００４】
また、分散システムを前提としその構築をハードウェアに依存することなくシステムを構築する手法として分散オペレーティングシステム（分散ＯＳ）がある。分散ＯＳは、複数の演算装置からなるシステム全体を管理するＯＳであり、このＯＳがプログラムの実行単位であるプロセスを各演算装置に適宜分配するものである（例えば、特許文献１参照）。
【０００５】
分散システムの開発効率を向上するための一般的な手法においては、ネットワークの物理的な差異を吸収するため、通信プロトコルおよび信号処理などの物理層に非依存なネットワークの上位層と、物理層に依存する下位層に分離し、物理層の差異を隠蔽することで、これらを実際のシステム構成に対して柔軟な設計を可能にする（例えば、特許文献２参照）。
【０００６】
【特許文献１】特開平１０−２４３００４号公報
【特許文献２】特許第３４６０５９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、近年マイコンの処理速度向上の方策として複数の演算装置をひとつのマイコンパッケージに搭載する複数の演算装置を搭載するマイコンが実用化している。複数演算装置搭載のシステム上では、ソフトウェアはそれぞれの演算装置上で並行に動作し、演算装置間で授受を行う必要のあるデータはデュアルポートＲＡＭなどの共有記憶領域上でやりとりを行う。
【０００８】
このとき、演算装置はそれぞれ独立に動作するため、一方の演算装置からのデータの書き込みが完了していない不完全な状態で他方が読み込みを行ったり、多重に書き込みを行ったり、一方の読み込みの途中で他方の書き込みが部分的に行われたりすると、データが破損する可能性があり、システムの動作は設計時に意図したデータのやりとりから逸脱し、不具合を引き起こすこととなるため、このようなデータの競合を避ける必要がある。
【０００９】
また、車両制御のような高いリアルタイム性の要求される分野では、従来のソフトウェア資産は必ずしも分散システムを想定して開発されているものでは無く、単一の演算装置に割り当てた上で、固定的にスケジューリングを行う前提で設計されていることが多いため、単純に分散ＯＳに配置しただけでは当初の意図から逸脱した動作となるため、分散ＯＳの活用できる場面は非常に限定される。このため、既存ソフトウェア資産の再利用のためには、個別の演算装置が固有のリアルタイムＯＳを搭載し、各ソフトウェアの部品はそのＯＳ上に固定的にスケジューリングする必要がある。さらに、車両制御システムはリアルタイムシステムであり、処理の遅延がシステムの性能，信頼性に大きな影響を及ぼすため、情報系で用いられている柔軟であるがリアルタイム性の保証できない機構を採用することができない。
【００１０】
本発明の目的は、このような複数演算装置間の競合による不具合を排除するとともに、各ソフトウェア部品は演算装置毎に動作するリアルタイムＯＳ上に割り付けてリアルタイム性を保証することができ、ネットワークの物理層と同様に複数の演算装置間の共有記憶領域を介したデータ授受を行うという構成の差異を隠蔽し、通信方式の差異を吸収するのと同じように、共有記憶領域を介したデータ授受による差異を吸収し、複数演算装置を用いた制御システムの開発効率を向上することである。
【課題を解決するための手段】
【００１１】
上記目的を実現するために、ネットワーク通信を行うソフトウェア部品と同じインターフェースを有し、競合を回避する手段を有する共有記憶領域のデータの読み書きを行う処理ソフトウェアを部品化し、共有記憶領域によるデータの授受を通信物理層のひとつとして扱い、制御システムを構築する。
【発明の効果】
【００１２】
上記構成にて制御システムを作成すると、従来からのソフトウェア資産を再利用しながら、共有記憶領域によって引き起される虞れのある競合の不具合を排除することができるため、複数の演算装置を使った制御システムを開発する工数を信頼性を損うことなく削減できる。
【発明を実施するための最良の形態】
【００１３】
以下本発明の実施形態の第一の例について説明する。
【００１４】
図１は本発明の対象とする制御システムのひとつである自動車エンジン制御システムの構成を示すものである。コントロールユニット２１５は第１の中央演算装置（ＣＰＵ）２０５，第２のＣＰＵ２１０，割込み制御回路２１２，第１の読出し専用メモリ（ＲＯＭ）２０３，第１の揮発性読書きメモリ（ＲＡＭ）２０４，第２のＲＯＭ２０８，第２のＲＡＭ２０９，ＣＰＵ１とＣＰＵ２が共有する共通ＲＯＭ２０７および共通ＲＡＭ２０６，入力回路２０２，出力回路２１１、から構成される。
【００１５】
なお２０２〜２１２の各要素は一つの素子上に内蔵される場合と、別素子を用いて実現される場合があるが、その相違は本発明に特に影響しないのでその構成は問わない。コントロールユニットには制御対象であるセンサ２１６が信号入力回路２１３を、アクチュエータ２１７が駆動回路２１４を介して接続され、マイコン２０１がこれらの制御を行う。制御はマイコンをはじめとする構成要素から入力回路２０２，出力回路２１１のレジスタへの読み書きにより行われる。制御の方法を記述したソフトウェアはコントロールユニット上のＲＯＭ２０３，２０８，２０７およびＲＡＭ２０４，２０９，２０６に搭載される。
【００１６】
上記の制御装置上に図３に示すようなハードウェアを実装し、各種データの受け渡しを行う。本構成はエンジン制御システムの基本構成を示したものである。電子制御ユニット４１８は、スロットルセンサ４０７，水温センサ４０８，エアフローセンサ４０９，クランク角センサ４１０から入力したエンジンの状態に基づき、点火プラグ駆動パルス４１６，燃料噴射装置駆動パルス４１７を出力することを目的とする。電子制御ユニット４１８の内部には、第１のＣＰＵ４０１と第２のＣＰＵ４０２が共有のＲＡＭ４０３を介して接続しており、入力信号を取り込むためのアナログ・デジタル変換器（ＡＤ変換器４０４）とパルス入力回路４０５を介して各センサの情報を取り込み、タイマ・パルス出力回路４０６を介してアクチュエータ駆動信号である点火プラグ駆動パルス４１６，燃料噴射装置駆動パルス４１７を出力する。本実施例ではセンサの入力をもとに外界の物理量を算出するセンサ値補正処理４１９と第１のオペレーティングシステム（ＯＳ）４２０を第１の演算装置４０１に割り当て、外界の物理量とクランク角センサから得られたエンジン回転位置をもとに点火制御４１４，燃料噴射制御４１５を行う処理と第２のオペレーティングシステム（ＯＳ）４２１を第２のＣＰＵ４０２に割り当てている。これにより、処理負荷を分散させることが可能となる。また、ＣＰＵ間では、共有ＲＡＭ４０３上に各センサから得られた制御対象の情報である、スロットル開度４１１，水温４１２，吸入空気量４１３を保持することで、演算装置間で情報を受け渡すことが可能となる。
【００１７】
図２はコントロールユニットが実行するソフトウェアの階層構造を示した図である。第１のソフトウェア３０３は第１のＣＰＵ３０７で実行される基本ソフトウェアであり、第２のソフトウェア３０９は第２のＣＰＵ３１４で実行される基本ソフトウェアである。第１のＣＰＵ３０７で実行されるソフトウェア３０３は、システムの制御対象を制御するロジックを記述した複数の制御アプリケーションソフトウェア部品３０１とこれらを接続し統合する部品接続部３０２，ソフトウェアの実行単位であるタスク毎の優先度制御を行った上で実行させるオペレーティングシステム３０４，通信処理部３１２から構成される。通信処理部３１２は、通信の物理的な伝達手段である物理層の媒体に依存せず通信データの加工処理やエラーや種々の異常状態の検出などを行う通信上位部３０５と、具体的なデータの送受信を行うハードウェアの制御を行う通信ドライバ部３０６とから構成される。
【００１８】
制御システムの設計時には、制御アプリケーション部３１３と部品接続部３０２のみに着目し、制御ソフトの物理的，論理的な性質に基づき部品の設計を行う。このとき、電子システムにおける通信の物理層の構成に関する情報を抽象化し、部品間の抽象化した論理接続３１１のみを考慮して設計を行い、電子システムの構築時に物理層まで考慮した物理接続３１０として実装することで、制御アプリケーションソフトウェア部品３０１の設計と電子システムの構成を分離でき、ソフトウェアの再利用性を向上できる。
【００１９】
図６は共有メモリを介して通信を行うための、通信ドライバ部３０６にあたる共有メモリ処理部８０１の構成を示したものである。共有メモリ処理部は外部からアクセスする方法を定めたインターフェース部８０２と実際の共有メモリの読み出し，書き込み処理を行うドライバ部・テーブル部８０３とから構成される。インターフェース部８０２は送信８０４，受信８０５，送信完了８０６，受信完了８０７の４つのインターフェースを持つ。ドライバ部・テーブル部８０３はドライバ部８０８，通知処理テーブル８０９からなり、ドライバ部にはインターフェース部８０２で規定された各インターフェースに対応した処理を配置する。これらは典型的には、Ｃ言語の関数に対応するものである。通知処理テーブル８０９には割込みなどのイベントから各通知処理への呼出し先を登録するテーブルであり、典型的にはＣ言語の関数のポインタを登録し、当該イベントが発生した場合に前記ポインタの関数を実行する。あるいはＣ言語のマクロとして飛び先の関数を登録することも可能である。
【００２０】
図５は上記に記載の構成を用いてソフトウェアの処理手順の詳細を示したものである。第１のＣＰＵ７０１上では制御アプリケーションソフトウェア７０４，通信上位部７０５，通信ドライバ部７０６が動作し、ＣＰＵ間で共有されるハードウェア７０２には、セマフォ７０７，ＲＡＭ７０８，割込みコントローラ７０９が存在し、第２のＣＰＵ７０３では通信ドライバ部７１０，通信上位部７１１，制御アプリケーションソフトウェア７１２が動作する。
【００２１】
図５では、上記の構成で第１のＣＰＵ７０１に搭載している制御アプリケーションソフトウェア７０４から第２のＣＰＵ７０３に搭載している制御アプリケーションソフト７１２に共有データを記憶するＲＡＭ７０８を介してデータを受け渡す詳細な手順を示している。
【００２２】
まず、制御アプリケーションソフトウェア７０４からデータ送信の要求７１３が通信上位部７０５に対して発行されると、通信上位部７０５は送信データ長の調整や割り付け，ビット配置の調整などの送信データの前処理７１４を行った後に、通信ドライバ部に対してデータの送信要求７１５を発行する。通信ドライバは第１のＣＰＵ７０１と第２のＣＰＵ７０３とで共有するＲＡＭ７０８上のデータへの排他的なアクセスを保証するためにセマフォ７０７を用いて７１６〜７２０の排他処理を行う。排他処理は保護領域の取得処理７１６として、セマフォ７０７のテスト・アンド・セット処理７１７（後述）を行い、共有ＲＡＭ７０８のあらかじめ定めた領域へのアクセス権限を得た上で、共有ＲＡＭ７０８に書込み７１８を行い、保護領域の解除７１９の処理としてセマフォ７０７のclear７２０を行い排他処理を完了する。次に第１のＣＰＵ７０１，第２のＣＰＵ７０３に対して通信が完了したことを通知するため、割込みコントローラ７０９に送信完了割込み７２１の発生を行う。これをcpu１７０１で送信完了割込み７２２として取り込む。そして、割込み処理の中で、通信ドライバ部７０６、すなわち共有メモリ処理部の通知処理テーブル８０９に登録された送信完了通知８１４に基づいて、通信上位部７０５の送信完了通知７２３を呼出し、送信完了処理７２４を行う。一方、割込みコントローラ７０９で発生させた送信完了割込み発生７２１から第２のＣＰＵ７０３で受信完了割込み７２５として取り込む。そして、割込み処理の中で、通信ドライバ部７１０、すなわち共有メモリ処理部の通知処理テーブル８０９に登録された受信完了通知８１５に基づいて、通信上位部７１１の受信完了通知７２６を起動し、そこで通信ドライバ部７１０の受信処理７２７を呼び出す。受信処理の中でもセマフォ７０７を用いて７２８〜７３２の排他処理を行う。そこではまず、保護領域取得処理７２８で、テスト・アンド・セット処理７２９（後述）を行い、排他領域へのアクセス権限を得た上でＲＡＭ７０８からデータを読出し７３０、これを通信上位部７１１の内部に保持する。そして保護領域の解除処理７３１の中からセマフォ７０７の解除処理７３２を行う。最後に制御アプリケーションソフト７１２は、通信上位部７１１に対し、データ取得要求７３３を出し、データを取得する。
【００２３】
また、複数の演算装置が並列で動作している状態で、データへのアクセスの競合を防ぐためにはハードウェアが介在した排他処理が必要である。図５中のテスト・アンド・セット処理７１７，テスト・アンド・セット処理７２９はそのようなハードウェアを利用したテスト・アンド・セットと呼ばれる排他処理である。この一連の処理はアトミックに行う必要がある。ある処理をアトミックに行う、とは演算装置で当該処理を実行途中では当該演算装置の割込みや他の演算装置からのデータアクセスによる中断を一切受けない性質のことである。この手順では書き込みを行うデータである変数あるいはレジスタの参照を受け取り、その値を一旦保存し、当該パラメータの変数あるいはレジスタを“true”に書き換え、もとの一旦保持したレジスタの値を返す一連の処理である。図９はＣ言語の記述による擬似コードになっているが、ソフトウェアによる処理のみでは前記のアトミックな処理とすることができず、この処理をハードウェアあるいは専用ハードウェア上のマイクロコードとして実装する必要がある。
【００２４】
以下に示すのは上記のシステムをＣＡＮ通信を用いた２台の制御コントローラに配置したハードウェアをもつ車両に移植する場合の例であり、図８はそのハードウェア構成と、データフローを表す。電子制御システム１０２４は、スロットルセンサ１００７，水温センサ１００８，エアフローセンサ１００９，クランク角センサ１０１０から入力したエンジンの状態に基づき、点火プラグ駆動パルス１０１６，燃料噴射装置駆動パルス１０１７を出力することを目的とする。電子制御システム１０２４には二つの電子制御装置１００１，１００２が存在し、ＣＡＮバス１００３を介して接続しており、１００１，１００２は物理的に離れた場所に配置することができる。第１のＣＰＵ１０１８では、入力信号を取り込むためのアナログ・デジタル変換器（ＡＤ変換器１００４）、を介して各種センサ（１００７〜１００９）の情報を取り込み、第２の演算装置１０１９では、パルス入力回路１００５を介してクランク角センサ１０１０の情報を取り込み、タイマ・パルス出力回路１００６を介してアクチュエータ駆動信号である点火プラグ駆動パルス１０１６，燃料噴射装置駆動パルス１０１７を出力する。
【００２５】
本実施例ではセンサの入力をもとに外界の物理量を算出するセンサ値補正処理１０２７と第１ＯＳ１０２０を第１のＣＰＵ１０１８に割り当て、外界の物理量とクランク角センサから得られたエンジン回転位置をもとに点火制御１０１４，燃料噴射制御１０１５を行う処理と第２のＯＳ１０２１を第２のＣＰＵ１０１９に割り当てている。また、制御装置間では、ＣＡＮバス１００３上でスロットル開度１０１１，水温１０１２，吸入空気量１０１３のセンサから得られた制御対象の情報を、第１の演算装置１０１８から送信し第２の演算装置１０１９で受信する。上記のようなハードウェア構成においても、エンジン制御システムを実現するためのソフトウェアの構成は図２に記載の構成で実現できる。
【００２６】
図７はＣＡＮ通信を用いて通信を行うために、通信ドライバ部３０６のＣＡＮに対応した実装方式としてＣＡＮ通信処理部９０１を構成した例を示したものである。ＣＡＮ通信処理部は外部からアクセスする方法を定めたインターフェース部９０２と実際の共有メモリの読み出し，書き込み処理を行うドライバ部・テーブル部９０３とから構成される。インターフェース部９０２は送信９０４，受信９０５，送信完了９０６，受信完了９０７の４つのインターフェースを持つ。またドライバ部９０８には処理９１０〜９１３を持ち、通知処理テーブル９０９には通知処理９１４，９１５を持つ。これらの構成は図６に記載の共有メモリドライバと同一であり、この部分のソフトウェアを交換することで異なるハードウェア構成のシステムに同一の制御アプリケーションソフトウェアを搭載できる。
【００２７】
図４は上記に記載の構成を用いてソフトウェアの処理手順の詳細を示したものである。第１のＣＰＵ６０１上では制御アプリケーションソフトウェア６０６，通信上位部６０７，通信ドライバ部６０８が動作し、第１の電子制御装置６３８上の周辺ハードウェア６０２には、割込みコントローラ６０９，ネットワークコントローラ６１０が存在する。第２の電子制御装置６３９に搭載の第２のＣＰＵ６０５では、通信ドライバ部６１４，通信上位部６１５，制御アプリケーションソフトウェア６１６が動作する。周辺ハードウェア６０４にはネットワークコントローラ６１２，割込みコントローラ６１３が動作する。
【００２８】
上記の構成で第１のＣＰＵ６０１に搭載している制御アプリケーションソフトウェア６０６から第２のＣＰＵ６０５に搭載している制御アプリケーションソフトウェア６１６にＣＡＮバス６０３を介してデータを受け渡す詳細な手順を示す。まず、制御アプリケーションソフトウェア６０６からデータ送信の要求６１７が通信上位部６０７に対して発行されると、通信上位部６０７は送信データ長の調整や割り付け，ビット配置の調整などの送信データの前処理６１８を行った後に、通信ドライバ部６０８に対してデータの送信要求６１９を発行する。通信ドライバ部はネットワークコントローラ６１０を送信に用いるための送信操作６２０を行うと、ネットワークコントローラ６１０は送信開始６２１を行う。送信されたデータはＣＡＮバス６０３を介して第２の電子制御装置６３９と接続する。第２の電子制御装置６３９に搭載のネットワークコントローラ６１２は、ネットワーク上の信号を検知し受信６２２を開始する。受信が終了すると正常に受信ができた場合には受信通知を送信６２３する。第１の電子制御装置６３８上のネットワークコントローラ１６１０は正常受信通知を受信６２４し、正常に送信完了できたことを割込みコントローラ６０９に通知６２５する。割込みコントローラ６０９はこれを割込みとして第１のＣＰＵ６０１に通知し、第１のＣＰＵ６０１では送信完了割込み６２６として、登録した通信ドライバ部、すなわちＣＡＮ通信処理部内の送信完了インターフェース９０６を介して送信完了処理９１２を実行し、ここから送信完了通知として登録された通信上位部６０７の送信完了通知処理６２７の中で送信完了処理６２８を行う。
【００２９】
一方ＣＡＮバスからの受信が完了すると第２の電子制御装置６３９側では、受信を完了したネットワークコントローラ６１２から割込みコントローラ６１３へ受信の完了が通知６２９され、割込みコントローラ６１３から第２のＣＰＵ６０５に通知し、第２のＣＰＵ６０５では受信完了割込み処理６３０が起動され、この中から登録された通信上位部の受信完了通知６３１を実行する。次に通信上位部６１５はデータの受信６３２要求を通信ドライバ部６１４に対して発行し、通信ドライバ部６１４からネットワークコントローラ６１２の受信操作６３３を行い、データを取得して通信上位部６１５に保持する。第２のＣＰＵ６０５上で実行する制御アプリケーションソフトウェアはデータ取得６３４要求を発行しこれに基づいて点火制御６３６，燃料噴射制御６３７を行う。
【００３０】
本実施例によるソフトウェアでは、ハードウェアの構成が共有メモリによる連結か、ＣＡＮ通信による連結か、という物理的な構成が変わった場合に、図６に示す共有メモリドライバのインターフェース部８０２と図７に示すＣＡＮ通信ドライバのインターフェース部９０２が同じインターフェースを有しており、さらにその処理手順においても図５に示す共有メモリの実行手順中のドライバ部の呼び出し箇所である７１５，７２３，７２６，７２７と図４に示すＣＡＮ通信の実行手順中のドライバ部の呼び出し箇所である６１９，６２７，６３１，６３２とが対応しており、通信ドライバ部のみを入れ替えることで、制御アプリケーションソフトウェアの変更無く移植することが可能となる。このため移植のための工数を削減できる。
【００３１】
次に、本発明の第二の実施例について説明する。本実施例の目的は、実施例１に示した図８の制御システムと同じであるが、ハードウェア構成は異なる例である。本実施例の構成を図１０に示す。
【００３２】
二つの演算装置１２０２，１２１７が共有メモリ１２０３で接続された第１の電子制御装置１２０１と、ひとつの演算装置１２１１を有する第２の電子制御装置１２０９が、ネットワークバス１２０８を介して接続された制御システムである。第２の電子制御装置１２０９は、スロットルセンサ１２１２から得た入力値を、ＡＤ変換器１２１０を用いて取り込み、第３の演算装置１２１１上で動作するソフトウェアであるセンサ値補正処理１２１３によりスロットル開度の値を算出する。算出された値はネットワークコントローラ１２１５を介してＣＡＮバス１２０８上に送信される。第１の電子制御装置１２０１は、ネットワークコントローラ１２１６からこのデータを取得し、点火制御，燃料噴射制御を行う。また、第１の演算装置１２０２には図６に示す共有メモリ処理部が実装され、第２の演算装置１２１７には図６に示す共有メモリ処理部と図７に示すＣＡＮ通信処理部が実装され、第３の演算装置１２１１には図７に示すＣＡＮ通信処理部が搭載される。第一の実施例と同様に、図６の共有メモリ処理部と図７ＣＡＮ通信処理部は、ともに同一のインターフェース部８０２，９０２を有する。
【００３３】
本実施例の構成によれば、それぞれの演算装置上に搭載されるアプリケーションソフトウェアを変更することなく移植することが可能となる。これにより、複数の演算装置の間で動作するソフトウェアの負荷率にバラツキがある場合、負荷率の高い演算装置上の制御アプリケーションソフトウェアを余裕のある演算装置に移植することが可能となるため、電子制御装置の性能や容量により最適化したソフトウェアの構成の変更を制御アプリケーションソフトウェアを変更することなく可能となり、ソフトウェアの変更工数を削減することが可能となる。
【図面の簡単な説明】
【００３４】
【図１】ハードウェアの構成を示した図である。
【図２】ソフトウェアの階層構造を示した図である。
【図３】ハードウェアとデータフローを示した図である。
【図４】ＣＡＮ通信を利用した実行手順を示した図である。
【図５】共有メモリによる通信を利用した実行手順を示した図である。
【図６】共有メモリドライバの構成を示した図である。
【図７】ＣＡＮ通信ドライバの構成を示した図である。
【図８】ＣＡＮ通信利用時のデータフローを示した図である。
【図９】テスト・アンド・セットの処理を示した図である。
【図１０】マルチコアと通信の併用時のデータフローを示した図である。
【符号の説明】
【００３５】
２０１  マイコン
２０２  入力回路
２０３  第１の読出し専用メモリ
２０４  第１の揮発性読書きメモリ
２０５  第１の中央演算装置
２０６  共通の揮発性読書きメモリ
２０７  共通の読出し専用メモリ
２０８  第２の読出し専用メモリ
２０９  第２の揮発性読書きメモリ
２１０  第２の中央演算装置
２１１  出力回路
２１２  割込み制御回路
２１３  入力信号回路
２１４  駆動回路
２１５  コントロールユニット
２１６  センサ
２１７  アクチュエータ
３０１  制御アプリケーションソフトウェア部品
３０２  部品接続部
３０３  第１ソフトウェア
３０４  オペレーティングシステム
３０５，６０７，６１５，７０５，７１１  通信上位部
３０６，６０８，６１４，７０６，７１０  通信ドライバ部
３０７，４０１，１０１８  第１の演算装置
３０９  第２ソフトウェア
３１０  物理接続
３１１  論理接続
３１２，９０１  通信処理部
３１３  アプリケーションソフトウェア部
３１４，４０２，１０１９  第２の演算装置
４０３  共有メモリ
４０４，１００４  ＡＤ変換器
４０５，１００５  パルス入力回路
４０６，１００６  タイマ・パルス出力回路
４０７，１００７  スロットルセンサ
４０８，１００８  水温センサ
４０９，１００９  エアフローセンサ
４１０，１０１０  クランク角センサ
４１１，１０１１  スロットル開度
４１２，１０１２  水温
４１３  吸入空気量
４１４，１０１４  点火制御
４１５，１０１５  燃料噴射制御
４１６，１０１６  点火プラグ駆動パルス
４１７，１０１７  燃料噴射装置駆動パルス
４１８  電子制御ユニット
４１９  センサ値補正処理
４２０，１０２０  第１ＯＳ
４２１，１０２１  第２ＯＳ
６０１，７０１  第１のＣＰＵ  
６０２，６０４  周辺ハードウェア
６０３，１００３  ＣＡＮバス
６０５，７０３  第２のＣＰＵ
６０６，６１６，７０４  制御アプリケーションソフトウェア
６０９，６１３，７０９  割込みコントローラ
６１０，６１２  ネットワークコントローラ
６１７，７１３  要求
６１８，７１４  前処理
６１９，７１５  送信要求
６２０  送信操作
６２１  開始
７０２  ハードウェア
７０７  セマフォ
７０８  ＲＡＭ
７１２  制御アプリケーションソフト
７１６  取得処理
７１７，７２９  テスト・アンド・セット処理
７１８  書込み
７１９  解除
７２０  clear
７２１  送信完了割込み発生
７２２  送信完了割込み
７２３，８１４  送信完了通知
７２４  送信完了処理
７２５  受信完了割込み
７２６，８１５  受信完了通知
７２７  受信処理
７２８  保護領域取得処理
７３０  読出し
７３１，７３２  解除処理
７３３  データ取得要求
８０１  共有メモリ処理部
８０２，９０２  インターフェース部
８０３，９０３  ドライバ部・テーブル部
８０４，９０４  送信
８０５，９０５  受信
８０６，９０６  送信完了
８０７，９０７  受信完了
８０９  通知処理テーブル
１００１  第１の電子制御装置
１００２  第２の電子制御装置
１０１３  空気量
１０２４  電子制御システム
【図１】
2010061324.tif 000003
【図２】
2010061324.tif 000004
【図３】
2010061324.tif 000005
【図４】
2010061324.tif 000006
【図５】
2010061324.tif 000007
【図６】
2010061324.tif 000008
【図７】
2010061324.tif 000009
【図８】
2010061324.tif 000010
【図９】
2010061324.tif 000011
【図１０】
2010061324.tif 000012