(57)【特許請求の範囲】
【請求項１】
送信ポートと受信ポートと制御ポートとからなるポート群を備えた主電子装置と、
前記ポート群に通信状態切換回路を介して接続され、第１端子と第２端子とを備えたコネクタと、
前記コネクタの第１端子に接続され、前記主電子装置と半二重通信を実行可能な第１電子装置と、
前記コネクタの第１端子に自己の受信端子が接続され、前記コネクタの第２端子に自己の送信端子が接続され、前記主電子装置と全二重通信を実行可能な第２電子装置と
を備え、
前記通信状態切換回路は、前記主電子装置が前記ポート群の制御ポートから出力する制御信号に応じて、第１通信状態すなわち前記ポート群の送信ポートから前記コネクタの第１端子へデータ伝送可能に接続し、前記コネクタの第１端子から前記ポート群の受信ポートへデータ伝送可能に接続した状態、または、第２通信状態すなわち前記ポート群の送信ポートから前記コネクタの第１端子へデータ伝送可能に接続し、前記コネクタの第２端子から前記ポート群の受信ポートへデータ伝送可能に接続した状態、のいずれかに切り換わり、
前記主電子装置は、前記第１電子装置と半二重通信を行う場合には、前記通信状態切換回路を前記第１通信状態にして所定の第１情報を含んだデータを送信する一方、前記第２電子装置と全二重通信を行う場合には、前記通信状態切換回路を前記第２通信状態にして所定の第２情報及び全二重通信許可情報を含んだデータを送信し、
前記第１電子装置は、前記第１情報を含んだデータを受信した場合にはそのデータをそのまま受信して該データに対する回答を作成し、該作成した回答を前記第１情報を含んだデータとして送信する一方、前記第２情報を含んだデータを受信した場合にはそのデータを破棄し、
前記第２電子装置は、前記第１情報を含んだデータを受信した場合にはそのデータを破棄する一方、前記第２情報を含んだデータを受信した場合にはそのデータをそのまま受信して、該データに前記全二重通信許可情報が含まれているならば送信動作を開始する
ことを特徴とする電子装置間通信システム。
【請求項２】
請求項１記載の電子装置間通信システムであって、
前記通信状態切換回路は、前記ポート群の受信ポートを前記コネクタの第１端子と接続するか第２端子と接続するかを切り換える切換スイッチを備えたことを特徴とする電子装置間通信システム。
【請求項３】
請求項１又は２記載の電子装置間通信システムであって、
前記主電子装置は、
半二重通信方式の送信を要求する第１送信要求信号又は全二重通信方式の送信を要求する第２送信要求信号を発生させる送信要求信号発生手段と、
前記第１送信要求信号が発生したときには半二重通信を行い、前記第２送信要求信号が発生したときには全二重通信を行う通信制御手段と
を備えたことを特徴とする電子装置間通信システム。
【請求項４】
請求項３記載の電子装置間通信システムであって、
前記主電子装置の前記通信制御手段は、
前記第１電子装置へデータを送信し始めたあと前記第１電子装置から該送信したデータの回答を受信し終わるまでの間に前記第２送信要求信号が発生した場合には、前記回答を受信し終わった後に前記通信状態切換回路を前記第２通信状態に切り換えて前記第２電子装置との全二重通信を開始し、
一方、前記第２電子装置へデータを送信中または前記第２電子装置からデータを受信中に前記第１送信要求信号が発生した場合には、前記第２情報及び全二重通信禁止情報を含んだデータを送信し、そのデータの送信完了後で且つ前記第２電子装置からのデータの受信完了後に前記通信状態切換回路を前記第１通信状態に切り換えて前記第１電子装置との半二重通信を開始し、
前記第２電子装置は、
前記第２情報及び前記全二重通信禁止情報を含んだデータを受信した場合には送信動作を中止する
ことを特徴とする電子装置間通信システム。
【請求項５】
送信ポートと受信ポートと制御ポートとからなるポート群と、
車両に搭載される複数の電子装置と接続されるコネクタであって、半二重通信を実行可能な第１電子装置の送受信端子及び全二重通信を実行可能な第２電子装置の受信端子と接続される第１端子と、前記第２電子装置の送信端子と接続される第２端子とを備え、更に、前記ポート群に通信状態切換回路を介して接続されるコネクタと、
前記ポート群の制御ポートから制御信号を出力する通信制御手段と
を備え、
前記通信状態切換回路は、前記通信制御手段が前記ポート群の制御ポートから出力する制御信号に応じて、第１通信状態すなわち前記ポート群の送信ポートから前記コネクタの第１端子へデータ伝送可能に接続し、前記コネクタの第１端子から前記ポート群の受信ポートへデータ伝送可能に接続した状態、または、第２通信状態すなわち前記ポート群の送信ポートから前記コネクタの第１端子へデータ伝送可能に接続し、前記コネクタの第２端子から前記ポート群の受信ポートへデータ伝送可能に接続した状態、のいずれかに切り換わり、
前記通信制御手段は、前記コネクタの第１端子を介して半二重通信を行う場合には、前記通信状態切換回路を前記第１通信状態にして、前記第１電子装置が宛先であることを表す所定の第１情報を含んだデータを送信する一方、前記コネクタの第１端子及び第２端子を介して全二重通信を行う場合には、前記通信状態切換回路を前記第２通信状態にして、前記第２電子装置が宛先であることを表す所定の第２情報及び全二重通信許可情報を含んだデータを送信する
ことを特徴とする車載用の主電子装置。
【請求項６】
請求項５記載の車載用の主電子装置であって、
前記通信状態切換回路は、前記ポート群の受信ポートを前記コネクタの第１端子と接続するか第２端子と接続するかを切り換える切換スイッチを備えている
ことを特徴とする車載用の主電子装置。
【請求項７】
請求項５又は６記載の車載用の主電子装置であって、
半二重通信方式の送信を要求する第１送信要求信号又は全二重通信方式の送信を要求する第２送信要求信号を発生させる送信要求信号発生手段を備え、
前記通信制御手段は、前記第１送信要求信号が発生したときには前記コネクタの第１端子を介して半二重通信を行い、前記第２送信要求信号が発生したときには前記コネクタの第１端子及び第２端子を介して全二重通信を行う
ことを特徴とする車載用の主電子装置。
【請求項８】
請求項７記載の車載用の主電子装置であって、
前記通信制御手段は、
前記コネクタの第１端子を介して半二重通信方式でデータを送信し始めたあと前記第１端子を介して該送信したデータの回答を受信し終わるまでの間に前記第２送信要求信号が発生した場合には、前記回答を受信し終わった後に前記通信状態切換回路を前記第２通信状態に切り換えて前記コネクタの第１端子及び第２端子を介して全二重通信を開始し、
一方、前記コネクタの第１端子及び第２端子を介して全二重通信方式でデータを送信中又は受信中に前記第１送信要求信号が発生した場合には、前記コネクタの第１端子へ前記第２情報及び全二重通信禁止情報を含んだデータを送信し、そのデータの送信完了後で且つ前記コネクタの第２端子を介するデータの受信完了後に前記通信状態切換回路を前記第１通信状態に切り換えて前記コネクタの第１端子を介して半二重通信を開始する
ことを特徴とする車載用の主電子装置。
【請求項９】
請求項５〜８記載の車載用の主電子装置と半二重通信を行う半二重通信用電子装置であって、
受信したデータが前記第１情報及び前記第２情報のいずれを含むかを判定するデータ判定手段と、
前記データ判定手段により前記受信したデータが前記第１情報を含むと判定された場合にはそのデータをそのまま受信する一方、前記第２情報を含むと判定された場合にはそのデータを破棄するデータ選別手段と、
前記データ選別手段によって前記第１情報を含んだデータをそのまま受信した場合には該データに対する回答を作成し、該作成した回答を前記第１情報を含んだデータとして送信する送信制御手段と
を備えたことを特徴とする半二重通信用電子装置。
【請求項１０】
請求項５〜８記載の車載用の主電子装置と全二重通信を行う全二重通信用電子装置であって、
受信したデータが前記第１情報及び前記第２情報のいずれを含むかを判定するデータ判定手段と、
前記データ判定手段により前記受信したデータが前記第１情報を含むと判定された場合にはそのデータを破棄する一方、前記第２情報を含むと判定された場合にはそのデータをそのまま受信するデータ選別手段と、
前記データ選別手段によって前記第２情報を含んだデータをそのまま受信した場合には、該データが前記全二重通信許可情報を含むか否かを判定する情報判定手段と、
前記情報判定手段により前記データが前記全二重通信許可情報を含むと判定された場合には、送信動作を実行する送信制御手段と
を備えたことを特徴とする全二重通信用電子装置。
【請求項１１】
請求項８記載の車載用の主電子装置と全二重通信を行う請求項１０記載の全二重通信用電子装置であって、
前記送信制御手段は、前記情報判定手段により前記データが前記全二重通信禁止情報を含むと判定された場合には、送信動作を中止する
ことを特徴とする全二重通信用電子装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主電子装置−第１電子装置で半二重通信を行い、主電子装置−第２電子装置で全二重通信を行う電子装置間通信システム、並びに、このシステムに適した主電子装置、半二重通信用電子装置及び全二重通信用電子装置に関する。
【０００２】
【従来の技術】
一般に、車両に搭載された主電子装置に接続される故障診断装置では、国際規格に沿って、半二重通信方式が採用されている。一方、このような半二重通信方式は、単一のチャンネルを使用して一方から他方へのデータ伝送を順次行うものであり、両方向に同時にデータを伝送できないことから、多量のデータを通信する必要がある場合や短い時間で通信を済ませる必要がある場合には必ずしも適しているとは言い難い。このため、そのような場合には全二重通信方式を採用し、両方向に同時にデータを伝送可能とすることが好ましい。このような観点から、近年、主電子装置に接続される他の電子装置の通信方式が半二重通信方式および全二重通信方式のいずれであっても対応できるような通信システムが開発されている。
【０００３】
例えば、このような通信システムとして図１５に示すものが考えられる。この通信システムにおけるエンジン電子制御装置（以下エンジンＥＣＵという）６０は、半二重通信方式で通信可能な第１ＥＣＵ７０および全二重通信方式で通信可能な第２ＥＣＵ８０と接続されている。このエンジンＥＣＵ６０は、マイクロ・プロセッサ・ユニット（ＭＰＵ）に送信ポート６１、受信ポート６２、制御ポート６３、許可ポート６４の合計４つのポート群を備えており、これらのポート６１〜６４はコネクタの４つの端子すなわち送受信端子６５、送信端子６６、受信端子６７、許可端子６８にそれぞれ接続されている。
【０００４】
送信ポート６１は、制御ポート６３からのハイレベルの信号により送信線切換スイッチ６９ａが動作してコネクタの送受信端子６５に接続され、制御ポート６３からのローレベルの信号により送信線切換スイッチ６９ａが動作してコネクタの送信端子６６に接続されるように配線されている。また、受信ポート６２は、制御ポート６３からのハイレベルの信号により受信線切換スイッチ６９ｂが動作してコネクタの送受信端子６５に接続され、制御ポート６３からのローレベルの信号により受信線切換スイッチ６９ｂが動作してコネクタの受信端子６７に接続されるように配線されている。更に、制御ポート６３は、上述のとおりハイレベル又はローレベルの信号を送信線切換スイッチ６９ａおよび受信線切換スイッチ６９ｂに出力してこれらを動作させるものであり、許可ポート６４は、許可端子６８に接続されている。
【０００５】
第１ＥＣＵ７０は、エンジンＥＣＵ６０の送受信端子６５に接続されている。一方、第２ＥＣＵ８０は、その受信端子８１がエンジンＥＣＵ６０の送信端子６６に接続され、その送信端子８２がエンジンＥＣＵ６０の受信端子６７に接続され、その許可端子８３がエンジンＥＣＵ６０の許可端子６８に接続されている。
【０００６】
そして、エンジンＥＣＵ６０が第１ＥＣＵ７０と半二重通信方式による通信を実行する場合には、エンジンＥＣＵ６０は制御ポート６３からハイレベルの信号を出力すると共に許可ポート６４から通信不可を表す信号を出力する。すると、制御ポート６３からのハイレベルの信号により送信線切換スイッチ６９ａおよび受信線切換スイッチ６９ｂが動作してエンジンＥＣＵ６０の送信ポート６１および受信ポート６２はいずれも送受信端子６５に接続されるため、エンジンＥＣＵ６０と第１ＥＣＵ７０は半二重通信方式による通信が可能な状態となる。また、第２ＥＣＵ８０は、エンジンＥＣＵ６０からの通信不可を表す信号を受信することにより、エンジンＥＣＵ６０との全二重通信方式による通信が実行不可能であることを認識する。
【０００７】
一方、エンジンＥＣＵ６０が第２ＥＣＵ８０と全二重通信方式による通信を実行する場合には、制御ポート６３からローレベルの信号を出力すると共に、許可ポート６４から通信許可を表す信号を出力する。すると、制御ポート６３からのローレベルの信号により送信線切換スイッチ６９ａおよび受信線切換スイッチ６９ｂが動作してエンジンＥＣＵ６０の送信ポート６１および受信ポート６２はそれぞれ第２ＥＣＵ８０の受信端子８１および送信端子８２に接続されるため、エンジンＥＣＵ６０と第２ＥＣＵ８０は全二重通信方式による通信が可能な状態となる。また、第２ＥＣＵ８０は、エンジンＥＣＵ６０からの通信許可を表す信号を受信することにより、エンジンＥＣＵ６０との全二重通信方式による通信が可能であることを認識する。
【０００８】
【発明が解決しようとする課題】
ところで、半二重通信方式および全二重通信方式のいずれであっても対応できる上述の通信システムにおいては、高機能化に伴いエンジンＥＣＵ６０の使用されるポート数やコネクタの端子数が増加する傾向にあり、これらが不足する事態も生じ得ると危惧されている。この点に関し、上述のエンジンＥＣＵ６０のように、第２ＥＣＵ８０へ通信不可又は通信許可を表す信号を与えるための許可ポート６４および許可端子６８を使用する構成では、通信用のポート数およびコネクタ端子数が各４個必要となることから、これらを削減して高機能化に備えることが望まれていた。
【０００９】
本発明は上記課題に鑑みなされたものであり、主電子装置−第１電子装置で半二重通信方式による通信を行い、主電子装置−第２電子装置で全二重通信方式による通信を行う電子装置間通信システムにおいて、主電子装置のポート数及び主電子装置と他の電子装置を接続するコネクタの端子数を従来よりも削減することを目的とする。また、このような電子装置間通信システムに適した主電子装置や半二重通信用電子装置（第１電子装置）や全二重通信用電子装置（第２電子装置）を提供することを別の目的とする。
【００１０】
【課題を解決するための手段および発明の効果】
上記課題を解決するため、本発明の電子装置間通信システムは、
送信ポートと受信ポートと制御ポートとからなるポート群を備えた主電子装置と、
前記ポート群に通信状態切換回路を介して接続され、第１端子と第２端子とを備えたコネクタと、
前記コネクタの第１端子に接続され、前記主電子装置と半二重通信を実行可能な第１電子装置と、
前記コネクタの第１端子に自己の受信端子が接続され、前記コネクタの第２端子に自己の送信端子が接続され、前記主電子装置と全二重通信を実行可能な第２電子装置と
を備えている。
【００１１】
通信状態切換回路は、主電子装置が制御ポートから出力する制御信号に応じて、第１通信状態（送信ポートからコネクタの第１端子へデータ伝送可能に接続し、コネクタの第１端子から受信ポートへデータ伝送可能に接続した状態）、又は、第２通信状態（送信ポートからコネクタの第１端子へデータ伝送可能に接続し、コネクタの第２端子から受信ポートへデータ伝送可能に接続した状態）のいずれかに切り換わる。
【００１２】
本発明の通信システムにおいて、主電子装置と第１電子装置とが半二重通信を行う場合には、主電子装置は、通信状態切換回路を第１通信状態にして所定の第１情報を含んだデータをコネクタの第１端子を介して送信する。すると、第１電子装置及び第２電子装置は、いずれもコネクタの第１端子に接続されているため、共にこのデータを受信する。このデータには第１情報が含まれているため、第２電子装置はそのデータを破棄するが、第１電子装置はそのデータをそのまま受信して、そのデータに対する回答を作成し、その回答を第１情報を含んだデータとして送信する。なお、第２電子装置は、コネクタの第１端子を介して第１電子装置が送信したデータも受信するが、このデータも第１情報を含むため破棄される。
【００１３】
一方、主電子装置と第２電子装置とが全二重通信を行う場合には、主電子装置は、通信状態切換回路を第２通信状態にして所定の第２情報及び全二重通信許可情報を含んだデータをコネクタの第１端子を介して送信する。すると、第１電子装置及び第２電子装置は、いずれもコネクタの第１端子に接続されているため、共にこのデータを受信する。このデータには第２情報が含まれているため、第１電子装置はそのデータを破棄するが、第２電子装置はそのデータをそのまま受信すると共に全二重通信許可情報が含まれているため送信動作を開始する。
【００１４】
このように、本発明では、半二重および全二重通信方式のいずれにも対応できる通信システムにおいて、送受するデータに含まれる第１情報又は第２情報により、第１電子装置及び第２電子装置は受信したデータをそのまま受信すべきか破棄すべきかを認識でき、また、主電子装置から第２電子装置へ送信するデータに全二重通信許可情報を含ませることにより、全二重通信方式による送信の許可を第２電子装置へ伝達している。このため、第２電子装置に対して全二重通信方式による許可・禁止を伝達するための専用ポートと専用端子をそれぞれ主電子装置とコネクタに設ける必要のあった従来の通信システムに比べて、主電子装置のポート数及びコネクタの端子数を削減できる。
【００１５】
本発明において、通信状態切換回路は、主電子装置の受信ポートをコネクタの第１端子に接続するか第２端子に接続するかを切り換える切換スイッチを備えていてもよい。この場合、第１通信状態では、切換スイッチが主電子装置の受信ポートとコネクタの第１端子とを接続し、第２通信状態では、切換スイッチが主電子装置の受信ポートとコネクタの第２端子とを接続する。このような構成を採用すれば、通信状態切換回路を比較的簡単に実現できる。
【００１６】
本発明において、主電子装置は、半二重通信方式の送信を要求する第１送信要求信号又は全二重通信方式の送信を要求する第２送信要求信号を発生させる送信要求信号発生手段と、前記第１送信要求信号が発生したときには半二重通信を行い、前記第２送信要求信号が発生したときには全二重通信を行う通信制御手段とを備えていてもよい。この場合、送信要求に応じて自動的に半二重通信方式と全二重通信方式の切換が可能となる。
【００１７】
このような送信要求信号発生手段を備えた場合において、通信制御手段は、第１電子装置へデータを送信し始めたあと第１電子装置から該送信したデータの回答を受信し終わるまでの間に第２送信要求信号が発生した場合には、回答を受信し終わった後に通信状態切換回路を第２通信状態に切り換えて前記第２電子装置との全二重通信を開始する一方、第２電子装置へデータを送信中または第２電子装置からデータを受信中に第１送信要求信号が発生した場合には、第２情報及び全二重通信禁止情報を含んだデータを送信し、そのデータの送信完了後で且つ第２電子装置からのデータの受信完了後に通信状態切換回路を前記第１通信状態に切り換えて第１電子装置との半二重通信を開始するようにしてもよい。第２電子装置は、第２情報及び全二重通信禁止情報を含んだデータを受信すると、送信動作を中止する。このような構成を採用すれば、半二重通信・全二重通信のデータを損なうことなく通信状態を切り換えることができる。
【００１８】
本発明において、第１電子装置即ち半二重通信用電子装置としては、データ判定手段と、データ選別手段と、送信制御手段とを備えたものが好適である。ここで、データ判別手段は、受信したデータが第１情報及び第２情報のいずれを含むかを判定する。また、データ選別手段は、受信したデータが第１情報を含むと判定された場合にはそのデータをそのまま受信する一方、第２情報を含むと判定された場合にはそのデータを破棄する。そして、送信制御手段は、第１情報を含んだデータをそのまま受信した場合には、該データに対する回答を作成し、該作成した回答を第１情報を含んだデータとして送信する。
【００１９】
本発明において、第２電子装置即ち全二重通信用電子装置としては、データ判定手段と、データ選別手段と、情報判定手段と、送信制御手段とを備えたものが好適である。ここで、データ判定手段は、受信したデータが第１情報及び第２情報のいずれを含むかを判定する。また、データ選別手段は、受信したデータが第１情報を含むと判定された場合にはそのデータを破棄する一方、第２情報を含むと判定された場合にはそのデータをそのまま受信する。そして、第２情報を含んだデータをそのまま受信した場合、情報判定手段は該データが全二重通信許可情報を含むか否かを判定する。そして、情報判定手段が全二重通信許可情報を含むと判定した場合には、送信制御手段は送信動作を実行する。一方、情報判定手段が全二重通信禁止情報を含むと判定した場合には、送信制御手段は送信動作を中止する。
【００２０】
【発明の実施の形態】
図１は本実施形態の電気的な接続を表す概略ブロック図である。本実施形態の通信システムは、エンジンＥＣＵ１０、第１ＥＣＵ４０、第２ＥＣＵ５０から構成されている。
【００２１】
エンジンＥＣＵ１０は、ＭＰＵ２０と、通信状態切換回路２４と、コネクタ３０とを備えている。ＭＰＵ２０は、ＣＰＵ１１、各種制御プログラムや各種マップ類等が記憶されているＲＯＭ１２、各種データを一時的に格納するＲＡＭ１３、各種センサ・スイッチ類１８からの信号を入力する入力インタフェース１４、各種アクチュエータ類１９に対して制御信号を出力する出力インタフェース１５、および、他の電子装置とのシリアル通信を行うシリアル通信インタフェース（以下ＳＣＩという）１６を備え、これらはシステムバス１７を介して互いに接続されている。ＳＣＩ１６は送信ポート２１と受信ポート２２と制御ポート２３とからなるポート群を備えており、このポート群は通信状態切換回路２４を介してコネクタ３０に接続されている。なお、エンジンＥＣＵ１０には、バッテリから図示しない定電圧回路を介して各部に所定の定電圧が供給されている。
【００２２】
ここで、通信状態切換回路２４について説明する。送信ポート２１はコネクタ３０の第１端子２５に接続されている。受信ポート２２は切換スイッチＳＷによってコネクタ３０の第１端子２５か又は第２端子２６のいずれかに接続される。ここで、切換スイッチＳＷは、受信ポート２２側のコモン端子Ｔｃとコネクタ３０の第１端子２５に繋がる端子Ｔ１とを接続するか、又はコモン端子Ｔｃとコネクタ３０の第２端子２６に繋がる端子Ｔ２とを接続するかを切り換えるスイッチである。制御ポート２３は、ハイレベル又はローレベルの電圧信号である制御信号を切換スイッチＳＷに出力してその作動状態を切り換えるポートである。制御信号としてハイレベルの電圧信号が制御ポート２３から出力されると、切換スイッチＳＷは受信ポート２２とコネクタ３０の第１端子２５とを接続する（図１の実線参照）。このとき、通信状態切換回路２４は、送信ポート２１からコネクタ３０の第１端子２５へデータ伝送可能に接続し、コネクタの第１端子２５から受信ポート２２へデータ伝送可能に接続している（この状態を第１通信状態という）。一方、制御信号としてローレベルの電圧信号が制御ポート２３から出力されると、切換スイッチＳＷは受信ポート２２とコネクタ３０の第２端子２６とを接続する（図１の点線参照）。このとき、通信状態切換回路２４は、送信ポート２１からコネクタ３０の第１端子２５へデータ伝送可能に接続し、コネクタの第２端子２６から受信ポート２２へデータ伝送可能に接続している（この状態を第２通信状態という）。
【００２３】
次に、エンジンＥＣＵ１０に接続される第１ＥＣＵ４０および第２ＥＣＵ５０について説明する。
第１ＥＣＵ４０は、送受信端子４１と、この送受信端子４１を介してデータを取り込んだりデータを送出したりする第１制御部４２とを備えており、送受信端子４１は通信線３１を介してコネクタ３０の第１端子２５に接続されている。この第１ＥＣＵ４０は、半二重通信方式でエンジンＥＣＵ１０と通信可能な装置であり、例えばエンジンＥＣＵ１０からデータを読み込んで故障診断を行う故障診断装置や、エンジンＥＣＵ１０からの指令を受けて車両キーのＩＤ照合結果を返送する盗難防止用のイモビライザ制御ユニット等がこれに該当する。
【００２４】
第２ＥＣＵ５０は、受信端子５１と、送信端子５２と、受信端子５１からデータを取り込むと共に送信端子５２からデータを送出する第２制御部５３とを備えており、受信端子５１は通信線３２を介してコネクタ３０の第１端子２５に接続され、送信端子５２は通信線３３を介してコネクタ３０の第２端子２６に接続されている。この第２ＥＣＵ５０は、全二重通信方式でエンジンＥＣＵ１０と通信可能な装置であり、例えばエンジンＥＣＵ１０と大量のデータを高速でやり取りする自動変速機制御ユニット等がこれに該当する。本実施形態では通信線３２は通信線３１から分岐している。
【００２５】
次に、半二重通信用データ及び全二重通信用データについて図２に基づいて説明する。
半二重通信用データは、エンジンＥＣＵ１０が送信するデータと、第１ＥＣＵ４０が送信するデータの二つがあるが、本実施形態ではいずれも３バイトで構成されており、その１バイト目には図２（ａ）に示すようにフラグＸSELが含まれている。このフラグＸSELは、エンジンＥＣＵ１０の通信相手を表すＥＣＵ選択フラグである。図２（ａ）のデータは半二重通信用であり、通信相手が第１ＥＣＵ４０であるため、フラグＸSELは「０」である。
【００２６】
全二重通信用データは、エンジンＥＣＵ１０が送信するデータと、第２ＥＣＵ５０が送信するデータの二つがあるが、本実施形態では前者は３バイトで構成され、後者は２バイトで構成されている。前者の１バイト目には図２（ｂ）の上段に示すようにフラグＸSELとフラグＸTXOKとが含まれている。このデータは全二重通信用であり、通信相手が第２ＥＣＵ５０であるため、フラグＸSELは「１」である。フラグＸTXOKは全二重通信方式による送信の許可・禁止を指示するものであり、禁止する場合には「０」、許可する場合には「１」である。これに対して、後者の１バイト目には図２（ｂ）の下段に示すようにフラグＸSELもフラグＸTXOKも含まれていない。フラグＸSELが含まれていないのは、第２ＥＣＵ５０が送信するデータについては、配線上、第１ＥＣＵ４０が受信することはないからである。また、フラグＸTXOKが含まれていないのは、このフラグはエンジンＥＣＵ１０から第２ＥＣＵ５０への送信の許可・禁止を指示するものだからである。
【００２７】
次に、エンジンＥＣＵ１０のＣＰＵ１１が実行するプログラムについて説明する。図示しないイグニッションキーがオンされると、エンジンＥＣＵ１０のＣＰＵ１１は初期設定を行う。本実施形態では、初期設定において、全二重通信の頻度が高いことを考慮して制御ポート２３の出力電圧がローレベルに設定され、また各フラグがリセットされる。エンジンＥＣＵ１０は、ＲＯＭ１２に記憶された種々の制御プログラムにしたがって動作するが、この動作中に第１ＥＣＵ４０又は第２ＥＣＵ５０への送信要求信号が発生すると、図３に示す通信制御プログラムを実行する。
【００２８】
まず、ステップ（以下Ｓという）１００では、今回の送信要求信号が第１ＥＣＵ４０への送信要求である第１送信要求信号か、第２ＥＣＵ５０への送信要求である第２送信要求信号かを判断する。このＳ１００で第１ＥＣＵ４０への送信要求であれば、Ｓ１０１に進んで制御ポート２３の出力電圧をチェックする。ここで制御ポート２３の出力電圧がハイレベルであれば、エンジンＥＣＵ１０と第１ＥＣＵ４０とは半二重通信可能な状態であることから、Ｓ１０２に進んで、第１ＥＣＵ４０への送信データの１バイト目のフラグＸSELを「０」（通信相手：第１ＥＣＵ４０）とし、続くＳ１０３でこの１バイト分を図示しない送信バッファにセットして送信を開始し、Ｓ１０４で第１ＥＣＵ４０へデータを送信中であることを示すフラグＸTX1に「１」をセットし、このプログラムを終了する。一方、Ｓ１０１で制御ポート２３の出力電圧がローレベルであれば、エンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態であることから、Ｓ１０５に進んでフラグＸSTPに「１」をセットし、第１ＥＣＵ４０と半二重通信を行うことなく、このプログラムを終了する。フラグＸSTPは、エンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態で第１送信要求信号が発生したときに「１」にセットされ、その後第１送信要求信号に基づき第１ＥＣＵ４０へ送信してその回答を第１ＥＣＵ４０から受信した時にリセットされる（リセットについては後述のＳ３０５参照）。
【００２９】
さて、Ｓ１００で今回の送信要求が第２ＥＣＵ５０への送信要求ならば、Ｓ１１０に進んで制御ポート２３の出力電圧をチェックし、その出力電圧がローレベルであれば、エンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態であるため、Ｓ１１１に進み、フラグＸSTPが「０」か「１」かを判断し、フラグＸSTPが「０」ならば、Ｓ１１２に進んで第２ＥＣＵ５０への送信データのフラグＸTXOKに「１」（全二重通信許可）をセットし、その後Ｓ１１４へ進む。一方、Ｓ１１１でフラグＸSTPが「１」ならば、第２ＥＣＵ５０の送信動作を中止させるために、Ｓ１１３に進んで第２ＥＣＵ５０への送信データのフラグＸTXOKをリセットして「０」（全二重通信禁止）とし、その後Ｓ１１４へ進む。そして、Ｓ１１４で、フラグＸSELに「１」（第２ＥＣＵ５０を選択）をセットし、続くＳ１１５で、この第２ＥＣＵ５０への送信データを送信バッファ（図示せず）にセットして１バイト分の送信を開始し、Ｓ１１６で第２ＥＣＵ５０へデータを送信中であることを示すフラグＸTX2に「１」をセットし、このプログラムを終了する。
【００３０】
一方、Ｓ１１０で制御ポート２３の出力電圧がハイレベルであれば、エンジンＥＣＵ１０と第１ＥＣＵ４０とが半二重通信可能な状態であるため、Ｓ１１７に進み、第１ＥＣＵ４０からのデータの受信を完了しているか否かを判断し、データの受信を完了していれば（つまりフラグＸRX1ENDが「１」ならば）、通信状態切換回路２４を第１通信状態から第２通信状態に切り換えても問題がないため、Ｓ１１８に進んで制御ポート２３の出力電圧をローレベルにセットし、その後既述のＳ１１４〜Ｓ１１６の処理を実行し、このプログラムを終了する。一方、Ｓ１１７で、第１ＥＣＵ４０からのデータの受信を完了していないならば（つまりフラグＸRX1ENDが「０」ならば）、第１通信状態から第２通信状態に切り換えるとエンジンＥＣＵ１０と第１ＥＣＵ４０との間の通信データが破壊される等の問題が生じるため、Ｓ１１９に進み、第２ＥＣＵ５０への送信予約を示すフラグＸREQ2に「１」をセットし、このプログラムを終了する。このフラグＸREQ2が「１」にセットされると、第１ＥＣＵ４０からの受信が完了した後に第１通信状態から第２通信状態に切り換わり、第２ＥＣＵ５０との通信が実行される（この点は後述の受信割込におけるＳ３０６〜Ｓ３１１を参照）。
【００３１】
なお、第１送信要求信号は必要に応じて随時発生する信号であり、第２送信要求信号は原則として所定時間（ここでは１６ｍｓｅｃ）毎に発生する信号である。また、エンジンＥＣＵ１０が第１ＥＣＵ４０又は第２ＥＣＵ５０にデータを送信している最中に送信要求信号が発生したとき、エンジンＥＣＵ１０は図３に示す通信制御プログラムを開始せず、その送信要求信号を無視する。この無視された送信要求信号はその後再発生する。そして、再発生したタイミングが第１ＥＣＵ４０又は第２ＥＣＵ５０にデータを送信している最中でなければ、エンジンＥＣＵ１０は図３に示す通信制御プログラムを開始する。
【００３２】
続いて、データを送信するごとに開始される送信割込処理について図４のフローチャートに基づいて説明する。この処理が開始されると、エンジンＥＣＵ１０は、まずＳ２００で制御ポート２３の出力電圧をチェックし、この出力電圧がハイレベルつまりエンジンＥＣＵ１０と第１ＥＣＵ４０とが半二重通信可能な状態ならば、Ｓ２０１に進んで、エンジンＥＣＵ１０から第１ＥＣＵ４０へデータを送信中か否か、即ちフラグＸTX1が「１」か「０」かを判断する。ここでフラグＸTX1が「０」ならば、第１ＥＣＵ４０へのデータの送信が完了しているため、このプログラムを終了する。一方、Ｓ２０１でフラグＸTX1が「１」ならば、エンジンＥＣＵ１０は第１ＥＣＵ４０へデータを送信中であるため、Ｓ２０２に進み、次の１バイトがあるか否かを判断し、次の１バイトがあれば、Ｓ２０３に進んでその１バイトを送信バッファ（図示せず）にセットし送信を開始して、このプログラムを終了する。一方、Ｓ２０２で次の１バイトがなければ、Ｓ２０４に進んでフラグＸTX1をリセットし、Ｓ２０６に進んで、今回第１ＥＣＵ４０へ送信したデータに対する第１ＥＣＵ４０からの回答を受信待機している状態であることから、フラグＸRX1ENDをリセットし、このプログラムを終了する。
【００３３】
一方、Ｓ２００で制御ポート２３の出力電圧がローレベルつまりエンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態ならば、Ｓ２０６に進んでエンジンＥＣＵ１０から第２ＥＣＵ５０へデータを送信中か否か、即ちフラグＸTX2が「１」か「０」かを判断する。ここでフラグＸTX2が「０」ならば、第２ＥＣＵ５０への送信が完了しているため、このプログラムを終了する。一方、Ｓ２０６でフラグＸTX2が「１」ならば、エンジンＥＣＵ１０は第２ＥＣＵ５０へデータを送信中であるため、Ｓ２０７に進み、次の１バイトがあるか否かを判断し、次の１バイトがあれば、Ｓ２０８に進んでその１バイトを図示しない送信バッファにセットして送信を開始し、このプログラムを終了する。一方、Ｓ２０７で次の１バイトがなければ、Ｓ２０９に進んでフラグＸTX2をリセットする。
【００３４】
そして、続くＳ２１０でフラグＸSTPが「１」か「０」かを判断し、フラグＸSTPが「０」ならばこのプログラムを終了する。一方、Ｓ２１０でフラグＸSTPが「１」ならば、以下の状況にある。即ち、エンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態のときに第１送信要求信号が発生して前述のＳ１０５でフラグＸSTPに「１」がセットされ、その後１６ｍｓｅｃ毎の第２送信要求信号が発生し、前述のＳ１１１でフラグＸSTPが「１」と判断され、続くＳ１１３でフラグＸTXOKを「０」（全二重通信禁止）とした上でＳ１１４〜Ｓ１１６により送信データの最初の１バイト分が第２ＥＣＵ５０へ送信され、その後この送信割込プログラムにより残りの２バイト分が第２ＥＣＵ５０へ送信されたという状況にある。つまり、全二重通信禁止情報を含むデータを第２ＥＣＵ５０へ送信完了したという状況にある。
【００３５】
このため、Ｓ２１１において、第２ＥＣＵ５０からのデータの受信を完了しているか否かを判断し、データの受信を完了しているならば（つまりフラグＸRX2ENDが「１」で且つ第２ＥＣＵ５０からのデータのスタートビットを検出していないならば）、通信状態切換回路２４を第２通信状態から第１通信状態に切り換えても問題がないため、Ｓ２１２に進んで制御ポート２３の出力電圧をハイレベルにセットし、その後Ｓ２１３〜Ｓ２１５にて前述のＳ１０２〜Ｓ１０４と同様の処理を実行し、このプログラムを終了する。一方、Ｓ２１１において、第２ＥＣＵ５０からのデータを受信中ならば、第２通信状態から第１通信状態に切り換えるとエンジンＥＣＵ１０と第２ＥＣＵ５０との間の通信データが破壊される等の問題が生じるため、Ｓ２１６に進み、第１ＥＣＵ４０への送信予約を示すフラグＸREQ1に「１」をセットし、このプログラムを終了する。このフラグＸREQ1に「１」がセットされると、第２ＥＣＵ５０からの受信が完了した後に第２通信状態から第１通信状態に切り換わり、第１ＥＣＵ４０との通信が実行される（この点は後述の受信割込におけるＳ３１８〜Ｓ３２３を参照）。
【００３６】
なお、Ｓ２１１で第２ＥＣＵ５０からデータを受信中であると判断されるケースつまりエンジンＥＣＵ１０は全二重通信禁止情報を含むデータを送信完了した後に第２ＥＣＵ５０からのデータを受信するケースとしては、例えば、第２ＥＣＵ５０が全二重通信禁止情報を含むデータを受信するまでの間にエンジンＥＣＵ１０に対して既にデータを送信開始していた場合が挙げられる。
続いてデータを受信するごとに開始される受信割込処理について図５のフローチャートに基づいて説明する。この処理が開始されると、エンジンＥＣＵ１０は、まずＳ３００で制御ポート２３の出力電圧をチェックし、その出力電圧がハイレベルつまりエンジンＥＣＵ１０と第１ＥＣＵ４０とが半二重通信可能な状態ならば、Ｓ３０１に進んでフラグＸTX1が「１」か「０」かを判断し、フラグＸTX1が「１」ならば即ち第１ＥＣＵ４０へデータを送信中であれば、このプログラムを終了する。一方、Ｓ３０１でフラグＸTX1が「０」ならば即ちエンジンＥＣＵ１０から第１ＥＣＵ４０へのデータ送信が完了していれば、Ｓ３０２に進んで、受信データの１バイト分を取り込み、続くＳ３０３で所定バイト数のデータを取り込んだか否かを判断し、所定バイト数のデータを取り込んでいなければ、第１ＥＣＵ４０からのデータを受信待機している状態であることから、そのままプログラムを終了する（このときフラグＸRX1ENDはＳ２０５でリセットされた状態のままである）。なお、本実施形態では受信データつまり第１ＥＣＵ４０がエンジンＥＣＵ１０へ送信するデータは３バイトで構成されているため、Ｓ３０３における所定バイト数は「３バイト」である。
【００３７】
一方、Ｓ３０３で所定バイト数のデータを取り込んだならば、Ｓ３０４に進んで第１ＥＣＵ４０からのデータの受信完了を示すフラグＸRX1ENDに「１」をセットし、続くＳ３０５でフラグＸSTPをリセットする。その後Ｓ３０６で、第２ＥＣＵ５０への送信予約がされているか否か、即ちフラグＸREQ2が「１」か「０」かを判断し、フラグＸREQ2が「０」ならば、このプログラムを終了する。一方、フラグＸREQ2が「１」ならば、Ｓ３０７に進み、制御ポート２３の出力電圧をローレベルに切り換えてエンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態とし、続くＳ３０８で第２ＥＣＵ５０への送信予約を示すフラグＸREQ2をリセットし、その後Ｓ３０９〜Ｓ３１１で前述のＳ１１４〜Ｓ１１６と同様の処理を行った後、このプログラムを終了する。
【００３８】
さて、Ｓ３００で制御ポート２３の出力電圧をチェックし、その出力電圧がローレベルつまりエンジンＥＣＵ１０と第２ＥＣＵ５０とが全二重通信可能な状態ならば、エンジンＥＣＵ１０から第２ＥＣＵ５０へデータを送信中であってもエンジンＥＣＵ１０は第２ＥＣＵ５０からデータを受信できるため、フラグＸTX2の状態によらず、Ｓ３１４に進んで受信データの１バイト分を取り込む。続くＳ３１５で所定バイト数のデータを取り込んだか否かを判断し、所定バイト数のデータを取り込んでいなければ、Ｓ３１６に進んで第２ＥＣＵ５０からのデータの受信が未だ完了しておらず受信待機している状態であることから、第２ＥＣＵ５０からのデータの受信完了を示すフラグＸRX2ENDをリセットし、このプログラムを終了する。なお、本実施形態では受信データつまり第２ＥＣＵ５０がエンジンＥＣＵ１０へ送信するデータは２バイトで構成されているため、Ｓ３１５における所定バイト数は「２バイト」である。
【００３９】
一方、Ｓ３１５で所定バイト数のデータを取り込んだならば、Ｓ３１７に進んで第２ＥＣＵ５０からのデータの受信完了を示すためにフラグＸRX2ENDをセットし、続くＳ３１８で第１ＥＣＵ４０への送信予約がされているか否か、即ちフラグＸREQ1が「１」か「０」かを判断し、フラグＸREQ1が「０」ならば、このプログラムを終了する。一方、フラグＸREQ1が「１」ならば、Ｓ３１９に進み、制御ポート２３の出力電圧をハイレベルにセットしてエンジンＥＣＵ１０と第１ＥＣＵ４０とが半二重通信可能な状態とし、続くＳ３２０で第１ＥＣＵ４０への送信予約を示すフラグＸREQ1をリセットし、その後Ｓ３２１〜Ｓ３２３で前述のＳ１０２〜Ｓ１０４と同様の処理を行った後、このプログラムを終了する。
【００４０】
次に、第１ＥＣＵ４０の送受信制御について図６のフローチャートに基づいて概略説明する。第１ＥＣＵ４０の第１制御部４２は、まずＳ４００でエンジンＥＣＵ１０へデータを送信中か否か、即ち送信状況を表すフラグＸTXeが「１」か「０」かを判断し、フラグＸTXeが「０」ならば、Ｓ４０１に進んでエンジンＥＣＵ１０から受信データの１バイト分を取り込み、１バイト目の場合にはそのフラグＸSELをフラグ用ＲＡＭ（図示せず）に記憶する。そしてＳ４０２で、フラグ用ＲＡＭに記憶されたフラグＸSELが「１」か「０」かを判断し、フラグＸSELが「１」つまり第２ＥＣＵ５０が選択されていた場合には、Ｓ４０３に進んでこのデータを破棄する。一方、フラグＸSELが「０」つまり第１ＥＣＵ４０が選択されていた場合には、続くＳ４０４で所定バイト数のデータを受信したか否かを判断し、未だ受信していなければそのままこのプログラムを終了する。一方、Ｓ４０４で所定バイト数のデータを受信したならば、Ｓ４０５に進んで受信データを解析し、その回答としてエンジンＥＣＵ１０へ送信すべきデータ（ここでは３バイト）を作成し、続くＳ４０６でこのデータの１バイト分を送信すると共にＳ４０７でフラグＸTXeをセットして、このプログラムを終了する。なお、最初の１バイト分を送信する際にはフラグＸSEL（＝０）を付加して送信する。
【００４１】
一方、Ｓ４００でフラグＸTXeが「１」ならば、エンジンＥＣＵ１０へデータを送信中であるため、Ｓ４０８に進んで次の１バイトがあるか否かを判断し、次の１バイトがあれば、前述のＳ４０６、Ｓ４０７の処理を行い、このプログラムを終了する。一方、Ｓ４０８で次の１バイトがなければ、Ｓ４０９に進んでフラグＸTXeをリセットし、このプログラムを終了する。
【００４２】
このように、第１ＥＣＵ４０は、３バイトで構成されたデータをエンジンＥＣＵ１０から受信すると、そのデータに対する回答を作成し、これを送信する。つまり、エンジンＥＣＵ１０がマスター、第１ＥＣＵ４０がスレーブの関係にあり、両者は半二重通信を行うことがわかる。また、送受データには、エンジンＥＣＵ１０と第１ＥＣＵ４０との通信データであることを示すために、フラグＸSEL（＝０）が付加されている。
【００４３】
次に、第２ＥＣＵ５０の送信制御について図７及び図８のフローチャートに基づいて説明する。図７は１６ｍｓｅｃごとに開始される初回データの送信処理（ベース処理）であり、図８は送信割込処理である。図７の送信処理が開始されると、第２ＥＣＵ５０の第２制御部５３は、Ｓ５００においてフラグ用ＲＡＭ（図示せず）に記憶されたフラグＸTXOKが「１」か「０」かを判断する。なお、このフラグ用ＲＡＭは、初期設定時にリセットされ、受信割込の受信データ取り込み時（図９のＳ７００）に、受信データの１バイト目に付加されているフラグＸTXOKが記憶される。Ｓ５００でフラグＸTXOKが「０」ならば、全二重通信方式による送信が禁止されているため、送信状況を表すフラグＸTXEをリセットし、このプログラムを終了する。一方、Ｓ５００でフラグＸTXOKが「１」ならば、全二重通信方式による送信が許可されているため、Ｓ５０１に進んでエンジンＥＣＵ１０へ送信すべきデータ（ここでは２バイト）のうちの最初の１バイト分の送信を開始すると共に、Ｓ５０２でエンジンＥＣＵ１０へデータを送信中であることを示すためにフラグＸTXEに「１」をセットし、このプログラムを終了する。その後、図８の送信割込処理が開始されると、第２ＥＣＵ５０の第２制御部５３は、Ｓ６００においてフラグＸTXEが「１」か「０」かを判断し、フラグＸTXEが「０」ならば、そのままこのプログラムを終了する。一方、Ｓ６００でフラグＸTXEが「１」ならば、エンジンＥＣＵ１０へデータを送信中であるため、Ｓ６０１に進み、送信すべき次の１バイトがあるか否かを判断し、次の１バイトがあれば、Ｓ６０２に進んでその１バイト分の送信を開始し、このプログラムを終了する。一方、Ｓ６０１で次の１バイトがなければ、Ｓ６０３に進んでフラグＸTXEをリセットし、このプログラムを終了する。
【００４４】
次に第２ＥＣＵ５０の受信制御について図９のフローチャートに基づいて説明する。図９はデータを受信するごとに開始される受信割込処理であり、この処理が開始されると、第２ＥＣＵ５０の第２制御部５３は、Ｓ７００において、受信データの１バイト分を取り込み、１バイト目の場合にはそのフラグＸSELをフラグ用ＲＡＭ（図示せず）に記憶し、更にフラグＸSELが「１」の場合にはフラグＸTXOKをフラグ用ＲＡＭに記憶する。続くＳ７０１で、フラグ用ＲＡＭに記憶されたフラグＸSELが「１」か「０」かを判断し、フラグＸSELが「０」つまり第１ＥＣＵ４０が選択されていた場合には、Ｓ７０２に進んでこの受信データを破棄する。一方、フラグＸSELが「１」つまり第２ＥＣＵ５０が選択されていた場合には、続くＳ７０３で所定バイト数のデータを受信したか否かを判断し、未だ受信していなければそのままこのプログラムを終了する。一方、Ｓ７０３で所定バイト数のデータを受信したならば、Ｓ７０４に進んで受信データを解析し、このプログラムを終了する。
【００４５】
このように、第２ＥＣＵ５０は、２バイトで構成されたデータをエンジンＥＣＵ１０へ送信する一方、この送信処理とは非同期に、３バイトで構成されたデータを受信する。なお、第２ＥＣＵ５０は、全二重通信許可情報を含むデータを受信すると全二重通信方式による送信動作を開始し、全二重通信禁止情報を含むデータを受信すると全二重通信方式による送信動作を中止する。
【００４６】
次に、図１０〜図１３のタイムチャートに基づいて半二重通信・全二重通信の具体例を説明する。
（１）半二重通信を連続的に実行する場合
図１０に基づいて説明する。エンジンＥＣＵ１０は、その内部で第１ＥＣＵ４０への送信要求信号が発生すると、初期設定では制御ポート２３の出力電圧はローレベルであるが、これをハイレベルに切り換えて通信状態切換回路２４を第１ＥＣＵ４０と半二重通信可能な状態とする。この状態で、エンジンＥＣＵ１０は、３バイトで構成される送信データの最初の１バイト分を送信すると共に第１ＥＣＵ４０へデータを送信中であることを示すフラグＸTX1に「１」をセットし、送信割込で残りの２バイトを送信し、その後フラグＸTX1をリセットすると共に第１ＥＣＵ４０からの回答を受信待機していることから第１ＥＣＵ４０からのデータの受信完了を示すフラグＸRX1ENDをリセットする。一方、第１ＥＣＵ４０は、３バイトで構成されたエンジンＥＣＵ１０からのデータの１バイト目を取り込み、そこに付加されたフラグＸSELを図示しないフラグ用ＲＡＭに記憶する。このときフラグＸSELは「０」つまり第１ＥＣＵ４０が選択されていることから、受信データを破棄することなく、１バイトずつ合計３バイトのデータを取り込む。その後第１ＥＣＵ４０は、３バイトで構成される回答データを作成し、それを１バイトずつ送信する。この回答データの１バイト目にはフラグＸSEL＝０が付加されている。回答データを送信中、第１ＥＣＵ４０のフラグＸTXeは「１」であり、送信完了後このフラグＸTXeはリセットされる。その後、エンジンＥＣＵ１０は、受信割込で第１ＥＣＵ４０からのデータを１バイトずつ取り込み、取り込んだあとフラグＸRX1ENDに「１」をセットする。その後、エンジンＥＣＵ１０において再び第１ＥＣＵ４０への送信要求信号が発生すると、前記と同様にしてデータのやり取りが行われる。
【００４７】
この通信期間中、第２ＥＣＵ５０もデータを受信するが、フラグＸSELが「０」のため、第２ＥＣＵ５０はこの受信データを破棄する。また、第２ＥＣＵ５０のフラグ用ＲＡＭのフラグＸTXOKは「０」（全二重通信禁止）のため、第２ＥＣＵ５０は全二重通信方式による送信動作を行わない。
【００４８】
（２）全二重通信を連続的に実行する場合
図１１に基づいて説明する。エンジンＥＣＵ１０は、その内部で第２ＥＣＵ５０への送信要求信号が発生すると（原則１６ｍｓｅｃ毎に発生）、初期設定では制御ポート２３の出力電圧がローレベルつまり第２ＥＣＵ５０と全二重通信可能な状態に設定されているため、そのままの状態で、３バイトで構成される送信データの最初の１バイト分を送信すると共に第２ＥＣＵ５０へデータ送信中であることを示すフラグＸTX2に「１」をセットし、続いて送信割込で残りの２バイトを送信し、その後フラグＸTX2をリセットする。第２ＥＣＵ５０は、３バイトで構成されたエンジンＥＣＵ１０からのデータの１バイト目を取り込み、そこに付加されたフラグＸSEL＝１（第２ＥＣＵ５０を選択）及びフラグＸTXOK＝１（全二重通信許可）を図示しないフラグ用ＲＡＭに記憶する。このときフラグＸSELが「１」であるから、第２ＥＣＵ５０は受信データを破棄することなく１バイトずつ合計３バイトのデータを取り込む。
【００４９】
また、第２ＥＣＵ５０は、受信割込と非同期にエンジンＥＣＵ１０への送信要求信号が発生すると（原則１６ｍｓｅｃ毎に発生）、フラグ用ＲＡＭのフラグＸTXOKが「１」つまり全二重通信が許可されていることから、２バイトで構成されるデータを１バイトずつ送信する。なお、データの送信中は第２ＥＣＵ５０のフラグＸTXEは「１」であり、送信完了後このフラグＸTXEはリセットされる。その後エンジンＥＣＵ１０は、受信割込において第２ＥＣＵ５０からのデータの最初の１バイト分を取り込んだ後、まだ第２ＥＣＵ５０からのデータの受信が完了していないことから、第２ＥＣＵ５０からのデータ受信完了を示すフラグＸRX2ENDをリセットし、次いで残り１バイトを取り込んだ後、フラグＸRX2ENDに「１」をセットする。
【００５０】
なお、この通信期間中、第１ＥＣＵ４０もエンジンＥＣＵ１０からのデータを受信するが、フラグＸSELが「１」であるから、第１ＥＣＵ４０はこの受信データを破棄する。
（３）半二重通信中に全二重の送信要求が生じた場合
図１２に基づいて説明する。エンジンＥＣＵ１０は、その内部で第１ＥＣＵ４０への送信要求信号が発生すると、図１０を用いて説明したとおりの手順で第１ＥＣＵ４０と半二重通信を実行する。ここで、半二重通信の実行中（例えば第１ＥＣＵ４０がエンジンＥＣＵ１０からのデータを受信している時）に、エンジンＥＣＵ１０の内部で第２ＥＣＵ５０への送信要求信号が発生すると、第１ＥＣＵ４０からのデータ受信完了を示すフラグＸRX1ENDが「０」即ち第１ＥＣＵ４０からのデータ受信は未だ完了していないことから、直ちに全二重通信を実行できない。このため第２ＥＣＵ５０への送信予約を示すフラグＸREQ2に「１」をセットする。その後、エンジンＥＣＵ１０は、第１ＥＣＵ４０からのデータを受信し終えるとフラグＸRX1ENDに「１」をセットし、制御ポート２３をローレベルに切り換え、フラグＸREQ2をリセットする。そして、図１１を用いて説明したとおりの手順で第２ＥＣＵ５０と全二重通信を実行する。
【００５１】
（４）全二重通信中に半二重の送信要求が生じた場合
図１３に基づいて説明する。エンジンＥＣＵ１０は、その内部で第２ＥＣＵ５０への送信要求信号が発生すると、図１１を用いて説明したとおりの手順で第２ＥＣＵ５０と全二重通信を実行する。ここで、全二重通信の実行中（例えば第２ＥＣＵ５０がエンジンＥＣＵ１０からのデータを受信している時）に、エンジンＥＣＵ１０の内部で第１ＥＣＵ４０への送信要求信号が発生すると、制御ポート２３がローレベルであるから、第２ＥＣＵ５０へ全二重通信禁止情報を送るべくフラグＸSTPに「１」をセットする。そして、次に第２ＥＣＵ５０への送信要求信号が発生したときに、エンジンＥＣＵ１０は、１バイト目にフラグＸSEL＝１（第２ＥＣＵ５０を選択）、フラグＸTXOK＝０（全二重通信禁止）を含むデータを送信し、１バイトずつ合計３バイト送信した後に、フラグＸTX2をリセットする。第２ＥＣＵ５０は、このデータの１バイト目を受信したとき、フラグＸSEL及びフラグＸTXOKをフラグ用ＲＡＭに記憶する。このとき、フラグＸSELは前回に引き続き「１」のままであるが、フラグＸTXOKは「１」から「０」に書き換えられる。このため、第２ＥＣＵ５０はこれ以後データの送信を中止する。
【００５２】
エンジンＥＣＵ１０は、全二重通信禁止情報を含むデータを送信した時点で、第２ＥＣＵ５０からのデータ受信を完了していれば（つまり、フラグＸRX2ENDが「１」で且つ第２ＥＣＵ５０からのデータのスタートビットを検出していないならば）、直ちに図１０を用いて説明したとおりの手順で第１ＥＣＵ４０との半二重通信を行う。しかし、図１３のように第２ＥＣＵ５０からのデータを受信中ならば、直ちに半二重通信を実行できない。このため第１ＥＣＵ４０への送信予約を示すフラグＸREQ1に「１」をセットする。その後、エンジンＥＣＵ１０は、第２ＥＣＵ５０からのデータを受信し終えるとフラグＸRX2ENDに「１」をセットし、制御ポート２３をハイレベルに切り換え、フラグＸREQ1をリセットする。そして、図１０を用いて説明したとおりの手順で第１ＥＣＵ４０との半二重通信を実行する。
【００５３】
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。即ち、エンジンＥＣＵ１０（ＭＰＵ２０）が本発明の主電子装置に相当し、ＣＰＵ１１が送信要求信号手段、通信制御手段に相当し、図３〜図５のフローチャートが通信制御手段の処理に相当する。また、第１ＥＣＵ４０が本発明の第１電子装置即ち半二重通信用電子装置に相当し、第１制御部４２がデータ判定手段、データ選別手段、送信制御手段に相当し、Ｓ４０２がデータ判定手段の処理、Ｓ４０３及びＳ４０４がデータ選別手段の処理、Ｓ４０５及びＳ４０６が送信制御手段の処理に相当する。更に、第２ＥＣＵ５０が本発明の第２電子装置即ち全二重通信用電子装置に相当し、第２制御部５３がデータ判定手段、データ選別手段、情報判定手段、送信制御手段に相当し、Ｓ７０１がデータ判定手段の処理、Ｓ７０２及びＳ７０３がデータ選別手段の処理、Ｓ５００が情報判定手段の処理、Ｓ５０３が送信制御手段の処理に相当する。そして、フラグＸSEL＝０が第１情報に相当し、フラグＸSEL＝１が第２情報に相当し、フラグＸTXOK＝１が全二重通信許可情報に相当し、フラグＸTXOK＝０が全二重通信禁止情報に相当する。
【００５４】
以上詳述した本実施形態によれば以下の効果が得られる。
▲１▼半二重および全二重通信方式のいずれにも対応できる通信システムにおいて、送受するデータに含まれるフラグＸSELにより、第１ＥＣＵ４０及び第２ＥＣＵ５０は受信したデータをそのまま受信すべきか破棄すべきかを認識でき、また、エンジンＥＣＵ１０から第２ＥＣＵ５０へ送信するデータにつきフラグＸTXOKを含ませることにより、第２ＥＣＵ５０に対して全二重通信方式による送信の許可・禁止を伝達している。このため、第２ＥＣＵ５０に対して全二重通信方式による通信の許可・禁止を伝達するための専用ポートや専用端子が必要であった従来の構成に比べて、ＭＰＵ２０のポート数およびコネクタ３０の端子数を削減できる。
▲２▼通信状態切換回路２４は、切換スイッチＳＷを備えているため、簡易な構成でありながら第１通信状態と第２通信状態の切り換えを容易に実行できる。
▲３▼エンジンＥＣＵ１０のＣＰＵ１１は、送信要求信号の種類に応じて自動的に半二重通信方式と全二重通信方式の切換を行うため、第１ＥＣＵ４０と第２ＥＣＵ５０が同時に接続されている場合にどちらの装置と通信するかにつき容易に対処できる。
▲４▼エンジンＥＣＵ１０のＣＰＵ１１は、第１ＥＣＵ４０へデータを送信し始めたあと第１ＥＣＵ４０から該送信したデータの回答を受信し終わるまでの間に第２ＥＣＵ５０への送信要求信号が発生した場合には、送信したデータの回答を受信し終わった後に通信状態切換回路２４を第２通信状態に切り換えて第２ＥＣＵ５０との全二重通信を開始する。一方、第２ＥＣＵ５０へデータを送信中または第２ＥＣＵ５０からデータを受信中に第１ＥＣＵ４０への送信要求信号が発生した場合には、フラグＸSEL＝１（第２ＥＣＵを選択）及びフラグＸTXOK＝０（全二重通信禁止情報）を含んだデータを送信し、そのデータの送信完了後で且つ第２ＥＣＵ５０からのデータの受信完了後に、通信状態切換回路２４を第１通信状態に切り換えて第１ＥＣＵ４０との半二重通信を開始する。このため、第１ＥＣＵ４０と第２ＥＣＵ５０が同時に接続されている場合に、半二重通信・全二重通信のデータを損なうことなく通信状態を切り換えることができる。
【００５５】
なお、本発明は上記実施形態に何ら限定されることなく、本発明の技術的範囲に属する限り、種々の形態で実施できることはいうまでもない。
例えば、上記実施形態では、コネクタ３０に第１端子２５及び第２端子２６を設けて、第１端子２５と第１ＥＣＵ４０とを接続する通信線３１から通信線３２を分岐させて第１端子２５と第２ＥＣＵ５０の受信端子５１とを接続したが、これに代えて、図１４に示す構成を採用してもよい。即ち、コネクタ３０に更に第３端子２７を設け、通信状態切換回路２４の内部で第１端子２５と第３端子２７とを接続する構成とし、第３端子２７と第２ＥＣＵ５０の受信端子５１とを接続するようにしてもよい。このとき第２ＥＣＵ５０の受信端子５１はコネクタ３０の第３端子２７を介して第１端子２５に接続されている。この場合も上記実施形態と同様の作用効果が得られる。
【図面の簡単な説明】
【図１】  本実施形態の電気的な接続を表す概略ブロック図である。
【図２】  通信データの説明図であり、（ａ）は半二重通信用データの説明図、（ｂ）は全二重通信用データの説明図である。
【図３】  エンジンＥＣＵの通信制御プログラムのフローチャートである。
【図４】  エンジンＥＣＵの送信割込処理のフローチャートである。
【図５】  エンジンＥＣＵの受信割込処理のフローチャートである。
【図６】  第１ＥＣＵの送受信処理のフローチャートである。
【図７】  第２ＥＣＵの送信処理（ベース処理）のフローチャートである。
【図８】  第２ＥＣＵの送信割込処理のフローチャートである。
【図９】  第２ＥＣＵの受信割込処理のフローチャートである。
【図１０】  半二重通信を連続的に実行する場合のタイムチャートである。
【図１１】  全二重通信を連続的に実行する場合のタイムチャートである。
【図１２】  半二重通信中に全二重の送信要求が生じた場合のタイムチャートである。
【図１３】  全二重通信中に半二重の送信要求が生じた場合のタイムチャートである。
【図１４】  他の実施形態の概略説明図である。
【図１５】  従来例の概略説明図である。
【符号の説明】
１０・・・エンジンＥＣＵ、１１・・・ＣＰＵ、１６・・・シリアル通信インタフェース、２１・・・送信ポート、２２・・・受信ポート、２３・・・制御ポート、２４・・・通信線切換回路、２５・・・第１端子、２６・・・第２端子、３０・・・コネクタ、３１〜３３・・・通信線、４０・・・第１ＥＣＵ、４１・・・第１ＥＣＵの送受信端子、４２・・・第１制御部、５０・・・第２ＥＣＵ、５１・・・第２ＥＣＵの受信端子、５２・・・第２ＥＣＵの送信端子、５３・・・第２制御部、ＳＷ・・・切換スイッチ。
【図１】
0003932719.tif 000002
【図２】
0003932719.tif 000003
【図３】
0003932719.tif 000004
【図４】
0003932719.tif 000005
【図５】
0003932719.tif 000006
【図６】
0003932719.tif 000007
【図７】
0003932719.tif 000008
【図８】
0003932719.tif 000009
【図９】
0003932719.tif 000010
【図１０】
0003932719.tif 000011
【図１１】
0003932719.tif 000012
【図１２】
0003932719.tif 000013
【図１３】
0003932719.tif 000014
【図１４】
0003932719.tif 000015
【図１５】
0003932719.tif 000016