(57)【要約】  動的エニュマレーションバスのための、事前定義された静的エニュマレーションシステムおよびプロセスが開示される。一態様では、動的エニュマレーションバスはSOUNDWIRE(商標)バスであってもよい。スレーブデバイスには、事前定義されたデバイス番号が与えられ、事前定義されたデバイス番号はマスタに与えられる。マスタは、アドレステーブルにポピュレートするために、与えられた、事前定義されたデバイス番号を使用する。事前定義されたデバイス番号を与えることによって、反復的エニュマレーションプロセスが削減または解消される場合があり、時間および/または電力が節約される。
2017536616.tif 000002
【特許請求の範囲】
【請求項１】
SOUNDWIREバスを介するマスタとスレーブデバイスとの間の通信を制御する方法であって、
対応するデバイス番号を、前記スレーブデバイス内に記憶された、事前定義されたデバイス番号に設定するために、前記SOUNDWIREバスを介して前記マスタからコマンドをブロードキャストするステップと、
前記マスタにおいて、前記事前定義されたデバイス番号を使用して前記スレーブデバイスをエニュマレーションするステップと
を含む、方法。
【請求項２】
前記SOUNDWIREバスに前記スレーブデバイスを最初に結合するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記スレーブデバイスが前記SOUNDWIREバスに新たに取り付けられることを判定するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記コマンドをブロードキャストするステップの前に、前記スレーブデバイスがデバイス番号0を有することを検出するステップをさらに含む、請求項1に記載の方法。
【請求項５】
第2のスレーブデバイスに前記コマンドをブロードキャストするステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記コマンドをブロードキャストするステップの後、前記第2のスレーブデバイスが対応する初期デバイス番号0を依然として有することを判定するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記第2のスレーブデバイスからデバイス識別番号を読み取るステップと、前記第2のスレーブデバイスについての新しいデバイス番号を設定するステップとをさらに含む、請求項6に記載の方法。
【請求項８】
前記SOUNDWIREバスに関連するシステムをスリープまたはスタンドバイモードに置くステップをさらに含む、請求項1に記載の方法。
【請求項９】
前記スレーブデバイス内に記憶された前記事前定義されたデバイス番号を設定するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
前記事前定義されたデバイス番号を設定するステップが、前記スレーブデバイス上のピンを使用するステップを含む、請求項9に記載の方法。
【請求項１１】
前記事前定義されたデバイス番号を設定するステップが、前記事前定義されたデバイス番号を設定するためにファームウェアを使用するステップを含む、請求項9に記載の方法。
【請求項１２】
前記事前定義されたデバイス番号を設定するステップが、前記スレーブデバイスのデバイス番号レジスタをプログラムするために第2のバスを使用するステップを含む、請求項9に記載の方法。
【請求項１３】
SOUNDWIREシステムをエニュマレーションする方法であって、
SOUNDWIRE通信バスにスレーブデバイスを結合するステップと、
前記SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号をマスタに与えるステップと
を含む、方法。
【請求項１４】
前記事前定義されたデバイス番号を事前定義するステップをさらに含む、請求項13に記載の方法。
【請求項１５】
前記事前定義するステップが、前記事前定義されたデバイス番号をファームウェア内に設定するステップを含む、請求項14に記載の方法。
【請求項１６】
前記事前定義するステップが、2つの事前定義された値の間で選択するためにピンを使用するステップを含む、請求項14に記載の方法。
【請求項１７】
前記事前定義するステップが、前記SOUNDWIRE通信バスに前記スレーブデバイスを結合する前に、値を設定するために移送バスを使用するステップを含む、請求項14に記載の方法。
【請求項１８】
前記事前定義されたデバイス番号を要求するブロードキャストコマンドを前記マスタから受信するステップをさらに含む、請求項13に記載の方法。
【請求項１９】
前記SOUNDWIREシステムの開始後に、前記事前定義されたデバイス番号を前記マスタに与えるステップをさらに含む、請求項13に記載の方法。
【請求項２０】
前記マスタからの照会に応答して、前記事前定義されたデバイス番号を与えるステップをさらに含む、請求項19に記載の方法。
【請求項２１】
SOUNDWIREシステムをエニュマレーションする方法であって、
SOUNDWIRE通信バスに結合されるスレーブデバイスを検出するステップと、
前記SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号を前記スレーブデバイスから受信するステップと
を含む、方法。
【請求項２２】
前記SOUNDWIREシステムを開始するステップをさらに含む、請求項21に記載の方法。
【請求項２３】
前記スレーブデバイスからスレーブステータスを読み取るステップをさらに含む、請求項21に記載の方法。
【請求項２４】
前記スレーブデバイスからデバイス番号を読み取るステップをさらに含む、請求項21に記載の方法。
【請求項２５】
前記デバイス番号を読み取るステップが、前記事前定義されたデバイス番号を前記スレーブデバイスから受信するステップを含む、請求項24に記載の方法。
【請求項２６】
前記事前定義されたデバイス番号を与えるために前記スレーブデバイスにコマンドをブロードキャストするステップをさらに含む、請求項21に記載の方法。
【請求項２７】
反復的プロセスを使用して他のスレーブデバイスをエニュマレーションするステップをさらに含む、請求項21に記載の方法。
【請求項２８】
SOUNDWIRE通信バスに結合されるように構成されるバスインターフェースと、
前記バスインターフェースに動作可能に結合される制御システムであって、
前記SOUNDWIRE通信バスに結合されるスレーブデバイスを検出し、
前記SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号を前記スレーブデバイスから受信する
ように構成される制御システムと
を備える、SOUNDWIREマスタ。
【請求項２９】
SOUNDWIRE通信バスに結合されるように構成されるバスインターフェースと、
前記バスインターフェースに動作可能に結合される制御システムであって、
前記SOUNDWIRE通信バスに前記バスインターフェースを結合し、
前記SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号をマスタに与える
ように構成される制御システムと
を備える、SOUNDWIREスレーブデバイス。
【請求項３０】
SOUNDWIRE通信バスと、
スレーブデバイスであって、
前記SOUNDWIRE通信バスに結合されるスレーブバスインターフェースと、
デバイス識別番号と、
前記デバイス識別番号とは別個の、事前定義されたデバイス番号と
を備えるスレーブデバイスと、
マスタデバイスであって、
前記SOUNDWIRE通信バスに結合されるマスタバスインターフェースと、
前記マスタバスインターフェースに動作可能に結合される制御システムであって、
前記SOUNDWIRE通信バスに結合する前記スレーブデバイスを検出し、
前記事前定義されたデバイス番号を前記スレーブデバイスから受信する
ように構成される制御システムと
を備えるマスタと
を備える、SOUNDWIREシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権出願
本願は、参照によりその全体が本明細書に組み込まれる、2014年11月5日に出願された"PREDEFINED STATIC ENUMERATION FOR DYNAMIC ENUMERATION BUSES"という名称の米国特許出願第14/533,240号の優先権を主張する。
【０００２】
本開示の技術は、一般にはデータバスに関し、より詳細にはSOUNDWIRE(商標)データバスに関する。
【背景技術】
【０００３】
携帯電話やコンピュータタブレットなどのモバイル電子デバイス(すなわち、「モバイル端末」)は、現代社会では、様々な日々の使用をサポートするために一般的なものとなっている。これらの電子デバイスは、マイクロフォンおよびスピーカを含む。電子デバイスにおいて使用される典型的なマイクロフォンおよびスピーカはアナログインターフェースを有し、各デバイスを接続するための専用の2つのポート配線を必要とする。しかしながら、電子デバイスは、複数のマイクロフォンおよび/またはスピーカなどの複数のオーディオデバイスを含む場合がある。したがって、そのような電子デバイス内のマイクロプロセッサまたは他の制御デバイスが、共通通信バスを介して複数のオーディオデバイスにオーディオデータを通信できることが望ましい場合がある。さらに、共通通信バスを介して電子デバイス内の異なるオーディオデバイスにオーディオチャネルに関するデジタルデータを移送するための、定義済みの通信プロトコルを提供することが望ましい場合がある。
【０００４】
このことに関して、MIPI(登録商標) Allianceが、電子デバイスに関連する異なるオーディオデバイスにオーディオチャネルに関するデータを移送するための通信プロトコルとしてSOUNDWIRE(商標)を発表した。SOUNDWIREでは、1つのSOUNDWIREマスタインターフェースは、マスタ電子デバイス(「マスタ」または「マスタデバイス」)、またはそれに通信可能に結合されるモニタが、SOUNDWIREスレーブインターフェースに結合される最大11個のスレーブ電子デバイス(「スレーブ」または「スレーブデバイス」)と共通通信バスを介して通信することを可能にする。これを執筆している時点では、SOUNDWIREの現行バージョンはrevision 0.6-r02であり、revision 0.6-r02は、2014年5月6日にMIPI SharePointファイルサーバを通じてMIPI Allianceメンバに内部的に入手可能にされた。
【０００５】
SOUNDWIREは、スレーブがSOUNDWIREバスに接続するための手順を定義する。本手順は、データコリジョンを回避するためにスレーブがバス特有のアドレスを受信するための反復的プロセスを含む。このプロセスは、マスタが各スレーブに1から11の間の固有番号を含むデバイス番号を割り当てるので、エニュマレーション(enumeration)と呼ばれることがある。すべてのスレーブがエニュマレーションされると、SOUNDWIREバスの通常の動作が行われてもよい。データコリジョンを回避することには効果的ではあるが、反復的プロセスは比較的時間がかかり、デバイスがオンされるごとに反復されなければならない。さらに、反復的プロセスは、電力を消費する、重複コマンドを生成する。そのような電力消費は、バッテリー式モバイル端末にとって望ましくない場合がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
発明を実施するための形態で開示される態様は、動的エニュマレーションバスのための事前定義された静的エニュマレーションシステムおよびプロセスを含む。例示的態様では、動的エニュマレーションバスはSOUNDWIRE(商標)バスでもよい。スレーブデバイスには事前定義されたデバイス番号が与えられ、事前定義されたデバイス番号はマスタに与えられる。マスタは、アドレステーブルにポピュレートするために、与えられた、事前定義されたデバイス番号を使用する。事前定義されたデバイス番号を与えることによって、反復的エニュマレーションプロセスが削減または解消される場合があり、時間および/または電力が節約される。
【０００７】
この点で一態様では、SOUNDWIREバスを介するマスタとスレーブデバイスとの間の通信を制御する方法が開示される。本方法は、対応するデバイス番号を、スレーブデバイス内に記憶された、事前定義されたデバイス番号に設定するために、SOUNDWIREバスを介してマスタからコマンドをブロードキャストするステップを含む。本方法はまた、マスタにおいて、事前定義されたデバイス番号を使用してスレーブデバイスをエニュマレーションするステップを含む。
【０００８】
別の態様では、SOUNDWIREシステムをエニュマレーションする方法が開示される。本方法は、SOUNDWIRE通信バスにスレーブデバイスを結合するステップを含む。本方法はまた、SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号をマスタに与えるステップを含む。
【０００９】
別の態様では、SOUNDWIREシステムをエニュマレーションする方法が開示される。本方法は、SOUNDWIRE通信バスに結合されるスレーブデバイスを検出するステップを含む。本方法はまた、SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号をスレーブデバイスから受信するステップを含む。
【００１０】
別の態様では、SOUNDWIREマスタが開示される。SOUNDWIREマスタは、SOUNDWIRE通信バスに結合されるように構成されるバスインターフェースを備える。SOUNDWIREマスタはまた、バスインターフェースに動作可能に結合される制御システムをも備える。制御システムは、SOUNDWIRE通信バスに結合されるスレーブデバイスを検出するように構成される。制御システムは、SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号をスレーブデバイスから受信するようにさらに構成される。
【００１１】
別の態様では、SOUNDWIREスレーブデバイスが開示される。SOUNDWIREスレーブデバイスは、SOUNDWIRE通信バスに結合されるように構成されるバスインターフェースを備える。スレーブデバイスはまた、バスインターフェースに動作可能に結合される制御システムを備える。制御システムは、SOUNDWIRE通信バスにバスインターフェースを結合するように構成される。制御システムはまた、SOUNDWIRE通信バスを通じて、事前定義されたデバイス番号をマスタに与えるように構成される。
【００１２】
別の態様では、SOUNDWIREシステムが開示される。SOUNDWIREシステムはSOUNDWIRE通信バスを備える。SOUNDWIREシステムはまた、スレーブデバイスをも備える。スレーブデバイスは、SOUNDWIRE通信バスに結合されるスレーブバスインターフェースを備える。スレーブデバイスはまた、デバイス識別番号をも備える。スレーブデバイスはまた、デバイス識別番号とは別個の、事前定義されたデバイス番号を備える。SOUNDWIREシステムはまた、マスタを備える。マスタは、SOUNDWIRE通信バスに結合されるマスタバスインターフェースを備える。マスタはまた、マスタバスインターフェースに動作可能に結合される制御システムを備える。制御システムは、SOUNDWIRE通信バスに結合するスレーブデバイスを検出するように構成される。制御システムはまた、事前定義されたデバイス番号をスレーブデバイスから受信するように構成される。
【図面の簡単な説明】
【００１３】
【図１】従来型SOUNDWIRE(商標)システムのブロック図である。
【図２Ａ】エニュマレーション前の従来型SOUNDWIREシステムのブロック図である。
【図２Ｂ】エニュマレーション後の従来型SOUNDWIREシステムのブロック図である。
【図３】少なくとも1つのスレーブが事前定義されたデバイス番号を有する本開示の例示的態様による、エニュマレーション前のSOUNDWIREシステムのブロック図である。
【図４】本開示の例示的態様によるエニュマレーションプロセスの流れ図である。
【図５】図4のエニュマレーションプロセス後のSOUNDWIREシステムのブロック図である。
【図６】図5のSOUNDWIREシステムに取り付けられたスレーブのデバイス番号を保持するためにマスタによって使用される例示的テーブルである。
【図７】図5のSOUNDWIREシステムを含むことのできる例示的なプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【００１４】
次に図面を参照して、本開示のいくつかの例示的態様が説明される。「例示的」という語は、本明細書では「一例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」なものとして本明細書で説明される任意の態様は、必ずしも他の態様よりも好ましい、または有利なものと解釈されるべきではない。
【００１５】
発明を実施するための形態で開示される態様は、動的エニュマレーションバスのための、事前定義された静的エニュマレーションシステムおよびプロセスを含む。例示的態様では、動的エニュマレーションバスはSOUNDWIRE(商標)バスであってもよい。スレーブデバイスには、事前定義されたデバイス番号が与えられ、事前定義されたデバイス番号はマスタに与えられる。マスタは、アドレステーブルにポピュレートするために、与えられた、事前定義されたデバイス番号を使用する。事前定義されたデバイス番号を与えることによって、反復的エニュマレーションプロセスが削減または解消される場合があり、時間および/または電力が節約される。
【００１６】
本開示の特定の態様に対処する前に、図1〜図2Bを参照しながら、従来型SOUNDWIREシステムおよび従来型エニュマレーションプロセスの簡単な概要が論じられる。本開示の例示的態様が、図3から始めて以下で論じられる。
【００１７】
この点で、図1は、それぞれのバスインターフェース(図示せず)によってSOUNDWIRE互換電子デバイスとしてSOUNDWIRE通信バス16に通信可能に結合される1つのマスタ12および4つのスレーブデバイス14(1)〜14(4)を有する例示的SOUNDWIREシステム10のブロック図である。例示的態様では、スレーブデバイス14(1)〜14(4)は、マイクロフォン、スピーカ、または別のオーディオデバイスであってもよい。マスタ12は、共通クロックワイヤ20を介して通信されるクロック信号18と、SOUNDWIRE通信バス16の共通データワイヤ24("DATA24")上で通信されるデータ信号22という2つの信号を使用して、スレーブデバイス14(1)〜14(4)と通信する。マスタ12はCLOCK_OUT信号を生成し、マスタ12およびスレーブデバイス14(1)〜14(4)は、クロックワイヤ20からCLOCK_IN信号を受信する。同様に、マスタ12およびスレーブデバイス14(1)〜14(4)の各々は、それぞれのDATA_INおよびDATA_OUT信号を有する。4つのスレーブデバイス14(1)〜14(4)だけが図1に示されるが、SOUNDWIRE仕様はマスタ12当たり最大11個のスレーブデバイス14をサポートし、したがってそのようなスレーブデバイス14は、一般にはスレーブデバイス14またはスレーブデバイス14(1)〜14(N)と呼ばれることがあり、ただしNは1から11の間の整数でもよいことを理解されたい。マスタ12は、それに関連する制御システム26を有してもよく、制御システム26は、プロセッサに関連するメモリ内に記憶された関連するソフトウェアを有する、ハードウェアで実装されたプロセッサでもよいことを理解されたい。例示的態様では、制御システム26は、マスタ12のシステムオンチップ(SoC)の部分である。代替例示的態様では、制御システム26は、SOUNDWIREシステム10を含むコンピューティングデバイス用の中央プロセッサに関連付けられてもよい。別の例示的態様では、スレーブデバイス14(1)〜14(4)はそれぞれ、スレーブ制御システム28(1)〜28(4)を有する。別の例示的態様では、任意選択で、モニタ30が存在してもよく、SOUNDWIRE通信バス16に取り付けられてもよい。特に、この態様はマスタ12およびスレーブデバイス14(1)〜14(4)内の様々な要素を示すが、他の態様は、代替要素または構成を含んでもよく、同様の機能を達成してもよい。
【００１８】
引き続き図1を参照すると、SOUNDWIREシステム10は、修正されたNon-Return-to-Zero-Inverted("NRZI")符号化方式をダブルデータレート("DDR")とともに利用し、DATA24が検査され、クロック信号18の遷移ごとに、潜在的に駆動される。非限定的な例として、DATA24は、それぞれのスレーブデバイス14(1)〜14(4)の対応するデータ出力イネーブル信号("DATA_OE")に基づいて、スレーブデバイス14(1)〜14(4)によって駆動されてもよい。SOUNDWIRE仕様内にさらなる情報が見出される場合がある。上記のように、これを執筆している時点では、SOUNDWIREの現行バージョンはrevision 0.6-r02であり、revision 0.6-r02は、2014年5月6日にMIPI SharePointファイルサーバを通じてMIPI Allianceメンバに内部的に入手可能にされた。本明細書では、"SOUNDWIRE"システム、バス、マスタ、デバイスなどは、少なくともSOUNDWIREの2014年5月6日バージョンに準拠するような要素を指す。
【００１９】
図2Aを参照し、かつSOUNDWIRE仕様にさらに記載されるように、電源投入イベント時、またはリセットイベント後、スレーブデバイス14(1)〜14(3)(全般的に「スレーブデバイス14」)は、最初はSOUNDWIRE通信バス16に取り付けられない。図示されるように、3つのスレーブデバイス14(1)〜14(3)があるが、上記のように、最大11個のそのようなスレーブデバイス14があってもよい。各スレーブデバイス14(1)〜14(3)は最初にSOUNDWIRE通信バス16に同期し、この同期が成功すると、スレーブデバイス14(1)〜14(3)は、マスタ12に0のデバイス番号32をレポートする。すなわち、すべての新しく接続されたスレーブデバイス14(1)〜14(3)は、0のデバイス番号32をレポートする。マスタ12は、スレーブデバイス14(1)〜14(3)のdevice_idレジスタ34(1)〜34(3)からデバイス識別番号を読み取る動作のシーケンスを実施する。通常、各スレーブデバイス14は、スレーブデバイス14についての固有デバイス識別を与える6つのdevice_idレジスタ34を有する(たとえば、スレーブデバイス14(1)は6つのdevice_idレジスタ34(1)を有するが、1つのブロックだけが図示される)。マスタ12は、device_idレジスタ34内の最高の値を有するスレーブデバイス14を選び、1から11の間の第1のアドレス(デバイス番号)をそのスレーブデバイス14に割り当てる。次いで、マスタ12は、残りの新しいスレーブデバイス14から0のデバイス番号32を受信する。マスタ12は、0のデバイス番号32をレポートしたスレーブデバイス14のdevice_idレジスタ34からデバイス識別番号を読み取る。次いで、device_idレジスタ34内の最高の値を有するスレーブデバイス14に、1から11の間の第2の固有アドレス(デバイス番号)が割り当てられる。デバイス番号0をレポートするスレーブデバイス14がなくなるまで、このプロセスが反復される。
【００２０】
図2Bを参照すると、SOUNDWIREシステム10は前述のプロセスを終了しており、スレーブデバイス14(1)にはデバイス番号36(1) 2が割り当てられており、スレーブデバイス14(2)にはデバイス番号36(2) 5が割り当てられており、スレーブデバイス14(3)にはデバイス番号36(3) 1が割り当てられている。上記のように、すべての割り当てられたデバイス番号36は1から11の間にあり、SOUNDWIRE通信バス16上のスレーブデバイス14の間で固有のものであり、デバイス番号レジスタ(図示せず)内に記憶されてもよい。SOUNDWIRE仕様に記載のエニュマレーションプロセスはコリジョンを防止し、各スレーブデバイス14がSOUNDWIRE通信バス16上で適切に通信することを可能にするが、エニュマレーションプロセスが各デバイス番号36割当てを通じて反復されるので、多くの重複メッセージがあることは容易に認められる。そのような重複メッセージは、システムの初期化に待ち時間を加え、電力を消費する。バッテリーデバイスでは、そのような電力消費は、デバイスの実効バッテリー寿命を短縮する場合があるので望ましくない。
【００２１】
本開示の例示的態様は、事前定義されたデバイス番号をスレーブデバイスに与えることによって、エニュマレーションプロセスでの重複メッセージを低減する。事前定義されたデバイス番号は、device_idレジスタに記憶されたデバイス識別番号に追加されるものである。スレーブについての事前定義済みのデバイス番号を与えることによって、少なくともそのスレーブは、以下で説明するように、反復的エニュマレーションプロセスから取り除かれる。そのようなスレーブを反復的エニュマレーションプロセスから取り除くことは、反復数を低減し、それによって待ち時間を短縮し、電力を節約する。
【００２２】
この点で、図3は、本開示の例示的態様によるSOUNDWIREシステム40を示す。SOUNDWIREシステム40は、それぞれバスインターフェース43、45(1)、45(3)、および47(2)を通じてSOUNDWIRE通信バス48に接続されたマスタ42ならびに3つのスレーブデバイス44(1)、44(3)、および46(2)を含む。マスタ42はマスタ制御システム(MCS)を有してもよく、マスタ制御システム(MCS)は、本開示の例示的態様を実装するためのハードウェアおよび/またはソフトウェアでもよい。スレーブデバイス44(1)および44(3)はスレーブ制御システム(SCS)を有してもよい。スレーブデバイス46(2)はスレーブ制御システム(SCSI)を有してもよく、スレーブ制御システム(SCS1)は、本開示の例示的態様を実装するためのハードウェアおよび/またはソフトウェアでもよい。3つのスレーブデバイス44(1)、44(3)、および46(2)だけが図示されるが、最大11個のスレーブデバイス44、46がSOUNDWIRE通信バス48に接続されてもよいことを理解されたい。さらに、図1のモニタ30のようなモニタ(図示せず)が、SOUNDWIRE通信バス48に取り付けられてもよい。各スレーブデバイス44(1)、44(3)、および46(2)は、固有デバイス識別がその中に記憶されたそれぞれのdevice_idレジスタ50(1)〜50(3)を含む。上記のように、各device_idレジスタ50(1)〜50(3)について単一のブロックだけが示されるが、例示的態様では、各ブロックは6つのレジスタを表す。図示されるように、スレーブデバイス44(1)および44(3)は従来型スレーブデバイスであり、最初は、0に設定されたデバイス番号52(1)および52(3)を有する。しかしながら、スレーブデバイス46(2)は、たとえば5に設定された、事前定義されたデバイス番号54(2)を有する。1つのスレーブデバイス46(2)が、事前定義されたデバイス番号54(2)を有するものとして示されるが、SOUNDWIRE通信バス48に結合されるスレーブデバイスなどの他のスレーブデバイスも、事前定義されたデバイス番号を有してもよいことを理解されたい。図示されていない例示的態様では、SOUNDWIRE通信バス48に結合されるすべてのスレーブデバイスが、事前定義されたデバイス番号(たとえば、54)を含む。
【００２３】
引き続き図3を参照すると、事前定義されたデバイス番号54(2)は、様々な技法を通じて定義されてもよい。第1の例示的態様では、スレーブデバイス46(2)内のファームウェアは、特定のデバイス番号に設定される。第2の例示的態様では、ファームウェアには2つのデバイス番号が与えられ、スレーブデバイス46(2)に関連する物理ピンが、ローの値またはハイの値に設定される。ピンがハイに設定される場合、2つのデバイス番号のうちの第1のものが与えられる。ピンがローに設定される場合、2つのデバイス番号のうちの第2のものが与えられる。第3の例示的態様では、スレーブデバイス46(2)がSOUNDWIRE通信バス48に取り付けられる前に、プログラマブルメモリ要素が、何らかの移送バス(図示せず)を使用して構成されてもよい。スレーブデバイス46(2)が、最初にマスタ42によって照会されたとき、事前定義されたデバイス番号54(2)を与えるように構成されてもよく、またはSOUNDWIRE通信バス48に取り付けられたとき、初期デバイス番号0を与え、その後で、図4を参照しながら以下でより詳細に説明されるエニュマレーションプロセスの部分として、事前定義されたデバイス番号54(2)をマスタ42に与えるように構成されてもよいことをさらに理解されたい。スレーブデバイス46(2)が最初にデバイス番号0を与える場合、スレーブデバイス46(2)は、0デバイス番号が最初に読み取られる追加のレジスタを有してもよい。その後で、追加のレジスタは、事前定義されたデバイス番号54(2)で上書きされてもよく、または事前定義されたデバイス番号54(2)を保持するレジスタが使用されてもよい。
【００２４】
本開示の代替の例示的態様では、imp-defレジスタが設けられてもよい。imp-defレジスタは、事前エニュマレーション値をサポートするデバイス内で実装される書込み専用レジスタである。このimp-defレジスタに対する書込みコマンドが行われる場合、imp-defレジスタは、事前定義されたデバイス番号54(2)にデバイス番号を直ちに更新する内部コマンドを活動化する。書込みコマンドがimp-defレジスタに対して実行されない場合、デバイスの挙動は、規格において明らかにされる通常のプロセス(すなわち、全エニュマレーション(full-enumeration)および長いエニュマレーション(long-enumeration)プロセス)に従ってもよい。
【００２５】
事前定義されたデバイス番号(たとえば、54(2))を与えることは、事前定義されたデバイス番号を利用するようにSOUNDWIRE仕様のエニュマレーションプロセスを修正することを可能にする。この点で、図4は、事前定義されたデバイス番号でスレーブデバイス(たとえば、スレーブデバイス46(2))を使用するためのプロセス60を示す。プロセス60はSOUNDWIREシステム40の開始で始まる(ブロック62)。マスタ42は、SOUNDWIRE通信バス48に結合されるスレーブデバイス44(1)、44(3)、および46(2)のステータスを読み取る(ブロック64)。ステータスは、スレーブデバイス44(1)、44(3)、および/または46(2)がSOUNDWIRE通信バス48に新たに取り付けられたかどうかを示す。マスタ42は、スレーブデバイス44(1)、44(3)、および/または46(2)のいずれかが新しいかどうかを判定する(ブロック66)。スレーブデバイス44(1)、44(3)、および/または46(2)のいずれも新しくない場合、SOUNDWIREシステム40は通常通り動作し、SOUNDWIRE仕様に記載されるように、SOUNDWIRE通信バス48を介してオーディオデータを渡す。しかしながら、スレーブデバイス44(1)、44(3)、および/または46(2)のうちの1つまたは複数が新しい場合、マスタ42は、スレーブデバイス44(1)、44(3)、および/または46(2)のいずれかが、0であるデバイス番号52を有するかどうかを判定する(ブロック68)。
【００２６】
引き続き図4を参照すると、上記のように、スレーブデバイス46(2)は、初期デバイス番号0を与えないことがある(すなわち、ブロック68に否定的に回答される)。そのような場合、スレーブデバイス46(2)は、事前定義されたデバイス番号54(2)をマスタ42に与えており、マスタ42は、事前定義されたデバイス番号54(2)を、マスタ42内に記憶された作業リストに追加する(ブロック70)。次いで、マスタ42は、device_idレジスタ50(2)からデバイス識別を読み取り、テーブル80にデバイス識別を追加する(ブロック72)(図6参照)。
【００２７】
しかしながら、スレーブデバイス46(2)がデバイス番号0を最初にレポートする(すなわち、ブロック68に肯定的に回答される)場合、マスタ42は、imp-defレジスタに書き込むために、すべてのスレーブデバイス44(1)、44(3)、および46(2)にコマンドをブロードキャストする。imp-defレジスタは、利用可能な場合、事前定義されたデバイス番号でデバイス番号を更新するために内部コマンドを活動化する(ブロック74)。そのようにすることが可能な場合、スレーブデバイス44(1)、44(3)、46(2)は、事前定義された値をデバイス番号レジスタに書き込む。次いで、マスタ42はスレーブステータスを読み取り、したがってスレーブデバイス44(1)、44(3)、および46(2)からデバイス番号52または54を知る(ブロック76)。デバイス番号52または54が0ではない(すなわち、事前定義されたデバイス番号54(2)によってデバイス番号54にポピュレートされた)場合、プロセス60は通常のSOUNDWIRE動作を開始し、ブロック64にループバックする。しかしながら、ブロック74において発行されたコマンドの後、デバイス番号52または54が依然として0である場合、従来型SOUNDWIREエニュマレーションプロセス(ブロック78)が実施され、デバイス識別がスレーブデバイス44(1)、44(3)から読み取られ、新しいデバイス番号が設定され、スレーブデバイス44(1)、44(3)に書き込まれる。エニュマレーションの後、従来型SOUNDWIREオペレーションが行われる。
【００２８】
引き続き図4を参照すると、事前定義されたデバイス番号(たとえば、54(2))を有するスレーブデバイス46(2)は、ブロック74においてブロードキャストコマンドに応答することによってレガシーシステムと相互動作してもよい。すなわち、事前定義されたデバイス番号を認識しないSOUNDWIREシステム40に結合されるスレーブデバイス46(2)は、ブロードキャストコマンドを受信するが、ブロードキャストコマンドを無視し、従来型SOUNDWIRE仕様エニュマレーションプロセスに従ってエニュマレーションされる。
【００２９】
プロセス60が実施された後、スレーブデバイス44(1)、44(3)、および46(2)がすべてエニュマレーションされ、エニュマレーションされたSOUNDWIREシステム40'が図5に示される。スレーブデバイス46(2)は依然として、事前定義されたデバイス番号54(2)を有する。しかしながら、そのときスレーブデバイス44(1)および44(3)は、それぞれスレーブデバイス44(1)'および44(3)'を作成するためにデバイス番号52(1)'および52(3)'でエニュマレーションされている。エニュマレーションされた後は、SOUNDWIREシステム40'は、従来型SOUNDWIREシグナリングを実施してもよい。
【００３０】
マスタ42は、デバイス番号フィールド内(Dev-number)82内にデバイス番号を記述し、デバイスIDフィールド84内にデバイス識別を記述し、スレーブステータスフィールド86内にスレーブステータスを記述し、事前エニュマレーションフィールド(Pre-enum)88内に事前エニュマレーション番号を記述する、図6に示されるテーブル80を有してもよい。スレーブデバイス44(1)、44(3)、または46(2)が事前定義されたデバイス番号を有する場合、この事前定義されたデバイス番号(たとえば、54(2))が、対応する事前エニュマレーションフィールド88内にコピーされる。同様に、新たにエニュマレーションされたデバイスが、テーブル80の、新たに割り当てられたデバイス番号に対応する行に追加される。
【００３１】
SOUNDWIREシステム40がスリープまたはスタンドバイモードに置かれる場合、SOUNDWIRE仕様は、スレーブデバイス44(1)、44(3)、46(2)がエニュマレーションされたままにすることを可能にすることに留意されたい。本開示の態様はこれを変更しない。しかしながら、スレーブがSOUNDWIRE通信バス48から切り離される場合、スレーブデバイス44(1)、44(3)、46(2)は、前述のように、事前定義されたデバイス番号を使用してエニュマレーションしてもよい。
【００３２】
上記の議論はSOUNDWIREシステムに焦点を当てたが、本開示の態様はそのように限定されない。他の動的エニュマレーション方式が、本開示の静的な、事前定義されたデバイス番号、およびそれを検出し、使用するためのプロセスから恩恵を受ける場合がある。
【００３３】
本明細書で開示される態様による、動的エニュマレーションバスのための事前定義された静的エニュマレーションシステムおよびプロセスは、任意のプロセッサベースのデバイス内で提供され、またはその中に統合されてもよい。限定はしないが、例には、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイル位置データユニット、携帯電話、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、同調器、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００３４】
この点で、図7は、図3〜図5に示されるSOUNDWIREシステム40を利用することのできるプロセッサベースのシステム100の一例を示す。この例では、プロセッサベースのシステム100は1つまたは複数の中央演算処理装置(CPU)102を含み、各々は1つまたは複数のプロセッサ104を含む。本開示の例示的態様では、CPU102はマスタ42でもよい。CPU102は、一時的に記憶されたデータに迅速にアクセスするために、プロセッサ104に結合されるキャッシュメモリ106を有してもよい。CPU102はシステムバス108に結合され、プロセッサベースのシステム100内に含まれるマスタおよびスレーブデバイスを相互結合することができる。システムバス108は、図3に示されるように、SOUNDWIRE通信バス48でもよい。周知のように、CPU102は、システムバス108を介してアドレス、制御、およびデータ情報を交換することによってこれらの他のデバイスと通信する。たとえば、CPU102は、スレーブデバイスの一例としてメモリコントローラ110にバストランザクション要求を通信することができる。図7には示されていないが、複数のシステムバス108を設けることができる。
【００３５】
マスタおよびスレーブデバイスがシステムバス108に接続されることが可能である。図7に示されるように、これらのデバイスは、例として、メモリシステム112、1つまたは複数の入力デバイス114、1つまたは複数の出力デバイス116、1つまたは複数のネットワークインターフェースデバイス118、および1つまたは複数のディスプレイコントローラ120を含むことができる。入力デバイス114は、限定はしないが、入力キー、スイッチ、音声プロセッサなどの任意のタイプの入力デバイスを含むことができる。出力デバイス116は、限定はしないが、オーディオ、ビデオ、他の視覚的インジケータなどの任意のタイプの出力デバイスを含むことができる。例示的態様では、複数の入力デバイス114および出力デバイス116の間にSOUNDWIRE通信バス48が存在してもよい。ネットワークインターフェースデバイス118は、ネットワーク122との間でのデータの交換を可能にするように構成される任意のデバイスであることが可能である。ネットワーク122は、限定はしないが、ワイヤードまたはワイヤレスネットワーク、プライベートまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、広域ネットワーク(WAN)、Bluetooth(登録商標)、およびインターネットを含む任意のタイプのネットワークであることが可能である。ネットワークインターフェースデバイス118は、必要に応じて、任意のタイプの通信プロトコルをサポートするように構成されることが可能である。メモリシステム112は1つまたは複数のメモリユニット124を含むことができる。
【００３６】
CPU102はまた、システムバス108を介してディスプレイコントローラ120にアクセスし、1つまたは複数のディスプレイ126に送られる情報を制御するように構成されてもよい。ディスプレイコントローラ120は、1つまたは複数のビデオプロセッサ128を介して、表示される情報をディスプレイ126に送り、1つまたは複数のビデオプロセッサ128は、表示される情報を処理して、ディスプレイ126に適したフォーマットにする。ディスプレイ126は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイなどを含む任意のタイプのディスプレイを含むことができる。
【００３７】
本明細書で開示される態様とともに説明された様々な例示的論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリまたは別のコンピュータ可読媒体内に記憶され、プロセッサまたは他の処理デバイスによって実行される命令、あるいはその両方の組合せとして実装されてもよいことを当業者はさらに理解されよう。本明細書で説明されるマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップ内で利用されてもよい。本明細書で開示されるメモリは、任意のタイプおよびサイズのメモリでもよく、所望の任意のタイプの情報を記憶するように構成されてもよい。この互換性を明確に示すために、様々な例示的構成要素、ブロック、モジュール、回路、およびステップが、その機能の点で上記で一般的に説明された。そのような機能がどのように実装されるかは、特定の応用例、設計の選択肢、および/またはシステム全体に課される設計制約に依存する。当業者は、特定の応用例ごとに様々な方式で記載の機能を実装してもよいが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００３８】
本明細書で開示される態様とともに説明される様々な例示的論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェア構成要素、または本明細書で説明される機能を実施するように設計されたそれらの任意の組合せで実装または実施されてもよい。プロセッサはマイクロプロセッサでもよいが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、1つまたは複数のマイクロプロセッサとDSPコア、または任意の他のそのような構成として実装されてもよい。
【００３９】
本明細書で開示される態様は、ハードウェア、およびハードウェア内に記憶される命令として実施されてもよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気プログラマブルROM(EPROM)、電気消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で周知の任意の他の形態のコンピュータ可読媒体内に常駐してもよい。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替実施形態では、記憶媒体はプロセッサと一体でもよい。プロセッサおよび記憶媒体はASIC内にあってもよい。ASICはリモート局内にあってもよい。代替実施形態では、プロセッサおよび記憶媒体は、別個の構成要素としてリモート局、基地局、またはサーバ内にあってもよい。
【００４０】
本明細書の例示的態様のいずれかで説明される動作ステップは、例および議論を提供するために説明されることにも留意されたい。説明される動作は、図示されるシーケンス以外の多数の異なるシーケンスで実施されてもよい。さらに、単一の動作ステップで説明される動作は、実際にはいくつかの異なるステップで実施されてもよい。さらに、例示的態様で論じられる1つまたは複数の動作ステップが組み合わされてもよい。流れ図で示される動作ステップは、当業者には容易に明らかとなるような多数の異なる修正の対象となる場合があることを理解されたい。様々な異なる技術および技法のいずれかを使用して情報および信号が表現されてもよいことも当業者は理解されよう。たとえば、上記の説明全体を通じて参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場あるいは光粒子、またはそれらの任意の組合せによって表現されてもよい。
【００４１】
本開示の先の説明は、当業者が本開示を作成または使用することを可能にするために与えられる。本開示に対する様々な修正が当業者には容易に明らかとなり、本明細書で定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の変形形態に適用されてもよい。したがって、本開示は、本明細書で説明される例および設計に限定されないものとし、本明細書で開示される原理および新規な特徴に適合する最も広い範囲が本開示には与えられるべきである。
【符号の説明】
【００４２】
10  SOUNDWIREシステム
12  マスタ
14  スレーブデバイス
16  SOUNDWIRE通信バス
18  クロック信号
20  共通クロックワイヤ
22  データ信号
24  共通データワイヤ
26  制御システム
28  スレーブ制御システム
30  モニタ
34  device_idレジスタ
40  SOUNDWIREシステム
42  マスタ
43  バスインターフェース
44  スレーブデバイス
45  バスインターフェース
46  スレーブデバイス
47  バスインターフェース
48  SOUNDWIRE通信バス
50  device_idレジスタ
100  プロセッサベースのシステム
102  中央演算処理装置(CPU)
104  プロセッサ
106  キャッシュメモリ
108  システムバス
110  メモリコントローラ
112  メモリシステム
114  入力デバイス
116  出力デバイス
118  ネットワークインターフェースデバイス
120  ディスプレイコントローラ
122  ネットワーク
124  メモリユニット
126  ディスプレイ
128  ビデオプロセッサ
【図１】
2017536616.tif 000003
【図２Ａ】
2017536616.tif 000004
【図２Ｂ】
2017536616.tif 000005
【図３】
2017536616.tif 000006
【図４】
2017536616.tif 000007
【図５】
2017536616.tif 000008
【図６】
2017536616.tif 000009
【図７】
2017536616.tif 000010
【国際調査報告】
2017536616.tif 000011
2017536616.tif 000012