(57)【特許請求の範囲】
【請求項１】
データを送信する側の装置（以下、送信側装置という）と、前記データを受信する側の装置（以下、受信側装置という）とが、Ｓｔｏｐ−ａｎｄ−Ｗａｉｔ  Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ方式でシリアル通信を行う通信システムにおいて、
前記データの通信が、一定時間毎の通信タイミングが到来する毎に行われると共に、
前記受信側装置にて前記送信側装置からのデータを正常に受信することができなかった場合に該受信側装置から前記送信側装置へと通知される再送信要求が、前記データの通信に用いられる通信線とは別に設けられた専用線によって通知されるようになっており、
前記受信側装置は、前記再送信要求を次の通信タイミングの前に通知し、
しかも、前記受信側装置は、前記送信側装置からのデータを正常に受信することができなかった場合に、前記専用線の電圧レベルを、ハイレベルとローレベルとのうち、前記データを正常に受信することができなかったことを示す一方のレベルに設定することで、前記再送信要求を通知するようになっており、
前記送信側装置は、通信タイミングが到来してから、今回の通信タイミングで送信すべき送信データを選択する前に、前記専用線の電圧レベルをチェックし、その電圧レベルに基づき、前回と同じデータを再送信すべきか否かを判断するようになっており、
更に、前記受信側装置は、通信タイミングが到来すると、前記送信側装置が前記専用線の電圧レベルをチェックし終えた後のタイミングで、前記専用線の電圧レベルを、前記一方のレベルに一旦設定しておき、その後、前記送信側装置からのデータを正常に受信することができたならば、前記専用線の電圧レベルを、前記一方のレベルとは異なる方のレベルに設定し直すように構成されていること、
を特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記送信側装置は、
今回送信するデータが、前記再送信要求に応じて再送信する前回と同じデータ（以下、再送信データという）と、該再送信データではない新たなデータとの何れであるかを示す識別情報を、前記データの一部として前記受信側装置へ送信するように構成されていること、
を特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムにおいて、
前記受信側装置は、
前記送信側装置からのデータを正常に受信することができた場合に、その受信したデータに含まれている前記識別情報を参照して、前回の通信時に前記送信側装置からのデータを正常に受信することができて前記送信側装置へ再送信要求を通知していないにも拘わらず、今回受信したデータが前記再送信データであるという矛盾が生じているか否かを判定し、その矛盾が生じていると判定した場合には、今回受信したデータを無効とするように構成されていること、
を特徴とする通信システム。
【請求項４】
請求項３に記載の通信システムにおいて、
前記受信側装置は、
前記矛盾が生じていると判定した連続回数を計数すると共に、その計数した回数が予め定められた判定値に達したならば、前記専用線が前記再送信要求を行う方の状態で故障していると判断して、所定のフェイルセーフ処理を実行するように構成されていること、
を特徴とする通信システム。
【請求項５】
請求項２ないし請求項４の何れか１項に記載の通信システムにおいて、
前記受信側装置は、
前記送信側装置からのデータを正常に受信することができた場合に、その受信したデータに含まれている前記識別情報を参照して、前回の通信時に前記送信側装置からのデータを正常に受信することができず前記送信側装置へ再送信要求を通知したにも拘わらず、今回受信したデータが前記再送信データではないという矛盾が生じているか否かを判定すると共に、その矛盾が生じていると判定した場合に、所定のフェイルセーフ処理を実行するように構成されていること、
を特徴とする通信システム。
【請求項６】
請求項１ないし請求項４の何れか１項に記載の通信システムにおいて、
前記送信側装置は、
前回と同じデータを送信した連続回数（以下、再送信回数という）を計数し、その再送信回数が予め定められた規定値に達したならば、前記受信側装置からの再送信要求に拘わらず、前回と同じデータを送信するのを止めて、新たなデータを送信するように構成されていること、
を特徴とする通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、送信側の装置と受信側の装置とがＳｔｏｐ−ａｎｄ−Ｗａｉｔ  Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ方式でシリアル通信を行う通信システムに関するものである。
【０００２】
【従来の技術】
従来より、例えば自動車のエンジン等を制御する車両用電子制御装置として、マイコン（マイクロコンピュータ）を２つ備えると共に、その２つのマイコンがＳＰＩ（シリアル／パラレルインターフェース）を用いてシリアル通信を行うことにより互いの制御データを共有するようにしたものがある。
【０００３】
そして、この種の電子制御装置において、送信側の装置と受信側の装置との双方となり得る両マイコンは、通信時に発生した受信誤りを訂正するために、「受信側は、ある１つの伝送単位分のデータを誤りなく正しく受信する毎に、送信側へ、そのことを知らせる伝達確認信号としてのＡＣＫ（positive acknowledgement）を送り、逆に、データを正しく受信することができなかった場合（即ち、受信誤りを検出した場合）には、受信したデータを捨てると共に、送信側へ、再送信要求信号としてのＮＡＫ（negative acknowledgement）を送り、また、そのＮＡＫを受け取った送信側は、送信バッファに蓄積してある前回のデータを、ＡＣＫを受け取るまで再送信する」といったＳｔｏｐ−ａｎｄ−Ｗａｉｔ  Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ方式（以下、ＳＷＡＲＱ方式という）でシリアル通信を行っている。
【０００４】
ここで、２つのマイコンがＳＷＡＲＱ方式でシリアル通信を行う電子制御装置の具体的構成例を、図８に示す。
図８に示すように、この例の電子制御装置１００には、マイコン１０１とマイコン１０２とが設けられている。そして、各マイコン１０１，１０２は、送信データレジスタ１１ｔ及び受信データレジスタ１１ｒを有したＳＰＩ１３と、そのＳＰＩ１３とパラレルのデータバスを介して接続された送信バッファ１５ｔ及び受信バッファ１５ｒとを備えている。尚、この例において、送信バッファ１５ｔと受信バッファ１５ｒは、マイコン１０１，１０２のＲＡＭにおける一部の記憶領域である。
【０００５】
そして更に、マイコン１０１のＳＰＩ１３と、マイコン１０２のＳＰＩ１３は、シリアル通信線１７によってシリアル通信可能に接続されている。尚、シリアル通信線１７は、全二重の通信線であり、マイコン１０１からマイコン１０２への送信用の通信線と、マイコン１０２からマイコン１０１への送信用の通信線とからなっている。また、この例では、マイコン１０１からマイコン１０２へ、通信用のクロック（即ち、通信時に両マイコン１０１，１０２が同期をとるためのクロック）が、クロック線１９を介して供給されるようになっている。
【０００６】
このような電子制御装置１００において、両マイコン１０１，１０２は、一定時間毎に双方向のシリアル通信を行う。
そして、各マイコン１０１，１０２において、データを送信する際には、送信処理により、送信すべき制御データが、ＲＡＭから送信バッファ１５ｔに転送されると共に、そのデータに誤り検出用の検査符号が付加され、そのような検査符号が付加されたデータが、１つの伝送単位分の送信データとして、送信バッファ１５ｔからＳＰＩ１３の送信データレジスタ１１ｔに転送される。すると、その送信データレジスタ１１ｔに転送されたデータは、ＳＰＩ１３により、シリアル通信線１７へ１ビットずつ出力され、これにより、受信側である相手のマイコン（詳しくは、相手のマイコンのＳＰＩ１３）へとシリアル送信されることとなる。
【０００７】
また、各マイコン１０１，１０２において、データを受信する際には、まず、送信側からシリアル通信線１７を介して送られて来るシリアルデータがＳＰＩ１３の受信データレジスタ１１ｒに格納される。そして、受信データレジスタ１１ｒに１つの伝送単位分のデータが格納されると、受信処理により、受信データレジスタ１１ｒ内のデータが受信バッファ１５ｒに転送されると共に、その受信バッファ１５ｒに転送された受信データの正当性が該受信データに付加されている検査符号に基づいて検証され、正常ならば（即ち、受信エラーがなければ）、その受信データが、受信バッファ１５ｒから、ＲＡＭの記憶領域のうちで該受信データに該当する制御データの格納領域に転送される。これにより、ＲＡＭ内の制御データが受信データで更新されることとなる。
【０００８】
次に、データ再送信時の通信動作を、図９を用いて説明する。尚、図９における「通信開始要求」のタイミングは、通信を開始する一定時間毎のタイミングである。
図９に示すように、この電子制御装置１００において、両マイコン１０１，１０２間の通信は２回で１通信となっており、１回目の通信で制御データを通信し、２回目の通信で受信結果（ＡＣＫ又はＮＡＫ）を通信するようになっている。
【０００９】
そして、制御データを送信する場合は、まず、前回の通信における相手からの受信結果を確認し、ＡＣＫが返って来ていたならば、前述したように、ＲＡＭから送信バッファ１５ｔに制御データを転送して、その新たな制御データを送信するが、ＮＡＫが返って来ていた場合には、送信バッファ１５ｔの更新をせずに、前回と同じ制御データを送信する。つまり、ＲＡＭから送信バッファ１５ｔへの制御データの転送を行わずに、前回送信したのと同じ送信バッファ１５ｔ内の制御データを再度送信する。
【００１０】
このため、図９の例において、左から３番目の「通信開始要求」の際の通信では、前回の通信における相手からの受信結果がＮＡＫであるため、左から１番目の「通信開始要求」の際の通信で送信した制御データ（Ｎ）と同じ制御データ（Ｎ）を再送信することとなる。また、左から５番目の「通信開始要求」の際の通信では、前回の通信における相手からの受信結果がＡＣＫであるため、次の更新された制御データ（Ｎ＋１）を送信することとなる。尚、図において、ＮＡＫ（Ｎ）は、Ｎ回目の通信で送られた制御データ（Ｎ）に対応するＮＡＫであり、ＡＣＫ（Ｎ）は、Ｎ回目の通信で送られた制御データ（Ｎ）に対応するＡＣＫである。
【００１１】
【発明が解決しようとする課題】
上記技術によれば、通信の誤り訂正は可能であるが、受信結果（ＡＣＫ又はＮＡＫ）を通信で送るため、制御データの伝送効率が悪い上に、受信エラーがあった次の通信で直ぐに再送信データ（即ち、前回と同じデータ）が欲しくても、受信結果を通知するための通信を挟むため、データ再送信の応答性が悪いという問題がある。
【００１２】
尚、図１０に示すように、制御データの通信時に前回の通信の受信結果も通信する、といった方法も考えられる。そして、この図１０の方法では、各通信タイミング毎に制御データを送ることとなるため、制御データの伝送効率は向上する。
【００１３】
しかし、「Ｎ−１」回目の通信で送られた制御データ（Ｎ−１）の受信に失敗した場合、次の通信では、Ｎ回目の更新された制御データ（Ｎ）が一旦送信されることとなり、データ再送信は、その次の「Ｎ＋１」回目の通信（図１０にて左から３番目の「通信開始要求」の際の通信）で、再度「Ｎ−１」回目の通信で送った制御データ（Ｎ−１）を送信することにより実現されることとなる。
【００１４】
このため、送信側では、送信バッファ１５ｔとして、前回と前々回との２回分の送信データを蓄積可能なものが必要となり、メモリ消費量が増加するという新たな問題が生じてしまう。しかも、受信エラーがあった次の通信で直ぐに再送信データが欲しいと思っても、やはり、受信結果を通知するための通信を挟む必要があり、データ再送信の応答性が悪いという問題は解決されない。
【００１５】
本発明は、こうした問題に鑑みなされたものであり、データ再送信の応答性に優れた通信システムを提供することを目的としている。
【００１６】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項１に記載の本発明では、データを送信する側の装置である送信側装置と、データを受信する側の装置である受信側装置とが、ＳＷＡＲＱ方式（Ｓｔｏｐ−ａｎｄ−Ｗａｉｔ  Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ方式）でシリアル通信を行う通信システムにおいて、データの通信が、一定時間毎の通信タイミングが到来する毎に行われると共に、受信側装置にて送信側装置からのデータを正常に受信することができなかった場合に該受信側装置から送信側装置へと通知される再送信要求が、前記データの通信に用いられる通信線とは別に設けられた専用線によって通知されるようになっており、更に、受信側装置は、その再送信要求を次の通信タイミングの前に通知する。
【００１７】
本発明の通信システムによれば、受信側装置から送信側装置への再送信要求の通知が、通信ではなく、通信線とは別の専用線を介して行われるため、受信エラー（受信誤り）があった次の通信タイミングで、直ぐにデータを再送信することが可能となる。つまり、受信側装置が、送信側装置からのデータを正常に受信することができなかった場合には、次の通信タイミングまでに、上記専用線によって送信側装置へ再送信要求を通知することで、送信側装置は、受信エラーがあった次の通信タイミングで、その受信エラーの発生を知ることができ、その回の通信タイミングで、前回送信したのと同じデータを再度送信することができるからである。
そこで、請求項１の通信システムにおいて、受信側装置は、送信側装置からのデータを正常に受信することができなかった場合に、前記専用線の電圧レベルを、ハイレベルとローレベルとのうち、データを正常に受信することができなかったことを示す一方のレベルに設定することで、再送信要求を通知するようになっており、送信側装置は、通信タイミングが到来してから、今回の通信タイミングで送信すべき送信データを選択する前に、前記専用線の電圧レベルをチェックし、その電圧レベルに基づき、前回と同じデータを再送信すべきか否かを判断する。
更に、受信側装置は、通信タイミングが到来すると、送信側装置が前記専用線の電圧レベルをチェックし終えた後のタイミングで、前記専用線の電圧レベルを、前記一方のレベルに一旦設定しておき、その後、送信側装置からのデータを正常に受信することができたならば、前記専用線の電圧レベルを、前記一方のレベルとは異なる方のレベルに設定し直すように構成されている。
このような本発明の通信システムによれば、各通信タイミング毎にデータの伝送を行うことができると共に、データ再送信の応答性を向上させることができる。また、送信バッファは、１回分の送信データを蓄積可能なもので良く、メモリ消費量を増加させることもない。
【００１８】
次に、請求項２に記載の通信システムでは、請求項１の通信システムにおいて、送信側装置は、今回送信するデータが、再送信要求に応じて再送信する前回と同じデータ（以下、再送信データという）と、該再送信データではない新たなデータ（即ち、更新されたデータ）との何れであるかを示す識別情報を、送信データの一部として受信側装置へ送信するように構成されている。
【００１９】
そして、このような請求項２の通信システムによれば、受信側装置は、送信側装置から受信したデータに含まれている前記識別情報を参照することにより、「前回の通信時に送信側装置からのデータを正常に受信することができて送信側装置へ再送信要求を通知していないにも拘わらず、今回受信したデータが再送信データである」という異常〈１〉や、「前回の通信時に送信側装置からのデータを正常に受信することができず送信側装置へ再送信要求を通知したにも拘わらず、今回受信したデータが再送信データではない」という異常〈２〉を検出することができ、延いては、その各異常〈１〉，〈２〉に対応した適切なフェイルセーフ処理を実施することができるようになる。
【００２０】
ここで、受信側装置が上記の異常〈１〉を検出する通信システムとしては、請求項３や請求項４に記載のものが考えられる。
まず、請求項３に記載の通信システムでは、請求項２の通信システムにおいて、受信側装置は、送信側装置からのデータを正常に受信することができた場合に、その受信したデータに含まれている前記識別情報を参照して、前回の通信時に送信側装置からのデータを正常に受信することができて送信側装置へ再送信要求を通知していないにも拘わらず、今回受信したデータが再送信データであるという矛盾（即ち、上記異常〈１〉）が生じているか否かを判定し、その矛盾が生じていると判定した場合には、今回受信したデータを無効とするように構成されている。
【００２１】
そして、このような請求項３の通信システムによれば、再送信要求の専用線にノイズがのる等の理由により、送信側装置が誤って前回と同じデータ（再送信データ）を送信したとしても、受信側装置は、そのような誤再送を検知して、その誤再送による再送信データを読み飛ばすこととなる。このため、例えば、１度しか実行してはいけない処理を要求するデータが、誤再送によって何度も送られてきたとしても、それを読み飛ばすことができ、システムの誤動作を防止することができる。
【００２２】
次に、請求項４に記載の通信システムでは、請求項３の通信システムにおいて、受信側装置は、前記矛盾（上記異常〈１〉）が生じていると判定した連続回数を計数すると共に、その計数した回数が予め定められた判定値に達したならば、前記専用線が再送信要求を行う方の状態で故障していると判断して、所定のフェイルセーフ処理を実行するように構成されている。
【００２３】
そして、このような請求項４の通信システムによれば、専用線が再送信要求を行う方の状態で故障していることを検知して、その故障に対する適切なフェイルセーフ処理を行うことができるようになる。
特に、専用線が再送信要求を行う方の状態で故障すると、送信側装置が同じデータの誤再送を何度も繰り返すこととなり、また、受信側装置では、更新されたデータを受け取ることができず、受信データを用いる処理が古い同じデータを用いたままで継続されることとなるが、請求項４の通信システムによれば、そのような異常を受信側装置で検知して、処理に使用するデータを所定のデフォルト値に設定する等のフェイルセーフ処理を実行することができ、システムの信頼性を一層向上させることができる。
【００２４】
一方、受信側装置が上記の異常〈２〉を検出する通信システムとしては、請求項５に記載のものが考えられる。
即ち、請求項５に記載の通信システムでは、請求項２〜４の通信システムにおいて、受信側装置は、送信側装置からのデータを正常に受信することができた場合に、その受信したデータに含まれている前記識別情報を参照して、前回の通信時に送信側装置からのデータを正常に受信することができず送信側装置へ再送信要求を通知したにも拘わらず、今回受信したデータが再送信データではないという矛盾（即ち、上記異常〈２〉）が生じているか否かを判定すると共に、その矛盾が生じていると判定した場合に、所定のフェイルセーフ処理を実行するように構成されている。
【００２５】
このような請求項５の通信システムによれば、受信側装置にて、送信側装置がデータを再送信してくれないという異常を検知して、その異常に対する適切なフェイルセーフ処理を行うことができるようになる。
特に、受信側装置が再送信要求を通知する動作を行っても、送信側装置がデータの再送信を行わなければ、送信側装置から連続性が重要なデータが順次送信される場合に、受信側装置は、そのデータの一部を受信することができず支障が生じるが、請求項５の通信システムによれば、そのような異常を受信側装置で検知して、連続性が重要なデータの全部や、そのうちの欠落したデータを、システムに支障がない所定のデフォルト値に設定する等のフェイルセーフ処理を実行することができ、システムの信頼性を向上させることができる。
【００２６】
次に、請求項６に記載の通信システムでは、請求項１〜４の通信システムにおいて、送信側装置は、前回と同じデータを送信した連続回数（以下、再送信回数という）を計数し、その再送信回数が予め定められた規定値に達したならば、受信側装置からの再送信要求に拘わらず、前回と同じデータを送信するのを止めて、新たなデータを送信するように構成されている。
【００２７】
このような請求項６の通信システムによれば、データ再送信の連続回数（再送信回数）が規定値に制限されることとなるため、前記専用線が再送信要求を行う方の状態で故障した場合でも、新たなデータが送信される正常な通信状態へと復帰することができるようになる。
【００２８】
【発明の実施の形態】
以下、本発明が適用された実施形態の電子制御装置について、図面を用いて説明する。
まず、以下に述べる各実施形態に共通の内容について、図１を用い説明する。
【００２９】
図１に示すように、本実施形態の電子制御装置１０は、例えば自動車のエンジンを制御するものであり、図８に例示した電子制御装置１００と同様に、制御データを通信によって共有しつつエンジンを制御するための処理を行う２つのマイコン１，２を備えている。
【００３０】
ここで、図１において、図８と同様の構成要素については、同じ符号を付しているため、詳細な説明は省略するが、本実施形態の電子制御装置１０においても、各マイコン１，２は、送信データレジスタ１１ｔ及び受信データレジスタ１１ｒを有したＳＰＩ１３と、ＲＡＭの一部の記憶領域からなる送信バッファ１５ｔ及び受信バッファ１５ｒとを備えており、更に、両マイコン１，２のＳＰＩ１３は、全二重のシリアル通信線１７によってシリアル通信可能に接続されている。
【００３１】
そして、両マイコン１，２は、一定時間毎にＳＷＡＲＱ方式でのシリアル通信を双方向に行うが、特に、本実施形態の電子制御装置１０において、両マイコン１，２間には、シリアル通信線１７及びクロック線１９とは別に、マイコン１からマイコン２へ受信結果（ＡＣＫ又はＮＡＫ）を通知するための再送信要求線Ｌ１と、マイコン２からマイコン１へ受信結果（ＡＣＫ又はＮＡＫ）を通知するための再送信要求線Ｌ２とが配設されている。
【００３２】
尚、再送信要求線Ｌ１は、マイコン１の出力ポートとマイコン２の入力ポートとを接続しており、マイコン１から見た場合には、自分自身の再送信要求線であり、マイコン２から見た場合には、通信相手の再送信要求線である。同様に、再送信要求線Ｌ２は、マイコン２の出力ポートとマイコン１の入力ポートとを接続しており、マイコン２から見た場合には、自分自身の再送信要求線であり、マイコン１から見た場合には、通信相手の再送信要求線である。
【００３３】
［第１実施形態］
第１実施形態の電子制御装置１０において、通信システムを成す２つのマイコン１，２の各々は、一定時間毎の通信タイミングが到来する毎に、図２（ａ）に示す送信処理を実行する。
【００３４】
そして、図２（ａ）に示すように、マイコン１，２が送信処理の実行を開始すると、まずステップ（以下、単に「Ｓ」と記す）１１０にて、通信相手の再送信要求線（マイコン１ならばＬ２であり、マイコン２ならばＬ１である）の電圧レベルが、データの再送信要求としてのＮＡＫに相当する要求有りのレベル（本実施形態ではローレベル）であるか否かを判定する。
【００３５】
ここで、通信相手の再送信要求線の電圧レベルが、要求有りのレベルではないと判定した場合、即ち、通信相手の再送信要求線の電圧レベルがＡＣＫに相当する要求無しのレベル（本実施形態ではハイレベル）であった場合には（Ｓ１１０：ＮＯ）、Ｓ１２０に進んで、送信すべき制御データをＲＡＭから送信バッファ１５ｔに転送すると共に、その制御データに誤り検出用の検査符号を付加して、１伝送単位分（１フレーム分）の送信データを作成する。これにより、送信バッファ１５ｔが更新される。つまり、送信バッファ１５ｔ内に、新たな制御データからなる１伝送単位分の送信データが格納される。
【００３６】
そして、続くＳ１３０にて、送信バッファ１５ｔ内の送信データを自己のＳＰＩ１３の送信データレジスタ１１ｔに転送する。すると、その送信データレジスタ１１ｔに転送された送信データは、ＳＰＩ１３によりシリアル通信線１７へ１ビットずつ出力され、これにより、通信相手のマイコンへとシリアル送信されることとなる。
【００３７】
そして更に、続くＳ１４０にて、自分自身の再送信要求線（マイコン１ならばＬ１であり、マイコン２ならばＬ２である）の電圧レベルを、要求有りのレベル（ローレベル）に設定し、その後、当該送信処理を終了する。
また、上記Ｓ１１０にて、通信相手の再送信要求線の電圧レベルが、要求有りのレベルであると判定した場合には、そのままＳ１３０に移行する。よって、この場合には、Ｓ１２０での送信バッファ１５ｔの更新が行われず、前回送信したデータと全く同じデータが通信相手に再送信されることとなる。
【００３８】
一方、上記送信処理によってデータが送信されると、それを受信する側のマイコンでは、シリアル通信線１７を介して送られて来るシリアルデータがＳＰＩ１３の受信データレジスタ１１ｒに格納される。
そして、マイコン１，２の各々は、ＳＰＩ１３の受信データレジスタ１１ｒに１伝送単位分のデータが格納されると、受信完了割り込み処理である図２（ｂ）の受信処理を実行する。
【００３９】
図２（ｂ）に示すように、マイコン１，２が受信処理の実行を開始すると、まずＳ２１０にて、受信データレジスタ１１ｒ内のデータを受信バッファ１５ｒに転送する。
次に、Ｓ２２０にて、その受信バッファ１５ｒに転送した受信データの正当性（即ち、データを正しく受信できたか否か）を、その受信データに付加されている検査符号をチェックすることで判定し、正常ならば（即ち、受信エラーがなければ）、Ｓ２３０に進んで、受信バッファ１５ｒ内の受信データを、その受信データに該当する制御データのＲＡＭにおける格納領域に転送する。これにより、ＲＡＭ内の制御データが受信データで更新されることとなる。
【００４０】
そして更に、続くＳ２４０にて、自分自身の再送信要求線（マイコン１ならばＬ１であり、マイコン２ならばＬ２である）の電圧レベルを、要求無しのレベル（ハイレベル）に設定し、その後、当該受信処理を終了する。
また、上記Ｓ２２０にて、受信エラーが発生していると判定した場合（即ち、通信相手からのデータを正常に受信することができなかった場合）には、Ｓ２３０及びＳ２４０の処理を行うことなく、そのまま当該受信処理を終了する。よって、この場合には、ＲＡＭ内の制御データが受信データで更新されず（換言すれば、受信したデータは捨てられ）、しかも、自分自身の再送信要求線は、図２（ａ）の送信処理におけるＳ１４０で要求有りのレベル（ローレベル）に設定されたままになる。
【００４１】
次に、以上のような２つのマイコン１，２からなる通信システムの作用について、図３を用い説明する。尚、図３における「通信開始要求」のタイミングは、両マイコン１，２が通信を開始する一定時間毎のタイミングである。また、ここでは、便宜上、データを送信する側のマイコン（送信側装置に相当）がマイコン１であり、データを受信する側のマイコン（受信側装置に相当）がマイコン２であるものとして説明する。
【００４２】
まず、時刻ｔ１の「通信開始要求」のタイミングで、マイコン２からマイコン１への再送信要求線Ｌ２が要求無しのレベル（ハイレベル）であったとすると、送信側としてのマイコン１は、そのタイミングで実行する図２（ａ）の送信処理にて、Ｓ１１０：ＮＯ→Ｓ１２０〜Ｓ１４０の処理を行い、新たな制御データをマイコン２に送信することとなる。尚、ここでは、この時にマイコン１から送信される制御データを、制御データ（Ｎ−１）とする。
【００４３】
また、マイコン２も図２（ａ）の送信処理を実行し、その送信処理のＳ１４０により、マイコン１への再送信要求線Ｌ２を、一旦、要求有りのレベル（ローレベル）にセットすることとなる。
その後、マイコン２において、ＳＰＩ１３の受信データレジスタ１１ｒにマイコン１からのデータが全て格納されると、図３の時刻ｔａに示すように、受信完了割り込みが発生して、マイコン２は図２（ｂ）の受信処理を実行することとなる。
【００４４】
そして、マイコン２が、受信処理のＳ２２０にて受信エラーが発生していると判定したとすると（Ｓ２２０：ＹＥＳ）、その回の受信処理では、Ｓ２３０及びＳ２４０の処理がスキップされるため、受信データが捨てられると共に、マイコン１への再送信要求線Ｌ２が要求有りのレベル（ローレベル）に設定されたままとなる。
【００４５】
このため、次の時刻ｔ２の「通信開始要求」のタイミングで、マイコン１が送信処理の実行を開始すると、その時点ではマイコン２からの再送信要求線Ｌ２が要求有りのレベル（ローレベル）であるため、マイコン１は、その回の送信処理にて、Ｓ１２０の処理を行うことなくＳ１３０及びＳ１４０の処理を行うこととなり、その結果、前回送信した制御データ（Ｎ−１）と同じ制御データ（Ｎ−１）をマイコン２に再送信することとなる。
【００４６】
尚、この時、マイコン２も送信処理を実行して、その送信処理のＳ１４０により、マイコン１への再送信要求線Ｌ２を、一旦、要求有りのレベルにセットするが、この場合には、再送信要求線Ｌ２が始めから要求有りのレベルになっているため、その再送信要求線Ｌ２の電圧レベルは変化しない。
【００４７】
その後、マイコン２において、ＳＰＩ１３の受信データレジスタ１１ｒにマイコン１からのデータ（この場合には、再送信データ）が全て格納されると、図３の時刻ｔｂに示すように、再び受信完了割り込みが発生して、マイコン２は図２（ｂ）の受信処理を実行することとなる。
【００４８】
そして、マイコン２が、受信処理のＳ２２０にて受信エラーが発生していないと判定したとすると（Ｓ２２０：ＮＯ）、その回の受信処理では、Ｓ２３０及びＳ２４０の処理が行われて、ＲＡＭ内の制御データが受信データで更新されると共に、マイコン１への再送信要求線Ｌ２が要求無しのレベル（ハイレベル）に設定されることとなる。
【００４９】
すると、次の時刻ｔ３の「通信開始要求」のタイミングで、マイコン１が送信処理の実行を開始した際には、マイコン１は、その回の送信処理にて、Ｓ１１０：ＮＯ→Ｓ１２０〜Ｓ１４０の処理を行うこととなり、その結果、新たな制御データ（Ｎ）をマイコン２に送信することとなる。
【００５０】
そして、その制御データ（Ｎ）からなる送信データをマイコン２が正常に受信できたならば、マイコン２における時刻ｔｃの受信処理（特にＳ２４０）でマイコン１への再送信要求線Ｌ２が要求無しのレベル（ハイレベル）に設定されることとなり、その結果、次の時刻ｔ４の「通信開始要求」のタイミングで、マイコン１が送信処理の実行を開始した際には、マイコン１は、その回の送信処理にて、新たな制御データ（Ｎ＋１）をマイコン２に送信することとなる。
【００５１】
このように、本実施形態においては、受信側が、通信開始直後に送信側への再送信要求線のレベルを要求有りのレベルに一旦セットすると共に、送信側からのデータを正常に受信することができたならば、その送信側への再送信要求線のレベルを要求無しのレベルに戻すようにしており、これにより、受信側は、送信側からのデータを正常に受信することができたか否かの受信結果（ＡＣＫ又はＮＡＫ）を、次の通信タイミングまでに送信側へ通知するようにしている。
【００５２】
そして、送信側では、通信タイミングが到来した時に、受信側からの再送信要求線のレベルが要求無しのレベルであれば、受信側からＡＣＫが返ってきたと判断して、新たな制御データを送信するが、通信タイミングが到来した時に、受信側からの再送信要求線のレベルが要求有りのレベルであれば、受信側からＮＡＫが返ってきた（即ち、受信エラーが発生した）と判断して、前回と同じデータを再送信するようにしている。
【００５３】
以上のような本第１実施形態のマイコン１，２からなる通信システムによれば、受信側から送信側への再送信要求（広い意味ではＡＣＫ又はＮＡＫであり、狭い意味ではＮＡＫ）の通知が、シリアル通信線１７とは別の専用線である再送信要求線Ｌ１，Ｌ２を介して行われるため、受信エラー（受信誤り）があった次の通信タイミングで、直ぐに前回と同じデータを再送信することができる。そして、各通信タイミング毎に制御データの伝送を行うことができると共に、データ再送信の応答性を向上させることができる。また、送信バッファ１５ｔは、１回分の送信データを蓄積可能なもので良く、メモリ（上記の例ではＲＡＭ）の消費量を増加させることもない。
【００５４】
［第２実施形態］
ところで、上記第１実施形態の電子制御装置１０におけるマイコン１，２の通信システムでは、再送信要求線Ｌ１，Ｌ２にノイズがのる等の理由により、受信側が正常受信したにも拘わらず送信側が前回と同じデータを再送信してしまう可能性がある。
【００５５】
そして、このような誤再送が発生すると、例えば、受信側のマイコンに何かの処理を実行して欲しいというイベント要求のデータが複数回送られて、本当は１度だけ実行すべき処理が受信側で何度も実行されてしまう、といった不具合が生じてしまう。
【００５６】
そこで次に、このような不具合を防止可能な第２実施形態の電子制御装置１０について説明する。
第２実施形態の電子制御装置１０では、第１実施形態と比較すると、２つのマイコン１，２の各々が、図２（ａ）の送信処理に代えて、図４（ａ）の送信処理を実行すると共に、図２（ｂ）の受信処理に代えて、図４（ｂ）の受信処理を実行する点のみ異なっている。
【００５７】
ここで、図４（ａ）の送信処理は、図２（ａ）の送信処理に対して、Ｓ１１０の前にＳ１０５の処理が追加されていると共に、Ｓ１２０とＳ１３０との間にＳ１２５の処理が追加されている点が異なっている。
そして、本第２実施形態において、各マイコン１，２が図４（ａ）の送信処理の実行を開始すると、まずＳ１０５にて、更新情報フラグをオフに初期化する。
【００５８】
尚、更新情報フラグは、今回送信する制御データが、受信側からのＮＡＫに応じて再送信する前回と同じデータ（再送信データ）と、再送信データではない新たな制御データ（更新されたデータ）との何れであるかを示す識別情報に相当するものである。そして、更新情報フラグがオフということは、そのフラグが０にセットされているということであると共に、今回送信するデータが再送信データであることを意味している。また逆に、更新情報フラグがオンということは、そのフラグが１にセットされているということであると共に、今回送信するデータが更新された新たな制御データであることを意味している。
【００５９】
そして更に、図４（ａ）の送信処理では、Ｓ１２０で送信バッファ１５ｔを更新すると、追加された次のＳ１２５で更新情報フラグをオンし、その後、Ｓ１３０に進む。
よって、Ｓ１２０で送信バッファ１５ｔを更新した場合には、更新情報フラグがオン（＝１）となり、送信バッファ１５ｔが更新されずに前回と同じデータを送信する場合には、更新情報フラグがオフ（＝０）となる。
【００６０】
そして、本第２実施形態では、このようにオン又はオフに設定される更新情報フラグも、送信データの一部として、送信データレジスタ１１ｔに転送され、通信相手のマイコンへと送信される。
一方、図４（ｂ）の受信処理は、図２（ｂ）の受信処理に対して、Ｓ２２５とＳ２５０の処理が追加されている点が異なっている。
【００６１】
そして、図４（ｂ）の受信処理では、Ｓ２２０にて受信エラーが発生していないと判定した場合に、Ｓ２２５に進んで、通信相手のマイコンから受信した前述の更新情報フラグ（即ち、受信したデータに含まれている更新情報フラグ）がオンであるか否かを判定して、オンであれば、Ｓ２３０に進む。
【００６２】
また、上記Ｓ２２５にて、受信した更新情報フラグがオンではない（オフである）と判定した場合には、Ｓ２５０に移行して、前回の通信で受信エラーが発生しているか否かを判定し、前回の通信で受信エラーが発生していると判定した場合にも、Ｓ２３０に進む。
【００６３】
これに対し、上記Ｓ２５０にて、前回の通信で受信エラーが発生していないと判定した場合には、前回の通信時に通信相手からのデータを正常に受信することができてＮＡＫを返していないにも拘わらず、今回受信したデータが再送信データであるという矛盾（以下、異常〈１〉という）が生じていると判断し、Ｓ２３０の処理を行うことなくＳ２４０に移行する。よって、この場合には、今回受信したデータで制御データが更新されず、その今回の受信データは無効となる。
【００６４】
このような第２実施形態のマイコン１，２からなる通信システムによれば、再送信要求線Ｌ１，Ｌ２にノイズがのる等の理由により、送信側が誤って前回と同じデータ（再送信データ）を送信したとしても、受信側は、そのような誤再送を検知して、その場合には、誤再送による再送信データを読み飛ばすこととなる（Ｓ２２５：ＮＯ且つＳ２５０：ＮＯ→Ｓ２４０）。このため、例えば、１度しか実行してはいけない処理を要求するデータが、誤再送によって何度も送られてきたとしても、それを読み飛ばすことができ、システムの誤動作を防止することができる。
【００６５】
［第３実施形態］
次に、第３実施形態の電子制御装置１０について説明する。
第３実施形態の電子制御装置１０では、第２実施形態と比較すると、２つのマイコン１，２の各々が、図４（ｂ）の受信処理に代えて、図５の受信処理を実行する点のみ異なっている。
【００６６】
そして、図５の受信処理は、図４（ｂ）の受信処理に対して、Ｓ２３５，Ｓ２５５，Ｓ２６０，及びＳ２６５の処理が追加されている点が異なっている。
ここで、図５の受信処理では、Ｓ２３０の処理を行った後、Ｓ２３５に進んで、誤再送の回数を計数するためのカウンタＣＮＴａを０にクリアし、その後、Ｓ２４０に進む。また、Ｓ２５０にて前回の通信で受信エラーが発生していないと判定した場合には、Ｓ２５５に進んで、カウンタＣＮＴａを１インクリメント（＋１）し、その後、Ｓ２４０に進む。
【００６７】
そして更に、図５の受信処理では、Ｓ２４０で自分自身の再送信要求線の電圧レベルを要求無しのレベルに設定した後、或いは、Ｓ２２０で受信エラーが発生していると判定した場合に、Ｓ２６０に進んで、カウンタＣＮＴａの値が所定値Ｎａ（判定値に相当）以上であるか否かを判定する。
【００６８】
そして、カウンタＣＮＴａの値が所定値Ｎａ以上でなければ（Ｓ２６０：ＮＯ）、そのまま当該受信処理を終了するが、所定値Ｎａ以上であれば（Ｓ２６０：ＹＥＳ）、Ｓ２６５に進んで、所定のフェイルセーフ処理を行った後、当該受信処理を終了する。尚、Ｓ２６５で行うフェイルセーフ処理としては、例えば、制御データに対して適切なデフォルト値をセットするとか、制御データの値を前回値（即ち、受信データで最後に更新された値の１つ前の値）に戻す等の処理が考えられる。
【００６９】
つまり、本第３実施形態では、受信側のマイコンにて、上記異常〈１〉が生じていると判定した連続回数をカウンタＣＮＴａにより計数すると共に（Ｓ２３５，Ｓ２５５）、そのカウンタＣＮＴａの値が予め定められた所定値Ｎａに達したならば（Ｓ２６０：ＹＥＳ）、通信相手の再送信要求線が要求有りのレベルに固着してしまった故障が生じていると判断して、フェイルセーフ処理を実行するようにしている（Ｓ２６５）。
【００７０】
そして、このような第３実施形態のマイコン１，２からなる通信システムによれば、再送信要求線が再送信要求を行う方の状態で故障していることを検知して、その故障に対する適切なフェイルセーフ処理を行うことができる。
特に、再送信要求線が要求有りのレベルのままになる故障が生じると、送信側のマイコンは同じデータの誤再送を何度も繰り返すこととなり、受信側のマイコンでは、更新されたデータを受け取ることができず、受信データを用いるエンジン制御用の処理が古い同じデータを用いたままで継続されることとなる。このため、例えば、通信される制御データの中には、電子スロットルの開度指令値があり、もし、一方のマイコンから他方のマイコンへ、電子スロットルの全開を指示する開度指令値のデータが何度も誤再送されたならば、エンジントルクが過大となってしまう。ところが、本第３実施形態によれば、そのような故障を受信側のマイコンで検知して、処理に使用する制御データを所定のデフォルト値に設定する等のフェイルセーフ処理を実施することができ、上記の如き過大なエンジントルクの発生等を防止できるため、制御システムの信頼性を一層向上させることができる。
【００７１】
［第４実施形態］
次に、第４実施形態の電子制御装置１０について説明する。
第４実施形態の電子制御装置１０では、第３実施形態と比較すると、２つのマイコン１，２の各々が、図５の受信処理に代えて、図６の受信処理を実行する点のみ異なっている。
【００７２】
そして、図６の受信処理は、図５の受信処理に対して、Ｓ２２７，Ｓ２３７，Ｓ２７０，Ｓ２７５，Ｓ２８０，及びＳ２８５の処理が追加されている点が異なっている。
ここで、図６の受信処理では、Ｓ２２５にて通信相手のマイコンから受信した更新情報フラグがオンであると判定した場合に、Ｓ２２７に進んで、前回の通信で受信エラーが発生しているか否かを判定する。そして、前回の通信で受信エラーが発生していないと判定した場合には（Ｓ２２７：ＮＯ）、前述したＳ２３０とＳ２３５の各処理を行った後、Ｓ２３７に進んで、非再送信フラグＦｂをオフに初期化し、その後、Ｓ２４０に進む。尚、非再送信フラグＦｂは、前回の通信時に通信相手からのデータを正常に受信することができずＮＡＫを返したにも拘わらず、今回受信したデータが再送信データではない（データが再送信されなかった）という矛盾（以下、異常〈２〉という）が生じているか否かを示すフラグである。そして、非再送信フラグＦｂがオフということは、そのフラグが０にセットされているということであると共に、異常〈２〉が生じていないことを意味している。また逆に、非再送信フラグＦｂがオンということは、そのフラグが１にセットされているということであると共に、異常〈２〉が生じたことを意味している。
【００７３】
一方、上記Ｓ２２７にて、前回の通信で受信エラーが発生していると判定した場合には（Ｓ２２７：ＹＥＳ）、上記異常〈２〉が生じていると判断して、Ｓ２７０に移行し、非再送信フラグＦｂをオンする。そして、続くＳ２７５にて、Ｓ２３０と同様に、受信バッファ１５ｒ内の受信データを、その受信データに該当する制御データのＲＡＭにおける格納領域に転送し、その後、Ｓ２４０に移行する。
【００７４】
そして更に、図６の受信処理では、Ｓ２６０にてカウンタＣＮＴａの値が所定値Ｎａ以上でないと判定した場合、或いは、Ｓ２６５でのフェイルセーフ処理を行った後に、Ｓ２８０へ進んで、非再送信フラグＦｂがオンであるか否かを判定する。そして、非再送信フラグＦｂがオンでなければ（Ｓ２８０：ＮＯ）、そのまま当該受信処理を終了するが、非再送信フラグＦｂがオンであれば（ＳＳ２８０：ＹＥＳ）、Ｓ２８５に進んで、所定のフェイルセーフ処理を行った後、当該受信処理を終了する。尚、Ｓ２８５でのフェイルセーフ処理は、通信相手から再送信されなかった制御データ（詳しくは、その制御データのＲＡＭ内の値）をシステムに支障がない所定のデフォルト値に設定する、といった処理である。
【００７５】
つまり、本第４実施形態では、受信側のマイコンが、通信相手からの更新情報フラグに基づいて、上記の異常〈２〉が生じているか否かを判定し（Ｓ２２５及びＳ２２７）、異常〈２〉が生じていると判定した場合には（Ｓ２２５：ＹＥＳ且つＳ２２７：ＹＥＳ）、所定のフェイルセーフ処理を実行するようにしている（Ｓ２７０，Ｓ２８０：ＹＥＳ，Ｓ２８５）。
【００７６】
そして、このような第４実施形態のマイコン１，２からなる通信システムによれば、受信側のマイコンにて、送信側のマイコンがデータを再送信してくれないという異常〈２〉を検知して、その異常に対する適切なフェイルセーフ処理を行うことができる。
【００７７】
特に、受信側がＮＡＫを返しても送信側がデータの再送信を行わなければ、送信側から連続性が重要な制御データが順次送信される場合に、受信側は、その制御データの一部を受信することができず支障が生じるが、本第４実施形態によれば、そのような異常を受信側で検知して、欠落した制御データを所定のデフォルト値に設定する等のフェイルセーフ処理を実行することができ、システムの信頼性を向上させることができる。尚、図６のＳ２８５では、送信側から再送信されなかった制御データが、連続性が重要なデータである場合に、その連続性が重要なデータの全部を所定のデフォルト値に設定するようにしても良い。
【００７８】
［第５実施形態］
次に、第５実施形態の電子制御装置１０について説明する。
第５実施形態の電子制御装置１０では、第１実施形態と比較すると、２つのマイコン１，２の各々が、図２（ａ）の送信処理に代えて、図７の送信処理を実行する点のみ異なっている。
【００７９】
そして、図７の送信処理は、図２（ａ）の送信処理に対して、Ｓ１１５，Ｓ１５０，及びＳ１５５の処理が追加されている点が異なっている。
ここで、図７の送信処理では、Ｓ１１０にて、通信相手の再送信要求線の電圧レベルが要求有りのレベルでないと判定した場合に、Ｓ１１５に進んで、前回と同じデータを送信した連続回数（再送信回数）を計数するためのカウンタＣＮＴｃを０にクリアし、その後、Ｓ１２０に進む。
【００８０】
また、上記Ｓ１１０にて、通信相手の再送信要求線の電圧レベルが要求有りのレベルであると判定した場合には、Ｓ１５０に移行して、カウンタＣＮＴｃの値が所定値Ｎｃ（規定値に相当）以上であるか否かを判定する。
そして、カウンタＣＮＴｃの値が所定値Ｎｃ以上でなければ（Ｓ１５０：ＮＯ）、Ｓ１５５に進んで、カウンタＣＮＴｃを１インクリメント（＋１）した後、Ｓ１３０に移行するが、カウンタＣＮＴｃの値が所定値Ｎｃ以上であれば（Ｓ１５０：ＹＥＳ）、Ｓ１２０に移行し、このＳ１２０で送信バッファ１５ｔを更新してから、Ｓ１３０に進む。
【００８１】
つまり、本第５実施形態では、送信側のマイコンが、再送信回数をカウンタＣＮＴｃによって計数し（Ｓ１１５，Ｓ１５５）、その再送信回数が所定値Ｎｃに達したならば、受信側からのＮＡＫに拘わらず、送信バッファ１５ｔを更新して新たな制御データを送信するようにしている（Ｓ１５０：ＹＥＳ→Ｓ１２０）。
【００８２】
このような第５実施形態のマイコン１，２からなる通信システムによれば、データの再送信回数が所定値Ｎｃに制限されることとなるため、通信相手の再送信要求線が要求有りのレベルに固着してしまった故障が生じた場合に、データの再送信が継続する状態から、更新された制御データが送信される正常な通信状態へと復帰することができる。
【００８３】
尚、図７におけるＳ１１５，Ｓ１５０，及びＳ１５５の処理は、前述した第２実施形態及び第３実施形態で実行される図４（ａ）の送信処理に追加しても良い。
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
【００８４】
例えば、 上記各実施形態の電子制御装置１０は、自動車のエンジンを制御するものであったが、本発明は、他の制御対象を制御する電子制御装置に対しても同様に適用することができる。
また、上記各実施形態は、電子制御装置に搭載される２つのマイコン間の通信に本発明を適用したものであったが、本発明は、そのようなマイコン間の通信システムに限らず、他の装置間の通信システムに対しても同様に適用することができる。
【図面の簡単な説明】
【図１】  実施形態の電子制御装置の構成図である。
【図２】  第１実施形態の電子制御装置における２つの各マイコンで実行される送信処理と受信処理とを表すフローチャートである。
【図３】  第１実施形態の作用を表す説明図である。
【図４】  第２実施形態の電子制御装置における２つの各マイコンで実行される送信処理と受信処理とを表すフローチャートである。
【図５】  第３実施形態の電子制御装置における２つの各マイコンで実行される受信処理を表すフローチャートである。
【図６】  第４実施形態の電子制御装置における２つの各マイコンで実行される受信処理を表すフローチャートである。
【図７】  第５実施形態の電子制御装置における２つの各マイコンで実行される送信処理を表すフローチャートである。
【図８】  搭載された２つのマイコンがＳＷＡＲＱ方式でシリアル通信を行う従来の電子制御装置の構成図である。
【図９】  図８の両マイコン間で実施される通信の手順を表す説明図である。
【図１０】  他の通信手順を表す説明図である。
【符号の説明】
１，２…マイコン（マイクロコンピュータ）、１０…電子制御装置、１１ｒ…受信データレジスタ、１１ｔ…送信データレジスタ、１３…ＳＰＩ（シリアル／パラレルインターフェース）、１５ｒ…受信バッファ、１５ｔ…送信バッファ、１７…シリアル通信線、１９…クロック線、Ｌ１，Ｌ２…再送信要求線
【図１】
0003948345.tif 000002
【図２】
0003948345.tif 000003
【図３】
0003948345.tif 000004
【図４】
0003948345.tif 000005
【図５】
0003948345.tif 000006
【図６】
0003948345.tif 000007
【図７】
0003948345.tif 000008
【図８】
0003948345.tif 000009
【図９】
0003948345.tif 000010
【図１０】
0003948345.tif 000011