(57)【要約】【課題】マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させること。【解決手段】通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードに、スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、該優先度フィールドを送信する優先度フィールド送信部と、通信バスの状態を検出する通信バス状態検出部と、通信バスの状態と、優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、通信バスの状態と、優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部とを有する。【選択図】図６
2013012915.tif 000002
【特許請求の範囲】
【請求項１】
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する、通信ノード。
【請求項２】
請求項１に記載の通信ノードにおいて、
前記優先度フィールド送信部は、シンクフィールドに続いて、優先度フィールドを送信する、通信ノード。
【請求項３】
請求項１又は２に記載の通信ノードにおいて、
前記メッセージフレーム送信制御部は、前記バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定されないまま、優先度フィールとの送信が終了した場合に、メッセージフィールドの送信を継続する、通信ノード。
【請求項４】
請求項１無いし３のいずれか１項に記載の通信ノードにおいて、
前記バスアービトレーション判定部は、前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを、ビット毎に、判定する、通信ノード。
【請求項５】
スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する、通信システム。
【請求項６】
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定ステップと、
該優先度フィールド設定ステップにより設定されるべき優先度フィールドを送信する優先度フィールド送信ステップと、
前記通信バスの状態を検出する通信バス状態検出ステップと、
該通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定ステップと、
該バスアービトレーション判定ステップにより前記通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御ステップと
を有する、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関する。
【背景技術】
【０００２】
車両には、１又は複数の通信システムが搭載されている。車両の主にボデー系に使用される車載ＬＡＮの通信プロトコルとして、ローカルインターコネクトネットワーク（ＬＩＮ：  Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）が知られている。
【０００３】
ＬＩＮには、マスターとなる通信ノードと、スレーブとなる通信ノードが含まれる。マスターとなる通信ノードは、ネットワークの通信タイミング等を制御する。ＬＩＮでは、１つの通信ノードがマスターとなる。
【０００４】
ＬＩＮに関して、マスタースレーブ方式を維持しながら、複数の通信ノードをマスターの候補とできる技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２８７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
既存のＬＩＮクラスタに、新たに自発的に通信を行う通信ノードを追加できない。新たに通信ノードを追加するためには、該追加される通信ノードを制御するための通信スケジュールを設計したり、既存のＬＩＮクラスタに含まれる通信ノードを制御するための通信スケジュールを再設計したりする必要がある。
【０００７】
また、動作が保証されている独立したＬＩＮクラスタが複数ある場合に、これらのＬＩＮクラスタを１つのＬＩＮクラスタとして結合できない。
【０００８】
また、通信制御における通信ノード間の主従関係と、実際に通信制御を行う際の主従関係とを一致させようとする場合に、設計に制約がでる。
【０００９】
ＬＩＮは、マスタースレーブ方式を採用しているため、複数のマスターノードを１つのネットワークに配置できない。
【００１０】
仮に、１つのネットワークに、複数のマスターノードを配置した場合について説明する。
【００１１】
図１は、１つのＬＩＮに複数のマスターノードを配置した場合に、各マスターノードにより独立してスケジューリングが実行された場合の一例を示す。図１には、１つのＬＩＮに、Ｎ（Ｎは、Ｎ＞１の整数）個のマスターノードが配置される場合について示される。Ｎ個のマスターノードは、同一の通信バスに接続される。また、Ｎ個のマスターノードは独立に動作する。
【００１２】
マスターノード１により、通信バス上に、メッセージ１（Ｍ１）を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４により表される。マスターノード２により、通信バス上に、メッセージ２（Ｍ２）を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４により表される。マスターノードＮにより、通信バス上に、メッセージＮ（ＭＮ）を送信するためのスケジューリングが行われる。該メッセージは複数のフレームを含み、各フレームはＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４により表される。
【００１３】
マスターノード２によるスケジューリングによりメッセージ２のＩＤ１が送信される時間は、マスターノード１によるスケジューリングにより、通信バス上に、メッセージ１のＩＤ１が送信されている。通信バス上に、メッセージ１のＩＤ１が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード２によるスケジューリングに従って、メッセージ２のＩＤ１が送信された場合、メッセージ２のＩＤ１は、メッセージ１のＩＤ１と衝突する。
【００１４】
また、マスターノード２によるスケジューリングにより、メッセージ２のＩＤ２が送信される時間は、マスターノード１によるスケジューリングにより、通信バス上に、メッセージ１のＩＤ３が送信されている。通信バス上に、メッセージ１のＩＤ３が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード２によるスケジューリングに従って、メッセージ２のＩＤ２が送信された場合、メッセージ２のＩＤ２は、メッセージ１のＩＤ３と衝突する。
【００１５】
また、マスターノード２によるスケジューリングにより、メッセージ２のＩＤ３が送信される時間は、メッセージが送信される時間としてスケジューリングされていない。通信バス上に、メッセージが送信されていないため、マスターノード２によるスケジューリングに従って、メッセージ２のＩＤ３が送信される。
【００１６】
また、マスターノード２によるスケジューリングにより、メッセージ２のＩＤ４が送信される時間は、マスターノードＮによるスケジューリングにより、通信バス上に、メッセージＮのＩＤ４が送信されている。通信バス上に、メッセージＮのＩＤ４が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノード２によるスケジューリングに従って、メッセージ２のＩＤ４が送信された場合、メッセージ２のＩＤ４は、メッセージＮのＩＤ４と衝突する。
【００１７】
また、マスターノードＮによるスケジューリングにより、メッセージＮのＩＤ１が送信される時間は、マスターノード１によるスケジューリングにより、通信バス上に、メッセージ１のＩＤ２が送信されている。通信バス上に、メッセージ１のＩＤ２が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードＮによるスケジューリングに従って、メッセージＮのＩＤ１が送信された場合、メッセージＮのＩＤ１は、メッセージ１のＩＤ２と衝突する。
【００１８】
また、マスターノードＮによるスケジューリングにより、メッセージＮのＩＤ２が送信される時間は、マスターノード１によるスケジューリングにより、通信バス上に、メッセージ１のＩＤ３が送信されている。通信バス上に、メッセージ１のＩＤ３が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードＮによるスケジューリングに従って、メッセージＮのＩＤ２が送信された場合、メッセージＮのＩＤ２は、メッセージ１のＩＤ３と衝突する。
【００１９】
また、マスターノードＮによるスケジューリングにより、メッセージＮのＩＤ３が送信される時間は、マスターノード２によるスケジューリングにより、通信バス上に、メッセージ２のＩＤ３が送信されている。通信バス上に、メッセージ２のＩＤ３が送信されているため、通信バス上で、複数のメッセージが重複してスケジューリングされている。この状態で、マスターノードＮによるスケジューリングに従って、メッセージＮのＩＤ３が送信された場合、メッセージＮのＩＤ３は、メッセージ２のＩＤ３と衝突する。
【００２０】
また、マスターノードＮによるスケジューリングにより、メッセージＮのＩＤ４が送信される時間は、メッセージが送信される時間としてスケジューリングされていない。通信バス上に、メッセージが送信されていないため、マスターノードＮによるスケジューリングに従って、メッセージＮのＩＤ４が送信される。
【００２１】
以上のように、マスタースレーブ方式が採用されている通信システムに、複数のマスターノードを配置した場合には、メッセージの衝突が生じることがある。
【００２２】
本発明は、上述の点に鑑みてなされたものであり、マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させることを目的とする。
【課題を解決するための手段】
【００２３】
開示の一実施例の通信ノードは、
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードであって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する。
【００２４】
開示の一実施例の通信システムは、
スレーブノードと、該スレーブノードと通信バスを介して接続された通信ノードとを有する通信システムであって、
通信ノードは、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定部と、
該優先度フィールド設定部により設定されるべき優先度フィールドを送信する優先度フィールド送信部と、
前記通信バスの状態を検出する通信バス状態検出部と、
該通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定部と、
該バスアービトレーション判定部により前記通信バス状態検出部により検出されるべき通信バスの状態と、前記優先度フィールド送信部により優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御部と
を有する。
【００２５】
開示の一実施例の通信方法は、
通信バスを介して接続されたスレーブノードとの間で、通信を行う通信ノードにおける通信方法であって、
スレーブノードとの間で送受信されるべきメッセージフィールドに、該メッセージフィールドの送受信に関する優先度を含む優先度フィールドを設定する優先度フィールド設定ステップと、
該優先度フィールド設定ステップにより設定されるべき優先度フィールドを送信する優先度フィールド送信ステップと、
前記通信バスの状態を検出する通信バス状態検出ステップと、
該通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが同じかどうかを判定するバスアービトレーション判定ステップと、
該バスアービトレーション判定ステップにより前記通信バス状態検出ステップにより検出されるべき通信バスの状態と、前記優先度フィールド送信ステップにより優先度フィールドが送信されることにより検出されるべき通信バスの状態とが異なると判定された場合に、メッセージフィールドの送信を停止するメッセージフレーム送信制御ステップと
を有する。
【発明の効果】
【００２６】
開示の実施例によれば、マルチマスタ方式の通信システムとして、マスタースレーブ方式の通信システムを動作させることができる。
【図面の簡単な説明】
【００２７】
【図１】同一バス上に接続された複数のマスターノードによるスケジューリングの一例を示す図である。
【図２】通信システムの一実施例を示す図である。
【図３】フレームフォーマットの一例を示す図である。
【図４】マスターノードの一実施例を示す図である。
【図５】バスアービトレーションの一実施例を示す図である。
【図６】マスターノードの一実施例を示す機能ブロック図である。
【図７】アービトレーション処理の一実施例を示す図である。
【図８】マスターノードの動作の一実施例を示すフローチャートである。
【図９】マスターノード間でプライオリティフィールドを同期させる方法を示す図である。
【発明を実施するための形態】
【００２８】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００２９】
＜実施例＞
＜通信システム＞
図２は、通信システムの一実施例を示す。
【００３０】
本通信システムは、複数の通信ノードを有する。本通信システムは、単線ネットワークであってもよい。該複数の通信ノードによりクラスタが構成されてもよい。
【００３１】
複数の通信ノードには、マスターノード１００ｌ（ｌは、ｌ＞１の整数）と、スレーブノード２００ｍ（ｍは、ｍ＞１の整数）とが含まれる。
【００３２】
マスターノード１００１−マスターノード１００ｌは、メッセージを送信すべきタイミングを制御する。具体的には、マスターノード１００１−マスターノード１００ｌは、メッセージに含まれるヘッダーを送信すべきタイミングをスケジューリングする。該スケジューリングの際に、送信すべきメッセージのＩＤ、送信の順番、送信する時間間隔などが設定される。
【００３３】
マスターノード１００１−マスターノード１００ｌ、スレーブノード２００１−スレーブノード２００ｍは、通信バス３００を介して有線接続される。マスターノード１００１−マスターノード１００ｌと、スレーブノード２００１−スレーブノード２００ｍとの間は、通信バス３００を介して所定の通信プロトコルに従って通信を行う。具体的には、ＬＩＮに従って通信を行う。
【００３４】
通信バス３００を流れる信号は、２つの論理レベルのどちらかの状態を有する。該２つの論理レベルの状態は、「ドミナント（dominant）」と、「リセッシブ（recessive）」と呼ばれる。ドミナントは、グラウンド電位に近い、論理レベル０の状態である。リセッシブは、バッテリの＋（プラス）端子の電位に近い、論理レベル１の状態である。
【００３５】
マスターノード１００１−マスターノード１００ｌは、所定のフレームフォーマットに従ってメッセージを送信する。
【００３６】
＜フレームフォーマット＞
図３は、マスターノード１００１−マスターノード１００ｌと、スレーブノード２００１−スレーブノード２００ｍとの間で送受信されるフレームフォーマットの一例を示す。
【００３７】
フレームは、ヘッダーと、レスポンスを含む。ヘッダーはマスターノードから送信され、レスポンスはスレーブノードから送信される。
【００３８】
ヘッダーには、ブレークフィールド（Ｂｒｅａｋ  ｆｉｅｌｄ）と、シンクフィールド（Ｓｙｎｃ  ｆｉｅｌｄ）と、プライオリティフィールド（Ｐｒｉｏｒｉｔｙ  ｆｉｅｌｄ）と、プロテクテッドアイデンティファイアーフィールド（Ｐｒｏｔｅｃｔｅｄ  ｉｄｅｎｔｉｆｉｅｒ  ｆｉｅｌｄ）とが含まれる。
【００３９】
ブレークフィールドは、クラスタの全スレーブノードに、フレームの開始を通知するためのフィールドである。ブレークフィールドのドミナント継続時間は「ｔＢｒｅａｋ」により表される。例えば、該ブレークフィールドのドミナント継続時間は、１３ビット長以上である。該ブレークフィールドのドミナント継続時間を「ブレークフィールド長」という。本実施例では、各マスターノードのブレークフィールドのドミナント継続時間は、固定長であり、略同一である。
【００４０】
シンクフィールドは、クラスタに含まれる通信ノード間のクロック誤差の補正に使用される。
【００４１】
プライオリティフィールドは、複数のマスターノード間でフレームの送出タイミングが一致した場合に、該複数のマスターノード間でバスアービトレーションを実施する際に利用される。複数のマスターノード間でフレームの送出タイミングが一致した場合には、送信データが衝突する。このため、該プライオリティフィールドを利用して、当該マスターノードがバスを占有することができるかどうかを判定する。
【００４２】
プロテクテッドアイデンティファイアーフィールドは、フレームの識別番号を表す６ビット（０〜５ビット）のフレームＩＤと、２ビット（６、７ビット）のパリティの合計８ビットで構成される。
【００４３】
レスポンスには、データフィールド（Ｄａｔａ  Ｆｉｅｌｄ）と、チェックサム（Ｃｈｅｃｋｓｕｍ）が含まれる。データフィールドと、チェックサムは、ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ）フレームで送信される。データフィールドは、１個であってもよいし、複数であってもよい。各データフィールドには、最大８バイトのデータを格納できる。チェックサムは、データを正確に受信できたかどうかを判断する際に使用される。具体的には、チェックサムには、各データの値の総和を反転した値が格納される。
【００４４】
シンクフィールド長と、プライオリティフィールド長と、プロテクテッドアイデンティファイアーフィールド長と、データフィールド長の合計は「ｔＦｒａｍｅ_Ｓｌｏｔ」により表される。具体的には、「ｔＦｒａｍｅ_Ｓｌｏｔ」は、ブレークフィールドの立ち上がりエッジ（ｒｉｓｉｎｇ  ｅｄｇｅ）を基点とする。以下、「ｔＦｒａｍｅ_Ｓｌｏｔ」により表されるシンクフィールド長と、プライオリティフィールド長と、プロテクテッドアイデンティファイアーフィールド長と、データフィールド長の合計を「フレームスロット長」という。
【００４５】
また、隣接するフレーム間には、フレーム間間隔（Ｉｎｔｅｒ−ｆｒａｍｅ  ｓｐａｃｅ）（図示なし）が設定される。
【００４６】
また、図３に示される例では、ジッター（ｊｉｔｔｅｒ）が示される。ジッターは、時間軸方向での信号波形の揺らぎを表す。該ジッターとして設定された時間を「ジッター時間」という。
【００４７】
＜マスターノード＞
図４は、マスターノードを示す。マスターノード１００１−マスターノード１００ｌは略同一の構成であるため、代表してマスターノード１００ｌについて説明する。
【００４８】
マスターノード１００ｌは、マイクロコントローラユニット（ＭＣＵ：  Ｍｉｃｒｏ−Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１０２ｌと、トランシーバ１０６ｌとを有する。
【００４９】
ＭＣＵ１０２ｌには、１又は複数のマイコンが含まれる。マイコンの代わりにＣＰＵが含まれてもよいし、ＭＣＵとＣＰＵとが混在していてもよい。さらに、ＭＣＵ１０２ｌには、通信装置１０４ｌが含まれる。通信装置１０４ｌはトランシーバ１０６ｌとの間で、シリアル通信を行う。具体的には、該通信装置１０４ｌは、ＵＡＲＴであってもよい。
【００５０】
トランシーバ１０６ｌは、ＭＣＵ１０２ｌ、通信バス３００と接続される。トランシーバ１０６ｌは、ＭＣＵ１０２ｌから入力されたデータを通信バス３００に送信し、通信バス３００からのデータをＭＣＵ１０２ｌに入力する。
【００５１】
＜マスターノードの機能＞
マスターノード１００ｌは、他のマスターノードがメッセージ送出中である場合には、次のフレームまで待機する。具体的には、他のマスターノードにより送信されるべきメッセージに含まれるブレークフィールドの立ち上がりエッジを基点とする、フレームスロット長の経過を基点として、ジッター時間を計測するためのタイマー（以下、「ジッター時間計測タイマー」という）を起動する。該ジッター時間は、固定値として、予め設定されてもよい。マスターノード１００ｌは、ジッター時間計測タイマーが満了することによりジッター時間が経過すると、ブレークフィールドを開始するとともに、ブレークフィールド長を計測するためのタイマー（以下、「ブレークフィールド長計測タイマー」という）を起動する。
【００５２】
マスターノード１００ｌは、ブレークフィールド長計測タイマーが満了することによりブレークフィールド長が経過すると、シンクフィールドの送出を開始するとともに、シンクフィールド長を計測するためのタイマー（以下、「シンクフィールド長計測タイマー」という）を起動する。
【００５３】
マスターノード１００ｌは、シンクフィールド長計測タイマーが満了することによりシンクフィールド長が経過すると、プライオリティフィールドを送信する。
【００５４】
当該マスターノード１００ｌの他にメッセージを送信しようとするマスターノードがいる場合には、当該マスターノード１００ｌによりプライオリティフィールドが送出されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが異なることが検出された場合には、プライオリティフィールドの送出を停止する。当該マスターノード１００ｌは、次のフレームまで待機する。
【００５５】
一方、当該マスターノード１００ｌによりプライオリティフィールドが送出されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが異なることが検出されない場合には、当該マスターノード１００１は、通信バス３００を占有できる。通信バス３００を占有できる場合、当該マスターノード１００１は、プライオリティフィールドに続いて、プロテクテッドアイデンティファイアーフィールドを送信する。
【００５６】
図５は、バスアービトレーションの一実施例を示す。
【００５７】
図５に示される例では、２個のマスターノード（マスターノード１００１、及び１００２）におけるバスアービトレーションの例を示す。３個以上のマスターノードの場合においても同様である。
【００５８】
図５に示される例では、マスターノード１００１、マスターノード１００２に、送信すべきデータが発生する。他のマスターノードによりメッセージが送出中である状態である場合に、送信すべきデータが発生してもよい。
【００５９】
マスターノード１００１、マスターノード１００２は、他のマスターノードによりデータが送出されている場合には、次のフレームまで待機する。
【００６０】
マスターノード１００１、マスターノード１００２は、他のマスターノード１００１のブレークフィールドの立ち上がりを基点としたフレームスロット長が経過するまで待機する。マスターノード１００１、マスターノード１００２は、ブレークフィールドの立ち上がりエッジを基点とする、フレームスロット長の経過を基点として、ジッター時間計測タイマーを起動する。
【００６１】
マスターノード１００ｌ、マスターノード１００２は、ジッター時間計測タイマーが満了することによりジッター時間が経過したことを検出すると、ブレークフィールドの送信を開始するとともに、ブレークフィールド長計測タイマーを起動する（１）。
【００６２】
マスターノード１００ｌ、マスターノード１００２は、ブレークフィールド長計測タイマーが満了することによりブレークフィールド長が経過したことを検出すると、シンクフィールドの送信を開始するとともに、シンクフィールド長計測タイマーを起動する（２）。
【００６３】
マスターノード１００ｌ、マスターノード１００２は、シンクフィールド長計測タイマーが満了することによりシンクフィールド長が経過したことを検出すると、プライオリティフィールドの送信を開始する（３）。
【００６４】
図５に示される例では、マスターノード１００１により通信バス３００が占有される場合について示される。つまり、マスターノード１００ｌは、当該マスターノード１００ｌよりプライオリティフィールドが送出されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが一致する。
【００６５】
一方、マスターノード１００２は、プライオリティフィールドの送信の途中で、当該マスターノード１００２よりプライオリティフィールドが送出されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが異なることを検出する。プライオリティフィールドが送出されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが異なることを検出した場合、プライオリティフィールドの送信を停止する。
【００６６】
通信バス３００を占有したマスターノード１００１は、プライオリティフィールドに続いて、プロテクテッドアイデンティファイアーフィールドを送信する。該プロテクテッドアイデンティファイアーフィールドを送信したマスターノード１００ｌは、スレーブノードからのデータを受信する（５）。
【００６７】
図６は、マスターノード１００ｌを示す機能ブロック図である。図６には、本実施例に関する部分について主に説明される。従って、スレーブノードとしての機能や、診断機能等については省略される。
【００６８】
マスターノード１００ｌは、マスター機能部１１０を有する。マスター機能部１１０は、プライオリティフィールド設定部１１２と、プライオリティフィールド送信制御部１１４と、バスアービトレーション判定部１１６と、フレーム送信制御部１１８とを有する。ＭＣＵ１０２ｌが、所定のプログラムに従って機能することにより、マスター機能部１１０として機能するようにしてもよい。該所定のプログラムは、ＭＣＵ１０２ｌに格納されていてもよい。
【００６９】
プライオリティフィールド設定部１１２は、送信すべきメッセージが発生した場合に機能する。プライオリティフィールド設定部１１２は、送信すべきメッセージに応じてプライオリティフィールドに含まれるべき情報を設定する。具体的には、メッセージの送受信に関する優先度に応じて、異なる値が設定されてもよい。メッセージと、設定すべき優先度とが対応付けられたテーブルが用意されてもよい。該テーブルは、マスターノード毎に異なってもよい。送信すべきメッセージが、異なることがあるためである。プライオリティフィールド設定部１１２は、プライオリティフィールド送信制御部１１４に、設定したプライオリティフィールドに含まれるべき情報を入力する。
【００７０】
プライオリティフィールド送信制御部１１４は、プライオリティフィールド送信制御部１１４、トランシーバ１０６ｌと接続される。プライオリティフィールド送信制御部１１４は、プライオリティフィールド設定部１１２により入力されるべきプライオリティフィールドに含まれるべき情報に基づいて、プライオリティフィールドの送信制御を行う。具体的には、プライオリティフィールド送信制御部１１４は、トランシーバ１０６ｌに、プライオリティフィールドを送出する。プライオリティフィールド送信制御部１１４は、バスアービトレーション判定部１１６に、トランシーバ１０６ｌに送出すべきプライオリティフィールドを表す情報を入力する。プライオリティフィールド送信制御部１１４は、プライオリティフィールドの送出が終了した場合、バスアービトレーション判定部１１６に、プライオリティフィールドの送信が終了したことを通知する。
【００７１】
バスアービトレーション判定部１１６は、プライオリティフィールド送信制御部１１４、トランシーバ１０６ｌと接続される。バスアービトレーション判定部１１６は、プライオリティフィールド送信制御部１１４により入力されるべきプライオリティフィールドに基づいて、該プライオリティフィールドが送出されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが一致するかどうかを判定する。該通信バス３００の状態には、リセッシブ状態と、ドミナント状態とが含まれる。
【００７２】
一致しないと判定される場合、バスアービトレーション判定部１１６は、当該マスターノード１００ｌは通信バス３００を占有できないと判定する。通信バス３００を占有できないと判定した場合、バスアービトレーション判定部１１６は、プライオリティフィールド送信制御部１１４に、一致しないことを通知する。プライオリティフィールド送信制御部１１４は、バスアービトレーション判定部１１６により一致しないことが通知された場合、プライオリティフィールドの送信を停止する。
【００７３】
一方、プライオリティフィールド送信制御部１１４によりプライオリティフィールドの送信が終了したことが通知されるまで、プライオリティフィールド送信制御部１１４により入力されるべきプライオリティフィールドが送信されることにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが一致する場合、バスアービトレーション判定部１１６は、当該マスターノード１００ｌは通信バス３００を占有できると判定する。当該マスターノード１００ｌが通信バス３００を占有できると判定した場合、バスアービトレーション判定部１１６は、フレーム送信制御部１１８に、通信バス３００を占有できることを通知する。
【００７４】
＜バスアービトレーション処理＞
図７は、バスアービトレーション判定部１１６に実行されるべきバスアービトレーション判定処理を表す。
【００７５】
図７に示される例では、プライオリティフィールドが８ビットで表される。プライオリティフィールドは７ビット以下で表されてもよいし、９ビット以上で表されてもよい。
【００７６】
マスターノード１００１は、プライオリティフィールドに含まれる情報として、「０１０１０１００」を、「０１０１０１００」の順に送信する。また、マスターノード１００２は、プライオリティフィールドに含まれる情報として、「０１０１１１１１」を、「０１０１１１１１」の順に送信する。
【００７７】
当該マスターノードがマスターノード１００１である場合、アービトレーション判定部１１６は、送出されたプライオリティフィールドにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが一致することを検出できる。
【００７８】
当該マスターノードがマスターノード１００２である場合、アービトレーション判定部１１６は、送出されたプライオリティフィールドにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが４ビットまでは一致することを検出できる。しかし、（Ａ）により示されるように、５ビット目については、送出されたビットが「１」であるのに対し、実際の通信バス３００の状態は「０」である。一方、マスターノード１００１からは「０」が送出されている。
【００７９】
複数のマスターノードから異なる情報が送出された場合、「０」が通信ノードに反映される。つまり、通信バス３００において、ドミナントが優先される。従って、プライオリティフィールドに含まれる情報として送受信の優先度が設定される場合、優先度が高くなるに従って「０」が連続した値となる。このため、優先度が高くなるに従って、送出したプライオリティフィールドにより想定される通信バス３００の状態と、実際の通信バス３００の状態とが一致し続けることになる。このため、優先度が高くなるに従って通信バス３００を占有できる。つまり、長い間「０」を送信し続けたマスターノードが通信バスを占有できる。
【００８０】
フレーム送信制御部１１８は、バスアービトレーション判定部１１６、トランシーバ１０６ｌと接続される。フレーム送信制御部１１８は、バスアービトレーション判定部１１６から通信バス３００を占有できることが通知された場合、プライオリティフィールドに続く、プロテクテッドアイデンティファイアーフィールドを送信する制御を行う。
【００８１】
＜マスターノードの動作＞
図８は、マスターノード１００ｌの動作の一実施例を示す。図８には、マスターノード１００ｌに送信すべきメッセージが発生した場合の例が示される。
【００８２】
マスターノード１００ｌは、ジッター時間を計測する（ステップＳ８０２）。マスターノード１００ｌは、フレームスロットスロット長の時間が経過したことを契機として、ジッター時間計測タイマーを起動する。
【００８３】
マスターノード１００ｌは、ジッター時間計測タイマーが満了したかどうかを判定する（ステップＳ８０４）。
【００８４】
ジッター時間計測タイマーが満了していないと判定された場合（ステップＳ８０４：ＮＯ）、ステップＳ８０４に戻る。ジッター時間計測タイマーが満了するまで継続される。
【００８５】
ジッター時間計測タイマーが満了していると判定された場合（ステップＳ８０４：ＹＥＳ）、マスターノード１００ｌは、ブレークフィールドを送信する（ステップＳ８０６）。マスターノード１００ｌは、ブレークフィールド長計測タイマーを起動し、ブレークフィールド長を計測する。
【００８６】
マスターノード１００ｌは、ブレークフィールド長計測タイマーが満了したかどうかを判定する（ステップＳ８０８）。
【００８７】
ブレークフィールド長計測タイマーが満了したと判定されない場合（ステップＳ８０８：ＮＯ）、マスターノード１００ｌは、ステップＳ８０８に戻る。ブレークフィールド長計測タイマーが満了するまで継続される。
【００８８】
ブレークフィールド長計測タイマーが満了していると判定された場合（ステップＳ８０８：ＹＥＳ）、マスターノード１００ｌは、シンクフィールドを送信する（ステップＳ８１０）。マスターノード１００ｌは、シンクフィールド長計測タイマーを起動し、シンクフィールド長を計測する。
【００８９】
マスターノード１００ｌは、シンクフィールド長計測タイマーが満了したかどうかを判定する（ステップＳ８１２）。
【００９０】
シンクフィールド長計測タイマーが満了したと判定されない場合（ステップＳ８１２：ＮＯ）、マスターノード１００ｌは、ステップＳ８１２に戻る。シンクフィールド長計測タイマーが満了するまで継続される。
【００９１】
シンクフィールド長計測タイマーが満了したと判定された場合（ステップＳ８１２：ＹＥＳ）、マスターノード１００ｌは、プライオリティフィールドを設定する（ステップＳ８１４）。つまり、プライオリティフィールド設定部１１２は、送信すべきメッセージの送受信に関する優先度に従ってプライオリティフィールドを設定する。
【００９２】
マスターノード１００ｌは、プライオリティフィールドを送信する（ステップＳ８１６）。つまり、プライオリティフィールド送信制御部１１４による制御に従って、プライオリティフィールドが送信される。
【００９３】
マスターノード１００ｌは、送信したプライオリティフィールドにより想定されるべき通信バス３００の状態と、実際の通信バス３００の状態とが一致するかどうかを判定する（ステップＳ８１８）。つまり、バスアービトレーション判定部１１６は、送出されたプライオリティフィールドにより想定される通信バス３００の状態と、トランシーバ１０６ｌを介して検出されるべき通信バス３００の状態とが一致するかどうかを判定する。
【００９４】
一致すると判定される場合（ステップＳ８１８：ＹＥＳ）、マスターノード１００ｌは、プライオリティフィールドの送信が終了するかどうかを判定する（ステップＳ８２０）。つまり、バスアービトレーション判定部１１６は、送出されたプライオリティフィールドにより想定される通信バス３００の状態と、トランシーバ１０６を介して検出されるべき通信バス３００の状態とが一致すると判定した場合、プライオリティフィールドの全ビットの送出が行われたかどうかを判定する。
【００９５】
全ビットの送出が行われたと判定されない場合（ステップＳ８２０：ＮＯ）、ステップＳ８１６に戻る。送出されていないビットについて、ステップＳ８１６−ステップＳ８２０の処理が行われる。
【００９６】
全ビットの送出が行われたと判定された場合（ステップＳ８２０：ＹＥＳ）、マスターノード１００ｌは、プロテクティッドアイデンティファイアーフィールドを送信する（ステップＳ８２２）。つまり、フレーム送信制御部１１８は、全ビットについて、送出されたプライオリティフィールドにより想定される通信バス３００の状態と、トランシーバ１０６ｌを介して検出されるべき通信バス３００の状態とが一致すると判定された場合、当該マスターノード１００ｌにより、通信バス３００の占有ができると判定する。通信バス３００の占有ができると判定される場合、フレーム送信制御部１１８はプライオリティフィールドに続いて、プロティティッドアイデンティファイアーフィールドを送信する。
【００９７】
ステップＳ８１８により一致すると判定されない場合（ステップＳ８１８：ＮＯ）、マスターノード１００ｌは、プライオリティフィールドの送信を停止する（ステップＳ８２４）。つまり、バスアービトレーション判定部１１６は、送出されたプライオリティフィールドにより想定される通信バス３００の状態と、トランシーバ１０６ｌを介して検出されるべき通信バス３００の状態とが一致しないと判定した場合、当該マスターノード１００ｌは、通信バスを占有できないと判定する。この場合、プライオリティフィールドの送信を停止し、ステップＳ８０２に戻る。メッセージを送信するためには、次のフレームまで待機する必要があるためである。
【００９８】
本実施例では、マスターノード１００１−１００ｌ間で、プライオリティフィールドが同期しているのが好ましい。送出されたプライオリティフィールドにより想定される通信バス３００の状態と、トランシーバ１０６ｌを介して検出されるべき通信バス３００の状態とが一致するかどうかが判定されるためである。
【００９９】
図９は、マスターノード間でプライオリティフィールドを同期させる方法を表す。
【０１００】
同期を行うために、ブレークフィールドの立ち上がりを基点とし、シンクフィールドまでの時間により表されるブレークフィールドギャップと、シンクフィールドの立ち上がりのエッジを基点とし、プライオリティフィールドまでの時間により表されるシンクフィールドギャップとをマスターノード間で同じ値とする。
【０１０１】
本実施例によれば、同一の通信バスに複数のマスターノードを接続できる。つまり、既存の通信クラスタに新しいマスターノードを追加できる。また、フレーム間のギャップや、ブレークフィールド長をメッセージ毎に変更させる必要がないため、フレーム長を同じにできる。このため、フレーム全体の時間管理を簡略化できる。また、メッセージの送信速度のバラツキを低減できる。
【０１０２】
また、複数のマスターノード間で、衝突を検知して、送信を実施したり、送信を保留したりすることができる。このため、シングルタスクの通信網であっても、複数のノードをマスターノードとして利用できる。つまり、マルチタスクを実施できる。
【０１０３】
具体的には、送信すべきフレームにマスターノード間で通信バスを占有する際に使用するフィールドを定義することにより、バスアービトレーション機能を実現することができる。アービトレーションを実現できるため、マスタースレーブ方式の通信システムをマルチマスタ方式の通信システムとして動作させることができる。
【０１０４】
以上の場合、マスターノードのハードウェアの変更は必要ない。このため、コストを増加させずに、通信スケジュールの設計の自由度を向上させることができる。
【０１０５】
以上、本発明は特定の実施例及び変形例を参照しながら説明されてきたが、各実施例及び変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
【符号の説明】
【０１０６】
１００ｌ（ｌは、ｌ＞１の整数）  マスターノード
１０２ｌ（ｌは、ｌ＞１の整数）  ＭＣＵ
１０４ｌ（ｌは、ｌ＞１の整数）  通信装置
１０６ｌ（ｌは、ｌ＞１の整数）  トランシーバ
１１２  プライオリティフィールド設定部
１１４  プライオリティフィールド送信制御部
１１６  バスアービトレーション判定部
１１８  フレーム送信制御部
２００ｍ（ｍは、ｌ＞１の整数）  スレーブノード
３００  通信バス
【図１】
2013012915.tif 000003
【図２】
2013012915.tif 000004
【図３】
2013012915.tif 000005
【図４】
2013012915.tif 000006
【図５】
2013012915.tif 000007
【図６】
2013012915.tif 000008
【図７】
2013012915.tif 000009
【図８】
2013012915.tif 000010
【図９】
2013012915.tif 000011