(57)【特許請求の範囲】
【請求項１】
共通する通信線に接続された複数の車両制御装置を備え、車両に搭載された内燃機関の制御を、データの送受信を伴う前記複数の車両制御装置の協働によって実現する車両制御システムであって、
前記複数の車両制御装置の一つである第一の車両制御装置は、
前記内燃機関におけるクランク角の変化に応じてパルス信号としてのクランク角信号を入力するクランク角信号入力手段と、
前記クランク角信号入力手段による前記クランク角信号の入力毎に、前記クランク角信号の擬似信号であり、前記クランク角信号の有効エッジと同期したエッジを有するパルス信号である擬似クランク角信号を、前記通信線に出力する擬似信号出力手段と、
前記複数の車両制御装置の内、前記第一の車両制御装置とは異なる第二の車両制御装置に対し前記通信線を介して前記データを送信する手段であって、前記クランク角信号の入力間隔に基づき、前記通信線に対する前記擬似クランク角信号の出力停止後、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記データを送信する第一のデータ通信手段と、
を備え、
前記第二の車両制御装置は、
前記通信線を介して入力される前記擬似クランク角信号の当該入力を検知する擬似信号入力検知手段と、
前記擬似信号入力検知手段による検知結果に基づき、前記内燃機関のクランク角を特定するクランク角特定手段と、
前記通信線を介して前記第一の車両制御装置から送信される前記データを受信する第二のデータ通信手段と、
を備えること
を特徴とする車両制御システム。
【請求項２】
共通する通信線に接続された複数の車両制御装置を備え、車両に搭載された内燃機関の制御を、データの送受信を伴う前記複数の車両制御装置の協働によって実現する車両制御システムであって、
前記複数の車両制御装置の一つである第一の車両制御装置は、
前記内燃機関におけるクランク角の変化に応じてパルス信号としてのクランク角信号を入力するクランク角信号入力手段と、
前記クランク角信号入力手段による前記クランク角信号の入力毎に、前記クランク角信号の擬似信号である擬似クランク角信号を、前記通信線に出力する擬似信号出力手段と、
前記複数の車両制御装置の内、前記第一の車両制御装置とは異なる第二の車両制御装置に対し前記通信線を介して前記データを送信する手段であって、前記クランク角信号の入力間隔に基づき、前記通信線に対する前記擬似クランク角信号の出力停止後、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記データを送信する第一のデータ通信手段と、
を備え、
前記第二の車両制御装置は、
前記通信線を介して入力される前記擬似クランク角信号の当該入力を検知する擬似信号入力検知手段と、
前記擬似信号入力検知手段による検知結果に基づき、前記内燃機関のクランク角を特定するクランク角特定手段と、
前記通信線を介して前記第一の車両制御装置から送信される前記データを受信する第二のデータ通信手段と、
を備え、
前記第一のデータ通信手段と前記第二のデータ通信手段との間では、調歩同期式の通信が行われ、これによって、前記データの送信時には、一単位分の前記データである固定長のビット列の前後にスタートビット及びストップビットを含む通信信号が前記通信線に出力され、
前記擬似信号出力手段は、前記クランク角信号の入力毎に、前記スタートビットから前記ストップビットまでの前記通信信号の時間長以上の一定時間、前記通信線の信号レベルをアクティブレベルに切り替えることにより、前記通信信号とは区別される前記擬似クランク角信号を前記通信線に出力すること
を特徴とする車両制御システム。
【請求項３】
共通する通信線に接続された複数の車両制御装置を備え、車両に搭載された内燃機関の制御を、データの送受信を伴う前記複数の車両制御装置の協働によって実現する車両制御システムであって、
前記複数の車両制御装置の一つである第一の車両制御装置は、
前記内燃機関におけるクランク角の変化に応じてパルス信号としてのクランク角信号を入力するクランク角信号入力手段と、
前記クランク角信号入力手段による前記クランク角信号の入力毎に、前記クランク角信号の擬似信号である擬似クランク角信号を、前記通信線に出力する擬似信号出力手段と、
前記複数の車両制御装置の内、前記第一の車両制御装置とは異なる第二の車両制御装置に対し前記通信線を介して前記データを送信する手段であって、前記クランク角信号の入力間隔に基づき、前記通信線に対する前記擬似クランク角信号の出力停止後、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記データを送信する第一のデータ通信手段と、
を備え、
前記第二の車両制御装置は、
前記通信線を介して入力される前記擬似クランク角信号の当該入力を検知する擬似信号入力検知手段と、
前記擬似信号入力検知手段による検知結果に基づき、前記内燃機関のクランク角を特定するクランク角特定手段と、
前記通信線を介して前記第一の車両制御装置から送信される前記データを受信する第二のデータ通信手段と、
を備え、
前記擬似信号出力手段は、前記クランク角信号の入力毎に、一定時間、前記通信線の信号レベルをアクティブレベルに切り替えることにより、前記擬似クランク角信号を前記通信線に出力し、
前記第二のデータ通信手段は、前記擬似信号入力検知手段により前記擬似クランク角信号の入力が検知されると、前記通信線を介して前記第一の車両制御装置に対し応答信号を出力すると共に、前記データの受信待ち動作を開始し、
前記第一のデータ通信手段は、前記応答信号の入力後から前記擬似クランク角信号が前記通信線に出力されないと推定される期間に限って、前記第二の車両制御装置に対する前記データの送信動作を実行し、
前記擬似信号入力検知手段は、前記通信線での信号レベルがアクティブレベルに変化する事象が発生すると、その時点で前記擬似クランク角信号の入力を検知する一方、その後前記擬似クランク角信号が前記通信線に出力されないと推定される期間の終了時点までは、前記擬似クランク角信号の入力を検知する動作を無効にすること
を特徴とする車両制御システム。
【請求項４】
前記第二のデータ通信手段は、前記擬似信号入力検知手段の検知結果から特定される前記擬似クランク角信号の入力間隔に基づき、前記通信線に対する前記擬似クランク角信号の出力停止後、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記通信線を介して前記第一の車両制御装置に前記データを送信する構成にされ、
前記第一のデータ通信手段は、前記通信線を介して前記第二の車両制御装置から送信される前記データを受信する構成にされていること
を特徴とする請求項１〜請求項３のいずれか一項記載の車両制御システム。
【請求項５】
前記第一及び第二のデータ通信手段は、前記通信線に対する前記擬似クランク角信号の出力停止後、前記擬似クランク角信号が前記通信線に出力されないと推定される期間であって、自装置に前記データの送信権限がある期間に、前記データを送信すること
を特徴とする請求項４記載の車両制御システム。
【請求項６】
前記第一及び第二のデータ通信手段は、自装置に前記送信権限がある場合、前記データの一つとして、次に前記送信権限を付与する前記車両制御装置の識別コードを記した送信権限データを送信する構成にされ、前記通信線を介して自装置の識別コードが記された前記送信権限データを受信すると、当該受信後に発生する前記擬似クランク角信号の出力停止後の、前記擬似クランク角信号が前記通信線に出力されないと推定される期間を、自装置に前記データの送信権限がある期間と判断すること
を特徴とする請求項５記載の車両制御システム。
【請求項７】
前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記データを送信する動作は、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に送信可能なデータ数の範囲内で、送信対象のデータ数を決定し、前記通信線に対する前記擬似クランク角信号の出力停止後、前記決定した数の前記データを送信する動作によって実現されること
を特徴とする請求項１〜請求項６のいずれか一項記載の車両制御システム。
【請求項８】
前記第一の車両制御装置は、前記クランク角信号の入力毎に送信すべきデータの種類及び数が定義されたテーブルを前記内燃機関の回転数毎に記憶する記憶手段を有し、
前記第一のデータ通信手段は、前記クランク角信号の入力毎に、前記クランク角信号の入力間隔に対応する前記内燃機関の回転数の前記テーブルを参照し、前記通信線に対する前記擬似クランク角信号の出力停止後、当該テーブルに従う前記種類及び数のデータを、前記通信線を介して前記第二の車両制御装置に送信することによって、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記通信線を介して前記第二の車両制御装置に前記データを送信すること
を特徴とする請求項１〜請求項３のいずれか一項記載の車両制御システム。
【請求項９】
前記第一及び第二の車両制御装置の夫々は、前記クランク角信号の入力毎に送信すべきデータの種類、数及び送信元が定義されたテーブルを前記内燃機関の回転数毎に記憶する記憶手段を有し、
前記第一のデータ通信手段は、前記クランク角信号の入力毎に、前記クランク角信号の入力間隔に対応する前記内燃機関の回転数の前記テーブルを参照し、前記通信線に対する前記擬似クランク角信号の出力停止後、当該テーブルに従う送信元が自装置である場合には、当該テーブルに従う前記種類及び数のデータを、前記通信線を介して前記第二の車両制御装置に送信することによって、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記通信線を介して前記第二の車両制御装置に前記データを送信し、
前記第二のデータ通信手段は、前記クランク角信号の入力に起因して前記擬似信号入力検知手段が前記擬似クランク角信号の当該入力を検知する度に、前記擬似クランク角信号の入力間隔に対応する前記内燃機関の回転数の前記テーブルを参照し、前記擬似クランク角信号の出力停止後、当該テーブルに従う送信元が自装置である場合には、当該テーブルに従う前記種類及び数のデータを、前記通信線を介して前記第一の車両制御装置に送信することによって、前記擬似クランク角信号が前記通信線に出力されないと推定される期間に、前記通信線を介して前記第一の車両制御装置に前記データを送信すること
を特徴とする請求項４記載の車両制御システム。
【請求項１０】
前記擬似信号出力手段は、前記通信線の信号レベルをアクティブレベルに切り替えることにより、前記擬似クランク角信号を前記通信線に出力する構成にされ、
前記擬似信号入力検知手段は、前記通信線での信号レベルがアクティブレベルに変化する事象が発生すると、その時点で、前記擬似クランク角信号の入力を検知する一方、前記検知の契機となった前記事象の発生時点から、前記通信線に対する前記擬似クランク角信号の出力停止後の前記擬似クランク角信号が前記通信線に出力されないと推定される期間の終了時点までは、前記擬似クランク角信号の入力を検知する動作を無効にすることによって、前記擬似クランク角信号が入力される度に、前記擬似クランク角信号の入力を検知すること
を特徴とする請求項１又は請求項２記載の車両制御システム。
【請求項１１】
前記第一のデータ通信手段と前記第二のデータ通信手段との間では、調歩同期式の通信が行われ、これによって、前記データの送信時には、一単位分の前記データである固定長のビット列の前後にスタートビット及びストップビットを含む通信信号が前記通信線に出力され、
前記擬似信号出力手段は、前記クランク角信号の入力毎に、前記スタートビットから前記ストップビットまでの前記通信信号の時間長以上の一定時間、前記通信線の信号レベルをアクティブレベルに切り替えることにより、前記通信信号とは区別される前記擬似クランク角信号を前記通信線に出力すること
を特徴とする請求項１又は請求項３記載の車両制御システム。
【請求項１２】
前記第二のデータ通信手段は、前記擬似信号入力検知手段により前記擬似クランク角信号の入力が検知されると、前記通信線を介して前記第一の車両制御装置に対し応答信号を出力すると共に、前記データの受信待ち動作を開始し、
前記第一のデータ通信手段は、前記応答信号の入力後から前記第二の車両制御装置に対する前記データの送信動作を実行すること
を特徴とする請求項１、請求項２、又は請求項１０記載の車両制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された内燃機関の制御を行う車両制御システムに関する。
【背景技術】
【０００２】
従来、車両に搭載された内燃機関（エンジン）の制御を行う制御システムとしては、燃料圧力を測定する圧力センサからの出力に基づき、燃料噴射に関わる圧力変動態様を検出するシステムが知られている（特許文献１参照）。圧力変動態様は、インジェクタや燃料ポンプ等の噴射系システムの種類によって異なる。圧力変動態様の検出結果は、例えば、噴射系システムの特性に応じた最適な燃料噴射制御を行うために用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４４７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、噴射系システムの特性に応じた燃料噴射制御を行う制御システムを構築する方法としては、エンジン制御装置とは別に燃料噴射コントローラを設けて、一般的な制御をエンジン制御装置が実行し、噴射系システムの特性に依存した制御を燃料噴射コントローラが実行するように、制御システムを構築する方法が考えられる。この制御システムによれば、燃料噴射コントローラを組み替える程度で、様々な噴射系システムに好適な制御システムを効率的に構築することができる。
【０００５】
しかしながら、複数の車両制御装置（上記例によればエンジン制御装置及び燃料噴射コントローラ）の協働により、内燃機関の制御を行う場合には、各車両制御装置がクランク角の変化に応じた制御を行えるようにするために、車両制御装置の夫々に対してクランク角信号を入力する必要がある。そして、このクランク角信号として、クランク角センサの出力信号を各車両制御装置に入力する場合には、クランク角センサの出力信号を波形整形して、これを各車両制御装置に入力する必要があり、各車両制御装置に対して、波形整形用の入力回路を設ける必要がある。
【０００６】
本発明は、こうした問題に鑑みなされたものであり、車両制御装置の夫々にクランク角センサの出力信号を入力するための入力回路を設けなくても、車両制御装置の夫々が、他の車両制御装置と協働してクランク角の変化に応じた適切な内燃機関の制御を実行可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた本発明の車両制御システムは、共通する通信線に接続された複数の車両制御装置を備え、車両に搭載された内燃機関の制御を、データの送受信を伴う上記複数の車両制御装置の協働によって実現するものである。この車両制御システムにおいて、第一の車両制御装置及び当該第一の車両制御装置とは異なる第二の車両制御装置は、次のように構成にされる。
【０００８】
第一の車両制御装置は、クランク角信号入力手段と、擬似信号出力手段と、第一のデータ通信手段と、を備える。クランク角信号入力手段は、内燃機関におけるクランク角の変化に応じてパルス信号としてのクランク角信号を入力し、擬似信号出力手段は、クランク角信号入力手段によるクランク角信号の入力毎に、クランク角信号の擬似信号である擬似クランク角信号を通信線に出力し、第一のデータ通信手段は、このクランク角信号の入力間隔に基づき、通信線に対する擬似クランク角信号の出力停止後、擬似クランク角信号が通信線に出力されないと推定される期間に、第二の車両制御装置に対し通信線を介してデータを送信する。
【０００９】
一方、第二の車両制御装置は、擬似信号入力検知手段と、クランク角特定手段と、第二のデータ通信手段と、を備える。擬似信号入力検知手段は、通信線を介して入力される擬似クランク角信号の当該入力を検知するものであり、クランク角特定手段は、擬似信号入力検知手段による検知結果に基づき、内燃機関のクランク角を特定し、第二のデータ通信手段は、通信線を介して第一の車両制御装置から送信されるデータを受信する。
【００１０】
このように本発明の車両制御システムでは、車両制御に必要なデータの送受信に用いられる通信線を用いて、クランク角信号に対応する擬似クランク角信号を伝送する。従って、この車両制御システムによれば、第二の車両制御装置の夫々に、クランク角センサの出力信号を入力する入力回路を設ける必要がなく、更に、クランク角信号伝送専用の信号線を設置する必要もない。即ち、本発明の車両制御システムによれば、車両制御装置の夫々に、クランク角センサからの入力回路を設けなくとも、複数の車両制御装置において、クランク角の変化に応じた適切な車両制御を実行することができる。従って、本発明によれば、内燃機関の制御を行う車両制御システムとして優れたシステムを構築することができる。
【００１１】
ところで、上記第一及び第二の車両制御装置は、双方向にデータを送受信する構成にすることができる。例えば、第二のデータ通信手段は、擬似信号入力検知手段の検知結果から特定される擬似クランク角信号の入力間隔に基づき、通信線に対する擬似クランク角信号の出力停止後、擬似クランク角信号が通信線に出力されないと推定される期間に、通信線を介して第一の車両制御装置にデータを送信する構成にすることができ、第一のデータ通信手段は、このようにして通信線を介して第二の車両制御装置から送信されるデータを受信する構成にすることができる。
【００１２】
更に、全二重通信ではない場合等を考慮すると、通信の衝突が発生しないようにため、第一及び第二のデータ通信手段は、通信線に対する擬似クランク角信号の出力停止後、擬似クランク角信号が通信線に出力されないと推定される期間であって自装置にデータの送信権限がある期間に、データを送信する構成にすることができる。
【００１３】
そして、送信権限の有無は、例えば次の方法により判断することができる。即ち、第一及び第二のデータ通信手段は、自装置に送信権限がある場合、データの一つとして、次に送信権限を付与する車両制御装置の識別コードを記した送信権限データを送信し、通信線を介して自装置の識別コードが記された送信権限データを受信すると、当該受信後に発生する擬似クランク角信号の出力停止後の、擬似クランク角信号が通信線に出力されないと推定される期間を、自装置にデータの送信権限がある期間と判断する構成にすることができる。このようにして、送信権限を有する車両制御装置が次の車両制御装置に対して送信権限を付与すれば、通信の衝突を抑えて、第一及び第二の車両制御装置間で適切にデータを送受信することができる。
【００１４】
また、擬似クランク角信号が通信線に出力されないと推定される期間に、上記データを送信する動作は、擬似クランク角信号が通信線に出力されないと推定される期間に送信可能なデータ数の範囲内で、送信対象のデータ数を決定し、通信線に対する擬似クランク角信号の出力停止後、決定した数のデータを送信する動作によって実現することができる。
【００１５】
この他、第一の車両制御装置は、クランク角信号の入力毎に送信すべきデータの種類及び数が定義されたテーブルを内燃機関の回転数毎に記憶する記憶手段を有し、このテーブルに従ってデータの送信を行うことによって、擬似クランク角信号が通信線に出力されないと推定される期間に、第二の車両制御装置に対して必要なデータを送信する構成にされてもよい。
【００１６】
即ち、第一のデータ通信手段は、クランク角信号の入力毎に、クランク角信号の入力間隔に対応する内燃機関の回転数のテーブルを参照し、通信線に対する擬似クランク角信号の出力停止後、当該テーブルに従う種類及び数のデータを、通信線を介して第二の車両制御装置に送信することによって、擬似クランク角信号が通信線に出力されないと推定される期間に、通信線を介して第二の車両制御装置にデータを送信する構成にされてもよい。
【００１７】
この他、第一及び第二の車両制御装置間で双方向にデータ送受信する場合には、第一及び第二の車両制御装置の夫々に対し、上記内燃機関の回転数毎のテーブルを記憶する記憶手段を設けることができ、上記テーブルとしては、クランク角信号の入力毎に送信すべきデータの種類及び数の他、このデータの送信元が定義されたデータを設けることができる。
【００１８】
そして、第一のデータ通信手段は、クランク角信号の入力毎に、クランク角信号の入力間隔に対応する内燃機関の回転数のテーブルを参照し、通信線に対する擬似クランク角信号の出力停止後、当該テーブルに従う送信元が自装置である場合には、当該テーブルに従う種類及び数のデータを、通信線を介して第二の車両制御装置に送信する構成にすることができる。同様に、第二のデータ通信手段は、クランク角信号の入力に起因して擬似信号入力検知手段が擬似クランク角信号の当該入力を検知する度に、擬似クランク角信号の入力間隔に対応する内燃機関の回転数のテーブルを参照し、擬似クランク角信号の出力停止後、当該テーブルに従う送信元が自装置である場合には、当該テーブルに従う種類及び数のデータを、通信線を介して第一の車両制御装置に送信する構成にすることができる。
【００１９】
このように第一及び第二の車両制御装置間でデータの送受信を行えば、通信の衝突が生じないようにしつつ、擬似クランク角信号が通信線に出力されない期間内に適切にデータを送受信することができる。
【００２０】
この他、擬似信号出力手段は、通信線の信号レベルをアクティブレベルに切り替えることにより、擬似クランク角信号を通信線に出力し、擬似信号入力検知手段は、通信線での信号レベルがアクティブレベルに変化する事象が発生すると、その時点で、擬似クランク角信号の入力を検知する構成にすることができる。このように車両制御システムを構成することによって、第一の車両制御装置におけるクランク角信号の入力タイミングから少ないタイムラグで第二の車両制御装置において擬似クランク角信号の入力を検知することができ、第二の車両制御装置において、第一の車両制御装置と同様の精度で各時刻のクランク角を特定することができる。
【００２１】
また、このように擬似クランク角信号の入力を検知する場合には、データの送信時に通信線に出力される通信信号を、擬似クランク角信号として検知しないように、擬似信号入力検知手段を、次のように構成されるとよい。
【００２２】
即ち、擬似信号入力検知手段は、通信線での信号レベルがアクティブレベルに変化する事象が発生すると、その時点で、擬似クランク角信号の入力を検知する一方、検知の契機となった事象の発生時点から、通信線に対する擬似クランク角信号の出力停止後の擬似クランク角信号が通信線に出力されないと推定される期間の終了時点までは、擬似クランク角信号の入力を検知する動作を無効にすることによって、擬似クランク角信号が入力される度に、擬似クランク角信号の入力を検知する構成にされるとよい。
【００２３】
上述したようにデータの送信は、擬似クランク角信号の出力停止後の擬似クランク角信号が通信線に出力されないと推定される期間に行われるため、この期間において、擬似クランク角信号の入力を検知する動作を無効にすれば、通信信号の受信を擬似クランク角信号の入力として検知せずに済み、擬似クランク角信号を適切に第二の車両制御装置に伝達することができる。
【００２４】
また、第二のデータ通信手段において擬似クランク角信号が通信信号と誤解釈されないようにするために、車両制御システムは、次のように構成することができる。例えば、第一のデータ通信手段と第二のデータ通信手段との間では、調歩同期式の通信が行われ、データの送信時には、一単位分のデータである固定長のビット列の前後にスタートビット及びストップビットを含む通信信号が通信線に出力される環境において、擬似信号出力手段は、クランク角信号の入力毎に、スタートビットからストップビットまでの通信信号の時間長以上の一定時間、通信線の信号レベルをアクティブレベルに切り替えることにより、通信信号とは区別される擬似クランク角信号を通信線に出力する構成にすることができる。通信信号に適合しない、このような擬似クランク角信号の出力によって、第二のデータ通信手段では、擬似クランク角信号を通信信号と誤解釈せずに済み、第一及び第二の車両制御装置間では、データを適切に送受信することができる。
【００２５】
また、車両制御システムは、次のように構成されてもよい。即ち、第二のデータ通信手段は、擬似信号入力検知手段により擬似クランク角信号の入力が検知されると、通信線を介して第一の車両制御装置に対し応答信号を出力すると共に、データの受信待ち動作を開始し、第一のデータ通信手段は、応答信号の入力後から第二の車両制御装置に対するデータの送信動作を実行する構成にされてもよい。この構成によれば、第一の車両制御装置における第一のデータ通信手段は、第二の車両制御装置がデータ受信可能となったことを確認した後、データの送信動作を開始することができ、第二の車両制御装置におけるデータ受信の失敗を抑えることができて、通信の信頼性を高めることができる。
【図面の簡単な説明】
【００２６】
【図１】車両制御システム１の構成を表すブロック図である。
【図２】第一実施例での各種信号及び動作の変化を示すタイムチャートである。
【図３】マイコン２０，４０が実行する処理の概要を示す図である。
【図４】演算部２１が実行する通信制御処理を表すフローチャートである。
【図５】演算部２１，４１が実行する定時処理を表すフローチャートである。
【図６】演算部２１，４１が実行する送信処理を表すフローチャートである。
【図７】エンスト時の各種信号及び動作の変化を示すタイムチャートである。
【図８】演算部２１，４１が実行する受信処理を表すフローチャートである。
【図９】受信エラー時の各種信号及び動作の変化を示すタイムチャートである。
【図１０】演算部４１が実行する通信制御処理を表すフローチャートである。
【図１１】第二実施例での各種信号及び動作の変化を示すタイムチャートである。
【図１２】エンジン回転数毎のスケジュールデータの構成を表す図である。
【図１３】演算部２１が実行する通信制御処理を表すフローチャートである。
【図１４】演算部２１，４１が実行する定時処理を表すフローチャートである。
【図１５】演算部２１，４１が実行する送信処理を表すフローチャートである。
【図１６】演算部２１，４１が実行する受信処理を表すフローチャートである。
【図１７】演算部４１が実行する通信制御処理を表すフローチャートである。
【図１８】変形例の車両制御システム１の構成を表すブロック図である。
【発明を実施するための形態】
【００２７】
以下に本発明の実施例について、図面と共に説明する。
［第一実施例］
図１に示す本実施例の車両制御システム１は、車両に搭載された内燃機関（エンジン）を制御する制御システムであり、具体的には、各気筒に設置されたインジェクタ３からの燃料噴射を制御するシステムである。この車両制御システム１は、メインユニット１０とサブユニット３０とが共通する通信線ＬＮを通じて互いにデータ通信可能に接続された構成にされ、制御に必要なデータの送受信を伴って、これら複数ユニット１０，３０の協働により燃料噴射制御を実現する。
【００２８】
具体的に、通信線ＬＮは、単線の通信線として構成され、メインユニット１０とサブユニット３０との間のデータ通信は、シングルエンド信号を用いたシリアル通信により実現される。この通信線ＬＮには、必要に応じてクロック信号伝送用の信号線やその他の制御線が併設される。
【００２９】
また、メインユニット１０は、所謂エンジンＥＣＵであり、内燃機関の統括制御を行う車両制御装置として構成される。このメインユニット１０は、入力回路１１と、擬似クランク角信号生成回路１５と、マイクロコンピュータ（以下、単に「マイコン」と表現する）２０と、を備える。
【００３０】
入力回路１１は、内燃機関のクランク軸に取り付けられたクランク角センサＳＮの出力信号を波形整形して、クランク角の変化に応じたパルス信号としてのクランク角信号（図１及び図２に示す「ＣＲＮＫ」）を入力するものである。クランク角センサＳＮは、例えば、ロータリエンコーダにより構成され、クランク角の変化に応じた矩形波や正弦波を出力する。この波形は、メーカや製品によって異なる。入力回路１１は、このような製品毎に異なる波形を出力するクランク角センサＳＮの出力信号を波形整形して、クランク角が所定角度変化する度（例えば６度変化する度）に、規定のクランク角信号をマイコン２０に入力する。
【００３１】
一方、擬似クランク角信号生成回路１５は、入力回路１１からクランク角信号（Ｈｉ）が入力されると、図２に示すように、その入力開始タイミングから所定時間、通信線ＬＮの信号レベルをインアクティブレベル（Ｈｉ）からアクティブレベル（Ｌｏ）に切り替えることによって、クランク角信号の擬似信号である擬似クランク角信号（図１及び図２に示す「Ｐｃｒ」）を通信線ＬＮに出力するものである。具体的に、擬似クランク角信号は、メインユニット１０とサブユニット３０との間で行われるシリアル通信において通信線ＬＮに出力される通信信号では生じることのない時間、アクティブレベル（Ｌｏ）を継続する信号として通信線ＬＮに出力される。図２に示す例によれば、擬似クランク角信号は、データ通信で用いられるスタートビット及びストップビットを含む通信信号（フレーム）の長さに対応する１０ビット分の時間アクティブレベル（Ｌｏ）を継続する信号として通信線ＬＮに出力される。
【００３２】
また、マイコン２０は、周知のマイコンと同様のハードウェア構成にされ、内燃機関の制御を含む各種プログラムに従う処理を実行する演算部２１の他、通信線ＬＮに接続された送受信回路２２と、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）２３と、演算部２１によるプログラム実行時に一時記憶メモリとして使用されるＲＡＭ２５と、演算部２１により実行される各種プログラムを記憶するＲＯＭ２６と、エッジ検出回路２７と、を備える。
【００３３】
送受信回路２２は、通信線ＬＮを介してサブユニット３０とデータ通信するためのものであり、調歩同期式のシリアル通信により通信線ＬＮに接続された他の装置（サブユニット３０）とデータ通信するものである。周知のように、調歩同期式のシリアル通信では、一単位分のデータ（１ワード）毎に、このデータの先頭にスタートビットを付し、このデータの末尾にストップビットを付してなる通信信号（フレーム）を通信線ＬＮに出力する。
【００３４】
本実施例では、８ビット単位のデータ毎に、１ビット分のスタートビット及び１ビット分のストップビットを付加してなる通信信号を通信線ＬＮに出力する。従って、一単位分の通信信号（１フレーム）は、１０ビット分の信号として構成される。スタートビット及びストップビットは、互いに異なる値を示し、図２に示す例によれば、スタートビットは、アクティブレベルであるＬｏを採り、ストップビットは、インアクティブレベルであるＨｉを採る。
【００３５】
即ち、シリアル通信に用いられる通信信号は、１０ビット分の時間以上、アクティブレベル（Ｌｏ）を継続して採ることがない。本実施例では、このような理由により、上述したように擬似クランク角信号を１０ビット分の信号で定義している。
【００３６】
この送受信回路２２は、図示しない内蔵の送信バッファに格納された送信対象のデータを上述した通信方式で送信し、通信線ＬＮを介して受信したデータを図示しない内蔵の受信バッファに蓄積する。そして、この送受信回路２２は、受信信号のストップビットの値が正常値でない場合、これを受信エラーとして検知する。この種の受信エラーを含む送受信回路２２で検知される各種受信エラーは、割込み（以下「受信エラー割込み」と表現する）により演算部２１に通知される。
【００３７】
また、ＤＭＡＣ２３は、送受信回路２２とＲＡＭ２５との間のデータ転送を、演算部２１による読出／書込を必要とせずに直接的に実現するものである。ＤＭＡＣ２３は、演算部２１から転送命令が入力されると、ＲＡＭ２５の予め定められた送信メモリ領域に格納されたデータを読み出して、送受信回路２２の送信バッファに順次書き込む。これによって、上記データは、送受信回路２２を介し上記通信信号として通信線ＬＮに出力される。また、ＤＭＡＣ２３は、送受信回路２２からの要求に応じて送受信回路２２の受信バッファが記憶する受信データを読み出し、これをＲＡＭ２５の予め定められた受信メモリ領域に書き込む。
【００３８】
この他、エッジ検出回路２７は、例えばインプットキャプチャにより構成されるものであり、入力回路１１の出力端に接続され、入力回路１１からクランク角信号が入力されると、その信号エッジ（ＬｏからＨｉへの信号エッジ）を検出して、当該検出毎に、演算部２１に対する割込みを発生させるように構成されたものである。このエッジ検出回路２７は、周知のインプットキャプチャと同様、複数の入力チャンネルを備える構成にすることができる。尚、図１には、エッジ検出回路２７に対する複数経路からの入力を示すが、破線で示す入力経路は、後述する第二実施例の構成を示したものであり、本実施例のエッジ検出回路２７に対しては、このような入力経路は設けられていない点に注意されたい。
【００３９】
続いて、サブユニット３０の構成について説明する。サブユニット３０は、噴射系システムの特性に応じた詳細な燃料噴射制御をメインユニット１０（エンジンＥＣＵ）と協働して実現する燃料噴射コントローラであり、マイコン４０及び駆動回路５０を備える。そして、マイコン４０は、燃料噴射制御を含む各種プログラムに従う処理を実行する演算部４１の他、送受信回路４２と、ＤＭＡＣ４３と、演算部４１によるプログラム実行時に一時記憶メモリとして使用されるＲＡＭ４５と、演算部４１により実行される各種プログラムを記憶するＲＯＭ４６と、エッジ検出回路４７と、出力ポート４９と、を備える。
【００４０】
送受信回路４２は、メインユニット１０の送受信回路２２と同一の通信線ＬＮに接続され、メインユニット１０の送受信回路２２と同一構成にされて、同一通信方式により、通信線ＬＮに接続されたメインユニット１０とデータ通信を行うものである。即ち、送受信回路４２は、メインユニット１０の送受信回路２２と同様に、図示しない内蔵の送信バッファに格納された送信対象のデータを、上記スタートビット及びストップビットを含む通信信号（フレーム）に変換して通信線ＬＮに出力し、当該通信信号を相手先に送信する。また、上記通信信号（フレーム）を受信すると、この通信信号に含まれるデータをシリアル通信による受信データとして図示しない内蔵の受信バッファに格納する。そして、この送受信回路４２は、受信信号のストップビットの値が正常値でない場合、これを受信エラーとして検知する。この種の受信エラーを含む送受信回路４２で検知される各種受信エラーは、割込み（受信エラー割込み）により演算部４１に通知される。
【００４１】
また、ＤＭＡＣ４３は、ＤＭＡＣ２３と同様、送受信回路４２とＲＡＭ４５との間のデータ転送を行うものである。即ち、ＤＭＡＣ４３は、演算部４１から転送命令が入力されると、ＲＡＭ４５の送信メモリ領域に格納された送信対象のデータを読み出して、送受信回路４２の送信バッファに順次書き込む。また、送受信回路４２からの要求に応じて送受信回路４２の受信バッファが記憶する受信データを順次読み出して、これをＲＡＭ４５の受信メモリ領域に書き込む。
【００４２】
この他、エッジ検出回路４７は、メインユニット１０と同様に、例えばインプットキャプチャにより構成され、通信線ＬＮから擬似クランク角信号が入力されると、その信号エッジを検出して、当該検出毎に、演算部４１に対する割込みを発生させる。具体的に、このエッジ検出回路４７は、通信線ＬＮの信号レベルがインアクティブレベル（Ｈｉ）からアクティブレベル（Ｌｏ）に変化する信号エッジを検出すると、これを擬似クランク角信号の入力とみなして割込みを発生させる。
【００４３】
但し、このエッジ検出回路４７は、擬似クランク角信号に対する割込みマスクが設定されると、割込みマスクが解除されるまで、上記信号エッジの検出による割込みの発生を禁止することにより、演算部４１に対し上記信号エッジの検出を無効化する。この割込みマスクは、送受信回路２２，４２間でデータ通信が行われる期間に有効となるように演算部４１により設定される（詳細後述）。このような割込みマスクの設定／解除によって、エッジ検出回路４７は、通信線ＬＮを伝送する擬似クランク角信号及び通信信号のうち、擬似クランク角信号の入力に対し割込みを発生させて、擬似クランク角信号の入力を演算部４１に通知する。
【００４４】
また、出力ポート４９には、駆動回路５０が接続されており、マイコン４０の演算部４１は、この出力ポート４９を介して駆動回路５０に制御信号を入力することで、駆動回路５０を介してインジェクタ３の駆動制御を行い、インジェクタ３による燃料噴射を制御する。例えば、噴射時期や噴射時間を制御する。また、このインジェクタ３が備える図示しないセンサ（圧力センサ等）からの出力信号は、マイコン４０が備える図示しないＡ／Ｄ変換器等を通じて演算部４１に入力され、インジェクタ３の駆動制御に用いられる。尚、図１には、出力ポート４９から通信線ＬＮへの接続経路が破線により示されているが、この構成は、後述する第二実施例の構成を示したものであることに注意されたい。
【００４５】
続いて、図２及び図３を用いてメインユニット１０及びサブユニット３０の動作概要を説明する。メインユニット１０では、入力回路１１からクランク角信号が入力されると、演算部２１がエッジ検出回路２７から発生する割込みに対応して、図３に示すクランク角更新処理ＰＲ１及び通信制御処理ＰＲ２を実行し、クランク角更新処理ＰＲ１では、入力されたクランク角信号に基づき、メインユニット１０にて記憶保持するクランク角を更新する。このクランク角の情報は、メインユニット１０における内燃機関の制御に用いられる。
また、通信制御処理ＰＲ２では、データ送信権限が自ユニットにあるか否かを判断し、データ送信権限が自ユニットにある場合には、送信処理によるデータ送信を許可して、擬似クランク角信号生成回路１５による擬似クランク角信号の出力完了後、燃料噴射制御に必要なデータがサブユニット３０に対して送信されるようにする。ここで送信されるデータとしては、各気筒の燃料噴射時期や噴射量が記されたデータを一例に挙げることができる。
【００４６】
一方、サブユニット３０では、通信線ＬＮを通じて擬似クランク角信号が入力されると、演算部４１がエッジ検出回路４７から発生する割込みに対応して、図３に示すようにクランク角更新処理ＰＲ３及び通信制御処理ＰＲ４を実行し、クランク角更新処理ＰＲ３では、入力された擬似クランク角信号に基づき、サブユニット３０にて記憶保持するクランク角を更新する。このクランク角の情報は、サブユニット３０における内燃機関の制御（燃料噴射制御）に用いられる。
また、通信制御処理ＰＲ４では、擬似クランク角信号に対する割込みマスクを設定する一方、後述する手法にてエッジ検出回路４７に対して割込みマスク解除のタイマ設定を行うことにより、次に擬似クランク角信号が入力されると推定される時刻より前に、エッジ検出回路４７にて当該割込みマスクが解除されるようにする。これによって、サブユニット３０の演算部４１は、通信信号による通信線ＬＮの信号レベルの変化に起因するエッジ検出回路４７からの上記割込みが発生しないようにする一方、擬似クランク角信号の入力時には、上記割込みが発生するように、エッジ検出回路４７を設定する。そして、サブユニット３０の演算部４１は、この割込みマスクの継続中に、メインユニット１０から送信されてくるデータを、送受信回路４２を介して受信する。
【００４７】
この他、通信制御処理ＰＲ４では、データ送信権限が自ユニットにあるか否かを判断し、データ送信権限が自ユニットにある場合には、送信処理によるデータ送信を許可して、擬似クランク角信号の出力完了後、燃料噴射制御に必要なデータがメインユニット１０に対して送信されるようにする。ここで送信されるデータとしては、各気筒のインジェクタ３による燃料噴射の結果（例えば、燃料噴射時間）やインジェクタ３に搭載されるセンサによる検出結果（例えば、圧力センサによる圧力検出値）が記されたデータを一例に挙げることができる。メインユニット１０の演算部２１は、上記割込みマスクの継続中に、このようにサブユニット３０から送信されてくるデータを、送受信回路２２を介して受信する。
【００４８】
続いて、クランク角信号の入力を契機にエッジ検出回路２７から発生する割込みに対応してメインユニット１０の演算部２１が実行する通信制御処理ＰＲ２の詳細を、図４を用いて説明する。メインユニット１０の演算部２１は、図４に示す処理を開始すると、クランク間時間として、クランク角信号の入力間隔を算出する（Ｓ１１０）。具体的には、クランク間時間として、今回のクランク角信号の入力開始時刻と前回のクランク角信号の入力開始時刻との時間差を算出する。
【００４９】
その後、演算部２１は、擬似クランク角信号生成回路１５による擬似クランク角信号の出力が完了するまで待機し（Ｓ１２０）、擬似クランク角信号の出力が完了すると、Ｓ１３０に移行する。尚、擬似クランク角信号の出力が完了したか否かは、例えば、クランク角信号の入力開始時刻からの経過時間で判断することができる。
【００５０】
Ｓ１３０に移行すると、演算部２１は、送信ユニットの設定値を参照することにより、送信ユニットが自ユニットであるか否かを判断する。ここで言う送信ユニットとは、シリアル通信によるデータ送信権限を有する車両制御装置（メインユニット１０又はサブユニット３０）のことを言い、送信ユニットの設定値は、データ送信権限を有する車両制御装置の識別コードを示す。この送信ユニットの設定値は、メインユニット１０及びサブユニット３０の夫々において、起動時にメインユニット１０の識別コードに初期化される。
【００５１】
そして、送信ユニットが自ユニットであると判断すると（Ｓ１３０でＹｅｓ）、演算部２１は、今回のクランク角信号の発生を契機とした擬似クランク角信号の通信線ＬＮへの出力開始時に、サブユニット３０において上記割込みマスクが解除されていない状態（図９参照）であったか否かを判断する（Ｓ１４０）。上記割込みマスクの継続時間は、サブユニット３０において、直前の擬似クランク角信号の入力間隔に基づき所定規則により決定される。このような割込みマスクが解除されていない状態は、エンジン回転の急変動により擬似クランク角信号の入力間隔が急に短くなる方向に変化した場合に発生し得る。
【００５２】
メインユニット１０は、このような割込みマスクの継続時間を、擬似クランク角信号の入力間隔に対応する前回のＳ１１０で算出した上記クランク間時間から上記規則に従って特定する。そして、このように特定された割込みマスクの継続時間から、サブユニット３０において上記割込みマスクが解除されていない状態であったか否かを判断する。
【００５３】
例えば、今回のＳ１１０で算出した上記クランク間時間よりも、上記特定した割込みマスクの継続時間が長ければ、今回のクランク角信号の発生による擬似クランク角信号の出力開始時に、サブユニット３０において擬似クランク角信号に対する上記割込みマスクが解除されていない状態であったと判断する。
【００５４】
尚、このような割込みマスクが解除されていない状態の発生は、サブユニット３０において割込みマスクの継続時間を短めに設定することで回避することができる。但し、本実施例によれば、エッジ検出回路４７から通信信号に起因する上記割込みが発生しないように、割込みマスクが設定されている期間に限って、通信信号を送信する。このため、割込みマスクの継続時間を短めに設定すると、データ通信に確保可能な時間が短くなるといった欠点がある。
【００５５】
ここで、上記割込みマスクが解除されていない状態であったと判断すると（Ｓ１４０でＹｅｓ）、演算部２１は、Ｓ１５０，Ｓ１６０の処理を実行せずに、当該通信制御処理ＰＲ２を終了することで、今回のクランク角信号の入力を契機とするデータ通信を禁止する。ここで、データ通信を禁止するのは、上記状態が発生した状況では、仮にデータ通信を開始しても、サブユニット３０では、データ受信を正常に行うことができない可能性があるためである。
【００５６】
一方、上記割込みマスクが解除されている状態であったと判断すると（Ｓ１４０でＮｏ）、演算部２１は、Ｓ１１０で算出したクランク間時間に基づき、今回の擬似クランク角信号の入力によりサブユニット３０において設定される割込みマスクの継続時間を特定し、この割込みマスクの継続中にデータ送信が完了するように、サブユニット３０に対して送信する制御データ群（以下「送信対象データ群」と表現する）を決定する（Ｓ１５０）。具体的には、サブユニット３０に対して送信する制御データの数及び種類を決定する。尚、制御データとは、上記燃料噴射制御に必要なデータのことである。その後、演算部２１は、自ユニットの送信許可フラグをオンに設定することで、図６に示す送信処理によるデータ送信を許可し（Ｓ１６０）、当該通信制御処理ＰＲ２を終了する。この設定により、後述するようにメインユニット１０からは、Ｓ１５０で決定した数及び種類の制御データが送受信回路２２を介してサブユニット３０に送信される。
【００５７】
尚、メインユニット１０からサブユニット３０へ送信すべき制御データ及びサブユニット３０からメインユニット１０へ送信すべき制御データは、クランク角に応じて概ね定まるが、本実施例では、クランク角信号が発生する角度単位で送信すべき制御データを詳細に定めておらず、当該角度単位より広い角度範囲で送信すべき制御データを定めている。
【００５８】
即ち、Ｓ１５０では、このような角度範囲内において送信すべき制御データとして定められた制御データ群の内、今回のクランク角信号の入力に応じて送信すべき制御データ群を、それまでに送信した制御データ群と、現時点で未送信の制御データ群と、今回の割込みマスクの継続時間とに基づいて決定する。この際には、後述するように、制御データ群と共に、識別子や、送信権限データ（図６参照）を送信する必要があることも考慮して、これらを含んだ一連のデータ通信が、割込みマスクの継続時間内に終了するように、送信対象データ群を決定する。
【００５９】
続いて、メインユニット１０の演算部２１が上記通信制御処理ＰＲ２とは別に、所定時間毎に実行する図５に示す定時処理について説明する。この定時処理は、例えば、車両制御システム１が構築された自車両において発生し得るクランク間時間の最小値よりも十分に短い時間間隔で実行される。
【００６０】
図５に示す定時処理を開始すると、演算部２１は、通信線ＬＮに対する擬似クランク角信号の出力（即ち１０ビット分の出力）が完了しているか否かを判断する（Ｓ２１０）。そして、擬似クランク角信号が出力されている状態にあり、擬似クランク角信号の出力が完了していないと判断すると（Ｓ２１０でＮｏ）、当該定時処理を終了する。一方、擬似クランク角信号の出力が完了していると判断すると（Ｓ２１０でＹｅｓ）、自車両がエンスト中であるか否かを判断する（Ｓ２２０）。そして、エンスト中ではないと判断すると（Ｓ２２０でＮｏ）、Ｓ２８０に移行して、図６に示す送信処理を実行する。
【００６１】
ここで、図６に示す送信処理の詳細を説明する。送信処理を開始すると、演算部２１は、自ユニットの上記送信許可フラグがオンに設定されているか否かを判断し（Ｓ３１０）、送信許可フラグがオフに設定されていると判断すると（Ｓ３１０でＮｏ）、Ｓ３２０〜Ｓ３５０の処理を実行することなく当該送信処理を終了することにより、実質的にはデータ送信のための処理を何らすることなく当該送信処理を終了する。
【００６２】
一方、送信許可フラグがオンに設定されていると判断すると（Ｓ３１０でＹｅｓ）、Ｓ３２０に移行し、Ｓ３２０，Ｓ３３０の処理を繰り返し実行することにより、Ｓ１５０で決定された送信対象データ群をＲＡＭ２５の送信メモリ領域に送信順に書き込む。
【００６３】
具体的に、Ｓ３２０において演算部２１は、送信対象データ（制御データ）の全てをＲＡＭ２５の送信メモリ領域に書き込んだか否かを判断し、書き込んでいないと判断すると（Ｓ３２０でＮｏ）、Ｓ３３０に移行して、送信メモリ領域に書き込んでいない送信対象データの内、送信順が最も若い送信対象データを、このデータの識別子と共に送信メモリ領域に書き込む。尚、本実施例において、識別子及び制御データは夫々、一単位分の通信信号で（即ち１フレームで）送信可能な８ビットのデータとして構成され、図２等に示すように、識別子及び制御データは、識別子、制御データの順に夫々、スタートビット及びストップビットを含む通信信号として通信線ＬＮに出力される。Ｓ３３０では、この識別子を先頭とする識別子及び制御データの組を、送信メモリ領域に書き込む。そして、Ｓ３３０の処理を終えるとＳ３２０に戻る。演算部２１は、このような処理を繰り返すことで、送信対象データの夫々をＲＡＭ２５の送信メモリ領域に送信順に書き込む。
【００６４】
また、送信対象データの全てを、ＲＡＭ２５の送信メモリ領域に書き込んだと判断すると（Ｓ３２０でＹｅｓ）、演算部２１は、次に送信ユニットに設定されるべき車両制御装置の識別コードを記した送信権限データを生成し、これを送信権限データの識別子と共に送信メモリ領域に書き込む（Ｓ３４０）。尚、ここで言う「次に送信ユニットに設定されるべき車両制御装置」は、自分自身（メインユニット１０）である場合も有り得る。送信ユニットに設定されるべき車両制御装置の情報は、上述したクランク角に応じて送信すべきデータの情報と関連付けて、各車両制御装置（メインユニット１０及びサブユニット３０）が予めＲＯＭに記憶する。付言すると、この送信権限データは、制御データと同様、一単位分の通信信号として送信可能な８ビットのデータとして構成される。
【００６５】
演算部２１は、上述したＳ３２０〜Ｓ３４０の処理により、上記送信対象データ群の送信後に送信権限データが送信されるように、通信データの一群（即ち、識別子、制御データ及び送信権限データの一群）を配列して送信メモリ領域に書き込む。その後、ＤＭＡＣ２３に対して転送命令を入力することにより（Ｓ３５０）、ＤＭＡＣ２３に送信メモリ領域に書き込まれた通信データの一群を、送受信回路２２の送信バッファに転送させて、送受信回路２２から、これら通信データの一群が順にサブユニット３０に向けて送信されるようにする。
【００６６】
メインユニット１０の演算部２１は、Ｓ２８０（図５参照）において、上記内容の送信処理を終えると、送信許可フラグをオフに設定し（Ｓ２９０）、定時処理を終了する。
一方、演算部２１は、Ｓ２２０においてエンスト中であると判断すると、エンスト発生直後であるか否かを判断する（Ｓ２３０）。ここでは、前回の定時処理でエンスト中でないと判断し今回の定時処理でエンスト中であると判断した場合に、エンスト発生直後であると判断する（Ｓ２３０）。そして、エンスト発生直後であると判断すると（Ｓ２３０でＹｅｓ）、Ｓ２５０に移行し、送信ユニットをメインユニット１０に設定更新する。
【００６７】
その後、演算部２１は、Ｓ２６０に移行して、送信ユニットが自ユニットであるか否かを判断し、送信ユニットが自ユニットであると判断すると（Ｓ２６０でＹｅｓ）、エンスト対処に必要な制御データ群を送信対象データ群に決定し（Ｓ２７０）、自ユニットの送信許可フラグをオンに設定した後（Ｓ２７５）、Ｓ２８０以降の処理を実行することで、送信処理のＳ３３０では、Ｓ２７０で決定した送信対象データを順に送信メモリ領域に書き込み、ＤＭＡＣ２３及び送受信回路２２を介して、これらをサブユニット３０に送信する。一方、送信ユニットが自ユニットではないと判断すると（Ｓ２６０でＮｏ）、当該定時処理を終了する。
【００６８】
この他、Ｓ２３０において、エンスト発生直後ではないと判断すると、演算部２１は、Ｓ２５０の処理をスキップしてＳ２６０以降の処理を実行する。これにより、演算部２１は、図７に示すように、内燃機関が再始動してクランク角信号の入力が再開されるまで、エンスト対処（エンスト解消）に必要なデータ通信をサブユニット３０との間で継続的に実行する。
【００６９】
一方、メインユニット１０の演算部２１は、上記割込みマスクの継続中に行われる上記データ通信による一連のデータ受信が完了すると発生する受信割込み又は上記受信エラー割込みに応じて、図８に示す受信処理を実行することにより、送受信回路２２の受信バッファからＲＡＭ２５の受信メモリ領域に転送された一連の受信データ群を、識別子及びデータ本体（制御データ又は送信権限データ）の組毎に、受信順に読み出し、この読み出したデータに対応した処理を実行する。
【００７０】
。尚、受信割込みは、データ通信期間（上記割込みマスクの継続期間）の終了タイミングでタイマ割込みとして発生させてもよいし、受信すべき個数のデータを受信したことを要因として発生させてもよい。但し、受信データの個数によって受信割込みを発生させる場合には、メインユニット１０及びサブユニット３０における送信対象データ群の決定アルゴリズムを、これらメインユニット１０及びサブユニット３０間で共有しておく。
【００７１】
具体的に図８に示す受信処理を開始すると、演算部２１は、送受信回路２２にて受信エラーが発生しているか否かを判断する（Ｓ４１０）。そして、受信エラーが発生していないと判断すると（Ｓ４１０でＮｏ）、受信メモリ領域に格納された受信データ群の内、識別子及びデータ本体の一組（データセット）を、受信メモリ領域から読み出し（Ｓ４２０）、この読み出したデータセットの識別子に基づき、このデータセットが送信権限データを含むデータセットであるか否かを判断する（Ｓ４３０）。
【００７２】
そして、送信権限データを含むデータセットではなく、制御データを含むデータセットであると判断すると（Ｓ４３０でＮｏ）、そのデータセットに含まれる識別子から、このデータセットに含まれる制御データの種類を判別して、この制御データを、この制御データを必要とする燃料噴射制御に関する制御タスクに提供する。これによって、この制御データを取り込む（Ｓ４４０）。但し、この受信処理では、自ユニットから送信したデータについても取り扱うことになるので、受信した制御データが自ユニットにおいて不要である場合も有り得る。この場合には、Ｓ４４０において制御データを破棄してもよい。
【００７３】
Ｓ４４０の処理後、演算部２１は、受信メモリ領域に格納された受信データを全て読み出したか否かを判断し（Ｓ４５０）、読み出していれば、当該受信処理を終了し、読み出していなければＳ４２０に移行する。
【００７４】
一方、読み出したデータセットが送信権限データについてのデータセットであると判断すると（Ｓ４３０でＹｅｓ）、演算部２１は、自ユニットが記憶する送信ユニットの設定値を、この送信権限データが示す車両制御装置の識別コードに設定することで、次の送信ユニットを、送信権限データにより通知された車両制御装置（メインユニット１０又はサブユニット３０）に設定する（Ｓ４６０）。ここでは、送信権限データが自ユニットから送信した送信権限データである場合も有り得るが、この場合も、送信権限データに基づき、自ユニットが記憶する送信ユニットの設定値を更新する。このようにしてＳ４６０での処理を終えると、当該受信処理を終了する。
【００７５】
この他、上記受信エラーが発生していると判断すると（Ｓ４１０でＹｅｓ）、演算部２１は、Ｓ４１５に移行し、発生した上記受信エラーが、サブユニット３０における上記割込みマスクの継続中（換言すればデータ通信中）に擬似クランク角信号の出力が開始され（図９参照）、これによってストップビットが正常値でなくなったことを原因とする種類の受信エラーであるか否かを判断する（Ｓ４１５）。
【００７６】
そして、受信エラーがこの種類の受信エラーであると判断すると（Ｓ４１５でＹｅｓ）、Ｓ４７０に移行し、ＲＡＭ２５の受信メモリ領域に書き込まれた受信データ群の内、エラーの発生タイミングから正常な受信データと判断した受信データを取り込み、正常な受信データではないと判断した受信データを破棄する。Ｓ４７０では、正常に受信できた制御データを含むデータセットに対し、Ｓ４２０〜Ｓ４６０と同様の処理を実行することができる。その後、当該受信処理を終了する。尚、図８において破線にて示されるステップは、メインユニット１０における受信処理に関しては関係ないステップであるので注意されたい。
【００７７】
演算部２１は、この受信エラーの発生時点で送信ユニットが自ユニットである場合、Ｓ４７０において、受信エラーにより正常に受信できなかったデータセット、換言すれば、送信エラーの発生したデータセットを記憶し、送信エラーの発生したデータセットを再送するように、Ｓ１５０の処理及び送信処理を実行することができる（図９参照）。その後、当該受信処理を終了する。
【００７８】
この他、受信エラーが上記種類の受信エラーではないと判断すると（Ｓ４１５でＮｏ）、演算部２１は、発生した受信エラーの種類に対応した処理を実行する（Ｓ４９５）。その後、当該受信処理を終了する。
【００７９】
続いて、サブユニット３０の演算部４１が実行する処理について説明する。サブユニット３０の演算部４１は、擬似クランク角信号の入力によりエッジ検出回路４７から発生する割込みに応じて、図１０に示す通信制御処理ＰＲ４を開始する。
【００８０】
この通信制御処理ＰＲ４を開始すると、演算部４１は、クランク間時間として、擬似クランク角信号の入力間隔を算出する（Ｓ６１０）。具体的には、今回の擬似クランク角信号の入力開始時刻と前回の擬似クランク角信号の入力開始時刻との時間差を算出する。
【００８１】
その後、演算部４１は、擬似クランク角信号に対する割込みマスクをエッジ検出回路４７に設定することにより（Ｓ６２０）、この割込みマスクの継続中においては、エッジ検出回路４７から割込みが発生しないようにし、これによって当該通信制御処理が再度実行されないようにする。
【００８２】
併せて、演算部４１は、Ｓ６１０にて算出されたクランク間時間に基づき、割込みマスクを解除するまでの時間、換言すれば、割込みマスクの継続時間を決定し、Ｓ６２０で設定した割込みマスクが、この決定した時間経過後に解除されるように、エッジ検出回路４７に対して割込みマスク解除のタイマ設定を行う（Ｓ６２５）。エッジ検出回路４７は、このような設定がなされると、上記時間の経過後に割込みマスクを解除する。
【００８３】
尚、Ｓ６２５では、割込みマスクの継続時間を、クランク間時間の所定割合に定めることができる。例えば、クランク間時間の０．７倍や０．８倍などを割込みマスクの継続時間に設定することができる。上記割合については、想定されるエンジン回転の変動等を考慮して、次回のクランク間時間が割込みマスク継続時間よりも短くならないような範囲、又は、短くなる確率が十分に小さくなるような範囲で、０より大きく１未満の値として設計段階で定めることができる。
【００８４】
更に、演算部４１は、伝達遅れによるクランク角の誤差を抑えるために、クランク角更新処理ＰＲ３にて算出されたクランク角の補正を行う（Ｓ６３０）。具体的には、メインユニット１０におけるクランク角信号の入力から、サブユニット３０における擬似クランク角信号の入力までのタイムラグ（遅延時間）をシステム特性から特定し、このタイムラグに基づき、クランク角の誤差を消す方向にクランク角の補正を行うことができる。
【００８５】
また、この処理を終えると、演算部４１は、送信ユニットの設定値を参照することによって、送信ユニットが自ユニットであるか否かを判断し（Ｓ６４０）、送信ユニットが自ユニットではないと判断すると（Ｓ６４０でＮｏ）、当該通信制御処理を終了し、送信ユニットが自ユニットであると判断すると（Ｓ６４０でＹｅｓ）、Ｓ６１０にて算出したクランク間時間、詳細には、クランク間時間からＳ６２５で決定した割込みマスクの継続時間に基づき、この割込みマスクの継続中にデータ送信が完了するように、メインユニット１０に対して送信する制御データ群（送信対象データ群）を決定する（Ｓ６５０）。具体的には、メインユニット１０に対して送信する制御データの数及び種類を決定する。ここでの決定手法は、メインユニット１０におけるＳ１５０と同様の手法を採用することができる。
【００８６】
その後、演算部４１は、自ユニットの送信許可フラグをオンに設定することで、送信処理によるデータ送信を許可し（Ｓ６６０）、当該通信制御処理ＰＲ４を終了する。尚、サブユニット３０においてもメインユニット１０と同様の定時処理（図５参照）及び送信処理（図６）が実行されるため、この設定により、サブユニット３０からは、Ｓ６５０で決定された数及び種類の制御データが送受信回路４２を介してメインユニット１０に送信される。
【００８７】
ここで、サブユニット３０の演算部４１が実行する定時処理及び送信処理について補足説明する。サブユニット３０の演算部４１が実行する定時処理及び送信処理では、当然のことながら、マイコン２０が備える送受信回路２２、ＤＭＡＣ２３、ＲＡＭ２５、ＲＯＭ２６及びエッジ検出回路２７に代えて、マイコン４０が備える送受信回路４２、ＤＭＡＣ４３、ＲＡＭ４５、ＲＯＭ４６及びエッジ検出回路４７が用いられる。また、データ送信は、メインユニット１０に対して行われる。
【００８８】
この他、定時処理では、Ｓ２５０において送信ユニットをメインユニット１０に設定する前に、擬似クランク角信号に対する割込みマスクを設定する処理を行う（Ｓ２４０：図５）。ここでは、割込みマスクの解除設定がなされている場合に、これを無効化することで、割込みマスクが擬似クランク角信号の発生まで継続的に行われるようにし、エンスト中には通信制御処理が演算部４１で実行されないようにする。これによって、エンスト中には、メインユニット１０とサブユニット３０の間でデータ通信を正常に行うことができるようにする。
【００８９】
また、サブユニット３０の演算部４１は、送受信回路４２による一連のデータ受信が完了すると発生する受信割込み又は送受信回路４２で検知された受信エラーに起因する受信エラー割込みに応じて、メインユニット１０と同様に図８に示す受信処理を実行する。但し、この受信処理において、サブユニット３０の演算部４１は、Ｓ４７０（図８参照）の処理後、Ｓ４８０〜Ｓ４９０の処理を実行した後に、当該受信処理を終了する。
【００９０】
具体的に、Ｓ４８０では、擬似クランク角信号に対する割込みマスクを解除し、Ｓ４９０では、クランク間時間として、今回の擬似クランク角信号の入力開始時刻と前回の擬似クランク角信号の入力開始時刻との時間差を算出する。今回入力された擬似クランク角信号の入力開始時刻については、受信データのビット列やエッジ検出回路４７が記憶する信号エッジの検出時刻の情報から特定することができる。例えば、エッジ検出回路４７を通じて、擬似クランク角信号のアクティブレベル（Ｌｏ）からインアクティブレベル（Ｈｉ）への信号エッジを検出し、この信号エッジ検出時刻の１０ビット前の時刻を、今回の擬似クランク角信号の入力開始時刻として特定することができる。また、このようなケースでは、Ｓ４９０において自ユニットが記憶保持するクランク角を更新する処理を行う。
【００９１】
以上、第一実施例の車両制御システム１について説明したが、本実施例によれば、通信線ＬＮを通じて、クランク角信号の擬似信号をメインユニット１０からサブユニット３０に伝送することで、サブユニット３０に対しクランク角の情報を提供するようにした。従って、クランク角センサＳＮの出力信号を波形整形して入力する入力回路１１を、サブユニット３０に設けなくても、サブユニット３０においてクランク角の情報を保持することができ、内燃機関の制御を、クランク角の変化に応じて、メインユニット１０及びサブユニット３０の協働により適切に実行することができる。
【００９２】
そして、本実施例によれば、入力回路１１をサブユニット３０に設けなくてもよいことに加えて、擬似クランク角信号伝送専用の信号線を別途メインユニット１０とサブユニット３０の間に設ける必要がないので、複数の車両制御装置（メインユニット１０及びサブユニット３０）の協働による内燃機関の制御を、簡単なハードウェア構成で高精度に実行することができる。
【００９３】
また、本実施例によれば、通信線ＬＮの信号レベルをアクティブレベルに切り替えることにより、擬似クランク角信号を通信線に出力し、サブユニット３０では、通信線ＬＮでの信号レベルがアクティブレベルに変化する事象が発生した時点で、擬似クランク角信号の入力を検知して割込みを発生させるようにした。従って、メインユニット１０においてクランク角信号が入力された時点からのタイムラグを抑えて、サブユニット３０においてクランク角を適切に更新することができ、クランク角についての高精度な情報をサブユニット３０において持つことができる。
【００９４】
また、このような手法を採用していることから、本実施例では、擬似クランク角信号の入力により割込みが発生する度に、クランク間時間に基づく所定時間、擬似クランク角信号に対する割込みマスクを設定することで、エッジ検出回路４７による通信信号を原因とする擬似クランク角信号の誤検知を演算部４１に対して無効化し、この割込みマスク中にデータ通信を行うようにした。従って、本実施例によれば、上記手法を採用しても、通信信号が擬似クランク角信号と誤検知され、演算部４１により誤った処理が実行される不都合を抑えることができる。
【００９５】
この他、本実施例によれば、急なエンジン回転の変動により、割込みマスク中（データ通信中）に擬似クランク角信号が発生しても、これを送受信回路でエラーとして検知できるように、擬似クランク角信号を通信信号では生じ得ない期間アクティブレベルとなる信号に設定した。従って、本実施例によれば、データ通信中における擬似クランク角信号の発生により、不適切な受信データを取り込んでしまうのを抑えることができ、メインユニット１０とサブユニット３０の間で適切にデータ通信することができる。
【００９６】
また、本実施例によれば、送信権限データの送受信により、メインユニット１０とサブユニット３０との間で通信の衝突が生じないようにしたので、全二重通信を採用しなくても、メインユニット１０とサブユニット３０との間で適切に双方向通信して、高精度な内燃機関の制御を実現することができる。
【００９７】
従って、本実施例の車両制御システム１は、複数の車両制御装置により内燃機関の制御を協働して実行する場合に、非常に優れたシステムであると言える。
尚、用語間の対応関係は、次の通りである。即ち、本実施例のメインユニット１０は、第一の車両制御装置の一例に対応し、入力回路１１は、クランク角信号入力手段の一例に対応し、擬似クランク角信号生成回路１５は、擬似信号出力手段の一例に対応し、マイコン２０によって実行されるデータ通信に係る処理は、第一のデータ通信手段によって実現される処理の一例に対応する。
【００９８】
この他、サブユニット３０は、第二の車両制御装置の一例に対応し、マイコン４０が備えるエッジ検出回路４７は、擬似信号入力検知手段の一例に対応し、マイコン４０が備える演算部４１によって実行されるクランク角更新処理ＰＲ３は、クランク角特定手段によって実現される処理の一例に対応し、マイコン４０によって実行されるデータ通信に係る処理は、第二のデータ通信手段によって実現される処理の一例に対応する。
【００９９】
［第二実施例］
続いて、第二実施例の車両制御システム１について説明する。但し、第二実施例の車両制御システム１は、第一実施例の車両制御システム１と多くの部分で構成や動作が共通している。従って、以下では、第二実施例の車両制御システム１の説明として、第一実施例と異なるハードウェア構成及び動作を説明し、第一実施例と共通する構成及び動作の説明を適宜省略する。
【０１００】
第二実施例の車両制御システム１は、クランク角信号の入力を契機に、ハンドシェイクに類する処理をメインユニット１０とサブユニット３０の間で行った後、データ通信を行うことで、信頼性の高い通信を実現すると同時に、予め定められたスケジュールに従って各種類の制御データの送信を行うことで、第一実施例のような識別子の送信を不要とし、通信量を抑えて効率的に制御データの送受信を、メインユニット１０とサブユニット３０との間で実現できるようにしたものである。
【０１０１】
図１１に示すように、本実施例によれば、第一実施例と同様、クランク角信号の入力に合わせてメインユニット１０の擬似クランク角信号生成回路１５が擬似クランク角信号（図１及び図１１に示す「Ｐｃｒ」）を通信線ＬＮに出力する。但し、本実施例の擬似クランク角信号は、エッジ検出回路４７にて信号エッジを検出可能な信号であれば十分であり、第一実施例のように１０ビット分の信号として出力される必要はない。例えば、本実施例の擬似クランク角信号は、１ビット分のような短い時間、通信線ＬＮの信号レベルをアクティブレベルとするパルス信号として通信線ＬＮに出力される。
【０１０２】
また、サブユニット３０は、擬似クランク角信号の入力によりエッジ検出回路４７から割込みが発生すると、演算部４１が実行する通信制御処理により、擬似クランク角信号に対する割込みマスクを設定する一方、送受信回路４７等に対し各種設定を行うことで、自ユニットを通信準備完了状態（データ送受信待ち状態）にした後、通信線ＬＮの信号レベルを所定時間アクティブレベルとする通信準備完了信号（図１及び図１１に示す「Ｒｅｔ」）を出力ポート４９から通信線ＬＮに出力する。これによって通信準備完了をメインユニット１０に通知する。尚、割込みマスクの設定時には、第一実施例と同様に、クランク間時間に基づいて割込みマスクを解除するまでの割込みマスク継続時間を決定する。
【０１０３】
メインユニット１０の演算部２１は、この通信準備完了信号の入力を、エッジ検出回路２７を通じて検知する。本実施例では、例えば、入力チャンネルを２以上有するインプットキャプチャをエッジ検出回路２７として用い、図１において破線で示すように、エッジ検出回路２７の一つの入力チャンネルに通信線ＬＮを接続して、通信準備完了信号の信号エッジを検出できるようにする。更に、エッジ検出回路２７のもう一つの入力チャネルには、入力回路１１を接続して、クランク角信号の信号エッジを検出できるようにする。
【０１０４】
そして、メインユニット１０の演算部２１は、通信準備完了信号の入力を検知すると、サブユニット３０が通信準備完了状態にあると判断し、この時点から、サブユニット３０による割込みマスクの継続中に限って、制御データを、送受信回路２２を通じてサブユニット３０に送信する。本実施例では、このように制御データを送信することにより、サブユニット３０において制御データの受信が失敗する可能性を抑えて、通信の信頼性を高める。即ち、サブユニット３０において受信準備ができていない状態で制御データが送信されることによる不都合を抑制する。但し、制御データを送信するのは、上記スケジュールにより自ユニットがデータ送信することになっているときだけである。また、メインユニット１０の演算部２１は、この割込みマスクの継続中に送受信回路２２が受信した制御データを取り込む。
【０１０５】
同様に、サブユニット３０の演算部４１は、通信準備完了信号を出力ポート４９から出力した後、割込みマスク継続中に送受信回路４２が受信した制御データを取り込む。一方で、上記スケジュールにより自ユニットがデータ送信することになっているときには、制御データを、送受信回路４２を通じて送信する。
【０１０６】
本実施例では、このようにしてデータ通信と擬似クランク角信号の伝送とを行う。但し、本実施例では、割込みマスクの継続時間をクランク間時間に対して短めに設定することにより、第一実施例のような割込みマスクの継続中に擬似クランク角信号が発生してしまう現象の発生を回避する。そして、このような現象が発生しない環境で、上述したように、クランク角信号及び擬似クランク角信号の入力毎に、予め定められたスケジュールに従うデータ通信を、メインユニット１０とサブユニット３０との間で行う。図１２には、メインユニット１０及びサブユニット３０の両者が共にＲＯＭ２６，４６に記憶するエンジン回転数毎のスケジュールデータの構成を示す。
【０１０７】
図１２に示す例によれば、メインユニット１０及びサブユニット３０は、エンジン回転数が１０００ｒｐｍ以下であるときの通信スケジュールが定義されたスケジュールデータ、エンジン回転数が１０００ｒｐｍ〜２０００ｒｐｍであるときの通信スケジュールが定義されたスケジュールデータ、エンジン回転数が２０００ｒｐｍ〜３０００ｒｐｍであるときの通信スケジュールが定義されたスケジュールデータといった具合に、内燃機関が採りうるエンジン回転数の範囲内で１０００ｒｐｍ単位毎のスケジュールデータを有する。
【０１０８】
これらエンジン回転数毎のスケジュールデータは、クランク角信号の発生するクランク角毎に、そのクランク角に対応するクランク角信号が入力されたとき送信すべきデータの種類及び送信順、データ数、データの送信方向が定義されたものである。図１２に示すスケジュールデータによれば、送信すべきデータの種類が送信順に記述される。また、図１２に示す送信方向「Ｍ→Ｓ」は、メインユニット１０からサブユニット３０にデータを送信すること、換言すればメインユニット１０がデータ送信権限を有する送信ユニットであることを定義し、図１２に示す送信方向「Ｍ←Ｓ」は、サブユニット３０からメインユニット１０に送信すること、換言すればサブユニット３０がデータ送信権限を有する送信ユニットであることを定義する情報である。このように、第二実施例では、第一実施例とは異なり、クランク角信号が発生する角度単位で送信すべき制御データを定め、この情報をメインユニット１０とサブユニット３０とを共有することで、識別子なしで制御データの種類を受信側が判別できるようにする。
【０１０９】
続いて、メインユニット１０の処理動作の詳細を、フローチャートを用いて説明する。メインユニット１０の演算部２１は、クランク角信号の入力によりエッジ検出回路２７から発生する割込みに対応して図１３に示す通信制御処理を実行する。この通信制御処理を開始すると、演算部２１は、クランク間時間として、第一実施例と同様に、クランク角信号の入力間隔を算出した後（Ｓ７１０）、クランク間時間から特定されるエンジン回転数に対応するスケジュールデータにおける現時点でのクランク角に対応するデータ送信方向の情報を参照することにより、送信ユニットが自ユニットであるか否かを判断する（Ｓ７２０）。
【０１１０】
そして、送信ユニットが自ユニットであると判断すると（Ｓ７２０でＹｅｓ）、このスケジュールデータによって送信すべきと定義される現クランク角での制御データの一群を、送信対象データ群に決定する（Ｓ７３０）。その後、自ユニットの送信許可フラグをオンに設定することで、図１５に示す送信処理によるデータ送信を許可し（Ｓ７４０）、当該通信制御処理を終了する。一方、送信ユニットが自ユニットではないと判断すると（Ｓ７２０でＮｏ）、Ｓ７３０，Ｓ７４０をスキップして、当該通信制御処理を終了する。
【０１１１】
また、メインユニット１０の演算部２１は、第一実施例と同様に図１４に示す定時処理を定期的に実行するが、Ｓ２２０においてエンスト中ではないと判断した場合には、サブユニット３０が通信準備完了状態にあるか否かを判断し（Ｓ２２５）、サブユニット３０が通信準備完了状態にある場合に限って（Ｓ２２５でＹｅｓ）、Ｓ２８０以降の処理を実行し、通信準備完了状態にないと判断すると（Ｓ２２５でＮｏ）、当該定時処理を終了する。このような処理によって、演算部２１は、サブユニット３０が通信準備完了状態にない場合には、サブユニット３０に対するデータ送信が行われないようにする。
【０１１２】
具体的に、メインユニット１０の演算部２１は、Ｓ２２５において、クランク角信号の入力に伴う擬似クランク角信号の通信線ＬＮへの出力後、所定時間内にサブユニット３０から通信線ＬＮを介して通信準備完了信号が入力されたか否かを判断する。これによって、サブユニット３０が通信準備完了状態にあるか否かを判断する。尚、通信準備完了信号が入力されたか否かについては、上記所定時間内においてエッジ検出回路２７が通信線ＬＮついてのインアクティブレベル（Ｌｏ）からアクティブレベル（Ｈｉ）への信号エッジを検出したか否かによって判断することができる。
【０１１３】
尚、本実施例におけるメインユニット１０の演算部２１は、図１４において第一実施例の定時処理と同一番号を付しているステップに関して、概ね第一実施例と同様の処理を行うが、本実施例では、エンスト時の通信スケジュールを定義したスケジュールデータが、ＲＯＭ２６，４６に記憶されているため、第一実施例のようなＳ２５０の処理については実行せず、このスケジュールデータに従って、Ｓ２６０において送信ユニットが自ユニットであるか否かを判断する。そして、Ｓ２７０では、このエンスト時の通信スケジュールを定義したスケジュールデータに従って、送信対象データ群を決定する。
【０１１４】
また、Ｓ２８０では、図１５に示す送信処理を実行する。図１５に示す送信処理を開始すると、演算部２１は、自ユニットの上記送信許可フラグがオンに設定されているか否かを判断し（Ｓ８１０）、送信許可フラグがオフに設定されていると判断すると（Ｓ８１０でＮｏ）、Ｓ８２０〜Ｓ８５０の処理を実行することなく、当該送信処理を終了することにより、実質的にはデータ送信のための処理を何らすることなく送信処理を終了する。
【０１１５】
一方、送信許可フラグがオンに設定されていると判断すると（Ｓ８１０でＹｅｓ）、Ｓ８２０，Ｓ８３０の処理を繰り返し実行することにより、Ｓ７３０又はＳ２７０で送信対象データとして決定された制御データ群をＲＡＭ２５の送信メモリ領域に送信順に書き込む。但し、本実施例では、識別子を用いない。即ち、Ｓ８３０では、識別子を書きこむことなく、制御データを送信メモリ領域に書き込む。
【０１１６】
また、制御データの全てを、ＲＡＭ２５の送信メモリ領域に書き込むと（Ｓ８２０でＹｅｓ）、演算部２１は、ＤＭＡＣ２３に対して転送命令を入力することにより（Ｓ８５０）、ＤＭＡＣ２３に送信メモリ領域に書き込まれた制御データの一群を、送受信回路２２の送信バッファに転送させて、送受信回路２２から、これら制御データの一群が順にサブユニット３０に向けて送信されるようにする。
【０１１７】
また、本実施例の演算部２１は、上記割込みマスクの継続中に行われるデータ通信による一連のデータ受信が完了すると発生する受信割込み又は上記受信エラー割込みに応じて、図１６に示す受信処理を実行する。そして、この受信処理では、送受信回路２２にて受信エラーが発生しているか否かを判断し（Ｓ９１０）、受信エラーが発生していないと判断すると（Ｓ９１０でＮｏ）、Ｓ９２０の処理を実行した後、当該受信処理を終了する。
【０１１８】
具体的に、Ｓ９２０では、ＲＡＭ２５の受信メモリ領域に受信データとして格納された制御データの夫々を受信順に、受信メモリ領域から読み出し、読み出した制御データの種類を、今回のクランク間時間に対応するエンジン回転数のスケジュールデータにおける現クランク角に対応する部位を参照することにより判別し、この制御データを、この制御データを必要とする燃料噴射制御に関する制御タスクに提供する。これによって、送受信回路２２が受信した制御データを取り込む。
【０１１９】
一方、上記受信エラーが発生していると判断すると（Ｓ９１０でＹｅｓ）、発生した受信エラーの種類に対応した処理を実行する（Ｓ９３０）。その後、当該受信処理を終了する。
【０１２０】
続いて、サブユニット３０の処理動作の詳細を、フローチャートを用いて説明する。サブユニット３０の演算部４１は、擬似クランク角信号の入力によりエッジ検出回路４７から発生する割込みに応じて、図１７に示す通信制御処理を開始する。
【０１２１】
この通信制御処理を開始すると、演算部４１は、第一実施例と同様に、擬似クランク角信号に基づいて、クランク間時間を算出する（Ｓ１０１０）。その後、演算部４１は、擬似クランク角信号に対する割込みマスクをエッジ検出回路４７に設定すると共に（Ｓ１０２０）、Ｓ１０１０にて算出されたクランク間時間に基づき、第一実施例と同様に割込みマスクの継続時間を決定し、Ｓ１０２０で設定した割込みマスクが、この決定した時間経過後に解除されるように、エッジ検出回路４７に対して割込みマスク解除のタイマ設定を行う（Ｓ１０２５）。更に、演算部４１は、クランク角の補正を行う（Ｓ１０３０）。
【０１２２】
その後、演算部４１は、送受信回路４７等に対して各種設定（動作パラメータの設定等）を行うことで、自ユニットを通信準備完了状態（データ送受信待ち状態）にした後、上述の通信準備完了信号を出力ポート４９から通信線ＬＮに出力する（Ｓ１０４０）。更に、Ｓ１０１０で算出したクランク間時間から特定されるエンジン回転数に対応するスケジュールデータにおける現クランク角に対応するデータ送信方向の情報を参照することにより、送信ユニットが自ユニットであるか否かを判断する（Ｓ１０５０）。
【０１２３】
そして、送信ユニットが自ユニットであると判断すると（Ｓ１０５０でＹｅｓ）、このスケジュールデータによって送信すべきと定義される現クランク角での制御データの一群を、送信対象データ群に決定し（Ｓ１０６０）、自ユニットの送信許可フラグをオンに設定し（Ｓ１０７０）、当該通信制御処理を終了する。一方、送信ユニットが自ユニットではないと判断すると（Ｓ１０５０でＮｏ）、Ｓ１０６０，Ｓ１０７０をスキップして、当該通信制御処理を終了する。
【０１２４】
また、サブユニット３０の演算部４１は、メインユニット１０と同様の定時処理、送信処理、及び、受信処理を実行する。勿論、サブユニット３０の演算部４１が実行する定時処理、送信処理及び受信処理では、マイコン２０が備える送受信回路２２、ＤＭＡＣ２３、ＲＡＭ２５、ＲＯＭ２６及びエッジ検出回路２７に代えて、マイコン４０が備える送受信回路４２、ＤＭＡＣ４３、ＲＡＭ４５、ＲＯＭ４６及びエッジ検出回路４７が用いられる。また、データ送信は、メインユニット１０に対して行われる。
【０１２５】
その他、Ｓ２２５（図１４参照）におけるサブユニット３０が通信準備完了状態にあるか否かの判断は、Ｓ１０４０（図１７参照）の処理により自ユニットから通信線ＬＮを介して通信準備完了信号が出力されたか否かの判断により実現することができる。
【０１２６】
以上、第二実施例の車両制御システム１について説明したが、本実施例によれば、上述したようにハンドシェイクに類する処理を行うため、信頼性の高い通信を効率的に実現することができる。尚、用語間の対応関係は、次の通りである。ＲＯＭ２６，４６が記憶するエンジン回転数毎のスケジュールデータは、記憶手段が内燃機関の回転数毎に記憶するテーブルの一例に対応する。また、通信準備完了信号は、第二のデータ通信手段から出力される応答信号の一例に対応する。
【０１２７】
［その他］
以上には、本発明の実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、メインユニット１０とサブユニット３０間のデータ通信は、差動通信によって実現されてもよい。また、データ通信は、調歩同期式の他に、クロック同期式を採用してもよい。但し、クロック同期式の場合には、通信線ＬＮと併設してクロック信号伝送用のクロック信号線を設ける必要がある。この他、データ通信には、ＳＰＩ（シリアル・ペリフェラル・インタフェース）等を用いることができる。また、送受信回路２２，４２には、汎用のＵＡＲＴ（Universal Asynchronous Receiver Transmitter）等を用いることが可能である。
【０１２８】
また、第二実施例におけるスケジュールデータに基づくデータ通信（換言すれば識別子を用いないデータ通信）は、第一実施例に適用されてもよく、第一実施例における識別子を用いたデータ通信は、第二実施例に適用されてもよい。
この他、上記実施例では、サブユニット３０として、全気筒共通の燃料噴射コントローラを設けて、燃料噴射制御を、単一のメインユニット１０と単一のサブユニット３０との協働により実現するようにしたが、別例として、車両制御システム１は、図１８に示すように、サブユニット３０として気筒毎の燃料噴射コントローラを備えた構成にされてもよい。
【符号の説明】
【０１２９】
１…車両制御システム、３…インジェクタ、１０…メインユニット、１１…入力回路、１５…擬似クランク角信号生成回路、２０，４０…マイコン、２１，４１…演算部、２２，４２…送受信回路、２３，４３…ＤＭＡＣ、２５，４５…ＲＡＭ、２６，４６…ＲＯＭ、２７，４７…エッジ検出回路、３０…サブユニット、４９…出力ポート、５０…駆動回路、ＬＮ…通信線、ＳＮ…クランク角センサ
【図１】
0005783088.tif 000002
【図２】
0005783088.tif 000003
【図３】
0005783088.tif 000004
【図４】
0005783088.tif 000005
【図５】
0005783088.tif 000006
【図６】
0005783088.tif 000007
【図７】
0005783088.tif 000008
【図８】
0005783088.tif 000009
【図９】
0005783088.tif 000010
【図１０】
0005783088.tif 000011
【図１１】
0005783088.tif 000012
【図１２】
0005783088.tif 000013
【図１３】
0005783088.tif 000014
【図１４】
0005783088.tif 000015
【図１５】
0005783088.tif 000016
【図１６】
0005783088.tif 000017
【図１７】
0005783088.tif 000018
【図１８】
0005783088.tif 000019