(57)【要約】  共有単線割込み要求(IRQ)バスおよび制御データバスに結合されるマスターデバイスが提供される。マスターデバイスは、共有単線割込み要求(IRQ)バスに結合されるスレーブデバイスを1つまたは複数のグループにグループ化し、各グループは異なるIRQ信号に関連付けられる。その後、マスターデバイスは、IRQバスを監視して、少なくとも1つのスレーブデバイスによってIRQ信号がアサートされた時点を確認する。その後、マスターデバイスは、IRQ信号が関連付けられるグループを識別する。その後、IRQバス上でどのスレーブデバイスがIRQ信号をアサートしたかを確認するために、マスターデバイスによって、識別されたグループに関するスレーブデバイスがスキャンされるか、または問い合わせられる。各グループは、マスターデバイスが、問い合わせるか、またはスキャンすべきグループを確認できるようにする区別できるIRQ信号を使用する。
2016532967.tif 000002
【特許請求の範囲】
【請求項１】
マスターデバイスであって、
1つまたは複数のスレーブデバイスが結合される単線割込み要求(IRQ)バスへの第1のインターフェースと、
同じく前記1つまたは複数のスレーブデバイスが結合される制御データバスへの第2のインターフェースと、
前記第1のインターフェースと前記第2のインターフェースとに結合される処理回路とを備え、前記処理回路は、
前記1つまたは複数のスレーブデバイスを1つまたは複数のグループにグループ化し、各グループは異なるIRQ信号に関連付けられ、
前記IRQバスを監視して、少なくとも1つのスレーブデバイスによってIRQ信号がアサートされた時点を確認し、
前記IRQ信号が関連付けられるグループを識別し、
前記識別されたグループの前記スレーブデバイスをスキャンして、前記IRQバス上で前記IRQ信号をアサートしたアサート中スレーブデバイスを確認するように適応される、マスターデバイス。
【請求項２】
前記処理回路はさらに、
前記アサート中スレーブデバイスに、前記制御データバスを介してデータを送信するためのアクセスを許可するように適応される、請求項1に記載のデバイス。
【請求項３】
各グループに関連付けられる前記IRQ信号は、他のグループに関連付けられるIRQ信号とは異なるパルス幅を有する、請求項1に記載のデバイス。
【請求項４】
前記単線IRQバスは非同期バスである、請求項1に記載のデバイス。
【請求項５】
前記単線IRQバスは、前記スレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項1に記載のデバイス。
【請求項６】
前記制御データバスは、集積回路間(I2C)シリアルバス、カメラ制御インターフェース(CCI)シリアルバス、またはCCI拡張(CCIe)シリアルバスを含む、請求項1に記載のデバイス。
【請求項７】
前記制御データバスは、前記スレーブデバイスと前記マスターデバイスとの間の双方向シグナリングをサポートする、請求項1に記載のデバイス。
【請求項８】
マスターデバイス上で使用できる方法であって、
共有単線割込み要求(IRQ)バスに結合されるスレーブデバイスを1つまたは複数のグループにグループ化するステップであって、各グループは異なるIRQ信号に関連付けられる、グループ化するステップと、
前記IRQバスを監視して、前記スレーブデバイスのうちの1つまたは複数によってIRQ信号がアサートされた時点を確認するステップと、
前記IRQ信号が関連付けられるグループを識別するステップと、
前記識別されたグループ内の少なくとも1つのスレーブデバイスをスキャンして、前記IRQバス上で前記IRQ信号をアサートしたアサート中スレーブデバイスを確認するステップとを含む、マスターデバイス上で使用できる方法。
【請求項９】
前記少なくとも1つのスレーブデバイスをスキャンするステップは、
前記アサート中スレーブデバイスのIRQステータスレジスタをスキャンするステップを含む、請求項8に記載の方法。
【請求項１０】
前記アサート中スレーブデバイスに、制御データバスを介してデータを送信するためのアクセスを許可するステップをさらに含む、請求項8に記載の方法。
【請求項１１】
前記制御データバスは、前記スレーブデバイスと前記マスターデバイスとの間の双方向シグナリングをサポートする、請求項10に記載の方法。
【請求項１２】
各グループに関連付けられる前記IRQ信号は、他のグループに関連付けられるIRQ信号とは異なるパルス幅を有する、請求項8に記載の方法。
【請求項１３】
前記IRQバスは非同期で動作する、請求項8に記載の方法。
【請求項１４】
前記IRQバスは、前記スレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項8に記載の方法。
【請求項１５】
前記1つまたは複数のグループはそれぞれ、少なくとも1つのスレーブデバイスを含む、請求項8に記載の方法。
【請求項１６】
スレーブデバイスであって、
マスターデバイスが結合される単線割込み要求(IRQ)バスへの第1のインターフェースと、
同じくマスターデバイスが結合される制御データバスへの第2のインターフェースと、
前記第1のインターフェースと前記第2のインターフェースとに結合される処理回路とを備え、前記処理回路は、
マスターデバイスからグループ割り当てを入手し、前記グループ割り当ては複数のグループから1つのグループを識別し、各グループは異なるIRQ信号に関連付けられ、
前記IRQバスを監視して、別のスレーブデバイスによってIRQ信号がアサートされた時点を確認し、
前記IRQバス上で他のIRQ信号がアサートされていないときに、前記IRQバス上で第1のIRQ信号をアサートするように適応される、スレーブデバイス。
【請求項１７】
前記IRQバスは、1つまたは複数のスレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項16に記載のスレーブデバイス。
【請求項１８】
前記制御データバスは、1つまたは複数のスレーブデバイスと前記マスターデバイスとの間の双方向通信をサポートする、請求項16に記載のスレーブデバイス。
【請求項１９】
前記制御データバスは、集積回路間(I2C)シリアルバス、カメラ制御インターフェース(CCI)シリアルバス、またはCCI拡張(CCIe)シリアルバスを含む、請求項16に記載のスレーブデバイス。
【請求項２０】
前記複数のグループはそれぞれ、少なくとも1つのスレーブデバイスを含む、請求項16に記載のスレーブデバイス。
【請求項２１】
前記処理回路はさらに、
前記IRQバスから前記第1のIRQ信号をデアサートし、
前記IRQバスを監視して、別のスレーブデバイスによって前記IRQバス上で第2のIRQ信号がアサートされたか否かを判断し、
前記第2のIRQ信号が前記IRQバス上でアサートされた場合には、前記第1のIRQ信号を再アサートするように適応され、前記第1のIRQ信号は、前記IRQバスがアイドルになった後に再アサートされる、請求項16に記載のスレーブデバイス。
【請求項２２】
前記処理回路はさらに、
前記制御データバスを介して、前記マスターデバイスからステータスレジスタ問い合わせを受信し、
前記スレーブデバイスが前記IRQバス上で前記第1のIRQ信号をアサートしたというステータス指示で応答するように適応される、請求項16に記載のスレーブデバイス。
【請求項２３】
スレーブデバイス上で使用できる方法であって、
マスターデバイスからグループ割り当てを入手するステップであって、前記グループ割り当ては複数のグループから1つのグループを識別し、各グループは異なるIRQ信号に関連付けられる、入手するステップと、
前記IRQバスを監視して、他のスレーブデバイスのうちの1つによってIRQ信号がアサートされたか否かを確認するステップと、
前記IRQバス上で他のIRQ信号がアサートされていないときに、前記IRQバス上で第1のIRQ信号をアサートするステップとを含む、スレーブデバイス上で使用できる方法。
【請求項２４】
前記IRQバスは非同期バスである、請求項23に記載の方法。
【請求項２５】
前記IRQバスは、スレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項23に記載の方法。
【請求項２６】
前記複数のグループはそれぞれ、少なくとも1つのスレーブデバイスを含む、請求項23に記載の方法。
【請求項２７】
前記IRQバスから前記第1のIRQ信号をデアサートするステップと、
前記IRQバスを監視して、前記IRQバス上で別のデバイスが第2のIRQ信号をアサートしているか否かを確認するステップと、
前記他のデバイスが前記第2のIRQ信号をアサートしている場合には、前記第1のIRQ信号を再アサートするステップであって、前記第1のIRQ信号は、前記第2のIRQ信号がデアサートされた後に再アサートされる、再アサートするステップとをさらに含む、請求項23に記載の方法。
【請求項２８】
制御データバスを介して、前記マスターデバイスからステータスレジスタ問い合わせを受信するステップと、
前記スレーブデバイスが前記IRQバス上で前記第1のIRQ信号をアサートしたというステータス指示で応答するステップとをさらに含む、請求項23に記載の方法。
【請求項２９】
制御データバスはCCIe適合バスである、請求項28に記載の方法。
【請求項３０】
制御データバスは、前記スレーブデバイスと前記マスターデバイスとの間の双方向バスである、請求項28に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、本発明の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、2013年8月24日に出願された「Method To Minimize The Number Of IRQ Lines From Peripherals To One Wire」と題する米国仮特許出願第61/869,673号、および2014年8月18日に出願された「Method To Minimize The Number Of IRQ Lines From Peripherals To One Wire」と題する米国非仮特許出願第14/462,363号の優先権を主張する。
【０００２】
本開示は、すべてのスレーブデバイスに対して単一の共有割込み要求線を用いることによって、スレーブデバイスごとの個別の割込み要求線の必要性を低減することに関する。
【背景技術】
【０００３】
I2CバスまたはI2Cバスと呼ばれる場合もある集積回路間シリアルバスは、低速周辺装置をプロセッサに接続する際に使用することを意図していたシリアルシングルエンドコンピュータバスである。I2Cバスは、I2Cバス上で送信される異なるメッセージに対して各デバイスがマスターおよびスレーブとしての役割を果たすことができるマルチマスターバスである。I2Cバスは、シリアルデータ線(SDA)およびシリアルクロック線(SCL)を含む、2つの双方向オープンドレインコネクタのみを用いてデータを送信することができる。それらのコネクタは通常、プルアップ抵抗器によって終端される信号線を含む。
【０００４】
I2Cバスの動作を管理するプロトコルは、メッセージの基本タイプを規定し、それらのメッセージはそれぞれSTARTで開始し、STOPで終了する。I2Cバスは7ビットアドレス指定を使用し、2つのタイプのノードを規定する。マスターノードは、クロックを生成し、スレーブノードとの通信を開始するノードである。スレーブノードは、クロックを受信し、マスターによってアドレス指定されたとき応答するノードである。I2Cバスはマルチマスターバスであり、それは、任意の数のマスターノードが存在できることを意味する。さらに、マスターとスレーブの役割は、メッセージ間で(すなわち、STOPが送られた後)変更される場合がある。
【０００５】
従来のI2Cシステムは、スレーブデバイスごとに別々の割込み要求(IRQ)線を使用し、それらの割込み要求線が、ピン数が増えることに起因して、マスターデバイスのコストを上昇させる。これらのIRQ線によって、スレーブデバイスが、マスターデバイスのアテンションを要求できるようになり、および/またはデータバスを介して通信したい時点をマスターデバイスに指示できるようになる。
【０００６】
それゆえ、複数のスレーブデバイスから1つのマスターデバイスに入ってくるIRQ線の数を削減する方法が必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００７】
以下のものは、本開示の1つまたは複数の態様を基本的に理解してもらうために、そのような態様の簡単な概要を示す。本概要は、本開示の考えられるすべての特徴の広い概説ではなく、本開示の全態様の鍵となる要素または不可欠な要素を特定することも、本開示の任意またはすべての態様の範囲を正確に説明することも意図していない。その唯一の目的は、後に示されるより詳細な説明の前置きとして、本開示の1つまたは複数の態様のいくつかの概念を簡単な形で提示することである。
【０００８】
種々の態様において、マスターデバイス上で使用できる方法は、共有単線IRQバスに結合される1つまたは複数のスレーブデバイスを1つまたは複数のグループにグループ化することと、IRQバスを監視して、スレーブデバイスのうちの1つによってIRQ信号がアサートされた時点を確認することと、IRQが関連付けられるグループを識別することと、識別されたグループのスレーブデバイスをスキャンして、IRQバス上でIRQ信号をアサートしたアサート中スレーブデバイスを確認することとを含む。各グループは、異なるIRQ信号に関連付けることができる。各グループは少なくとも1つのスレーブデバイスを含む。
【０００９】
一態様では、スレーブデバイスをスキャンすることは、アサート中スレーブデバイスのIRQステータスレジスタをスキャンすることを含む。アサート中スレーブデバイスは、制御データバスを介してデータを送信するために、アクセスを許可される場合がある。
【００１０】
一態様では、各グループに関連付けられるIRQ信号は、他のグループに関連付けられるIRQ信号とは異なるパルス幅を有する。
【００１１】
一態様では、IRQバスは非同期に動作する。IRQバスは、スレーブデバイスからマスターデバイスへの単方向信号送信専用とすることができる。制御データバスは、スレーブデバイスとマスターデバイスとの間の双方向シグナリングをサポートすることができる。
【００１２】
種々の態様では、マスターデバイスは、1つまたは複数のスレーブデバイスが結合される信号線IRQバスへの第1のインターフェースと、同じく1つまたは複数のスレーブデバイスが結合される制御データバスへの第2のインターフェースと、第1のインターフェースおよび第2のインターフェースに結合される処理回路とを含む。処理回路は、1つまたは複数のスレーブデバイスを1つまたは複数のグループにグループ化するように適応させるか、または構成することができ、各グループは異なるIRQ信号に関連付けられる。処理回路は、IRQバスを監視して、少なくとも1つのスレーブデバイスによってIRQ信号がアサートされた時点を確認するように適応させるか、または構成することができる。処理回路は、IRQ信号が関連付けられるグループを識別するように適応させるか、または構成することができる。処理回路は、識別されたグループに関するスレーブデバイスをスキャンし、IRQバス上でIRQ信号をアサートしたアサート中スレーブデバイスを識別するように適応させるか、または構成することができる。
【００１３】
種々の態様では、コンピュータ可読記憶媒体は、共有単線IRQバスに結合される1つまたは複数のスレーブデバイスを1つまたは複数のグループにグループ化し、IRQバスを監視して、スレーブデバイスのうちの1つによってIRQ信号がアサートされた時点を確認し、IRQが関連付けられるグループを識別し、識別されたグループのスレーブデバイスをスキャンして、IRQバス上でIRQ信号をアサートしたアサート中スレーブデバイスを確認するためのコードとを含む。各グループは、異なるIRQ信号に関連付けることができる。各グループは少なくとも1つのスレーブデバイスを含む。
【００１４】
種々の態様では、スレーブデバイス上で使用できる方法は、マスターデバイスからグループ割り当てを入手することと、IRQバスを監視して、別のスレーブデバイスによってIRQ信号がアサートされるか否かを確認することと、IRQバス上で他のIRQ信号がアサートされないときに、IRQバス上で第1のIRQ信号をアサートすることとを含む。グループ割り当ては、複数のグループから1つのグループを識別することができる。各グループは、異なるIRQ信号に関連付けることができる。各グループは少なくとも1つのスレーブデバイスを含む。
【００１５】
一態様では、その方法は、IRQバスから第1のIRQ信号をデアサートすることと、IRQバスを監視して、IRQバス上で別のデバイスが第2のIRQ信号をアサートしているか否かを確認することとを含む。第2のIRQ信号がデアサートされている場合には、第2のIRQ信号がデアサートされた後に、および/またはIRQバスがアイドルになった後に、第1のIRQ信号を再アサートすることができる。
【００１６】
一態様では、その方法は、制御データバスを介してマスターデバイスからステータスレジスタ問い合わせを受信することと、スレーブデバイスがIRQバス上でIRQ信号をアサートしたというステータス指示で応答することとを含む。
【００１７】
一態様では、IRQバスは、非同期バスとして動作する。IRQバスは、スレーブデバイスからマスターデバイスへの単方向信号送信専用とすることができる。制御データバスは、カメラ制御インターフェースに適合するバスとすることができる。制御データバスは、スレーブデバイスとマスターデバイスとの間に配置される双方向バスとすることができる。
【００１８】
種々の実施態様では、スレーブデバイスは、マスターデバイスが結合される信号線IRQバスへの第1のインターフェースと、同じくマスターデバイスが結合される制御データバスへの第2のインターフェースと、第1のインターフェースおよび第2のインターフェースに結合される処理回路とを含む。処理回路は、マスターデバイスからグループ割り当てを入手し、IRQバスを監視して、別のスレーブデバイスによってIRQ信号がアサートされるか否かを確認し、IRQバス上で他のIRQ信号がアサートされないときに、IRQバス上で第1のIRQ信号をアサートするように適応させるか、または構成することができる。グループ割り当ては複数のグループから1つのグループを識別することができる。各グループは、異なるIRQ信号に関連付けることができる。
【００１９】
種々の態様では、コンピュータ可読記憶媒体が、マスターデバイスからグループ割り当てを入手し、IRQバスを監視して、別のスレーブデバイスによってIRQ信号がアサートされるか否かを確認し、IRQバス上で他のIRQ信号がアサートされないときに、IRQバス上で第1のIRQ信号をアサートするためのコードとを含む。グループ割り当ては複数のグループから1つのグループを識別することができる。各グループは、異なるIRQ信号に関連付けることができる。各グループは少なくとも1つのスレーブデバイスを含む。
【００２０】
同様の参照文字が全体を通じて対応するものを識別する図面と併せて読まれたとき、以下に記載の詳細な説明から、種々の特徴、性質、および利点が明らかになる場合がある。
【図面の簡単な説明】
【００２１】
【図１】複数の利用可能な標準規格のうちの1つに従って選択的に動作する集積回路デバイス間のデータリンクを利用する装置を示す図である。
【図２】ベースバンドプロセッサおよびイメージセンサを有し、画像データバスおよび制御データバスを実現するデバイスを示すブロック図である。
【図３】本明細書において開示される特定の態様による、ICデバイス間のデータリンクを利用する装置のための簡略化されたシステムアーキテクチャを示す図である。
【図４】本明細書において開示される特定の態様による、複数のスレーブデバイスと、1つまたは複数のマスターデバイスとによって、単線IRQバスをいかに共有することができるかを示すブロック図である。
【図５】本明細書において開示される特定の態様による、異なるグループに割り当てることができるか、または関連付けることができる異なるIRQ信号の例を示す図である。
【図６】本明細書において開示される特定の態様による、マスターデバイスによる、IRQ信号に関する監視、およびIRQアサート中スレーブデバイスの識別を示す図である。
【図７】本明細書において開示される特定の態様による、共有単線IRQバス上のIRQの同時アサーションを回避することができる第1の技法を示す図である。
【図８】本明細書において開示される特定の態様による、共有単線IRQバス上のIRQの同時アサーションに対処することができる第2の技法を示す図である。
【図９】最短IRQ信号長に関連付けられるタイミング図である。
【図１０】本明細書において開示される特定の態様に従って適応させることができる処理回路を利用する装置の一例を示すブロック図である。
【図１１】本明細書において開示される特定の態様による、共有IRQバス上でIRQをアサートするための方法の第1の例の流れ図である。
【図１２】本明細書において開示される特定の態様による、共有IRQバス上でのIRQに対処するための方法の第1の例の流れ図である。
【図１３】本明細書において開示される特定の態様による、スレーブデバイスのグループをスキャンして、共有IRQバス上でIRQをアサートしたデバイスを識別するための方法の流れ図である。
【図１４】本明細書において開示される特定の態様による、共有IRQバス上でのIRQに対処するための方法の第2の例の流れ図である。
【図１５】共有IRQバス上でのIRQに対処するように適応される装置のためのハードウェア実施態様の一例を示す図である。
【図１６】本明細書において開示される特定の態様による、共有IRQバス上でIRQをアサートするための方法の第2の例の流れ図である。
【図１７】共有IRQバス上でIRQをアサートするように適応される装置のためのハードウェア実施態様の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下の説明では、実施形態を完全に理解してもらうために、具体的な詳細が与えられる。しかしながら、実施形態はこれらの具体的な詳細なしに実施できることは当業者には理解されよう。たとえば、回路は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図で示される場合がある。他の例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
【００２３】
本明細書において開示される特定の実施形態は、共通I2Cバスを用いて従来のI2Cバス動作および改善された通信インターフェースの両方をサポートする、シリアルバスを用いて通信インターフェースの性能を改善することができるシステム、方法および装置を提供する。一例では、カメラ制御インターフェース(CCI)がI2Cバスに基づくことができ、マスターおよび1つまたは複数のスレーブを接続するバスとして構成される2線双方向半二重シリアルインターフェースを用いて配置することができる。CCI動作はI2Cバス動作に適合することができる。特定の態様によれば、I2CまたはCCIバスに接続される複数の周辺デバイスをサポートするために必要とされるIRQ線の数を最小化するシステム、装置および方法が提供される。場合によっては、単一IRQ線が、I2CまたはCCIバスに接続される周辺装置のすべてからの割込み要求に対処することができる。本明細書において開示される一例では、I2CまたはCCI動作モードを用いて得られるデータ速度より著しく速いデータ速度において動作することができる2線双方向半二重シリアルインターフェースを提供するために、I2Cバスを用いて、CCI拡張(CCIe)デバイスを配置することができる。この後者の例では、単一IRQ線が、バスに接続されるI2C、CCIまたはCCIe周辺装置からの割込み要求に対処することができる。
【００２４】
概説
本出願において使用されるときに、「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連エンティティを含むことを意図している。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータとすることができる。例示として、コンピューティングデバイス上で動作するアプリケーションとコンピューティングデバイスの両方を、構成要素とすることができる。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、構成要素は、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間に分散することができる。さらに、これらの構成要素は、種々のデータ構造を記憶している種々のコンピュータ可読媒体から実行することができる。構成要素は、たとえば、ローカルシステム内の、および/または分散システム内の別の構成要素とやりとりし、および/または、インターネットなどのネットワークを介して信号によって他のシステムとやりとりする1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号に従って、ローカルおよび/またはリモートプロセスを介して、通信することができる。
【００２５】
さらに、「または」という用語は、排他的な「または」ではなく、むしろ包括的な「または」を意味することを意図している。すなわち、別段の規定がない限り、または文脈から明白でない限り、「XはAまたはBを使用する」という言い回しは、自然な包括的並べ替えのいずれかを意味することを意図している。すなわち、「XはAまたはBを使用する」という言い回しは、以下の例のいずれかによって満たされる。XはAを用いる。XはBを用いる、またはXはAとBの両方を用いる。さらに、本出願および添付の特許請求の範囲において使用されるときに、冠詞「1つの」(aおよびan)は、別段の規定がない限り、または文脈から単数形を示すことが明白でない限り、概して「1つまたは複数」を意味するものと解釈すべきである。
【００２６】
本発明のいくつかの態様は、電話、モバイルコンピューティングデバイス、電気製品、自動車用電子機器、アビオニクスシステムなど、装置のサブ構成要素を含むことができる電子デバイス間に配置される通信リンクに対して適用可能とすることができる。図1は、集積回路(IC)デバイス間で通信リンクを利用することができる装置を表す。一例では、装置100は、RF送受信機を通して、無線アクセスネットワーク(RAN)、コアアクセスネットワーク、インターネット、および/または別のネットワークと通信するワイヤレス通信デバイスを含む場合がある。装置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つもしくは複数を用いて実現することができる。処理回路はまた、数ある構成要素の中でも、アンテナ122、ディスプレイ124などの外部デバイスに、ボタン128および/またはキーパッド126などのオペレータ制御に動作可能に結合される場合もある。
【００２７】
IRQ線を削減するための方法を示す第1の例
図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は、I2Cバス(制御データバス208)上で複数のデバイス212、214、および218に結合することができる。この例では、制御データバス208を介して、ベースバンドプロセッサ204とイメージセンサ206との間、ならびに他の周辺デバイス218間で制御データを交換することができる。I2Cプロトコルによれば、SCL線上のクロック速度は、通常のI2C動作の場合最大100KHz、I2C高速モードの場合最大400KHz、およびI2C高速モードプラス(Fm+)の場合最大1MHzとすることができる。I2Cバスを介してのこれらの動作モードは、カメラの適用例のための使用されるとき、CCIモードと呼ばれる場合がある。
【００２８】
場合によっては、2つ以上のスレーブデバイス214または218aが、対応するIRQ線220または222上で所定の論理レベルをアサートすることによって、ベースバンドプロセッサ204のアテンションを要求する場合がある。
【００２９】
CCIe動作のために適応されるデバイスの特定の態様を示す例
図3は、CCIeバス330などの通信バスを利用することができる装置300の特定の態様を示す概略的なブロック図である。装置300は、ワイヤレスモバイルデバイス、モバイル電話、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイスなどのうちの1つまたは複数において具現される場合がある。装置300は、CCIeバス330を用いて通信する複数のデバイス302、320、および/または322a〜322nを含む場合がある。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は、単線を有するIRQバス326に結合することができる。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バスプロトコルに従って行われる。
【００３３】
共通IRQバスの使用を示す例
図4は、1つまたは複数のスレーブデバイス410、412、414、416、418が、共通、または共有単線IRQバス422上で所定の論理レベルをアサートすることによって、バスマスター404のアテンションを要求することができる一例を示すブロック図400である。単線IRQバス420は、I2C、CCIおよび/またはCCIeデバイスを含むことができる、複数のスレーブデバイス410、412、414、416、418によって共有される場合がある。図示される例では、スレーブデバイス410、412、414、416、418はそれぞれ、CCIe通信モードをサポートするように適応させることができ、バスマスターデバイス404は、I2C、CCIおよびCCIe動作モードにおいてバスマスターとしての役割を果たすように適応される。
【００３４】
一態様では、共有単線IRQバス422が、スレーブデバイス410、412、414、416、418およびマスターデバイス404に結合される。スレーブデバイス410、412、414、416、418がいずれも割込み要求をアサートしていないとき、IRQバス422のシグナリングを規定するために、IRQバス422の線にプルアップ抵抗器420を結合することができる。一例では、スレーブデバイス410、412、414、416、418は、マスターデバイス404に割り込むために、または割込みを要求するために、IRQバス422をローにドライブすることができる。すなわち、各スレーブデバイス410、412、414、416、418は、マスターデバイス404からのアテンションを要求するためにIRQ信号をドライブすることによって、割込み要求を独立してアサートすることができる。
【００３５】
共通の共有単線IRQバス422は、割込み要求をアサートした1つまたは複数のスレーブデバイス410、412、414、416、418の識別情報の指示を与えるように各スレーブデバイス410、412、414、416、418を構成することによって、複数のスレーブデバイス410、412、414、416、418によって共有することができる。場合によっては、スレーブデバイス410、412、414、416、418のうちの2つ以上がマスターデバイス404のアテンションを争う場合があり、これらのスレーブデバイス410、412、414、416、418の識別情報の指示を用いて、マスターデバイス404から、どのアテンション要求が許可されるかを決定することができる。一例では、各スレーブデバイス410、412、414、416、418は、IRQバス422をドライブするデバイス410、412、414、416、418の識別情報に対応する長さを有する期間にわたってIRQバス422をドライブすることによって、割込み要求をアサートするように構成することができる。場合によっては、IRQバス422をドライブするために用いられるパルスの長さが、マスターデバイス404からのアテンションを争っているスレーブデバイス410、412、414、416、418を含む、スレーブデバイス410、412、414、416、418のグループ406、408を識別することができる。各スレーブデバイス410、412、414、416または418は、スレーブデバイス410、412、414、416または418が属するグループ406、408に対して規定され、および/または割り当てられた幅を有するパルスを生成するように構成することができる。たとえば、第1のグループ406内のスレーブデバイス410および412は、共有単線IRQバス422上に、第2のグループ408内のスレーブデバイス414および416によって生成されるパルスの持続時間とは異なる持続時間を有するパルスを生成するように構成することができる。各グループ406および408は少なくとも1つのスレーブデバイスを含む。
【００３６】
IRQバス422のアサーションの持続時間が、要求しているスレーブデバイス410、412、414、416または418がマスターデバイス404のアテンションを与えられるか否かを決定することができる。一例では、優先順位決定方式が、優先順位が高いスレーブデバイス410、412、414、416、418に長いパルス幅を割り当て、優先順位が低いスレーブデバイス410、412、414、416、418に短いパルス幅を割り当てることができる。動作時に、第1のスレーブデバイス410、412、414、416または418が、IRQバス422上にパルスを与えることによって割込み要求をアサートすることができる。第2の、優先順位が高いスレーブデバイス410、412、414、416または418は、第1のスレーブデバイス410、412、414、416または418によって与えられるパルスの幅より長い幅を有するパルスをIRQバス422上に与えることによって、割込み要求をアサートすることができる。IRQバス422がアサートされたとき、マスターデバイス404は、IRQバス422のアサーションの持続時間を用いて、アサート中スレーブデバイス410、412、414、416を含む最も優先順位が高いグループ406もしくは408、および/またはIRQバス422をアサートしている最も優先順位が高いスレーブデバイス410、412、414、416または418を識別することができる。その後、マスターデバイスは、制御データバス402上のシグナリングを用いて、IRQバス422上で観測されたパルス幅を割り当てられた1つまたは複数のスレーブデバイス410、412、414、416、418上のIRQステータスレジスタをスキャンすることができる。
【００３７】
場合によっては、第1のスレーブデバイス410、412、414、416または418によって与えられるパルスの終了後にIRQバス422が能動的にドライブされ続け、少なくとも第2の、より優先順位が高いスレーブデバイス410、412、414、416または418も、より長いパルス幅を用いてIRQバス422をドライブすることによってマスターデバイス404のアテンションを要求していることを指示するとき、第1のスレーブデバイス410、412、414、416または418は第2のスレーブデバイス410、412、414、416または418に譲る場合がある。そのような状況では、第1のスレーブデバイス410、412、414、416または418は、制御データバス402を争う次の機会が生じるまで、アイドルまたは休止モードに戻ることができる。
【００３８】
場合によっては、単線IRQバス422は、スレーブデバイス410、412、414、416、418および1つまたは複数のマスターデバイス404によって共有される場合がある。この例では、スレーブデバイス410、412、414、416、418は論理的にグループ化することができる。たとえば、第1のグループ406は、第1の複数のスレーブデバイス410および412を含むことができ、第2のグループ408は、第2の複数のスレーブデバイス414および416を含むことができる。そのようなグループ化は、たとえば、あらかじめ構成することができ、動的に規定することができ、および/または初期化時にマスターデバイス404によって列挙することによって規定することができる。グループ406、408を使用することによって、マスターデバイス404は、IRQバス422をドライブすることによって割込み要求をアサートする1つまたは複数のスレーブデバイス410、412、414、416および/または418を、より迅速に識別できるようになる場合がある。
【００３９】
場合によっては、単線IRQバスは、マスターデバイス404または別のデバイスによって管理されることなく、非同期に動作することができる。非同期動作では、スレーブデバイス410、412、414、416または418は、IRQバス422をいつでも一方的にドライブすることができる。場合によっては、スレーブデバイス410、412、414、416、418は、割込み要求をアサートする前に、IRQバス422がアイドルである(すなわち、別のデバイスによってドライブされていない)ことを確認することができる。
【００４０】
場合によっては、単線IRQバス422は、スレーブデバイス410、412、414、416、418からマスターデバイス404への単方向信号送信専用とすることができる。すなわち、IRQバス422は、割込み要求シグナリングのために予約することができ、IRQバス422上で他のタイプの信号はサポートされない。
【００４１】
スレーブデバイス410、412、414、416のグループ406、408は、異なるIRQ信号を使用するように構成することができる。一例では、第1のグループ406は、第1の周期を有する第1の信号を使用することができ、第2のグループ408は、第2の周期を有する第2の信号を使用することができ、他も同様である。場合によっては、別のスレーブデバイスとグループ化されないスレーブデバイス418は、1つのデバイスからなるグループとして扱われる場合があり、第3の周期を有する第3の信号を使用するように割り当てられる場合がある。IRQ信号の周期は、アサート中スレーブデバイス410、412、414、416または418によってIRQバス420がドライブされる(たとえば、ローに引き込まれる)時間の長さとして規定することができる。他の形の信号区別を用いることができる。たとえば、スレーブデバイス410、412、414、416の異なるグループ406、408に、および/またはグループに割り当てられないか、またはグループの唯一のメンバーとして別の方法で扱われるスレーブデバイス418に異なるIRQ信号電圧レベルを、割り当てることができる。
【００４２】
場合によっては、各グループ406、408が少なくとも1つのスレーブデバイス410、412、414、416、418を含むことができるように、スレーブデバイス410、412、414、416、418の論理グループを規定することができる。グループ406、408は、複数のスレーブデバイス410、412、414、416、418を含むことができる。各グループ406、408に割り当てられるスレーブデバイス410、412、414、416、418の数は、グループ406、408内の潜在的な各アサート中スレーブデバイス410、412、414、416、418に問い合わせ、識別するのにかかる持続時間のような要因によって決定することができる。たとえば、IRQバス422に結合されるすべてのスレーブデバイス410、412、414、416、418がマスターデバイス404によって問い合わせられるとき、結果として、容認できないほどの長い遅延が生じる場合がある。
【００４３】
アサート中スレーブデバイス410、412、414、416、418を識別する時間は、スレーブデバイス410、412、414、416、418がIRQをアサートしたグループ406、408を識別し、その後、識別されたグループ406または408内の各メンバースレーブデバイス410、412、414、416、418に問い合わせるのに、異なるIRQ信号を使用することを通して著しく短縮することができる。マスターデバイス404は、IRQバス422のアサーションの発生を検出することができ、マスターデバイス404は、アサーションの持続時間を特定することができる。IRQアサーションの特定された持続時間に基づいて、マスターデバイス404は、マスターデバイス404によって観測された長さの持続時間に対応するグループ406または408を識別することができる。その後、マスターデバイス404は、どのスレーブデバイスがIRQ信号をトリガまたはアサートしたかを識別するために、グループ406、408内のスレーブデバイス410、412、414、416、418に問い合わせることができる。一例では、マスターデバイス404は、IRQアサーションが第1のグループ406から生じたと判断することができる。マスターデバイス404は、制御データバス402を介して、第1のスレーブデバイス410または412に要求またはコマンドを送信することができる。マスターデバイス404は、たとえば、レジスタステータス要求を送信することができる。応答して、第1のスレーブデバイス410または412は、マスターデバイス404に、ステータス情報を送信することができる。ステータス情報が、第1のスレーブデバイス410または412がIRQ要求の発生源でないことを指示する場合には、マスターデバイス404は、制御データバス402を介して、第1のグループ406内の第2のスレーブデバイス412または410にレジスタステータス要求を送信することができる。このプロセスは、IRQ信号をアサートしたスレーブデバイス410、412が識別されるまで、第1のグループ406内のすべてのスレーブデバイス410、412に対して繰り返すことができる。
【００４４】
図5は、異なるグループ406、408、514によってそれぞれ用いられるIRQ信号502、504、506のタイミングの例を示すタイミング図500である。それぞれ異なるグループ406、408、514に異なるIRQ信号タイミングを割り当てるか、または関連付けることができ、および/または各グループ406、408、514のメンバースレーブデバイス410、412、414、416、418のIRQ信号タイミングは、対応するグループ406、408、514に割り当てられるか、または関連付けられるIRQ信号タイミングに基づくか、またはそのIRQ信号タイミングから導出することができる。各グループ406、408、514は、メンバースレーブデバイス410、412、414、416、418のうちの1つを、または複数のメンバーデバイス410、412、414、416、418を含むことができる。第1のグループ406は、第1のパルス幅508を有するIRQ信号502を使用することができ、第2のグループ408は、第2のパルス幅510を有するIRQ信号504を使用することができ、第nのグループ506は、第3のパルス幅512を有するIRQ信号506を使用するように構成することができる。
【００４５】
図6は、バスマスターデバイス404の観点からの共有IRQバス422の動作を示す。その例は、I2C、CCIおよび/またはCCIeプロトコルに従って動作する制御データバス402上の動作のタイミング612に当てはまる場合がある。バスマスターデバイス404は、IRQバス422上の信号のタイミング602を監視して、割込み要求がアサートされたか否かを判断することができる。バスマスターデバイス404は、IRQバス422上のパルス608、610の持続時間604、606に基づいて、割込み要求をアサートしているスレーブデバイスを識別することができる。
【００４６】
その例では、スレーブデバイスのグループ406、408は、所定の時間604、606の間、IRQバス422をドライブするように構成することができる。したがって、バスマスターデバイス404は、パルス608および610に関してIRQバス422を監視することができ、任意の検出されたパルス608、610の持続時間604、606を測定するか、またはその時間を計ることができる。一例において、バスマスターデバイス404は、パルス608、610の開始時に遷移620、622を検出すると、開始されるタイマまたはカウンタを含むことができる。その後、パルス608、610の終了後のタイマ値またはカウンタ値を、各グループ406、408に関連付けられる所定の持続時間と比較することができる。
【００４７】
一例において、データ制御バス402は、第1のパルス608が受信される前に、第1の期間614においてアイドルとすることができる。共有単線IRQバス422上で第1のIRQ信号がアサートされるとき、バスマスターデバイス404は、IRQバスがローに引き込まれたことを検出し、パルスの期間、幅または持続時間604を特定する。たとえば、バスマスターデバイス404は、第1のパルス608の持続時間604が、第1のパルス608の終了時に、第1のデバイスグループ406のメンバーからの割込み要求と一致すると判断することができる。バスマスターデバイス404は、第1のデバイスグループ406のメンバーのスキャン616を開始し、そのIRQステータスを特定し、第1のグループ406の1つまたは複数のどのメンバーがIRQ要求608をアサートしたかを識別することができる。一例において、バスマスターデバイス404は、第1のグループ406の各メンバーに対して、制御データバス402上で、各要求の受信者にIRQステータスで応答させるコマンドおよび/または要求を送信することができる。バスマスターデバイス404は、第1のグループ406の識別された割込み中メンバーと、データ、制御または他の情報を交換することができる。
【００４８】
第2の割込み要求パルス610は、第1の割込み要求パルス608後のある時点で受信することができる。第2の割込み要求パルス610は、第2のスレーブデバイスグループ408に対応する持続時間606を有することができる。第2の割込み要求パルス610を受信すると、バスマスターデバイス404は、パルス幅、周期または持続時間606を検出、特定または計算することができる。その後、バスマスターデバイス404は、第2のデバイスグループ409のメンバーに関するスキャン618を開始して、IRQステータスを特定し、第2のパルス610に対応するIRQ要求を、第2のグループ408のうちの1つまたは複数のどのメンバーがアサートしたかを識別することができる。
【００４９】
図7は、本明細書において開示される特定の態様による、同時の、重なり合う、および/または競合する割込み要求の発生を回避するための方法を示すタイミング図である。場合によっては、割込み要求の競合または競争につながるおそれがある重なり合うIRQパルスの発生を回避することが望ましい場合がある。競合する割込み要求は、割込み要求をアサートする前に、IRQバス422を監視するようにスレーブデバイスを構成することによって回避することができる。割込み要求712は、別のデバイスが共有単線IRQバス422上で割込み要求708をすでにアサートしていた場合には、遅らせることができる、714。
【００５０】
図示される例では、第1のパルス704は、第1のデバイスグループ406からの1つのスレーブデバイスによってIRQバス422上でアサートされる。第2のスレーブデバイスが、第1のパルス708の持続時間704中に割込み要求をアサートしたい場合がある。一態様によれば、第2のスレーブデバイスは、IRQバス422上の割込み要求のアサーションを遅らせることができる。時点718において、第2のスレーブデバイスは、割込み要求を開始することに決めることができる。IRQバス422をチェックすると、第2のスレーブデバイスは、パルス708が別のスレーブデバイスによってIRQバス422上でアサートされたと判断することができる。それに応じて、第2のデバイスは、IRQバス422がアイドル状態に戻ることができるようにするホールドオフまたは遅延期間712を開始することができる。ホールドオフ期間712は、所定の持続時間、最小バックオフ期間および/またはランダム遅延を含む持続時間、またはIRQバス422がアイドル状態に戻った後の所定の時間を終了する期間を有することができる。第2のスレーブデバイスは、IRQバス422が空きであるか、またはアイドル状態になる最小期間710の間、割込み要求をアサートするのを妨げられる場合がある。IRQバス空き期間710は、IRQバス422上の第1のパルス708が終了し、たとえば、IRQバス422が論理ハイ状態に戻る時点720から測定することができる。最小バス空き時間710が満了した後に、次の割込み要求716をアサートすることができる。最小バス空き時間710が満了すると、第2のスレーブデバイスは、IRQバス422上にパルス716を与えることによって、割込み要求をアサートすることができる。その例では、第2のスレーブデバイスは、第2のスレーブデバイスグループ408のメンバーであり、第2のパルス716の持続時間706は、第1のパルス708の持続時間704とは異なる場合がある。
【００５１】
図8は、I2C、CCIおよび/またはCCIeインターフェースによって同時のIRQ信号がサポートされるときに利用することができる方式の動作を示すタイミング図800である。同時のIRQ信号の結果として、個々のスレーブデバイス間、および/または共有単線IRQバス422を使用する異なるグループ406、408内のスレーブデバイス間に競争および/または競合が生じる場合がある。IRQバス422上の信号のタイミングが第1のタイミング図802に示されており、一方、第1のグループ406および第2のグループ408内のスレーブデバイスによる寄与が、第2のタイミング図812および第3のタイミング図822にそれぞれ示される。第1のIRQパルス814が、第2のグループ408内の第2のスレーブデバイスによってアサートされた第2のIRQパルス824と同じ時点で、または同時に、第1のグループ406内の第1のスレーブデバイスによってアサートされる。第2のIRQパルス824は、第1のパルスの持続時間806より長い持続時間804を有することができる。第1のパルス814の終了後に、IRQバス422上に第2のパルス824の一部808が存在するため、第1のスレーブデバイスは、より優先順位が高いデバイスが割込み要求をアサートしたと認識することができる。第1のスレーブデバイスは、第1のパルス814後のIRQバス422を監視することによって、IRQバス422のこの条件808を、実効的な衝突、競争または競合と認識することができる。その際、第1のデバイスは、第2のスレーブデバイスが、より高い優先順位を有すると判断することができ、第2のパルス824の終了後に開始するIRQバス空き期間818後まで、新たな要求を遅らせることができる。バスマスターデバイス404は、第2のパルス824の持続時間を検出することができ、第2のデバイスグループ408をアドレス指定して、割込み要求の発生源を識別し、応じることができる。バスマスターデバイス404は、第1のパルス814に気づいていない場合がある。
【００５２】
第1のスレーブデバイスは、IRQバス空き期間818の満了後にIRQバス422上に第3のパルス826を与えることによって、割込み要求を再発行することができる。
【００５３】
図9は、IRQパルスに関連するタイミング許容範囲を示すタイミング図900であり、許容範囲は、最小のIRQパルス幅を決定することができる。場合によっては、I2C、CCIおよび/またはCCIeインターフェース上のシグナリングを管理するプロトコルが、I2C、CCIおよび/またはCCIeマスターデバイス404によって検出できるようにするロー持続時間(tLOW)906のための最小値を規定することができるが、本説明の目的のために、ロー持続時間は指定された最小値を前提としない場合があると仮定することができる。タイミング図900は、単一のパルス902を示す。
【００５４】
その例示的なタイミング図900では、「ハイ」シグナリング状態を検出するための最小しきい値電圧はスイッチング回路供給電圧(「VDD」)レベルの70%にあり、「ロー」シグナリング状態を検出するための最大しきい値電圧は、VDDレベルの30%である。受信機が、受信機入力レベルに応じて、VDDレベルの30%と70%との間に存在するIRQバス422の電圧レベルに関するハイシグナリング状態またはローシグナリング状態のいずれかを判断することができる。最大降下-上昇時間(TFRmax)904が規定される場合がある。TFRmax904の持続時間は、割込み要求をアサートするためにスレーブデバイスに割り当てられるロー期間(TLOW)910の持続時間を決定することができる。TLOW910の値は、マスターデバイス404が、異なるスレーブデバイスグループからのIRQ信号を区別できるように選択することができる。マスターデバイス404の観点から、ロー条件は、以下の場合に、IRQバス422上で観測することができる。
TFRmax<TLOW
【００５５】
スレーブデバイスグループ406、408を区別するために、異なるTLOW単位をグループ406、408のためのIRQパルス幅として割り当てることができる。一例では、第1のグループ406はTLOWのIRQパルス幅を割り当てられる場合があり、一方、第2のグループ408は、2×TLOWのIRQパルス幅を割り当てられる場合がある。この例では、バスマスターデバイス404によって観測されるロー期間は、次のように計算することができる。
第1のグループ406      TLOW-TFR<tLOW<TLOW+TFR
第2のグループ408      2TLOW-TFR<tLOW<2TLOW+TFR
第1のスレーブデバイスがIRQ信号ローをアサートした後に、第2のスレーブデバイスは、TFRmaxを、持続時間に関して少なくともTFRmaxでなければならないtLOWminまで延長する期間にわたって、IRQ信号ローを検出できないことに留意されたい。それゆえ、TLOW > 3TFR maxおよびtLOW min > 2TFRmaxである。したがって、tLOW906のための最大値は、次のように計算することができる。
【００５６】
【数１】
2016532967.tif 000003
【００５７】
共通IRQバスを伴う装置、システムおよび方法の例
図10は、本明細書において開示される1つまたは複数の機能を実行するように構成することができる処理回路1002を利用する装置のためのハードウェア実施態様の簡略化された例を示す概念図1000である。本開示の種々の態様によれば、共通IRQバスを用いて割込みを管理または開始するための本明細書において開示されるような要素、または要素の任意の部分、または要素の任意の組合せは、処理回路1002を用いて実現することができる。処理回路1002は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ1004を含むことができる。プロセッサ1004の例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明される様々な機能を実行するように構成された他の適切なハードウェアを含む。1つまたは複数のプロセッサ1004は、特定の機能を実行し、ソフトウェアモジュール1016のうちの1つによって構成され、増強され、または制御することができる専用プロセッサを含むことができる。たとえば、処理回路は、1つまたは複数のワイヤレスネットワーク上の送信のためのデータの符号化および復号に対処するように適応させることができる通信プロセッサまたは他のタイプのプロセッサとして構成することができる。1つまたは複数のプロセッサ1004は、初期化中にロードされるソフトウェアモジュール1016の組合せを通して構成することができ、動作中にソフトウェアモジュール1016の1つまたは複数をロードまたはアンロードすることによってさらに構成することができる。
【００５８】
図示の例では、処理回路1002は、バス1010によって概略的に表されるバスアーキテクチャを用いて実現することができる。バス1010は、処理回路1002の具体的な用途および全体的な設計制約に応じて、任意の数の相互接続するバスならびにブリッジを含むことができる。バス1010は、1つまたは複数のプロセッサ1004および記憶装置1006を含む種々の回路を互いにリンクする。記憶装置1006は、メモリデバイスおよび大容量記憶デバイスを含むことができ、本明細書においてコンピュータ可読媒体と呼ばれる場合もある。バス1010は、種々の他の回路、たとえばタイミングソース、タイマ、周辺装置、電圧レギュレータ、および電力管理回路をリンクすることもできる。バスインターフェース1008は、バス1010と1つまたは複数の送受信機またはラインインターフェース回路1012との間のインターフェースを提供することができる。ラインインターフェース回路1012は、多線シリアルバスを含むことができる伝送媒体を介して種々の他の装置と通信する際に用いられる、差動ラインドライバおよび受信機と、CDRと、エンコーダおよびデコーダとを含むことができる。装置の性質によるが、ユーザインターフェース1018(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)を設けることもでき、直接、またはバスインターフェース1008を通して、バス1010に通信可能に結合することができる。
【００５９】
プロセッサ1004は、バス1010の管理と、記憶装置1006を含むことができるコンピュータ可読媒体に記憶されたソフトウェアの実行を含むことができる全体的な処理とに関して責任を担うことができる。この点で、プロセッサ1004を含む処理回路1002を用いて、本明細書において開示される方法、機能および技法のうちのいずれかを実現することができる。記憶装置1006は、ソフトウェアを実行するとき、プロセッサ1004によって操作されるデータを記憶するために使用することができ、そのソフトウェアは、本明細書において開示される方法のうちのいずれか1つを実施するように構成することができる。
【００６０】
処理回路1002内の1つまたは複数のプロセッサ1004はソフトウェアを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、プロシージャ、機能、アルゴリズムなどを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読の形で記憶装置1006または外部コンピュータ可読媒体に存在することができる。コンピュータ可読媒体および/または記憶装置1006は、非一時的コンピュータ可読媒体とすることができる。非一時的コンピュータ可読媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピー（登録商標）ディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多目的ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、取り外し可能ディスク、ならびにコンピュータがアクセスし、読み取ることができるソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。また、コンピュータ可読媒体および/または記憶装置1006は、例として、搬送波、伝送路、ならびに、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を送信するための任意の他の適切な媒体も含むことができる。コンピュータ可読媒体および/または記憶装置1006は、処理回路1002内に存在するか、プロセッサ1004内に存在するか、または処理回路1002の外部に存在するか、または処理回路1002を含む複数のエンティティにわたって分散することができる。コンピュータ可読媒体および/または記憶装置1006は、コンピュータプログラム製品において具現することができる。例として、コンピュータプログラム製品は、パッケージング材料内にコンピュータ可読媒体を含む場合がある。当業者は、特定の適用例および全体的なシステムに課された設計制約全体に応じて、本開示全体にわたって提示された記載の機能を最も良く実現する方法を認識されよう。
【００６１】
記憶装置1006は、本明細書においてソフトウェアモジュール1016と呼ばれる場合もある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどにおいて保持され、および/または編成されるソフトウェアを保持することができる。ソフトウェアモジュール1016はそれぞれ、処理回路1002にインストールまたはロードされ、1つまたは複数のプロセッサ1004によって実行されるときに、1つまたは複数のプロセッサ1004の動作を制御する実行時画像1014に寄与する命令およびデータを含むことができる。実行されるとき、いくつかの命令は、本明細書において説明されるいくつかの方法、アルゴリズム、およびプロセスに従って、処理回路1002に機能を実行させることができる。
【００６２】
ソフトウェアモジュール1016のうちのいくつかは、処理回路1002の初期化中にロードすることができ、これらのソフトウェアモジュール1016は、本明細書において開示される種々の機能を実行可能にするように処理回路1002を構成することができる。たとえば、いくつかのソフトウェアモジュール1016は、プロセッサ1004の内部デバイスおよび/または論理回路1022を構成することができ、ラインインターフェース回路1012、バスインターフェース1008、ユーザインターフェース1018、タイマ、数学コプロセッサなどの外部デバイスへのアクセスを管理することができる。ソフトウェアモジュール1016は、割込みハンドラおよびデバイスドライバとやりとりし、処理回路1002によって提供される種々のリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含むことができる。リソースは、メモリ、処理時間、ラインインターフェース1012およびユーザインターフェース1018へのアクセスなどを含むことができる。
【００６３】
処理回路1002の1つまたは複数のプロセッサ1004は、多機能とすることができ、それによって、ソフトウェアモジュール1016のいくつかは、ロードされ、異なる機能または同じ機能の異なるインスタンスを実行するように構成される。1つまたは複数のプロセッサ1004はさらに、たとえば、ユーザインターフェース1018、ラインインターフェース回路1012、およびデバイスドライバからの入力に応答して開始されたバックグラウンドタスクを管理するように適応させることができる。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ1004は、マルチタスク環境を実現するように構成することができ、それによって、複数の機能の各々が、必要または要望に応じて、1つまたは複数のプロセッサ1004によってサービスされるタスクのセットとして実現される。一例では、マルチタスク環境は、様々なタスク間でプロセッサ1004の制御を渡す時間分割プログラム1020を使用して実装することができ、それによって、各タスクは、任意の未処理の動作が完了すると、かつ/または割込みなどの入力に応答して、時間分割プログラム1020に1つまたは複数のプロセッサ1004の制御を返す。あるタスクが1つまたは複数のプロセッサ1004の制御を有するとき、処理回路は、制御中のタスクに関連する機能によって対処される目的に事実上特化される。時間分割プログラム1020は、オペレーティングシステム、ラウンドロビンベースで制御を移すメインループ、機能の優先順位付けに従って1つもしくは複数のプロセッサ1004の制御を割り振る機能、および/または、1つもしくは複数のプロセッサ1004の制御を処理する機能に提供することによって外部イベントに応答する割込みドライブメインループを含むことができる。
【００６４】
図11は、本明細書において開示される特定の態様による、共有IRQバス上でIRQをアサートするための方法の第1の例を示す流れ図1100である。その方法は、たとえば、スレーブデバイスによって実施される場合がある。スレーブデバイスは、制御データバスを介して通信する必要性を判断することができ、共有IRQバスを介してマスターデバイスに割込み要求を通信する方法を開始することができる。ブロック1102において、スレーブデバイスは、別のデバイスが共有IRQバス上でシグナリングしているか否かを確認することができる。たとえば、IRQバスは、別のデバイスがIRQ上でシグナリングしているときに論理ロー状態にあることができる。IRQバスがロー(IRQN=0)である場合には、スレーブデバイスは、IRQバスがハイに移行するまで、ブロック1114において待つことができる。スレーブデバイスが、ブロック1102において、IRQバスが論理ハイを表すシグナリング状態にあると判断するとき、スレーブデバイスは、IRQバスをローにドライブすることによって、ブロック1104においてIRQ信号をアサートすることができる。スレーブデバイスは、その後、ブロック1106において、所定のIRQ信号期間だけ待つことができる。IRQ信号期間は、スレーブデバイスおよび/またはスレーブデバイスグループを識別する持続時間を有することができる。一例では、IRQ信号期間は、最小ロー時間(TLOW)の単位において規定することができる。所定のIRQ信号期間が経過した後に、スレーブデバイスは、ブロック1108において、IRQ信号をデアサートすることができる。場合によっては、スレーブデバイスは、ブロック1110において、別の所定の期間(TFRmax)後にIRQバスを監視することができる。スレーブデバイスは、ブロック1112においてIRQバスを監視して、IRQバスが論理ロー(すなわち、IRQN=0)を表すシグナリング状態にとどまるか否かを確認することができる。IRQバスのシグナリング状態が論理ローにとどまる場合には、別のスレーブデバイスがIRQ信号をアサートしている場合があり、スレーブデバイスは、IRQ信号を再発行するために、ブロック1102において開始して、そのプロセスを繰り返すことができる。IRQバスのシグナリング状態が論理ハイシグナリング状態に戻った場合には、そのプロセスは終了し、スレーブデバイスは、バスマスターデバイスからのコマンドまたは要求を予測することができる。
【００６５】
図12は、本明細書において開示される特定の態様による、共有IRQバス上でIRQに対処するための方法の第1の例を示す流れ図1200である。その方法は、たとえば、マスターデバイスによって実施することができる。マスターデバイスは、共有単線IRQバス上でIRQ信号をアサートしたスレーブデバイスを含むデバイスグループの識別情報を確認することができる。マスターデバイスは、ブロック1202において、共有単線IRQバス上でIRQ信号がアサートされたか否かを確認することができる。たとえば、共有単線IRQバスをローにドライブすることによって、IRQ信号をアサートすることができる。共有単線IRQバスがアサートされたとき、マスターデバイスは、ブロック1204においてカウンタをリセットすることができる。その後、マスターデバイスは、ブロック1206においてカウンタをインクリメントすることができ、その一方で、ブロック1208において、IRQバスが依然としてアサートされているか否かをチェックする。このカウンタによって、マスターデバイスは、IRQ信号の長さ/周期(たとえば、パルス幅)を確認できるようになる。IRQバスがデアサートされると、マスターデバイスは、ブロック1210において、IRQ信号長/周期に基づいて、そのスレーブデバイスが属するグループを選択することができる。マスターデバイスは、さらなる割込み要求に関して、共有単線IRQバスを監視し続けることができる。マスターデバイスは、さらに、アサート中スレーブデバイスを識別するために、ブロック1212(たとえば、図13に示される)において、そのグループ内のスレーブデバイスのスキャンおよび/または問い合わせを開始することができる。グループIRQスキャン1212は、グループIRQスキャン1212を実行しながら、マスターデバイスがさらなる割込み要求に関して共有単線IRQバスを監視し続けることができるように、独立して実行することができる。場合によっては、マスターデバイスは、たとえば、電圧レベルを含む、他の特性を用いてIRQ信号を区別することができる。
【００６６】
図13は、IRQ信号が共有単線IRQバス上でアサートされた後にスレーブデバイスを識別するためにグループIRQスキャンを実行するための方法の一例を示す流れ図1300である。その方法は、図12に示されるブロック1212において識別される機能を実行することができる。グループIRQスキャンは、ブロック1302、1304、1306、1308においてそれぞれのステータスレジスタに関して、グループ内の各スレーブデバイスに問い合わせることを含むことができる。問い合わせへの応答によって、マスターデバイスは、グループ内のどのスレーブデバイスがIRQ信号をアサートしたかを確認できるようになる場合がある。識別されると、マスターデバイスは、アサート中スレーブデバイスに、制御データバスの使用を許可することができる。
【００６７】
図14は、本明細書において開示される特定の態様による、共有IRQバス上でIRQに対処するための方法の第2の例を示す流れ図1400である。その方法は、複数のスレーブデバイスによって共有される場合がある単線IRQバスを通して通信される割込み要求の対処に関連する場合がある。単線IRQバスは、非同期に動作することができる。単線IRQバスは、スレーブデバイスからマスターデバイスへの単方向信号送信専用とすることができる。その方法は、I2C、CCIまたはCCIeバス上でマスターデバイスとして機能するように適応されるデバイスの処理回路によって実行することができる。
【００６８】
ブロック1402においてマスターデバイスは、共有単線IRQバスに結合されるスレーブデバイスを1つまたは複数のグループにグループ化することができる。各グループは、異なるIRQ信号に関連付けることができる。各グループに関連付けられるIRQ信号は、他のグループに関連付けられる他のIRQ信号とは異なるパルス幅を有することができる。
【００６９】
ブロック1404において、マスターデバイスは、IRQバスを監視して、スレーブデバイスのうちの1つまたは複数によってIRQ信号がアサートされたか否かを確認することができる。
【００７０】
ブロック1406において、マスターデバイスは、IRQ信号が関連付けられるグループを識別することができる。
【００７１】
ブロック1408において、マスターデバイスは、識別されたグループのスレーブデバイスをスキャンして、IRQバス上でIRQ信号をアサートしたアサート中スレーブデバイスを特定または確認することができる。識別されたスレーブデバイスグループ内のスレーブデバイスをスキャンすることは、スレーブデバイスのIRQステータスレジスタをスキャンすることを含むことができる。アサート中スレーブデバイスは、アサート中スレーブデバイスのIRQステータスレジスタがスキャンされた後に、マスターデバイスからさらなるアテンションを受信することができる。一例において、マスターデバイスは、アサート中スレーブデバイスに、制御データバスを介してデータを送信するためのアクセスを許可することができる。
【００７２】
一態様では、マスターデバイスは、単線IRQバスへの第1のインターフェースと、1つまたは複数のスレーブデバイスも結合される制御データバスへの第2のインターフェースとをサポートすることができる。制御データバスは、スレーブデバイスとマスターデバイスとの間の双方向シグナリングをサポートすることができる。複数のグループのうちの少なくとも1つは、少なくとも2つのスレーブデバイスを含むことができる。
【００７３】
図15は、処理回路1502を利用する装置1500のためのハードウェア実施態様の一例を示す概念図である。この例において、処理システム1502は、バス1516によって全体的に表されるバスアーキテクチャを用いて実現することができる。バス1516は、処理回路1502の具体的な用途および全体的な設計制約に応じて、任意の数の相互接続するバスならびにブリッジを含むことができる。バス1516は、プロセッサ1512によって全体的に表される1つまたは複数のプロセッサと、プロセッサ可読記憶媒体1514によって全体的に表されるコンピュータ可読媒体とを含む種々の回路を互いにリンクする。1つまたは複数のタイマをバスに接続することができ、および/またはプロセッサ1512内で直接アクセス可能にすることができるか、またはプログラム1512内に具現することができる。バス1516は、種々の他の回路、たとえばタイミングソース、タイマ、周辺装置、電圧レギュレータ、および電力管理回路をリンクすることもできる。ラインインターフェース回路1512は、処理回路1502を制御データバスに結合する差動ドライバおよび受信機、および/または処理回路をIRQバスに結合する回路を含むことができる。装置の性質によるが、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティックなどのデバイスをサポートするために、ユーザインターフェースを設けることができる。
【００７４】
プロセッサ1512は、バス1516の管理と、コンピュータ可読記憶媒体1514に記憶されたソフトウェアの実行を含む全体的な処理とに関して責任を担う。ソフトウェアは、プロセッサ1512によって実行されるとき、処理回路1502に任意の特定の装置の上記で説明した種々の機能を実行させる。プロセッサ可読記憶媒体1514は、ソフトウェアを実行するときにプロセッサ1512によって操作されるデータを記憶するために用いることができる。プロセッサ可読記憶媒体1514が、1つまたは複数のリモート管理されるデバイスに関連するシステム情報(たとえば、プロファイル)、および装置1500自体に関連するシステム情報を記憶するために用いることができる。
【００７５】
1つの構成では、処理回路1502は、I2C、CCIおよび/またはCCIeバス上でバスマスターとして通信するように適応されるデバイスの1つまたは複数の機能を実行することができる。処理回路1502は、インターフェース回路1518のうちの第1のインターフェース回路を通して、1つまたは複数のスレーブデバイスが結合される単線IRQバス1522に接続することができ、インターフェース回路1518のうちの第2のインターフェース回路を通して、1つまたは複数のスレーブデバイスが結合される制御データバス1520に接続することができる。処理回路1502は、スレーブデバイスを1つまたは複数のグループにグループ化するように構成されるモジュールまたは回路1510と、IRQバスを監視して、IRQ信号が少なくとも1つのスレーブデバイスによってアサートされる時点を確認するように構成されるモジュールまたは回路1504と、IRQ信号が関連付けられるグループを識別するように構成されるモジュールまたは回路1506と、識別されたグループのスレーブデバイスをスキャンして、IRQバス上でIRQ信号をアサートしたアサート中スレーブデバイスを確認するように構成されるモジュールまたは回路1508とを含むことができる。各グループは、異なるIRQ信号に関連付けることができる。一例では、IRQ信号は、IRQ信号上のパルスの持続時間によって区別することができる。
【００７６】
図16は、本明細書において開示される特定の態様による、共有IRQバス上でIRQ信号をアサートするための方法の第2の例を示す流れ図1600である。その方法は、本明細書において開示される特定の態様による、複数のスレーブデバイスによって共有単線IRQバスを通して割込みを要求することに関連することができるか、または割込みを要求するのを容易にすることができる。単線IRQバスは、非同期に動作することができる。単線IRQバスは、スレーブデバイスからマスターデバイスへの単方向信号送信専用とすることができる。その方法は、I2C、CCIまたはCCIeバス上でマスターデバイスとして機能するように適応されるデバイスの処理回路によって実行することができる。
【００７７】
ブロック1602において、スレーブデバイスは、マスターデバイスからグループ割り当てを入手することができる。グループ割り当ては、複数のグループから1つのグループを識別することができる。各グループは、異なるIRQ信号に関連付けることができる。各グループは少なくとも1つのスレーブデバイスを含む。
【００７８】
ブロック1604において、スレーブデバイスは、IRQバスを監視して、他のスレーブデバイスのうちの1つによってIRQ信号がアサートされたか否かを確認することができる。
【００７９】
ブロック1606において、IRQバス上で他のIRQ信号がアサートされていないとき、スレーブデバイスはIRQバス上でIRQ信号をアサートすることができる。
【００８０】
一態様では、スレーブデバイスは、IRQバスからIRQ信号をデアサートし、IRQバスを監視して、別のデバイスがIRQバス上で信号をアサートしているか否かを確認することができる。他のデバイスが信号をアサートしている場合には、スレーブデバイスは、IRQバスがアイドルになった後に、IRQ信号を再アサートすることができる。
【００８１】
一態様では、スレーブデバイスは、制御データバスを介して、マスターデバイスからステータスレジスタ問い合わせを受信することができ、スレーブデバイスがIRQバス上でIRQ信号をアサートしたというステータス指示で応答することができる。
【００８２】
一態様では、スレーブデバイスは、制御データバスに結合することができる。制御データバスは、I2C、CCIおよび/またはCCIeプロトコルおよび/またはシグナリングに適合することができる。制御データバスは、スレーブデバイスとマスターデバイスとの間で双方向に動作することができる。
【００８３】
図17は、共有IRQバス上でIRQをアサートするように適応される処理回路1702を利用する装置1700のためのハードウェア実施態様の一例の概念図である。この例において、処理システム1702は、バス1716によって全体的に表されるバスアーキテクチャを用いて実現することができる。バス1716は、処理回路1702の具体的な用途および全体的な設計制約に応じて、任意の数の相互接続するバスならびにブリッジを含むことができる。バス1716は、プロセッサ1712によって全体的に表される1つまたは複数のプロセッサと、プロセッサ可読記憶媒体1714によって全体的に表されるコンピュータ可読媒体とを含む種々の回路を互いにリンクする。1つまたは複数のタイマをバスに接続することができ、および/またはプロセッサ1712内で直接アクセス可能にすることができるか、またはプロセッサ1712内に具現することができる。バス1716は、種々の他の回路、たとえばタイミングソース、タイマ、周辺装置、電圧レギュレータ、および電力管理回路をリンクすることもできる。ラインインターフェース回路1718は、処理回路1702を制御データバスに結合する差動ドライバおよび受信機、および/または処理回路をIRQバスに結合する回路を含むことができる。装置の性質によるが、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティックなどのデバイスをサポートするために、ユーザインターフェースを設けることができる。
【００８４】
プロセッサ1712は、バス1716の管理と、コンピュータ可読記憶媒体1714に記憶されたソフトウェアの実行を含む汎用処理との責任を担う。ソフトウェアは、プロセッサ1712によって実行されるとき、処理回路1702に、任意の特定の装置の上記で説明された種々の機能を実行させる。プロセッサ可読記憶媒体1714は、ソフトウェアを実行するときにプロセッサ1712によって操作されるデータを記憶するために用いることができる。プロセッサ可読記憶媒体1714は、1つまたは複数のリモート管理されるデバイスに関連するシステム情報(たとえば、プロファイル)、および装置1700自体に関連するシステム情報を記憶するために用いることができる。
【００８５】
1つの構成では、処理回路1702は、I2C、CCIおよび/またはCCIeバス1720上でバススレーブとして通信するように適応されるデバイスの1つまたは複数の機能を実行することができる。処理回路1702は、インターフェース回路1718のうちの第1のインターフェース回路を通して、1つまたは複数のスレーブデバイスが結合される単線IRQバス1722に接続することができ、インターフェース回路1718のうちの第2のインターフェース回路を通して、1つまたは複数のスレーブデバイスが結合される制御データバス1720に接続することができる。処理回路1702は、マスターデバイスからグループ割り当てを入手するように構成されるモジュールまたは回路1704と、IRQバスを監視して、他のスレーブデバイスノードうちの1つによってIRQ信号がアサートされたことを確認するように構成されるモジュールまたは回路1706と、IRQバス上で他のIRQ信号がアサートされていないときに、IRQバス上でIRQ信号をアサートするように構成されるモジュールまたは回路1708とを含むことができる。グループ割り当ては複数のグループから1つのグループを識別することができる。各グループは、異なるIRQ信号に関連付けることができる。
【００８６】
開示された方法におけるステップの特定の順序または階層は例示的なプロセスの例示であることを理解されたい。設計の優先度に基づいて、方法におけるステップの特定の順序または階層が再配置される場合があることは理解されたい。添付の方法のクレームは、1つのサンプルの順序において種々のステップの要素を示しており、本明細書に特に定めがない限り、示された特定の順序または階層に限定されることは意味していない。
【００８７】
前述の説明は、当業者が本明細書において説明された種々の態様を実施できるようにするために与えられる。これらの態様の種々の変更形態は、当業者に容易に明らかになり、本明細書に定められた一般的な原理は、他の態様にも適用することができる。したがって、特許請求の範囲は本明細書において示される態様に限定されることを意図するものではなく、特許請求の範囲の文言と整合するすべての範囲を許容するように意図されており、単数の要素への言及は、「唯一の」と明記されていない限り、「唯一の」ではなく、「1つまたは複数の」を意味することを意図している。別段に明記されていない限り、「いくつかの」という用語は1つまたは複数を指す。項目のリスト「のうちの少なくとも1つ」について言及する言い回しは、単一のメンバーを含むこれらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、aと、bと、cと、aおよびbと、aおよびcと、bおよびcと、a、bおよびcとを含むことを意図している。当業者により知られているか、または後に当業者に知られることになる、本開示全体を通じて説明された種々の態様の要素に対するすべての構造的および機能的均等物は、参照により明確に本明細書に組み込まれ、特許請求の範囲によって包含されることを意図している。さらに、本明細書に開示されたものは、そのような開示が特許請求の範囲において明示的に列挙されているか否かにかかわらず、公共用に提供されることは意図していない。請求項のいかなる要素も、「のための手段」という言い回しを使用して要素が明示的列挙されていない限り、または方法クレームの場合に「のためのステップ」という言い回しを使用して要素が列挙されていない限り、米国特許法第112条第6項の規定に基づいて解釈されるべきではない。
【符号の説明】
【００８８】
100  装置
102  処理回路
106  送受信機
108  特定用途向けIC(ASIC)
110  アプリケーションプログラミングインターフェース(API)
112  メモリデバイス
114  ローカルデータベース
122  アンテナ
124  ディスプレイ
126  キーパッド
128  ボタン
202  デバイス
204  ベースバンドプロセッサ
206  イメージセンサ
208  マルチモード制御データバス
212  デバイス
214  デバイス
216  画像データバス
218  デバイス
218a  スレーブデバイス
220  IRQ線
222  IRQ線
300  装置
302  イメージングデバイス
304  センサ制御機能
306  構成レジスタ
310  送受信機
310a  受信機
310b  共通回路
310c  送信機
312  処理回路および/または制御ロジック
314a  ラインドライバ/受信機
314b  ラインドライバ/受信機
316  SCL線
318  SDA線
320  デバイス
322a  デバイス
322n  デバイス
324  記憶デバイス
326  IRQバス
328  送信クロック(TXCLK)信号
330  CCIeバス
402  制御データバス
404  バスマスターデバイス
406  グループ
408  グループ
410  スレーブデバイス
412  スレーブデバイス
414  スレーブデバイス
416  スレーブデバイス
418  スレーブデバイス
420  IRQデバイス
422  IRQバス
502  IRQ信号
504  IRQ信号
506  IRQ信号
508  第1のパルス幅
510  第2のパルス幅
512  第3のパルス幅
514  グループ
602  タイミング
604  持続時間
606  持続時間
608  パルス
610  パルス
612  タイミング
614  第1の期間
616  スキャン
618  スキャン
620  遷移
622  遷移
704  第1のパルス
708  割込み要求
712  割込み要求、ホールドオフ期間
710  最小期間
716  割込み要求
718  時点
720  時点
804  持続時間
806  持続時間
814  第1のIRQパルス
818  IRQバス空き期間
824  第2のIRQパルス
826  第3のパルス
902  パルス
904  最大降下-上昇時間(TFRmax)
906  ロー持続時間(tLOW)
910  ロー期間(TLOW)
1002  処理回路
1004  プロセッサ
1006  記憶装置
1008  バスインターフェース
1010  バス
1012  ラインインターフェース回路
1014  実行時画像
1016  ソフトウェアモジュール
1018  ユーザインターフェース
1020  時間分割プログラム
1022  内部デバイスおよび/または論理回路
1500  装置
1502  処理回路
1504  モジュール/回路
1506  モジュール/回路
1508  モジュール/回路
1510  モジュール/回路
1512  プロセッサ
1514  プロセッサ可読記憶媒体
1516  バス
1518  インターフェース回路
1520  制御データバス
1522  単線IRQバス
1700  装置
1702  処理回路
1704  モジュールまたは回路
1706  モジュールまたは回路
1708  モジュールまたは回路
1712  プロセッサ
1714  プロセッサ可読記憶媒体
1716  バス
1718  ラインインターフェース回路
1720  制御データバス
1722  単線IRQバス
【図１】
2016532967.tif 000004
【図２】
2016532967.tif 000005
【図３】
2016532967.tif 000006
【図４】
2016532967.tif 000007
【図５】
2016532967.tif 000008
【図６】
2016532967.tif 000009
【図７】
2016532967.tif 000010
【図８】
2016532967.tif 000011
【図９】
2016532967.tif 000012
【図１０】
2016532967.tif 000013
【図１１】
2016532967.tif 000014
【図１２】
2016532967.tif 000015
【図１３】
2016532967.tif 000016
【図１４】
2016532967.tif 000017
【図１５】
2016532967.tif 000018
【図１６】
2016532967.tif 000019
【図１７】
2016532967.tif 000020
【国際調査報告】
2016532967.tif 000021
2016532967.tif 000022