JP2010045836A - 通信ノード及びネットワーク - Google Patents

通信ノード及びネットワーク Download PDF

Info

Publication number
JP2010045836A
JP2010045836A JP2009244673A JP2009244673A JP2010045836A JP 2010045836 A JP2010045836 A JP 2010045836A JP 2009244673 A JP2009244673 A JP 2009244673A JP 2009244673 A JP2009244673 A JP 2009244673A JP 2010045836 A JP2010045836 A JP 2010045836A
Authority
JP
Japan
Prior art keywords
transmission
transmission frame
node
frame
audio
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.)
Granted
Application number
JP2009244673A
Other languages
English (en)
Other versions
JP5045728B2 (ja
Inventor
Kei Nakayama
圭 中山
Naoto Yamaguchi
直人 山口
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 JP2009244673A priority Critical patent/JP5045728B2/ja
Publication of JP2010045836A publication Critical patent/JP2010045836A/ja
Application granted granted Critical
Publication of JP5045728B2 publication Critical patent/JP5045728B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】 複数の装置の間で音響信号を伝送する場合に、ワードクロックのタイミングも、波形データと同じ伝送経路を用いて安定性よく伝送できるようにする。
【解決手段】 通信ノードにおいて、外部からのデータを受信する受信I/F31と、受信したデータに対して入出力処理を行うデータ入出力部10と、入出力処理されたデータを外部へ送信する第1及び第2の送信インタフェース34,32と、入出力処理されたデータの送信に使用するインタフェースとして第1及び第2の送信インタフェース34,32の一方を選択するセレクタ35,36と、複数の通信ノードを直列に接続したネットワークにおいてそのネットワーク内にループ状のデータ伝送経路が形成されるようにセレクタ35,36を制御する手段とを設け、上記ループ状のデータ伝送経路に音響信号を含むパケットをその音響信号のサンプリング周期毎に巡回させるネットワークを形成可能とした。
【選択図】 図6

Description

この発明は、複数のノード間で音響信号の伝送を行うためのネットワークシステム及び、このようなネットワークシステムを構成する音響信号処理装置に関する。
従来から、複数のノード間で音響信号の伝送を行うためのオーディオネットワークシステムが知られており、コンサート、演劇、音楽製作、構内放送等において用いられている。このようなオーディオネットワークシステムの例としては、以下の非特許文献1乃至3に記載のような、CobraNet(商標),SuperMAC(商標),EtherSound(商標)が知られている。
また、オーディオネットワークシステムには、一般的に、アナログ入力,アナログ出力,デジタル入力,デジタル出力,ミキシング,エフェクト付与,録音再生,リモート制御,あるいはこれらの組み合わせ等の各種機能を有する音響機器を任意に接続できることが要望される。
「CobraNet(TM)」、[online]、バルコム株式会社、[平成18年3月21日検索]、インターネット<URL:http://www.balcom.co.jp/cobranet.htm> 「SuperMAC(TM) - Sony Pro Audio Lab, Oxford」、[online]、Sony Pro Audio Lab、[平成18年3月21日検索]、インターネット<URL:http://www.sonyoxford.co.uk/pub/supermac/> Carl Conrad、「EtherSound(TM) in a studio environment」、[online]、Digigram S.A.、[平成18年3月21日検索]、インターネット<URL:http://www.ethersound.com/news/getnews.php?enews_key=101>
しかしながら、このような従来のオーディオネットワークシステムには、以下のような問題があった。
すなわち、音響信号の伝送に用いることのできる回線数はネットワーク帯域の上限までに限られる一方、物理的に伝送可能な回線数は、ネットワークの構成によって変化し、論理的に計算される上限帯域幅が得られるとは限らなかった。例えば、送信元のノードから末端のノードまでのノード数によってデータが届くまでの時間が変わり、かつ、全ノードにデータが届くまで次の通信をしないため、ネットワークを構成するノード数が多いとデータの転送に時間がかかり、帯域をロスする等である。
従って、どのノードからどのノードに対して何チャンネル(ch)の波形データの送受信を行うか、といったことを予め考慮してネットワークシステムにおける機器接続のトポロジーを設計しなければならず、設計が難しいという問題があった。
一方、リアルタイムのオーディオネットワークシステムではないが、RPR(Resilient Packet Ring)方式に見られるように、ネットワーク内にリング状の伝送経路を形成してその伝送経路にフレームを循環させ、そのフレームに必要なデータを記載してデータ転送を行うデータ転送方式も知られている。このようなリング状の伝送経路を用いる伝送方式を、「リング伝送方式」と呼ぶことにする。
しかしながら、従来のリング伝送方式は、必ずしも音響信号の伝送に好適なものでなく、種々の不都合もあった。例えば、デジタル音響信号を複数の装置で取り扱う場合には、各装置でワードクロックを同期させることが好ましいが、フレームと同じ伝送経路によりワードクロックのタイミングを伝送することが難しいという問題があった。フレームの伝送経路には独自のタイミング信号は流せないため、例えば各ノードへのフレームの到達タイミングによりワードクロックのタイミングを伝送することが考えられるが、ネットワークの構成が伝送中に変化して各ノードへのフレームの到達タイミングがずれると、ワードクロックにゆらぎが生じてしまうという問題があった。
この発明は、このような問題を解決し、複数の装置の間で音響信号を伝送する場合に、ネットワーク内に一定のch数分の波形データの伝送帯域を容易に確保することができるようにしながら、ワードクロックのタイミングも、波形データと同じ伝送経路を用いて安定性よく伝送できるようにすることを目的とする。
上記の目的を達成するため、この発明のネットワークシステムは、それぞれ単方向の通信を行う受信手段及び送信手段を2組備えた複数のノードを、あるノードの1組の受信手段及び送信手段を別のノードの1組の送信手段及び受信手段とそれぞれ通信ケーブルで接続することによりカスケード接続し、カスケード接続された一連の複数ノードのうちの一部又は全部のノードで構成されるネットワークシステムにおいて、そのネットワークシステムを構成するノードのうち両端のノードでフレームの伝送を折り返し、他のノードでは上記フレームの伝送を折り返さないことにより、そのネットワークシステムを構成する各ノード間でループ状の伝送経路を形成し、マスタノードが生成する、音響信号のデータを含む音声伝送フレームを、各ノードを2回ずつ通る上記ループ状の伝送経路に一定周期で循環させ、各ノードが、その循環する音声伝送フレームへ音響信号の書き込み及び/又は読み出しを行うことにより、そのネットワークシステムの任意のノード間で音響信号の伝送が行われるようにしたものである。
そして、さらに、上記マスタノードに、一定周期の伝送用ワードクロックを発生する第1クロック発生手段と、第S周期の音声伝送フレームを生成し、その音声伝送フレームを対応する第S周期の伝送用ワードクロックの発生に同期して上記送信手段に供給し、伝送経路に送信させる音声伝送フレーム生成手段と、上記音声伝送フレームを送信してからその音声伝送フレームが上記伝送経路を通って自身に戻ってくるのにかかる時間を計測する第1の計測手段と、上記第1の計測手段が計測した時間を示す伝送時間の情報を各音声伝送フレームに書き込む書込手段と、上記伝送用ワードクロックを所定の目標遅延時間だけ遅延させたクロックに相当する、信号処理用ワードクロックを発生する第2クロック発生手段と、その信号処理用ワードクロックに同期して、上記音響信号の信号処理を行う信号処理手段とを設け、上記マスタノード以外の各ノードに、上記音声伝送フレームが上記伝送経路を1周する間の2回の受信時刻をそれぞれ検出する第2の計測手段と、受信した音声伝送フレームから上記伝送時間の情報を読み出す読出手段と、上記所定の目標遅延時間、上記第2の計測手段が検出した各受信時刻、及び上記読出手段が読み出した伝送時間の情報に基づくタイミングで、信号処理用ワードクロックを発生するクロック発生手段と、その信号処理用ワードクロックに同期して、上記音響信号の信号処理を行う信号処理手段とを設け、そのネットワークシステムの各ノードで生成される信号処理用ワードクロックの発生タイミングを、上記伝送用ワードクロックを上記所定の目標遅延時間だけ遅延させたタイミングに一致させるようにしたものである。
このようなネットワークシステムにおいて、そのネットワークシステムを構成するノードが変化し、それにより上記伝送経路が変化した場合であっても、上記目標遅延時間を変動させないようにするとよい。
さらに、上記マスタノードにおいて、上記第1の計測手段が、上記音声伝送フレームに上記伝送経路を1周させる間に、その音声伝送フレームを1度目に送信してから1度目に受信するまでの時間と、2度目に送信してから2度目に受信するまでの時間とを、区別して計測するようにするとよい。
また、この発明の音響信号処理装置は、それぞれ単方向の通信を行う受信手段及び送信手段を2組備えた複数のノードを、あるノードの1組の受信手段及び送信手段を別のノードの1組の送信手段及び受信手段とそれぞれ通信ケーブルで接続することによりカスケード接続し、カスケード接続された一連の複数ノードのうちの一部又は全部のノードで構成されるネットワークシステムに1つのノードとして組み込み可能な音響信号処理装置において、上記ネットワークシステムが、そのネットワークシステムを構成するノードのうち両端のノードでフレームの伝送を折り返し、他のノードでは上記フレームの伝送を折り返さないことにより、そのネットワークシステムを構成する各ノード間でループ状の伝送経路を形成し、マスタノードが生成する、音響信号のデータを含む音声伝送フレームを、各ノードを2回ずつ通る上記ループ状の伝送経路に一定周期で循環させ、各ノードが、その循環する音声伝送フレームへ音響信号の書き込み及び/又は読み出しを行うことにより、そのネットワークシステムの任意のノード間で音響信号の伝送が行われるものであり、その音響処理装置は上記マスタノードとして動作可能であり、一定周期の伝送用ワードクロックを発生する第1クロック発生手段と、第S周期の音声伝送フレームを生成し、その音声伝送フレームを対応する第S周期の伝送用ワードクロックの発生に同期して上記送信手段に供給し、伝送経路に送信させる音声伝送フレーム生成手段と、上記音声伝送フレームを送信してからその音声伝送フレームが上記伝送経路を通って自身に戻ってくるのにかかる時間を計測する計測手段と、上記計測手段が計測した時間を示す伝送時間の情報を各音声伝送フレームに書き込む書込手段と、上記伝送用ワードクロックを、上記ネットワークシステムのノード間で共有されている所定の目標遅延時間だけ遅延させたクロックに相当する、信号処理用ワードクロックを発生する第2クロック発生手段と、その信号処理用ワードクロックに同期して、上記音響信号の信号処理を行う信号処理手段とを設けたものである。
このような音響信号処理装置において、上記計測手段に、上記音声伝送フレームに上記伝送経路を1周させる間に、その音声伝送フレームを1度目に送信してから1度目に受信するまでの時間と、2度目に送信してから2度目に受信するまでの時間とを、区別して計測させるとよい。
また、この発明の別の音響信号処理装置は、それぞれ単方向の通信を行う受信手段及び送信手段を2組備えた複数のノードを、あるノードの1組の受信手段及び送信手段を別のノードの1組の送信手段及び受信手段とそれぞれ通信ケーブルで接続することによりカスケード接続し、カスケード接続された一連の複数ノードのうちの一部又は全部のノードで構成されるネットワークシステムに1つのノードとして組み込み可能な音響信号処理装置において、上記ネットワークシステムが、そのネットワークシステムを構成するノードのうち両端のノードでフレームの伝送を折り返し、他のノードでは上記フレームの伝送を折り返さないことにより、そのネットワークシステムを構成する各ノード間でループ状の伝送経路を形成し、マスタノードが生成する、音響信号のデータを含む音声伝送フレームを、各ノードを2回ずつ通る上記ループ状の伝送経路に一定周期で循環させ、各ノードが、その循環する音声伝送フレームへ音響信号の書き込み及び/又は読み出しを行うことにより、そのネットワークシステムの任意のノード間で音響信号の伝送が行われるものであり、その音響処理装置は上記マスタノード以外のノードとして動作可能であり、上記音声伝送フレームが上記伝送経路を1周する間の2回の受信時刻をそれぞれ検出する計測手段と、受信した音声伝送フレームから、上記マスタノードが、自身が上記音声伝送フレームを送信してからその音声伝送フレームが上記伝送経路を通って自身に戻ってくるのにかかる時間を計測して書き込んだ、伝送時間の情報を読み出す読出手段と、上記ネットワークシステムのノード間で共有されている所定の目標遅延時間、上記計測手段が検出した各受信時刻、及び上記読出手段が読み出した伝送時間の情報に基づくタイミングで、信号処理用ワードクロックを発生するクロック発生手段と、その信号処理用ワードクロックに同期して、上記音響信号の信号処理を行う信号処理手段とを設けたものである。
以上のようなこの発明のネットワークシステム及び音響信号処理装置によれば、複数の装置の間で音響信号を伝送する場合に、ネットワーク内に一定のch数分の波形データの伝送帯域を容易に確保することができるようにしながら、ワードクロックのタイミングも、波形データと同じ伝送経路を用いて安定性よく伝送できるようにすることができる。
この発明のネットワークシステムの実施形態であるオーディオネットワークシステムの概略を示す図である。 図1に示した伝送経路で伝送される音声伝送フレームの構成例を示す図である。 図2に示した音声伝送フレームの伝送タイミングを示す図である。 オーディオネットワークシステム上での図2に示した音声伝送フレームの伝送状況を示す図である。 図1に示したオーディオネットワークシステムを構成する各ノードとなる音響信号処理装置のハードウェア構成を示す図である。 図5に示したネットワークI/Fカードの構成をより詳細に示す図である。 個々の音響信号処理装置が起動時にオーディオネットワークシステムを形成するために全体として実行する処理の手順を、フローチャートとして示す図である。 図7のステップS11及びS12に示した存在確認及び情報伝達について説明するための図である。 存在確認フレームの構成を示す図である。 トポロジーテーブルの例を示す図である。
図7のステップS13におけるトポロジーテーブルの構築手順例を示す図である。 同じくステップS15において各装置をオーディオネットワークシステムに組み入れる手順の例を示す図である。 この発明の実施形態であるオーディオネットワークシステムにおいて両端のノードが所定の周期で定期的に実行する、新規ノード追加に関する処理のフローチャートである。 オーディオネットワークシステムにおける接続切断時のシステム構成変更手順の例を示す、図12と対応する図である。 その別の例を示す図である。 図14に示した例の場合のトポロジーテーブルの変更手順を示す、図11と対応する図である。 マスタノードにおけるフレームバッファの構成を示す図である。 同じくマスタノードにおける音声伝送フレームの送受信及び生成のタイミング例を示す図である。 同じくS番目以降の音声伝送フレームが正常に受信できなかった場合の例を示す図である。 図18に示した周期更新量kが2の場合について、マスタノードが送受信する各音声伝送フレームに記載されるデータを示す図である。
図19に示した周期更新量kが2の場合について、マスタノードが送受信する各音声伝送フレームに記載されるデータを示す図である。 マスタノードがS番目の音声伝送フレームの受信完了を検出した場合に実行する処理のフローチャートを示す図である。 図19と同様なケースにおける、音声伝送フレームの送受信及び生成の別のタイミング例を示す図である。 図23に示した場合について、各音声伝送フレームに記載されるデータを示す図である。 図22の処理の別の例を示す図である。 スレーブノードにおける音声伝送フレームからの波形データの読み出しの様子を示す図である。 同じく音声伝送フレームへの波形データの書き込みの様子を示す図である。 スレーブノードのデータ抽出部11、波形入力用FIFO12、および制御回路41が実行する、エラー発生時及び雛形のデータを信号処理に供しないようにするための処理のフローチャートである。 オーディオネットワークシステムを構成する各ノードにおける音声伝送フレームの先頭の到達タイミングを示す図である。 マスタノードにおけるワードクロック生成部の構成を示す図である。 スレーブノードにおけるワードクロック生成部の構成を示す図である。 図31に示したDx演算部が音声伝送フレームの1度目の受信イベントをトリガに実行する処理のフローチャートである。 図31に示したDx演算部が音声伝送フレームの2度目の受信イベントをトリガに実行する処理のフローチャートである。
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
1. この発明の実施形態のオーディオネットワークシステムの概要
1.1 全体構成
まず、図1に、この発明のネットワークシステムの実施形態であるオーディオネットワークシステムの概略を示す。
図1(a)に示すように、このオーディオネットワークシステム1は、それぞれ単方向の通信を行う受信手段である受信インタフェース(I/F)と送信手段である送信I/Fの組を2組備えたノードA〜Cを、通信ケーブルCBで順次接続することにより構成したものである。ここでは3つのノードにより構成した例を示しているが、ノードの数は任意でよい。
ノードAにおいては、受信I/F_AR1と送信I/F_AT1が1組のI/Fで、受信I/F_AR2と送信I/F_AT2がもう一組のI/Fである。ノードB及びCについても、符号の先頭の文字「A」を「B」あるいは「C」に置き換えたI/Fが、同様な関係に当たる。
そして、ノード間の接続は、1組の受信I/F及び送信I/Fを、別のノードの1組の送信I/F及び受信I/Fとそれぞれ通信ケーブルCBで接続することにより行っている。例えば、ノードAとノードBとの間では、受信I/F_AR2と送信I/F_BT1とを接続すると共に、送信I/F_AT2と受信I/F_BR1とを接続している。また、ノードBとノードCとの間では、ノードBのもう1組のI/Fと、ノードCの1組のI/Fとを接続している。
なお、図1に示す各ノードは、アナログ入力,アナログ出力,デジタル入力,デジタル出力,ミキシング,エフェクト付与,録音再生,リモート制御,あるいはこれらの組み合わせ等の各種機能を有する音響信号処理装置である。ノード毎に機能が違っていても当然構わない。
ここで、(a)に示すように、各ノードを、端部を有する1本のラインのように接続した状態を、カスケード接続と呼ぶことにする。そしてこの場合、各ノード間を結ぶケーブルCBにより、破線で示すように1つの循環するデータ伝送経路を形成することができ、各ノードは、この経路でフレームを一定周期で循環させるように伝送し、そのフレームに対して必要な情報を読み書きすることにより、経路上の任意のノードとの間でデータの送受信を行うことができる。
そして、オーディオネットワークシステム1内において、1つのノードがマスタノードとなり、音響信号を伝送するためのフレームを生成し、定期的に伝送経路を循環させたり、ネットワークの管理を行ったりする。このマスタノードが生成するフレームを、その他のフレームと区別して「音声伝送フレーム」と呼ぶことにする。
なお、図1ではケーブルを2本示しているが、1組の受信I/Fと送信I/Fとを近接してあるいは一体として設ければ、2本を束ねて1本にしたケーブルにより、1組のI/F同士の接続を行うことも可能である。
また、各ノードには、必要なI/Fを設ければ、(b)に示すように、外部機器Nを接続し、外部機器Nから受信したデータを音声伝送フレームに書き込んで他のノードに送信したり、音声伝送フレームから読み出したデータを外部機器Nに送信したりすることもできる。
このような外部機器Nとしては、例えば外付けのコンソールが考えらる。そして、コンソールがユーザから受け付けた操作に応じたコマンドをノードBに送信し、ノードBがこれを音声伝送フレームに書き込んで他のノードに送信したり、他のノードが音声伝送フレームに書き込んで送信してきた応答やレベルデータ等をノードBが読み出してコンソールに送信し、コンソールにおける操作子状態の表示やレベル表示に使用するといった動作を行わせることが考えられる。
1.2 音声伝送フレームの構成
次に、図2に、上述した伝送経路で伝送されるイーサネット(登録商標)形式の音声伝送フレームの構成例を示す。
図2に示すように、この音声伝送フレーム100は、サイズが1282バイトであり、先頭から順に、ヘッダ101,管理データ102,波形データ(オーディオデータ)103,制御データ104,FCS(Frame Check Sequence)105の各領域からなる。各領域のサイズは、その領域に記載するデータ量に関わらずそれぞれ一定である。また、ここで示すヘッダ101とFCS105以外の各領域のサイズは一例であり、適宜変更してよい。
そして、ヘッダ101は、計22バイトのデータであり、IEEE(Institute of Electrical and Electronic Engineers)802.3で規定されるプリアンブル,SFD(Start Frame Delimiter),宛先アドレス,送信元アドレス,長さを記載する。
なお、このオーディオネットワークシステム1においては、送信I/Fから送出されるフレームは、1本の接続ケーブルCBで接続された受信I/Fにしか届かないから、アドレスの記載はあまり意味がない。そこで、宛先アドレスとしては、例えばブロードキャストを示すアドレスを記載し、送信元アドレスとしては、送信元ノードのMAC(Media Access Control)アドレスを記載する。
各ノードは、送信I/Fと受信I/Fを2つずつ備えているが、それぞれ別個のMACアドレスを持つのではなく、ノードとして1つのMACアドレスを持つ。また、宛先アドレスとして、ブロードキャストアドレスを記載する代わりに、送信先ノードのMACアドレスを記載するようにしてもよい。さらに、MACアドレスに代えて、各ノードのIDを記載するようにしてもよい。
また、管理データ102は、8バイトのデータであり、オーディオネットワークシステム1内の各ノードが音声伝送フレームに含まれるデータの管理に利用するデータとして、フレーム通し番号,各サンプリング周期内のフレーム番号,波形データ103中の波形データのch数を記載する。
そして、波形データ103の領域としては1024バイトを確保し、音響信号のデータである1サンプル32ビットの波形データを256ch分記載できる。すなわち、本システムでは、1つの音声伝送フレーム100を循環させることにより、256ch分の音響信号を伝送することができる。なお、256ch中の伝送に使われていないch(空きch)の領域については、そこに何が記載されているか気にしなくて良い。本実施形態では、伝送する波形データのビット数が32ビットでない例えば16ビットや24ビットなどの場合でも、各ch毎に32ビットの領域を用意しその領域内に記載するようになっている。しかし、波形データのビット数に応じて各chの領域のサイズを変更するようにしてもよい。その場合、16ビットの波形データは512ch分伝送可能であり、24ビットであれば340ch分伝送可能になる。
また、制御データ104の領域としては224バイトを確保し、ここには、IP(Internet Protocol)に基づくノード間通信用のパケットなどの各種データを記載するIPパケット領域や、レベル表示に使用するレベルデータを記載するレベルデータ領域、オーディオネットワークシステム1の構成を管理・制御するためのネットワーク構成情報を記載するネットワーク構成領域が設けられている。ここで、IPパケットによる通信では、各ノードに動作を指示するためのコマンドや、それに対する応答などがノード間で送受信される。
なお、レベルデータやネットワーク構成情報にそれぞれ専用の領域(例えば10バイト)が設けられているのは、それらのデータを定常的に伝達するためである。
このうちIPパケット領域には、通信すべきデータをパケット化したIPパケットを、さらにパケット化したIEEE(Institute of Electrical and Electronic Engineers)802.3形式のパケットを、用意したサイズ(ここでは204バイト)に入るようにパケットの送信側で分割して記載する。そして、パケットの受信側で複数の音声伝送フレーム100からデータを取り出して結合し、分割前のパケットを復元することにより、通常のイーサネット(登録商標)での伝送と同様にIPパケットをノード間で伝送することができる。IEEE802.3形式のパケットの最大サイズは1526バイトであり、一方、分割・復元の制御用に数バイトの分割制御データを加えたとしても、1音声伝送フレーム毎に約200バイトの送信ができるので、1つのIPパケットの送信は、最大でも8フレームで完了する。
FCS105は、IEEE802.3で規定される、フレームのエラーを検出するためのフィールドである。
1.3 音声伝送フレームの伝送方式
次に、図3に、図2に示した音声伝送フレーム100の伝送タイミングを示す。
この図に示すように、オーディオネットワークシステム1においては、音声伝送フレーム100を、96kHz(キロヘルツ)のサンプリング周期1周期である10.4μsec(マイクロ秒)毎に1つ、ノード間で循環させ、各ノードは音声伝送フレームの所望のchへの音響信号の書き込みないし所望のchからの音響信号の読み出しを行うようになっている。従って、各サンプリング周期に、256の伝送chについて、それぞれ1サンプル分の波形データを、各ノード間で伝送できる。
1Gbps(ギガビット・パー・セカンド)のイーサネット(登録商標)方式のデータ転送を採用すれば、音声伝送フレーム100の時間長は、1ナノ秒×8ビット×1282バイト=10.26μsecであり、1サンプリング周期内に伝送が完了する。
なお、1282バイトの場合、フレーム間の時間間隔を無視すれば、計算上は1sec/10.26μsec=97.47kHzのサンプリング周期まで対応可能であり、96kHzのサンプリング周期であれば、10.4μsec/8ビット/1ナノ秒=1300バイトのフレームサイズまで伝送可能である。しかし、フレーム間には所定時間以上の空きが必要であり、また、フレームの伝送タイミングが前後に揺れる可能性があるので、音声伝送フレームのサイズ(時間長)はそれらを考慮した上で決定される。
次に、図4に、オーディオネットワークシステム上での音響信号の伝送時(音声伝送モード)における、図2に示した音声伝送フレームの伝送状況を示す。
ここでは、ノードAからノードDまでの4つのノードをカスケード接続したオーディオネットワークシステムを考える。そして、このシステム内の各ノードに図2に示した音声伝送フレーム100を循環させる場合、いずれか1つのノードをマスタノードに定め、そのノードのみが新たなサンプリング周期の音声伝送フレーム(通し番号の異なる音声伝送フレーム)の生成を行い、サンプリング周期毎に生成された音声伝送フレームを次のノードへ送信する。マスタノード以外のノードはスレーブノードであり、それぞれ前のノードから音声伝送フレームを受信し、次のノードへ送信する転送処理を行う。
そして、マスタノードBが最初に図で右向きに、ワードクロックのタイミングに合わせて、ノードCに向かって音声伝送フレームを送信すると、その音声伝送フレームは、破線で示すように、ノードB→C→D→C→B→A→Bの順で伝送され、ノードBに戻ってくる。マスタノードから見て、一巡する音声伝送フレームを最初に送信する側を前方側と呼び、2回目に送信する側を後方側と呼ぶ。また、この伝送の際、各ノードは、音声伝送フレームを受信してから送信するまでに、他のノードから受信すべき波形データや制御データを音声伝送フレームから読み取り、また他のノードに送信すべき波形データや制御データを音声伝送フレームに書き込む。
そして、マスタノードは、音声伝送フレームが伝送経路を1周して戻ってくると、その音声伝送フレームの管理データ102を書き換えて後のサンプル周期の音声伝送フレームを生成し、適当なサンプル周期での送信に供する。またこのとき、マスタノードも他のノードと同様に音声伝送フレームに対してデータの読み書きを行う。音声伝送フレームの生成については後に詳述する。
以上を繰り返すことにより、1サンプリング周期につき1つの音声伝送フレームに、(a)から(e)に時系列的に示すように、各ノードを巡回させることができる。これらの図において、黒塗りの矢印は音声伝送フレームの先頭を、黒丸は音声伝送フレームの末端を示す。線の矢印は、音声伝送フレームの切れ目を分かり易くするために記載したものである。
なお、各スレーブノードは、音声伝送フレームの全てを受信してからデータの読み書きや次のノードへの送信を行う必要はなく、先頭から必要なバイト数だけ受信したら、データの読み書きや次のノードへの送信の処理を開始してしまってよい。そしてその後、音声伝送フレームの末端まで、受信するのとほぼ同じ速さでデータの読み書きや送信を行って行けばよい。ただし、マスタノードについては、後述する通り、音声伝送フレームの全てを受信してから、その内容に基づいて新たな音声伝送フレームの生成を行うことが好ましい。
また、両端のノード以外のノードは、1周のうちに2度音声伝送フレームを通過させることになるが、このうちデータの読み書きを行うのは1度のみである。どちらで読み書きを行うかは、最初に音声伝送フレームを通過させる時、図で右向きに音声伝送フレームを通過させる時等、任意に定めればよい。読み書きを行わない場合には、単に送信元アドレスと後述する存在確認情報だけ書き換えて音声伝送フレームの残りの部分はスルーさせればよい。
また、各ノードにおいて、音声伝送フレームのデータを書き換えるためや、受信側のネットワーククロック(送信元のノードの動作クロックに対応)と送信側のネットワーククロック(当該ノードの動作クロックに対応)の周波数やタイミングの差を吸収するために、音声伝送フレームの受信時にバッファリングを行う必要があるので、音声伝送フレームの受信開始から送信開始まで幾分かのタイムラグが生じる。
そして、ネットワークで伝送される音響信号の伝送遅延(サンプリング周期単位)を最小にしたい場合は、上記のタイムラグの量を考慮して、マスタノードがあるワードクロックのタイミングで送信開始した音声伝送フレームを、次の次のワードクロックより所定時間α(マスタノード内での新音声伝送フレームの準備に係る時間に対応する)だけ前のタイミングに、マスタノードが受信完了できるようにすればよい。
後に詳述するが、この場合、例えばS番目の音声伝送フレームに基づいて、2サンプリング周期先に送信するS+2番目の音声伝送フレームを生成する。
しかし、2サンプリング周期先に送信する音声伝送フレームを生成することは必須ではなく、kを2以上の自然数として、S番目の音声伝送フレームに基づいて、kサンプリング周期先に送信するS+k番目の音声伝送フレームを生成するようにすることも可能である。この場合のkを、「周期更新量k」と呼ぶことにする。
そして、一般に、kの値に応じて、マスタノードがあるワードクロックのタイミングで送信開始した音声伝送フレームを、k周期先のワードクロックより所定時間αだけ前のタイミングに、マスタノードが受信完了できるようにすれば、音響信号の伝送が可能である。従って、ノード数が増え、送信した音声伝送フレームがマスタノードに戻ってくるまでの時間が増加した場合でも、kの値を増加させることにより、音響信号が伝送可能な状態を維持することができる。
この周期更新量kは、マスタノードが適宜設定し、その内容を、周期更新量kの設定を示すパラメータ設定フレームをブロードキャストしたり、音声伝送フレーム中のIPパケット領域に記載したりすることにより、システム中の全ノードに伝達すればよい。
ただし、本システムでは各ノードで受信する音響信号のタイミングを相互に合わせているので、kを大きくしてマスタノードにおける音声伝送フレームの受信完了タイミング遅れを許容できるようにする(許容量はワードクロック単位で定められる)と、その分だけ、伝送される音響信号にワードクロック単位で伝送遅延が生じる。
本システムにおいては、以上のような方式のデータ伝送を行うことにより、1サンプリング周期内に音声伝送フレームを1周させることのできる程度のノード数であれば、ネットワーク内で常に音声伝送フレームのサイズに応じた一定の伝送帯域幅を確保することができる。そして、この帯域幅は、特定のノード間でのデータ伝送量の多寡には影響されない。
1.4 システムを構成する各装置のハードウェア構成及び基本動作
次に、以上説明してきたような音声伝送フレームの伝送を行うためのハードウェア及びその動作について説明する。
まず、図5に、上述のオーディオネットワークシステム1を構成する各ノードとなる音響信号処理装置のハードウェア構成を示す。
図5に示すように、この音響信号処理装置2は、CPU201,フラッシュメモリ202,RAM203,外部機器I/F(インタフェース)204,表示器205,操作子206を備え、これらがシステムバス207により接続されている。また、外部機器I/F204とシステムバス207とに接続するカードI/O(入出力部)210も備えている。
そして、CPU201は、この音響信号処理装置2の動作を統括制御する制御手段であり、フラッシュメモリ202に記憶された所要の制御プログラムを実行することにより、表示器205における表示を制御したり、操作子206の操作を検出してその操作に従ってパラメータの値の設定/変更や各部の動作を制御したり、コマンドをカードI/O210を介して他の音響信号処理装置に送信したり、カードI/O210を介して他の音響信号処理装置から受信したコマンドに従った処理を行ったりする。
フラッシュメモリ202は、CPU201が実行する制御プログラムを始め、電源を切っても残しておくべきデータを記憶する書き換え可能な不揮発性記憶手段である。
RAM203は、一時的に記憶すべきデータを記憶したり、CPU201のワークメモリとして使用したりする記憶手段である。
外部機器I/F204は、種々の外部機器を接続し入出力を行うためのインタフェースであり、例えば外部のディスプレイ、マウス、文字入力用のキーボード、操作パネル、PC(パーソナルコンピュータ)等を接続するためのインタフェースが用意される。
外部機器I/F204は、カードI/O210のオーディオバス217にも接続しており、オーディオバス217を流れる波形データを外部装置に送信したり、外部装置から受信した波形データをオーディオバス217に入力したりすることができる。
表示器205は、CPU201による制御に従って種々の情報を表示する表示手段であり、例えば、液晶ディスプレイ(LCD)や発光ダイオード(LED)によって構成することができる。
操作子206は、音響信号処理装置2に対する操作を受け付けるためのものであり、種々のキー、ボタン、ダイヤル、スライダ等によって構成することができる。
また、カードI/O210は、オーディオバス217と制御バス218を備え、これらのバスに種々のカードモジュールを装着することにより、音響信号処理装置2に対する音響信号及び制御信号の入出力及びその処理を行うことができるようにするためのインタフェースである。ここに装着される各カードモジュールは、オーディオバス217を介して相互に波形データを送受信すると共に、制御バス218を介してCPU201との間で制御信号を送受信し、CPU201の制御を受ける。
オーディオバス217は、任意のカードから任意のカードへ、複数チャンネルの波形データをサンプリング周期に基づくタイミングで各1サンプルずつ時分割伝送する音響信号伝送用ローカルバスである。接続された複数カードの何れか1つがマスタとなり、当該カードが生成し供給するワードクロックに基づいてオーディオバス217の時分割伝送の基準タイミングを制御する。その他の各カードはスレーブとなり、その基準タイミングに基づいて各カードのワードクロックを生成する。
すなわち、各カードで生成されるワードクロックは、マスタとなるカードのワードクロックに同期した共通のクロックとなり、ノード内の複数のカードは、共通のサンプリング周波数で波形データの処理を行う。さらに、各カードは、自身のワードクロックに基づいて処理した波形データ及び処理すべき波形データを、上記の基準タイミングに基づく時分割タイミングで、オーディオバス217を介して他のカードに送信し、また他のカードから受信する。
図5には、カードI/O210にDSP(デジタル・シグナル・プロセッサ)カード211,212,アナログ入力カード213,アナログ出力カード214,ネットワークI/Fカード215を装着した例を示している。
カードI/O210に装着される各種カードは、そのカードの機能に応じた波形データの処理を、それぞれ、ワードクロック(波形データのサンプリング周期)に基づくタイミングで実行する。
このうち、DSPカード211,212は、オーディオバス217から取得した波形データに対し、ワードクロックに基づくタイミングで、ミキシング、イコライジング、エフェクト付与を始めとする種々の処理を行う信号処理手段である。処理後のデータも、オーディオバス217に出力する。また、複数chの波形データの入力を受け付けて処理し、複数chの波形データを出力することができる。
アナログ入力カード213は、A/D(アナログ/デジタル)変換回路を備え、マイク等の音声入力装置から入力するアナログ音響信号を、デジタルの波形データに変換してオーディオバス217に供給する機能を有する。複数chの信号を並列して処理することも可能である。
アナログ出力カード214は、D/A(デジタル/アナログ)変換回路を備え、オーディオバス217から取得したデジタルの波形データをアナログの音響信号に変換して、スピーカ等の音声出力装置に出力する機能を有する。
ネットワークI/Fカード215は、送信I/Fと受信I/Fを2組備え、図1乃至図4を用いて説明した音声伝送フレーム100の伝送及び、音声伝送フレーム100に対する波形データや制御データ等の読み書きを行う機能を有する。その詳細については後述する。また、カードI/O210には、ネットワークI/Fカードを複数枚装着することが可能であり、各ネットワークI/Fカード毎に別々のオーディオネットワークに接続することができる。その場合、音響信号処理装置2は、複数のオーディオネットワークを接続するブリッジとしての動作を行う。
また、ここで挙げたもの以外でも、その他カード216として、デジタル入出力、音源、レコーダ、エフェクタ等の、種々のカードモジュールを装着可能とすることが考えられる。
なお、上述のように、カードI/O210に装着されたカードは、共通のワードクロックに従って音響信号の処理を行うが、音響信号処理装置2がマスタノードである場合は、装着されたカードのうちの何れか1枚がネットワークI/Fカード215を含む他のカードへワードクロックを供給し、ネットワークI/Fカード215はマスタノードとしてサンプリング周期毎に音声伝送フレームを送信する。音響信号処理装置2がスレーブノードである場合は、ネットワークI/Fカード215が音声伝送フレームの受信タイミングに基づいてワードクロックを生成(再生)し、カードI/O210に装着された他のカードへワードクロックを供給する。
次に、図6に、ネットワークI/Fカード215の構成をより詳細に示す。
図6に示すように、ネットワークI/Fカード215は、第1,第2のデータ入出力部10,20、第1,第2の受信I/F31,33、第1,第2の送信I/F34,32、セレクタ35〜38、オーディオバスI/O39,制御バスI/O40,制御回路41及びワードクロック生成部42を備える。
このうち、第1,第2の受信I/F31,33及び第1,第2の送信I/F34,32は、図1に示した2組の受信I/F及び送信I/Fと対応する通信手段であり、それぞれ通信ケーブルと接続するための所定のコネクタ(メス側)を備えている。通信ケーブルの接続に際しては、第1の受信I/F31と第1の送信I/F34とを1組とし、第2の送信I/F32と第2の受信I/F33とを1組とする。これらのI/Fは、上述した1サンプリング周期内の音声伝送フレームの伝送に十分な能力を有していれば、どのような通信方式でデータ通信行うI/Fであってもよいが、ここでは1Gbpsのイーサネット方式のデータ転送を行うI/Fを採用している。
現在、1Gイーサネットには、通信ケーブルCBとしてRJ45コネクタ付きCAT5eケーブル(シールドされていないツイストペア)を使用する1000BASE−Tと、光ファイバやSTPケーブル(シールドされたツイストペア)を使用する1000BASE−Xの2種類があるが、本実施形態にはその何れを用いることもできる。また、1Gイーサネット以外の広帯域ネットワーク技術を用いても良い。例えば、FiberChannel、SDH(Synchronous Digital Hierarchy)/SONET(Synchronous Optical NETwork)などである。
受信I/Fは、通信ケーブルCBを伝播する電気信号や光信号からキャリアであるネットワーククロックを抽出し、抽出されたクロックに基づいて該電気信号や光信号からバイト単位(ないしワード単位)のデジタルデータのデータ列を復調して出力する。送信I/Fは、ネットワーククロックと送信すべきバイト単位(ないしワード単位)のデジタルデータ列を入力し、該ネットワーククロックをキャリアとして伝送用の電気信号や光信号に変調して通信ケーブルCBに出力する。
また、オーディオバスI/O39は、オーディオバス217に対して波形データを入出力するためのインタフェースである。
制御バスI/O40は、制御バス218に対して制御用パケット、レベルデータ、ネットワーク構成情報等のデータを入出力するためのインタフェースである。
制御回路41は、CPU,ROM,RAM等を備え、ネットワークI/Fカード215の動作に関する全般的な制御及び、後述するような、音声伝送フレーム以外の存在確認や接続可否確認等のフレームに関する制御を行う。また、制御回路41も、制御バスI/O40及び制御バス28を介してCPU201との間でデータを送受信することができる。
ワードクロック生成部42は、後に詳述するように、オーディオバス217における波形データの転送や、オーディオバス217に接続される各種カードモジュールにおける信号データ処理のタイミングの基準となるワードクロックを生成するワードクロック生成手段である。
マスタノードにおいては、ワードクロック生成部42は、ネットワークI/Fカード215独自のタイミング、ないし、オーディオバス217を介して供給される他のカードからのワードクロックに同期したタイミングでワードクロックを生成し、そのクロックを音声伝送フレームの送信タイミングの基準としても用いるが、スレーブノードにおいては、ワードクロック生成部42は音声伝送フレームの受信タイミングを基準としてワードクロックを生成する。
また、第1,第2のデータ入出力部10,20はそれぞれ、図示しない動作クロック発生部の発生する動作クロックに基づいて動作し、対応する受信I/Fが受信した各種フレーム(音声伝送フレームを含む)から所望のデータを読み出す読出手段であり、また、同受信した音声伝送フレームに対して所望のデータの書き込みを行う書込手段である。そして、これらの入出力部の機能は同等なものであるので、第1のデータ入出力部10について代表して説明する。
第1のデータ入出力部10は、データ抽出部11,波形入力用FIFO12,波形出力用FIFO13,制御入力用FIFO14,制御出力用FIFO15,フレームバッファ16を備える。また、第1の受信I/F31がキャリアとして抽出したネットワーククロックNC1の供給を受けて、それに同期して第1の受信I/F31からのデータの受け取りを行う。ここで、各FIFOは、それぞれ、先に書き込まれたデータが先に読み出されるファーストイン・ファーストアウトのレジスタである。
すなわち、データ抽出部11は第1の受信I/F31の出力するデータ(各種フレーム)をネットワーククロックNC1に同期して取り込み、また、フレームバッファ16は第1の受信I/F31の出力するデータ(音声伝送フレーム)をネットワーククロックNC1に同期して取り込む。(ここでは、セレクタ38で第1の受信I/F31からの入力が選択されているとする)
そしてこのうち、データ抽出部11は、取り込んだデータのうち、読み出すべき伝送chの波形データを波形入力用FIFO12に書き込み、読み出すべき制御データを制御入力用FIFO14に書き込み、それ以外のデータは破棄する機能を有する。そして、波形入力用FIFO12に書き込まれた各伝送chの波形データはオーディオバスI/O39により、ワードクロックに同期して1サンプルずつ読み出され、オーディオバス217を介して他のカードに伝送される。また、制御入力用FIFO14に書き込まれた制御データは、制御バスI/O40を介してCPU201により順次読み出され、音響信号処理装置2の制御に使用される。
なお、波形データについては、制御回路41が、少なくともどの伝送chのデータを読み取るべきか把握しており、そのデータが音声伝送フレームの何バイト目に記載されているかは計算で求められるため、制御回路41がその位置をデータ抽出部11に指示し、その位置のデータのみを波形入力用FIFO12に書き込ませるようにすればよい。
また、制御データについては、データ抽出部11での判断は行わず、取り込んだデータが制御データであれば制御入力用FIFO14に書き込み、制御入力用FIFO14から読み出したCPU201が制御データに含まれる送信先アドレス等を解析して参照すべき制御データであるか否かを判断する。先述したように、制御データの伝送では、送信側でパケットを複数に分割して制御データとして送信する場合があるが、そのようなデータに柔軟に対応するためにはCPU201に判断を任せるのが好適である。或いは、データ抽出部11にその分割されたパケットの処理機能を持たせるとともに、制御回路41に、自機のアドレスをデータ抽出部11に対して指示させ、データ抽出部11において、制御データに含まれる送信先アドレスの一致に基づいて参照すべき制御データであるか否かを判断するようにしてもよい。
一方、波形出力用FIFO13は、音声伝送フレームに記載して出力すべき波形データを格納するバッファであり、オーディオバスI/O39は、サンプリング周期毎に出力すべき波形データをオーディオバス217から取得してここに書き込む。複数の伝送ch分の波形データを書き込むことも当然可能であり、音声伝送フレームの先頭に近いバイトに書き込むデータを先に波形出力用FIFO13に書き込んでおけばよい。
また、制御出力用FIFO15は、音声伝送フレームに記載して出力すべき制御データを格納するバッファであり、制御バスI/O40は、出力すべき制御データを制御バス218から取得してここに書き込む。
そして、自機がスレーブノードである場合、フレームバッファ16に音声伝送フレームのデータが所定量(第1の所定量)蓄積されると、蓄積の進行に合わせて、波形出力用FIFO13及び制御出力用FIFO15のデータを、フレームバッファ16の適当なアドレスに書き込んで音声伝送フレームの内容を書き換える。
音声伝送フレームの何バイト目にデータを書き込めばよいかは、波形データについては、制御回路41が書き込むべき伝送chに基づいて算出し、フレームバッファ16に指示する。制御データについても、図2に示した区分に従いデータの種類毎に自動的に決定される。
さらに別の種類のデータを伝送したい場合は、「IPパケット」の領域の一部をそのデータ用の領域としてもよい。なお、第1の所定量の蓄積を検出してそれを書き込みのトリガとする代わりに、音声伝送フレームの取り込みを開始してから所定時間の経過を検出して、それをトリガとして書き込みを開始するようにしてもよい。
そして、自機がスレーブノードである場合、フレームバッファ16に音声伝送フレームのデータが上記の第1の所定量より多い第2の所定量だけ蓄積されると、フレームバッファ16は音声伝送フレームの出力を開始し、セレクタ35が第2の送信I/F32への出力を選択していれば、音声伝送フレームのデータを先頭から順に第2の送信I/F32に渡して送信させる。
このとき、第1のデータ入出力部10の動作クロックが、そのままネットワーククロックNC2として、第2の送信I/F32に供給され、第2の送信I/Fは、音声伝送フレームのデータをネットワーククロックNC2をキャリアとして順次変調して通信ケーブルCBに出力する。なお、第2の所定量の蓄積を検出してそれを送信のトリガとする代わりに、音声伝送フレームを取り込み開始してから所定時間の経過を検出して、それをトリガとして送信を開始するようにしてもよい。
また、この場合、第1のデータ入出力部10は送信制御手段として機能する。
また、本実施形態では、フレームバッファ16に記憶された音声伝送フレームへの波形出力用FIFO13及び制御出力用FIFO15からのデータによる内容の書き換えと、フレームバッファ16からの音声伝送フレームの出力を独立して行うようになっていたが、その書き換えと出力を一度に行うようにしてもよい。すなわち、受信した音声伝送フレームをフレームバッファ16へ書き込み、所定量の蓄積をトリガとしてその音声伝送フレームの読み出しを開始し、波形出力用FIFO13及び制御出力用FIFO15からのデータにより内容を差し替えつつ出力するようにしてもよい。
なお、音声伝送フレームのデータを書き換えは、一旦受信した音声伝送フレームをフレームバッファ16に格納してから行うのではなく、音声伝送フレームのフレームバッファ16への書き込み時に、第1の受信I/F31からのデータと、波形出力用FIFO13からのデータ、および制御出力用FIFO15からのデータのうち適切なものを選択して書き込むようにしてもよい。この場合、第1の受信I/F31からの音声伝送フレームのデータのうち、選択されなかったデータは破棄されることになる。
なお、上述のように、カスケード接続の場合、各ノードは音声伝送フレームに伝送経路を1周させる間、1回しか読み書きを行わない。従って、第1,第2のデータ入出力部10,20のいずれか一方でしかデータの読み書きを行わない。そして、データの読み書きを行わない方のデータ入出力部では、単にデータをスルーさせるのみとする。なお、スルーさせるのみであればFIFO22,23,25を実装する必要はないが、これらのFIFOは、ここでは説明しない別の動作モードのために設けられている。
また、マスタノードにおいては、後述するように、音声伝送フレーム全体の受信が完了してから音声伝送フレームの更新を行うようになっており、音声伝送フレームへのデータの書き込みのタイミングおよび音声伝送フレームの送信開始のタイミングが、スレーブノードとは異なる。しかし、音声伝送フレーム中のデータの書き込み位置については、スレーブノードの場合と同様に定めることができる。また、音声伝送フレーム中の管理データ102の書き換えも行うが、この書き換えも、新たな音声伝送フレームに記載すべきデータを制御出力用FIFO15に書き込んでおき、このデータをフレームバッファに蓄積された音声伝送フレームに上書きして行うことができる。
以上が音声伝送フレーム送信に関するデータ入出力部の機能である。
ところで、図1(a)等からわかるように、あるノードが受信した音声伝送フレームのそのノードからの送信先は、その音声伝送フレームの送信元と別のノードになる場合(図1(a)のノードB)と、送信元と同じノードになる場合(同ノードA,C)とがある。そして、前者の場合、音声伝送フレームの送信は、音声伝送フレームを受信した受信I/Fと別の組の送信I/Fから行い、後者の場合、同じ組の送信I/Fから行う。
セレクタ35〜38は、このような送信先の切り替えを行うために設けたものである。
そして、セレクタ35とセレクタ36は連動して動作し、セレクタ35がフレームバッファ16の出力を第2の送信I/F32に流す状態では、セレクタ36は第2の受信I/F33で受信したデータをフレームバッファ26に書き込み、第2のI/F側のノードと通信が可能な状態となる。
しかし、セレクタ35とセレクタ36とを折り返しラインTL1の側に切り換えると、フレームバッファ16の出力は、フレームバッファ26に書き込み、そこから第1の送信I/F34に渡して接続先に送信させる。従って、受信した音声伝送フレームをその送信元に対して折り返し送信することになる。なおこのとき、データをフレームバッファ26に書き込まず、ここをスルーしてフレームバッファ16の出力を直接第1の送信I/F34に渡すことができるようにしてもよい。また、ネットワーククロックとしては、送信するデータを供給する第1のデータ入出力部10の動作クロックを供給するようにすればよいが、第1のデータ入出力部10と第2のデータ入出力部20とを共通の動作クロックで動作させている場合には、ネットワーククロックの供給源を切り換える必要はない。
また、この状態では、第2の受信I/F33から何らかのフレームを受信しても、その内容はフレームバッファ26には書き込まれない。しかし、その内容はデータ抽出部21には書き込まれ、データ抽出部21はこれを全て制御回路41に入力する。また、この状態では、第2の送信I/F32には、フレームバッファ16の出力は供給されないが、制御回路41から直接データを渡して送信させる経路は設けている。
これらの入出力経路は、後述する存在確認フレームや接続可否確認フレーム及びそれらに対する返答の送受信、あるいは、初期処理においてオーディオネットワークシステムを組み立てたり、システムの構成変更に係る処理を行ったりする際の通知やコマンドの送受信等に用いる。
また、ここではセレクタ35,36について説明したが、セレクタ37,38も、連動して動作することにより同様な機能を有する。そして、第2の受信I/F33から受信した音声伝送フレームに関し、折り返しを行うか否かを切り換えることができる。
以上をまとめると、音響信号処理装置2においては、所属するオーディオネットワークシステム中での各ノードの接続状態と、自機がマスタノードかスレーブノードかとに従い、図6に示したネットワークI/Fカード215のハードウェアが、検出したイベントに応じて以下の表1及び表2のいずれかの処理を行うことにより、図1乃至図4を用いて説明したような音声伝送フレーム及びデータの伝送に係る機能を実現することができる。ただし、これらの表では、常に第1のデータ入出力部10をデータの入出力に使用する例を示しており、第2のデータ入出力部20を使用する場合には、第1のデータ入出力部10と第2のデータ入出力部20の機能が逆になるよう、処理の内容を入れ替えればよい。
Figure 2010045836
Figure 2010045836
2.オーディオネットワークシステムの形成及びその構成変更について
2.1 システム起動時の動作
次に、図5に示した音響信号処理装置2において制御回路41のCPUが実行する、ネットワークの構築や構成変更に関連する処理について説明する。
図7は、個々の音響信号処理装置2が起動時にオーディオネットワークシステムを形成するために全体として実行する処理の手順を、フローチャートとして示したものである。
このフローチャートにおいて、ステップS11〜S14に示す動作は、他の機器の存在確認を行う「検出モード」の動作、ステップS15,S16に示す動作は、存在確認済み装置のオーディオネットワークシステムへの組み入れを行う「構築モード」の動作である。そして、システムへの組み入れ後、音声伝送フレームを循環させる動作が「音声伝送モード」の動作である。そして、これらのモードは、装置毎に定められるものである。
図7に示す処理では、まず、音響信号処理装置2において、セレクタ35〜38は、初期状態では折り返しラインを選択するようにしている。そして、電源が投入されると、各隣接装置間で相互に存在確認フレームを送受信して、隣接装置の存在を確認する(S11)。なお、隣接装置とは、通信ケーブルにより直接接続された装置をいう。そして、隣接装置の存在が確認できると、確認した隣接装置の情報を、反対側(別の組のI/Fに接続されている側)の隣接装置にも伝達する(S12)。
図8に、この存在確認及び伝達の手順を模式的に示す。また、図9に、存在確認フレームの構成を示す。
図8には、AからFまでの6台の音響信号処理装置がカスケード接続された状態で、装置Bと装置Cの情報が伝達される手順を代表して示している。
音響信号処理装置2においては、電源が投入されると、ネットワークI/Fカード215の制御回路41が、コネクタに設けた物理的なスイッチや測定される端子間のインピーダンス等で検出される各受信I/F及び送信I/Fへの通信ケーブルの接続有無や、受信I/Fへ入力する電気信号の有無や抽出されるネットワーククロックの有無等により、自機に他の装置が接続されているか否か判断する(ただし、この段階では、接続相手の装置が既にオーディオネットワークシステムを構成しているか否か及びその装置がオーディオネットワークシステムを構成し得るか否かについて判断する必要はない)。そして、他の装置が接続されていると判断した場合、その装置に対し、送信I/Fから存在確認フレームを送信する。
存在確認フレームは、図9に示すイーサネット形式のフレームであり、このフレームが存在確認フレームであることを示す情報、自機(送信元装置)のID、および自機が既にオーディオネットワークシステム1に所属しているかどうかを示す情報を含む。さらに、既に存在を確認した他の装置との接続状態を示す情報を含めてもよい。音響信号処理装置2のIDは、重複が起こらないよう、MACアドレスのようにメーカーが予め設定しておくことが好ましい。また、自機のIDとしては、装置自体に設定されたIDでなく、ネットワークI/Fカード215のIDを用いてもよい。
そして、存在確認フレームを受信した側の装置では、第1の受信I/F31およびデータ抽出部11を介して、制御回路41がその存在確認フレームを受け取る。そして、制御回路41は、その存在確認フレームに応じてイーサネット形式の存在確認応答フレームを生成し、存在確認フレームの送信元に送信する。存在確認フレームを受信した受信I/Fと同じ組の送信I/Fから送信を行えば、宛先を考慮しなくても、存在確認フレームの送信元に対して送信することができるはずである。また、存在確認応答フレームの構成は、フレームが存在確認応答フレームであることを示す情報を含む点以外は、図9に示した存在確認フレームと同じでよい。
存在確認フレームを送信した側の装置では、送信先から存在確認応答フレームを受信すると、オーディオネットワークシステム1を構成するための通信機能を有した装置が確かに自機に接続されており、通信ケーブルで接続されている装置の存在が確認されたと判断する。
図8に示す例では、例えば装置Bが装置Cに存在確認フレームを送信し、これに応じて装置Cが送信してくる存在確認応答フレームを受信すると、装置Bは装置Cの存在を確認したと判断する。
なお、以上の送受信をもって装置Cも装置Bの存在を確認したと判断するようにしてもよい、すなわち、存在確認フレームを受信した側の装置は、その受信をもって存在確認フレームを送信してきた装置の存在を確認するようにしてもよい。しかし、改めて存在確認フレームの送信と存在確認応答フレームの受信を行うようにしてもよい。
いずれにせよ、隣接する装置の存在が確認できた装置は、反対側のI/Fに接続されている装置があれば、その装置に対し、新たに存在が確認できた装置を示すイーサネット形式の存在伝達フレームを送信する。図8に示す例では、装置Bは装置Aに対して装置Cの存在を示す存在伝達フレームを送信し、装置Cは装置Dに対して装置Bの存在を示す存在伝達フレームを送信する。なお、この場合、存在伝達フレームの送信を行う装置が、送信先の装置の存在を確認できていること、すなわち、その送信を行う装置のトポロジーテーブル(後述する)にその送信先の装置の存在が記載されていることが前提である。
また、新たな装置の存在を示す存在伝達フレームを受け取った装置は、その送信元と反対側のI/Fに接続されている装置があれば、その装置に対して、受け取った存在伝達フレームを送信する。図8に示す例では、装置Dは、装置Cから受信した装置Bの存在を示す存在伝達フレームを、装置Eに送信する。装置Eも、装置Dから受信した装置Bの存在を示す存在伝達フレームを、さらに装置Fに送信する。この場合も、存在伝達フレームの送信を行う装置が、送信先の装置の存在を確認できていることが前提である。
なお、以上のように装置の情報を伝達する場合、存在伝達フレームには、装置の位置関係(接続状態)を示す情報も含めておく。例えば、装置Cが装置Dに対して装置Bの情報を伝達する場合には、「装置Bは装置Dから見るとD→C→Bと辿った位置にある」、装置Dが装置Eに対して装置Bの情報を伝達する場合には、「装置Bは装置Eから見るとE→D→C→Bと辿った位置にある」、等である。
図7の説明に戻ると、各装置は、上記のように存在を確認し又は情報を伝達された装置の情報に基づき、トポロジーテーブルを構築する(S13)。このトポロジーテーブルは、各装置が通信ケーブルによりどのような順番で接続されているか、およびその各装置の情報を記録するテーブルである。
図10にトポロジーテーブルの例を示す。
この図に示すように、ここでは、トポロジーテーブルには、存在を確認し又は情報を伝達された装置のIDを、接続順に並べて記載すると共に、各装置について、マスタ優先度、遅延時間、システム組み入れの情報を記載している。
このうちマスタ優先度は、オーディオネットワークシステムのマスタノードを決定する際に、各装置がどれだけ優先されるかを示す情報であり、最もマスタ優先度の高い装置がマスタノードとなる。マスタ優先度は、ユーザ又はメーカーが予め装置毎に設定しておくものである。
遅延時間は、装置間で音声伝送フレームを伝送する際にどれだけの伝送遅延が発生するかを示す情報であり、例えば、後述する接続可否確認の際に、装置間で計測用のフレームを送受信して計測することができる。なお、音声伝送フレームのバッファやデータの読み書きにより生じる遅延の時間は、各装置についてほぼ一定になるように設計しておくことが好ましい。そして、このようにした場合、伝送遅延の量は、(設計値)+(装置間の物理的な距離に依存する増加分)として取り扱うことができる。その場合、トポロジーテーブルに記憶する遅延時間の値は、(装置間の物理的な距離に依存する増加分)だけでもよいし、(設計値)との和であってもよい。
また、隣接装置が2つある場合、伝送遅延の量は両者について一致するとは限らない。そこで、例えば、後述のようにカスケード接続の先頭側と末尾側を区別し、遅延時間として、末尾側の隣接装置との間で音声伝送フレームの伝送を行う際に発生する伝送遅延量を記載するとよい。又は、上流側と末尾側それぞれの隣接装置との間で生じる遅延時間を別々に記載してもよい。
システム組み入れは、既にオーディオネットワークシステムに組み入れられているか否か、及び組み入れられていればそのシステムIDを示す情報である。システムIDは、各オーディオネットワークシステムに付与されるユニークなIDであり、そのシステムのマスタノードにより決定される。本実施形態では、それぞれ音響信号処理装置2のカスケード接続により形成される1ないし複数のオーディオネットワーク上に複数のオーディオネットワークシステムを構築可能であり、システムIDにより同時に存在する複数のオーディオネットワークシステムを個別に識別することができる。
図11に、以上のようなトポロジーテーブルの構築手順を示す。
ここまで説明してきたように、各音響信号処理装置A〜Fは、電源を投入されると、隣接する装置の存在を確認すると共に、その装置の情報を反対側の装置に順次伝達する。従って、各装置A〜Fの情報は、始めは存在確認により、その後伝達により、破線で示すように、カスケード接続された全ての装置に配布される。そして、各装置が、新たな装置の情報を受け取る度に、その装置の情報をトポロジーテーブルの適切な位置に追加していくことにより、図11に時系列的に示すように各装置においてトポロジーテーブルが構築される。
なお、トポロジーテーブルの構築は、全ての装置で隣接装置の存在を確認できてから反対側の装置への伝達を行う、というように、段階を踏んで行うように記載しているが、必ずしもこのようにする必要はない。例えば、装置Eが装置Fの存在が確認できるより早く、装置Aの情報が装置Eまで伝達されていたとしても、特に問題はない。
また、トポロジーテーブルにおいてカスケードの先頭と末尾を区別する場合、例えば、第1の送受信I/F31,34に接続されている装置の側を先頭側、反対側を末尾側というように、接続するI/Fを基準に向きを定めればよい。
このようにすると、第1の送受信I/F同士が接続されるような場合には、装置毎にトポロジーテーブルの向きが異なる場合がある(例えば、装置Bの第1の送受信I/Fと装置Cの第1の送受信I/Fとが接続されていると、装置Bは装置Fをカスケードの先頭と認識する一方、装置Cは装置Aを先頭と認識する)。
しかし、接続順に矛盾がなければ、オーディオネットワークシステムの形成に特に支障はないため、システムの形成後に、マスタノードが各装置に指示して、どちらの端が先頭かを統一させるようにすればよい。ここでは、システムのマスタノードが、各サンプリング周期に新規の音声伝送フレームを送出する側(図29における前方側)を末尾側と定義し、各スレーブノードに対し、それと同じ側を末尾側(前方側)、反対側を先頭側(後方側)とするよう指示する。
ところで、図11からわかるように、各装置において、カスケード接続されているすべての装置がトポロジーテーブルに登録されると、トポロジーテーブルの内容はそれ以上変化しなくなる。そこで、各装置は、所定時間の間トポロジーテーブルに変化がない場合、図7のステップS14以降のオーディオネットワークシステムの構築処理に移行する。ここで、オーディオネットワークシステムに組み入れられていない装置では、セレクタ35〜38が折り返しライン側を選択しているものとする。
また、自機が他の装置と接続されていないことがわかった場合には、システムを構築しても意味がないため、ここで一旦処理を終了し、他の装置と接続された時点で、その装置の属するシステムに組み入れてもらうか、新たに図7に示す処理を開始するようにする。
オーディオネットワークシステムの構築処理では、まず、各装置が交信して、トポロジーテーブルに記載された装置の1つをマスタノードとして選定する(S14)。ここでは、最もマスタ優先度が高い装置をマスタとすればよい。マスタ優先度が同じ装置が複数あった場合には、装置IDの文字コードが小さい方等、任意の方法で定めればよい。また、トポロジーテーブルの内容が一致しない(まだ全ての装置の情報が伝達されていない)装置が発見された場合、全ての装置でトポロジーテーブルが一致するまでステップS14の処理を中断してもよい。この処理においては、各装置の制御回路41がマスタノード設定手段として機能する。
マスタノードの選定が完了すると、マスタノード以外の装置は、主体的にシステムを構築する動作を中止し、マスタノードからの指示に従ってオーディオネットワークシステムを構築する。そして、各装置は、マスタノードを基点に順次隣接装置の接続可否を確認して、接続可の装置をノードとしてオーディオネットワークシステムに組み入れる(S15)。なお、音声伝送フレームによる音声伝送は、オーディオネットワークに存在している複数ノードのうちの、オーディオネットワークシステムに組み入れられたノード間で行われる。1つのオーディオネットワーク上の各ノードは、そのオーディオネットワーク上の何れか1つのオーディオネットワークシステムにのみ組み入れ可能であり、そのオーディオネットワークの複数のシステムに同時に組み入れることはできない。
また、その組み入れに従って、各装置のトポロジーテーブル中のシステム組み入れ情報を更新する(S16)。具体的には、マスタノードがオーディオネットワークの各装置(当該システムに組み入れられていないものも含む)に対し、システムに組み入れた装置の装置ID及び当該システムのシステムIDを通知し、該装置のトポロジーテーブルに登録させる。
図12に、ステップS15において各装置をオーディオネットワークシステムに組み入れる手順を示す。この図には、装置Bがマスタノードとなる場合の例を示しており、図中の「M」はマスタノードを示すものである。また、斜線を付した装置がオーディオネットワークシステムに組み入れ済みの装置であり、「LB(ループバック)」は、セレクタを片側だけ折り返しラインの側に切り替え、音声伝送フレームを折り返す状態であることを示す。
マスタノードBは、新たにオーディオネットワークシステムを構成する場合、図12(a)に示すように、まず両隣の装置(対象装置)に対し、接続可否確認フレームを送信する。このフレームは、オーディオネットワークシステムに参加が可能であるか否かを問い合わせるためのものである。そして、存在確認ができており、他のシステムに組み入れられていない装置は、通常はシステムに参加可能な状態であると考えられ、マスタノードからの接続可否確認に応じて、接続可能を示す接続可否応答フレームを返してくる。
このとき、遅延時間確認用フレームを送受信して、装置間で音声伝送フレームを伝送する際にどれだけの伝送遅延が発生するかを計測し、その結果を遅延時間情報としてトポロジーテーブルに登録する。マスタノード以外の装置がこの情報を持つことは必須ではないので、マスタノードのみで登録を行えばよい。
そして、マスタノードBは、遅延時間情報から、接続可能の応答を返してきた装置をシステムに加えた場合に、現在予定しているシステムの周期更新量kに応じた所定の上限時間内でシステム内の全ノードに音声伝送フレームを循環させられることを確認する。
巡回できない場合は、周期更新量kを1だけ増加して、もう一度確認処理を行い、以下、この確認ができるまで周期更新量kの増加と確認処理とを繰り返し実行する。周期更新量kには所定の上限が設定されており、周期更新量kが上限に到達してもまだ循環可能と確認できなければ、該装置のシステムへの組み入れはできないと判断し、この組み入れ処理(S15、S16)を中止して処理をステップS17に進める。なお、本実施形態での周期更新量kの最低値は2(周期)であり、上限が2の場合は周期更新量の増加はできない。
また、循環の確認ができると、マスタノードはオーディオネットワークで存在確認されている全ての装置を送信先として、対象装置のオーディオネットワークシステムへの参加許可を示す参加許可フレームを送信(ブロードキャスト)すると共に、その対象装置が接続される側のセレクタを送受信I/Fの側に切り替え、音声伝送フレームの折り返しを解除する。また、参加許可フレームを受けた対象装置も、マスタノードが接続される側のセレクタを送受信I/Fの側に切り替え、折り返しを解除する。また、送信された参加許可フレームは、オーディオネットワークを構成する複数の装置を順次伝達され、参加許可を通知された各装置は、各自のトポロジーテーブルに対象装置の当該システムへの組み入れを登録する。
以上により、マスタノードBが、隣接する装置A,Cをノードとしてオーディオネットワークシステムに組み入れ、図12(b)に示す状態とすることができる。なお、両側の隣接装置の組み入れを、同期して行う必要はない。
また、装置Aはカスケード接続の端の装置であるので、こちら側の組み入れはこれで完了であるが、装置Cについては、まだ先に装置が接続されているため、その装置を対象装置として組み入れを行う。
ここでは、装置Cが、(隣の未組み入れの装置の存在に応じて自動的に、ないし、マスタノードBからの指示に応じて)マスタノードの代理として接続可否確認フレームの装置D(対象装置)への送信および接続可否応答フレームの受信を行い、その応答内容をマスタノードBに転送する。このとき、装置Cに、装置Dとの間で遅延時間確認用フレームを往復させてその伝達遅延時間の計測を行わせ、その計測結果も共に転送させる。なお、装置Cに代理をさせる代わりに、マスタノードBが、装置Cを経由して接続可否確認フレームを装置Dに送り、装置Dからの接続可否応答フレームを装置Cを経由して受け取るようにしてもよい。
そして、マスタノードBは、遅延時間情報から、接続可能の応答を返してきた装置をシステムに加えても、現在の周期更新量kに応じた所定の上限時間内でシステム内の全ノードに音声伝送フレームを循環させられることを確認する。循環させられないと判断した場合は、上述の場合と同様に、循環可能と確認できるまで周期更新量kを順次増加させ、ないし、周期更新量kの上限で組み入れ不可と判断する。
そして、この確認ができると、マスタノードBは全ての装置を送信先として、対象装置である装置Dのオーディオネットワークシステムへの参加を許可する旨を示す参加許可フレームを送信する。
参加許可フレームを受信した装置Cは、この参加許可フレームを隣の装置Dに転送すると共に、装置Dが接続される側のセレクタを送受信I/Fの側に切り替え、音声伝送フレームの折り返しを解除する。また、参加許可フレームを受信した装置Dも、この参加許可フレームを隣の装置Eに転送すると共に、装置Cが接続される側のセレクタを送受信I/Fの側に切り替え、折り返しを解除する。また、参加許可フレームを受信した各装置は、各自のトポロジーテーブルに対象装置の当該システムへの組み入れを登録する。
以上により、マスタノードBが、装置Dをノードとしてオーディオネットワークシステムに組み入れ、図12(c)に示す状態とすることができる。
そして、以下同様に、装置E,Fを1つずつオーディオネットワークシステムに組み入れ、図12(d)の状態になったところで、トポロジーテーブルに登録された全ての装置をオーディオネットワークシステムに組み入れたことになるので、マスタノードは組み入れの処理を終了する。
上述したように、マスタノードBは、トポロジーテーブルに登録された全ての装置を組み入れる前でも、新たにノードを追加すると周期更新量kの上限に対応する上限時間内でシステム内の全ノードに音声伝送フレームを循環させられなくなると判断した場合には、新たなノードの組み入れを終了する。この場合、オーディオネットワークシステムに組み入れられなかった装置は、そのままシステムの外に留まることになる(何からの理由でシステム内のノード数が減る等すれば、後で組み入れられる場合もある)。
いずれにしろ、マスタノードは、装置の組み入れの処理を終了すると、図7に示すように、オーディオネットワークシステム内の各ノードに、音声伝送フレームを循環させる音声伝送モードの開始を指示する(S17)と共に、音声伝送フレームの生成と送信を開始する(S18)。
以上により、初期のオーディオネットワークシステムが自動的に形成される。このオーディオネットワークシステムにおいては、両端のノードで前記音声伝送フレームの伝送を折り返し、他のノードでは前記音声伝送フレームの伝送を折り返さないことにより、システムを構成する各ノード間でループ状の伝送経路を形成し、その伝送経路に音声伝送フレームを一定周期で循環させることができる。そして、以後、オーディオネットワークシステムが停止するまで、伝送すべき波形データや制御データの有無に関わらず、各ノード間の音声伝送フレームの循環は継続される。このような、音声伝送フレームの循環が実際に行われている状態では、オーディオネットワークシステムが全体として音声伝送モードであるということにする。
そして、任意の時点でノードの追加や伝送経路の切断があった場合でも音声伝送フレームの伝送を継続できることが、この実施形態の特徴の1つであり、以下、この点について説明する。
2.2 新規ノード追加に関する動作
図13に、この実施形態のオーディオネットワークシステムにおいて両端のノードが所定の周期で定期的に実行する、新規ノード追加に関する処理のフローチャートを示す。
上述のように形成されたオーディオネットワークを構成しているノードのうち、両端のノード、すなわち音声伝送フレームの折り返しを行っているノードは、そのノードがマスタノードである場合はマスタノードとして、マスタノードでない場合はその代理として、定期的に図13のフローチャートに示す処理を行う。この処理は、ネットワークI/Fカード215内の制御回路41が行うものである。
そして、この処理においては、まず、音声伝送フレームの折り返しを行っている側(セレクタが折り返しラインを選択している側)に装置が接続されているか否か判断する(S21)。この判断は、起動時の場合と同様、各送受信I/Fへの通信ケーブルの接続有無や、抽出されるネットワーククロックの有無等により行うことができる。
そして、装置が接続されていれば、折り返し側に、存在確認フレームを送信する(S22)。存在確認フレームの構成は、図9に示したものと同様でよいが、「確認済み接続状態」として、トポロジーテーブルの情報を記載するとよい。また、送信先がオーディオネットワークシステムに組み入れ可能な装置であれば、起動時の処理の場合と同様、存在確認応答フレームを返してくる。また、新たな装置が存在していた場合、その装置は「検出モード」であると想定されるが、受信した存在確認フレームの情報に基づいて自身のトポロジーテーブルを更新する。
そして、図13の処理を実行する制御回路41は、存在確認フレームに対して応答があった場合(S23)、折り返し側にシステムに組み入れ可能な装置が接続されたと判断し、トポロジーテーブルにその新たな装置の情報を追加する(S24)。追加する情報は、存在確認応答フレームから取得できる。また、この新たな装置の情報を音声伝送フレームにネットワーク構成情報として記載して、自身が属するオーディオネットワークシステム内の各ノードに伝達する(S25)。この情報を受け取った各ノードは、その内容に従って自身のトポロジーテーブルを更新する。
この時点で新たな装置は、既に他のシステムに組み入れられていなければ、「構築モード」となっているので、その装置を対象装置として接続可否確認フレームを送信する(S26)。このフレームは、図12を用いて説明した新規システム形成時の組み入れ処理で用いるものと同じでよい。
そして、存在確認応答フレームを返してきた装置は、既に他のシステムに組み入れられていなければ、通常は、このシステムに参加可能な状態であると考えられ、接続可否確認に対し、可能を示す接続可否応答フレームを返してくる。そして、この応答があると(S27)、新たな装置を自身が属するオーディオネットワークシステムに組み入れるための動作を行う。
この動作としては、まず、新たな装置との間で遅延時間確認用フレームを送受信して、装置間で音声伝送フレームを伝送する際にどれだけの伝送遅延が発生するかを計測し(S28)、マスタノードにその遅延時間の情報を送信して新たな装置の接続許可を求める(S29)。マスタノードとの間のデータ送受信は、循環している音声伝送フレームのIPパケット領域にデータを記載して行う。また、この処理は、新たなノードをシステムに組み入れることをマスタノードに通知する意味もあり、この処理において、制御回路41は接続通知手段として機能する。
一方、マスタノードは、接続可能の応答を返してきた対象装置をシステムに加えても、その時点の周期更新量kに応じた所定の上限時間内でシステム内の全ノードに音声伝送フレームを循環させられることを確認すると、参加許可を示す参加許可フレームを音声伝送フレームのIPパケット領域に記載して送信してくる。また、循環させられない場合は、その循環が可能になるまで周期更新量kを増加させ、音声伝送フレーム生成の態様を変化させた後、参加許可フレームを送信してくるが、上限の周期更新量でもその循環が不可能であった場合は、参加許可フレームを送信してこない。
そして、音声伝送フレーム中の参加許可フレームを受信した制御回路41は(S30)、その参加許可フレームを新たな装置(対象装置)に送信し、音声伝送モードの開始を指示する(S31)。また、トポロジーテーブルに対象装置のシステム組み入れ情報として当該システムのシステムIDを登録すると共に、対象装置が組み入れられたことを示す情報を音声伝送フレームのIPパケット領域に記載して、システム内の各ノードに伝達する(S32)。この情報を受け取った各ノードは、その内容に従って自身のトポロジーテーブルを更新する。
また、新たな装置の側では、参加許可フレームを受け取ると、音声伝送フレームを循環させるための動作を開始すると共に、指示元と接続される側のセレクタを送受信I/Fの側に切り替え、音声伝送フレームの折り返しを解除する。
指示元の(図13の処理を実行する)装置では、その時点で送受信中の音声伝送フレームが途中で切れてしまうことを防止するため、音声伝送フレームを送受信中でない、あるフレームの送信完了から次のフレームの受信開始までのタイミングで、新たな装置と接続される側のセレクタを送受信I/Fの側に切り替え、音声伝送フレームの折り返しを解除して(S33)、処理を終了する。
以上のステップS28乃至S33の処理において、制御回路41は変更指示手段及び伝送路形成手段として機能する。
なお、ステップS21で折り返し側に装置がない場合には、その後の処理は不要であるので、そのまま処理を終了する。
ステップS23で所定時間内に応答がない場合は、接続された装置は音声伝送フレームの伝送に関する機能を持たず、オーディオネットワークシステムに組み入れることのできない装置であると判断して、そのまま処理を終了する。
また、ステップS27で、接続付加を示す接続可否応答フレームを受信した場合又は所定時間内に接続可の応答がない場合は、新たな装置は何らかの理由でオーディオネットワークシステムに組み入れることができないと判断して、そのまま処理を終了する。
ステップS30で、所定時間内に参加許可フレームを受信しなかった場合は、接続が許可されなかったと判断してそのまま処理を終了する。
なお、ステップS27又はS30で「NO」と判断された場合であっても、形成済みのシステムや装置の状況が変化する可能性があるため、図13の処理は定期的に実行される。その場合、存在確認は完了しているので、ステップS21〜S25の処理を省略してステップS26から実行するようにしてもよい。
以上の処理により、既に動作中のオーディオネットワークシステムの端のノードに新たに装置が接続された場合、自動的にその装置を検出して、オーディオネットワークシステムに組み入れ、その組み入れた装置も含む伝送経路に、音声伝送フレームを循環させることができる。この場合において、伝送中の音声伝送フレームが失われることはない。
なお、ここでは、マスタノードが新たなノードの組み入れ可否を集中的に判断する場合の処理例を示したが、端のノードに各ノード間の遅延時間情報を持たせ、新たなノードの組み入れ可否を判断する権限を持たせてもよい。この場合、新たなノードの組み入れを行った後で、事後的にマスタノードにその旨を通知すればよい。
ところで、図13に示した「新たな装置」の側から見れば、自機の状態は把握できても、隣接装置が図7に示したような起動時の処理を実行中であるのか、図13に示したような新規ノード追加に関する処理を実行中であるのかは、隣接装置から存在確認フレーム又は存在確認応答フレームを受信してその内容を解析するまでは把握できないが、新たな装置側の処理は何れの場合も同じなので特に問題はない。
すなわち、自機の状態に従い、オーディオネットワークシステムに組み入れ済みでなければ起動時の処理を、組み入れ済みであれば新規ノード追加に関する処理を行う。そして、どちらの場合にも、隣接装置から存在確認フレームや接続可否確認フレームを受信する可能性があり、これらのフレームを受信した場合には、応答を返す。
このとき、存在確認フレーム及びその応答については、自機及び隣接装置の状態に関わらず同じように送受信を行ってよいが、接続可否確認フレーム及びその応答については、自機及び隣接装置の状態に応じて対応を切り換えることが好ましい。既に別々のオーディオネットワークシステムに組み入れられている装置同士が新たに接続された場合に、図13の処理によりその接続された装置をオーディオネットワークシステムに組み入れてしまうと、システムの動作に不都合が生じることが考えられるので、これを防止するためである。
そこで、既にオーディオネットワークシステムに組み入れられている装置は、他のシステムの末端のノードから接続可否確認フレームが送信されてきたら、接続不可を示す接続可否応答フレームを返すようになっている。さらに、組み入れ済みの装置に対しては、接続可否確認フレームを送信せずに「接続不可」と判断するようにしてもよい。
以上をまとめると、折り返し側に他の装置の接続を検出した装置は、表3に示す動作を行うようにするとよい。
Figure 2010045836
2.3 伝送経路の切断時の動作
次に、オーディオネットワークシステムにおいてノード間の接続の切断が発生した場合の動作について説明する。
オーディオネットワークシステムにおいて、各ノードは、隣接ノードとの間の接続が切断されたことを検出した場合、切断を検出した側のセレクタの選択を折り返し伝送路側に切り替え、音声伝送フレームの伝送の折り返しを開始する。すなわち、隣接ノードとの間の接続が切断された状態でその隣接ノードに対して音声伝送フレームを送信しても、その音声伝送フレームは単に失われるだけであるので、切断された接続より先のノードはシステムから除外し、残りのノードだけで新たな伝送経路を形成して音声伝送フレームの循環を継続する。
折り返し開始のタイミングについては、切断の検出時に直ちに行うようにしてもよい。しかし、音声伝送フレームの送信中に折り返しを行うと、半端な音声伝送フレームを伝送経路に送出してしまうことになる。そこで、切断の検出時に送信中の音声伝送フレームは、可能であれば末尾まで送信を行ってしまい、その後、次の音声伝送フレームを受信する前に折り返しを開始するとよい。この場合、送信した音声伝送フレームは、どの装置にも受信されずに消失することになるが、後述のように、音声伝送フレームが消失してもマスタノードによる以後の音声伝送フレームの生成に対する影響は軽微である。
図14に、接続切断時のシステム構成変更手順の例を示す。ハッチングや「M」及び「LB」の意味は、図12と同様である。
この図には、ノード間の結線が切断された場合の例を示している。また、結線の切断には、通信ケーブル自体が物理的に切断された場合の他、通信ケーブルがノードから抜き取られた場合や何れか一方のノードにおいて故障によりオーディオネットワークへの送信ないし受信ができなくなった場合も含む。
そして、結線が切断されると、両方向の伝送路が切断された場合は切断箇所の両側のノードで、片方向の伝送路のみが切断された場合はその切断された伝送路の受信側のノードで、切断箇所のある側の隣接ノードからの音声伝送フレームの信号が途絶えたり、ネットワーククロックの抽出ができなくなったりする。そこで、音声伝送フレームの途中で信号が途切れたこと、あるいは、ネットワーククロックが抽出できなくなったことを検出したノードは、その側で切断が発生したと判断し、切断を検出したことを示す切断伝達フレームを両側へ送信(ブロードキャスト)する。これにより、切断箇所の一方側でしか切断の検出ができなかった場合でも、その切断は他方側へ伝達され、両側のノードが切断を認識することができる(図14(a))。
そして、切断を検出したノードは、図14(b)に示すように、その切断を検出した側に折り返しを設定する。図に示す例では、このことにより、ノードAからノードDまでを循環する伝送経路と、ノードEとノードFの間を循環する伝送経路とが形成される。この場合、切断を検出したノードの制御回路41が変更指示手段及び伝送経路形成手段として機能する。
なお、切断により途中で途切れた音声伝送フレームは、その後、オーディオネットワークシステムの切断されていないノードを循環していくが、それを追いかけるように切断伝達フレームが伝達されていくので、途切れた音声伝送フレームを受信した各ノードは、その直後に切断伝達フレームを受信することにより、切断伝達フレームの示す箇所で切断が発生したのであって、そのノードの受信側のケーブルで切断が発生したのではないと判断することができる。
一方、図14(c)に示すように、マスタノードは、切断発生時に音声伝送フレームが壊れていれば、その壊れた音声伝送フレームを破棄するものの、新たな音声伝送フレームの生成と送信は、伝送経路の変更に関わりなく続行する。従って、ノードAからノードDまでを循環する伝送経路には、切断発生後も周期的に音声伝送フレームが伝送され、伝送経路が維持できる範囲で、波形データや制御データの伝送を継続することができる。
しかし、マスタノードがないノードEとノードFの側では、新たな音声伝送フレームの生成は行われない。そして、ノードEとノードFは、一定期間新たな音声伝送フレームを受信しない場合、オーディオネットワークシステムから切り離されたと判断し、両側のセレクタを折り返し伝送路側に切り換えて、音声伝送モードの動作を停止する。
その後は、自動的に図7に示したステップS14以降の処理を行って、可能な範囲で再度オーディオネットワークシステムを構成するようにしてもよいし、単独で動作を続け、他の装置からの接続要求を待つようにしてもよい。後者の場合、切断された結線が復旧されると、図13に示した処理により、ノードE及びノードFを順次システムに組み入れることができる。
なお、切断発生時点で音声伝送フレームの先頭がノードE又はノードFに位置していた場合、何も対応しないと、ノードEとノードFの間を音声伝送フレームが循環し続けることも考えられる。そこで、このような事態を防止するため、音声伝送フレームの受信時にフレーム通し番号を確認し、2度同じ通し番号の音声伝送フレームを受信した場合には、その音声伝送フレームを折り返さずに破棄するようにするとよい。
また、図15に、接続切断時のシステム構成変更手順の別の例を示す。
この図には、ノードが停止した場合の例を示している。結線に変化がなくでも、急に電源が切断される等してノードが停止することも考えられる。そして、この場合にも、停止したノードの両側のノードは、隣接ノードからのネットワーククロックが検出できなくなるため、このことをトリガに、図15(a)に示すように伝送経路の切断を検出することができる。停止したノードの隣のノード(D,F)では、ノードの停止は、結線の切断と区別できないが、対処処理も同じなので特に問題はない。
すなわち、図15(b),(c)に示すように、図14の場合と同様、伝送経路の切断を検出したノードが、その切断を検出した側に折り返しを設定し、マスタノードが、切断発生時に壊れた音声伝送フレームを破棄して新たな音声伝送フレームの生成と送信を続行する。そして、このことにより、マスタノードが存在する側の伝送経路には、切断発生後も音声伝送フレームが伝送され、伝送経路が維持できる範囲で、波形データや制御データの伝送を継続することができる。
なお、各ノードは、機能が全面的に停止しない場合でも、制御回路41がハングアップする等して、音声伝送フレームに対してデータの読み書きを正常に行えなくなる場合がある。そして、この状態で音声伝送フレームの伝送を継続すると、その内容の正確さが保証できなくなるため、あるノードがこの状態に陥った場合、そのノードは機能が停止したとして、図15に示したような構成変更を行うことが好ましい。
しかし、ネットワークI/Fカード215が正常に動作していれば、データの読み書きが正常か否かに関わらず、ネットワーククロックは送信されてくるため、この場合にはネットワーククロックを検出の判断基準とすることはできない。
そこで、図27に示すように、各ノードの制御回路41は、送信する音声伝送フレームのネットワーク構成情報の領域に、自ノードが正常に動作(存在)していることを示す存在情報を書き込んで送信を行うとともに、図26に示すように、受信した音声伝送フレームのネットワーク構成情報の領域から隣のノードの存在情報を読み出し、存在情報に基づいて隣のノードの状態を確認するようにするとよい。また、存在情報は、当該ノードのノードIDと所定の規則に従って毎回変化する変化値とを含む情報とすればよい。
このようにすれば、送信元の存在情報を確認できない場合に、送信元装置において音声伝送フレームに対してデータを読み書きする能力が失われたと判断することができる。また、ネットワークハブ等を介して、あるノードの隣に複数のノードが接続されてしまい、同じオーディオネットワークシステムのノードではないノードからの音声伝送フレームが送られてきた場合に、その音声伝送フレームを自機が属するオーディオネットワークシステムの音声伝送フレームではないとして適切に無視することができる。
なお、突発的なデータエラーが生じる可能性も考慮して、所定数の音声伝送フレームについて存在情報が確認できなかった場合に、異常が発生したと判断するようにしてもよい。また、存在情報の確認を行う場合、この存在情報に関してのみは、第1及び第2のデータ入出力部10,20の双方で書き込み及び読み出しを行うとよい。このようにすれば、どちら向きに転送が行われる場合でも、送信元の状態を確認できる。
また、結線の切断やノードの停止が起こった場合、装置間の接続の状況が変化することになるが、オーディオネットワークの各ノードは、受信した切断伝達フレームに応じて、自ノードのトポロジーテーブルの内容を変更する。
図16に、図14に示した例の場合のトポロジーテーブルの変更手順を、図11と同様な形式で示す。
この図に示すように、結線の切断を検出したノードは、まず切断箇所の先に接続されていた装置の情報を、トポロジーテーブルから削除する。そして、切断が起こり、その先のノードと通信できなくなった旨を示す切断伝達フレーム(図では、「E不存在」及び「D不存在」)を、通信が維持されている側のノードに伝達(ブロードキャスト)する。
そして、この切断伝達フレームを受け取ったノードも、切断箇所の先に接続されていた装置の情報を、トポロジーテーブルから削除すると共に、反対側のノードに切断伝達フレームを順次伝達する。切断伝達フレームの伝達は、切断箇所の何れの側のノード間でも、音声伝送フレームを伝送しなくなったタイミングで行われる。
以上により、結線の切断やノードの停止が起こった場合でも、各ノードにおけるトポロジーテーブルの内容を、速やかに現状に合ったものとすることができる。
3.音声伝送フレームに対するデータの読み書きについて
3.1 音声伝送フレームの生成
次に、マスタノードにおける音声伝送フレームの生成について説明する。
既に述べたように、この実施形態のオーディオネットワークシステムにおいて、新たな(通し番号の異なる)音声伝送フレームを生成するのは、マスタノードのみである。そして、マスタノードは、自身が送信し、伝送経路を1周して戻ってきた音声伝送フレームのデータを一部加工して、新たな音声伝送フレームの生成を行う。
この加工の内容は、ヘッダや管理データ(通し番号を含む)を更新すると共に、マスタノードが送信する波形データや制御データ等を書き込むものであり、他のノードが書き込んだ波形データや制御データは、そのまま新たな音声伝送フレームに残るようにする。
しかし、このような生成方式を採る場合、戻ってきた音声伝送フレームのエラーを確認せずに新たな音声伝送フレームを生成すると、伝送される波形データに大きなノイズが発生してしまうおそれがある。そこで、この実施形態のマスタノードでは、伝送経路を1周して戻ってきた音声伝送フレーム全体を一旦バッファに保存し、音声伝送フレームの全体を正常に受信できたことを確認してから、その音声伝送フレームに基づいて新たな音声伝送フレームを生成するようにしている。
また、マスタノードが音声伝送フレームを受信できなかった場合、新たな音声伝送フレームは、別の音声伝送フレームに基づいて生成しなければならない。そこで、正常に受信できた音声伝送フレームのうち最新のものを、送受信用とは別に保存しておき、音声伝送フレームが正常に受信できなかった場合には、その音声伝送フレームに基づいて生成する予定だった音声伝送フレームを、保存しておいた音声伝送フレームに基づいて生成するようにしている。
またこのため、マスタノードにおいては、図17に示すように、音声伝送フレームの生成を行うデータ入出力部においては、フレームバッファ16を、複数のバッファで構成し、その各バッファに対し「送信バッファ(兼保存バッファ)」又は「受信バッファ」の機能を割り当てることができるようにしている。そして、フレームバッファ16内には、周期更新量kより1だけ多い(k+1)個のバッファが必要である。
ここで、図18に、マスタノードにおける音声伝送フレームの送受信及び生成のタイミング例を示す。この図において、「S」,「S+1」等は音声伝送フレームの番号を示し、例えば「S」はS番目の音声伝送フレームを示す。
マスタノードは、図3及び図4を用いて説明したように、サンプリング周期毎に1つの音声伝送フレームを送信する。また、送信した音声伝送フレームの先頭は、周期更新量kが「2」の場合、約1サンプリング周期でシステムを循環する。そして、多くの場合、図18に示すように、S番目の音声伝送フレームの全体の受信が完了する前に、S+1番目の音声伝送フレームの送信を開始しなければならない。また、S+2番目の音声伝送フレームの送信を開始するより所定時間αだけ前のタイミングまでに、S番目の音声伝送フレームの全体を受信する。
この音声伝送フレームの循環にかかる上限時間は、周期更新量kより変化させることができる。従って、マスタノードは、タイムリミット内に循環できない場合、周期更新量kを増加させて上限時間を長くする。上の例であれば、音声伝送フレームが周期更新量「2」に対応した所定の上限時間「2サンプリング周期より所定時間αだけ短い時間」内に受信完了できなければ、周期更新量kの上限が「2」でないことを条件として、周期更新量kは「1」だけ増加されて「3」となり、対応する所定の上限時間は「3サンプリング周期より所定時間αだけ短い時間」となる。ここで、所定の上限時間は、
(所定の上限時間)=(サンプリング周期)×(周期更新量k)−(所定時間α)
の式で算出される。
逆に見れば、周期更新量の値がkとされたとき、S番目の音声伝送フレームは、(サンプリング周期)×k−αの時間内にマスタノードが受信完了していることになる。そこで、この実施形態のマスタノードでは、S番目の音声伝送フレームに基づいて、S+k番目の音声伝送フレームを生成するようにした。図18は周期更新量が「2」の場合のタイミング例であり、また、符号Xで示すのは、その生成の処理に要する時間αである。
この場合、送信バッファに格納してあるS番目の音声伝送フレームの送信と、受信したS−1番目の音声伝送フレームの受信バッファへの格納とを並行して行っている。フレームバッファ16において、受信バッファは、現在の送信バッファの次のバッファとするとよい。また、マスタノードが音声伝送フレームから読み取るべきデータは、受信バッファへの格納の際に読み取ってもよいし、格納してから読み取ってもよい。そして、S−1番目の音声伝送フレームの受信が完了した時点で、受信した音声伝送フレームのエラーチェックを行い、異常がなければその受信バッファを次の送信バッファとして指定するとともに、現在の送信バッファの次のバッファを次の受信バッファとして指定する。そして、次の送信バッファに格納されているS番目の音声伝送フレームを加工してS+2番目の音声伝送フレームの生成する。
さらに、間もなくS番目の音声伝送フレームも戻ってくるので、準備されている次のバッファを受信バッファに変更して、受信したS番目の音声伝送フレームの格納を開始する。続いて、S番目のフレームバッファの送信が完了した時点で、送信バッファを開放する。
そして、次のワードクロックの開始タイミングで、準備されている次のバッファを送信バッファに変更するとともに、そこに格納されているS+1番目の音声伝送フレームの送信を開始し、その後、S番目の音声伝送フレームの受信が完了した時点で、受信した音声伝送フレームのエラーチェックを行い、異常がなければその音声伝送フレームを格納した受信バッファを次の送信バッファとして指定するとともに、現在の送信バッファの次のバッファを次の受信バッファとして指定する。そして、次の送信バッファに格納されているS番目の音声伝送フレームを加工してS+2番目の音声伝送フレームを生成する。
以上の手順を繰り返すことにより、常に、全体が正常であると判断できた音声伝送フレームに基づいて、新たな音声伝送フレームを生成することができる。
なお、1番目と2番目の音声伝送フレームについては、基になる音声伝送フレームがないため、所定の雛形に基づいて生成するようにするとよい。
また、フレームバッファ内で音声伝送フレームを加工する代わりに、スレーブノードの場合と同様に、出力時に、フレームバッファから音声伝送フレームを読み出し、その読み出された音声伝送フレームのヘッダ及び内容を波形出力用FIFO及び制御出力用FIFOからのデータ等により差し替えつつ出力するようにしてもよい。この場合、送信バッファに保存されているのが受信したままの音声伝送フレームである点が異なるが、必要とされるバッファ数は同じく(k+1)個である。
また、各バッファの動作速度を倍にして、送信しながら受信できるように設計すれば、マスタノードに音声伝送フレームが戻ってくるタイミングで、その時点の「送信バッファ」を同時に「受信バッファ」として使うことができるので、バッファの数を 上述した実施例より1つ少ないk個とすることができる。
また、図19に、S番目以降の音声伝送フレームが正常に受信できなかった場合の、マスタノードにおける音声伝送フレームの送受信及び生成のタイミングを示す。ここで、正常に受信できなかった場合とは、音声伝送フレームが途中で切れていた場合や、受信は完了したものの、エラーチェックで異常と判別された場合である。
この場合、マスタノードが、正常でないS番目の音声伝送フレームに基づいてS+2番目の音声伝送フレームを生成すると、伝送される波形データが不連続となりノイズが発生するおそれがある。そこで、正常に受信できなかったことを検出したマスタノードは、受信バッファの音声伝送フレームを破棄し、該バッファを次の受信バッファとして指定するとともに、その時点の送信バッファを次の送信バッファとして指定する。その時点で送信バッファはまだ送信中であり、新規の音声伝送フレームの生成はその送信完了を待ってから行う。すなわち、S番目の音声伝送フレームの送信完了時、マスタノードは、次の送信バッファに格納されているS+1番目の音声伝送フレーム(過去に正常に受信したS−1番目の音声伝送フレームのデータを含む)を加工してS+2番目の音声伝送フレームを生成する。
また、S+1番目の音声伝送フレームも正常に受信できなかった場合は、S+3番目の音声伝送フレームを生成する際にも、送信バッファを再度次の送信バッファとして指定し、S+2番目の音声伝送フレームの送信が完了後、格納されているS+2番目の音声伝送フレームに基づいてS+3番目の音声伝送フレームを生成する。以後も、音声伝送フレームが正常に受信できるまでは、同じバッファを送信バッファとして繰り返し使用し、その送信バッファに格納されている音声伝送フレーム(S−1番目の音声伝送フレームのデータを含む)に基づいて新たな音声伝送フレームの生成を行うことを続ける。
ここで、図20及び図21に、図18及び図19に示した周期更新量kが「2」の場合について、マスタノードが送受信する各音声伝送フレームに記載されるデータをそれぞれ示す。
既に述べた通り、音声伝送フレームの生成は、基にする音声伝送フレームに、ヘッダや管理データ及びマスタノードが送信するデータを書き込んで行い、それ以外のデータは、元のまま残しておく。また、音声伝送フレームには、伝送経路を1周する間に、各スレーブノードが送信するデータが書き込まれ、その状態でマスタノードに戻ってくる。
従って、図20に示すとおり、音声伝送フレームの送受信が正常に行われる場合には、例えばS+1番目の音声伝送フレームには、送信時には、マスタノードが書き込む部分のデータは、送信時点で最新の第S+1(サンプリング)周期のデータであるが、スレーブノードが書き込む部分のデータは、2サンプリング周期前の第S−1周期のものが残る。そして、マスタノードがこの音声伝送フレームを受信する時点では、全データが最新の第S+1周期のデータに書き換えられた状態となっている。
なお、送信時の音声伝送フレームの内容を時系列的に比較すると、スレーブノードが書き込む部分のデータと、マスタノードが書き込む部分のデータとで、2サンプリング周期分のずれがあるものの、どちらも1フレームにつき1サンプリング周期分ずつ進んでいくことがわかる。
一方、図21について同様の比較を行なうと、異常が続く限り、マスタノードが送信する音声伝送フレームにおいて、スレーブノードが書き込む部分のデータは同じものとなるが、マスタノードが書き込む部分のデータは、常に最新のものを書き込むことができる。
従って、例えば波形データについて考えると、各ノードが受け取る波形データは、音声伝送フレームに異常が発生したとしても、その時点の値をホールドしたものになるだけである。従って、この波形データを音声出力に用いたとしても、大きな異音は発生しない。なお、ホールドされた波形データの直流成分が後段の電力増幅器などで問題になる場合は、波形データの値をホールドする代わりに、音声伝送フレーム毎に徐々にゼロに近づけるように減衰すればよい。
なお、フレームバッファ16での音声伝送フレームの加工を行わず、フレームバッファ16から読み出した音声伝送フレームを加工しつつ出力するようにした場合、送信完了した送信バッファには受信した音声伝送フレームのデータがそのまま格納されている。図21からわかるように、例えばS+2番目の音声伝送フレームを生成する場合、送信中(又は送信済み)のS+1番目の音声伝送フレームに基づいて生成しても、その音声伝送フレームの元になったS−1番目の音声伝送フレームに基づいて生成しても、同じ加工により同じ内容の音声伝送フレームを生成することができる。すなわち、送信バッファから読み出されたS−1番目の音声伝送フレームの一部を、第S+2周期のデータで差し替えることにより、マスタノードから、図21の「S+2送信時」に示した内容の音声伝送フレームを出力することができる。
次に、マスタノードにおいて図18及び図19に示した動作を実現するための処理として、図22に、マスタノードがS番目の音声伝送フレームの受信完了を検出した場合に実行する処理のフローチャートを示す。この処理は、ネットワークI/Fカード215の制御回路41と第1のデータ入出力部10とが協同して実行するものである。
制御回路41及び第1のデータ入出力部10は、S番目の音声伝送フレームのフレームバッファ16への書き込み(受信)が完了したのを検出すると、図22に示す処理を開始する。そして、まず、受信完了した音声伝送フレームについて、音声伝送フレームの長さ、フレーム通し番号、エラーチェックコードなどによりエラー有無を検出する(S41)。ここでエラーがなければ(S42)、現在の受信バッファを次の送信バッファに、また、現在の送信バッファを次の受信バッファに指定する(S43)と共に、次の送信バッファ中の音声伝送フレームのヘッダ及び管理データを更新して、S+2番目の音声伝送フレームを生成する(S44)。
一方、ステップS42でエラーがあった場合には、現在の受信バッファを次の受信バッファに、また、現在の送信バッファを次の送信バッファに指定し(S45)、送信バッファの格納するS+1番目の音声伝送フレームの送信完了を待って(S46)、その音声伝送フレームのヘッダ及び管理データを更新して、S+2番目の音声伝送フレームを生成する(S47)。
これらのステップS44及びS47の処理において、制御回路41と第1のデータ入出力部10とが音声伝送フレーム生成手段として機能する。
そして、いずれの場合も、生成した音声伝送フレームに対し、マスタノードが他のノードに送信すべき種々のデータを書き込むと共に、エラーチェックコードを付す(S48,S49)。
その後、次のワードクロックタイミングまで待機し(S50)、生成した音声伝送フレームの第2の送信I/F32へ(セレクタ35が第2の送信I/F32を選択している場合)の出力を開始して(S51)、一連の処理を終了する。なお、音声伝送フレームのマスタノードからの送信は、第2の送信I/F32がここに示したものとは別の処理で行う。
ステップS51の処理において、第1のデータ入出力部10が送信制御手段として機能する。
以上の処理を行うことにより、マスタノードは、末尾まで正常に受信できたことが確認できている音声伝送フレームに基づいて新たな音声伝送フレームを生成することができるため、常に正しい音声伝送フレームを生成することができる。
また、S番目の音声伝送フレームを基にしてS+2番目の音声伝送フレームを生成するようにしているため、基にする音声伝送フレームが末尾まで正常に受信できたか否か確認してから、新たな音声伝送フレームの生成を開始することができる。
図18〜図22に関連して以上に説明した動作は、周期更新量kが「2」の場合のものであったが、周期更新量kが2より大きい値である場合には、「S番目の音声伝送フレームを基にしてS+k番目の音声伝送フレームを生成する」ことを正常時の基本動作として、周期更新量kが「2」の場合と同様の動作を行う。
すなわち、図18のタイミング図に相当する動作では、S番目の音声伝送フレームを正常に受信完了すると、マスタノードは、その音声伝送フレームに基づいてS+k番目の音声伝送フレームを生成し、S+k番目のワードクロックのタイミングで送信開始する。図19に相当する動作では、S番目の音声伝送フレームが正常に受信できなかったとき、マスタノードは、S+k−1番目の音声伝送フレームの送信完了を待って、その音声伝送フレームに含まれている「最後に正常受信された音声伝送フレームのデータ」に基づいてS+k番目の音声伝送フレームを生成し、S+k番目のワードクロックのタイミングで送信開始する。
また、図22の処理では、ステップS43において、正常受信したS番目の音声伝送フレームを格納するS番目の受信バッファをS+k番目のワードクロックのタイミングで送信開始すべきS+k番目の送信バッファとして指定するとともに、そのバッファの次のバッファを次(S+1番目)の受信バッファとして指定し、ステップS44において、S+k番目の送信バッファに格納されたS番目の音声伝送フレームを加工してS+k番目の音声伝送フレームを生成する。
また、ステップS45において、正常に受信できなかった音声伝送フレームを格納するS番目の受信バッファをS+1番目の受信バッファとして指定するとともに、S+k−1番目の送信バッファをS+k番目の送信バッファとして指定し、S+k−1番目の送信バッファの送信完了に応じて(S46)、ステップS47において、その時点でS+k番目の送信バッファに格納されているS+k−1番目の音声伝送フレームを加工してS+k番目の音声伝送フレームを生成する。
周期更新量kを大きくすることにより、オーディオネットワークシステムにおける音声伝送フレーム循環の上限時間を大きくすることができ、その分だけノード間の距離を長くしたり、システムに組み入れるノード数を増やしたりすることができる。しかしながら、周期更新量kを大きくした分だけ、オーディオネットワークにおける音響信号の伝達遅延が大きくなるというトレードオフがある。
3.2 音声伝送フレームの生成の変形例
なお、音声伝送フレームを正常に受信できなかった場合の対応としては、予め修復用の雛形を用意しておき、マスタノードがある音声伝送フレームを正常に受信できなかった場合に、その音声伝送フレームに基づいて生成する予定だった音声伝送フレームを、上記の雛形に基づいて生成するようにすることも考えられる。
図23及び図24は、このようにした場合の処理タイミング及び音声伝送フレーム中のデータの内容を示す、図19及び図21と対応する図である。
このような手法を採用すれば、ある時点の送信バッファを、その次の送信バッファとする必要がないため、マスタノードにおける複数バッファの管理が単純になる。
また、図24からわかるように、雛形から音声伝送フレームを生成した場合、スレーブノードがデータを書き込む部分には、雛形のデータがそのまま残った状態となる。そこで、雛形を、音声伝送フレームの全バイトを「&HFF」(&Hは16進数を示す)のようにしておき、さらに、雛形に由来することを示すデータERを管理データ領域に書き込んでおけば、スレーブノードにおいて、管理データから受信した音声伝送フレームが雛形由来のものであるか否か判別でき、さらに、雛形由来である場合に、波形データやレベルデータが全バイト&HFFか否か(全バイト&HFFの波形データは&HFFFFFFFFとなる)で、波形データやレベルデータが雛形か否かをch毎に判別し、必要に応じて適切な対処を行わせることができる。
図25に、雛形を用いる場合の、図22と対応する処理のフローチャートを示す。
この図において図22と同じ番号のステップの処理の内容は、図22の場合と同じであるので、相違点についてのみ説明する。
まず、図25に示す処理においては、S番目の音声伝送フレームが正常に受信できたか否かに関わらず、受信バッファを次の送信バッファに、また、送信バッファを次の受信バッファに指定する(S43)と共に、次の送信バッファ中の音声伝送フレームのヘッダ及び管理データを更新して、S+2番目の音声伝送フレームを生成する(S44)。そして正常に受信できていた場合は(SA)、S+2番目の音声伝送フレームに、エラーフラグERの値として、エラーがなかったことを示す「0」を記載する(SB)。
また、正常に受信できなかった場合には(SA)、次の送信バッファ中のS+2番目の音声伝送フレームの波形データ及び制御データの各領域の全バイトに&HFFを設定する(SC)。フレームバッファには、これらの領域の全ビットを1にセットするための専用回路が設けられており、1ないし数動作クロックで設定することができる。そして、S+2番目の音声伝送フレームに、エラーフラグERの値として、エラーがあったことを示す「1」を記載する(SD)。
なお、エラーフラグERは、スレーブノード側で、受信した音声伝送フレームが、以前の音声伝送フレームに基づいて作成されたものか、雛形に基づいて作成されたものかを把握できるようにするためのデータであり、先頭に近い管理データ102の一部として記載することが好ましい。また、上述のように、雛形の内容自体から音声伝送フレームの由来が把握できるのであれば、記載しなくてもよい。
3.3 スレーブノードにおけるデータの利用
図4及び図6等を用いて説明したように、オーディオネットワークシステム中で音声伝送モードで動作中の各ノードにおいては、音声伝送フレームから自機が使用するデータを読み出し、他の装置に送信すべきデータを音声伝送フレームに書き込む。
しかしながら、この実施形態のオーディオネットワークシステムにおいて、各ノードは、マスタノードが送出した音声伝送フレームが伝送経路を1周する間に順次データを書き込んで更新していく。従って、同じ通し番号の音声伝送フレームでも、伝送経路のどの位置でデータを読み出すかに応じて、内容が異なることになる。具体的には、例えばS番目の音声伝送フレームには、自機に到達する前に伝送経路の上流で既にデータが更新されている場合に、第S周期のデータが記載されているとすると、自機より下流でデータが更新される場合には、第S−2周期のデータが記載されている(図20参照)。
このため、各ノードでは、波形入力用FIFO12に、読み出す波形データのch毎にFIFOメモリを用意し、音声伝送フレームに上流で書き込みを行うノードのデータを遅延させることにより、下流で書き込みを行うノードのデータと周期を揃えてオーディオバスI/F39に供給するようにしている。このFIFOメモリは、独立したメモリユニットとして設ける必要はなく、1つのメモリユニットをアクセスするためのFIFO数分の読み出しと書き込みのアドレスのセットを制御して、リングバッファとしての動作をさせることにより実現してもよい。
なお、マスタノードがS番目の音声伝送フレームを受信する際には、全て第S周期の波形データが書き込まれているはずであるから(図20参照)、マスタノードについてはこのような対応は必要ない。
図26に、上記のような読み出し時の遅延を考慮した、スレーブノードにおける音声伝送フレームからの波形データの読み出しの様子を示す。この図には、図12(d)に示すような、AからFまでの6つのノードにより構成されるシステムが周期更新量kが「2」の状態で動作しており、そのうちノードBがマスタノードである場合の、ノードEにおける波形データの読み出しを例として示している。
既に説明したように、音声伝送フレームのうち、波形データを記録する領域には、256ch分の波形データを記載可能であり、各ノードがどのchに波形データを書き込むかは、マスタノードによって割り当てられる。図26では、各ノードが波形データを書き込む領域を、そのノードの符号で示している。
また、この例の場合、図で右回りに音声伝送フレームを巡回させるとすると、音声伝送フレームの伝送経路でノードEより上流にあるのは、ノードB,C,Dである。そこで、音声伝送フレームがノードEに到達するまでに上流で波形データが最新のもの(第S周期のデータとする)に書き換えられる領域に、これを示すハッチングを付した。
一方、ノードEは、音声伝送フレームに記載された波形データのうち、自身が信号処理に使用するchの波形データを読み出してオーディオバスI/F39に供給する。そこで、そのch毎にFIFOメモリ(FIFO1in〜kin)を設け、音声伝送フレームから読み出した波形データをそこに書き込む。図26において、各FIFO中の「SD」は、1サンプル分の波形データを示し、カッコ内の3つの値は、先頭から順に、音声伝送フレームにデータを書き込んだノード、そのノードが何ch目のデータとして書き込みを行ったか、および何周期目のデータか、を示す値である。また、上側に記載したデータの方がFIFOメモリに後で書き込まれたデータである。
この図に示すように、同じS番目の音声伝送フレームから読み出したデータでも、FIFOに書き込まれるデータには、第S周期のデータと第S−2周期のデータとがある。書き込んだデータがどちらのデータであるかは、上述のように、そのデータが上流のノード由来か下流のノード由来かによって決まり、各ノードがそのどちらに該当するかは、トポロジーテーブルを参照すれば把握できる。
そこで、ノードEは、FIFOメモリに書き込んだデータをオーディオバスI/F39に供給する際に、上流のノード由来のデータを、下流のノード由来のデータよりも2サンプル周期だけ多く遅延させる。そして、このことにより、由来ノードによらず周期の揃った波形データを、ノードEのワードクロックのタイミングで、オーディオバスI/F39に供給することができる。
なお、音声伝送フレームが正常に届かなかった場合の処理を考慮すると、FIFOメモリでは少なくとも1サンプル周期の遅延を行い、前サンプル周期の波形データを保存しておかなければならない。
すなわち、この保存を行うことにより、受信した音声伝送フレームに含まれる音響信号を、その音声伝送フレームを末尾まで正常に受信できたことを確認してから、当該ノードで信号処理等を行っている他のカードに供給することができる。また、例えば音声伝送フレームが途中で切れてしまっている等、音声伝送フレームを末尾まで正常に受信できなかった場合には、その音声伝送フレームから読み出してFIFOメモリに書き込んだ波形データを破棄し、その異常なデータを他のカードに供給しないようにするといった対応も可能である。
また、このような場合に、FIFOメモリに残っている前周期の波形データをコピーして、破棄したデータに代えて信号処理に供するようにすれば、当面フラットな波形データを用いて信号処理を続行することができ、目立つノイズの発生を避けつつ信号処理を継続することができる。
なお、制御データについては、前周期のデータを再利用しても意味がないため、音声伝送フレームを末尾まで受信できなかった場合には、単に読み出したデータを破棄するのみとするのがよい。
また、存在情報については、既に述べたとおり、隣接ノードがデータを読み書きする能力があることを示す情報である。
次に、図27に、図26と対応する書き込み時の様子を示す。
この図に示すとおり、自身が出力する波形データについては、ch毎にタイミングがずれることはないため、S番目の音声伝送フレームには第S周期の波形データを書き込めばよい。音声伝送フレームへの書き込みタイミングを調整するため、書き込み先の音声伝送フレームを受信する前に、その音声伝送フレームを全てFIFOメモリに蓄積しておくとよいが、なるべく最新の波形データを書き込めるようにするため、遅延は1サンプル周期のみとするのが好ましい。
また、図27では、書き込み側にもch毎にFIFOメモリ(FIFO1out〜jout)を設けた例を示しているが、ch毎に遅延量を変える必要はないので、全chについて共通のFIFOを用いてもよい。
ところで、「3.2 音声伝送フレームの生成の変形例」で述べた通り、マスタノードにおいて音声伝送フレームの復元に雛形を利用する場合には、スレーブノードが音声伝送フレームを正常に受信できたとしても、そこに記載された波形データが適切なものでない場合が考えられる。すなわち、自ノードより上流で音声伝送フレームに波形データが書き込まれていない部分には、雛形のデータがそのまま残っており、これを信号処理に供すると、ノイズの原因になることが考えられる。そこで、音声伝送フレームを受信した場合に、雛形のデータが残っているか否かを識別し、残っている場合には、そのデータを信号処理に供しないようにすることが好ましい。
図28に、このためにデータ抽出部11、および制御回路41が実行する処理のフローチャートを示す。
図28に示す処理を採用する場合、スレーブノードにおいて、データ抽出部11のハードウェア及び制御回路41のCPUは、音声伝送フレームの受信を検出すると、その内容を波形入力用FIFO12に書き込むための処理としてその処理を開始する。なお、このフローチャートでは、制御データを制御入力用FIFO14に書き込むための処理については、図示を省略している。
そして、図28の処理においては、まず、データ抽出部11が、受信した音声伝送フレームのデータを所定バイト数取得する(S61)。そして、取得したデータが自ノードが読み出すべきchの波形データであれば(S62)、取得したデータを適当なFIFOメモリに書き込む(S63)。そして、音声伝送フレームの末尾まで処理が完了するまで、これらの処理を繰り返す(S64)。なお、ステップS62でNOであれば、FIFOメモリへの書き込みは行わずにステップS64に進む。
また、音声伝送フレームの末尾まで処理が完了すると、データ抽出部11は、音声伝送フレームのうち管理データ102の部分に記載されるフレーム通し番号、FCS105、及び音声伝送フレームのサイズ等を参照して、受信した音声伝送フレームのエラーチェックを行う(S65)。
そして、エラーがあった場合には(S66)、今回受信した音声伝送フレームに記載されていた波形データは正常な波形データではないと考えられるため、制御回路41にその旨を通知する。制御回路41は、これに応じて、波形入力用FIFO12の全FIFOメモリにつき、ステップS63で書き込んだ現周期のサンプルに、1つ前の周期のサンプルに所定の減衰率を乗じて減衰させたデータを上書きし(S68)、図28の処理を終了する。
また、ステップS66でエラーがなかった場合、データ抽出部11は、今回受信した音声伝送フレームにおけるエラーフラグERの値を判定する。そしてこれが「0」でなければ(S67)、今回受信した音声伝送フレームは雛形を利用して生成されたものであると考えられるため、制御回路41にその旨を通知する。制御回路41は、これに応じて、波形入力用FIFO12のうち、マスタノードから自ノードに至るまでに書き込みがなされたchの波形データを書き込んだFIFOメモリにつき、ステップS63で書き込んだ現周期のサンプルに、1つ前の周期のサンプルに所定の減衰率を乗じて減衰させたデータを上書きし(S69)、図28の処理を終了する。
なお、マスタノードから自ノードに至るまでに書き込みがなされたchか否かの判断は、トポロジーテーブルを参照し、波形データが自ノードより上流のノード由来か下流のノード由来かを判断して行うことができる。また、書き込まれている波形データの内容そのものから、雛形のデータ(例えばAll_F)が残っているか否かを判断するようにしてもよい。この場合において、エラーフラグERの「1」や雛形のデータは、異常通知データである。
また、ステップS67でエラーフラグERが「0」であれば、ステップS63で書き込んだ波形データは全て正常なものであると考えられるため、そのまま処理を終了する。
以上の処理において、ステップS68及びS69の処理では、制御回路41が補完手段として機能する。
そして、以上の処理を行うことにより、音声伝送フレームを正常に受信できなかったり、音声伝送フレームに雛形のデータが残っていたりした場合でも、これらに起因するノイズの発生を防止することができる。なお、ステップS68及びS69で1つ前の周期のサンプルを減衰させるのは、1つ前の周期のサンプルをそのまま上書きしてフラットな波形を発生させると、その波形を再生した場合に生じる直流電流がスピーカやアンプ等にダメージを与える可能性があり、これを防止するためである。
4.ワードクロックのタイミング調整について
既に述べた通り、オーディオネットワークシステム1においては、マスタノードがワードクロックを生成し、そのワードクロックによって音声伝送フレームの送信タイミングを規定している。また、スレーブノードは、音声伝送フレームの受信タイミングを基準としてワードクロックを生成することにより、マスタノードと同じ周期のワードクロックを得られるようにしている。
しかし、この方式だと、各ノード毎に得られるワードクロックの位相が異なるし、ノードの追加や接続の切断等によりオーディオネットワークシステム1の構成が変化した場合には、各ノードにおける音声伝送フレームの受信タイミングがずれ、このことによりワードクロックがゆらいでしまう。
そこで、オーディオネットワークシステム1においては、各ノードにおいてワードクロックの位相を揃え、また、システムの構成が変化してもクロックがゆらがないよう、ワードクロックのタイミングを調整する機能を設けている。
ここで、図29に、オーディオネットワークシステムを構成する各ノードにおける音声伝送フレームの先頭の到達タイミングを示す。(a)は、AからFまでの6つのノードにより構成され、そのうちノードBがマスタノードである場合の例、(b)は、そのうちノードEとノードFの間に断線が生じ、AからDまでの4つのノードにより構成されるシステムに変化した場合の例を示す。
この図に破線矢印で示すのが音声伝送フレームの到達タイミングであるが、この図から分かるように、音声伝送フレームは、両端のノードを除いては、時間差を置いて2回通過する。また、両端のノードについても、時間差(ほぼ)ゼロで2回通過すると考えることができる。このうち、スレーブノードが1回目に音声伝送フレームを受信する時刻を第1受信時刻Tr1とし、2回目に音声伝送フレームを受信する時刻を第2受信時刻Tr2とする。両端のノードについては、Tr1=Tr2と考えることができる。
また、この図において、Dはノード間の音声伝送フレームの伝送に要する時間を示し、例えばDabはノードAとノードBの間の時間、Dbcが同じくノードBとノードCの間の時間を示す。そして、この伝送時間は、どちら向きに伝送を行う場合でも同じである。
また、前方遅延Dfwは、マスタノードが音声伝送フレームを送信時刻Tsに送信してから、1度目に音声伝送フレームがマスタノードに戻ってくるまでの時間である。後方遅延Dbwは、1度目に音声伝送フレームがマスタノードに戻ってきてから2度目に音声伝送フレームがマスタノードに戻ってくるまでの時間である。従って、Dfw+Dbwが、音声伝送フレームに伝送経路を1周させるのに要する総遅延Drtである。なお、マスタノードがオーディオネットワークシステム1の端部にある場合には、DfwとDbwのうち一方(ノードが接続されていない側の遅延)がゼロになる場合もある。
オーディオネットワークシステム1においては、以上のような音声伝送フレームの伝送が行われることを前提として、全ノードで目標遅延Dtに応じた制御を行うことにより、信号処理に使用するワードクロックのタイミングを、目標時刻Ttに合わせるようにしている。
このようなワードクロックのタイミング調整は、ネットワークI/Fカード215のワードクロック生成部42が行う。
図30及び図31に、このワードクロック生成部42の構成を示す。図30はマスタノード、図31はスレーブノードにおける構成である。
まず、図30に示すように、マスタノードにおいては、PLL(Phase Locked Loop)発振器302により、オーディオバス217の基準タイミングに基づいて、波形データのサンプリング周波数と同じ周波数の音声伝送フレーム転送用ワードクロック(WC)を生成し、送信時刻Tsを示す信号として、送受信I/F301の中の各サンプリング周期の音声伝送フレームを最初に送信する送信I/Fに供給する。この送受信I/F301は、図6に示した第1,第2の送信・受信I/F31〜34を集合的に示したものである。
また、波形処理部320はオーディオバス217に接続された他のカードにおける信号処理部を示しており、その波形処理部320に供給されている信号処理用WCは、ネットワークI/Fカード215を含むそれら複数のカードに共通のワードクロックに対応する。
ここで、図面中のDt遅延部303(タイミング調整手段)は、音声伝送フレーム転送用WCと信号処理用WCとの間に、数1に示す遅延量Dtに対応するタイミング差があることを示す。この遅延量Dtは、システムを音声伝送モードに切り替えるのに先立って予め設定され、マスターノードからシステムの全ノードに伝達されたものである。この伝達は、例えば、遅延量Dtの設定を示すパラメータ設定フレームを送信(ブロードキャスト)すること、または、音声伝送フレームのIPパケット領域に記載することにより行うことができる。
Figure 2010045836
マスタノードにおけるワードクロック生成部42は、オーディオバス217の基準タイミングに基づいて信号処理用WCを生成するとともに、その信号処理用WCを(サンプリング周期−遅延量Dt)だけ遅延させることにより、遅延量Dtだけ前のタイミングの音声伝送フレーム転送用WCを生成する(ただし、サンプリング周期はサンプリング周波数の逆数)。
遅延時間計測部304は、送受信I/F301における音声伝送フレームの送受信タイミングに基づいて前方遅延Dfwと後方遅延Dbwを計測する第1の計測手段である。またこの遅延時間の情報は、各サンプリング周期の音声伝送フレームのネットワーク構成データ領域に記載して、システム内の他のノードに通知される。
ここで、図18を用いて説明した通り、マスタノードは、受信したS番目の音声伝送フレームに基づいてS+2番目の音声伝送フレームを生成する。しかし、遅延時間の情報については、音声伝送フレームの先頭を基準に計測すれば、S+2番目の音声伝送フレームの送信開始前にS+1番目の音声伝送フレームの遅延時間の情報を取得できるはずであるから、該遅延時間の情報を送信待機中のS+2番目の音声伝送フレームに書き込んで送信するようにするとよい。このようにすれば、スレーブノードに速やかに遅延時間の情報を伝達し、ワードクロックのゆらぎを低減することができる。
次に、図31に示すように、スレーブノードにおいては、基本的には、送受信I/F311で検出した、音声伝送フレームの受信時に発生するタイミング信号を、PLL発振器314に入力して周期を安定させ、信号処理用WCを生成する。そしてこのとき、Dx遅延部313により、受信タイミング信号をフレームに記載された遅延時間の情報に応じた量だけ遅延することにより、オーディオネットワークシステムのノード数が増減して当該スレーブノードにおける音声伝送フレームの受信タイミングが変化したとしても、タイミング信号のPLL発振器314への供給タイミング(目標時刻Tt)が変化しないようになっている。このDx遅延部313がタイミング調整手段である。
このときの遅延量Dxは、Dx演算部312において、音声伝送フレームが伝送経路を1周する間の2回の受信時刻Tr1とTr2を計測し、これらの値と共に、音声伝送フレームから読み出した前方遅延Dfwと後方遅延Dbw、およびマスタノードから予め通知されている調整遅延Dadjを用いて、数2又は数3を用いて求めることができる。調整遅延Dadjは、数4により求めることができる。このDx演算部312は、第2の計測手段の機能を有する。
Figure 2010045836
Figure 2010045836
Figure 2010045836
なお、数2及び数3において、前方側ノードとは、音声伝送フレームがマスタノードから送信されてから1回目にマスタノードに戻るまでに通るノード、後方側ノードとは、その後2回目にマスタノードに戻るまでに通るノードである。また、遅延の基準としてDx遅延部313に供給する信号は、時刻Tr1で発生するタイミング信号でもよいし、時刻Tr2で発生するタイミング信号でもよいが、以下では後者を用いた場合について説明する。
ここで、図32及び図33に、Dx演算部312が実行する処理のフローチャートを示す。
図32は、音声伝送フレームの1度目の受信イベントをトリガに実行する処理であり、この場合、第1受信時刻Tr1に現在時刻を設定し(S71)、受信した音声伝送フレームからDfw及びDbwを読み取って(S72)、処理を終了する。
図33は、音声伝送フレームの2度目の受信イベントをトリガに実行する処理であり、この処理がトリガされるのと同じタイミングで、タイミング信号がDx遅延部313に供給される。この処理では、まず、第2受信時刻Tr2に現在時刻を設定し(S81)、受信した音声伝送フレームからDfw及びDbwを読み取る(S82)。そして、その値がステップS72で読み取った値と一致していれば(S83)、数3の上段の式を用いて遅延量Dxを算出してDx遅延部313に設定して(S84)処理を終了する。また、ステップS83で一致していなければ、エラー処理を行って(S85)処理を終了する。
これらの処理は、制御回路41に行わせてもよい。
なお、Dx遅延部313に供給されたタイミング信号は、設定された遅延量Dxだけ遅延されて、時刻TtのタイミングでDx遅延部313からPLL発振器314に供給される。PLL発振器314は、サンプリング周期毎にDx遅延部313から供給されるタイミング信号を参照信号として、そのタイミング信号とほぼ同じ周波数で、より安定しており、位相もほぼ同じであるような信号処理用ワードクロック(WC)を生成する。
このようにして、マスタノードとスレーブノードの何れにおいても、目標時刻Ttとほぼ同じタイミングで信号処理用WCが発生する。また、上述したように、スレーブノードでは、ネットワークI/Fカード215がオーディオバス217のマスタであるので、カードI/Oの他のカードは、それぞれ、この信号処理用ワードクロックに同期したワードクロックを発生している。
以上のタイミング調整は、信号処理の実行中にノードが除外されたり追加されたりして、システムの構成が変化した場合にも、同じように行う。この場合、Dfw,Dbw,Tr1,Tr2といった個々の値はシステムの構成に応じて変化するが、マスタノードが生成するワードクロックにゆらぎがなく、また目標遅延Dtが一定であれば、各スレーブノードにおいて、その時々の計測値を利用して遅延時間Dxの値の調整を行うことにより、全てのノードにおいて精度よく、マスタノードの音声伝送フレーム転送用WCをDtだけ遅延したタイミングのワードクロックを得ることができる。従って、Dfw,Dbw,Tr1,Tr2が大きく変化した場合でも、ワードクロックのゆらぎを抑えることができるし、各ノードにおけるワードクロックの位相を揃えることができる。
なお、システムを正常に動作させるには、目標遅延Dtは、常に総遅延Drtより大きくなければならない。例えば、遅延更新量kを「2」として動作できている場合、総遅延Drtは、変化したとしてもほぼ1サンプリング周期以下になるので、目標遅延Dtはそれよりやや大きな値とするとよい。
また、目標遅延Dtをちょうどワードクロックの1周期とすれば、マスタノードにおいて、Dt遅延部303による遅延前の信号と遅延後の信号とは、位相が同じであるので、遅延を行わなくても、遅延を行った場合と実質的に同じ信号を波形処理部320に供給できる。従ってこの場合、Dt遅延部303は省略可能である。
また、ここでは音声伝送フレームの先頭を基準にして送受信タイミングを計測するようにしたが、他の位置を基準としてもよい。ただし、先頭を基準にする方が、位置が明確であるし、処理も単純化できるため、好ましい。
また、Dx遅延部313に、音声伝送フレームの1度目の受信イベントのタイミング、すなわち時刻Tr1で発生するタイミング信号を供給するようにした場合は、ステップS84で数3の下段の式を用いて遅延量Dxを算出するようにすればよい。
5.変形例
以上で実施形態の説明を終了するが、装置の構成、データの構成、具体的な処理内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、1サンプリング周期に1つの音声伝送フレームを循環させることは必須ではなく、1サンプリング周期に複数の音声伝送フレームを循環させたり、複数サンプリング周期につき1つの音声伝送フレームを循環させ、そこに複数サンプリング周期分の波形データを記載することも考えられる。
また、上述の実施形態では、マスタノードとスレーブノードとで機能が異なるように説明を行なったが、どの装置がマスタノードになるかは、実際にオーディオネットワークシステムを形成するまでわからないことが多い。そこで、各装置は、マスタノードとスレーブの両方として機能できるように構成しておき、オーディオネットワークに接続されたノードの検出が完了し、マスタノードを決定してオーディオネットワークシステムを構築する段階で、自身がマスタノードになったか否かに応じて適切な機能を有効にするようにするとよい。また、このような対応を採る場合でも、マスタ優先度が0である等、マスタノードになることがないと思われる装置については、マスタノードの機能を設けなくてもよい。
また、音声伝送フレームの構成について、波形データと制御データの領域の比率を変更してもよいことは、もちろんである。いずれかの領域のサイズを0にしてもよい。
それ以外にも、上述の実施形態では、周期更新量kを可変値としていたが、固定値であってもよい。その場合、その周期更新量kに対応する上限時間も固定値となり、システムに追加できるノードの数はその上限時間により制限される。
音声伝送フレームを含む各種フレームはIEEE802.3の形式に限らず、他の任意の形式であってよい。
上述の実施形態では、サンプリング周波数は96kHzであったが、88.2kHz、192kHz等任意の周波数で設計することができる。また、サンプリング周波数を切り換えられるようにしてもよい。
上述の実施形態では、オーディオネットワークシステム1に組み入れる前の音響信号処理装置2において、セレクタ35〜38が折り返しライン側を選択するようになっていたが、まだ音声伝送フレームの伝送経路に組み入れられていない装置に対してその設定を行うことは必須ではない。その設定は、その装置が音声伝送フレームの伝送経路に組み入れられる時点までの任意の時点で行えばよい。
上述の実施形態では、オーディオネットワーク中に新たな装置が検出されたことに応じて、その検出された装置をオーディオネットワークシステムに自動的に組み入れるようになっていたが、新たな装置の存在が検出された時点で、表示器に「新たな装置が検出されました。システムに組み入れますか?」等の確認の表示を行い、ユーザの指示が「組み入れる」である場合に組み入れを行うようにしてもよい。
上述の実施形態では、オーディオネットワークの各ノードのマスタ優先度に応じて、1つのノードを自動的に選択してマスタノードとして設定するようになっていたが、ユーザが指定した1のノードをマスタノードとして設定するようにしてもよい。
また、これらの変形及び実施形態の説明において述べた変形は、矛盾しない範囲で任意に組み合わせて適用可能である。また逆に、ネットワークシステム及び音響信号処理装置が実施形態の説明において述べた特徴を全て有している必要もない。
以上の説明から明らかなように、この発明のネットワークシステム及び音響信号処理装置によれば、複数の装置の間で音響信号を伝送する場合に、ネットワーク内に一定のch数分の波形データの伝送帯域を容易に確保することができるようにしながら、ワードクロックのタイミングも、波形データと同じ伝送経路を用いて安定性よく伝送できるようにすることができる。
従って、この発明を適用することにより、ネットワークシステムの利便性を向上させることができる。
1…オーディオネットワークシステム、2…音響信号処理装置、10…第1のデータ入出力部、11,21…データ抽出部、12,22…波形入力用FIFO、13,23…波形出力用FIFO、14,24…制御入力用FIFO、15,25…制御出力用FIFO、16,26…フレームバッファ、31,33…第1,第2の受信I/F、32,34…第2,第1の送信I/F、35〜38…セレクタ、39…オーディオバスI/O、40…制御バスI/O、41…制御回路、42…ワードクロック生成部、100…音声伝送フレーム、201…CPU、202…フラッシュメモリ、203…RAM、204…外部機器I/F、205…表示器、206…操作子、207…システムバス、210…カードI/O、211,212…DSPカード、213…アナログ入力カード、214…アナログ出力カード、215…ネットワークI/Fカード、216…その他カード、217…オーディオバス、218…制御バス、NC1〜NC4…ネットワーククロック、TL1,TL2…折り返しライン

Claims (6)

  1. それぞれ単方向の通信を行う受信手段及び送信手段を2組備えた複数のノードを、あるノードの1組の受信手段及び送信手段を別のノードの1組の送信手段及び受信手段とそれぞれ通信ケーブルで接続することによりカスケード接続し、カスケード接続された一連の複数ノードのうちの一部又は全部のノードで構成されるネットワークシステムであって、
    当該ネットワークシステムを構成するノードのうち両端のノードでフレームの伝送を折り返し、他のノードでは前記フレームの伝送を折り返さないことにより、当該ネットワークシステムを構成する各ノード間でループ状の伝送経路を形成し、
    マスタノードが生成する、音響信号のデータを含む音声伝送フレームを、各ノードを2回ずつ通る前記ループ状の伝送経路に一定周期で循環させ、各ノードが、該循環する音声伝送フレームへ音響信号の書き込み及び/又は読み出しを行うことにより、当該ネットワークシステムの任意のノード間で音響信号の伝送が行われており、
    前記マスタノードに、
    一定周期の伝送用ワードクロックを発生する第1クロック発生手段と、
    第S周期の音声伝送フレームを生成し、その音声伝送フレームを対応する第S周期の伝送用ワードクロックの発生に同期して前記送信手段に供給し、伝送経路に送信させる音声伝送フレーム生成手段と、
    前記音声伝送フレームを送信してから該音声伝送フレームが前記伝送経路を通って自身に戻ってくるのにかかる時間を計測する第1の計測手段と、
    前記第1の計測手段が計測した時間を示す伝送時間の情報を各音声伝送フレームに書き込む書込手段と、
    前記伝送用ワードクロックを所定の目標遅延時間だけ遅延させたクロックに相当する、信号処理用ワードクロックを発生する第2クロック発生手段と、
    該信号処理用ワードクロックに同期して、前記音響信号の信号処理を行う信号処理手段とを設け、
    前記マスタノード以外の各ノードに、
    前記音声伝送フレームが前記伝送経路を1周する間の2回の受信時刻をそれぞれ検出する第2の計測手段と、
    受信した音声伝送フレームから前記伝送時間の情報を読み出す読出手段と、
    前記所定の目標遅延時間、前記第2の計測手段が検出した各受信時刻、及び前記読出手段が読み出した伝送時間の情報に基づくタイミングで、信号処理用ワードクロックを発生するクロック発生手段と、
    該信号処理用ワードクロックに同期して、前記音響信号の信号処理を行う信号処理手段とを設け、
    当該ネットワークシステムの各ノードで生成される信号処理用ワードクロックの発生タイミングは、前記伝送用ワードクロックを前記所定の目標遅延時間だけ遅延させたタイミングに一致することを特徴とするネットワークシステム。
  2. 請求項1記載のネットワークシステムであって、
    当該ネットワークシステムを構成するノードが変化し、それにより前記伝送経路が変化した場合であっても、前記目標遅延時間を変動させないことを特徴とするネットワークシステム。
  3. 請求項1又は2に記載のネットワークシステムであって、
    前記マスタノードにおいて、前記第1の計測手段が、前記音声伝送フレームに前記伝送経路を1周させる間に、該音声伝送フレームを1度目に送信してから1度目に受信するまでの時間と、2度目に送信してから2度目に受信するまでの時間とを、区別して計測することを特徴とするネットワークシステム。
  4. それぞれ単方向の通信を行う受信手段及び送信手段を2組備えた複数のノードを、あるノードの1組の受信手段及び送信手段を別のノードの1組の送信手段及び受信手段とそれぞれ通信ケーブルで接続することによりカスケード接続し、カスケード接続された一連の複数ノードのうちの一部又は全部のノードで構成されるネットワークシステムに1つのノードとして組み込み可能な音響信号処理装置であって、
    前記ネットワークシステムは、該ネットワークシステムを構成するノードのうち両端のノードでフレームの伝送を折り返し、他のノードでは前記フレームの伝送を折り返さないことにより、該ネットワークシステムを構成する各ノード間でループ状の伝送経路を形成し、マスタノードが生成する、音響信号のデータを含む音声伝送フレームを、各ノードを2回ずつ通る前記ループ状の伝送経路に一定周期で循環させ、各ノードが、該循環する音声伝送フレームへ音響信号の書き込み及び/又は読み出しを行うことにより、該ネットワークシステムの任意のノード間で音響信号の伝送が行われるものであり、
    当該音響処理装置は前記マスタノードとして動作可能であり、
    一定周期の伝送用ワードクロックを発生する第1クロック発生手段と、
    第S周期の音声伝送フレームを生成し、その音声伝送フレームを対応する第S周期の伝送用ワードクロックの発生に同期して前記送信手段に供給し、伝送経路に送信させる音声伝送フレーム生成手段と、
    前記音声伝送フレームを送信してから該音声伝送フレームが前記伝送経路を通って自身に戻ってくるのにかかる時間を計測する計測手段と、
    前記計測手段が計測した時間を示す伝送時間の情報を各音声伝送フレームに書き込む書込手段と、
    前記伝送用ワードクロックを、前記ネットワークシステムのノード間で共有されている所定の目標遅延時間だけ遅延させたクロックに相当する、信号処理用ワードクロックを発生する第2クロック発生手段と、
    該信号処理用ワードクロックに同期して、前記音響信号の信号処理を行う信号処理手段とを設けたことを特徴とする音響信号処理装置。
  5. 請求項4に記載の音響信号処理装置であって、
    前記計測手段が、前記音声伝送フレームに前記伝送経路を1周させる間に、該音声伝送フレームを1度目に送信してから1度目に受信するまでの時間と、2度目に送信してから2度目に受信するまでの時間とを、区別して計測することを特徴とする音響信号処理装置。
  6. それぞれ単方向の通信を行う受信手段及び送信手段を2組備えた複数のノードを、あるノードの1組の受信手段及び送信手段を別のノードの1組の送信手段及び受信手段とそれぞれ通信ケーブルで接続することによりカスケード接続し、カスケード接続された一連の複数ノードのうちの一部又は全部のノードで構成されるネットワークシステムに1つのノードとして組み込み可能な音響信号処理装置であって、
    前記ネットワークシステムは、該ネットワークシステムを構成するノードのうち両端のノードでフレームの伝送を折り返し、他のノードでは前記フレームの伝送を折り返さないことにより、該ネットワークシステムを構成する各ノード間でループ状の伝送経路を形成し、マスタノードが生成する、音響信号のデータを含む音声伝送フレームを、各ノードを2回ずつ通る前記ループ状の伝送経路に一定周期で循環させ、各ノードが、該循環する音声伝送フレームへ音響信号の書き込み及び/又は読み出しを行うことにより、該ネットワークシステムの任意のノード間で音響信号の伝送が行われるものであり、
    当該音響処理装置は前記マスタノード以外のノードとして動作可能であり、
    前記音声伝送フレームが前記伝送経路を1周する間の2回の受信時刻をそれぞれ検出する計測手段と、
    受信した音声伝送フレームから、前記マスタノードが、自身が前記音声伝送フレームを送信してから該音声伝送フレームが前記伝送経路を通って自身に戻ってくるのにかかる時間を計測して書き込んだ、伝送時間の情報を読み出す読出手段と、
    前記ネットワークシステムのノード間で共有されている所定の目標遅延時間、前記計測手段が検出した各受信時刻、及び前記読出手段が読み出した伝送時間の情報に基づくタイミングで、信号処理用ワードクロックを発生するクロック発生手段と、
    該信号処理用ワードクロックに同期して、前記音響信号の信号処理を行う信号処理手段とを設けたことを特徴とする音響信号処理装置。
JP2009244673A 2009-10-23 2009-10-23 通信ノード Expired - Fee Related JP5045728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009244673A JP5045728B2 (ja) 2009-10-23 2009-10-23 通信ノード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009244673A JP5045728B2 (ja) 2009-10-23 2009-10-23 通信ノード

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006248371A Division JP5076413B2 (ja) 2006-09-13 2006-09-13 ネットワークシステム及び音響信号処理装置

Publications (2)

Publication Number Publication Date
JP2010045836A true JP2010045836A (ja) 2010-02-25
JP5045728B2 JP5045728B2 (ja) 2012-10-10

Family

ID=42016736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009244673A Expired - Fee Related JP5045728B2 (ja) 2009-10-23 2009-10-23 通信ノード

Country Status (1)

Country Link
JP (1) JP5045728B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013029296A (ja) * 2011-07-29 2013-02-07 T Rad Co Ltd ヘッダープレートレス熱交換器
WO2013179410A1 (ja) * 2012-05-30 2013-12-05 株式会社東芝 鉄道車両用伝送装置、鉄道車両、制御方法及び制御プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63310247A (ja) * 1987-06-12 1988-12-19 Nec Corp デ−タ送信バツフア制御装置
JPH0653994A (ja) * 1991-10-31 1994-02-25 Hitachi Ltd データ送信方式及び通信制御装置
JPH06268657A (ja) * 1993-03-12 1994-09-22 Hitachi Ltd データ通信システム
JPH0969848A (ja) * 1995-08-31 1997-03-11 Tokyo Electric Power Co Inc:The トークン・パッシング・バス方式ネットワークの信号同期方法
JPH11234415A (ja) * 1998-02-16 1999-08-27 Aiphone Co Ltd 共通線式インターホン装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63310247A (ja) * 1987-06-12 1988-12-19 Nec Corp デ−タ送信バツフア制御装置
JPH0653994A (ja) * 1991-10-31 1994-02-25 Hitachi Ltd データ送信方式及び通信制御装置
JPH06268657A (ja) * 1993-03-12 1994-09-22 Hitachi Ltd データ通信システム
JPH0969848A (ja) * 1995-08-31 1997-03-11 Tokyo Electric Power Co Inc:The トークン・パッシング・バス方式ネットワークの信号同期方法
JPH11234415A (ja) * 1998-02-16 1999-08-27 Aiphone Co Ltd 共通線式インターホン装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013029296A (ja) * 2011-07-29 2013-02-07 T Rad Co Ltd ヘッダープレートレス熱交換器
WO2013179410A1 (ja) * 2012-05-30 2013-12-05 株式会社東芝 鉄道車両用伝送装置、鉄道車両、制御方法及び制御プログラム
CN104094557A (zh) * 2012-05-30 2014-10-08 株式会社东芝 铁路车辆用传送装置、铁路车辆、控制方法以及控制程序
JPWO2013179410A1 (ja) * 2012-05-30 2016-01-14 株式会社東芝 鉄道車両用伝送装置、鉄道車両、制御方法及び制御プログラム

Also Published As

Publication number Publication date
JP5045728B2 (ja) 2012-10-10

Similar Documents

Publication Publication Date Title
JP4187028B2 (ja) ネットワークシステム及び音響信号処理装置
JP5076413B2 (ja) ネットワークシステム及び音響信号処理装置
JP4297184B2 (ja) ネットワークシステム
US8345674B2 (en) Network system and audio signal processor
JP4899568B2 (ja) ネットワークシステム及び音響信号処理装置
US8103369B2 (en) Network system and audio signal processor
US9166816B2 (en) Network system and audio signal processor
JP4341714B2 (ja) ネットワークシステム及び音響信号処理装置
JP5267060B2 (ja) 音響信号処理システム
US8675649B2 (en) Audio network system and method of detecting topology in audio signal transmitting system
JP5088078B2 (ja) ネットワークシステム及び通信装置
JP5141169B2 (ja) 音響信号処理装置及びネットワークシステム
JP5045728B2 (ja) 通信ノード
JP5476889B2 (ja) ネットワークシステム
JP5012382B2 (ja) 音響信号処理装置及びネットワークシステム
JP5304165B2 (ja) ネットワークシステム及び音響信号処理装置
JP2010098475A (ja) ネットワークシステム及び音響信号処理装置
JP4900448B2 (ja) ネットワークシステム及び音響信号処理装置
JP5239726B2 (ja) ネットワークシステム及び音響信号処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120123

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120522

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

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

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees