説明

通信ノード、及び通信システム並びに通信方法

【課題】マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させること。
【解決手段】通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードに、スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、該優先度フィールドを送信する優先度フィールド送信部と、通信バスの状態を検出する通信バス状態検出部と、通信バスの状態と、優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、通信バスの状態と、優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システムに関する。
【背景技術】
【0002】
車両には、1又は複数の通信システムが搭載されている。車両の主にボデー系に使用される車載LANの通信プロトコルとして、ローカルインターコネクトネットワーク(LIN: Local Interconnect Network)が知られている。
【0003】
LINには、マスターとなる通信ノードと、スレーブとなる通信ノードが含まれる。マスターとなる通信ノードは、ネットワークの通信タイミング等を制御する。LINでは、1つの通信ノードがマスターとなる。
【0004】
LINに関して、マスタースレーブ方式を維持しながら、複数の通信ノードをマスターの候補とできる技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−28793号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
既存のLINクラスタに、新たに自発的に通信を行う通信ノードを追加できない。新たに通信ノードを追加するためには、該追加される通信ノードを制御するための通信スケジュールを設計したり、既存のLINクラスタに含まれる通信ノードを制御するための通信スケジュールを再設計したりする必要がある。
【0007】
また、動作が保証されている独立したLINクラスタが複数ある場合に、これらのLINクラスタを1つのLINクラスタとして結合できない。
【0008】
また、通信制御における通信ノード間の主従関係と、実際に通信制御を行う際の主従関係とを一致させようとする場合に、設計に制約がでる。
【0009】
LINは、マスタースレーブ方式を採用しているため、複数のマスターノードを1つのネットワークに配置できない。
【0010】
仮に、1つのネットワークに、複数のマスターノードを配置した場合について説明する。
【0011】
図1は、1つのLINに複数のマスターノードを配置した場合に、各マスターノードにより独立してスケジューリングが実行された場合の一例を示す。図1には、1つのLINに、N(Nは、N>1の整数)個のマスターノードが配置される場合について示される。N個のマスターノードは、同一の通信バスに接続される。また、N個のマスターノードは独立に動作する。
【0012】
マスターノード1により、通信バス上に、メッセージ1(M1)を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはID1、ID2、ID3、ID4により表される。マスターノード2により、通信バス上に、メッセージ2(M2)を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはID1、ID2、ID3、ID4により表される。マスターノードNにより、通信バス上に、メッセージN(MN)を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはID1、ID2、ID3、ID4により表される。
【0013】
マスターノード2によるスケジューリングによりメッセージ2のID1が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID1が送信されている。通信バス上に、メッセージ1のID1が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード2によるスケジューリングに従って、メッセージ2のID1が送信された場合、メッセージ2のID1は、メッセージ1のID1と衝突する。
【0014】
また、マスターノード2によるスケジューリングにより、メッセージ2のID2が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID3が送信されている。通信バス上に、メッセージ1のID3が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード2によるスケジューリングに従って、メッセージ2のID2が送信された場合、メッセージ2のID2は、メッセージ1のID3と衝突する。
【0015】
また、マスターノード2によるスケジューリングにより、メッセージ2のID3が送信される時間は、メッセージが送信される時間としてスケジューリングされていない。通信バス上に、メッセージが送信されていないため、マスターノード2によるスケジューリングに従って、メッセージ2のID3が送信される。
【0016】
また、マスターノード2によるスケジューリングにより、メッセージ2のID4が送信される時間は、マスターノードNによるスケジューリングにより、通信バス上に、メッセージNのID4が送信されている。通信バス上に、メッセージNのID4が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード2によるスケジューリングに従って、メッセージ2のID4が送信された場合、メッセージ2のID4は、メッセージNのID4と衝突する。
【0017】
また、マスターノードNによるスケジューリングにより、メッセージNのID1が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID2が送信されている。通信バス上に、メッセージ1のID2が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードNによるスケジューリングに従って、メッセージNのID1が送信された場合、メッセージNのID1は、メッセージ1のID2と衝突する。
【0018】
また、マスターノードNによるスケジューリングにより、メッセージNのID2が送信される時間は、マスターノード1によるスケジューリングにより、通信バス上に、メッセージ1のID3が送信されている。通信バス上に、メッセージ1のID3が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードNによるスケジューリングに従って、メッセージNのID2が送信された場合、メッセージNのID2は、メッセージ1のID3と衝突する。
【0019】
また、マスターノードNによるスケジューリングにより、メッセージNのID3が送信される時間は、マスターノード2によるスケジューリングにより、通信バス上に、メッセージ2のID3が送信されている。通信バス上に、メッセージ2のID3が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードNによるスケジューリングに従って、メッセージNのID3が送信された場合、メッセージNのID3は、メッセージ2のID3と衝突する。
【0020】
また、マスターノードNによるスケジューリングにより、メッセージNのID4が送信される時間は、メッセージが送信される時間としてスケジューリングされていない。通信バス上に、メッセージが送信されていないため、マスターノードNによるスケジューリングに従って、メッセージNのID4が送信される。
【0021】
以上のように、マスタースレーブ方式が採用されている通信システムに、複数のマスターノードを配置した場合には、メッセージの衝突が生じることがある。
【0022】
本発明は、上述の点に鑑みてなされたものであり、マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させることを目的とする。
【課題を解決するための手段】
【0023】
開示の一実施例の通信ノードは、
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する。
【0024】
開示の一実施例の通信システムは、
スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する。
【0025】
開示の一実施例の通信方法は、
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定ステップと、
該優先度フィールド設定ステップにより設定されるべき優先度フィールドを送信する優先度フィールド送信ステップと、
前記通信バスの状態を検出する通信バス状態検出ステップと、
該通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定ステップと、
該バスアービトレーション判定ステップにより前記通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御ステップと
を有する。
【発明の効果】
【0026】
開示の実施例によれば、マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させることができる。
【図面の簡単な説明】
【0027】
【図1】同一バス上に接続された複数のマスターノードによるスケジューリングの一例を示す図である。
【図2】通信システムの一実施例を示す図である。
【図3】フレームフォーマットの一例を示す図である。
【図4】マスターノードの一実施例を示す図である。
【図5】バスアービトレーションの一実施例を示す図である。
【図6】マスターノードの一実施例を示す機能ブロック図である。
【図7】アービトレーション処理の一実施例を示す図である。
【図8】マスターノードの動作の一実施例を示すフローチャートである。
【図9】マスターノード間でプライオリティフィールドを同期させる方法を示す図である。
【発明を実施するための形態】
【0028】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【0029】
<実施例>
<通信システム>
図2は、通信システムの一実施例を示す。
【0030】
本通信システムは、複数の通信ノードを有する。本通信システムは、単線ネットワークであってもよい。該複数の通信ノードによりクラスタが構成されてもよい。
【0031】
複数の通信ノードには、マスターノード100(lは、l>1の整数)と、スレーブノード200(mは、m>1の整数)とが含まれる。
【0032】
マスターノード100−マスターノード100は、メッセージを送信すべきタイミングを制御する。具体的には、マスターノード100−マスターノード100は、メッセージに含まれるヘッダーを送信すべきタイミングをスケジューリングする。該スケジューリングの際に、送信すべきメッセージのID、送信の順番、送信する時間間隔などが設定される。
【0033】
マスターノード100−マスターノード100、スレーブノード200−スレーブノード200は、通信バス300を介して有線接続される。マスターノード100−マスターノード100と、スレーブノード200−スレーブノード200との間は、通信バス300を介して所定の通信プロトコルに従って通信を行う。具体的には、LINに従って通信を行う。
【0034】
通信バス300を流れる信号は、2つの論理レベルのどちらかの状態を有する。該2つの論理レベルの状態は、「ドミナント(dominant)」と、「リセッシブ(recessive)」と呼ばれる。ドミナントは、グラウンド電位に近い、論理レベル0の状態である。リセッシブは、バッテリの+(プラス)端子の電位に近い、論理レベル1の状態である。
【0035】
マスターノード100−マスターノード100は、所定のフレームフォーマットに従ってメッセージを送信する。
【0036】
<フレームフォーマット>
図3は、マスターノード100−マスターノード100と、スレーブノード200−スレーブノード200との間で送受信されるフレームフォーマットの一例を示す。
【0037】
フレームは、ヘッダーと、レスポンスを含む。ヘッダーはマスターノードから送信され、レスポンスはスレーブノードから送信される。
【0038】
ヘッダーには、ブレークフィールド(Break field)と、シンクフィールド(Sync field)と、プライオリティフィールド(Priority field)と、プロテクテッドアイデンティファイアーフィールド(Protected identifier field)とが含まれる。
【0039】
ブレークフィールドは、クラスタの全スレーブノードに、フレームの開始を通知するためのフィールドである。ブレークフィールドのドミナント継続時間は「tBreak」により表される。例えば、該ブレークフィールドのドミナント継続時間は、13ビット長以上である。該ブレークフィールドのドミナント継続時間を「ブレークフィールド長」という。本実施例では、各マスターノードのブレークフィールドのドミナント継続時間は、固定長であり、略同一である。
【0040】
シンクフィールドは、クラスタに含まれる通信ノード間のクロック誤差の補正に使用される。
【0041】
プライオリティフィールドは、複数のマスターノード間でフレームの送出タイミングが一致した場合に、該複数のマスターノード間でバスアービトレーションを実施する際に利用される。複数のマスターノード間でフレームの送出タイミングが一致した場合には、送信データが衝突する。このため、該プライオリティフィールドを利用して、当該マスターノードがバスを占有することができるかどうかを判定する。
【0042】
プロテクテッドアイデンティファイアーフィールドは、フレームの識別番号を表す6ビット(0〜5ビット)のフレームIDと、2ビット(6、7ビット)のパリティの合計8ビットで構成される。
【0043】
レスポンスには、データフィールド(Data Field)と、チェックサム(Checksum)が含まれる。データフィールドと、チェックサムは、UART(Universal Asynchronous Receiver/Transmitter)フレームで送信される。データフィールドは、1個であってもよいし、複数であってもよい。各データフィールドには、最大8バイトのデータを格納できる。チェックサムは、データを正確に受信できたかどうかを判断する際に使用される。具体的には、チェックサムには、各データの値の総和を反転した値が格納される。
【0044】
シンクフィールド長と、プライオリティフィールド長と、プロテクテッドアイデンティファイアーフィールド長と、データフィールド長の合計は「tFrame_Slot」により表される。具体的には、「tFrame_Slot」は、ブレークフィールドの立ち上がりエッジ(rising edge)を基点とする。以下、「tFrame_Slot」により表されるシンクフィールド長と、プライオリティフィールド長と、プロテクテッドアイデンティファイアーフィールド長と、データフィールド長の合計を「フレームスロット長」という。
【0045】
また、隣接するフレーム間には、フレーム間間隔(Inter−frame space)(図示なし)が設定される。
【0046】
また、図3に示される例では、ジッター(jitter)が示される。ジッターは、時間軸方向での信号波形の揺らぎを表す。該ジッターとして設定された時間を「ジッター時間」という。
【0047】
<マスターノード>
図4は、マスターノードを示す。マスターノード100−マスターノード100は略同一の構成であるため、代表してマスターノード100について説明する。
【0048】
マスターノード100は、マイクロコントローラユニット(MCU: Micro−Control Unit)102と、トランシーバ106とを有する。
【0049】
MCU102には、1又は複数のマイコンが含まれる。マイコンの代わりにCPUが含まれてもよいし、MCUとCPUとが混在していてもよい。さらに、MCU102には、通信装置104が含まれる。通信装置104はトランシーバ106との間で、シリアル通信を行う。具体的には、該通信装置104は、UARTであってもよい。
【0050】
トランシーバ106は、MCU102、通信バス300と接続される。トランシーバ106は、MCU102から入力されたデータを通信バス300に送信し、通信バス300からのデータをMCU102に入力する。
【0051】
<マスターノードの機能>
マスターノード100は、他のマスターノードがメッセージ送出中である場合には、次のフレームまで待機する。具体的には、他のマスターノードにより送信されるべきメッセージに含まれるブレークフィールドの立ち上がりエッジを基点とする、フレームスロット長の経過を基点として、ジッター時間を計測するためのタイマー(以下、「ジッター時間計測タイマー」という)を起動する。該ジッター時間は、固定値として、予め設定されてもよい。マスターノード100は、ジッター時間計測タイマーが満了することによりジッター時間が経過すると、ブレークフィールドを開始するとともに、ブレークフィールド長を計測するためのタイマー(以下、「ブレークフィールド長計測タイマー」という)を起動する。
【0052】
マスターノード100は、ブレークフィールド長計測タイマーが満了することによりブレークフィールド長が経過すると、シンクフィールドの送出を開始するとともに、シンクフィールド長を計測するためのタイマー(以下、「シンクフィールド長計測タイマー」という)を起動する。
【0053】
マスターノード100は、シンクフィールド長計測タイマーが満了することによりシンクフィールド長が経過すると、プライオリティフィールドを送信する。
【0054】
当該マスターノード100の他にメッセージを送信しようとするマスターノードがいる場合には、当該マスターノード100によりプライオリティフィールドが送出されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが異なることが検出された場合には、プライオリティフィールドの送出を停止する。当該マスターノード100は、次のフレームまで待機する。
【0055】
一方、当該マスターノード100によりプライオリティフィールドが送出されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが異なることが検出されない場合には、当該マスターノード100は、通信バス300を占有できる。通信バス300を占有できる場合、当該マスターノード100は、プライオリティフィールドに続いて、プロテクテッドアイデンティファイアーフィールドを送信する。
【0056】
図5は、バスアービトレーションの一実施例を示す。
【0057】
図5に示される例では、2個のマスターノード(マスターノード100、及び100)におけるバスアービトレーションの例を示す。3個以上のマスターノードの場合においても同様である。
【0058】
図5に示される例では、マスターノード100、マスターノード100に、送信すべきデータが発生する。他のマスターノードによりメッセージが送出中である状態である場合に、送信すべきデータが発生してもよい。
【0059】
マスターノード100、マスターノード100は、他のマスターノードによりデータが送出されている場合には、次のフレームまで待機する。
【0060】
マスターノード100、マスターノード100は、他のマスターノード100のブレークフィールドの立ち上がりを基点としたフレームスロット長が経過するまで待機する。マスターノード100、マスターノード100は、ブレークフィールドの立ち上がりエッジを基点とする、フレームスロット長の経過を基点として、ジッター時間計測タイマーを起動する。
【0061】
マスターノード100、マスターノード100は、ジッター時間計測タイマーが満了することによりジッター時間が経過したことを検出すると、ブレークフィールドの送信を開始するとともに、ブレークフィールド長計測タイマーを起動する(1)。
【0062】
マスターノード100、マスターノード100は、ブレークフィールド長計測タイマーが満了することによりブレークフィールド長が経過したことを検出すると、シンクフィールドの送信を開始するとともに、シンクフィールド長計測タイマーを起動する(2)。
【0063】
マスターノード100、マスターノード100は、シンクフィールド長計測タイマーが満了することによりシンクフィールド長が経過したことを検出すると、プライオリティフィールドの送信を開始する(3)。
【0064】
図5に示される例では、マスターノード100により通信バス300が占有される場合について示される。つまり、マスターノード100は、当該マスターノード100よりプライオリティフィールドが送出されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが一致する。
【0065】
一方、マスターノード100は、プライオリティフィールドの送信の途中で、当該マスターノード100よりプライオリティフィールドが送出されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが異なることを検出する。プライオリティフィールドが送出されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが異なることを検出した場合、プライオリティフィールドの送信を停止する。
【0066】
通信バス300を占有したマスターノード100は、プライオリティフィールドに続いて、プロテクテッドアイデンティファイアーフィールドを送信する。該プロテクテッドアイデンティファイアーフィールドを送信したマスターノード100は、スレーブノードからのデータを受信する(5)。
【0067】
図6は、マスターノード100を示す機能ブロック図である。図6には、本実施例に関する部分について主に説明される。従って、スレーブノードとしての機能や、診断機能等については省略される。
【0068】
マスターノード100は、マスター機能部110を有する。マスター機能部110は、プライオリティフィールド設定部112と、プライオリティフィールド送信制御部114と、バスアービトレーション判定部116と、フレーム送信制御部118とを有する。MCU102が、所定のプログラムに従って機能することにより、マスター機能部110として機能するようにしてもよい。該所定のプログラムは、MCU102に格納されていてもよい。
【0069】
プライオリティフィールド設定部112は、送信すべきメッセージが発生した場合に機能する。プライオリティフィールド設定部112は、送信すべきメッセージに応じてプライオリティフィールドに含まれるべき情報を設定する。具体的には、メッセージの送受信に関する優先度に応じて、異なる値が設定されてもよい。メッセージと、設定すべき優先度とが対応付けられたテーブルが用意されてもよい。該テーブルは、マスターノード毎に異なってもよい。送信すべきメッセージが、異なることがあるためである。プライオリティフィールド設定部112は、プライオリティフィールド送信制御部114に、設定したプライオリティフィールドに含まれるべき情報を入力する。
【0070】
プライオリティフィールド送信制御部114は、プライオリティフィールド送信制御部114、トランシーバ106と接続される。プライオリティフィールド送信制御部114は、プライオリティフィールド設定部112により入力されるべきプライオリティフィールドに含まれるべき情報に基づいて、プライオリティフィールドの送信制御を行う。具体的には、プライオリティフィールド送信制御部114は、トランシーバ106に、プライオリティフィールドを送出する。プライオリティフィールド送信制御部114は、バスアービトレーション判定部116に、トランシーバ106に送出すべきプライオリティフィールドを表す情報を入力する。プライオリティフィールド送信制御部114は、プライオリティフィールドの送出が終了した場合、バスアービトレーション判定部116に、プライオリティフィールドの送信が終了したことを通知する。
【0071】
バスアービトレーション判定部116は、プライオリティフィールド送信制御部114、トランシーバ106と接続される。バスアービトレーション判定部116は、プライオリティフィールド送信制御部114により入力されるべきプライオリティフィールドに基づいて、該プライオリティフィールドが送出されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが一致するかどうかを判定する。該通信バス300の状態には、リセッシブ状態と、ドミナント状態とが含まれる。
【0072】
一致しないと判定される場合、バスアービトレーション判定部116は、当該マスターノード100は通信バス300を占有できないと判定する。通信バス300を占有できないと判定した場合、バスアービトレーション判定部116は、プライオリティフィールド送信制御部114に、一致しないことを通知する。プライオリティフィールド送信制御部114は、バスアービトレーション判定部116により一致しないことが通知された場合、プライオリティフィールドの送信を停止する。
【0073】
一方、プライオリティフィールド送信制御部114によりプライオリティフィールドの送信が終了したことが通知されるまで、プライオリティフィールド送信制御部114により入力されるべきプライオリティフィールドが送信されることにより想定される通信バス300の状態と、実際の通信バス300の状態とが一致する場合、バスアービトレーション判定部116は、当該マスターノード100は通信バス300を占有できると判定する。当該マスターノード100が通信バス300を占有できると判定した場合、バスアービトレーション判定部116は、フレーム送信制御部118に、通信バス300を占有できることを通知する。
【0074】
<バスアービトレーション処理>
図7は、バスアービトレーション判定部116に実行されるべきバスアービトレーション判定処理を表す。
【0075】
図7に示される例では、プライオリティフィールドが8ビットで表される。プライオリティフィールドは7ビット以下で表されてもよいし、9ビット以上で表されてもよい。
【0076】
マスターノード100は、プライオリティフィールドに含まれる情報として、「01010100」を、「01010100」の順に送信する。また、マスターノード100は、プライオリティフィールドに含まれる情報として、「01011111」を、「01011111」の順に送信する。
【0077】
当該マスターノードがマスターノード100である場合、アービトレーション判定部116は、送出されたプライオリティフィールドにより想定される通信バス300の状態と、実際の通信バス300の状態とが一致することを検出できる。
【0078】
当該マスターノードがマスターノード100である場合、アービトレーション判定部116は、送出されたプライオリティフィールドにより想定される通信バス300の状態と、実際の通信バス300の状態とが4ビットまでは一致することを検出できる。しかし、(A)により示されるように、5ビット目については、送出されたビットが「1」であるのに対し、実際の通信バス300の状態は「0」である。一方、マスターノード100からは「0」が送出されている。
【0079】
複数のマスターノードから異なる情報が送出された場合、「0」が通信ノードに反映される。つまり、通信バス300において、ドミナントが優先される。従って、プライオリティフィールドに含まれる情報として送受信の優先度が設定される場合、優先度が高くなるに従って「0」が連続した値となる。このため、優先度が高くなるに従って、送出したプライオリティフィールドにより想定される通信バス300の状態と、実際の通信バス300の状態とが一致し続けることになる。このため、優先度が高くなるに従って通信バス300を占有できる。つまり、長い間「0」を送信し続けたマスターノードが通信バスを占有できる。
【0080】
フレーム送信制御部118は、バスアービトレーション判定部116、トランシーバ106と接続される。フレーム送信制御部118は、バスアービトレーション判定部116から通信バス300を占有できることが通知された場合、プライオリティフィールドに続く、プロテクテッドアイデンティファイアーフィールドを送信する制御を行う。
【0081】
<マスターノードの動作>
図8は、マスターノード100の動作の一実施例を示す。図8には、マスターノード100に送信すべきメッセージが発生した場合の例が示される。
【0082】
マスターノード100は、ジッター時間を計測する(ステップS802)。マスターノード100は、フレームスロットスロット長の時間が経過したことを契機として、ジッター時間計測タイマーを起動する。
【0083】
マスターノード100は、ジッター時間計測タイマーが満了したかどうかを判定する(ステップS804)。
【0084】
ジッター時間計測タイマーが満了していないと判定された場合(ステップS804:NO)、ステップS804に戻る。ジッター時間計測タイマーが満了するまで継続される。
【0085】
ジッター時間計測タイマーが満了していると判定された場合(ステップS804:YES)、マスターノード100は、ブレークフィールドを送信する(ステップS806)。マスターノード100は、ブレークフィールド長計測タイマーを起動し、ブレークフィールド長を計測する。
【0086】
マスターノード100は、ブレークフィールド長計測タイマーが満了したかどうかを判定する(ステップS808)。
【0087】
ブレークフィールド長計測タイマーが満了したと判定されない場合(ステップS808:NO)、マスターノード100は、ステップS808に戻る。ブレークフィールド長計測タイマーが満了するまで継続される。
【0088】
ブレークフィールド長計測タイマーが満了していると判定された場合(ステップS808:YES)、マスターノード100は、シンクフィールドを送信する(ステップS810)。マスターノード100は、シンクフィールド長計測タイマーを起動し、シンクフィールド長を計測する。
【0089】
マスターノード100は、シンクフィールド長計測タイマーが満了したかどうかを判定する(ステップS812)。
【0090】
シンクフィールド長計測タイマーが満了したと判定されない場合(ステップS812:NO)、マスターノード100は、ステップS812に戻る。シンクフィールド長計測タイマーが満了するまで継続される。
【0091】
シンクフィールド長計測タイマーが満了したと判定された場合(ステップS812:YES)、マスターノード100は、プライオリティフィールドを設定する(ステップS814)。つまり、プライオリティフィールド設定部112は、送信すべきメッセージの送受信に関する優先度に従ってプライオリティフィールドを設定する。
【0092】
マスターノード100は、プライオリティフィールドを送信する(ステップS816)。つまり、プライオリティフィールド送信制御部114による制御に従って、プライオリティフィールドが送信される。
【0093】
マスターノード100は、送信したプライオリティフィールドにより想定されるべき通信バス300の状態と、実際の通信バス300の状態とが一致するかどうかを判定する(ステップS818)。つまり、バスアービトレーション判定部116は、送出されたプライオリティフィールドにより想定される通信バス300の状態と、トランシーバ106を介して検出されるべき通信バス300の状態とが一致するかどうかを判定する。
【0094】
一致すると判定される場合(ステップS818:YES)、マスターノード100は、プライオリティフィールドの送信が終了するかどうかを判定する(ステップS820)。つまり、バスアービトレーション判定部116は、送出されたプライオリティフィールドにより想定される通信バス300の状態と、トランシーバ106を介して検出されるべき通信バス300の状態とが一致すると判定した場合、プライオリティフィールドの全ビットの送出が行われたかどうかを判定する。
【0095】
全ビットの送出が行われたと判定されない場合(ステップS820:NO)、ステップS816に戻る。送出されていないビットについて、ステップS816−ステップS820の処理が行われる。
【0096】
全ビットの送出が行われたと判定された場合(ステップS820:YES)、マスターノード100は、プロテクティッドアイデンティファイアーフィールドを送信する(ステップS822)。つまり、フレーム送信制御部118は、全ビットについて、送出されたプライオリティフィールドにより想定される通信バス300の状態と、トランシーバ106を介して検出されるべき通信バス300の状態とが一致すると判定された場合、当該マスターノード100により、通信バス300の占有ができると判定する。通信バス300の占有ができると判定される場合、フレーム送信制御部118はプライオリティフィールドに続いて、プロティティッドアイデンティファイアーフィールドを送信する。
【0097】
ステップS818により一致すると判定されない場合(ステップS818:NO)、マスターノード100は、プライオリティフィールドの送信を停止する(ステップS824)。つまり、バスアービトレーション判定部116は、送出されたプライオリティフィールドにより想定される通信バス300の状態と、トランシーバ106を介して検出されるべき通信バス300の状態とが一致しないと判定した場合、当該マスターノード100は、通信バスを占有できないと判定する。この場合、プライオリティフィールドの送信を停止し、ステップS802に戻る。メッセージを送信するためには、次のフレームまで待機する必要があるためである。
【0098】
本実施例では、マスターノード100−100間で、プライオリティフィールドが同期しているのが好ましい。送出されたプライオリティフィールドにより想定される通信バス300の状態と、トランシーバ106を介して検出されるべき通信バス300の状態とが一致するかどうかが判定されるためである。
【0099】
図9は、マスターノード間でプライオリティフィールドを同期させる方法を表す。
【0100】
同期を行うために、ブレークフィールドの立ち上がりを基点とし、シンクフィールドまでの時間により表されるブレークフィールドギャップと、シンクフィールドの立ち上がりのエッジを基点とし、プライオリティフィールドまでの時間により表されるシンクフィールドギャップとをマスターノード間で同じ値とする。
【0101】
本実施例によれば、同一の通信バスに複数のマスターノードを接続できる。つまり、既存の通信クラスタに新しいマスターノードを追加できる。また、フレーム間のギャップや、ブレークフィールド長をメッセージ毎に変更させる必要がないため、フレーム長を同じにできる。このため、フレーム全体の時間管理を簡略化できる。また、メッセージの送信速度のバラツキを低減できる。
【0102】
また、複数のマスターノード間で、衝突を検知して、送信を実施したり、送信を保留したりすることができる。このため、シングルタスクの通信網であっても、複数のノードをマスターノードとして利用できる。つまり、マルチタスクを実施できる。
【0103】
具体的には、送信すべきフレームにマスターノード間で通信バスを占有する際に使用するフィールドを定義することにより、バスアービトレーション機能を実現することができる。アービトレーションを実現できるため、マスタースレーブ方式の通信システムをマルチマスタ方式の通信システムとして動作させることができる。
【0104】
以上の場合、マスターノードのハードウェアの変更は必要ない。このため、コストを増加させずに、通信スケジュールの設計の自由度を向上させることができる。
【0105】
以上、本発明は特定の実施例及び変形例を参照しながら説明されてきたが、各実施例及び変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
【符号の説明】
【0106】
100(lは、l>1の整数) マスターノード
102(lは、l>1の整数) MCU
104(lは、l>1の整数) 通信装置
106(lは、l>1の整数) トランシーバ
112 プライオリティフィールド設定部
114 プライオリティフィールド送信制御部
116 バスアービトレーション判定部
118 フレーム送信制御部
200(mは、l>1の整数) スレーブノード
300 通信バス

【特許請求の範囲】
【請求項1】
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する、通信ノード。
【請求項2】
請求項1に記載の通信ノードにおいて、
前記優先度フィールド送信部は、シンクフィールドに続いて、優先度フィールドを送信する、通信ノード。
【請求項3】
請求項1又は2に記載の通信ノードにおいて、
前記メッセージフレーム送信制御部は、前記バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定されないまま、優先度フィールとの送信が終了した場合に、メッセージフィールドの送信を継続する、通信ノード。
【請求項4】
請求項1無いし3のいずれか1項に記載の通信ノードにおいて、
前記バスアービトレーション判定部は、前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを、ビット毎に、判定する、通信ノード。
【請求項5】
スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する、通信システム。
【請求項6】
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定ステップと、
該優先度フィールド設定ステップにより設定されるべき優先度フィールドを送信する優先度フィールド送信ステップと、
前記通信バスの状態を検出する通信バス状態検出ステップと、
該通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定ステップと、
該バスアービトレーション判定ステップにより前記通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御ステップと
を有する、通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−12915(P2013−12915A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−144409(P2011−144409)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(508237823)株式会社OTSL (11)
【Fターム(参考)】