JP2009513042A - 自動プラグ検出のためのシステムおよび方法 - Google Patents
自動プラグ検出のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2009513042A JP2009513042A JP2008534682A JP2008534682A JP2009513042A JP 2009513042 A JP2009513042 A JP 2009513042A JP 2008534682 A JP2008534682 A JP 2008534682A JP 2008534682 A JP2008534682 A JP 2008534682A JP 2009513042 A JP2009513042 A JP 2009513042A
- Authority
- JP
- Japan
- Prior art keywords
- plug
- data
- master
- control
- port
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40117—Interconnection of audio or video/imaging devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/411—Peripherals receiving signals from specially adapted client devices having similar hardware or software capabilities as the client device itself, e.g. a first STB connected to a second STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Circuits Of Receivers In General (AREA)
- Small-Scale Networks (AREA)
- Headphones And Earphones (AREA)
- Stereophonic Arrangements (AREA)
Abstract
【解決手段】 自動プラグ検出を実施する方法およびシステムを開示している。オーディオジャックにプラグが挿入されると、当該プラグを検出することができる。検出は、電源投入時またはプラグ挿入時に起こる。プラグが検出されると、当該プラグがステレオプラグまたはモノプラグのいずれかについて決定可能である。前記プラグがモノプラグであると決定された場合は、左音声チャネルなどの第1の音声チャネルを実質的に使って、音声情報を送信できる。これに対し、前記プラグがステレオプラグであると決定された場合は、前記第1の音声チャネルと、右音声チャネルなどの第2の音声チャネルとを使って、音声情報を送信することができる。
【選択図】 図6
【選択図】 図6
Description
本願は、2005年10月18日付けで出願されたMetcalfらの係属中米国特許出願第11/252,577号「データを配信するためのパケットベースのシステムおよび方法(Packet−Based Systems and Methods for Distributing Data)」の優先権を主張する継続出願であり、また2005年10月6日付けで出願済された係属中米国仮出願第60/724,307号「A−Net G2設計仕様(A−Net G2 Design Specification)」の優先権を主張するものであり、これらの出願はそれぞれの参照によりその全体が本明細書に組み込まれるものである。
種々の音声およびビデオシステム製造業者は、ネットワーク内の種々の位置でデジタル音声を挿入および抽出できる音声および/またはビデオ装置のマルチチャネルネットワーキングシステムの提供を試行してきている。通常、このようなシステムは、標準Ethernet(登録商標)(イーサネット(登録商標))交換パケットネットワークにおいて、データとしてルーティングされるデジタル音声を有する。このようなアプローチは容易に利用できる構成要素を活用したものだが、リアルタイムストリーミングメディアについては、いくつかの理由で十分な性能を発揮できない。
例えば、大半の交換パケットシステムは、全装置が中央の「サーバー」に接続されたスター型トポロジーを要する。このため各装置は、前記サーバーへのケーブル接続を別個に必要とする。複数の装置が互いに近接配置されていても前記サーバーから遠く離れている場合、ケーブルコストその他を考慮すると、上記の構成は最適と言いがたい。
また一部のケースでは、ネットワーキングシステム内の各位置において音声データを利用できることが好ましい。このため、入力装置からのデータフローが双方向であるシステムが開発されてきた。一部のケースでは、複数の装置が中央に位置した「ハブ」に接続されるスター型トポロジーを使用することが望ましい。従来の装置で音声データの双方向転送をサポートできるようにするには当該データのルーティングを非常に高位のアプリケーションレイヤーで扱わなければならないため、リアルタイム処理を行う状況にとっては望ましくない遅延あるいは待ち時間が付加的に生じてしまう。例えば、職業音楽家または高度に熟練した音楽家が音声処理における非常にわずかな遅延(わずか1ms程度)に気づくことはままあり、これが性能に問題をきたすおそれもある。より下位のレイヤーで双方向のデータ引き渡しをサポートする従来のシステムは、標準イーサネット(登録商標)スイッチに直面すると、単一方向に戻ってしまう。
双方向システムの別の利点は、装置が別の装置から見て「アップストリーム」にあるか「ダウンストリーム」にあるかを利用者が認識しなくともよい点にある。この場合、すべての装置はシステム内で等しく見なされる。
さらに、従来のイーサネット(登録商標)パケットは、1つのポートから別のポートへと連続した形態でしかルーティングできない。このようなパケットには、データパケットを更新するための送信中、付加的なポートから新しいデータを追加することができない。このように、既存のデジタルネットワーキングシステムは、イーサネット(登録商標)スイッチに直面して単一方向になるか、アプリケーションレイヤーでチャネルデータがマージされたのちネットワーキングシステムに再挿入されて著しい待ち時間が付加されるかのいずれかになる。
既存のデジタルシステムは、非常に狭い範囲のサンプルレートクロックをサポートするか、あるいはシステム同期専用のハードウェアクロック信号を必要とする。アナログ音声データが導入されても、デジタルへの変換がネットワーククロックと同期していれば、このソリューション(解決策)で十分である。ただし、デジタル音声データがシステムに導入されると、そのデータは、独立したネットワーククロックに対し非同期になってしまう。そのため、そのデータをサンプルレート変換し、ネットワーククロックに合致させなければならない。これは、(i)サンプルレート変換により信号に遅延が生じてしまう、(ii)サンプルレートコンバータを加えることでシステムに追加コストが生じてしまう、(iii)サンプルレートコンバータは、元のサンプル間に存在する新しいサンプルポイントを数学的に推定し望ましいタイミングに合うよう生音声データを変換しなければならない、という点で望ましくない。このため、特に専門的な音声用途の場合、サンプルレート変換により、入力された音声データに望ましくないカラーレーション(音色変化)が起こるおそれがある。
従来の専門音声システムには、異なる複数のサンプルレートでの動作が必要な場合がある。例えば、多くのシステムは48KHz、96KHz、および/または192KHzで動作する。しかし、音声CDは44.1KHzでマスタリングされる。そのため、48KHzだけで動作可能なシステムでは、音声CDからデジタルコンテンツを取得する際サンプルレートコンバータを使用しなければならない。さらに、撮影後のビデオ編集を実施するシステムでは(生フィルムをビデオに転送し、音声コンテンツを編集し、フィルムに転送して戻す)、元のコンテンツレートと最大+/−4%も異なる「SMPTEプルアップ」サンプルレートまたは「SMPTEプルダウン」サンプルレートを使用しなければならない(この差分は、フィルム(24フレーム/秒)およびビデオ(29.97フレーム/秒)のビデオフレームレートの違いに対応するために必要)。
また一部のシステムでは、送信されるパケットのレートに基づき音声サンプルクロックが生成される。このアプローチを使った場合にタイミング誤差が生じると、このような誤差が、ネットワーク内で直列接続された装置で蓄積されるおそれがあり、結果として、ジッターおよびワンダー(低周波数のジッター)がパケットレートに生じてしまう。ジッターおよびワンダーは音声サンプルレートにも起こり、デジタルネットワークシステムがサンプル「ロック」を失って音声データ損失につながるおそれがある。
業務用音声システムでは、一定範囲を緩慢に動く連続的可変デジタルクロックにシステムをスレーブさせることが必要な場合もある。記録された時間コードを含むテープデッキにシステムがスレーブする場合が、通常これに相当する。テープ再生は機械的な変動に左右されるため、サンプルレートは変動する可能性がある。
一般的なネットワーキングシステムは、電力で作動するスピーカーシステムをアリーナやスタジアム(競技場)の垂木から吊り下げる状況で使用される。このような状況では、DSPアルゴリズム(例えばクロスオーバー周波数、電気出力、種々のスピーカーコーン間の時間的整合性を決定するためのもの)を、パフォーマンス前にスピーカーにアップロードすることが必要になる場合もある。さらに、DSPパラメータのリアルタイム制御も必要になることがある。同時に、温度、インピーダンス、電気出力などの遠隔測定(テレメトリー)データをこれらの遠隔装置から動作中にダウンロードすることが望ましい場合も多い。この非音声データは、ネットワーキングシステム内の装置の1つ、それ以上、またはすべてにアドレス指定可能でなければならない。理想的には、この非音声データは、単にコマンドおよびステータス報告要件のための追加配線コストを避けるため、音声データと同じワイヤー上にあるべきである。
制御用にMIDI規格を使用する一部の既存音声装置では、非常に短かく制限した(50フィート以下)電気接続と、ポイントツーポイント接続(2地点間接続)とを使用する。現時点で複数の装置に同じMIDIストリームを受信させるには、専用MIDIスプリッタまたはデイジーチェーン接続した装置(最高2〜3装置までデータ完全性を損なわずにデイジーチェーン接続できる)が必要になる。
このため、いかなるトポロジーで構成された装置でも音声および/またはビデオのデータ転送をサポートするネットワーキングシステムが必要とされている。
双方向または並列に音声および/またはビデオのデータを送信するネットワーキングシステムも必要とされている。
複数の入力データを合わせるハブを使って音声および/またはビデオのデータを送信するネットワーキングシステムも必要とされている。
装置の接続がデータフローに依存しない態様で接続するネットワーキングシステムも必要とされている。
異なるデータストリームで着信した異なるパケットからのデータをマージし、マージ済みデータを最小限の待ち時間で新しいストリームとして出力するネットワーキングシステムも必要とされている。
サンプルレートコンバータを使うことなく、新しいデジタルメディアをネットワークに挿入する方法およびシステムも必要とされている。
各装置についてネットワークパケットレートからマスタークロック信号を導出するネットワーキングシステムも必要とされている。
広範囲のサンプルレートに対応した音声ネットワーキングシステムも必要とされている。
複数のネットワーク装置が直列接続されている場合にジッターを最小限に抑えるネットワーキングシステムも必要とされている。
可変サンプルレートを提供するマスタークロックを正確に追跡するネットワーキングシステムも必要とされている。
非音声/非ビデオデータの送信を可能にする音声および/またはビデオネットワーキングシステムも必要とされている。
さらに、性能制御データをルーティングできるネットワーキングシステムも必要とされている。
さらに、最長500フィートまで制御データをルーティングできる音声ネットワークに単一のMIDI装置を挿入できるようにするネットワーキングシステムも必要とされている。
さらに、ネットワーク上のいかなる装置からもMIDIデータを読み取れるようにするネットワーキングシステムも必要とされている。
本明細書で説明する特定の方法論、システム、または材料は場合により異なる可能性があるため、これらの方法、システム、および材料の説明を読む前に、これらに本開示が限定されるものではないことを理解すべきである。また言うまでもなく、本説明で使用する用語は、特定のバージョンまたは実施形態のみを説明することを目的としており、範囲を限定するよう意図したものではない。
また、本明細書および添付の請求項において単数形扱いしている名称は、別段の断りがない限り、複数形も含む。したがって、例えば「信号」と言及した場合は、当業者に知られている1若しくはそれ以上の信号およびそれと同等のものなどを指す。別段の定義がない限り、本明細書で使用するすべての科学技術用語は、当業者に一般に理解されているものと同じ意味を有する。本明細書で説明した方法、材料、および装置は、それらと同様または同等のものであれば、すべて本発明の実施形態の実施または試験に使用できるが、ここでは好適な方法、材料、および装置について説明していく。この明細書で言及するすべての出版物は、参照により本明細書に組み込むものとする。本明細書のいかなる内容も、本明細書で説明する実施形態が、先行発明に基づく前記出版物などの開示に先行する資格がないことを認めると解釈されるべきではない。
一実施形態では、自動プラグ検出を実施する方法に、オーディオジャックにプラグが挿入されたかどうかを検出する工程と、プラグが挿入された場合そのプラグがステレオプラグまたはモノプラグのいずれかを決定する工程とを含めることができる。この方法には、さらに、前記プラグがモノプラグであると決定された場合、実質的に第1の音声チャネルを使って音声情報を送信する工程を含めることができる。あるいは、当該方法には、さらに、前記プラグがステレオプラグであると決定された場合、前記第1の音声チャネルと、右音声チャネルなどの第2の音声チャネルとを使って音声情報を送信する工程を含めることができる。
一実施形態では、自動プラグ検出システムに、オーディオジャックと、前記オーディオジャックに接続されたプロセッサとを含めることができる。前記プロセッサは、前記オーディオジャックにプラグが挿入されたかどうかを決定し、前記挿入されたプラグがステレオプラグまたはモノプラグのいずれかを決定するよう構成可能である。
「チャネル」は、物理的な接続を指す場合がある。例えば、16チャネル音声入力装置は16の物理チャネルを有する。
各チャネルは「スロット」にマップできる。各スロットは、パケット内のある位置に対応する。すなわち、スロットは物理的要素ではない。
「シリアル配線」は、複数の非マージャ装置が直列接続された場合に形成できる。シリアル配線は、車輪のスポーク状に複数のマージャに接続でき、さらに/または2つのマージャ間でも接続できる。2つのマージャは、非マージャを間に介さず直接相互接続することもできる。
「非マージャ装置」または「非マージャ」とは、一実施形態に係るネットワーキングシステム内で使用される、2つのポートを有した装置を指す。この非マージャ装置は、データを受信または送信するための入出力物理接続を付加的に有することができる。一部のケースでは、ネットワーキングシステムにおける非マージャ装置の1つのポートは、シリアル配線の終端部などにおいて、別の装置に接続されない場合もある。非マージャ装置については、以下、より詳細に説明する。
「マージャ装置」または「マージャ」とは、一実施形態に係るネットワーキングシステム内で使用される、3若しくはそれ以上のポートを有した装置をいう。このマージャ装置は、データを受信または送信するための入出力物理接続を付加的に有することができる。マージャ装置については、以下、より詳細に説明する。
「ネットワーキングシステム」には、合計で2若しくはそれ以上のノードを有するマージャおよび非マージャの任意の組み合わせを含めることができる。
「着信データストリーム」とは、非マージャ装置またはマージャ装置の入力ポートで受信されるデータを指す。
「発信データストリーム」とは、非マージャ装置またはマージャ装置の発信ポートで送信されるデータを指す。
入力インターフェースから受信されるデータまたは出力インターフェースへ送信中のデータに関して使用する用語「変換」には、アナログデジタル変換、デジタルアナログ変換、特定長のデータセグメントへのデータのスライシング、および/またはより長いデータセグメントへのデータの連結(これらに限定されるものではないが)を含めることができる。
本明細書では、ネットワーキングシステムおよび例示的な構成要素、バスプロトコル、システム設定などを開示する。一実施形態では、このネットワーキングシステムを使って音声データおよび/またはビデオデータ(これに限定されるものではないが)を送信することができる。音声データは、アナログ形式および/またはデジタル形式で受信できる。ネットワーキングシステムでは、例えば最高64チャネルの24ビット音声データと、任意選択で最高16チャネルの8ビットシリアルデータを送信できる。代替実施形態では、最高128チャネルの24ビット音声データが転送可能である。代替チャネル幅および代替チャネル数も、本開示の範囲内で使用できる。
一実施形態では、前記ネットワーキングシステムに複数のノードを含めることができる。各ノードは、入力インターフェースからデータを受信し、出力インターフェースへデータを送信する。受信データは、前記入力インターフェースから受信された形式から変換され、そのデータの割り当て先である特定のチャネル用に定義された幅を有するデータスライスへと再構築される。このデータは、前記チャネルに対応し適切なデータ幅を有したパケットに含めてスロットに挿入することができる。
一実施形態において、ノードは、受信インターフェースにおいて着信パケットを受信し、送信インターフェースにおいて当該ノードに割り当てられたチャネルに関する情報を発信パケットに挿入することができる。一部のケースにおいて、前記発信パケットは、前記着信パケットと、前記ノードの入力インターフェース(ある場合)で受信されたデータに関する情報との組み合わせとなる。他のケースでは、前記ノードは、前記発信パケットの生成時、前記着信パケットの制御情報および/またはデータを上書きする。以下では、このようなケースについて詳細に説明する。
一実施形態では、特定の読み取り動作および書き込み動作の結果、すべての音声チャネルが、ネットワーキングシステムの全ノードで読み取り可能となる。一実施形態では、CAT−5ケーブルなど単一のケーブルで、全チャネル用のデータをノード間で転送できる。代替ケーブルも、本開示の範囲内で使用できる。
非マージャ
一実施形態において、ネットワーキングシステム内のノードは、図1に示した装置などの非マージャ装置である。非マージャは2つのポート105、110を有し、これらによりネットワーキングシステムに接続されている。非マージャは、そのポートのどちらか一方または双方用に発信パケットを生成するため、105などの第1のポートから受信した着信パケットに対し、入力インターフェース115からの受信データでの置換、および/またはその追加を行うことができる。一実施形態では、非マージャが複数の着信パケットを単一の発信パケットへと組み合わせることはない。非マージャは、着信パケットから受信したデータを、出力インターフェース120経由で送信できる。一実施形態において、前記出力インターフェース120を通過するデータは、1若しくはそれ以上のスロットから選択したものであってよい。一実施形態では、送信用データ元とする前記1若しくはそれ以上のスロットは、利用者が選択できる。
一実施形態において、ネットワーキングシステム内のノードは、図1に示した装置などの非マージャ装置である。非マージャは2つのポート105、110を有し、これらによりネットワーキングシステムに接続されている。非マージャは、そのポートのどちらか一方または双方用に発信パケットを生成するため、105などの第1のポートから受信した着信パケットに対し、入力インターフェース115からの受信データでの置換、および/またはその追加を行うことができる。一実施形態では、非マージャが複数の着信パケットを単一の発信パケットへと組み合わせることはない。非マージャは、着信パケットから受信したデータを、出力インターフェース120経由で送信できる。一実施形態において、前記出力インターフェース120を通過するデータは、1若しくはそれ以上のスロットから選択したものであってよい。一実施形態では、送信用データ元とする前記1若しくはそれ以上のスロットは、利用者が選択できる。
非マージャは2つのポート指定子を有することができる。このポート指定子は、前記非マージャの物理ポート105、110に関するものであってよい。これらのポート105、110は、本明細書において「ポートA」および「ポートB」とも呼ばれる。ただし、このような指定は限定を意図したものではない。一実施形態では、前記非マージャのポートの1つに取り付けられたケーブルで、その非マージャに電力を遠隔供給できる。
一実施形態では、非マージャは、1つのポートから受信した着信データを格納し、双方のポートへの発信データ書き込みを行うことができる。一実施形態では、制御マスター(Control Master)(以下、図3を参照して説明する)から受信される1若しくはそれ以上のコマンドを使って、および/または利用者により、どの物理ポートからのデータを格納するか変更することができる。格納するデータの送信元であるポートは「メインポート」(Main port)、他方のポートは「補助ポート」(Aux port)と呼ぶことができる。ただし、ポートA、ポートBのどちらをメインポートに指定してもよい。このような指定は、例えば前記非マージャの内部設定および/または当該ネットワーキングシステムにおける前記非マージャの位置に基づき行うことができる。一実施形態では、ポートAおよびポートBの一方だけに発信データを制限することができる。そのような一実施形態は、単一方向チャネルが必要な場合に使用できる。
各非マージャは、例えばデジタル同期データ(システムクロックなど)、アナログ音声データ、デジタル音声データ、ビデオデータ、シリアルデータ、および/または制御データを受信および送信できる。一実施形態では、ローカルデータの挿入用に、1若しくはそれ以上のスロットを前記非マージャに割り当てることができる。一実施形態では、1つのスロットを2つ以上のノードに割り当てることはできない。前記非マージャは、割り当てられたスロットに対応するデータスロットソースフラグ(Data Slot Source Flag)を、そのスロットでのデータ送信時に設定できる。
一実施形態において、前記入力インターフェース115からデータが受信される場合は、それに対応するスロットソースフラグ(Slot Source Flag)がデータパケット内に設定される。このようなローカルに受信されるデータは、各非マージャポートを通じて送信されるデータパケットに挿入できる。
一実施形態では、前記非マージャの第1のポートからデータが受信される場合、特定の条件が満たされない限り、データは第2のポートでのみ送信される。例えば、前記非マージャの前記第1のポートがループバックモードであれば、このポートから受信されるデータは、同じポートで送信可能となる(当該非マージャからデータが挿入されなかった全スロットについては、スロットソースフラグが設定されない)。この非マージャは、例えば第2の装置が前記第2のポートに取り付けられていると当該非マージャが認識しない場合に、ループバックモードとなりうる。
一実施形態では、ポートから受信されるデータがそれに対応したスロットソースフラグセットを有する場合、他ポートの発信データ用に対応したスロットソースフラグも同様に設定される。前記非マージャがループバックモードの場合は、送信前に前記スロットソースフラグがクリアされる。
一実施形態において、非マージャの第1のポートで受信されるデータは、このデータがローカルに置換される場合、更新された制御ブロックCRCが挿入される場合(この非マージャが前記制御ブロックにデータを挿入する場合など)、および/またはこの非マージャの受信ポートがループバックモードになっている場合を除き、前記第2のポート経由で送信される。前記非マージャがクロックマスター(Clock Master、以下説明する)である場合、またはデータパケットがクロックマスターの方向から受信される場合、前記非マージャは、クロックマスターソースフラグ(Clock Master Source Flag)を設定できる。代替実施形態では、それに対応した実施態様に従い、非マージャが受信データパケットに代替修正または追加修正を行うことができる。
マージャ
代替実施形態では、ネットワーキングシステム内のノードは、図2に示した装置などのマージャ装置である。マージャは、ポート205、210、215など3若しくはそれ以上のポートを有し、これらによりネットワーキングシステムに接続されている。マージャは、発信データパケットを生成するため、着信パケットに対し、入力インターフェース220からの受信データでの置換、および/またはその追加を行うことができる。同様に、マージャは、非マージャ装置と同様に、出力インターフェース225経由でデータを出力できる。一実施形態において、マージャは、さらに、複数の着信データパケットからのデータを、各出力ポートにつき1つの発信データパケットへと組み合わせることができる。各着信データパケットは、このマージャ上の対応するポートで受信できる。
代替実施形態では、ネットワーキングシステム内のノードは、図2に示した装置などのマージャ装置である。マージャは、ポート205、210、215など3若しくはそれ以上のポートを有し、これらによりネットワーキングシステムに接続されている。マージャは、発信データパケットを生成するため、着信パケットに対し、入力インターフェース220からの受信データでの置換、および/またはその追加を行うことができる。同様に、マージャは、非マージャ装置と同様に、出力インターフェース225経由でデータを出力できる。一実施形態において、マージャは、さらに、複数の着信データパケットからのデータを、各出力ポートにつき1つの発信データパケットへと組み合わせることができる。各着信データパケットは、このマージャ上の対応するポートで受信できる。
マージャは、各ポートにつき1つのポート指定子を有することができる。このポート指定子は、当該マージャの物理ポートに関するものである。それらの物理ポートは、本明細書において「ポートA」、「ポートB」、「ポートC」等とも呼ばれる。ただし、このような指定は限定を意図したものではない。一実施形態において、前記マージャのポートの1つに取り付けられたケーブルは、前記マージャに遠隔的に電力を供給できる。
一実施形態では、マージャは、複数の着信データストリームを受信できる。そのようなデータストリームは同期される。ただし、前記データストリームは同期されても、可変の時間オフセットおよびジッターを有することがある。
一実施形態において、ソースフラグ(Source Flag)は、着信データの送信元(ソース)を示すため使用される。例えばネットワーキングシステム内では、制御マスターソースフラグ(Control Master Source Flag)、スレーブソースフラグ(Slave Source Flag)、クロックマスターソースフラグ、データスロットソースフラグ、シリアルデータスロットソースフラグ(Serial Data Slot Source Flag)、およびトークバックスロットソースフラグ(Talkback Slot Source Flag)の6タイプのソースフラグを使用できる。前記制御マスターソースフラグおよび前記スレーブソースフラグは、以下制御バス(Control Bus)を参照して説明する態様で使用できる。前記クロックマスターソースフラグは、着信データが前記クロックマスターから送信されてきたことを示すため使用される。前記クロックマスターソースフラグが設定されたパケットは、ノードからのアウトバウンドデータストリームのタイミングを制御するため使用される。前記データスロットソースフラグと、前記シリアルデータスロットソースフラグと、前記トークバックスロットソースフラグとは、特定のスロット、シリアルスロット、またはトークバックスロットで、それぞれどの時点でデータがアクティブであるかを示すため使用される。一実施形態では、各データスロットにつきデータスロットソースフラグを1つ、また各シリアルデータスロットにつきシリアルデータスロットソースフラグを1つ使うことができる。一実施形態では、各トークバックスロットにつき1つトークバックスロットソースフラグを使用することができる。
マージャは、前記ソースフラグを使うことにより、そのマージャに接続されているシリアル配線上のノードが、各フラグに対応するデータを挿入したかどうか決定できる。例えば、マージャは、複数の着信データストリームで、スロット5の非ゼロデータを伴うデータパケットを同時に受信することができる。一実施形態では、前記マージャは、データスロットソースフラグ5が設定されているパケットからのデータを、出力パケット生成時に使うことができる。設定された任意のソースフラグに関連付けられたデータは、前記発信データストリームの対応する部分に挿入できる。一実施形態では、前記スレーブソースフラグを除き、マージャへの2つ以上の着信データストリームに特定のソースフラグが設定されることはない。
前記マージャは、特定のパケットデータ位置についてソースフラグを受信しなかった場合、すべての発信データストリーム内のデータ位置にゼロを埋める。インバウンドデータストリーム同士は時間的に整合していないため、各着信パケットは、発信パケット用のパケット構築前にバッファされる。前記クロックマスターソースフラグが設定された着信パケットは、発信データストリームすべてのタイミングを制御することができる。
マージャ用のポート入力では着信データストリームを受信でき、マージャ用のポート出力では発信データストリームを送信できる。各データストリームを使用すると、パケット形式でデータを送信することができる。一実施形態において、マージャは、非マージャと同じクロック入出力および/または(アナログ若しくはデジタル)音声入出力を有することができる。一実施形態において、マージャはクロックマスターであってよい。特定のマージャがクロックマスターである場合、そのクロックマスターソースフラグはすべての発信パケットに設定できるが、着信パケットには一切設定できない。一実施形態において、マージャは、アナログまたはデジタルの音声入出力ポートを有したチャネルソースでありうる。マージャがチャネルソースである場合は、適切なソースフラグがすべての発信データストリームに設定される。何らかのソースフラグがマージャポートの着信データストリームで検出されると、そのソースフラグに対応したデータが当該マージャの全ポートの発信パケットに挿入される(例えば、前記データが着信したポートも含む)。ただし、前記ソースフラグは、前記データを受信したポートを除く全ポートからの発信パケットに設定できる。これにより、シリアル配線において元の挿入ノードから前記マージャ方向に向かってダウンストリームにある全ポートで、挿入されたデータが読み取られたことを示せる。
制御マスターソースフラグが着信データストリームで受信され、他のいかなるポートからもスレーブソースフラグが受信されない場合、または制御マスターソースフラグもスレーブソースフラグも同じ着信データストリームから受信される場合は、制御マスターソースフラグを含むデータパケットからの制御ブロックが、すべてのデータストリームに転送される。ただし、制御マスターソースフラグおよびスレーブソースフラグが異なる着信データストリームから受信される場合、前記スレーブソースフラグを含んだ前記着信データストリーム用の制御ブロックは、前記制御マスターソースフラグが設定された着信データストリームを着信したポートだけに転送され、前記制御マスターソースフラグを含んだ着信データストリーム用の制御ブロックは、他のすべての発信データストリームに転送される。
一実施形態では、前記着信データストリームの1つに、前記クロックマスターソースを含めることができる。各発信データストリームは、このデータストリームのインバウンドクロックマスターソース(Inbound Clock Master Source)パケットのパケットレートによりクロック制御される。前記クロックマスターソースフラグは、そのクロックマスターソースフラグが受信された着信データストリームに対応するポートを除く全ポートからの発信データストリームに挿入される。
一実施形態では、マージャが特定のポートで特定のソースフラグを受信すると、このマージャは、前記ソースフラグが設定されている限り、その特定のデータの送信元として前記ポートを識別する。特定のソースフラグが2若しくはそれ以上のポートの着信データストリームに同時に存在する場合、前記マージャは、前記データの転送用に着信データストリームの1つを無作為に選択することができる。代替実施形態では、前記マージャは、各ポートに優先度を割り当てることができる。このような実施形態において、前記マージャは、最高の優先度を有したポートからデータを転送することにより、ソースフラグが設定されたポートに対する選択を行うことができる。
トークバックソースフラグは、割り当て可能なスロットとして機能できる。例えば、スレーブは、前記制御マスターからのトークバックスロット(Talkback Slot)を使用するよう要求できる。許可された場合、スレーブは、例えば一時的なスロット1トークバックソースになることができ、前記トークバックソースフラグをスロット1に適宜設定できる。
非マージャは、1つのポートから他のポートへとデータストリームを受信および/または送信する際、ソースフラグを設定、クリア、および/またはブロックすることができる。一般に、非マージャは、任意の内部決定について実際のソースフラグ値を使用することはできない。一実施形態では、(i)データスロット用のデータスロットソースフラグが着信データパケットに設定されていない場合、(ii)前記着信データパケットがループバックモードのポートで受信される場合(すなわち、非マージャがシリアル配線の最後の装置である場合)、および(iii)前記非マージャが前記データスロットにデータを挿入しない場合、非マージャは、前記データパケット内の前記データスロットデータをクリアすることができる。これにより、データを挿入していたノードの電源が切れた場合、停滞したデータがネットワーク中に残るのを防ぐことができる。
列挙
一実施形態では、ネットワーキングシステムの1若しくはそれ以上のノードが、当該ノードの装置識別子を決定するため、ポートの割り当ておよび列挙を必要とする場合がある。一実施形態では、各ノードは、初期に自らをスレーブ装置と見なす。例えば1つのノード内の制御レジスタは、その特定の装置が制御マスターであることを示す目的で、制御プロセッサにより書き込まれる。前記制御プロセッサは、例えばアプリケーションからのメッセージに基づき、さらに/または入力ピン、格納された値、および/または組み込まれている値を読み取ることにより、前記制御マスターを決定することができる。制御マスターになる装置は、パケット生成能力を有する必要がある。
一実施形態では、ネットワーキングシステムの1若しくはそれ以上のノードが、当該ノードの装置識別子を決定するため、ポートの割り当ておよび列挙を必要とする場合がある。一実施形態では、各ノードは、初期に自らをスレーブ装置と見なす。例えば1つのノード内の制御レジスタは、その特定の装置が制御マスターであることを示す目的で、制御プロセッサにより書き込まれる。前記制御プロセッサは、例えばアプリケーションからのメッセージに基づき、さらに/または入力ピン、格納された値、および/または組み込まれている値を読み取ることにより、前記制御マスターを決定することができる。制御マスターになる装置は、パケット生成能力を有する必要がある。
図3は、一実施形態に係る制御マスターの例示的な初期状態を示した図である。図3に示したように、この制御マスターのどちらのポートも、CAT−5ケーブル、CAT−4ケーブル、またはCAT−3ケーブルのピン1および2など事前設定された出力ピンで発信データを送信し、CAT−5ケーブル、CAT−4ケーブル、またはCAT−3ケーブルのピン3および6など事前設定された入力ピンで着信データを受信するよう設定できる。この制御マスターは、そのデータネットワーキングポート用に有効にされた送信機および受信機の双方を有するよう初期化が可能である。一実施形態において、前記送信機はアイドルデータパケットを送信できる。
図4は、一実施形態に係るスレーブ装置の例示的な初期状態を示した図である。図4に示すように、各スレーブ装置は、ポートAおよびポートB(Port A and Port B)の初期割り当てを任意に行うことができる。一実施形態において、ポートAは、この装置に電力を供給できるポートに割り当てられる。前記初期ポート割り当ては、前記列挙工程中に変更可能である。各ポートの前記受信機は、例えばCAT−5ケーブル、CAT−4ケーブル、またはCAT−3ケーブルのピン1および2で有効にされる。各ポートの前記送信機は、無効にされる。前記送信機は、例えばCAT−5ケーブル、CAT−4ケーブル、またはCAT−3ケーブルのピン3および6に割り当てられる。ポートAは、図4に示したように、ループバックモードで設定できる。
一実施形態では、スレーブ装置のポート割り当てを更新できる。例えば、スレーブ装置は、リンク検出情報により識別可能な着信アイドルデータパケットを検出する前記第1のポートに基づき、当該スレーブ装置のポートを設定することができる。リンク検出情報とは、データパケットが別の装置により送信された(直接的でも間接的でもよい)ことを示す、前記データパケットに含まれる任意の情報である。前記スレーブ装置用の前記リンク検出情報を受信する前記第1のポートは、ポートAとして割り当てられるか、再割り当てされる。すると、新たに割り当てられたポートB(すなわち、ポートAとして割り当てられていないポート)は、受信ポートおよび送信ポートに割り当てられたピンをスワップする。例えば、上記の実施形態において、前記送信機は前記ケーブルのピン1および2に割り当てられ、前記受信機はピン3および6に割り当てることができる。ポートBの送信機は有効にされ、強制リンク(Force Link)モードでアイドルパケットを送信できるようになる。同様に、ポートAの送信機も、前記スレーブ装置と、そのスレーブ装置のポートAに接続された装置との間の通信を可能にするよう有効にされる。ループバックは、ポートAでは有効にされるが、ポートBでは有効にされない。次いで、当該装置は、前記制御マスターから論理装置識別子を要求する。
前記制御プロセッサは、リンク検出情報が設定されているかどうか決定するため、前記ポートBステータスを監視することができる。前記リンク検出情報は、別のスレーブ装置がポートBに接続されている場合のみ設定される。このリンク検出情報が設定されると、前記スレーブ装置はポートAでの前記ループバック動作を解除し、着信するポートAデータをポートBの前記送信機に渡す。同様に、ポートBから受信されるデータはポートAの前記送信機へ転送される。
図5A〜5Dは、一実施形態に係る3つの装置用の例示的なポート割り当て・列挙工程を示した図である。有効な各送信機には、それを出る方向の矢印が図示されている。ループバックモードの各ポートには、そのポートの受信機および送信機をつなぐ破線が図示されている。実際に割り当てが行われるまで、各ポートはP(電源オン)およびU(電源オフ)としてラベル付けされる。
図5Aに示したように、装置1(Device 1)505は制御マスターとなるよう設定でき、装置2(Device 2)510および装置3(Device 3)515はスレーブ装置となるよう設定できる。さらに、装置2 510は、その電源オンのポートが装置1 505でなく装置3 515に接続されるよう配線される。図5Aは、装置1 505が自らを制御マスターであると認識する前の当該システムを示した図である。すべての装置は、受信機が有効なスレーブとして(前記リンク検出情報を探している)、また電源オンのポートの受信機が内部ループバックモードの状態で初期化される。
図5Bに示したように、装置1 505は、例えばアプリケーション、利用者スイッチ、および/またはジャンパにより、当該装置1 505が前記制御マスターに指定されていることを検出することができる。この装置は、前記送信機についてはピン1および2など既知のワイヤー対(ペア)に双方のポートが接続されるよう設定し、前記受信機についてはピン3および6など既知のワイヤー対に双方のポートが接続されるよう設定することができる。次に、装置1 505は双方のポートで前記内部ループバックを無効にし、強制リンクモードで双方向にパケット送信を開始できる。図5Bに示すように、この制御マスターは、スレーブ装置が順次オンラインになり列挙を要求し始めるのを待機する。この制御マスターでは、ポートをポートAおよびポートBとしてラベル付けする必要はない。これは、制御マスターにとってこのような指定が無意味なためである。
図5Cに示すように、前記制御マスターが一度パケットを送信すると、装置2 510は、その電源オフポート(図5BのポートU)でリンク検出情報を認識できるようになる。このデータは前記制御マスター505から来るため、装置2 510は前記電源オフポートをポートA、また前記電源オンポートをポートBとして再割り当てでき、さらに当該装置2 510の受信機および送信機についてピン割り当てをスワップしポートBの送信機を有効にしてアイドルデータパケットを強制リンクモードで送信することにより、ポートBを設定できる。さらに、装置2 510は、ポートAの送信機を有効にし当該ポートをループバックモードに設定することにより、ポートAを設定することができる。この時点でポートAはループバックモードになったため、前記制御マスター505と装置2 510との間の通信ループは完全なものとなった。これにより、装置2 510は前記制御バスを使って前記制御マスター505と通信することができる。
図5Cに示したように、装置2 510は、この制御バスを使い前記制御マスターと通信して、列挙を要求し、当該装置2 510の論理装置識別子を受信することができる。さらに装置2 510は、自らの能力を報告する、またはスロット割り当てを受信するなど、アプリケーション固有のアクティビティ用に前記制御バスを使うことができる。装置2 510は、その論理装置識別子を受信し次第、リンク検出情報を見出すためポートBの受信線を監視を開始することができる。装置2 510に関する図5Cでの上記説明と同じ動作で装置3 515からリンク検出情報が受信されると、装置2は、ポートAの着信データがポートBから送信され、ポートBの着信データがポートAから送信されるよう、ポートAの前記内部ループバックを解除し、ポートAおよびBを内部接続できる。これは、「パススルー」モードと呼ばれる。図5Dは、この工程の完了後、装置2 510および装置3 515がいかに設定されるか示した図である。次に、装置3 515は、装置2 510に関する上記説明と同様な態様で論理装置識別子を要求し、ポートAをループバックモードにするなどの動作を行う。
この時点で、どちらのスレーブ装置も(以下、制御バスプロトコルの項で説明するように)アプリケーション固有のメッセージング用に前記制御バスを使うことができる。装置3 515のポートBに接続される追加スレーブは、同じ手順に従い前記制御マスターとの通信を確立することができる。これにより、任意数のスレーブ装置を順次列挙することが可能になる。当業者であれば、本明細書で開示する説明に基づいて、上記に関する代替列挙工程および/または追加列挙工程が容易に理解されるであろう。
一実施形態において、前記ネットワーキングシステムの動作中、装置3 515のポートBに接続される追加スレーブ装置(図示せず)は、認識され、論理装置識別子を受信し、ポートAをループバックモードにするなど可能である。上記のとおり、装置3 515は、すでにアイドルパケットを送信しており、そのポートBでリンク検出情報を探している。同様に、前記追加スレーブ装置は、各々のポートでリンク検出情報を探している可能性がある。前記追加スレーブ装置は、装置3 515が送信しているアイドルデータパケットを検出すると自らのポートを適宜設定し、次いでそれらのポートにより装置3がループバックモードからパススルーモードになる。前記追加スレーブ装置は、列挙を行った後、当該シリアル配線の終端部になる。
一実施形態では、シリアル配線がすでに確立された状態でリンクが切断されても、前記制御マスター505に接続された装置間の通信を続行することができる。一実施形態では、リンクが切断されると、次の2つのシナリオのうちどちらかが起こる。第1のシナリオは、装置3 515がクロックマスターでない場合に起こる。図5Eに示したように、装置2 510および装置3 515の各制御プロセッサは、それぞれのポートを定期的に監視して、前記リンク検出情報がまだ有効であることを確認する。(装置2 510と装置3 515との間の)リンクが切断されると、装置2は、ポートBの前記リンク検出情報が失われたことを認識する。一実施形態では、装置2 510は、図5Eに示した状態に戻るよう、自らのポートを再設定することができる。
同様に、装置3 515は、装置2 510に接続されていたポートで前記リンク検出情報が失われたことを決定する。これにより、装置3 515は、当該装置3 515がもはや前記制御マスター505に接続されていないことを決定する。一実施形態でこのシナリオが起こると、図5Eに示したように、装置3 515は自らの状態をリセットできる。
前記制御マスター505は前記ネットワーキングシステム内の全装置を定期的にチェックしているため、装置3 515がもはや接続されていないことを検出し、この装置を当該ネットワーキングシステムから外すことができる。この情報は、任意のアプリケーションに渡すこともできる。代替実施形態では、装置2 510は、そのポートBのリンク検出情報がもはや有効ではないことを前記制御マスター505に報告できる。この報告を受け、前記制御マスター505は、装置3 515と、前記ネットワーキングシステムから見て前記装置3 515から「ダウンストリーム」に接続されていた全装置とを除去することができる。
一実施形態において、装置3 515が前記クロックマスターで、前記制御マスター505から分離されると、前記ネットワーキングシステムの全パケットが失われてしまうおそれがある。その結果、前記制御マスター505はただちにクロックマスターの役割を引き受けることになる。一実施形態では、制御システム(Control System)が当該システム内のデータパケットからデータの回復を試行する場合もある。代替実施形態では、前記クロックマスターが失われると、前記ネットワーキングシステムがリセットおよび再初期化を行う場合もある。
一実施形態において、マージャである装置は、初期、自らの送信機を無効にして、すべてのポートでリンク検出情報の検出を試行することができる。リンク検出情報が検出された最初のポートは、上記のとおり、ポートAに割り当てられ、送信線および受信線がスワップされる。他の全ポートは、補助ポートとして割り当てられる。
次に、制御マスターが前記マージャを列挙する。前記マージャは、一度列挙されると、前記補助ポートのいずれかにリンク検出情報が存在するかどうかを決定する。補助ポートのいずれかでリンク検出情報が検出されると、当該マージャは、自らの論理装置識別子および前記補助ポートの割り当てを使って新しい装置を制御マスターに通知することができる。すると、上記のように、前記制御マスターは、その位置にあるスレーブに、前記ネットワーキングシステムに参加できることを通知できる。前記マージャのポートAがループバック設定されている場合は、当該マージャの全補助ポートをパススルー設定できる。
これにより、前記マージャは、全ポートについてリンク検出情報を監視できるようになる。1若しくはそれ以上のポートでリンク検出情報が失われた場合は、例えば次の3つの状態のうち1つが起こる。ポートAのリンク検出情報が失われると、前記マージャは、前記制御マスターとの接続が切断されるため、リセットを行う。補助ポートの全部ではないが少なくとも1つでリンク検出情報が失われた場合、前記制御マスターは、前記リンク検出情報が失われたポートについて通知を受ける。いずれかの補助ポートでリンク検出情報が不在の場合、前記マージャは、ポートA経由で前記制御マスターに通知を行い、ポートAをループバック設定にすることができる。
代替実施形態において、シリアル配線列挙に含まれるスレーブ装置は、送信機を無効にした状態で、当該スレーブ装置の各ポートの監視を開始することができる。リンク検出情報を検出した最初のポートは、前記メインポートとして割り当てられ、送信機が有効にされた状態でループバック設定される。他のポートは前記補助ポートとして割り当てられ、出力ピン設定がスワップされ、その送信機が有効にされる。そして前記スレーブ装置は、前記制御マスターを介して列挙される。一度列挙された当該スレーブ装置は、その補助ポートでリンク検出情報を監視することができる。リンク検出情報が補助ポートで検出されると、このスレーブ装置は、自らの論理装置識別子(列挙中に割り当てられる)およびマージャポート割り当てに基づき、新しい装置について前記制御マスターに通知を行うことができる。すると前記制御マスターは、保留中の装置の当該ネットワーキングシステムへの参加を可能にするよう、前記スレーブに指示する。前記スレーブはそのメインポートのループバック設定を解除し、メイン受信ポートから補助送信ポートへ、また補助受信ポートからメイン送信ポートへデータが通過できるようにする。これにより、ポートアクティビティを監視するため、どちらのポートもリンク検出情報について監視可能になる。前記補助ポートでリンク検出情報が検出されなくなると、前記メインポートはループバック設定にされ、前記スレーブ装置は前記制御マスターに通知を行う。次に、このスレーブ装置は、前記リンク検出情報の再検出を試みる。前記リンク検出情報が前記メインポートで検出されなくなると、前記スレーブ装置はリセットを行う。
一実施形態において、スレーブ装置であるマージャは、送信機が無効にされた状態で自らのポートの監視を開始できる。リンク検出情報が観測された最初のポートは、前記メインポートとして割り当てられ、送信機が有効にされた状態でループバック設定される。他の各ポートは補助ポートとして割り当てられ、出力ピン設定がスワップされ、その送信機が有効にされる。そして前記マージャは、前記制御マスターを介して列挙される。一度列挙された前記マージャ装置は、その各補助ポートをリンク検出情報について監視することができる。補助ポートのいずれかでリンク検出情報が検出されると、前記マージャは、自らの論理装置識別子(列挙工程中に提供される)およびマージャポート割り当てを使って保留中の装置があることを制御マスターに通知することができる。すると前記制御マスターは、保留中の装置の前記ネットワーキングシステムへの参加を可能にするよう、前記マージャに指示する。そのマージャのメインポートがループバック設定になっている場合は、その設定が解除される。これにより、データは前記メイン受信ポートからすべての前記補助送信ポートへ、またすべての前記補助受信ポートから前記メイン送信ポートへ流れることができるようになる。これにより、ポートアクティビティを監視するため、すべてのポートが、リンク検出情報について監視可能になる。1つの補助ポートでリンク検出情報が検出されなくなっても他の補助ポートでリンク検出情報が検出されている場合、前記マージャは、前記制御マスターに通知を行うことができる。すべての補助ポートでリンク検出情報が検出されなくなった場合、前記メインポートはループバック設定にされ、前記マージャは前記制御マスターに通知を行う。上記どちらの場合でも、前記マージャは、前記補助ポートからのリンク検出情報の検出を試行し続けることができる。前記リンク検出情報が前記メインポートで検出されなくなると、このマージャはリセットを行う。
データバスプロトコル
図6は、一実施形態に係るソースフラグの例示的なデータフローを示した図である。図6に示すように、当該ネットワーキングシステムには、クロックマスター605および制御マスター610を含めることができる。前記クロックマスター605は、このネットワーキングシステム内のノード間でデータパケットを同期する手段として使用することができる。これは、例えば、前記クロックマスター605と、デジタルI/Oを使用する任意の非マージャ装置と、これらクロックマスターおよび非マージャ装置の間のパス上にある較正対象の任意のマージャ装置とにおいて遅延測定値を得ることにより達成できる。この情報は、前記非マージャ装置でバックグラウンド工程により収集される。初期の計算セットを完了した時点で、前記非マージャ装置は、当該非マージャ装置のローカルクロックジェネレータを調整し整合をとることができる。前記マージャ装置は、統計的平均工程を使って継続的に自らの時間的整合性をとる。前記制御マスター610は、前記制御バスに対し以下説明する動作を実施することができる。一実施形態では、前記制御マスター605および前記クロックマスター610は、同じ装置であってよい。
図6は、一実施形態に係るソースフラグの例示的なデータフローを示した図である。図6に示すように、当該ネットワーキングシステムには、クロックマスター605および制御マスター610を含めることができる。前記クロックマスター605は、このネットワーキングシステム内のノード間でデータパケットを同期する手段として使用することができる。これは、例えば、前記クロックマスター605と、デジタルI/Oを使用する任意の非マージャ装置と、これらクロックマスターおよび非マージャ装置の間のパス上にある較正対象の任意のマージャ装置とにおいて遅延測定値を得ることにより達成できる。この情報は、前記非マージャ装置でバックグラウンド工程により収集される。初期の計算セットを完了した時点で、前記非マージャ装置は、当該非マージャ装置のローカルクロックジェネレータを調整し整合をとることができる。前記マージャ装置は、統計的平均工程を使って継続的に自らの時間的整合性をとる。前記制御マスター610は、前記制御バスに対し以下説明する動作を実施することができる。一実施形態では、前記制御マスター605および前記クロックマスター610は、同じ装置であってよい。
前記ネットワーキングシステムには、非マージャ装置(615、620、および625)やマージャ装置(630、635)など他のノードも存在してよい。図6に示すように、非マージャ615はスロット27に割り当てられた音声データを受信でき、非マージャ625はスロット14に割り当てられた音声データを受信できる。入力ソースから離れる方向へ流れるデータパケットは、そのデータが送信されるスロットに対応した前記データスロットソースフラグを設定する。また、前記制御マスターソースフラグおよび/または前記クロックマスターソースフラグも、前記制御マスター610および前記クロックマスター605から離れる方向へ流れるデータパケットにそれぞれ設定される。一実施形態において、前記制御マスターソースフラグは、後述する前記制御バスプロトコルに従い設定される。
再び図6を参照すると、非マージャ615は、(データスロットソースフラグ(DSSF)27セットで)チャネル27のデータを受信し、そのデータをデータパケットにてポートAから非マージャ620へスロット27で送信できる。非マージャ620は、このスロット27データをポートBで受信し、ポートAでDSSF 27セットとともに再送信することができる。マージャ630は、非マージャ620に接続されたポートで前記スロット27データを受信し、そのデータをDSSF 27セットとともに他のポート(非マージャ625およびマージャ635に接続されたポート)に再送信する。このデータは、非マージャ605および610に到達するまで、引き続き前記ネットワーキングシステム経由で伝搬される。前記ノード605および610の各非受信ポートは別のノードに接続されていないため、前記データがこれら非マージャ605および610に到達した時点で、前記データをまだ受信していないノードに対する当該データの転送は行われなくなる。すなわち、非マージャ605および610のポートAは、それぞれループバックノードになっている。このため、前記スロット27のデータは、前記非マージャ605および610のポートAからDSSF 27がクリアされた状態で再送信される。DSSF 27がクリアされているため、当該データを受信するノードは、このデータがすでに受信済みで陳腐化していることを認識する。チャネル14データ、制御マスターデータ、およびクロックマスターデータについても、それぞれ同様な動作が実行される。
制御バスプロトコル
図7Aは、一実施形態に係る装置内の例示的な制御バス構成要素を示した図である。制御ブロック(Control Block)705は、制御情報の送信専用データパケットの一部でありうる。ネットワーキングシステムの各装置は、物理インターフェース710を介してパケットを受信し、前記制御ブロック705から1若しくはそれ以上の受信バッファ715内にデータを読み取ることができる。同様に、装置は、送信バッファ720に情報を格納して前記制御ブロック705にデータを送信し、前記送信バッファから前記制御ブロックにデータを書き込み、物理インターフェース725にパケットを送信することができる。一実施形態において、前記送信物理インターフェース725は装置の全ポートに接続されており、前記受信物理インターフェース710は前記装置の単一ポートに接続されている。処理装置(図示せず)は、前記受信バッファ715から情報を読み取り、前記送信バッファ720に情報を書き込むことができる。
図7Aは、一実施形態に係る装置内の例示的な制御バス構成要素を示した図である。制御ブロック(Control Block)705は、制御情報の送信専用データパケットの一部でありうる。ネットワーキングシステムの各装置は、物理インターフェース710を介してパケットを受信し、前記制御ブロック705から1若しくはそれ以上の受信バッファ715内にデータを読み取ることができる。同様に、装置は、送信バッファ720に情報を格納して前記制御ブロック705にデータを送信し、前記送信バッファから前記制御ブロックにデータを書き込み、物理インターフェース725にパケットを送信することができる。一実施形態において、前記送信物理インターフェース725は装置の全ポートに接続されており、前記受信物理インターフェース710は前記装置の単一ポートに接続されている。処理装置(図示せず)は、前記受信バッファ715から情報を読み取り、前記送信バッファ720に情報を書き込むことができる。
一実施形態では、前記制御ブロック705がデータパケットごとに変化することはない。そのため、前記処理装置用に各制御ブロック705を利用可能にする必要はない。ただし、前記処理装置が読み取るデータは1パケットだけにすべきで、2つの別個のパケットのデータセグメントを組み合わせたものにしてはならない。したがって、前記受信物理インターフェース710から前記受信バッファ715への着信制御データの転送は、前記処理装置からの要求に応じてのみ起こる。これにより、前記処理装置は、1つのデータパケットに固有の制御ブロック705情報だけを読み取ることができる。前記処理装置は、この情報を読み取ると、このデータに基づく決定を行い、その結果(該当する場合)を前記送信バッファ720に書き込む。次いでこの処理装置は、前記送信バッファ720内のデータを次の発信データパケットの前記制御ブロック705に書き込む。
当該制御バスに2つの装置だけが接続されている場合、1つの装置から別の装置へデータを転送するこのスキームは簡潔でわかりやすい。しかし、複数の装置がこの制御バスに接続されていると、前記物理インターフェース710および725に比べて前記処理装置が低速化し、競合状態が起こるおそれがある。その原因は、前記処理装置が(1)前記受信バッファ715内の情報が更新されるよう要求し、(2)更新された前記受信バッファの内容を読み取り、(3)読み取ったデータを処理して適切な応答を決定し、(4)その結果を前記送信バッファ720に書き込み、(5)書き込んだ内容を次のデータパケットの前記制御ブロック705に挿入するよう前記送信バッファに指示しなければならない点にある。競合状態は、上記工程の実行中、別の装置が前記制御ブロック705内の情報を上書きした場合に起こるおそれがある。
この場合にアクセスフラグのセットを使うと、前記処理装置は、競合(コンテンション)のリスクを負うことなく、これらのバッファを使用できるようになる。図7Bに示すように、前記処理装置730は、前記制御ブロックから情報を読み取る準備が整うと、パケット要求(Request Packet)フラグ735を設定する。このパケット要求フラグ735が設定されると、受信される最新の有効な制御ブロックが前記受信バッファ715へ転送可能になる。この制御ブロック転送の出所は、ただ1つのパケットでなければならない。次いで前記パケット要求フラグがクリアされ、これにより前記受信バッファ715が読み取り可能になったことが前記処理装置730に通知される。一度前記受信バッファ715に格納されたデータは、前記処理装置が前記パケット要求フラグの設定による再更新を要求するまで上書きできなくなる。
なお、着信制御ブロックにはCRC計算を実施(実行)できる。不良CRCを有した制御ブロックを前記受信バッファ715に格納することは許されない。
前記処理装置730は、データパケットの情報を前記制御ブロック705に書き込む必要がある場合、前記情報を前記送信バッファ720へコピーし、パケット送信(Transmit Packet)フラグ740を設定する。このパケット送信フラグが設定されると、前記制御ブロック705でCRC計算が実施される。次に、前記物理インターフェースレイヤーの双方のポートで、データが前記送信バッファ720から次の発信データパケットの前記制御ブロック705に挿入される。前記パケット送信フラグ740はクリアされ、これにより前記送信バッファ720内のデータが格納され送信中であることが前記処理装置730に通知される。
前記処理装置730は、データが前記制御ブロックに格納されている間、前記送信バッファ720にデータを書き込むことができない。一実施形態において、これは前記送信バッファ720のダブルバッファリングにより達成される。代替実施形態では、制御ビットにより、前記処理装置730が前記物理インターフェースレイヤーへの前記送信バッファ720挿入を無効にできる。これにより、前記物理インターフェースレイヤーと前記処理装置730との間で転送される制御ブロックデータを単一のデータパケットに限定することができる。一実施形態では、1つのパケットが前記送信バッファ720の部分的更新を受信し次のパケットが残りを受信するよう、制御ブロックデータが更新不能にされる。
前記制御ブロックは、(1)マスター制御レジスタ(Master Control Register)およびID、(2)スレーブ制御レジスタ(Slave Control Register)およびID、および(3)マスター/スレーブデータ(Master/Slave Data)の3つの部分に分割することができる。一実施形態では、前記処理装置730は、前記制御ブロックのレジスタ部の1つだけに書き込みを行い、他の部分は読み取りを行う。前記処理装置が書き込みを行うレジスタは、この装置がマスター(Master)であるかスレーブ(Slave)であるかに依存する場合がある。前記マスター/スレーブデータ部には、データセッションに応じて読み取りまたは書き込みが行える。この制御ブロックについては、以下さらに説明する。
(1)前記物理インターフェースおよび前記各バッファの間のインターフェースと(2)前記各バッファおよび前記処理装置の間のインターフェースとは性質上非同期であり、多数の異なる装置が前記制御ブロックに書き込みを行う可能性があるため、ネットワーキングシステム内の装置間にはデータの競合が起こりうる。制御バス論理は、当該ネットワークにおいて、データ競合を防ぐ制御データ用通信プロトコルとして使用することができる。
前記制御バスは、データパケットストリームに内在する「仮想」データバスであってよい。前記ネットワーキングシステムでは、セマフォのスキームおよび相互に排他的なロックアウトに基づき誰もが随時物理的に読み取りまたは書き込み可能なグローバルデータプールとして、前記制御ブロックを使用することができる。これにより、安全で制限された前記データプールへのアクセス法がもたらされる。
前記制御バススキームでは、1つの装置が制御マスターとして作用しなければならない場合がある。この制御マスターは、前記制御バスをスレーブ装置に割り当てる。一実施形態では、一度に1つのスレーブだけが前記バスを制御できる。各スレーブは前記バスへのアクセスを要求できるが、アクセスを許可できるのは前記制御マスターだけである。どの時点でも、ただ1つの制御マスターおよびただ1つのスレーブだけが制御ブロックデータを転送することができる。このため、前記制御バスはポイントツーポイントパスとして作用する。ポイントツーポイントパスの確立は、前記制御ブロック内の種々のフラグおよびIDに依存する。これらのフラグおよびIDはどちらの装置でも読み取れるが、一部の情報は前記制御マスターだけが書き込め、他の一部の情報は前記スレーブだけが書き込める。
制御マスターとスレーブとの間のアプリケーションデータの通信は、すべて「セッション」と呼ばれる。セッションには、特定のプロトコルを使った一連のフラグ設定/チェック/クリア工程を含めることができる。このプロトコルは、データが適切に受信され、かつ上書きされないことを確実にするものである。前記スレーブも前記制御マスターもデータを送信する必要がない場合、前記制御バスはアイドル状態とみなされ、前記制御ブロックにアイドルフラグが設定される。
基本的なセッションフローには、セッションの開始、マスターとスレーブとの間のデータ転送、およびそのセッション終了を含めることができる。各工程で従うべき厳密なプロトコルは、前記制御マスターおよび前記スレーブに応じて異なる。どちらの装置の場合も、前記バスが利用可能であれば装置がそのバスを要求する。するとそのバスは、前記制御マスターへのデータ送信を希望している特定のスレーブ装置、または前記制御マスターがデータ送信先として希望している特定のスレーブ装置用に許可される。前記バスが許可されると、前記マスター/スレーブのデータ転送が行われる。データは、そのフローを制御するマスター確認応答およびスレーブ確認応答を伴うパケットで転送できる。このデータ転送が終了すると、当該セッションは終了される(すなわち、前記バスの許可が解除され、そのバスはこれから開始する別のセッションのため利用可能になる)。
一実施形態において、前記マスター/スレーブデータ転送は、制御マスターからスレーブへのものであっても、スレーブから制御マスターへのものであってもよいが、スレーブからスレーブへのものであってはならない。2つのスレーブ間の通信は、スレーブから制御マスターへの第1のセッションと、制御マスターからスレーブへの第2のセッションとで実施することにより、データ競合を確実に排除できる。
一実施形態では、前記制御バスはマスター/スレーブデータの直接的な全二重(同時双方向)転送をサポートしない場合がある。さらに、前記制御レジスタフラグおよび装置IDの例外を除き、データ通信は、セッション中、具体的には制御マスターからスレーブ、またはスレーブから制御マスターへのセッション中、単一方向でありうる。多くのアプリケーションでは、受信装置が送信機からの着信データを解析し終えるまで送信機に返信を行わない「コールアンドレスポンス(call and response)」態様でデータを転送するため、全二重通信は必ずしも必要ではない。このようなアプリケーションの場合、前記処理装置が前記情報を処理している間に前記制御バスが利用できないと、その間他のセッションを実施することができないため望ましくない。したがって、前記処理装置の情報処理中に他のセッションが前記制御バスを利用できるようにし、前記制御バスが複数のセッションを有するようにすると、アプリケーション固有の処理遅延を制御バスのスループット(処理能力)から独立させることができる。また、大量の情報のアップロードやダウンロードといった工程は、単一方向の制御バスセッションを有することで前記システムの合理化が可能になる。送信を行う装置は、そのアプリケーション出力キューにデータがある状態で、アプリケーションパケットにデータを投入できる。その際、受信機から受け取る必要のある唯一の応答は、最後のマスター/スレーブデータパケットが受信され前記アプリケーションに配信されたという確認応答である。
データパケットの制御ブロック全体については、他のいかなるパケットCRCからも独立した16ビットCRCでチェックサムを計算することができる。このCRCにより、装置は、送信中に破損した制御データを無視できるようになる。
前記マスター制御レジスタには、制御フラグのセットと、マスター装置ID(Master Device ID)フィールドとを含めることができる(これに限定されるものではないが)。これらのフラグおよび装置IDは前記制御マスターだけが書き込むことができ、前記ネットワークの全スレーブへブロードキャストされ、前記フィールドは前記全スレーブにより読み取られる。一実施形態では、前記フラグは、1バイト内に1ビットのエントリを有することができる。次の表は、一実施形態に係る前記マスター制御レジスタ用の例示的な制御フラグを詳しく示したものである。
前記マスター装置IDには、例えば2バイトを含めることができ、これにより前記制御バスについて許可を受けたスレーブ装置を前記制御マスターが識別できるようになる。したがって、前記マスター装置IDはセッションごとに変化しうる。
前記スレーブ制御レジスタには、制御フラグのセットと、スレーブ装置ID(Slave Device ID)フィールドとを含めることができる(これに限定されるものではないが)。これらのフラグおよび装置IDは、前記スレーブ装置だけが書き込むことができ、前記制御マスターにより読み取られる。一実施形態では、前記フラグは、1バイト内に1ビットのエントリを有することができる。次の表は、一実施形態に係る前記スレーブ制御レジスタ用の例示的な制御フラグを詳しく示したものである。
前記スレーブ装置IDには、例えば2バイトを含めることができ、これによりスレーブ制御レジスタ部を書き込み中のスレーブ装置が識別可能になる。前記制御マスターから見ると、前記スレーブ装置IDはセッションごとに異なる可能性がある。
前記マスター/スレーブデータ部には、前記制御バス論理にとり大部分トランスペアレントな(認識されない)データを含めることができる。このデータは、前記物理インターフェースレイヤーから受信され、アプリケーションとの間で送受信されて、前記物理インターフェースレイヤーに渡される。
装置IDは、セッション中に前記制御マスターと通信する特定のスレーブを識別するため使用できる。前記制御マスターおよびスレーブが確実に整合し合うよう、(1)前記スレーブ装置ID(前記制御バスに書き込み中のスレーブを識別する)および(2)前記マスター装置ID(前記制御マスターがセッション用に前記制御バスへのアクセスを許可したスレーブを識別する)の2つの装置ID(Device ID)レジスタを使用できる。用語「装置ID」は、別段の断りがない限り、前記マスター装置IDにも前記スレーブ装置IDにも適用できる。
前記制御マスターは、セッションを開始する際、または要求元のスレーブに前記バスを許可する際、前記マスター装置IDを書き込むことができる。前記スレーブは、セッションを開始する際、または前記制御マスターからの要求に応答する際、前記スレーブ装置IDを書き込むことができる。特定のスレーブがアクティブである場合、そのスレーブは常に同じIDを前記スレーブ装置IDフィールドに書き込める。
一実施形態において、各前記装置IDフィールドには、例えば2バイトを含めることができる。装置ID 0xFFFFは、まだ列挙されていない装置用に予約されている。(上述した)列挙工程は、装置が確実に順次初期化されるようにするためのものである。前記システムに追加された新しい装置は、0xFFFFの装置IDにより、前記バス上における自らの存在を前記制御マスターに知らせることができる。この装置IDにより、当該装置に列挙が必要なことが前記制御マスターに通知される。これにより、前記制御マスターは一意の装置IDを前記装置に割り当てる。その時点で、この装置はその能力を前記制御マスター上のアプリケーションタスクにアップロードできるようになる。これにより、当該制御マスターは、前記システムにおける一意の装置の数と、割り当て済みのIDの数とを追跡することができる。
前記制御マスターからブロードキャストが行われると、その制御マスターは前記マスター制御レジスタにブロードキャスト(Broadcast)フラグを設定することができる。このブロードキャストフラグが設定されると、各スレーブは前記マスター装置IDを無視できる。一実施形態では、前記制御マスターは、確実にすべての装置が前記ブロードキャストフラグを受信するよう公称時間だけ待機する。前記制御マスターは、データをブロードキャストする場合、新しいデータをロードし、新規データブロードキャスト(Broadcast New Data)フラグをトグルする。送信すべきデータを有さない前記制御マスターは、前記制御バスをリリースする。
一実施形態では、前記制御マスターまたはグループ化されたスレーブにより扱われるアプリケーションコードのレイヤーを使って、複数スレーブへのブロードキャストがサポートされる。これを受け、特定用途のサブグループ論理を効率的に配備することができる。この取り扱いコードの配備位置を決定する際考慮すべき点としては、前記システム内の装置数、サブグループ内の装置数、およびサブグループ数などがある。
アプリケーション論理は、前記制御マスターでサポートされる場合、前記サブグループの各装置ごとにアプリケーションメッセージを反復できる。これは、それぞれ少数の装置を伴った多数のサブグループが存在している場合に最も効率的である。
前記制御マスターの前記アプリケーション論理は、スレーブでサポートされる場合、前記サブグループのデータを全装置にブロードキャストできる。この場合、前記スレーブは次に前記アプリケーションデータ内のサブフィールドに基づいて動作すべきかどうかを決定できる。これは、全部ではないが大半の装置がサブグループに含まれているシステムの場合に最も効率的である。
システム内の全装置がシリアル配線である場合、これらの装置間の通信は単純である。システムにマージャが含まれる場合、そのマージャは、着信データストリームを各種ポートの適切な発信データストリームにルーティングしなければならなくなる可能性がある。これらのルーティング命令は、データパケット内のソースフラグにより搬送される。例えば、前記制御ブロックに含まれる各種部分のルーティングに固有の2つのソースフラグには、マスター制御レジスタソース(Master Control Register Source:MCRS)フラグおよびスレーブ制御レジスタソース(Slave Control Register Source:SCRS)フラグを含めることができる。前記制御マスターは、当該制御マスター送信元を示すため、電源投入時に前記MCRSフラグを設定できる。このMCRSフラグは、通常の動作中はクリア不可能である。セッション用に前記制御バスを前記制御マスターと共有するスレーブは、前記SCRSフラグを設定することができる。当該スレーブが前記バスを要求する際、または当該スレーブが前記制御マスターからのバス要求に確認応答する際、このスレーブは前記SCRSフラグを設定できる。このフラグは、セッションが完了したことを当該スレーブが決定した時点でクリア可能になる。前記MCRSフラグおよび前記SCRSフラグを使うと、前記物理インターフェースにおいてパケットの発信制御ブロック部にデータが挿入されているかどうかを決定することができる。前記バスがアイドル状態の場合、多くのスレーブは、前記SCRSフラグをアサートして前記制御バスの使用を要求できる。前記バスを許可されていないスレーブは、それぞれ前記SCRSフラグのコピーをディアサートする必要がある。
各装置内の制御ビットは、前記装置がデータを送信するのか、またはデータを通過させるのかを指示するため使用できる。前記マスター/スレーブデータを利用する際は、セッションが確立および確保される。これを受け、セッション中に前記バスが取得される際、ただし前記セッションのパートナー装置に新しいデータが利用可能になったことを通知する前に、前記制御ビットが設定される。同様に、このビットは、セッション終了前に、またはその一環としてクリアされる。
スレーブは、前記SCRSフラグに必ずゼロを書き込むとは限らない。ゼロであれば、前記SCRSフラグは、常にインバウンドデータパス上で上書きされるため、前記スレーブ経由で前記制御マスターに接続された装置からは認識されない。一実施形態では、MCRSフラグおよびSCRSフラグを設定するため以下の手順が使用される。
前記MCRSフラグおよび前記SCRSフラグのローカルコピーは各装置に保存される。これらのフラグにより、装置は特定の制御ブロック部を前記物理インターフェースレイヤーに書き込むことができる。これらのフラグは、前記MCRSフラグおよび前記SCRSフラグが前記装置における各フラグのローカルコピーと、それに対応したフラグの着信状態との論理ORをとった結果であるという条件下でパケットの前記ソースフラグブロック(Source Flag Block)に転送されることもある。
前記制御マスターまたは前記スレーブがデータを転送する必要がない場合は、前記バスをアイドル状態にするためバス利用可能(Bus Available)フラグが設定される。この場合、前記装置IDは使用されない。前記マスター制御レジスタおよび前記スレーブ制御レジスタの他の全フラグには、ゼロを含めることができる。
前記制御バスが利用可能な場合は、すべての装置がIDLE状態になる。この状態において、前記制御マスターは、この制御マスターからのデータが特定のスレーブ装置に送信されるべきかどうか、またはスレーブが前記バスを要求しているかかどうかを決定できる。どちらかの条件が満たされた場合、前記制御マスターは、前記制御バス経由でデータを送信または受信することができる。一実施形態において、前記制御マスターは、各スレーブが機能しており、かつ前記制御バスに対しリスニングしていることを確認するため、諸スレーブのヘルスチェック(Health Check)を定期的に実施できる。
同様に、各スレーブは、前記制御マスターがそのスレーブとの通信を要求しているかどうか、またはそのスレーブからのデータが前記制御マスターへ送信されるべきかどうかを決定できる。どちらかの条件が満たされた場合、前記スレーブは、前記制御バス経由でデータを送信または受信することができる。
一実施形態において、前記制御マスターには、その制御マスターの前記制御バス上での動作を定義する状態機械を含めることができる。次の表は、種々の例示的な状態を説明したものである。
同様に、一実施形態では、各スレーブに、そのスレーブの前記制御バス上での動作を定義する状態機械を含めることができる。次の表は、種々の例示的な状態を説明したものである。
当業者であれば、上記に関する追加状態または代替状態は、本明細書に含まれた開示に基づき容易に実施および理解されるであろう。
図8は、一実施形態に係るマスターからスレーブへのデータ転送の例示的なイベントのシーケンスを示した図である。図8に示すように、前記制御マスターは、前記BAVLフラグが設定され他の全フラグがクリアされた状態で、IDLE状態になっている。前記制御マスターは、当該制御マスターの処理装置がスレーブにデータを送信する必要があることを決定する(805)。この制御マスターは、BAVLフラグをクリアして諸スレーブが前記制御バスを要求しないようにし、そのバスを要求するためMREQフラグを設定し、前記マスター装置IDの位置に望ましいスレーブの論理装置IDをロードする。この情報を含んだパケットが送信されると(810)、前記制御マスターは前記WAIT FOR BUS状態になる。
前記望ましいスレーブはIDLE状態で前記パケットを受信し、BAVLが設定されていることを認識し、前記マスター装置ID値を自らの論理装置IDと比較する(815)。このスレーブで論理装置IDの一致が認められると、前記SACKフラグ、前記SSAフラグ、および前記SCRSフラグがそれぞれ設定され(820)、前記制御マスターに戻される。次いで当該スレーブは、前記WAIT FOR DATA状態になる。
前記制御マスターはSACKが設定されたことを認識し、応答内にバス許可を設定する(825)。前記制御マスターは、次に前記PROCESS TRANSMIT DATA状態になる。この状態で、当該制御マスターは、前記マスター/スレーブデータ部にデータを書き込み、マスター/スレーブデータ挿入制御(Master/Slave Data Insertion Control)ビットをアサートし、SEND DATA状態になる前にMACKをトグルする(830)。
前記スレーブは、前記MACKがトグルされ新しいデータの存在が示されていることを決定し、PROCESS RECEIVE DATA状態に入る(835)。この状態で、当該スレーブは、前記マスター/スレーブデータ部からのデータを当該スレーブの処理装置に転送することができる(840)。このスレーブは次いで自らのSACKフラグをトグルし、WAIT FOR DATA状態に戻る。
前記制御マスターは、前記SACKフラグがトグルされたことを認識すると、前記PROCESS TRANSMIT DATA状態に戻り、送信する追加データがあるかどうか決定し(845)、ある場合は上記の工程を繰り返す。転送すべきデータが残っていない場合、当該制御マスターは、マスター/スレーブデータ挿入制御ビットをクリアし、BGRNTをクリアし、MACKをトグルして、MREQをクリアする。次に前記パケットが前記スレーブに送信され、前記制御マスターは前記WAIT FOR RELEASE状態になる(850)。
前記スレーブは、BGRNTおよびMREQがクリアされたことを決定し(855)、前記制御マスターがデータ送信を完了したことを認識する。次にこのスレーブは、IDLE状態に戻る前に、前記SSAフラグ、前記SCRSフラグ、前記SACKフラグ、および前記SREQフラグをクリアする(860)。
前記制御マスターは、前記SSAビットがクリアされたことを決定し、前記IDLE状態に戻る(865)。このIDLE状態への移行の一環として、前記制御マスターは、前記MACKフラグをクリアし、前記BAVLフラグを設定する(870)。
図9は、一実施形態に係るスレーブからマスターへのデータ転送の例示的なイベントのシーケンスを示した図である。図9に示すように、前記スレーブは、前記バスが利用できる状態で、前記IDLE状態にある。当該スレーブは、当該スレーブの処理装置が前記制御マスターにデータを送信する必要のあることを決定する(905)。前記スレーブは、前記SREQフラグおよび前記SCRSフラグを設定し、前記SACKフラグをクリアし、当該スレーブ装置IDの位置を論理装置IDに設定する。この情報を含んだパケットが送信されると(910)、前記スレーブはWAIT FOR BUS状態になる。
前記制御マスターはIDLE状態で前記パケットを受信し、SREQが設定されていることを認識し、前記スレーブ装置IDを検証する(915)。次にこの制御マスターは、前記マスター装置IDを前記スレーブの装置IDに設定し、前記BAVLフラグおよび前記MACKフラグをクリアし、発信されるデータパケットにBGRNTを設定する(920)。次いで当該制御マスターは、前記WAIT FOR DATA状態になる。
前記スレーブは、BGRNTが設定されたこと、および前記マスター装置IDが当該スレーブの論理装置IDに合致することを決定する(925)。このスレーブは、次に前記PROCESS TRANSMIT DATA状態になる。この状態で、当該スレーブは、前記マスター/スレーブデータ部にデータを書き込み、前記マスター/スレーブデータ挿入制御ビットをアサートし、SEND DATA状態になる前にSACKをトグルする(930)。
前記制御マスターは、前記SACKがトグルされ新しいデータの存在が示されていることを決定し、PROCESS RECEIVE DATA状態に入る(935)。この状態で、当該制御マスターは、前記マスター/スレーブデータ部からのデータを当該スレーブの処理装置に転送することができる(940)。この制御マスターは次いで自らのMACKフラグをトグルし、WAIT FOR DATA状態に戻る。
前記スレーブは、前記MACKフラグがトグルされたことを認識すると、前記PROCESS TRANSMIT DATA状態に戻り、送信する追加データがあるかどうか決定し(945)、ある場合は上記の工程を繰り返す。転送すべきデータが残っていない場合、当該スレーブは、マスター/スレーブデータ挿入制御ビットをクリアし、SREQをクリアし、SACKをトグルする。次に前記パケットが前記制御マスター送信され、前記スレーブは前記WAIT FOR RELEASE状態になる(950)。
前記制御マスターは、SREQがクリアされたことを決定し(955)、前記スレーブがデータ送信を完了したことを認識する。そして、この制御マスターは、前記BGRNTフラグをクリアし、前記MACKフラグをトグルする(960)。
前記スレーブは、前記BGRNTがクリアされたことを決定し、前記IDLE状態に戻る(965)。このIDLE状態への移行の一環として、前記スレーブは、前記SSAフラグおよび前記SCRSフラグをクリアする(970)。
前記制御マスターは、前記SSAビットがクリアされたことを決定し、前記IDLE状態に戻る(975)。このIDLE状態への移行の一環として、前記マスター制御レジスタ内のフラグは、BAVLフラグ以外すべてクリアされる。
一実施形態では、前記制御ブロック部がアプリケーションレイヤーにトランスペアレントな(認識されない)エラー取り扱いアプローチを提供する。制御ブロックデータには、メモリプリセットダンプ、ファームウェアダウンロード、音量調節(ボリュームコントロール)コマンドなどを含めることができる。そのようなデータは、元のままの状態で送信先に届く必要がある。エラー検出および回復のスキームは、制御ブロックデータに内在する場合がある。一実施形態において、制御ブロックデータは、正常に受信されるまで継続的に再送信される。
前記制御バスでの制御データ送信中には、複数タイプのエラーが起こりうる。例示的なエラータイプには、無効なCRC計算、バス競合、装置ID不一致などがある。
前記制御ブロックには、前記制御ブロックデータ(すなわち、マスター制御レジスタおよびID、スレーブ制御レジスタおよびID、およびマスター/スレーブデータ部)専用の16ビットCRCを含めることができる。前記システム上のノイズまたは間欠的ショートによりフリップ(反転)したビットは、通常、CRCエラーにつながる。処理装置が制御ブロックデータを修正する場合には、CRCが計算される。制御ブロックを読み取る場合、処理装置は、有効な制御ブロックCRCとともに完全な制御ブロックを必要とする場合がある。
一実施形態では、CRCは、装置に着信する各制御ブロックごとに検証される。各CRCはチェックされ、有効であればそのデータがバッファされる。前記処理装置が前記パケット要求フラグにより制御ブロックパケットを要求すると、データは、前記バッファから前記受信バッファへ転送される。
代替実施形態では、CRCは、前記処理装置により要求された場合のみ検証される。このため、前記処理装置が次の制御ブロックパケットを要求すると、着信する制御ブロックは、前記受信バッファへ転送される。CRCは、データの転送に伴い、またはデータが前記受信バッファで完全に受信された後で計算でき、受信されたCRCと比較できる。CRC同士が一致すると、前記パケット要求フラグがクリアされ、前記処理装置が前記受信バッファからデータを読み出す。それ以外の場合、前記パケット要求フラグはクリアされない。制御ブロックは、有効なCRCが検出されるまで処理され続ける。
別の代替実施形態では、前記処理装置がそれ自体でCRCを検証する。この処理装置は、前記制御ブロックデータを前記受信バッファからCRC検証論理へ転送する。CRC同士が一致すると、そのデータは処理される。それ以外の場合、前記処理装置は前記データを破棄し、前記パケット要求フラグを設定して再びパケットを要求しなければならない。
第2のエラータイプは、バス競合である。バス競合は、例えば複数のスレーブが実質的に同時に前記制御バスを要求した場合に起こる。制御マスターがスレーブにデータを送信する旨を要求する一方、そのスレーブ(または別のスレーブが)前記制御マスターにデータを送信する旨を要求するという場合もある。前記制御バスに投入される制御ブロックデータは性質的に非同期であるため、制御ブロックは、複数の装置により書き込まれた情報を含む可能性があり、その各装置はそれぞれ他の装置が同様にデータ書き込みを行っていると認識していない可能性がある。ほぼいかなる場合でも、前記受信装置はバス競合エラーを検出し、これを扱うことができる。すべての通信は前記制御マスターを通過するため、前記制御マスターは、特定装置に対する前記制御バスの許可を管理する。このため、当該制御マスターは、発生するセッションのパラメータと、それに関与するスレーブとを決定することができる。
複数装置からのバス競合に伴うエラーは、装置ID不一致(Device ID Mismatch)エラーにつながる。受信されたスレーブ装置IDが前記マスター装置IDに一致しないことを前記制御マスターが検出すると、受信された制御ブロック情報は無視され、前記制御マスターは現在の制御ブロックパケットを出力し続ける。スレーブは、受信されたマスター装置IDが当該スレーブの論理装置IDに一致しないことを検出すると、前記制御マスターが別のスレーブとセッション中であることを決定する。これにより、このスレーブは前記制御ブロックへのデータ書き込みを停止し、前記制御バスが再び利用可能になるまでIDLE状態になる。前記制御バスが再び利用可能になったら、その時点で前記制御バスの要求を再び試行することができる。
一実施形態において、前記制御バスは、前記制御マスターおよびスレーブが双方向データ転送を行える場合、全二重モードで動作する。そのような一実施形態では、前記マスター制御ソースレジスタフラグは、前記制御マスターがいつ新しいデータを前記スレーブに送信したか示し、前記スレーブ制御ソースレジスタフラグは、前記スレーブがいつ新しいデータを前記制御マスターに送信したか示す。このような一実施形態の実施に必要な制御構造の修正については、当業者であれば、本明細書に含まれる開示から明確に理解されるであろう。
一実施形態では、前記制御バスに、複数のデータバッファを含めることができる。このような一実施形態において、送信装置(前記制御マスターかその通信先であるスレーブ)は、初期、1若しくはそれ以上のデータバッファに書き込みを行う。受信装置は、前記バッファの1つに含まれるデータを処理する際、そのデータの受信について確認応答を行う。すると、前記送信装置は、確認応答が行われたバッファに新しいデータを書き込む。これにより、データ転送は迅速化できる。
一実施形態では、複数の制御バスを導入できる。そのような一実施形態において、前記制御マスターは、各スレーブを特定の制御バスに割り当てることにより、複数のスレーブ装置と直接通信することができる。
制御バスアーキテクチャを実施(実装)する付加的および/または代替的な方法については、当業者であれば、本明細書に開示された実施形態の説明および示唆に基づき明確に理解されるであろう。
クロックマスター
一実施形態では、1つのノードを前記クロックマスターとして指定することができる。このクロックマスターは、ネットワーキングシステムに含まれる諸ノードの同期に関与する。一実施形態では、前記クロックマスターは、クロックマスターパケット長(Clock Master Packet Length:CMPL)を書き込むことができ、このCMPLは前記クロックマスターが各発信データパケット内に生成するパケットの長さに関する基準時間を示す。一実施形態では、このCMPLは小数部分を伴ったバイナリコード(2進コード)正数である。例えば、前記CMPLは、0〜2047.9375の数を表す、4ビットの小数部付き11ビット整数であってよい。他の装置は、この小数クロック指標を使用して、自らのクロックを前記クロックマスターに同期させることができる。
一実施形態では、1つのノードを前記クロックマスターとして指定することができる。このクロックマスターは、ネットワーキングシステムに含まれる諸ノードの同期に関与する。一実施形態では、前記クロックマスターは、クロックマスターパケット長(Clock Master Packet Length:CMPL)を書き込むことができ、このCMPLは前記クロックマスターが各発信データパケット内に生成するパケットの長さに関する基準時間を示す。一実施形態では、このCMPLは小数部分を伴ったバイナリコード(2進コード)正数である。例えば、前記CMPLは、0〜2047.9375の数を表す、4ビットの小数部付き11ビット整数であってよい。他の装置は、この小数クロック指標を使用して、自らのクロックを前記クロックマスターに同期させることができる。
図10Aは、一実施形態に係る例示的なクロックマスターステータス転送を示した図である。図10Aに示したように、前記クロックマスターは、当該ネットワーキングシステムの電源投入時に決定される(1002)。例えば前記制御マスターは、初期、前記クロックマスターとして割り当てられてよい。前記制御マスターは、前記クロックマスターステータスを第2の装置に転送する旨の要求を前記第2の装置から受信すると(1004)、「すべての音声を消音(ミュート)」(mute all audio)メッセージを前記ネットワーキングシステムの各ノードにブロードキャストし(1006)、前記第2の装置に承認メッセージを送信することができる(1008)。さらに、前記制御マスターは、全パケットの再送信をブロックし、前記CMPLの送信を停止できる(1010)。一度すべての送信が停止されると(1012)、この新しいクロックマスターは、自らの前記CMPLを含むデータパケットを送信する(1014)。前記制御マスターは、前記新しいクロックマスターから第1のデータパケットを受信すると(1016)、そのパケットと自らのメインポートとで整合性をとり(1018)、再送信を可能にする(1020)。次に、前記制御マスターは前記ネットワーキングシステムの各ノードに「すべての音声を消音解除(ミュート解除)」メッセージをブロードキャストする(1022)。
前記「すべての音声を消音」メッセージおよび前記「すべての音声を消音解除」メッセージを使うと、前記ネットワーキングシステムから意図せず音声データが出力されるのを防ぐことができる。このように、これらのメッセージは、出力時のデータ破損および/または前記ノード装置の出力損傷を防ぐ。
前記クロックマスターがクロックマスターであることをやめる必要があると前記制御マスターが決定した場合は、同様な一連の動作が実施可能である。図10Bに示すように、前記制御マスターは、クロック制御権を前記クロックマスターから当該制御マスターに譲渡する旨の要求を、アプリケーションまたはユーザインターフェースから受信する場合がある(1030)。当該制御マスターは、前記ネットワーキングシステム内の各ノードに「すべての音声を消音」メッセージをブロードキャストし(1032)、クロックマスターステータスの送信を終了させるコマンドを前記クロックマスターに送信する(1034)。すると、前記クロックマスターはメッセージの再送信をブロックし、前記CMPLの送信を停止する(1036)。一度すべての送信が停止されると(1038)、新しいクロックマスター(前記制御マスター)は、前記CMPLを含んだデータパケットを送信する(1040)。旧クロックマスターは、前記制御マスターから第1のデータパケットを受信すると(1042)、そのパケットと自らのメインポートとで整合性をとり(1044)、再送信を可能にする(1046)。次に、前記制御マスターは前記ネットワーキングシステムの各ノードに「すべての音声を消音解除」メッセージをブロードキャストする(1048)。前記クロックマスターを前記制御マスターに移す理由(状況)としては、前記クロックマスター装置が当該ネットワーキングシステムから取り外されることを利用者が前記制御マスターに通知した場合などがある。
図10Cに示すように、前記クロックマスターが機能しなくなった場合(1050)、前記制御マスターは前記クロックマスターの障害を検出し(1052)、「すべての音声を消音」メッセージをブロードキャストして(1054)、前記CMPLを含むパケットの受信停止を待機する(1056)。次に、前記制御マスターは、自らのCMPLを使ってパケット送信を開始し(1058)、当該ネットワーキングシステムの各ノードに「すべての音声を消音解除」メッセージをブロードキャストする(1060)。
図10Dに示したように、前記制御マスターを使うと、1つのスレーブ装置から第2のスレーブ装置へ制御権を移すこともできる。まず、新しいクロックマスターになるための要求を、1つの装置が前記制御マスターに送信する(1070)。前記制御マスターは、前記ネットワーキングシステム内の各ノードに「すべての音声を消音」メッセージをブロードキャストし(1072)、前記要求の送信元である新しいクロックマスターに承認メッセージを送信し(1074)、クロックマスターステータス送信を終了させるメッセージを旧クロックマスターに送信する(1076)。前記旧クロックマスターは、再送信をブロックし、自らのCMPL送信を停止する(1078)。前記新しいクロックマスターは、急クロックマスターからの送信が停止されたのち、新しいCMPLを含んだパケットの送信を開始する(1080)。前記制御マスターおよび前記旧クロックマスターは、それぞれ前記新しいクロックマスターからの第1のパケットを待機し(1082)、そのパケットに各々のメインポートを整合させる(1084)。次に、前記旧クロックマスターが再送信を可能にし(1086)、前記制御マスターが当該ネットワーキングシステムの各ノードに「すべての音声を消音解除」メッセージをブロードキャストする(1088)。
シリアルバスプロトコル
一実施形態では、動的に割り当てられる複数のスロットを含んだシリアルバスを導入(実装)することができ、これにより非同期シリアル通信の単一方向チャネル導管を提供できる。各スロットは、例えばMIDI(Musical Instrument Digital Interfaceの略称)、RS−232、および汎用入出力(General Purpose Input/Output:GPIO)のうち1若しくはそれ以上のデータに使用される。
一実施形態では、動的に割り当てられる複数のスロットを含んだシリアルバスを導入(実装)することができ、これにより非同期シリアル通信の単一方向チャネル導管を提供できる。各スロットは、例えばMIDI(Musical Instrument Digital Interfaceの略称)、RS−232、および汎用入出力(General Purpose Input/Output:GPIO)のうち1若しくはそれ以上のデータに使用される。
前記シリアルバスは、物理ハードウェア接続とデータパケット内のスロットとの間のデータ用インターフェースを提供することができる。このインターフェースには、例えば送信部および受信部を含めることができる。前記送信部は、例えばMIDI−Inポート、RS−232ポート、またはGPIO入力でのサンプルデータを介してデータを受信できる。受信されたデータは、次に前記データパケット内のスロットにラッチされる。そのデータが格納されるに伴い、(このデータがラッチされたシリアルスロットに対応する)新規データフラグ(New Data Flag)がトグルされる。この新規データフラグにより、受信装置は、いつ新しいデータが前記パケット内に現れるかを決定できるようになる。一実施形態において、データの確認は、例えば3つの連続パケットのうち2つについて受信データをマッチングすることにより行える。代替実施形態では、CRCチェックサムを実行できる。
前記受信部では、新しいデータがないか前記シリアルスロットデータを監視できる。前記データが有効な場合、いずれかの新規データフラグがトグルされている場合、受信パケットプロセッサがそのデータをロードできる。次いで有効なデータは、例えばGPIO出力ポートまたはUART出力レジスタに渡されたのち、RS−232またはMIDI出力ポートで送信される。一実施形態では、前記データは、送信前にデバウンスされ、さらに/または冗長性についてチェックされる。
前記データパケットの特定スロットには、MIDI−In、RS−232受信(RS−232 Receive)、GPIO入力(GPIO Input)など種々の入力ポートを割り当てることができる。一度特定のポートがスロットに割り当てられると、データがMIDI入力またはGPIO入力からのものであれば、当該ネットワーキングシステム内のいずれのノードもそのデータにアクセスできるようになる。前記データがRS−232受信ポートからのものである場合、RS−232はポイントツーポイントプロトコルであるため、前記データは、特定の送信先ノードからしかアクセスできない。
一実施形態において、前記制御マスターは、有効な入力ポート全タイプのテーブルを維持できる。このテーブルには、例えばパケット内の特定データスロットに特定ポートタイプのデータが投入可能かどうかを定義する16ビットエントリを含めることができる。このテーブルは、データの挿入または監視に利用可能なスロットを各ノードが識別できるよう、当該ネットワーキングシステムの全ノードにブロードキャストできる。一実施形態では、前記ネットワーキングシステム内のノード数は、シリアルデータスロット数を超える場合もある。
一実施形態では、前記データパケット内の1若しくはそれ以上のスロットに、仮想データケーブルを関連付けることができる。シリアルデータ送信用のノードには、仮想データケーブルを一時的に割り当てることができる。一実施形態では、仮想データケーブルに、複数ノード間で直接通信を行うための複数のシリアルデータスロットを含めることができる。データパケットにおける仮想データケーブルのスロットへの関連付けは、当該ネットワーキングシステム内の諸ノードにより維持される。そして、この情報は、物理ポートをパケットスロットにルーティングするため使用される。
各ノードは、使用中のスロットおよび各スロットに挿入されたデータのタイプに関する比較的最新のマップとともに提供されるため、各ノードのユーザインターフェースは、ボックスを割り当てようとしている利用者、または特定の仮想データケーブルを監視しようとしている利用者に情報を表示することができる。一実施形態では、前記ノードにより、利用者は、データパケットへのデータ送信用に非アクティブなシリアルデータスロットだけを選択できる。
ノードが仮想データケーブル要求をローカルに検証すると、その要求は、当該ノードから前記制御マスターへ送信される。シリアルデータスロットにデータを挿入するよう前記ノードが要求すると、前記制御マスターは、以前割り当てられていた仮想データケーブルに前記ノードがデータを挿入しようとしていないことを確認する。さらに、当該制御マスターは、前記データパケット内に利用可能な空きデータスロットがあることを確認する。これらの条件が満たされると、この制御マスターは、仮想データケーブルからデータスロットへの割り当てを行い、要求を発した前記装置に前記仮想データケーブルを許可する。さらに、前記制御マスターは、前記装置が挿入用に使用すべき物理スロットを前記装置に通知することができる。次に、前記制御マスターは前記スロットマップを更新し、当該ネットワーキングシステムの各ノードに更新済み前記マップをブロードキャストする。同様に、ノードがスロットを使用する必要がなくなった場合、前記制御マスターは、前記スロットの割り当てを解除し、前記スロットマップを更新し、更新された前記マップを前記ネットワーキングシステムの各ノードにブロードキャストする。
前記ノードが特定の仮想データケーブルのリスニングを必要とする場合、前記制御マスターは、要求の送信元であるノードへ要求に対し確認応答する。ただし、仮想データケーブルに対しリスニングするノードはそれ以上のシステム資源を必要としないため、前記スロットマップのブロードキャストは不要である。
前記制御マスターが仮想データケーブルをノードに許可すると、そのノードは、前記仮想データケーブルをデータ送信に使用できるようになる。前記仮想データケーブルの割り当ては、ローカルに格納できる。一実施形態において、その割り当ては、前記ノードの不揮発性メモリに格納される。前記割り当てを不揮発性メモリに格納することにより、前記ノードは、システムに電源が投入されるたび、同じ仮想データケーブルを要求することができる。この場合、前記要求は(上記のとおり)前記ノードが列挙された後で可能になる。
RS−232は双方向ポイントツーポイントプロトコルであるため、当該ネットワーキングシステムは、各RS−232仮想データケーブルにつき2つのデータスロットを予約する必要がある。また、前記制御マスターは、同じRS−232仮想データケーブルに必ず2つだけ装置が割り当てられるようにしなければならない。前記制御マスターは、前記RS−232ポートについて受信側および送信側の割り当ても行う。換言すると、前記制御マスターは、RS−232仮想データケーブルで接続された複数ノードが同じデータスロットにデータを挿入しないようにしなければならない。
自動プラグ検出
従来のシステムにおいて、ステレオヘッドフォン増幅器回路は、Tip−Ring−Sleeve(略称TRS)プラグを伴うステレオヘッドフォン用に設計されている。効果的に大電流駆動を提供するステレオヘッドフォンジャック(差し込み口)にTip−Sleeve(略称TS)プラグでモノケーブルを挿入すると、例えば右チャネル出力が直接アースに短絡されてしまう。この場合、(1)右チャネルの出力回路がアースに大電流を駆動するため電力が浪費され、前記出力回路が損傷する、および(2)右チャネルの音声情報が出力から失われる、という2つの望ましくない効果が生じる。このため、従来のシステムにおいて、TSプラグは左チャネルからのみ情報を受信する。従来のシステムでは、モノモードおよびステレオモードのどちらかを手動で選択できる。しかし、システムへの前記プラグ挿入時に行うこのような操作は、リスナーの手間を増やすことになる。
従来のシステムにおいて、ステレオヘッドフォン増幅器回路は、Tip−Ring−Sleeve(略称TRS)プラグを伴うステレオヘッドフォン用に設計されている。効果的に大電流駆動を提供するステレオヘッドフォンジャック(差し込み口)にTip−Sleeve(略称TS)プラグでモノケーブルを挿入すると、例えば右チャネル出力が直接アースに短絡されてしまう。この場合、(1)右チャネルの出力回路がアースに大電流を駆動するため電力が浪費され、前記出力回路が損傷する、および(2)右チャネルの音声情報が出力から失われる、という2つの望ましくない効果が生じる。このため、従来のシステムにおいて、TSプラグは左チャネルからのみ情報を受信する。従来のシステムでは、モノモードおよびステレオモードのどちらかを手動で選択できる。しかし、システムへの前記プラグ挿入時に行うこのような操作は、リスナーの手間を増やすことになる。
一実施形態では、ハードウェアおよびソフトウェアを自動的に使用し、プラグが音声システムに挿入されたことと、挿入されたプラグのタイプとが検出されるようにできる。このプラグ情報を使うと、システムは、モノ出力を供給すべきかステレオ出力を供給すべきか自動的に決定できる。これにより、出力ゲイン回路が保護でき、またステレオ信号がモノ聴音装置にルーティングされる場合は自然な音声に聞こえる混合音が提供できる。
図11は、一実施形態に係る自動プラグ検出工程の例示的なフローチャートを示した図である。図11に示すように、当該ユニットではTRSジャックのチップコネクタからプラグ検出信号を監視し(1105)、プラグが前記TRSジャックに挿入された場合、それを自動的に検出することができる。通常は、このコネクタを抜くと、例えばロー状態になる。この信号の状態は、プラグを差し込むと、プルアップに接続されたスイッチがトリガーされて変化する。プロセッサはこの信号の変化を検出し、プラグが挿入されたことを認識できる。プラグ着脱時の異形信号を除去するため、前記プラグ検出信号をデバウンスする場合もある。一実施形態では、プラグが挿入されその信号が測定されるまで音声を再生することはできない。
新しいプラグが完全に差し込まれると、そのプラグがモノかステレオか決定される(1110)。一実施形態では、非常にローパスなフィルターで減衰された直流信号が、前記ジャックの前記リングコネクタへ送信される。例えば、この信号は約6Hzにまでフィルターされ、また振幅は約350mV程度になる。このような信号では、挿入されたプラグのヘッドフォンに突発的な可聴音が伝わるのを防ぐことが可能である。本開示の範囲内で他の信号を使ってもよい。
次に、前記信号が検出されたかどうかを決定するため、前記リングコネクタが監視される(1115)。信号が検出されなかった場合は、前記リングコネクタが、(接地された)スリーブコネクタに短絡したと決定され、モノプラグが挿入されたものと決定される(1120)。それ以外の場合は、前記リングコネクタが前記スリーブコネクタを介してアースに短絡しないことから、ステレオプラグが挿入されたものと決定される(1130)。
一実施形態では、前記リングコネクタがコンパレータに接続される。このコンパレータへの他の入力は約30mVといった低基準電圧に接続でき、このコンパレータの出力がステレオプラグ検出信号となる。これにより、前記リングコネクタと前記スリーブコネクタとの間の抵抗が閾値を超えた場合(アースに短絡しない場合)、前記コンパレータによりステレオプラグが差し込まれたことが示される。
次に、前記ステレオプラグ検出信号に基づき、前記出力信号のデジタル処理が行われる。モノプラグが検出されると、前記出力信号は実質的に前記左チャネルなどだけで音声情報を伝達する(1125)。これが、左右入力チャネル間でバランスの取られたモノ信号となる。これにより、前記出力回路も高駆動レベルから保護される。これと対称的に、ステレオプラグが検出されると、そのステレオ入力信号は前記出力回路へ渡される(1135)。
当該自動プラグ検出のアルゴリズムは、電源投入時、またプラグ挿入が検出された時点で随時実行できる。さらに、当該ユニットのステレオ設定はデジタルドメインで維持され、プラグ検出論理は後で実行されるため、当該構成要素に現在プログラムされているパン設定は、モノプラグの場合オーバーライドされる。この自動プラグアルゴリズムは「パン後」に実行されるため、利用者のパン設定に変更を加える必要はない。したがって前記論理は、正面パネルに表示される場合でも、事前設定されたメモリ内にある場合でも、利用者のパン設定に何ら影響を及ぼさない。内部パン設定は維持され、上記のアルゴリズムを使った音声信号の自動再ルーティングは利用者にはトランスペアレントなものになる(認識されない)。
LEDパルス幅変調
発光ダイオードパルス幅変調(Light Emitting Diode Pulse Width Modulation:LED PWM)は、装置内のLED駆動に使われる電流を限定するため使用される。一実施形態において、このLED PWMは、一度に複数行のLEDを駆動するマトリックス上で使用される。本明細書における用語「点灯」および「消灯」は、利用者から見たLEDの点灯状態を指す。用語「オン」および「オフ」は、LEDへの電流駆動状態を指す。LEDが消灯している場合は常にオフである。しかしLEDが点灯している場合、そのLEDへの電流はオンとオフの間のパルス状態になっている。
発光ダイオードパルス幅変調(Light Emitting Diode Pulse Width Modulation:LED PWM)は、装置内のLED駆動に使われる電流を限定するため使用される。一実施形態において、このLED PWMは、一度に複数行のLEDを駆動するマトリックス上で使用される。本明細書における用語「点灯」および「消灯」は、利用者から見たLEDの点灯状態を指す。用語「オン」および「オフ」は、LEDへの電流駆動状態を指す。LEDが消灯している場合は常にオフである。しかしLEDが点灯している場合、そのLEDへの電流はオンとオフの間のパルス状態になっている。
処理装置は、特定のLEDが点灯していると決定した場合、前記LEDに対応したビットを設定する。特定のシステムではM×NのLEDアレイが使われる。したがって、これらのビットはMNビットの文字列(「LED」ビット)と見なされる。これらのLEDビットは1〜MNで採番される。LEDビットは、例えば所与の行内でLEDビット1〜LEDビットM、LEDビットM+1〜LEDビット2Mのように順次処理される
一実施形態において、点灯していると考えられる各LEDは、一定の(比較的短い)時間しかオンになっていないが、これは、利用者にとって、例えば5mAで駆動されるLEDも、50mA、10%デューティサイクルで駆動されるLEDも同程度の輝度に見えるためである。このため、一実施形態では点灯している各LEDが短時間だけオンになっており、点灯中と指定されたLEDでも、実際には大半の時間オフになっている可能性がある。ただし、点灯しているように見えるよう比較的大電流で駆動されている可能性がある。
一実施形態において、点灯していると考えられる各LEDは、一定の(比較的短い)時間しかオンになっていないが、これは、利用者にとって、例えば5mAで駆動されるLEDも、50mA、10%デューティサイクルで駆動されるLEDも同程度の輝度に見えるためである。このため、一実施形態では点灯している各LEDが短時間だけオンになっており、点灯中と指定されたLEDでも、実際には大半の時間オフになっている可能性がある。ただし、点灯しているように見えるよう比較的大電流で駆動されている可能性がある。
点灯している各LEDは、特定の時間だけオンにされる。LEDがオフにされる場合は、次のLEDビットが処理される前に、1つのLEDから別のLEDに電流が漏れて一部のLEDが不適切に暗く点灯するのを防ぐための最低限の時間(「LEDデッドタイム」と呼ばれる)が必要になる。LEDをオンおよびオフにする時間長の決定には、LEDタイマーが使われる。
一実施形態では、各LEDがマスターサイクルタイマー失効前に処理されると、そのマスターサイクルタイマーが失効するまで、LED PWM工程が停止される。これにより、前記LED PWM工程に使われる電流は低減される。
一実施形態では、格納された値へのアクセスにより、一度に行われる行スキャン数が決定できる。代替実施形態では、スキャンされる各行が、例えばメモリに格納されたビットで表される。特定のスキャン行に対応するメモリ位置の例示的な値は、次の表のとおりである。一実施形態では、前記メモリ位置への値書き込みにより、行スキャン動作を開始できる。特定のパス内でスキャンされる例示的な行シーケンスも、この表の各値について示している。
次の疑似コードは、例示的なLED PWMスキームの動作を表したものである(以下において、MIN[x,y]はx<yの場合xに等しい。それ以外の場合はyである)。
図12は、一実施形態に係る例示的なLED PWMスキームにより生成されたタイミングチャートを示した図である。図12に示したように、このLEDアレイは、(pado_ledc[0:7]と識別される)8列および(pado_ledr[0:14]と識別される)15行を有する。一実施形態では、これらの行および列の有効状態がどちらもハイの場合、それに対応した行および列のLEDが必要に応じて駆動される。例えば図12に示すように、有効な第1のLEDグループとして記載されているのは、3列12〜14行である。
当業者であれば、本明細書に開示した説明に基づき、一度に複数の行をスキャンするLED PWMスキームを実施する代替方法が実施可能で、また明確に理解されるであろう。
以上に開示した特徴および機能等の変形形態またその代替形態は、他の多くの異なるシステムまたはアプリケーションに望ましい態様で組み込めることが理解されるであろう。また当業者であれば、現時点で予測または予期できない種々の代替形態、変更(修正)形態、変形形態、または改良形態が今後作成可能であり、これらの形態が添付の特許請求の範囲に包含されるよう意図されていることも理解されるであろう。
本明細書で説明する実施形態の態様、特徴、有益性、および優位性は、以下の説明、添付の請求項、および添付の図面を参照することにより明確に理解される。
図1は、一実施形態に係る例示的な非マージャ装置を示した図である。
図2は、一実施形態に係る例示的なマージャ装置を示した図である。
図3は、一実施形態に係る制御マスター(Control Master)の例示的な初期状態を示した図である。
図4は、一実施形態に係るスレーブ装置の例示的な初期状態を示した図である。
図5A〜5Dは、一実施形態に従い装置を初期化および列挙する工程中の例示的なネットワーク状態図を示した図である。
図5A〜5Dは、一実施形態に従い装置を初期化および列挙する工程中の例示的なネットワーク状態図を示した図である。
図5A〜5Dは、一実施形態に従い装置を初期化および列挙する工程中の例示的なネットワーク状態図を示した図である。
図5A〜5Dは、一実施形態に従い装置を初期化および列挙する工程中の例示的なネットワーク状態図を示した図である。
図5Eは、一実施形態に係る例示的なネットワーク状態図を示した図である。
図6は、一実施形態に係るソースフラグ(Source Flag)の例示的なデータフローを示した図である。
図7Aは、一実施形態に係る装置内の例示的な制御バス構成要素を示した図である。
図7Bは、一実施形態に係る装置内の別の例示的な制御バス構成要素を示した図である。
図8は、一実施形態に係るマスターからスレーブへのデータ転送の例示的なイベントのシーケンスを示した図である。
図9は、一実施形態に係るスレーブからマスターへのデータ転送の例示的なイベントのシーケンスを示した図である。
図10Aは、一実施形態に係る前記制御マスターからの例示的なクロックマスター(Clock Master)ステータス転送を示した図である。
図10Bは、一実施形態に係る前記制御マスターへの例示的なクロックマスターステータス転送を示した図である。
図10Cは、一実施形態に係る例示的な障害後クロックマスターステータス回復を示した図である。
図10Dは、一実施形態に係る例示的なクロックマスターステータス転送を示した図である。
図11は、一実施形態に係る自動プラグ検出工程の例示的なフローチャートを示した図である。
図12は、一実施形態に係る例示的なLED PWMスキームにより生成されたタイミングチャートを示した図である。
Claims (22)
- 自動プラグ検出を実施する方法であって、
オーディオジャックにプラグが挿入されたかどうかを検出する工程と、
プラグが挿入された場合、当該プラグがステレオプラグまたはモノプラグのいずれかを決定する工程と、
前記プラグがモノプラグであると決定された場合、実質的に第1の音声チャネルを使って音声情報を送信する工程と、
前記プラグがステレオプラグであると決定された場合、前記第1の音声チャネルおよび第2の音声チャネルを使って音声情報を送信する工程と
を有する方法。 - 請求項1記載の方法において、前記オーディオジャックは、Tip−Ring−Sleeve(略称TRS)ジャックを有し、当該TRSジャックは、チップコネクタと、リングコネクタと、スリーブコネクタとを有するものである。
- 請求項2記載の方法において、前記プラグが挿入されたかどうかを検出する工程は、前記チップコネクタからの信号を監視する工程を有し、前記信号は、プラグが未挿入の場合に第1の値を有し、当該プラグが挿入された場合に第2の値を有するものである。
- 請求項2記載の方法において、前記プラグがステレオプラグまたはモノプラグのいずれかを決定する工程は、
前記リングコネクタに第1の電圧を供給する工程と、
前記リングコネクタの電圧レベルを測定する工程と、
前記リングコネクタから測定された前記電圧レベルが閾値電圧未満の場合、モノプラグが挿入されたことを決定する工程と、
それ以外の場合は、ステレオプラグが挿入されたことを決定する工程と
を有し、
前記閾値電圧は、前記第1の電圧以下である。 - 請求項2記載の方法において、モノプラグが挿入された場合、前記リングコネクタは前記スリーブコネクタに電気接続され、ステレオプラグが挿入された場合、前記リングコネクタは前記スリーブコネクタに電気接続されないものである。
- 請求項5記載の方法において、前記プラグがステレオプラグまたはモノプラグのいずれかを決定する工程は、
前記リングコネクタに第1の電圧を供給する工程と、
前記スリーブコネクタを接地する工程と、
前記リングコネクタの電圧レベルを測定する工程と、
前記リングコネクタから測定された前記電圧レベルが閾値電圧未満の場合、モノプラグが挿入されたことを決定する工程と、
それ以外の場合は、ステレオプラグが挿入されたことを決定する工程と
を有し、
前記閾値電圧は、前記第1の電圧以下である。 - 請求項1記載の方法において、この方法は、さらに、
利用者からの前記音声情報用に1若しくはそれ以上のパン設定を受信する工程を有し、各パン設定は、前記第1の音声チャネルおよび前記第2の音声チャネル用の前記音声情報の少なくとも一部に対し、第1の加重および第2の加重をそれぞれ決定するものである。 - 請求項7記載の方法において、前記実質的に第1の音声チャネルを使って音声情報を送信する工程は、
前記1若しくはそれ以上のパン設定をオーバーライドする工程を有するものであって、前記第1の加重により、前記第1の音声チャネルはそれに対応する音声情報を実質的にすべて受信できるようになり、前記第2の加重により、前記第2の音声チャネルは、それに対応する音声情報について実質的に無効にされるものである。 - 請求項7記載の方法において、この方法は、さらに、
プラグが未挿入の場合は、前記1若しくはそれ以上のパン設定をオーバーライドする工程を有するものであって、前記第1の加重および第2の加重により、前記第1の音声チャネルおよび第2の音声チャネルは、それぞれ対応する音声情報について実質的に無効にされるものである。 - 自動プラグ検出システムであって、
オーディオジャックと、
前記オーディオジャックに接続されたプロセッサであって、前記オーディオジャックにプラグが挿入されたかどうかを決定し、前記挿入されたプラグがステレオプラグまたはモノプラグのいずれかを決定するよう構成されたプロセッサと
を有する自動プラグ検出システム。 - 請求項10記載のシステムにおいて、前記オーディオジャックはTRSジャックを有し、当該TRSジャックは、チップコネクタと、リングコネクタと、スリーブコネクタとを有するものである。
- 請求項11記載のシステムにおいて、このシステムは、さらに、
前記チップコネクタに接続されたスイッチを有し、当該スイッチは、プラグが挿入されるとトリガーされるよう構成されているものである。 - 請求項12記載のシステムにおいて、前記チップコネクタはプルダウン素子を通じて第1の電圧源に電気接続されており、前記スイッチがトリガーされると、前記チップコネクタはプルアップ素子を通じて第2の電圧源に電気接続され、前記プロセッサは前記チップコネクタの電圧を監視するようさらに構成されているものである。
- 請求項13記載のシステムにおいて、前記第1の電圧源は接地(アース)であり、前記第2の電圧源は正電圧を駆動するものである。
- 請求項11記載のシステムにおいて、このシステムは、さらに、
前記リングコネクタに電気接続された供給電圧源と、
閾値電圧を駆動する閾値電圧源と、
前記リングコネクタおよび前記閾値電圧源に電気接続された電圧コンパレータと
を有し、
前記電圧コンパレータは信号を生成するよう構成されており、
前記リングコネクタから測定された電圧レベルが前記閾値電圧より大きい場合、前記信号は第1の値を有し、
前記リングコネクタから測定された電圧レベルが前記閾値電圧より小さい場合、前記信号は第2の値を有するものである。 - 請求項15記載のシステムにおいて、前記プロセッサは、前記信号が前記第1の値を有する場合、挿入されたプラグがステレオプラグであることを決定するよう構成されており、前記信号が前記第2の値を有する場合は、挿入されたプラグがモノプラグであることを決定するよう構成されているものである。
- 請求項11記載のシステムにおいて、モノプラグが挿入された場合、前記リングコネクタは前記スリーブコネクタに電気接続され、ステレオプラグが挿入された場合、前記リングコネクタは前記スリーブコネクタに電気接続されないものである。
- 請求項17記載のシステムにおいて、前記プラグがステレオプラグまたはモノプラグのいずれかを決定する工程は、
前記リングコネクタに電気接続された供給電圧源と、
前記スリーブコネクタに電気接続された接地電圧源と、
閾値電圧を駆動する閾値電圧源と、
前記リングコネクタおよび前記閾値電圧源に電気接続された電圧コンパレータと
を有し、
前記電圧コンパレータは信号を生成するよう構成されており、
前記リングコネクタから測定された電圧レベルが前記閾値電圧より大きい場合、前記信号は第1の値を有し、
前記リングコネクタから測定された電圧レベルが前記閾値電圧より小さい場合、前記信号は第2の値を有するものである。 - 請求項18記載のシステムにおいて、前記プロセッサは、前記信号が前記第1の値を有する場合、挿入されたプラグがステレオプラグであることを決定するよう構成されており、前記信号が前記第2の値を有する場合は、挿入されたプラグがモノプラグであることを決定するよう構成されているものである。
- 請求項19記載のシステムにおいて、このシステムは、さらに、
第1の音声チャネルと第2の音声チャネルとの間のパン設定をそれぞれ制御する、1若しくはそれ以上のパン設定制御を有し、各パン設定は、前記第1の音声チャネルおよび前記第2の音声チャネル用の前記音声情報の少なくとも一部に対し、第1の加重および第2の加重をそれぞれ決定するものである。 - 請求項20記載のシステムにおいて、前記プロセッサは、前記信号が前記第2の値を有する場合、前記1若しくはそれ以上のパン設定をオーバーライドするようさらに構成されており、各前記第1の加重により、前記第1の音声チャネルはそれに対応する音声情報を実質的にすべて受信できるようになり、各前記第2の加重により、前記第2の音声チャネルは、それに対応する音声情報について実質的に無効にされるものである。
- 請求項20記載の方法において、前記プロセッサは、プラグが未挿入の場合、前記1若しくはそれ以上のパン設定をオーバーライドするようさらに構成されており、各前記第1および第2の加重により、前記第1および第2の音声チャネルは、それぞれ対応する音声情報について実質的に無効にされるものである。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72430705P | 2005-10-06 | 2005-10-06 | |
US11/252,577 US20060083259A1 (en) | 2004-10-18 | 2005-10-18 | Packet-based systems and methods for distributing data |
US11/538,504 US20070104332A1 (en) | 2005-10-18 | 2006-10-04 | System and method for automatic plug detection |
PCT/US2006/038974 WO2007044463A2 (en) | 2005-10-06 | 2006-10-05 | System and method for automatic plug detection |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009513042A true JP2009513042A (ja) | 2009-03-26 |
Family
ID=37944962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008534682A Pending JP2009513042A (ja) | 2005-10-06 | 2006-10-05 | 自動プラグ検出のためのシステムおよび方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1941669A2 (ja) |
JP (1) | JP2009513042A (ja) |
WO (1) | WO2007044463A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013518344A (ja) * | 2010-01-27 | 2013-05-20 | レム ホールディングス 3,エルエルシー | カードリーダ装置及び使用方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8360801B2 (en) | 2009-01-21 | 2013-01-29 | Apple Inc. | Contactless plug detect mechanism |
GB2529656A (en) * | 2014-08-28 | 2016-03-02 | Lode Audio Ltd | A system for transmitting low latency, synchronised audio |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5315057A (en) * | 1991-11-25 | 1994-05-24 | Lucasarts Entertainment Company | Method and apparatus for dynamically composing music and sound effects using a computer entertainment system |
KR960016676B1 (ko) * | 1994-10-27 | 1996-12-19 | 삼성전자 주식회사 | 모노/스테레오 커넥터 자동 인식 음성 입력 회로 |
KR100871260B1 (ko) * | 2002-08-24 | 2008-11-28 | 삼성전자주식회사 | 이어잭 플러그 연결 여부 검출 장치 |
US7241179B2 (en) * | 2003-03-05 | 2007-07-10 | Sony Ericsson Mobile Communications Ab | Universal audio jack and plug |
US7349546B2 (en) * | 2003-09-04 | 2008-03-25 | Kyocera Wireless Corp. | System and method for identifying a headset type in an electrical device |
-
2006
- 2006-10-05 JP JP2008534682A patent/JP2009513042A/ja active Pending
- 2006-10-05 EP EP06825498A patent/EP1941669A2/en not_active Withdrawn
- 2006-10-05 WO PCT/US2006/038974 patent/WO2007044463A2/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013518344A (ja) * | 2010-01-27 | 2013-05-20 | レム ホールディングス 3,エルエルシー | カードリーダ装置及び使用方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2007044463A3 (en) | 2009-05-07 |
EP1941669A2 (en) | 2008-07-09 |
WO2007044463A2 (en) | 2007-04-19 |
WO2007044463A9 (en) | 2009-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009512021A (ja) | データを転送するためのシステムおよび方法 | |
JP2009515379A (ja) | データを転送するためのシステムおよび方法 | |
US20060083259A1 (en) | Packet-based systems and methods for distributing data | |
US20070104332A1 (en) | System and method for automatic plug detection | |
JP5383775B2 (ja) | オーディオネットワークの管理 | |
US7403828B2 (en) | System and method for transmitting and distributing audio or video data over a network system having multiple receivers | |
JP4091073B2 (ja) | 家電制御(cec)プロトコル対応装置,cec命令管理方法,cec対応システム,及び音響/映像のエンターテイメントシステム | |
WO2024120171A1 (zh) | 多级级联内置扬声器的全向麦克风灵活组网系统及方法 | |
EP2728835A1 (en) | Music system control method | |
KR100825923B1 (ko) | 네트워크 기반의 디지털 전관방송 시스템 | |
JP2009513042A (ja) | 自動プラグ検出のためのシステムおよび方法 | |
JP4709269B2 (ja) | フレームセグメント内でのデータ送信を表すシグナリングバイト又はコーディングバイオレーションを使用してフレームセグメント内の同期性のネットワークを通して異なる形式のデータを送るための通信システム | |
JP2011097579A (ja) | ネットワークシステム | |
US8107595B2 (en) | Supervised paging, messaging background music and emergency voice evacuation system | |
JP2008517561A (ja) | データ配信用のパケットベースのシステムおよび方法 | |
US20040091122A1 (en) | Communications system | |
JP3702312B2 (ja) | デジタル放送システム | |
JPH10210032A (ja) | 同報通信方法 | |
JP2006504294A (ja) | バス型ネットワークでの通信方法及び装置 | |
JP4867803B2 (ja) | ネットワーク通信システム | |
JP2000115101A (ja) | スタジオ制御システム | |
JPH10164106A (ja) | データ通信システム、装置及び方法 |