説明

通信方法、通信システム及び通信装置

【課題】優先順位に従いつつも、効率的に優先順位の低いノードによるデータの送信が可能な通信方法、通信システム及び該通信システムに用いる通信装置を提供する。
【解決手段】ECU1がバス5へデータを送信した後に、複数のECU1、ECU2によるバス5へのデータの送信を待機手段により所定時間待機させる。また、データの送信が複数のECU1、ECU2で競合した場合は、ECU1、ECU2の識別子に基づいてバス5へデータを送信する際の送信権を決定手段により決定する。この決定手段により一のECU1がデータを送信した場合、当該ECU1によるバス5へのデータの送信を所定時間より長い時間延長待機手段により待機させる。この場合、所定時間待機後の他のECU2がバス5にデータを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バスを介して接続された複数のノード間の通信方法、通信システム、該通信システムに用いる通信装置に関する。
【背景技術】
【0002】
従来、CAN(Controller Area Network)バスを介して互いに接続され、それぞれCANコントローラユニットを有する複数のノード間においてデータ通信を行うCAN通信システムが知られている(例えば特許文献1参照)。CANプロトコルは、差動のシリアルバスを介して双方向のシリアル通信を行うプロトコルである。
【0003】
かかるCAN通信システムにおいて、各ノードは識別子を付したデータをCANバスに向けて送り出す。データを送信する際に、CANバスが他のノードによるデータによって専有されていない場合、ノードから送り出されるデータはCANバスを流れ他のノードへ送信される。一方、CANバスが他のノードによるデータに専有されている場合、ノードから送り出されるデータはCANコントローラユニットに待機される。そして、CANバスが空いた場合、待機していたノードのデータがCANバスに送信される。一方、データが待機するノードが複数存在する場合には、それらのノードのうち識別子に基づく優先順位の最も高いノードのデータが他の待機データよりも先にCANバスを流れる。
【特許文献1】特開2001−142794号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、近年バスに接続されるノードの数が増大しており、優先順位の低い識別子をもつノードがデータを送信できないという問題があった。特に多数の優先順位の高いECU(Electric Control Unit)が接続されたゲートウェイからバスへ、次々にデータが送信された場合、このバスに接続される下流のECUは、なかなか送信権を得られないという問題があった。このような問題を放置した場合、優先順位の低いノードからのデータが最適なタイミングで送信できなくなる事態を招来する。
【0005】
本発明は斯かる事情に鑑みてなされたものであり、その目的は、送信権を得たノードがデータを送信した場合、予め定められた所定時間よりも長い時間当該ノードによるデータの送信を待機させることにより、優先順位に従いつつも、効率的に優先順位の低いノードによるデータの送信が可能な通信方法、通信システム及び該通信システムに用いる通信装置を提供することにある。
【0006】
本発明の他の目的は、同一のノードがデータを送信した回数を計数し、その回数に応じて当該ノードの待機時間を長くすることにより、優先順位の高いノードのデータ送信をネットワーク設計者の意図に従い優先させることが可能な通信方法等を提供することにある。
【0007】
本発明の他の目的は、送信権を取得できなかった回数を計数し、所定回数以上の場合に待機時間を短くすることにより、長時間待機状態にある優先順位の低いノードのデータ送信が可能な通信方法等を提供することにある。
【課題を解決するための手段】
【0008】
本発明に係る通信方法は、バスを介して接続された複数のノード間の通信方法において、前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機ステップと、ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定ステップと、該決定ステップにより送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機ステップとを備えることを特徴とする。
【0009】
本発明に係る通信方法は、同一のノードが連続して前記バスにデータを送信したか否かを判断する判断ステップと、該判断ステップにより連続して同一のノードがデータを送信したと判断した回数を計数する計数ステップとをさらに備え、前記延長待機ステップは、前記決定ステップにより送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数ステップにより所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させることを特徴とする。
【0010】
本発明に係る通信方法は、前記決定ステップにより送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数ステップと、該補助計数ステップにより計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機ステップとをさらに備えることを特徴とする。
【0011】
本発明に係る通信システムは、複数のノードがバスを介して接続された通信システムにおいて、前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機手段と、ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定手段と、該決定手段により送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機手段とを備えることを特徴とする。
【0012】
本発明に係る通信システムは、同一のノードが連続して前記バスにデータを送信したか否かを判断する判断手段と、該判断手段により連続して同一のノードがデータを送信したと判断した回数を計数する計数手段とをさらに備え、前記延長待機手段は、前記決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させるよう構成してあることを特徴とする。
【0013】
本発明に係る通信システムは、前記判断手段により、同一のノードが連続して前記バスにデータを送信しなかったと判断した場合、前記計数手段による計数回数をクリアする手段をさらに備えることを特徴とする。
【0014】
本発明に係る通信システムは、前記バスに所定時間データが送信されていない場合、前記計数手段による計数回数をクリアする手段をさらに備えることを特徴とする。
【0015】
本発明に係る通信システムは、前記決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数手段と、該補助計数手段により計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機手段とをさらに備えることを特徴とする。
【0016】
本発明に係る通信装置は、データを送信する通信装置において、データを送信した後に、データの送信を所定時間待機させる待機手段と、ノードの識別子に基づいて、データを送信する際の送信権を決定する決定手段と、該決定手段により送信権を取得してデータを送信した場合、データの送信を前記所定時間より長い時間待機させる延長待機手段とを備えることを特徴とする。
【0017】
本発明に係る通信装置は、連続してデータを送信したか否かを判断する判断手段と、該判断手段により連続してデータを送信したと判断した回数を計数する計数手段とをさらに備え、前記延長待機手段は、前記決定手段により送信権を取得してデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、データの送信を前記所定時間より長い時間待機させるよう構成してあることを特徴とする。
【0018】
本発明に係る通信装置は、前記決定手段により送信権を取得できなかった回数を計数する補助計数手段と、該補助計数手段により計数した回数が所定回数以上である場合に、データの送信を前記所定時間より短い時間待機させる短縮待機手段とをさらに備えることを特徴とする。
【0019】
本発明にあっては、ノードがバスへデータを送信した後に、複数のノードによるバスへのデータの送信を待機手段により所定時間待機させる。また、データの送信が複数のノード間で競合した場合は、ノードの識別子に基づいてバスへデータを送信する際の送信権を決定手段により決定する。この決定手段により送信権を取得した一のノードがデータを送信した場合、当該一のノードによるバスへのデータの送信を所定時間より長い時間延長待機手段により待機させる。この場合、所定時間待機後の他のノードがバスにデータを送信することが可能となる。
【0020】
本発明にあっては、判断手段は、同一のノードが連続してバスにデータを送信したか否かを判断する。また計数手段は、判断手段により連続して同一のノードがデータを送信したと判断した回数を計数する。そして、延長待機手段は、決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、計数手段により所定回数計数したと判断した場合に、一のノードによるバスへのデータの送信を所定時間より長い時間待機させる。従って、優先順位の高いノードのデータ送信が所定回数行われた後、優先順位の低いノードのデータ送信が実行される。
【0021】
本発明にあっては、判断手段により、同一のノードが連続してバスにデータを送信しなかった場合、計数手段による計数回数をクリアするので、不必要な待ち時間の発生を防止することが可能となる。
【0022】
本発明にあっては、バスに所定時間データが送信されていない場合、計数手段による計数回数をクリアする。このように構成したので、ノードのデータ送信にあたり不必要な待ち時間が発生することを防止できる。
【0023】
本発明にあっては、補助計数手段は、決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する。そして補助計数手段により計数した回数が所定回数以上である場合に、短縮待機手段は、他のノードによるバスへのデータの送信を所定時間より短い時間待機させる。これにより、当該優先順位の低い他のノードのデータ送信が実行される。
【発明の効果】
【0024】
本発明にあっては、送信権の決定手段により一のノードがデータを送信した場合、当該一のノードによるバスへのデータの送信を所定時間より長い時間延長待機手段により待機させる。これにより、所定時間待機後の他のノードがバスにデータを送信することが可能となる。その結果、優先順位の高いノードのデータ送信を優先しつつも、優先順位の低いノードのデータを好ましいタイミングでバスに送信することが可能となる。
【0025】
本発明にあっては、判断手段は、同一のノードが連続してバスにデータを送信したか否かを判断し、計数手段は、連続して同一のノードがデータを送信したと判断した回数を計数する。そして、延長待機手段は、決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、計数手段により所定回数計数したと判断した場合に、一のノードによるバスへのデータの送信を所定時間より長い時間待機させる。従って、優先順位の高いノードのデータ送信が所定回数行われた後、優先順位の低いノードのデータ送信が実行される。これにより、ネットワーク設計者が回数を最適な値にすることで、対象に応じた好ましいシステムを構築することが可能となる。
【0026】
本発明にあっては、判断手段により、同一のノードが連続してバスにデータを送信しなかった場合、計数手段による計数回数をクリアするので、不必要な待ち時間の発生を防止することが可能となる。
【0027】
本発明にあっては、バスに所定時間データが送信されていない場合、計数手段による計数回数をクリアする。このように構成したので、ノードのデータ送信にあたり不必要な待ち時間が発生することを防止できる。その結果、システム全体のデータ送信処理の高速化を図ることが可能となる。
【0028】
本発明にあっては、補助計数手段は、決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する。そして補助計数手段により計数した回数が所定回数以上である場合に、短縮待機手段は、他のノードによるバスへのデータの送信を所定時間より短い時間待機させる。これにより、当該優先順位の低い他のノードのデータ送信が実行される。その結果、優先順位の高いノードのデータ送信を優先しつつも、優先順位の低いノードのデータ送信を確実に実行することが可能となる等、本発明は優れた効果を奏する。
【発明を実施するための最良の形態】
【0029】
実施の形態1
以下本発明の実施の形態を、図面を参照して説明する。図1は通信システムのハードウェア構成を示すブロック図である。本発明に係る通信システムは例えば自動車に搭載されるCAN通信システムに適用され、バス5に接続されたノードであるECU1、ECU2、ECU3・・・(場合により代表してECU10という。)を含んで構成される。ECU10は例えば、車両の旋回挙動を安定化させるVSC(Vehicle Stability Control)、車両の加速性、直進性、及び旋回安定性を確保するTRC(Traction Control)、または、車輪のロックを防止させるABS(Antilock Brake System)制御等を行うユニットである。なおバス5の両端には終端抵抗4、4が設けられている。
【0030】
その他のECU10としては、各種車両制御を実現するためのセンサ、具体的には、車両の前後方向および車幅方向に生ずる加速度に応じた信号を出力するGセンサ、車輪舵角に応じた信号を出力する舵角センサ、車両重心の鉛直軸回りに生ずるヨーレートに応じた信号を出力するヨーレートセンサ、または、車輪速に応じた信号を出力する車輪速センサ等のユニットが用いられる。なお、本実施の形態においては複数のECU10を用いた例につき説明するが、ゲートウェイ等の他のノードを用いても良い。また本実施の形態においては、CANプロトコルを用いた形態を説明するが、他のプロトコルであっても良い。
【0031】
ECU1はCANコントローラである制御部11、クロック13、カウンタ12及び半導体メモリ等を用いた記憶部15を含んで構成される。制御部11はECU1からバス5へ出力するデータの送信及びバス5を経由してECU1へ入力されるデータの受信制御を行う。CANに基づくバス5は2つの信号線からなり、信号線間に発生する差動電圧を信号レベルとして検出する。2つの信号線はそれぞれCAN_Hレベル、CAN_Lレベルの電位に設定されており、2つの信号線間の差動電圧がない状態がデジタル信号の「1」(レセシブレベル)、差動電圧がある状態がデジタル信号の「0」(ドミナントレベル)に該当する。
【0032】
各ECU10は、他のECU10と通信を行う際、制御部11の有するドライバを介して送信データを送信する。すなわち、かかる構成において、ECU10は、制御部11及びバス5を介して他のECU10と双方向でデータの授受を行う。
【0033】
図2は各ECU10が送信する1データフレームのレイアウトを示す説明図である。各ECU10がデータとして送信する1データフレームは、図2に示す如く、識別子(以下、ID)を格納するIDフィールドと、データフィールドのデータ長を格納するコントロールフィールドと、0〜8バイトで可変する送信すべきデータを格納するデータフィールドと、巡回符号冗長検査を行うためのデータを格納するCRCフィールドとを含んで構成されている。各ECU10は、例えば500kbpsの伝送速度を有しており、データフィールドのデータ長が8バイトである場合には120ビット程度の1フレームデータを250μs程度で送受信する。
【0034】
IDフィールドは、送信するデータの上位に設けられており、通信するメッセージの種類に応じたIDが記憶される。この識別子はノード固有のものではなく、通信するメッセージの種類毎に異なる。例えば、あるノードが2種類のメッセージを送信する場合、各メッセージには別々のIDが付与される。
【0035】
バス5にデータが存在しない場合、制御部11はバス5にデータの送信開始を行う。データの送信にあってはバス5に早くアクセスしたECU10が送信権を得る(CAMA/CA方式:Carrier Sense Multiple Access/ Collision Advance)。ここで、同時に複数のECU10が送信を開始し始めた場合、優先順位の高いIDのデータを送信しているECU10が送信権を得る。
【0036】
このIDはデータの送り先を示すものではなく、バス5にアクセスする際のデータの優先順位を示す。2つ以上のECU10が同時にデータ送信を開始した場合、各データのIDに対してビット単位で調停(アービトレーション)が行われる。調停に勝った、すなわち、1番高い優先順位をもつと判断されたECU10は、そのまま送信を続け、調停に負けたECU10は、直ちに送信をやめ受信動作に移る。
【0037】
またCANには、データフレーム同士を分離するためのインターフレームスペースが存在し、データ送信後の所定時間内は全てのECU10はデータの送信ができない。データフレーム間には例えば3ビットのレセシブビットがインターフレームスペースとして挿入され、このインターフレームスペースの後に、各ECU10によるデータの送信が再び開始される。以下ではデータフレームは、3ビット分、すなわちデータ伝送速度を500kbpsとした場合、6μs時間分、間隔を置いて送信されるものとして説明する。なお、CANプロトコル以外の場合、制御部11はクロック13から出力される時間情報を参照し、3ビット分の時間が経過した後、新たなデータをバス5へ送信するようにしても良い。
【0038】
制御部11に接続される記憶部15は各ハードウェアを制御するプログラムを記憶すると共に、演算に用いるデータを一時的に格納する。カウンタ12は同一のECU10が連続してバス5にデータを送信した回数を計数する。制御部11は、カウンタ12が計数した回数が記憶部15に記憶した回数、例えば3回、に達した場合、予め定めた上述の所定時間(6μs、3ビット分)よりも長い時間、例えば10μs(5ビット分に相当)待機してからデータを送信する。この場合、制御部11は、クロック13から出力される時間情報を参照し、5ビット分の時間が経過してからデータをバス5へ送信する。なお、ECU1内の制御部11、カウンタ12、クロック13及び記憶部15と、ECU2内の制御部21、カウンタ22、クロック23及び記憶部25の構成は同様であるので詳細な説明は省略する。
【0039】
図3はデータフレームの送信手順を示すタイムチャートである。図3Aは従来の送信手順を示すタイムチャートであり、図3Bは本発明に係る送信手順を示すタイムチャートである。横軸は時間、縦軸は上側がECU1の系列、下側がECU2の系列をそれぞれ示す。以下では、バス5に送信するデータをデータフレームであるものとし、また例としてECU1のIDがECU2のIDよりも優先順位が高く、ECU1が連続したデータフレーム1乃至4の送信を行い、優先順位の低いECU2がデータフレーム1の送信待ちをしているものとする。
【0040】
図3Aに示す如く、ECU1の制御部11はECU2との調停に勝った後、データフレーム1をバス5へ送信する。その後、3ビット分のインターフレームスペースが挿入されるため、ECU1の制御部11及びECU2の制御部21は共に、3ビット分の時間データの送信を待機する。ECU1の制御部11はさらにデータフレーム2の送信を希望するため、再びECU2との調停を行う。ここでもECU1の制御部11は調停に勝つので、データフレーム2の送信を続行する。
【0041】
データフレーム2の送信後、再びインターフレームスペースが挿入され、ECU1の制御部11及びECU2の制御部21は共に、3ビット分の時間待機する。なお上述したようにクロック13またはクロック23からの時間情報を基に制御部11または制御部21は所定時間待機してからデータフレームを送信するようにしても良い。さらに、ECU1はデータフレーム3を送信するので、調停に勝つ結果、再びECU1の制御部11はデータフレーム3をバス5へ送信する。以上述べた処理が、データフレーム4まで繰り返される。データフレーム4の送信後、さらに、インターフレームスペースが挿入され、ECU2の制御部21は3ビット分の時間待機する。ここで、ECU1から送信されるデータが存在しないことから、ECU2の制御部21は送信権を取得し、データフレーム1をバス5へ送信する。
【0042】
続いて図3Bの処理を説明する。記憶部15及び記憶部25には所定回数として3回と記憶されている。ECU1の制御部11はデータフレーム2を送信した後、カウンタ12を初期値1からインクリメント(データフレーム2の送信後は2となる)する。そして、制御部11は、インクリメントした回数が記憶部15に記憶した所定回数に達したか否かを判断する。制御部11はカウンタ12の回数が2であり、所定回数3にまだ達していないので、次の処理を行う。ECU1の制御部11はさらに送信権を取得してデータフレーム3を送信し、その後カウンタ12をインクリメントする。これにより制御部11は、カウンタ12の回数3が記憶部15に記憶した所定回数3に達したと判断する。
【0043】
この場合、制御部11は、他のECU2のデータ送信を促進すべく、記憶部15に記憶した所定時間よりも長い時間(5ビット分の時間)を読み出し、クロック13から出力される時間情報を参照して、5ビット分の時間データの送信を待機する。なお、この所定時間及びこれよりも長い時間は記憶部15及び記憶部25に記憶されている。ECU2の制御部21は、ECU1のデータフレーム3の送信後、インターフレームスペースが挿入され、3ビット分の時間経過後、データの送信を開始する。この場合、ECU1の制御部11からのデータ送信がまだ開始されていないため、ECU2が送信権を取得し、データフレーム1をバス5へ送信する。
【0044】
これにより、規格で定められているデータフレーム間の間隔を優先順位に応じて意図的に変更することにより、優先順位の高いECU1のデータ送信を優先しつつも、優先順位の低いECU2のデータ送信をも効率よく促進することができる。ECU2のデータフレーム1の送信後、インターフレームスペースが挿入され、既にデータの送信を要求しているECU1の制御部11が、3ビット分の時間経過後、送信権を取得しデータフレーム4をバス5へ送信する。またかかる構成により、ECU2は、最大の待ち時間を取得することが可能となる。すなわち、所定回数(3回)待機した場合、データフレームの送信が可能となることから、データフレーム3個分と、インターフレームスペース3個分(9ビット時間分)最大待機することにより、データフレームの送信が可能となることが事前に把握できる。なお、本実施の形態においては、ECU1の記憶部15及びECU2の記憶部25に記憶する所定回数は共に同一の3回としたが、この値は、各ECU10の優先順位に応じて異なる回数にしても良い。例えば、優先順位の高いECU1の記憶部15には3回と記憶しておき、優先順位の低いECU2の記憶部25にはこれよりも少ない2回と記憶しておいても良い。これにより、より高度で効率の良いネットワーク設計が可能となる。
【0045】
図3Bにおいて、ECU1の制御部11はデータフレーム3をバス5に送信した後に、他のノードであるECU2によりデータフレーム1がバス5に送信された場合、連続してECU1がデータフレームを送信しなかったことから、カウンタ12の回数を0にクリアする。また、ECU1の制御部11及びECU2の制御部21は、バス5上にデータが一定時間送信されていない場合、カウンタ12またはカウンタ22の回数を0にクリアする。例えば、図3Bの例において、ECU1からデータフレーム4が送信された後、一定時間データがバス5上にいずれのECU10からも送信されなかったとする。ECU1がデータフレーム4を送信した後は、カウンタ12は回数「1」と計数されているが、ECU1の制御部11は、クロック13を参照して所定時間経過した後、カウンタ12の計数した回数を0にクリアする。
【0046】
以上のハードウェア構成において、ECU10における待機処理の手順を、フローチャートを用いて説明する。図4は待機処理の手順を示すフローチャートである。以下では優先順位の高い一のECU1及び優先順位の低い他のECU2によるデータフレームの送受信について説明し、また任意のECU10がバス5にデータフレームを送信した後の手順について説明する。任意のECU10がデータフレームをバス5へ送信した後(ステップS41)、ECU1の制御部11及びECU2の制御部21は一定時間データフレームの送信を待機する(ステップS42)。
【0047】
その後、同時にデータの送信を行うECU1の制御部11とECU2の制御部21との間で調停が行われる(ステップS43)。調停の結果、同一ECU10が再び送信権を取得したか否かを判断する(ステップS44)。ここで、ECU1が連続して送信権を獲得したものとする。同一ECU1が送信権を獲得したと判断した場合(ステップS44でYES)、制御部11はカウンタ12をインクリメントする(ステップS45)。そしてECU1の制御部11は、データフレームをバス5に送信する(ステップS46)。
【0048】
ECU1の制御部11は、カウンタ12が所定回数計数したか否かを判断する(ステップS47)。ここで、制御部11は、所定回数計数していないと判断した場合(ステップS47でNO)、処理を終了し再び以上述べた処理を繰り返す。一方、ECU1の制御部11は、カウンタ12が所定回数計数したと判断した場合(ステップS47でYES)、同一ECU1が長時間データフレームを送信しバス5を占拠していると判断し、制御部11はクロック13を参照して、所定時間よりも長い時間データフレームの送信を待機させる(ステップS48)。この処理の後、ECU1がデータを送信する場合、ステップS43における調停には参加できないので、他のECU2がデータを送信することが可能となる。
【0049】
ステップS44において、同一ECU1が送信権を取得していないと判断した場合(ステップS44でNO)、ECU1の制御部11はカウンタ12の計数した回数を0にクリアする(ステップS49)。次いで他のECU2の制御部21はデータフレームをバス5に送信する(ステップS4910)。なお、本実施の形態においてはカウンタ12が所定回数計数した場合に、ECU1を所定時間よりも長い時間待機させることとしたが、計数せずにECU1がデータを送信するたびに、所定時間よりも長い時間データの送信を待機させるようにしても良い。
【0050】
図5はカウンタ12のクリア処理の手順を示すフローチャートである。ステップS42の処理後、バス5に所定時間データフレームが送信されない場合、カウンタ12または22の計数した回数を0にクリアするようにしても良い。ECU1の制御部11及びECU2の制御部21は所定時間バス5にデータフレームが送信されていないかを判断する(ステップS51)。ECU1の制御部11及びECU2の制御部21は所定時間バス5にデータフレームが送信されていないと判断した場合(ステップS51でYES)、カウンタ12またはカウンタ22の計数した回数を0にクリアする(ステップS52)。一方、ECU1の制御部11及びECU2の制御部21は所定時間内にバス5にデータフレームが送信されたと判断した場合(ステップS51でNO)、ステップS52の処理をスキップし一連の処理を終了する。
【0051】
実施の形態2
実施の形態2は優先順位の低いECU10が連続してデータフレームを送信できなかった場合に、その回数を計数し、その回数が所定回数以上である場合に、所定時間よりも短い時間だけ待機させる形態に関する。
【0052】
図6は実施の形態2に係る通信システムのハードウェア構成を示すブロック図である。実施の形態1の構成に加えて、ECU1内には補助カウンタ14が制御部11に接続され、またECU2内には補助カウンタ24が制御部21に接続されている。補助カウンタ14はECU1が複数のECU10間で調停が行われ、連続して送信権を取得できなかった回数を計数する。補助カウンタ24も同様に、ECU2が調停により送信権を取得できなかった回数を計数する。なお、他のECU3についても同様の構成であるので詳細な説明を省略する。
【0053】
図7は実施の形態2に係るデータフレームの送信手順を示すタイムチャートである。横軸は時間を示し、縦軸は上側がECU1の系列、中段がECU2の系列、下側がECU3の系列を示す。以下では、ECU1、ECU3、ECU2の順で優先順位が高く、ECU1がデータフレーム1乃至5の送信を、ECU2がデータフレーム1の送信を、ECU3がデータフレーム1の送信を同時に行う例を用いて説明する。ECU1、ECU2及びECU3の間で調停が行われ、最も優先順位の高いECU1がデータフレーム1をバス5に送信する。ECU1の制御部11はカウンタ12をインクリメントする。また、ECU2の制御部21は送信権を取得できなかったため、補助カウンタ24をインクリメントする。同様にECU3の補助カウンタ(図示せず)もインクリメントされる。
【0054】
ここで、ECU1、ECU2及びECU3は所定時間待機する。ここで、実施の形態2における所定時間は5ビット分の時間(10μs)待機するものとする。すなわち、CANプロトコルにおいては、3ビット分の時間(6μs)待機するが、これよりも長い5ビット分の時間、各ECU10は待機する。この処理は例えばECU1の制御部11がクロック13から出力される時間情報を参照し、5ビット分の時間を経過した後、バス5にデータフレームを送信するようにすればよい。
【0055】
その後、再びECU1、ECU2及びECU3間で調停が行われ、優先順位の最も高いECU1がデータフレーム2をバス5上に送信する。この場合、ECU1のカウンタ12が2と計数され、送信権が再び取得できなかったECU2の補助カウンタ24及びECU3の補助カウンタは2と計数される。各ECU1、ECU2及びECU3は所定時間(5ビット分の時間)待機し、再び調停を行う。ここでは3回連続してECU1が送信権を取得し、データフレーム3をバス5上に送信する。この場合、ECU1のカウンタ12が3と計数され、送信権が再び取得できなかったECU2の補助カウンタ24及びECU3の補助カウンタは3と計数される。
【0056】
ECU1の制御部11は、実施の形態1で説明した如く、所定回数(3回)連続してデータフレームをバス5へ送信したので、所定時間よりも長い時間待機する。例えば、制御部11は8ビット分(16μs)待機させればよい。ここで、所定時間である5ビット分の時間経過後に調停に参加するECU10はECU2及びECU3である。ECU2及びECU3は調停を行い、優先順位の高いECU3が送信権を取得する。ECU3はデータフレーム1を送信する。ECU3のカウンタ(図示せず)がインクリメントされる。またECU2の制御部21は補助カウンタ24を4と計数する。一方他のECU3によりデータフレームがバス5へ送信されたECU1の制御部11は、カウンタ12の計数した回数を0にクリアする。さらにデータフレーム1を送信できたECU3の図示しない制御部は補助カウンタを0にクリアする。
【0057】
ECU3のデータフレーム1の送信後、所定時間(5ビット分の時間)ECU1及びECU2は待機する。ECU1及びECU2は調停を行い、優先順位の高いECU1が送信権を取得する。ECU1の制御部11はバス5へデータフレーム4の送信を行う。ここでECU1の制御部11はカウンタ12をインクリメントする。さらにECU2の制御部21は補助カウンタ24を5と計数する。ECU2の制御部21は、補助カウンタ24の計数した回数が所定回数以上であるか否かを判断する。ここでは所定回数を5とする。なお、この回数は記憶部25に予め記憶されている。
【0058】
ECU2の制御部21は、所定時間よりも短い時間待機させた上で、データフレーム1をバス5へ送信する。この所定時間は5ビット分の時間であり、所定回数以上連続して送信権を取得できなかった場合、5ビット分の時間より短いCAN規格の3ビット分の時間だけ短く待機させる。ECU1がデータフレーム4をバス5へ送信した後の3ビット分の時間経過後、すなわちインターフレームスペース挿入後、ようやくECU2の制御部21はデータフレーム1をバス5へ送信する。この場合、ECU2の制御部21は補助カウンタ24の計数した回数を0にクリアする。ECU2のデータフレーム1送信後、5ビット分の時間待機処理が行われ、ECU1の制御部11はデータフレーム5をバス5へ送信する。なお、ここで説明した所定回数(5回)、並びに、所定時間(5ビット分の時間)、これよりも長い時間(8ビット分の時間)及び所定時間よりも短い時間(3ビット分の時間)は記憶部15及び記憶部25に記憶されている。また、本実施の形態においては連続して送信権を取得できなかった回数が記憶部15または記憶部25に記憶した所定回数5以上となった場合に、所定時間よりも短い待機時間でデータの送信を行うようにしたが、この数字に限るものではない。ECU10の重要度に応じて記憶部15または記憶部25に記憶する所定回数を適宜変更するようにしても良い。例えば、ECU1の記憶部15には、補助カウンタ14の計数回数が2回の場合に、短い待機時間でデータの送信を可能とすべく、所定回数は2と記憶しておき、ECU2の記憶部25には、補助カウンタ24の計数回数が7回の場合に、短い待機時間でデータの送信を可能とすべく、所定回数は7と記憶しておいても良い。
【0059】
図8は実施の形態2に係る待機処理の手順を示すフローチャートである。以下では上述のとおり、最も優先順位の低いECU2を例に挙げて説明する。実施の形態1の図4におけるステップS46以降の処理を行う。ECU2の制御部21は送信権を取得できなかった回数を補助カウンタ24により計数させる(ステップS81)。制御部21は、補助カウンタ24の計数回数が記憶部25に記憶した所定回数以上であるか否かを判断する(ステップS82)。制御部21は所定回数以上でないと判断した場合(ステップS82でNO)、記憶部25に記憶した所定時間(5ビット分の時間)データフレームの送信を待機させる(ステップS83)。
【0060】
制御部21は補助カウンタ24の計数回数が所定回数以上であると判断した場合(ステップS82でYES)、記憶部25から所定時間よりも短い時間である3ビット分の時間を読み出し、当該時間分クロック23から出力される時間情報を参照してデータフレームの送信を待機する(ステップS84)。その所定時間よりも短い時間待機した後、ECU2の制御部21は他のECU10に先駆けて、データフレームをバス5へ送信する(ステップS85)。なお、ECU2のデータフレームの送信は、インターフレームスペース挿入後直ちにデータフレームをバス5へ送信するようにしても良い。最後にECU2の制御部21は補助カウンタ24の計数した回数を0にクリアする(ステップS86)。
【0061】
本実施の形態2は以上の如き構成としてあり、その他の構成及び作用は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【図面の簡単な説明】
【0062】
【図1】通信システムのハードウェア構成を示すブロック図である。
【図2】各ECUが送信する1データフレームのレイアウトを示す説明図である。
【図3】データフレームの送信手順を示すタイムチャートである。
【図4】待機処理の手順を示すフローチャートである。
【図5】カウンタのクリア処理の手順を示すフローチャートである。
【図6】実施の形態2に係る通信システムのハードウェア構成を示すブロック図である。
【図7】実施の形態2に係るデータフレームの送信手順を示すタイムチャートである。
【図8】実施の形態2に係る待機処理の手順を示すフローチャートである。
【符号の説明】
【0063】
1、2、3、10 ECU(ノード)
5 バス
11、21 制御部
12、22 カウンタ
13、23 クロック
15、25 記憶部
14、24 補助カウンタ


