JP2018517987A - 50ナノ秒スパイクフィルタ用のテスト - Google Patents

50ナノ秒スパイクフィルタ用のテスト Download PDF

Info

Publication number
JP2018517987A
JP2018517987A JP2017564614A JP2017564614A JP2018517987A JP 2018517987 A JP2018517987 A JP 2018517987A JP 2017564614 A JP2017564614 A JP 2017564614A JP 2017564614 A JP2017564614 A JP 2017564614A JP 2018517987 A JP2018517987 A JP 2018517987A
Authority
JP
Japan
Prior art keywords
pulses
command
slave device
serial bus
sequence
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.)
Ceased
Application number
JP2017564614A
Other languages
English (en)
Other versions
JP2018517987A5 (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 JP2018517987A publication Critical patent/JP2018517987A/ja
Publication of JP2018517987A5 publication Critical patent/JP2018517987A5/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Dc Digital Transmission (AREA)
  • Bus Control (AREA)

Abstract

集積回路間(I2C)バスの性能を向上させるシステム、方法、および装置について説明する。レガシーI2Cデバイスにおけるスパイクフィルタをテストする方法は、I2Cプロトコルに従ってシリアルバス上で送信すべきコマンドを生成するステップであって、コマンドが、レガシースレーブデバイスに対応するアドレスを含む、ステップと、テスト信号を取得するためにコマンドをパルスのシーケンスとマージするステップと、シリアルバス上でテスト信号を送信するステップと、レガシースレーブデバイスがテスト信号に肯定応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定するステップとを含む。パルスのシーケンスにおける各パルスは、50ns未満の持続時間を有する。スパイクフィルタは、50ns未満の持続時間を有するパルスを抑制することが期待される。

Description

関連出願の相互参照
本出願は、2015年6月15日に米国特許庁に出願された仮出願第62/175,723号および2016年6月10日に米国特許商標庁に出願された非仮出願第15/179,470号の利益を主張し、これらの出願の内容全体が本明細書に組み込まれる。
本開示は、概してプロセッサと周辺デバイスとの間のインターフェースに関し、より詳細には、シリアルバスのデータ通信能力を向上させることに関する。
I2CバスまたはI2Cバスと呼ばれる場合もある集積回路間シリアルバスは、低速周辺装置をプロセッサに接続する際に使用するためのものであったシリアルシングルエンドコンピュータバスである。I2Cバスは、各デバイスがI2Cバス上で送信される様々なメッセージに関してマスタおよびスレーブとして働くことができる。I2Cバスは、シリアルデータライン(SDA)およびシリアルクロックライン(SCL)を含む2つの双方向オープンドレーンコネクタを使用してデータを送信することができる。コネクタは、通常、プルアップ抵抗器によって終端処理された信号線を含む。I2Cの元の実装形態は、標準モード(Sm)動作において最大100キロビット毎秒(100kbps)のデータ信号速度をサポートしたが、最近の規格は、高速モード(Fm)動作において400kbps、高速モードプラス(Fm+)動作において1メガバイト毎秒(Mbps)の速度をサポートする。
しかしながら、いくつかのシステムおよび装置では、いくつかのタイプのデバイス間の通信をサポートするために、さらに高い帯域幅が必要とされる。たとえば、携帯電話などのモバイル通信デバイスは、かなりの帯域幅を消費するカメラ、ディスプレイ、および様々な通信インターフェースなどの複数のデバイスを使用する場合がある。より高い帯域幅は、レガシーデバイスとの互換性を維持するために従来のI2Cプロトコルによるシグナリングを含む混合シグナリングが使用されるときに取得することが困難な場合がある。たとえば、I2Cデバイスでは対処できない高いビットレートでデータおよびコマンドを送信するために拡張デバイスによって使用されるシリアルバス上でI2Cデバイスが共存できるかどうかを判定することが困難である場合がある。したがって、モバイルデバイス内でマスタ構成要素とスレーブ構成要素とを接続するバスとして構成されるシリアルインターフェース上で最適化された通信を実現することが引き続き求められている。
本明細書で開示する実施形態は、レガシーI2Cデバイスが共通シリアルバス上で拡張デバイスと共存することができるかどうかを判定することができるシステム、方法、および装置を提供する。一例では、スパイクフィルタが、50ナノ秒(50ns)未満の持続時間を有するパルスのシーケンスを抑制することができるかどうかを判定するためにテストされる。
本開示の様々な態様では、データ通信の方法がマスタデバイスによって実行されてもよい。本方法は、I2Cプロトコルに従ってシリアルバス上で送信すべきコマンドを生成するステップであって、コマンドが、第1のスレーブデバイスに対応するアドレスを含む、ステップと、テスト信号を取得するためにコマンドをパルスのシーケンスとマージするステップと、シリアルバス上でテスト信号を送信するステップと、第1のスレーブデバイスがコマンドに肯定応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性および効果を判定するステップとを含む。パルスのシーケンスにおける各パルスは、50ns未満の持続時間を有する。スパイクフィルタは、50ns未満の持続時間を有するパルスを抑制することが期待される。
一態様では、第1のスレーブデバイスが、コマンドに肯定応答することによってコマンドに正しく応答する。マスタデバイスは、コマンドに応答してスレーブデバイスから肯定応答を受信してもよい。肯定応答は、第1のスレーブデバイスにおけるスパイクフィルタが有効に動作していることの表示であってもよい。
一態様では、スパイクフィルタの有効性を判定するステップは、第1のスレーブデバイスのレジスタに第1の値を書き込ませるステップと、第1のスレーブデバイスにおけるレジスタから第2の値を読み取るステップとを含む。マスタデバイスは、第1の値が第2の値に等しいときにスパイクフィルタが有効であると判定してもよい。
いくつかの態様では、マスタデバイスは、コマンドをパルスのシーケンスなしで1つまたは複数のクロック周波数で送信することによって第1のスレーブデバイスの存在を判定してもよい。第1のスレーブデバイスは、第1のスレーブデバイスがシリアルバス上に存在し、かつ1つまたは複数のクロック周波数のうちの少なくとも1つを使用して通信するように適合されているときに、コマンドに肯定応答するように構成されてもよい。テスト信号は、1つまたは複数のクロック周波数のうちの最低周波数に相当するクロック周波数で送信されてもよい。
一態様では、マスタデバイスは、シリアルバス上で送信されるクロック信号がロー状態であるときにパルスのシーケンスを複数の間隔の各々にマージすることによってコマンドをパルスのシーケンスとマージさせてもよい。
別の態様では、マスタデバイスは、シリアルバス上で送信されるクロック信号がハイ状態であるときにパルスのシーケンスを複数の間隔の各々にマージすることによってコマンドをパルスのシーケンスとマージさせてもよい。
様々な態様では、各パルスは、パルスがハイ状態である40ナノの秒期間を含む。パルスのシーケンスは、シリアルバスのシリアルクロック線上またはシリアルバスのシリアルデータ線上で送信される。
本開示の様々な態様では、シリアルバスに結合される装置が、I2Cプロトコルに従ってシリアルバス上で送信すべきコマンドを生成するための手段であって、コマンドが、第1のスレーブデバイスに対応するアドレスを含む、手段と、テスト信号を取得するためにコマンドをパルスのシーケンスとマージするための手段と、シリアルバス上でテスト信号を送信するための手段と、第1のスレーブデバイスがコマンドに肯定応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性および効果を判定するための手段とを含む。パルスのシーケンスにおける各パルスは、50ns未満の持続時間を有する。スパイクフィルタは、50ns未満の持続時間を有するパルスを抑制することが期待される。
本開示の様々な態様では、シリアルバスに結合されるデバイスの能力を検出するための装置が、I2Cプロトコルに従ってシリアルバス上で送信すべきコマンドを生成することであって、コマンドが、第1のスレーブデバイスに対応するアドレスを含む、生成することと、テスト信号を取得するためにコマンドをパルスのシーケンスとマージすることであって、パルスのシーケンスにおける各パルスが、50ns未満の持続時間を有する、マージすることと、シリアルバス上でテスト信号を送信することと、第1のスレーブデバイスがコマンドに正しく応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性および効果を判定することとを行うように構成される処理システムを含む。スパイクフィルタは、50ns未満の持続時間を有するパルスを抑制することが期待される場合がある。
本開示の様々な態様では、プロセッサ可読記憶媒体が開示される。記憶媒体は、非一時的記憶媒体であってもよく、1つまたは複数のプロセッサによって実行することができるコードを記憶してもよい。様々な例では、プロセッサ可読記憶媒体は、集積回路間(I2C)プロトコルに従ってシリアルバス上で送信すべきコマンドを生成するためのコードであって、コマンドが、第1のスレーブデバイスに対応するアドレスを含む、コードと、テスト信号を取得するためにコマンドをパルスのシーケンスとマージするためのコードであって、パルスのシーケンスにおける各パルスが、50ns未満の持続時間を有する、コードと、シリアルバス上でテスト信号を送信するコードと、第1のスレーブデバイスがコマンドに正しく応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性および効果を判定するためのコードとを有する。スパイクフィルタは、50ns未満の持続時間を有するパルスを抑制することが期待される場合がある。
複数の利用可能な規格のうちの1つに従って選択的に動作する集積回路(IC)デバイス間のデータリンクを使用する装置を示す図である。 I2C通信バスに接続された装置のいくつかの態様を示す図である。 共通のシリアルバスに接続されたI2Cの構成を示す図である。 従来のI2Cバス上のSDA線とSCL線との間のタイミング関係のいくつかの態様を示す図である。 I2Cバス上で送信される複数のフレームに関連するタイミングを示すタイミング図である。 I2Cプロトコルに従ってスレーブデバイスに送られるコマンドワードに関するタイミングを示す図である。 I2Cデバイスによってフィルタ処理される場合があるパルスのタイミングを示す図である。 レガシーI2Cデバイスにおけるスパイクフィルタの動作に関連するいくつかの態様を示す図である。 本明細書で開示するいくつかの態様によるテスト送信の第1の例を示す図である。 本明細書で開示するいくつかの態様によるテスト送信の第2の例を示す図である。 本明細書で開示するいくつかの態様によるレガシーI2Cデバイスにおけるスパイクフィルタをテストするためのプロセスを示す図である。 本明細書で開示する1つまたは複数の態様による、I2Cバスを介して通信する受信装置のためのハードウェア実装形態の一例を示す図である。 本明細書で開示する1つまたは複数の態様による、シリアルバスに結合されるデバイスの能力を検出するための方法のフローチャートである。 本明細書で開示するいくつかの態様に従って適合された処理回路を使用する装置のためのハードウェア実装形態の例を示す図である。
次に、図面を参照しながら様々な態様について説明する。以下の説明では、説明の目的で、1つまたは複数の態様を完全に理解できるように多数の具体的な詳細を記載する。しかしながら、そのような態様がこれらの具体的な詳細なしに実践される場合があることは明らかであろう。
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連エンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で動作するアプリケーションとコンピューティングデバイスの両方を構成要素とすることができる。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、また、構成要素は、1つのコンピュータ上で局所化することができ、ならびに/あるいは2つ以上のコンピュータの間で分散させることができる。さらに、これらの構成要素は、様々なデータ構造をその上に記憶した様々なコンピュータ可読媒体から実行することができる。構成要素は、ローカルシステム内の、分散システム内の、および/または、インターネットなどのネットワークにわたる別の構成要素と対話する1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号などに従うローカルプロセスおよび/またはリモートプロセスにより、信号を用いて他のシステムと通信する場合がある。
さらに、「または」という用語は、排他的な「または」ではなく、むしろ包括的な「または」を意味することを意図している。すなわち、別段の規定がない限り、または、文脈から明白でない限り、「XはAまたはBを使用する」という句は、自然包括的並べ替えのいずれかを意味するものとする。すなわち、「XはAまたはBを使用する」という句は、以下の場合のいずれかによって満たされる。XはAを使用する。XはBを使用する。XはAとBの両方を使用する。加えて、本出願および添付の特許請求の範囲で使用する冠詞"a"および"an"は、別段に規定されていない限り、または単数形を対象とすることが文脈から明らかでない限り、概して「1つまたは複数の」を意味するものと解釈されるべきである。
本発明のいくつかの態様は、携帯電話、スマートフォン、セッション開始プロトコル(SIP)電話、ラップトップ、ノートブック、ネットブック、スマートブック、携帯情報端末(PDA)、衛星ラジオ、全地球測位システム(GPS)デバイス、スマートホームデバイス、インテリジェント照明、マルチメディアデバイス、ビデオデバイス、デジタルオーディオプレーヤ(たとえば、MP3プレーヤ)、カメラ、ゲームコンソール、エンターテインメントデバイス、車両構成要素、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、ヘルスまたはフィットネストラッカ、アイウェアなど)、アプライアンス、センサ、セキュリティデバイス、自動販売機、スマートメータ、ドローン、マルチコプター、または任意の他の同様の機能デバイスなどのモバイル装置の副構成要素である電子デバイス間に展開される通信リンクに適用可能である場合がある。
図1は、ICデバイス間の通信リンクを使用する場合がある装置100を示す。一例では、装置100は、無線周波数(RF)ラジオおよび/またはトランシーバ106を使用して、無線アクセスネットワーク(RAN)、コアアクセスネットワーク、インターネットおよび/または別のネットワークと通信する通信デバイスとして動作してもよい。トランシーバ106は、処理回路102に組み込まれてもよく、あるいは処理回路102に動作可能に結合されてもよい。処理回路102は、特定用途向けIC(ASIC)108など、1つまたは複数のICデバイスを含んでもよい。ASIC108は、1つまたは複数の処理デバイス110、論理回路112などを含んでもよい。処理回路102は、処理回路102によって実行されるかまたは処理回路102によって他の用途に使用されるデータおよび命令を記憶し維持することができるメモリデバイスなどのプロセッサ可読記憶媒体114を含んでもよく、ならびに/あるいはそれに結合されてもよい。処理回路102は、オペレーティングシステムによって制御されてもよく、記憶媒体114内に存在するソフトウェアモジュールの実行をサポートし可能にするアプリケーションプログラミングインターフェース(API)レイヤが設けられてもよい。記憶媒体114は、ROMもしくはRAM、EEPROM、フラッシュカード、および/または処理システムおよびコンピュータプラットフォーム内で使用することのできる任意のメモリデバイスを備えてもよい。処理回路102は、装置100を構成かつ動作させるために使用される動作パラメータおよび他の情報を維持することのできるローカルデータベースを含んでもよく、あるいはそれにアクセスしてもよい。ローカルデータベースは、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、光媒体、テープ、ソフトディスクまたはハードディスクなどのうちの1つまたは複数を使用して実装されてもよい。処理回路はまた、他の構成要素の中でも、アンテナ122、ディスプレイ124などの他のデバイス、ボタン128およびキーパッド126などのオペレータ制御装置に動作可能に結合される場合がある。
図2は、シリアルバス230などの共有バスに接続された複数のデバイス202、220、および222a〜222nを含む装置200のいくつかの態様を示すブロック概略図である。装置200は、たとえば、モバイル処理/通信デバイスに組み込まれてもよい。装置200は、シリアルバス230を使用して通信するデバイス202、220、および222a〜222nを含む。いくつかの実装形態では、シリアルバス230は、I2Cプロトコルを含む場合がある1つまたは複数のプロトコルをサポートする。一例では、シリアルバス230に結合されるスレーブデバイス202、222a〜222nは、センサを含むかあるいはセンサに結合される。別の例では、スレーブデバイス202は、センサを管理するかまたはセンサと通信するセンサ制御機能204を含む。センサは、環境センサ、位置ロケーションセンサ、運動センサなどであってもよい。別の例では、スレーブデバイス202は、撮像センサを含む撮像デバイスであってもよい。スレーブデバイス202は、構成レジスタ206と、制御論理212と、トランシーバ210と、ラインドライバ/レシーバ214aおよび214bとを含んでもよい。制御論理212は、ステートマシン、シーケンサ、信号プロセッサ、または汎用プロセッサなどのプロセッサを含んでもよい。トランシーバ210は、レシーバ210aと、トランスミッタ210cと、タイミング、論理、およびストレージ回路ならびに/あるいはタイミング、論理、およびストレージデバイスを含む共通回路210bとを含んでもよい。一例では、トランスミッタ210cは、クロック生成回路208によって生成されるタイミングに基づいて、データを符号化し送信する。
デバイス202、220、および/または222a〜222nのうちの2つ以上が、従来のI2Cプロトコルに従って動作する共有バスによって実現される帯域幅およびその他の能力を拡張するように、本明細書で開示するいくつかの態様および特徴に従って適合されてもよい。一例では、デバイス202、220、および/または222a〜222nは、I2Cプロトコルから派生したプロトコルまたはI2Cプロトコルとは異なるプロトコルをサポートするように適合されてもよい。別の例では、デバイス202、220、および/または222a〜222nは、従来のI2Cプロトコルを使用してシリアルバス230上の通信を管理するときに通常実現することができるビットレートよりも高いビットレートをサポートするように適合されてもよい。I2Cプロトコルは、デファクトI2C規格に準拠してもよく、データフォーマットおよびI2Cバス制御およびタイミングに加えて、I2C信号の電気態様およびタイミング態様を規定する仕様を含んでもよい。
図3は、シリアルバス302に接続されたデバイス304、306、308、310、312、314、および316の構成を示し、この場合、3つの拡張デバイス304、314、および316は、シリアルバス302を介してより高いデータ転送速度を取得するように適合または構成される。拡張デバイス304、314、および316は、従来技術に従って構成されるI2Cデバイス306、308、310、および312と共存してもよい。拡張デバイス304、314、および316は、代替または追加として、所望または必要に応じて従来のI2Cプロトコルを使用して通信してもよい。
シリアルバス302は、拡張マスタデバイス304が、シリアルバス302を制御するバスマスタとして動作するときに、より高いデータ転送速度で動作する場合がある。図示の例では、単一のマスタデバイス304が、I2Cモード、およびシリアルバス302が従来のI2Cプロトコルに従って動作するときに実現されるデータ転送速度を超えるデータ転送速度をサポートする拡張モードにおいてバスマスタとして働いてもよい。よりデータレートの高いトラフィックに使用されるシグナリングは、シリアルバス302に結合されるレガシーI2Cデバイス306、308、310、および312の機能を損なわずにシリアルバス302を介してよりデータレートの高いトラフィックが伝達されることができるようにI2Cプロトコルのいくつかの特徴を利用してもよい。
図4は、従来のI2Cバス上のSDA線402とSCL線404との間の関係を示すタイミング図400および420を含む。第1のタイミング図400は、従来技術に従って構成されるI2Cバス上でデータが転送される間のSDA線402とSCL線404との間のタイミング関係を示す。SCL線404は、SDA線402内のデータをサンプリングするのに使用できる一連のパルスを生成する。パルス(たとえば、パルス412を含む)は、SCL線404がレシーバにおいてハイ論理状態であると判定される時間として定義されてもよい。SCL線404がデータ送信の間論理ハイ状態にあるとき、SDA線402上のデータは安定し有効である必要があり、その結果、SCL線404がハイ論理状態にあるとき、SDA線402の状態は変化することが許容されない。
(「I2C仕様」と呼ばれることもある)従来のI2Cプロトコル実装形態に関する仕様では、SCL線404上のパルス412のハイ期間の最小持続時間410(tHIGH)を規定している。I2C仕様では、パルス412が発生する前のセットアップ時間406(tSU)およびパルス412が終了した後のホールド時間408(tHold)に関する最小持続時間も規定している。SDA線402のシグナリング状態は、セットアップ時間406およびホールド時間408の間安定すると考えられる。セットアップ時間406は、SCL線404上のパルス412の立上りエッジの到来まで、SDA線402上のシグナリング状態間の遷移416の後の最大期間を定める。ホールド時間408は、SDA線402上のシグナリング状態の間の次の遷移418まで、SCL線404上のパルス412の立下りエッジの後の最小期間を定める。I2C仕様では、SCL線404用のロー期間(tLOW)に関する最小持続時間414も規定している。SDA線402上のデータは、通常、SCL線404がパルス412の立上りエッジの後、ハイ論理状態にあるときの持続時間410(tHIGH)の間安定し、ならびに/あるいは取り込まれることができる。
図4の第2のタイミング図420は、従来のI2Cバス上のデータ送信の間のSDA線402およびSCL線404上のシグナリング状態を示す。I2Cプロトコルは、8ビットデータ(バイト)および7ビットアドレスの送信を可能にする。レシーバが、SDA線402を1クロック期間の間ロー論理状態にドライブすることによって送信に肯定応答してもよい。ローシグナリング状態は、受信が成功したことを示す肯定応答(ACK)を表し、ハイシグナリング状態は、受信が失敗したかまたは受信においてエラーが生じたことを示す否定応答(NACK)を表す。
開始条件422は、そのデータを送信すべきであることを現在のバスマスタがシグナリングするのを可能にすることと定義される。開始条件422は、SCL線404がハイである間にSDA線402がハイからローに遷移するときに生じる。I2Cバスマスタは、最初に、スタートビットと呼ばれる場合もある開始条件422を送信し、その後に、I2Cバスマスタがデータを交換したいI2Cスレーブデバイスの7ビットアドレスを送信する。このアドレスの後に、読取り動作または書込み動作のいずれを行うべきかを示す単一ビットが続く。アドレス指定されたI2Cスレーブデバイスは、利用可能な場合、ACKビットで応答する。どのI2Cスレーブデバイスも応答しない場合、I2Cバスマスタは、SDA線402のハイ論理状態をNACKと解釈してもよい。マスタデバイスとスレーブデバイスは次いで、情報のバイトをフレーム単位で交換してもよく、フレームにおいては、最上位ビット(MSB)が最初に送信されるようにバイトがシリアル化される。バイトの送信は、停止条件424がI2Cマスタデバイスによって送信されたときに完了する。停止条件424は、SCL線404がハイである間にSDA線402がローからハイに遷移したときに生じる。I2C仕様では、SDA線402のすべての遷移が、SCL線404がローであるとき発生する必要があり、例外が開始条件422または停止条件424として扱われてもよい。
図5は、I2Cバス上のデータ送信に関連するタイミングを示す図500および520を示す。第1の図500に示すように、アイドル期間514は、停止条件508と連続する開始条件510との間に生じる場合がある。このアイドル期間514は、延長されることがあり、それによって、従来のI2Cバスが停止条件508と連続する開始条件510との間にアイドル状態のままであるときにデータスループットが低下する場合がある。動作時には、I2Cバスマスタが第1の開始条件506を送信したときにビジー期間512が開始し、I2Cバスマスタはそれに続いてデータを送信する。ビジー期間512は、I2Cバスマスタが停止条件508を送信したときに終了し、アイドル期間514が後に続く。アイドル期間514は、第2の開始条件510が送信されるときに終了する。
第2のタイミング図520は、アイドル期間514の発生回数を減らす場合がある方法を示す。図示の例では、第1のビジー期間532が終了する前にデータを送信に利用することができる。I2Cバスマスタデバイスは、停止条件ではなく反復される開始条件528(Sr)を送信してもよい。反復される開始条件528は、先行するデータ送信を終了させ、同時に次のデータ送信の開始を示す。反復される開始条件528に対応するSDA線522上の状態遷移は、アイドル期間530後に生じる開始条件526に関するSDA線522上の状態遷移と同一である。開始条件526と反復される開始条件528の両方について、SCL線524がハイである間にSDA線522はハイからローに遷移する。データ送信間に反復される開始条件528を使用すると、第1のビジー期間532の直後に第2のビジー期間534が生じる。
図6は、I2Cプロトコルに従ってスレーブデバイスに送られるコマンドワードに関するタイミングを示す図600である。この例では、マスタデバイスが開始条件606によってトランザクションを開始し、それによって、SCL線がハイのままである間にSDA線602がハイからローにドライブされる。マスタデバイスは次いで、SCL線604上でクロック信号を送信する。次いで、スレーブデバイスの7ビットアドレス610がSDA線602上で送信される。7ビットアドレス610の次に、ローのときに「書込み」を示し、ハイのときに「読取り」を示す書込み/読取りコマンドビット612が送信される。スレーブデバイスは、次のクロック間隔614においてSDA線602をローにドライブすることにより、肯定応答(ACK)によって応答してもよい。スレーブデバイスが応答しない場合、SDA線602はハイにプルされ、マスタデバイスは、応答がないことをNACKとみなす。マスタデバイスは、SCL線604がハイである間にSDA線602をローからハイにドライブすることにより、停止条件608によってトランザクションを終了してもよい。このトランザクションは、I2Cバスに結合される送信されたアドレスを有するスレーブデバイスがアクティブ状態であるかどうかを判定するのに使用することができる。
引き続き図3を参照する。いくつかの態様は、I2Cプロトコルによってサポートされるデータレートよりも高いデータレートを拡張デバイス304、314、316間に実現する実装形態に関する。たとえば、シリアルバス302に結合される拡張デバイス304、314、316間の通信に関するデータレートの向上は、シリアルバス302上のクロックレートを高めることによって実現されてもよい。レガシーI2Cデバイス306、308、310、312は、より高いクロック周波数に対処できない場合があり、ならびに/あるいは拡張デバイス304、314、316間で送信されるシグナリングを誤解することがある。いくつかの態様によれば、拡張デバイス304、314、316間の通信に関するデータレートの向上は、クロック信号上でより短いパルス幅を使用することによって実現されてもよい。より短いパルス幅を有するパルスは、レガシーI2Cデバイス306、308、310、312のレシーバにスパイクフィルタが存在することに起因してレガシーI2Cデバイス306、308、310、312によって無視される場合がある。
図7は、レガシーI2Cデバイス306、308、310、312によってフィルタ処理されることがあるパルスのタイミングを示すタイミング図700である。SCL線704は、I2Cプロトコルに適合または準拠する1つまたは複数のパルス706を伝達する場合がある。すなわち、パルス706は、I2Cプロトコルによってパルスに関して指定された最小持続時間を超える持続時間のハイ期間708を有する。パルスに先行するロー期間718およびパルスに続くロー期間720は、I2Cプロトコルによって指定された最小ロー持続時間を超える持続時間を有する。タイミング図700では、レガシーI2Cデバイス306、308、310、312のレシーバに設けられたスパイクフィルタによって、短い正の過渡パルス710および712がフィルタ処理される場合がある。スパイクフィルタは、短い負の過渡パルス714をフィルタ処理する場合もある。
I2C仕様では、特定の動作モードにおいて従来のI2Cレシーバの入力フィルタによって抑制しなければならないスパイクのパルス幅(tSP)を規定している。一例では、tSP=50nsであり、50ns未満の持続時間を有するパルスは、I2C対応スパイクフィルタによって阻止されると考えられる。この例を図7に適用すると、50nsよりも短いパルス710、712、714はいずれも、従来のI2Cレシーバによってフィルタ処理され無視されると考えられる。拡張デバイス304、314、316は、SDA線702および/またはSCL線704上でtSPパルス幅よりも短い持続時間(tSEC)を有するパルスを送信することによって通信する場合があり、この場合、tSPは、I2C仕様によって指定されている。
図4も参照するとわかるように、SDA線402およびSCL線404のハイ論理状態およびロー論理状態の持続時間410、414の最小持続時間が特定の動作モードに関するI2C仕様において規定されている。Fm動作の例では、各論理ハイ期間の持続時間410は、0.6μsよりも長くなければならず、各論理ロー期間(tLOW)の持続時間414は1.3μsよりも長くなければならず、最大値は指定されていない。
図8は、レガシーI2Cデバイス306、308、310、312におけるスパイクフィルタ812の動作に関連するいくつかの態様を示す。第1の図800は、スパイクフィルタ812に供給された入力信号802、および得られた出力信号804の例を示す。入力信号802は、tSPパルス幅よりも短い持続時間616を有する短いパルス806を含む。スパイクフィルタ812は、短いパルス806が出力信号804内に出現するのを防止する働きをする。場合によっては、スパイクフィルタ812は、抵抗器−キャパシタ回路(RC回路)として実装され、出力信号804は、短いパルス806の残差成分808を含む場合がある。残差成分808は、検出しきい値電圧810よりも低い電圧レベルに達する場合があり、したがって、レガシーI2Cデバイス306、308、310、312のレシーバによって検出されない。残差成分808は、出力信号804の電圧が上昇する期間と、それに続く、出力信号804の電圧が低下または減衰して0Vに戻る期間とを含む場合がある。最大電圧と遅延時間が同時に生じると、レガシーI2Cデバイス306、308、310、312では問題となることがある。
タイミング図820によって示される例では、出力信号824上の残差信号828は、第1の短いパルス834の立上りエッジに対応する時間826において開始する立上り電圧と、第1の短いパルス834の立下がりエッジに対応する時間830におけるピーク電圧レベルと、0Vへの漸進的な減衰とを特徴とする場合がある。タイミング図820に示すように、出力信号824の電圧は、第2の短いパルス836の立上りエッジが到達する時間832よりも前に0Vに達しないことがある。
タイミング図840は、短いパルスの間隔が狭いときの前の短いパルスからの残留電圧の累積効果を示す。この例では、一連のパルス842が、出力信号824が連続するパルス間で0Vに戻らないような間隔をおいて発生する。出力信号824の電圧は、初期パルスの後のパルスごとに、0Vよりも高い電圧から上昇していき、数パルス後に、時間844において検出しきい値電圧810を超える最大電圧に到達する場合がある。このような状況では、レガシーI2Cデバイス306、308、310、312は、遷移が生じ、確認できない結果が生じたと判定する場合がある。
本明細書で開示するいくつかの態様によれば、拡張能力を有するI2Cマスタデバイス304が、レガシーI2Cデバイス306、308、310、312のスパイクフィルタをテストして、スパイクフィルタが拡張デバイス304、314、316間の通信に使用される信号速度に対処できることを確認するように構成されてもよい。一例では、マスタデバイス304は、バスのSCL線上で短いパルスが送信されている間にI2Cプロトコルに従ってコマンドを送信してもよい。短いパルスは、不十分な性能を有するスパイクフィルタ812が、レガシーI2Cデバイス306、308、310、312によって遷移が検出されるのを妨げることがないように最小間隔によって送信されてもよい。
図9は、シリアルバス302を通してマスタデバイス304に結合される1つまたは複数のレガシーI2Cデバイス306、308、310、312におけるスパイクフィルタの能力、有効性、および/または効果を判定するためにマスタデバイス304によって送られるテスト送信の第1の例を示すタイミング図900である。この例では、図6に示すコマンドワードがマスタデバイス304によって送信され、コマンドワードの一部がタイミング図900に示されている。マスタデバイス304によって開始条件906が送信された後、SDA線902上でアドレスビット926、928、930が送信され、SCL線904がロー論理状態である1つまたは複数の時点に一連の短いパルス908a、908b、908cが送信されてもよい。たとえば、分解図918に示すように、短いパルスの各々は、40nsの持続時間を有してもよく、80nsのクロック期間920を生成する40nsのロー期間によって分離されてもよい。
SCL線904は、一連の短いパルス908a、908b、908cが送信される前に整定することが可能であってもよい。たとえば、ハイ論理状態からのI2C遷移922の後、SCL線904は、一連の短いパルス908cが送信される前に第1の期間914の間ロー論理状態のままであってもよい。第1の期間914の持続時間は、I2C仕様によって判定されてもよく、たとえば、200nsと定められてもよい。一連の短いパルス908cは、ロー論理状態からハイ論理状態への次のI2C遷移924の前に終了してもよい。SCL線904は、次のI2C遷移924が生じる前に第2の期間916の間ロー論理状態のままである。第2の期間916の持続時間は、I2C仕様によって判定されてもよく、一例では、200nsと定められてもよい。
SCL線904に結合される機能しているスパイクフィルタは、各々の一連の短いパルス908a、908b、908cを抑制し、スパイクフィルタの出力は、I2C遷移(たとえば、遷移922、924)のみを含む。図9に示す例では、SCL線904に結合される有効なスパイクフィルタの出力は概ね、期間が10μsの矩形波である。
図10は、シリアルバス302を通してマスタデバイス304に結合される1つまたは複数のレガシーI2Cデバイス306、308、310、312におけるスパイクフィルタの能力、有効性、および/または効果を判定するためにマスタデバイス304によって送られるテスト送信の第2の例を示すタイミング図1000である。この例では、図6に示すコマンドワードがマスタデバイス304によって送信され、コマンドワードの一部がタイミング図1000に示されている。マスタデバイス304によって開始条件1006が送信された後、SDA線1002上でアドレスビット1028、1030、1032が送信され、SCL線1004がハイ論理状態である1つまたは複数の時点に一連の短いパルス1008a、1008b、1008cが送信されてもよい。たとえば、分解図1020に示すように、短いパルスの各々は、40nsの持続時間を有してもよく、80nsのクロック期間1026を生成する40nsのロー期間によって分離されてもよい。
SCL線1004は、一連の短いパルス1008a、1008b、1008cが送信される前に整定することが可能であってもよい。たとえば、ロー論理状態からのI2C遷移1022の後、SCL線1004は、一連の短いパルス1008bが送信される前に第1の期間1016の間ハイ論理状態のままであってもよい。第1の期間1016の持続時間は、I2C仕様によって判定されてもよく、たとえば、200nsと定められてもよい。一連の短いパルス1008bは、ハイ論理状態からロー論理状態への次のI2C遷移1024の前に終了してもよい。SCL線1004は、次のI2C遷移1024が生じる前に第2の期間1018の間ハイ論理状態のままである。第2の期間1018の持続時間は、I2C仕様によって判定されてもよく、一例では、200nsと定められてもよい。
SCL線1004に結合される機能しているスパイクフィルタは、各々の一連の短いパルス1008a、1008b、1008cを抑制し、スパイクフィルタの出力は、I2C遷移(たとえば、遷移1022、1024)のみを含む。図10に示す例では、SCL線1004に結合される有効なスパイクフィルタの出力は概ね、期間が10μsの矩形波である。
シグナリングの他の構成は、レガシーI2Cデバイス306、308、310、312におけるスパイクフィルタの有効性をテストするためのテスト送信として使用することができる。テスト送信は一般に、I2Cプロトコルに従って送信されるコマンドワードまたはデータワード上に摂動を取り入れる。このような摂動は、50ns未満の持続時間を有するパルスおよび/またはスパイクを含んでもよい。いくつかの例では、テスト送信は、シリアルバスを介して送信される信号のハイ状態とロー状態の両方に影響を与える摂動を含んでもよい。たとえば、I2CコマンドワードまたはI2Cデータワードが、図9に示す一連の短いパルス908a、908b、908cのうちの1つまたは複数および図10に示す一連の短いパルス1008a、1008b、1008cのうちの1つまたは複数とマージされてもよい。
一連の短いパルス908a、908b、908c、1008a、1008b、1008cとして生成されたパルスなどの摂動パルスは、任意の所望のデューティサイクルを有するように適合されてもよい。いくつかのスパイクフィルタは、デューティサイクルが、スパイクフィルタがパルス間で十分に回復できない点に修正されたときに機能しなくなる場合がある。デューティサイクルを変更すると、共有バスの拡張動作に関する最大クロッキングレートを判定するのに使用される場合がある追加の情報が得られることがある。一連の短いパルス908a、908b、908c、1008a、1008b、1008c内の摂動パルスの位置は、スパイクフィルタの動作に関する追加の情報を提示するように適合または変更されてもよい。たとえば、摂動パルスの位置を変更すると、共有バスの拡張動作に関する最大クロッキングレートを判定するのに使用される場合がある追加の情報が得られることがある。
スパイクフィルタテストの間、SDA線902、1002上でメッセージが送信される。このメッセージは、I2C準拠または適合スレーブデバイスが応答することを要求する任意の利用可能なコマンドワードまたはその他のメッセージから選択されてもよい。SCL線904、1004上で摂動パルスが送信されるときのスレーブデバイスにおけるスパイクフィルタの効果は、スレーブデバイスがメッセージに正しく応答するかどうかに基づいて判定されてもよい。
コマンドワードまたはデータワードがレガシーI2Cデバイス306、308、310、312によってI2Cプロトコルに従って認識されたときにレガシーI2Cデバイス306、308、310、312に応答させるために、テスト送信にI2Cコマンドが含められてもよい。応答には、たとえば、送信に肯定応答すること、ならびに/あるいはレジスタを読み取るかまたはレジスタに書き込むことを含んでもよい。レガシーI2Cデバイス306、308、310、312がそのようなコマンドまたはメッセージに応答する必要があるときにテスト送信のための基礎として任意のコマンドまたはメッセージが使用されてもよい。そのようなコマンドまたはメッセージ、あるいはその一部を本明細書では「コマンドワード」と呼ぶ場合がある。
図9および図10は、スレーブアドレス呼出しのコマンドワードとしての使用法を示す(図6も参照されたい)。I2C仕様によれば、レガシーI2Cデバイス306、308、310、312は、スレーブアドレス呼出しに応答する必要がある。しかし、レガシーI2Cデバイス306、308、310、312が応答する必要がある送信の任意の組合せがテスト送信の基礎として使用されてもよい。たとえば、摂動が、スレーブアドレスの後に続くコマンドとマージされてもよく、ならびに/あるいはレガシーI2Cデバイス306、308、310、312内の特定のレジスタに書き込むためのコマンドの後に続くデータワードにマージされてもよい。スパイクフィルタの有効性または効果をテストするために他のトランザクションが使用されてもよい。
一例では、マスタデバイス304は、レガシーI2Cデバイス306、308、310、312の内部レジスタに書き込むべきバイトを送信してもよい。マスタデバイス304は、このバイトを同じトランザクションにおいて内部レジスタからリードバックしてもよい。マスタデバイス304は、修正されたシグナリングを使用して同じ内部レジスタに対して異なるバイトの書込みおよび読取りを行うトランザクションを繰り返してもよい。修正されたシグナリングでは、摂動がシリアルバスの一方または両方の線上に挿入またはマージされる場合がある。リードバックによって誤ったバイトが返された場合、スパイクフィルタは、無効であり、ならびに/あるいはスパイクまたは短いパルスをフィルタ処理する所望の結果をもたらすことができないとみなされる場合がある。リードバックによって正しいバイトが返された場合、スパイクフィルタは有効であるとみなされてもよく、マスタデバイス304は、ターゲットレガシーI2Cデバイス306、308、310、312が拡張デバイス314、316と共存することができると判定してもよい。
場合によっては、後者の例は、マスタデバイス304がシグナリングに短いパルスをマージすることなしに内部レジスタにバイトを書き込むように修正されてもよい。マスタデバイス304は次いで、内部レジスタからバイトをリードバックするために短いパルスがマージされたシグナリングを送信してもよい。したがって、スパイクフィルタをテストするのに使用される場合があるI2Cトランザクションの多数の変形形態および組合せがあり、したがって、たとえば短いパルスの形態の摂動が、I2Cトランザクションにおける任意の点に挿入またはマージされてもよい。
図11は、レガシーI2Cデバイス306、308、310、312におけるスパイクフィルタをテストするためのプロセスを示すフローチャートである。マスタデバイスは、SCL線904、1004上で送信されるクロック信号上にパルスまたはその他の摂動を導入しつつ、様々なクロッキング条件の下で一連のコマンドをスレーブデバイスに送ることによって、スレーブデバイスにおけるスパイクフィルタの効果をテストしてもよい。各コマンドの前に、開始条件または反復される条件と、その後に続く7ビットアドレスおよび書込みコマンドビットが位置してもよい。スレーブデバイスにおけるスパイクフィルタは、書込みビットが送信された後でマスタデバイスがSDA線902、9004上でACKを検出した場合に、現在のクロッキング条件に関して有効であるとみなされてもよい。このプロセスは、たとえば図9および図10に示すシグナリングを使用してもよい。
ブロック1102において、マスタデバイス304は、バス上にレガシーI2Cデバイス306、308、310、312が存在するかどうかを判定してもよい。マスタデバイス304は、レガシースレーブデバイス306、308、310、312が存在するかどうかを、これらのスレーブデバイス306、308、310、312に適切なクロックレートでスレーブアドレスを送信することによって判定してもよい。たとえば、マスタデバイス304は最初、スレーブアドレスを1MHz(I2C Fm+)のクロックレートで送信してもよく、スレーブデバイス306、308、310、312から肯定応答を受信したかどうかを判定してもよい。肯定応答は、スレーブデバイス306、308、310、312が存在することを示す。肯定応答が受信されない場合、マスタデバイス304は、肯定応答が受信されるまで1つまたは複数のより低いクロックレートでスレーブアドレスを送信してもよい。これらのより低いクロックレートは、I2Cプロトコルによって指定されたクロックレートに相当してもよく、たとえば、400kHz(I2C Fm)クロックレートおよび100kHz(I2C Sm)クロックレートを含んでもよい。
一例では、マスタデバイス304は、スレーブデバイス306、308、310、312が動作することができる最高周波数によるスパイクフィルタテストを開始する。たとえば、最高周波数は1MHzであってもよい。別の例では、最高周波数は400kHzであってもよい。スレーブデバイス306、308、310、312がその指定された最大周波数で応答しなかった場合、マスタデバイス304は、SDA線902、1002上でNACKを検出し、スレーブデバイス306、308、310、312に問題があると判定する。図9および図10に関する例において説明したように100kHz周波数を使用すると、摂動が挿入またはマージされたハイシグナリング状態およびローシグナリング状態のより長い持続時間が実現される。場合によっては、マスタデバイス304は、100kHzよりも高い周波数で送信されるシグナリングと短いパルスをマージしてもよい。
ブロック1104において、肯定応答がブロック1102において受信されたかどうかが判定されてもよい。マスタデバイス304が、より低いクロックレートでの送信の後にSDA線902、1002上でNACKを検出した場合、マスタデバイス304は、エラーが生じたと判定してもよく、制御がエラー処理手順に関するブロック1114に渡されてもよい。そうでない場合、手順はブロック1106に進む。
ブロック1106において、マスタデバイス304は、一般にレガシースレーブデバイス306、308、310、312によってサポートされる場合がある100kHzクロックレートを選択してもよい。マスタデバイス304は次いで、図9に示すように、SCL線904のロー論理状態に短いパルスが挿入された状態で、選択されたクロックレートでスレーブアドレスを送信してもよい。スレーブデバイス306、308、310、312のスパイクフィルタは、短いパルスを抑制することが期待される。レガシースレーブデバイス306、308、310、312は、短いパルスが抑制されたときにスレーブアドレスを認識し、何らかの肯定応答をマスタデバイス304に送信する。レガシースレーブデバイス306、308、310、312におけるスパイクフィルタが短いパルスを抑制することができない場合、レガシースレーブデバイス306、308、310、312は、SCL線904上でさらなる遷移を検出することがあり、ならびに/あるいはSCL線904がハイ状態のままになることがある。いずれの場合も、レガシースレーブデバイス306、308、310、312は、アドレスに対して誤った復号を実行し、コマンドに対して肯定応答を提示しない。
ブロック1108において、マスタデバイス304は、レガシースレーブデバイス306、308、310、312から肯定応答が受信されたかどうかを判定する。肯定応答が受信されなかった場合、マスタデバイス304は、SDA線902、1002上でNACKを検出し、エラーが生じたと判定し、制御がエラー処理手順に関するブロック1114に渡されることがある。そうでない場合、手順はブロック1110に進む。
ブロック1110において、マスタデバイス304は、一般にレガシースレーブデバイス306、308、310、312によってサポートされる場合がある100kHzクロックレートを選択してもよい。マスタデバイス304は次いで、図10に示すように、SCL線1004のハイ論理状態に短いパルスが挿入された状態で、選択されたクロックレートでスレーブアドレスを送信してもよい。スレーブデバイス306、308、310、312のスパイクフィルタは、短いパルスを抑制することが期待される。レガシースレーブデバイス306、308、310、312は、短いパルスが抑制されたときにスレーブアドレスを認識し、何らかの肯定応答をマスタデバイス304に送信する。レガシースレーブデバイス306、308、310、312におけるスパイクフィルタが短いパルスを抑制することができない場合、レガシースレーブデバイス306、308、310、312は、SCL線1004上でさらなる遷移を検出することがあり、ならびに/あるいはSCL線1004がハイ状態のままになることがある。いずれの場合も、レガシースレーブデバイス306、308、310、312は、アドレスに対して誤った復号を実行し、コマンドに対して肯定応答を提示しない。
ブロック1112において、マスタデバイス304は、レガシースレーブデバイス306、308、310、312から肯定応答が受信されたかどうかを判定する。肯定応答が受信されなかった場合、マスタデバイス304は、SDA線902、1002上でNACKを検出し、エラーが生じたと判定し、制御がエラー処理手順に関するブロック1114に渡されることがある。そうでない場合、レガシースレーブデバイス306、308、310、312が適切に設計された50nsスパイク抑制フィルタを有することがより強く確信されると結論付けられてもよい。
場合によっては、マスタデバイス304は、テストを目的として1つまたは複数の遅延を設定してもよい。これらの遅延は、SCL線904、1004上の一連の短いパルス908a、908b、908c、1008a、1008b、1008cの開始または終了と遷移922、924、1022、1024との間の期間914、916、1016、1018の持続時間を制御するように実施されてもよい。たとえば、マスタデバイス304は、100kHzの速度で動作するときに200nsの期間914、916、1016、1018を実現する場合がある。期間914、916、1016、1018の持続時間は、SCL線904、1004上で送信されるクロックの周波数に従って設定されるか、またはその他の理由で設定されてもよい。
シグナリングの他のテスト手順および組合せを使用してレガシースレーブデバイス306、308、310、312におけるスパイク抑制フィルタをテストしてもよい。たとえば、SCL線904、1004上でロー論理状態とハイ論理状態の両方に短いパルスが付加されてもよい。別の例では、短いパルスの間隔および持続時間が、あらかじめ定義されたパターンに従って変更されならびに/あるいは実現されてもよい。
図12は、本明細書で開示する1つまたは複数の機能を実行するように構成されてもよい処理回路1202を利用する装置1200のためのハードウェア実装形態の簡略化された例を示す概念図である。本開示の様々な態様によれば、本明細書で開示された要素、または要素の任意の部分、または要素の任意の組合せは、処理回路1202を使用して実装されてもよい。処理回路1202は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ1204を含む場合がある。プロセッサ1204の例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって記載された様々な機能を実行するように構成される他の適切なハードウェアが含まれる。1つまたは複数のプロセッサ1204は、特定の機能を実行し、ソフトウェアモジュール1216のうちの1つによって構成されるか、増強されるか、または制御される場合がある専用プロセッサを含んでもよい。1つまたは複数のプロセッサ1204は、初期化中にロードされたソフトウェアモジュール1216の組合せを介して構成され、動作中に1つまたは複数のソフトウェアモジュール1216のローディングまたはアンローディングによってさらに構成される場合がある。
図示の例では、処理回路1202は、バス1210によって概略的に表されるバスアーキテクチャを用いて実装される場合がある。バス1210は、処理回路1202の具体的な用途および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含んでもよい。バス1210は、1つまたは複数のプロセッサ1204およびストレージ1206を含む様々な回路を互いにリンクさせる。ストレージ1206は、メモリデバイスおよび大容量ストレージデバイスを含む場合があり、本明細書ではコンピュータ可読媒体および/またはプロセッサ可読媒体と呼ばれる場合がある。バス1210は、タイミングソース、タイマ、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせてもよい。バスインターフェース1208は、バス1210と1つまたは複数のトランシーバ1212との間のインターフェースを構成してもよい。トランシーバ1212は、処理回路によってサポートされるネットワーキング技法ごとに設けられる場合がある。場合によっては、複数のネットワーキング技法は、トランシーバ1212内に見られる回路または処理モジュールの一部または全部を共有してもよい。各トランシーバ1212は、送信媒体を介して様々な他の装置と通信するための手段を構成する。装置の性質に応じて、ユーザインターフェース1218(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)が設けられる場合もあり、直接またはバスインターフェース1208を介して、バス1210に通信可能に結合される場合がある。
プロセッサ1204は、バス1210の管理、およびストレージ1206を含む場合があるコンピュータ可読媒体に記憶されたソフトウェアの実行を含む場合がある全体的な処理に関与してもよい。この点において、プロセッサ1204を含む処理回路1202は、本明細書において開示された方法、機能、および技法のいずれを実施するのにも使用される場合がある。ストレージ1206は、ソフトウェアを実行するとき、プロセッサ1204によって操作されるデータを記憶するために使用される場合があり、ソフトウェアは、本明細書において開示された方法のうちの任意の1つを実施するように構成される場合がある。
処理回路1202内の1つまたは複数のプロセッサ1204はソフトウェアを実行してもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数、アルゴリズムなどを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読形態で、ストレージ1206または外部コンピュータ可読媒体に存在する場合がある。外部コンピュータ可読媒体および/またはストレージ1206は、非一時的コンピュータ可読媒体を含む場合がある。非一時的コンピュータ可読媒体は、例として、磁気ストレージデバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ならびに、コンピュータによってアクセスされ読み取られる場合があるソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。コンピュータ可読媒体および/またはストレージ1206には、例として、搬送波、伝送路、および、コンピュータによってアクセスされ読み取られる場合があるソフトウェアおよび/または命令を送信するための任意の他の適切な媒体を含めてもよい。コンピュータ可読媒体および/またはストレージ1206は、処理回路1202内またはプロセッサ1204内に存在する場合も、処理回路1202の外部に存在する場合も、あるいは処理回路1202を含む複数のエンティティにわたって分散される場合もある。コンピュータ可読媒体および/またはストレージ1206は、コンピュータプログラム製品に組み込まれる場合がある。例として、コンピュータプログラム製品は、パッケージング材料にコンピュータ可読媒体を含めてもよい。当業者には、特定の適用例およびシステム全体に課される全体的な設計制約に応じて、本開示を通して提示された前述の機能を実施するにはどのようにするのが最適であるかが認識されよう。
ストレージ1206は、本明細書ではソフトウェアモジュール1216と呼ばれる場合がある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどの中に維持されならびに/あるいは構成されるソフトウェアを維持してもよい。ソフトウェアモジュール1216の各々は、処理回路1202にインストールまたはロードされ、1つまたは複数のプロセッサ1204によって実行されると1つまたは複数のプロセッサ1204の動作を制御する、実行時イメージ1214に寄与する命令およびデータを含む場合がある。いくつかの命令は、実行されたときに、本明細書に記載されたいくつかの方法、アルゴリズム、およびプロセスに従って機能を実行することを、処理回路1202に行わせてもよい。
ソフトウェアモジュール1216のうちのいくつかは、処理回路1202の初期化中にロードされる場合があり、これらのソフトウェアモジュール1216は、本明細書において開示された様々な機能の実行を可能にするように、処理回路1202を構成してもよい。たとえば、いくつかのソフトウェアモジュール1216は、プロセッサ1204の内部デバイスおよび/またはロジック回路1222を構成してもよく、トランシーバ1212、バスインターフェース1208、ユーザインターフェース1218、タイマ、数学的コプロセッサなどの外部デバイスへのアクセスを管理してもよい。ソフトウェアモジュール1216は、割込みハンドラおよびデバイスドライバと対話し、処理回路1202によって提供される様々なリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含む場合がある。リソースには、メモリ、処理時間、トランシーバ1212へのアクセス、ユーザインターフェース1218などを含めてもよい。
処理回路1202の1つまたは複数のプロセッサ1204は多機能であってもよく、それにより、ソフトウェアモジュール1216のうちのいくつかは、ロードされ、異なる機能、または同じ機能の異なるインスタンスを実行するように構成される。1つまたは複数のプロセッサ1204は、さらに、たとえば、ユーザインターフェース1218、トランシーバ1212、およびデバイスドライバからの入力に応答して開始されるバックグラウンドタスクを管理するように適合される場合がある。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ1204は、マルチタスク環境を実現するように構成される場合があり、それにより、複数の機能の各々が、必要または所望に応じて、1つまたは複数のプロセッサ1204によってサービスされるタスクのセットとして実装される。一例では、マルチタスク環境は、異なるタスク間でプロセッサ1204の制御を渡す時分割プログラム1220を使用して実装される場合があり、それにより、各タスクは、任意の未処理動作の完了後、および/または割込みなどの入力に応答して、時分割プログラム1220に1つまたは複数のプロセッサ1204の制御を戻す。タスクが1つまたは複数のプロセッサ1204の制御を有するとき、処理回路は、事実上、制御するタスクに関連付けられた機能によって対処される目的に特化される。時分割プログラム1220は、オペレーティングシステム、ラウンドロビンベースで制御を伝達するメインループ、機能の優先順位に従って1つまたは複数のプロセッサ1204の制御を割り振る機能、および/または、1つまたは複数のプロセッサ1204の制御を処理機能に適用することによって外部イベントに応答する割込み駆動のメインループを含む場合がある。
図13は、シリアルバスに結合されるデバイスの能力を検出するための方法を示すフローチャート1300を示す。本方法の様々なステップが、シリアルバスに結合されるマスタデバイス304によって実行されてもよい。
ブロック1302において、マスタデバイス304は、I2Cプロトコルに従ってシリアルバス上で送信すべきコマンドを生成してもよい。このコマンドは、第1のスレーブデバイスに対応するアドレスを含んでもよい。
ブロック1304において、マスタデバイス304は、コマンドをパルスのシーケンスとマージしてテスト信号を取得してもよい。パルスのシーケンスにおける各パルスは、50ns未満の持続時間を有してもよい。一例では、パルスのシーケンスは、シリアルバス上で送信されるクロック信号がロー状態であるときに複数の間隔の各々にマージされてもよい。別の例では、パルスのシーケンスは、シリアルバス上で送信されるクロック信号がハイ状態であるときに複数の間隔の各々にマージされてもよい。別の例では、パルスのシーケンスは、シリアルバス上で送信されるクロック信号がロー状態であるときに複数の間隔の各々にマージされ、かつシリアルバス上で送信されるクロック信号がハイ状態であるときに複数の間隔の各々にマージされてもよい。様々な例では、パルスのシーケンスにおける各パルスは、40nsの持続時間を有するハイ状態を有してもよい。
ブロック1306において、マスタデバイス304が、シリアルバス上でテスト信号を送信してもよい。
ブロック1308において、マスタデバイス304は、第1のスレーブデバイスがコマンドに正しく応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定してもよい。スパイクフィルタは、50ns未満の持続時間を有するパルスを抑制することが期待される。第1のスレーブデバイスは、コマンドに肯定応答することによってコマンドに正しく応答してもよい。マスタデバイス304は、第1の値を第1のスレーブデバイスのレジスタに書き込ませ、第1のスレーブデバイス内のこのレジスタから第2の値を読み取り、第1の値が第2の値に等しいときにスパイクフィルタが有効であると判定することによって、スパイクフィルタの有効性を判定してもよい。
いくつかの例では、マスタデバイス304は、コマンドをパルスのシーケンスを埋め込まずに1つまたは複数のクロック周波数で送信することによって第1のスレーブデバイスが存在するかどうかを判定してもよい。第1のスレーブデバイスは、第1のスレーブデバイスがシリアルバス上に存在し、かつ1つまたは複数のクロック周波数のうちの少なくとも1つを使用して通信するように適合されているときに、コマンドに肯定応答するように構成されてもよい。たとえば、マスタデバイス304は、コマンドを400kHzで送信し、アドレス指定されたスレーブデバイスが正常に機能しているかどうかを判定してもよい。応答が受信されることも判定されることもなかった場合、マスタデバイス304は、アドレス指定されたスレーブデバイスが存在しないか、またはアドレス指定されたスレーブデバイスに問題があるか、または場合によっては、アドレス指定されたスレーブデバイスが誤動作しているとみなしてもよい。アドレス指定されたスレーブデバイスが正しく応答した場合、マスタデバイス304は、1つまたは複数のクロック周波数のうちの最低周波数に相当するクロック周波数で送信されるコマンドワードに短いパルスを埋め込むことによってスパイクフィルタをテストしてもよい。
いくつかの例では、パルスのシーケンスはシリアルバスのSCL線上で送信される。いくつかの例では、パルスのシーケンスは、シリアルバスのSDA線上で送信される。いくつかの例では、パルスの第1のシーケンスがシリアルバスのSCL線上で送信され、パルスの第2のシーケンスがシリアルバスのSDA線上で送信される。
図14は、処理回路1402を使用する装置1400のためのハードウェア実装形態の簡略化された例を示す図である。処理回路は、一般に、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、およびステートマシンのうちの1つまたは複数を含む場合があるプロセッサ1416を有する。処理回路1402は、バス1420によって概略的に表されたバスアーキテクチャを用いて実装されてもよい。バス1420は、処理回路1402の具体的な用途および全体的な設計制約に応じて、任意の数の相互接続するバスならびにブリッジを含んでもよい。バス1420は、プロセッサ1416、モジュールまたは回路1404、1406および1408、複数のコネクタまたは線を含むシリアルバス1414を介して通信するように構成可能なラインインターフェース回路1412、ならびにコンピュータ可読記憶媒体1418によって表される、1つまたは複数のプロセッサおよび/またはハードウェアモジュールを含む様々な回路をまとめてリンクさせる。バス1420は、タイミングソース、周辺機器、電圧調節器、および電力管理回路などの様々な他の回路をリンクさせることもできるが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明しない。
プロセッサ1416は、コンピュータ可読記憶媒体1418上に記憶されたソフトウェアの実行を含む全体的な処理に関与する。ソフトウェアは、プロセッサ1416によって実行されたときに、処理回路1402に任意の特定の装置に関して上記で説明した様々な機能を実行させる。コンピュータ可読記憶媒体1418はまた、シリアルバス1414を介して送信されたシンボルから復号されるデータを含む、ソフトウェアを実行するときにプロセッサ1416によって操作されるデータを記憶するために使用されてもよい。処理回路1402は、モジュール1404、1406および1408のうちの少なくとも1つをさらに含む。モジュール1404、1406および1408は、コンピュータ可読記憶媒体1418に存在する/記憶された、プロセッサ1416内で実行されるソフトウェアモジュール、プロセッサ1416に結合される1つもしくは複数のハードウェアモジュール、またはそれらの何らかの組合せであってもよい。モジュール1404、1406および1408は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含んでもよい。
一構成では、装置1400は、シリアルバス1414上で送信すべきコマンドを生成するように構成されるモジュールおよび/または回路1410と、テスト信号を取得するためにコマンドをパルスのシーケンスとマージするように構成されるモジュールおよび/または回路1406と、シリアルバス1414上でテスト信号を送信するように構成されるモジュールおよび/または回路1408と、第1のスレーブデバイスがテスト信号に肯定応答するかどうかに基づいて第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定するように構成されるモジュールおよび/または回路1404、1408、1410とを含む。
開示されたプロセスにおけるステップの特定の順序または階層は、例示的な手法の実例であることを理解されたい。設計上の選好に基づいて、プロセスにおけるステップの特定の順序または階層が並べ替えられてもよいことを理解されたい。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示した特定の順序または階層に限定されることを意味するものではない。
先の説明は、本明細書で説明した様々な態様を当業者が実施することを可能にするように与えられる。これらの態様に対する様々な修正が当業者には容易に明らかとなり、本明細書で定義される一般原理は、他の態様に適用されてもよい。したがって、特許請求の範囲は、本明細書に示される態様に限定されるようには意図されず、言語クレームに合致する全範囲が与えられるべきであり、単数の要素への参照は、具体的に記載されていない限り、「ただ1つの」を意味するのではなく、「1つまたは複数」を意味するものとする。別段に記載されていない限り、「いくつか」という用語は1つまたは複数を指す。当業者に周知の、または後に知られることになる、本開示全体にわたって説明された様々な態様の要素に対するすべての構造的および機能的均等物が、参照により本明細書に明白に組み込まれ、特許請求の範囲によって包含されるものとする。さらに、本明細書で開示されるものは、そのような開示が特許請求の範囲内に明示的に記載されているかどうかの如何に関わらず、公共に献じられないものとする。いかなるクレーム要素も、要素が「ための手段」という句を使用して明確に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
100 装置
102 処理回路
106 トランシーバ
108 ASIC
110 処理デバイス
112 論理回路
114 記憶媒体
122 アンテナ
124 ディスプレイ
126 キーパッド
128 ボタン
200 装置
202 スレーブデバイス
204 センサ制御能力
206 構成レジスタ
208 クロック生成回路
210 トランシーバ
210a ラインドライバ/レシーバ
210b 共通回路
210c トランスミッタ
212 制御論理
220 デバイス
222a〜222n スレーブデバイス
230 シリアルバス
302 シリアルバス
304 拡張マスタデバイス
306 レガシーI2Cデバイス
308 レガシーI2Cデバイス
310 レガシーI2Cデバイス
312 レガシーI2Cデバイス
314 拡張デバイス
316 拡張デバイス
400 タイミング図
402 SDA線
404 SCL線
406 セットアップ時間
408 ホールド時間
410 持続時間
412 パルス
414 持続時間
416 遷移
418 次の遷移
420 タイミング図
422 開始条件
424 停止条件
500 タイミング図
506 第1の開始条件
508 停止条件
510 第2の開始条件
512 ビジー期間
514 アイドル期間
520 タイミング図
522 SDA線
524 SCL線
526 開始条件
528 反復される開始条件
530 アイドル期間
532 第1のビジー期間
534 第2のビジー期間
602 SDA線
604 SCL線
606 開始条件
608 停止条件
610 7ビットアドレス
612 書込み/読取りコマンドビット
614 次のクロック間隔
616 持続時間
702 SDA線
704 SCL線
706 パルス
708 ハイ期間
710 パルス
712 短い正の過渡パルス
714 短い負の過渡パルス
718 ロー期間
720 ロー期間
802 入力信号
804 出力信号
806 短いパルス
808 残差成分
810 検出しきい値電圧
812 スパイクフィルタ
824 出力信号
826 時間
828 残差成分
830 時間
832 時間
834 第1の短いパルス
836 第2の短いパルス
842 パルス
844 時間
902 SDA線
904 SCL線
906 開始条件
908a 短いパルス
908b 短いパルス
908c 短いパルス
914 第1の期間
916 第2の期間
920 クロック期間
922 I2C遷移
924 次のI2C遷移
926 アドレスビット
928 アドレスビット
930 アドレスビット
1002 SDA線
1004 SCL線
1006 開始条件
1008a 短いパルス
1008b 短いパルス
1008c 短いパルス
1016 第1の期間
1018 第2の期間時間
1022 I2C遷移
1024 次のI2C遷移
1026 クロック期間
1028 アドレスビット
1030 アドレスビット
1032 アドレスビット
1200 装置
1202 処理回路
1204 プロセッサ
1206 ストレージ
1208 バスインターフェース
1210 バス
1212 トランシーバ
1214 実行時イメージ
1216 ソフトウェアモジュール
1218 ユーザインターフェース
1220 時分割プログラム
1222 内部デバイスおよび/またはロジック回路
1400 装置
1402 処理回路
1404 モジュールおよび/または回路
1406 モジュールおよび/または回路
1408 モジュールおよび/または回路
1410 モジュールおよび/または回路
1412 ラインインターフェース回路
1414 シリアルバス
1416 プロセッサ
1418 コンピュータ可読記憶媒体
1420 バス

