(57)【要約】  特に電子装置内の2つのデバイス間のデータの送信を容易にするシステム、方法、および装置が記載される。アドレスリストが、制御データバスに結合された複数のスレーブデバイスの各々を複数のスレーブデバイス識別子に関連付けることができる。制御データバスへのアクセスは、第1の動作モードにおいて、第1のグループスレーブデバイス識別子を使用して複数のスレーブデバイスに情報がブロードキャストされ得、第2の動作モードにおいて、個別化スレーブデバイス識別子を使用して単一のスレーブデバイスと情報が交換され得るように、アドレスリストに基づいて制御することができる。
2017500631.tif 000002
【特許請求の範囲】
【請求項１】
制御データバスと、
前記制御データバスに結合されるとともに、前記制御データバスへのアクセスを制御するように構成されたマスタデバイスと、
第1のスレーブデバイス識別子および第2のスレーブデバイス識別子を有して構成される第1のスレーブデバイスであって、前記制御データバスを介して送信されるとともに、前記第1のスレーブデバイス識別子または前記第2のスレーブデバイス識別子にアドレス指定された通信に応答するように適合される、第1のスレーブデバイスと、
前記第1のスレーブデバイス識別子および第3のスレーブデバイス識別子を有して構成される第2のスレーブデバイスであって、前記制御データバスを介して送信されるとともに、前記第1のスレーブデバイス識別子または前記第3のスレーブデバイス識別子にアドレス指定された通信に応答するように適合される、第2のスレーブデバイスと
を備える、デバイス。
【請求項２】
前記制御データバスが、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される、請求項1に記載のデバイス。
【請求項３】
前記制御データバスが、カメラ制御データ(CCI)バスプロトコルに従って、またはインター集積回路(I2C)バスプロトコルに従って動作される、請求項1に記載のデバイス。
【請求項４】
前記マスタデバイスが、別のスレーブデバイスによって送信される肯定応答信号と同時に、あるスレーブデバイスによって送信される否定応答信号を無視するように構成される、請求項1に記載のデバイス。
【請求項５】
前記第1のスレーブデバイスおよび前記第2のスレーブデバイスがカメラを含み、前記マスタデバイスが、前記第1のスレーブデバイスおよび前記第2のスレーブデバイスに同時に情報を通信するように構成される、請求項1に記載のデバイス。
【請求項６】
前記マスタデバイスが、
前記第1のスレーブデバイス識別子を使用して、前記第1のスレーブデバイスおよび前記第2のスレーブデバイスと同時に通信するように構成される、請求項1に記載のデバイス。
【請求項７】
前記制御データバスに結合されたスレーブデバイスの第1のグループの各々が、前記制御データバスを介して送信されるとともに、前記第1のスレーブデバイス識別子にアドレス指定された通信に応答し、
前記制御データバスに結合されたスレーブデバイスの第2のグループの各々が、前記制御データバスを介して送信されるとともに、前記第1のスレーブ識別子、前記第2のスレーブ識別子、および前記第3のスレーブ識別子とは異なる第4のスレーブデバイス識別子にアドレス指定された通信に応答する、請求項1に記載のデバイス。
【請求項８】
スレーブデバイスの前記第1のグループの各々が第1の機能を実施し、スレーブデバイスの前記第2のグループの各々が、前記第1の機能とは異なる第2の機能を実施する、請求項7に記載のデバイス。
【請求項９】
前記第1のスレーブデバイスが、前記第4のスレーブ識別子を有してさらに構成され、スレーブデバイスの前記第1のグループおよびスレーブデバイスの前記第2のグループのメンバである、請求項7に記載のデバイス。
【請求項１０】
制御データバスに結合された複数のスレーブデバイスの各々を複数のスレーブデバイス識別子に関連付けるアドレスリストを維持するステップと、
前記アドレスリストに基づいて、前記制御データバスへのアクセスを制御するステップと
を含む方法であって、前記制御データバスへのアクセスを制御するステップが、
前記制御データバスを動作する第1のモードにおいて、第1のスレーブデバイスおよび第2のスレーブデバイスと、前記第1のスレーブデバイスおよび前記第2のスレーブデバイスに関連付けられた第1のグループスレーブデバイス識別子を使用して同時に通信するステップと、
前記制御データバスを動作する第2のモードにおいて、前記第1のスレーブデバイスに関連付けられ前記第2のスレーブデバイスには関連付けられていない一意のスレーブデバイス識別子を使用して、前記第1のスレーブデバイスと個別に通信するステップと
を含む、方法。
【請求項１１】
前記第1のグループスレーブデバイス識別子を使用して、第1の書込みメッセージを第1の複数のスレーブデバイスに同時にブロードキャストするステップと、
第2のグループスレーブデバイス識別子を使用して、第2の書込みメッセージを第2の複数のスレーブデバイスに同時にブロードキャストするステップと
をさらに含む、請求項10に記載の方法。
【請求項１２】
前記一意のスレーブデバイス識別子を使用して、前記第1のスレーブデバイスに読取りコマンドをアドレス指定するステップと、
前記読取りコマンドに応答して、前記第1のスレーブデバイスによって送信されたデータを読み取るステップであって、前記制御データバスに結合された他のスレーブデバイスは前記読取りコマンドに応答しない、ステップと
をさらに含む、請求項10に記載の方法。
【請求項１３】
前記制御データバスがカメラ制御データ拡張(CCIe)バスを含む、請求項10に記載の方法。
【請求項１４】
前記制御データバスがカメラ制御データ(CCI)バスまたはインター集積回路(I2C)バスを含む、請求項10に記載の方法。
【請求項１５】
前記第1のスレーブデバイスおよび前記第2のスレーブデバイスがカメラを含む、請求項10に記載の方法。
【請求項１６】
第1のコマンドが第1のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された前記第1のコマンドに、スレーブデバイスにおいて応答するステップであって、少なくとも1つの他のスレーブデバイスが、前記第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成される、ステップと、
第2のコマンドが一意のスレーブデバイス識別子にアドレス指定されるとき、前記制御データバス上で前記バスマスタによって送信された前記第2のコマンドに、前記スレーブデバイスにおいて応答するステップであって、どの他のスレーブデバイスも、前記一意のスレーブデバイス識別子にアドレス指定された送信に応答するように構成されない、ステップと
を含む方法。
【請求項１７】
前記制御データバスが、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される、請求項16に記載の方法。
【請求項１８】
前記制御データバスがカメラ制御データ(CCI)バスプロトコルまたはインター集積回路(I2C)バスプロトコルに従って動作される、請求項16に記載の方法。
【請求項１９】
ストレージ内で、前記スレーブデバイスに関連付けられた複数のスレーブデバイス識別子を維持するステップであって、前記複数のスレーブデバイス識別子が前記一意のスレーブデバイス識別子および前記第1のグループスレーブデバイス識別子を含む、ステップと、
前記制御データバスから受信された読取りまたは書込みコマンドに対し、前記読取りまたは書込みコマンドが、前記ストレージ内で維持されていないスレーブデバイス識別子にアドレス指定されるとき、応答するのを控えるステップと
をさらに含む、請求項16に記載の方法。
【請求項２０】
第3のコマンドが第2のグループスレーブデバイス識別子にアドレス指定されるとき、前記制御データバス上の前記バスマスタによって送信された前記第3のコマンドに、前記スレーブデバイスにおいて応答するステップ
をさらに含み、
第1の複数のスレーブデバイスが、前記第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成され、第2の複数のスレーブデバイスが、前記第2のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成される、請求項16に記載の方法。
【請求項２１】
前記第1の複数のスレーブデバイスの各々が第1の機能を実施し、前記第2の複数のスレーブデバイスの各々が、前記第1の機能とは異なる第2の機能を実施する、請求項20に記載の方法。
【請求項２２】
スレーブデバイスであって、
前記スレーブデバイスを、他のデバイスと共有される制御データバスに結合するように適合されたバスインターフェースと、
前記バスインターフェースに結合されるとともに、前記スレーブデバイスに一意に関連付けられた第1のスレーブデバイス識別子を使用してアドレス指定されたメッセージに、ならびに前記スレーブデバイスおよび少なくとも1つの他のスレーブデバイスに関連付けられた第2のスレーブデバイス識別子にアドレス指定されたメッセージに応答するように構成された処理回路と
を備えるスレーブデバイス。
【請求項２３】
前記処理回路が、
前記第1のスレーブデバイス識別子を使用してアドレス指定されるとともに、前記制御データバスから受信されたコマンドに応答して、前記制御データバス上で情報を送信するように構成される、請求項22に記載のスレーブデバイス。
【請求項２４】
前記処理回路が、
第1のコマンドが、前記第1のスレーブデバイス識別子を使用してアドレス指定されるとき、前記制御データバスから受信された前記第1のコマンドに応答し、
第2のコマンドが、前記第2のスレーブデバイス識別子を使用してアドレス指定されるとき、前記制御データバスから受信された前記第2のコマンドに応答する
ように構成される、請求項22に記載のスレーブデバイス。
【請求項２５】
前記処理回路が、
第3のコマンドが、第3のスレーブデバイス識別子を使用してアドレス指定されるとき、前記制御データバスから受信された前記第3のコマンドに応答するように構成され、
第1の複数のスレーブデバイスが、前記第2のスレーブデバイス識別子にアドレス指定された送信に応答するように構成され、第2の複数のスレーブデバイスが、前記第3のスレーブデバイス識別子にアドレス指定された送信に応答するように構成される、請求項24に記載のスレーブデバイス。
【請求項２６】
前記第1の複数のスレーブデバイスの各々が第1の機能を実施し、前記第2の複数のスレーブデバイスの各々が、前記第1の機能とは異なる第2の機能を実施する、請求項25に記載のスレーブデバイス。
【請求項２７】
カメラをさらに備え、前記制御データバスが、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される、請求項22に記載のスレーブデバイス。
【請求項２８】
カメラをさらに備え、前記制御データバスがカメラ制御データ(CCI)バスプロトコルに従って動作される、請求項22に記載のスレーブデバイス。
【請求項２９】
カメラをさらに備え、前記制御データバスがインター集積回路(I2C)バスプロトコルに従って動作される、請求項22に記載のスレーブデバイス。
【請求項３０】
前記第1のスレーブデバイス識別子および前記第2のスレーブデバイス識別子を維持するように構成されたストレージをさらに備える、請求項22に記載のスレーブデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、本出願の譲受人に譲渡され、参照により明白に本明細書に組み込まれる、2013年10月31日に出願した、「Camera Control Slave Devices With Multiple Slave Device Identifiers」と題する仮特許出願第61/898,138号に対する、および2014年10月21日に出願した、「Camera Control Slave Devices with Multiple Slave Device Identifiers」と題する米国非仮特許出願第14/520,180号に対する優先権を主張する。
【０００２】
本開示は、共有バスを介した動作を可能にすることに関し、より詳細には、複数のスレーブデバイス識別情報を、制御データバスを介して、複数のスレーブデバイス識別子で識別される単一のスレーブデバイスに送信することに関する。
【背景技術】
【０００３】
I2CバスまたはI2Cバスと呼ばれる場合もあるインター集積回路シリアルバスは、低速周辺装置をプロセッサに接続する際に使用するためのものであったシリアルシングルエンドコンピュータバスである。I2Cバスは、I2Cバス上で送信される異なるメッセージ向けのマスタおよびスレーブとして各デバイスが働き得るマルチマスタバスである。I2Cバスは、シリアルデータライン(SDA)およびシリアルクロックライン(SCL)を含む、2つの双方向オープンドレインコネクタのみを使用してデータを送信することができる。それらのコネクタは通常、プルアップ抵抗器によって終端される信号線を含む。
【０００４】
I2Cバスの動作を管理するプロトコルは、メッセージの基本タイプを規定し、それらの各々はSTARTで開始し、STOPで終了する。I2Cバスは7ビットアドレス指定を使用し、2つのタイプのノードを規定する。マスタノードは、クロックを発生し、スレーブノードとの通信を開始するノードである。スレーブノードは、クロックを受信し、マスタによってアドレス指定されたとき応答するノードである。I2Cバスは、任意の数のマスタノードが存在できることを意味するマルチマスタバスである。加えて、マスタとスレーブの役割は、メッセージの間で(すなわち、STOPが送られた後)変更される場合がある。
【０００５】
カメラの実装形態との関連では、単方向送信を用いて、センサから画像を取り込み、画像データをベースバンドプロセッサ内のメモリに送信することができ、一方、制御データは、ベースバンドプロセッサとセンサおよび他の周辺デバイスとの間で交換することができる。一例では、ベースバンドプロセッサと画像センサ(および/または1つもしくは複数のスレーブノード)との間のそのような制御データのために、カメラ制御インターフェース(CCI)プロトコルが用いられる場合がある。一例では、CCIプロトコルは、画像センサとベースバンドプロセッサとの間のI2Cシリアルバスを介して実施される場合がある。
【０００６】
たとえば、2つ以上の同一のスレーブデバイスが同じバスに結合され、かつ/または同じバスに結合された2つ以上のスレーブデバイスに同じスレーブデバイス識別子(SID)が与えられると、衝突が起こり得る。一例では、製造業者が、複数のスレーブデバイス製品を同じSIDを用いてプリプログラムする場合がある。従来のCCIバスシステムでは、データ衝突問題は、複数のスレーブデバイスが同じSIDを有して構成されるときに生じ得る。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、データ衝突を引き起こすことなく、同じSIDを有して構成された複数のスレーブデバイスを単一のバス上で使う方法を見つけることが望ましい。
【課題を解決するための手段】
【０００８】
以下のものは、本開示の1つまたは複数の態様を基本的に理解してもらうために、そのような態様の簡単な概要を示す。この概要は、本開示のすべての企図された特徴の包括的な概観ではなく、本開示のすべての態様の主要または重要な要素を識別するものでも、本開示のいずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後に示されるより詳細な説明の前置きとして、本開示の1つまたは複数の態様のいくつかの概念を簡単な形で提示することである。
【０００９】
本発明のいくつかの態様において、デバイスは、制御データバスと、制御データバスに結合されるとともに、制御データバスへのアクセスを制御するように構成されたマスタデバイスと、第1のスレーブデバイス識別子および第2のスレーブデバイス識別子を有して構成される第1のスレーブデバイスと、第1のスレーブデバイス識別子および第3のスレーブデバイス識別子を有して構成される第2のスレーブデバイスとを含む。第1のスレーブデバイスは、制御データバスを介して送信されるとともに、第1のスレーブデバイス識別子または第2のスレーブデバイス識別子にアドレス指定された通信に応答するように適合されてよい。第2のスレーブデバイスは、制御データバスを介して送信されるとともに、第1のスレーブデバイス識別子または第3のスレーブデバイス識別子にアドレス指定された通信に応答するように適合されてよい。
【００１０】
一態様では、制御データバスは、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される。
【００１１】
一態様では、制御データバスは、カメラ制御データ(CCI)バスプロトコルに従って、またはインター集積回路(I2C)バスプロトコルに従って動作される。
【００１２】
一態様では、マスタデバイスは、別のスレーブデバイスによって送信される肯定応答信号と同時に、あるスレーブデバイスによって送信される否定応答信号を無視するように構成される。
【００１３】
一態様では、第1のスレーブデバイスおよび第2のスレーブデバイスは、カメラであるか、またはカメラを含む。マスタデバイスは、第1のスレーブデバイスおよび第2のスレーブデバイスに情報を同時に通信するように構成することができる。
【００１４】
一態様では、マスタデバイスは、第1のスレーブデバイス識別子を使用して、第1のスレーブデバイスおよび第2のスレーブデバイスと同時に通信するように構成される。
【００１５】
一態様では、制御データバスに結合されたスレーブデバイスの第1のグループの各々が、制御データバスを介して送信されるとともに第1のスレーブデバイス識別子にアドレス指定された通信に応答する。制御データバスに結合されたスレーブデバイスの第2のグループの各々は、制御データバスを介して送信されるとともに、第1のスレーブ識別子、第2のスレーブ識別子、および第3のスレーブ識別子とは異なる第4のスレーブデバイス識別子にアドレス指定された通信に応答する。スレーブデバイスの第1のグループの各々は第1の機能を実施することができ、スレーブデバイスの第2のグループの各々は、第1の機能とは異なる第2の機能を実施することができる。第1のスレーブデバイスは、第4のスレーブ識別子を有してさらに構成することができ、スレーブデバイスの第1のグループおよびスレーブデバイスの第2のグループのメンバであり得る。
【００１６】
本発明のいくつかの態様において、方法は、制御データバスに結合された複数のスレーブデバイスの各々を複数のスレーブデバイス識別子に関連付けるアドレスリストを維持するステップと、アドレスリストに基づいて、制御データバスへのアクセスを制御するステップとを含む。制御データバスへのアクセスを制御するステップは、制御データバスを動作する第1のモードにおいて、第1のスレーブデバイスおよび第2のスレーブデバイスに関連付けられた第1のグループスレーブデバイス識別子を使用して、第1のスレーブデバイスおよび第2のスレーブデバイスと同時に通信するステップと、制御データバスを動作する第2のモードにおいて、第1のスレーブデバイスに関連付けられ第2のスレーブデバイスには関連付けられていない一意のスレーブデバイス識別子を使用して、第1のスレーブデバイスと個別に通信するステップとを含み得る。
【００１７】
一態様では、方法は、第1のグループスレーブデバイス識別子を使用して、第1の書込みメッセージを第1の複数のスレーブデバイスに同時にブロードキャストするステップと、第2のグループスレーブデバイス識別子を使用して、第2の書込みメッセージを第2の複数のスレーブデバイスに同時にブロードキャストするステップとを含む。
【００１８】
一態様では、方法は、一意のスレーブデバイス識別子を使用して、第1のスレーブデバイスに読取りコマンドをアドレス指定するステップと、読取りコマンドに応答して、第1のスレーブデバイスによって送信されたデータを読み取るステップとを含み得る。制御データバスに結合された他のスレーブデバイスは、読取りコマンドに応答するのを控えるように構成することができる。
【００１９】
一態様では、制御データバスは、CCIeバス、CCIバスまたはI2Cバスである。
【００２０】
一態様では、第1のスレーブデバイスおよび第2のスレーブデバイスは、カメラであるか、またはカメラを含む。
【００２１】
本発明のいくつかの態様において、デバイスは、制御データバスに結合された複数のスレーブデバイスの各々を複数のスレーブデバイス識別子に関連付けるアドレスリストを維持するための手段と、アドレスリストに基づいて、制御データバスへのアクセスを制御するための手段とを含む。制御データへのアクセスを制御するための手段は、デバイスが、第1のスレーブデバイスおよび第2のスレーブデバイスに関連付けられた第1のグループスレーブデバイス識別子を使用して、第1のスレーブデバイスおよび第2のスレーブデバイスと同時に通信するように、第1の動作モードで制御データバスを動作するように、ならびにデバイスが、第1のスレーブデバイスに関連付けられ第2のスレーブデバイスには関連付けられていない一意のスレーブデバイス識別子を使用して、第1のスレーブデバイスと個別に通信するように、第1の動作モードで制御データバスを動作するように構成することができる。
【００２２】
本発明のいくつかの態様において、記憶媒体は、その上に記憶された命令を有する。記憶媒体は、非一時的記憶媒体を含み得る。命令は、1つまたは複数のプロセッサによって実行可能であり得る。命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、制御データバスに結合された複数のスレーブデバイスの各々を複数のスレーブデバイス識別子に関連付けるアドレスリストを維持させ、アドレスリストに基づいて、制御データバスへのアクセスを制御させることができる。制御データバスへのアクセスは、第1のスレーブデバイスおよび第2のスレーブデバイスに関連付けられた第1のグループスレーブデバイス識別子を使用して、第1のスレーブデバイスおよび第2のスレーブデバイスとの同時通信を可能にするように、第1の動作モードで制御データバスを動作することによって、および第1のスレーブデバイスに関連付けられ第2のスレーブデバイスには関連付けられていない一意のスレーブデバイス識別子を使用して、第1のスレーブデバイスとの個別通信を可能にするように、第1の動作モードで制御データバスを動作することによって制御することができる。
【００２３】
本発明のいくつかの態様において、方法は、第1のコマンドが第1のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第1のコマンドに、スレーブデバイスにおいて応答するステップと、第2のコマンドが一意のスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第2のコマンドに、スレーブデバイスにおいて応答するステップとを含む。少なくとも1つの他のスレーブデバイスは、第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成することができる。いくつかの事例では、どの他のスレーブデバイスも、一意のスレーブデバイス識別子にアドレス指定された送信に応答するように構成されない。
【００２４】
一態様では、制御データバスは、CCIeバスプロトコル、CCIバスプロトコルまたはI2Cバスプロトコルに従って動作される。
【００２５】
一態様では、スレーブデバイスに関連付けられた複数のスレーブデバイス識別子はストレージ内で維持され、方法は、読取りまたは書込みコマンドが、ストレージ内で維持されていないスレーブデバイス識別子にアドレス指定されるとき、制御データバスから受信された読取りまたは書込みコマンドに応答するのを控えるステップを含む。ストレージ内で維持される複数のスレーブデバイス識別子は、一意のスレーブデバイス識別子および第1のグループスレーブデバイス識別子を含み得る。
【００２６】
一態様では、スレーブデバイスは、第3のコマンドが第2のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第3のコマンドに応答することができる。第1の複数のスレーブデバイスが、第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成されてよく、第2の複数のスレーブデバイスが、第2のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成される。第1の複数のスレーブデバイスの各々は第1の機能を実施することができ、第2の複数のスレーブデバイスの各々は、第1の機能とは異なる第2の機能を実施することができる。
【００２７】
本発明のいくつかの態様において、スレーブデバイスは、スレーブデバイスを、他のデバイスと共有される制御データバスに結合するように適合されたバスインターフェースと、バスインターフェースに結合されるとともに、スレーブデバイスに一意に関連付けられた第1のスレーブデバイス識別子を使用してアドレス指定されたメッセージに、ならびにスレーブデバイスおよび少なくとも1つの他のスレーブデバイスに関連付けられた第2のスレーブデバイス識別子にアドレス指定されたメッセージに応答するように構成された処理回路とを含む。
【００２８】
一態様では、処理回路は、第1のスレーブデバイス識別子を使用してアドレス指定されるとともに制御データバスから受信されたコマンドに応答して、制御データバス上で情報を送信するように構成することができる。
【００２９】
一態様では、処理回路は、第1のコマンドが、第1のスレーブデバイス識別子を使用してアドレス指定されるとき、制御データバスから受信された第1のコマンドに応答し、第2のコマンドが、第2のスレーブデバイス識別子を使用してアドレス指定されるとき、制御データバスから受信された第2のコマンドに応答するように構成することができる。処理回路は、第3のコマンドが、第3のスレーブデバイス識別子を使用してアドレス指定されるとき、制御データバスから受信された第3のコマンドに応答するように構成することができる。第1の複数のスレーブデバイスは、第2のスレーブデバイス識別子にアドレス指定された送信に応答するように構成することができ、第2の複数のスレーブデバイスは、第3のスレーブデバイス識別子にアドレス指定された送信に応答するように構成することができる。第1の複数のスレーブデバイスの各々は第1の機能を実施することができ、第2の複数のスレーブデバイスの各々は、第1の機能とは異なる第2の機能を実施することができる。
【００３０】
一態様では、スレーブデバイスはカメラを含むことができ、制御データバスは、CCIeバスプロトコル、CCIバスプロトコルまたはI2Cバスプロトコルに従って動作することができる。
【００３１】
一態様では、スレーブデバイスは、第1のスレーブデバイス識別子および第2のスレーブデバイス識別子を維持するように構成されたストレージを含み得る。
【００３２】
本発明のいくつかの態様において、デバイスは、第1のコマンドが第1のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第1のコマンドに、スレーブデバイスにおいて応答するための手段と、第2のコマンドが一意のスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第2のコマンドに、スレーブデバイスにおいて応答するための手段とを含む。少なくとも1つの他のスレーブデバイスは、第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成することができる。いくつかの事例では、どの他のスレーブデバイスも、一意のスレーブデバイス識別子にアドレス指定された送信に応答するように構成されない。
【００３３】
本発明のいくつかの態様において、記憶媒体は、その上に記憶された命令を有する。記憶媒体は、非一時的記憶媒体を含み得る。命令は、1つまたは複数のプロセッサによって実行可能であり得る。命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、第1のコマンドが第1のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第1のコマンドに、スレーブデバイスにおいて応答させ、第2のコマンドが一意のスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第2のコマンドに、スレーブデバイスにおいて応答させることができる。少なくとも1つの他のスレーブデバイスは、第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成することができる。いくつかの事例では、どの他のスレーブデバイスも、一意のスレーブデバイス識別子にアドレス指定された送信に応答するように構成されない。
【００３４】
様々な特徴、性質、および利点は、同様の参照文字が全体を通じて対応して識別する図面と併せて読まれたとき、以下に記載の詳細な説明から明らかになる場合がある。
【図面の簡単な説明】
【００３５】
【図１】複数の利用可能な標準規格のうちの1つに従って選択的に動作する集積回路デバイス間のデータリンクを利用する装置を示す図である。
【図２】ベースバンドプロセッサおよび画像センサを有し、画像データバスおよび制御データバスを実現するデバイスを示すブロック図である。
【図３】本明細書において開示される特定の態様による、ICデバイス間のデータリンクを利用する装置のための簡略化されたシステムアーキテクチャを示す図である。
【図４】I2Cの1バイト書込みデータ動作を示すタイミング図である。
【図５】CCIeプロトコルによる、シリアルバス上でのデータ送信の例を示すタイミング図である。
【図６】本明細書で開示されるいくつかの態様による送信機および受信機のいくつかの態様を示す図である。
【図７】本明細書で開示されるいくつかの態様による、データをトランスコードするための符号化方式を示す図である。
【図８】CCIeプロトコルのいくつかの態様を示す図である。
【図９】カメラ制御バスにスレーブとして結合された2つのイメージングデバイスを含む装置のいくつかの態様を示す図である。
【図１０】カメラ制御バスにスレーブとして結合された複数のカメラの構成の例を示す図である。
【図１１】CCIeバス上で複数の識別子を維持し、それらに応答するように適合された2つのカメラを有する装置の動作の第1の例を示す図である。
【図１２】CCIeバス上で複数の識別子を維持し、それらに応答するように適合された2つのカメラを有する装置の動作の第2の例を示す図である。
【図１３】CCIeバス上で複数の識別子を維持し、それらに応答するように適合された2つのカメラを有する装置の動作の第3の例を示す図である。
【図１４】複数の識別子を与えられたスレーブデバイスをサポートするように適合されたCCIeマスタノードのいくつかの態様を示す図である。
【図１５】本明細書で開示する1つまたは複数の機能を実施するように適合または構成することができる処理回路を利用する装置のためのハードウェア実装形態の簡略化された例を示す図である。
【図１６】複数の識別子を与えられているスレーブデバイスを結合するシリアルバスを制御するための方法のフローチャートである。
【図１７】複数の識別子を与えられているスレーブデバイスを結合するシリアルバスを制御するためのハードウェア実装形態の例を示す図である。
【図１８】複数の識別子を与えられているスレーブデバイスを動作するための方法のフローチャートである。
【図１９】複数の識別子を与えられているスレーブデバイスを動作するためのハードウェア実装形態の例を示す図である。
【発明を実施するための形態】
【００３６】
以下の説明では、実施形態を完全に理解してもらうために、具体的な詳細が与えられる。しかしながら、実施形態はこれらの具体的な詳細なしに実施できることは当業者には理解されよう。たとえば、回路は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図で示される場合がある。他の例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
【００３７】
様々な特徴、性質、および利点は、同様の参照文字が全体を通じて対応して識別する図面と併せて読まれたとき、以下に記載の詳細な説明から明らかになる場合がある。
【００３８】
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連エンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で稼働するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピューティングデバイス上で稼働するアプリケーションと、そのコンピューティングデバイスの両方が、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、構成要素は、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間に分散することができる。さらに、これらの構成要素は、種々のデータ構造を記憶している種々のコンピュータ可読媒体から実行することができる。構成要素は、ローカルシステム内、分散システム内、および/または、インターネットなどのネットワークにわたる別の構成要素と対話する1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号などに従うローカルプロセスおよび/またはリモートプロセスにより、信号によって他のシステムと通信することができる。さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味することを意図している。すなわち、別段の規定がない限り、または文脈から明白でない限り、「XはAまたはBを利用する」という言い回しは、自然な包括的並べ替えのいずれかを意味することを意図している。すなわち、「XはAまたはBを利用する」という語句は、以下の事例、すなわち、XはAを利用する、XはBを利用する、またはXはAとBの両方を利用する、のいずれかによって成立する。さらに、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段の規定がない限り、または単数形を示すことが文脈から明白でない限り、概して「1つもしくは複数」を意味するものと解釈すべきである。
【００３９】
概要
本明細書で開示するいくつかの実施形態は、I2Cバスプロトコルおよび構成に基づき得るカメラ制御インターフェース(CCI)バスの通信インターフェースの性能を向上させることができるシステム、方法および装置を提供する。CCIは、マスタと1つまたは複数のスレーブを接続するバスとして構成された2線双方向半二重シリアルインターフェースを利用することができる。CCI動作はI2Cバス動作に適合することができる。
【００４０】
CCI拡張(CCIe)バスは、CCIeバスによってサポートされる強化された特徴のために構成されたデバイス用に、従来のI2CまたはCCIバスの能力を拡張することができる。たとえば、CCIeバスは、I2CまたはCCIバスよりも高いビットレートをサポートすることができる。本明細書で開示されるいくつかの態様によると、CCIeバスのいくつかのバージョンは、16.7メガビット毎秒(Mbps)以上のビットレートをサポートするように構成または適合することができ、CCIeバス230のいくつかのバージョンは、少なくとも23Mbpsのデータレートをサポートするように構成または適合することができる。I2CまたはCCI動作モードを用いて得られるデータレートよりも著しく速いデータレートで動作することができる2線双方向半二重シリアルインターフェースを提供するために、I2Cバスを用いて、CCI拡張(CCIe)デバイスを展開することができる。
【００４１】
I2Cバス、CCIバス、またはCCIeバスなどのシリアルバスに結合されたスレーブデバイスは、複数の識別子に応答するように適合することができる。一例では、マスタデバイスが、スレーブデバイスのいくつかの動作態様の同期された制御をもたらすために、コマンドおよびデータを2つ以上のスレーブデバイスに一斉にアドレス指定することができるように、2つ以上のスレーブデバイスが、共通グループ識別子に応じ得る。スレーブデバイスは、各スレーブデバイスとバスマスタとの間の1対1の通信を可能にする、個別化または一意の識別子を授けられ得る。
【００４２】
本発明のいくつかの態様は、電話、モバイルコンピューティングデバイス、電気製品、自動車用電子機器、アビオニクスシステム、ウェアラブルコンピューティングデバイス、電気製品など、装置のサブ構成要素を含むことができる電子デバイス間に展開される通信リンクに対して適用可能とすることができる。図1は、ICデバイス間で通信リンクを用いることが可能な装置を示す。一例では、装置100は、無線アクセスネットワーク(RAN)、コアアクセスネットワーク、インターネット、および/または別のネットワークとRFトランシーバを介して通信するワイヤレス通信デバイスを含み得る。装置100は、処理回路102に動作可能に結合された通信トランシーバ106を含み得る。処理回路102は、特定用途向けIC(ASIC)108など、1つまたは複数のICデバイスを含み得る。ASIC108は、1つまたは複数の処理デバイス、論理回路などを含み得る。処理回路102は、処理回路102によって実行され得る命令およびデータを維持することができるメモリ112などのプロセッサ可読ストレージを含み、かつ/またはそれに結合することができる。処理回路102は、オペレーティングシステム、または、ワイヤレスデバイスのメモリデバイス112などの記憶媒体内に存在するソフトウェアモジュールの実行をサポートし可能にするアプリケーションプログラミングインターフェース(API)110レイヤのうちの1つまたは複数によって制御することができる。メモリデバイス112は、読取り専用メモリ(ROM)もしくはランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュカード、または処理システム内およびコンピューティングプラットフォーム内で使用され得る任意のメモリデバイスを含む場合がある。処理回路102は、装置100を構成および動作するために使用される動作パラメータおよび他の情報を維持できるローカルデータベース114を含むか、またはそれにアクセスすることができる。ローカルデータベース114は、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、光媒体、テープ、ソフトディスクまたはハードディスクなどのうちの1つまたは複数を使用して実装することができる。処理回路102はまた、他の構成要素の中でも、アンテナ122、ディスプレイ
124などの外部デバイス、ボタン128、およびキーパッド126などのオペレータ制御に動作可能に結合される場合がある。
【００４３】
図2は、ベースバンドプロセッサ204および画像センサ206を有するデバイス202の簡略化された例を示すブロック図200である。画像データバス216およびマルチモード制御データバス208は、デバイス202内に実装することができる。図200は、単に例としてカメラデバイス202を示し、様々な他のデバイスおよび/または様々な機能が、制御データバス208を使用して、実施、動作、および/または通信することができる。図示される例では、MIPIによって規定された「DPHY」、すなわち高速差動リンクなどの画像データバス216を介して、画像センサ206からベースバンドプロセッサ204に画像データを送ることができる。一例では、制御データバス208は、I2Cバスモードにおいて動作するために構成可能である2本の線を有することができる。したがって、制御データバス208は、SCL線およびSDA線を含むことができる。SCLは、I2Cプロトコルに従って、制御データバス208を介してのデータ転送を同期させるために用いることができるクロック信号を搬送することができる。データラインSDAおよびクロックラインSCLは、制御データバス208上にある複数のデバイス212、214、および218に結合することができる。この例では、制御データは、制御データバス208を介して、ベースバンドプロセッサ204と画像センサ206との間、ならびに他の周辺デバイス218間で交換することができる。I2Cプロトコルによれば、SCL線上のクロック速度は、通常のI2C動作の場合最高100KHz、I2C高速モードの場合最高400KHz、およびI2C高速モードプラス(Fm+)の場合最高1MHzであり得る。I2Cバスを介してのこれらの動作モードは、カメラの適用例のための使用されるとき、CCIモードと呼ばれる場合がある。
【００４４】
図3は、画像センサ304を有し、CCIeバス330などの通信バスに結合されるスレーブデバイス302を含む装置300のいくつかの態様を示すブロック概略図である。装置300は、ワイヤレスモバイルデバイス、モバイル電話、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイス、ウェアラブルコンピューティングデバイス、電気製品などのうちの1つまたは複数において具現される場合がある。装置300は、シリアルバス330を用いて通信する複数のデバイス302、320、および/または322a〜322nを含む場合がある。
【００４５】
本明細書で開示するいくつかの態様によると、デバイス302、320および/または322a〜322nのうちの2つ以上が、CCIe動作モードにおいてシリアルバス330を使うように構成または適合され得る。CCIe動作モードにおいて、シリアルバス330はCCIeバス230と呼ばれ得る。CCIeバス230は、CCIeバス動作に整合するデバイス302、320および/または322a〜322nの間で、より高いデータ転送レートを可能にすることができる。そのようなデバイス302、320および/または322a〜322nは、CCIeデバイスと呼ばれ得る。CCIeデバイス302、320および/または322a〜322nは、従来のCCIまたはI2Cバス330のSCL信号線316とSDA信号線318の両方において送信されるシンボルとしてデータを符号化することによって、互いと通信するとき、より高いデータレートを達成することができる。CCIeデバイス、CCIおよび/またはI2Cデバイスは、同じCCIeバス330上に共存し得る。たとえば、データは、第1の時間間隔においてCCIe符号化を使用して送信することができ、他のデータは、異なる時間間隔においてI2Cシグナリング規約に従って送信することができる。CCIeバス330は、CCIeバス330によってサポートされる強化された機能のために構成されたデバイス用に、従来のCCIバスの能力を拡張することができる。たとえば、CCIeバス330は、CCIバス330よりも高いビットレートをサポートすることができる。本明細書において開示されるいくつかの態様によると、CCIeバス330のいくつかのバージョンは、16.7Mbps以上のビットレートをサポートするように構成するか、または適合させることができ、CCIeバスのいくつかのバージョンは、少なくとも23メガビット毎秒のデータレートをサポートするように構成するか、または適合させることができる。
【００４６】
図3に示される例では、イメージングデバイス302は、CCIeバス330上でスレーブデバイスとして動作するように構成される。イメージングデバイス302は、たとえば、画像センサを含むか、または管理するセンサ制御モジュール304を提供するように適合させることができる。さらに、イメージングデバイス302は、構成レジスタ306および/または他の記憶デバイス324、処理回路および/または制御論理312、トランシーバ310、ならびにラインドライバ/受信機314aおよび314bを含む場合がある。処理回路および/または制御論理312は、状態機械、シーケンサ、信号プロセッサ、または汎用プロセッサなどのプロセッサを含む場合がある。トランシーバ310は、受信機310aと、送信機310cと、タイミング、論理、ならびに記憶回路および/またはデバイスを含むいくつかの共通回路310bとを含む場合がある。いくつかの事例では、トランシーバ310は、エンコーダおよびデコーダ、クロックおよびデータ復元回路などを含む場合がある。
【００４７】
送信クロック(TXCLK)信号328が送信機310cに供給される場合があり、送信機において、TXCLK信号328は、CCIe通信モード用のデータ送信レートを決定するために使用することができる。SDA線318とSCL線316の両方が送信データを符号化するために使用されるとき、TXCLK信号328は、CCIeバス330上で送信されるシンボルのシーケンス内に埋め込むことができる。一例では、TXCLK信号328は、遷移クロックのトランスコーディングを用いて埋め込むことができ、それにより、物理リンク330を介して送信されるべきデータが、CCIeバス330上で送信される連続するシンボルの各ペアの間で少なくとも1つの線316および/または318の状態変化が発生するようにトランスコードされる。
【００４８】
本明細書において開示する一例において、CCIeデバイス302、320および/または322a〜322nは、制御データバス330の2線316、318を用いて通信することができる。たとえば、2線制御データバス330は、I2CまたはCCI動作モードによってサポートされるデータレートよりも著しく速いデータレートを与えることができるCCIe双方向半二重通信モードをサポートすることができる。CCIeデバイス302、320および/または322a〜322nは、制御データバス330のSCL線316とSDA線318の両方においてデータを送信することができ、2線制御データバス330上で送信されるシンボルシーケンス中にクロック情報が埋め込まれている。特定のCCIeデバイス320はバスマスタとして構成することができ、特定のデバイス302および/または322a〜322nは、スレーブデバイスとして構成することができる。I2Cデバイスが制御データバス330を監視している場合であっても、CCIeデバイス302、320および/または322a〜322nが、CCIeプロトコルおよびシグナリング仕様を用いて、1つまたは複数の他のCCIeデバイス302、320および/または322a〜322nと通信できるように、CCIeデバイス302、320および/または322a〜322nは、制御データバス330に結合されるI2Cおよび/またはCCIデバイスと互換性があるか、または共存することができる。本明細書で開示する一例は、CCIeおよびI2C/CCIデバイスの両方が同じバス上に展開されるとき、単一のマスタデバイス320とともに、バスに結合された複数のスレーブ302、および/または322a〜322nを操作することができるインターフェースを提供する。後者の例において、2つ以上のCCIeデバイス302、320、および/または322a〜322nが、CCIeプロトコルを使用して通信することができ、I2CまたはCCIデバイスとのどの通信トランザクションも、I2Cバスプロトコルに従って行われる。
【００４９】
図4は、シリアルバス330がI2Cプロトコルに従って動作されるときのシングルバイト書込みデータ動作の例を示すタイミング図400である。この例では、図3のシリアルバス330に結合されたノード302、320、322a〜322nは、CCIeおよびI2C/CCIモードにおいて動作可能であると仮定することができる。各I2C送信420は、シリアルバス330上で表明される開始条件406で始まり、シリアルバス330上で停止条件416が表明されると終了する。開始条件406は、SCL信号線316が高状態に保持されている間にSDA信号線318が低に遷移したときに表明される。停止条件416は、SCL信号線316が高状態に保持されている間にSDA信号線318が高に遷移したときに表明される。I2Cプロトコルに従って、SDA信号線318上での遷移は、開始条件406および停止条件416を除いて、SCL信号線316が低であるときに起こる。
【００５０】
典型的なI2C動作において、I2Cマスタノードは、SDA信号線318上に7ビットのスレーブID402を送って、I2Cバス330上のどのスレーブノード302、322a〜322nにマスタノードがアクセスしたいかを示し、その後に、動作が読取り動作か書込み動作かを示す読取り/書込みビット412が続く。一例では、読取り/書込みビット312は、書込み動作を示すように論理0にある。別の例では、読取り/書込みビット312は、読取り動作を示すように論理1にある。7ビットスレーブID402とIDが一致するスレーブノード302、322a〜322nのみが、書込み(または任意の他の)動作に応答することを許可される。7ビットスレーブID402は、I2C/CCIバス330上で使用するための128個のアドレスを許可する。I2Cスレーブノード302、322a〜322nが、それ自体のIDと一致する、送信されたスレーブID402を検出するために、マスタノード320は、SCLライン316上で8つのクロックパルスとともに、SDAライン318上で少なくとも8ビットを送信すればよい。レガシーI2CスレーブノードがCCIe動作に反応することを防止するために、CCIe動作モードでデータを送信するようにこの挙動を活用することができる。
【００５１】
図5は、CCIeプロトコルに従って動作され、2つ以上の通信デバイス302、320、322a〜322nが、CCIeプロトコルに従って通信するように構成または適合されるときの、シリアルバス330上でのデータ送信を示すタイミング図500である。CCIe動作モードでは、データが、CCIeバス330の信号線316、318上で連続的に送信される2ビットシンボルのセットに符号化される。シンボルシーケンス502、504は、連続する送信間隔506、508において送信され得る。各シンボルシーケンス502、504には、開始条件516、518、520が先行する。開始条件516、518、520は、SCL信号線316が高状態に保持されている間にSDA信号線318が低に遷移したときに表明される。CCIeプロトコルに従って、SDA信号線318上での遷移は、シンボルシーケンス502、504が送信中のとき、SCL信号線316上で遷移が起こるのと同じときに起こり得る。開始条件516、518、520は、2つのシンボル間隔を占め得る。
【００５２】
図示の例において、各シンボルシーケンス502、504は、12個のシンボルを含み、16ビットのデータおよび3ビットのオーバーヘッドを含み得る20ビットデータ要素を符号化する。12シンボルのシーケンス502、504内の各シンボルは、シンボル期間(tsym)510ごとにSDA信号線318およびSCL信号線316のシグナリング状態を規定する。一例では、信号線316、318を駆動するのに使われるプッシュプルドライバ314a、314bは、20MHzシンボルクロックを使用して、50ns持続時間のシンボル期間510をサポートすることができる。連続するシンボルのシーケンス502と504との間の期間514内で、{3,1}と記され得る2シンボルのシーケンスが、開始条件518を与えるために終了する。得られる14シンボル送信(12シンボルペイロードおよび開始条件516、518、または520)について、第1の送信506の開始と第2の送信508の開始との間の最小経過時間512は、次のように算出することができる。
Tword=14×tsym=700ns
【００５３】
したがって、16個のデータビットは各々12シンボルのワード506、508で送信されるので、20ビットは700nsおきに送信することができ、約28.6Mbpsの未加工のビットレートおよび約22.86Mbpsの有用なビットレートをもたらす。
【００５４】
図6は、本明細書で開示されるいくつかの態様に従って構成された送信機600および受信機620の一例を示すブロック図である。CCIe動作の場合、送信機600は、データ610を、SCL316およびSDA318信号線上での送信用のシンボルを選択するのに使われる3進(base-3)遷移数612にトランスコードすればよい。描写された例では、入力データ610の各(データワードとも呼ばれる)データ要素は、19ビットまたは20ビットを有する場合がある。トランスコーダ602は、入力データ610を受信し、データ要素ごとに3進数612のシーケンスを生成することができる。3進数612は2ビットで符号化することができ、各3進シーケンス612中には12個の3進数があり得る。エンコーダ604は、ラインドライバ606を介して送信される2ビットのシンボル614のストリームを生成する。描写された例では、ラインドライバ606は、オープンドレイン出力トランジスタ608を含む。しかしながら、他の例では、ラインドライバ606は、プッシュプルドライバ(図3のドライバ314a、314bなど)を使用してSCL316およびSDA318の信号線を駆動することができる。SCL信号線316およびSDA信号線318のうちの少なくとも1つの状態において、2ビットシンボル614の出力ストリーム中の連続シンボルの間の遷移が行われる。エンコーダ604は、連続シンボルのどのペアも2つの同一シンボルを含まないことを保証することによって、連続シンボル614の間の遷移を可能にし得る。少なくとも1つの線316および/または318における状態の遷移の可用性により、受信回路620が、データシンボル614のストリームから受信クロック638を抽出することが可能になる。
【００５５】
CCIeシステムでは、受信機620は、クロックおよびデータ復元回路(CDR)628を含むか、またはそれと協働する場合がある。受信機620は、CDR628に未加工の2ビットシンボル636のストリームを与えるラインインターフェース626を含む場合がある。CDR628は、未加工のシンボル636から受信クロック638を抽出し、受信クロック638を有する2ビットシンボル634のストリームを、受信機620の他の回路624および622に与える。いくつかの例では、CDR628は、複数のクロック638を生成することができる。デコーダ624は、受信クロック638を使用して、シンボル634のストリームを12個の3進数632のシーケンスに復号することができる。3進数632は、2ビットを使用して符号化することができる。次いで、トランスコーダ622は、12個の3進数632の各シーケンスを19ビットまたは20ビットの出力データ要素630に変換することができる。
【００５６】
図7は、エンコーダ604によって、CCIeバス330上で送信するための埋め込みクロック情報を有するシンボル614のシーケンスを生じるのに使うことができる符号化方式700を示す図面である。符号化方式700はまた、CCIeバス330から受信されたシンボル634から3進遷移数を抽出するために、デコーダ624によって使用することができる。CCIe符号化方式700では、CCIeバス330の2本の線316、318により、4つの基本シンボルS:{0,1,2,3}の定義が可能になる。シンボル614、634のシーケンス内の任意の2つの連続するシンボルは様々な状態を有し、シンボルシーケンス{0,0}、{1,1}、{2,2}、および{3,3}は、連続するシンボルの無効な組合せである。したがって、各シンボル境界で3つのみの有効なシンボル遷移が可能であり、ここで、シンボル境界は送信クロックによって決定され、第1のシンボル(前のシンボルPs)722が終了し、第2のシンボル(現在のシンボルCs)724が開始するポイントを表す。
【００５７】
本明細書で開示されるいくつかの態様によれば、3つの可能な遷移は、Psシンボル722ごとに遷移数(T)726を割り当てられる。T726の値は、3進数によって表すことができる。T726の値は、3進数によって表すことができる。一例では、遷移数726の値は、符号化方式用のシンボル順序付けサークル702を割り当てることによって決定される。シンボル順序付けサークル702は、4つの可能なシンボル用のサークル702上のロケーション704a〜704d、およびロケーション704a〜704dの間の回転706の方向を割り振る。描写された例では、回転706の方向は時計回りである。遷移数726は、有効な現在のシンボル724と前のシンボル722との間の離隔を表すことができる。離隔は、前のシンボル722から現在のシンボルCs724に到達するために必要なシンボル順序付けサークル702上の回転706の報告に沿ったステップの数として定義することができる。ステップの数は、単一の桁の3進数として表現することができる。シンボル間の3ステップの差分は、0base-3として表すことができることが諒解されよう。図7のテーブル720は、この手法を使用する符号化方式を要約する。
【００５８】
送信機600において、前に生成されたシンボル722、および遷移数726として使用される入力3進数を知ると、テーブル720は、送信されるべき現在のシンボル724を検索するために使用することができる。受信機620において、テーブル720は、前に受信されたシンボル722と現在受信されたシンボル724との間の遷移を表す遷移数726を決定する索引として使用することができる。遷移数726は、3進数として出力することができる。
【００５９】
引き続き図5〜図7を参照すると、複数ビットのデータ610が、シリアルバス330上での単一の送信間隔506、508における送信のために、シンボル614のシーケンス中で符号化され得る。一例では、20ビットのデータ610が、2シンボル開始条件516、518によって先行される12シンボル614、502、504のシーケンス中で符号化され得る。各送信502、504のペイロードの内容が、CCIeプロトコルによって判断および/または制御され得るが、このプロトコルは、シリアルバス330を介した信頼できる通信を保証するための送信および制御機構のタイプを定義することができる。
【００６０】
図8は、CCIeプロトコル800のいくつかの態様の簡略図である。送信シンボル502、504中で符号化された20ビット要素は、制御情報またはデータを含むものとして識別され得る。12送信シンボル502、504中で符号化された20ビットのうちの最初の送信ビット(b19)816は、制御情報804が送信中のときはバイナリ「1」に、および符号化されたユーザデータ810、812、814が12送信シンボル502、504中で送信中のときはバイナリ「0」にセットされてよい。制御情報は、コマンド、状況、レジスタ内容および/または設定、ならびにデバイスの間の通信を制御し、順序付けるのに使われる他の情報を含み得る。ユーザデータという用語は、アプリケーションまたはコンテキストに基づいて定義される情報の16ビットフィールド824を指すことができる。異なるタイプのデータワード810、812、814が定義されてよく、これらのデータワード810、812、814は、スレーブアドレスもしくは識別子820、アドレスもしくはアドレス部分822、またはあらかじめ識別されたスレーブノードにおけるあらかじめ識別されたメモリアドレスから読み取られるか、もしくは書き込まれるべきアプリケーションデータ824などの情報を含み得る。
【００６１】
図8に示される簡略化された例800において、CCIeシリアルバス330上のマスタデバイス320は、1つまたは複数の送信中のスレーブ識別子810、1つまたは複数のアドレス送信812から読み取られ、またはそこに書き込まれるべき場所を識別する1つまたは複数のアドレスワード812a、812b、...812m中で送信されるアドレスを送ることによって、スレーブノード302、322a〜322nから、またはそこへの読取りまたは書込み動作を実施することができ、読取り/書込みユーザまたはアプリケーションデータは、1つまたは複数のユーザデータ送信ワード814a、814b、...814n中で送信することができる。
【００６２】
いくつかの事例では、スレーブIDワード810は、65,536個の可能アドレスを与える16ビットノード識別子820を含む。スレーブID820の後に送信される2ビットフィールド826は、バイナリ「11」(10進の「3」)にセットすればよい。追加のプロトコル定義(P)ビット818aが、エラー検出、または他のプロトコル関連機能をサポートするために与えられ得る。一例では、Pビット818aは、現在のワードについてのパリティビットまたは別のエラー検出値であり得る。別の例では、ワードシーケンス中のPビット818aは、ワードシーケンスについてのエラー検出および/または訂正に使うことができる。
【００６３】
いくつかの事例では、各アドレスワード812は、16ビットアドレス値、2ビット制御コード828、および追加のプロトコル定義(P)ビット818bを含む。複数のアドレスワード812a、812b、...812mが連続的に送信されてよい。制御コード828向けのビット設定の例が、Table 1(表1)に挙げられる。図示される例において、制御コード828は、別のアドレスワード812b、...812mが現在のアドレスワード812a、812bの後に送信されるべきであることを示すように「00」にセットすればよい。制御コード828は、データワードが次のデータワード814aの後に送信されるべきであることを示すように「01」にセットすればよい。制御コード828は、データワードが、CCIeシリアルバス330上で次のデータワード814aの後に読み取られるべきであることを示すように「10」にセットすればよい。制御コード828は、「読取り指定」ワード812b、...812mが、バーストモードで読み取られるべきワードの数を定義するように続くべきであることを示すように「11」にセットすればよい。
【００６４】
【表１】
2017500631.tif 000003
【００６５】
いくつかの事例では、各ユーザデータワード814は、16ビットデータ値824、2ビット制御コード830、および追加のプロトコル定義(P)ビット818cを含む。複数のユーザデータワード814a、814b、...814nが連続的に送信され得る。書込みデータに関する制御コード830向けのビット設定の例が、Table 2(表2)に挙げられる。読取りデータに関する制御コード830向けのビット設定の例が、Table 3(表3)に挙げられるバースト読取りデータに関しては、Table 4(表4)に挙げられる。
【００６６】
【表２】
2017500631.tif 000004
【００６７】
複数の書込みデータワードが連続的に送られ得る。Table 2(表2)において、制御コード830の値は、次のユーザデータワード814b、...814nを書き込むためのオフセット値を与える。たとえば、バイナリ「00」からバイナリ「10」にわたる値は、別の書込みデータワード814b、...814nが、制御コード830の値だけオフセットされた現在の場所において書き込まれるべきであることを示す。バイナリ「11」にセットされた制御コード830は、現在の書込みデータワード814a、814b、...814nが、書き込まれるべき最後のデータ824であることを示す。予期される次のワードは、新規トランザクションを開始するためのスレーブIDワード810、または、たとえば、シリアルバス330上の、マスタデバイスの変化を引き起こし、シリアルバス330をアクティブ状態に入らせ、シリアルバス330の(たとえば、I2Cモードへの)動作モードの変化を開始し、または何らかの他の活動、変化もしくはイベントを引き起こし得る「Exit」コードワードなどの制御ワード804であってよい。
【００６８】
【表３】
2017500631.tif 000005
【００６９】
Table 3(表3)は、ただ1つの読取りデータワード814が送信される、単一のデータワード814の読取り(Table 1(表1)のR1参照)に関する。制御コード830は、次のデータワード814中でCRCが送信されるかどうか判断するのに使うことができる。たとえば、制御コード830は、現在のデータワード814の後にどのCRCワード814も送信されるべきでない場合はバイナリ「11」にセットすればよく、現在のデータワード814の後にCRCワード814が送信されるべきである場合は「00」にセットすればよい。
【００７０】
【表４】
2017500631.tif 000006
【００７１】
Table 4(表4)は、複数のデータワード814のバーストモード読取りに関する(Table 1(表1)のRB参照)。アドレスワード812の制御コード828は、「読取り指定」ワードがアドレスワード812に続くことを示すことができる。「読取り指定」ワードは、16ビットフィールドを含むことができ、これによってt=第1の送信ビット(b18)は、無制限の数のビットが読み取られるべきであるときはバイナリ「1」にセットされ、残りの15ビット(b17〜b3)が、送信されるべきデータワード814の数を指定するときは「0」にセットされる。RBモードにおいて送信される読取りデータワード814は、16ビット読取りデータ値824、2ビット制御コード830、および追加のプロトコル定義(P)ビット818cを含み得る。読取りデータワードの制御コード830は、現在の読取りデータワード814a、814b、...814nが最後の読取りデータワード814であることを示すように「11」にセットし、現在の読取りデータワード814a、814b、...814nが最後の読取りデータワード814でないことを示すようにバイナリ「00」にセットすればよい。
【００７２】
プロトコルは、「読取り指定」ワードによって指定されるよりも多くのデータワード814(CRCワードは含まない)をスレーブノードが送るのを禁じる場合がある。プロトコルは、スレーブノードが少なくとも1つの読取りワード814(CRCワードは含まない)を送ることを指定する場合がある。スレーブノードは、「読取り指定」ワードによって指定された数のワードを送信する前に、読取り転送を終了してよい。
【００７３】
複数のイメージングデバイスまたは他の周辺装置を有するデバイス
いくつかの事例では、複数のイメージングデバイスが装置に設けられる場合がある。一例では、モバイル通信デバイスが、前向き画像および後ろ向き画像をユーザが別個に取り込むことを可能にするために、デバイスの2つの側面にカメラを設けることができる。別の例では、モバイル通信デバイス、ビデオカメラなどが、立体または3次元(3D)画像の取込みを可能にするために、同じまたは異なる表面上に、離間された2つ以上のイメージングデバイスまたはカメラを設けることができる。後者の例において、2つ以上のカメラは同時に動作させることができ、ここで、装置のベースバンドプロセッサが特定のコマンドおよび制御情報を同等に、同時に、または一斉に、両方のイメージングデバイスに送信できることが望ましいか、または求められる場合がある。
【００７４】
図9は、画像センサおよび/またはセンサコントローラ904、924を各々が有する2つのイメージングデバイス902、922を含む装置900のいくつかの態様を示すブロック概略図であり、ここでデバイス902、922はスレーブとしてシリアルバス330に結合される。装置900は、ワイヤレスモバイルデバイス、モバイル電話、カメラ、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイス、ウェアラブルコンピューティングデバイス、電気製品などのうちの1つまたは複数において具現される場合がある。装置900は、他のスレーブデバイス(図示せず)と、シリアルバス330上でCCIまたはCCIeマスタとして働くベースバンドプロセッサ920とを含み得る。装置は、組み合わされると単一の3D画像を作成するのに使われる別個のビューを与える左カメラおよび右カメラを有する3Dまたは立体カメラシステムを実装することができる。各カメラは、スレーブデバイス902、922において具現され、またはそれによって制御される場合があり、CCIバスまたはCCIeバスとして動作され得るシリアルバス330を介してマスタノード920に結合され得る。製造を容易にするために、両方のカメラは、互いと同一であってよく、同じスレーブデバイス識別子(SID)を有してよい。本明細書で使用する「スレーブデバイス識別子」および「スレーブデバイス識別情報」という用語は、スレーブデバイス識別情報はスレーブデバイス識別子であるとともに、SIDという頭字語は両方を指すので、交換可能である。
【００７５】
イメージングデバイス902、922は、それぞれの画像センサを含み、それらに結合され、かつ/またはそれらを管理するセンサ制御モジュール904、924を含み得る。さらに、イメージングデバイス902、922は、構成レジスタ906、926および/または他の記憶デバイス908、928、処理回路および/または制御論理912、932、ならびにトランシーバ910、930を含み得る。処理回路および/または制御ロジック912、932の各々は、状態機械、シーケンサ、信号プロセッサ、専用プロセッサ、または汎用プロセッサなどのプロセッサを含む場合がある。トランシーバ910、930は、エンコーダ、デコーダ、ラインドライバ、ライン受信機、タイミング回路、論理および記憶回路、クロックおよびデータ復元回路、ならびに/または他のデバイスを含むか、または制御することができる。
【００７６】
3Dまたは立体カメラ構成の例では、構成要素イメージングデバイス902、922と個別に通信する能力を保持したまま、特定のコマンドおよび制御情報を同時に、または一斉にイメージングデバイス902、922に通信することが望ましい場合がある。たとえば、カメラ動作は、カメラ動作のシャッターリリース、絞り設定および他の態様がベースバンドプロセッサ920によって開始され、イメージングデバイス902、922によって同時に、または一斉に実行され得るように、イメージングデバイス902、922の間で調整することができる。
【００７７】
図10は、カメラ構成1000、1020、1040の3つの例を示す。各構成1000、1020、1040において、ベースバンドプロセッサ1002、1022、1042は、CCIプロトコルまたはCCIeプロトコルに従って動作させることができる1つまたは複数のシリアルバス1008、1028、1030、1048、1050、1052を使用して、カメラまたはイメージングデバイス1004/1006、1024/1026、1044/1046のそれぞれのペアと通信する。
【００７８】
第1の構成1000において、カメラシステムは、組み合わされると単一の3D画像を作成するのに使われる別個のビューを与えるように構成された左カメラ1004および右カメラ1006を有する。いくつかの事例では、および製造を容易にするために、両方のカメラ1004、1006は、互いと同一であってよく、同じSIDを与えられ得る。コマンドおよび制御情報の一斉通信は、両方のイメージングデバイス1004、1006への同じSIDの割当てを通して容易にすることができる。両方のイメージングデバイス1004、1006が同じSIDを有するとき、ベースバンドプロセッサ1002は、イメージングデバイス1004、1006によって同時に、または一斉に受信され、実行され得るコマンドを発行することができる。たとえば、「シャッターリリース」コマンドが、わずかなクロック周期においてイメージングデバイス1004、1006によって実行され得る。両方のイメージングデバイス1004、1006への同じSIDの割当ては通常、プロトコル定義の読取り動作およびいくつかの書込み動作を妨げる。共有SIDに対する、ベースバンドプロセッサ1002によって発行された読取りコマンドの結果、両方のイメージングデバイス1004、1006が一斉に送信することができ、シリアルバス1008上での衝突または干渉を起こさせる。
【００７９】
一例では、両方のカメラ1004、1006がSID=Xを有し得る。従来のシステムにおける両方のカメラ1004、1006が、シリアルバス1008上でマスタノード1002によって送信されるとともにSID=Xを有するデバイスに向けられるデータについての要求に応答するとき、衝突が起こり得る。カメラ1004、1006によって送信される読取りデータに加え、各書込みデータバイトの肯定応答および/または否定応答(すなわち、ACK/NACK)ビットも衝突し得る。したがって、第1の構成1000は、従来のシステムにおいて使われるとき、実際的でなく、動作限定される傾向がある。
【００８０】
第2の構成1020において、カメラシステムは、組み合わされると単一の3D画像を作成するのに使われる別個のビューを与えるように構成された左カメラ1024および右カメラ1026を有する。別個のシリアルバス1028、1030のペアが、ベースバンドプロセッサ1022をカメラ1024、1026に結合するのに使われ得る。ベースバンドプロセッサ1002は、コマンドがカメラ1004、1006によって一斉に、または同時に受信され、実行されるように、シリアルバス1028、1030上でコマンドを一斉に発行することができる。両方のカメラ1024、1026が互いと同一であり、同じSIDを与えられている事例では、カメラ1024、1026は、衝突を引き起こすことなく同一のSIDで動作され得る。
【００８１】
複数のシリアルバスを使用した結果、ハードウェアおよびソフトウェアの複雑さが増す場合がある。第2の構成1020におけるベースバンドプロセッサ1022は、通信を操作するのに必要とされるハードウェア複雑さおよび処理時間における関連コストを伴って、少なくとも2つのシリアルインターフェースを含むとともに動作させる。いくつかのトレードオフが求められる場合がある。たとえば、ハードウェア複雑さの観点からは、シリアルバス1028および1030上の追加デバイスをサポートすることが有利な場合がある。他のデバイスがサポートされるとき、異なるマスタが、カメラ1024、1026にコマンドが送られるべきであるとき、バス1028、1030のうちの1つの制御を有し得ることが可能である。したがって、ベースバンドプロセッサ1022は、コマンドが一斉に送信されることを保証するための、より洗練されたリソース管理プロセスを求め得る。つまり、ベースバンドプロセッサ1022は、コマンドを生成し、シリアルバス1028、1030の利用可能性を判断し、いずれかの利用可能バス1028、1030の制御を保持し、いずれかの残りのバスが利用可能になるのを待てばよい。これらの同期プロセスは、シリアルバス1028、1030のスループットおよび待ち時間に影響し得る。ブロードバンドプロセッサ1022、ブロードバンドプロセッサ1022上の二重化マスタ論理、および回路板上の二重化バス配線についての追加の物理的入出力要件(すなわちピン、リード、バンプ、パッドなど)が、カメラシステムのコストおよび複雑さを増大させる場合がある。
【００８２】
第3の構成1040において、カメラシステムは、組み合わされると単一の3D画像を作成するのに使われる別個のビューを与えるように構成された左カメラ1044および右カメラ1046を有する。1次シリアルバス1048が、ベースバンドプロセッサ1042によって、カメラ1044、1046と通信するために使われる。トラフィック制御デバイス1054が、1次シリアルバス1048を、カメラ1044、1046が接続される別個のシリアルバスセグメント1050、1052に選択的に接続するために設けられ得る。トラフィック制御デバイス1054は、ブリッジ、スイッチ、ルータまたはそれらの何らかの組合せとして実装することができる。ベースバンドプロセッサ1042によって与えられる1つまたは複数の信号1056が、1次シリアルバス1048から別個のシリアルバスセグメント1050、1052への間の接続モードを選択することができる。
【００８３】
第3の構成1040は、両方のイメージングデバイス1044、1046への同じSIDの割当てを通して、コマンドおよび制御情報の一斉通信を容易にする。両方のイメージングデバイス1044、1046が同じSIDを有するとき、ベースバンドプロセッサ1042は、両方のシリアルバスセグメント1050、1052を1次シリアルバス1048に結合するように、トラフィック制御デバイス1054を動作させることができ、ベースバンドプロセッサ1042は次いで、イメージングデバイス1044、1046によって一斉に、または同時に受信され、実行されるコマンドを発行することができる。読取りコマンドを送るとき、ベースバンドプロセッサ1042は、シリアルバスセグメント1050、1052のうちの一方を1次シリアルバス1048に結合させるとともに、他方のバスセグメント1052、1050が切断されるように、トラフィック制御デバイス1054を動作させればよい。
【００８４】
トラフィック制御デバイス1054は複合論理を含むことができ、トラフィック制御デバイス1054の動作をサポートするために、ベースバンドプロセッサ1042中に追加制御論理が設けられてよい。ベースバンドプロセッサ1042は、第3の構成1040を実装するために、より高い処理オーバーヘッドを受け得る。一例では、トラフィック制御デバイス1054は、イメージングデバイス1044、1046によって送信されたACK/NACKビットを組み合わせる追加論理を利用することができる。別の例では、トラフィック制御デバイス1054は、他のバスセグメント1052、1050が1次シリアルバス1048に結合されている間に切断されるシリアルバスセグメント1050、1052のシグナリング状態を管理する追加論理および/または回路を利用することができる。第3の構成1040は、衝突を回避し、コマンドおよび制御情報の一斉通信を容易にすることができるが、マスタノードまたはデバイス(この例では、ベースバンドプロセッサ1042)は、回路板上での追加ピン、追加デバイス(この例では、トラフィック制御デバイス1054)、および追加バス配線を求める。
【００８５】
複数のSIDを使う、シリアルバスを介した通信
本明細書で開示するいくつかの態様によると、CCIまたはCCIeスレーブデバイスには、複数のSIDを割り当てることができる。CCIまたはCCIeスレーブデバイスは、スレーブデバイスに割り当てられた複数のSIDのうちのいずれかに向けられたコマンドに応答するように適合されてよい。マスタノードが、いくつかのスレーブデバイスに複数のアドレスが割り当てられている場合にSID割当てを管理するように適合されてよい。マスタデバイスは、1つまたは複数のスレーブデバイスを個別に、またはグループとして、選択的にアドレス指定することができる。一例では、マスタノードは、コマンドが3Dカメラシステムにおける2つのカメラに一斉に向けられるべきであるかどうか判断することができ、そのようなコマンドを、両方のカメラによって共有されるSIDを使用して送信することができる。
【００８６】
本開示のいくつかの態様について、CCIeプロトコルに従って動作されるシリアルバスインターフェースとの関連で、ここで説明する。これらの態様も概して、CCIプロトコルに従って動作するシリアルバスインターフェースに適用されてよいが、スレーブデバイスを、そのようなデバイスがCCI動作モードにおいて複数のSIDに応答することを可能にするように適合させるとき、いくつかの調節および/または妥協が行われてよい。たとえば、CCIインターフェースにおいて利用されるACK/NACKプロトコルの結果、2つ以上のスレーブデバイスによって共有されるSIDアドレスに対してI2C/CCI書込み動作が実施されると、衝突が起こり得る。いくつかの事例では、第2のスレーブデバイスが同じ書込みコマンドに応答してACKを送信する場合、マスタデバイスは、第1のスレーブデバイスからのNACK応答を無視してよい。
【００８７】
図11〜図13は、左カメラ1104および右カメラ1106が、カメラ1104、1106用に割り当てられ、または構成されている複数のSIDを維持し、応答するように適合されている、CCIeバス1108の動作を示す。ベースバンドプロセッサ1102は、マスタノードとして働き、第1の動作モードにおいて、回路板上の追加デバイスおよび/またはバス配線を使わずに、CCIeバス1108を通して両方のスレーブデバイス1104、1106にコマンドまたはデータを送信および受信することができる。第2の動作モードにおいて、ベースバンドプロセッサ1102は、スレーブデバイス1104、1106が、正常な状況における衝突を予期せずに、CCIeバス1108上でデータおよび他の情報を送信することができるように、スレーブデバイス1104、1106の各々と個別に通信することができる。
【００８８】
両方のカメラ1104、1106は、共通SIDを共有し、一意のSIDを個別に維持する。第1のカメラ1104は、共通SID(SID=X)および第1の一意のSID(SID=Y)に応答するように構成されてよい。第2のカメラ1106は、共通SID(SID=X)および第2の一意のSID(SID=Z)に応答するように構成されてよい。カメラ1104、1106に割り当てられた一意のSIDは、個別化識別子として働く。一例では、第1のカメラ1104は、3Dカメラシステムにおける左側カメラとして展開することができ、第2のカメラ1106は、3Dカメラシステムにおける右側カメラとして展開することができる。
【００８９】
ただ1つの一意のアドレスおよび1つの共通アドレスとともに示されているが、他の組合せが実装されてもよい。たとえば、カメラ1104、1106は、共通SID、および2つ以上の一意のSIDを有する場合がある。さらに、カメラ1104、1106以外のスレーブデバイス(図示せず)に複数のSIDが与えられる場合がある。スレーブデバイスは、機能性によってグループ化することができる。たとえば、すべてのスレーブデバイスが単一の共通SID(たとえば、SID0=X)を有することができ、各スレーブデバイスが一意のSIDを有することができ、同様の機能を実施するスレーブデバイスのグループが、共通機能に対応するグループIDを有することができる。一例では、すべてのカメラデバイス1104、1106がグループSID=Wを有することができ、すべての音響センサスレーブデバイスがグループSID=Qを有することができる。つまり、マスタデバイス1102は、すべてのカメラスレーブデバイスを応答させる、SID=Wにアドレス指定された書込みを送ることができる。音響センサは、人間の聴覚範囲内および/または超音波周波数での音を検知することが可能な可聴センサであってよい。
【００９０】
図11は、ベースバンドプロセッサ1102が、第1の動作モードに従ってCCIeバス1108を動作させる例1100に関する。このモードにおいて、ベースバンドプロセッサ1102は、コマンドおよびデータを共通SID(SID=X)にアドレス指定することによって、両方のカメラ1104、1106に効果的にブロードキャストする。第1の動作モードにおいて、ベースバンドプロセッサ1102は、両方のスレーブデバイス1104、1106にデータを書き込み、または目標スレーブデバイス1104、1106からの応答を求めないコマンドを送信することができる。CCIeはCCIe書込みワード形式でのACK/NACK通信を使わないので、CCIe交換において衝突は起こらない。したがって、いずれのカメラ1104、1106もコマンドまたは書込みデータの受信を確認せず、データ衝突も後に続かない。図11は、2つのスレーブデバイス1104、1106の例に関するが、2つより多いスレーブデバイス1104、1106が共通SIDを共有する場合がある。各スレーブデバイス1104、1106は、複数の共通SIDを維持し、または応答することもでき、CCIeバス1108の動作の柔軟性を損なわずに、スレーブデバイス1104、1106の重複するグループの構成を許可する。CCIeプロトコルは、65,536個の可能なSIDを含むアドレス空間を提供する。I2C/CCIプロトコルは、128個のSIDの制限されたアドレス空間を提供することが諒解されよう。
【００９１】
図12は、ベースバンドプロセッサ1102が、第2の動作モードに従ってCCIeバス1108を動作させる例1200に関する。この例1200において、ベースバンドプロセッサ1102は、左カメラ1104への個別書込みを実施する。ベースバンドプロセッサ1102は、左カメラ1104にのみ割り当てられた第1の一意のSID(Y)を使用して左カメラ1104をアドレス指定することによって、書込み動作用に左カメラ1104を選択する。
【００９２】
図13は、ベースバンドプロセッサ1102が、第2の動作モードに従ってCCIeバス1108を動作させる例1300に関する。この例1200において、ベースバンドプロセッサ1102は、右カメラ1106からの読取りを実施する。ベースバンドプロセッサ1102は、右カメラ1106にのみ割り当てられた第2の一意のSID(Z)を使用して右カメラ1106をアドレス指定することによって、書込み動作用に右カメラ1106を選択する。
【００９３】
図14は、スレーブデバイスについての複数のSIDをサポートするように適合されるCCIeマスタノード1402のいくつかの態様を示すブロック概略図1400である。マスタノード1402は、ワイヤレスモバイルデバイス、モバイル電話、カメラ、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイス、ウェアラブルコンピューティングデバイス、電気製品などのうちの1つまたは複数において具現される場合がある。一例では、マスタノード1402は、3Dまたは立体カメラシステムを管理するように構成することができ、ここで各カメラは、CCIeバスを通してマスタノード1402に結合された異なるスレーブデバイス902、922中で具現され、またはそれによって制御される。
【００９４】
マスタノード1402は、処理回路および/または制御論理1404、1つまたは複数の記憶デバイス1406、データベースマネージャまたはリストマネージャ1408、プロトコルモジュール1410ならびにトランシーバ1412を含み得る。処理回路および/または制御論理1404は、状態機械、シーケンサ、信号プロセッサ、または汎用プロセッサなどのプロセッサを含む場合がある。トランシーバ1412は、エンコーダ、デコーダ、ラインドライバ、ライン受信機、タイミング回路、論理および記憶回路、クロックおよびデータ復元回路、ならびに/または他のデバイスを含むか、または制御することができる。
【００９５】
マスタノード1402は、複数のSIDを維持し、またはそれらに応答するスレーブデバイスの一覧を含む、CCIeバスに結合された既知または識別されたスレーブデバイスにSIDを関連付けるSID一覧1420を維持するのに、リストマネージャ1408を使うことができる。マスタノード1402は、各スレーブデバイスについての少なくとも1つの一意の識別子を含むSID一覧1420を維持することができる。CCIeプロトコルは、複数のマスタノード1402がCCIeバスを直列に制御することができるマルチマスタ環境をサポートする。CCIeバスを制御することを望む非アクティブマスタデバイスは、現在のマスタノード1402に、CCIeバスの制御についての要求を送ればよい。要求は、ただ1つのマスタが常にCCIeバスを制御することができるので、非アクティブマスタデバイスがスレーブモードで動作されている間に非アクティブマスタデバイスによって送られる。アクティブマスタノード1402は、CCIeバス上でマスタ役割のハンドオーバを開始する間、前、または後に、SID一覧1420を非アクティブマスタに転送すればよい。
【００９６】
現在のマスタノード1402は、SID一覧1420を、データベース、リスト、表または何らかの他のデータ構造において維持することができる。SID一覧1420は、マスタノード1402にとって既知である各スレーブデバイスについての少なくとも1つのSIDを明記し得る。いくつかの事例では、マスタノード1402が、マスタノード1402がアクセスするか、またはアクセスした、識別されたスレーブデバイスについてのSIDを含むSID一覧1420を維持することができる。後者の例において、SID一覧1420は、CCIeバスに結合されたすべてのスレーブデバイスについてのSIDを含むわけではない場合がある。一例では、マルチマスタ環境における複数のマスタデバイス1402は各々、CCIeバスに結合されたスレーブデバイスすべてからなる小さいサブセットのみにアクセスする根拠を有することができ、マスタノード1402は、スレーブデバイスのサブセットのSIDを知ることができるか、または知る必要がある。
【００９７】
スレーブデバイスのSIDは、固定、プログラム可能またはそれらの何らかの組合せであってよい。一例では、各スレーブデバイスは、プリセットされており調節可能でない場合がある、工場出荷時に構成されたSID(SID0)1422aが与えられてよく、スレーブデバイスは、他の構成可能SID(SID1、SID2、…SIDn)1422b〜1422nを維持し、またはそれらに応答するように構成可能であり得る。構成可能SID1422b〜1422nは、ソフトウェアプログラミングを通して、またはスレーブデバイス上での、たとえば外部ピンもしくはジャンパを使うハードウェア動作によって構成することができる。米国電気電子技術者協会(IEEE)は、いくつかのスレーブデバイスにおいてSIDを割り当てるのに使うことができる規格(IEEE1149.1規格)を公開している。いくつかの事例では、スレーブデバイスが、eFUSE準拠プログラム可能構成要素を含み得る。いくつかの事例では、スレーブデバイスは、フィールドプログラム可能ゲートアレイ(FPGA)または少なくとも1つのSIDを記憶し、使うようにプログラムすることができる他のプログラム可能論理構成要素を含み得る。
【００９８】
SID一覧1420は、図1400において1〜mと番号付けられる複数のデバイスを有するか、または対応することが可能であり得る。第1の例において、SID一覧1420は、製造業者によって生産されるとともに、グループまたは共通SID(SID=X)および少なくとも1つの2次SID(SID=Y)を含む複数のSIDを有して構成された第1のデバイス(デバイス1)を識別することができる。SID一覧1420は、同じ製造業者によって生産されるとともに、グループまたは共通SID(SID=X)および少なくとも1つの2次SID(SID=Z)を含む複数のSIDを有して構成された第2のデバイス(デバイス1)を識別することができる。一例では、特定のタイプおよび/またはモデルのすべてのデバイスが、グループまたは共通SID=Xを有して構成されてよく、製造業者は、スレーブデバイスの第1のバッチを、グループまたは共通SID(SID=X)に加え、2次SID=Yを有してさらに構成することができ、製造業者は、スレーブデバイスの第2のバッチを、グループまたは共通SID=Xに加え、2次SID=Zを有して構成することができる。2つのバッチからのスレーブデバイスの間を区別可能であることにより、同じタイプの正確に2つのスレーブデバイスを1つの装置に含めることが容易になり得る。言い換えると、2つのバッチの各々からの1つのデバイスを含むスレーブデバイスのペアは、それぞれのSID1 1422bが異なる値を有することを除いて同一である。製造業者は、同じタイプの2つより多いスレーブデバイスがシリアルバスに結合されることを可能にする、異なる2次アドレスを有するスレーブデバイスの他のバッチを生産することができる。
【００９９】
第2の例において、スレーブデバイス製造業者は、固定SIDをもたないスレーブデバイスを生産することができる。各スレーブデバイスは、スレーブデバイスが装置に統合されるとき、および/またはシリアルバスに結合された後、構成することができる。
【０１００】
スレーブデバイス中で構成されるSIDのうちの1つまたは複数は、グループIDであり得る。たとえば、スレーブデバイスが、2つの別個の機能的グループ定義に収まるような混合機能性を有する場合、そのスレーブデバイスは両方のグループの一部であり得る。図示されるSID一覧1420において、デバイス1〜4の各々は、これらのデバイスについてのSID0 1422aとして維持される共通SID(SID=X)を有して構成することができ、デバイス1〜4は、これらのデバイスについてのSID1 1422bとして識別される、異なる2次SIDを有して構成することができる。たとえば、SID一覧1420は、デバイス1についてのSID0エントリ1422aとしての共通SID(SID=X)およびデバイス1についてのSID1エントリ1422bとしての一意のSID(SID=Y)を含むことができ、SID一覧1420は、デバイス2についてのSID0エントリ1422aとしての共通SID(SID=X)およびデバイス2についてのSID1エントリ1422bとしての一意のSID(SID=Z)を含むことができる(図11も参照)。この例では、SID一覧1420は、デバイス3についてのSID1エントリ1422bとしての一意のSID(SID=A)およびデバイス4についてのSID1エントリ1422bとしてのSID(SID=B)を含み、デバイス3およびデバイス4は両方とも、共通SID(SID=X)を有して構成され、したがってデバイス1およびデバイス2を有する共通グループのメンバである。SID一覧1420は、デバイス1およびデバイス2についてのSID2エントリ1422cとしてのグループSID(SID=C)と、デバイス3およびデバイス4についてのSID2エントリ1422cとしてのグループSID(SID=D)とを含む。したがって、デバイス1〜4の各々は、2つの異なるグループに属し得る。
【０１０１】
図示されるSID一覧1420において、デバイス5は、デバイス5およびデバイス6についてのSID2エントリ1422cとしてのグループSID(SID=G)の存在を通して、デバイス6も含む第3のグループに属すものとして識別される。
【０１０２】
図示されるSID一覧1420において、デバイス7は、どのグループのメンバとしても識別されないが、このデバイスについて2つのSID割当てが記録される。デバイス8は、SID1エントリ1422bにおいて記録された単一のSID(SID=R)割当てを有するものとして示され、これは、デバイス8が、複数のSIDに向けられた通信に応答することが可能であること、および/または別のSIDが、デバイス8に割り当てられたが、その後消去されるか、またはそうでなければマスタデバイス1402の使用には利用不可能であることを示し得る。デバイス9は、デバイス9についてのSID0エントリ1422aとして維持される単一のSID(SID=T)を有し、デバイス9は、複数のSIDに向けられた通信に応答するように適合または構成されていない従来のスレーブデバイスであってよい。
【０１０３】
SID一覧1420に示される最後のデバイス(デバイスm)は、SID0エントリ1422a(SID=M)を含む。いくつかの例において、SID一覧1420は、マスタノード1402にとって既知であるいくつかのスレーブデバイスについてのSID情報を維持するのに十分な、調節可能な長さを有し得る。つまり、デバイスmは、マスタノード1402によって新規スレーブデバイスが発見されると増大され得る長さを有するSID一覧1420中の最後のエントリであり得る。他の例では、マスタノード1402は、十分であるか、または動作中に部分的に埋められ得る事前構成された、固定長のSID一覧1420を維持すればよい。いくつかの事例では、SID一覧1420には、10〜m-1(図示せず)と番号付けられたデバイスについてのエントリがない場合がある。他の事例では、10〜m-1と番号付けられた、デバイスのうちのすべてよりも少ないものが、SID一覧1420中で構成された1つまたは複数のSIDを有し得る。
【０１０４】
SID一覧1420は、割り当てられた、または識別されたSIDを有していないデバイスについてのエントリを含み得る。さらに、異なるスレーブデバイスが、SID用に異なる容量を有し得るので、SID一覧1420は、SID一覧1420中で識別されるスレーブデバイスのSID記憶容量および/または能力に関する情報を含み、かつ/またはそれに関連付けられ得る。一例では、いくつかのスレーブデバイスにはただ2つの異なるSIDが割り当てられてよく、別のスレーブデバイスは、128個のSIDを保持し、それらに応答するための容量を有することができる。この容量情報は、SID一覧1420に、またはマスタハンドオーバプロトコルの一部として新規マスタデバイスに転送することができる関連リストもしくは表に含まれ得る。別の例では、CCIeマスタデバイス1402が、CCIバスマスタを動作するように構成されてよく、SID一覧1420または関連情報が、1つまたは複数のスレーブデバイスについてのCCIe SIDおよびCCI SIDを識別することができる。
【０１０５】
処理回路の例
図15は、本明細書において開示される1つまたは複数の機能を実施するように構成することができる処理回路1502を利用する装置のためのハードウェア実施態様の簡略化された例を示す概念図1500である。たとえば、処理回路は、図1の処理回路102、図2のデバイス202またはデバイス230の少なくとも一部分、図3の処理回路312などとして展開される場合がある。本開示の様々な態様によれば、本明細書で開示された要素、または要素の任意の部分、または要素の任意の組合せは、処理回路1502を使用して実装することができる。処理回路1502は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ1504を含む場合がある。プロセッサ1504の例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって記載された様々な機能を実施するように構成された他の適切なハードウェアが含まれる。1つまたは複数のプロセッサ1504は、特定の機能を実施し、ソフトウェアモジュール1516のうちの1つによって構成されるか、増強されるか、または制御され得る専用プロセッサを含む場合がある。1つまたは複数のプロセッサ1504は、初期化中にロードされたソフトウェアモジュール1516の組合せを介して構成され、動作中に1つまたは複数のソフトウェアモジュール1516のローディングまたはアンローディングによってさらに構成される場合がある。
【０１０６】
図示された例では、処理回路1502は、バス1510によって概略的に表されるバスアーキテクチャを用いて実装することができる。バス1510は、処理回路1502の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含む場合がある。バス1510は、1つまたは複数のプロセッサ1504およびストレージ1506を含む様々な回路を互いにリンクさせる。ストレージ1506は、メモリデバイスおよび大容量記憶デバイスを含む場合があり、本明細書ではコンピュータ可読媒体および/またはプロセッサ可読媒体と呼ばれる場合がある。バス1510は、タイミングソース、タイマー、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできる。バスインターフェース1508は、バス1510と1つまたは複数のトランシーバ1512との間のインターフェースを提供することができる。トランシーバ1512は、処理回路によってサポートされるネットワーキング技法ごとに提供される場合がある。場合によっては、複数のネットワーキング技法は、トランシーバ1512内で見出される回路または処理モジュールの一部または全部を共有することができる。各トランシーバ1512は、送信媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に応じて、ユーザインターフェース1518(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)が設けられる場合もあり、直接またはバスインターフェース1508を介して、バス1510に通信可能に結合される場合がある。
【０１０７】
プロセッサ1504は、バス1510の管理、およびストレージ1506を含む場合があるコンピュータ可読媒体に記憶されたソフトウェアの実行を含む場合がある全体的な処理を担当することができる。この点において、プロセッサ1504を含む処理回路1502は、本明細書で開示された方法、機能、および技法のうちのいずれを実施するためにも使用することができる。ストレージ1506は、ソフトウェアを実行するときプロセッサ1504によって扱われるデータを記憶するために使用することができ、ソフトウェアは、本明細書で開示された方法のうちの任意の1つを実施するように構成することができる。
【０１０８】
処理回路1502内の1つまたは複数のプロセッサ1504はソフトウェアを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数、アルゴリズムなどを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読形態で、ストレージ1506または外部コンピュータ可読媒体に存在する場合がある。外部コンピュータ可読媒体および/またはストレージ1506は、非一時的コンピュータ可読媒体を含む場合がある。非一時的コンピュータ可読媒体には、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、およびコンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体が含まれる。コンピュータ可読媒体および/またはストレージ1506には、例として、搬送波、伝送路、および、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を送信するための任意の他の適切な媒体も含まれ得る。コンピュータ可読媒体および/またはストレージ1506は、処理回路1502の中に、プロセッサ1504の中に、処理回路1502の外部に存在するか、または処理回路1502を含む複数のエンティティにわたって分散される場合がある。コンピュータ可読媒体および/またはストレージ1506は、コンピュータプログラム製品内で具現化される場合があ
る。例として、コンピュータプログラム製品には、パッケージング材料内のコンピュータ可読媒体が含まれ得る。当業者は、具体的な適用例およびシステム全体に課された全体的な設計制約に応じて、本開示全体にわたって提示された記載機能を最も良く実装する方法を認識されよう。
【０１０９】
ストレージ1506は、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどにおいて維持され、および/または編成されるソフトウェアを維持することができ、これは、本明細書ではソフトウェアモジュール1516と呼ばれ得る。ソフトウェアモジュール1516の各々は、処理回路1502にインストールまたはロードされ、1つまたは複数のプロセッサ1504によって実行されたとき、1つまたは複数のプロセッサ1504の動作を制御するランタイム画像1514に寄与する命令およびデータを含む場合がある。実行されたとき、いくつかの命令は、本明細書に記載されたいくつかの方法、アルゴリズム、およびプロセスに従って機能を実行することを、処理回路1502に行わせることができる。
【０１１０】
ソフトウェアモジュール1516のうちのいくつかは、処理回路1502の初期化中にロードすることができ、これらのソフトウェアモジュール1516は、本明細書において開示される種々の機能を実行可能にするように処理回路1502を構成することができる。たとえば、いくつかのソフトウェアモジュール1516は、プロセッサ1504の内部デバイスおよび/または論理回路1522を構成することができ、たとえばトランシーバ1512、バスインターフェース1508、ユーザインターフェース1518、タイマー、数学的コプロセッサなどの外部デバイスへのアクセスを管理することができる。ソフトウェアモジュール1516は、割込みハンドラおよびデバイスドライバと対話し、処理回路1502によって提供される様々なリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含む場合がある。リソースには、メモリ、処理時間、トランシーバ1512へのアクセス、ユーザインターフェース1518などが含まれ得る。
【０１１１】
処理回路1502の1つまたは複数のプロセッサ1504は、多機能とすることができ、それによって、ソフトウェアモジュール1516のいくつかは、ロードされ、異なる機能または同じ機能の異なるインスタンスを実施するように構成される。1つまたは複数のプロセッサ1504は、さらに、たとえば、ユーザインターフェース1518、トランシーバ1512、およびデバイスドライバからの入力に応答して開始されるバックグラウンドタスクを管理するように適合される場合がある。複数の機能の実施をサポートするために、1つまたは複数のプロセッサ1504は、マルチタスク環境を実現するように構成することができ、それによって、複数の機能の各々が、必要または要望に応じて、1つまたは複数のプロセッサ1504によってサービスされるタスクのセットとして実装される。一例では、マルチタスク環境は、異なるタスク間でプロセッサ1504の制御を渡す時分割プログラム1520を使用して実装される場合があり、それにより、各タスクは、任意の未処理動作の完了後、および/または割込みなどの入力に応答して、時分割プログラム1520に1つまたは複数のプロセッサ1504の制御を戻す。タスクが1つまたは複数のプロセッサ1504の制御を有するとき、処理回路は、事実上、制御するタスクに関連付けられた機能によって対処される目的に特化される。時分割プログラム1520は、オペレーティングシステム、ラウンドロビンベースで制御を移すメインループ、機能の優先順位付けに従って1つもしくは複数のプロセッサ1504の制御を割り振る機能、および/または、1つもしくは複数のプロセッサ1504の制御を処理する機能に提供することによって外部イベントに応答する割込みドライブメインループを含むことができる。
【０１１２】
マルチSIDスレーブデバイスを伴う通信に関連した他の例
図16は、複数のSIDを有するスレーブデバイスがバスに結合されているとき、CCIeバスを動作するのに使われる方法1600を概念的に示す。
【０１１３】
ブロック1602において、アドレスリストを維持することができ、ここでアドレスリストは、制御データバスに結合された複数のスレーブデバイスの各々を複数のスレーブデバイス識別子に関連付ける。制御データバスは、CCIe、CCI、またはI2Cバスを含み得る。
【０１１４】
ブロック1604において、制御データバスへのアクセスが、アドレスリストに基づいて制御され得る。
【０１１５】
ブロック1606において、複数の動作モードのうちのどのモードが送信に利用されるべきであるか判断することができる。一例では、第1の動作モードが利用されるべきであり、方法はブロック1608において継続する。別の例では、第2の動作モードが利用されるべきであり、方法はブロック1610において継続する。
【０１１６】
ブロック1608において、および制御データバスを動作する第1のモードにおいて、第1のスレーブデバイスおよび第2のスレーブデバイスに関連付けられた第1のグループスレーブデバイス識別子を使用して、第1のスレーブデバイスおよび第2のスレーブデバイスとの同時通信が起こり得る。
【０１１７】
ブロック1610において、および制御データバスを動作する第2のモードにおいて、第1のスレーブデバイスに関連付けられ第2のスレーブデバイスには関連付けられていない一意のスレーブデバイス識別子を使用して、第1のスレーブデバイスとの個別通信が起こり得る。
【０１１８】
一例では、第1の書込みメッセージが、ブロードキャストされるか、またはさもなければ第1のグループスレーブデバイス識別子を使用して第1の複数のスレーブデバイスに同時に送信されてよく、第2の書込みメッセージが、ブロードキャストされるか、またはさもなければ第2のグループスレーブデバイス識別子を使用して第2の複数のスレーブデバイスに同時に送信されてよい。
【０１１９】
別の例では、読取りコマンドが、一意のスレーブデバイス識別子を使用して第1のスレーブデバイスにアドレス指定されてよく、読取りコマンドに応答して第1のスレーブデバイスによって送信されたデータが、受信され、かつ/または読み取られてよい。制御データバスに結合された他のスレーブデバイスは、読取りコマンドに応答しない場合がある。
【０１２０】
図17は、処理回路1702を利用する装置1700についてのハードウェア実装形態の一例を示す概念図である。この例では、処理回路1702は、バス1716によって概略的に表されるバスアーキテクチャを用いて実装される場合がある。バス1716は、処理回路1702の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含む場合がある。バス1716は、プロセッサ1712、コネクタまたは線1720を介して通信可能なラインインターフェース回路1720によって全体的に表される1つまたは複数のプロセッサと、プロセッサ可読記憶媒体1714によって全体的に表されるコンピュータ可読媒体とを含む種々の回路を互いにリンクする。バス1716は、タイミングソース、タイマー、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできる。バスインターフェース1718は、バス1716とラインインターフェース回路1720との間のインターフェースを提供する。装置の性質に応じて、ユーザインターフェース1722(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)が設けられる場合もある。1つまたは複数のクロック発生回路またはモジュールは、処理回路1702内に設けられるか、あるいは処理回路1702および/または1つもしくは複数のプロセッサ1712によって制御される場合がある。
【０１２１】
プロセッサ1712は、バス1716の管理と、プロセッサ可読記憶媒体1714に記憶されたソフトウェアの実行を含む全体的な処理とを担当する。ソフトウェアは、プロセッサ1712によって実行されたとき、任意の特定の装置について上記に記載された様々な機能を処理回路1702に実施させる。一例では、ソフトウェアは、処理回路1702の様々な機能、回路およびモジュールを構成し、開始し、制御し、かつ/またはさもなければ管理するように設けられる。プロセッサ可読記憶媒体1714は、データレーンおよびクロックレーンとして構成され得るコネクタまたは線1720上で受信された信号から復号されたデータを含む、コネクタまたは線1720を介して送信されたシンボルから復号されたデータを含む、ソフトウェアを実行するときにプロセッサ1712によって扱われるデータを記憶するために使うことができる。
【０１２２】
一構成では、処理回路1702は、スレーブデバイス上でSIDを構成するためのモジュールおよび/または回路1710、SID記憶および/または維持モジュールおよび/または回路1708、個々のスレーブデバイスに送信し、または共有SIDにブロードキャストするためのCCIe送信機モジュールおよび/または回路1706、ならびにバスインターフェースモジュールおよび/または回路1718を含み得る。
【０１２３】
図18は、複数のSIDに応答するCCIeスレーブデバイスを動作するのに使われる方法1800を概念的に示す。
【０１２４】
ブロック1802において、スレーブデバイスは、第1のコマンドが第1のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第1のコマンドに応答することができる。少なくとも1つの他のスレーブデバイスは、第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成することができる。制御データバスは、CCIeバス、CCIバスおよび/またはI2Cバスであってよい。
【０１２５】
ブロック1804において、スレーブデバイスは、第2のコマンドが一意のスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第2のコマンドに応答することができる。通常、どの他のスレーブデバイスも、一意のスレーブデバイス識別子にアドレス指定された送信に応答するように構成されない。
【０１２６】
一例では、スレーブデバイスは、スレーブデバイスに関連付けられた複数のスレーブデバイス識別子をストレージ内で維持し、ストレージ内で維持されていないスレーブデバイス識別子に読取りまたは書込みコマンドがアドレス指定されるとき、制御データバスから受信された読取りまたは書込みコマンドに応答するのを控えることができる。ストレージ内で維持される複数のスレーブデバイス識別子は、一意のスレーブデバイス識別子および第1のグループスレーブデバイス識別子を含み得る。
【０１２７】
別の例では、スレーブデバイスは、第3のコマンドが第2のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバス上でバスマスタによって送信された第3のコマンドに、スレーブデバイスにおいて応答することができる。第1の複数のスレーブデバイスが、第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成されてよく、第2の複数のスレーブデバイスが、第2のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成されてよい。
【０１２８】
別の例では、第1の複数のスレーブデバイスの各々が第1の機能を実施し、第2の複数のスレーブデバイスの各々が、第1の機能とは異なる第2の機能を実施する。
【０１２９】
図19は、処理回路1902を利用する装置1900のためのハードウェア実施態様の一例を示す概念図である。この例では、処理回路1902は、バス1916によって概略的に表されるバスアーキテクチャを用いて実装される場合がある。バス1916は、処理回路1902の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含む場合がある。バス1916は、プロセッサ1912、コネクタまたは線1920を介して通信可能なラインインターフェース回路1920によって全体的に表される1つまたは複数のプロセッサと、プロセッサ可読記憶媒体1914によって全体的に表されるコンピュータ可読媒体とを含む種々の回路を互いにリンクする。バス1916は、タイミングソース、タイマー、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできる。バスインターフェース1918は、バス1916とラインインターフェース回路1920との間のインターフェースを提供する。装置の性質に応じて、ユーザインターフェース1922(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)が設けられる場合もある。1つまたは複数のクロック発生回路またはモジュールは、処理回路1902内に設けられるか、あるいは処理回路1902および/または1つもしくは複数のプロセッサ1912によって制御される場合がある。
【０１３０】
プロセッサ1912は、バス1916の管理と、コンピュータ可読記憶媒体1914に記憶されたソフトウェアの実行を含む全体的な処理とを担当する。ソフトウェアは、プロセッサ1912によって実行されたとき、任意の特定の装置について上記に記載された様々な機能を処理回路1902に実施させる。一例では、ソフトウェアは、処理回路1902の様々な機能、回路およびモジュールを構成し、開始し、制御し、かつ/またはさもなければ管理するように設けられる。プロセッサ可読記憶媒体1914は、データレーンおよびクロックレーンとして構成され得るコネクタまたは線1920上で受信された信号から復号されたデータを含む、コネクタまたは線1920を介して送信されたシンボルから復号されたデータを含む、ソフトウェアを実行するときにプロセッサ1912によって扱われるデータを記憶するために使うことができる。
【０１３１】
一構成では、処理回路1902は、スレーブデバイス上でSIDを構成するためのモジュールおよび/または回路1910、SID記憶および/または維持モジュール、回路および/または記憶デバイス1908、CCIeバス上で応答を送信するように構成されたCCIe送信機モジュールおよび/または回路1906、ならびにバスインターフェースモジュールおよび/または回路1918を含み得る。
【０１３２】
図面に示された構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、再配置し、かつ/または組み合わせて単一の構成要素、ステップ、特徴または機能にすることができるか、あるいは複数の構成要素、ステップ、または機能において具現することができる。本明細書において開示された新規の特徴から逸脱することなく、さらなる要素、構成要素、ステップ、および/または機能も追加することもできる。図示される装置、デバイス、および/または構成要素は、図示された方法、特徴、またはステップのうちの1つまたは複数を実施するように構成することができる。本明細書に記載の新規なアルゴリズムも、効率的にソフトウェアに実装されてもよく、および/またはハードウェアに埋め込まれてもよい。
【０１３３】
さらに、実施形態は、流れ図、フロー図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。流れ図は、動作を順次プロセスとして説明する場合があるが、動作の多くは、並列にまたは同時に実施することができる。さらに、動作の順序は並べ替えることができる。プロセスは、その動作が完了したとき、終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。処理が関数に対応するとき、その終了は、関数が呼出し関数またはメイン関数に戻ることに対応する。
【０１３４】
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表す場合がある。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶するか、包含するか、または搬送することができる種々の他の媒体を含む。
【０１３５】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装される場合がある。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装される場合、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実施することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の適切な手段を介して渡すことができるか、転送することができるか、または送信することができる。
【０１３６】
本明細書において開示される例に関して説明される種々の例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書において説明される機能を実施するように設計されたそれらの任意の組合せで実装または実施することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングコンポーネントの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【０１３７】
本明細書において開示される例に関連して説明される方法またはアルゴリズムは、ハードウェアにおいて直接に、プロセッサによって実行可能なソフトウェアモジュールにおいて、またはその両方の組合せにおいて、処理ユニット、プログラミング命令、または他の指示の形において具現することができ、単一のデバイス内に含まれる場合があるか、複数のデバイスにわたって分散する場合がある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在することができる。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、かつその記憶媒体に情報を書き込むことができるように、プロセッサに結合することができる。代替形態では、記憶媒体はプロセッサと一体に構成することができる。
【０１３８】
当業者は、本明細書に開示された実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることをさらに理解するであろう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能性に関して上述されている。そのような機能性がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。
【０１３９】
本明細書において記載される本発明の様々の特徴は、本発明から逸脱することなく、異なるシステムにおいて実装することができる。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替、修正、および変更が当業者には明らかであろう。
【符号の説明】
【０１４０】
100  装置
102  処理回路
106  通信トランシーバ
108  特定用途向けIC(ASIC)
110  アプリケーションプログラミングインターフェース(API)
112  メモリ、メモリデバイス
114  ローカルデータベース
122  アンテナ
124  ディスプレイ
128  ボタン
126  キーパッド
202  デバイス、カメラデバイス
204  ベースバンドプロセッサ
206  画像センサ
208  マルチモード制御データバス、制御データバス
212  デバイス
214  デバイス
218  デバイス、周辺デバイス
216  画像データバス
230  CCIeバス、デバイス
300  装置
302  スレーブデバイス、デバイス、CCIeデバイス、イメージングデバイス、スレーブ、ノード、スレーブノード、I2Cスレーブノード、通信デバイス
304  画像センサ、センサ制御モジュール
306  構成レジスタ
310  トランシーバ
310a  受信機
310b  共通回路
310c  送信機
312  処理回路および/または制御論理
314a、314b  ラインドライバ/受信機、ドライバ
316  SCL信号線、SCL線、線、SCLライン、信号線
318  SDA信号線、SDA線、線、SDAライン、信号線
320  デバイス、CCIeデバイス、マスタデバイス、ノード、スレーブノード、マスタノード、通信デバイス
322a〜322n  デバイス、CCIeデバイス、スレーブ、ノード、スレーブノード、I2Cスレーブノード、通信デバイス
324  記憶デバイス
328  送信クロック(TXCLK)信号
330  CCIeバス、シリアルバス、I2Cバス、物理リンク、制御データバス、2線制御データバス、I2C/CCIバス、CCIeシリアルバス
402  スレーブID
406  開始条件
412  読取り/書込みビット
416  停止条件
420  I2C送信
502  シンボルシーケンス、シンボル、送信、送信シンボル
504  シンボルシーケンス、シンボル、送信、送信シンボル
506  送信間隔、送信、ワード
508  送信間隔、送信、ワード
510  シンボル期間(tsym)
512  最小経過時間
514  期間
516  開始条件
518  開始条件
520  開始条件
600  送信機
602  トランスコーダ
604  エンコーダ
606  ラインドライバ
608  オープンドレイン出力トランジスタ
610  データ、入力データ
612  3進(base-3)遷移数、3進数、3進シーケンス
614  シンボル、データシンボル
620  受信機、受信回路
622  回路、トランスコーダ
624  回路、デコーダ
626  ラインインターフェース
628  クロックおよびデータ復元回路(CDR)
630  出力データ要素
632  3進数
634  2ビットシンボル、シンボル
636  2ビットシンボル、シンボル
638  受信クロック、クロック
700  符号化方式、CCIe符号化方式
702  シンボル順序付けサークル、サークル
704a〜704d  ロケーション
706  回転
722  第1のシンボル(前のシンボルPs)、Psシンボル、シンボル
724  第2のシンボル(現在のシンボルCs)、シンボル
726  遷移数(T)
800  CCIeプロトコル
804  制御情報、制御ワード
810  ユーザデータ、データワード、スレーブ識別子、スレーブIDワード
812  ユーザデータ、データワード、アドレス送信、アドレスワード
812a、812b、812m  アドレスワード、読取り指定ワード
814  ユーザデータ、データワード、ユーザデータワード、CRCワード
814a、814b、814n  ユーザデータ送信ワード、データワード
816  送信ビット(b19)
818a  プロトコル定義(P)ビット
818b  プロトコル定義(P)ビット
818c  プロトコル定義(P)ビット
820  スレーブアドレスもしくは識別子、ノード識別子、スレーブID
822  アドレスもしくはアドレス部分
824  16ビットフィールド、アプリケーションデータ、データ値、データ
826  2ビットフィールド
828  制御コード
830  制御コード
900  装置
902  イメージングデバイス、デバイス、スレーブデバイス
904  画像センサおよび/またはセンサコントローラ、センサ制御モジュール
906  構成レジスタ
908  記憶デバイス
910  トランシーバ
912  処理回路および/または制御論理
920  ベースバンドプロセッサ、マスタノード
922  イメージングデバイス、デバイス、スレーブデバイス
924  画像センサおよび/またはセンサコントローラ、センサ制御モジュール
926  構成レジスタ
928  記憶デバイス
930  トランシーバ
932  処理回路および/または制御論理
1000  カメラ構成、構成
1002  ベースバンドプロセッサ、マスタノード
1004  カメラ、イメージングデバイス、左カメラ
1006  カメラ、イメージングデバイス、右カメラ
1008  シリアルバス
1020  カメラ構成、構成
1022  ベースバンドプロセッサ、ブロードバンドプロセッサ
1024  カメラ、イメージングデバイス、左カメラ
1026  カメラ、イメージングデバイス、右カメラ
1028  シリアルバス、バス
1030  シリアルバス、バス
1040  カメラ構成、構成
1042  ベースバンドプロセッサ
1044  カメラ、イメージングデバイス、左カメラ
1046  カメラ、イメージングデバイス、右カメラ
1048  シリアルバス、1次シリアルバス
1050  シリアルバス、シリアルバスセグメント
1052  シリアルバス、シリアルバスセグメント
1054  トラフィック制御デバイス
1056  信号
1102  ベースバンドプロセッサ、マスタデバイス
1104  左カメラ、カメラ、スレーブデバイス、カメラデバイス
1106  右カメラ、カメラ、スレーブデバイス、カメラデバイス
1108  CCIeバス
1402  CCIeマスタノード、マスタノード、CCIeマスタデバイス
1404  処理回路および/または制御論理
1406  記憶デバイス
1408  データベースマネージャ、リストマネージャ
1410  プロトコルモジュール
1412  トランシーバ
1420  SID一覧
1422a  ファクトリ構成によるSID(SID0)、エントリ
1422b〜1422n  構成可能SID(SID1、SID2、…SIDn)、エントリ
1502  処理回路
1504  プロセッサ
1506  ストレージ
1508  バスインターフェース
1510  バス
1512  トランシーバ
1514  ランタイム画像
1516  ソフトウェアモジュール
1518  ユーザインターフェース
1520  時分割プログラム
1522  論理回路
1700  装置
1702  処理回路
1706  CCIe送信機モジュールおよび/または回路
1708  SID記憶および/または維持モジュールおよび/または回路
1710  モジュールおよび/または回路
1712  プロセッサ
1714  プロセッサ可読記憶媒体
1716  バス
1718  バスインターフェース、バスインターフェースモジュールおよび/または回路
1720  コネクタまたは線、ラインインターフェース回路
1722  ユーザインターフェース
1900  装置
1902  処理回路
1906  CCIe送信機モジュールおよび/または回路
1908  SID記憶および/または維持モジュール、回路および/または記憶デバイス
1910  モジュールおよび/または回路
1914  プロセッサ可読記憶媒体
1916  バス
1918  バスインターフェース、バスインターフェースモジュールおよび/または回路
1920  コネクタまたは線、ラインインターフェース回路
【図１】
2017500631.tif 000007
【図２】
2017500631.tif 000008
【図３】
2017500631.tif 000009
【図４】
2017500631.tif 000010
【図５】
2017500631.tif 000011
【図６】
2017500631.tif 000012
【図７】
2017500631.tif 000013
【図８】
2017500631.tif 000014
【図９】
2017500631.tif 000015
【図１０】
2017500631.tif 000016
【図１１】
2017500631.tif 000017
【図１２】
2017500631.tif 000018
【図１３】
2017500631.tif 000019
【図１４】
2017500631.tif 000020
【図１５】
2017500631.tif 000021
【図１６】
2017500631.tif 000022
【図１７】
2017500631.tif 000023
【図１８】
2017500631.tif 000024
【図１９】
2017500631.tif 000025
【手続補正書】
【提出日】平成28年5月6日(2016.5.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御データバスと、
前記制御データバスに結合されるとともに、前記制御データバスへのアクセスを制御するように構成されたマスタデバイスと、
すべてのスレーブデバイスによって認識される共通アドレス、割り当てられた第1のスレーブデバイス識別子および割り当てられた第2のスレーブデバイス識別子を有する第1のスレーブデバイスであって、前記制御データバスを介して送信されるとともに、前記共通アドレス、前記割り当てられた第1のスレーブデバイス識別子または前記割り当てられた第2のスレーブデバイス識別子にアドレス指定された通信に応答するように適合される、第1のスレーブデバイスと、
前記共通アドレス、前記割り当てられた第1のスレーブデバイス識別子および割り当てられた第3のスレーブデバイス識別子を有する第2のスレーブデバイスであって、前記制御データバスを介して送信されるとともに、前記共通アドレス、前記割り当てられた第1のスレーブデバイス識別子または前記割り当てられた第3のスレーブデバイス識別子にアドレス指定された通信に応答するように適合される、第2のスレーブデバイスと
を備える、デバイス。
【請求項２】
前記制御データバスが、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される、請求項1に記載のデバイス。
【請求項３】
前記制御データバスが、カメラ制御データ(CCI)バスプロトコルに従って、またはインター集積回路(I2C)バスプロトコルに従って動作される、請求項1に記載のデバイス。
【請求項４】
前記マスタデバイスが、別のスレーブデバイスによって送信される肯定応答信号と同時に、あるスレーブデバイスによって送信される否定応答信号を無視するように構成される、請求項1に記載のデバイス。
【請求項５】
前記第1のスレーブデバイスおよび前記第2のスレーブデバイスがカメラを含み、前記マスタデバイスが、前記第1のスレーブデバイスおよび前記第2のスレーブデバイスに同時に情報を通信するように構成される、請求項1に記載のデバイス。
【請求項６】
前記マスタデバイスが、
前記割り当てられた第1のスレーブデバイス識別子を使用して、前記第1のスレーブデバイスおよび前記第2のスレーブデバイスと同時に通信するように構成される、請求項1に記載のデバイス。
【請求項７】
前記制御データバスに結合されたスレーブデバイスの第1のグループの各々が、前記制御データバスを介して送信されるとともに、前記割り当てられた第1のスレーブデバイス識別子にアドレス指定された通信に応答し、
前記制御データバスに結合されたスレーブデバイスの第2のグループの各々が、前記制御データバスを介して送信されるとともに、前記割り当てられた第1のスレーブデバイス識別子、前記割り当てられた第2のスレーブデバイス識別子、および前記割り当てられた第3のスレーブデバイス識別子とは異なる割り当てられた第4のスレーブデバイス識別子にアドレス指定された通信に応答する、請求項1に記載のデバイス。
【請求項８】
スレーブデバイスの前記第1のグループの各々が第1の機能を実施し、スレーブデバイスの前記第2のグループの各々が、前記第1の機能とは異なる第2の機能を実施する、請求項7に記載のデバイス。
【請求項９】
前記第1のスレーブデバイスが、前記割り当てられた第4のスレーブ識別子を有してさらに構成され、スレーブデバイスの前記第1のグループおよびスレーブデバイスの前記第2のグループのメンバである、請求項7に記載のデバイス。
【請求項１０】
前記第1のスレーブデバイス識別子が、前記制御データバスに結合されたすべての利用可能スレーブデバイスのサブセットのみを識別するのに役立つ、請求項1に記載のデバイス。
【請求項１１】
前記割り当てられた第1のスレーブデバイス識別子が、複数の割り当てられたスレーブデバイス識別子に応答するスレーブデバイスを識別するスレーブ識別子一覧に記憶される、請求項1に記載のデバイス。
【請求項１２】
前記スレーブ識別子一覧が、前記制御データバス上でのマスタ役割のハンドオーバを開始する間、前、または後に、アクティブマスタノードから非アクティブマスタノードに転送される、請求項11に記載のデバイス。
【請求項１３】
前記第1のスレーブデバイスおよび前記第2のスレーブデバイスには、プリセットされており調節可能でない、工場出荷時に設定された第1のスレーブデバイス識別子が与えられる、請求項1に記載のデバイス。
【請求項１４】
制御データバスに結合された複数のスレーブデバイスの各々を複数の割り当てられたスレーブデバイス識別子に関連付けるアドレスリストを維持するステップと、
前記アドレスリストに基づいて、前記制御データバスへのアクセスを制御するステップと
を含む方法であって、前記制御データバスへのアクセスを制御するステップが、
前記制御データバスを動作させる第1のモードにおいて、すべてのスレーブデバイスによって認識される共通アドレスを使用して、すべてのスレーブデバイスと同時に通信するステップと、
前記制御データバスを動作させる第2のモードにおいて、第1のスレーブデバイスおよび第2のスレーブデバイスと、前記第1のスレーブデバイスおよび前記第2のスレーブデバイスに割り当てられた第1のグループスレーブデバイス識別子を使用して同時に通信するステップと、
前記制御データバスを動作させる第3のモードにおいて、前記第1のスレーブデバイスに割り当てられ前記第2のスレーブデバイスには割り当てられていない一意のスレーブデバイス識別子を使用して、前記第1のスレーブデバイスと個別に通信するステップと
を含む、方法。
【請求項１５】
前記第1のグループスレーブデバイス識別子を使用して、第1の書込みメッセージを第1の複数のスレーブデバイスに同時にブロードキャストするステップと、
第2のグループスレーブデバイス識別子を使用して、第2の書込みメッセージを第2の複数のスレーブデバイスに同時にブロードキャストするステップと
をさらに含む、請求項14に記載の方法。
【請求項１６】
前記一意のスレーブデバイス識別子を使用して、前記第1のスレーブデバイスに読取りコマンドをアドレス指定するステップと、
前記読取りコマンドに応答して、前記第1のスレーブデバイスによって送信されたデータを読み取るステップであって、前記制御データバスに結合された他のスレーブデバイスは前記読取りコマンドに応答しない、ステップと
をさらに含む、請求項14に記載の方法。
【請求項１７】
前記第1のスレーブデバイスおよび前記第2のスレーブデバイスがカメラを含む、請求項14に記載の方法。
【請求項１８】
第1のコマンドが第1のグループスレーブデバイス識別子にアドレス指定されるとき、制御データバスに結合されたバスマスタによって送信された前記第1のコマンドに、スレーブデバイスにおいて応答するステップであって、前記第1のグループスレーブデバイス識別子が、前記スレーブデバイスに、および少なくとも1つの他のスレーブデバイスに割り当てられている、ステップと、
第2のコマンドが一意のスレーブデバイス識別子にアドレス指定されるとき、前記制御データバスに結合された前記バスマスタによって送信された前記第2のコマンドに、前記スレーブデバイスにおいて応答するステップであって、前記一意のスレーブデバイス識別子が、前記スレーブデバイスに割り当てられており、どの他のスレーブデバイスにも割り当てられていない、ステップと、
コマンドが、すべてのスレーブデバイスによって認識される共通アドレスにアドレス指定されるとき、前記制御データバスに結合された前記バスマスタによって送信された前記コマンドに、前記スレーブデバイスにおいて応答するステップと
を含む方法。
【請求項１９】
第3のコマンドが第2のグループスレーブデバイス識別子にアドレス指定されるとき、前記制御データバスに結合された前記バスマスタによって送信された前記第3のコマンドに、前記スレーブデバイスにおいて応答するステップであって、前記第2のグループスレーブデバイス識別子が、前記スレーブデバイスに、および1つまたは複数の他のスレーブデバイスに割り当てられている、ステップ
をさらに含み、
第1の複数のスレーブデバイスが、前記第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成され、第2の複数のスレーブデバイスが、前記第2のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成される、請求項18に記載の方法。
【請求項２０】
前記制御データバスが、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される、請求項18に記載の方法。
【請求項２１】
ストレージ内で、前記スレーブデバイスに割り当てられた、複数の割り当てられたスレーブデバイス識別子を維持するステップであって、前記複数の割り当てられたスレーブデバイス識別子が前記一意のスレーブデバイス識別子および前記第1のグループスレーブデバイス識別子を含む、ステップと、
前記制御データバスから受信された読取りまたは書込みコマンドに対し、前記読取りまたは書込みコマンドが、前記ストレージ内で維持されていないスレーブデバイス識別子にアドレス指定されるとき、応答するのを控えるステップと
をさらに含む、請求項18に記載の方法。
【請求項２２】
第3のコマンドが第2のグループスレーブデバイス識別子にアドレス指定されるとき、前記制御データバスに結合された前記バスマスタによって送信された前記第3のコマンドに、前記スレーブデバイスにおいて応答するステップであって、前記第2のグループスレーブデバイス識別子が、前記スレーブデバイスに、および1つまたは複数の他のスレーブデバイスに割り当てられている、ステップ
をさらに含み、
第1の複数のスレーブデバイスが、前記第1のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成され、第2の複数のスレーブデバイスが、前記第2のグループスレーブデバイス識別子にアドレス指定された送信に応答するように構成される、請求項18に記載の方法。
【請求項２３】
前記第1の複数のスレーブデバイスの各々が第1の機能を実施し、前記第2の複数のスレーブデバイスの各々が、前記第1の機能とは異なる第2の機能を実施する、請求項18に記載の方法。
【請求項２４】
スレーブデバイスであって、
前記スレーブデバイスを、他のデバイスと共有される制御データバスに結合するように適合されたバスインターフェースと、
前記バスインターフェースに結合されるとともに、前記スレーブデバイスに割り当てられ、前記スレーブデバイスに一意に関連付けられた第1のスレーブデバイス識別子を使用してアドレス指定されたメッセージに、前記スレーブデバイスおよび少なくとも1つの他のスレーブデバイスに割り当てられた第2のスレーブデバイス識別子にアドレス指定されたメッセージに、ならびにすべてのスレーブデバイスによって認識される共通アドレスにアドレス指定されたメッセージに応答するように構成された処理回路と
を備えるスレーブデバイス。
【請求項２５】
前記処理回路が、
前記第1のスレーブデバイス識別子を使用してアドレス指定されるとともに、前記制御データバスから受信されたコマンドに応答して、前記制御データバス上で情報を送信するように構成される、請求項24に記載のスレーブデバイス。
【請求項２６】
前記処理回路が、
第1のコマンドが、前記第1のスレーブデバイス識別子を使用してアドレス指定されるとき、前記制御データバスから受信された前記第1のコマンドに応答し、
第2のコマンドが、前記第2のスレーブデバイス識別子を使用してアドレス指定されるとき、前記制御データバスから受信された前記第2のコマンドに応答する
ように構成される、請求項24に記載のスレーブデバイス。
【請求項２７】
前記処理回路が、
第3のコマンドが、第3のスレーブデバイス識別子を使用してアドレス指定されるとき、前記制御データバスから受信された前記第3のコマンドに応答するように構成され、
第1の複数のスレーブデバイスが、前記第2のスレーブデバイス識別子にアドレス指定された送信に応答するように構成され、第2の複数のスレーブデバイスが、前記第3のスレーブデバイス識別子にアドレス指定された送信に応答するように構成される、請求項26に記載のスレーブデバイス。
【請求項２８】
前記第1の複数のスレーブデバイスの各々が第1の機能を実施し、前記第2の複数のスレーブデバイスの各々が、前記第1の機能とは異なる第2の機能を実施する、請求項27に記載のスレーブデバイス。
【請求項２９】
カメラをさらに備え、前記制御データバスが、カメラ制御データ拡張(CCIe)バスプロトコルに従って動作される、請求項24に記載のスレーブデバイス。
【請求項３０】
カメラをさらに備え、前記制御データバスがカメラ制御データ(CCI)バスプロトコルに従って動作される、請求項24に記載のスレーブデバイス。
【請求項３１】
カメラをさらに備え、前記制御データバスがインター集積回路(I2C)バスプロトコルに従って動作される、請求項24に記載のスレーブデバイス。
【請求項３２】
前記第1のスレーブデバイス識別子および前記第2のスレーブデバイス識別子を維持するように構成されたストレージをさらに備える、請求項24に記載のスレーブデバイス。
【国際調査報告】
2017500631.tif 000026
2017500631.tif 000027
2017500631.tif 000028