(57)【要約】【課題】  あらかじめ設定されたアイソクロナスサイクルの整数倍の制御周期において、ＩＥＥＥ１３９４ネットワーク上に接続された１局以上のマスタと１局以上のスレーブが、制御データの授受を行うことが可能な、マスタ／スレーブ同期通信システムを提供することを目的とする。【解決手段】  制御周期データ格納部１１１と、スレーブ数検出部１２１と、サイクル通信可能スレーブ数算出部１３１と、通信タイミング管理テーブル格納部１４１と、サイクル開始パケット受信処理部１５１と、指令データ送信部１６１と、応答データ受信部１７１と、通信タイミング管理テーブル伝達部１８１と、マスタノードID格納部１９１と、自マスタノードID検出部１９２と、を備える。【選択図】図１
2005328514.tif 000002
【特許請求の範囲】
【請求項１】
サイクル開始パケットを受信するサイクル開始パケット受信処理部と、指令データを送信する指令データ送信部と、応答データを受信する応答データ受信部と、から構成される１局以上のマスタと、
前記指令データを受信する指令データ受信部と、前記応答データを送信する応答データ送信部と、から構成される１局以上のスレーブと、
がＩＥＥＥ１３９４ネットワーク上に接続されたマスタ／スレーブ同期通信システムにおいて、
前記マスタと前記スレーブがデータを授受する周期である制御周期データを格納する制御周期データ格納部と、前記ＩＥＥＥ１３９４ネットワークに接続されている前記スレーブの数を検出するスレーブ数検出部と、一つのアイソクロナスサイクルで通信可能な前記スレーブの数を算出するサイクル通信可能スレーブ数算出部と、前記ＩＥＥＥ１３９４ネットワークに接続されている他のマスタを検出するマスタ検出部と、前記他のマスタのノードＩＤを格納するマスタノードＩＤ格納部と、前記他のマスタのノードＩＤを検出する自マスタノードＩＤ検出部と、前記他のマスタが持つ通信タイミング管理テーブルを読み出す通信タイミング管理テーブル取得部と、前記スレーブ数検出部が検出した前記スレーブの数と前記制御周期データと前記通信タイミング管理テーブル取得部が取得した前記他のマスタの通信タイミング管理テーブルを使用して作成された前記各スレーブの転送タイミングを設定した通信タイミング管理テーブルを格納する通信タイミング管理テーブル格納部と、前記ＩＥＥＥ１３９４ネットワークに接続された前記他のマスタに対して前記通信タイミング管理テーブルを伝達する通信タイミング管理テーブル伝達部と、
を備えたマスタを有することを特徴とするマスタ／スレーブ同期通信システム。
【請求項２】
前記タイミング管理テーブルが、ユニット空間内のレジスタにマッピングされ、前記通信タイミング管理テーブル伝達部がＩＥＥＥ１３９４規格で規定されているアシンクロナス読み出し要求に対して応答することを特徴とする請求項１に記載のマスタ／スレーブ同期通信システム。
【請求項３】
前記タイミング管理テーブルが、
前記ＩＥＥＥ１３９４ネットワーク上に接続された他マスタを前記マスタ検出部が検出し、自マスタのノードＩＤより大きなノードＩＤを持つ前記他マスタの通信タイミング管理テーブルの作成完了を待ち、自マスタのノードＩＤより大きなノードＩＤを持つ前記他マスタの通信タイミング管理テーブルがすべて作成された後に自マスタの通信タイミング管理テーブルを作成する、
という手順で作成されることを特徴とする請求項１に記載のマスタ／スレーブ同期通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１局以上のマスタと１局以上のスレーブがＩＥＥＥ１３９４ネットワーク上に接続されたマスタ／スレーブ同期通信システムに関する。
【背景技術】
【０００２】
第１の従来例として、非特許文献１に記載されている方法を述べる。従来、ＩＥＥＥ１３９４規格で規定されているアイソクロナス転送を使用したマスタ／スレーブ同期通信システムにおいて、アイソクロナス転送を行う機器は、アイソクロナス転送を始める前にアイソクロナスリソースマネージャから帯域幅とアイソクロナスチャンネルを獲得する。アイソクロナス転送を行う機器がサイクル開始パケットを受信すると、バスの使用権を獲得し、バスの使用権を獲得した機器だけがデータを送信することができる。ＩＥＥＥ１３９４ネットワークに接続された各通信機器は、アイソクロナス転送期間にバスの使用権を順に獲得してデータを送信するようになっている。
【０００３】
ＩＥＥＥ１３９４規格で規定されているアイソクロナス転送を行う機器を、このシステムに新たに追加する場合について、図８（ａ）で説明する。ここでは、ｄａｔａ Ａ９２、ｄａｔａ Ｂ９３、ｄａｔａ Ｃ９４をアイソクロナス転送している場合を考える。各データにはＩＥＥＥ１３９４規格で規定されるヘッダ９１が付加され、ＩＥＥＥ１３９４ネットワーク上に送出される。この場合、新たにｄａｔａ Ｄ９５を転送しようとすると、アイソクロナス転送期間の残帯域９７がｄａｔａ Ｄ９５を転送するために必要なｄａｔａ Ｄの帯域９６より小さいため、ｄａｔａ Ｄ９５を転送することができない。
【０００４】
第２の従来例として、ＩＥＥＥ１３９４規格で規定されているアイソクロナス転送を行う機器をこのシステムに新たに追加するときの方法の一つとして、特許文献１が開示されている。ここでは、制御周期が可変な機器を使用する場合において、いくつかの制御周期のデータをまとめて転送し、各機器が使用する帯域幅をできるだけ抑えることによって、ＩＥＥＥ１３９４ネットワークに新たな機器を追加しやすいようになっている。
【０００５】
図８（ｂ）に示すように、一つ目のアイソクロナスサイクルに三つ分のｄａｔａ Ａ９２をまとめて一つのアイソクロナスパケットとして転送し、二つ目のアイソクロナスサイクルに三つ分のｄａｔａ Ｂ９３をまとめて一つのアイソクロナスパケットとして転送し、三つ目のアイソクロナスサイクルに三つ分のｄａｔａ Ｃ９４をまとめてアイソクロナスパケットとして転送することによって、ヘッダ９１が使用していた帯域幅を空け、空いた帯域幅を利用してｄａｔａ Ｄ９５を転送するようになっている。
【特許文献１】特開２００３−２２９８５７号公報の（図１）
【非特許文献１】IEEE Std 1394-1995, IEEE Standard for a High Performance Serial Bus
【発明の開示】
【発明が解決しようとする課題】
【０００６】
第１の従来例によると、ＩＥＥＥ１３９４規格で規定されているアイソクロナス転送を使用するだけでは、一つのアイソクロナスサイクルの間に転送できる帯域幅が決まっている。このため、接続機器数が多くなると、新たな機器をＩＥＥＥ１３９４ネットワークに追加する際に帯域幅が不足し、新たに追加する機器が必要とする帯域幅を確保することができなくなる。このような場合、一つの機器に対する帯域幅を減少させるか、もしくは、新たな機器の追加をあきらめるか、しかなかった。
【０００７】
また、ＩＥＥＥ１３９４通信システムでは、各機器がアイソクロナスリソースマネージャから獲得した帯域幅は全てのアイソクロナスサイクルに対して確保される。つまり、制御周期がアイソクロナスサイクルより長い機器であっても、アイソクロナスリソースマネージャからある帯域幅を獲得すると、その獲得された帯域幅は全てのアイソクロナスサイクルで確保されてしまう。このため、帯域幅は確保されているが制御データを転送する必要のないアイソクロナスサイクルが存在することになる。従来手法では、このような制御データを転送する必要のないアイソクロナスサイクルを有効に活用することができなかった。
【０００８】
第２の従来例においては、追加する機器が必要とする帯域幅よりも、アイソクロナスサイクルの帯域幅の残りが小さい場合に対応することを可能としている。しかし、この方法
では、接続機器のデータ授受が一巡するのに必要なアイソクロナスサイクル数が、サイクル可変なノード数となるため、接続されるサイクル可変なノードの数に依存して制御周期が変わることになる。このため、あらかじめ設定された制御周期で、マスタと任意数のスレーブが制御データの授受を行うマスタ／スレーブ同期通信システムを実現することは不可能である。
【０００９】
本発明は、このような問題点に鑑みてなされたものであり、
ＩＥＥＥ１３９４ネットワーク上に接続された１局以上のマスタと１局以上のスレーブが、アイソクロナス転送の帯域幅を有効に活用し、あらかじめ設定されたアイソクロナスサイクルの整数倍の制御周期で制御データの授受を行うことが可能な、マスタ／スレーブ同期通信システム
を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記問題を解決するため、本発明は、次のように構成したのである。
【００１１】
請求項１に記載の発明は、
サイクル開始パケットを受信するサイクル開始パケット受信処理部と、指令データを送信する指令データ送信部と、応答データを受信する応答データ受信部と、から構成される１局以上のマスタと、
前記指令データを受信する指令データ受信部と、前記応答データを送信する応答データ送信部と、から構成される１局以上のスレーブと、
がＩＥＥＥ１３９４ネットワーク上に接続されたマスタ／スレーブ同期通信システムにおいて、
前記マスタと前記スレーブがデータを授受する周期である制御周期データを格納する制御周期データ格納部と、前記ＩＥＥＥ１３９４ネットワークに接続されている前記スレーブの数を検出するスレーブ数検出部と、一つのアイソクロナスサイクルで通信可能な前記スレーブの数を算出するサイクル通信可能スレーブ数算出部と、前記ＩＥＥＥ１３９４ネットワークに接続されている他のマスタを検出するマスタ検出部と、前記他のマスタのノードＩＤを格納するマスタノードＩＤ格納部と、前記マスタのノードＩＤを検出する自マスタノードＩＤ検出部と、前記他のマスタが持つ通信タイミング管理テーブルを読み出す通信タイミング管理テーブル取得部と、前記スレーブ数検出部が検出した前記スレーブの数と前記制御周期データと前記通信タイミング管理テーブル取得部が取得した前記他のマスタの通信タイミング管理テーブルを使用して作成された前記各スレーブの転送タイミングを設定した通信タイミング管理テーブルを格納する通信タイミング管理テーブル格納部と、前記ＩＥＥＥ１３９４ネットワークに接続された前記他のマスタに対して前記通信タイミング管理テーブルを伝達する通信タイミング管理テーブル伝達部と、
を備えたマスタを有するマスタ／スレーブ同期通信システムを構成することを特徴とするものである。
【００１２】
また、請求項２に記載の発明は、
前記タイミング管理テーブルが、ユニット空間内のレジスタにマッピングされ、前記通信タイミング管理テーブル伝達部がＩＥＥＥ１３９４規格で規定されているアシンクロナス読み出し要求に対して応答するマスタを有する請求項１に記載のマスタ／スレーブ同期通信システムを特徴とするものである。
【００１３】
また、請求項３に記載の発明は、
前記タイミング管理テーブルが、前記ＩＥＥＥ１３９４ネットワーク上に接続された他マスタを前記マスタ検出部が検出し、自マスタのノードＩＤより大きなノードＩＤを持つ前記他マスタの通信タイミング管理テーブルの作成完了を待ち、自マスタのノードＩＤより大きなノードＩＤを持つ前記他マスタの通信タイミング管理テーブルがすべて作成された後に自マスタの通信タイミング管理テーブルを作成する、
という手順で作成されることを特徴とするものである。
【発明の効果】
【００１４】
請求項１に記載の発明によると、
１局以上のマスタと１局以上のスレーブがＩＥＥＥ１３９４ネットワーク上に接続されたマスタ／スレーブ同期通信システムにおいて、アイソクロナス転送の帯域幅を有効に活用し、アイソクロナスサイクルの整数倍の制御周期内に制御データを授受することができる。
【００１５】
請求項２に記載の発明によると、
特別な手段を必要とせずにＩＥＥＥ１３９４で規定されているアシンクロナス転送を使用して、あるマスタ機器から別のマスタ機器が使用している通信タイミング管理テーブルを参照することができる。
【００１６】
請求項３に記載の発明によると、
ユーザはマスタ機器の電源投入の順番や接続の仕方を考慮する必要が無く、接続の状況に応じて各マスタ機器が通信タイミング管理テーブルを自動的に作成することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１８】
図１は、本発明を実施するＩＥＥＥ１３９４ネットワークを使用したマスタ／スレーブ同期通信システムの構成図である。図において１ｍ（ｍ＝１、２、・・・）はマスタ、２ｎ（ｎ＝１、２・・・）はスレーブ、３はＩＥＥＥ１３９４ネットワークである。
マスタ１ｍでは、制御周期データ格納部１１ｍに格納されたアイソクロナスサイクルの整数倍の値が設定される制御周期データと、スレーブ数検出部１２ｍにより検出されたスレーブ数を示す接続スレーブ数格納部１２１ｍに格納された接続スレーブ数と、サイクル通信可能スレーブ数算出部１３ｍにより算出されサイクル通信可能スレーブ数格納部１３１ｍに格納されたサイクル通信可能スレーブ数と、マスタ検出部１９ｍにより検出されたマスタから通信タイミング管理テーブル取得部２０ｍが読み出した他マスタの通信タイミング管理テーブルと、
をもとに、他マスタの使用している帯域幅と重複しないように通信タイミング管理テーブル格納部１４ｍに格納される通信タイミング管理テーブルが作成される。
サイクル開始パケット受信処理部１５ｍでサイクル開始パケットを受信すると、通信タイミング管理テーブル格納部１４ｍに格納される通信タイミング管理テーブル１４ｍｔに従って、指令データ送信部１６ｍは指令データ格納部１６１ｍに格納された指令データを送信し、応答データ受信部１７ｍは応答データ格納部１７１ｍに格納される応答データを受信する。一方、スレーブ２ｎでは、指令データ受信部２１ｎで指令データ格納部２１１ｎに格納される指令データを受信すると、応答データ送信部２２ｎは応答データ２２１ｎを送信する。
【００１９】
以上により、制御周期データに設定された制御周期内にマスタとスレーブが制御データの授受を行うことができる。また、アイソクロナスサイクルの整数倍の制御周期を持つ機器がアイソクロナス転送を行わないアイソクロナスサイクルに、別の機器がアイソクロナス転送を行うことができる。このため、アイソクロナス転送の帯域幅を有効に活用することができる。
【００２０】
なお、制御周期データ格納部１１ｍに格納された制御周期データとは、マスタ／スレーブ同期通信システムの制御周期を表すデータであり、ＩＥＥＥ１３９４規格にて規定されているアイソクロナスサイクルの整数倍の値が設定される。
【００２１】
また、サイクル通信可能スレーブ数格納部１３１ｍに格納されたサイクル通信可能スレーブ数とは、一つのアイソクロナスサイクルで通信可能なスレーブ数を意味する。
【００２２】
また、サイクル開始パケットとは、ＩＥＥＥ１３９４規格にて規定されているアイソクロナスサイクルの開始を示すパケットのことである。
【００２３】
また、マスタ１ｍの指令データ送信部１６ｍと応答データ受信部１７ｍ、および、スレーブ２ｎの指令データ受信部２１ｎと応答データ送信部２２ｎは、ＩＥＥＥ１３９４規格にて規定されているアイソクロナス転送を使用してデータの送受信を行う。
【００２４】
また、自マスタノード検出部１９２ｍにより検出されたマスタのノードＩＤは、マスタノードＩＤ格納部１９１ｍに格納される。
【００２５】
図２は、マスタ１ｍが持つ通信タイミング管理テーブル格納部１４ｍに格納される通信タイミング管理テーブル１４ｍｔの詳細図である。通信タイミング管理テーブル１４ｍｔは、通信タイミング管理テーブル１４ｍｔの作成が完了したことを示す作成完了フラグと、制御周期データ格納部１１ｍに格納された制御周期データに相当するアイソクロナスサイクルのサイクル数と、各サイクルにおいて通信するスレーブ数を表す通信スレーブ数と、通信のためのアドレスを表す通信スレーブ番号の配列と、から構成される。通信スレーブ番号の配列はサイクル通信可能スレーブ数格納部１３１ｍに格納されたサイクル通信可能スレーブ数の分だけ確保される。図２は、制御周期を５００μｓ、マスタ１ｍが制御するスレーブ数が６局、サイクル通信可能スレーブ数が４局の場合のデータを示している。また、作成完了フラグが１であることから通信タイミング管理テーブル１４ｍｔの作成が完了した状態であることを示している。
【００２６】
図３は、マスタ１ｍとは異なるマスタ１ｍ’が持つ通信タイミング管理テーブル格納部１４ｍ’に格納される通信タイミング管理テーブル１４ｍ’ｔの詳細図である。通信タイミング管理テーブル１４ｍ’ｔは、通信タイミング管理テーブル１４ｍ’ｔの作成が完了したことを示す作成完了フラグと、制御周期データ格納部１１ｍ’に格納された制御周期データに相当するアイソクロナスサイクルのサイクル数と、各サイクルにおいて通信するスレーブ数を表す通信スレーブ数と、通信のためのアドレスを表す通信スレーブ番号の配列と、から構成される。通信スレーブ番号の配列はサイクル通信可能スレーブ数格納部１３１ｍ’に格納されたサイクル通信可能スレーブ数の分だけ確保される。図３は、制御周期を５００μｓ、マスタ１ｍ’が制御するスレーブ数が４局、サイクル通信可能スレーブ数が４局の場合のデータを示している。マスタ１ｍ’は、マスタ検出部１９ｍ’が検出したマスタ１ｍから該マスタ１ｍの通信タイミング管理テーブル１４ｍｔを取得し、該マスタ１ｍの通信タイミング管理テーブル１４ｍｔで使用されている部分について、マスタ１ｍ’が持つ通信タイミング管理テーブル１４ｍ’ｔの該当する部分を使用中に設定している。また、作成完了フラグが０であることから通信タイミング管理テーブル１４ｍ’ｔの作成が未完了であることを示している。
【００２７】
図４は、図２と図３の通信タイミング管理テーブル１４ｍｔと１４ｍ’ｔに従って動作した場合の通信タイミングチャートである。
【００２８】
図２と図３の通信タイミング管理テーブル１４ｍｔと１４ｍ’ｔに従って動作すると、
サイクル＃１のサイクル開始パケットを受信したマスタ１ｍは、通信タイミング管理テーブル１４ｍｔのサイクル＃１の通信スレーブ数および通信スレーブ番号に対し指令データＣｍｉ（ｉ＝１、２、３、４）を送信する。指令データを受信すると、スレーブはそれぞれ応答データＲｍｉ（ｉ＝１、２、３、４）を送信する。
【００２９】
サイクル＃１のサイクル開始パケットを受信したマスタ１ｍ’は、通信タイミング管理テーブル１４ｍ’ｔのサイクル＃１の通信スレーブ数を読み出して指令データを送信しようとする。しかし、この場合すべて使用中であるため、マスタ１ｍ’は指令データを送信しない。
【００３０】
次いで、サイクル＃２のサイクル開始パケットを受信したマスタ１ｍは、通信タイミング管理テーブル１４ｍｔのサイクル＃２の通信スレーブ数および通信スレーブ番号に対し指令データＣｍｉ（ｉ＝５、６）を送信する。指令データを受信すると、スレーブはそれぞれ応答データＲｍｉ（ｉ＝５、６）を送信する。
【００３１】
サイクル＃２のサイクル開始パケットを受信したマスタ１ｍ’は、通信タイミング管理テーブル１４ｍ’ｔのサイクル＃２の通信スレーブ数を読み出して指令データを送信しようとする。ここで、使用中と設定されている領域は無視され、通信スレーブ番号が設定されている領域から通信スレーブ番号を読み出して指令データＣｍ’ｉ（ｉ＝７，８）を送信する。指令データを受信すると、スレーブはそれぞれ応答データＲｍ’ｉ（ｉ＝７，８）を送信する。
【００３２】
次いで、サイクル＃３のサイクル開始パケットを受信したマスタ１ｍは、通信タイミング管理テーブル１４ｍｔのサイクル＃３の通信スレーブ数を読み出して指令データを送信しようとする。しかし、この場合、通信スレーブ番号が設定されていないためマスタ１ｍは指令データを送信しない。
【００３３】
サイクル＃３のサイクル開始パケットを受信したマスタ１ｍ’は、通信タイミング管理テーブル１４ｍ’ｔのサイクル＃３の通信スレーブ数および通信スレーブ番号に対し指令データＣｍ’ｉ（ｉ＝９、１０）を送信する。指令データを受信すると、スレーブはそれぞれ応答データＲｍ’ｉ（ｉ＝９、１０）を送信する。
【００３４】
図５はＩＥＥＥ１３９４ネットワークを使用したマスタ／スレーブ同期通信システムにおいて、通信タイミング管理テーブル１４ｍｔの作成処理手順を示すフローチャートである。
【００３５】
はじめに、Ｓ１００で通信タイミング管理テーブル１４ｍｔの全ての領域を０クリアし、Ｓ２００であらかじめ制御周期データ格納部１１ｍに格納された制御周期データを取り出し、Ｓ３００でサイクル通信可能スレーブ数を算出する。ここで、１３９４ Ｏｐｅｎ Ｈｏｓｔ Ｃｏｎｔｒｏｌｌｅｒ Ｉｎｔｅｒｆａｃｅ準拠のＩＥＥＥ１３９４インターフェースデバイスを使用した場合、一つのアイソクロナスサイクルで送信することができるアイソクロナスチャンネルの数がＤｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ（ＤＭＡ）の数で制限されてしまう（例えば非特許文献２参照）。このため、サイクル通信可能スレーブ数はＤＭＡの数に一致する。ハードウェアの制約がない場合は、指令データの帯域幅、応答データの帯域幅、機器の通信速度により、式（１）で求められる。
【００３６】
サイクル通信可能スレーブ数
＝  アイソクロナス転送の帯域幅  ÷  １スレーブ分の送受信の帯域  ・・・（１）
１スレーブ分の送受信の帯域幅＝｛（ヘッダ＋指令データ分の帯域幅）＋指令データ送信時のギャップ＋（ヘッダ＋応答データ分の帯域幅）＋応答データ送信時のギャップ｝
なお、ヘッダ、指令データ送信時のギャップ、応答データ送信時のギャップはＩＥＥＥ１３９４規格において規定された帯域幅である。
【００３７】
次に、Ｓ４００でマスタ検出部１９ｍがＩＥＥＥ１３９４規格の機能を利用してＩＥＥＥ１３９４ネットワーク３に接続されている他のマスタを検出する。Ｓ４００で検出した他マスタのノードＩＤは、マスタノードＩＤ格納部１９１ｍへ格納される（Ｓ４１０）。Ｓ５００で他のマスタが検出されたかどうかを判定し、他のマスタが検出された場合はＳ５１０へ、他のマスタが検出されなかった場合はＳ８００へ処理を進める。Ｓ５１０では、マスタノードＩＤ格納部１９１ｍへ格納された他マスタのノードＩＤの大きい順番にＳ５５０、Ｓ６００、Ｓ６５０、Ｓ７００の処理を繰り返す。Ｓ５５０では、１９２ｍ自マスタノードＩＤ検出部が検出した自分のノードＩＤと、他マスタのノードＩＤと、を比較する。自マスタのノードＩＤが他マスタのノードＩＤより小さい場合、Ｓ６００の処理を行う。自マスタのノードＩＤが他マスタのノードＩＤより大きい場合、Ｓ５１０のループを抜けＳ８００の処理を行う。Ｓ６００では、通信タイミング管理テーブル取得部２０ｍが、検出した他マスタ１ｍ’の通信タイミング管理テーブル伝達部１８ｍ’を介してマスタ１ｍ’の通信タイミング管理テーブル１４ｍ’ｔを読み出す。Ｓ６５０では、読み出した通信タイミング管理テーブル１４ｍ’ｔの中にある作成完了フラグが１であるかを判定する。作成完了フラグが１の場合はＳ７００の処理を行い、作成完了フラグが０の場合はＳｌｅｅｐ待ち（Ｓ６６０）した後、再度Ｓ６００の処理を行う。このように、作成完了フラグが１となるまで、すなわち、他マスタの通信タイミング管理テーブル１４ｍ’ｔの作成が完了するまでＳ６００、Ｓ６５０、Ｓ６６０の処理を繰り返し行う。Ｓ７００において、読み出した他マスタ１ｍ’の通信タイミング管理テーブル１４ｍ’ｔの中で通信スレーブ番号が割り当てられている部分を使用中に設定する。また、マスタ１ｍ’の通信タイミング管理テーブル１４ｍ’ｔの通信スレーブ数を、マスタ１ｍの通信タイミング管理テーブル１４ｍｔの該当する通信スレーブ数に加算する。マスタノードＩＤ格納部１９１ｍへ格納された他マスタのノードＩＤの大きい順番に、前記Ｓ５５０から前記Ｓ７００もしくは前記Ｓ６６０までの処理を繰り返す。
【００３８】
Ｓ８００で、スレーブ数検出部１２ｍがＩＥＥＥ１３９４規格の機能を利用してＩＥＥＥ１３９４ネットワーク３に接続されている全てのスレーブ数と、該スレーブとマスタ１ｍが通信するための通信スレーブ番号を検出する。Ｓ９００で通信タイミング割付け可能かどうかを式（２）にて判断する。式（２）が満たされればＳ１０００に進み、式（２）が満たされていない場合はＳ９１０エラー終了となる。
全てのスレーブ数  ＋  通信タイミング管理テーブル１４ｍｔ中の使用中の数
≦  サイクル通信可能スレーブ数  ×  サイクル数  ・・・（２）
サイクル数  ＝  制御周期［μｓ］  ÷  １２５［μｓ］
制御周期：制御周期データ格納部１１ｍに格納されていた制御周期データの値
１２５μｓ：ＩＥＥＥ１３９４規格で規定されているアイソクロナスサイクル
【００３９】
通信タイミング割付け可能な場合、Ｓ１０００で前記Ｓ９００にて算出されたサイクル数を通信タイミング管理テーブル１４ｍｔへ設定し、Ｓ１１００で通信タイミング管理テーブル１４ｍｔの１サイクル目のデータ領域を獲得する。Ｓ１２００で通信タイミング管理テーブル１４ｍｔの該当するサイクルのデータ領域の通信スレーブ数がサイクル通信可能スレーブ数に満たない場合、通信タイミング管理テーブル１４ｍｔの使用中でない領域へ前記Ｓ８００で検出した通信スレーブ番号を設定し、通信スレーブ数をインクリメントする（Ｓ１３００）。Ｓ１４００で検出された次のスレーブへ処理を移す。前記Ｓ１２００にて通信スレーブ数がサイクル通信可能スレーブ数以上の場合は、前記Ｓ１２１０で次のサイクルのデータ領域を獲得する。前記Ｓ１２００から前記Ｓ１４００もしくは前記Ｓ１２１０までの処理を検出した全てのスレーブ数分繰り返す。
【００４０】
最後に、通信タイミング管理テーブル１４ｍｔの作成完了フラグを１に設定する（Ｓ１５００）。
【００４１】
以上の手順により、ＩＥＥＥ１３９４規格において接続の状況に応じて動的に割り当てられると規定されているノードＩＤを用いて、自マスタの通信タイミング管理テーブルが自動的に作成される。また、該通信タイミング管理テーブルに従って制御データを転送することにより、１局以上のマスタと１局以上のスレーブがＩＥＥＥ１３９４ネットワーク上に接続されたマスタ／スレーブ同期通信システムにおいて、アイソクロナス転送の帯域幅を有効に活用し、アイソクロナスサイクルの整数倍の制御周期に同期して制御データを授受することができるのである。
【実施例２】
【００４２】
図６と図７は、通信タイミング管理テーブルをユニット空間にマッピングしたものを示す。ユニット空間とは、ＩＥＥＥ１３９４規格で規定されているレジスタの一部であり、アシンクロナス転送を利用してアクセスすることができる。ユニット空間は、ベンダが自由に拡張することができるため、このユニット空間に通信タイミング管理テーブルをマッピングすることができる。図６と図７において、通信タイミング管理テーブルはユニット空間内のＴｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ５００にマッピングされる。
【００４３】
通信タイミング管理テーブルにある作成完了フラグはＣｏｍｐｌｅｔｅ＿Ｆｌａｇ５１０へ、サイクル数はＣｙｃｌｅ＿Ｃｏｕｎｔ５２０へ、通信スレーブ数はＳｌａｖｅ＿Ｃｏｕｎｔ６１０へ、通信スレーブ番号はＳｌａｖｅ＿ＩＤ６２０ｉ（ｉ＝１、２、３、４）へ、それぞれマッピングされる。Ｔｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ５００には、Ｃｙｃｌｅ＿Ｃｏｕｎｔ５２０に設定されている値の数分のＳｌａｖｅレジスタ６００が存在する。また、Ｓｌａｖｅ＿Ｃｏｕｎｔ＿Ｐｅｒ＿Ｃｙｃｌｅ５３０には、サイクル通信可能スレーブ数が格納されており、Ｓｌａｖｅ＿Ｃｏｕｎｔ＿Ｐｅｒ＿Ｃｙｃｌｅ５３０に設定されている値の数だけのＳｌａｖｅ＿ＩＤ６２０ｉがＳｌａｖｅレジスタ６００の中に存在する。
【００４４】
マスタ１ｍ上の通信タイミング管理テーブル取得部２０ｍは、マスタ１ｍ’上のＴｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ５００のレジスタオフセットに対してアシンクロナス転送の読み出し要求を送信する。マスタ１ｍ’上の通信タイミング管理テーブル伝達部１８ｍ’は、Ｔｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ５００のレジスタオフセットに対するアシンクロナス転送の読み出し要求を受け付けると、Ｔｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ５００の該当するデータを格納したアシンクロナス転送の読み出し応答パケットを作成し、送信する。送信されたアシンクロナス転送の読み出し応答パケットがマスタ１ｍ上の通信タイミング管理テーブル取得部２０ｍに受信され、マスタ１ｍはマスタ１ｍ’のＴｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリのデータ、すなわち、マスタ１ｍ’の通信タイミング管理テーブルを取得することができる。
【００４５】
以上のように通信タイミング管理テーブルをユニット空間へマッピングし、通信タイミング管理テーブル伝達部がＩＥＥＥ１３９４規格で規定されているアシンクロナス読み出し要求に対して応答することによって、特別な手段を必要とせずにＩＥＥＥ１３９４規格で規定されているアシンクロナス転送を使用して、あるマスタ機器から別のマスタ機器が使用している通信タイミング管理テーブルを取得することができる。
【産業上の利用可能性】
【００４６】
ＩＥＥＥ１３９４ネットワークを使用したマスタ／スレーブ同期通信システムにおいて、１局以上のマスタと１局以上のスレーブが接続されている、例えば、モーションコントロールシステムなどに適用可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明の第１実施例を示すマスタ／スレーブ同期通信システムの構成図
【図２】本発明の第１実施例におけるマスタ１ｍの通信タイミング管理テーブルの詳細図
【図３】本発明の第１実施例におけるマスタ１ｍ’の通信タイミング管理テーブルの詳細図
【図４】本発明の第１実施例における通信タイミングチャート
【図５】本発明の第１実施例の通信タイミング管理テーブル作成処理手順を示すフローチャート
【図６】本発明の第２実施例を示すＴｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ
【図７】本発明の第２実施例を示すＳｌａｖｅレジスタ
【図８】従来の方法を適用した通信タイミングチャート
【符号の説明】
【００４８】
１ｉ  マスタ
２ｉ  スレーブ
３  ＩＥＥＥ１３９４ネットワーク
１１ｉ  制御周期データ格納部
１２ｉ  スレーブ数検出部
１２１ｉ  接続スレーブ数格納部
１３ｉ  サイクル通信可能スレーブ数算出部
１３１ｉ  サイクル通信可能スレーブ数格納部
１４ｉ  通信タイミング管理テーブル格納部
１４ｉｔ  通信タイミング管理テーブル
１５ｉ  サイクル開始パケット受信処理部
１６ｉ  指令データ送信部
１６１ｉ  指令データ格納部
１７ｉ  応答データ受信部
１７１ｉ  応答データ格納部
１８ｉ  通信タイミング管理テーブル伝達部
１９ｉ  マスタ検出部
１９１ｉ  マスタノードＩＤ格納部
１９２ｉ  自マスタノードＩＤ検出部
２０ｉ  通信タイミング管理テーブル取得部
２１ｉ  指令データ受信部
２１１ｉ  指令データ格納部
２２ｉ  応答データ送信部
２２１ｉ  応答データ格納部
５００  Ｔｉｍｉｎｇ＿Ｍａｎａｇｅｍｅｎｔ＿Ｔａｂｌｅディレクトリ
５１０  Ｃｏｍｐｌｅｔｅ＿Ｆｌａｇ
５２０  Ｃｙｃｌｅ＿Ｃｏｕｎｔ
５３０  Ｓｌａｖｅ＿Ｃｏｕｎｔ＿Ｐｅｒ＿Ｃｙｃｌｅ
６００  Ｓｌａｖｅレジスタ
６１０  Ｓｌａｖｅ＿Ｃｏｕｎｔ
６２０ｉ  Ｓｌａｖｅ＿ＩＤ
９１  ヘッダ
９２  ｄａｔａ Ａ
９３  ｄａｔａ Ｂ
９４  ｄａｔａ Ｃ
９５  ｄａｔａ Ｄ
９６  ｄａｔａ Ｄの帯域
９７  アイソクロナス転送期間の残帯域
【図１】
2005328514.tif 000003
【図２】
2005328514.tif 000004
【図３】
2005328514.tif 000005
【図４】
2005328514.tif 000006
【図５】
2005328514.tif 000007
【図６】
2005328514.tif 000008
【図７】
2005328514.tif 000009
【図８】
2005328514.tif 000010