Claims (30)

  1. シリアルバスに結合されるデバイスの能力を検出するための方法であって、
    集積回路間(I2C)プロトコルに従って前記シリアルバス上で送信すべきコマンドを生成するステップであって、前記コマンドが第1のスレーブデバイスに対応するアドレスを含む、ステップと、
    テスト信号を取得するために前記コマンドをパルスのシーケンスとマージするステップであって、前記パルスのシーケンスにおける各パルスが、50ナノ秒未満の持続時間を有する、ステップと、
    前記前記シリアルバス上で前記テスト信号を送信するステップと、
    前記第1のスレーブデバイスが前記コマンドに正しく応答するかどうかに基づいて前記第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定するステップと
    を含み、
    前記スパイクフィルタは、50ナノ秒未満の持続時間を有するパルスを抑制することが期待される、方法。
  2. 前記コマンドに応答して前記第1のスレーブデバイスから肯定応答を受信するステップであって、前記肯定応答が、前記第1のスレーブデバイスにおける前記スパイクフィルタが有効に動作していることを示す、ステップをさらに含む、請求項1に記載の方法。
  3. 前記スパイクフィルタの前記有効性を判定するステップは、
    第1の値を前記第1のスレーブデバイスのレジスタに書き込ませるステップと、
    前記第1のスレーブデバイスにおける前記レジスタから第2の値を読み取るステップと、
    前記第1の値が前記第2の値に等しいときに前記スパイクフィルタが有効であると判定するステップと
    を含む、請求項1に記載の方法。
  4. 前記コマンドを前記パルスのシーケンスなしで1つまたは複数のクロック周波数で送信することによって前記第1のスレーブデバイスが存在するかどうかを判定するステップであって、前記第1のスレーブデバイスが、前記第1のスレーブデバイスが前記シリアルバス上に存在し、かつ前記1つまたは複数のクロック周波数のうちの少なくとも1つを使用して通信するように適合されているときに、前記コマンドに肯定応答するように構成される、ステップをさらに含む、請求項1に記載の方法。
  5. 前記テスト信号は、前記1つまたは複数のクロック周波数のうちの最低周波数に相当するクロック周波数で送信される、請求項4に記載の方法。
  6. 前記コマンドを前記パルスのシーケンスとマージするステップは、
    前記シリアルバス上で送信されるクロック信号がロー状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージするステップを含む、請求項1に記載の方法。
  7. 前記コマンドを前記パルスのシーケンスとマージするステップは、
    前記シリアルバス上で送信されるクロック信号がハイ状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージするステップを含む、請求項1に記載の方法。
  8. 各パルスは、前記各パルスがハイ状態である40ナノ秒の期間を含む、請求項1に記載の方法。
  9. 前記パルスのシーケンスは、前記シリアルバスのシリアルクロックライン(SCL)上で送信される、請求項1に記載の方法。
  10. 前記パルスのシーケンスは、前記シリアルバスのシリアルデータライン(SDA)上で送信される、請求項1に記載の方法。
  11. シリアルバスに結合される装置であって、
    集積回路間(I2C)プロトコルに従って前記シリアルバス上で送信すべきコマンドを生成するための手段であって、前記コマンドが第1のスレーブデバイスに対応するアドレスを含む、手段と、
    テスト信号を取得するために前記コマンドをパルスのシーケンスとマージするための手段であって、前記パルスのシーケンスにおける各パルスが、50ナノ秒未満の持続時間を有する、手段と、
    前記前記シリアルバス上で前記テスト信号を送信するための手段と、
    前記第1のスレーブデバイスが前記コマンドに正しく応答するかどうかに基づいて前記第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定するための手段と
    を備え、
    前記スパイクフィルタは、50ナノ秒未満の持続時間を有するパルスを抑制することが期待される、装置。
  12. 前記有効性を前記判定するための手段は、
    前記コマンドに応答して、前記第1のスレーブデバイスから肯定応答を受信することと、
    前記肯定応答を受信したことに基づいて、前記第1のスレーブデバイスにおける前記スパイクフィルタが有効に動作していると判定することと
    を行うように構成される、請求項11に記載の装置。
  13. 前記スパイクフィルタの前記有効性を前記判定するための手段は、
    第1の値を前記第1のスレーブデバイスのレジスタに書き込ませることと、
    前記第1のスレーブデバイスにおける前記レジスタから第2の値を読み取ることと、
    前記第1の値が前記第2の値に等しいときに前記スパイクフィルタが有効であると判定することと
    を行うように構成される、請求項11に記載の装置。
  14. 前記コマンドを前記パルスのシーケンスなしで1つまたは複数のクロック周波数で送信することによって前記第1のスレーブデバイスが存在するかどうかを判定するための手段であって、前記第1のスレーブデバイスが、前記第1のスレーブデバイスが前記シリアルバス上に存在するとき、および前記第1のスレーブデバイスが前記1つまたは複数のクロック周波数のうちの少なくとも1つを使用して通信するように適合されているときに、前記コマンドに肯定応答するように構成される、請求項11に記載の装置。
  15. 前記テスト信号は、前記1つまたは複数のクロック周波数のうちの最低周波数に相当するクロック周波数で送信される、請求項14に記載の装置。
  16. 前記コマンドを前記パルスのシーケンスと前記マージするための手段は、
    前記シリアルバス上で送信されるクロック信号がロー状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージするように構成される、請求項11に記載の装置。
  17. 前記コマンドを前記パルスのシーケンスと前記マージするための手段は、
    前記シリアルバス上で送信されるクロック信号がハイ状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージするように構成される、請求項11に記載の装置。
  18. 各パルスは、前記各パルスがハイ状態である40ナノの秒期間を含む、請求項11に記載の装置。
  19. 前記パルスのシーケンスは、前記シリアルバスのシリアルクロックライン(SCL)上で送信される、請求項11に記載の装置。
  20. 前記パルスのシーケンスは、前記シリアルバスのシリアルデータライン(SDA)上で送信される、請求項11に記載の装置。
  21. シリアルバスに結合されるデバイスの能力を検出するための装置であって、
    集積回路間(I2C)プロトコルに従って前記シリアルバス上で送信すべきコマンドを生成することであって、前記コマンドが第1のスレーブデバイスに対応するアドレスを含む、生成することと、
    テスト信号を取得するために前記コマンドをパルスのシーケンスとマージすることであって、前記パルスのシーケンスにおける各パルスが、50ナノ秒未満の持続時間を有する、マージすることと、
    前記前記シリアルバス上で前記テスト信号を送信することと、
    前記第1のスレーブデバイスが前記コマンドに正しく応答するかどうかに基づいて前記第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定することと
    を行うように構成される処理システムを備え、
    前記スパイクフィルタは、50ナノ秒未満の持続時間を有するパルスを抑制することが期待される、装置。
  22. 前記第1のスレーブデバイスは、前記コマンドに肯定応答することによって前記コマンドに正しく応答する、請求項21に記載の装置。
  23. 前記処理システムは、
    第1の値を前記第1のスレーブデバイスのレジスタに書き込ませることと、
    前記第1のスレーブデバイスにおける前記レジスタから第2の値を読み取ることと、
    前記第1の値が前記第2の値に等しいときに前記スパイクフィルタが有効であると判定することと
    を行うように構成される、請求項21に記載の装置。
  24. 前記処理システムは、
    前記シリアルバス上で送信されるクロック信号がロー状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージする
    ように構成される、請求項21に記載の装置。
  25. 前記処理システムは、
    前記シリアルバス上で送信されるクロック信号がハイ状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージする
    ように構成される、請求項21に記載の装置。
  26. プロセッサ可読記憶媒体であって、
    集積回路間(I2C)プロトコルに従ってシリアルバス上で送信すべきコマンドを生成するためのコードであって、前記コマンドが第1のスレーブデバイスに対応するアドレスを含む、コードと、
    テスト信号を取得するために前記コマンドをパルスのシーケンスとマージするためのコードであって、前記パルスのシーケンスにおける各パルスが、50ナノ秒未満の持続時間を有する、コードと、
    前記シリアルバス上で前記テスト信号を送信するためのコードと、
    前記第1のスレーブデバイスが前記コマンドに正しく応答するかどうかに基づいて前記第1のスレーブデバイスにおけるスパイクフィルタの有効性を判定するためのコードと
    を含み、
    前記スパイクフィルタは、50ナノ秒未満の持続時間を有するパルスを抑制することが期待される、プロセッサ可読記憶媒体。
  27. 前記第1のスレーブデバイスは、前記コマンドに肯定応答することによって前記コマンドに正しく応答する、請求項26に記載のプロセッサ可読記憶媒体。
  28. 第1の値を前記第1のスレーブデバイスのレジスタに書き込ませるためのコードと、
    前記第1のスレーブデバイスにおける前記レジスタから第2の値を読み取るためのコードと、
    前記第1の値が前記第2の値に等しいときに前記スパイクフィルタが有効であると判定するためのコードと
    をさらに含む、請求項26に記載のプロセッサ可読記憶媒体。
  29. 前記シリアルバス上で送信されるクロック信号がロー状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージするためのコードをさらに含む、請求項26に記載のプロセッサ可読記憶媒体。
  30. 前記シリアルバス上で送信されるクロック信号がハイ状態であるときに前記パルスのシーケンスを複数の間隔の各々にマージするためのコードをさらに含む、請求項26に記載のプロセッサ可読記憶媒体。
JP2017564614A 2015-06-15 2016-06-13 50ナノ秒スパイクフィルタ用のテスト Ceased JP2018517987A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562175723P 2015-06-15 2015-06-15
US62/175,723 2015-06-15
US15/179,470 2016-06-10
US15/179,470 US10108511B2 (en) 2015-06-15 2016-06-10 Test for 50 nanosecond spike filter
PCT/US2016/037282 WO2016205142A1 (en) 2015-06-15 2016-06-13 Test for 50 nanosecond spike filter

Publications (2)

Publication Number Publication Date
JP2018517987A true JP2018517987A (ja) 2018-07-05
JP2018517987A5 JP2018517987A5 (ja) 2019-06-20

Family

ID=57517150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017564614A Ceased JP2018517987A (ja) 2015-06-15 2016-06-13 50ナノ秒スパイクフィルタ用のテスト

Country Status (6)

Country Link
US (1) US10108511B2 (ja)
EP (1) EP3308284A1 (ja)
JP (1) JP2018517987A (ja)
KR (1) KR20180017035A (ja)
CN (1) CN107710183A (ja)
WO (1) WO2016205142A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710423B2 (en) * 2014-04-02 2017-07-18 Qualcomm Incorporated Methods to send extra information in-band on inter-integrated circuit (I2C) bus
US10938782B1 (en) * 2016-12-27 2021-03-02 Amazon Technologies, Inc. Secure hardware signal filtering
US10423551B2 (en) 2017-09-07 2019-09-24 Qualcomm Incorporated Ultra-short RFFE datagrams for latency sensitive radio frequency front-end
US10693674B2 (en) * 2018-01-29 2020-06-23 Qualcomm Incorporated In-datagram critical-signaling using pulse-count-modulation for I3C bus
CN110362524B (zh) * 2018-04-11 2021-04-09 杭州海康威视数字技术股份有限公司 时序信号生成方法、装置、逻辑电路板及存储介质
CN109101380B (zh) * 2018-07-27 2022-05-13 广东浪潮大数据研究有限公司 一种i2c信号质量的检测方法及设备
US11119966B2 (en) * 2018-09-07 2021-09-14 Qualcomm Incorporated Mixed-mode radio frequency front-end interface
WO2020117776A1 (en) 2018-12-03 2020-06-11 Hewlett-Packard Development Company, L.P. Logic circuitry package
BR112021010044A2 (pt) * 2018-12-03 2021-08-17 Hewlett-Packard Development Company, L.P. circuitos lógicos
CA3121110A1 (en) 2018-12-03 2020-06-11 Hewlett-Packard Development Company, L.P. Logic circuitry package
EP3695334A1 (en) 2018-12-03 2020-08-19 Hewlett Packard Enterprise Development Company LP Logic circuitry
ES2902154T3 (es) 2018-12-03 2022-03-25 Hewlett Packard Development Co Circuitos lógicos
US11338586B2 (en) 2018-12-03 2022-05-24 Hewlett-Packard Development Company, L.P. Logic circuitry
US10894423B2 (en) 2018-12-03 2021-01-19 Hewlett-Packard Development Company, L.P. Logic circuitry
JP7041324B2 (ja) 2018-12-03 2022-03-23 ヒューレット-パッカード デベロップメント カンパニー エル.ピー. 論理回路
CA3121418A1 (en) 2018-12-03 2020-06-11 Hewlett-Packard Development Company, L.P. Logic circuitry
CN113168443A (zh) 2018-12-03 2021-07-23 惠普发展公司,有限责任合伙企业 逻辑电路系统
CN114148092B (zh) 2018-12-03 2024-01-30 惠普发展公司,有限责任合伙企业 可更换打印装置部件
US10606794B1 (en) * 2019-05-14 2020-03-31 Infineon Technologies Ag Clock signal monitor for slave device on a master-slave bus
US11327912B2 (en) * 2019-09-12 2022-05-10 Qualcomm Incorporated Controlling the application time of radio frequency front end triggers based on execution of sequences
US11407229B2 (en) 2019-10-25 2022-08-09 Hewlett-Packard Development Company, L.P. Logic circuitry package
CN113312217A (zh) * 2020-02-26 2021-08-27 瑞昱半导体股份有限公司 内部集成电路总线的从属装置的测试方法
WO2023039070A2 (en) * 2021-09-08 2023-03-16 PassiveLogic, Inc. External activation of quiescent device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956372A (en) * 1994-03-17 1999-09-21 Digital Compression Technology, L.P. Coding system for digital transmission compression
US5469476A (en) * 1994-03-21 1995-11-21 Motorola, Inc. Circuit and method for filtering voltage spikes
US7313740B2 (en) * 2002-07-25 2007-12-25 Inapac Technology, Inc. Internally generating patterns for testing in an integrated circuit device
US7606955B1 (en) 2003-09-15 2009-10-20 National Semiconductor Corporation Single wire bus for connecting devices and methods of operating the same
US7394260B2 (en) * 2006-05-24 2008-07-01 Sun Microsystems, Inc. Tuning a test trace configured for capacitive coupling to signal traces
US8010724B2 (en) 2009-10-06 2011-08-30 Maxim Integrated Products, Inc. 12C/SMBus ladders and ladder enabled ICs
CN103840991A (zh) * 2012-11-27 2014-06-04 鸿富锦精密工业(深圳)有限公司 I2c总线架构及地址管理方法
US9748916B2 (en) * 2013-07-29 2017-08-29 Wispry, Inc. Adaptive filter response systems and methods

