JP2013012914A - 通信ノード、及び通信システム並びに通信方法 - Google Patents
通信ノード、及び通信システム並びに通信方法 Download PDFInfo
- Publication number
- JP2013012914A JP2013012914A JP2011144408A JP2011144408A JP2013012914A JP 2013012914 A JP2013012914 A JP 2013012914A JP 2011144408 A JP2011144408 A JP 2011144408A JP 2011144408 A JP2011144408 A JP 2011144408A JP 2013012914 A JP2013012914 A JP 2013012914A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- bus
- message frame
- time interval
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
【課題】マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させること。
【解決手段】通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードは、スレーブノードとの間で送受信されるメッセージフレーム間の時間間隔を設定する時間間隔設定部と、スレーブノードとの間で通信を行う他の通信ノードにより送受信されるメッセージフレームの終了を検出する終了検出部と、メッセージフレームが終了したことが検出されてから、メッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、メッセージフレーム間の時間間隔が経過したと判定されるまでの間に、通信バスが他の通信ノードに占有されているかを判定するバス占有判定部と、通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部とを有する。
【選択図】図6
【解決手段】通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードは、スレーブノードとの間で送受信されるメッセージフレーム間の時間間隔を設定する時間間隔設定部と、スレーブノードとの間で通信を行う他の通信ノードにより送受信されるメッセージフレームの終了を検出する終了検出部と、メッセージフレームが終了したことが検出されてから、メッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、メッセージフレーム間の時間間隔が経過したと判定されるまでの間に、通信バスが他の通信ノードに占有されているかを判定するバス占有判定部と、通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部とを有する。
【選択図】図6
Description
本発明は、通信システムに関する。
車両には、1又は複数の通信システムが搭載されている。車両の主にボデー系に使用される車載LANの通信プロトコルとして、ローカルインターコネクトネットワーク(LIN: Local Interconnect Network)が知られている。
LINには、マスターとなる通信ノードと、スレーブとなる通信ノードが含まれる。マスターとなる通信ノードは、ネットワークの通信タイミング等を制御する。LINでは、1つの通信ノードがマスターとなる。
LINに関して、マスタースレーブ方式を維持しながら、複数の通信ノードをマスターの候補とできる技術が知られている(例えば、特許文献1参照)。
既存のLINクラスタに、新たに自発的に通信を行う通信ノードを追加できない。新たに通信ノードを追加するためには、該追加される通信ノードを制御するための通信スケジュールを設計したり、既存のLINクラスタに含まれる通信ノードを制御するための通信スケジュールを再設計したりする必要がある。
また、動作が保証されている独立したLINクラスタが複数ある場合に、これらのLINクラスタを1つのLINクラスタとして結合できない。
また、通信制御における通信ノード間の主従関係と、実際に通信制御を行う際の主従関係とを一致させようとする場合に、設計に制約がでる。
LINは、マスタースレーブ方式を採用しているため、複数のマスターノードを1つのネットワークに配置できない。
仮に、1つのネットワークに、複数のマスターノードを配置した場合について説明する。
図1は、1つのLINに複数のマスターノードを配置した場合に、各マスターノードにより独立してスケジューリングが実行された場合の一例を示す。図1には、1つのLINに、N(Nは、N>1の整数)個のマスターノードが配置される場合について示される。N個のマスターノードは、同一の通信バスに接続される。また、N個のマスターノードは独立に動作する。
マスターノード1により、通信バス上に、メッセージ1(M1)を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはID1、ID2、ID3、ID4により表される。マスターノード2により、通信バス上に、メッセージ2(M2)を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはID1、ID2、ID3、ID4により表される。マスターノードNにより、通信バス上に、メッセージN(MN)を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはID1、ID2、ID3、ID4により表される。
マスターノード2によるスケジューリングによりメッセージ2のID1が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID1が送信されている。通信バス上に、メッセージ1のID1が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード2によるスケジューリングに従って、メッセージ2のID1が送信された場合、メッセージ2のID1は、メッセージ1のID1と衝突する。
また、マスターノード2によるスケジューリングにより、メッセージ2のID2が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID3が送信されている。通信バス上に、メッセージ1のID3が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード2によるスケジューリングに従って、メッセージ2のID2が送信された場合、メッセージ2のID2は、メッセージ1のID3と衝突する。
また、マスターノード2によるスケジューリングにより、メッセージ2のID3が送信される時間は、メッセージが送信される時間としてスケジューリングされていない。通信バス上に、メッセージが送信されていないため、マスターノード2によるスケジューリングに従って、メッセージ2のID3が送信される。
また、マスターノード2によるスケジューリングにより、メッセージ2のID4が送信される時間は、マスターノードNによるスケジューリングにより、通信バス上に、メッセージNのID4が送信されている。通信バス上に、メッセージNのID4が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード2によるスケジューリングに従って、メッセージ2のID4が送信された場合、メッセージ2のID4は、メッセージNのID4と衝突する。
また、マスターノードNによるスケジューリングにより、メッセージNのID1が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID2が送信されている。通信バス上に、メッセージ1のID2が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードNによるスケジューリングに従って、メッセージNのID1が送信された場合、メッセージNのID1は、メッセージ1のID2と衝突する。
また、マスターノードNによるスケジューリングにより、メッセージNのID2が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID3が送信されている。通信バス上に、メッセージ1のID3が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードNによるスケジューリングに従って、メッセージNのID2が送信された場合、メッセージNのID2は、メッセージ1のID3と衝突する。
また、マスターノードNによるスケジューリングにより、メッセージNのID3が送信される時間は、マスターノード2によるスケジューリングにより、通信バス上に、メッセージ2のID3が送信されている。通信バス上に、メッセージ2のID3が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードNによるスケジューリングに従って、メッセージNのID3が送信された場合、メッセージNのID3は、メッセージ2のID3と衝突する。
また、マスターノードNによるスケジューリングにより、メッセージNのID4が送信される時間は、メッセージが送信される時間としてスケジューリングされていない。通信バス上に、メッセージが送信されていないため、マスターノードNによるスケジューリングに従って、メッセージNのID4が送信される。
以上のように、マスタースレーブ方式が採用されている通信システムに、複数のマスターノードを配置した場合には、メッセージの衝突が生じることがある。
本発明は、上述の点に鑑みてなされたものであり、マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させることを目的とする。
開示の一実施例の通信ノードは、
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定部と、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出部と、
前記メッセージフレーム終了検出部によりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定部により設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、
前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定部と、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部と
を有する。
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定部と、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出部と、
前記メッセージフレーム終了検出部によりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定部により設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、
前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定部と、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部と
を有する。
開示の一実施例の通信システムは、
スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定部と、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出部と、
前記メッセージフレーム終了検出部によりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定部により設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、
前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定部と、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部と
を有する。
スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定部と、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出部と、
前記メッセージフレーム終了検出部によりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定部により設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、
前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定部と、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部と
を有する。
開示の一実施例の通信方法は、
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定ステップと、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出ステップと、
前記メッセージフレーム終了検出ステップによりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定ステップにより設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定ステップと、
前記時間間隔経過判定ステップによりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定ステップと、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御ステップと
を有する。
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定ステップと、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出ステップと、
前記メッセージフレーム終了検出ステップによりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定ステップにより設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定ステップと、
前記時間間隔経過判定ステップによりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定ステップと、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御ステップと
を有する。
開示の実施例によれば、マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させることができる。
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
<第1の実施例>
<通信システム>
図2は、通信システムの一実施例を示す。
<通信システム>
図2は、通信システムの一実施例を示す。
本通信システムは、複数の通信ノードを有する。本通信システムは、単線ネットワークであってもよい。該複数の通信ノードによりクラスタが構成されてもよい。
複数の通信ノードには、マスターノード100l(lは、l>1の整数)と、スレーブノード200m(mは、m>1の整数)とが含まれる。
マスターノード1001−マスターノード100lは、メッセージを送信すべきタイミングを制御する。具体的には、マスターノード1001−マスターノード100lは、メッセージに含まれるヘッダーを送信すべきタイミングをスケジューリングする。該スケジューリングの際に、送信すべきメッセージのID、送信の順番、送信する時間間隔などが設定される。
マスターノード1001−マスターノード100l、スレーブノード2001−スレーブノード200mは、通信バス300を介して有線接続される。マスターノード1001−マスターノード100lと、スレーブノード2001−スレーブノード200mとの間は、通信バス300を介して所定の通信プロトコルに従って通信を行う。具体的には、LINに従って通信を行う。
通信バス300を流れる信号は、2つの論理レベルのどちらかの状態を有する。該2つの論理レベルの状態は、「ドミナント(dominant)」と、「リセッシブ(recessive)」と呼ばれる。ドミナントは、グラウンド電位に近い、論理レベル0の状態である。リセッシブは、バッテリの+(プラス)端子の電位に近い、論理レベル1の状態である。
マスターノード1001−マスターノード100lは、所定のフレームフォーマットに従ってメッセージを送信する。
<フレームフォーマット>
図3は、マスターノード1001−マスターノード100lと、スレーブノード2001−スレーブノード200mとの間で送受信されるフレームフォーマットの一例を示す。
図3は、マスターノード1001−マスターノード100lと、スレーブノード2001−スレーブノード200mとの間で送受信されるフレームフォーマットの一例を示す。
フレームは、ヘッダーと、レスポンスを含む。ヘッダーはマスターノードから送信され、レスポンスはスレーブノードから送信される。
ヘッダーには、ブレークフィールド(Break field)と、シンクフィールド(Sync field)と、プロテクテッドアイデンティファイアーフィールド(Protected identifier field)とが含まれる。
ブレークフィールドは、クラスタの全スレーブノードに、フレームの開始を通知するためのフィールドである。ブレークフィールドのドミナント継続時間は「tBreak」により表される。例えば、該ブレークフィールドのドミナント継続時間は、13ビット長以上である。本実施例では、各マスターノードのブレークフィールドのドミナント継続時間は、固定長であり、略同一である。該ブレークフィールドのドミナント継続時間は、優先制御に使用される。
シンクフィールドは、クラスタに含まれる通信ノード間のクロック誤差の補正に使用される。
プロテクテッドアイデンティファイアーフィールドは、フレームの識別番号を表す6ビット(0〜5ビット)のフレームIDと、2ビット(6、7ビット)のパリティの合計8ビットで構成される。
レスポンスには、データフィールド(Data Field)と、チェックサム(Checksum)が含まれる。データフィールドと、チェックサムは、UART(Universal Asynchronous Receiver/Transmitter)フレームで送信される。データフィールドは、1個であってもよいし、複数であってもよい。各データフィールドには、最大8バイトのデータを格納できる。チェックサムは、データを正確に受信できたかどうかを判断する際に使用される。具体的には、チェックサムには、各データの値の総和を反転した値が格納される。
シンクフィールド長と、プロテクテッドアイデンティファイアーフィールド長と、データフィールド長の合計は「tFrame_Slot」により表される。具体的には、「tFrame_Slot」は、ブレークフィールドの立ち上がりエッジ(rising edge)を基点とする。以下、「tFrame_Slot」により表されるシンクフィールド長と、プロテクテッドアイデンティファイアーフィールド長と、データフィールド長の合計を「フレームスロット長」という。
また、隣接するフレーム間には、フレーム間間隔(Inter−frame space)が設定される。
また、図3に示される例では、ジッター(jitter)が示される。ジッターは、時間軸方向での信号波形の揺らぎを表す。本実施例では、該ジッターを利用してバスアービトレーション制御が行われる。該ジッター長をアービトレイションインターフレームスペース(AIFS: Arbitration Inter Frame Space)長(以下、「AIFS長」という)と呼ぶ。
また、ブレークフィールドからチェックサムまでの時間の合計は「TFrame_Maximum」により表される。具体的には、「TFrame_Maximum」は、ブレークフィールドの立ち上がりエッジ(rising edge)を基点とする。
<マスターノード>
図4は、マスターノードを示す。マスターノード1001−マスターノード100lは略同一の構成であるため、代表してマスターノード100lについて説明する。
図4は、マスターノードを示す。マスターノード1001−マスターノード100lは略同一の構成であるため、代表してマスターノード100lについて説明する。
マスターノード100lは、マイクロコントローラユニット(MCU: Micro−Control Unit)102lと、トランシーバ106lとを有する。
MCU102lには、1又は複数のマイコンが含まれる。マイコンの代わりにCPUが含まれてもよいし、MCUとCPUとが混在していてもよい。さらに、MCU102lには、通信装置104lが含まれる。通信装置104lはトランシーバ106lとの間で、シリアル通信を行う。具体的には、該通信装置104lは、UARTであってもよい。
トランシーバ106lは、MCU102l、通信バス300と接続される。トランシーバ106lは、MCU102lから入力されたデータを通信バス300に送信し、通信バス300からのデータをMCU102lに入力する。
<マスターノードの機能>
マスターノード100lは、他のマスターノードが、メッセージ送出中である場合には、次のフレームまで待機する。具体的には、他のマスターノードにより送信されるべきメッセージに含まれるブレークフィールドの立ち上がりエッジを基点とする、フレームスロット長の経過を基点として、マスターノード100lは、送信しようとするフレームの保護識別子(PID: Protected identifier)に対応したAIFS長の計測を行う。マスターノード100lは、AIFS長が経過した場合にブレークフィールドの送出を行う。
マスターノード100lは、他のマスターノードが、メッセージ送出中である場合には、次のフレームまで待機する。具体的には、他のマスターノードにより送信されるべきメッセージに含まれるブレークフィールドの立ち上がりエッジを基点とする、フレームスロット長の経過を基点として、マスターノード100lは、送信しようとするフレームの保護識別子(PID: Protected identifier)に対応したAIFS長の計測を行う。マスターノード100lは、AIFS長が経過した場合にブレークフィールドの送出を行う。
当該マスターノード100lの他にメッセージを送信しようとするマスターノードがいる場合には、当該マスターノード100lのAIFS長が先に経過した場合には、当該マスターノード100lは、ブレークフィールドの送出を行うことにより通信バスを占有できる。
一方、他のマスターノードのAIFS長が先に経過した場合には、当該マスターノード100lは次のフレームまで待機する。この場合、当該マスターノード100lは、通信バス300の状態がドミナント状態になったことにより、他のマスターノードにより、通信バス300を占有されたことを検出できる。
図5は、バスアービトレーションの一実施例を示す。
図5に示される例では、3個のマスターノード(マスターノード1001、1002、及び1003)におけるバスアービトレーションの例を示す。2個の場合、4個以上のマスターノードの場合においても同様である。
図5に示される例では、マスターノード1001はメッセージ送出中である。この状態で、マスターノード1002、マスターノード1003に、送信すべきデータが発生する。
マスターノード1002、マスターノード1003は、マスターノード1001によりデータが送出されているので、次のフレームまで待機する。
マスターノード1002、マスターノード1003は、マスターノード1001のブレークフィールドの立ち上がりを基点としたフレームスロット長が経過するまで待機する。マスターノード1002、マスターノード1003は、マスターノード1001のフレームスロット長の経過を基点として、次のフレームのPIDに対応したAIFS長を計測する。具体的には、マスターノード1002は、マスターノード1002により送信されるべき次のフレームのPIDに対応したAIFS長を計測する。マスターノード1003は、マスターノード1003により送信されるべき次のフレームのPIDに対応したAIFS長を計測する。
図5には、マスターノード1002により設定されたAIFS長の方が、マスターノード1003により設定されたAIFS長よりも短い時間である例が示される。つまり、マスターノード1002により設定されたAIFS長の方が先に満了する。この場合、マスターノード1002は、ブレークフィールドを送出し、バスを占有する。
図6は、マスターノード100lを示す機能ブロック図である。図6には、本実施例に関する部分について主に説明される。従って、スレーブノードとしての機能や、診断機能等については省略される。
マスターノード100lは、マスター機能部110を有する。マスター機能部110は、インターフレームスペース長設定部112と、フレームスロット計測部114と、インターフレームスペース計測部116と、ブレークフィールド送信制御部118と、バスアービトレーション判定部120と、フレーム送信制御部122とを有する。MCU102lが、所定のプログラムに従って機能することにより、マスター機能部110として機能するようにしてもよい。該所定のプログラムは、MCU102lに格納されていてもよい。
インターフレームスペース長設定部112は、送信すべきデータが発生し、かつ他のマスターノードにより通信バス300が占有されている場合に、機能する。インターフレームスペース設定部112は、通信バス300がドミナント状態である場合に、他のマスターノードにより通信バス300が占有されていると判定してもよい。インターフレームスペース長設定部112は、通信バス300を占有している他のマスターノードにより送信されるべきブレークフィールドの立ち上がりを基点としたフレームスロット長の経過後に計測すべきAIFS長を設定する。該AIFS長は、フレーム毎に設定されてもよいし、PID毎に設定されてもよい。
<AIFS長の設定方法(その1)>
インターフレームスペース長設定部112は、乱数を発生させることにより、AIFS長を設定するようにしてもよい。具体的には、式(1)に従って設定する。
インターフレームスペース長設定部112は、乱数を発生させることにより、AIFS長を設定するようにしてもよい。具体的には、式(1)に従って設定する。
tAIFS=TUnit×Trunc(1+nPriority×Rnd(seed)) (1)
式(1)において、「tAIFS」はAIFS長を表す。「TUnit」はクロック誤差及びバスの状態認識における遅延(delay)に基づいて、tAIFSの時間差を認識できる最小時間を表す。「nPriority」は優先(Priority)レベルの個数を表す。「nPriority」は1以上の整数である。Trunc(独立変数(argument))は小数点以下切り捨てによる整数化関数を表す。「Rnd(seed)」は乱数発生関数を表す。Rnd(seed)は0以上1未満の一様分布乱数を生成する。マスターノード毎に、異なるseedを与えることにより、異なる系列の乱数を発生させる。
式(1)において、「tAIFS」はAIFS長を表す。「TUnit」はクロック誤差及びバスの状態認識における遅延(delay)に基づいて、tAIFSの時間差を認識できる最小時間を表す。「nPriority」は優先(Priority)レベルの個数を表す。「nPriority」は1以上の整数である。Trunc(独立変数(argument))は小数点以下切り捨てによる整数化関数を表す。「Rnd(seed)」は乱数発生関数を表す。Rnd(seed)は0以上1未満の一様分布乱数を生成する。マスターノード毎に、異なるseedを与えることにより、異なる系列の乱数を発生させる。
乱数によりAIFS長を発生させることにより、通信バス300の占有権を各マスターノード間で分散させることができる。
<AIFS長の設定方法(その2)>
インターフレームスペース長設定部112は、AIFS長に、固定値を設定するようにしてもよい。具体的には、式(2)に従って設定する。
インターフレームスペース長設定部112は、AIFS長に、固定値を設定するようにしてもよい。具体的には、式(2)に従って設定する。
tAIFS=TUnit×n (2)
式(2)において、「tAIFS」はAIFS長を表す。「TUnit」はクロック誤差及びバスの状態認識における遅延(delay)に基づいて、tAIFSの時間差を認識できる最小時間を表す。「n」は、1、2、3、・・・の自然数を表す。「n」は、PID毎に異なる値が設定される
AIFS長に、固定値を設定することにより、特定フレームに通信バスの占有権を与えることができる。
式(2)において、「tAIFS」はAIFS長を表す。「TUnit」はクロック誤差及びバスの状態認識における遅延(delay)に基づいて、tAIFSの時間差を認識できる最小時間を表す。「n」は、1、2、3、・・・の自然数を表す。「n」は、PID毎に異なる値が設定される
AIFS長に、固定値を設定することにより、特定フレームに通信バスの占有権を与えることができる。
インターフレームスペース長設定部112は、インターフレームスペース計測部114に、AIFS長を表す情報を入力する。
フレームスロット計測部114は、トランシーバ106lと接続される。フレームスロット計測部114は、トランシーバ106lを介して、通信バス300の状態をモニターする。フレームスロット計測部114は、当該マスターノード100lに送信すべきデータが発生した際の通信バス300の状態がドミナント状態である場合、該通信バス300の状態がリセッシブ状態となるまでモニターし続ける。フレームスロット計測部114は、該通信バス300の状態がリセッシブ状態となる際に、フレームスロット長を計測するタイマー(以下、「フレームスロット長計測タイマー」という)を起動する。具体的には、フレームスロット計測部114は、通信バス300を占有する他のマスターノードによりブレークフィールドの送信が終了することにより通信バス300の状態がドミナント状態からリセッシブ状態へとなる立ち上がりのエッジが検出された際に、該フレームスロット長計測タイマーを起動する。フレームスロット計測部114は、該フレームスロット長計測タイマーが満了すると、インターフレームスペース計測部116に、フレームスロット長計測タイマーが満了したことを表す情報を入力する。
インターフレームスペース計測部116は、インターフレームスペース長設定部112、フレームスロット計測部114と接続される。インターフレームスペース計測部116は、フレームスロット計測部114によりフレームスロット長計測タイマーが満了したことを表す情報が入力された際に、インターフレームスペース長設定部112により入力されるべきAIFS長を表す情報に従って、AIFS長を計測するためのタイマー(以下、「AIFS長計測タイマー」という)を起動する。インターフレームスペース計測部116は、AIFS長計測タイマーが満了した際に、ブレークフィールド送信制御部118に、AIFS長計測タイマーが満了したことを表す情報を入力する。
また、インターフレームスペース計測部116は、バスアービトレーション判定部120による命令に従って、AIFS長計測タイマーを終了する。AIFS長計測タイマーを終了した場合、フレームスロット計測部114によりフレームスロット長計測タイマーが満了したことを表す情報が入力された際に、AIFS長を表す情報に従って、AIFS長計測タイマーを再度起動する。
ブレークフィールド送信制御部118は、インターフレームスペース計測部116、トランシーバ106lと接続される。ブレークフィールド送信制御部118は、インターフレームスペース計測部116から入力されるべき、AIFS長計測タイマーが満了したことを表す情報に従って、ブレークフィールドを生成する。AIFS長計測タイマーが満了したことにより、他のマスターノードにより通信バス300が占有されていない判定されるためである。ブレークフィールド送信制御部118は、トランシーバ106lを介して、ブレークフィールドを送信する。ブレークフィールド送信制御部118は、バスアービトレーション判定部120に、ブレークフィールドの送信を開始したことを表す情報を入力する。また、ブレークフィールド送信制御部118は、ブレークフィールドを送信する際に、ブレークフィールドを送信すべき時間を計測するためのタイマー(以下、「ブレークフィールド送信時間計測タイマー」という)を起動する。ブレークフィールド送信制御部118は、ブレークフィールド送信時間計測タイマーが満了した場合に、ブレークフィールドの送信を終了する。ブレークフィールド送信制御部118は、ブレークフィールドの送信を終了した際に、バスアービトレーション判定部120に、ブレークフィールドの送信を終了したことを表す情報を入力する。
バスアービトレーション判定部120は、ブレークフィールド送信制御部118、トランシーバ106l、インターフレームスペース計測部116と接続される。バスアービトレーション判定部120は、トランシーバ106lを介して、通信バス300をモニターする。バスアービトレーション判定部120は、当該マスターノード100lが通信バス300を占有できるかどうかを判定する。
<当該マスターノードにより通信バスを占有できると判定される場合>
図7は、当該マスターノード100lにより通信バス300を占有できると判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。
図7は、当該マスターノード100lにより通信バス300を占有できると判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。
バスアービトレーション判定部120は、ブレークフィールド送信制御部118から、ブレークフィールドの送信を開始したことを表す情報入力された場合に、当該マスターノード100lにより通信バス300を占有できると判定する。
ブレークフィールド送信制御部118によりブレークフィードを送信する制御が行われたことにより通信バス300はドミナント状態に変化する。該ブレークフィールドが送信されたことにより、バスアービトレーション判定部120により通信バス300がドミナント状態に変化したことが検出される。
バスアービトレーション判定部120は、ブレークフィールド送信制御部118によりブレークフィールドの送信を終了したことを表す情報が入力された際に、フレーム送信制御部122に、ブレークフィールドの送信を終了したことを表す情報を入力する。
<当該マスターノードにより通信バスを占有できないと判定される場合>
図8は、当該マスターノード100lにより通信バス300を占有できないと判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。バスアービトレーション判定部120は、定期的又は不定期的に、通信バス300の状態をモニターする。
図8は、当該マスターノード100lにより通信バス300を占有できないと判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。バスアービトレーション判定部120は、定期的又は不定期的に、通信バス300の状態をモニターする。
インターフレームスペース計測部116によりAIFS長計測タイマーが起動され、該AIFS長計測タイマーが起動中であるにもかかわらず、バスアービトレーション判定部120により、通信バス300の状態がドミナント状態に変化したことが検出された場合に、当該マスターノード100lにより通信バスを占有できないと判定する。他のマスターノードによりブレークフィールドが送信されたと判定できるためである。この場合、バスアービトレーション判定部120は、インターフレームスペース計測部116に、AIFS長計測タイマーを終了するように命令する。
フレーム送信制御部122は、バスアービトレーション判定部120と接続される。フレーム送信制御部122は、バスアービトレーション判定部120から、当該マスターノード100lにより通信バスを占有できることを表す情報が入力された場合に、フレームを送信するための制御を行う。具体的には、フレーム送信制御部122は、バスアービトレーション判定部120から、ブレークフィールドの送信を終了したことを表す情報が入力された後に、ヘッダーを送信するための制御を行う。
<マスターノードの動作>
図9は、マスターノード100lの動作の一実施例を示す。図9には、マスターノード100lに送信すべきメッセージが発生した際に、他のマスターノードにより通信バス300が占有されている場合の例が示される。
図9は、マスターノード100lの動作の一実施例を示す。図9には、マスターノード100lに送信すべきメッセージが発生した際に、他のマスターノードにより通信バス300が占有されている場合の例が示される。
マスターノード100lは、上位から、メッセージ送信要求を受信する(ステップS902)。該上位は、他のネットワークであってもよい。
マスターノード100lは、AIFS長を設定する(ステップS904)。つまり、インターフレームスペース長設定部112は、AIFS長を設定する。
マスターノード100lは、フレームスロット長を計測する(ステップS906)。つまり、フレームスロット計測部114は、フレームスロット長計測タイマーを起動し、通信バス300を占有している他のマスターノードにより送信されるべきブレークフィールドの立ち上がりから、フレームスロット長を計測する。
マスターノード100lは、フレームスロット長計測タイマーが満了したかどうかを判定する(ステップS908)。つまり、フレームスロット長計測部114は、フレームスロット長計測タイマーが満了したかどうかを判定する。
フレームスロット長計測タイマーが満了していないと判定された場合(ステップS908:NO)、ステップS908に戻る。フレームスロット長計測タイマーが満了するまで継続される。
フレームスロット長計測タイマーが満了していると判定された場合(ステップS908:YES)、マスターノード100lは、AIFS長を計測する(ステップS910)。つまり、インターフレームスペース長計測部116は、AIFS長計測タイマーを起動し、フレームスロット長の終了を基点として、AIFS長を計測する。
マスターノード100lは、AIFS長計測タイマーが満了したかどうかを判定する(ステップS912)。つまり、インターフレームスペース計測部116は、AIFS長計測タイマーが満了したかどうかを判定する。
AIFS長計測タイマーが満了したと判定された場合(ステップS912:YES)、マスターノード100lは、ブレークフィールドを送信する(ステップS914)。つまり、ブレークフィールド送信制御部118は、インターフレームスペース計測部116により通知されるべきAIFS長計測タイマーが満了したことを表す情報に従って、ブレークフィールドを送信する。この場合、バスアービトレーション判定部120により当該マスターフレーム100lにより、通信バス300の占有ができると判定される。
マスターノード100lは、フレームを送信する(ステップS916)。つまり、フレーム送信制御部122は、ヘッダーを送信するための制御を行う。
ステップS912により、AIFS長計測タイマーが満了したと判定されない場合(ステップS912:NO)、マスターノード100lは、通信バス300の状態がドミナントであるかどうかを判定する(ステップS918)。つまり、バスアービトレーション判定部120は、通信バス300の状態をモニターし、ブレークフィールド送信制御部118によりブレークフィールドの送信を終了したことを表す情報が入力される前に、通信バス300の状態がドミナント状態となったかどうかを判定する。
通信バス300の状態がドミナント状態となったと判定されない場合(ステップS918:NO)、ステップS912に戻る。AIFS長計測タイマーが満了するまで継続される。
通信バス300の状態がドミナント状態となったと判定された場合(ステップS918:NO)、ステップS906に戻る。通信バス300の状態がドミナント状態となったと判定された場合には、当該マスターノード100lと同様に送信すべきメッセージが発生した他のマスターノードによりブレークフィールドが送信されたと判定される。このため、メッセージを送信するためには、次のフレームまで待機する必要がある。
本実施例によれば、複数のマスターノード間で、衝突を検知して、送信を実施したり、送信を保留したりすることができる。このため、シングルタスクの通信網であっても、複数のノードをマスターノードとして利用できる。つまり、マルチタスクを実施できる。
具体的には、AIFS長を制御することにより、通信バスを占有するマスターノードを決定するためのアービトレーションを実現できる。アービトレーションを実現できるため、マスタースレーブ方式の通信システムをマルチマスタ方式の通信システムとして動作させることができる。この場合、マスターノードのハードウェアの変更は必要ない。このため、コストを増加させずに、通信スケジュールの設計の自由度を向上させることができる。
<第2の実施例>
<通信システム>
本通信システムは、図2を参照して説明した通信システムと略同一である。
<通信システム>
本通信システムは、図2を参照して説明した通信システムと略同一である。
<マスターノード>
マスターノード1001−100lは、図4を参照して説明したマスターノードと略同一の構成である。
マスターノード1001−100lは、図4を参照して説明したマスターノードと略同一の構成である。
<マスターノードの機能>
マスターノード100lは、当該マスターノード100lに送信すべきメッセージが発生した際に、他のマスターノードにより通信バス300が占有され、メッセージ送出中である場合には、次のフレームまで待機する。具体的には、通信バス300を占有している他のマスターノードのブレークフィールドの立ち上がりを基点とするフレームスロット長の経過を基点として、マスターノード100lは、送信しようとするフレームの保護識別子(PID: Protected identifier)に対応したAIFS長の計測を行う。AIFS長の計測が終了すると、マスターノード100lは、ブレークフィールドを送信する。
マスターノード100lは、当該マスターノード100lに送信すべきメッセージが発生した際に、他のマスターノードにより通信バス300が占有され、メッセージ送出中である場合には、次のフレームまで待機する。具体的には、通信バス300を占有している他のマスターノードのブレークフィールドの立ち上がりを基点とするフレームスロット長の経過を基点として、マスターノード100lは、送信しようとするフレームの保護識別子(PID: Protected identifier)に対応したAIFS長の計測を行う。AIFS長の計測が終了すると、マスターノード100lは、ブレークフィールドを送信する。
当該マスターノード100lの他にメッセージを送信しようとするマスターノードがいる場合には、当該マスターノード100lのブレークフィールドの送出期間が長い場合には、当該マスターノード100lは通信バス300を占有できる。一方、他のマスターノードのブレークフィールドの送出期間が長い場合には、当該マスターノード100lは次のフレームまで待機する。
図10は、バスアービトレーションの一実施例を示す。
図10に示される例では、3個のマスターノード(マスターノード1001、1002、及び1003)におけるバスアービトレーションの例を示す。2個の場合、4個以上のマスターノードの場合においても同様である。
図10に示される例では、マスターノード1001はメッセージ送出中である。この状態で、マスターノード1002、マスターノード1003に、送信すべきデータが発生する。
マスターノード1002、マスターノード1003は、マスターノード1001によりデータが送出されているので、次のフレームまで待機する。
マスターノード1002、マスターノード1003は、マスターノード1001のブレークフィールドの立ち上がりを基点とする、フレームスロット長が経過するまで待機する。マスターノード1002、マスターノード1003は、マスターノード1001のフレームスロット長の経過を基点として、次のフレームのPIDに対応したAIFS長を計測する。具体的には、マスターノード1002は、マスターノード1002により送信されるべき次のフレームのPIDに対応したAIFS長を計測する。マスターノード1003は、マスターノード1003により送信されるべき次のフレームのPIDに対応したAIFS長を計測する。
図10には、マスターノード1002により設定されたAIFS長と、マスターノード1003により設定されたAIFS長とが略同一の時間である例が示される。つまり、マスターノード1002により設定されたAIFS長の満了と、マスターノード1003により設定されたAIFS長の満了とは略同一のタイミングである。
例えば、AIFS長は、上述した第1の実施例と同様の方法により設定されてもよい。この場合、送信すべきメッセージが発生したマスターノード間で、AIFS長が同じ値となる場合もある。特に、AIFS長として、固定値が設定される場合には、同じ値となる確率が高いと想定される。このような場合に、送信すべきメッセージが発生したマスターノード間で、ブレークフィールド長を異ならせることにより、バスアービトレーションを行うことができる。
また、例えば、AIFS長は、固定値が設定されてもよい。該固定値は、フレームのPIDに基づいて設定された値であってもよい。
AIFS長が経過したマスターノード1002、マスターノード1003は、ブレークフィールドを送出する。
図10には、マスターノード1002により送出されるブレークフィールドの送信時間の方が、マスターノード1003により送信されるブレークフィールドの送信時間よりも長い時間である例が示される。この場合、マスターノード1002はバスを占有する。
図11は、マスターノード100lを示す機能ブロック図である。図11には、本実施例に関する部分について主に説明される。従って、スレーブノードとしての機能や、診断機能等については省略される。
マスターノード100lは、マスター機能部110を有する。マスター機能部110は、インターフレームスペース長設定部112と、フレームスロット計測部114と、インターフレームスペース計測部116と、ブレークフィールド送信制御部118と、バスアービトレーション判定部120と、フレーム送信制御部122と、ブレークフィールド長設定部124とを有する。MCU102lが、所定のプログラムに従って機能することにより、マスター機能部110として機能するようにしてもよい。該所定のプログラムは、MCU102lに格納されたものであってもよい。
インターフレームスペース長設定部112、フレームスロット計測部114、インターフレームスペース計測部116、及びフレーム送信制御部122については、図6を参照して説明したマスターノード100lと同様である。
ブレークフィールド長設定部124は、ブレークフィールド送信制御部118と接続される。ブレークフィールド長設定部124は、ブレークフィールド長「tBreak」を設定する。具体的には、ブレークフィールド長設定部124は、式(3)に従って、ブレークフィールド長を設定してもよい。
tBreak=T13bit+TUnit×Trunc(1+mPriority×Rnd(seed))(3)
式(3)において、「tBreak」はブレークフィールド長を表す。「T13bit」は、13ビットビット幅を表す。「TUnit」はクロック誤差及び通信バスの状態認識における遅延(delay)に基づいて、tAIFSの時間差を認識できる最小時間を表す。「mPriority」は優先(Priority)レベルの個数を表す。「mPriority」は1以上の整数である。「mPriority」の値は、存在する優先レベルの個数に一致させる必要はない。「mPriority」の値を小さくすると、ブレークフィールドの衝突検出に失敗する確率が上がる。一方、「mPriority」の値を大きくすることにより、ブレークフィールドの衝突解除の成功率を100%に近づけることができる。Trunc(独立変数(argument))は小数点以下切り捨てによる整数化関数を表す。「Rnd(seed)」は乱数発生関数を表す。Rnd(seed)は0以上1未満の一様分布乱数を生成する。マスターノード毎に、異なるseedを与えることにより、異なる系列の乱数を発生させる。ブレークフィールド長設定部124は、ブレークフィールド送信制御部118に、ブレークフィールド長を表す情報を入力する。
式(3)において、「tBreak」はブレークフィールド長を表す。「T13bit」は、13ビットビット幅を表す。「TUnit」はクロック誤差及び通信バスの状態認識における遅延(delay)に基づいて、tAIFSの時間差を認識できる最小時間を表す。「mPriority」は優先(Priority)レベルの個数を表す。「mPriority」は1以上の整数である。「mPriority」の値は、存在する優先レベルの個数に一致させる必要はない。「mPriority」の値を小さくすると、ブレークフィールドの衝突検出に失敗する確率が上がる。一方、「mPriority」の値を大きくすることにより、ブレークフィールドの衝突解除の成功率を100%に近づけることができる。Trunc(独立変数(argument))は小数点以下切り捨てによる整数化関数を表す。「Rnd(seed)」は乱数発生関数を表す。Rnd(seed)は0以上1未満の一様分布乱数を生成する。マスターノード毎に、異なるseedを与えることにより、異なる系列の乱数を発生させる。ブレークフィールド長設定部124は、ブレークフィールド送信制御部118に、ブレークフィールド長を表す情報を入力する。
ブレークフィールド送信制御部118は、インターフレームスペース計測部116、ブレークフィールド長設定部124、トランシーバ106lと接続される。ブレークフィールド送信制御部118は、インターフレームスペース計測部116から入力されるべき、AIFS長計測タイマーが満了したことを表す情報に従って、ブレークフィールド長設定部124により入力されるべきブレークフィールド長に従って、ブレークフィールドを生成する。ブレークフィールド送信制御部118は、トランシーバ106lを介して、ブレークフィールドを送信する。ブレークフィールド送信制御部118は、バスアービトレーション判定部120に、ブレークフィールドの送信を開始したことを表す情報を入力する。また、ブレークフィールド送信制御部118は、ブレークフィールドを送信する際に、ブレークフィールド送信時間計測タイマーを起動する。ブレークフィールド送信制御部118は、ブレークフィールド送信時間計測タイマーが満了した場合に、ブレークフィールドの送信を終了する。ブレークフィールド送信制御部118は、ブレークフィールドの送信を終了した際に、バスアービトレーション判定部120に、ブレークフィールドの送信を終了したことを表す情報を入力する。
バスアービトレーション判定部120は、ブレークフィールド送信制御部118、トランシーバ106l、インターフレームスペース計測部116と接続される。バスアービトレーション判定部120は、トランシーバ106lを介して、通信バス300をモニターする。バスアービトレーション判定部120は、当該マスターノード100lが通信バスを占有できるかどうかを判定する。
<当該マスターノードにより通信バスを占有できると判定される場合>
図12は、当該マスターノード100lにより通信バス300が占有されると判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。
図12は、当該マスターノード100lにより通信バス300が占有されると判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。
ブレークフィールド送信制御部118によりブレークフィードを送信する制御が行われたことにより通信バス300はドミナント状態に変化する。該ブレークフィールドが送信されたことにより、バスアービトレーション判定部120により通信バス300がドミナント状態に変化したことが検出される。
バスアービトレーション判定部120は、ブレークフィールド送信制御部118によりブレークフィールドの送信を終了したことを表す情報が入力された際に、通信バス300がリセッシブ状態となったかどうかを判定する。バスアービトレーション判定部120は、ブレークフィールド送信制御部118によりブレークフィールドの送信を終了したことを表す情報が入力された際に、通信バス300がリセッシブ状態となったと判定された場合に、当該マスターノード100lにより通信バス300を占有できると判定する。この場合、バスアービトレーション判定部120は、フレーム送信制御部122に、当該マスターノード100lにより通信バス300を占有できることを表す情報を入力する。
<当該マスターノードにより通信バスを占有できないと判定される場合>
図13は、当該マスターノード100lにより通信バス300を占有できないと判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。
図13は、当該マスターノード100lにより通信バス300を占有できないと判定される場合のバスアービトレーション判定部120によりモニターされるべき通信バス300の状態を表す。
ブレークフィールド送信制御部118によりブレークフィードを送信する制御が行われたことにより通信バス300はドミナント状態に変化する。該ブレークフィールドが送信されたことにより、バスアービトレーション判定部120により通信バス300がドミナント状態に変化したことが検出される。
バスアービトレーション判定部120は、ブレークフィールド送信制御部118によりブレークフィールドの送信を終了したことを表す情報が入力された際に、通信バス300がリセッシブ状態となったかどうかを判定する。バスアービトレーション判定部120は、ブレークフィールド送信制御部118によりブレークフィールドの送信を終了したことを表す情報が入力された際に、通信バス300がリセッシブ状態となったと判定されない場合、つまりドミナント状態のままであると判定された場合に、当該マスターノード100lにより通信バスを占有できないと判定する。他のマスターノードにより通信バス300が占有されたと判定できるためである。この場合、バスアービトレーション判定部120は、インターフレームスペース計測部116に、AIFS長計測タイマーを終了するように命令する。
<マスターノードの動作>
図14は、マスターノード100lの動作の一実施例を示す。
図14は、マスターノード100lの動作の一実施例を示す。
図14のステップS1402−S1410は、図9のステップS902−S910と同様であるため、説明を省略する。
マスターノード100lは、AIFS長計測タイマーが満了したかどうかを判定する(ステップS1412)。つまり、インターフレームスペース計測部116は、AIFS長計測タイマーが満了したかどうかを判定する。
AIFS長計測タイマーが満了したと判定された場合(ステップS1412:YES)、マスターノード100lは、ブレークフィールド長を設定する(ステップS1414)。つまり、ブレークフィールド長設定部124は、ブレークフィールド長を設定する。
AIFS長計測タイマーが満了したと判定されない場合(ステップS1412:NO)、ステップS1412に戻る。AIFSタイマーが満了するまで継続される。
マスターノード100lは、ブレークフィールド長を計測する(ステップS1416)。つまり、ブレークフィールド送信制御部118は、ブレークフィールド長計測タイマーを起動し、ブレークフィールドの送信期間を計測する。
マスターノード100lは、ブレークフィールド長計測タイマーが満了したかどうかを判定する(ステップS1418)。つまり、ブレークフィールド送信制御部118は、ブレークフィールド長計測タイマーが満了したかどうかを判定する。
ブレークフィールド長計測タイマーが満了していないと判定された場合(ステップS1418:NO)、ステップS1418に戻る。ブレークフィールド長計測タイマーが満了するまで継続される。
ブレークフィールド長計測タイマーが満了していると判定された場合(ステップS1418:YES)、マスターノード100lは、通信バス300の状態がリセッシブ状態であるかどうかを判定する(ステップS1420)。つまり、バスアービトレーション判定部120は、通信バス300の状態をモニターし、ブレークフィールド送信制御部118からブレークフィールドの送信を終了したことを表す情報が入力された際に、通信バス300の状態がリセッシブ状態となったかどうかを判定する。
通信バス300の状態がリセッシブ状態となったと判定されない場合(ステップS1420:NO)、ステップS1406に戻る。通信バス300の状態がリセッシブ状態となったと判定されない場合には、他のマスターノードにより通信バス300が占有されたと判定できるため、メッセージを送信するには、次のフレームまで待機する必要があるからである。
通信バス300の状態がドミナント状態となったと判定された場合(ステップS1420:YES)、マスターノード100lは、フレームを送信する(ステップS1422)。つまり、フレーム送信制御部122は、ヘッダーを送信するための制御を行う。
インターフレームスペース長を固定値に設定した場合には、優先的にバスの占有権が付与されることになり、マルチタスク化とはならない。本実施例によれば、このような場合でも、インターフレームスペース時間に続くフィールド、つまりブレークフィールドでバスの占有権を振分けることができる。このため、複数のノードをマスターノードとして利用でき、マルチタスクを実施できる。
具体的には、ブレークフィールド長を制御することにより、通信バスを占有するマスターノードを決定するためのアービトレーションを実現できる。アービトレーションを実現できるため、マスタースレーブ方式の通信システムをマルチマスタ方式の通信システムとして動作させることができる。この場合、マスターノードのハードウェアの変更は必要ない。このため、コストを増加させずに、通信スケジュールの設計の自由度を向上させることができる。
以上、本発明は特定の実施例及び変形例を参照しながら説明されてきたが、各実施例及び変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
100l(lは、l>1の整数) マスターノード
102l(lは、l>1の整数) MCU
104l(lは、l>1の整数) 通信装置
106l(lは、l>1の整数) トランシーバ
112 インターフレームスペース長設定部
114 フレームスロット計測部
116 インターフレームスペース計測部
118 ブレークフィールド送信制御部
120 バスアービトレーション判定部
122 フレーム送信制御部
124 ブレークフィールド長設定部
200m(mは、l>1の整数) スレーブノード
300 通信バス
102l(lは、l>1の整数) MCU
104l(lは、l>1の整数) 通信装置
106l(lは、l>1の整数) トランシーバ
112 インターフレームスペース長設定部
114 フレームスロット計測部
116 インターフレームスペース計測部
118 ブレークフィールド送信制御部
120 バスアービトレーション判定部
122 フレーム送信制御部
124 ブレークフィールド長設定部
200m(mは、l>1の整数) スレーブノード
300 通信バス
Claims (11)
- 通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定部と、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出部と、
前記メッセージフレーム終了検出部によりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定部により設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、
前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定部と、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部と
を有する、通信ノード。 - 請求項1に記載の通信ノードにおいて、
前記メッセージフレーム時間間隔設定部は、前記メッセージフレーム間の時間間隔として、乱数に基づいて生成されるべき値を設定する、通信ノード。 - 請求項1に記載の通信ノードにおいて、
前記メッセージフレーム時間間隔設定部は、前記メッセージフレーム間の時間間隔として、固定された値を設定する、通信ノード。 - 請求項3に記載の通信ノードにおいて、
前記メッセージフレームに含まれるべきブレークフィールド長を設定するブレークフィールド長設定部と、
該ブレークフィールド長設定部により設定されるべきブレークフィールド長に従って、ブレークフィールドを送信する制御を行うブレークフィールド送信制御部と、
前記ブレークフィールド送信制御部によりブレークフィールドの送信が終了したと判定された際に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第2のバス占有判定部と
を有し、
前記メッセージフレーム送信制御部は、前記第2のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームの送信を継続する制御を行う、通信ノード。 - 請求項1に記載の通信ノードにおいて、
前記メッセージフレーム終了検出部は、前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送信されるべきブレークフィールドの立ち上がりからの経過時間に基づいて、メッセージフレームの終了を検出する、通信ノード。 - 請求項1に記載の通信ノードにおいて、
前記第1のバス占有判定部は、前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスがドミナント状態であることが検出された場合に、該通信バスが他の通信ノードに占有されていると判定する、通信ノード。 - 請求項4に記載の通信ノードにおいて、
前記第2のバス占有判定部は、前記ブレークフィールド送信制御部によりブレークフィールドの送信が終了したと判定された際に、前記通信バスがドミナント状態であることが検出された場合に、該通信バスが他の通信ノードに占有されていると判定する、通信ノード。 - スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定部と、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出部と、
前記メッセージフレーム終了検出部によりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定部により設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定部と、
前記時間間隔経過判定部によりメッセージフレーム間の時間間隔が経過したと判定されるまでの間際に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定部と、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御部と
を有する、通信システム。 - 請求項8に記載の通信システムにおいて、
前記メッセージフレームに含まれるべきブレークフィールド長を設定するブレークフィールド長設定部と、
該ブレークフィールド長設定部により設定されるべきブレークフィールド長に従って、ブレークフィールドを送信する制御を行うブレークフィールド送信制御部と、
前記ブレークフィールド送信制御部によりブレークフィールドの送信が終了したと判定された際に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第2のバス占有判定部と
を有し、
前記メッセージフレーム送信制御部は、前記第2のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームの送信を継続する制御を行う、通信システム。 - 通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフレーム間の時間間隔を設定するメッセージフレーム時間間隔設定ステップと、
前記通信バスを介してスレーブノードとの間で通信を行う他の通信ノードにより送受信されるべきメッセージフレームの終了を検出するメッセージフレーム終了検出ステップと、
前記メッセージフレーム終了検出ステップによりメッセージフレームが終了したことが検出されてから、前記メッセージフレーム時間間隔設定ステップにより設定されるべきメッセージフレーム間の時間間隔が経過したかどうかを判定する時間間隔経過判定ステップと、
前記時間間隔経過判定ステップによりメッセージフレーム間の時間間隔が経過したと判定されるまでの間に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第1のバス占有判定ステップと、
該第1のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームを送信する制御を行うメッセージフレーム送信制御ステップと
を有する、通信方法。 - 請求項10に記載の通信方法において、
前記メッセージフレームに含まれるべきブレークフィールド長を設定するブレークフィールド長設定ステップと、
該ブレークフィールド長設定ステップにより設定されるべきブレークフィールド長に従って、ブレークフィールドを送信する制御を行うブレークフィールド送信制御ステップと、
前記ブレークフィールド送信制御ステップによりブレークフィールドの送信が終了したと判定された際に、前記通信バスが他の通信ノードに占有されているかどうかを判定する第2のバス占有判定ステップと
を有し、
前記メッセージフレーム送信制御ステップは、前記第2のバス占有判定部により前記通信バスが他の通信ノードに占有されていないと判定された場合に、メッセージフレームの送信を継続する制御を行う、通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011144408A JP2013012914A (ja) | 2011-06-29 | 2011-06-29 | 通信ノード、及び通信システム並びに通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011144408A JP2013012914A (ja) | 2011-06-29 | 2011-06-29 | 通信ノード、及び通信システム並びに通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013012914A true JP2013012914A (ja) | 2013-01-17 |
Family
ID=47686423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011144408A Withdrawn JP2013012914A (ja) | 2011-06-29 | 2011-06-29 | 通信ノード、及び通信システム並びに通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013012914A (ja) |
-
2011
- 2011-06-29 JP JP2011144408A patent/JP2013012914A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103155492B (zh) | 通信***及通信装置 | |
JP6093031B2 (ja) | プロトコル例外状態を利用したデータ伝送 | |
JP5664799B2 (ja) | 通信システム及び通信方法 | |
JP5852382B2 (ja) | データ伝送方法 | |
JP5267598B2 (ja) | 車両制御装置のデータ書き換え支援システム及びデータ書き換え支援方法 | |
CN103782283B (zh) | 用于具有灵活的消息大小和可变的位长的数据传输的方法和装置 | |
JP4571668B2 (ja) | 時間制御される通信システム内にグローバルなタイムベースを確立する方法および通信システム | |
EP3358788A1 (en) | Illegality detection electronic control unit, vehicle onboard network system, and communication method | |
US20160080168A1 (en) | Can fd | |
JP2016167812A (ja) | 直列バスシステム内でデータ伝送の信頼性を調整するための方法及び装置 | |
CN103890747A (zh) | 用于具有灵活的消息大小和可变的位长的串行数据传输的方法和装置 | |
EP2625825A1 (en) | Method for digital communication between a plurality of nodes connected by a serial field bus and corresponding system, in particular a field control system or field surveyance system | |
JP2014510498A (ja) | 直列バスシステム内でデータ伝送容量を上げるための方法及び装置 | |
JP6121563B2 (ja) | プロトコル例外状態を用いたデータ伝送プロトコル | |
JP4594124B2 (ja) | 通信システム及び通信方法 | |
JP2010081152A (ja) | 通信装置および通信システム並びに通信方法、canノード | |
JP6410914B1 (ja) | シリアル通信システム | |
JP6455220B2 (ja) | 通信システム | |
JP2007195040A (ja) | ノードの異常判定方法 | |
JP5958335B2 (ja) | 通信ノード、及び通信システム | |
JP6028717B2 (ja) | 通信システムおよびゲートウェイ装置並びに通信方法 | |
JP5892890B2 (ja) | 通信制御装置 | |
JP2013012914A (ja) | 通信ノード、及び通信システム並びに通信方法 | |
JP2010141819A (ja) | 通信装置、通信方法および通信プログラム | |
JP2017092856A (ja) | 通信装置および通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140902 |