JP5251466B2 - オーディオ信号伝送システム - Google Patents

オーディオ信号伝送システム Download PDF

Info

Publication number
JP5251466B2
JP5251466B2 JP2008308865A JP2008308865A JP5251466B2 JP 5251466 B2 JP5251466 B2 JP 5251466B2 JP 2008308865 A JP2008308865 A JP 2008308865A JP 2008308865 A JP2008308865 A JP 2008308865A JP 5251466 B2 JP5251466 B2 JP 5251466B2
Authority
JP
Japan
Prior art keywords
node
packet
satellite
port
main
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
JP2008308865A
Other languages
English (en)
Other versions
JP2010136011A (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 JP2008308865A priority Critical patent/JP5251466B2/ja
Priority to US12/620,494 priority patent/US8675649B2/en
Publication of JP2010136011A publication Critical patent/JP2010136011A/ja
Priority to US13/423,122 priority patent/US8761208B2/en
Priority to US13/423,115 priority patent/US8804968B2/en
Application granted granted Critical
Publication of JP5251466B2 publication Critical patent/JP5251466B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Description

この発明は、複数のノードからなるネットワークシステムであって、特に、送信装置から受信装置にオーディオ信号をリアルタイムに伝送するオーディオ信号伝送システムに関する。
ルーティング(経路制御)は、複数ノードからなるコンピュータネットワークシステム上で、ノード間で情報のパケットを送信する経路を見つけだす手法である。経路が判明すれば、その経路に沿って、発信元のノードから最終的な送信先のノードへ、ノード間の転送を繰り返して情報を送信することができる。従来のコンピュータネットワークシステムにおいて、各ノードは、送信先のアドレスに応じた経路を決定するためのルーティングテーブルを保持しており、このルーティングテーブルに従って、パケットに付加されたアドレスに応じた経路を決定して、決定した経路でパケットを転送する。
例えばインターネットなどの汎用ネットワークシステムにおいては、情報(パケット)を伝送する経路に障害が生じた場合に、動的に経路情報を制御することにより、障害を回避することができる。動的に経路情報を制御することを「動的ルーティング」という。動的ルーティングは、各ノードで自動的にルーティングテーブルを作成し更新することによって、各ノードが現存するノードを使った別の経路を自律的に決定する手法であって、通常、ルーティングプロトコルと経路決定アルゴリズムによってなされる。ルーティングプロトコルは、ノード間で互いのルーティングテーブルを交換するためのプロトコルである。経路決定アルゴリズムは、各ノードでルーティングテーブルを作成するためのアルゴリズムである。経路決定アルゴリズムには、距離ベクトルアルゴリズム(distance vector algorithm, 以下DVA)と、リンク状態アルゴリズム (link state algorithm, 以下LSA)が知られている。
DVAは、各ノードが保持するルーティングテーブルに記録された「コスト」に基づき最適経路を決定する方法である。「コスト」とは、各ノード間に割り当てられた数値であり、2つのノード間を結ぶ経路のコストは、当該経路で経由するノード間のコストの総和によって表される。ルーティングテーブルには、送信先ノード(パケットのあて先)のリストと、各あて先について経路のコストと、各あて先について当該ノードがやりとりすべき直近のノード(「次の相手(next hop)」)とが記録される。
或るネットワークにおいて最適経路を決定する最初の段階では、各ノードは、自身に隣接するノードがどれかという情報と、それらの間との「コスト」だけをルーティングテーブルとして保持している。そして、定期的にノード間で、互いのルーティングテーブルのデータを交換して、該交換したデータを用いて、当該ノードのルーティングテーブルを更新する。この動作を通じて、各ノードは、各自が保持するルーティングテーブルに、あらゆる送信先ノードについて、自身にとって最良の「次の相手」と最良の「コスト」を記録して、該テーブルに基づき最適な経路を決定することができるようになる。
ネットワーク中の或るノードが脱落した場合は、そのノードを「次の相手」としていたノード全てにおいて、ルーティングテーブルの破棄と再構築が行われる。再構築されたルーティングテーブルの情報は、各自に隣接するノードに順次伝達され、データを受け取った各ノードは、そのデータを用いて、当該ノードのルーティングテーブルを更新する。その結果、現存する各ノードは、到達可能な全ての送信先ノードについて、該脱落したノードを除いた最良の経路を見つけ出すことができる。
LSAでは、各ノードは、ネットワーク全体に、自身に隣接するノードがどれかというデータをブロードキャストする一方で、他の全てのノードからブロードキャストされたデータに基づき各自でネットワークマップを生成して、該生成したネットワークマップを用いて他のノードへの最短経路を各自で決定する。そして、各ノードは、全ての送信先ノードについて決定した最短経路の情報を用いて、ルーティングテーブルを生成する。各ノードは、生成したルーティングテーブルに基づいて、あらゆる送信先ノードについて、自身にとって最良の「次の相手」等を見つけだすことができるようになる。
また、従来より、電子楽器、プロオーディオ機器、パーソナルコンピュータなどをネットワーク接続して、それらノード間で多チャンネルのオーディオ信号を伝送するオーディオネットワークシステムがあった。オーディオネットワークシステムにおいてオーディオ信号等のパケット通信を行う技術としては、出願人が提唱する「mLAN」(例えば下記特許文献1等を参照)、下記特許文献2に記載の「EtherSound」(登録商標)、下記特許文献3に記載の非対称伝送ネットワークシステム、或いは、下記非特許文献1に記載の「Cobranet」(登録商標)などが知られていた。
特開2000−278354号公報 米国特許公報US7089333号 米国特許公報US5764917号 http://www.balcom.co.jp/cobranet.htm
上記のようなオーディオネットワークシステムにおいては、オーディオ信号を送信するノード(送信装置)において、所定期間毎に、複数チャンネルのオーディオ信号について複数サンプル個のサンプルデータを含む1つのパケットを形成して、該形成したパケットを、オーディオ信号を受信するノード(受信装置)に送信していた。なお、オーディオネットワークシステムにおけるパケットの伝送周期は、オーディオ信号のサンプリング周期よりも、時間的に大きい値(周期が大きい)となる。従って、1つのパケットに複数のオーディオ信号のサンプルを入れることができる。
このため、各ノード間でオーディオ信号を送信するパケットのサイズは大きいほうが、パケットの伝送周期毎に、より多くのサンプルをパケットに含めることができるため、オーディオ信号の転送効率が良い。しかし、パケットの伝送エラーが生じた場合には、該伝送エラーした1パケット分のオーディオ信号が欠落してしまい、受信装置側で「無音」を出力する期間が生じてしまうという問題があった。パケットが大きいほど(つまり、転送効率を重視した設計をするほど)、伝送エラー時の無音期間は、長くなってしまうものである。
この発明は、上記の点に鑑みてなされたもので、パケットの伝送エラーが生じた場合でも、受信装置側で「無音」を出力する期間が生じることを回避できるようにしたオーディオ信号伝送システムを提供することを目的とする。
この発明は、ケーブルを用いて接続された1つの送信装置と少なくとも1つの受信装置とからなるオーディオ信号伝送システムであって、前記送信装置は、サンプリング周期毎に、オーディオ信号のサンプルを入力する入力部と、前記サンプリング周期よりも大きい所定周期毎に、当該所定周期中に前記入力部により入力されたオーディオ信号の複数サンプルを、奇数番サンプル群の第1グループと、偶数番サンプル群の第2グループにグループ分けするグループ分け部と、前記奇数番サンプル群の第1グループに基づく第1エラーチェックコードと、前記偶数番サンプル群の第2グループに基づく第2エラーチェックコードとを生成するコード生成部と、前記所定周期毎に、前記奇数番サンプル群の第1グループ前記第1エラーチェックコード前記偶数番サンプル群の第2グループ第2エラーチェックコードを含むパケットを形成して送信する送信部とを備え、前記受信装置は、前記送信装置により送信されたパケットを受信する受信部と、前記受信したパケットから、前記奇数番サンプル群の第1グループ前記第1エラーチェックコード前記偶数番サンプル群の第2グループ第2エラーチェックコードを取り出す取り出し部と、前記取り出した第1エラーチェックコードを用いて前記取り出した奇数番サンプル群の第1グループに第1エラーが生じたかどうかチェックすると共に、前記取り出した第2エラーチェックコードを用いて前記取り出した偶数番サンプル群の第2グループに第2エラーが生じたかどうかチェックするエラーチェック部と、前記エラーチェック部のチェック結果が、第1及び第2エラーの場合、無音オーディオ信号を形成して出力し、第1エラーの場合、偶数番サンプル群の第2グループに基づいてオーディオ信号を形成して出力し、第2エラーの場合、奇数番サンプル群の第1グループに基づいてオーディオ信号を形成して出力し、そして、エラーがない場合、奇数番サンプル群の第1グループと偶数番サンプル群の第2グループとに基づいてオーディオ信号を形成して出力する出力部とを具えることを特徴とするオーディオ信号伝送システムである。
送信装置は、所定周期毎に、当該所定周期中に前記入力部により入力されたオーディオ信号の複数サンプルを、奇数番サンプル群の第1グループと、偶数番サンプル群の第2グループにグループ分けして、奇数番サンプル群の第1グループに基づく第1エラーチェックコードと、前記偶数番サンプル群の第2グループに基づく第2エラーチェックコードとを生成して、前記奇数番サンプル群の第1グループ前記第1エラーチェックコード前記偶数番サンプル群の第2グループ第2エラーチェックコードを含むパケットを形成して送信する。受信装置は、該送信装置から受信したパケットからたパケットから、前記奇数番サンプル群の第1グループ前記第1エラーチェックコード前記偶数番サンプル群の第2グループ第2エラーチェックコードを取りして、第1エラーチェックコードを用いて奇数番サンプル群の第1グループに第1エラーが生じたかどうかチェックすると共に、第2エラーチェックコードを用いて偶数番サンプル群の第2グループに第2エラーが生じたかどうかチェックする。受信装置の出力部は、第1及び第2エラーの場合、無音オーディオ信号を形成して出力し、第1エラーの場合、偶数番サンプル群の第2グループに基づいてオーディオ信号を形成して出力し、第2エラーの場合、奇数番サンプル群の第1グループに基づいてオーディオ信号を形成して出力し、そして、エラーがない場合、奇数番サンプル群の第1グループと偶数番サンプル群の第2グループとに基づいてオーディオ信号を形成して出力する。
また、この発明の好ましい一実施形態として、前記受信装置の前記出力部は、エラーがない場合に、奇数番サンプル群の第1グループと偶数番サンプル群の第2グループとを1サンプルずつ交互に配置することにより、オーディオ信号を形成するよう構成することができる。
また、この発明の好ましい一実施形態として、前記受信装置の前記出力部は、第1エラーの場合に、偶数番サンプル群の第2グループに基づいて奇数番サンプル群を作成して、前記作成した奇数番サンプル群と偶数番サンプル群の第2グループとを1サンプルずつ交互に配置することにより、オーディオ信号を形成するよう構成することができる。
また、この発明の好ましい一実施形態として、前記受信装置の前記出力部は、第2エラーの場合に、奇数番サンプル群の第1グループに基づいて偶数番サンプル群を作成して、前記奇数番サンプル群の第1グループと前記作成した偶数番サンプル群とを1サンプルずつ交互に配置することにより、オーディオ信号を形成するよう構成することができる。
受信装置の出力部は、エラーがない場合に、奇数番サンプル群の第1グループと偶数番サンプル群の第2グループとを1サンプルずつ交互に配置することにより、オーディオ信号を形成し、第1エラー又は第2エラーの場合には、エラーが生じていないグループに基づいて他方のグループのサンプル群に相当するサンプル群を作成して、エラーが生じていないグループと該作成したサンプル群とを1サンプルずつ交互に配置することにより、オーディオ信号を形成する。
この発明によれば、送信装置から受信装置にパケットを送信するときに伝送エラーが生じた場合であっても、該伝送エラーによりオーディオ信号が失われた範囲が、奇数番サンプル群の第1グループと偶数番サンプル群のいずれか一方の範囲内であれば、該エラーが生じていないグループに基づいてオーディオ信号を作成して出力することができる。その場合、オーディオ信号のサンプリング周波数が下がり音としての品質は落ちるが、当該伝送エラーの期間が「無音」となってしまうよりはるかにましである。すなわち、この発明によれば、パケットの伝送エラーが生じた場合でも、受信装置側で「無音」を出力する期間が生じることを回避することができるようになるという優れた効果を奏する。
以下、添付図面を参照して、本発明の一実施形態について詳細に説明する。
《オーディオネットワークシステムの構成》
図1は、この発明に係るオーディオネットワークシステムの全体構成例を示す概念的ブロック図である。オーディオネットネットワークシステムは、少なくとも1つのポートを有する1つのメインノード(Mノード)1と、それぞれ複数のポートを有する複数(図1では7つ)のサテライトノード(Sノード)2a〜2hと、メインノード1及び複数のサテライトノード2a〜2hのうちの任意のノードの1つのポートと、メインノード1及び複数のサテライトノード2a〜2hのうちの別の任意のノードの1つのポートとを接続する複数のケーブル(接続線)とで構成される。図1のネットワークシステムの構成例では、各サテライトノード2a〜2hは、それぞれ1つ以上のポートを通じて他のノードに接続している。従って、メインノード1から各サテライトノード2a〜2hに至る経路は、各サテライトノード2a〜2h毎に1つ以上ある。
メインノード1は、複数チャンネル(例えば8チャンネル)のオーディオ信号を供給するオーディオソース(AS)3が接続されており、該供給されたオーディオ信号を含むメインパケットを送信するノードである。メインノード1は、例えば、ネットワーク機能を有するアンプ、オーディオミキサ等の音楽機器や、汎用コンピュータなどを想定している。
また、サテライトノード2a〜2hは、それぞれ、オーディオ信号に応じた音を発音するためのサウンドシステム(SS)4が接続されている。サウンドシステム(SS)4は、メインノード1から受信したメインパケットに含まれるオーディオ信号に応じた音を発音する。サテライトノード2a〜2h(サウンドシステム(SS)4を含む)は、この実施例では、アンプを内蔵したスピーカ装置を想定している。
メインノード1は、所定周期毎に、オーディオソース3から供給された該複数チャンネルのオーディオ信号を含むパケットデータを形成して、該作成したパケットデータを、当該メインノード1が有するポートから送信する。メインノード1から所定周期毎に送信されたメインパケットは、ネットワークシステム上の互いに接続されたノード間を転送される。サテライトノード2a〜2hは、複数のポートのいずれかからメインパケットを受信して、受信したメインパケットから自身で必要なチャンネルのオーディオ信号を取り出して、取り出したオーディオ信号をサウンドシステム4に出力するとともに、該受信したメインパケットを複数のポートのうちの前記受信したポート以外のポートからサテライトノードに転送する。従って、サテライトノード2a〜2hは、いずれか1つの経路がメインノード1につながれていれば、メインノード1から送信されたオーディオ信号を受け取ることができる。
メインノード1から各サテライトノード2a〜2hへパケットデータを送信する経路は、詳しくは後述する経路制御(ルーティング)により選択される。この実施例に示すオーディオネットワークシステムは、その経路制御に特徴がある。更に言えば、パケットデータを送信する経路に障害が生じた場合(例えばノードが脱落した場合など)に、任意に結線された経路の中から新たなルートを探す(別ルートを探す)ことにより、自動的に経路を変更して、その障害を回避すること(動的ルーティング)を、比較的簡単な制御で行えるようにしたことに特徴がある。
図2は、図1に示すオーディオネットワークシステム構成の変形例である。図2では、図1のネットワークシステムに、更に、メインノード5が1つ追加された構成例、すなわちメインノードを二重化した構成例が示されている。図2では、ネットワークシステムには2つのメインノード1及び5が接続されており、メインノード1とメインノード5との両方にオーディオソース3が接続される。
図2のように、2以上の複数のメインノードを有する構成(メインノードを多重化した構成)では、2以上の複数のメインノードのうちの1つ(例えばメインノード1)がメインノードとして動作して、他のメインノード(例えばメインノード5)がサテライトノードとして動作する。すなわち、サテライトノードとして動作するメインノード5は、何れかのポートからメインパケットを受信して、該受信したメインパケットをその他のポートから他のサテライトノードに転送する。そして、サテライトノードとして動作しているメインノード5は、何れのポートからもメインパケットを受信しなくいなった場合(オーディオネットワークシステムからメインノード1がいなくなった場合)に、メインノード5が自動的にメインノードに昇格して、メインノードとしての動作を開始する。なお、図2では、各サテライトノードに接続されたサウンドシステムの図示を省略した。
《パケットの構成》
図3は、ネットワークシステム上を流れるパケットデータの構成を説明するための図である。図3において、横軸は時間を示しており、時間軸上の1つの枠6は、パケット伝送の単位となる、1ミリ秒(1ms)の期間(周期)である。このパケット伝送周期(1ms)に、メインパケット7とサテライトパケット8が伝送される。このネットワークシステムにおけるデータの伝送レートは、例えば、24.576Mビット/秒である。メインパケット7は、先頭にヘッダがあり、その後に複数のクロック信号と複数のデータが交互に入っている。メインノード1は、パケット伝送周期毎に1つのメインパケット7を形成し、当該メインノード1の全てのポートからサテライトノードに向けて送信する。サテライトパケット8は、サテライトノードが必要に応じて形成して送信するパケットである。サテライトパケット8は、パケット伝送周期毎に必ず入っているとは限らない。
1つのパケットには、複数のクロック信号が入っている。クロック信号は、メインノード1側のサンプリングクロック(第1クロック)に、サテライトノード2a〜2h側のサンプリングクロック(第2クロック)を、同期させるためのクロック信号である。
この実施例では、パケット伝送周期(1ms)を12等分割した83.3μ秒毎にクロック信号が入っている。すなわち、1つのパケットに対して12個のクロック信号が等間隔で埋め込まれている。各83.3μ秒の期間に、クロック信号を含めて2048ビット(256バイト)のデータが伝送される。パケット伝送周期(1ms)を12等分割した83.3μ秒毎の期間のうち、先頭から11個目の期間まではメインパケット7を構成する11個のデータ(DATA1〜DATA11)が入っており、最後の12個目の期間にサテライトパケット8が入る。この明細書では、メインパケット7を伝送する期間(1パケットの先頭から11個目の期間まで)を「メインパケット期間」といい、最後の12個目の期間を「サテライトパケット期間」という。
なお、図3において、「サテライトパケット期間」中のサテライトパケット8は、サテライトパケット期間の開始タイミングを示すクロック信号に対して遅れている(当該パケットは、クロック信号に対して間隔を空けて描かれている)。サテライトパケット8を形成したサテライトノードは、サテライトパケット期間のクロック信号のタイミングで当該サテライトパケット8を出力するが、メインノードまでの経路上の各接続線での伝送遅延と、各ノードでのサテライトパケットの転送に要する時間とにより、上流に行くほど、サテライトパケット8がクロック信号に対して遅れる。図3では、その遅れが表現されている。
また、サテライトパケット期間の末尾(つまりパケット伝送周期の末尾)には、次のメインパケット7のヘッダが入る。すなわち、或るメインパケット7のヘッダは、直前のパケット伝送周期の末尾に入っている。なお、ヘッダ部9はパケットの先頭を示すビットパターンである。
図4は、1つのメインパケット7を形成する手順の概要を説明する図である。この実施例では、オーディオ信号のビット幅を24ビット、サンプリングレートを96kHzとする。先述した1msのパケット伝送周期は、サンプリングクロックを96分周した時間に相当する。従って、パケット伝送周期毎に形成されるメインパケット7には、96サンプリング周期分の96個のサンプルデータ(「S0」〜「S95」)含まれる。各サンプルデータ(「S0」〜「S95」)は、8チャンネル分のオーディオ信号のサンプルである。
図4(a)において、96個のサンプルデータ(「S0」〜「S95」)を、偶数サンプル(「S0」、「S2」…「S94」)のグループと、奇数サンプル(「S1」、「S3」…「S95」)のグループとにグループ分けする。図4(b)では、偶数サンプル(「S0」、「S2」…「S94」)のグループと制御信号(CTR)のセット、及び、奇数サンプル(「S1」、「S3」…「S95」)のグループと制御信号(CTR)のセットを形成するとともに、各セットにエラーチェック情報(EC)を付加する。制御信号(CTR)は、経路制御等に関するサテライトノードに対する命令や、各サテライトノードの信号処理等をメインノード1からリモート制御するための制御データ等を含む。エラーチェック情報(EC)は、パケットを受信したサテライトノード2a〜2h側で、チャンネル毎のオーディオ信号を再生するときに、偶数サンプルグループと、奇数サンプルグループとをそれぞれエラーチェックするための情報である。
このように、1つのメインパケットを構成するデータを、偶数サンプルグループと制御信号のセットにエラーチェック情報を付加したデータと、奇数サンプルグループと制御信号のセットにエラーチェック情報を付加したデータとの2つのグループに分けることで、パケットの伝送エラーによってパケット中のデータの一部が失われた場合であっても、サテライトノードでオーディオ信号を再生するときに、2つのグループのうちの当該伝送エラーの影響を受けなかったグループのデータを用いて、オーディオ信号を再生しうる。
そして、偶数サンプルグループと制御信号のセットにエラーチェック情報を付加したデータと、奇数サンプルグループと制御信号のセットにエラーチェック情報を付加したデータとからなる1つのメインパケットに等間隔で12個のクロック信号を埋め込む。
すなわち、1つのメインパケットのデータ(偶数サンプルグループと制御信号のセットにエラーチェック情報を付加したデータと奇数サンプルグループと制御信号のセットにエラーチェック情報を付加したデータ)は、11個のデータブロック「Data1」〜「Data11」に均等分割されて(図4(c))、各データブロック「Data1」〜「Data11」は12個のクロック信号に挟み込まれ、且つ、メインパケットの先頭部にヘッダ部9が付加される(図4(d))。これにより、パケット伝送周期(1ms)の期間中に等間隔で12個のクロック信号が埋め込まれたメインパケット7が形成される。なお、メインパケット7のサイズは、約2820〜30バイト程度である。
この実施例のように、所定周期(1ms)毎に伝送されるメインパケット7に対して、複数(12個)のクロック信号を等間隔(83.3μs)に分散して埋め込むことで、サテライトノードでは、1ms毎に送信される1つのパケット中のオーディオ信号の再生に用いるサンプリングクロックを、83.3μs毎の複数のクロック信号に基づいて発生することができる。従って、メインパケット7の伝送周期に同期した粗い分解能でサンプリングクロックを発生するのに比べて、高い安定度で、且つ、メインパケット7を形成したメインノードで用いるサンプリングクロックとのずれの少ないサンプリングクロック(サテライトノード側のサンプリングクロック)を発生することができるようになる。
《ハードウェア構成》
図5は、サテライトノード2a〜2hとメインノード1のハードウェア構成を概念的に説明するブロック図であって、(a)はサテライトノードの構成例であり、(b)はメインノードの構成例である。
《サテライトノード》
(a)において、サテライトノードは、4つのポート10a〜10dを具える。4つのポート0a〜10dには、「0」から1ずつ増える数値がポート番号(「ポート0」、「ポート1」、「ポート2」、「ポート3」)として与えられている。4つのポート10a〜10d(「ポート0」〜「ポート3」)のいずれか1つは、メインノード1から送信されたメインパケットを受信するメインポート(Mポート)となる。
第1セレクタ11は、パケット伝送周期(1ms)のメインパケット期間では、4つのポート10a〜10dのうちのMポートを選択して、パケット伝送周期毎に受信したメインパケットを受信及び転送部12に出力し、サテライトパケット期間では、Mポート以外の3つのポート(Sポート)のうちのサテライトパケットを受信した1つのポートを選択して、受信したサテライトパケットを、受信及び転送部12に出力する。また、各ポート10a〜10dからは、当該ポートでパケットデータを受信し始めた旨を伝える受信検出信号(図において点線で示す)が受信及び転送部12に出力されており、受信及び転送部12は、その受信検出信号に基づいて、各サテライトパケット期間ごとに最初にサテライトパケットを受信したポートを選択するよう第1セレクタ11を制御する(先着優先)。
なお、「Mポート」とは、当該サテライトノードでメインパケットを受信するポート(つまり、パケット伝送経路に沿ってネットワーク構造を階層的に見た場合に、メインノードに向いているポート)である。また、「Sポート」とは、4つのポートのうちMポート以外のポートを指す。
受信及び転送部12は、後述する制御データレジスタ18に記憶された制御データに基づき、第1セレクタ11から供給されたメインパケット及びサテライトパケットを受信する制御、受信したパケットから各種データを取り出す制御、及び、受信したパケットを他のノードへ転送する制御を行う。また、当該サテライトノードがサテライトパケットを形成して送信する場合は、そのサテライトパケットの送信タイミングを制御する動作も行う。サテライトノードは、基本的には、受信したメインパケットに含まれる制御信号(CTR)に当該サテライトノードが宛てであるとき、該制御信号に対する応答を含むサテライトパケットを形成してメインノードに対して送信する。各動作の詳細は後述する。
第2セレクタ13は、一方の入力に受信及び転送部12から出力された転送すべきメインパケット又はサテライトパケットが入力され、他方の入力にサテライトパケット形成及び送信部20から出力されたサテライトパケットが入力され、基本的には、受信及び転送部12の出力を選択して出力するが、制御部17によりサテライトパケットの送信が設定されているときには、受信及び転送部12から与えられるサテライトパケット期間の先頭を示すクロック信号のタイミングで、サテライトパケット形成及び送信部20の出力を選択する。なお、本システムは複数のサテライトノードが同時にサテライトパケットを形成して送信しないように設計されており、当該サテライトノードからサテライトパケットを送信するときには、経路の下流から転送すべきサテライトパケットは送られてこない。反対に、経路の下流から転送すべきサテライトパケットが送られるときには、当該サテライトノードからサテライトパケットを送信することはない。
ゲート14は、4つのポート10a〜10d(「ポート0」〜「ポート3」)のそれぞれの開閉を制御するゲートであって、メインパケット期間ではMポート以外の全てのポートを開き、サテライトパケット期間では、指定されたMポートのみを開く。従って、メインパケットは、当該サテライトノードの経路の下流に接続された全てのサテライトノードに転送され、また、サテライトパケットは指定されたMポートのみに転送(送信)される。
命令レジスタ15は、受信及び転送部12が、受信したメインパケットから取り出した各種命令データ(制御信号CTR)を書き込むレジスタである。ステート情報レジスタ16は、メインパケット受信確認等の各種ステート情報を書き込むレジスタである。
上記の第1セレクタ11、受信及び転送部12、第2セレクタ13、及びゲート14の動作により、ポート10a〜10dを介したパケットデータ(メインパケット及びサテライトパケット)の受信及び転送が制御される。
制御部17は、CPUとメモリを含むマイクロコンピュータであって、詳しくは後述する各種処理を実行して、受信及び転送部12を制御するための制御データを生成したり、命令レジスタ15に書き込まれた各種命令に対する応答データを作成したり、或いは、信号処理部21の信号処理に用いる各種制御パラメータの値を生成したりする。
制御データレジスタ18は、制御部17で生成した受信及び転送部12を制御するための制御データを保持するレジスタである。制御データには、当該サテライトノードのMポートを示すMポート番号データ、8チャンネルのオーディオ信号のうち当該サテライトノードで必要なチャンネル番号を示す受信チャンネル番号データ、4つのポート10a〜10d(「ポート0」〜「ポート3」)の各ポート毎に受信したサテライトパケットの転送を許可するか又は禁止するかを指定する禁止ポートデータが含まれる。
応答レジスタ19は、制御部17がメインノードから送信された命令に対して作成した応答データを書き込むレジスタである。応答データは必ずメインノード宛てであるので、書き込まれる応答データには宛て先を示すデータが付加されない。サテライトパケット形成及び送信部(Sパケット形成及び送信部)20は、制御部17によって応答データが応答レジスタ19に設定されたときに、該応答データに基づいてサテライトパケットを形成し、受信及び転送部12から与えられるサテライトパケット期間の先頭を示すクロック信号のタイミングで、該形成したサテライトパケットを送信する。サテライトパケット形成及び送信部20の出力が前記第2セレクタ13の一方の入力となる。
また、受信及び転送部12は、パケット伝送周期ごと(1ms毎)に受信したメインパケットのデータ(「Data1」〜「Data11」)をバッファして、制御データレジスタ18に記憶された受信ch番号データに基づき、該バッファしたデータから当該サテライトノードで必要なチャンネルのオーディオ信号を取り出して、取り出したオーディオ信号を、サンプリング周期毎に信号処理部21に出力する制御(オーディオ信号の再生に関する処理)を行う。このとき、受信及び転送部12は、メインパケット中に等間隔に埋め込まれた複数のクロック信号の受信タイミングを検出してオシレータ22に伝達する。
オシレータ(OSC)22は、メインパケット中のクロック信号の受信タイミングに同期して、サンプリング周期を規定する信号であるサンプリングクロック(第2クロック)を発生する。図6は、オシレータの構成例を示す図である。OSC22は、メインパケットのクロック信号の受信タイミングと、フィードバック信号の位相を比較する位相比較器50と、位相比較器50の出力に応じて補正された周波数情報を発生する周波数情報発生部51と、該周波数情報発生部51の出力信号により発振周波数が制御される発振器52と、発振器52の出力と位相比較器50の入力の間に挿入された分周器53とから構成される。すなわち、動作クロック発生器は、PLL(Phase Locked Loop:「位相ロックループ」の略)による周波数逓倍器である。メインパケットのクロック信号の受信タイミングと、フィードバック信号の立ち上がり(又は、立下り)タイミングとを比較して、その比較結果に応じて、受信及び転送部12からのクロック信号と発振器52の出力を8分周した信号の位相が一定の関係を保つように周波数情報を調整して発振器52に出力する。発振器52は、周波数情報に応じて、クロック信号に同期したサンプリングクロック(96kHz)を生成し出力する。メインパケットのクロック信号は、1伝送クロック(1伝送周期=1ms)を12等分したタイミングのクロックであるが、メインノードのサンプリングクロック(96kHz)を8分周した信号にも相当しており、それに対してサテライトノードのサンプリングクロックを8分周して位相同期させることにより、結果的に、サテライトノードで生成されるサンプリングクロックがメインノードにおけるサンプリングクロックに対して同期する。
信号処理部21は、フィルタ、コンプレッサ、ディレイ(遅延制御)、或いは、レベル制御(減衰器)等の要素からなり、オシレータ22が出力するサンプリングクロックが示すサンプリング周期毎に、受信及び転送部12から出力されたオーディオ信号のサンプルを信号処理してデジタルアナログ変換器(DAC)23へ出力する。信号処理部21の信号処理に用いるパラメータの値は、制御部17から供給される。DAC23は、オシレータ22が出力するサンプリングクロックが示すサンプリング周期毎に、信号処理部21から出力された複数チャンネル分のオーディオ信号のサンプルをアナログ信号に変換して、サウンドシステム4(図1参照)に出力する。
《メインノード》
図5(b)を参照してメインノードの構成を説明する。メインノードは、2つのポート(「ポート0」30a、「ポート1」30b)を具える。メインノードの主な動作は、オーディオソース(図1の符号3)から供給されたオーディオ信号を含むメインパケットを形成してポート30a,30bから送信することである。
アナログデジタル変換器(ADC)31は、外部のオーディオソース(図1の符号3)から入力された8チャンネルのアナログオーディオ信号を、サンプリングクロック(96kHz)が示すサンプリング周期毎に、デジタル信号に変換して信号処理部32に出力する。信号処理部32は、サンプリング周期(96kHz)毎に、ADC31から供給された8チャンネルのオーディオ信号を、制御部38から供給されたパラメータの値に基づき、チャンネル毎に処理してメインパケット形成及び送信部34に出力する。オシレータ(OSC)33は、図示外のシステムクロックに基づき所定サンプリング周波数(例えば96kHz)のサンプリングクロック(第1クロック)を発生して、ADC31及び信号処理部32に供給する。
なお、この実施例では、オーディオ信号入力インターフェースがアナログ信号を入力するADC31で構成される例を示したが、デジタルオーディオ信号を入力するデジタル信号入力インターフェースでもよい。デジタル信号を入力する構成では、該デジタル信号から抽出した外部サンプリングクロック、又は、該デジタル信号のソースから別途供給される外部サンプリングクロックをOSC33に供給し、OSC33に、該供給された外部サンプリングクロックに同期したサンプリングクロックを発生させるとよい。
メインパケット形成及び送信部34は、メインパケットを送信すべきタイミング(1ms毎のパケット伝送周期)で、信号処理部32から供給された8チャンネルのオーディオ信号と命令レジスタ35から供給された各種命令データ(制御信号CTR)を含むメインパケットを形成して、形成したメインパケットを第1セレクタ36に出力する。また、メインパケット形成及び送信部34は、メインパケットの末尾のクロック信号のタイミングで、サテライトパケット期間の先頭を示す該クロック信号を受信及び転送部42に出力する。また、メインパケット形成及び送信部34は、図示外のシステムクロックに基づき、当該メインパケット形成及び送信部34で形成するメインパケットに埋め込むためのクロック信号を83.3μs毎に発生するとともに、該発生したクロック信号をカウントして、該クロック信号を12個カウントする毎にパケット伝送周期を示すパルス信号を発生することで、1ms毎にパケット伝送周期を繰り返して発生する。ここで、メインパケット形成及び送信部34と前記OSC33のいずれも、同じ図示外のシステムクロックに同期しているので、メインパケット形成及び送信部34により発生したパケット伝送周期は、OSC33により発生したサンプリングクロックを96分周した時間に相当する。すなわち、メインパケット形成及び送信部34は、OSC33により発生したサンプリングクロック(第1クロック)を96分周した時間毎に、パケット伝送周期(第1周期)を繰り返し発生する。
第1セレクタ36は、メインパケット形成及び送信部34の出力と、受信及び転送部42の出力が入力され、当該メインノードがメインノードとして動作しているときには、メインパケット形成及び送信部34の出力を選択してゲート37に出力する。ゲート37は、当該メインノードがメインノードとして動作しているときには、2つのポート30a,30bを開いておく。従って、メインパケット形成及び送信部34が、メインパケットを送信すべきタイミングで、メインパケットを形成して送信すると、該メインパケットが2つのポート30a,30bから送信される。
制御部38は、CPUとメモリを含むマイクロコンピュータであって、詳しくは後述する各種処理を実行する。具体的には、操作子43の操作に応じて、信号処理部32の信号処理に用いる各種制御パラメータの値を生成して信号処理部32に供給したり、サテライトノードに対する各種命令(リモート制御するためのパラメータを含む)を生成して、命令レジスタ35に書き込んだり、或いは、受信及び転送部42を制御する制御データを生成して制御データレジスタ39に書き込んだりする。また、メインノードの制御部38は、後述するネットワーク構造を示すデータを記憶するメモリを有する。
命令レジスタ35は、制御部38で生成したサテライトノードに対する各種命令データを書き込むレジスタである。書き込まれる命令データには、その命令のあて先を示すID(Identifier)が付加されている。制御データレジスタ39は、制御部38で生成した受信及び転送部42を制御する制御データを書き込むレジスタである。また、応答レジスタ40は、受信及び転送部42で受信したサテライトパケットに含まれる各種応答データを書き込むレジスタである。また、ステート情報レジスタ41は、受信及び転送部42でのパケット受信確認等、各種ステート情報を書き込むレジスタである。
操作子43は、当該メインノード自身の動作(信号処理)を制御するパラメータの値を変更したり、サテライトノードの動作(信号処理)をリモート制御するパラメータの値を変更したりすること、或いは、表示部44の画面切り替えを指示すること等に利用する。操作子43が操作されると、その操作又は操作量が検出され、操作された操作子を示すデータと、検出された操作又は操作量を示すデータが制御部38に供給される。表示部44は、制御部38の制御に基づき各種情報を表示するディスプレイである。表示部44には、当該メインノード、又は他のノードの所望のパラメータの設定状態や、当該メインノードが接続されたオーディオネットワークシステムのネットワーク構造を表示することができる。
受信及び転送部42は、制御データレジスタに設定された各種制御データに基づき動作し、サテライトノードが送信したサテライトパケットを受信したとき、該サテライトパケットから応答データを取り出して応答レジスタ40に書き込んだり、パケット受信確認等の各種データをステート情報レジスタ41に書き込んだりする。なお、当該メインノードがメインノードとして動作しているときには、パケットの転送は行わない。第2セレクタ45は、受信及び転送部42からの指示に応じて、2つのポート30a,30bに接続され、ポート30a,30bのいずれか一方の出力を選択して、受信及び転送部42に出力するものである。メインノードとして動作しているときには、ポート30a、30bのうちの、各サテライトパケット期間において、最初にサテライトパケットを受信したポートの出力を選択するよう制御される。
図2のように複数のメインノードがネットワークシステム上に存在するときは、1つのメインノードだけがメインノード動作して、その他はサテライトノードとして動作する。メインノードがサテライトノードとして動作する場合には、図5(b)に示すメインノードの各部は、(a)に示すサテライトノードの対応する各部と同様に動作する。メインノードがサテライトノードとして動作する場合には、図5(b)において、応答レジスタ40は、受信したメインパケットから取り出した各種命令データを保持する「命令レジスタ」となり、命令レジスタ35は、命令データに対する各種応答データを保持する「応答レジスタ」となる。メインパケット形成及び送信部34は、制御部38による制御の下、「応答レジスタ」(命令レジスタ35)の応答データを含むサテライトパケットを形成して送信する「サテライトパケット形成及び送信部(Sパケット形成&送信部)」となる。そして、第2セレクタ45は、メインパケット期間には、ポート30a及び30bのうちのMポートの出力を選択して、サテライトパケット期間にはSポートの出力を選択する。また、第1セレクタ36は、基本的には受信及び転送部42の出力を選択しており、自身からサテライトパケットを送信すべきときに、受信及び転送部42から与えられるサテライトパケット期間の先頭を示すクロック信号のタイミングで「サテライトパケット形成及び送信部」(メインパケット形成及び送信部34)の出力を選択する。ゲート37は、メインパケット期間ではMポート以外の全てのポートを開き、受信及び転送部12から与えられるサテライトパケット期間では、指定されたポートのみを開く。なお、図5(b)において、受信及び転送部42からメインパケット形成及び送信部34に入力する細矢印と第1セレクタ36に入力する細矢印は、それぞれサテライトノードとして動作しているときのサテライトパケット期間の先頭を示すクロック信号の流れを示している。
《動作の説明》
図7は、図1又は図2に示すオーディオネットワークシステムにおいて、パケットデータの伝送を行うための経路制御及びネットワーク構造(トポロジー)の検出処理を説明するための図であって、ネットワークシステムの構成(ノード間の接続状態)の一例を示している。図7において、1つのメインノード(Mノード)60と、4つのサテライトノード(Sノード0〜Sノード3)61〜64とからなるオーディオネットワークシステムを示している。
以下、図7に示すネットワークシステムの構成例を見ながら、各ノードにおいて行われるパケットの送受信動作や、ノード間の経路制御に関する処理、及び、ネットワーク構造(トポロジー)の検出に関する処理について説明する。
図7(a)は経路選択前の状態であって、ノード間の接続線を点線で描き、これが未確認の接続線であることを示す。この状態では、メインノード60は、自身が接続されたネットワークシステムのネットワーク構造(トポロジー)をまだ知らない。また、各サテライトノード61〜64は、それぞれが有する4つのポート「ポート番号0(P0)」〜「ポート番号3(P3)」のいずれがMポートとなるか決定されていない。
図8は、メインノードの制御部38及びサテライトノードの制御部17が行う基本処理を説明するフローチャートである。この処理は、ネットワークシステムの電源が投入されたとき(メインノード及びサテライトノードの電源が投入されたとき)に開始する。ステップS1において、所定の初期化処理が行われて、各種タスクを起動する。そして、操作子の操作検出イベント等、各種イベントの検出を行い(ステップS2)、何らかのイベントが検出される度(ステップS3のYES)、当該発生されたイベントに応じた処理を行う(ステップS4)。
《メインパケットの送信》
メインノードの制御部38において、前記ステップS1の初期化処理により起動する各種タスクには、サテライトノードに向けてメインパケットを送信するタスク等が含まれる。図9は、メインノードのメインパケット形成及び送信部34が実行するメインパケット形成及び送信処理の一例を示すフローチャートである。この処理は、図8のステップS1の初期化処理により起動するタスクに含まれる。また、図10は、メインパケットの形成及び送信処理の動作タイミングを説明する図であって、同図において横軸は時間である。
メインノードのメインパケット形成及び送信部34には、96サンプルのオーディオ信号(サンプルデータ)を8チャンネル分記憶できるバッファが3つ用意されており、3つのバッファのうちの1つは(1)サンプリング周期毎に入力される8チャンネル分のオーディオ信号の書き込み用のバッファとして利用され、別の1つは(2)メインパケット形成用のバッファとして利用され、更に別の1つは(3)メインパケット送信用のバッファとして利用される。各バッファの用途は固定されておらず、状況に応じてこれらの3つの用途内で順次変更される。
外部のオーディオソース(図1の符号3)から供給される8チャンネル分のオーディオ信号は、ADC31で、サンプリング周期毎に、それぞれデジタル信号(サンプル)に変換され取り込まれる。該取り込まれた8チャンネル分のデジタルオーディオ信号は、サンプリング周期毎に、それぞれ信号処理部32で信号処理されて、メインノードのメインパケット形成及び送信部34に入力される。メインパケット形成及び送信部34では、サンプリング周期毎に入力された8チャンネル分のオーディオ信号を、それぞれオーディオ信号書き込み用バッファに96サンプル分書き込む(図10において、タイミングT1からT2までの動作)。この実施例では、各パケット伝送周期(1ms)毎に、各チャンネルのオーディオ信号が96サンプル入力されるよう、パケット伝送周期の時間長が制御されている。
オーディオ信号書き込み用バッファは、偶数サンプルを書き込む領域と、奇数サンプルを書き込む領域とに分かれており、サンプリング周期毎に入力されたオーディオ信号を、オーディオ信号書き込み用バッファに書き込むときに、偶数サンプル(サンプル番号S0,S2…S94)と、奇数サンプル(サンプル番号S1,S3…S95)とが、偶数サンプル領域と奇数サンプル領域とに分けて書き込まれる。
図10に示す通り、オーディオ信号書き込み用のバッファに96サンプル分のオーディオ信号が書き込まれた時点(図10においてタイミングT2)で、該オーディオ信号書き込み用のバッファがメインパケット形成用のバッファに転換され、図9に示すメインパケット形成及び送信処理が開始される。同時に、直前のメインパケットの送信に使用されたバッファが、オーディオ信号書き込み用バッファに転換され、これ以降に入力されるオーディオ信号の書き込みは、該転換されたオーディオ信号書き込み用のバッファに対して行われる。
ステップS5において、メインパケット形成及び送信部34は、偶数サンプル(サンプル番号S0,S2…S94)と、奇数サンプル(サンプル番号S1,S3…S95)のそれぞれに、命令レジスタ35に設定された命令等を含む制御信号(CTR)又は該制御信号を2分割した各半分のデータを付加して、偶数サンプルグループと制御信号(CTR)のセット、及び、奇数サンプルグループと制御信号(CTR)のセットを形成して、ステップS6において、各セットにエラーチェック情報(EC)を付加して、パケット伝送周期分のメインパケットのデータを形成する。そして、メインパケット形成及び送信部34は、該メインパケット形成用のバッファを、メインパケット送信用のバッファに転換して、メインパケットの送信タイミングまで待機する(ステップS7)。なお、この時点では、直前のメインパケットの送信がまだ行われている可能性がある。
そして、メインパケット形成及び送信部34は、パケット伝送周期(1ms)毎のメインパケットの送信タイミング(図10のタイミングT3)で、前記偶数サンプルグループのセットと奇数サンプルグループのセットとからなる1パケット分のデータに、ヘッダやクロック信号を付加しながら送信する(ステップS8)。図10において、メインパケットが形成された後、送信タイミング(タイミングT3)を待ってから、メインパケットの送信が開始する様子が描かれている。クロック信号は、1パケット分のデータに対して、パケット伝送周期(1ms)を12等分割した83.3μs毎に、等間隔で埋め込まれることは前述の通りである。従って、前記ステップS8では、パケット伝送周期(1ms)の1/12クロックに相当する間隔(83.3μs)でクロック信号を埋め込みつつメインパケットのデータを送信する。図10は、オーディオ信号の入力、メインパケットの形成、送信の各処理の時間関係を、1つのメインパケットに注目して図示したものであり、同じ処理はパケット伝送周期(1ms)毎に繰り返し行われる。つまり、一連のメインパケットの各々が、継続的に入力信号に応じて、パケット伝送周期毎に送信される。
《経路制御》
図7(a)は経路選択前の状態では、上記図9の処理により、各パケット伝送周期毎に、メインノード60からサテライトノード61〜64に対してメインパケットが送信されているが、この時点では、各サテライトノード61〜64において、まだ、それぞれが有する4つのポート「ポート番号P0」〜「ポート番号P3」のいずれがMポートとなるか決定されていない。すなわち、メインノード60から各サテライトノード61〜64へメインパケットを伝送する経路が選択されていないので、送信されたメインパケットは、メインノード60に直接接続されているサテライトノード61にしか届いていない。
そこで、各サテライトノード61〜64の制御部17は、ネットワークシステムの電源投入時(或いは、ネットワークリセット時)に、図11に示すMポート番号設定処理を実行して、各自のMポート(メインパケットを受信するポート)を設定する。Mポート番号設定処理は、前記図8のステップS1の初期化時に開始して、それ以降常時実行される。
ステップS9において、チェック対象変数iに0をセットする。そして、ステップS10において、制御部17は制御データレジスタ18のMポート番号データに変数iを設定する。そして、Mポート番号データに設定したポート(変数iに対応するポート)について、所定時間待機(ステップS11)して、パケット伝送周期毎に到着すべきメインパケットの受信状況を確認する(ステップS12)。前記ステップS11の待ち時間は、パケット伝送周期の複数期間分の時間とする。この実施例では、パケット伝送周期が1msであるから、待ち時間は、例えば4ms程度とする。所定時間経過後も当該変数iに対応するポートでメインパケットを受信しなければ(ステップS13のNO)、当該ポートがMポートとしては不適切と判断して、当該変数iに1加算した値を新たな変数iにセットして(ステップS14)、ステップS10以降を繰り返す。変数iの値が1つ増えれば、ステップS9でMポート番号データとして設定するポート番号が1つずつ移動する(但し、i≦4)。変数iが4になった場合(ステップS15のYES)、ステップS9に戻り、再び変数iに0をセットして、ポートP0からメインパケット受信確認を行う。このMポート番号データが順次変更されている状態を、Mポートが未だ決定されていない状態と呼ぶ。
所定時間内に、当該変数iに対応するポートでメインパケットを受信した場合(ステップS13のYES)、制御部17は、当該変数iに対応するポートがMポートとして適切であると判断する。以後はステップS11〜S13を繰り返すことで、当該Mポート(ポート番号i)でのメインパケット受信状況を監視して、メインパケット受信が確認できている間は、Mポートの設定を継続する。このMポート番号データが1つのポート番号に固定されて変化しない状態を、Mポートが決定された状態と呼ぶ。
これにより、チェック対象のポート番号(Mポート番号)を、ポートP0から1つずつ順番に移動して、メインパケットの定期的な受信が最初に確認されたポートを、Mポートとして決定することができる。
Mポートでメインパケット受信が確認された後もステップS11〜S13を繰り返して、メインパケット受信状況を監視しているので、当該Mポートでのメインパケットの受信が途絶えた場合(当該Mポートの経路が切断された場合)には、ステップS13をNoに分岐して、Mポート番号を次のポート番号に順次移動して、メインパケットの定期的な受信をチェックし、新たにメインパケットの定期受信が確認されたポートを、新たなMポートとして使用するよう自動的に設定することができる。
なお、この実施例では、サテライトノード61〜64がそれぞれ4つのポートを有する構成を想定しているので、ステップS11の判断基準の値が「4」であるが、サテライトノードのポート数が4以外のn個の場合は、チェック対象変数iとポート数nとの一致(i=n)をステップS11において判断する。
ネットワークシステム上の各サテライトノードが図11の処理を行うことで、各自のメインポートを決定していく様子を、図7を参照して説明する。図7(a)に示す初期状態(いずれのサテライトノードもMポート未決定の状態)で、メインノード60がパケット伝送周期毎のメインパケットの送信を開始して、各サテライトノード61〜64が図9のMポート番号設定処理を実行すると、先ず、メインノード60のポートP0に接続されたサテライトノード61(Sノード0)のポートP0がメインパケットを受信する。従って、サテライトノード61はポートP0をMポートに決定する。
Mポートが決定されたサテライトノード61は、パケット伝送周期毎に、このMポート(ポートP0)で受信するメインパケットを、Mポート以外の各Sポートからその接続先のノードへ転送する(図5(a)の受信及び転送部12の動作)。従って、サテライトノード62(Sノード1)と63(Sノード2)には、サテライトノード61がパケット伝送周期毎に転送したメインパケットが、同時に届き始める。そして、サテライトノード62では、Mポート番号設定処理によりポートP1がMポートに決定され、サテライトノード63では、Mポート番号設定処理によりポートP1がMポートに決定される。サテライトノード62と63におけるMポート番号設定処理は互いに独立したタイミングで行われているので、この2つのノードにおけるMポートの決定は同時とは限らない。
Mポートが決定されたサテライトノード62、63は、それぞれ、決定されたMポートでパケット伝送周期毎に受信するメインパケットを各Sポートから転送するので、サテライトノード64(Sノード3)には、サテライトノード62と63の両方から、パケット伝送周期毎にメインパケットが届くようになる。サテライトノード64では、Mポート番号設定処理により1つのポートがMポートに決定されるが、この場合、ポートP0とポートP2の何れがMポートに決定されるかは、各ポートにメインパケットが届き始めるタイミングと、ポートを順番にチェックしていくタイミングとの関係により偶然に決まる。
このように、各サテライトノードにおける自立的なMポート設定処理により、基本的には、(メインパケットが早く届き始めるであろう)経路の上流から順に、各サテライトノードのMポートが自動的に決定される。各サテライトノードのどのポートがMポートとして決定されるかは、そのサテライトノードにおける各ポートのチェックタイミングと、他のノードから各ポートへメインパケットが届き始めるタイミングとによって偶然的に決定され、必ずしもメインノードから最短距離にあるポートに決定されるのではない(最短の経路が選択されるとは限らない)ことに留意されたい。
各サテライトノード61〜64においてMポートが決定されれば、メインノード60からサテライトノード61〜64にメインパケットを伝送する経路が確定したことになる。図7(b)は、その経路が確定した状態であり、各ノードにおいて決定されたMポートを太枠で示し、確定した経路の接続線を太線で示す。メインパケットは、太線で描いた経路を通って、メインノード60から各サテライトノード61〜64に伝送される。但し、この時点(メインノード60が後述する「トポロジー検出」を行っていない時点)では、メインノード60は、この選択された経路を認識又は検出しているわけではない。ただ単に、ネットワークシステム上で、メインパケットが伝送される経路が自動的に決定されただけである。
図7(b)において、例えば、サテライトノード62(Sノード1)では、サテライトノード61のポートP1に接続されたポートP1がMポートに設定されている。この状態で、サテライトノード61のポートP1とサテライトノード62のポートP1との経路に障害が生じた(接続が切れてしまった)場合には、サテライトノード62のポートP1にメインパケットが届かなくなるので、サテライトノード62は、ポートP2から順にメインパケットの受信をチェックして、メインパケットの定期的な受信が確認されたポートを新たなMポートに決定する。すなわち、図7(b)の状態であれば、ポートP2又はポートP3が新たなMポートに設定されることになる。
このように、本実施例によれば、各サテライトノードで、1つずつポートをチェックして、メインパケットの受信が確認されたポートをMポートに設定するだけの比較的簡単な制御で、経路に障害が発生した場合であっても、自動的に経路を変更して、その障害を回避すること(動的ルーティング)が可能となる。各サテライトノードが行う自動経路変更の処理は、ルーティングテーブルの作成などの複雑な制御を必要としない簡単な処理(Mポート番号設定処理)によって実現することができる。
また、前記図2のように、複数のメインノードを有するネットワーク構造(メインノードを多重化した構成)の場合、複数のメインノードのうち1つのみがメインノードとして動作(メイン動作)して、他はサテライトノードとして動作(サテライト動作)する。従って、サテライト動作するメインノードは、Mポート番号設定処理を実行して、Mポート(メインパケットを受信するポート)を設定する。図12は、サテライト動作するメインノードの制御部38が実行するMポート番号設定処理を例示するフローチャートである。このMポート番号設定処理は、前記図8のステップS1の初期化時に開始して、それ以降常時実行される。サテライト動作するメインノードの制御部38が実行するMポート番号設定処理には、当該メインノードの動作を、サテライト動作からメイン動作に切り替える処理が含まれる。なお、図12の処理は、メインノードが2つのポート(P0,P1)を有する構成を想定している。
図12のステップS100において、制御部38は、チッェク対象変数i,jにそれぞれ0をセットする。ここで、変数jは、最後にメインパケットの受信が検出されたポートのポート番号であり、変数iは、メインパケットの受信が検出されなくなってからのチェック回数である。そして、ステップS101において、制御部38は、制御データレジスタ39のMポート番号データとして、mod[(i+j)/2]の値を設定する。mod[(i+j)/2]は、「(i+j)/2」という除算の余りを求める関数である。角括弧内の分母「2」はメインノードの備えるポート数である。ポート数が2以外の数nの場合は、ポート番号はmod[(i+j)/n]で求められる。i、jがそれぞれ0であれば、Mポート番号データ(mod[(i+j)/2]の値)は、「0」となるので、ポート番号の小さい順にチェックを開始することができる。
そして、Mポート番号データに設定したポート番号(mod[(i+j)/2])について、所定時間待機(ステップS102)して、メインパケットの受信状況を確認する(ステップS103)。ここで、ステップS102の待ち時間は、ステップS12の待ち時間と同じであってもよいし、異なっていても良い。所定時間経過後も当該チェック対象のポートでメインパケットを受信しなければ(ステップS104のNO)、mod[(i+j)/2]の値に対応するポートがMポートとしては不適切と判断して、ステップS105において、変数iに1加算した値を新たな変数iにセットして、ステップS101以降を繰り返す。変数iの値が1つ増えれば、ポート番号(mod[(i+j)/2])が、メインノードが有するポートのポート番号(この場合は「0」と「1」)中で1つ移動する。
所定時間内に当該チェック対象のポートでメインパケットを受信した場合(ステップS104のYES)、制御部38は、当該ポート(ポート番号=mod[(i+j)/2])がMポートとして適切であると判断する。ステップS106において、制御部38は、変数jにmod[(i+j)/2](現在のMポート番号)をセットして、変数iに「0」をセットしてから、ステップS102以降を繰り返すことで、当該Mポート(ポート番号=mod[(i+j)/2])でのメインパケット受信状況を監視して、メインパケット受信が確認できている間は、Mポートの設定を継続する。
当該Mポートでのメインパケットの受信が途絶えた場合(当該Mポートの経路が切断された場合)には、ステップS104をNoに分岐して、ステップS105において変数iに1加算した値を新たな変数iにセットして、ステップS101以降を行う。前記ステップS105において、変数jにmod[(i+j)/2](現在のMポート番号)をセットして、変数iに「0」をセットしているので、ステップS101で新たに設定されるMポート番号(mod[(i+j)/2])は、直前のMポート番号の次のポート番号となる。すなわち、直前のMポート番号がP0であれば、新たに設定されるMポート番号はP1となり、直前のMポート番号がP1であれば、新たに設定されるMポート番号はP1となる。チェック対象のポートを順番に移動して、最初にメインパケット受信が確認されたポートを、Mポートに設定する。
すなわち、サテライト動作するメインノードで実行されるMポート番号設定処理は、1ポートずつチェック対象を移動してメインパケットの受信を確認し、メインパケットの受信が確認されている間は、継続して当該ポートをMポートに設定し、メインパケットの受信が途絶えた場合に、Mポート番号を次のポート番号に順次移動してメインパケットの定期的な受信をチェックし、新たにメインパケットの定期受信が確認されたポートを、新たなMポートに設定するという点では、図11に示すサテライトノードのMポート番号設定処理と同様である。
図12の処理では、変数iの値が所定値kになった場合(ステップS107のYES)、ステップS108及びS109により、当該メインノードの動作を、サテライト動作からメイン動作に切り替える処理を行う。この所定値kは、各メインノードにメイン動作を開始させる判断をするための基準として設定された値である。あるメインノードが「Mポートとしては不適切」の判断をk回連続したとき、そのメインノードはメイン動作を開始する。各メインノードは最低でも自身のポートを一通りはチェックすべきであるため、該所定値kは各メインノード自身が有するポート数以上の値に設定される。未だ経路選択が終わっていないとき(図7(a)、電源投入時やネットワークのリセット時)は、各メインノードがほぼ同時にMポート番号設定タスクを開始しても経路選択が問題なく行われるよう、所定値kを各メインノードごとに異なる値とするのがよい。そして、一旦経路選択された後(図7(b))は、所定値kをそのままの値としてもよいし、メインノード間で同じ値となるよう変更してもよい。
処理の開始時(ステップS100)で変数iに0をセットし、また、Mポートが決定した後にも(ステップS105)、変数iに0をセットしているので、変数iの値がkになるのは、2つのポートP0とP1を延べk回チェックした結果、メインパケットの受信が1回も検出されなかった場合、言い換えれば、k回続けてステップS104をNOに分岐した場合のみである。従って、変数iの値がkになった場合には(ステップS107のYES)、当該メインノードの制御部38は、ネットワークシステム上からメイン動作するメインノードがいなくなったものと判断して、サテライト動作の各種タスクを停止して(ステップS108)、メイン動作の各種タスクを起動する(ステップS109)。
これにより、ネットワークシステム上からメイン動作するメインノードがいなくなったとしても、サテライト動作していたメインノード(実質サテライトノード)が自動的にメイン動作するメインノードに切り替わり、メインパケットの送信等のタスクを引き継ぐので、ネットワークシステムの動作を継続することができる。
《パケットの転送》
次に、Mポートが設定されたサテライトノードにおけるパケット転送の動作と、メインパケット(オーディオ信号)の受信の動作について、説明する。なお、ここではサテライトノードが行う動作として説明しているが、メインノードもサテライト動作を行っている間は同じ動作を行う。
図13は、サテライトノードにおいて、受信検出信号(図5(a)の点線)により、メインパケット又はサテライトパケットの受信開始が通知されたときの受信及び転送部12の動作(ハードウェアの動作)を説明するフローチャートである。図13のステップS16において、受信及び転送部12は、受信し始めたパケットの種類がメインパケット(Mパケット)かサテライトパケット(Sパケット)かを判別する。パケットの受信開始を検出したタイミングがメインパケット期間であり、受信検出信号でMポートでの受信開始が通知されたのであれば、受信及び転送部12は、セレクタ11に該Mポートを選択させ、該Mポートで受信しているメインパケットを受け入れる。ここで、現在のMポートは、制御データレジスタ18に設定されたMポート番号データにより判定される。この場合、ステップS16を「Mパケット」に分岐する。ステップS17では、受信及び転送部12は、Mポート以外の全てのポート(Sポート)についてゲート14を開き、ステップS18において、受信中のメインパケットの先頭からの転送を開始する。これにより、各Sポートから経路の下流へメインパケットが転送される。
また、パケットの受信を検出したタイミングがサテライトパケット期間であり、受信検出信号で何れか1つのSポートでの受信開始が通知されたのであれば、受信及び転送部12は、セレクタ11に該Sポートを選択させ、該Sポートで受信しているサテライトパケットを受け入れる。なお、1つのサテライトパケット期間に複数のSポートでの受信開始が通知されることは、システムの設計上はないはずであるが、何かの事情で複数のSポートでの受信開始が通知された場合は、セレクタ11に、それらのSポートのうちの最初に受信開始が通知されたSポートを選択させ、該Sポートからのサテライトパケットのみを受け入れる。ステップS19では、受信及び転送部12は、制御データレジスタ18の禁止ポートデータに基づき、当該受信開始が通知されたSポートが転送禁止に設定されているかどうか調べる。どのような場合に、ポートが転送禁止に設定されるかについては、後述する。当該Sポートが転送禁止に設定されていなければ(ステップS19のNO)、ステップS20において、受信及び転送部12は、Mポートのゲート14を開く。現在のMポート番号は、制御データレジスタ18に設定されたMポート番号データに基づき決定される。ステップS21において、受信及び転送部12は、受信しているサテライトパケットの先頭からの転送を開始する。これにより、Mポートから経路の上流へメインパケットが転送される。
《メインパケットの受信(オーディオ信号の再生)》
図14は、サテライトノードにおいて、パケット伝送周期(1ms)分のメインパケットの受信が完了したときの受信及び転送部12の動作(ハードウェアの動作)を説明するフローチャートである。また、図15は、パケット伝送周期(1ms)分のメインパケットを受信して、該受信したメインパケット中のオーディオ信号(96サンプル)を再生する処理の動作タイミングを説明する図である。なお、図15において横軸は時間を示す。また、サテライトノードの受信及び転送部12には、96サンプルのオーディオ信号(サンプルデータ)を8チャンネル分記憶できるバッファ(大)が2つと、1チャンネル分記憶できるバッファ(小)が2つ用意されており、前者の2つのバッファ(大)のうち1つは、(1)メインパケットの受信用のバッファとして利用され、別の1つは(2)受信したメインパケットのデータチェック用のバッファとして利用される。また、後者の2つのバッファ(小)のうち1つは、(1)メインパケットから取り出したオーディオ信号(サンプル)の書き込み用のバッファとして利用され、別の1つは(2)取り出したオーディオ信号の再生用のバッファとして利用される。バッファ(大)及びバッファ(小)の用途はそれぞれ固定されておらず、状況に応じて各対応する2つの用途内で順次変更される。
図15において、受信及び転送部12は、パケット伝送周期(1ms)毎にMポートからメインパケットの受信を開始し(図15のタイミングT4)、パケット伝送周期(1ms)毎のメインパケットのデータをその先頭からメインパケット受信用のバッファに記憶する。パケット伝送周期(1ms)毎のメインパケットのデータは、図3の「Data1」〜「Data11」であって、96サンプル分の8チャンネルオーディオ信号と制御信号からなる。
パケット伝送周期(1ms)毎のメインパケットのデータには、図3を参照して説明した通り、12個のクロック信号が83.3μs毎に埋め込まれているので、受信及び転送部12は、83.3μs毎に受信する各クロック信号の受信タイミングを検出して、各クロック信号の受信タイミングをオシレータ(OSC)22に伝達する。OSC22が、各クロック信号の受信タイミングに同期してサンプリングクロック(96kHz)を発生することで、メインノードのサンプリングクロックに同期したサンプリングクロックを再生することは、前述のとおりである。
パケット伝送周期(1ms)毎のメインパケットの受信が完了した時点(図15のタイミングT5)で、図14の処理を開始する。受信及び転送部12は、受信用のバッファとデータチェック用のバッファとでその役割を入れ替えるとともに、データチェック用となったバッファ中の、受信完了したメインパケットのエラーチェック情報(EC)に基づいて、該メインパケットの前半部分と後半部分のデータのそれぞれのエラーチェック、及び、(可能であれば)エラーが検出された場合のデータの復元を行う。そして、制御データレジスタ18に設定された受信チャンネル番号データの示す1つのチャンネルのオーディオ信号を96サンプル分、該パケットから取り出して、書き込み用のバッファに書き込むとともに、同パケットに含まれる命令(制御信号CTR)を取り出して、命令レジスタ15に書き込む(図14のステップS22)。
1つのメインパケットのデータ(「Data1」〜「Data11」)は、図3を参照して説明した通り、偶数サンプルグループと制御信号とエラーチェック情報のセットと、奇数サンプルグループと制御信号とエラーチェック情報のセットとの2つの部分からなる。メインパケットのデータはヘッダ部から順次受信されるものであるから、偶数サンプルグループのセットと、奇数サンプルグループのセットとは、受信したメインパケットの前半部分と後半部分とに分かれる。すなわち、「メインパケットの前半部分と、後半部分」のエラーチェックとは、偶数サンプルグループのサンプル群を、当該グループに付加されたエラーチェック情報を用いてエラーチェックし、奇数サンプルグループのサンプル群を、当該グループに付加されたエラーチェック情報を用いてエラーチェックすることである。各グループのエラーチェックでは、エラーが検出されたとしても、エラーの生じたデータが少なければ、エラーチェック情報に基づいてそのデータを復元することができる。従って、あるグループでエラーが検出されなかった場合だけでなく、エラーが検出されてもその部分のデータが復元できた場合も、そのグループのデータは利用可能(OK)であり、以下ではこの場合を含めて「エラーなし」と表現する。一方、あるグループでエラーが検出されかつデータの復元が不能な場合は、そのグループのデータが利用することは不能(NG)なので「エラーあり」と表現する。なお、エラーチェック情報に基づくエラーチェックは必須であるが、データ復元の機能は必須ではなくオプションとしてもよい。
エラーチェックの結果、メインパケットの前半部分と後半部分(偶数サンプルグループと奇数サンプルグループ)のいずれもエラーがなければ(ステップS23のYES)、ステップS24において、メインパケットの前半部分と後半部分(偶数サンプルグループと奇数サンプルグループ)を、1サンプルずつ交互に並べ直すことで、連続する96サンプルを形成して、再生タイミングまで待機する。
そして、ステップS25において、現在、再生用のバッファから再生中の96サンプル(直前のパケット伝送周期(直前の1ms)のメインパケットのデータから形成したオーディオ信号)に続けて、前記ステップS24で形成され書き込み用バッファに書き込まれた96サンプル(当該パケット伝送周期のメインパケットのデータから形成したオーディオ信号)を、OSC22が発生したサンプリングクロックに同期させて再生する。より具体的には、当該96サンプルを再生すべきタイミング(図15のタイミングT6)で、それまでの書き込み用のバッファが再生用に転換するとともに、それまでの再生用バッファが書き込み用に転換し、新たに再生用となったバッファの当該96サンプルを、OSC22が発生したサンプリングクロックの示すサンプリング周期毎に、1サンプルずつ出力する。
一方、エラーチェックの結果、メインパケットの前半部分と後半部分(偶数サンプルグループと奇数サンプルグループ)とのいずれか一方にエラーがあった場合(ステップS23のNO,ステップS26のYES)、ステップS27において、エラーがなかったサンプルのグループ(偶数サンプルグループ又は奇数サンプルグループ)の48サンプルを2倍オーバーサンプリングすることにより、片方のグループのサンプル群のみを用いて、連続する96サンプルを形成して書き込み用のバッファに書き込む。そして、再生すべきタイミングT6で、前記ステップS27で形成した連続する96サンプルを再生する(ステップS25)。
これにより、偶数サンプルグループと奇数サンプルグループとのいずれか一方にエラーがあった場合でも、他方のグループを用いてオーディオ信号を再生することができる。この場合、サンプリング周波数が半分に下がりオーディオ信号の品質は多少落ちてしまうが、データの欠落により「無音」となるよりは、遥かに良い。
また、エラーチェックの結果、メインパケットの前半部分と後半部分(偶数サンプルグループと奇数サンプルグループ)のいずれにもエラーがあった場合(ステップS23のNO,ステップS26のNO)、ステップS28において、再生用のバッファから再生中のオーディオ信号をフェードアウトし、当該パケット伝送周期で受信したサンプルの代わりに無音の96サンプルを書き込み用のバッファに書き込む(ミュート音)か、又は、再生用のバッファで再生中の96サンプルを、そのまま又は減衰させて書き込み用バッファに書き込む(リピート音)。そして、再生すべきタイミングT6では、ミュート音の96サンプル、又は、リピート音の96サンプルを再生する(ステップS25)。
なお、前記図13及び図14のフローチャートは、それぞれ、1回のパケット伝送周期でメインパケットの受信開始を検出したときの動作、及び、メインパケットの受信が完了したときの動作を説明するためのものであるから、一巡して処理を終了するように描いている。実際には、パケット伝送周期(1ms)毎にメインパケットの受信を検出し、パケット伝送周期(1ms)毎にメインパケットの受信を完了するのであるから、図13及び図14に示す動作は、それぞれ、パケット伝送周期(1ms)毎に繰り返される。
以上、図9〜図15を参照して説明したのが、この実施例に係るネットワークシステムにおけるメインパケットの送受信及び転送、並びに、メインパケットの伝送に必要な経路制御(サテライトノードにおけるMポートの設定)直後の動作である。
《トポロジー検出》
図7(b)に示す経路選択(サテライトノードにおけるMポートの設定)直後の状態では、ただメインパケットを伝送する経路が選択されただけであるから、メインノード60は、定期的に送信するメインパケットによりサテライトノードにオーディオ信号を配信しているが、どのサテライトノードがどの経路につながっているか、そのネットワーク構造(トポロジー)を認識していないので、何れかのサテライトノードを個別に指定してリモート制御することができない。
以下に、メインノード60が実行するネットワーク構造(トポロジー)検出処理と接続確認処理について説明する。メインノード60は、定期的に、ネットワーク構造(トポロジー)検出処理と接続確認処理を行うことで、ネットワーク構造(トポロジー)を示すデータを作成して、ネットワーク構造(トポロジー)を動的に認識することができるようになる。なお、この明細書で「トポロジー」とは、メインノードとサテライトノードをケーブル(接続線)により物理的に接続して構成したネットワークシステムのうちの、メインノードとサテライトノードの全てと、メインパケットを伝送する経路として機能している接続線とを指す。また、ネットワークシステムの接続線のうち、メインパケットの伝送経路として利用されていない接続線を「予備線」と呼ぶ。なお、トポロジーの検出では、サテライト動作をしているメインノードは、サテライトノードと同じ動作を行う。このトポロジー検出の説明では、説明の簡略化のため、サテライト動作しているメインノードを含めてサテライトノードと呼ぶことにする。
図16は、トポロジー検出処理及び接続確認処理の進行状況に応じた、ネットワーク構造データの変遷を説明する図である。同図において、ネットワークとは、図7に示すネットワークシステム(1つのメインノード60と、4つのサテライトノード61〜64とからなるネットワークシステム)に対応している。図16(a)は、経路選択直後(トポロジー検出処理前)の状態である。この状態では、メインノード60は、自身の存在(ID=A)と、自身に2つのポート(P0とP1)があることしか分からず、P0とP1の接続先のトポロジーは未確認(図でトポロジー未確認を記号「*」で示す)である。以下、トポロジー検出処理を通じて、トポロジーが検出される様子を説明する。
図17は、メインノードの制御部38が実行するトポロジー検出処理の一例を示すフローチャートである。この処理は、メインノードの制御部38が所定タイミング毎に定期的に実行する処理であって、メインノードの主要な動作(メインパケット(オーディオ信号)の送信)とは別に、バックグラウンドで動く。
ステップS29において、メインノード60は、ノードが有する全Sポートについてサテライトパケットの転送禁止を指示する転送禁止命令を生成してブロードキャストIDを付加し(これで、当該命令は、未知のノードを含む全ノード宛てとなる)、メインパケットに載せて送信する。この転送禁止命令を含むメインパケットを受信した各サテライトノード61〜64は、該メインパケットから転送禁止命令を取り出して命令レジスタ15に設定する。
図18は、各サテライトノード(61〜64)の制御部17が命令レジスタ15から転送禁止命令を受け取った時に、当該制御部17が実行する処理の一例を示すフローチャートである。各サテライトノード61〜64の制御部17は、その転送禁止命令に付加されたIDと自身のIDを照合して、当該命令が自身に宛てられたものであるかチェックし、自身に宛てられた転送禁止命令であれば(ステップS43のYES)、該転送禁止命令により指定されたポートについてサテライトパケットの転送を禁止する禁止ポートデータを制御データレジスタ18に設定する(ステップS44)。該禁止ポートデータは、指定されなかったポートについて、転送を許可するデータでもある。前記ステップS29で送信される転送禁止命令は、全てのノードをあて先とするブロードキャストIDが付加されており、かつ、全てのSポートについてのサテライトパケットの転送を禁止する命令であるから、各サテライトノード61〜64の制御部17は、各自の全Sポート(Mポート以外の3つのポート)について、サテライトパケットの転送を禁止する禁止ポートデータを制御データレジスタ18に設定する。なお、ここで転送禁止されるのは、サテライトパケットであるから、メインノード60から送信されるメインパケットは引き続き転送可能である。
図17のステップS30において、メインノード60は、2つのポートP0、P1のそれぞれについて、存在確認命令を含むメインパケットを全てのサテライトノード61〜64に送信して、サテライトノードから存在確認応答を含むサテライトパケットの返信がないか個別に確認する。この存在確認命令は、あるポートに接続されているノードが不明である場合に該接続されているノードを確認するために送信する命令であるので、あて先のノードのIDを特定することはできない。従って、存在確認命令には、いつもブロードキャストIDが付加される。複数のポートを有するメインノード60では、同じ命令データを含むメインパケットがその全てのポートから同時に送信される。ステップS30では、同じ存在確認命令を含むメインパケットをポートP0、P1の両方から同時に送信するので、もし、両方のポートにサテライトノードが接続されていれば、両ポートから存在確認応答を含むサテライトパケットが返信される。そのため、ここでは、メインノード60が、セレクタ45で予めポートP0、P1の何れか一方を選択してから存在確認命令を送り、そのポートからのサテライトパケットを選択的に受信して存在確認応答を個別に確認するようにしている。
全てのサテライトノード61〜64の受信及び転送部12は、メインノード60からブロードキャストされた存在確認命令を受信し、受信した存在確認命令を命令レジスタ15に書き込む。図19は、各サテライトノード(61〜64)の制御部17が命令レジスタ15から存在確認命令を受け取った時に、当該制御部17が実行する処理の一例を示すフローチャートである。各サテライトノード61〜64の制御部17は、ステップS45において、当該サテライトノードの命令レジスタ15に存在確認命令に対する「応答禁止命令」が設定されているかどうか確認する。「応答禁止命令」については後で説明する。現段階ではいずれのサテライトノード61〜64も応答禁止に設定されていない(ステップS45のNO)。各サテライトノード61〜64の制御部17は、当該サテライトノードのID及びポート情報(ポート数と、Mポート番号の情報)を含む存在確認応答データを生成し(ステップS46)、該生成した存在確認応答データに基づくサテライトパケットを形成してMポートから送信するように設定する(ステップS47)。具体的には、制御データレジスタ18のMポート番号に対応するMポートからサテライトパケットを送信する指示と、該生成した存在確認応答を応答レジスタ19に設定する。
図20は、サテライトノードの制御部17によりサテライトパケットを送信する指示が応答レジスタ19に設定されたときに、受信及び転送部12が実行するサテライトパケット送信動作を示すフローチャートである。受信及び転送部12は、サテライトパケットを送信すべきタイミング(サテライトパケット期間の先頭を示すクロック信号のタイミング)を待ち(ステップS48)、送信タイミングになったら、応答レジスタ19に設定されたパケット送信ポート(前記ステップS47で設定したMポート)のゲート14を開いて(ステップS49)、サテライトパケット形成及び送信部20に、応答レジスタ19のデータに基づくサテライトパケットを形成させて、該形成されたサテライトパケットを、応答レジスタ19に設定されたパケット送信ポートから送信させる(ステップS50)。これにより、存在確認命令を含むサテライトパケットがMポートから送信される。
図17に戻ると、この段階(ステップS30の段階)では、存在確認命令を受けた全てのサテライトノード61〜64は、存在確認応答を返信するが、前記ステップS29において、全てのサテライトノード61〜64の全てのSポートにサテライトパケットの転送禁止を設定されているので、メインノード60のポートP0,P1に直接接続されたサテライトノード以外のノードの存在確認応答は、転送されない。従って、図7に示すネットワークシステムの構成例では、メインノード60のポートP0に接続されたサテライトノード61のMポートP0からの返信のみが、メインノード60に到達する。
メインノード60は、サテライトノードからの存在確認応答を含むサテライトパケットを受信したら(ステップS31のYES)、そのサテライトパケットから当該サテライトノード61のID(=B)と、当該ノードのポート情報をネットワーク構造データに追加記録する(ステップS32)。
図16(b)は、メインノード60のポートP0をチェックして、サテライトノード61(Sノード0)を発見した時点での、ネットワーク構造データの内容である。この状態では、ネットワーク構造データには、メインノード60のポートP0にサテライトノード61(ID=B)のMポートP0が接続されていること(「MノードA」の「P0」について「接続先ID」と「ポート」欄の内容)が記録されるとともに、該サテライトノード61のID=Bと、ノード61のポート情報(ポート数と、Mポート番号の情報)とが追加記録され、更に、サテライトノード61のP0にメインノード60(ID=A)のP0が接続されていること(図16において「Sノード0」の「P0」について「接続先ID」と「ポート」欄の内容)が書き込まれる。
なお、図16において、Mポート番号の情報は、各ノードの各ポート毎に設定されるマスターポートフラグ「M」により記録される。マスターポートフラグ「M」は、「1」で当該ポートがMポートであることを示し、「0」でそれ以外(Sポート)を示す2値のフラグとする。更に、当該サテライトノード61(ID=B)の3つのSポートについては、接続先ID欄に、「トポロジー未確認」(図において記号「*」)が記録される。また、メインノードのポートP0,P1についてはマスターポートフラグ「M」は値無しになっている。
また、図7に示すネットワークシステムの構成例では、メインノード60のポートP1にはノードが接続されていないので、メインノード60のポートP1からは存在確認応答が返ってこない。そこで、メインノード60のポートP1のチェック後のネットワーク構造データの内容は、図16(c)のようになる。この時点では、メインノード60は、トポロジーの確認、すなわち、経路が通っている部分の確認しか行わないので、ポートP1にノードが接続されているかどうかは未確認である。よって、図16(c)に示す通り、ネットワーク構造データ中のMノードAのP1の接続先ID欄には、「接続先未確認」(図において記号「**」で示す)が記録される。
なお、メインノード60は、いずれのポートからもサテライトノードからの存在確認応答を含むサテライトパケットを受信しなければ(ステップS31のNO)、当該メインノード60へのサテライトノードの接続なしと判定して、トポロジー検出処理を終了する(ステップS33)。
ステップS34において、メインノードの制御部38は、ネットワーク構造データ中のトポロジー未確認のSポートのうち1つを、チェック対象のSポートXSPに選択する。メインノードの各ポートP0,P1チェック後の状態(図16(c)に示す状態)では、サテライトノード61の3つのSポートP1〜P3が全て「トポロジー未確認」であるから、これらのうちの1つがXSPとして選択される。XSPの選択は、ポート番号順に行うものとする。すなわち、まず、サテライトノード61のSポートP1がXSPに選択される。
ステップS35において、メインノード60は、XSPに選択されたSポートと、メインノードからそのSポートまでのメインパケットの伝送経路(以下、「その経路」と呼ぶ)上の各Sポートとのみについて、サテライトパケットの転送を許可するように、それ以外の全てのSポートについて、サテライトパケットの転送を禁止する転送禁止命令を、各サテライトノード宛てに、順次メインパケットに載せて送信する。「その経路」は、ポートXSPで受信したサテライトパケットが、メインノード60に到達するまでに経由する経路でもある。
XSP=サテライトノード61のSポートP1とすると、サテライトノード61のSポートP1で受信したサテライトパケットを転送する場合には、当該パケットはサテライトノード61のMポートP0から送出されて直接メインノード60に到達するので、「その経路上のSポート」はない。従って、この段階では、ステップS18の命令に応じて、サテライトノード61の制御部17がXSP=サテライトノード61のSポートP1のみについて、制御データレジスタ18の禁止ポートデータをサテライトパケット転送許可に書き換える。従って、サテライトノード61のSポートP1以外の、全てのサテライトノードの全てのSポートはサテライトパケット転送禁止される。
また、ステップS36において、メインノード60は、「その経路」上の各サテライトノード宛てに、存在確認命令に対する応答の禁止を指示する応答禁止命令を、順次メインパケットに載せて送信する。「その経路」上の各サテライトノードは、既に存在が確認済みでありIDが判明しているので、そのサテライトノード宛ての命令(そのサテライトノードのIDを付加した命令)を送信することができる。
図21は、各サテライトノード(61〜64)の制御部17が命令レジスタ15から応答禁止(又は許可)命令を受け取った時に、当該制御部17が実行する処理の一例を示すフローチャートである。制御部17は、その応答禁止(又は許可)命令に付加されたIDと自身のIDを照合して、当該命令が自身に宛てられたものであるかチェックして、自身に宛てられた応答禁止(又は許可)命令であれば(ステップS51のYES)、存在確認命令に対する応答禁止(又は許可)を制御データレジスタ18に設定する(ステップS52)。
XSP=サテライトノード61のSポートP1とすると、「その経路上のサテライトノード」は、サテライトノード61自身のみである。従って、サテライトノード61のみが、前記図17のステップS36の処理により、存在確認命令に対する応答(存在確認応答のパケット形成及び送信)ができなくなる。
図17のステップS37において、メインノード60は、存在確認命令を含むメインパケットを全てのサテライトノード61〜64に送信して、サテライトノードから存在確認応答を含むサテライトパケットの返信有無を確認する。
応答禁止されているサテライトノード61を除く全てのサテライトノード62〜63は、メインノード60から送信された存在確認命令に対して応答するが、前記ステップS35によりサテライトパケット転送許可が設定されているのはサテライトノード61のSポートP1のみであるから、サテライトノード61がSポートP1で受信したサテライトパケットのみが、サテライトノード61のMポートP0から送出されてメインノード60に到着する。従って、図7に示すネットワークシステムの構成例では、サテライトノード61のSポートP1に接続されたノード、すなわち、サテライトノード62(Sノード1)から送信された存在確認応答のみが、メインノード60に到着する。
メインノード60は、存在確認応答を受信したら(ステップS38のYES)、受信した存在確認応答に基づき、ネットワーク構造データの当該チェック対象ポートXSPについて接続先の情報を記録する(ステップS39)。すなわち、サテライトノード61(Sノード0)のSポートP1について、「接続先ID=C(サテライトノード62)」と「ポート番号=P1」という内容がネットワーク構造データに書き込まれる。また、当該接続先のサテライトノード62が初めて検出された場合には、受信した存在確認応答に基づき、サテライトノード(Sノード1)62のID=Cと、そのポート情報(ポート数とMポート番号の情報)とがネットワーク構造データに追加記録され、且つ、追加記録された「Sノード1」の「P1」について、当該チェック対象ポートXSPに接続されている旨(「接続先ID=B」と「ポート番号=P1」という内容)がネットワーク構造データに書き込まれる。
図16(d)は、サテライトノード61のSポートP1のチェックした直後のネットワーク構造データである。この状態で、メインノード60は、サテライトノード61のSポートP1と、サテライトノード62のMポートP1とが接続されていることを認識し、且つ、サテライトノード62には、P0、P2、P3というトポロジー未確認のSポートがあることを認識した。
メインノード60は、ネットワーク構造データ上のトポロジー未確認のSポート(「*」のもの)があれば処理をステップS34に戻し(ステップS41のYES)、以下、同様に処理する。1つのチェック対象ポートXSP毎にチェックを行う。
図16(e)は、サテライトノード61のP1のチェック後、同ノード61のSポートP2、P3をチェックした直後のネットワーク構造データの内容を示している。ノード61のSポートP2がXSPに選択されたときには、ステップS35で「ノード61のSポートP2」と、その経路上のSポートのみがサテライトパケット転送許可になり、且つ、ノード61について存在確認命令に対する応答を禁止するので、ノード61のSポートP2にMポートが接続されたサテライトノード63(Sノード2、ID=D)からのみ、存在確認命令がメインノード60に返ってくる。これにより、メインノード60は、サテライトノード61のSポートP2と、サテライトノード63(Sノード2、ID=D)のMポートP1が接続されていることを認識し、且つ、サテライトノード63(Sノード2、ID=D)には、P0、P2、P3というトポロジー未確認のSポートがあることを認識した。
また、ノード61のSポートP3がXSPに選択されたときには、ステップS35で「ノード61のP3」と、その経路上のSポートのみがサテライトパケット転送許可になり、且つ、ノード61について存在確認命令に対する応答を禁止するので、メインノード60には存在確認応答は返ってこない(ステップS38のNO)。メインノード60は、トポロジーの確認しかしていないので、ノード61のP3にノードが接続されているかどうかは未確認である。よって、図16(e)に示す通り、ネットワーク構造データ中のノード61(Sノード0)のポートP3の接続先ID欄には、「接続先未確認」(図において記号「**」で示す)が記録される。
メインノード60は、ステップS34〜ステップS41の処理を、ネットワーク構造データ上のトポロジー未確認のSポート(「*」のもの)がなくなるまで実行し、図7に示すネットワークシステム上の全てのサテライトノード(Sノード0,1,2, 3)61〜64の全てのSポートを、1つずつ順番にチェックする。これにより、メインノード60は、ネットワークシステム上に存在する全てのサテライトノード61〜64と、各ノード間でメインパケット及びサテライトパケットの伝送に使用している接続線(経路)とを検出することができる。メインノード60は、図7(b)の実線で示されるようなトポロジー(ネットワーク構造)を検出することができる(図の点線部は未検出)。
図16(f)は、全てのサテライトノード(Sノード0,1,2,3)61〜64の全Sポートをチェックした後のネットワーク構造データの内容を示す。メインノード60は、トポロジー検出処理により作成した全てのサテライトノード(Sノード0,1,2,3)61〜64の全ポートについてネットワーク構造データに基づき、ネットワークシステムの管理や制御を行う。具体的には、検出されたトポロジーを表示部44に表示したり、そのトポロジーに含まれる各サテライトノードの動作状態を監視したり、その各サテライトノードをリモート制御したりすることができるようになる。
なお、前記ステップS35における「その経路」の具体例について説明しておくと、例えば、XSP=サテライトノード62(Sノード1)のSポートP0とした場合には、「その経路」上のサテライトノードは、サテライトノード61(Sノード0)であり、「その経路」上のSポートとは、サテライトノード61のSポートP1である。「その経路」は、ネットワーク構造データを参照して、XSPを有するサテライトノードを起点に、そのサテライトノードのMポート→接続線→次のサテライトノードのSポート →そのサテライトノードのMポート→接続線…と、メインノードにたどり着くまで順次上流に辿っていくことで判明する。
全てのサテライトノード(Sノード0,1,2,3)61〜64の全Sポートのトポロジーチェックをし終わったら(ステップS41のNO)、メインノード60は、ノードが有する全てのSポートについて、受信したサテライトパケットの転送を許可する転送許可命令を生成し、ブロードキャストIDを付加して、メインパケットに載せて送信する(ステップS42)。この命令を受けて、各サテライトノード61〜64の制御部17は、各自の全Sポート(Mポート以外の3つのポート)について、サテライトパケットの転送を許可する禁止ポートデータを制御データレジスタ18に設定する。メインノード60により、各サテライトノード61〜64をリモート制御するには、各サテライトノード61〜64の各Sポートがサテライトパケット転送許可に設定してなければ都合が悪いからである。
上記のトポロジー検出処理を実行することで、メインノード60は、単純な通信プロトコル(メインノードからの「存在確認命令」とサテライトノードからの「存在確認応答」、及び、サテライトノードに対する「各Sポートのサテライトパケット転送禁止/許可命令」、並びに、「各サテライトノードに対する応答禁止/許可命令」)により、オーディオネットワークシステムのトポロジーを検出することができる。このとき、各サテライトノード61〜64は、非常に単純な処理(「存在確認命令」に対する応答、転送禁止/許可命令に応じたリモート制御、応答禁止命令に応じたリモート制御)をするだけでよく、従来のルーティングテーブル作成時に行っていた隣接するノードを検出する処理等の複雑な処理が全く不要である。
このトポロジー検出処理は、メインノードにおいてオーディオネットワークシステムのトポロジー(ネットワーク構造)をユーザに提示する用途に適している。メインノード60の制御部38は、全てのサテライトノード(Sノード0,1,2, 3)61〜64の全てのSポートについてトポロジー検出を終えたら、ネットワーク構造データに基づいて表示部44に検出したトポロジーの全体像を表示することができる。ここで、表示部44に表示されるトポロジーの全体像は、図7(b)に太線で示すメインパケットが伝送される経路を示すノード間の接続状態である。これにより、ユーザは、オーディオネットワークシステムのトポロジーを表示部44の表示画面で確認することができる。なお、表示画面に表示するトポロジーの表示形態は、ノードを模擬的に示す「ブロック画像」とケーブルを示す「線」とによりトポロジーをグラフィカルに表示する形態であってもよいし、文字情報によってトポロジーを提示してもよい。
なお、表示部44にトポロジーを表示するのは、全てのサテライトノード(Sノード0,1,2, 3)61〜64の全Sポートをチェックした後(ネットワーク全体のトポロジーを検出した後)ではなく、各サテライトノードの各Sポートについてトポロジーを検出する毎に表示部44の表示内容を更新して、表示されるトポロジーの範囲が徐々に広がっていくようにしてもよい。
また、ネットワークシステムの構成が図2のようにメインノードが二重化されている構成(複数のメインノードを有するネットワークシステムの構成)の場合には、いずれか1つのみがメインノードとなり、他のノードはサテライトノードとして動作するのであるから、上記のトポロジー検出処理においては、サテライトノードとして動作するメインノードは、実質的にはサテライトノードとみなされる。つまりサテライトノードとして動作するメインノードの各Sポートは、トポロジー検出のチェック対象ポートXSPに選択される。
《接続確認(予備線検出)》
図17を参照して説明したトポロジー検出処理では、ネットワークシステム上に存在する全てのサテライトノード61〜64と、メインパケット及びサテライトパケットの伝送に使用している接続線(経路)とが検出される。従って、例えば、図7(b)において、サテライトノード62(Sノード1)のSポートP2と、サテライトノード63(Sノード2)のSポートP0との接続線(点線で示す接続線)のように、メインパケット及びサテライトパケットの伝送に使用していない「予備線」については、検出されない。トポロジー検出処理が終わった段階では、ネットワーク構造データには、メインパケット及びサテライトパケットの伝送に使用している経路上のポート以外の全てのSポートについて「接続先未確認」を記録している(図16(f)参照)。
メインノード60の制御部38は、図17のステップS42の後(トポロジー検出処理の後)、「接続検出処理」を行う。図22は、接続検出処理の一例を示すフローチャートである。ステップS53において、制御部38は、ネットワーク構造データ中に、接続先未確認(「**」)のポートがあるかどう確認する。接続先未確認のポートがあれば(ステップS26のYES)、制御部38は、接続先未確認のポートの1つを接続検出処理のチェック対象ポートYSPとして選択する(ステップS54)。なお、「接続先未確認のポート」には、サテライトノードの複数のSポートのうちの接続先未確認のポートと、メインノードの複数のポートのうちの接続先未確認のポートとが含まれる。
ステップS55において、制御部38は、該選択したチェック対象ポートYSPに対する接続確認のための接続確認命令を、当該YSPを有するサテライトノード宛てに送信して、該接続確認命令に対して、他のサテライトノード(当該YSPの接続先)から接続確認応答が有るかどうかを確認する。すなわち、メインノード60は、該YSPを示すポート番号を含む接続確認命令を生成し、該YSPを有するサテライトノードのIDを付加して、メインパケットに載せて送信して、その接続確認命令に対応する応答を受け付ける。なお、該選択したポートYSPがメインノード60のポートである場合には、ステップS55において、サテライトノード宛ての接続確認命令を送信する代わりに、後述する探索信号と同じ探索信号を形成して命令レジスタ35に設定し、メインパケット形成及び送信部34に、探索信号を含むサテライトパケットを形成させ、直後のサテライトパケット期間に該YSPから送信させる。
図23は、サテライトノードの制御部17が「接続検出処理」に関連して行う処理の手順を説明するフローチャートである。この処理は、メインノード60からのメインパケットから取り出された接続確認命令が命令レジスタ15に書き込まれ、制御部17がその接続確認命令を受け取った時に実行される。ステップS59において、制御部17は、その接続確認命令に付加されたIDと自身のIDとを照合して、当該命令が自身に宛てられたものであるかチェックして、自身に宛てられた接続確認命令であれば(ステップS59のYES)、当該接続確認命令に含まれるポート番号を、探索対象ポート番号変数PNに設定し(ステップS60)、ノードの接続があるかどうか探索する探索信号を形成する(ステップS61)。そして、制御部17は、形成した探索信号を応答レジスタ19に設定するとともに、該探索信号を含むサテライトパケットをポート番号変数PNが示すSポートPNから送信するよう制御データレジスタ18及び応答レジスタ19を設定する。これにより、受信及び転送部12は、前記図20の処理を実行して、サテライトパケットを送信すべきタイミング(サテライトパケット期間の先頭のクロック信号のタイミング)で、探索信号を含むサテライトパケットを形成してSポートPN(=YSP)から送信する(ステップS62)。
前記YSPに何れかのサテライトノードの何れかのSポートが接続されていれば、該YSPから送信された探索信号を含むサテライトパケットは、その接続先のサテライトノードのそのSポートで受信される。サテライトパケットを受信したサテライトノードの受信及び転送部12は、そのサテライトパケットに探索信号が含まれていた場合、図24の処理を実行し、探索信号を受信したことを示す情報と、受信したSポートのポート番号とを命令レジスタ15に書き込む(ステップS63)。なお、サテライトノードは、「探索信号」を含むサテライトパケットを受信した場合、当該「探索信号」を含むサテライトパケットについては、前記図13の転送処理を行わないものとする。
そして、サテライトノードの制御部17が命令レジスタ15から探索信号を受信したことを示す情報とポート番号とを受け取った時、図25のフローチャートに示す処理を行う。すなわち、図25の処理は探索信号を受信したサテライトノードの制御部17が行う処理である。制御部17は、該受け取ったポート番号(該探索信号を受信したポートを示す)を、ポート番号変数PNに設定し(ステップS64)、当該サテライトノードのIDと、該ポート番号変数PNとを含む接続確認応答を形成する(ステップS65)。そして、制御部17は、接続確認応答を含むサテライトパケットを形成してMポートから送信するよう応答レジスタ19に設定する(ステップS66)。これにより、受信及び転送部12は、前記図20の処理を実行して、サテライトパケットを送信すべきタイミングで、接続確認応答を含むサテライトパケットを形成してMポートから送信する。これにより、接続確認応答がメインノード60に返信される。ここで、接続確認命令に対する応答(接続確認応答)を返すのは、YSPの接続先のノードであって、YSPを有するサテライトノードではないことに留意されたい。
図22に戻ると、メインノード60の制御部38は、接続確認応答を含むサテライトパケットを受信したら(ステップS56のYES)、ネットワーク構造データに、チェック対象ポートYSPの接続先として、当該接続確認応答を返信したサテライトノードの情報(当該ノードのIDと、ポート番号変数PN)を、記録する(ステップS57)。また、所定時間内に接続確認応答がなかった場合には(ステップS56のNO)、チェック対象ポートYSPにノードが接続されていないものと判断し、ネットワーク構造データに、チェック対象ポートYSPを「接続無し(=Null)」と記録する(ステップS58)。
接続検出処理は、接続未確認のポートがある限り、繰り返し行われ、接続未確認のポートがなくなったら終了する(ステップS53のNO)。なお、図22のフローチャートでは、接続未確認のポートがある限り、接続検出処理が連続して繰り返されるように描かれているが、接続検出処理を途中で中断して、他の処理を割り込ませてもよい。
上記の「接続検出処理」により、図7に示すネットワークシステムにおいて予備線が検出される様子を説明する。メインノード60の接続先未確認のポートP1、サテライトノード61の接続先未確認のSポートP3については、接続確認命令に対する接続確認応答がないので、ネットワーク構造データに、「接続無し(=Null)」が記録される(図16(g)の状態)。
サテライトノード62(Sノード1)に関しては、接続先未確認のポートはSポートP2とSポートP3である。SポートP2をチェック対象ポートYSPに選択した場合、メインノード60は、サテライトノード62に対して、ポートP2の接続確認のための接続確認命令を(メインパケットに載せて)送信する。図7(c)において、サテライトノード62(Sノード1)のSポートP2から延びる破線矢印は、この「探索信号」の流れ示す。探索信号を受信したサテライトノード63(Sノード2)は、自身のID(=D)と、探索信号を受信したポート番号(SポートP0)とを含む接続確認応答を(サテライトパケットに載せて)メインノード60に返信する。図7(c)において、実線矢印(「Sノード2」のMポートP1から「Sノード0」のSポートP2に入り、「Sノード0」のMポートP0から「Mノード」のポートP0に入る矢印)は接続確認応答の流れを示す。メインノード60は、接続確認応答により、当該YSP=Sノード1のSポートP2の接続先を検出する。ネットワーク構造データには、Sノード1のSポートP2について、「接続先ID=D」と、その「ポート番号=P0」が記録され、また、Sノード2(ID=D)のSポートP0について、「接続先ID=C」と、その「ポート番号=P2」が記録される。
図7(d)は、サテライトノード62(Sノード1)のSポートP2と、サテライトノード63(Sノード2)のSポートP0の接続線(予備線)が検出された状態であって、検出された予備線を実線(「経路」を示す太線よりも細い実線)で示している。この状態で、サテライトノード62(Sノード1)に関して、接続先未確認のポートは、SポートP3のみである。メインノード60が、サテライトノード62に対して、ポートP3の接続確認のための接続確認命令を送信すると、サテライトノード62は、接続確認命令に応じた探索信号(サテライトパケット)をSポートP3から送信する(図7(d)において「Sノード1」のP3から延びる破線矢印の流れ)。探索信号を受信したサテライトノード63(Sノード2)は、自身のID(=D)と、探索信号を受信したポート番号(SポートP2)とを含む接続確認応答をメインノード60に返信する(図7(d)において、「Sノード2」のMポートP1から「Sノード0」のSポートP2に入り、「Sノード0」のMポートP0から「Mノード」のポートP0に入る実線矢印の流れ)。この接続確認応答により、メインノード60は、当該YSP=Sノード1のSポートP3の接続先を検出する。ネットワーク構造データには、Sノード1のSポートP3について、「接続先ID=D」と、その「ポート番号=P2」が記録され、また、Sノード2(ID=D)のSポートP2について、「接続先ID=C」と、その「ポート番号=P3」が記録される。
以下、同様に、全ての接続先未確認のポートをチェックして、ネットワークシステム中の全てのノードの全てのポートについて接続検出処理が終わると、ネットワーク構造データには、図16(h)に示す通り、全てのノードの全てのポートについて、その接続先の情報が記録される。こうして、メインノード60は、トポロジーのみならず予備線(冗長部)を含むネットワークシステムの全体構成を検出することができる。
上記の接続(予備線)検出処理によれば、メインノード60は、単純な通信プロトコル(メインノードからの「接続確認命令」とサテライトノードからの「探索信号」と「接続確認応答」)により、各サテライトノード61〜64の予備線を検出することができる。各サテライトノード61〜64は、単純な処理(「接続確認命令」に応じた「探索信号」の送信、「探索信号」に応じた「接続確認応答」の送信)をするだけでよく、従来のルーティングテーブル作成時に行っていた隣接するノードを検出する処理等の複雑な処理が全く不要である。
全てのポートについて接続検出処理を行うことで、メインノード60の制御部38は、前述したトポロジー検出処理の検出結果に応じたトポロジー(ネットワーク構造)の表示内容に追加して、接続検出処理により検出された予備線を表示部44に表示することができる。これにより、ユーザは、予備線を含むネットワークシステムの全体を表示部44の表示画面で確認することができる。なお、表示画面に表示するネットワークシステムの全体の表示形態は、前述のとおりノードを模擬的に示す「ブロック画像」とケーブルを示す「線」とにより、当該ネットワークシステムをグラフィカルに表示する形態であってもよいし、文字情報によってネットワークシステムを提示してもよい。
なお、制御部38は、全てのポートについて接続検出処理が終わるまで表示部44の表示更新を待つ必要は無く、接続先未確認のポートについて接続が検出される毎に、表示部44の表示を更新して、検出結果を表示部44の表示内容に反映させてよい。
《ユーザによる操作等》
表示部44には、ネットワークシステムの構成を表示する画面だけでなく、例えば、サテライトノード毎に各種パラメータの値の表示など、その他の情報を表示する画面も表示される。表示部44に表示する画面の切り替えは、例えば、ユーザが操作子43に含まれる画面選択用の操作子を操作して指示する。画面選択用の操作子が操作されとき、メインノードの制御部38は、表示部44に表示する画面を、操作子の操作によって選択された新たな画面に変更する制御を行う(図26のステップS67)。これにより、ユーザは、表示部44に表示する画面を所望の画面に切り替えることができる。このとき、操作子43に含まれる値変更用の各操作子には、画面に表示されたパラメータの各1つが割り当てられる。なお、値変更用の操作子を1つとするとともに、表示されたパラメータ上にカーソルを表示して、カーソルが置かれた位置のパラメータをその値変更用の操作子に割り当てるようにしてもよい。
ユーザは、値変更用の操作子の1つを操作して、その操作子に割り当てられたパラメータの値を調整することで、当該メインノードの動作を制御したり(そのパラメータが当該メインノードのパラメータの場合)、サテライトノードの動作をリモート制御したり(そのパラメータが該サテライトノードのパラメータの場合)することができる。そのため、メインノードは、メインノード自身のパラメータのデータ(パラメータの種類と、そのパラメータの値の可変範囲など)とともに、サテライトノードのパラメータのデータをコピーしたデータ(リモート制御用のパラメータのデータ)も記憶しており、現在の各種パラメータの値を記憶するカレントメモリには、メインノード自身のパラメータの値を記憶する領域と、リモート制御用のパラメータの値を記憶する領域とがある。リモート制御用の領域は固定ではなく、ネットワークシステム内に存在するサテライトノードに応じて変化する。すなわち、トポロジーの検出において、新たなサテライトノードの存在が確認されたときには、そのサテライトノードのパラメータを記憶する領域が追加され、また、それまで存在していたサテライトノードが不在となったときは、そのサテライトノードのパラメータを記憶する領域が削除される。一方、リモート制御を受けるサテライトノードは、自身のパラメータのデータのみを記憶しており、現在の各種パラメータの値を記憶するカレントメモリには、自身のパラメータの値を記憶する領域のみがある。
また、各ノードのパラメータとは、そのノードの各ブロック(図5参照)を制御するパラメータであって、特に信号処理部21,32については、オーディオ信号の周波数特性を制御するフィルタのパラメータ、オーディオ信号のレベル変化を圧縮又は拡大制御するコンプレッサのパラメータ、オーディオ信号の遅延を制御するディレイのパラメータ、及び、オーディオ信号のレベルを制御する減衰器のパラメータを含む。
また、サテライトノードのパラメータには、当該サテライトノードにおいて、メインパケット中の8チャンネル分のオーディオ信号のうちの、何れのチャンネルの信号を受信するかを示す「受信チャンネル番号」のパラメータを含む。
図27は、メインノードにおいて、値変更用の操作子が操作されたときに、制御部38が実行する処理の示すフローチャートである。ステップS68において、制御部38は、操作子の操作量に応じて、その操作子に割り当てられているパラメータの値を変更する。その操作子に割り当てられているパラメータが、当該メインノードのパラメータであれば(ステップS69のYES)、制御部38は、該パラメータの新たな値に基づいて、当該メインノードの動作を制御する(ステップS70)。
また、その操作子に割り当てられているパラメータが、サテライトノードのパラメータであれば(ステップS69のNO)、このパラメータの値の変更を指示する値変更命令を生成し、このパラメータに対応するサテライトノードのIDを付加して、メインパケットに載せて送信して、その命令に対応する応答を確認する(ステップS71)。すなわち、メインノードの制御部38は、当該パラメータに対応するサテライトノードに、当該パラメータの値を変更する命令を送信して、該サテライトノードの動作をリモート制御する。
前記ステップS71において、メインノード60から送信された値変更命令を含むメインパケットは順次各サテライトノードに到達し、各サテライトノードでは該値変更命令が取り出されて命令レジスタ15に設定される。図28は、各サテライトノードの制御部17が命令レジスタ15から値変更命令を受け取った時に、各サテライトノードの制御部17が実行する処理を示すフローチャートである。ステップS72において、制御部17は、その値変更命令に付加されたIDと自身のIDを照合して、当該命令が自身に宛てられたものであるかチェックする。当該命令が自身に宛てられた値変更命令であれば(ステップS72のYES)、制御部17は、値変更が指示されたパラメータの値を、指示された値に変更し(ステップS73)、該パラメータの新たな値に基づいて、当該サテライトノードの動作を制御する(ステップS74)。そして、制御部17は、前記値の変更の結果と、当該サテライトノードのIDを含む変更応答を生成して(ステップS75)、該生成した変更応答を含むサテライトパケットを形成してMポートから送信するよう応答レジスタ19に設定する(ステップS76)。これにより、受信及び転送部12は、前記図20の処理を実行して、サテライトパケットを送信すべきタイミングで、変更応答を含むサテライトパケットを形成してMポートから送信する。メインノードは、該送信された変更応答を含むサテライトパケットを受信して、当該値変更命令に対する応答を確認する。
このように、ユーザは、メインノードの操作子43を操作して、当該メインノードのパラメータの値を変更することで、当該メインノードから送信する8チャンネルのオーディオ信号の音特性の制御等を行うことができ、また、各サテライトノードのパラメータをリモートで変更することで、そのサテライトノードが受信し出力するオーディオ信号を選択したり、その出力するオーディオ信号の音特性を制御したりすることができる。
以上説明した通り、この実施例によれば、各サテライトノードは、複数ポートのうちの1つを順次選択して、該選択されたポートにメインパケットが所定周期毎に到着しているかどうかを確認するだけの簡単な制御(図11)で、現時点でメインパケットが所定周期毎に到着している別のポートを自動的に見つけることができるので、オーディオネットワークシステム中のノード間の接続に障害が生じたとしても、ルーティングテーブルを用いることなく、メインパケットの受信とオーディオ信号の出力を継続することができるという優れた効果を奏する。
また、複数のメインノードを有するオーディオネットワークシステムでは、複数のメインノードのうちの1つがメイン動作して、他のメインノードはサテライト動作する。そして、オーディオネットワークシステム上でメインパケットの伝送が途絶えたときには、該サテライト動作するメインノードの1つが、自動的にメインノードに昇格してメインパケットの送信を行う(図12)ので、オーディオネットワークシステムの動作を継続することができるという優れた効果を奏する。
従って、この発明によれば、オーディオネットワークシステムに障害が生じたとしても、自動的に経路を変更して、その障害を回避すること(動的ルーティング)を、比較的簡単な制御で行うことができるという優れた効果を奏する。
なお、上記の実施例では、サテライトノードのポート数を4、メインノードのポート数を2としたが、それぞれのノードのポート数は任意の数であってよい。例えば、サテライトノードのポート数を10に、メインノードのポート数を4にしてもよい。
また、上記の実施例では、メインパケットに埋め込むクロック信号の数を12個としたが、これに限らずパケット伝送周期のネットワーククロック数(=伝送されるビット数)をnとして、n/mクロック(n、mは整数)に相当する間隔で、等間隔に埋め込まれた適宜の複数個のクロック信号であってよい。すなわち、1つのメインパケットに埋め込む複数のクロック信号は、パケット伝送周期(第1周期)の約数に相当する一定の間隔で埋め込まれた複数のクロック信号であってよい。要するに、クロック信号の数や埋め込み間隔の長さは、上記実施例に限定されず、パケット伝送周期(第1周期)の1周期に対して複数のクロック信号が等間隔で埋め込まれてさえいればよい。また、オーディオ信号のサンプリングクロックは96kHzに、ビット幅は24ビットに、それぞれ限定されない。
また、上記の実施例では、メインパケットのデータを、偶数サンプルグループと奇数サンプルグループとの2つのグループに分けるパケット構成例について説明したが、メインパケットのデータを、2以上の複数グループに分けるパケット構成であってよい。
また、上記の実施例では、図17〜図21を参照して説明したトポロジー検出処理において、各サテライトノードの各Sポートについて、受信するサテライトパケットの種類に関係なく、転送可又は転送不可に設定するようになっていたが、存在確認応答の含まれるサテライトパケットのみを転送可又は転送不可に設定するように処理を構成してもよい。また、図22〜図25を参照して説明した接続(予備線)検出処理において、サテライトノードは、「探索信号」を含むサテライトパケットを受信した場合、当該サテライトパケットを転送しない(図13の転送処理を行わない)ものと説明したが、「探索信号」を含むサテライトパケットも図13の転送処理でMポートから転送するよう構成してもよい。
なお、任意のノードの1つのポートと別の任意のノードの1つのポートとの間を、ケーブルを用いて接続して構成されるオーディオネットワークシステムでさえあれば、どのような接続形態のオーディオネットワークシステムであっても、本発明を適用することができる。
また、上述したステップS11及びS102の待ち時間は、それぞれ一例であって、例示した時間長より長くても短くてもよく、また、ユーザの設定やその時の状況に応じて変更しても良い。
また、図12のステップS107の所定値kについて、各メインノードに設定する所定値kを異ならせる代わりに、各メインノードの所定値kは同じ値として、電源投入時やネットワークのリセット時に、Mポート番号設定タスク(図12)を開始するタイミングを、各メインノードごとに異ならせるようにしてもよい。
また、転送禁止命令で設定される禁止ポートデータに基づいて、該命令で指定されたSポートで受信する全てのサテライトパケットの転送を禁止するようになっていたが、そもそも転送禁止はトポロジー検出のために行われているので、該禁止ポートデータは、トポロジー検出で用いられる、存在確認応答を含むサテライトパケットについてのみ働けば充分である。つまり、あるSポートで存在確認応答を含むサテライトパケットを受信した場合は、そのSポートが禁止ポートデータにより転送禁止されていない場合のみ転送を行い、そのSポートでそれ以外の応答データを含むサテライトパケットを受信した場合は、そのSポートが禁止ポートデータで転送禁止されているか否かに関わらず転送を行うようにしてもよい。バックグラウンドでトポロジー検出しながら、サテライトノードのリモート制御を行うような場合には、このようにした方が、メインノードからサテライトノードへの命令を減らすことができて遥かに効率的である。
この発明に係るオーディオネットワークシステムの構成例を説明するブロック図。 図1のオーディオネットワークシステムの別の構成例を示すブロック図。 図1のオーディオネットワークシステムで伝送されるパケットの構成を説明する図。 図3のメインパケットを形成する手順を説明する図。 (a)はサテライトノードのハードウェア構成例を示すブロック図、(b)はメインノードのハードウェア構成例を示すブロック図。 図5のサテライトノードのオシレータの詳細な構成を示すブロック図。 経路制御及びトポロジーの検出処理を説明するための図であって、ネットワークシステムの構成(ノード間の接続状態)の一例を示す図。 基本処理の一例を示すフローチャート。 メインパケット送信処理の一例を示すフローチャート。 メインパケット形成及び送信動作のタイミング図。 サテライトノードにおけるMポート設定処理の一例を示すフローチャート。 メインノードにおけるMポート設定処理の一例を示すフローチャート。 サテライトノードにおけるパケット転送処理の一例を示すフローチャート。 サテライトノードにおけるメインパケット受信処理の一例を示すフローチャート。 メインパケット受信及びオーディオ信号再生動作のタイミング図。 ネットワーク構造データを説明する図。 メインノードにおけるトポロジー検出処理の一例を示すフローチャート。 サテライトノードにおける転送禁止命令に応じた動作を説明するフローチャート。 サテライトノードにおける存在確認命令に応じた動作を説明するフローチャート。 サテライトノードにおいてサテライトパケット送信が設定されたときの動作を説明するフローチャート。 サテライトノードにおける応答禁止(又は許可)命令に応じた動作を説明するフローチャート。 メインノードにおける接続(予備線)検出処理の一例を示すフローチャート。 サテライトノードにおける接続確認命令に応じた動作を説明するフローチャート。 サテライトノードにおける探索信号受信検出時の動作を説明するフローチャート。 サテライトノードにおける探索信号に応じた動作を説明するフローチャート。 メインノードにおいて画面選択(画面切り替え)操作子が操作されたときの動作を説明するフローチャート。 メインノードにおいて値変更操作子が操作されたときの動作を説明するフローチャート。 サテライトノードにおけるパラメータの値変更命令に応じた動作を説明するフローチャート。
符号の説明
1,60 メインノード、2a〜2h,61〜64 サテライトノード、7 メインパケット、8 サテライトパケット、10a〜10d ポート、11 第1セレクタ、12 受信及び転送部、13 第2セレクタ、14 ゲート、15 命令レジスタ、16 ステート情報レジスタ、17 制御部、18 制御データレジスタ、19 応答レジスタ、20 サテライトパケット形成及び送信、21 信号処理部、22 オシレータ、23 DAC、30a,30b ポート、31 ADC、32 信号処理部、33 オシレータ、34 メインパケット形成及び送信部、35 命令レジスタ、36 第1セレクタ、37 ゲート、38 制御部、39 制御データレジスタ、40 応答レジスタ、41 ステート情報レジスタ、42 受信及び転送部、43 操作子、44 表示部、45 第2セレクタ

Claims (4)

  1. ケーブルを用いて接続された1つの送信装置と少なくとも1つの受信装置とからなるオーディオ信号伝送システムであって、
    前記送信装置は、
    サンプリング周期毎に、オーディオ信号のサンプルを入力する入力部と、
    前記サンプリング周期よりも大きい所定周期毎に、当該所定周期中に前記入力部により入力されたオーディオ信号の複数サンプルを、奇数番サンプル群の第1グループと、偶数番サンプル群の第2グループにグループ分けするグループ分け部と、
    前記奇数番サンプル群の第1グループに基づく第1エラーチェックコードと、前記偶数番サンプル群の第2グループに基づく第2エラーチェックコードとを生成するコード生成部と、
    前記所定周期毎に、前記奇数番サンプル群の第1グループ前記第1エラーチェックコード前記偶数番サンプル群の第2グループ第2エラーチェックコードを含むパケットを形成して送信する送信部と
    を備え、
    前記受信装置は、
    前記送信装置により送信されたパケットを受信する受信部と、
    前記受信したパケットから、前記奇数番サンプル群の第1グループ前記第1エラーチェックコード前記偶数番サンプル群の第2グループ第2エラーチェックコードを取り出す取り出し部と、
    前記取り出した第1エラーチェックコードを用いて前記取り出した奇数番サンプル群の第1グループに第1エラーが生じたかどうかチェックすると共に、前記取り出した第2エラーチェックコードを用いて前記取り出した偶数番サンプル群の第2グループに第2エラーが生じたかどうかチェックするエラーチェック部と、
    前記エラーチェック部のチェック結果が、第1及び第2エラーの場合、無音オーディオ信号を形成して出力し、第1エラーの場合、偶数番サンプル群の第2グループに基づいてオーディオ信号を形成して出力し、第2エラーの場合、奇数番サンプル群の第1グループに基づいてオーディオ信号を形成して出力し、そして、エラーがない場合、奇数番サンプル群の第1グループと偶数番サンプル群の第2グループとに基づいてオーディオ信号を形成して出力する出力部と
    を具えることを特徴とするオーディオ信号伝送システム。
  2. 前記受信装置の前記出力部は、エラーがない場合に、奇数番サンプル群の第1グループと偶数番サンプル群の第2グループとを1サンプルずつ交互に配置することにより、オーディオ信号を形成することを特徴とする請求項1に記載のオーディオ信号伝送システム。
  3. 前記受信装置の前記出力部は、第1エラーの場合に、偶数番サンプル群の第2グループに基づいて奇数番サンプル群を作成して、前記作成した奇数番サンプル群と偶数番サンプル群の第2グループとを1サンプルずつ交互に配置することにより、オーディオ信号を形成することを特徴とする請求項1に記載のオーディオ信号伝送システム。
  4. 前記受信装置の前記出力部は、第2エラーの場合に、奇数番サンプル群の第1グループに基づいて偶数番サンプル群を作成して、前記奇数番サンプル群の第1グループと前記作成した偶数番サンプル群とを1サンプルずつ交互に配置することにより、オーディオ信号を形成することを特徴とする請求項1に記載のオーディオ信号伝送システム。
JP2008308865A 2008-11-18 2008-12-03 オーディオ信号伝送システム Expired - Fee Related JP5251466B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008308865A JP5251466B2 (ja) 2008-12-03 2008-12-03 オーディオ信号伝送システム
US12/620,494 US8675649B2 (en) 2008-11-18 2009-11-17 Audio network system and method of detecting topology in audio signal transmitting system
US13/423,122 US8761208B2 (en) 2008-11-18 2012-03-16 Audio network system and method of detecting topology in audio signal transmitting system
US13/423,115 US8804968B2 (en) 2008-11-18 2012-03-16 Audio network system and method of detecting topology in audio signal transmitting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008308865A JP5251466B2 (ja) 2008-12-03 2008-12-03 オーディオ信号伝送システム

Publications (2)

Publication Number Publication Date
JP2010136011A JP2010136011A (ja) 2010-06-17
JP5251466B2 true JP5251466B2 (ja) 2013-07-31

Family

ID=42346864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008308865A Expired - Fee Related JP5251466B2 (ja) 2008-11-18 2008-12-03 オーディオ信号伝送システム

Country Status (1)

Country Link
JP (1) JP5251466B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000173188A (ja) * 1998-12-04 2000-06-23 Sony Corp オーディオ信号処理装置ならびに映像音声記録再生装置
JP3358581B2 (ja) * 1999-03-23 2002-12-24 ヤマハ株式会社 パケット転送装置
JP2007194704A (ja) * 2006-01-17 2007-08-02 Matsushita Electric Ind Co Ltd データ通信端末装置及びデータ通信システム

Also Published As

Publication number Publication date
JP2010136011A (ja) 2010-06-17

Similar Documents

Publication Publication Date Title
US8761208B2 (en) Audio network system and method of detecting topology in audio signal transmitting system
JP5076413B2 (ja) ネットワークシステム及び音響信号処理装置
JP4899568B2 (ja) ネットワークシステム及び音響信号処理装置
JP2008072347A (ja) ネットワークシステム及び音響信号処理装置
JPWO2004004252A1 (ja) 管理ノード装置、ノード装置、ネットワーク構成管理システム、ネットワーク構成管理方法、ノード装置の制御方法、管理ノード装置の制御方法
JP5298796B2 (ja) オーディオネットワークシステム及び方法
JP2008099265A (ja) ネットワークシステム
JP4341714B2 (ja) ネットワークシステム及び音響信号処理装置
JP5251466B2 (ja) オーディオ信号伝送システム
JP5343537B2 (ja) オーディオ信号伝送システム
JP5298814B2 (ja) オーディオネットワークシステムにおけるトポロジーの検出方法、およびオーディオネットワークシステム
JP4735373B2 (ja) ネットワークを介して接続された複数の機器で構成される音楽システムの制御装置及び該音楽システムを制御するための統合的なソフトウェアプログラム
JP4030880B2 (ja) 同期用クロック供給システムおよび同期用クロック供給方法
JP2005101803A (ja) データ伝送システム、端末装置、パス選択方法、記録媒体及びプログラム
JP5045728B2 (ja) 通信ノード
JP5665164B2 (ja) 音響システム及び装置
JP4952023B2 (ja) ネットワークを介して接続された複数の機器で構成される音楽システムの制御装置及び該音楽システムを制御するための統合的なソフトウェアプログラム
JP5223752B2 (ja) 音響システム
JP5304165B2 (ja) ネットワークシステム及び音響信号処理装置
JP2010098475A (ja) ネットワークシステム及び音響信号処理装置
JP4952024B2 (ja) ネットワークを介して接続された複数の機器で構成される音楽システムの制御装置及び該音楽システムを制御するための統合的なソフトウェアプログラム
JP5326720B2 (ja) 音響システム
JP4420579B2 (ja) カラオケシステム
JP5239726B2 (ja) ネットワークシステム及び音響信号処理装置
JP5655889B2 (ja) 経路設定方法及び音響装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130222

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: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130401

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: 20160426

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees