JP4337899B2 - オーディオネットワークシステム - Google Patents

オーディオネットワークシステム Download PDF

Info

Publication number
JP4337899B2
JP4337899B2 JP2007089495A JP2007089495A JP4337899B2 JP 4337899 B2 JP4337899 B2 JP 4337899B2 JP 2007089495 A JP2007089495 A JP 2007089495A JP 2007089495 A JP2007089495 A JP 2007089495A JP 4337899 B2 JP4337899 B2 JP 4337899B2
Authority
JP
Japan
Prior art keywords
node
data
packet
transmission
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007089495A
Other languages
English (en)
Other versions
JP2007295551A (ja
Inventor
圭 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2007089495A priority Critical patent/JP4337899B2/ja
Publication of JP2007295551A publication Critical patent/JP2007295551A/ja
Application granted granted Critical
Publication of JP4337899B2 publication Critical patent/JP4337899B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、各種の音響機器を接続するオーディオネットワークシステムに関する。
従来より、コンサート、演劇などのPA、音楽製作、構内放送などに使用されるオーディオネットワークシステムにおいて、音響信号の通信を行う技術として、非特許文献1に記載のCobraNet(登録商標)、非特許文献2に記載のSuperMAC(登録商標)、及び、非特許文献3に記載のEtherSound(登録商標)などが知られている。
CobraNetは、Peak Audio,Inc(USA)が開発したプロオーディオ用のネットワークシステムである。CobraNetは、IEEE802.3uの標準イーサネット(登録商標)プロトコルを用いて、多チャンネルの非圧縮オーディオ(音響)信号とコントロール(制御)信号をイーサネットで伝送する技術である。サンプルレート48kHz、16/20/24 ビットのサンプルデータを伝送でき、最大64チャンネル(ch)双方向(すなわち128ch)のオーディオ信号とコントロール信号をハンドルできる。また、SuperMACやEtherSoundも、イーサネット上で音響信号を伝送する同様の技術である。
これらの技術を利用したオーディオネットワークには、各種機能(アナログ入力、アナログ出力、ディジタル入力、ディジタル出力、ミキシング、エフェクト付与、録音再生、リモート制御、及びそれらの任意の2以上の組み合わせ)の音響機器を任意に接続できる。
下記特許文献1は、1つの主装置と1つ以上の従装置とによって構成するリング回路網にて音声データを交信する方式を開示する。このリング回路網では、複数のノードに同じチャンネルが割り当てられ、フレームがネットワークを巡回するとき、あるノードが書き込んだオーディオデータが、別のノードが書き込んだオーディオデータにより上書きされるようになっている。
特開平07−015458号公報 http://www.balcom.co.jp/cobranet.htm http://www.sonyoxford.co.uk/pub/supermac/ http://www.ethersound.com/news/getnews.php?enews_key=101
上述したように、従来のオーディオネットワークは、何れもイーサネット規格でオーディオ伝送を行うネットワークである。イーサネット規格では、パケットサイズが最大1526バイトに制限されている。
ところで、従来技術では、オーディオデータのパケットだけでなく、オーディオデータ以外の制御データ(コマンド、コマンドに対する応答、メータ表示用のレベルデータなど)のパケットを流すことができるようになっているが、複数の同じ/異なるタイプのパケットを流せば、その分だけオーディオ伝送に使える帯域が減ってしまうという不都合がある。また、オーディオ以外のパケットもネットワーク上を流れるので、それによりオーディオデータの伝送が乱れる場合がある。特に、CSMA/CD方式を採っているイーサネットでは影響が大きい。
さらに、複数サンプリング周期分のサンプルを1パケットに入れて伝送しているため、パケット化、アンパケット化に時間がかかり、また、パケット化、アンパケット化の回路も複雑になる。
上記特許文献1に記載の技術では、リング回路網にフレームデータを巡回させてオーディオデータを交信する。しかし、このリング回路網において、マスタノードは、サンプリング周期毎に新たなフレームを形成するときに、その新しいフレームを、受信したフレームに基づいて形成するようにはなっていない。従って、この方式では、ループの下流にいるノードから、ループの上流にいるノードに対してオーディオデータを流すことができない。
本発明は、オーディオデータを安定して伝送でき、各ノードにおけるデータ送受信の回路構成も簡単にできるオーディオネットワークシステムを提供することを目的とする。
上記目的を達成するため、本発明は、複数のノードのうちの任意の2つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムにおいて、複数のノードがループ状の伝送路を形成するよう接続され、該伝送路においてデータ伝送は一方向のみに行うものとする。それら複数のノードのうちの1つだけをマスタノードとし、他のノードはスレーブノードとする。そして、サンプリング周期毎に、前記マスタノードから当該マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向に位置するスレーブノードに対し、フレームデータを規則的に1パケットずつ送信し、その各サンプリング周期に送信されたパケットは、1ないし数サンプリング周期内に前記データ伝送が一方向に行われるループ状の伝送路を形成する複数のスレーブノードを順次経由して、前記マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の最下流に位置するスレーブノードから前記マスタノードに戻されるようにする。該パケットは、所定のデータ長で、1チャンネルのオーディオデータを記憶するブロックを予め定められた複数チャンネル分連結してなり、前記複数チャンネル数分のブロックが常時確保されたオーディオデータの格納領域を有する。各ノードには、複数チャンネルのうち、そのノードがオーディオデータを送信すべきチャンネル(以下、送信チャンネルという)、及び/又は、そのノードがオーディオデータを受信すべきチャンネル(以下、受信チャンネルという)が指定されており、各スレーブノードは、サンプリング周期毎に、当該スレーブノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向上当該スレーブノードよりマスタノード側に位置する上流のノードから前記パケットを先頭より受信しつつ、そのパケットの受信した部分が当該ノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該ノードが送信すべきオーディオデータを上書きし、及び/又は、そのパケットの受信した部分が当該ノードにおける受信チャンネルに対応するブロックであれば、該部分から該ノードが受信すべきオーディオデータを取得し、前記先頭の受信開始から所定時間後に、当該スレーブノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向に位置する下流のノードへの前記パケットの送信を開始する。マスタノードは、サンプリング周期毎に、当該マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の最下流に位置するノードから戻ってきたパケットを先頭より受信し、当該マスタノードが受信したパケットに基づいて次のサンプリング周期に送信すべきパケットを生成しつつ、そのパケットの受信した部分が当該マスタノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該マスタノードが送信すべきオーディオデータを上書きし、及び/又は、そのパケットの受信した部分が当該マスタノードにおける受信チャンネルに対応する前記ブロックであれば、該部分から当該ノードが受信すべきオーディオデータを取得し、次のサンプリング周期が開始したタイミングから、当該マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向に位置する下流のノードに向けてその生成されたパケットの伝送を開始する。生成されるパケットには、その生成の基となったパケットの記憶するオーディオデータであって、当該マスタノードにおける送信チャンネルに対応しないブロックのオーディオデータが記憶されており、各1つの送信チャンネルは、当該システムの何れか1つのノードにのみ設定され、当該ノードが当該送信チャンネルに書き込んだオーディオデータは、当該システムの全ノードを巡回し、該オーディオデータを何れのノードでも受信できるようになっている。
上記では1ないし数サンプリング周期に1パケットをループ伝送しているが、1ないし数サンプリング周期に所定数のパケットをループ伝送させるのも本発明の範囲である。
前記1ないし所定数のパケット(所定数のパケットの場合は、そのうちの少なくとも1つのパケットでよい)は、オーディオデータの格納領域に加えて、制御データの格納領域を有し、これにより、該制御データの格納領域を利用して、前記複数のノードのうち任意の2つのノード間で制御データの送受信が可能であるようにするとよい。前記パケットのサイズ及び構成は任意であるが、データ伝送に広く用いられているイーサネット規格のサイズ及び構成のパケットとすれば、イーサネット用のトランスミッタ、レシーバ、及び伝送ケーブルが使用可能となるので好ましい。また、前記複数のノードのループ伝送可能な接続は、前記複数のノードを一方向伝送用にカスケード接続し、さらに、逆方向伝送用にカスケード接続することにより実現したり、あるいは、前記複数のノードを一方向伝送用にカスケード接続し、その最後のノードからその先頭のノードへ一方向伝送用に接続することにより実現するとよい。
本発明によれば、ネットワークを巡回するパケットの個数は、各サンプリング周期毎に常に所定数(例えば1つだけ)となる。従って、極めて安定した通信を行うことができる。また、パケットを受信し送信する各ノードは、例えば各サンプリング周期毎に1つのパケットを巡回させることにすれば、出力すべきオーディオデータを1サンプリング周期毎に1サンプルずつ送信できる、あるいは、受信すべきオーディオデータを1サンプリング周期毎に1サンプルずつ受信できる。従って、サンプリングクロックの再現が容易であり、またパケット化のための回路が簡単で済む。さらに、マスタノードの送信したパケットがデータ構成を保ったままループ伝送され、各スレーブノードは、その割当てられたチャンネルの領域にオーディオデータを上書きするだけでよい、あるいは、その指定されたチャンネルの領域からオーディオデータを取出すだけでよいので、各スレーブノードにおけるパケットのオーディオ出力ないし入力のための回路が極めて簡単となる。また、あるノードが送信する(フレームに書き込む)オーディオデータは、全てのノード(そのノードがループの上流にいるか下流にいるかにかかわらず)が受信(フレームから読み出す)できる。また、イーサネット規格のパケットを用いれば、イーサネット用のトランスミッタ、レシーバ、及び伝送ケーブルなどが使用可能となり、入手が容易で安価なハードウエアを利用できる。
以下、図面を用いて本発明の実施の形態を説明する。
図1は、本発明に係るオーディオネットワークシステムを適用したノードの接続例及びそれらのノード間の伝送例を示す図である。図1(a)は、マスタノードA101及びスレーブノードB102、C103、D104、E105、をリング状に接続した例である。111〜115はそれぞれ各ノード間を接続する物理的な接続線を示している。本ネットワークシステムでは、接続されている複数のノードのうちの1つだけがマスタノードとなる。ここではノードA101がマスタであり、他のノードはスレーブである。矢印121〜125は、パケットの各ビットデータが伝送されていく方向を示している。なお、ノードは、例えば、アナログ入力、アナログ出力、ディジタル入力、ディジタル出力、ミキシング、エフェクト付与、録音再生、及びリモート制御などの機能や、それらの任意の組み合わせの機能を実現する音響機器やPCであり、それら各ノードの機器は、それぞれ処理装置(CPU)や記憶装置や通信I/Fなどのハードウェア構成を備えるものである。
マスタノードA101は、サンプリング周期(当該ネットワークシステムにおける音響信号のサンプリングクロックの周期)毎に規則的に1パケットずつ送信する。すなわち、各ノード101〜105では、それぞれ、1サンプリング周期の間に1パケットのビットデータが上流のノードから入力し下流のノードへと出力されていく。マスタノードA101において、サンプリング周期に対する同期が取られる。すなわち、1サンプリング周期の開始のタイミングでマスタノードA101は1パケットのビットデータの下流のノードB102への送信を開始し、その1パケットの送信が終了した後、マスタノードA101は、その1サンプリング周期が終わるまで待機し、次の1サンプリング周期の開始のタイミングで次の1パケットのビットデータの下流のノードB102への送信を開始する。
なお、本実施形態のネットワークシステムにおける「パケット」は、従来のイーサネット規格で用いられるパケットと同じものである。ただし、通常のイーサネットではパケット単位で伝送を行い、そのノード間の伝送が終わるまでにパケット内のデータが書き換えられることはない。これに対し、本実施形態での「パケット」は、詳しくは後述するが、マスタノードからスレーブノードをループしてマスタノードに戻る間にデータが書き換えられていく。本実施形態では、オーディオデータを1サンプリング周期毎に送るための入れ物を「パケット」と呼んでいる。なお、本願発明は、イーサネット規格の「パケット」に限定されるものではなく、他の任意の形式の「パケット」を用いることもできる。
ここで、OSI基本参照モデルでは、レイヤ3で取り扱うデータの単位を「パケット」と呼び、レイヤ2で取り扱うデータの単位を「フレーム」と呼ぶが、本願では上述したようにオーディオデータを1サンプリング周期毎に送るための入れ物を「パケット」と呼び、該パケットを実現する実際のデータ列を「フレーム」と呼ぶものとする。従って、本願における「パケット」と「フレーム」は同じものを指す語である。
1つのパケットの中には、複数チャンネルのオーディオデータと制御データ(コマンド、コマンドに対する応答、メータ表示用のレベルデータなど)が入る領域が用意されている。各ノードでは、複数チャンネルのうちのそのノードが送信すべきチャンネル(送信ch)及び/又はそのノードが受信すべきチャンネル(受信ch)が指定されている。従って、各ノードにおいては、1サンプリング周期の間に上流のノードから入力し下流のノードへと出力される1パケットのビットデータが当該ノードを通り過ぎるときに、そのパケットの当該ノードの送信chの領域のビットデータは当該ノードが送信すべきオーディオデータのサンプルを上書きし、そのパケットの当該ノードの受信chの領域のビットデータは当該ノードが受信すべきオーディオデータであるのでそのサンプルを取り込む。各ノードでは、1パケットのビットデータが通り過ぎる途中で、このような送信chのデータ書き込みと受信chのデータ取り込みの処理が行われ、その後、当該パケットのビットデータは直ちに下流のノードに送信される。マスタノードA101でも同様の処理が行われる。すなわち、マスタノードA101では、最下流のノードE105が送信したパケットを受信し、そのパケットの当該マスタノードA101に割り当てられた送信chに当該マスタノードA101が送信すべきオーディオデータのサンプルを上書きし、そのパケットの当該マスタノードA101に割り当てられた受信chから当該マスタノードA101が受信すべきオーディオデータを取得する。その処理の結果のパケットデータが、次のサンプリング周期に送信すべきパケットとなる。
パケット(フレーム)の具体的な構成については図3で後述するが、パケットには、上述の各chのオーディオデータを設定する領域の他、制御データを格納する領域も設けられており、該領域を用いて、任意のノード間で各種の制御データの送受信を行うことができる。
コンソール106は、ノードB102に接続されているコンソールである。例えば、ノードB102で受信した制御データのうちコンソール106を宛先とするデータがあった場合は、矢印116のようにノードB102からコンソール106に当該制御データが送信される。また、コンソール106からいずれかのノードに送信したい制御データがあった場合は、矢印117に示すようにコンソール106からノードB102に当該制御データを送り、ノードB102は、ネットワークを循環しているパケットの制御データを設定すべき領域に当該制御データを設定して当該宛先のノード宛てに送信する。制御データの具体的な送受信方法については図3で後述する。
図1(b)は、各ノードを2重の接続線でカスケード接続し、往路の方向にパケットを流す線と復路の方向にパケットを流す線として、パケットをループさせる例である。141はマスタノードA、142〜144はスレーブノードB,C,Dを示す。マスタノードA141とスレーブノードB142は、往路の信号線151と復路の信号線156で接続されている。同様にノードB142とノードC143は、接続線152,155で、ノードC143とノードD144は接続線153,154で、それぞれ接続されている。パケットの流れの方向は、矢印161〜166に示すようなものである。基本的に、マスタノードA141から出力されるパケットのビットデータが矢印161〜166に示すように各ノードを回ってノードA141に戻る点では図1(a)と同様である。ただし図1(b)では、末端のスレーブノードD144に到ってからマスタノードAに戻るまでの経路中にノードC,Bを経由して戻るようにしている。各ノードA〜Dでのオーディオデータ及び制御データの書き込みと読み出しは往路において行う。各ノードA〜Dにおける戻りの経路中では、データの取り込みや書き込みは行わずデータをそのまま通して(スルー)いる。図1(b)では末端のノードAがマスタであるとしたが、中間のノードであるノードBやCがマスタノードになる場合でも、矢印161,162,163の経路を往路と呼び、矢印164,165,166の経路を復路と呼び、往路(この図中では右方向に進む経路)の途中でデータの取り込みや書き込みを行うものとする。この場合、図で中間の位置にあるマスタノードの左側のスレーブノードでは最初に復路側でパケットを受信しその後に往路側でパケットを受信することになるが、往路側でデータの取り込みや書き込みを行うものとして説明する。なお、復路でデータをスルーするのでなく、復路側でデータの取り込みや書き込みを行うようにしてもよい。
リング状の接続の場合、複数のノードを順次接続した後に、さらに端と端のノードを接続しなければならないが、カスケード接続では、複数のノードを2重の接続線で順次していくだけでよい。従って、カスケード接続の設置のほうが簡単な場合もある。
図2は、本実施形態のオーディオネットワークシステムにおける1パケット内のビットデータの流れを示す図である。ここでは、マスタノードAとスレーブノードB,Cが、図1(b)に示したような往路と復路で接続された例で説明する。
マスタノードAは、1サンプリング周期の開始のタイミングで、1パケットのビットデータの送信を開始する。図2(a)は、パケットの先頭ビットB0を矢印201に示すように下流のノードBに送信している様子を示す。この後、マスタノードAは、自身の出力するネットワーククロックに同期してパケットの先頭ビットB0に続くデータを1ビットずつ順次送信する。図2(b)は、50ビット分の時間が経過したタイミングで、マスタノードAが51番目のビットB1を矢印203の示すようにノードBに送信している図であり、このとき、ノードBは受信した先頭ビットB0を矢印202が示すように次のノードCへ送信している。この図では、50番ごとのビットに注目しているが、途中のビットも勿論送信されている。同様にして、マスタノードからは101番目のビットB2、151番目のビットB3、201番目のビットB4で代表されるビットデータが図2(c)〜図2(e)に示すように次々と出力され、それらのビットデータは各ノードを経由してマスタノードAに戻ってくる。図2(e)は、当該パケットの先頭ビットB0がマスタノードAに戻り、211に示すように所定のバッファに格納された様子を示す。図2(f)は、さらに引き続くビットデータがマスタノードAに戻り、216に示すように500ビット余りのデータB0〜B10が所定のバッファに格納された様子を示す。以上のようにして、1パケットの全ビットがマスタノードAから送信された後、マスタノードAは、当該サンプリング周期の終了を待って、再び次のサンプリング周期のパケットの送信を図2(a)のように開始する。ただし、そのタイミングでは、マスタノードAは、当該サンプリング周期のパケットの末尾のビットまでの受信を未だ完了していない。
以上のように1パケットのビットデータが1サンプリング周期で1回循環していく際に、各ノードでは、そのノードで取り込むべき受信chのビットデータを取り込み、そのノードで書き込むべき送信chのビットデータを書き込む。例えば、ノードBでは、受信したビットデータが、当該ノードBで取り込むように指定されている受信chのサンプルのデータであれば、当該ビットデータをノードBの所定のバッファに取り込む。また、受信したビットデータが、当該ノードBから送信すると指定されている送信chのサンプルのデータであれば、当該ビットデータを、書き込むべきデータで上書きする。このような処理の後、当該ビットデータを次のノードCへ送信する。他のノードでも同様である。また、制御データの取り込みと書き込みも同様である。なお、上述したように、本実施形態の各ノードでのデータの取り込みあるいは書き込みは往路(図2ではノードA→B→C)において実行され、復路(ノードC→B→A)ではデータをスルーするだけである。
図3は、本実施形態のオーディオネットワークシステムにおいて、1サンプリング周期で、接続されている全ノードを循環する1パケットのフレームデータの構成を示す。全体で例えば1282バイトある。
301は、プリアンブル、宛先のMACアドレス、送信元のMACアドレス、及びデータレングスを格納する領域である。プリアンブルは、このフレームデータを送信する際に、各ノードにおける同期を確立するためのデータである。各ノードでは、上流のノードから流れてくるデータからこのプリアンブルを検出し、これにより1パケットのフレームデータが開始されたことを検出する。宛先のMACアドレスはブロードキャスト(Broadcast)通信であることを示す16進のFF…FF(パケットの流れに沿った次に受信するノードのMACアドレスでもよい)をセットし、送信元のMACアドレスはマスタノードのMACアドレス(そのパケットを送信するノードのMACアドレスでもよい)をセットする。なお、本オーディオネットワークシステムにおけるノード(図1(a)や(b)のコンソール106,145も含む)は、それぞれ、MACアドレスを有している。レングスは、このフレームデータの全体の長さ(この例では1282バイト)を示す。
302は、パケットの通し番号TN、各サンプリング周期内のパケット番号PN、サンプル遅れ値SD、及びオーディオチャンネル数ACNを格納する8バイトの領域である。パケットの通し番号TNは、マスタノードがパケットの送信を開始する毎にカウントアップしながら当該パケットに付ける通し番号である。各サンプリング周期内のパケット番号PNは、1サンプリング周期で複数パケットを巡回させる際に(変形例として後述する)、その1サンプリング周期内で何番目のパケットかを示す通し番号である。いま説明している実施形態では、1サンプリング周期で1つのパケットを巡回させるので、各サンプリング周期内のパケット番号PNは使用しない。オーディオチャンネル数ACNは、次に説明するオーディオデータの格納領域303のch数を示す。
303は、オーディオデータの格納領域である。ここでは、サンプリング周波数Fs=96kHzとし、1サンプルが32ビットのデータを256ch分格納できるブロックに分けられている。従って、上記ACNには256が設定されている。各chのブロックは、先頭から順に、第1ch、第2ch、…、第256chのサンプルデータを設定する領域となる。ここで、安定したオーディオの伝送のため、ノード間伝送に使われていないchについても常時帯域が確保されている。例えば、あるchのブロックに対してネットワークシステム内に書き込みを行うノードが無くても、マスタノードはそのchのブロックを削除することはない。従って、オーディオチャンネル数ACNは一定値となり、最大伝送可能ch数に対応する。なお、使用されていないchのブロックについては、マスタノードが無音のオーディオ信号を書き込むようにしてもよい。
304は、制御データを格納する224バイト分の領域である。制御データには、コマンド、リプライ、及びレベルデータなどの様々なデータが入る。例えば、あるノードが送信ノードとなって、ある受信ノードに何らかのデータを送信したい場合は以下のようにする。まず、制御データ格納領域304の所定位置にはデータ送信権を表すトークンが設定されているので、制御データを送りたいノードは、サンプリング周期毎に各ノードを循環しているパケット中の当該トークンを取得する。あるノードがトークンを取得すると、そのノードが送信権を取得したことになり、そのノードがトークンを開放するまで他のノードはトークンを取得できない。トークンを取得して送信権を得たノードは、送信したいデータを含む通常のイーサネット規格の送信データパケット(宛先のMACアドレスには、受信先ノードのMACアドレスを設定する)を作成し、その送信データパケットを分割し、制御データ格納領域304に挿入し、幾つかのパケット(図3のフォーマットのパケット)に分けて送信する。そのパケットを受信した各ノードでは、当該パケットの制御データ格納領域304のデータを取り込み、それが上述したイーサネット規格の送信データパケットを分割したデータであった場合、何回かに分けて送られてくるデータを結合して上記イーサネット規格の送信データパケットを再現し、その宛先のMACアドレスが自ノードのアドレスであるかを判定する。自ノード宛てであるときは、該送信データパケットを取り込む。宛先が自ノード宛てでないときは、当該送信データパケットを破棄する。以上により、上記巡回する図3のパケットに乗せて、各ノード間での制御データの送受信を行うことができる。
なお、トークンは常に巡回させておかなくてもよい。例えば、リング状に接続された各ノードをパケットが所定回数回る毎に1回トークンを巡回させる、というようにしてもよい。また、本オーディオネットワークシステムでは、立ち上げ時の初期化処理で、本ネットワークに接続されている各ノード(図1(a)や(b)のコンソール106,145なども含む)のMACアドレスや接続位置については全ノードに知らせるようにしているので、各ノード間の制御データの通信については通常のLANと同様に行うことができる。あるいは、システム全体の制御を行っているコンソールが、トークンの管理を行うようにしてもよい。例えば、パケットの制御データの領域に、各ノードに対応してトークンをリクエストするフラグを記憶する領域を設け、そのフラグを立てることでコンソールにトークンを要求し、それに応じてコンソールがその要求を行った何れかのノードに対してトークンを割り当てて与えるようにすればよい。その場合、パケットの送信が終わったノードは、トークンをコンソールに返却する。
305は、誤り検出のためのFCSフィールドである。本実施形態では、図3のパケットは図1(a)や(b)で説明したように各ノードを巡回する間に書き換えられていくので、FCS305は1対の送信ノードと受信ノード間でのみ意味を持つ。例えば、図1(a)の場合、ノードAでは送信するフレームデータのFCSを領域305に設定してノードBに送信し、ノードBでは、受信したフレームデータのFCSをチェックして当該フレームデータが正常に受信されたかを確認し、正常に受信されていた場合は、該フレームデータから読み出したオーディオサンプルを再生したり、読み出した制御データに基づく制御を行うとともに、当該ノードで書き換えるべきオーディオサンプルや制御データを書き込み済みのフレームデータに基づいてFCSを生成し、領域305に設定してノードBに送信する。正常に受信されていなかった場合は、該フレームデータから読み出したオーディオサンプルや制御データを破棄し、オーディオサンプルの再生をミュートするとともに、当該ノードの受信でエラーが生じたことを示す情報を領域305ないしその直前の領域に設定してノードBに送信する。
図4は、各ノードが備えるフレームデータ送受信部の構成を示す。フレームデータ送受信部は、フレーム受信部401、フレーム再構築部402、フレーム送信部403、音声サンプル抽出部404、チャンネルレジスタ405、音声出力バッファ406、音声入力バッファ407、チャンネルレジスタ408、フレーム受信部409、及びフレーム送信部410を備える。
フレーム受信部401からフレーム再構築部402を経てフレーム送信部403に到る経路は、このノードの往路の経路であり、フレーム受信部409からフレーム送信部410に到る経路はこのノードにおける復路の経路を示している。なお、フレーム送信部410の出力先ノードかつフレーム受信部401の入力元ノードとなるノードが接続されていないとき(図1(b)のノードA)には、フレーム送信部410からフレーム受信部401にデータを直接渡すように自動的に結線され、フレーム送信部403の出力先ノードかつフレーム受信部409の入力元ノードとなるノードが接続されていないとき(図1(b)のノードD)には、フレーム送信部403からフレーム受信部409にデータを直接渡すように自動的に結線されるようになっている。
図4において、上流のノードから送信されたビットデータは、フレーム受信部401で順次受信される。フレーム受信部401は受信したビットデータからネットワーククロックを抽出するとともに、図3で説明したプリアンブル部分を検出し、そのプリアンブル部分の終わりを基準としてオーディオデータ303の範囲のデータを検出する。音声サンプル抽出部404は、そのオーディオデータ303の各chのタイムスロットのサンプルデータを抽出し、そのchがCHレジスタ405で指定されているchであるときには、そのサンプルデータを音声出力バッファ406にコピーする。CHレジスタ405は、当該ノードで取り込むべき受信ch(複数あっても良い)が格納されたレジスタである。
一方、フレーム受信部401で順次受信されるビットデータはフレーム再構築部402に送られる。フレーム再構築部402は、所定ビット数のバッファ(例えば、数十ビット〜数百ビットのシフトレジスタ)を備えており、受信されたビットデータが該バッファを流れていく間に、プリアンブル部の終わりを基準として各chのタイムスロット(ブロック)のデータを検出し、そのタイムスロットのchがCHレジスタ408で指定されているchであるときには、音声入力バッファ407に格納されている当該chに書き込むべきサンプルデータを、当該タイムスロットに上書きする。このバッファは、上述したデータの上書きを行うために設けられているが、同時に、当該ノードが受信するビットデータのネットワーククロックと送信するビットデータのネットワーククロックとのずれを吸収する働きもしている。ただし、バッファのサイズは当該ノードでの伝送遅延に対応するので、余り大きくすることはできない。CHレジスタ408は、このノードで書き換えを行う送信ch(複数あっても良い)が格納されたレジスタである。フレーム再構築部402で再構築されたフレームデータは、フレーム送信部403を介して下流のノードに送信される。
復路では、上流のノードのフレーム送信部から送信されフレーム受信部409で受信されたデータは、そのままフレーム送信部410に渡されて、下流のノードのフレーム受信部へ送信される。
上流のノードのフレーム送信部からフレーム受信部401へのデータ伝送は当該上流のノードのフレーム送信部で発生したネットワーククロックに基づいて行われ、フレーム送信部403から下流のノードへのデータ伝送はフレーム送信部403で発生したネットワーククロックに基づいて行われる。従って、フレーム受信部401の受信動作とフレーム送信部403の送信動作は全く非同期に行われている。復路側も同様である。
以上のようにして、このノードにおいて、指定されたchのサンプルを音声出力バッファ406に取り込むことができる。また、このノードで入力したオーディオデータのサンプルを音声入力バッファ407にセットし、フレームデータ中の指定されたchのタイムスロットに乗せて、他のノードに送信することができる。
ここで、本システムで使用するサンプリングクロックCs(ワードクロック)について説明する。本システムでは、上述した各ノードは各種の音響機器であり、各音響機器は、自身の発生するサンプリングクロックCsに同期してオーディオデータの処理を行っている。ある音響機器から別の音響機器へオーディオデータを伝送する場合、送信側の音響機器と受信側の音響機器とでサンプリングクロックCsの周波数が異なっていると、受信側の音響機器はそのオーディオデータをそのまま受け取ることができずサンプリング周波数変換を行なわなければならないが、その場合、オーディオデータの品質が劣化してしまう。そこで、本システムでは、各音響機器の発生するサンプリングクロックCsを、マスタノードからサンプリング周期(マスタノードのサンプリングクロックの発生タイミング)で送られてくるパケットのタイミングに位相同期させることにより、複数の機器でサンプリングクロックを略一致させ、音響機器間でのオーディオデータ伝送をサンプリング周波数変換無しに行えるようにしている。具体的に説明すると、マスタノードは、自身のサンプリングクロックCsが発生するタイミングでパケットの送信を開始し、そのパケットを受信する各スレーブでは、フレーム受信部401で該パケットのプリアンブル部を検出し、そのプリアンブル部の終わりのタイミングを基準として位相ロックループ(PLL)発振器で自身のサンプリングクロックCsを発生する。図3のパケットは、サンプリング周期ごとにシステムの全ノードを巡回するので、各ノードでは同期したサンプリングクロックを発生することができる。なお、各ノード内の処理による遅延やノード間ケーブルでの遅延があるが、これらの遅延は現実的には無視できる程度である。また、これらの遅延を考慮して各ノードでタイミングを補正し、より正確に同期したクロックを発生するようにしてもよい。
図5は、各伝送ラインにおけるパケットのタイミング図を示す。例えば、図1(a)のマスタノードA101から下流のノードB102に到る伝送ライン111におけるパケットのタイミング図と考えてよい。ここでは、サンプリング周波数Fs=96kHzとする。1サンプリング周期の時間長は10.4μsecとなる。501,502,503はサンプリング周期の開始タイミングを示す。各ノード間の伝送ラインにおけるプロトコルは、上述したように伝送媒体や物理層のレイヤでイーサネットの方式を用いている。ここでは、1000BASE−Tのイーサネット規格の1Gbpsの速度でノード間のデータ転送を行うものとする。この速度だと1ビットを伝送するのに1nsecかかるから、図3で説明した1パケットのフレームデータの時間長は、パケット時間長=1nsec×8ビット×1282バイト=10.26μsecとなる。従って、1サンプリング周期の時間区間に1パケットが入ることが保証される。これにより、図5に示すように、サンプリング周期の開始タイミング501からパケットiのビットデータの転送が開始され、次のサンプリング周期の開始タイミング502に到る前にパケットiの伝送は終了する。パケットi+1,i+2なども同様である。
図6は、本実施形態におけるオーディオサンプル伝送の流れを示すイメージ図である。この図では、1つのパケットが各ノードから隣のノードに順番に渡されていく様子が示されているが、実際のパケットは、図2で示したように複数のノードに跨っている点を注意されたい。ここで、ノードA601がマスタノード、ノードB602,C603がスレーブノードとし、各ノード間は図1(b)で説明したように往路と復路で接続されているものとする。まず、ある時刻(t)にマスタノードが送信すべきパケットとして用意したフレーム614には、サンプルCh1(s−2),Ch2(s−2),Ch3(s−2)が格納されているとする。ここで、時刻(t)の時間分解能はサンプリング周期であり、Ch*の現在時刻(t)におけるサンプルデータをCh*(s)で表す。よって、Ch*(s−3)は、Ch*の現在時刻より3サンプル前のデータを示している。611に、ノードAに戻ってきたCh1,2,3の2サンプル前のデータ(s−2)を示す。
時刻(t)において、各ノード601,602,603に、それぞれCh1,Ch2,Ch3のサンプルデータCh1(s),Ch2(s),Ch3(s)が入力されたとする。612,622,632は、それぞれノードA,B,Cに入力する各chのサンプルデータを格納したバッファである。613,623,633は、それぞれ、各ノードA,B,C内にあるバッファ(図4の音声入力バッファ407に相当する)である。これらのバッファ613,623,633は、それぞれ2サンプルずつ格納できる容量を持っているものとし、いま入力したサンプルデータCh1(s),Ch2(s),Ch3(s)が書き込まれている。
マスタノードAは、直前のサンプリング周期(時刻(t−1))において、巡回して戻ってきたフレーム611(その時点では、サンプルデータCh1(s−1)、Ch2(s−1)、Ch3(s−1)を格納していた)に基づいて現在の時刻(t)のフレーム614を生成する。マスタノードは、その生成したフレーム614に格納されているサンプルデータCh1(s−2),Ch2(s−2),Ch3(s−2)のうち、このノードAで書き込みを指定されているCh1のサンプルデータCh1(s−2)を、バッファ613に積まれている次のサンプルCh1(s−1)で、上書きする(618)。その他のChについては戻ってきたフレーム611に格納されていたサンプルをそのままセットしておく。そのようにして生成したパケットのフレームデータを、現在時刻(t)のサンプリング周期の開始タイミングで、ノードBに送信する。また、ノードAでは、巡回しているパケットからCh1,2,3の各サンプルデータを取り込むことが指定されているとする。そこで、ノードAでは、戻ってきたフレーム614のサンプルデータCh1(s−2),Ch2(s−2),Ch3(s−2)を各chのバッファ615,616,617に取り込んでいる。このバッファ615,616,617は、図4の音声出力バッファ406に相当するものである。ここでは、各Chについて、その時刻(t)における受信パケットから取り込んだ最新のサンプルデータを格納する領域と1つ前のサイクルのサンプルデータを格納する領域の2段の構成とした。この図では、あるノードがパケットに書き込んだChのサンプルデータを、同じノードが取り込むようになっているが、複数Chのサンプルデータを取り込む例を示したかっただけであり、リソースの無駄であるので、実際には同じノードが取り込むことはない。
ノードBは、ノードAから送られたフレーム624に格納されているサンプルデータCh1(s−1),Ch2(s−2),Ch3(s−2)のうち、このノードBで書き込みを指定されているCh2のサンプルデータCh2(s−2)を、バッファ623に積まれている次のサンプルCh2(s−1)で、上書きする(628)。その他のchのサンプルはそのままとする。そのように生成したパケットのフレームデータを、ノードCに送信する。また、ノードBでは、巡回しているパケットからCh1,2,3の各サンプルデータを取り込むことが指定されているとする。そこで、ノードBでは、フレーム624のサンプルデータCh1(s−1),Ch2(s−2),Ch3(s−2)を各chのバッファ625,626,627に取り込んでいる。バッファ625,626,627の構成はノードAと同様のものである。
ノードCは、ノードBから送られたフレーム634に格納されているサンプルデータCh1(s−1),Ch2(s−1),Ch3(s−2)のうち、このノードCで書き込みを指定されているCh3のサンプルデータCh3(s−2)を、バッファ633に積まれている次のサンプルCh3(s−1)で、上書きする(638)。その他のchのサンプルはそのままとする。そのように生成したパケットのフレームデータを、復路に折り返す。また、ノードCでは、巡回しているパケットからCh1,2,3の各サンプルデータを取り込むことが指定されているとする。そこで、ノードCでは、フレーム634のサンプルデータCh1(s−1),Ch2(s−1),Ch3(s−2)を各chのバッファ635,636,637に取り込んでいる。バッファ635,636,637の構成はノードAと同様のものである。復路に折り返されたパケットは、631,621,611に示すように各ノードをスルーして、マスタノードAに戻る。マスタノードは、同様にして次のサンプリング周期で送信するパケットを生成し、次のサンプリング周期の開始タイミングで送出する。
上記各ノードのサンプル取り込み用バッファの状態から分かるように、本実施形態では、マスタノードAだけがサンプルずれの無い状態で各ノードからの音声サンプルデータを取得できる。これに対し、ノードBやCでは、パケットからサンプルデータを取り込む際にサンプルずれが発生している。上流のノードで次のサンプルに書き換えられるchがあるからである。このようなサンプルずれを補正するため、各ノードが、ネットワーク全体の配線状態、及び各chがどのノードによって格納されたか、についての情報を持ち、各ノードから見て、自分より前段にて格納されたサンプルデータは、出力する際に1サンプル分だけ遅延するようにしてもよい。
図7(a)は、スレーブノードのフレーム受信部401(図4)においてプリアンブルが検出され、それにより「パケット受信ありイベント」が発生したときのハードウェア処理を示す。図7〜図9の処理は、フローチャートで表現されているので一見ソフトウェア処理のように見えるが、実際には、ロジック回路ないし信号処理プロセッサ(DSP)が行うハードウェア処理である。ステップ701で、上流のノードから送られてきたパケットのビットデータを受信し、それらを1バイト分集めて図7(b)の受信イベント処理を起動する処理(受信処理)と、フレーム再構築部402のバッファに所定量のデータが格納されたタイミングで、バッファのデータの下流のノードへの送信を開始する処理(送信処理)とを有効にするとともに、プリアンブル部の終わりのタイミングで、タイミング信号をサンプリングクロックCsを発生しているPLL発振器(Fs発生器)に対して供給し、そのサンプリングクロックの周波数を制御する。
図7(b)は、スレーブノードのフレームデータ送受信部において、その受信処理を開始した後、1バイト分のビットデータを受信したときに実行されるハードウェア処理を示す。ここでは、受信したデータをバイト単位で処理するようになっているが、ビット単位やワード単位で処理するようにしてもよい。ステップ702で、受信した1バイトを取り込む。ステップ703では、受信した1バイトがどのタイムスロットのデータかを判別する。ヘッダデータ(図3の301及び302)であるときは、ステップ704で、該1バイトデータをフレーム再構築部402のバッファに書き込むとともに、その受信したヘッダデータに応じた処理を行う。ここで、受信イベント処理によりフレーム再構築部402のバッファに格納されたデータは、上述した送信処理により、当該バッファに所定量(数十ビット〜数百ビット)のデータが溜まったタイミングで、フレーム送信部403を介して次のノードへと自動的に送信される。従って、この受信イベント処理における「送信する」処理は、送信すべきデータを該バッファに書き込む処理のことである。なお、フレーム送信部403からの送信は、フレームデータ送受信部の動作クロックに基づいて生成されたネットワーククロックにより行われ、その送信用のネットワーククロックは、フレーム受信部401が抽出した受信用のネットワーククロックとは同期していない。
受信した1バイトが当該ノードにおける送信ch(図4のCH408)に相当するオーディオデータであった場合は、ステップ705で、オーディオ送信バッファ(図4の音声入力バッファ407)に積まれている1バイトを取り出して、フレーム再構築部402のバッファの、受信した1バイトデータに対応する位置に上書きし、フレーム送信部403から次のノードへと送信する。受信した1バイトが当該ノードにおける受信ch(図4のCH405)のオーディオデータであったときは、ステップ706で、該1バイトデータをフレーム再構築部402のバッファの対応する位置に書き込み、フレーム送信部403から次のノードへと送信するとともに、オーディオ受信バッファ(図4の音声出力バッファ406)に取り込む。受信した1バイトデータが、例えば、送信も受信もしないChのオーディオデータ等の、その他のデータであったときは、ステップS707で、該1バイトデータをそのままフレーム再構築部402のバッファに書き込み、次のノードへと送信する。
受信した1バイトデータが制御データ格納領域(図3の304)のデータであるときは、ステップ708で、当該ノードで送信権を取得しているか判別する。送信権を取得していないときは、ステップ709で、該1バイトデータをそのままフレーム再構築部402のバッファに書き込み、次のノードへ送信するとともに、部分データとして取り込み、該部分データに応じた処理を行う。例えば、該部分データがトークンを分割したデータであり、自ノードで送信権を取得したいときは、何回かに分けて送られてくるデータを結合して該トークンを再現して送信権を取得し、バッファ内に書き込まれたトークンを次のノードに送信されないよう削除する。また、該部分データが、制御データの伝送のための送信データパケット(図3で説明済)を分割したデータであるときは、何回かに分けて送られてくるデータを結合して送信データパケットを再現し、その宛先のMACアドレスが自ノードのアドレスであるときは、該送信データパケットを取り込み、該送信データパケットに含まれる該制御データを取り出して、その制御データに応じた処理を実行する。ステップ708で送信権を取得しているときは、ステップ710で、送信すべきデータが格納されているD送信バッファの1バイトの部分データを、フレーム再構築部402のバッファの、前記受信した1バイトデータに対応する位置に上書きして、次のノードへと送信する。D送信バッファに格納されているデータを全部送信し終わったら、トークンを生成して、バッファの制御データ格納領域の対応する位置に書き込み、次のノードに送信することで送信権を開放する。なお、D送信バッファに格納されているデータが、制御データ格納領域のサイズである224バイトより大きい場合、1つのパケットの制御データ格納領域には入りきらないので、224バイトより小さい複数のパーツデータに分けて、連続する複数サンプリング周期の各パケットの制御データ格納領域に入れて送信する。
ステップ704〜707,709,710の後、ステップ711で受信した1バイトデータが最終バイトであるか判定し、そうであるときはステップ712で送受信終了処理を行う。送受信終了処理は、上述したFCSのチェックに関連する一連の処理と、最後のバイトデータの送信完了時に送信を停止する処理である。
図8(a)は、マスタノードのフレーム受信部401(図4)においてプリアンブルが検出され、それにより「パケット受信ありイベント」が発生したときのハードウェア処理を示す。ステップ801で、当該マスタノードにおける受信開始処理が行われ、当該システムの複数のスレーブノードから送られてきたパケットのビットデータを受信し、それらを1バイト分集めて図8(b)の受信イベント処理を起動する処理(受信処理)を起動する。これにより、そのパケットのフレームデータの受信処理が開始する。なお、マスタノードで発生するサンプリングクロックが基準となって他のノードのサンプリングクロックが生成されるので、ステップ801ではサンプリングクロックCsの周波数制御は不要である。
図8(b)は、マスタノードのフレームデータ送受信部において、その受信処理を開始した後、1バイト分のデータを受信したときに実行されるハードウェア処理を示す。ステップ802で、受信した1バイトを取り込む。ステップ803で、受信した1バイトデータがどのタイムスロットのデータかを判別する。ステップ804〜810は、それぞれ図7(b)のステップ704〜710と同様の処理である。ただし、スレーブノードでのステップ704〜707,709,710ではバッファに所定量のデータが溜まったタイミングで自動的に次ノードへの送信を開始しているが、マスタノードでは、バッファのデータ量に応じて自動的には送信を開始せず、1サンプリング周期の終了のタイミング(すなわち次のサンプリング周期の開始タイミング)まで待ってから送信を開始するため、ステップ804〜807,809,810では1バイトデータのフレーム再構築部402のバッファへの書き込みを、「保存」と表現している。また、受信したフレームデータは現サンプリング周期のフレームデータであるが、マスタノードが次に送信するのは次のサンプリング周期のフレームデータであるので、バッファへの書き込み時には、受信したフレームデータを次のサンプリング周期のフレームデータに変換しつつ書き込みを行っている。ステップ811及び812は、図7(b)のステップ711及び712と同様の処理である。ただし、送信は未だ開始しないので、ステップ812では受信終了処理のみを行う。
図8(c)は、マスタノードのフレーム再構築部402が備えるバッファ(フレームデータの待ちバッファ)の使い方を示す図である。822と823は、後述する変形例の場合に使用するバッファであるので、ここでは待ちバッファA821のみに着目する。待ちバッファA821は、図3のフレームデータを1つ格納できる長さを持っている。あるサンプリング周期に各ノードを巡回してマスタノードに戻ってきたフレームデータが、その次のサンプリング周期のフレームデータに変換されて待ちバッファA821に保存されており、このフレームデータは図8(b)の処理により既に上書きすべきサンプルや制御データは上書きしてあるから、次のサンプリング周期の開始タイミングに至ったときは、待ちバッファA821の先頭から取出用ポインタ825を用いてフレームデータのビット列を取り出していき、次のノードへと順次送信していけばよい。データの取り出しに応じて、取出用ポインタ825は矢印824のように進められ、全フレームデータを取り出したら、取出用ポインタ825は待ちバッファA821の先頭を指すように初期化される。
一方、あるサンプリング周期に各ノードを巡回してマスタノードに戻ってきたフレームデータのビット列は、次のサンプリング周期のフレームデータに変換されて、順次、待ちバッファA821に保存される。この保存は、図8(b)の処理により行われるものであり、保存用ポインタ826で示す位置にデータを書き込み、該保存用ポインタ826を矢印824のように進めていく処理を繰り返すことにより、行われる。戻ってきたフレームデータの全ビット列が待ちバッファA821へ保存されたら、保存用ポインタ826は待ちバッファA821の先頭を指すように初期化される。
なお、1サンプリング周期ごとに、1パケットを送信して複数ノードを巡回させる場合、マスタノードにおいて待ちバッファA821からフレームデータを取り出して次のノードへの送信を開始した後、そのフレームデータの先頭部分がマスタノードに戻ってくるタイミングは、そのフレームデータの送信が終了するよりも前になる(これは、ノード数がそれ程多くなく、各ノードでの処理が早く終わって、マスタノードに戻ってくる場合である。ノード数が多い場合は、マスタノードがフレームの送信を開始し、そのフレームを送信し終えた後に、そのフレームの先頭部分が戻ってくる場合もあり得る。)。その場合、取出用ポインタ825が保存用ポインタ826より見かけ上で先行しているように見える。また、戻ってきつつあるフレームデータの待ちバッファA821への保存が完了する前に、次のサンプリング周期の開始タイミングに至って、待ちバッファA821からのデータ取り出しと送信が開始される場合もあるので、その場合は、保存用ポインタ826が取出用ポインタ825より見かけ上で先行しているように見える。
図9(a)は、マスタノードにおけるサンプリングクロック割り込み処理を示す。サンプリング周期毎に発生する割り込みに応じて実行される処理である。ステップ901で、パケット通し番号TNの値をインクリメントする。ステップ902で、パケット通し番号が(TN−1)のパケットのフレームデータを図8(c)の待ちバッファA821から取り出し、そのパケット通し番号をTNに書き換えて次のノードへの送信を開始する。
図9(b)は、マスタノードにおける1バイト送信イベントの処理である。この処理は、ステップ902で送信開始した後、待ちバッファA821のフレームデータの送信が終了するまで、繰り返し実行される。まずステップ911で、待ちバッファA821の取り出しポインタ825の位置から1バイトデータを取り出し、ポインタ825を進める。ステップ912で、その1バイトデータを次のノードに送信する。ステップ913で、その1バイトデータが最終バイトであるか判定し、そうであるときは、ステップ914で送信終了処理を行う。
なお、上記実施形態では、図7(b)や図8(b)に示したように、1バイト受信イベントがあったときに、サンプルデータや制御データの上書きを行っているが、送信イベントで上書きを行ってもよい。
上記実施形態では、図5に示したように1サンプリング周期で1つのパケットが巡回する例で説明したが、その変形例として1サンプリング周期で複数パケットを巡回させるようにしてもよい。例えば、ノード間の通信を1000BASE−Tでなく10Gビットイーサネット規格で行うものとすると、1サンプリング周期で8個程度のパケットを巡回させることができる。この場合は、以下のようにする必要がある。
(1)図8(c)で説明した待ちバッファは、巡回させる8個のパケットのフレームデータをそれぞれ格納できるように8個の待ちバッファA821〜H828を用意して順番に使用する。1サンプリング周期の開始タイミングから8個のパケットを連続的にマスタノードから送信して巡回させ、該8個のパケットの送信が終了した後、次の1サンプリング周期の開始タイミングまで待ち、そのタイミングが来たら次の8個のパケットの送信を開始する。1サンプリング周期内の何番目のパケットかは、図3の302で説明した各サンプリング周期内のパケット番号PNで指定する。すなわち、この例ではPN=1〜8の値をとる。
(2)各スレーブノードにおけるサンプリングクロックは、PN=1のパケット(すなわち、1サンプリング周期内の先頭パケット)の開始タイミングに同期させて生成するようにする。
(3)図9(a)の割り込み処理のステップ902では、パケット通し番号が(TN−8)のパケット、すなわち8つ前のパケットのフレームデータから、パケット通し番号TNのパケットを作成する。
なお、上記実施形態のカスケード接続において、マスタノードはそのカスケード接続の端ではなく、途中のノードであってもよい。例えば、図1(b)のノードBがマスタノードである場合、ノードBは、まず、各サンプリング周期ごとにノードCに向けて図3のパケットを送信し、ノードB→ノードC→ノードD→ノードC→ノードBと順次伝播され戻ってきたパケットをそのままノードAに送信し、ノードB→ノードA→ノードBと伝播され戻ってきたパケットに基づいて、次のサンプリング周期のパケットを形成するようにすればよい。
また、上記実施形態では、イーサネット規格に従うパケット形式を用いているが、イーサネット以外の規格に従うパケット形式を用いてもよい。制御信号の伝送のため、各ノードにIPアドレスを与えるようにしてもよい。
さらに、カスケード接続の場合、スレーブノードは、一連の処理(ヘッダ処理、オーディオ送受信、制御データの送受信、など)を上流のノードから送られてきたパケットに対して行う代わりに、下流のノードから戻ってきたパケットに対して行うようにしてもよい。
なお、上記実施形態では、マスタノードは、各サンプリング周期毎に、新たなフレームデータを、1サンプリング周期前に生成しネットワークに送出したフレームデータであって、その時点で巡回して戻ってきている(受信中の)フレームデータに基づいて、生成するようになっていた。しかしながら、新規フレームデータの作成のベースとするフレームデータは、2サンプリング周期ないしそれ以上前に生成され、マスタノードに戻ってきたフレームデータとしてもよい。2サンプリング周期以上前のフレームデータであれば、新規フレームデータの作成時には、その末尾まで受信が完了しているので、その受信したフレームデータのFCSに基づいてフレームのエラー検出を行うことができる。そして、エラーが検出されなかった場合のみ、そのフレームデータに基づいて新規フレームデータを生成するようにすればよい。これにより、フレーム伝送エラーによる悪影響を防止ないし軽減できる。
本発明に係るオーディオネットワークシステムを適用したノードの接続例及びそれらのノード間の伝送例を示す図 本実施形態のオーディオネットワークシステムにおけるビットデータの流れを示す図 1パケットのフレームデータの構成図 各ノードが備えるフレームデータ送受信部の構成図 各伝送ラインにおけるパケットのタイミング図 オーディオサンプル伝送の流れを示す図 スレーブノードでのハードウェア処理手順を示すフローチャート マスタノードでのハードウェア処理手順を示すフローチャート及びバッファの構成図 マスタノードにおけるサンプリングクロック割り込み処理及び1バイト送信イベント処理のフローチャート
符号の説明
401…フレーム受信部、402…フレーム再構築部、403…フレーム送信部、404…音声サンプル抽出部、405…チャンネルレジスタ、406…音声出力バッファ、407…音声入力バッファ、408…チャンネルレジスタ、409…フレーム受信部、410…フレーム送信部。

Claims (7)

  1. 複数のノードのうちの任意の2つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムであって、
    前記複数のノードがループ状の伝送路を形成するよう接続され、該伝送路においてデータ伝送は一方向のみに行うものとし、
    前記複数のノードのうちの1つだけをマスタノードとし、他のノードはスレーブノードとし、
    サンプリング周期毎に、前記マスタノードから当該マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向に位置するスレーブノードに対し、フレームデータを規則的に1パケットずつ送信し、その各サンプリング周期に送信されたパケットは、1ないし数サンプリング周期内に前記データ伝送が一方向に行われるループ状の伝送路を形成する複数のスレーブノードを順次経由して、前記マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の最下流に位置するスレーブノードから前記マスタノードに戻され、
    該パケットは、所定のデータ長で、1チャンネルのオーディオデータを記憶するブロックを予め定められた複数チャンネル分連結してなり、前記複数チャンネル数分のブロックが常時確保されたオーディオデータの格納領域を有しており、
    各ノードには、複数チャンネルのうち、そのノードがオーディオデータを送信すべきチャンネル(以下、送信チャンネルという)、及び/又は、そのノードがオーディオデータを受信すべきチャンネル(以下、受信チャンネルという)が指定されており、
    各スレーブノードは、サンプリング周期毎に、当該スレーブノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向上当該スレーブノードよりマスタノード側に位置する上流のノードから前記パケットを先頭より受信しつつ、そのパケットの受信した部分が当該ノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該ノードが送信すべきオーディオデータを上書きし、及び/又は、そのパケットの受信した部分が当該ノードにおける受信チャンネルに対応するブロックであれば、該部分から該ノードが受信すべきオーディオデータを取得し、前記先頭の受信開始から所定時間後に、当該スレーブノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向に位置する下流のノードへの前記パケットの送信を開始し、
    マスタノードは、サンプリング周期毎に、当該マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の最下流に位置するノードから戻ってきたパケットを先頭より受信し、当該マスタノードが受信したパケットに基づいて次のサンプリング周期に送信すべきパケットを生成しつつ、そのパケットの受信した部分が当該マスタノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該マスタノードが送信すべきオーディオデータを上書きし、及び/又は、そのパケットの受信した部分が当該マスタノードにおける受信チャンネルに対応する前記ブロックであれば、該部分から当該ノードが受信すべきオーディオデータを取得し、次のサンプリング周期が開始したタイミングから、当該マスタノードに隣接して接続された前記ループ状の伝送路における前記データ伝送の方向に位置する下流のノードに向けてその生成されたパケットの伝送を開始し、
    該生成されるパケットには、その生成の基となったパケットの記憶するオーディオデータであって、当該マスタノードにおける送信チャンネルに対応しないブロックのオーディオデータが記憶されており、
    各1つの送信チャンネルは、当該システムの何れか1つのノードにのみ設定され、当該ノードが当該送信チャンネルに書き込んだオーディオデータは、当該システムの全ノードを巡回し、該オーディオデータを何れのノードでも受信できるようになっている
    ことを特徴とするオーディオネットワークシステム。
  2. 請求項1に記載のオーディオネットワークシステムにおいて、
    前記パケットは、前記オーディオデータの格納領域に加えて、制御データの格納領域を有しており、これにより、前記パケットの該制御データの格納領域を利用して、前記複数のノードのうち任意の2つのノード間で制御データの送受信が可能であることを特徴とするオーディオネットワークシステム。
  3. 複数のノードのうちの任意の2つのノード間でオーディオデータを送受信可能とするオーディオネットワークシステムであって、
    前記複数のノードがループ状の伝送路を形成するよう接続され、該伝送路においてデータ伝送は一方向のみに行うものとし、
    前記複数のノードのうちの1つだけをマスタノードとし、他のノードはスレーブノードとし、
    サンプリング周期毎に、前記マスタノードから前記伝送路に所定数のパケットのフレームデータを規則的に順次送信し、その各サンプリング周期に送信された所定数のパケットは、1ないし数サンプリング周期内に前記複数のノードを巡回して前記マスタノードに戻され、
    該所定数の各パケットは、所定のデータ長であり、それぞれ、1チャンネルのオーディオデータを記憶するブロックを複数チャンネル分連結したオーディオデータの格納領域を有しており、
    各ノードには、複数チャンネルのうち、そのノードがオーディオデータを送信すべきチャンネル(以下、送信チャンネルという)、及び/又は、そのノードがオーディオデータを受信すべきチャンネル(以下、受信チャンネルという)が指定されており、
    各スレーブノードは、サンプリング周期毎に、上流のノードから順次送信される前記各パケットをそれぞれ先頭より受信しつつ、そのパケットの受信した部分が当該ノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該ノードが送信すべきオーディオデータを上書きし、及び/又は、そのパケットの受信した部分が当該ノードにおける受信チャンネルに対応するブロックであれば、該部分から該ノードが受信すべきオーディオデータを取得し、前記先頭の受信開始から所定時間後にそのパケットを下流のノードに送信し、
    マスタノードは、サンプリング周期毎に、最下流のノードから順次戻ってきた前記所定数のパケットをそれぞれ先頭より受信し、当該マスタノードが受信した各パケットに基づいて次のサンプリング周期に送信すべき前記所定数のパケットを生成しつつ、その各パケットの受信した部分が当該マスタノードにおける送信チャンネルに対応する前記ブロックであれば、該部分に当該マスタノードが送信すべきオーディオデータを上書きし、及び/又は、その各パケットの受信した部分が当該マスタノードにおける受信チャンネルに対応する前記ブロックであれば、該部分から当該ノードが受信すべきオーディオデータを取得し、次のサンプリング周期が開始したタイミングから、下流のノードに向けてその生成された前記所定数のパケットの伝送を開始し、
    該生成される所定数のパケットには、その生成の基となった所定数のパケットの記憶するオーディオデータであって、当該マスタノードにおける送信チャンネルに対応しないブロックのオーディオデータが記憶されており、
    各1つの送信チャンネルは、当該システムの何れか1つのノードにのみ設定され、当該ノードが当該送信チャンネルに書き込んだオーディオデータは、当該システムの全ノードを巡回し、該オーディオデータを何れのノードでも受信できるようになっている
    ことを特徴とするオーディオネットワークシステム。
  4. 請求項3に記載のオーディオネットワークシステムにおいて、
    前記所定数のパケットのうちの少なくとも1つのパケットは、前記オーディオデータの格納領域に加えて、制御データの格納領域を有しており、これにより、前記パケットの該制御データの格納領域を利用して、前記複数のノードのうち任意の2つのノード間で制御データの送受信が可能であることを特徴とするオーディオネットワークシステム。
  5. 請求項1又は3に記載のオーディオネットワークシステムにおいて、
    前記パケットは、イーサネット規格のサイズ、及び構成のパケットであり、イーサネット用のトランスミッタ、レシーバ、伝送ケーブルが使用可能であることを特徴とするオーディオネットワークシステム。
  6. 請求項1又は3に記載のオーディオネットワークシステムにおいて、
    前記複数のノードのループ伝送可能な接続は、前記複数のノードを一方向伝送用にカスケード接続し、さらに、逆方向伝送用にカスケード接続することにより実現されていることを特徴とするオーディオネットワークシステム。
  7. 請求項1又は3に記載のオーディオネットワークシステムにおいて、
    前記複数のノードのループ伝送可能な接続は、前記複数のノードを一方向伝送用にカスケード接続し、その最後のノードからその先頭のノードへ一方向伝送用に接続することにより実現されていることを特徴とするオーディオネットワークシステム。
JP2007089495A 2006-03-29 2007-03-29 オーディオネットワークシステム Expired - Fee Related JP4337899B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007089495A JP4337899B2 (ja) 2006-03-29 2007-03-29 オーディオネットワークシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006089867 2006-03-29
JP2007089495A JP4337899B2 (ja) 2006-03-29 2007-03-29 オーディオネットワークシステム

Publications (2)

Publication Number Publication Date
JP2007295551A JP2007295551A (ja) 2007-11-08
JP4337899B2 true JP4337899B2 (ja) 2009-09-30

Family

ID=38765668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007089495A Expired - Fee Related JP4337899B2 (ja) 2006-03-29 2007-03-29 オーディオネットワークシステム

Country Status (1)

Country Link
JP (1) JP4337899B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5321317B2 (ja) * 2009-07-24 2013-10-23 ヤマハ株式会社 音響システム
JP5867187B2 (ja) 2012-03-09 2016-02-24 ヤマハ株式会社 音響信号処理システム

Also Published As

Publication number Publication date
JP2007295551A (ja) 2007-11-08

Similar Documents

Publication Publication Date Title
EP1841137B1 (en) Audio network system
JP4187028B2 (ja) ネットワークシステム及び音響信号処理装置
JP5076413B2 (ja) ネットワークシステム及び音響信号処理装置
JPH0897837A (ja) パケット受信装置
JP4297184B2 (ja) ネットワークシステム
JP4341714B2 (ja) ネットワークシステム及び音響信号処理装置
JP4337899B2 (ja) オーディオネットワークシステム
JP4337835B2 (ja) 出力遅延補正機能を有するオーディオネットワークシステム
JP3451971B2 (ja) パケット転送装置
JP5045728B2 (ja) 通信ノード
JPH0630043A (ja) 音声パケット通信方式
JP3309722B2 (ja) データ転送方式
JP4337834B2 (ja) オーディオサンプルずれの補正機能を有するオーディオネットワークシステム
JP2823548B2 (ja) アクセス方法
JP4170882B2 (ja) 網同期装置、クロック伝達方法およびクロック伝達パケット網
JP4051339B2 (ja) バスシステムにおけるオーディオデータストリームの同期的伝送のための回路装置およびその方法
JP3358581B2 (ja) パケット転送装置
JP2007129517A (ja) デジタルデータ伝送システムおよびデジタルデータ伝送方法
JP3230308B2 (ja) リング型lan
JP3872175B2 (ja) Cdデータ通信装置
JP2000278277A (ja) パケット転送装置
JP3578156B2 (ja) パケット受信装置
JPH05347628A (ja) リング型lan
JP2008258839A (ja) 中継処理方法及び中継ノード装置
JPH11196156A (ja) バス・アナライザ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090609

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090622

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees