(57)【要約】【課題】オーディオデータを安定して伝送でき、各ノードにおけるデータ送受信の回路構成も簡単にできるオーディオネットワークシステムを提供することを目的とする。【解決手段】複数のノードのうちの任意の２つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムにおいて、複数のノードをループ伝送可能に接続し、データ伝送は一方向のみに行う。サンプリング周期毎にマスタノードからフレームデータを規則的に１パケットずつ送信して巡回させる。巡回の途中で各ノードは、該パケット中のオーディオデータや制御データの取り込みや上書きを行う。マスタノードは、最下流のノードからのパケットに対してデータの上書きや取り込みを行い、そのパケットを次のサンプリング周期が開始したタイミングから、再び下流のノードに向けて伝送し巡回させる。【選択図】  図４
2007295551.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードのうちの任意の２つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムであって、
前記複数のノードがループ状の伝送路を形成するよう接続され、該伝送路においてデータ伝送は一方向のみに行うものとし、
前記複数のノードのうちの１つだけをマスタノードとし、他のノードはスレーブノードとし、
サンプリング周期毎に、前記マスタノードから前記伝送路にフレームデータを規則的に１パケットずつ送信し、その各サンプリング周期に送信されたパケットは、１ないし数サンプリング周期内に前記複数のノードを巡回して前記マスタノードに戻され、
該パケットは、所定のデータ長で、１チャンネルのオーディオデータを記憶するブロックを複数チャンネル分連結したオーディオデータの格納領域を有しており、
各ノードには、複数チャンネルのうち、そのノードがオーディオデータを送信すべきチャンネル（以下、送信チャンネルという）、及び／又は、そのノードがオーディオデータを受信すべきチャンネル（以下、受信チャンネルという）が指定されており、
各スレーブノードは、サンプリング周期毎に、上流のノードから前記パケットを先頭より受信しつつ、そのパケットの受信した部分が当該ノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該ノードが送信すべきオーディオデータを上書きし、及び／又は、そのパケットの受信した部分が当該ノードにおける受信チャンネルに対応するブロックであれば、該部分から該ノードが受信すべきオーディオデータを取得し、前記先頭の受信開始から所定時間後にそのパケットの下流のノードへの送信を開始し、
マスタノードは、サンプリング周期毎に、最下流のノードから戻ってきたパケットを先頭より受信し、当該マスタノードが受信したパケットに基づいて次のサンプリング周期に送信すべきパケットを生成しつつ、そのパケットの受信した部分が当該マスタノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該マスタノードが送信すべきオーディオデータを上書きし、及び／又は、そのパケットの受信した部分が当該マスタノードにおける受信チャンネルに対応する前記ブロックであれば、該部分から当該ノードが受信すべきオーディオデータを取得し、次のサンプリング周期が開始したタイミングから、下流のノードに向けてその生成されたパケットの伝送を開始し、
該生成されるパケットには、その生成の基となったパケットの記憶するオーディオデータであって、当該マスタノードにおける送信チャンネルに対応しないブロックのオーディオデータが記憶されており、
各１つの送信チャンネルは、当該システムの何れか１つのノードにのみ設定され、当該ノードが当該送信チャンネルに書き込んだオーディオデータは、当該システムの全ノードを巡回し、該オーディオデータを何れのノードでも受信できるようになっている
ことを特徴とするオーディオネットワークシステム。
【請求項２】
請求項１に記載のオーディオネットワークシステムにおいて、
前記パケットは、前記オーディオデータの格納領域に加えて、制御データの格納領域を有しており、これにより、前記パケットの該制御データの格納領域を利用して、前記複数のノードのうち任意の２つのノード間で制御データの送受信が可能であることを特徴とするオーディオネットワークシステム。
【請求項３】
複数のノードのうちの任意の２つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムであって、
前記複数のノードがループ状の伝送路を形成するよう接続され、該伝送路においてデータ伝送は一方向のみに行うものとし、
前記複数のノードのうちの１つだけをマスタノードとし、他のノードはスレーブノードとし、
サンプリング周期毎に、前記マスタノードから前記伝送路に所定数のパケットのフレームデータを規則的に順次送信し、その各サンプリング周期に送信された所定数のパケットは、１ないし数サンプリング周期内に前記複数のノードを巡回して前記マスタノードに戻され、
該所定数の各パケットは、所定のデータ長であり、それぞれ、１チャンネルのオーディオデータを記憶するブロックを複数チャンネル分連結したオーディオデータの格納領域を有しており、
各ノードには、複数チャンネルのうち、そのノードがオーディオデータを送信すべきチャンネル（以下、送信チャンネルという）、及び／又は、そのノードがオーディオデータを受信すべきチャンネル（以下、受信チャンネルという）が指定されており、
各スレーブノードは、サンプリング周期毎に、上流のノードから順次送信される前記各パケットをそれぞれ先頭より受信しつつ、そのパケットの受信した部分が当該ノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該ノードが送信すべきオーディオデータを上書きし、及び／又は、そのパケットの受信した部分が当該ノードにおける受信チャンネルに対応するブロックであれば、該部分から該ノードが受信すべきオーディオデータを取得し、前記先頭の受信開始から所定時間後にそのパケットを下流のノードに送信し、
マスタノードは、サンプリング周期毎に、最下流のノードから順次戻ってきた前記所定数のパケットをそれぞれ先頭より受信し、当該マスタノードが受信した各パケットに基づいて次のサンプリング周期に送信すべき前記所定数のパケットを生成しつつ、その各パケットの受信した部分が当該マスタノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該マスタノードが送信すべきオーディオデータを上書きし、及び／又は、その各パケットの受信した部分が当該マスタノードにおける受信チャンネルに対応する前記ブロックであれば、該部分から当該ノードが受信すべきオーディオデータを取得し、次のサンプリング周期が開始したタイミングから、下流のノードに向けてその生成された前記所定数のパケットの伝送を開始し、
該生成される所定数のパケットには、その生成の基となった所定数のパケットの記憶するオーディオデータであって、当該マスタノードにおける送信チャンネルに対応しないブロックのオーディオデータが記憶されており、
各１つの送信チャンネルは、当該システムの何れか１つのノードにのみ設定され、当該ノードが当該送信チャンネルに書き込んだオーディオデータは、当該システムの全ノードを巡回し、該オーディオデータを何れのノードでも受信できるようになっている
ことを特徴とするオーディオネットワークシステム。
【請求項４】
請求項３に記載のオーディオネットワークシステムにおいて、
前記所定数のパケットのうちの少なくとも１つのパケットは、前記オーディオデータの格納領域に加えて、制御データの格納領域を有しており、これにより、前記パケットの該制御データの格納領域を利用して、前記複数のノードのうち任意の２つのノード間で制御データの送受信が可能であることを特徴とするオーディオネットワークシステム。
【請求項５】
請求項１又は３に記載のオーディオネットワークシステムにおいて、
前記パケットは、イーサネット規格のサイズ、及び構成のパケットであり、イーサネット用のトランスミッタ、レシーバ、伝送ケーブルが使用可能であることを特徴とするオーディオネットワークシステム。
【請求項６】
請求項１又は３に記載のオーディオネットワークシステムにおいて、
前記複数のノードのループ伝送可能な接続は、前記複数のノードを一方向伝送用にカスケード接続し、さらに、逆方向伝送用にカスケード接続することにより実現されていることを特徴とするオーディオネットワークシステム。
【請求項７】
請求項１又は３に記載のオーディオネットワークシステムにおいて、
前記複数のノードのループ伝送可能な接続は、前記複数のノードを一方向伝送用にカスケード接続し、その最後のノードからその先頭のノードへ一方向伝送用に接続することにより実現されていることを特徴とするオーディオネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、各種の音響機器を接続するオーディオネットワークシステムに関する。
【背景技術】
【０００２】
従来より、コンサート、演劇などのＰＡ、音楽製作、構内放送などに使用されるオーディオネットワークシステムにおいて、音響信号の通信を行う技術として、非特許文献１に記載のCobraNet（登録商標）、非特許文献２に記載のSuperMAC（登録商標）、及び、非特許文献３に記載のEtherSound（登録商標）などが知られている。
【０００３】
CobraNetは、Peak Audio,Inc(USA)が開発したプロオーディオ用のネットワークシステムである。CobraNetは、IEEE802.3uの標準イーサネット（登録商標）プロトコルを用いて、多チャンネルの非圧縮オーディオ（音響）信号とコントロール（制御）信号をイーサネットで伝送する技術である。サンプルレート48ｋHz、16／20／24 ビットのサンプルデータを伝送でき、最大64チャンネル（ｃｈ）双方向（すなわち128ｃｈ）のオーディオ信号とコントロール信号をハンドルできる。また、SuperMACやEtherSoundも、イーサネット上で音響信号を伝送する同様の技術である。
【０００４】
これらの技術を利用したオーディオネットワークには、各種機能（アナログ入力、アナログ出力、ディジタル入力、ディジタル出力、ミキシング、エフェクト付与、録音再生、リモート制御、及びそれらの任意の２以上の組み合わせ）の音響機器を任意に接続できる。
【０００５】
下記特許文献１は、１つの主装置と１つ以上の従装置とによって構成するリング回路網にて音声データを交信する方式を開示する。このリング回路網では、複数のノードに同じチャンネルが割り当てられ、フレームがネットワークを巡回するとき、あるノードが書き込んだオーディオデータが、別のノードが書き込んだオーディオデータにより上書きされるようになっている。
【特許文献１】特開平０７−０１５４５８号公報
【非特許文献１】http://www.balcom.co.jp/cobranet.htm
【非特許文献２】http://www.sonyoxford.co.uk/pub/supermac/
【非特許文献３】http://www.ethersound.com/news/getnews.php?enews_key=101
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、従来のオーディオネットワークは、何れもイーサネット規格でオーディオ伝送を行うネットワークである。イーサネット規格では、パケットサイズが最大１５２６バイトに制限されている。
【０００７】
ところで、従来技術では、オーディオデータのパケットだけでなく、オーディオデータ以外の制御データ（コマンド、コマンドに対する応答、メータ表示用のレベルデータなど）のパケットを流すことができるようになっているが、複数の同じ／異なるタイプのパケットを流せば、その分だけオーディオ伝送に使える帯域が減ってしまうという不都合がある。また、オーディオ以外のパケットもネットワーク上を流れるので、それによりオーディオデータの伝送が乱れる場合がある。特に、CSMA/CD方式を採っているイーサネットでは影響が大きい。
【０００８】
さらに、複数サンプリング周期分のサンプルを１パケットに入れて伝送しているため、パケット化、アンパケット化に時間がかかり、また、パケット化、アンパケット化の回路も複雑になる。
【０００９】
上記特許文献１に記載の技術では、リング回路網にフレームデータを巡回させてオーディオデータを交信する。しかし、このリング回路網において、マスタノードは、サンプリング周期毎に新たなフレームを形成するときに、その新しいフレームを、受信したフレームに基づいて形成するようにはなっていない。従って、この方式では、ループの下流にいるノードから、ループの上流にいるノードに対してオーディオデータを流すことができない。
【００１０】
本発明は、オーディオデータを安定して伝送でき、各ノードにおけるデータ送受信の回路構成も簡単にできるオーディオネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明は、複数のノードのうちの任意の２つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムにおいて、複数のノードがループ状の伝送路を形成するよう接続され、該伝送路においてデータ伝送は一方向のみに行うものとする。それら複数のノードのうちの１つだけをマスタノードとし、他のノードはスレーブノードとする。そして、サンプリング周期毎に、前記マスタノードから前記伝送路にフレームデータを規則的に１パケットずつ送信し、その各サンプリング周期に送信されたパケットは、１ないし数サンプリング周期内に前記複数のノードを巡回して前記マスタノードに戻されるようにする。該パケットは、所定のデータ長で、１チャンネルのオーディオデータを記憶するブロックを複数チャンネル分連結したオーディオデータの格納領域を有する。各ノードには、複数チャンネルのうち、そのノードがオーディオデータを送信すべきチャンネル（以下、送信チャンネルという）、及び／又は、そのノードがオーディオデータを受信すべきチャンネル（以下、受信チャンネルという）が指定されており、各スレーブノードは、サンプリング周期毎に、上流のノードから前記パケットを先頭より受信しつつ、そのパケットの受信した部分が当該ノードにおける送信チャンネルに対応するブロックであれば、該部分に当該ノードが送信すべきオーディオデータを上書きし、及び／又は、そのパケットの受信した部分が当該ノードにおける受信チャンネルに対応するブロックであれば、該部分から該ノードが受信すべきオーディオデータを取得し、前記先頭の受信開始から所定時間後にそのパケットの下流のノードへの送信を開始する。マスタノードは、サンプリング周期毎に、最下流のノードから戻ってきたパケットを先頭より受信し、当該マスタノードが受信したパケットに基づいて次のサンプリング周期に送信すべきパケットを生成しつつ、そのパケットの受信した部分が当該マスタノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該マスタノードが送信すべきオーディオデータを上書きし、及び／又は、そのパケットの受信した部分が当該マスタノードにおける受信チャンネルに対応する前記ブロックであれば、該部分から当該ノードが受信すべきオーディオデータを取得し、次のサンプリング周期が開始したタイミングから、下流のノードに向けてその生成されたパケットの伝送を開始する。生成されるパケットには、その生成の基となったパケットの記憶するオーディオデータであって、当該マスタノードにおける送信チャンネルに対応しないブロックのオーディオデータが記憶されており、各１つの送信チャンネルは、当該システムの何れか１つのノードにのみ設定され、当該ノードが当該送信チャンネルに書き込んだオーディオデータは、当該システムの全ノードを巡回し、該オーディオデータを何れのノードでも受信できるようになっている。
【００１２】
上記では１ないし数サンプリング周期に１パケットをループ伝送しているが、１ないし数サンプリング周期に所定数のパケットをループ伝送させるのも本発明の範囲である。
【００１３】
前記１ないし所定数のパケット（所定数のパケットの場合は、そのうちの少なくとも１つのパケットでよい）は、オーディオデータの格納領域に加えて、制御データの格納領域を有し、これにより、該制御データの格納領域を利用して、前記複数のノードのうち任意の２つのノード間で制御データの送受信が可能であるようにするとよい。前記パケットのサイズ及び構成は任意であるが、データ伝送に広く用いられているイーサネット規格のサイズ及び構成のパケットとすれば、イーサネット用のトランスミッタ、レシーバ、及び伝送ケーブルが使用可能となるので好ましい。また、前記複数のノードのループ伝送可能な接続は、前記複数のノードを一方向伝送用にカスケード接続し、さらに、逆方向伝送用にカスケード接続することにより実現したり、あるいは、前記複数のノードを一方向伝送用にカスケード接続し、その最後のノードからその先頭のノードへ一方向伝送用に接続することにより実現するとよい。
【発明の効果】
【００１４】
本発明によれば、ネットワークを巡回するパケットの個数は、各サンプリング周期毎に常に所定数（例えば１つだけ）となる。従って、極めて安定した通信を行うことができる。また、パケットを受信し送信する各ノードは、例えば各サンプリング周期毎に１つのパケットを巡回させることにすれば、出力すべきオーディオデータを１サンプリング周期毎に１サンプルずつ送信できる、あるいは、受信すべきオーディオデータを１サンプリング周期毎に１サンプルずつ受信できる。従って、サンプリングクロックの再現が容易であり、またパケット化のための回路が簡単で済む。さらに、マスタノードの送信したパケットがデータ構成を保ったままループ伝送され、各スレーブノードは、その割当てられたチャンネルの領域にオーディオデータを上書きするだけでよい、あるいは、その指定されたチャンネルの領域からオーディオデータを取出すだけでよいので、各スレーブノードにおけるパケットのオーディオ出力ないし入力のための回路が極めて簡単となる。また、あるノードが送信する（フレームに書き込む）オーディオデータは、全てのノード（そのノードがループの上流にいるか下流にいるかにかかわらず）が受信（フレームから読み出す）できる。また、イーサネット規格のパケットを用いれば、イーサネット用のトランスミッタ、レシーバ、及び伝送ケーブルなどが使用可能となり、入手が容易で安価なハードウエアを利用できる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を用いて本発明の実施の形態を説明する。
【００１６】
図１は、本発明に係るオーディオネットワークシステムを適用したノードの接続例及びそれらのノード間の伝送例を示す図である。図１（ａ）は、マスタノードＡ１０１及びスレーブノードＢ１０２、Ｃ１０３、Ｄ１０４、Ｅ１０５、をリング状に接続した例である。１１１〜１１５はそれぞれ各ノード間を接続する物理的な接続線を示している。本ネットワークシステムでは、接続されている複数のノードのうちの１つだけがマスタノードとなる。ここではノードＡ１０１がマスタであり、他のノードはスレーブである。矢印１２１〜１２５は、パケットの各ビットデータが伝送されていく方向を示している。なお、ノードは、例えば、アナログ入力、アナログ出力、ディジタル入力、ディジタル出力、ミキシング、エフェクト付与、録音再生、及びリモート制御などの機能や、それらの任意の組み合わせの機能を実現する音響機器やＰＣであり、それら各ノードの機器は、それぞれ処理装置（ＣＰＵ）や記憶装置や通信Ｉ／Ｆなどのハードウェア構成を備えるものである。
【００１７】
マスタノードＡ１０１は、サンプリング周期（当該ネットワークシステムにおける音響信号のサンプリングクロックの周期）毎に規則的に１パケットずつ送信する。すなわち、各ノード１０１〜１０５では、それぞれ、１サンプリング周期の間に１パケットのビットデータが上流のノードから入力し下流のノードへと出力されていく。マスタノードＡ１０１において、サンプリング周期に対する同期が取られる。すなわち、１サンプリング周期の開始のタイミングでマスタノードＡ１０１は１パケットのビットデータの下流のノードＢ１０２への送信を開始し、その１パケットの送信が終了した後、マスタノードＡ１０１は、その１サンプリング周期が終わるまで待機し、次の１サンプリング周期の開始のタイミングで次の１パケットのビットデータの下流のノードＢ１０２への送信を開始する。
【００１８】
なお、本実施形態のネットワークシステムにおける「パケット」は、従来のイーサネット規格で用いられるパケットと同じものである。ただし、通常のイーサネットではパケット単位で伝送を行い、そのノード間の伝送が終わるまでにパケット内のデータが書き換えられることはない。これに対し、本実施形態での「パケット」は、詳しくは後述するが、マスタノードからスレーブノードをループしてマスタノードに戻る間にデータが書き換えられていく。本実施形態では、オーディオデータを１サンプリング周期毎に送るための入れ物を「パケット」と呼んでいる。なお、本願発明は、イーサネット規格の「パケット」に限定されるものではなく、他の任意の形式の「パケット」を用いることもできる。
【００１９】
ここで、ＯＳＩ基本参照モデルでは、レイヤ３で取り扱うデータの単位を「パケット」と呼び、レイヤ２で取り扱うデータの単位を「フレーム」と呼ぶが、本願では上述したようにオーディオデータを１サンプリング周期毎に送るための入れ物を「パケット」と呼び、該パケットを実現する実際のデータ列を「フレーム」と呼ぶものとする。従って、本願における「パケット」と「フレーム」は同じものを指す語である。
【００２０】
１つのパケットの中には、複数チャンネルのオーディオデータと制御データ（コマンド、コマンドに対する応答、メータ表示用のレベルデータなど）が入る領域が用意されている。各ノードでは、複数チャンネルのうちのそのノードが送信すべきチャンネル（送信ｃｈ）及び／又はそのノードが受信すべきチャンネル（受信ｃｈ）が指定されている。従って、各ノードにおいては、１サンプリング周期の間に上流のノードから入力し下流のノードへと出力される１パケットのビットデータが当該ノードを通り過ぎるときに、そのパケットの当該ノードの送信ｃｈの領域のビットデータは当該ノードが送信すべきオーディオデータのサンプルを上書きし、そのパケットの当該ノードの受信ｃｈの領域のビットデータは当該ノードが受信すべきオーディオデータであるのでそのサンプルを取り込む。各ノードでは、１パケットのビットデータが通り過ぎる途中で、このような送信ｃｈのデータ書き込みと受信ｃｈのデータ取り込みの処理が行われ、その後、当該パケットのビットデータは直ちに下流のノードに送信される。マスタノードＡ１０１でも同様の処理が行われる。すなわち、マスタノードＡ１０１では、最下流のノードＥ１０５が送信したパケットを受信し、そのパケットの当該マスタノードＡ１０１に割り当てられた送信ｃｈに当該マスタノードＡ１０１が送信すべきオーディオデータのサンプルを上書きし、そのパケットの当該マスタノードＡ１０１に割り当てられた受信ｃｈから当該マスタノードＡ１０１が受信すべきオーディオデータを取得する。その処理の結果のパケットデータが、次のサンプリング周期に送信すべきパケットとなる。
【００２１】
パケット（フレーム）の具体的な構成については図３で後述するが、パケットには、上述の各ｃｈのオーディオデータを設定する領域の他、制御データを格納する領域も設けられており、該領域を用いて、任意のノード間で各種の制御データの送受信を行うことができる。
【００２２】
コンソール１０６は、ノードＢ１０２に接続されているコンソールである。例えば、ノードＢ１０２で受信した制御データのうちコンソール１０６を宛先とするデータがあった場合は、矢印１１６のようにノードＢ１０２からコンソール１０６に当該制御データが送信される。また、コンソール１０６からいずれかのノードに送信したい制御データがあった場合は、矢印１１７に示すようにコンソール１０６からノードＢ１０２に当該制御データを送り、ノードＢ１０２は、ネットワークを循環しているパケットの制御データを設定すべき領域に当該制御データを設定して当該宛先のノード宛てに送信する。制御データの具体的な送受信方法については図３で後述する。
【００２３】
図１（ｂ）は、各ノードを２重の接続線でカスケード接続し、往路の方向にパケットを流す線と復路の方向にパケットを流す線として、パケットをループさせる例である。１４１はマスタノードＡ、１４２〜１４４はスレーブノードＢ，Ｃ，Ｄを示す。マスタノードＡ１４１とスレーブノードＢ１４２は、往路の信号線１５１と復路の信号線１５６で接続されている。同様にノードＢ１４２とノードＣ１４３は、接続線１５２，１５５で、ノードＣ１４３とノードＤ１４４は接続線１５３，１５４で、それぞれ接続されている。パケットの流れの方向は、矢印１６１〜１６６に示すようなものである。基本的に、マスタノードＡ１４１から出力されるパケットのビットデータが矢印１６１〜１６６に示すように各ノードを回ってノードＡ１４１に戻る点では図１（ａ）と同様である。ただし図１（ｂ）では、末端のスレーブノードＤ１４４に到ってからマスタノードＡに戻るまでの経路中にノードＣ，Ｂを経由して戻るようにしている。各ノードＡ〜Ｄでのオーディオデータ及び制御データの書き込みと読み出しは往路において行う。各ノードＡ〜Ｄにおける戻りの経路中では、データの取り込みや書き込みは行わずデータをそのまま通して（スルー）いる。図１（ｂ）では末端のノードＡがマスタであるとしたが、中間のノードであるノードＢやＣがマスタノードになる場合でも、矢印１６１，１６２，１６３の経路を往路と呼び、矢印１６４，１６５，１６６の経路を復路と呼び、往路（この図中では右方向に進む経路）の途中でデータの取り込みや書き込みを行うものとする。この場合、図で中間の位置にあるマスタノードの左側のスレーブノードでは最初に復路側でパケットを受信しその後に往路側でパケットを受信することになるが、往路側でデータの取り込みや書き込みを行うものとして説明する。なお、復路でデータをスルーするのでなく、復路側でデータの取り込みや書き込みを行うようにしてもよい。
【００２４】
リング状の接続の場合、複数のノードを順次接続した後に、さらに端と端のノードを接続しなければならないが、カスケード接続では、複数のノードを２重の接続線で順次していくだけでよい。従って、カスケード接続の設置のほうが簡単な場合もある。
【００２５】
図２は、本実施形態のオーディオネットワークシステムにおける１パケット内のビットデータの流れを示す図である。ここでは、マスタノードＡとスレーブノードＢ，Ｃが、図１（ｂ）に示したような往路と復路で接続された例で説明する。
【００２６】
マスタノードＡは、１サンプリング周期の開始のタイミングで、１パケットのビットデータの送信を開始する。図２（ａ）は、パケットの先頭ビットＢ０を矢印２０１に示すように下流のノードＢに送信している様子を示す。この後、マスタノードＡは、自身の出力するネットワーククロックに同期してパケットの先頭ビットＢ０に続くデータを１ビットずつ順次送信する。図２（ｂ）は、５０ビット分の時間が経過したタイミングで、マスタノードＡが５１番目のビットＢ１を矢印２０３の示すようにノードＢに送信している図であり、このとき、ノードＢは受信した先頭ビットＢ０を矢印２０２が示すように次のノードＣへ送信している。この図では、５０番ごとのビットに注目しているが、途中のビットも勿論送信されている。同様にして、マスタノードからは１０１番目のビットＢ２、１５１番目のビットＢ３、２０１番目のビットＢ４で代表されるビットデータが図２（ｃ）〜図２（ｅ）に示すように次々と出力され、それらのビットデータは各ノードを経由してマスタノードＡに戻ってくる。図２（ｅ）は、当該パケットの先頭ビットＢ０がマスタノードＡに戻り、２１１に示すように所定のバッファに格納された様子を示す。図２（ｆ）は、さらに引き続くビットデータがマスタノードＡに戻り、２１６に示すように５００ビット余りのデータＢ０〜Ｂ１０が所定のバッファに格納された様子を示す。以上のようにして、１パケットの全ビットがマスタノードＡから送信された後、マスタノードＡは、当該サンプリング周期の終了を待って、再び次のサンプリング周期のパケットの送信を図２（ａ）のように開始する。ただし、そのタイミングでは、マスタノードＡは、当該サンプリング周期のパケットの末尾のビットまでの受信を未だ完了していない。
【００２７】
以上のように１パケットのビットデータが１サンプリング周期で１回循環していく際に、各ノードでは、そのノードで取り込むべき受信ｃｈのビットデータを取り込み、そのノードで書き込むべき送信ｃｈのビットデータを書き込む。例えば、ノードＢでは、受信したビットデータが、当該ノードＢで取り込むように指定されている受信ｃｈのサンプルのデータであれば、当該ビットデータをノードＢの所定のバッファに取り込む。また、受信したビットデータが、当該ノードＢから送信すると指定されている送信ｃｈのサンプルのデータであれば、当該ビットデータを、書き込むべきデータで上書きする。このような処理の後、当該ビットデータを次のノードＣへ送信する。他のノードでも同様である。また、制御データの取り込みと書き込みも同様である。なお、上述したように、本実施形態の各ノードでのデータの取り込みあるいは書き込みは往路（図２ではノードＡ→Ｂ→Ｃ）において実行され、復路（ノードＣ→Ｂ→Ａ）ではデータをスルーするだけである。
【００２８】
図３は、本実施形態のオーディオネットワークシステムにおいて、１サンプリング周期で、接続されている全ノードを循環する１パケットのフレームデータの構成を示す。全体で例えば１２８２バイトある。
【００２９】
３０１は、プリアンブル、宛先のＭＡＣアドレス、送信元のＭＡＣアドレス、及びデータレングスを格納する領域である。プリアンブルは、このフレームデータを送信する際に、各ノードにおける同期を確立するためのデータである。各ノードでは、上流のノードから流れてくるデータからこのプリアンブルを検出し、これにより１パケットのフレームデータが開始されたことを検出する。宛先のＭＡＣアドレスはブロードキャスト（Broadcast）通信であることを示す１６進のFF…FF（パケットの流れに沿った次に受信するノードのMACアドレスでもよい）をセットし、送信元のＭＡＣアドレスはマスタノードのＭＡＣアドレス（そのパケットを送信するノードのＭＡＣアドレスでもよい）をセットする。なお、本オーディオネットワークシステムにおけるノード（図１（ａ）や（ｂ）のコンソール１０６，１４５も含む）は、それぞれ、ＭＡＣアドレスを有している。レングスは、このフレームデータの全体の長さ（この例では１２８２バイト）を示す。
【００３０】
３０２は、パケットの通し番号ＴＮ、各サンプリング周期内のパケット番号ＰＮ、サンプル遅れ値ＳＤ、及びオーディオチャンネル数ＡＣＮを格納する８バイトの領域である。パケットの通し番号ＴＮは、マスタノードがパケットの送信を開始する毎にカウントアップしながら当該パケットに付ける通し番号である。各サンプリング周期内のパケット番号ＰＮは、１サンプリング周期で複数パケットを巡回させる際に（変形例として後述する）、その１サンプリング周期内で何番目のパケットかを示す通し番号である。いま説明している実施形態では、１サンプリング周期で１つのパケットを巡回させるので、各サンプリング周期内のパケット番号ＰＮは使用しない。オーディオチャンネル数ＡＣＮは、次に説明するオーディオデータの格納領域３０３のｃｈ数を示す。
【００３１】
３０３は、オーディオデータの格納領域である。ここでは、サンプリング周波数Ｆｓ＝９６ｋＨｚとし、１サンプルが３２ビットのデータを２５６ｃｈ分格納できるブロックに分けられている。従って、上記ＡＣＮには２５６が設定されている。各ｃｈのブロックは、先頭から順に、第１ｃｈ、第２ｃｈ、…、第２５６ｃｈのサンプルデータを設定する領域となる。ここで、安定したオーディオの伝送のため、ノード間伝送に使われていないｃｈについても常時帯域が確保されている。例えば、あるｃｈのブロックに対してネットワークシステム内に書き込みを行うノードが無くても、マスタノードはそのｃｈのブロックを削除することはない。従って、オーディオチャンネル数ＡＣＮは一定値となり、最大伝送可能ｃｈ数に対応する。なお、使用されていないｃｈのブロックについては、マスタノードが無音のオーディオ信号を書き込むようにしてもよい。
【００３２】
３０４は、制御データを格納する２２４バイト分の領域である。制御データには、コマンド、リプライ、及びレベルデータなどの様々なデータが入る。例えば、あるノードが送信ノードとなって、ある受信ノードに何らかのデータを送信したい場合は以下のようにする。まず、制御データ格納領域３０４の所定位置にはデータ送信権を表すトークンが設定されているので、制御データを送りたいノードは、サンプリング周期毎に各ノードを循環しているパケット中の当該トークンを取得する。あるノードがトークンを取得すると、そのノードが送信権を取得したことになり、そのノードがトークンを開放するまで他のノードはトークンを取得できない。トークンを取得して送信権を得たノードは、送信したいデータを含む通常のイーサネット規格の送信データパケット（宛先のＭＡＣアドレスには、受信先ノードのＭＡＣアドレスを設定する）を作成し、その送信データパケットを分割し、制御データ格納領域３０４に挿入し、幾つかのパケット（図３のフォーマットのパケット）に分けて送信する。そのパケットを受信した各ノードでは、当該パケットの制御データ格納領域３０４のデータを取り込み、それが上述したイーサネット規格の送信データパケットを分割したデータであった場合、何回かに分けて送られてくるデータを結合して上記イーサネット規格の送信データパケットを再現し、その宛先のＭＡＣアドレスが自ノードのアドレスであるかを判定する。自ノード宛てであるときは、該送信データパケットを取り込む。宛先が自ノード宛てでないときは、当該送信データパケットを破棄する。以上により、上記巡回する図３のパケットに乗せて、各ノード間での制御データの送受信を行うことができる。
【００３３】
なお、トークンは常に巡回させておかなくてもよい。例えば、リング状に接続された各ノードをパケットが所定回数回る毎に１回トークンを巡回させる、というようにしてもよい。また、本オーディオネットワークシステムでは、立ち上げ時の初期化処理で、本ネットワークに接続されている各ノード（図１（ａ）や（ｂ）のコンソール１０６，１４５なども含む）のＭＡＣアドレスや接続位置については全ノードに知らせるようにしているので、各ノード間の制御データの通信については通常のＬＡＮと同様に行うことができる。あるいは、システム全体の制御を行っているコンソールが、トークンの管理を行うようにしてもよい。例えば、パケットの制御データの領域に、各ノードに対応してトークンをリクエストするフラグを記憶する領域を設け、そのフラグを立てることでコンソールにトークンを要求し、それに応じてコンソールがその要求を行った何れかのノードに対してトークンを割り当てて与えるようにすればよい。その場合、パケットの送信が終わったノードは、トークンをコンソールに返却する。
【００３４】
３０５は、誤り検出のためのＦＣＳフィールドである。本実施形態では、図３のパケットは図１（ａ）や（ｂ）で説明したように各ノードを巡回する間に書き換えられていくので、ＦＣＳ３０５は１対の送信ノードと受信ノード間でのみ意味を持つ。例えば、図１（ａ）の場合、ノードＡでは送信するフレームデータのＦＣＳを領域３０５に設定してノードＢに送信し、ノードＢでは、受信したフレームデータのＦＣＳをチェックして当該フレームデータが正常に受信されたかを確認し、正常に受信されていた場合は、該フレームデータから読み出したオーディオサンプルを再生したり、読み出した制御データに基づく制御を行うとともに、当該ノードで書き換えるべきオーディオサンプルや制御データを書き込み済みのフレームデータに基づいてＦＣＳを生成し、領域３０５に設定してノードＢに送信する。正常に受信されていなかった場合は、該フレームデータから読み出したオーディオサンプルや制御データを破棄し、オーディオサンプルの再生をミュートするとともに、当該ノードの受信でエラーが生じたことを示す情報を領域３０５ないしその直前の領域に設定してノードＢに送信する。
【００３５】
図４は、各ノードが備えるフレームデータ送受信部の構成を示す。フレームデータ送受信部は、フレーム受信部４０１、フレーム再構築部４０２、フレーム送信部４０３、音声サンプル抽出部４０４、チャンネルレジスタ４０５、音声出力バッファ４０６、音声入力バッファ４０７、チャンネルレジスタ４０８、フレーム受信部４０９、及びフレーム送信部４１０を備える。
【００３６】
フレーム受信部４０１からフレーム再構築部４０２を経てフレーム送信部４０３に到る経路は、このノードの往路の経路であり、フレーム受信部４０９からフレーム送信部４１０に到る経路はこのノードにおける復路の経路を示している。なお、フレーム送信部４１０の出力先ノードかつフレーム受信部４０１の入力元ノードとなるノードが接続されていないとき（図１（ｂ）のノードＡ）には、フレーム送信部４１０からフレーム受信部４０１にデータを直接渡すように自動的に結線され、フレーム送信部４０３の出力先ノードかつフレーム受信部４０９の入力元ノードとなるノードが接続されていないとき（図１（ｂ）のノードＤ）には、フレーム送信部４０３からフレーム受信部４０９にデータを直接渡すように自動的に結線されるようになっている。
【００３７】
図４において、上流のノードから送信されたビットデータは、フレーム受信部４０１で順次受信される。フレーム受信部４０１は受信したビットデータからネットワーククロックを抽出するとともに、図３で説明したプリアンブル部分を検出し、そのプリアンブル部分の終わりを基準としてオーディオデータ３０３の範囲のデータを検出する。音声サンプル抽出部４０４は、そのオーディオデータ３０３の各ｃｈのタイムスロットのサンプルデータを抽出し、そのｃｈがＣＨレジスタ４０５で指定されているｃｈであるときには、そのサンプルデータを音声出力バッファ４０６にコピーする。ＣＨレジスタ４０５は、当該ノードで取り込むべき受信ｃｈ（複数あっても良い）が格納されたレジスタである。
【００３８】
一方、フレーム受信部４０１で順次受信されるビットデータはフレーム再構築部４０２に送られる。フレーム再構築部４０２は、所定ビット数のバッファ（例えば、数十ビット〜数百ビットのシフトレジスタ）を備えており、受信されたビットデータが該バッファを流れていく間に、プリアンブル部の終わりを基準として各ｃｈのタイムスロット（ブロック）のデータを検出し、そのタイムスロットのｃｈがＣＨレジスタ４０８で指定されているｃｈであるときには、音声入力バッファ４０７に格納されている当該ｃｈに書き込むべきサンプルデータを、当該タイムスロットに上書きする。このバッファは、上述したデータの上書きを行うために設けられているが、同時に、当該ノードが受信するビットデータのネットワーククロックと送信するビットデータのネットワーククロックとのずれを吸収する働きもしている。ただし、バッファのサイズは当該ノードでの伝送遅延に対応するので、余り大きくすることはできない。ＣＨレジスタ４０８は、このノードで書き換えを行う送信ｃｈ（複数あっても良い）が格納されたレジスタである。フレーム再構築部４０２で再構築されたフレームデータは、フレーム送信部４０３を介して下流のノードに送信される。
【００３９】
復路では、上流のノードのフレーム送信部から送信されフレーム受信部４０９で受信されたデータは、そのままフレーム送信部４１０に渡されて、下流のノードのフレーム受信部へ送信される。
【００４０】
上流のノードのフレーム送信部からフレーム受信部４０１へのデータ伝送は当該上流のノードのフレーム送信部で発生したネットワーククロックに基づいて行われ、フレーム送信部４０３から下流のノードへのデータ伝送はフレーム送信部４０３で発生したネットワーククロックに基づいて行われる。従って、フレーム受信部４０１の受信動作とフレーム送信部４０３の送信動作は全く非同期に行われている。復路側も同様である。
【００４１】
以上のようにして、このノードにおいて、指定されたｃｈのサンプルを音声出力バッファ４０６に取り込むことができる。また、このノードで入力したオーディオデータのサンプルを音声入力バッファ４０７にセットし、フレームデータ中の指定されたｃｈのタイムスロットに乗せて、他のノードに送信することができる。
【００４２】
ここで、本システムで使用するサンプリングクロックＣｓ（ワードクロック）について説明する。本システムでは、上述した各ノードは各種の音響機器であり、各音響機器は、自身の発生するサンプリングクロックCsに同期してオーディオデータの処理を行っている。ある音響機器から別の音響機器へオーディオデータを伝送する場合、送信側の音響機器と受信側の音響機器とでサンプリングクロックCｓの周波数が異なっていると、受信側の音響機器はそのオーディオデータをそのまま受け取ることができずサンプリング周波数変換を行なわなければならないが、その場合、オーディオデータの品質が劣化してしまう。そこで、本システムでは、各音響機器の発生するサンプリングクロックCｓを、マスタノードからサンプリング周期（マスタノードのサンプリングクロックの発生タイミング）で送られてくるパケットのタイミングに位相同期させることにより、複数の機器でサンプリングクロックを略一致させ、音響機器間でのオーディオデータ伝送をサンプリング周波数変換無しに行えるようにしている。具体的に説明すると、マスタノードは、自身のサンプリングクロックCsが発生するタイミングでパケットの送信を開始し、そのパケットを受信する各スレーブでは、フレーム受信部４０１で該パケットのプリアンブル部を検出し、そのプリアンブル部の終わりのタイミングを基準として位相ロックループ（ＰＬＬ）発振器で自身のサンプリングクロックCｓを発生する。図３のパケットは、サンプリング周期ごとにシステムの全ノードを巡回するので、各ノードでは同期したサンプリングクロックを発生することができる。なお、各ノード内の処理による遅延やノード間ケーブルでの遅延があるが、これらの遅延は現実的には無視できる程度である。また、これらの遅延を考慮して各ノードでタイミングを補正し、より正確に同期したクロックを発生するようにしてもよい。
【００４３】
図５は、各伝送ラインにおけるパケットのタイミング図を示す。例えば、図１（ａ）のマスタノードＡ１０１から下流のノードＢ１０２に到る伝送ライン１１１におけるパケットのタイミング図と考えてよい。ここでは、サンプリング周波数Ｆｓ＝９６ｋＨｚとする。１サンプリング周期の時間長は１０．４μｓｅｃとなる。５０１，５０２，５０３はサンプリング周期の開始タイミングを示す。各ノード間の伝送ラインにおけるプロトコルは、上述したように伝送媒体や物理層のレイヤでイーサネットの方式を用いている。ここでは、１０００ＢＡＳＥ−Ｔのイーサネット規格の１Ｇｂｐｓの速度でノード間のデータ転送を行うものとする。この速度だと１ビットを伝送するのに１ｎｓｅｃかかるから、図３で説明した１パケットのフレームデータの時間長は、パケット時間長＝１ｎｓｅｃ×８ビット×１２８２バイト＝１０．２６μｓｅｃとなる。従って、１サンプリング周期の時間区間に１パケットが入ることが保証される。これにより、図５に示すように、サンプリング周期の開始タイミング５０１からパケットｉのビットデータの転送が開始され、次のサンプリング周期の開始タイミング５０２に到る前にパケットｉの伝送は終了する。パケットｉ＋１，ｉ＋２なども同様である。
【００４４】
図６は、本実施形態におけるオーディオサンプル伝送の流れを示すイメージ図である。この図では、１つのパケットが各ノードから隣のノードに順番に渡されていく様子が示されているが、実際のパケットは、図２で示したように複数のノードに跨っている点を注意されたい。ここで、ノードＡ６０１がマスタノード、ノードＢ６０２，Ｃ６０３がスレーブノードとし、各ノード間は図１（ｂ）で説明したように往路と復路で接続されているものとする。まず、ある時刻（ｔ）にマスタノードが送信すべきパケットとして用意したフレーム６１４には、サンプルＣｈ１（ｓ−２），Ｃｈ２（ｓ−２），Ｃｈ３（ｓ−２）が格納されているとする。ここで、時刻（ｔ）の時間分解能はサンプリング周期であり、Ｃｈ＊の現在時刻（ｔ）におけるサンプルデータをＣｈ＊（ｓ）で表す。よって、Ｃｈ＊（ｓ−３）は、Ｃｈ＊の現在時刻より３サンプル前のデータを示している。６１１に、ノードＡに戻ってきたＣｈ１，２，３の２サンプル前のデータ（ｓ−２）を示す。
【００４５】
時刻（ｔ）において、各ノード６０１，６０２，６０３に、それぞれＣｈ１，Ｃｈ２，Ｃｈ３のサンプルデータＣｈ１（ｓ），Ｃｈ２（ｓ），Ｃｈ３（ｓ）が入力されたとする。６１２，６２２，６３２は、それぞれノードＡ，Ｂ，Ｃに入力する各ｃｈのサンプルデータを格納したバッファである。６１３，６２３，６３３は、それぞれ、各ノードＡ，Ｂ，Ｃ内にあるバッファ（図４の音声入力バッファ４０７に相当する）である。これらのバッファ６１３，６２３，６３３は、それぞれ２サンプルずつ格納できる容量を持っているものとし、いま入力したサンプルデータＣｈ１（ｓ），Ｃｈ２（ｓ），Ｃｈ３（ｓ）が書き込まれている。
【００４６】
マスタノードＡは、直前のサンプリング周期（時刻（ｔ−１））において、巡回して戻ってきたフレーム６１１（その時点では、サンプルデータＣｈ１（ｓ−１）、Ｃｈ２（ｓ−１）、Ｃｈ３（ｓ−１）を格納していた）に基づいて現在の時刻（ｔ）のフレーム６１４を生成する。マスタノードは、その生成したフレーム６１４に格納されているサンプルデータＣｈ１（ｓ−２），Ｃｈ２（ｓ−２），Ｃｈ３（ｓ−２）のうち、このノードＡで書き込みを指定されているＣｈ１のサンプルデータＣｈ１（ｓ−２）を、バッファ６１３に積まれている次のサンプルＣｈ１（ｓ−１）で、上書きする（６１８）。その他のＣｈについては戻ってきたフレーム６１１に格納されていたサンプルをそのままセットしておく。そのようにして生成したパケットのフレームデータを、現在時刻（ｔ）のサンプリング周期の開始タイミングで、ノードＢに送信する。また、ノードＡでは、巡回しているパケットからＣｈ１，２，３の各サンプルデータを取り込むことが指定されているとする。そこで、ノードＡでは、戻ってきたフレーム６１４のサンプルデータＣｈ１（ｓ−２），Ｃｈ２（ｓ−２），Ｃｈ３（ｓ−２）を各ｃｈのバッファ６１５，６１６，６１７に取り込んでいる。このバッファ６１５，６１６，６１７は、図４の音声出力バッファ４０６に相当するものである。ここでは、各Ｃｈについて、その時刻（ｔ）における受信パケットから取り込んだ最新のサンプルデータを格納する領域と１つ前のサイクルのサンプルデータを格納する領域の２段の構成とした。この図では、あるノードがパケットに書き込んだＣｈのサンプルデータを、同じノードが取り込むようになっているが、複数Ｃｈのサンプルデータを取り込む例を示したかっただけであり、リソースの無駄であるので、実際には同じノードが取り込むことはない。
【００４７】
ノードＢは、ノードＡから送られたフレーム６２４に格納されているサンプルデータＣｈ１（ｓ−１），Ｃｈ２（ｓ−２），Ｃｈ３（ｓ−２）のうち、このノードＢで書き込みを指定されているＣｈ２のサンプルデータＣｈ２（ｓ−２）を、バッファ６２３に積まれている次のサンプルＣｈ２（ｓ−１）で、上書きする（６２８）。その他のｃｈのサンプルはそのままとする。そのように生成したパケットのフレームデータを、ノードＣに送信する。また、ノードＢでは、巡回しているパケットからＣｈ１，２，３の各サンプルデータを取り込むことが指定されているとする。そこで、ノードＢでは、フレーム６２４のサンプルデータＣｈ１（ｓ−１），Ｃｈ２（ｓ−２），Ｃｈ３（ｓ−２）を各ｃｈのバッファ６２５，６２６，６２７に取り込んでいる。バッファ６２５，６２６，６２７の構成はノードＡと同様のものである。
【００４８】
ノードＣは、ノードＢから送られたフレーム６３４に格納されているサンプルデータＣｈ１（ｓ−１），Ｃｈ２（ｓ−１），Ｃｈ３（ｓ−２）のうち、このノードＣで書き込みを指定されているＣｈ３のサンプルデータＣｈ３（ｓ−２）を、バッファ６３３に積まれている次のサンプルＣｈ３（ｓ−１）で、上書きする（６３８）。その他のｃｈのサンプルはそのままとする。そのように生成したパケットのフレームデータを、復路に折り返す。また、ノードＣでは、巡回しているパケットからＣｈ１，２，３の各サンプルデータを取り込むことが指定されているとする。そこで、ノードＣでは、フレーム６３４のサンプルデータＣｈ１（ｓ−１），Ｃｈ２（ｓ−１），Ｃｈ３（ｓ−２）を各ｃｈのバッファ６３５，６３６，６３７に取り込んでいる。バッファ６３５，６３６，６３７の構成はノードＡと同様のものである。復路に折り返されたパケットは、６３１，６２１，６１１に示すように各ノードをスルーして、マスタノードＡに戻る。マスタノードは、同様にして次のサンプリング周期で送信するパケットを生成し、次のサンプリング周期の開始タイミングで送出する。
【００４９】
上記各ノードのサンプル取り込み用バッファの状態から分かるように、本実施形態では、マスタノードＡだけがサンプルずれの無い状態で各ノードからの音声サンプルデータを取得できる。これに対し、ノードＢやＣでは、パケットからサンプルデータを取り込む際にサンプルずれが発生している。上流のノードで次のサンプルに書き換えられるｃｈがあるからである。このようなサンプルずれを補正するため、各ノードが、ネットワーク全体の配線状態、及び各ｃｈがどのノードによって格納されたか、についての情報を持ち、各ノードから見て、自分より前段にて格納されたサンプルデータは、出力する際に１サンプル分だけ遅延するようにしてもよい。
【００５０】
図７（ａ）は、スレーブノードのフレーム受信部４０１（図４）においてプリアンブルが検出され、それにより「パケット受信ありイベント」が発生したときのハードウェア処理を示す。図７〜図９の処理は、フローチャートで表現されているので一見ソフトウェア処理のように見えるが、実際には、ロジック回路ないし信号処理プロセッサ（ＤＳＰ）が行うハードウェア処理である。ステップ７０１で、上流のノードから送られてきたパケットのビットデータを受信し、それらを１バイト分集めて図７（ｂ）の受信イベント処理を起動する処理（受信処理）と、フレーム再構築部４０２のバッファに所定量のデータが格納されたタイミングで、バッファのデータの下流のノードへの送信を開始する処理（送信処理）とを有効にするとともに、プリアンブル部の終わりのタイミングで、タイミング信号をサンプリングクロックＣｓを発生しているＰＬＬ発振器（Ｆｓ発生器）に対して供給し、そのサンプリングクロックの周波数を制御する。
【００５１】
図７（ｂ）は、スレーブノードのフレームデータ送受信部において、その受信処理を開始した後、１バイト分のビットデータを受信したときに実行されるハードウェア処理を示す。ここでは、受信したデータをバイト単位で処理するようになっているが、ビット単位やワード単位で処理するようにしてもよい。ステップ７０２で、受信した１バイトを取り込む。ステップ７０３では、受信した１バイトがどのタイムスロットのデータかを判別する。ヘッダデータ（図３の３０１及び３０２）であるときは、ステップ７０４で、該１バイトデータをフレーム再構築部４０２のバッファに書き込むとともに、その受信したヘッダデータに応じた処理を行う。ここで、受信イベント処理によりフレーム再構築部４０２のバッファに格納されたデータは、上述した送信処理により、当該バッファに所定量（数十ビット〜数百ビット）のデータが溜まったタイミングで、フレーム送信部４０３を介して次のノードへと自動的に送信される。従って、この受信イベント処理における「送信する」処理は、送信すべきデータを該バッファに書き込む処理のことである。なお、フレーム送信部４０３からの送信は、フレームデータ送受信部の動作クロックに基づいて生成されたネットワーククロックにより行われ、その送信用のネットワーククロックは、フレーム受信部４０１が抽出した受信用のネットワーククロックとは同期していない。
【００５２】
受信した１バイトが当該ノードにおける送信ｃｈ（図４のＣＨ４０８）に相当するオーディオデータであった場合は、ステップ７０５で、オーディオ送信バッファ（図４の音声入力バッファ４０７）に積まれている１バイトを取り出して、フレーム再構築部４０２のバッファの、受信した１バイトデータに対応する位置に上書きし、フレーム送信部４０３から次のノードへと送信する。受信した１バイトが当該ノードにおける受信ｃｈ（図４のＣＨ４０５）のオーディオデータであったときは、ステップ７０６で、該１バイトデータをフレーム再構築部４０２のバッファの対応する位置に書き込み、フレーム送信部４０３から次のノードへと送信するとともに、オーディオ受信バッファ（図４の音声出力バッファ４０６）に取り込む。受信した１バイトデータが、例えば、送信も受信もしないＣｈのオーディオデータ等の、その他のデータであったときは、ステップＳ７０７で、該１バイトデータをそのままフレーム再構築部４０２のバッファに書き込み、次のノードへと送信する。
【００５３】
受信した１バイトデータが制御データ格納領域（図３の３０４）のデータであるときは、ステップ７０８で、当該ノードで送信権を取得しているか判別する。送信権を取得していないときは、ステップ７０９で、該１バイトデータをそのままフレーム再構築部４０２のバッファに書き込み、次のノードへ送信するとともに、部分データとして取り込み、該部分データに応じた処理を行う。例えば、該部分データがトークンを分割したデータであり、自ノードで送信権を取得したいときは、何回かに分けて送られてくるデータを結合して該トークンを再現して送信権を取得し、バッファ内に書き込まれたトークンを次のノードに送信されないよう削除する。また、該部分データが、制御データの伝送のための送信データパケット（図３で説明済）を分割したデータであるときは、何回かに分けて送られてくるデータを結合して送信データパケットを再現し、その宛先のＭＡＣアドレスが自ノードのアドレスであるときは、該送信データパケットを取り込み、該送信データパケットに含まれる該制御データを取り出して、その制御データに応じた処理を実行する。ステップ７０８で送信権を取得しているときは、ステップ７１０で、送信すべきデータが格納されているＤ送信バッファの１バイトの部分データを、フレーム再構築部４０２のバッファの、前記受信した１バイトデータに対応する位置に上書きして、次のノードへと送信する。Ｄ送信バッファに格納されているデータを全部送信し終わったら、トークンを生成して、バッファの制御データ格納領域の対応する位置に書き込み、次のノードに送信することで送信権を開放する。なお、Ｄ送信バッファに格納されているデータが、制御データ格納領域のサイズである２２４バイトより大きい場合、１つのパケットの制御データ格納領域には入りきらないので、２２４バイトより小さい複数のパーツデータに分けて、連続する複数サンプリング周期の各パケットの制御データ格納領域に入れて送信する。
【００５４】
ステップ７０４〜７０７，７０９，７１０の後、ステップ７１１で受信した１バイトデータが最終バイトであるか判定し、そうであるときはステップ７１２で送受信終了処理を行う。送受信終了処理は、上述したＦＣＳのチェックに関連する一連の処理と、最後のバイトデータの送信完了時に送信を停止する処理である。
【００５５】
図８（ａ）は、マスタノードのフレーム受信部４０１（図４）においてプリアンブルが検出され、それにより「パケット受信ありイベント」が発生したときのハードウェア処理を示す。ステップ８０１で、当該マスタノードにおける受信開始処理が行われ、当該システムの複数のスレーブノードから送られてきたパケットのビットデータを受信し、それらを１バイト分集めて図８（ｂ）の受信イベント処理を起動する処理（受信処理）を起動する。これにより、そのパケットのフレームデータの受信処理が開始する。なお、マスタノードで発生するサンプリングクロックが基準となって他のノードのサンプリングクロックが生成されるので、ステップ８０１ではサンプリングクロックＣｓの周波数制御は不要である。
【００５６】
図８（ｂ）は、マスタノードのフレームデータ送受信部において、その受信処理を開始した後、１バイト分のデータを受信したときに実行されるハードウェア処理を示す。ステップ８０２で、受信した１バイトを取り込む。ステップ８０３で、受信した１バイトデータがどのタイムスロットのデータかを判別する。ステップ８０４〜８１０は、それぞれ図７（ｂ）のステップ７０４〜７１０と同様の処理である。ただし、スレーブノードでのステップ７０４〜７０７，７０９，７１０ではバッファに所定量のデータが溜まったタイミングで自動的に次ノードへの送信を開始しているが、マスタノードでは、バッファのデータ量に応じて自動的には送信を開始せず、１サンプリング周期の終了のタイミング（すなわち次のサンプリング周期の開始タイミング）まで待ってから送信を開始するため、ステップ８０４〜８０７，８０９，８１０では１バイトデータのフレーム再構築部４０２のバッファへの書き込みを、「保存」と表現している。また、受信したフレームデータは現サンプリング周期のフレームデータであるが、マスタノードが次に送信するのは次のサンプリング周期のフレームデータであるので、バッファへの書き込み時には、受信したフレームデータを次のサンプリング周期のフレームデータに変換しつつ書き込みを行っている。ステップ８１１及び８１２は、図７（ｂ）のステップ７１１及び７１２と同様の処理である。ただし、送信は未だ開始しないので、ステップ８１２では受信終了処理のみを行う。
【００５７】
図８（ｃ）は、マスタノードのフレーム再構築部４０２が備えるバッファ（フレームデータの待ちバッファ）の使い方を示す図である。８２２と８２３は、後述する変形例の場合に使用するバッファであるので、ここでは待ちバッファＡ８２１のみに着目する。待ちバッファＡ８２１は、図３のフレームデータを１つ格納できる長さを持っている。あるサンプリング周期に各ノードを巡回してマスタノードに戻ってきたフレームデータが、その次のサンプリング周期のフレームデータに変換されて待ちバッファＡ８２１に保存されており、このフレームデータは図８（ｂ）の処理により既に上書きすべきサンプルや制御データは上書きしてあるから、次のサンプリング周期の開始タイミングに至ったときは、待ちバッファＡ８２１の先頭から取出用ポインタ８２５を用いてフレームデータのビット列を取り出していき、次のノードへと順次送信していけばよい。データの取り出しに応じて、取出用ポインタ８２５は矢印８２４のように進められ、全フレームデータを取り出したら、取出用ポインタ８２５は待ちバッファＡ８２１の先頭を指すように初期化される。
【００５８】
一方、あるサンプリング周期に各ノードを巡回してマスタノードに戻ってきたフレームデータのビット列は、次のサンプリング周期のフレームデータに変換されて、順次、待ちバッファＡ８２１に保存される。この保存は、図８（ｂ）の処理により行われるものであり、保存用ポインタ８２６で示す位置にデータを書き込み、該保存用ポインタ８２６を矢印８２４のように進めていく処理を繰り返すことにより、行われる。戻ってきたフレームデータの全ビット列が待ちバッファＡ８２１へ保存されたら、保存用ポインタ８２６は待ちバッファＡ８２１の先頭を指すように初期化される。
【００５９】
なお、１サンプリング周期ごとに、１パケットを送信して複数ノードを巡回させる場合、マスタノードにおいて待ちバッファＡ８２１からフレームデータを取り出して次のノードへの送信を開始した後、そのフレームデータの先頭部分がマスタノードに戻ってくるタイミングは、そのフレームデータの送信が終了するよりも前になる（これは、ノード数がそれ程多くなく、各ノードでの処理が早く終わって、マスタノードに戻ってくる場合である。ノード数が多い場合は、マスタノードがフレームの送信を開始し、そのフレームを送信し終えた後に、そのフレームの先頭部分が戻ってくる場合もあり得る。）。その場合、取出用ポインタ８２５が保存用ポインタ８２６より見かけ上で先行しているように見える。また、戻ってきつつあるフレームデータの待ちバッファＡ８２１への保存が完了する前に、次のサンプリング周期の開始タイミングに至って、待ちバッファＡ８２１からのデータ取り出しと送信が開始される場合もあるので、その場合は、保存用ポインタ８２６が取出用ポインタ８２５より見かけ上で先行しているように見える。
【００６０】
図９（ａ）は、マスタノードにおけるサンプリングクロック割り込み処理を示す。サンプリング周期毎に発生する割り込みに応じて実行される処理である。ステップ９０１で、パケット通し番号ＴＮの値をインクリメントする。ステップ９０２で、パケット通し番号が（ＴＮ−１）のパケットのフレームデータを図８（ｃ）の待ちバッファＡ８２１から取り出し、そのパケット通し番号をＴＮに書き換えて次のノードへの送信を開始する。
【００６１】
図９（ｂ）は、マスタノードにおける１バイト送信イベントの処理である。この処理は、ステップ９０２で送信開始した後、待ちバッファＡ８２１のフレームデータの送信が終了するまで、繰り返し実行される。まずステップ９１１で、待ちバッファＡ８２１の取り出しポインタ８２５の位置から１バイトデータを取り出し、ポインタ８２５を進める。ステップ９１２で、その１バイトデータを次のノードに送信する。ステップ９１３で、その１バイトデータが最終バイトであるか判定し、そうであるときは、ステップ９１４で送信終了処理を行う。
【００６２】
なお、上記実施形態では、図７（ｂ）や図８（ｂ）に示したように、１バイト受信イベントがあったときに、サンプルデータや制御データの上書きを行っているが、送信イベントで上書きを行ってもよい。
【００６３】
上記実施形態では、図５に示したように１サンプリング周期で１つのパケットが巡回する例で説明したが、その変形例として１サンプリング周期で複数パケットを巡回させるようにしてもよい。例えば、ノード間の通信を１０００ＢＡＳＥ−Ｔでなく１０Ｇビットイーサネット規格で行うものとすると、１サンプリング周期で８個程度のパケットを巡回させることができる。この場合は、以下のようにする必要がある。
（１）図８（ｃ）で説明した待ちバッファは、巡回させる８個のパケットのフレームデータをそれぞれ格納できるように８個の待ちバッファＡ８２１〜Ｈ８２８を用意して順番に使用する。１サンプリング周期の開始タイミングから８個のパケットを連続的にマスタノードから送信して巡回させ、該８個のパケットの送信が終了した後、次の１サンプリング周期の開始タイミングまで待ち、そのタイミングが来たら次の８個のパケットの送信を開始する。１サンプリング周期内の何番目のパケットかは、図３の３０２で説明した各サンプリング周期内のパケット番号ＰＮで指定する。すなわち、この例ではＰＮ＝１〜８の値をとる。
（２）各スレーブノードにおけるサンプリングクロックは、ＰＮ＝１のパケット（すなわち、１サンプリング周期内の先頭パケット）の開始タイミングに同期させて生成するようにする。
（３）図９（ａ）の割り込み処理のステップ９０２では、パケット通し番号が（ＴＮ−８）のパケット、すなわち８つ前のパケットのフレームデータから、パケット通し番号ＴＮのパケットを作成する。
【００６４】
なお、上記実施形態のカスケード接続において、マスタノードはそのカスケード接続の端ではなく、途中のノードであってもよい。例えば、図１（ｂ）のノードＢがマスタノードである場合、ノードＢは、まず、各サンプリング周期ごとにノードＣに向けて図３のパケットを送信し、ノードＢ→ノードＣ→ノードＤ→ノードＣ→ノードＢと順次伝播され戻ってきたパケットをそのままノードＡに送信し、ノードＢ→ノードＡ→ノードＢと伝播され戻ってきたパケットに基づいて、次のサンプリング周期のパケットを形成するようにすればよい。
【００６５】
また、上記実施形態では、イーサネット規格に従うパケット形式を用いているが、イーサネット以外の規格に従うパケット形式を用いてもよい。制御信号の伝送のため、各ノードにIPアドレスを与えるようにしてもよい。
【００６６】
さらに、カスケード接続の場合、スレーブノードは、一連の処理（ヘッダ処理、オーディオ送受信、制御データの送受信、など）を上流のノードから送られてきたパケットに対して行う代わりに、下流のノードから戻ってきたパケットに対して行うようにしてもよい。
【００６７】
なお、上記実施形態では、マスタノードは、各サンプリング周期毎に、新たなフレームデータを、１サンプリング周期前に生成しネットワークに送出したフレームデータであって、その時点で巡回して戻ってきている（受信中の）フレームデータに基づいて、生成するようになっていた。しかしながら、新規フレームデータの作成のベースとするフレームデータは、２サンプリング周期ないしそれ以上前に生成され、マスタノードに戻ってきたフレームデータとしてもよい。２サンプリング周期以上前のフレームデータであれば、新規フレームデータの作成時には、その末尾まで受信が完了しているので、その受信したフレームデータのＦＣＳに基づいてフレームのエラー検出を行うことができる。そして、エラーが検出されなかった場合のみ、そのフレームデータに基づいて新規フレームデータを生成するようにすればよい。これにより、フレーム伝送エラーによる悪影響を防止ないし軽減できる。
【図面の簡単な説明】
【００６８】
【図１】本発明に係るオーディオネットワークシステムを適用したノードの接続例及びそれらのノード間の伝送例を示す図
【図２】本実施形態のオーディオネットワークシステムにおけるビットデータの流れを示す図
【図３】１パケットのフレームデータの構成図
【図４】各ノードが備えるフレームデータ送受信部の構成図
【図５】各伝送ラインにおけるパケットのタイミング図
【図６】オーディオサンプル伝送の流れを示す図
【図７】スレーブノードでのハードウェア処理手順を示すフローチャート
【図８】マスタノードでのハードウェア処理手順を示すフローチャート及びバッファの構成図
【図９】マスタノードにおけるサンプリングクロック割り込み処理及び１バイト送信イベント処理のフローチャート
【符号の説明】
【００６９】
４０１…フレーム受信部、４０２…フレーム再構築部、４０３…フレーム送信部、４０４…音声サンプル抽出部、４０５…チャンネルレジスタ、４０６…音声出力バッファ、４０７…音声入力バッファ、４０８…チャンネルレジスタ、４０９…フレーム受信部、４１０…フレーム送信部。
【図１】
2007295551.tif 000003
【図２】
2007295551.tif 000004
【図３】
2007295551.tif 000005
【図４】
2007295551.tif 000006
【図５】
2007295551.tif 000007
【図６】
2007295551.tif 000008
【図７】
2007295551.tif 000009
【図８】
2007295551.tif 000010
【図９】
2007295551.tif 000011