(57)【要約】      （修正有）【課題】従来固定であったサイクル時間Ｎを可変にすることで、従来、非同期転送期間の保証などで最小化できなかった遅延時間について、シリアルバスの最小パケット長のレンジまで小さくした通信システムを提供する。【解決手段】システムバス１６で相互に接続されたサイクルマスタノード１、ノード２及びノード３とを備え、アイソクロナス転送を行う通信システムであり、サイクルマスタノード１は、アイソクロナス転送のサイクル時間Ｎを変更するサイクルマネジャ１２４を備え、サイクルマネジャ１２４に設定されたサイクル時間Ｎ毎にサイクルスタートパケットＣをシステムバス１６に転送する。ノード２やノード３はサイクルスタートパケットＣに応じて、アイソクロナスパケットＡをシステムバス１６に転送する。【選択図】  図５
2006333142.tif 000002
【特許請求の範囲】
【請求項１】
システムバスで相互に接続されたサイクルマスタノードとノードとを備え、アイソクロナス転送を行う通信システムにおいて、
前記サイクルマスタノードは、アイソクロナス転送のサイクル時間を設定し、前記サイクル時間毎にサイクルスタートパケットを前記システムバスに転送し、
前記ノードは前記サイクルスタートパケットに応じて、アイソクロナスパケットを前記システムバスに転送する
通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記サイクルマスタノードは、
前記サイクル時間を設定するためのサイクル設定用パケットを前記ノードに転送し、
前記ノードは、前記サイクル設定用パケットを受信すると前記サイクル時間を設定し、前記サイクルマスタノードに対して確認パケットを転送し、
前記サイクルマスタノードは、前記サイクル設定用パケットを転送した全てのノードから前記確認パケットを受信すると、前記サイクル時間毎に前記サイクルスタートパケットをシステムバスに転送する
通信システム。
【請求項３】
請求項２に記載の通信システムにおいて、
前記サイクル設定用パケットを受信した前記ノードは、所定のサイクル変更用待ち時間の間、データの転送を停止する
通信システム。
【請求項４】
請求項２又は３に記載の通信システムにおいて、
前記サイクル設定用パケットは非同期方式でノードに転送され、前記ノードは、確認パケットとして非同期方式でアクノリッジパケットを前記サイクルマスタノードに転送する
通信システム。
【請求項５】
請求項２から４いずれか１項に記載の通信システムにおいて、
前記サイクルマスタノードは、前記サイクル設定用パケットを転送した全てのノードから前記確認パケットを受信すると、前記システムバスをリセットし、前記サイクル時間毎に前記サイクルスタートパケットをシステムバスに転送する
通信システム。
【請求項６】
請求項１から５いずれか１項に記載の通信システムにおいて、前記システムバスに接続されるサイクルマスタノードであって、
アイソクロナス転送のサイクル時間を設定するためのサイクル時間設定用レジスタを有し、サイクル時間設定用レジスタを参照してサイクル時間を指定するサイクルマネジャと、
サイクルマネジャに指定されたサイクル時間毎にサイクルスタートパケットを発行するためのサイクルスタートパケット転送要求を発行するサイクルマスタと、
前記サイクルマスタからの転送要求に応じて、前記サイクルスタートパケットを作成するサイクル管理回路と、
前記作成されたサイクルスタートパケットを前記シリアルバス上に転送する送受信回路とを備え、
前記通信システムにおける現在のサイクル時間を新たなサイクル時間に変更する
サイクルマスタノード。
【請求項７】
請求項６に記載のサイクルマスタノードにおいて、
前記サイクルマネジャは、前記サイクル時間を設定するためのサイクル設定用パケットの転送要求を前記サイクル管理回路に発行し、
前記サイクル管理回路は、前記転送要求に基づき前記サイクル設定用パケットを作成し、
前記送受信回路は、前記サイクル設定用パケットを前記ノードに転送する
サイクルマスタノード。
【請求項８】
請求項７に記載のサイクルマスタノードにおいて、
前記サイクルマスタは、サイクル設定用パケットを転送した全てのノードから前記サイクル設定用パケットに対する確認パケットを受信すると、前記サイクルスタートパケットの転送要求を前記サイクル管理回路に発行する
サイクルマスタノード。
【請求項９】
請求項６から８いずれか１項に記載のサイクルマスタノードにおいて、
サイクル設定用パケットを転送した全てのノードから前記サイクル設定用パケットに対する確認パケットを受信すると前記システムバスをリセットするためのバスリセット要求を発行するバスマネジャと、
前記バスリセット要求に応じて、システムバスのリセットを実行するバス制御回路とを更に備える
サイクルマスタノード。
【請求項１０】
システムバスで相互に接続されたサイクルマスタノードとノードとを備え、アイソクロナス転送を行う通信システムにおいて、
前記サイクルマスタノードが、アイソクロナス転送のサイクル時間を設定するステップと、
前記サイクルマスタノードが、前記サイクル時間毎にサイクルスタートパケットを前記システムバスに転送するステップと、
前記ノードが、前記サイクルスタートパケットに応じて、アイソクロナスパケットを前記システムバスに転送するステップとを具備する
通信方法。
【請求項１１】
請求項１０に記載の通信方法において、
前記サイクルマスタノードが、前記サイクル時間を設定するためのサイクル設定用パケットを前記ノードに転送するステップと、
前記ノードが、
前記サイクル設定用パケットを受信すると前記サイクル時間を設定するステップと、
前記サイクルマスタノードに対して確認パケットを転送するステップとを更に具備し、
前記サイクルマスタノードが、前記サイクル時間毎にサイクルスタートパケットを前記システムバスに転送するステップは、
前記サイクル設定用パケットを転送した全てのノードから前記確認パケットを受信した後に実行される
通信方法。
【請求項１２】
請求項１１に記載の通信方法において、
前記サイクル設定用パケットを受信した前記ノードが、所定のサイクル変更用待ち時間の間、データの転送を停止するステップを更に具備する
通信方法。
【請求項１３】
請求項１１又は１２に記載の通信方法において、
前記サイクルマスタノードが、前記サイクル時間を設定するためのサイクル設定用パケットを前記ノードに転送するステップにおいて、前記サイクルマスタノードは、前記サイクル設定用パケットを非同期方式でノードに転送し、
前記サイクルマスタノードが、前記サイクル時間毎にサイクルスタートパケットを前記システムバスに転送するステップにおいて、前記ノードは、確認パケットとして非同期方式でアクノリッジパケットを前記サイクルマスタノードに転送する
通信方法。
【請求項１４】
請求項１１から１３いずれか１項に記載の通信方法において、
前記サイクルマスタノードが、
前記サイクル設定用パケットを転送した全てのノードから前記確認パケットを受信した後に、前記システムバスをリセットするステップを更に含み、
前記サイクルマスタノードが、前記サイクル時間毎にサイクルスタートパケットを前記システムバスに転送するステップは、
前記システムバスをリセットした後に実行される
通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、ノード及び通信方法に関し、特にリアルタイム性を有するシリアルインターフェースを備える通信システム、そこに使用されるサイクルマスタノード及び通信方法に関する。
【背景技術】
【０００２】
近年、リアルタイム性を備え、高速、高機能なマルチメディア対応のシリアルインターフェースの規格としてＩＥＥＥ１３９４が注目されている。ＩＥＥＥ１３９４は、デジタルビデオカメラやハードディスクなど、高速・大容量のデータ転送が要求される周辺機器との接続に用いられる。ＩＥＥＥ１３９４の通信速度は１００Ｍｂｉｔ／ｓｅｃ〜８００Ｍｂｉｔ／ｓｅｃと高速であり、アイソクロナス転送（Ｉｓｏｃｈｒｏｎｏｕｓ  ｔｒａｎｓｍｉｓｓｉｏｎ）、又は非同期転送（Ａｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｍｉｓｓｉｏｎ）によってデータを転送する。アイソクロナス転送は、ＩＥＥＥ１３９４の他にＵＳＢ等のシリアルインターフェースで、特にリアルタイム性を要求する周辺機器に対して用いられる転送モードである。マルチメディアに適したアイソクロナス転送では、あらかじめ一定時間（ＩＥＥＥ１３９４では１２５μ秒）のサイクル時間の中で各デバイスに対して少しずつ転送時間が与えられてデータが転送される。このため、どんなに急なアクセスが発生しても、必ず、各デバイスに与えられた転送時間分だけデータは転送され得る。
【０００３】
図１から図４を参照して、従来技術によるＩＥＥＥ１３９４に準拠した通信システムが説明される。
（従来技術によるノード構成）
図１は、上述の規格のインターフェースによってシリアルバスに接続される装置（ノード）の従来例におけるブロック図である。一例としてＩＥＥＥ１３９４に準拠した構成が示される。図１を参照して、シリアルバス管理部１２０のサイクルマスタ１２３０が１２５μｓのサイクル時間を管理し、１２５μ秒毎にサイクルスタートパケットＣを送信するためのサイクルスタート信号を発行する。サイクルマスタ１２３０からのサイクルスタート信号に基づきリンク層１４０のサイクル管理回路１４１０は、サイクルスタートパケットＣを、物理層１５０を介して送信し、シリアルバス１６０全体の時間管理を可能にする。
【０００４】
シリアルバス管理部１２０及びトランザクション層１３０は、アプリケーション／ソフトウェアドライバ１１０の制御を受ける。シリアルバス管理部１２０は、バスマネジャ１２１０、アイソクロナスリソースマネジャ（ＩＲＭ）１２２０、サイクルマスタ１２３０、ノードコントローラ１２５０を備え、シリアルバス１６０のさまざまなレイヤの監視と制御をするプロトコル、サービス、動作手順の集合体である。又、ノードによってはバスマネジャ１２１０やＩＲＭ１２２０を持たないものもあり、その場合には、別ノードがその役割を担うこともできる。バスマネジャ１２１０が存在しない場合には、ＩＲＭ１２２０がバスマネジャ１２１０の機能の一部を肩代わりすることもある。
【０００５】
バスマネジャ１２１０は、電源管理機能や、シリアルバス１６０の性能を最適化し、トポロジーマップやスピードマップ等を実装する機能を持つ。ＩＲＭ１２２０は、アイソクロナス転送のためのリソースの管理を行う。シリアスバス上にバスマネジャがない場合、ＩＲＭ１２２０は、ノードの１つをサイクルマスタ１２３０に指定する。サイクルマスタ１２３０は、１２５μ秒毎にサイクルスタートパケットを発行するためのサイクルスタート要求信号をリンク層１４０のサイクル管理回路１４１０に発行する。ノードコントローラ１２５０は、各ノードの状態（接続・利用状況）を監視する機能である。
【０００６】
トランザクション層１３０は、ＩＥＥＥ１３９４の論理層の一つで、シリアルバス１６０用に規定されているプロトコル・レイヤ・スタックの中で、要求／応答プロトコルを定義し、読み込み／書き込み、ロック機能を果たす層（レイヤ）である。
【０００７】
リンク層１４０は、トランザクション層１３０と物理層１５０との中間に存在し、両者のインターフェースを行い、アドレッシング、データ検証、データフレーム化を実行する。リンク層１４０は、サイクル管理回路１４１０と、データ転送回路１４２０とを備え、アシンクロナスサブアクションとアイソクロナスサブアクションの処理を行う。リンク層１４０のサービスには大きく分けてリンクリクエスタからリンクレスポンダへのパケット送信（Ｒｅｑｕｅｓｔ）、リンクレスポンダによるパケット受信（Ｉｎｄｉｃａｔｉｏｎ）、リンクレスポンダによるＡｃｋ送信（Ｒｅｓｐｏｎｓｅ）、リンクリクエスタによるＡｃｋ受信（Ｃｏｎｆｉｒｍａｔｉｏｎ）の４つがある。
【０００８】
サイクル管理回路１４１０は、サイクルマスタ１２３０からのサイクルスタート要求信号に基づき、１２５μ秒毎にサイクルパケットＣをシリアルバス１６０に出力する。データ転送回路１４２０は、アプリケーションで作成されたパケットデータを、物理層１５０に転送する。
【０００９】
物理層１５０は、バス制御回路１５１０と送受信回路１５２０とを備える。バス制御回路１５１０は、リンク層１４０からの要求により調停を行い、シリアルバス１６０上において、ただ１つのノードがデータ伝送を行えることを保証する。又、送受信回路１５２０は、データ転送回路１４２０から転送されるパケットデータをシリアルバス１６０に転送する。この際、アイソクロナスサブアクションの場合、チャネルを確保してパケットデータを転送する。
【００１０】
図２は、シリアルバスによって接続されたノード１〜３で構成される通信システムの概念図である。例えば、以下、サイクル時間Ｎ−Ａにおいてノード１〜３から送信されるアイソクロナスパケットＩの追番として、それぞれＡ１〜Ａ３を付し、同様に、サイクル時間Ｎ−Ｂ及びＣにおいて送信されるアイソクロナスパケットＩの追番としてそれぞれＢ１〜Ｂ３、Ｃ１〜Ｃ３が付される。又、サイクル時間Ｎ−Ａにおいてノード１〜３から送信される非同期パケットＡの追番として、それぞれＡ１〜Ａ３を付し、同様に、サイクル時間Ｎ−Ｂ及びＣにおいて送信される非同期パケットＩの追番としてそれぞれＢ１〜Ｂ３、Ｃ１〜Ｃ３が付される。
【００１１】
（従来技術によるパケット転送処理）
図３を参照して、従来技術においてシリアルバス１６０に送信されるパケットの送信タイミングの一例が説明される。図３は、従来技術による通信システムにおけるシリアルバス１６０上に転送されるパケットの概念図である。図３を参照して、ノード１がサイクルマスタノードに指定された場合、ノード１のサイクルマスタ１２３０から、１２５μ秒毎にサイクルスタート要求信号がサイクル管理回路１４１０に発行され、サイクル時間Ｎを管理するためのサイクルスタートパケットＣがシリアルバス１６０に転送される。サイクルスタートパケットＣが転送されてからサイクル時間Ｎの間、調停によってバスの制御権を得たノードからアイソクロナスパケットＩがシリアルバス１６０上に転送される。又、空いている帯域を利用して非同期パケットＡが指定のノードに転送される。例えば、サイクル時間Ｎ−Ａでは、サイクルスタートパケットＣ−Ａ、アイソクロナスパケットＩ−Ａ１〜Ａ３がシリアルバス１６０に転送され、非同期パケットＡ−Ａ１及びＡ２が指定のノードに転送される。サイクル時間Ｎ−Ｂでは、サイクルスタートパケットＣ−Ｂ、アイソクロナスパケットＩ−Ｂ１〜Ｂ３がシリアルバス１６０に転送され、非同期パケットＡ−Ｂ１及びＢ２が指定のノードに転送される。サイクル時間Ｎ−Ｃでは、サイクルスタートパケットＣ−Ｃ、アイソクロナスパケットＩ−Ｃ１〜Ｃ３がシリアルバス１６０に転送され、非同期パケットＣ−Ｃ１及びＣ２が指定のノードに転送される。
【００１２】
ＩＥＥＥ１３９４では、サイクル時間Ｎは１２５μ秒周期と規定されている。通常、１サイクルに１回の同期パケットの送信権が与えられるため、この方式では１２５μ秒に一回がパケット転送の最小間隔となる。このため、図２に示されるノード１がアイソクロナスパケットＩ−Ａ１及びＢ１を送信する場合、アイソクロナスパケットＩ−Ａ１を送信してから、次のサイクルパケットＣ−Ｂを待ってからアイソクロナスパケットＩ−Ｂ１を送信する必要がある。
【００１３】
このようなサイクル時間Ｎに起因する遅延時間を短縮する技術が、特開２００４−２８２５６５号公報に開示されている（特許文献１参照）。
【００１４】
特開２００４−２８２５６５号公報には、ＩＥＥＥ１３９４を前提に、同期転送期間において帯域確保の手順をアイソクロナスリソースマネジャ（ＩＲＭ：Ｉｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ）にもたせることによって、１２５μｓに数回のパケット転送を行う方式が開示されている。特開２００４−２８２５６５号公報に記載のアイソクロナス転送方法は、シリアルバスに接続されたＩＲＭを備えたＩＥＥＥ１３９４通信装置において、以下の（１）から（７）のステップを行うことである。（１）サイクルスタートからアイソクロナスパケット転送終了までの時間を計算する。（２）自ノードが帯域幅とチャネルを獲得するたびにサイクルスタートからアイソクロナスパケット転送終了までにかかる時間と獲得した帯域幅と獲得したチャネルとの組を保存する。（３）ＩＲＭが１要求周期時間終わりまでの帯域幅を獲得する。（４）要求時間に達したことを判別する。（５）前回獲得したチャネルと異なるチャネルを次の分として獲得する。（６）１２５μ秒内に送信する数だけ異なるチャネル番号を獲得する。（７）サイクルスタートから遅らせてアイソクロナスパケットを送信する。
【特許文献１】特開２００４−２８２５６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ＩＥＥＥ１３９４では、サイクル時間Ｎは１２５μ秒周期と規定されている。通常、１サイクルに１回の同期パケットの送信権が与えられるため、この方式では１２５μ秒に一回がパケット転送の最小間隔となる。このため、最大１２５μｓの遅延時間が生じてしまう。このように、データをアイソクロナス転送する際、最大でサイクル時間分の待ち時間が生じ、転送遅延時間は増大し、転送速度に重大な影響を与えてしまう。
【００１６】
特開２００４−２８２５６５号公報に記載のアイソクロナス転送方法では、同一サイクル内で複数回の同期パケットの送信を可能にしているため、パケット転送の最小間隔を小さくすることは可能となる。しかし、ＩＥＥＥ１３９４では同期パケット転送期間は最大でも１００μｓと規定されているため、非同期転送の期間が（１２５μｓ−１００μｓ＝）２５μｓ間必ず確保されなければならず、帯域保証のできない時間（最低２５μｓ）が存在してしまう。このため、遅延時間の大きい通信システムとなる。
【００１７】
例えば、ネットワークで接続された撮影装置とデータ処理装置とで構成され、撮影された画像情報に基づいて操作対象物の動作を制御するシステムの場合、画像情報を転送する転送速度は、操作対象物を制御する上で重要な要素となる。図４を参照して、撮影装置は、撮影範囲内において操作対象物を撮影しネットワーク（例えば、ＩＥＥＥ１３９４を利用）を介してその対象物の画像情報をデータ処理／制御用装置に転送する。データ処理／制御用装置は、転送された画像情報を処理してその操作対象物をつかむ、その動作を止める等の制御を実行する（図４のＣａｓｅ（１））。このようなシステムにおいて、「操作対象物が撮影範囲内を通過するのにかかる時間（Ｘ＋Ｙ）＜（撮影処理時間＋データ転送時間＋データ処理時間＋制御アクション時間）」となる場合、制御は成功しない（図４のＣａｓｅ（２））。この際、高速ネットワークを使用することによりデータ転送の実時間は短縮できるが、そのサイクル時間が大きい場合、最大でサイクル時間分の待ち時間が生じ、ネットワークの高速性の利点を活かすことができない。
【課題を解決するための手段】
【００１８】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための手段］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１９】
本発明による通信システムは、システムバス（１６）で相互に接続されたサイクルマスタノード（１）とノード（２、３）とを備え、アイソクロナス転送を行う通信システムである。サイクルマスタノード（１）は、アイソクロナス転送のサイクル時間（Ｎ）を設定し、サイクル時間（Ｎ）毎にサイクルスタートパケット（Ｃ）をシステムバス（１６）に転送する。ノード（２、３）はサイクルスタートパケット（Ｃ）に応じて、アイソクロナスパケット（Ａ）をシステムバス（１６）に転送する。
【００２０】
このように、本発明では、従来固定であったサイクル時間Ｎを可変にすることで、従来、非同期転送期間の保証などで最小化できなかった遅延時間について、シリアルバスの最小パケット長のレンジまで小さくした通信システムを提供することができる。
【００２１】
サイクルマスタノード（１）は、サイクル時間（Ｎ）を設定するためのサイクル設定用パケット（ＣＳ）をノード（２、３）に転送する。ノード（２、３）は、サイクル設定用パケット（ＣＳ）を受信するとサイクル時間（Ｎ）を設定し、サイクルマスタノード（１）に対して確認パケットを転送する。サイクルマスタノード（１）は、サイクル設定用パケット（ＣＳ）を転送した全てのノードから前記確認パケットを受信すると、前記サイクル時間毎に前記サイクルスタートパケットをシステムバスに転送する。
【００２２】
このように本発明による通信システムは、アイソクロナスパケットを送信するタイミングを可変にする情報を他ノード（２、３）に伝播させ、新しいサイクル時間Ｎでの通信を開始するための機能を備える。
【００２３】
又、サイクル設定用パケット（ＣＳ）を受信したノード（２、３）は、所定のサイクル変更用待ち時間の間、データ（アイソクロナスパケットや非同期パケット）の転送を停止する。このため、サイクル時間Ｎの設定変更までデータの送受を待機させることができる。
【００２４】
サイクル設定用パケット（ＣＳ）は、好適には非同期方式でノードに転送され、ノード（２、３）は、確認パケットとして、好適には非同期方式でアクノリッジパケットをサイクルマスタノード（１）に転送する。
【００２５】
サイクルマスタノード（１）は、サイクル設定用パケット（ＣＳ）を転送した全てのノード（２及び３）から確認パケットを受信すると、システムバス（１６）をリセットし、サイクル時間（Ｎ）毎にサイクルスタートパケット（Ｃ）をシステムバス（１６）に転送することが好適である。
【００２６】
サイクルマスタノード（１）は、アイソクロナス転送のサイクル時間（Ｎ）を設定するためのサイクル時間設定用レジスタを有し、サイクル時間設定用レジスタを参照してサイクル時間（Ｎ）を指定するサイクルマネジャ（１２４）と、サイクルマネジャ（１２４）に指定されたサイクル時間（Ｎ）にサイクルスタートパケット（Ｃ）を発行するためのサイクルスタートパケット転送要求を発行するサイクルマスタ（１２３）と、サイクルマスタ（１２３）からの転送要求に応じて、サイクルスタートパケット（Ｃ）を作成するサイクル管理回路（１４１）と作成されたサイクルスタートパケット（Ｃ）をシリアルバス（１６）上に転送する送受信回路（１５２）とを備える。このような構成により、通信システムにおける現在のサイクル時間を新たなサイクル時間に変更する。
【００２７】
又、サイクルマスタノード（１）のサイクルマネジャ（１２４）は、サイクル時間（Ｎ）を設定するためのサイクル設定用パケット（ＣＳ）の転送要求をサイクル管理回路（１４１）に発行する。サイクル管理回路（１４１）は、この転送要求に基づきサイクル設定用パケット（ＣＳ）を作成し、送受信回路を介してサイクル設定用パケット（ＣＳ）をノード（２、３）に転送する。
【００２８】
サイクルマスタノード（１）のサイクルマスタ（１２３）は、サイクル設定用パケット（ＣＳ）を転送した全てのノード（２及び３）からサイクル設定用パケット（ＣＳ）に対する確認パケットを受信すると、サイクルスタートパケット（Ｃ）の転送要求をサイクル管理回路（１４１）に発行する。
【００２９】
又、好適には、サイクル設定用パケット（ＣＳ）を転送した全てのノード（２及び３）からサイクル設定用パケット（ＣＳ）に対する確認パケットを受信するとシステムバス（１６）をリセットするためのバスリセット要求を発行するバスマネジャ（１２１’）と、バスリセット要求に応じて、システムバスのリセットを実行するバス制御回路（１５１）とを更に備える。このため、サイクル時間（Ｎ）が設定される前に、一度システムバス１６をリセットし、構築しなおすことにより、サイクル時間変更時の不具合を抑えることができる。
【００３０】
以上のように、本発明によって、従来固定であったサイクル管理回路において固定であった転送サイクルを可変にして、特開２００４−２８２５６５号にあるような非同期転送期間の制限を受けず、最低パケット長（ＩＥＥＥ１３９４の場合、数百ｎｓ）まで遅延時間を短縮することが可能となる。
【発明の効果】
【００３１】
本発明による通信システム及び通信方法によれば、アイソクロナス転送においてサイクル時間の保証に起因する遅延時間を低減することができる。
【発明を実施するための最良の形態】
【００３２】
以下、添付図面を参照して、本発明による通信システム及び通信方法の実施の形態が説明される。本発明による通信システムは、転送モードとしてアイソクロナス転送を用いたシリアルインターフェースを利用したＩＥＥＥ１３９４通信システムが好適に用いられる。以下では、同一及び相当部分には同一符号を付して説明される。
【００３３】
（実施の形態における構成）
本発明による通信システムは、図２に示されるように、例えば、ＩＥＥＥ１３９４で規定されるインターフェースにより、シリアルバス１６で相互に接続されたノード１〜３から構成される。図５は、本発明による通信システムにおいて、シリアルバス１６に接続するノードの実施の形態におけるブロック図である。図５を参照して、本発明に係るノードは、パケットデータの作成や転送、ノードの制御等を行うアプリケーション／ソフトウェアドライバ１１と、アプリケーション／ソフトウェアドライバ１１に接続され、アプリケーション／ソフトウェアドライバ１１から制御を受けるシリアルバス管理部１２とトランザクション層１３と、リンク層１４と、物理層１５とを備え、物理層１５を介してシリアルバス１６に接続される。
【００３４】
シリアルバス管理部１２は、バスマネジャ１２１、アイソクロナスリソースマネジャ（ＩＲＭ）１２２、サイクルマスタ１２３、サイクルマネジャ１２４、ノードコントローラ１２５を備え、シリアルバス１６のさまざまなレイヤの監視と制御を実行するプロトコル、サービス、動作手順の集合体である。
【００３５】
バスマネジャ１２１は、電源管理機能や、シリアルバス１６の性能を最適化し、トポロジーマップやスピードマップ等を実装する機能を持つ。ＩＲＭ１２２は、アイソクロナス転送のためのリソースの管理を行う。シリアスバス１６上にバスマネジャ１２１がない場合、ＩＲＭ１２２は、ノードの１つをサイクルマスタノードに指定する。サイクルマスタノードのサイクルマスタ１２３は、サイクルマネジャ１２４から指定されたサイクル時間Ｎ毎にサイクルスタートパケットを発行するためのサイクルスタートパケット転送要求をリンク層１４のサイクル管理回路１４１に発行する。サイクルマネジャ１２４はサイクル時間設定用のレジスタを搭載し、ユーザーからの指定（アプリケーションからの指定）によりサイクル時間Ｎを設定し、設定したサイクル時間Ｎをサイクルマスタ１２３に指定する。サイクルマネジャ１２４は、現在のサイクル時間Ｎを変更する際、リンク層１４のサイクル管理回路１４１に対し、サイクル設定用パケットＣＳの転送要求を発行する。サイクル設定用パケットＣＳには、サイクルマネジャ１２４によって設定されたサイクル時間Ｎやサイクル変更用待ち時間が含まれる。サイクル変更用待ち時間は、サイクル設定用パケットＣＳを受け取った全てのノードが、パケットの転送まで待機できるのに充分な時間が設定される。又、サイクルマスタノード以外のノードにおいて、サイクル設定用パケットＣＳを受け取ったサイクルマネジャ１２４は、サイクル設定用パケットＣＳに含まれるサイクル時間Ｎに基づき、サイクル時間設定用のレジスタを更新し、サイクル時間Ｎを変更する。ノードコントローラ１２５は、各ノードの状態（接続・利用状況）を監視する機能である。
【００３６】
トランザクション層１３は、ＩＥＥＥ１３９４の論理層の一つで、シリアルバス１６用に規定されているプロトコル・レイヤ・スタックの中で、要求／応答プロトコルを定義し、読み込み／書き込み、ロック機能を果たす層（レイヤ）である。
【００３７】
リンク層１４は、トランザクション層１３と物理層１５との中間に存在し、両者のインターフェースを行い、アドレッシング、データ検証、データフレーム化を実行する。リンク層１４は、サイクル管理回路１４１と、データ転送回路１４２とを備え、アシンクロナスサブアクションやアイソクロナスサブアクションの処理を行う。
【００３８】
サイクル管理回路１４１は、サイクルマスタ１２３からのサイクルスタート転送要求に基づき、通常１２５μ秒毎にサイクルスタートパケットＣをシリアルバス１６に転送する。又、サイクル管理回路１４１は、サイクルマネジャ１２４からのサイクル設定用パケットの送信要求に基づいて、サイクル設定パケットＣＳ作成し、シリアルバス１６に接続された他のノードに転送する。この際、サイクル設定用パケットＣＳはパケット到着管理のある転送方式、例えば、アシンクロナスサブアクションにより他のノードに転送される。サイクル設定用パケットは、サイクル時間Ｎ毎に、サイクルパケットＣをシリアルバス１６に出力する。データ転送回路１４２は、アプリケーションで作成されたパケットデータを、物理層１５に転送する。
【００３９】
物理層１５は、バス制御回路１５１と送受信回路１５２とを備える。バス制御回路１５１は、リンク層１４からの要求により、調停を行ってシリアルバス１６上を、ただ１つのノードがデータ伝送を行えることを保証する。又、送受信回路１５２は、データ転送回路１４２から転送されるパケットデータをシリアルバス１６に転送する。
【００４０】
（第１の実施の形態）
図６及び図７を参照して、第１の実施の形態における本発明による通信システムのサイクル時間Ｎを変更及びパケット転送処理の動作が説明される。
図６は、第１の実施の形態において、本発明による通信システムにおけるシリアルバス１６上に転送されるパケットの概念図である。
図７は、第１の実施の形態において、本発明による通信システムにおけるサイクル時間Ｎの変更及びサイクル時間Ｎの変更後におけるパケット転送処理のシーケンス図である。
【００４１】
図２を参照して、本実施の形態においてノード１は、ＩＲＭ１２２からサイクルマスタに指定されたサイクルマスタノードである。サイクル時間Ｎを変更する前の通信システムにおいては、図３に示されるように、ノード１のサイクルマスタ１２３は、サイクル時間Ｎ（例えば、ＩＥＥＥ１３９４で規定されるサイクル時間Ｎは１２５μ秒）毎に、サイクルスタート要求信号をサイクル管理回路１４１に発行する。サイクル管理回路１４１は、このサイクルスタート要求信号に基づきサイクルスタートパケットＣをシリアルバス１６上に転送する。サイクルスタートパケットＣが転送されると、調停によってバスの制御を得たノードからアイソクロナスパケットＩがシリアルバス１６上に転送される。又、バスの空いている帯域を用いてノードから非同期パケットＡが指定ノードに転送される。
【００４２】
ノード１のサイクルマネジャ１２４はアプリケーションからの指示によりサイクル時間Ｎを設定し、サイクル設定用パケットＣＳの転送要求をサイクル管理回路１４１に発行する。サイクル管理回路１４１は、この転送要求に基づき、規定のフォーマットのサイクル設定用パケットＣＳを作成する（ステップＳ２）。この際、サイクル設定用パケットＣＳには、サイクル時間Ｎやサイクル変更用待ち時間等を含めて作成される。管理回路１４１は、作成したサイクル設定用パケットＣＳを物理層１５の送受信回路１５２を介してシリアルバス１６に接続されるノード２及びノード３に転送する（ステップＳ４）。サイクル設定用パケットＣＳは、パケット到着管理のある方式で転送される（例えば、ＩＥＥＥ１３９４では、アシンクロナス転送により各ノードに転送される）。この際、シリアルバス１６上には、図６に示されるようにサイクル時間Ｎ−Ｄ（１２５μ秒）の間にサイクルスタートパケットＣ−Ｄ、アイソクロナスパケットＩ−Ｄ１〜Ｄ３、非同期パケットであるサイクル設定用パケットＣＳ、その他の非同期パケットＡ−Ｄ１が転送される。
【００４３】
サイクル設定用パケットＣＳを転送したノード１のデータ転送回路１４２は、アプリケーションによって設定されたサイクル変更用待ち時間（他のノードの全てがパケット転送を中止し、待機できるのに充分な時間）の間、パケットの転送を中止し、待機する（ステップＳ６）。ノード１からサイクル設定用パケットＣＳを受け取ったノード２及びノード３のサイクル管理回路１４１は、転送されたサイクル設定用パケットＣＳが規定のフォーマット（サイクル設定用のフォーマット）であることを確認し、サイクルマネジャ１２４に対しサイクル設定用パケット内のサイクル転送時間Ｎやサイクル設定用待ち時間を伝達する。このサイクルマネジャ１２４は、サイクル設定用パケット内のサイクル転送時間Ｎに基づき、サイクル時間設定用のレジスタを更新する。又、データ転送回路１４２は、サイクル設定用パケットＣＳに対する確認信号として、アクノリッジパケットＡＣＫをノード１に転送する（ステップＳ８、Ｓ１２）。アクノリッジパケットＡＣＫを転送したノード２及びノード３のデータ転送回路１４２は、パケット転送を停止し、待機する（ステップＳ１０、Ｓ１４）。尚、各ノードがサイクル設定パケットＣＳを受信したことをノード１が確認できれば、ノード２及びノード３は非同期転送で転送されるアクノリッジパケットに換えて確認パケットを送信しても構わない。
【００４４】
ノード１のサイクルマスタ１２３は、シリアルバス１６に接続される全てのノード（ここではノード２及び３）からアクノリッジパケットを受信し、サイクル変更用待ち時間が経過すると、サイクルスタートパケットＣ−Ｅの転送要求をサイクル管理回路１４１に発行する。サイクルスタートパケットＣ−Ｅの転送要求を受け付けたサイクル管理回路１４１は、サイクルスタートパケットＣ−Ｅを作成し（ステップＳ１６）、シリアルバス１６に転送する（ステップＳ１８）。
【００４５】
サイクルスタートパケットＣ−Ｅをシリアルバス１６に転送したノード１のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ２０）。又、同様にデータパケットサイクルスタートパケットＣ−Ｅを受信したノード２及び３のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ２２、Ｓ２４）。例えば、図６を参照して、ノード１からアイソクロナスパケットＩ−Ｅ１がシリアルバス１６に転送され、ノード２からアイソクロナスパケットＩ−Ｅ２がシリアルバス１６に転送される。ノード１から指定ノードに対し非同期パケットＡ−Ｅ１が転送される。
【００４６】
ノード１のサイクルマスタ１２３は、サイクルマネジャ１２４によって指定されたサイクル時間Ｎ−Ｅが経過すると、サイクルスタートパケットＣ−Ｆの転送要求をサイクル管理回路１４１に発行する。サイクルスタートパケットＣ−Ｆの転送要求を受け付けたサイクル管理回路１４１は、サイクルスタートパケットＣ−Ｆを作成し（ステップＳ１６）、シリアルバス１６に転送する（ステップＳ１８）。サイクルスタートパケットＣ−Ｆをシリアルバス１６に転送したノード１のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ２０）。又、同様にデータパケットサイクルスタートパケットＣ−Ｆを受信したノード２及び３のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ２２、Ｓ２４）。例えば、図６を参照して、ノード１からアイソクロナスパケットＩ−Ｆ１がシリアルバス１６に転送され、ノード２からアイソクロナスパケットＩ−Ｆ２がシリアルバス１６に転送される。ノード１から指定ノードに対し非同期パケットＡ−Ｆ１が転送される。
【００４７】
このように、ノード１のサイクルマネジャ１２４の指示に基づいて、新しく設定されたサイクル時間Ｎ間隔でサイクルスタートパケットＣは送信され、ノード１〜３は、この新しく設定されたサイクル時間Ｎ毎にアイソクロナスパケットを送信することができる（ステップＳ１６〜Ｓ２４）。
【００４８】
以上のように、サイクルマスタノードであるノード１によって転送されたサイクル設定用パケットＣＳによって、シリアルバス１６に接続された全てのノード１から３は設定（変更）されたサイクル時間Ｎに関する情報を共有し、設定完了までの一定期間（サイクル変更用待ち時間）の間、データパケットの転送を待機することで、シリアルバス全体のサイクル時間Ｎはサイクル時間Ｎ−Ｄからサイクル時間Ｎ−Ｅ（Ｎ−Ｆ）に変更され得る。ここで、サイクル時間Ｎ−ＤがＩＥＥＥ１３９４に規定された１２５μ秒である場合、サイクル時間Ｎ−Ｅ（Ｎ−Ｆ）の時間を１２５μ秒より短い時間に設定することで、ノードから転送されるアイソクロナスパケットＩの最大遅延時間は、１２５μ秒より短いサイクル時間Ｎ−Ｅ（Ｎ−Ｆ）となる。例えば、サイクル時間Ｎ−Ｅ（Ｎ−Ｆ）を最低パケット長（ＩＥＥＥ１３９４の場合、数百ｎｓ）に設定すると、遅延時間は数百ｎｓに短縮される。
【００４９】
（第２の実施の形態）
図８及び図９を参照して、第２の実施の形態における本発明による通信システムのサイクル時間Ｎを変更及びパケット転送処理の動作が説明される。
【００５０】
第２の実施の形態における通信システムのノード１’は、図５に示される構成においてバスマネジャ１２１に換えてバスマネジャ１２１’を備える。バスマネジャ１２１’は、サイクル設定パケットＣＳを受信した全ての他ノードからアクノリッジパケットを受け取るとシステムバス１６のリセット要求を物理層１５に発行する。
【００５１】
図８は、第２の実施の形態において、本発明による通信システムにおけるシリアルバス１６上に転送されるパケットの概念図である。
図９は、第２の実施の形態において、本発明による通信システムにおけるサイクル時間Ｎの変更及びサイクル時間Ｎの変更後におけるパケット転送処理のシーケンス図である。
図２を参照して、本実施の形態においてノード１’は、ＩＲＭ１２２からサイクルマスタに指定されたサイクルマスタノードである。サイクル時間Ｎを変更する前の通信システムにおいては、図３に示されるように、ノード１’のサイクルマスタ１２３は、サイクル時間Ｎ（例えば、ＩＥＥＥ１３９４で規定されるサイクル時間Ｎは１２５μ秒）毎に、サイクルスタート要求信号をサイクル管理回路１４１に発行する。サイクル管理回路１４１は、このサイクルスタート要求信号に基づきサイクルスタートパケットＣをシリアルバス１６上に転送する。サイクルスタートパケットＣが転送されると、調停によってバスの制御を得たノードからアイソクロナスパケットＩがシリアルバス１６上に転送される。又、バスの空いている帯域を用いてノードから非同期パケットＡが指定ノードに転送される。
【００５２】
第２の実施の形態におけるノード１’〜３’のステップＳ３２〜ステップＳ４４までは、第１の実施の形態におけるステップＳ２〜ステップＳ１４と同じであるので説明は省略される。
【００５３】
サイクル設定パケットを送信したノード１’のバスマネジャ１２１’は、シリアルバス１６に接続される全てのノード（ここではノード２’及び３’）からＩＥＥＥ１３９４の非同期転送で変換されるアクノリッジパケット（又は確認パケット）を受信すると、バスリセット発行要求を物理層１５に出し、シリアルバス１６の初期化を行う（ステップＳ４６）。この際、バスマネジャ１２１’から要求を受けた物理層１５はシリアルバス１６に対しバスリセット（Ｂｕｓ  ｒｅｓｔ）、  Ｔｒｅｅ  ＩＤ、  Ｓｅｌｆ  ＩＤを開始する（図８を参照）。通信が可能になり、サイクル変更用待ち時間が経過すると、サイクルスタートパケットＣ−Ｅの転送要求をサイクル管理回路１４１に発行する。サイクルスタートパケットＣ−Ｅの転送要求を受け付けたサイクル管理回路１４１は、サイクルスタートパケットＣ−Ｅを作成し（ステップＳ４８）、シリアルバス１６に転送する（ステップＳ５０）。
【００５４】
サイクルスタートパケットＣ−Ｅをシリアルバス１６に転送したノード１’のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ５２）。又、同様にデータパケットサイクルスタートパケットＣ−Ｅを受信したノード２’及び３’のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ５４、Ｓ５６）。例えば、図８を参照して、ノード１からアイソクロナスパケットＩ−Ｅ１がシリアルバス１６に転送され、ノード２からアイソクロナスパケットＩ−Ｅ２がシリアルバス１６に転送される。ノード１から指定ノードに対し非同期パケットＡ−Ｅ１が転送される。
【００５５】
ノード１’のサイクルマスタ１２３は、サイクルマネジャ１２４によって指定されたサイクル時間Ｎ−Ｅが経過すると、サイクルスタートパケットＣ−Ｆの転送要求をサイクル管理回路１４１に発行する。サイクルスタートパケットＣ−Ｆの転送要求を受け付けたサイクル管理回路１４１は、サイクルスタートパケットＣ−Ｆを作成し（ステップＳ４８）、シリアルバス１６に転送する（ステップＳ５０）。サイクルスタートパケットＣ−Ｆをシリアルバス１６に転送したノード１’のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ５２）。又、同様にデータパケットサイクルスタートパケットＣ−Ｆを受信したノード２及び３のデータ転送回路１４２は、データパケットの転送を再開する（ステップＳ５４、Ｓ５６）。例えば、図８を参照して、ノード１からアイソクロナスパケットＩ−Ｆ１がシリアルバス１６に転送され、ノード２からアイソクロナスパケットＩ−Ｆ２がシリアルバス１６に転送される。ノード１から指定ノードに対し非同期パケットＡ−Ｆ１が転送される。
【００５６】
このように、ノード１のサイクルマネジャ１２４の指示に基づいて、新しく設定されたサイクル時間Ｎ間隔でサイクルスタートパケットＣは送信され、ノード１〜３は、この新しく設定されたサイクル時間Ｎ毎にアイソクロナスパケットを送信することができる（ステップＳ４８〜Ｓ５６）。
【００５７】
以上のように、サイクル時間が設定される前に、一度システムバス１６をリセットし、構築しなおすことにより、サイクル時間変更時の不具合を抑えることができる。このため、第２の実施の形態における通信システムは、第１の実施の形態に比べ、より信頼性の高い通信システムとなる。第１の実施の形態の場合、サイクル時間の変更時におけるデータ転送の中止・待機・再開のフェーズは不安定になり、シリアルバス１６全体を不安定にする可能性がある。ただし、第２の実施の形態では、バスの再構築を行うため、第１の実施の形態よりもサイクル時間の変更後におけるデータ転送再開までに時間がかかる。
【００５８】
以上のように本発明による通信システムでは、シリアルバス１６に接続されるすべてのノード１〜３がサイクル設定用パケットＣＳによる伝達によってサイクル時間情報を共有し、設定完了までの一定期間パケットの転送を待機することで、シリアルバス１６全体のパケット転送サイクル（サイクル時間Ｎ）を変更することができる。この設定により、シリアルバス伝送システムの遅延時間を最低パケット長（例えばＩＥＥＥ１３９４の場合、数百ｎｓ）まで小さくすることが可能となる。
【００５９】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。同期パケットを送信するタイミングを可変にする手段として、サイクル可変用のレジスタ及びそれを他装置に伝播させ新しいサイクルでの通信を開始するための機能を備えていれば、本実施の形態で用いたＩＥＥＥ１３９４通信システムに換えて、８Ｂ１０Ｂ又はＳｃｒａｍｂｌｅｒ／ｄｅｓｃｒａｍｂｌｅｒをもつシリアルバスを利用する通信システムや、バスへの送信権調停方式をもつシリアルバスを利用する通信システム又はイーサネット（登録商標）のような通信システムでも構わない。
【図面の簡単な説明】
【００６０】
【図１】図１は、従来技術による通信システムにおけるシリアルバスに接続される装置（ノード）のブロック図である。
【図２】図２は、シリアルバスによって接続されたノードで構成される通信システムの概念図である。
【図３】図３は、従来技術による通信システムにおけるシリアルバス上に転送されるパケットの概念図である。
【図４】図４は、従来技術による通信システムの問題点を表す概念図である。
【図５】図５は、本発明による通信システムにおいて、シリアルバスに接続するノードの実施の形態におけるブロック図である。
【図６】図６は、第１の実施の形態において、本発明による通信システムにおけるシリアルバス上に転送されるパケットの概念図である。
【図７】図７は、第１の実施の形態において、本発明による通信システムにおけるサイクル時間の変更及びサイクル時間の変更後におけるパケット転送処理のシーケンス図である。
【図８】図８は、第２の実施の形態において、本発明による通信システムにおけるシリアルバス１６上に転送されるパケットの概念図である。
【図９】図９は、第２の実施の形態において、本発明による通信システムにおけるサイクル時間Ｎの変更及びサイクル時間Ｎの変更後におけるパケット転送処理のシーケンス図である。
【符号の説明】
【００６１】
１、１’、２、２’、３、３’：ノード
１１：アプリケーション／ソフトウェアドライバ
１２：シリアルバス管理装置
１２１：バスマネジャ
１２２：アイソクロナスリソースマネジャ
１２３：サイクルバスタ
１２４：サイクルマネジャ
１２５：ノードコントローラ
１３：トランザクション層
１４：リンク層
１４１：サイクル管理回路
１４２：データ転送回路
１５：物理層
１５１：バス制御回路
１５２：送受信回路
１６：シリアルバス
ＣＳ：サイクル設定用パケット
Ｃ：サイクルスタートパケット
Ｎ：サイクル時間
Ｉ：アイソクロナスパケット
Ａ：非同期パケット
【図１】
2006333142.tif 000003
【図２】
2006333142.tif 000004
【図３】
2006333142.tif 000005
【図４】
2006333142.tif 000006
【図５】
2006333142.tif 000007
【図６】
2006333142.tif 000008
【図７】
2006333142.tif 000009
【図８】
2006333142.tif 000010
【図９】
2006333142.tif 000011