(57)【要約】【課題】１２５μｓ以下の周期で同期通信できる方法を提供する。【解決手段】次の手順で処理する。（１）サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までの時間を計算する。（２）自ノードが帯域幅とｃｈａｎｎｅｌを獲得するたびにサイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間と獲得した帯域幅と獲得したｃｈａｎｎｅｌとの組を保存する。（３）ＩＲＭが１要求周期時間終わりまでの帯域幅を獲得する。（４）要求周期時間に達したことを判別する。（５）前回獲得したｃｈａｎｎｅｌと異なるｃｈａｎｎｅｌを次の周期の分として獲得する。（６）１２５μｓ内に送信する数だけ異なるｃｈａｎｎｅｌ番号を獲得する。（７）サイクルスタートから遅らせてＩｓｏｃｈｒｏｎｏｕｓパケットを送信する。【選択図】  図１
2004282565.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ１３９４シリアルバスにＩｓｏｃｈｒｏｎｏｕｓ転送機能とＩｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）機能を備えたＩＥＥＥ１３９４通信装置が接続されているネットワークにおいて、次の手順で処理することを特徴とする前記ＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法。
（１）Ｉｓｏｃｈｒｏｎｏｕｓ対応のノードがＩＲＭへのＬｏｃｋトランザクションを常に監視し、前記Ｌｏｃｋトランザクションが前記ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスである場合は、前記ノードは獲得された帯域幅とｃｈａｎｎｅｌの値を用いて、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間を計算して保存する。
（２）前記ノードは、前記ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタと前記ＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスがあるたびに前記計算と保存を繰り返し、帯域幅とｃｈａｎｎｅｌを獲得するたびに前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間と獲得した帯域幅と獲得したｃｈａｎｎｅｌの組として保存する。
（３）前記ＩＲＭは、前記ノードから１２５μｓ以下の周期を要求する周期要求を受付た後の一定時間の後に、残りのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥのうち１要求周期時間終わりまでの帯域幅を獲得する。
（４）前記ノードは、１２５μｓ以下の周期を要求すると前記Ｌｏｃｋトランザクションを監視し、ネットワーク上の他のノードによって獲得された帯域幅の合計が要求周期時間に達したことを判別する。
（５）前記ノードは、前回獲得した帯域幅と同じ帯域幅と、前回獲得したｃｈａｎｎｅｌとは異なるｃｈａｎｎｅｌを次の周期の分として獲得する。
（６）前記ノードは、１２５μｓの中に前記要求周期時間が入る数だけ前記ＩＲＭによる前記１要求周期時間終わりまでの帯域幅の獲得と要求ノードによる帯域幅の獲得を繰り返し、前記要求ノードが獲得する前記ｃｈａｎｎｅｌが１２５μｓ内で送信する数だけ異なるｃｈａｎｎｅｌ番号を獲得する。
（７）前記ノードは、獲得した帯域幅とｃｈａｎｎｅｌのそれぞれについて、各帯域幅とｃｈａｎｎｅｌを獲得した時点での前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間だけサイクルスタートから遅らせてＩｓｏｃｈｒｏｎｏｕｓパケットの送信をする。
【請求項２】
前記（３）の手順では、前記要求ノードが前記ＩＲＭへ帯域幅獲得処理実行の時期を指示し、前記ＩＲＭが帯域幅を獲得し、その後、前記要求ノードが次の周期の帯域幅を獲得するという手順で処理することを特徴とする請求項１に記載のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データを同期転送するＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法に関する。
【０００２】
【従来の技術】
従来のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法は、ＩＥＥＥ１３９４規格によれば、Ｉｓｏｃｈｒｏｎｏｕｓ転送対応ノードはＩＲＭに対して帯域幅とｃｈａｎｎｅｌの割り当てを要求して獲得し、データ送信時にアービトレーションを行い、バス使用の権利を獲得したノードが送信するようになっている（たとえば非特許文献１参照）。このため、バスに流れるＩｓｏｃｈｒｏｎｏｕｓパケットの順番はノードがバス使用の権利を獲得した順に並ぶことになるので、サイクルごとに変わり、Ｉｓｏｃｈｒｏｎｏｕｓパケット送信の順序はｃｈａｎｎｅｌ番号には関連していない。
【０００３】
【非特許文献１】
ＩＥＥＥ  Ｓｔｄ  １３９４−１９９５，  ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｅｒｉａｌ  Ｂｕｓ
【０００４】
この従来技術を図を用いて説明する。図１１のようにＩＥＥＥ１３９４通信機器Ａ１１０１、ＩＥＥＥ１３９４通信機器Ｂ１１０２、ＩＥＥＥ１３９４通信機器Ｃ１１０３の三台がＩＥＥＥ１３９４ケーブル１１０６で接続されているとする。バスリセット後にノードＩＤはそれぞれ、ＩＥＥＥ１３９４通信機器Ａ１１０１がノード０、ＩＥＥＥ１３９４通信機器Ｂ１１０２がノード１、ＩＥＥＥ１３９４通信機器Ｃ１１０３がノード２になっている。また、ＩＥＥＥ１３９４通信機器Ｃ１１０３がＩｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）１１０４とＣｙｃｌｅ  Ｍａｓｔｅｒ（ＣＭ）１１０５になっており、ＩＥＥＥ１３９４規格に定められたＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを備えている。そしてＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥの各レジスタを通して帯域幅とｃｈａｎｎｅｌからなるＩｓｏｃｈｒｏｎｏｕｓリソースを管理する。
図１２は従来の方法によるサイクルの構成図である。図１３から図１６は従来の方法を用いてＩｓｏｃｈｒｏｎｏｕｓパケットを送信する処理手順を示すフローチャートである。以下、この図を用いて従来の方法を順を追って説明する。
【０００５】
図１３において、バスリセット後にＩＲＭ、ＣＭが決定すると、各Ｉｓｏｃｈｒｏｎｏｕｓ対応ノードがＩＲＭへＬｏｃｋトランザクションで帯域幅とｃｈａｎｎｅｌの割り当ての要求をする。帯域幅とｃｈａｎｎｅｌの割り当ての要求は、ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを読み込み、読み込んだレジスタ値をａｒｇ＿ｖａｌｕｅに指定し、希望の帯域幅をｄａｔａ＿ｖａｌｕｅに指定し、拡張トランザクションコードにｃｏｍｐａｒｅ＿ｓｗａｐを指定してＩＲＭノードへＬｏｃｋリクエストを送信することで行われる。ＩＲＭからのＬｏｃｋ応答のｒｃｏｄｅがｒｅｓｐ＿ｃｏｍｐｌｅｔｅであれば帯域幅とｃｈａｎｎｅｌの獲得に成功したことになる。図１３ではまずノード１が帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｌとｃｈａｎｎｅｌ４を獲得し、Ｉｓｏｃｈｒｏｎｏｕｓ送信準備完了となる。
【０００６】
図１４は図１３のつづきであり、ノード０が帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｍとｃｈａｎｎｅｌ３を獲得し、Ｉｓｏｃｈｒｏｎｏｕｓ送信準備完了となる。
図１５は図１４のつづきであり、ノード２が帯域幅とｃｈａｎｎｅｌの割り当ての要求を行い、帯域幅Ｎとｃｈａｎｎｅｌ２を獲得する。
図１６は図１５のづづきであり、Ｉｓｏｃｈｒｏｎｏｕｓ送信したいノードがサイクルスタート後に一斉に送信要求を出す。バスは各サイクルにおいてアービトレーションを行い、バスの使用権を獲得したノードからＩｓｏｃｈｒｏｎｏｕｓパケットを送信することができる。送信したいノードがなくなるまでアービトレーションを行い、バスの使用権を獲得したノードが送信する。結果としてサイクルの構造は図１２のようになり、バスに流れるＩｓｏｃｈｒｏｎｏｕｓパケットの順番は、サイクルごとに変わる。また、ＩＲＭによるＩｓｏｃｈｒｏｎｏｕｓリソースの管理は、１サイクル分のリソースで行われ、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥは０から４９１５、ｃｈａｎｎｅｌは０から６２の範囲である。なお、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥに使われる単位はＳ１６００のデータレートで１ｑｕａｄｌｅｔのデータを送信するのに要する時間を１とし、約２０ｎｓであり、帯域幅の最大値４９１５はサイクルスタートから１００μｓの範囲となる（非特許文献１の８．３．２．３．７  ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタ参照）。
このように、従来のＩＥＥＥ１３９４通信装置のＩｓｏｃｈｒｏｎｏｕｓ転送方法では、各Ｉｓｏｃｈｒｏｎｏｕｓサイクルにおいて、Ｉｓｏｃｈｒｏｎｏｕｓパケットを送信したいノードがアービトレーションでバスの使用権を獲得して、獲得したノードから送信する、という手順がとられていた。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来のＩｓｏｃｈｒｏｎｏｕｓ転送方法では、Ｉｓｏｃｈｒｏｎｏｕｓパケットを送信したいノードが各Ｉｓｏｃｈｒｏｎｏｕｓサイクルにおいてアービトレーションをして、バスの使用権を獲得したノードから送信をするので、バス上に流れるＩｓｏｃｈｒｏｎｏｕｓパケットの並び順はサイクルごとに変わり、サイクルの中でサイクルスタート後にどれだけの時間を空けて出るかをあらかじめ知ることはできないという問題と、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間が一定ではないという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、同じｃｈａｎｎｅｌのＩｓｏｃｈｒｏｎｏｕｓパケットが次に出るまでの時間を一定にできるようにした上で、希望の周期に合うようにＩｓｏｃｈｒｏｎｏｕｓリソースを調整して、１２５μｓ以下の周期で同期通信できる方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記問題を解決するため、本発明は、ＩＥＥＥ１３９４シリアルバスにＩｓｏｃｈｒｏｎｏｕｓ転送機能とＩｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）機能を備えたＩＥＥＥ１３９４通信装置が接続されているネットワークにおいて、次の手順で処理することを特徴としている。（１）Ｉｓｏｃｈｒｏｎｏｕｓ対応のノードがＩＲＭへのＬｏｃｋトランザクションを常に監視し、前記Ｌｏｃｋトランザクションが前記ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスである場合は、前記ノードは獲得された帯域幅とｃｈａｎｎｅｌの値を用いて、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間を計算して保存する。（２）前記ノードは、前記ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタと前記ＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスがあるたびに前記計算と保存を繰り返し、帯域幅とｃｈａｎｎｅｌを獲得するたびに前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間と獲得した帯域幅と獲得したｃｈａｎｎｅｌの組として保存する。（３）前記ＩＲＭは、ノードから１２５μｓ以下の周期を要求する周期要求を受付た後の一定時間の後に、残りのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥのうち１要求周期時間終わりまでの帯域幅を獲得する。（４）前記ノードは、１２５μｓ以下の周期を要求すると前記Ｌｏｃｋトランザクションを監視し、ネットワーク上の他のノードによって獲得された帯域幅の合計が要求周期時間に達したことを判別する。（５）前記ノードは、前回獲得した帯域幅と同じ帯域幅と、前回獲得したｃｈａｎｎｅｌとは異なるｃｈａｎｎｅｌを次の周期の分として獲得する。（６）前記ノードは、１２５μｓの中に前記要求周期時間が入る数だけ前記ＩＲＭによる前記１要求周期時間終わりまでの帯域幅の獲得と要求ノードによる帯域幅の獲得を繰り返し、前記要求ノードが獲得する前記ｃｈａｎｎｅｌが１２５μｓ内で送信する数だけ異なるｃｈａｎｎｅｌ番号を獲得する。（７）前記ノードは、獲得した帯域幅とｃｈａｎｎｅｌのそれぞれについて、各帯域幅とｃｈａｎｎｅｌを獲得した時点での前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間だけサイクルスタートから遅らせてＩｓｏｃｈｒｏｎｏｕｓパケットの送信をする。
このようになっているため、送信側は自ノードより先に獲得された帯域幅とｃｈａｎｎｅｌから、先にバスが使用される時間を計算し、自ノードからの送信を前記計算した時間だけサイクルスタートから遅らせることによって、自ノードからの送信が他ノードからの送信と重なってアービトレーションで衝突するのを避けるようにＩｓｏｃｈｒｏｎｏｕｓ転送をスケジューリングすることができ、同じｃｈａｎｎｅｌのパケットが次に出るまでの時間を一定にすることができ、ＩＲＭによって１２５μｓ以下の周期時間でＩｓｏｃｈｒｏｎｏｕｓリソースを区切ることができ、ノードは要求周期ごとのＩｓｏｃｈｒｏｎｏｕｓリソースを獲得することができ、１２５μｓの中では異なるｃｈａｎｎｅｌを使って送信するので結果として１２５μｓ以下の周期で送信することができる。
さらに本発明は、前記（３）の手順では、前記要求ノードが前記ＩＲＭへ帯域幅獲得処理実行の時期を指示し、前記ＩＲＭが帯域幅を獲得し、その後、前記要求ノードが次の周期の帯域幅を獲得するという手順で処理することを特徴としている。
このようになっているため、ＩＲＭによる１２５μｓ以下の周期時間でＩｓｏｃｈｒｏｎｏｕｓリソースを区切るタイミングを要求ノード側でコントロールすることができる。
【０００９】
【発明の実施の形態】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。図１１は、本発明の方法を実施するＩＥＥＥ１３９４通信装置からなるネットワークの構成図である。図１１においてＩＥＥＥ１３９４通信装置Ａ１１０１、ＩＥＥＥ１３９４通信装置Ｂ１１０２、ＩＥＥＥ１３９４通信装置Ｃ１１０３がＩＥＥＥ１３９４ケーブル１１０６で接続されている。またＩＥＥＥ１３９４通信装置Ａ、Ｂ、Ｃ１１０１、１１０２、１１０３はすべてＩｓｏｃｈｒｏｎｏｕｓ転送対応であり、ＩＥＥＥ１３９４通信装置Ｃ１１０３はＩＲＭ対応である。他ノードのＩｓｏｃｈｒｏｎｏｕｓリソースの獲得状況を知るために、各ＩＥＥＥ１３９４通信装置はバス上に流れるＬｏｃｋトランザクションのパケットおよびＩｓｏｃｈｒｏｎｏｕｓパケットを全て読むことができるものとする。他ノードのＩＲＭに対するＬｏｃｋトランザクションを監視することで、どのノードがどれだけのリソースを獲得したかを、獲得した時点で知ることができる。
【００１０】
図１は本発明の方法によるＩｓｏｃｈｒｏｎｏｕｓリソースの分割図である。図中の数値はＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタで使われる単位であり、Ｓ１６００のデータレートで１ｑｕａｄｌｅｔのデータを送信するのに要する時間を１とする約２０ｎｓであり、４９１５はサイクルスタートから１００μｓの範囲となる（非特許文献１の８．３．２．３．７  ｂａｎｄｗｉｄｔｈ＿ａｖａｉｌａｂｌｅレジスタ参照）。ＢＡＮＤＷＩＤＴＨ１０１全体は６１４４であるが、Ｉｓｏｃｈｒｏｎｏｕｓ転送に使用できるのは４９１５であり、残りの１２２９はＡｓｙｎｃｈｒｏｎｏｕｓ転送に使用する。６１４４は１２５μｓであり、４９１５は１００μｓの範囲に相当する。全体を２つに分割するとＢＡＮＤＷＩＤＴＨ１０２の２分割の図のようになり、３０７２が２つとなる。ただし、２つ目の３０７２のうち１２２９は使用できないので、１つ目の３０７２も同じ構造にする。こうしてできた各１８４３のところに、ひとつの送信ノードが同じ帯域幅を一つずつ獲得すれば、６２．５μｓごとにひとつの帯域幅を獲得したことになる。ただし、ＩＥＥＥ１３９４規格の制約から、１つ目の１８４３の範囲に獲得するｃｈａｎｎｅｌと２つ目の１８４３の範囲に獲得するｃｈａｎｎｅｌは同じであってはならない。つまり、１０３  ６２．５μｓＣｙｃｌｅの構造の図のようにｃｈａｎｎｅｌ４（ｃｈ４）を獲得したノードは同じ帯域幅でｃｈａｎｎｅｌ２（ｃｈ２）も獲得して、ｃｈａｎｎｅｌ４とｃｈａｎｎｅｌ２で交互に送信するようにする。
【００１１】
図２は本発明の方法によるサイクルの構成図である。３つのノードをノード０、ノード１、ノード２として、まずノード１において、サイクルスタートパケット１０４の後に、ノード１がｃｈａｎｎｅｌ４に送信するＩｓｏｃｈｒｏｎｏｕｓパケット１０５を送信し、次にノード０においてサイクルスタートパケットの後にｃｈａｎｎｅｌ４での送信に使用される時間２０６だけ遅らせてノード０がｃｈａｎｎｅｌ３に送信するＩｓｏｃｈｒｏｎｏｕｓパケット１０６を送信し、次にＩＲＭのノードにおいてサイクルスタートパケットの後にｃｈａｎｎｅｌ４とｃｈａｎｎｅｌ３での送信に使用される時間２０７だけ遅らせてＩＲＭ１０７により獲得される帯域幅ａ１の分のダミー送信があり、次にノード１においてサイクルスタートパケットの後にｃｈａｎｎｅｌ４とｃｈａｎｎｅｌ３とａ１で使用される時間２０８だけ遅らせてノード１がｃｈａｎｎｅｌ２に送信するＩｓｏｃｈｒｏｎｏｕｓパケット１０８を送信し、次にノード０においてサイクルスタートパケットの後にｃｈａｎｎｅｌ４とｃｈａｎｎｅｌ３とａ１とｃｈａｎｎｅｌ２で使用される時間２０９だけ遅らせてノード０がｃｈａｎｎｅｌ１に送信するＩｓｏｃｈｒｏｎｏｕｓパケット１０９を送信すれば、結果として図のようなサイクル構成ができあがる。このサイクル構成では、ノード０はｃｈａｎｎｅｌ１とｃｈａｎｎｅｌ３で交互に送信すれば、６２．５μｓ周期で送信することになり、同様にノード１はｃｈａｎｎｅｌ２とｃｈａｎｎｅｌ４で交互に送信すれば、６２．５μｓ周期で送信することになる。
【００１２】
図３は本発明の方法によるＩｓｏｃｈｒｏｎｏｕｓリソースの分割図である。ただし図１とは違い、全体の６１４４を３つに分割した場合の図である。図３では、ひとつの送信ノードが４１．６μｓごとにひとつの帯域幅を獲得することになる。
第１の発明の処理手順の例として図４から図７を示す。図４から図７は本発明の方法を用いて、１２５μｓ以下の周期になるように帯域幅の獲得をし、帯域幅とｃｈａｎｎｅｌを獲得したノード順にＩｓｏｃｈｒｏｎｏｕｓパケットを送信する処理手順を示すフローチャートである。
この図を用いて、以下、本発明の方法を順を追って説明する。はじめに図４でバスリセット（４０１）後にノードＩＤが決定し、ＩＲＭとＣＭが決定する（４０５）。ＩＥＥＥ１３９４通信装置Ａ１１０１はノード０（４０２）、ＩＥＥＥ１３９４通信装置Ｂ１１０２はノード１（４０３）、ＩＥＥＥ１３９４通信装置Ｃ１１０３はノード２（４０４）に決定し、ＩＥＥＥ１３９４通信装置Ｃ１１０３（ノード２）がＣＭおよびＩＲＭに決定する（４０５）。それぞれのノードは帯域幅とｃｈａｎｎｅｌからなるＩｓｏｃｈｒｏｎｏｕｓリソースを獲得する前に他ノードが獲得しているＩｓｏｃｈｒｏｎｏｕｓリソースの情報を持っており、ここで初期化する（４０６）、（４０７）、（４０８）。
【００１３】
図５は図４のつづきであり、ノード１は６２．５μｓ周期で帯域幅Ｌを獲得するために、ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの値を読み（４０９）、既に他ノードによって獲得されている帯域幅と自ノードが獲得しようとしている帯域幅Ｌとの合計が１８４３以下ならば、ＩＲＭに帯域幅とｃｈａｎｎｅｌ割り当ての要求を行う（５０１）。ここでＩＲＭへの帯域幅獲得要求時に、ノード１は６２．５μｓ周期のＩｓｏｃｈｒｏｎｏｕｓリソース獲得を要求することをＩＲＭに知らせる。帯域幅Ｌとｃｈａｎｎｅｌ４の獲得は従来の方法と同様にＬｏｃｋトランザクションにより行われる。次に、ノード１からの要求を受け付けたＩＲＭであるノード２は、６２．５μｓ区切りのＩｓｏｃｈｒｏｎｏｕｓリソース配分をするためのフラグをＥｎａｂｌｅにし、帯域幅のうち１つ目の１８４３に帯域幅を獲得する要求の受付時間の超過を判断するためのカウンタをスタートさせるとともに、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（５０２）。
ＩＲＭからのＬｏｃｋ応答を受け取ったノード１は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅Ｌとｃｈａｎｎｅｌ４（ｃｈ４）を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝０、以前に獲得されているｃｈａｎｎｅｌ＝なし、獲得した帯域幅Ｌ、獲得したｃｈａｎｎｅｌ＝４を一組として保存する（５０３）。
ただしノード１がＩＲＭへ帯域幅Ｌとｃｈａｎｎｅｌ４を要求したときに、ノード０はノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（５０５）。そしてノード０はノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を保存する（５０６）。また、同時にＩＲＭであるノード２も、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を保存する（５０４）。
【００１４】
図６は図５のつづきであり、ＩＲＭであるノード２において、帯域幅のうち１つ目の１８４３に帯域幅を獲得する要求の受付時間の超過を判断するためのカウンタが要求受付時間を超過したき、ＩＲＭであるノード２は帯域幅で１つ目の３０７２のうち残っている３０７２−Ｌと、ｃｈａｎｎｅｌ５０を獲得する要求をする（６０１）。ｃｈａｎｎｅｌは既に獲得されているものでなければ何でもよい。
次に、ノード２からの要求を受け付けたＩＲＭであるノード２は、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（６０２）。ＩＲＭからのＬｏｃｋ応答を受け取ったノード２は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅３０７２−Ｌとｃｈａｎｎｅｌ５０を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝Ｌ、以前に獲得されているｃｈａｎｎｅｌ＝４、獲得した帯域幅３０７２−Ｌ、獲得したｃｈａｎｎｅｌ＝５０を一組として保存する（６０３）。ただしノード２がＩＲＭへ帯域幅３０７２−Ｌとｃｈａｎｎｅｌ５０を要求したときに、ノード０とノード１は、ノード２からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（６０４）、（６０６）。そしてノード０とノード１は、ノード２が獲得した帯域幅とｃｈａｎｎｅｌの値を保存する（６０５）、（６０７）。
次に、６２．５μｓ周期のＩｓｏｃｈｒｏｎｏｕｓリソース獲得を要求しているノード１は、獲得された帯域幅が３０７２に達したことを検出し、次の６２．５μｓのための帯域幅として、以前に獲得した帯域幅と同じ帯域幅Ｌと、以前に獲得したｃｈａｎｎｅｌとは異なるｃｈａｎｎｅｌ３をＩＲＭへ要求する（６０８）。
次に、ノード１からの要求を受け付けたＩＲＭであるノード２は、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（６０９）。ＩＲＭからのＬｏｃｋ応答を受け取ったノード１は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅Ｌとｃｈａｎｎｅｌ３を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝３０７２、以前に獲得されているｃｈａｎｎｅｌ＝４と５０、獲得した帯域幅Ｌ、獲得したｃｈａｎｎｅｌ＝３を一組として保存し（６１３）、６２．５μｓ周期で送信するのに必要なＩｓｏｃｈｒｏｎｏｕｓリソースを全て獲得したので、Ｉｓｏｃｈｒｏｎｏｕｓ送信準備完了となる（６１４）。ただしノード１がＩＲＭへ帯域幅Ｌとｃｈａｎｎｅｌ３を要求したときに、ノード０はノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（６１１）。そしてノード０はノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（６１２）。また、同時にＩＲＭであるノード２も、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（６１０）。
【００１５】
図７は図６のつづきであり、各ノードがＩｓｏｃｈｒｏｎｏｕｓパケットの送信を行う手順を示している。各ノードは自ノードが獲得したＩｓｏｃｈｒｏｎｏｕｓリソースの情報を元に、サイクルスタート後、以前に獲得されている帯域幅ｐｒｅｂａｎｄだけ遅らせて、獲得しているｃｈａｎｎｅｌにＩｓｏｃｈｒｏｎｏｕｓパケットを送信する。まず各ノードがサイクルスタートを受信する（７０１）、（７０２）、（７０３）。ノード１はｐｒｅｂａｎｄ＝０なのですぐにｃｈａｎｎｅｌ４に送信しようとする（７０５）が、このとき他ノードはサイクルスタート後すぐにはＩｓｏｃｈｒｏｎｏｕｓパケット送信を行わなず、送信しようとするのはノード１のみなので、ノード１がバスの使用権を獲得して送信する。次にサイクルスタートから帯域幅Ｌだけ遅れて（７０８）、ノード２がＩＲＭとして帯域幅の３０７２区切りを作るために獲得した分のダミー送信をする（７０９）。次に、ノード１がサイクルスタートからｐｒｅｂａｎｄ＝３０７２だけ遅らせて（７０６）、ｃｈａｎｎｅｌ３に送信しようとする（７０７）が、このときノード２の獲得分の空きは終わっており、ノード０は送信を行っておらず、送信しようとするのはノード１のみなので、ノード１がバスの使用権を獲得して送信する。以下、前記（７０１）から（７０７）を繰り返すことにより、ノード１は６２．５μｓ周期でのＩｓｏｃｈｒｏｎｏｕｓパケット送信を実現する。
このように、各ノードが、自ノードが獲得する以前に獲得されたＩｓｏｃｈｒｏｎｏｕｓリソースの分だけサイクルスタートから遅らせてからＩｓｏｃｈｒｏｎｏｕｓパケットを送信するので、他のノードの送信タイミングと衝突せずに送信の順番が守られて、かつ、ＩＲＭによって６２．５μｓまでの帯域幅が獲得されているため、同一ノードが１つ目の６２．５μｓで送信したのとは異なるｃｈａｎｎｅｌで送信するパケットは、２つ目の６２．５μｓの区間に送信されるようになる。
【００１６】
次に、第２の発明の処理手順の例として図８から図１０を示す。図８から図１０は本発明の方法を用いて、１２５μｓ以下の周期になるように帯域幅の獲得をし、帯域幅とｃｈａｎｎｅｌを獲得したノード順にＩｓｏｃｈｒｏｎｏｕｓパケットを送信する処理手順を示すフローチャートである。１つ目の例と異なるのは、ノード０は１２５μｓ周期で送信をし、ノード１は６２．５μ周期で送信をすることである。
この図を用いて、以下、本発明の方法を順を追って説明する。はじめは１つ目の例の図４と同じであり、図８は図４のつづきである。図４において、ノード１は６２．５μｓ周期で帯域幅Ｌを獲得するために、ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの値を読み（４０９）、図８において、既に他ノードによって獲得されている帯域幅と自ノードが獲得しようとしている帯域幅Ｌとの合計が１８４３以下ならば、ＩＲＭに帯域幅とｃｈａｎｎｅｌ割り当ての要求を行う（８０１）。ここでＩＲＭへの帯域幅獲得要求時に、ノード１は６２．５μｓ周期のＩｓｏｃｈｒｏｎｏｕｓリソース獲得を要求することをＩＲＭに知らせる。帯域幅Ｌとｃｈａｎｎｅｌ４の獲得は従来の方法と同様にＬｏｃｋトランザクションにより行われる。次に、ノード１からの要求を受け付けたＩＲＭであるノード２は、６２．５μｓ区切りのＩｓｏｃｈｒｏｎｏｕｓリソース配分をするためのフラグをＥｎａｂｌｅにし、帯域幅のうち１つ目の１８４３に帯域幅を獲得する要求の受付時間の超過を判断するためのカウンタをスタートさせるとともに、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（８０２）。ＩＲＭからのＬｏｃｋ応答を受け取ったノード１は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅Ｌとｃｈａｎｎｅｌ４を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝０、以前に獲得されているｃｈａｎｎｅｌ＝なし、獲得した帯域幅Ｌ、獲得したｃｈａｎｎｅｌ＝４を一組として保存する（８０３）。ただしノード１がＩＲＭへ帯域幅Ｌとｃｈａｎｎｅｌ４を要求したときに、ノード０はノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（８０５）。そしてノード０はノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を保存する（８０６）。また、同時にＩＲＭであるノード２も、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を保存する（８０４）。
【００１７】
次に、ノード０が帯域幅Ｍとｃｈａｎｎｅｌ２を要求する（８０７）。ノード０からの要求を受け付けたＩＲＭであるノード２は、６２．５μｓ区切りのＩｓｏｃｈｒｏｎｏｕｓリソース配分をするためのフラグがＥｎａｂｌｅであり、まだ要求受付時間内であり、既に獲得されている帯域幅とノード０が獲得しようとしている帯域幅Ｍとの合計が１８４３以下ならば、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（８０８）。ＩＲＭからのＬｏｃｋ応答を受け取ったノード０は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅Ｍとｃｈａｎｎｅｌ２を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝Ｌ、以前に獲得されているｃｈａｎｎｅｌ＝４、獲得した帯域幅Ｍ、獲得したｃｈａｎｎｅｌ＝２を一組として保存する（８０９）。ただしノード０がＩＲＭへ帯域幅Ｍとｃｈａｎｎｅｌ２を要求したときに、ノード１はノード０からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（８１１）。そしてノード１はノード０が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（８１２）。また、同時にＩＲＭであるノード２も、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード０からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（８１０）する。ノード０は１２０μｓ周期で送信するのに必要なＩｓｏｃｈｒｏｎｏｕｓリソースを全て獲得したので、ここでＩｓｏｃｈｒｏｎｏｕｓ送信準備完了となる。
【００１８】
図９は図８のつづきであり、図９は１つ目の例における図６と同様の処理である。ＩＲＭであるノード２において、帯域幅のうち１つ目の１８４３に帯域幅を獲得する要求の受付時間の超過を判断するためのカウンタが要求受付時間を超過したき、ＩＲＭであるノード２は帯域幅で１つ目の３０７２のうち残っている３０７２−（Ｌ＋Ｍ）と、ｃｈａｎｎｅｌ５０を獲得する要求をする（９０１）。ｃｈａｎｎｅｌは既に獲得されているものでなければ何でもよい。次に、ノード２からの要求を受け付けたＩＲＭであるノード２は、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（９０２）。ＩＲＭからのＬｏｃｋ応答を受け取ったノード２は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅３０７２−（Ｌ＋Ｍ）とｃｈａｎｎｅｌ５０を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝Ｌ＋Ｍ、以前に獲得されているｃｈａｎｎｅｌ＝４と２、獲得した帯域幅３０７２−（Ｌ＋Ｍ）、獲得したｃｈａｎｎｅｌ＝５０を一組として保存する（９０３）。ただしノード２がＩＲＭへ帯域幅３０７２−（Ｌ＋Ｍ）とｃｈａｎｎｅｌ５０を要求したときに、ノード０とノード１は、ノード２からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（９０４）、（９０６）。そしてノード０とノード１は、ノード２が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（９０５）、（９０７）。
【００１９】
次に、６２．５μｓ周期のＩｓｏｃｈｒｏｎｏｕｓリソース獲得を要求しているノード１は、獲得された帯域幅が３０７２に達したことを検出し、次の６２．５μｓのための帯域幅として、以前に獲得した帯域幅と同じ帯域幅Ｌと、以前に獲得したｃｈａｎｎｅｌとは異なるｃｈａｎｎｅｌ３をＩＲＭへ要求する（９０８）。
次に、ノード１からの要求を受け付けたＩＲＭであるノード２は、要求に従ってＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタを更新して応答を返す（９０９）。ＩＲＭからのＬｏｃｋ応答を受け取ったノード１は、Ｉｓｏｃｈｒｏｎｏｕｓリソースとして帯域幅Ｌとｃｈａｎｎｅｌ３を獲得したことになり、ここでのＩｓｏｃｈｒｏｎｏｕｓリソース獲得の情報として、以前に獲得されている帯域幅ｐｒｅｂａｎｄ＝３０７２、以前に獲得されているｃｈａｎｎｅｌ＝４と２と５０、獲得した帯域幅Ｌ、獲得したｃｈａｎｎｅｌ＝３を一組として保存し（９１３）、６２．５μｓ周期で送信するのに必要なＩｓｏｃｈｒｏｎｏｕｓリソースを全て獲得したので、Ｉｓｏｃｈｒｏｎｏｕｓ送信準備完了となる（９１４）。ただしノード１がＩＲＭへ帯域幅Ｌとｃｈａｎｎｅｌ３を要求したときに、ノード０はノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求のＬｏｃｋリクエストパケットを検出する（９１１）。そしてノード０はノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（９１２）。また、同時にＩＲＭであるノード２も、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタの書き換えによって、ノード１からＩＲＭへのＩｓｏｃｈｒｏｎｏｕｓリソース要求が行われたことを検出し、ノード１が獲得した帯域幅とｃｈａｎｎｅｌの値を含めた、これまでに獲得された帯域幅とｃｈａｎｎｅｌの値を保存する（９１０）。
【００２０】
図１０は図９のつづきであり、各ノードがＩｓｏｃｈｒｏｎｏｕｓパケットの送信を行う手順を示す。各ノードは自ノードが獲得したＩｓｏｃｈｒｏｎｏｕｓリソースの情報を元に、サイクルスタート後、以前に獲得されている帯域幅ｐｒｅｂａｎｄだけ遅らせて、獲得しているｃｈａｎｎｅｌにＩｓｏｃｈｒｏｎｏｕｓパケットを送信する。まず各ノードがサイクルスタートを受信する（１００１）、（１００２）、（１００３）。ノード１はｐｒｅｂａｎｄ＝０なので（１００４）すぐにｃｈａｎｎｅｌ４に送信しようとする（１００５）が、このとき他ノードはサイクルスタート後すぐにはＩｓｏｃｈｒｏｎｏｕｓパケット送信を行わなず、送信しようとするのはノード１のみなので、ノード１がバスの使用権を獲得して送信する。次に、ノード０がサイクルスタートからｐｒｅｂａｎｄ＝Ｌだけ遅らせて（１００６）、ｃｈａｎｎｅｌ２に送信しようとする（１００７）が、このときノード１のｃｈａｎｎｅｌ４での送信は終っており、他ノードはＩｓｏｃｈｒｏｎｏｕｓパケット送信を行わなず、送信しようとするのはノード０のみなので、ノード０がバスの使用権を獲得して送信する。次にサイクルスタートから帯域幅Ｌ＋Ｍだけ遅れて（１００８）、ノード２がＩＲＭとして帯域幅の３０７２区切りを作るために獲得した分のダミー送信をする（１００９）。次に、ノード１がサイクルスタートからｐｒｅｂａｎｄ＝３０７２だけ遅らせて（１０１０）、ｃｈａｎｎｅｌ３に送信しようとする（１０１１）が、このときノード２の獲得分の空きは終わっており、ノード０のｃｈａｎｎｅｌ２での送信は終っており、送信しようとするのはノード１のみなので、ノード１がバスの使用権を獲得して送信する。
以下、前記（１００１）から（１０１１）を繰り返すことにより、ノード０は１２５μｓ周期で、ノード１は６２．５μｓ周期でのＩｓｏｃｈｒｏｎｏｕｓパケット送信を実現する。
このように、各ノードが、自ノードが獲得する以前に獲得されたＩｓｏｃｈｒｏｎｏｕｓリソースの分だけサイクルスタートから遅らせてからＩｓｏｃｈｒｏｎｏｕｓパケットを送信するので、他のノードの送信タイミングと衝突せずに送信の順番が守られて、かつ、ＩＲＭによって６２．５μｓまでの帯域幅が獲得されているため、同一ノードが１つ目の６２．５μｓで送信したのとは異なるｃｈａｎｎｅｌで送信するパケットは、２つ目の６２．５μｓの区間に送信されるようになる。さらに２つ目の６２．５μｓの区間でのＩｓｏｃｈｒｏｎｏｕｓリソース獲得を意識しないノードでは、従来どおり１２５μｓ周期での送信をすることができる。
【００２１】
また、以上の例においては、ＩＲＭであるノード２において、帯域幅のうち１つ目の１８４３に帯域幅を獲得する要求の受付時間の超過を判断するためのカウンタが要求受付時間を超過したとき、ＩＲＭであるノード２は帯域幅で１つ目の３０７２のうち残っている帯域幅を獲得する処理を実行するようにしていたが（６０１）、（９０１）、６２．５μｓ周期を要求するノード１がＩＲＭに、１つ目の１８４３に帯域幅を獲得する要求受付終了の要求を出し、ノード１からの前記要求受付終了の要求を受け取ったＩＲＭであるノード２は１つ目の３０７２のうち残っている帯域幅を獲得する処理を実行するようにする方法も考えられる。
さらに図３に示したように帯域幅を３分割して、ＩＲＭによる周期区切りの帯域幅獲得処理を２回行うようにし、４１．６μｓ周期での送信を要求するノードは帯域幅とｃｈａｎｎｅｌを３つずつ獲得すれば、４１．６μｓ周期でのＩｓｏｃｈｒｏｎｏｕｓパケット送信が実現できる。
【００２２】
【発明の効果】
以上述べたように、本発明の方法によれば、ＩＥＥＥ１３９４シリアルバスに、Ｉｓｏｃｈｒｏｎｏｕｓ転送機能と、Ｉｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）機能とを備えた少なくともひとつのＩＥＥＥ１３９４通信装置が接続されているネットワークでのＩｓｏｃｈｒｏｎｏｕｓ転送方法であって、ＩＲＭへのＬｏｃｋトランザクションをＩｓｏｃｈｒｏｎｏｕｓ対応の全ノードが常に監視し、前記ＬｏｃｋトランザクションがＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスである場合は、各ノードは獲得された帯域幅とｃｈａｎｎｅｌの値から、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間を計算して保存し、前記ＩＲＭのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥレジスタとＣＨＡＮＮＥＬＳ＿ＡＶＡＩＬＡＢＬＥレジスタへのアクセスがあるたびに前記計算と保存を繰り返し、前記保存については自ノードが帯域幅とｃｈａｎｎｅｌを獲得するたびに前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間と獲得した帯域幅と獲得したｃｈａｎｎｅｌとの組として保存し、ＩＲＭはノードからの１２５μｓ以下の周期を要求する周期要求を受付た後、一定時間の後に、残りのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥのうち１要求周期時間終わりまでの帯域幅を獲得し、前記１２５μｓ以下の周期を要求したノードはＬｏｃｋトランザクションを監視することにより、ネットワーク上のノードによって獲得された帯域幅の合計が要求周期時間に達したことを判別し、前回獲得した帯域幅と同じだけの帯域幅と、前回獲得したｃｈａｎｎｅｌとは異なるｃｈａｎｎｅｌを次の周期の分として獲得し、１２５μｓの中に前記要求周期時間が入る数だけＩＲＭによる前記１要求周期時間終わりまでの帯域幅の獲得と要求ノードによる帯域幅の獲得を繰り返し、要求ノードが獲得する前記ｃｈａｎｎｅｌは１２５μｓ内に送信する数だけ異なるｃｈａｎｎｅｌ番号を獲得し、獲得した帯域幅とｃｈａｎｎｅｌのそれぞれについて、自ノードが各帯域幅とｃｈａｎｎｅｌを獲得した時点での前記サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間だけサイクルスタートから遅らせてＩｓｏｃｈｒｏｎｏｕｓパケットの送信をするという手順をとっているので、送信側は自ノードより先に獲得された帯域幅とｃｈａｎｎｅｌから、先にバスが使用される時間を計算し、自ノードからの送信を前記計算した時間だけサイクルスタートから遅らせることによって、自ノードからの送信が他ノードからの送信と重なってアービトレーションで衝突するのを避けるようにＩｓｏｃｈｒｏｎｏｕｓ転送をスケジューリングすることができ、同じｃｈａｎｎｅｌのパケットが次に出るまでの時間を一定にすることができ、ＩＲＭによって１２５μｓ以下の周期時間でＩｓｏｃｈｒｏｎｏｕｓリソースを区切ることができ、ノードは要求周期ごとのＩｓｏｃｈｒｏｎｏｕｓリソースを獲得することができ、１２５μｓの中では異なるｃｈａｎｎｅｌを使って送信するので結果として１２５μｓ以下の周期で送信することができるようになるという効果がある。
【００２３】
さらに本発明は、ＩＲＭはノードからの１２５μｓ以下の周期を要求する周期要求を受付た後、残りのＢＡＮＤＷＩＤＴＨ＿ＡＶＡＩＬＡＢＬＥのうち１要求周期時間終わりまでの帯域幅を獲得する処理は、要求ノードがＩＲＭへ帯域幅獲得処理実行の時期を指示し、ＩＲＭが帯域幅を獲得し、その後に要求ノードが次の周期のための帯域幅を獲得するという手順をとっているので、ＩＲＭによる１２５μｓ以下の周期時間でＩｓｏｃｈｒｏｎｏｕｓリソースを区切るタイミングを要求ノード側でコントロールすることができるようになるという効果がある。
【図面の簡単な説明】
【図１】本発明の方法を適用したＩｓｏｃｈｒｏｎｏｕｓリソースの分割と６２．５μｓサイクルの構成図
【図２】本発明の方法を適用したＩｓｏｃｈｒｏｎｏｕｓサイクルの構成図
【図３】本発明の方法を適用したＩｓｏｃｈｒｏｎｏｕｓリソースの分割と４１．６μｓサイクルの構成図
【図４】１つのノードが６２．５μｓサイクルで送信する場合の処理手順を示すフローチャート（その１）
【図５】１つのノードが６２．５μｓサイクルで送信する場合の処理手順を示すフローチャート（その２）
【図６】１つのノードが６２．５μｓサイクルで送信する場合の処理手順を示すフローチャート（その３）
【図７】１つのノードが６２．５μｓサイクルで送信する場合の処理手順を示すフローチャート（その４）
【図８】６２．５μｓサイクルで送信するノードと１２５μｓで送信するノードがある場合の処理手順を示すフローチャート（その１）
【図９】６２．５μｓサイクルで送信するノードと１２５μｓで送信するノードがある場合の処理手順を示すフローチャート（その２）
【図１０】６２．５μｓサイクルで送信するノードと１２５μｓで送信するノードがある場合の処理手順を示すフローチャート（その３）
【図１１】ＩＥＥＥ１３９４通信装置からなるネットワークの構成例を示す図
【図１２】従来の方法を適用したＩｓｏｃｈｒｏｎｏｕｓサイクルの構成図
【図１３】従来の方法の送信ノードの処理手順を示すフローチャート（その１）
【図１４】従来の方法の送信ノードの処理手順を示すフローチャート（その２）
【図１５】従来の方法の送信ノードの処理手順を示すフローチャート（その３）
【図１６】従来の方法の送信ノードの処理手順を示すフローチャート（その４）
１０１  ＢＡＮＤＷＩＤＴＨ全体
１０２  ＢＡＮＤＷＩＤＴＨの２分割
１０３  ６２．５μｓサイクルの構造
１０４  サイクルスタートパケット
１０５  ノード１がｃｈ４に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１０６  ノード０がｃｈ３に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１０７  ＩＲＭにより獲得される帯域幅ａ１
１０８  ノード１がｃｈ２に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１０９  ノード０がｃｈ１に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１１０  ＩＲＭにより獲得される帯域幅ａ２
２０１  ノード１におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング（１）
２０２  ノード０におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング（１）
２０３  ＩＲＭにおける調整帯域幅の区間
２０４  ノード１におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング（２）
２０５  ノード０におけるＩｓｏｃｈｒｏｎｏｕｓパケットの送信タイミング（２）
２０６  ｃｈ４の送信に使用される、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間
２０７  ｃｈ４とｃｈ３の送信に使用される、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間
２０８  ｃｈ４とｃｈ３の送信とＩＲＭ獲得分ａ１に使用される、サイクルスタートからａ１区間終了までにかかる時間
２０９  ｃｈ４とｃｈ３とａ１とｃｈ２に使用される、サイクルスタートからＩｓｏｃｈｒｏｎｏｕｓパケット転送終了までにかかる時間
３０２  ＢＡＮＤＷＩＤＴＨの３分割
３０３  ４１．６μｓサイクルの構造
１１０１  ＩＥＥＥ１３９４通信機器Ａ
１１０２  ＩＥＥＥ１３９４通信機器Ｂ
１１０３  ＩＥＥＥ１３９４通信機器Ｃ
１１０４  Ｉｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（ＩＲＭ）
１１０５  Ｃｙｃｌｅ  Ｍａｓｔｅｒ（ＣＭ）
１１０６  ＩＥＥＥ１３９４ケーブル
１２０１  ｃｈａｎｎｅｌ４に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１２０２  ｃｈａｎｎｅｌ２に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
１２０３  ｃｈａｎｎｅｌ３に送信するＩｓｏｃｈｒｏｎｏｕｓパケット
【図１】
2004282565.tif 000003
【図２】
2004282565.tif 000004
【図３】
2004282565.tif 000005
【図４】
2004282565.tif 000006
【図５】
2004282565.tif 000007
【図６】
2004282565.tif 000008
【図７】
2004282565.tif 000009
【図８】
2004282565.tif 000010
【図９】
2004282565.tif 000011
【図１０】
2004282565.tif 000012
【図１１】
2004282565.tif 000013
【図１２】
2004282565.tif 000014
【図１３】
2004282565.tif 000015
【図１４】
2004282565.tif 000016
【図１５】
2004282565.tif 000017
【図１６】
2004282565.tif 000018