(57)【要約】【課題】優先順位に従いつつも、効率的に優先順位の低いノードによるデータの送信が可能な通信方法、通信システム及び該通信システムに用いる通信装置を提供する。【解決手段】ＥＣＵ１がバス５へデータを送信した後に、複数のＥＣＵ１、ＥＣＵ２によるバス５へのデータの送信を待機手段により所定時間待機させる。また、データの送信が複数のＥＣＵ１、ＥＣＵ２で競合した場合は、ＥＣＵ１、ＥＣＵ２の識別子に基づいてバス５へデータを送信する際の送信権を決定手段により決定する。この決定手段により一のＥＣＵ１がデータを送信した場合、当該ＥＣＵ１によるバス５へのデータの送信を所定時間より長い時間延長待機手段により待機させる。この場合、所定時間待機後の他のＥＣＵ２がバス５にデータを送信する。【選択図】図１
2008302781.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して接続された複数のノード間の通信方法において、
前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機ステップと、
ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定ステップと、
該決定ステップにより送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機ステップと
を備えることを特徴とする通信方法。
【請求項２】
同一のノードが連続して前記バスにデータを送信したか否かを判断する判断ステップと、
該判断ステップにより連続して同一のノードがデータを送信したと判断した回数を計数する計数ステップとをさらに備え、
前記延長待機ステップは、
前記決定ステップにより送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数ステップにより所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる
ことを特徴とする請求項１に記載の通信方法。
【請求項３】
前記決定ステップにより送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数ステップと、
該補助計数ステップにより計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機ステップと
をさらに備えることを特徴とする請求項２に記載の通信方法。
【請求項４】
複数のノードがバスを介して接続された通信システムにおいて、
前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機手段と、
ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定手段と、
該決定手段により送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機手段と
を備えることを特徴とする通信システム。
【請求項５】
同一のノードが連続して前記バスにデータを送信したか否かを判断する判断手段と、
該判断手段により連続して同一のノードがデータを送信したと判断した回数を計数する計数手段とをさらに備え、
前記延長待機手段は、
前記決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させるよう構成してある
ことを特徴とする請求項４に記載の通信システム。
【請求項６】
前記判断手段により、同一のノードが連続して前記バスにデータを送信しなかったと判断した場合、前記計数手段による計数回数をクリアする手段
をさらに備えることを特徴とする請求項５に記載の通信システム。
【請求項７】
前記バスに所定時間データが送信されていない場合、前記計数手段による計数回数をクリアする手段
をさらに備えることを特徴とする請求項５または６に記載の通信システム。
【請求項８】
前記決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数手段と、
該補助計数手段により計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機手段と
をさらに備えることを特徴とする請求項５乃至７のいずれか一つに記載の通信システム。
【請求項９】
データを送信する通信装置において、
データを送信した後に、データの送信を所定時間待機させる待機手段と、
ノードの識別子に基づいて、データを送信する際の送信権を決定する決定手段と、
該決定手段により送信権を取得してデータを送信した場合、データの送信を前記所定時間より長い時間待機させる延長待機手段と
を備えることを特徴とする通信装置。
【請求項１０】
連続してデータを送信したか否かを判断する判断手段と、
該判断手段により連続してデータを送信したと判断した回数を計数する計数手段とをさらに備え、
前記延長待機手段は、
前記決定手段により送信権を取得してデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、データの送信を前記所定時間より長い時間待機させるよう構成してある
ことを特徴とする請求項９に記載の通信装置。
【請求項１１】
前記決定手段により送信権を取得できなかった回数を計数する補助計数手段と、
該補助計数手段により計数した回数が所定回数以上である場合に、データの送信を前記所定時間より短い時間待機させる短縮待機手段と
をさらに備えることを特徴とする請求項１０に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介して接続された複数のノード間の通信方法、通信システム、該通信システムに用いる通信装置に関する。
【背景技術】
【０００２】
従来、ＣＡＮ（Controller Area Network）バスを介して互いに接続され、それぞれＣＡＮコントローラユニットを有する複数のノード間においてデータ通信を行うＣＡＮ通信システムが知られている（例えば特許文献１参照）。ＣＡＮプロトコルは、差動のシリアルバスを介して双方向のシリアル通信を行うプロトコルである。
【０００３】
かかるＣＡＮ通信システムにおいて、各ノードは識別子を付したデータをＣＡＮバスに向けて送り出す。データを送信する際に、ＣＡＮバスが他のノードによるデータによって専有されていない場合、ノードから送り出されるデータはＣＡＮバスを流れ他のノードへ送信される。一方、ＣＡＮバスが他のノードによるデータに専有されている場合、ノードから送り出されるデータはＣＡＮコントローラユニットに待機される。そして、ＣＡＮバスが空いた場合、待機していたノードのデータがＣＡＮバスに送信される。一方、データが待機するノードが複数存在する場合には、それらのノードのうち識別子に基づく優先順位の最も高いノードのデータが他の待機データよりも先にＣＡＮバスを流れる。
【特許文献１】特開２００１−１４２７９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年バスに接続されるノードの数が増大しており、優先順位の低い識別子をもつノードがデータを送信できないという問題があった。特に多数の優先順位の高いＥＣＵ（Electric Control Unit）が接続されたゲートウェイからバスへ、次々にデータが送信された場合、このバスに接続される下流のＥＣＵは、なかなか送信権を得られないという問題があった。このような問題を放置した場合、優先順位の低いノードからのデータが最適なタイミングで送信できなくなる事態を招来する。
【０００５】
本発明は斯かる事情に鑑みてなされたものであり、その目的は、送信権を得たノードがデータを送信した場合、予め定められた所定時間よりも長い時間当該ノードによるデータの送信を待機させることにより、優先順位に従いつつも、効率的に優先順位の低いノードによるデータの送信が可能な通信方法、通信システム及び該通信システムに用いる通信装置を提供することにある。
【０００６】
本発明の他の目的は、同一のノードがデータを送信した回数を計数し、その回数に応じて当該ノードの待機時間を長くすることにより、優先順位の高いノードのデータ送信をネットワーク設計者の意図に従い優先させることが可能な通信方法等を提供することにある。
【０００７】
本発明の他の目的は、送信権を取得できなかった回数を計数し、所定回数以上の場合に待機時間を短くすることにより、長時間待機状態にある優先順位の低いノードのデータ送信が可能な通信方法等を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る通信方法は、バスを介して接続された複数のノード間の通信方法において、前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機ステップと、ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定ステップと、該決定ステップにより送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機ステップとを備えることを特徴とする。
【０００９】
本発明に係る通信方法は、同一のノードが連続して前記バスにデータを送信したか否かを判断する判断ステップと、該判断ステップにより連続して同一のノードがデータを送信したと判断した回数を計数する計数ステップとをさらに備え、前記延長待機ステップは、前記決定ステップにより送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数ステップにより所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させることを特徴とする。
【００１０】
本発明に係る通信方法は、前記決定ステップにより送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数ステップと、該補助計数ステップにより計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機ステップとをさらに備えることを特徴とする。
【００１１】
本発明に係る通信システムは、複数のノードがバスを介して接続された通信システムにおいて、前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機手段と、ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定手段と、該決定手段により送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機手段とを備えることを特徴とする。
【００１２】
本発明に係る通信システムは、同一のノードが連続して前記バスにデータを送信したか否かを判断する判断手段と、該判断手段により連続して同一のノードがデータを送信したと判断した回数を計数する計数手段とをさらに備え、前記延長待機手段は、前記決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させるよう構成してあることを特徴とする。
【００１３】
本発明に係る通信システムは、前記判断手段により、同一のノードが連続して前記バスにデータを送信しなかったと判断した場合、前記計数手段による計数回数をクリアする手段をさらに備えることを特徴とする。
【００１４】
本発明に係る通信システムは、前記バスに所定時間データが送信されていない場合、前記計数手段による計数回数をクリアする手段をさらに備えることを特徴とする。
【００１５】
本発明に係る通信システムは、前記決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数手段と、該補助計数手段により計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機手段とをさらに備えることを特徴とする。
【００１６】
本発明に係る通信装置は、データを送信する通信装置において、データを送信した後に、データの送信を所定時間待機させる待機手段と、ノードの識別子に基づいて、データを送信する際の送信権を決定する決定手段と、該決定手段により送信権を取得してデータを送信した場合、データの送信を前記所定時間より長い時間待機させる延長待機手段とを備えることを特徴とする。
【００１７】
本発明に係る通信装置は、連続してデータを送信したか否かを判断する判断手段と、該判断手段により連続してデータを送信したと判断した回数を計数する計数手段とをさらに備え、前記延長待機手段は、前記決定手段により送信権を取得してデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、データの送信を前記所定時間より長い時間待機させるよう構成してあることを特徴とする。
【００１８】
本発明に係る通信装置は、前記決定手段により送信権を取得できなかった回数を計数する補助計数手段と、該補助計数手段により計数した回数が所定回数以上である場合に、データの送信を前記所定時間より短い時間待機させる短縮待機手段とをさらに備えることを特徴とする。
【００１９】
本発明にあっては、ノードがバスへデータを送信した後に、複数のノードによるバスへのデータの送信を待機手段により所定時間待機させる。また、データの送信が複数のノード間で競合した場合は、ノードの識別子に基づいてバスへデータを送信する際の送信権を決定手段により決定する。この決定手段により送信権を取得した一のノードがデータを送信した場合、当該一のノードによるバスへのデータの送信を所定時間より長い時間延長待機手段により待機させる。この場合、所定時間待機後の他のノードがバスにデータを送信することが可能となる。
【００２０】
本発明にあっては、判断手段は、同一のノードが連続してバスにデータを送信したか否かを判断する。また計数手段は、判断手段により連続して同一のノードがデータを送信したと判断した回数を計数する。そして、延長待機手段は、決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、計数手段により所定回数計数したと判断した場合に、一のノードによるバスへのデータの送信を所定時間より長い時間待機させる。従って、優先順位の高いノードのデータ送信が所定回数行われた後、優先順位の低いノードのデータ送信が実行される。
【００２１】
本発明にあっては、判断手段により、同一のノードが連続してバスにデータを送信しなかった場合、計数手段による計数回数をクリアするので、不必要な待ち時間の発生を防止することが可能となる。
【００２２】
本発明にあっては、バスに所定時間データが送信されていない場合、計数手段による計数回数をクリアする。このように構成したので、ノードのデータ送信にあたり不必要な待ち時間が発生することを防止できる。
【００２３】
本発明にあっては、補助計数手段は、決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する。そして補助計数手段により計数した回数が所定回数以上である場合に、短縮待機手段は、他のノードによるバスへのデータの送信を所定時間より短い時間待機させる。これにより、当該優先順位の低い他のノードのデータ送信が実行される。
【発明の効果】
【００２４】
本発明にあっては、送信権の決定手段により一のノードがデータを送信した場合、当該一のノードによるバスへのデータの送信を所定時間より長い時間延長待機手段により待機させる。これにより、所定時間待機後の他のノードがバスにデータを送信することが可能となる。その結果、優先順位の高いノードのデータ送信を優先しつつも、優先順位の低いノードのデータを好ましいタイミングでバスに送信することが可能となる。
【００２５】
本発明にあっては、判断手段は、同一のノードが連続してバスにデータを送信したか否かを判断し、計数手段は、連続して同一のノードがデータを送信したと判断した回数を計数する。そして、延長待機手段は、決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、計数手段により所定回数計数したと判断した場合に、一のノードによるバスへのデータの送信を所定時間より長い時間待機させる。従って、優先順位の高いノードのデータ送信が所定回数行われた後、優先順位の低いノードのデータ送信が実行される。これにより、ネットワーク設計者が回数を最適な値にすることで、対象に応じた好ましいシステムを構築することが可能となる。
【００２６】
本発明にあっては、判断手段により、同一のノードが連続してバスにデータを送信しなかった場合、計数手段による計数回数をクリアするので、不必要な待ち時間の発生を防止することが可能となる。
【００２７】
本発明にあっては、バスに所定時間データが送信されていない場合、計数手段による計数回数をクリアする。このように構成したので、ノードのデータ送信にあたり不必要な待ち時間が発生することを防止できる。その結果、システム全体のデータ送信処理の高速化を図ることが可能となる。
【００２８】
本発明にあっては、補助計数手段は、決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する。そして補助計数手段により計数した回数が所定回数以上である場合に、短縮待機手段は、他のノードによるバスへのデータの送信を所定時間より短い時間待機させる。これにより、当該優先順位の低い他のノードのデータ送信が実行される。その結果、優先順位の高いノードのデータ送信を優先しつつも、優先順位の低いノードのデータ送信を確実に実行することが可能となる等、本発明は優れた効果を奏する。
【発明を実施するための最良の形態】
【００２９】
実施の形態１
以下本発明の実施の形態を、図面を参照して説明する。図１は通信システムのハードウェア構成を示すブロック図である。本発明に係る通信システムは例えば自動車に搭載されるＣＡＮ通信システムに適用され、バス５に接続されたノードであるＥＣＵ１、ＥＣＵ２、ＥＣＵ３・・・（場合により代表してＥＣＵ１０という。）を含んで構成される。ＥＣＵ１０は例えば、車両の旋回挙動を安定化させるＶＳＣ（Vehicle Stability Control）、車両の加速性、直進性、及び旋回安定性を確保するＴＲＣ（Traction Control）、または、車輪のロックを防止させるＡＢＳ（Antilock Brake System）制御等を行うユニットである。なおバス５の両端には終端抵抗４、４が設けられている。
【００３０】
その他のＥＣＵ１０としては、各種車両制御を実現するためのセンサ、具体的には、車両の前後方向および車幅方向に生ずる加速度に応じた信号を出力するＧセンサ、車輪舵角に応じた信号を出力する舵角センサ、車両重心の鉛直軸回りに生ずるヨーレートに応じた信号を出力するヨーレートセンサ、または、車輪速に応じた信号を出力する車輪速センサ等のユニットが用いられる。なお、本実施の形態においては複数のＥＣＵ１０を用いた例につき説明するが、ゲートウェイ等の他のノードを用いても良い。また本実施の形態においては、ＣＡＮプロトコルを用いた形態を説明するが、他のプロトコルであっても良い。
【００３１】
ＥＣＵ１はＣＡＮコントローラである制御部１１、クロック１３、カウンタ１２及び半導体メモリ等を用いた記憶部１５を含んで構成される。制御部１１はＥＣＵ１からバス５へ出力するデータの送信及びバス５を経由してＥＣＵ１へ入力されるデータの受信制御を行う。ＣＡＮに基づくバス５は２つの信号線からなり、信号線間に発生する差動電圧を信号レベルとして検出する。２つの信号線はそれぞれＣＡＮ＿Ｈレベル、ＣＡＮ＿Ｌレベルの電位に設定されており、２つの信号線間の差動電圧がない状態がデジタル信号の「１」（レセシブレベル）、差動電圧がある状態がデジタル信号の「０」（ドミナントレベル）に該当する。
【００３２】
各ＥＣＵ１０は、他のＥＣＵ１０と通信を行う際、制御部１１の有するドライバを介して送信データを送信する。すなわち、かかる構成において、ＥＣＵ１０は、制御部１１及びバス５を介して他のＥＣＵ１０と双方向でデータの授受を行う。
【００３３】
図２は各ＥＣＵ１０が送信する１データフレームのレイアウトを示す説明図である。各ＥＣＵ１０がデータとして送信する１データフレームは、図２に示す如く、識別子（以下、ＩＤ）を格納するＩＤフィールドと、データフィールドのデータ長を格納するコントロールフィールドと、０〜８バイトで可変する送信すべきデータを格納するデータフィールドと、巡回符号冗長検査を行うためのデータを格納するＣＲＣフィールドとを含んで構成されている。各ＥＣＵ１０は、例えば５００ｋｂｐｓの伝送速度を有しており、データフィールドのデータ長が８バイトである場合には１２０ビット程度の１フレームデータを２５０μｓ程度で送受信する。
【００３４】
ＩＤフィールドは、送信するデータの上位に設けられており、通信するメッセージの種類に応じたＩＤが記憶される。この識別子はノード固有のものではなく、通信するメッセージの種類毎に異なる。例えば、あるノードが２種類のメッセージを送信する場合、各メッセージには別々のＩＤが付与される。
【００３５】
バス５にデータが存在しない場合、制御部１１はバス５にデータの送信開始を行う。データの送信にあってはバス５に早くアクセスしたＥＣＵ１０が送信権を得る（ＣＡＭＡ／ＣＡ方式：Carrier Sense Multiple Access/ Collision Advance）。ここで、同時に複数のＥＣＵ１０が送信を開始し始めた場合、優先順位の高いＩＤのデータを送信しているＥＣＵ１０が送信権を得る。
【００３６】
このＩＤはデータの送り先を示すものではなく、バス５にアクセスする際のデータの優先順位を示す。２つ以上のＥＣＵ１０が同時にデータ送信を開始した場合、各データのＩＤに対してビット単位で調停(アービトレーション)が行われる。調停に勝った、すなわち、１番高い優先順位をもつと判断されたＥＣＵ１０は、そのまま送信を続け、調停に負けたＥＣＵ１０は、直ちに送信をやめ受信動作に移る。
【００３７】
またＣＡＮには、データフレーム同士を分離するためのインターフレームスペースが存在し、データ送信後の所定時間内は全てのＥＣＵ１０はデータの送信ができない。データフレーム間には例えば３ビットのレセシブビットがインターフレームスペースとして挿入され、このインターフレームスペースの後に、各ＥＣＵ１０によるデータの送信が再び開始される。以下ではデータフレームは、３ビット分、すなわちデータ伝送速度を５００ｋｂｐｓとした場合、６μｓ時間分、間隔を置いて送信されるものとして説明する。なお、ＣＡＮプロトコル以外の場合、制御部１１はクロック１３から出力される時間情報を参照し、３ビット分の時間が経過した後、新たなデータをバス５へ送信するようにしても良い。
【００３８】
制御部１１に接続される記憶部１５は各ハードウェアを制御するプログラムを記憶すると共に、演算に用いるデータを一時的に格納する。カウンタ１２は同一のＥＣＵ１０が連続してバス５にデータを送信した回数を計数する。制御部１１は、カウンタ１２が計数した回数が記憶部１５に記憶した回数、例えば３回、に達した場合、予め定めた上述の所定時間（６μｓ、３ビット分）よりも長い時間、例えば１０μｓ（５ビット分に相当）待機してからデータを送信する。この場合、制御部１１は、クロック１３から出力される時間情報を参照し、５ビット分の時間が経過してからデータをバス５へ送信する。なお、ＥＣＵ１内の制御部１１、カウンタ１２、クロック１３及び記憶部１５と、ＥＣＵ２内の制御部２１、カウンタ２２、クロック２３及び記憶部２５の構成は同様であるので詳細な説明は省略する。
【００３９】
図３はデータフレームの送信手順を示すタイムチャートである。図３Ａは従来の送信手順を示すタイムチャートであり、図３Ｂは本発明に係る送信手順を示すタイムチャートである。横軸は時間、縦軸は上側がＥＣＵ１の系列、下側がＥＣＵ２の系列をそれぞれ示す。以下では、バス５に送信するデータをデータフレームであるものとし、また例としてＥＣＵ１のＩＤがＥＣＵ２のＩＤよりも優先順位が高く、ＥＣＵ１が連続したデータフレーム１乃至４の送信を行い、優先順位の低いＥＣＵ２がデータフレーム１の送信待ちをしているものとする。
【００４０】
図３Ａに示す如く、ＥＣＵ１の制御部１１はＥＣＵ２との調停に勝った後、データフレーム１をバス５へ送信する。その後、３ビット分のインターフレームスペースが挿入されるため、ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は共に、３ビット分の時間データの送信を待機する。ＥＣＵ１の制御部１１はさらにデータフレーム２の送信を希望するため、再びＥＣＵ２との調停を行う。ここでもＥＣＵ１の制御部１１は調停に勝つので、データフレーム２の送信を続行する。
【００４１】
データフレーム２の送信後、再びインターフレームスペースが挿入され、ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は共に、３ビット分の時間待機する。なお上述したようにクロック１３またはクロック２３からの時間情報を基に制御部１１または制御部２１は所定時間待機してからデータフレームを送信するようにしても良い。さらに、ＥＣＵ１はデータフレーム３を送信するので、調停に勝つ結果、再びＥＣＵ１の制御部１１はデータフレーム３をバス５へ送信する。以上述べた処理が、データフレーム４まで繰り返される。データフレーム４の送信後、さらに、インターフレームスペースが挿入され、ＥＣＵ２の制御部２１は３ビット分の時間待機する。ここで、ＥＣＵ１から送信されるデータが存在しないことから、ＥＣＵ２の制御部２１は送信権を取得し、データフレーム１をバス５へ送信する。
【００４２】
続いて図３Ｂの処理を説明する。記憶部１５及び記憶部２５には所定回数として３回と記憶されている。ＥＣＵ１の制御部１１はデータフレーム２を送信した後、カウンタ１２を初期値１からインクリメント（データフレーム２の送信後は２となる）する。そして、制御部１１は、インクリメントした回数が記憶部１５に記憶した所定回数に達したか否かを判断する。制御部１１はカウンタ１２の回数が２であり、所定回数３にまだ達していないので、次の処理を行う。ＥＣＵ１の制御部１１はさらに送信権を取得してデータフレーム３を送信し、その後カウンタ１２をインクリメントする。これにより制御部１１は、カウンタ１２の回数３が記憶部１５に記憶した所定回数３に達したと判断する。
【００４３】
この場合、制御部１１は、他のＥＣＵ２のデータ送信を促進すべく、記憶部１５に記憶した所定時間よりも長い時間（５ビット分の時間）を読み出し、クロック１３から出力される時間情報を参照して、５ビット分の時間データの送信を待機する。なお、この所定時間及びこれよりも長い時間は記憶部１５及び記憶部２５に記憶されている。ＥＣＵ２の制御部２１は、ＥＣＵ１のデータフレーム３の送信後、インターフレームスペースが挿入され、３ビット分の時間経過後、データの送信を開始する。この場合、ＥＣＵ１の制御部１１からのデータ送信がまだ開始されていないため、ＥＣＵ２が送信権を取得し、データフレーム１をバス５へ送信する。
【００４４】
これにより、規格で定められているデータフレーム間の間隔を優先順位に応じて意図的に変更することにより、優先順位の高いＥＣＵ１のデータ送信を優先しつつも、優先順位の低いＥＣＵ２のデータ送信をも効率よく促進することができる。ＥＣＵ２のデータフレーム１の送信後、インターフレームスペースが挿入され、既にデータの送信を要求しているＥＣＵ１の制御部１１が、３ビット分の時間経過後、送信権を取得しデータフレーム４をバス５へ送信する。またかかる構成により、ＥＣＵ２は、最大の待ち時間を取得することが可能となる。すなわち、所定回数（３回）待機した場合、データフレームの送信が可能となることから、データフレーム３個分と、インターフレームスペース３個分（９ビット時間分）最大待機することにより、データフレームの送信が可能となることが事前に把握できる。なお、本実施の形態においては、ＥＣＵ１の記憶部１５及びＥＣＵ２の記憶部２５に記憶する所定回数は共に同一の３回としたが、この値は、各ＥＣＵ１０の優先順位に応じて異なる回数にしても良い。例えば、優先順位の高いＥＣＵ１の記憶部１５には３回と記憶しておき、優先順位の低いＥＣＵ２の記憶部２５にはこれよりも少ない２回と記憶しておいても良い。これにより、より高度で効率の良いネットワーク設計が可能となる。
【００４５】
図３Ｂにおいて、ＥＣＵ１の制御部１１はデータフレーム３をバス５に送信した後に、他のノードであるＥＣＵ２によりデータフレーム１がバス５に送信された場合、連続してＥＣＵ１がデータフレームを送信しなかったことから、カウンタ１２の回数を０にクリアする。また、ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は、バス５上にデータが一定時間送信されていない場合、カウンタ１２またはカウンタ２２の回数を０にクリアする。例えば、図３Ｂの例において、ＥＣＵ１からデータフレーム４が送信された後、一定時間データがバス５上にいずれのＥＣＵ１０からも送信されなかったとする。ＥＣＵ１がデータフレーム４を送信した後は、カウンタ１２は回数「１」と計数されているが、ＥＣＵ１の制御部１１は、クロック１３を参照して所定時間経過した後、カウンタ１２の計数した回数を０にクリアする。
【００４６】
以上のハードウェア構成において、ＥＣＵ１０における待機処理の手順を、フローチャートを用いて説明する。図４は待機処理の手順を示すフローチャートである。以下では優先順位の高い一のＥＣＵ１及び優先順位の低い他のＥＣＵ２によるデータフレームの送受信について説明し、また任意のＥＣＵ１０がバス５にデータフレームを送信した後の手順について説明する。任意のＥＣＵ１０がデータフレームをバス５へ送信した後（ステップＳ４１）、ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は一定時間データフレームの送信を待機する（ステップＳ４２）。
【００４７】
その後、同時にデータの送信を行うＥＣＵ１の制御部１１とＥＣＵ２の制御部２１との間で調停が行われる（ステップＳ４３）。調停の結果、同一ＥＣＵ１０が再び送信権を取得したか否かを判断する（ステップＳ４４）。ここで、ＥＣＵ１が連続して送信権を獲得したものとする。同一ＥＣＵ１が送信権を獲得したと判断した場合（ステップＳ４４でＹＥＳ）、制御部１１はカウンタ１２をインクリメントする（ステップＳ４５）。そしてＥＣＵ１の制御部１１は、データフレームをバス５に送信する（ステップＳ４６）。
【００４８】
ＥＣＵ１の制御部１１は、カウンタ１２が所定回数計数したか否かを判断する（ステップＳ４７）。ここで、制御部１１は、所定回数計数していないと判断した場合（ステップＳ４７でＮＯ）、処理を終了し再び以上述べた処理を繰り返す。一方、ＥＣＵ１の制御部１１は、カウンタ１２が所定回数計数したと判断した場合（ステップＳ４７でＹＥＳ）、同一ＥＣＵ１が長時間データフレームを送信しバス５を占拠していると判断し、制御部１１はクロック１３を参照して、所定時間よりも長い時間データフレームの送信を待機させる（ステップＳ４８）。この処理の後、ＥＣＵ１がデータを送信する場合、ステップＳ４３における調停には参加できないので、他のＥＣＵ２がデータを送信することが可能となる。
【００４９】
ステップＳ４４において、同一ＥＣＵ１が送信権を取得していないと判断した場合（ステップＳ４４でＮＯ）、ＥＣＵ１の制御部１１はカウンタ１２の計数した回数を０にクリアする（ステップＳ４９）。次いで他のＥＣＵ２の制御部２１はデータフレームをバス５に送信する（ステップＳ４９１０）。なお、本実施の形態においてはカウンタ１２が所定回数計数した場合に、ＥＣＵ１を所定時間よりも長い時間待機させることとしたが、計数せずにＥＣＵ１がデータを送信するたびに、所定時間よりも長い時間データの送信を待機させるようにしても良い。
【００５０】
図５はカウンタ１２のクリア処理の手順を示すフローチャートである。ステップＳ４２の処理後、バス５に所定時間データフレームが送信されない場合、カウンタ１２または２２の計数した回数を０にクリアするようにしても良い。ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は所定時間バス５にデータフレームが送信されていないかを判断する（ステップＳ５１）。ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は所定時間バス５にデータフレームが送信されていないと判断した場合（ステップＳ５１でＹＥＳ）、カウンタ１２またはカウンタ２２の計数した回数を０にクリアする（ステップＳ５２）。一方、ＥＣＵ１の制御部１１及びＥＣＵ２の制御部２１は所定時間内にバス５にデータフレームが送信されたと判断した場合（ステップＳ５１でＮＯ）、ステップＳ５２の処理をスキップし一連の処理を終了する。
【００５１】
実施の形態２
実施の形態２は優先順位の低いＥＣＵ１０が連続してデータフレームを送信できなかった場合に、その回数を計数し、その回数が所定回数以上である場合に、所定時間よりも短い時間だけ待機させる形態に関する。
【００５２】
図６は実施の形態２に係る通信システムのハードウェア構成を示すブロック図である。実施の形態１の構成に加えて、ＥＣＵ１内には補助カウンタ１４が制御部１１に接続され、またＥＣＵ２内には補助カウンタ２４が制御部２１に接続されている。補助カウンタ１４はＥＣＵ１が複数のＥＣＵ１０間で調停が行われ、連続して送信権を取得できなかった回数を計数する。補助カウンタ２４も同様に、ＥＣＵ２が調停により送信権を取得できなかった回数を計数する。なお、他のＥＣＵ３についても同様の構成であるので詳細な説明を省略する。
【００５３】
図７は実施の形態２に係るデータフレームの送信手順を示すタイムチャートである。横軸は時間を示し、縦軸は上側がＥＣＵ１の系列、中段がＥＣＵ２の系列、下側がＥＣＵ３の系列を示す。以下では、ＥＣＵ１、ＥＣＵ３、ＥＣＵ２の順で優先順位が高く、ＥＣＵ１がデータフレーム１乃至５の送信を、ＥＣＵ２がデータフレーム１の送信を、ＥＣＵ３がデータフレーム１の送信を同時に行う例を用いて説明する。ＥＣＵ１、ＥＣＵ２及びＥＣＵ３の間で調停が行われ、最も優先順位の高いＥＣＵ１がデータフレーム１をバス５に送信する。ＥＣＵ１の制御部１１はカウンタ１２をインクリメントする。また、ＥＣＵ２の制御部２１は送信権を取得できなかったため、補助カウンタ２４をインクリメントする。同様にＥＣＵ３の補助カウンタ（図示せず）もインクリメントされる。
【００５４】
ここで、ＥＣＵ１、ＥＣＵ２及びＥＣＵ３は所定時間待機する。ここで、実施の形態２における所定時間は５ビット分の時間（１０μｓ）待機するものとする。すなわち、ＣＡＮプロトコルにおいては、３ビット分の時間（６μｓ）待機するが、これよりも長い５ビット分の時間、各ＥＣＵ１０は待機する。この処理は例えばＥＣＵ１の制御部１１がクロック１３から出力される時間情報を参照し、５ビット分の時間を経過した後、バス５にデータフレームを送信するようにすればよい。
【００５５】
その後、再びＥＣＵ１、ＥＣＵ２及びＥＣＵ３間で調停が行われ、優先順位の最も高いＥＣＵ１がデータフレーム２をバス５上に送信する。この場合、ＥＣＵ１のカウンタ１２が２と計数され、送信権が再び取得できなかったＥＣＵ２の補助カウンタ２４及びＥＣＵ３の補助カウンタは２と計数される。各ＥＣＵ１、ＥＣＵ２及びＥＣＵ３は所定時間（５ビット分の時間）待機し、再び調停を行う。ここでは３回連続してＥＣＵ１が送信権を取得し、データフレーム３をバス５上に送信する。この場合、ＥＣＵ１のカウンタ１２が３と計数され、送信権が再び取得できなかったＥＣＵ２の補助カウンタ２４及びＥＣＵ３の補助カウンタは３と計数される。
【００５６】
ＥＣＵ１の制御部１１は、実施の形態１で説明した如く、所定回数（３回）連続してデータフレームをバス５へ送信したので、所定時間よりも長い時間待機する。例えば、制御部１１は８ビット分（１６μｓ）待機させればよい。ここで、所定時間である５ビット分の時間経過後に調停に参加するＥＣＵ１０はＥＣＵ２及びＥＣＵ３である。ＥＣＵ２及びＥＣＵ３は調停を行い、優先順位の高いＥＣＵ３が送信権を取得する。ＥＣＵ３はデータフレーム１を送信する。ＥＣＵ３のカウンタ（図示せず）がインクリメントされる。またＥＣＵ２の制御部２１は補助カウンタ２４を４と計数する。一方他のＥＣＵ３によりデータフレームがバス５へ送信されたＥＣＵ１の制御部１１は、カウンタ１２の計数した回数を０にクリアする。さらにデータフレーム１を送信できたＥＣＵ３の図示しない制御部は補助カウンタを０にクリアする。
【００５７】
ＥＣＵ３のデータフレーム１の送信後、所定時間（５ビット分の時間）ＥＣＵ１及びＥＣＵ２は待機する。ＥＣＵ１及びＥＣＵ２は調停を行い、優先順位の高いＥＣＵ１が送信権を取得する。ＥＣＵ１の制御部１１はバス５へデータフレーム４の送信を行う。ここでＥＣＵ１の制御部１１はカウンタ１２をインクリメントする。さらにＥＣＵ２の制御部２１は補助カウンタ２４を５と計数する。ＥＣＵ２の制御部２１は、補助カウンタ２４の計数した回数が所定回数以上であるか否かを判断する。ここでは所定回数を５とする。なお、この回数は記憶部２５に予め記憶されている。
【００５８】
ＥＣＵ２の制御部２１は、所定時間よりも短い時間待機させた上で、データフレーム１をバス５へ送信する。この所定時間は５ビット分の時間であり、所定回数以上連続して送信権を取得できなかった場合、５ビット分の時間より短いＣＡＮ規格の３ビット分の時間だけ短く待機させる。ＥＣＵ１がデータフレーム４をバス５へ送信した後の３ビット分の時間経過後、すなわちインターフレームスペース挿入後、ようやくＥＣＵ２の制御部２１はデータフレーム１をバス５へ送信する。この場合、ＥＣＵ２の制御部２１は補助カウンタ２４の計数した回数を０にクリアする。ＥＣＵ２のデータフレーム１送信後、５ビット分の時間待機処理が行われ、ＥＣＵ１の制御部１１はデータフレーム５をバス５へ送信する。なお、ここで説明した所定回数（５回）、並びに、所定時間（５ビット分の時間）、これよりも長い時間（８ビット分の時間）及び所定時間よりも短い時間（３ビット分の時間）は記憶部１５及び記憶部２５に記憶されている。また、本実施の形態においては連続して送信権を取得できなかった回数が記憶部１５または記憶部２５に記憶した所定回数５以上となった場合に、所定時間よりも短い待機時間でデータの送信を行うようにしたが、この数字に限るものではない。ＥＣＵ１０の重要度に応じて記憶部１５または記憶部２５に記憶する所定回数を適宜変更するようにしても良い。例えば、ＥＣＵ１の記憶部１５には、補助カウンタ１４の計数回数が２回の場合に、短い待機時間でデータの送信を可能とすべく、所定回数は２と記憶しておき、ＥＣＵ２の記憶部２５には、補助カウンタ２４の計数回数が７回の場合に、短い待機時間でデータの送信を可能とすべく、所定回数は７と記憶しておいても良い。
【００５９】
図８は実施の形態２に係る待機処理の手順を示すフローチャートである。以下では上述のとおり、最も優先順位の低いＥＣＵ２を例に挙げて説明する。実施の形態１の図４におけるステップＳ４６以降の処理を行う。ＥＣＵ２の制御部２１は送信権を取得できなかった回数を補助カウンタ２４により計数させる（ステップＳ８１）。制御部２１は、補助カウンタ２４の計数回数が記憶部２５に記憶した所定回数以上であるか否かを判断する（ステップＳ８２）。制御部２１は所定回数以上でないと判断した場合（ステップＳ８２でＮＯ）、記憶部２５に記憶した所定時間（５ビット分の時間）データフレームの送信を待機させる（ステップＳ８３）。
【００６０】
制御部２１は補助カウンタ２４の計数回数が所定回数以上であると判断した場合（ステップＳ８２でＹＥＳ）、記憶部２５から所定時間よりも短い時間である３ビット分の時間を読み出し、当該時間分クロック２３から出力される時間情報を参照してデータフレームの送信を待機する（ステップＳ８４）。その所定時間よりも短い時間待機した後、ＥＣＵ２の制御部２１は他のＥＣＵ１０に先駆けて、データフレームをバス５へ送信する（ステップＳ８５）。なお、ＥＣＵ２のデータフレームの送信は、インターフレームスペース挿入後直ちにデータフレームをバス５へ送信するようにしても良い。最後にＥＣＵ２の制御部２１は補助カウンタ２４の計数した回数を０にクリアする（ステップＳ８６）。
【００６１】
本実施の形態２は以上の如き構成としてあり、その他の構成及び作用は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【図面の簡単な説明】
【００６２】
【図１】通信システムのハードウェア構成を示すブロック図である。
【図２】各ＥＣＵが送信する１データフレームのレイアウトを示す説明図である。
【図３】データフレームの送信手順を示すタイムチャートである。
【図４】待機処理の手順を示すフローチャートである。
【図５】カウンタのクリア処理の手順を示すフローチャートである。
【図６】実施の形態２に係る通信システムのハードウェア構成を示すブロック図である。
【図７】実施の形態２に係るデータフレームの送信手順を示すタイムチャートである。
【図８】実施の形態２に係る待機処理の手順を示すフローチャートである。
【符号の説明】
【００６３】
１、２、３、１０  ＥＣＵ（ノード）
５  バス
１１、２１  制御部
１２、２２  カウンタ
１３、２３  クロック
１５、２５  記憶部
１４、２４  補助カウンタ
【図１】
2008302781.tif 000003
【図２】
2008302781.tif 000004
【図３】
2008302781.tif 000005
【図４】
2008302781.tif 000006
【図５】
2008302781.tif 000007
【図６】
2008302781.tif 000008
【図７】
2008302781.tif 000009
【図８】
2008302781.tif 000010