【特許請求の範囲】
【請求項1】
バスを介して接続された複数のノード間の通信方法において、
前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機ステップと、
ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定ステップと、
該決定ステップにより送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機ステップと
を備えることを特徴とする通信方法。
【請求項2】
同一のノードが連続して前記バスにデータを送信したか否かを判断する判断ステップと、
該判断ステップにより連続して同一のノードがデータを送信したと判断した回数を計数する計数ステップとをさらに備え、
前記延長待機ステップは、
前記決定ステップにより送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数ステップにより所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる
ことを特徴とする請求項1に記載の通信方法。
【請求項3】
前記決定ステップにより送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数ステップと、
該補助計数ステップにより計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機ステップと
をさらに備えることを特徴とする請求項2に記載の通信方法。
【請求項4】
複数のノードがバスを介して接続された通信システムにおいて、
前記ノードが前記バスへデータを送信した後に、前記複数のノードによる前記バスへのデータの送信を所定時間待機させる待機手段と、
ノードの識別子に基づいて前記バスへデータを送信する際の送信権を決定する決定手段と、
該決定手段により送信権を取得した一のノードがデータを送信した場合、該一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させる延長待機手段と
を備えることを特徴とする通信システム。
【請求項5】
同一のノードが連続して前記バスにデータを送信したか否かを判断する判断手段と、
該判断手段により連続して同一のノードがデータを送信したと判断した回数を計数する計数手段とをさらに備え、
前記延長待機手段は、
前記決定手段により送信権を取得した一のノードがデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、前記一のノードによる前記バスへのデータの送信を前記所定時間より長い時間待機させるよう構成してある
ことを特徴とする請求項4に記載の通信システム。
【請求項6】
前記判断手段により、同一のノードが連続して前記バスにデータを送信しなかったと判断した場合、前記計数手段による計数回数をクリアする手段
をさらに備えることを特徴とする請求項5に記載の通信システム。
【請求項7】
前記バスに所定時間データが送信されていない場合、前記計数手段による計数回数をクリアする手段
をさらに備えることを特徴とする請求項5または6に記載の通信システム。
【請求項8】
前記決定手段により送信権を取得できなかった他のノード毎に、送信権を取得できなかった回数を計数する補助計数手段と、
該補助計数手段により計数した回数が所定回数以上である場合に、他のノードによる前記バスへのデータの送信を前記所定時間より短い時間待機させる短縮待機手段と
をさらに備えることを特徴とする請求項5乃至7のいずれか一つに記載の通信システム。
【請求項9】
データを送信する通信装置において、
データを送信した後に、データの送信を所定時間待機させる待機手段と、
ノードの識別子に基づいて、データを送信する際の送信権を決定する決定手段と、
該決定手段により送信権を取得してデータを送信した場合、データの送信を前記所定時間より長い時間待機させる延長待機手段と
を備えることを特徴とする通信装置。
【請求項10】
連続してデータを送信したか否かを判断する判断手段と、
該判断手段により連続してデータを送信したと判断した回数を計数する計数手段とをさらに備え、
前記延長待機手段は、
前記決定手段により送信権を取得してデータを送信した場合であり、かつ、前記計数手段により所定回数計数したと判断した場合に、データの送信を前記所定時間より長い時間待機させるよう構成してある
ことを特徴とする請求項9に記載の通信装置。
【請求項11】
前記決定手段により送信権を取得できなかった回数を計数する補助計数手段と、
該補助計数手段により計数した回数が所定回数以上である場合に、データの送信を前記所定時間より短い時間待機させる短縮待機手段と
をさらに備えることを特徴とする請求項10に記載の通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−302781(P2008−302781A)
【公開日】平成20年12月18日(2008.12.18)
【国際特許分類】
【出願番号】特願2007−150784(P2007−150784)
【出願日】平成19年6月6日(2007.6.6)
【出願人】(504139662)国立大学法人名古屋大学 (996)
【出願人】(395011665)株式会社オートネットワーク技術研究所 (2,668)
【出願人】(000183406)住友電装株式会社 (6,135)
【出願人】(000002130)住友電気工業株式会社 (12,747)