用語
「チャネル」は、物理的な接続を指す。例えば、16チャネル音声入力装置は16の物理チャネルを有する。
各チャネルは「スロット」にマップできる。各スロットは、パケット内のある位置に対応する。すなわち、スロットは物理的要素ではない。
「シリアル配線」は、複数の非マージャ(非マージ装置)が直列接続された場合に形成できる。シリアル配線は、車輪のスポーク状に複数マージャに接続でき、さらに/または2つのマージャ間でも接続できる。2つのマージャは、非マージャを間に介さず直接相互接続することもできる。
「非マージャ装置」または「非マージャ」とは、一実施形態に係るネットワーキングシステム内で使用される、2つのポートを有した装置を指す。この非マージャ装置は、データを受信または送信するための入出力物理接続をさらに有することができる。一部のケースでは、ネットワーキングシステムにおける非マージャ装置の1つのポートは、シリアル配線の終端部などで別の装置に接続されない場合もある。非マージャ装置については、以下、より詳細に説明する。
「マージャ装置」または「マージャ」とは、一実施形態に係るネットワーキングシステム内で使用される、3若しくはそれ以上のポートを有した装置を指す。このマージャ装置は、データを受信または送信するための入出力物理接続をさらに有することができる。マージャ装置については、以下、より詳細に説明する。
「ネットワーキングシステム」には、合計で2若しくはそれ以上のノードを有するマージャおよび非マージャの任意の組み合わせを含めることができる。
「着信データストリーム」とは、非マージャ装置またはマージャ装置の入力ポートで受信されるデータを指す。
「発信データストリーム」とは、非マージャ装置またはマージャ装置の発信ポートで送信されるデータを指す。
入力インターフェースから受信されるデータまたは出力インターフェースへ送信中のデータに関して使用する用語「変換」には、アナログデジタル変換、デジタルアナログ変換、特定長のデータセグメントへのデータのスライシング、および/またはより長いデータセグメントへのデータの連結(これらに限定されるものではないが)を含めることができる。
本明細書では、ネットワーキングシステムおよび例示的な構成要素、バスプロトコル、システム設定などを開示する。一実施形態では、このネットワーキングシステムを使用して音声データおよび/またはビデオデータ(これに限定されるものではないが)を送信することができる。音声データは、アナログ形式および/またはデジタル形式で受信できる。ネットワーキングシステムでは、例えば最高64チャネルの24ビット音声データと、任意選択で最高16チャネルの8ビットシリアルデータを送信できる。代替実施形態では、最高128チャネルの24ビット音声データが転送可能である。代替チャネル幅および代替チャネル数も、本開示の範囲内で使用できる。
一実施形態では、前記ネットワーキングシステムに複数のノードを含めることができる。各ノードは、入力インターフェースからデータを受信し、出力インターフェースへデータを送信する。受信データは、前記入力インターフェースから受信された形式から変換され、そのデータの割り当て先である特定のチャネル用に定義された幅を有するデータスライスへと再構築される。このデータは、前記チャネルに対応し適切なデータ幅を有したパケットに含めてスロットに挿入することができる。
一実施形態において、ノードは、受信インターフェースで着信パケットを受信し、そのノードに割り当てられたチャネルに関する情報を送信インターフェースで発信パケットに挿入できる。一部のケースにおいて前記発信パケットは、着信パケットと、前記ノードの入力インターフェース(ある場合)で受信されたデータに関する情報との組み合わせとなる。他のケースでは、前記ノードは、前記発信パケットの生成時、前記着信パケットの制御情報および/またはデータを上書きする。以下では、このようなケースについて詳細に説明する。
一実施形態では、特定の読み取り動作および書き込み動作の結果、すべての音声チャネルが、ネットワーキングシステムの全ノードで読み取り可能となる。一実施形態では、CATケーブルなど単一のケーブルで、全チャネル用のデータをノード間で転送できる。代替ケーブルも、本開示の範囲内で使用できる。
非マージャ
一実施形態において、ネットワーキングシステム内のノードは、図1に示した装置などの非マージャ装置である。非マージャは2つのポート105、110を有し、これらによりネットワーキングシステムに接続されている。非マージャは、そのポートのどちらか一方または双方用に発信パケットを生成するため、105などの第1のポートから受信した着信パケットに対し、入力インターフェース115からの受信データでの置換、および/またはその追加を行うことができる。一実施形態では、非マージャが複数の着信パケットを単一の発信パケットへと組み合わせることはない。非マージャは、着信パケットから受信したデータを、出力インターフェース120経由で送信できる。一実施形態では、前記出力インターフェース120経由のデータは、1若しくはそれ以上のスロットから選択したものであってよい。一実施形態では、送信用データ元とする前記1若しくはそれ以上のスロットは、利用者が選択できる。
非マージャは2つのポート指定子を有することができる。このポート指定子は、前記非マージャの物理ポート105、110に関するものである。これらのポート105、110は、本明細書において「ポートA」および「ポートB」とも呼ばれる。ただし、このような指定は限定を意図したものではない。一実施形態では、前記非マージャのポートの1つに取り付けられたケーブルで、前記非マージャに電力を遠隔供給できる。
一実施形態では、非マージャは、1つのポートから受信した着信データを格納し、双方のポートへの発信データ書き込みを行うことができる。一実施形態では、(以下、図3を参照して説明する)制御マスター(Control Master)から受信される1若しくはそれ以上のコマンドを使用して、さらに/または利用者により、どの物理ポートからのデータを格納するか変更することができる。格納するデータの出所であるポートは「メインポート」(Main port)、他方のポートは「補助ポート」(Aux port)と呼ぶことができる。ただし、ポートA、ポートBのどちらをメインポートに指定してもよい。このような指定は、例えば前記非マージャの内部設定および/または当該ネットワーキングシステムにおける前記非マージャの位置に基づき行うことができる。一実施形態では、ポートAおよびポートBの一方だけに発信データを制限することができる。そのような一実施形態は、単一方向チャネルが必要な場合に使用できる。
各非マージャは、例えばデジタル同期データ(システムクロックなど)、アナログ音声データ、デジタル音声データ、ビデオデータ、シリアルデータ、および/または制御データを受信および送信できる。一実施形態では、ローカルデータの挿入用に、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つの発信データパケットへと組み合わせることができる。各着信データパケットは、このマージャの対応するポートから受信できる。
マージャは、各ポートにつき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つのノード内の制御レジスタは、その特定の装置が制御マスターであることを示すため、制御プロセッサにより書き込まれる。前記制御プロセッサは、例えばアプリケーションからのメッセージに基づき、さらに/または入力ピン、格納された値、および/または組み込まれている値を読み取ることにより、前記制御マスターを決定することができる。装置が制御マスターになるには、パケット生成能力を有する必要がある。
図3は、一実施形態に係る制御マスターの例示的な初期状態を示した図である。図3に示したように、この制御マスターのどちらのポートも、CAT−5ケーブル、CAT−4ケーブル、またはCAT−3ケーブルのピン1および2など事前設定された出力ピンで発信データを送信し、CAT−Sケーブル、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 mode)でアイドルパケットを送信できるようになる。同様に、ポート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)513はスレーブ装置となるよう設定できる。さらに、装置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は、その論理装置識別子を受信し次第、リンク検出情報を見出すためポートBの受信線を監視を開始することができる。図5Cで装置2 510について上述したものと同じ動作で装置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が前記クロックマスターで、前記制御マスター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は、同じ装置であってよい。
前記ネットワーキングシステムには、非マージャ装置(615、620、および625)やマージャ装置(630、635)など他のノードも存在しうる。図6に示すように、非マージャ615はスロット27に割り当てられた音声データを受信でき、非マージャ625はスロット14に割り当てられた音声データを受信できる。入力ソースから離れる方向へ流れるデータパケットは、そのデータが送信されるスロットに対応した前記データスロットソースフラグを設定する。また、前記制御マスターソースフラグおよび/または前記クロックマスターソースフラグも、前記制御マスター610およびクロックマスター605から離れる方向へ流れるデータパケットにそれぞれ設定される。一実施形態において、前記制御マスターソースフラグは、後述する前記制御バスプロトコルに従い設定される。
再び図6を参照すると、非マージャ615は、(データスロットソースフラグ(DSSF)27セットで)チャネル27のデータを受信し、そのデータをデータパケットにてポートAから非マージャ620へスロット27で送信できる。非マージャ620は、このスロット27データをポートBで受信し、ポートAでDSSF27セットとともに再送信することができる。マージャ630は、非マージャ620に接続されたポートで前記スロット27データを受信し、そのデータをDSSF27セットとともに他のポート(非マージャ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に情報を書き込むことができる。
一実施形態では、前記制御ブロック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状態になる。この状態において、当該制御マスターは、前記マスター/スレーブデータ部にデータを書き込み(830)、マスター/スレーブデータ挿入制御(Master/Slave Data Insertion Control)ビットをアサートし、SEND DATA状態になる前にMACKをトグルする。
前記スレーブは、前記MACKがトグルされ新しいデータの存在が示されていることを決定し(835)、PROCESS RECEIVE DATA状態に入る。この状態で、当該スレーブは、前記マスター/スレーブデータ部からのデータを当該スレーブの処理装置に転送することができる(840)。このスレーブは次いで自らのSACKフラグをトグルし、WAIT FOR DATA状態に戻る。
前記制御マスターは、前記SACKフラグがトグルされたことを認識すると、前記PROCESS TRANSMIT DATA状態に戻り、送信する追加データがあるかどうか決定し(845)、ある場合は上記の工程を繰り返す。転送すべきデータが残っていない場合、当該制御マスターは、マスター/スレーブデータ挿入制御ビットをクリアし、BGRNTをクリアし、MACKをトグルして、MREQをクリアする。次に前記パケットが前記スレーブに送信され(850)、前記制御マスターは前記WAIT FOR RELEASE状態になる。
前記スレーブは、BGRNTおよびMREQがクリアされたことを決定し(855)、前記制御マスターがデータ送信を完了したことを認識する。次にこのスレーブは、IDLE状態に戻る前に、前記SSAフラグ、前記SCRSフラグ、前記SACKフラグ、および前記SREQフラグをクリアする(860)。
前記制御マスターは、前記SSAビットがクリアされたことを決定し(865)、前記IDLE状態に戻る。このIDLE状態への移行の一環として、前記制御マスターは、前記MACKフラグをクリアし、前記BAVLフラグを設定する(870)。
図9は、一実施形態に係るスレーブからマスターへの(Slave−to−Master)データ転送の例示的なイベントのシーケンスを示した図である。図9に示すように、前記スレーブは、前記バスが利用できる状態で、前記IDLE状態にあってよい。当該スレーブは、その処理装置がスレーブにデータを送信する必要があることを決定し、前記制御マスターにデータを送信する(905)。前記スレーブは、前記SREQフラグおよび前記SCRSフラグを設定し、前記SACKフラグをクリアし、当該スレーブ装置IDの位置を論理装置IDに設定する。この情報を含んだパケットが送信されると(910)、前記スレーブはWAIT FOR BUS状態になる。
前記制御マスターはIDLE状態で前記パケットを受信し、SREQが設定されていることを認識し、前記スレーブ装置IDを検証する(915)。次にこの制御マスターは、前記マスター装置IDを前記スレーブの装置IDに設定し、前記BAVLフラグおよび前記MACKフラグをクリアし、発信されるデータパケットにBGRNTを設定する。次いで当該制御マスターは、前記WAIT FOR DATA状態になる。
前記スレーブは、BGRNTが設定されたこと、および前記マスター装置IDが当該スレーブの論理装置IDに合致することを決定する(925)。このスレーブは、次に前記PROCESS TRANSMIT DATA状態になる。この状態において、当該スレーブは、前記マスター/スレーブデータ部にデータを書き込み(930)、前記マスター/スレーブデータ挿入制御ビットをアサートし、SEND DATA状態になる前にSACKをトグルする。
前記制御マスターは、前記SACKがトグルされ新しいデータの存在が示されていることを決定し(935)、PROCESS RECEIVE DATA状態に入る。この状態で、当該制御マスターは、前記マスター/スレーブデータ部からのデータを当該スレーブの処理装置に転送することができる(940)。この制御マスターは次いで自らのMACKフラグをトグルし、WAIT FOR DATA状態に戻る。
前記スレーブは、前記MACKフラグがトグルされたことを認識すると、前記PROCESS TRANSMIT DATA状態に戻り、送信する追加データがあるかどうか決定し(945)、ある場合は上記の工程を繰り返す。転送すべきデータが残っていない場合、当該スレーブは、マスター/スレーブデータ挿入制御ビットをクリアし、SREQをクリアし、SACKをトグルする。次に前記パケットが前記制御マスター送信され(950)、前記スレーブは前記WAIT FOR RELEASE状態になる。
前記制御マスターは、SREQがクリアされたことを決定し(955)、前記スレーブがデータ送信を完了したことを認識する。そして、この制御マスターは、前記BGRNTフラグをクリアし、前記MACKフラグをトグルする(960)。
前記スレーブは、前記BGRNTがクリアされたことを決定し(965)、前記IDLE状態に戻る。このIDLE状態への移行の一環として、前記スレーブは、前記SSAフラグおよび前記SCRSフラグをクリアする(970)。
前記制御マスターは、前記SSAビットがクリアされたことを決定し(975)、前記IDLE状態に戻る。この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は、4ビットの小数部を伴った0〜2047.9375の数を表す11ビット整数の場合もある。他の装置は、この小数クロック指標を使用することにより、自らのクロックを前記クロックマスターに同期させることができる。
図10Aは、一実施形態に係る例示的なクロックマスターステータス転送を示した図である。図10Aに示したように、前記クロックマスターは、当該ネットワーキングシステムの電源投入時に決定される(1002)。例えば前記制御マスターは、初期、前記クロックマスターとして割り当てられる。前記制御マスターは、前記クロックマスターステータスを第2の装置に転送する旨の要求を前記第2の装置から受信すると(1004)、「すべての音声を消音(ミュート)」(mute all audio)メッセージを前記ネットワーキングシステムの各ノードにブロードキャストし(1006)、前記第2の装置に承認メッセージを送信することができる(1008)。さらに、前記制御マスターは、全パケットの再送信をブロックし(1010)、前記CMPLの送信を停止できる。一度すべての送信が停止されると(1012)、この新しいクロックマスターは、自らの前記CMPLを含むデータパケットを送信する(1014)。前記制御マスターは、前記新しいクロックマスターから第1のデータパケットを受信すると(1016)、自らのメインポートに対し前記パケットとの整合性をとり(1018)、再送信を可能にする(1020)。次に、この制御マスターは前記ネットワーキングシステムの各ノードに「すべての音声を消音解除」メッセージをブロードキャストする(1022)。
前記「すべての音声を消音」メッセージおよび前記「すべての音声を消音解除」メッセージを使うと、前記ネットワーキングシステムから意図せず音声データが出力されるのを防ぐことができる。このように、これらのメッセージは、出力時のデータ破損および/または前記ノード装置の出力損傷を防ぐ。
前記クロックマスターがクロックマスターであることをやめる必要があると前記制御マスターが決定した場合は、同様な一連の動作が実施可能である。図10Bに示すように、前記制御マスターは、クロック制御権を前記クロックマスターから当該制御マスターに転送させる旨の要求を、アプリケーションまたはユーザインターフェースから受信する場合がある(1030)。当該制御マスターは、前記ネットワーキングシステム内の各ノードに「すべての音声を消音」メッセージをブロードキャストし(1032)、クロックマスターステータス送信を終了させるコマンドを前記クロックマスターに送信する(1034)。すると、前記クロックマスターはメッセージの再送信をブロックし(1036)、前記CMPLの送信を停止する。一度すべての送信が停止されると(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)。前記旧クロックマスターは、再送信をブロックし(1078)、自らのCMPLの送信を停止する。前記新しいクロックマスターは、それ以前の送信が停止された後、新しいCMPLを含んだパケットの送信を開始する(1080)。前記制御マスターおよび前記旧クロックマスターは、それぞれ前記新しいクロックマスターからの第1のパケットを待機し(1082)、各メインポートを前記パケットに整合させる(1084)。次に、前記旧クロックマスターが再送信を可能にし(1086)、前記制御マスターが当該ネットワーキングシステムの各ノードに「すべての音声を消音解除」メッセージをブロードキャストする(1088)。
シリアルバスプロトコル
一実施形態では、動的に割り当てられる複数のスロットを含んだシリアルバスを導入(実装)することができ、これにより非同期シリアル通信の単一方向チャネル導管を提供できる。各スロットは、1若しくはそれ以上の、例えばミディ(Musical Instrument Digital Interface、略称MIDI)、RS−232、および汎用入出力(General Purpose Input/Output、略称GPIO)のデータに使用される。
前記シリアルバスは、物理ハードウェア接続とデータパケット内のスロットとの間のデータ用インターフェースを提供することができる。このインターフェースには、例えば送信部および受信部を含めることができる。前記送信部は、例えばMIDI−Inポート、RS−232ポート、またはGPIO入力でのサンプルデータによりデータを受信できる。受信されたデータは、次に前記データパケット内のスロットにラッチされる。そのデータが格納されるに伴い、(このデータがラッチされたシリアルスロットに対応する)新規データフラグ(New Data Flag)がトグルされる。前記新規データフラグにより、受信装置は、いつ新しいデータが前記パケット内に現れるかを決定できるようになる。一実施形態において、データは、受信データを、例えば連続した3つのパケットのうち2つについてマッチングすることにより確認される。代替実施形態では、CRCチェックサムが実行される。
前記受信部では、新しいデータ用に前記シリアルスロットデータを監視できる。前記データが有効であれば、いずれかの新規データフラグがトグルされている場合、受信パケットプロセッサがそのデータをロードできる。有効なデータは、次に例えばGPIO出力ポートまたはUART出力レジスタに渡されたのち、RS−232またはMDI出力ポートで送信される。一実施形態では、前記データは、送信前にデバウンスされ、さらに/または冗長性についてチェックされる。
前記データパケットの特定スロットには、MIDI−In、RS−232受信(RS−232 Receive)、GPIO入力(GPIO Input)など種々の入力ポートを割り当てることができる。一度特定のポートがスロットに割り当てられると、データがMDI入力または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プラグは左チャネルからのみ情報を受信する。従来のシステムでは、モノモードおよびステレオモードのどちらかを手動で選択できる。しかし、このようなシステムに前記プラグを挿入する操作は、リスナーの手間を増やすことになる。
一実施形態では、ハードウェアおよびソフトウェアを自動的に使用し、プラグが音声システムに挿入されたことと、挿入されたプラグのタイプとが検出されるようにできる。このプラグ情報を使うと、システムは、モノ出力を供給すべきかステレオ出力を供給すべきか自動的に決定できる。これにより、出力ゲイン回路が保護でき、またステレオ信号がモノ聴音装置にルーティングされる場合は自然な音声に聞こえる混合音が提供できる。
図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への電流はオンとオフの間のパルス状態になっている。
処理装置は、特定の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は、特定の時間だけオンにされる。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スキームを実施する代替方法は、当業者であれば、本明細書に開示した説明に基づき実施可能であり、また明確に理解されるであろう。
以上に開示した特徴および機能等の変形形態またその代替形態は、他の多くの異なるシステムまたはアプリケーションへと望ましく組み込み可能なことが理解されるであろう。また当業者であれば、現時点で予測または予期できない種々の代替形態、変更(修正)形態、変形形態、または改良形態が、後日作成可能であり、これらの形態が添付の特許請求の範囲に包含されるよう意図されていることも理解されるであろう。