Also Published As

Publication number Publication date
CN107710183A (zh) 2018-02-16
US10108511B2 (en) 2018-10-23
US20160364305A1 (en) 2016-12-15
WO2016205142A1 (en) 2016-12-22
KR20180017035A (ko) 2018-02-20
EP3308284A1 (en) 2018-04-18

Similar Documents

Publication Publication Date Title
JP2018517987A (ja) 50ナノ秒スパイクフィルタ用のテスト
US11010327B2 (en) I3C point to point
US20170104607A1 (en) Methods to avoid i2c void message in i3c
US20180173665A1 (en) Hard reset over i3c bus
US10678723B2 (en) Urgent in-band interrupts on an I3C bus
US20180260357A1 (en) I2c clock stretch over i3c bus
WO2019139684A1 (en) Priority scheme for fast arbitration procedures
JP2019506656A (ja) 単一回線pmicホスト低レベル制御インターフェース
US20180173667A1 (en) Hard reset over i3c bus
US20200201804A1 (en) I3c device timing adjustment to accelerate in-band interrupts
US20190129464A1 (en) I3c clock generator
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
US20170371830A1 (en) Accelerated i3c master stop
US20210173808A1 (en) Early parity error detection on an i3c bus
US20190171611A1 (en) Protocol-framed clock line driving for device communication over master-originated clock line
US20180357121A1 (en) Error correction calculation upon serial bus abort
US11023408B2 (en) I3C single data rate write flow control
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
US10572439B1 (en) I3C read from long latency devices
EP4162367A1 (en) Providing acknowledgements for system power management interface
US11360916B2 (en) Group slave identifier time-multiplexed acknowledgment for system power management interface
US20180181533A1 (en) Ending write data transfer in i3c hdr-ddr mode
CN116419318A (zh) 处理器的通信方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200423

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200601

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20201026