JP2016532967A - 周辺装置からのirq線の数を1線に最小化する方法 - Google Patents

周辺装置からのirq線の数を1線に最小化する方法 Download PDF

Info

Publication number
JP2016532967A
JP2016532967A JP2016536391A JP2016536391A JP2016532967A JP 2016532967 A JP2016532967 A JP 2016532967A JP 2016536391 A JP2016536391 A JP 2016536391A JP 2016536391 A JP2016536391 A JP 2016536391A JP 2016532967 A JP2016532967 A JP 2016532967A
Authority
JP
Japan
Prior art keywords
irq
bus
signal
slave device
slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016536391A
Other languages
English (en)
Other versions
JP2016532967A5 (ja
Inventor
祥一郎 仙石
祥一郎 仙石
リチャード・ドミニク・ウィートフェルト
ジョージ・アラン・ウィリー
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016532967A publication Critical patent/JP2016532967A/ja
Publication of JP2016532967A5 publication Critical patent/JP2016532967A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/001In-Line Device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/002Bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

共有単線割込み要求(IRQ)バスおよび制御データバスに結合されるマスターデバイスが提供される。マスターデバイスは、共有単線割込み要求(IRQ)バスに結合されるスレーブデバイスを1つまたは複数のグループにグループ化し、各グループは異なるIRQ信号に関連付けられる。その後、マスターデバイスは、IRQバスを監視して、少なくとも1つのスレーブデバイスによってIRQ信号がアサートされた時点を確認する。その後、マスターデバイスは、IRQ信号が関連付けられるグループを識別する。その後、IRQバス上でどのスレーブデバイスがIRQ信号をアサートしたかを確認するために、マスターデバイスによって、識別されたグループに関するスレーブデバイスがスキャンされるか、または問い合わせられる。各グループは、マスターデバイスが、問い合わせるか、またはスキャンすべきグループを確認できるようにする区別できるIRQ信号を使用する。

Description

関連出願の相互参照
本特許出願は、本発明の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、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のための最大値は、次のように計算することができる。
Figure 2016532967
共通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バス

Claims (30)

  1. マスターデバイスであって、
    1つまたは複数のスレーブデバイスが結合される単線割込み要求(IRQ)バスへの第1のインターフェースと、
    同じく前記1つまたは複数のスレーブデバイスが結合される制御データバスへの第2のインターフェースと、
    前記第1のインターフェースと前記第2のインターフェースとに結合される処理回路とを備え、前記処理回路は、
    前記1つまたは複数のスレーブデバイスを1つまたは複数のグループにグループ化し、各グループは異なるIRQ信号に関連付けられ、
    前記IRQバスを監視して、少なくとも1つのスレーブデバイスによってIRQ信号がアサートされた時点を確認し、
    前記IRQ信号が関連付けられるグループを識別し、
    前記識別されたグループの前記スレーブデバイスをスキャンして、前記IRQバス上で前記IRQ信号をアサートしたアサート中スレーブデバイスを確認するように適応される、マスターデバイス。
  2. 前記処理回路はさらに、
    前記アサート中スレーブデバイスに、前記制御データバスを介してデータを送信するためのアクセスを許可するように適応される、請求項1に記載のデバイス。
  3. 各グループに関連付けられる前記IRQ信号は、他のグループに関連付けられるIRQ信号とは異なるパルス幅を有する、請求項1に記載のデバイス。
  4. 前記単線IRQバスは非同期バスである、請求項1に記載のデバイス。
  5. 前記単線IRQバスは、前記スレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項1に記載のデバイス。
  6. 前記制御データバスは、集積回路間(I2C)シリアルバス、カメラ制御インターフェース(CCI)シリアルバス、またはCCI拡張(CCIe)シリアルバスを含む、請求項1に記載のデバイス。
  7. 前記制御データバスは、前記スレーブデバイスと前記マスターデバイスとの間の双方向シグナリングをサポートする、請求項1に記載のデバイス。
  8. マスターデバイス上で使用できる方法であって、
    共有単線割込み要求(IRQ)バスに結合されるスレーブデバイスを1つまたは複数のグループにグループ化するステップであって、各グループは異なるIRQ信号に関連付けられる、グループ化するステップと、
    前記IRQバスを監視して、前記スレーブデバイスのうちの1つまたは複数によってIRQ信号がアサートされた時点を確認するステップと、
    前記IRQ信号が関連付けられるグループを識別するステップと、
    前記識別されたグループ内の少なくとも1つのスレーブデバイスをスキャンして、前記IRQバス上で前記IRQ信号をアサートしたアサート中スレーブデバイスを確認するステップとを含む、マスターデバイス上で使用できる方法。
  9. 前記少なくとも1つのスレーブデバイスをスキャンするステップは、
    前記アサート中スレーブデバイスのIRQステータスレジスタをスキャンするステップを含む、請求項8に記載の方法。
  10. 前記アサート中スレーブデバイスに、制御データバスを介してデータを送信するためのアクセスを許可するステップをさらに含む、請求項8に記載の方法。
  11. 前記制御データバスは、前記スレーブデバイスと前記マスターデバイスとの間の双方向シグナリングをサポートする、請求項10に記載の方法。
  12. 各グループに関連付けられる前記IRQ信号は、他のグループに関連付けられるIRQ信号とは異なるパルス幅を有する、請求項8に記載の方法。
  13. 前記IRQバスは非同期で動作する、請求項8に記載の方法。
  14. 前記IRQバスは、前記スレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項8に記載の方法。
  15. 前記1つまたは複数のグループはそれぞれ、少なくとも1つのスレーブデバイスを含む、請求項8に記載の方法。
  16. スレーブデバイスであって、
    マスターデバイスが結合される単線割込み要求(IRQ)バスへの第1のインターフェースと、
    同じくマスターデバイスが結合される制御データバスへの第2のインターフェースと、
    前記第1のインターフェースと前記第2のインターフェースとに結合される処理回路とを備え、前記処理回路は、
    マスターデバイスからグループ割り当てを入手し、前記グループ割り当ては複数のグループから1つのグループを識別し、各グループは異なるIRQ信号に関連付けられ、
    前記IRQバスを監視して、別のスレーブデバイスによってIRQ信号がアサートされた時点を確認し、
    前記IRQバス上で他のIRQ信号がアサートされていないときに、前記IRQバス上で第1のIRQ信号をアサートするように適応される、スレーブデバイス。
  17. 前記IRQバスは、1つまたは複数のスレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項16に記載のスレーブデバイス。
  18. 前記制御データバスは、1つまたは複数のスレーブデバイスと前記マスターデバイスとの間の双方向通信をサポートする、請求項16に記載のスレーブデバイス。
  19. 前記制御データバスは、集積回路間(I2C)シリアルバス、カメラ制御インターフェース(CCI)シリアルバス、またはCCI拡張(CCIe)シリアルバスを含む、請求項16に記載のスレーブデバイス。
  20. 前記複数のグループはそれぞれ、少なくとも1つのスレーブデバイスを含む、請求項16に記載のスレーブデバイス。
  21. 前記処理回路はさらに、
    前記IRQバスから前記第1のIRQ信号をデアサートし、
    前記IRQバスを監視して、別のスレーブデバイスによって前記IRQバス上で第2のIRQ信号がアサートされたか否かを判断し、
    前記第2のIRQ信号が前記IRQバス上でアサートされた場合には、前記第1のIRQ信号を再アサートするように適応され、前記第1のIRQ信号は、前記IRQバスがアイドルになった後に再アサートされる、請求項16に記載のスレーブデバイス。
  22. 前記処理回路はさらに、
    前記制御データバスを介して、前記マスターデバイスからステータスレジスタ問い合わせを受信し、
    前記スレーブデバイスが前記IRQバス上で前記第1のIRQ信号をアサートしたというステータス指示で応答するように適応される、請求項16に記載のスレーブデバイス。
  23. スレーブデバイス上で使用できる方法であって、
    マスターデバイスからグループ割り当てを入手するステップであって、前記グループ割り当ては複数のグループから1つのグループを識別し、各グループは異なるIRQ信号に関連付けられる、入手するステップと、
    前記IRQバスを監視して、他のスレーブデバイスのうちの1つによってIRQ信号がアサートされたか否かを確認するステップと、
    前記IRQバス上で他のIRQ信号がアサートされていないときに、前記IRQバス上で第1のIRQ信号をアサートするステップとを含む、スレーブデバイス上で使用できる方法。
  24. 前記IRQバスは非同期バスである、請求項23に記載の方法。
  25. 前記IRQバスは、スレーブデバイスから前記マスターデバイスへの単方向信号送信専用である、請求項23に記載の方法。
  26. 前記複数のグループはそれぞれ、少なくとも1つのスレーブデバイスを含む、請求項23に記載の方法。
  27. 前記IRQバスから前記第1のIRQ信号をデアサートするステップと、
    前記IRQバスを監視して、前記IRQバス上で別のデバイスが第2のIRQ信号をアサートしているか否かを確認するステップと、
    前記他のデバイスが前記第2のIRQ信号をアサートしている場合には、前記第1のIRQ信号を再アサートするステップであって、前記第1のIRQ信号は、前記第2のIRQ信号がデアサートされた後に再アサートされる、再アサートするステップとをさらに含む、請求項23に記載の方法。
  28. 制御データバスを介して、前記マスターデバイスからステータスレジスタ問い合わせを受信するステップと、
    前記スレーブデバイスが前記IRQバス上で前記第1のIRQ信号をアサートしたというステータス指示で応答するステップとをさらに含む、請求項23に記載の方法。
  29. 制御データバスはCCIe適合バスである、請求項28に記載の方法。
  30. 制御データバスは、前記スレーブデバイスと前記マスターデバイスとの間の双方向バスである、請求項28に記載の方法。
JP2016536391A 2013-08-24 2014-08-19 周辺装置からのirq線の数を1線に最小化する方法 Pending JP2016532967A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361869673P 2013-08-24 2013-08-24
US61/869,673 2013-08-24
US14/462,363 US9921981B2 (en) 2013-08-24 2014-08-18 Method to minimize the number of IRQ lines from peripherals to one wire
US14/462,363 2014-08-18
PCT/US2014/051758 WO2015031115A1 (en) 2013-08-24 2014-08-19 Method to minimize the number of irq lines from peripherals to one wire

Publications (2)

Publication Number Publication Date
JP2016532967A true JP2016532967A (ja) 2016-10-20
JP2016532967A5 JP2016532967A5 (ja) 2017-09-07

Family

ID=52481419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016536391A Pending JP2016532967A (ja) 2013-08-24 2014-08-19 周辺装置からのirq線の数を1線に最小化する方法

Country Status (9)

Country Link
US (1) US9921981B2 (ja)
EP (1) EP3036647B1 (ja)
JP (1) JP2016532967A (ja)
KR (1) KR20160047484A (ja)
CN (1) CN105474193A (ja)
CA (1) CA2918503A1 (ja)
ES (1) ES2647147T3 (ja)
HU (1) HUE033685T2 (ja)
WO (1) WO2015031115A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11137965B2 (en) 2017-08-17 2021-10-05 Fujifilm Business Innovation Corp. Information processing apparatus for controlling transmission of information while varying transmission intervals

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9519603B2 (en) * 2013-09-09 2016-12-13 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
DE102014014379B3 (de) * 2014-10-02 2015-08-20 Micronas Gmbh Verfahren für eine deterministische Auswahl eines Sensors aus einer Vielzahl von Sensoren
US20180107987A1 (en) * 2016-10-14 2018-04-19 Microsoft Technology Licensing, Llc Meeting service with meeting time and location optimization
KR20180124340A (ko) * 2017-05-11 2018-11-21 엘에스산전 주식회사 프로그래머블 논리 제어 장치
US11030133B2 (en) * 2018-08-30 2021-06-08 Qualcomm Incorporated Aggregated in-band interrupt based on responses from slave devices on a serial data bus line

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53102643A (en) * 1977-02-21 1978-09-07 Hitachi Ltd Interrupt processing system for computer
US4332011A (en) * 1980-03-17 1982-05-25 Cambridge Telecommunications, Inc. Data processing arrangement including multiple groups of I/O devices with priority between groups and within each group
JPS61175843A (ja) * 1985-01-31 1986-08-07 Toshiba Corp 割込み検出方式
JPH03174842A (ja) * 1989-09-14 1991-07-30 Matsushita Electric Works Ltd 時分割多重伝送システムの割込処理方式
JPH07302203A (ja) * 1994-05-10 1995-11-14 Matsushita Electric Ind Co Ltd 割込制御装置
JPH11232210A (ja) * 1998-02-16 1999-08-27 Fuji Xerox Co Ltd 情報処理装置
JP2000231539A (ja) * 1999-02-12 2000-08-22 Ricoh Co Ltd データ転送システムおよびデータ転送方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58198994A (ja) * 1982-05-15 1983-11-19 Matsushita Electric Works Ltd 時分割多重遠隔制御システムの割込処理方式
US5555420A (en) 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
US5321818A (en) 1992-05-12 1994-06-14 Hughes Aircraft Company System for arbitrating for access on VME bus structures
US5530875A (en) * 1993-04-29 1996-06-25 Fujitsu Limited Grouping of interrupt sources for efficiency on the fly
US5943500A (en) * 1996-07-19 1999-08-24 Compaq Computer Corporation Long latency interrupt handling and input/output write posting
US5940402A (en) 1997-06-06 1999-08-17 Timeplex, Inc. Method and apparatus for TDM interrupt transmissions between multiple devices and a processor
US6065073A (en) * 1998-08-17 2000-05-16 Jato Technologies, Inc. Auto-polling unit for interrupt generation in a network interface device
US6263395B1 (en) * 1999-01-06 2001-07-17 Compaq Computer Corp. System and method for serial interrupt scanning
JP2002055830A (ja) 2000-05-29 2002-02-20 Seiko Epson Corp 割込信号生成装置及び割込信号の生成方法
US6704823B1 (en) * 2000-07-20 2004-03-09 International Business Machines Corporation Method and apparatus for dynamic allocation of interrupt lines through interrupt sharing
US20020116563A1 (en) * 2000-12-12 2002-08-22 Lever Paul D. Apparatus and method to reduce interrupt latency in shared interrupt systems
US7089338B1 (en) * 2002-07-17 2006-08-08 Cypress Semiconductor Corp. Method and apparatus for interrupt signaling in a communication network
GB0219570D0 (en) * 2002-08-22 2002-10-02 Ibm Disk drive arrangement, enclosure, adapter and method
US7200700B2 (en) 2005-05-19 2007-04-03 Inventec Corporation Shared-IRQ user defined interrupt signal handling method and system
US7752365B2 (en) * 2008-04-01 2010-07-06 Kyocera Corporation Bi-directional single conductor interrupt line for communication bus
DE102008059204B9 (de) 2008-11-27 2011-05-05 Infineon Technologies Ag Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz
US8489786B2 (en) * 2009-11-09 2013-07-16 Stmicroelectronics International N.V. Acknowledgement management technique for supported command set of SMBUS/PMBUS slave applications
US8775707B2 (en) 2010-12-02 2014-07-08 Blackberry Limited Single wire bus system
US8725916B2 (en) * 2012-01-07 2014-05-13 Microsoft Corporation Host side implementation for HID I2C data bus
US9690725B2 (en) * 2014-01-14 2017-06-27 Qualcomm Incorporated Camera control interface extension with in-band interrupt
US9519603B2 (en) * 2013-09-09 2016-12-13 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US20150095537A1 (en) * 2013-10-02 2015-04-02 Qualcomm Incorporated Camera control interface sleep and wake up signaling
US10353837B2 (en) * 2013-09-09 2019-07-16 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9892077B2 (en) * 2013-10-07 2018-02-13 Qualcomm Incorporated Camera control interface slave device to slave device communication
JP2016538624A (ja) * 2013-10-08 2016-12-08 クアルコム,インコーポレイテッド 共有制御データバス上でのi2cスレーブデバイスとカメラ制御インターフェース拡張デバイスの共存
US9684624B2 (en) * 2014-01-14 2017-06-20 Qualcomm Incorporated Receive clock calibration for a serial bus
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53102643A (en) * 1977-02-21 1978-09-07 Hitachi Ltd Interrupt processing system for computer
US4332011A (en) * 1980-03-17 1982-05-25 Cambridge Telecommunications, Inc. Data processing arrangement including multiple groups of I/O devices with priority between groups and within each group
JPS61175843A (ja) * 1985-01-31 1986-08-07 Toshiba Corp 割込み検出方式
JPH03174842A (ja) * 1989-09-14 1991-07-30 Matsushita Electric Works Ltd 時分割多重伝送システムの割込処理方式
JPH07302203A (ja) * 1994-05-10 1995-11-14 Matsushita Electric Ind Co Ltd 割込制御装置
JPH11232210A (ja) * 1998-02-16 1999-08-27 Fuji Xerox Co Ltd 情報処理装置
JP2000231539A (ja) * 1999-02-12 2000-08-22 Ricoh Co Ltd データ転送システムおよびデータ転送方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11137965B2 (en) 2017-08-17 2021-10-05 Fujifilm Business Innovation Corp. Information processing apparatus for controlling transmission of information while varying transmission intervals

Also Published As

Publication number Publication date
CA2918503A1 (en) 2015-03-05
EP3036647A1 (en) 2016-06-29
WO2015031115A1 (en) 2015-03-05
EP3036647B1 (en) 2017-09-20
US9921981B2 (en) 2018-03-20
KR20160047484A (ko) 2016-05-02
US20150058507A1 (en) 2015-02-26
ES2647147T3 (es) 2017-12-19
CN105474193A (zh) 2016-04-06
HUE033685T2 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
KR102445344B1 (ko) 시리얼 버스를 위한 수신 클록 캘리브레이션
JP6625557B2 (ja) センサーグローバルバス
EP3095038B1 (en) Camera control interface extension with in-band interrupt
US9684624B2 (en) Receive clock calibration for a serial bus
JP2016532967A (ja) 周辺装置からのirq線の数を1線に最小化する方法
JP2017520053A (ja) マルチプロトコルデバイスによって共有される動的調整可能なマルチラインバス
TW201923606A (zh) 針對多執行環境之i3c頻帶內中斷
US10678723B2 (en) Urgent in-band interrupts on an I3C bus
US20190213165A1 (en) Priority scheme for fast arbitration procedures
US20190018818A1 (en) Accelerated i3c stop initiated by a third party
US10545886B2 (en) Clock line driving for single-cycle data over clock signaling and pre-emption request in a multi-drop bus
WO2015054549A1 (en) SLAVE IDENTIFIER SCANNING AND HOT-PLUG CAPABILITY OVER CCIe BUS
US20170371830A1 (en) Accelerated i3c master stop
US20190171611A1 (en) Protocol-framed clock line driving for device communication over master-originated clock line
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
US20210141757A1 (en) Adaptive address arbitration optimization on an i3c bus
US11360916B2 (en) Group slave identifier time-multiplexed acknowledgment for system power management interface

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180611

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190128