JP2004534322A - 汎用i2cスレーブ送信器/受信器ステートマシン - Google Patents
汎用i2cスレーブ送信器/受信器ステートマシン Download PDFInfo
- Publication number
- JP2004534322A JP2004534322A JP2003511112A JP2003511112A JP2004534322A JP 2004534322 A JP2004534322 A JP 2004534322A JP 2003511112 A JP2003511112 A JP 2003511112A JP 2003511112 A JP2003511112 A JP 2003511112A JP 2004534322 A JP2004534322 A JP 2004534322A
- Authority
- JP
- Japan
- Prior art keywords
- state
- data
- bus
- state machine
- machine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Electrotherapy Devices (AREA)
- Alarm Systems (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
【0001】
本発明は、データ通信システムの分野、特にI2Cバスを介して通信を容易にするための方法及びデバイスに関する。
【背景技術】
【0002】
フィリップス(Philips)社によって開発されたインターインテグレイティッドサーキットバス(Inter Integrated Circuit(I2C) bus)により、集積回路は単純な双方向2線式(更にグランドも加わる)バスを介して互いに直接通信することが可能になる。デバイスは、バス上の二つの線の各々に接続される。一方(SDA)はデータの通信のためのものであり、他方(SCL)はデバイス間のデータの通信の同期及び制御のためのものである。各々のデバイスは他方のデバイスの各々に平行に接続され、バスラインSDA及びSCLの各々は、バス上の全ラインのワイヤードアンド(wired−AND)としての機能を果たす。各々のデバイスの出力部は、オープンコレクタ(open−collector)/オープンドレイン(open−drain)デバイスとして構成されており、バスが動作休止状態(quiescent state)にある間、一つ又はそれより多くのプルアップ抵抗はバス上で‘ソフト’論理ハイ値を保持する。デバイスがバスへのアクセスを要求するとき、デバイスは、グランド電位への導通状態に置かされるオープンコレクタ/オープンドレインを介してバスを論理ロー値に引き下げる。
【0003】
I2Cバスに接続されている各々のデバイスは、固有のアドレス(unique addres)によって特定されることが可能であり、送信器若しくは受信器の何れか、又はその両方として動作することが可能である。データ転送は、マスタスレーブプロトコル(master−slave protocol)を使用して行われる。マスタは、データ転送を初期化すると共に前記転送を可能にするクロック信号を生成するデバイスであり、アドレスされる何れのデバイスも当該転送のためのスレーブと認識される。データ転送は、スレーブにデータを送信(書き込み)するか、又はスレーブからデータを要求(読み出し)するマスタによって初期化され得る。特定のデバイスは、マスタ若しくはスレーブ又はその両方の何れかとして動作し得る。例えば、ディスプレイスクリーンのような出力デバイスは、通常データ転送を初期化することができず、それ故にスレーブデバイスとしてのみ動作するように構成されるであろう。他方マイクロプロセッサは通常、状況に応じてマスタ又はスレーブの何れかとして動作するように構成されるであろう。
【0004】
動作休止状態において、SDAとSCLとの両方のバスラインは論理ハイ状態(“ハイ”)にある。マスタは、SCLラインがハイになっている間、SDAライン上の論理ロー状態(“low”)への遷移を活性化させることによってデータ転送を初期化する。これは開始状態(START condition)と称される。その後、マスタはデータ転送の同期を制御するためにSCLラインを切り換える(toggle)。SCLクロックがローのとき、データ値の変化がSDAライン上でもたらされ、SCLクロックがハイのときにのみ、SDAラインの状態が有効と認識される。同じ転送セッション内で一連のデータ転送を行うために複数の開始コマンド(START)が活性化され得る。通常、各々のデータ転送は、データ転送の、アドレスされた受信器(recipient)からの通知(acknowledgement)を要求する。データ転送を終了させるためにホストは、SCLクロックがハイの間、SDAライン上のローからハイへの遷移を活性化させる。これは終了状態(STOP condition)と称される。その後上記のように、何れかのデバイスが、SDAライン上のハイからローへの遷移を活性化させることによって、マスタとしてバスの制御を行ってもよい。各々の参照に対して用語活性化はこの場合、特定された論理状態をもたらすために、又はもたらそうとするために使用されることは注意されるべきである。論理ハイ状態への遷移の例において、これは活性化デバイスによる強制プルダウン(forced pull−down)状態からのバスの開放(リリース(release))によって通常もたらされる。この論理ハイ状態の活性化によりバス上の前述のプルアップデバイスは、他のデバイスもプルダウン状態を強制するまで、バスを論理ハイ状態にさせることが可能になる。
【0005】
I2Cデータ転送の通常のフォーマットが図1に示されている。当該図において、I2Cバスを形成するSCLライン及びSDAライン上の信号が示されている。一つ又は複数の開始状態は、SCLラインがハイの間、SDAライン上の信号のハイからローへの遷移に対応して110において示されている。開始の後、ホストは、読み出し/書き込み否定インジケータ(read/write−not indicator)130によって後続される、名目上7ビットのアドレス120を送信する。アドレス120を送信し、データ転送(R/W−)130を方向付けた後、ホストはSDAラインを開放する。それによって、当該ラインは論理ハイレベルに上げられ得る。スレーブデバイスが自身のアドレスを認識する場合、スレーブデバイスは、バスをローに引くことによって通知信号(ACK)(acknowledge signal)140を送信する。ホストがSDAラインを開放するときにロー信号が存在しないことにより、非通知(NAK(non−acknowledgement))が示される。140におけるローを介してアドレス120が通知される場合、送信デバイスはデータ150を送信する。データ転送の方向がホストに対して“読み出し”となっている場合、スレーブデバイスが送信デバイスとなり、前記方向がホストに対して“書き込み”となっている場合、マスタデバイスが送信デバイスとなる。送信デバイスはSDAラインの制御を開放し、受信デバイスは、160においてSDAライン上の論理ロー値を活性化させることによってデータ150の受信を通知する。データが通知されると、送信器は更なるデータ170を送信する。180において示されているように、データの全部が通信されるまで、又は送信されたデータアイテム(data item)(データ要素)が非通知になるまで、このプロセスは継続される。マスタは、その後開始信号(図示略)を再活性化させると共に上記のプロセスを繰り返しことが可能であり、又は終了信号(P)190を活性化させて当該データ転送セッションを終了させることが可能である。
【0006】
上記のインタフェイスプロトコルは様々な態様で実現され得る。I2Cインタフェイスを設計又はプログラミングするための開発期間を最短化するために、様々な汎用インタフェイス方式が公開されてきた。ニューメキシコ大学の1999年のAmrita Deshpande氏の修士論文「インタインテグレイティッド回路又はI2Cバスマスタ・スレーブインタフェイスの(レジスタ転送レベル(RTLレベル(register transfer level))の)挙動モデルの設計(DESIGN OF A BEHAVORIAL(REGISTER TRANSFER LEVEL,RTL)MODEL OF THE INTER−INTEGRATED CIRCUIT OR I2C−BUS MASTER−SLAVE INTERFACE)」は、I2Cデバイスにおいて具現化されることを目的とすると共に本明細書に参照によって取り入れられているI2Cマスタインタフェイス及びスレーブインタフェイスを開示している。正しいことが確認されたI2Cインタフェイスをもたらすことによって、システム設計者はI2Cの規格及びプロトコルの詳細を扱う必要がない。当該論文のマスタとスレーブとの両方のインタフェイスはステートマシン(状態機械)(state machine)に基づいている。
【0007】
参照された論文のI2Cスレーブプロトコルに対応する状態図(state−diagram)200が図2に示されている。状態図200は、六つの状態A乃至Fを有しており、状態遷移は、マスタからのSCLクロック信号のアクティブエッジ(active edge)(0から1への遷移(0−to−1 transition))において行われている。すなわちI2C規格に従って、マスタは、SCLクロックラインを制御することによってバス上の動作の同期及びシーケンスを制御する。スレーブデバイスはマスタデバイスと同期して動作しなければならないので、SDAライン上の遷移は、SCLラインがローである間にのみ発生すると共に、SCLライン上のハイ状態の期間に、有効なデータがSDAライン上にもたらされる。
【0008】
リセット信号、通常パワーオンリセット(power−on reset)は、インタフェイスに状態A、すなわちアイドル状態をもたらす。開始状態が検出されると、インタフェイスは、当該インタフェイスが前述(図1)のアドレス120及びデータ方向(data−direction)130の情報をホストから受信する状態Bに入る。受信されたスレーブアドレスが、特定のインタフェイス200に関係するアドレスと一致しない場合、インタフェイスはアイドル状態Aに戻る。データ方向130の情報が読み出しの場合、インタフェイスは状態Cに入る。又は、データ方向130の情報が書き込みの場合、インタフェイスは状態Eに入る。インタフェイスが状態C又は状態Eに入る場合、当該インタフェイスは自身のアドレス及びデータ方向の受信を通知すると共に、要求された読み出し又は書き込み動作のためのインタフェイスを準備する。上記のように、読み出し及び書き込み方向はマスタデバイスに関係している。それ故にスレーブデバイスにおいて読み出しは、スレーブが、読み出しのためにマスタにデータを送信するための要求に対応し、書き込みは、スレーブがマスタから書き込まれるデータを受信するための要求に対応する。
【0009】
状態Cにおいて、マスタに送信されるべきデータがロードされ、インタフェイスは状態Dへ移行する。状態Dにおいてインタフェイスはロードされたデータをマスタに送信する。マスタがデータの受信を通知する場合、インタフェイスは状態Cに再び入る。又はインタフェイスは状態Aに再び入り、他の開始状態を待つ。通常マスタは、最後に所望されたデータアイテムが受信されると、非通知信号(NAK)をスレーブに通信することによって受信されるデータ量を制御する。それによって、スレーブはアイドル状態Aに戻される。
【0010】
状態Eにおいて、受信データが記憶されるべき位置(location)は消去され、インタフェイスは状態Fに移行する。状態Fにおいてインタフェイスはマスタからデータを受信する。各々のデータアイテムを受信した後、インタフェイスは通知信号を送信し、次のデータアイテムを受信するために状態Eに戻る。スレーブデバイスがマスタからデータを受信し得ない場合、当該デバイスはマスタへの非通知信号を活性化させる。それによって、現在のデータ転送セッションが終了され、アイドル状態Aに戻される。マスタが他の開始状態を活性化させる場合、インタフェイスは状態Bに戻る。又はマスタが終了状態を活性化させる場合、インタフェイスはアイドル状態Aに戻って、次の開始状態を待つ。
【0011】
従来技術の状態図200は、I2Cバス規格を実現しており、それ故に状態図200を具現化するステートマシンを設けることによって、I2Cデバイスのための標準インタフェイスをもたらし得る。例えばプロセッサ、メモリ素子、及びディスプレイデバイス等のI2Cデバイスの機能素子は、状態Cにおいて送信されるべきデータをステートマシンに供給しさえすればよく、又は状態Eにおいて受信されるべきデータを受信するためのメモリスペース(memory space)をステートマシンに供給しさえすればよい。このように、I2Cデバイスの機能素子の設計者は、I2Cバスに対するインタフェイスを実現する詳細について関わる必要がない。参照の容易化のため、用語ステートマシン200は以下、状態図200を具現化するステートマシンを意味するように使用される。
【0012】
従来技術のステートマシン200はI2Cバス規格を実現するが、いくつかの制限事項を有している。上記のようにI2C規格は、マスタデバイスがI2Cバス上のタイミングを制御することを要求している。理想的な環境においてよく動作するマスタは、I2Cバスインタフェイスを施すためにスレーブデバイスおいてステートマシン200を効果的に制御するが、あまりよく動作しないマスタ又は非理想的な環境は、従来技術のステートマシン200の動作を異常停止(ロックアップ(lock−up))させるか、又は当該動作に不利な影響を及ぼす可能性を有すると共に、ことによるとI2Cバス全体の動作に影響を及ぼす可能性を有する。例えば、ステートマシン200が状態D、すなわちデータ送信の状態にある間、マスタにおける問題又は意に反した断線(unintentional disconnect)のためにマスタがSCLラインを切り換えることを中止させる場合、ステートマシン200は状態Dに保持されるであろう。開始状態の活性化を介して他のマスタが新たな転送セッションを初期化し、SCLラインを切り換えると、状態Dにおいて終了する、ステートマシン200は続行されると共に、他のマスタが転送セッションの目的とするスレーブのアドレスを送信している間、次のビットを送信するであろう。その後、I2Cバスの状態、ステートマシン200の状態、及び他のマスタの状態が不定(indeterminate)となるであろう。他のマスタは干渉及び“バックオフ(back−off)”を認識し得るであろう。しかしながら、当該マスタ又は更に他のマスタが、他の開始信号を活性化した後に通信することを試みると、前記問題が再発するであろう。ステートマシン200が、現在のデータバイトのデータビットの全てを送信し、それから次のアクティブなSCL期間におけるSDAライン上のハイ状態を検出し、更にアイドル状態Aに戻るまで、前記問題はもたらされ続ける。ステートマシンが、自身の最後のデータビットの送信に後続する次のアクティブなSCL期間におけるSDAライン上のロー値を検出する場合、当該ステートマシンはこれを通知信号として認識し、状態Cに再び入り、次のバイトをロードし、各々のSCLの遷移においてこの新たなバイトのビットの各々を送信し続けるであろう。可能性のある問題の他のシナリオは、ステートマシン200が他の状態にある間の、SCLライン上の他の異常の発生に対しても体系的に説明され得る。
【発明の開示】
【発明が解決しようとする課題】
【0013】
本発明の目的は、I2Cバスに対するインタフェイスをロバストに制御するための装置及び方法を提供することにある。本発明の他の目的は、I2Cバス上の、不適切な送信及び/又は干渉する送信(interfering transmission)を防止するための装置及び方法を提供することにある。本発明の他の目的は、異常なマスタデバイスの動作後の、I2Cバス上のスレーブデバイスに対する回復メカニズム(recovery mechanism)を提供することにある。
【課題を解決するための手段】
【0014】
これらの目的及び他の目的は、I2Cバスインタフェイスを制御するロバストなステートマシンを提供することによって達成される。前記ステートマシンは、I2C規格のスレーブデバイスプロトコルを施すと共に異常なマスタデバイスの動作からの回復をもたらすように構成される。本発明によれば、スレーブデバイスにおけるステートマシンの状態遷移は、開始状態が検出される場合を除いて、I2CバスのSCLラインのマスタデバイス制御によって制御される。前記ステートマシンは、I2Cバス上の開始状態に非同期に(asynchronously)応答するように構成され、自身の現在の状態(current state)にかかわらず、ステートマシンを、知られている状態にする。開始状態に後続する知られている状態において、スレーブデバイスはI2Cバスへのいかなる送信も終了させる。それによって、バス上において引き続いて起こる干渉が最小限化される。
【0015】
本発明は、添付図面に関連して例示によって更に詳細に説明される。
【0016】
図面を通して、同じ参照番号及び状態識別子は、類似若しくは対応する特徴又は機能を示している。
【発明を実施するための最良の形態】
【0017】
図3は、本発明によるI2Cバスを介してデータ転送を容易にするステートマシン300の状態図の例を示している。当該ステートマシン300は、図2のステートマシン200と類似の状態A乃至Fを含んでいると共に別個特有の開始状態(start state)Gも含んでいる。状態遷移は、以下注意される場合を除いて、マスタデバイスからのSCLクロック信号によって制御される。
【0018】
本発明によれば、開始状態Gはアイドル状態(idle state)Aと明らかに異なっており、従来のステートマシン200のアドレス状態Bと明らかに異なっている。開始状態Gは、I2Cバス上で開始状態が検出されるときはいつでも他の何れかの状態から非同期に入力される。すなわち、ステートマシン300はSCLラインのクロックによって制御されるが、開始状態の発生によりこの制御は無効化(override)される。
【0019】
I2Cバスの通常の動作において、開始状態は、ステートマシンがアイドル状態Aにある間にのみ生成される。しかしながら、マスタデバイスによる異常な動作の可能性、I2Cバス上にノイズを誘起する遷移、及び他の異常に対処することによって、並びにステートマシン300がアイドル状態Aと異なる状態にある間、開始状態の異常な発生を可能にすることによって、ステートマシン300はこのような異常の効果からの迅速な回復(リカバリ)に対処する。更に、開始状態Gへの遷移が非同期化させられることによって、知られている状態へのステートマシン300の回復は、SCLライン上のマスタデバイスのクロック信号から独立して行われる。
【0020】
従来技術においては普通なことに、ステートマシンは、現在の状態の各々のビットの符号化に対して記憶素子、通常D−フリップフロップ(D−flip−flop)を含んでいる。例えば開始状態の検出に対応する信号を、各々の記憶素子の適切な非同期のセット(SET)又はリセット(RESET)入力部に接続することによって、知られている状態への記憶素子の非同期のセットが行われる。開始状態の検出、すなわちSCLラインがハイになっている間のSDAライン上のハイからローへの遷移の発生は、データ入力部としてのSCLライン及びクロック入力部としてのSDAラインを有するネガティブエッジトリガ型フリップフロップ(negative−edge triggered flip−flop)によってもたらされ得る。普通且つ正常な非開始I2C動作において、SDAラインの遷移は、SCLラインがローになっている間にのみ発生し、開始状態検出器(START condition detector)はロー出力を継続的に供給するであろう。
【0021】
テーブル1は、本発明によるステートマシン300の動作を示している。示されているように、状態A乃至Fの各々は、次のGの状態、すなわち開始状態を生成する開始*入力状態(Start* input condition)を含んでいる。アスタリスクは、当該入力状態が、ステートマシン状態転送を制御するクロック信号から独立して、次の状態に直接的な非同期転送をもたらすことを示している。
【0022】
本発明の好ましい実施例において、状態A乃至Gに関連する、符号化された値はグレイコード(Gray−code)を使用して符号化されるので、状態Gへの非同期転送の間を除いて、各々の状態遷移は、状態値においてたった一つのビットの変化しか含んでいない。例えば状態Bは0100として符号化される。状態Bからの有効な遷移は、状態A、C、又はEへの遷移を含んでいる。状態Aは0000として符号化されるが、(左から右へ読む場合)2番目の最上位ビット(second most significant bit(MSB))の値が状態Bと異なっている。状態Cは1100として符号化されるが、1番目の最上位ビットの値が状態Bと異なっている。状態Eは0110として符号化されるが、3番目の最上位ビットの値が状態Bと異なっている。ビット値を同時に変化させる数を制限することによって、直接遷移状態値(immediate transition state value)が生成されず、それによって、誤った(異常な)状態変化(erroneous state change)が防止される。例えば状態Cは、1番目及び3番目のMSBが状態B(0100)と異なっている1110として符号化されていた場合、Bの0100から1110への遷移は、1番目のMSB遷移が3番目のMSB遷移の前に発生すると1100の遷移状態値をもたらし、又は1番目のMSB遷移が3番目のMSB遷移の後に発生すると0110の遷移状態値をもたらし得る。グレイコード符号化をもたらす七つの4ビット値のセットが、テーブル1に示されている。当業者に知られているように、所与の符号化された値の単純な反転(inversion)及び順列(permutation)は、等価なグレイコードである。
【0023】
【表1】
【0024】
図4は、I2Cバス上のI2Cデバイス410乃至430の構成体の例を示している。ここで、少なくとも一つのデバイス410は、本発明によるステートマシン300を含むI2Cバスインタフェイス414を含んでいる。I2Cデバイス410乃至430は、I2Cバス450に、及びI2Cバス450から、データを供給及び/又は受信する、プロセッサ、メモリ素子、及びディスプレイデバイス等のような機能素子を含んでいる。本発明によれば、I2Cインタフェイス414により機能素子412は、I2Cバス450に送信されるべきデータアウトバイト(data−out bite)をただ供給することによって、及び/又はバス450からデータインバイト(data−in bite)を受信するためのメモリをただ供給することによって、I2Cバス450に、及びI2Cバス450からデータを転送することが可能になる。インタフェイス414は、I2C規格に準拠する通信方式の実施例をもたらすと共に、上記のようにステートマシン300によって制御されるスレーブデバイスインタフェイスを特に含む。正しいことが確認されたインタフェイスをI2Cバスにもたらすことによって、I2Cデバイス410乃至430の機能素子412の設計者がデータアウトバイトとデータインバイトのためのメモリとをもたらしさえすればよく、I2C通信プロトコルの詳細に拘束されないことは注意されるべきである。
【0025】
以上は本発明の原理のみを示している。従って、明示的に記載されていないし、又は本明細書に示されていないが、本発明の原理を具現化し、それ故に請求項の範囲内にある様々な装置を当業者が考案し得ることは評価されるであろう。
【図面の簡単な説明】
【0026】
【図1】従来技術で知られている、I2Cバスを介したデータ転送のタイミング図の例を示している。
【図2】I2Cバスを介したデータ転送を容易にする従来のステートマシンの状態図の例を示している。
【図3】本発明による、I2Cバスを介したデータ転送を容易にするステートマシンの状態図の例を示している。
【図4】本発明による、I2Cバスを介したデータ転送を容易にするステートマシンを含む、I2Cバスの構成例を示している。
Claims (19)
- I2Cバスに、及びI2Cバスからデータを供給又は受信するように構成される機能素子と、
前記機能素子及び前記I2Cバスに可動的に結合され、前記機能素子と前記I2Cバスとの間のデータ通信を容易にするように構成されるインタフェイスと
を有するデバイスであって、
前記インタフェイスは、
アイドル状態、アドレス状態、データロード状態、データ送信状態、データ消去状態、データ受信状態、及び開始状態を含む複数の状態
を含む前記インタフェイスを制御するように構成されるステートマシン
を有し、
前記ステートマシンは、
前記I2Cバス上の開始信号の検出時に前記開始状態に非同期に入り、
前記I2Cバス上のリセット信号の検出時に前記アイドル状態に非同期に入り、
前記I2Cバス上の複数のクロック信号の各々の受信時に、
前記ステートマシンが前記開始状態にある場合、前記アドレス状態に入り、
前記ステートマシンが前記アドレス状態にあると共に読み出しコマンドが前記I2Cバスから受信される場合、前記データロード状態に入り、
前記ステートマシンが前記データロード状態にある場合、前記データ送信状態に入り、
前記ステートマシンが前記アドレス状態にあると共に書き込みコマンドが前記I2Cバスから受信される場合、前記データ消去状態に入り、
前記ステートマシンが前記データ消去状態にある場合、前記データ受信状態に入る
ように構成されるデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記アドレス状態から前記データ消去状態又は前記データロード状態に入るときはいつも通知信号を活性化させる
ように更に構成される請求項1に記載のデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記データ送信状態にあると共に通知信号が前記I2Cバス上に受信されない場合、前記アイドル状態に入り、
前記ステートマシンが前記データ受信状態にあると共に前記I2Cバス上のデータ転送が完了している場合、前記アイドル状態に入る
ように更に構成される請求項1に記載のデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記データ受信状態から前記アイドル状態に入るときはいつも非通知信号を活性化させる
ように更に構成される請求項3に記載のデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記アドレス状態にあると共に前記受信アドレスが、前記デバイスに関係するアドレスに対応しない場合、前記アイドル状態に入る
ように更に構成される請求項1に記載のデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記データ送信状態にあると共に送信データアイテムが通知される場合、前記データロード状態に入り、
前記ステートマシンが前記データ受信状態にあると共にデータアイテムが受信される場合、前記データ消去状態に入る
ように更に構成される請求項1に記載のデバイス。 - 前記複数の機能状態は1セットのビットとして符号化されるので、前記クロック信号の受信時の各々の状態変化が前記ビットのセットのうちの一つのビットの変化を含む請求項1に記載のデバイス。
- 前記複数の機能状態は1セットのビットとして符号化され、各々のビットが第一の状態a及び第二の状態bを有するので、
前記アイドル状態はaaaaと符号化され、
前記アドレス状態はabaaと符号化され、
前記データロード状態はbbaaと符号化され、
前記データ送信状態はbaaaと符号化され、
前記データ消去状態はabbaと符号化され、
前記データ受信状態はaabaと符号化され、
前記開始状態はababと符号化される
請求項1に記載のデバイス。 - 前記ステートマシンは、
前記I2Cバス上の終了信号の検出時に、非同期に前記アイドル状態に入る
ように更に構成される請求項1に記載のデバイス。 - I2Cバスを介して通信を容易にするように構成されるインタフェイスデバイスであって、
アイドル状態、アドレス状態、データロード状態、データ送信状態、データ消去状態、データ受信状態、及び開始状態を含む複数の状態
を含む前記インタフェイスを制御するように構成されるステートマシン
を有し、
前記ステートマシンは、
前記I2Cバス上の開始信号の検出時に前記開始状態に非同期に入り、
前記I2Cバス上のリセット信号の検出時に前記アイドル状態に非同期に入り、
前記I2Cバス上の複数のクロック信号の各々の受信時に、
前記ステートマシンが前記開始状態にある場合、前記アドレス状態に入り、
前記ステートマシンが前記アドレス状態にあると共に読み出しコマンドが前記バスから受信される場合、前記データロード状態に入り、
前記ステートマシンが前記データロード状態にある場合、前記データ送信状態に入り、
前記ステートマシンが前記アドレス状態にあると共に書き込みコマンドが前記I2Cバスから受信される場合、前記データ消去状態に入り、
前記データ消去状態から前記データ受信状態に入る
ように構成されるインタフェイスデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記アドレス状態から前記データ消去状態又は前記データロード状態に入るときはいつも通知信号を活性化し、
前記ステートマシンが前記データ受信状態から前記アイドル状態に入るときはいつも非通知信号を活性化させる
ように更に構成される請求項10に記載のインタフェイスデバイス。 - 前記ステートマシンは、
前記ステートマシンが前記データ送信状態にあると共に通知信号が前記I2Cバスに受信されない場合、前記アイドル状態に入り、
前記ステートマシンが前記データ受信状態にあると共に前記I2Cバス上のデータ転送が完了している場合、前記アイドル状態に入り、
受信アドレスが無効のとき、前記ステートマシンが前記アドレス状態にある場合、前記アイドル状態に入り、
前記ステートマシンが前記データ送信状態にあると共に送信データアイテムが通知される場合、前記データロード状態に入り、
前記ステートマシンが前記データ受信状態にあると共にデータアイテムが受信される場合、前記データ消去状態に入る
ように更に構成される請求項10に記載のインタフェイスデバイス。 - 前記複数の機能状態は1セットのビットとして符号化されるので、前記クロック信号の受信時の各々の状態変化が前記ビットのセットのうちの一つのビットの変化を含む請求項10に記載のインタフェイスデバイス。
- 前記複数の機能状態は1セットのビットとして符号化され、各々のビットが第一の状態a及び第二の状態bを有するので、
前記アイドル状態はaaaaと符号化され、
前記アドレス状態はabaaと符号化され、
前記データロード状態はbbaaと符号化され、
前記データ送信状態はbaaaと符号化され、
前記データ消去状態はabbaと符号化され、
前記データ受信状態はaabaと符号化され、
前記開始状態はababと符号化される
請求項10に記載のインタフェイスデバイス。 - 前記ステートマシンは、
前記I2Cバス上の終了信号の検出時に、非同期に前記アイドル状態に入る
ように更に構成される請求項10に記載のインタフェイスデバイス。 - ステートマシンを介してI2Cバス上の通信を容易にするための方法であって、
前記I2Cバス上の開始信号の検出時に開始状態に非同期に入るステップと、
前記I2Cバス上のリセット信号の検出時にアイドル状態に非同期に入るステップと、
前記I2Cバス上の複数のクロック信号の各々の受信時に、
前記ステートマシンが前記開始状態にある場合、アドレス状態に入るステップと、
前記ステートマシンが前記アドレス状態にあると共に読み出しコマンドが前記I2Cバスから受信される場合、データロード状態に入るステップと、
前記ステートマシンが前記データロード状態にある場合、データ送信状態に入るステップと、
前記ステートマシンが前記アドレス状態にあると共に書き込みコマンドが前記バスから受信される場合、データ消去状態に入るステップと、
前記ステートマシンが前記データ消去状態にある場合、データ受信状態に入るステップと
を有する方法。 - 前記ステートマシンが前記アドレス状態にある場合、前記データ消去状態又は前記データロード状態に入るステップは、通知信号を活性化させるステップを含み、
前記ステートマシンが前記データ受信状態にある場合、前記アイドル状態に入るステップは、非通知信号を活性化させるステップを含む
請求項16に記載の方法。 - 前記ステートマシンが前記データ送信状態にあると共に通知信号が前記I2Cバス上において受信されない場合、前記アイドル状態に入るステップと、
前記ステートマシンが前記データ受信状態にあると共に前記I2Cバス上のデータ転送が完了している場合、前記アイドル状態に入るステップと、
前記ステートマシンが前記アドレス状態にあると共に受信アドレスが前記ステートマシンに関係するアドレスに対応していない場合、前記アイドル状態に入るステップと、
前記ステートマシンが前記データ送信状態にあると共に送信データアイテムが通知される場合、前記データロード状態に入るステップと、
前記ステートマシンが前記データ受信状態にあると共にデータアイテムが受信される場合、前記データ消去状態に入るステップと
を更に含む請求項16に記載の方法。 - 前記I2Cバス上の終了信号の検出時に、非同期に前記アイドル状態に入るステップ
を更に含む請求項16に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/895,921 US6799233B1 (en) | 2001-06-29 | 2001-06-29 | Generalized I2C slave transmitter/receiver state machine |
PCT/IB2002/002301 WO2003005211A2 (en) | 2001-06-29 | 2002-06-14 | Generalized i2c slave transmitter/receiver state machine |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004534322A true JP2004534322A (ja) | 2004-11-11 |
Family
ID=25405296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003511112A Pending JP2004534322A (ja) | 2001-06-29 | 2002-06-14 | 汎用i2cスレーブ送信器/受信器ステートマシン |
Country Status (9)
Country | Link |
---|---|
US (1) | US6799233B1 (ja) |
EP (1) | EP1405192B1 (ja) |
JP (1) | JP2004534322A (ja) |
KR (1) | KR20030033040A (ja) |
CN (1) | CN1286031C (ja) |
AT (1) | ATE360855T1 (ja) |
DE (1) | DE60219790T2 (ja) |
TW (1) | TWI223154B (ja) |
WO (1) | WO2003005211A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099410A (ja) * | 2004-09-29 | 2006-04-13 | Mitsubishi Electric Corp | I2cバス制御方法 |
JP2008293230A (ja) * | 2007-05-24 | 2008-12-04 | Nec Engineering Ltd | データ転送装置 |
US9671820B2 (en) | 2011-11-25 | 2017-06-06 | Mitsubishi Electric Corporation | Communication device, communication method, and communication system |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225814A1 (en) * | 2001-05-29 | 2004-11-11 | Ervin Joseph J. | Method and apparatus for constructing wired-AND bus systems |
AU2003900960A0 (en) | 2003-03-03 | 2003-03-13 | Sola International Holdings Ltd | Tinting optical substrates |
US20060075164A1 (en) * | 2004-09-22 | 2006-04-06 | Ooi Eng H | Method and apparatus for using advanced host controller interface to transfer data |
CN100571517C (zh) * | 2004-12-31 | 2009-12-23 | 风间行男 | 害虫驱避剂的制备方法以及害虫的驱避方法 |
CN100346330C (zh) * | 2005-03-10 | 2007-10-31 | 华为技术有限公司 | 恢复i2c主器件和i2c从器件通讯的方法 |
CN101208682B (zh) * | 2005-04-29 | 2011-10-05 | Nxp股份有限公司 | 具有锁存服务请求的从设备 |
US7562172B2 (en) * | 2005-04-29 | 2009-07-14 | Nxp B.V. | I2C Slave/master interface enhancement using state machines |
EP1877916B1 (en) * | 2005-04-29 | 2010-02-17 | Nxp B.V. | Dynamic 12c slave device address decoder |
WO2006117747A1 (en) * | 2005-04-29 | 2006-11-09 | Koninklijke Philips Electronics, N.V. | 12c slave device with programmable write-transaction cycles |
EP1877915B1 (en) * | 2005-04-29 | 2010-11-17 | Nxp B.V. | Programming parallel i2c slave devices from a single i2c data stream |
KR100687923B1 (ko) * | 2005-04-29 | 2007-02-27 | 삼성전자주식회사 | 마스터디바이스, 그 제어방법과 마스터디바이스를 갖는전자장치 |
DE602006012476D1 (de) * | 2005-04-29 | 2010-04-08 | Nxp Bv | Einrichtungsidentifikationscodierung integrierter slave-schaltungseinrichtungen |
WO2006117749A1 (en) * | 2005-04-29 | 2006-11-09 | Koninklijke Philips Electronics, N.V. | Simultaneous control of multiple i/o banks in an i2c slave device |
US20060294275A1 (en) * | 2005-06-23 | 2006-12-28 | Emil Lambrache | Fast two wire interface and protocol for transferring data |
CN100426274C (zh) * | 2005-08-08 | 2008-10-15 | 中兴通讯股份有限公司 | 避免i2c总线锁定的方法与装置 |
US20070043851A1 (en) * | 2005-08-16 | 2007-02-22 | Netdevices, Inc. | Facilitating a user to detect desired anomalies in data flows of networks |
DE102006004346A1 (de) * | 2006-01-30 | 2007-10-18 | Deutsche Thomson-Brandt Gmbh | Datenbusschnittstelle mit abschaltbarem Takt |
US7721155B2 (en) | 2007-06-27 | 2010-05-18 | International Business Machines Corporation | I2C failure detection, correction, and masking |
JP4774029B2 (ja) * | 2007-10-17 | 2011-09-14 | 三菱電機株式会社 | 計装制御システム |
US7752365B2 (en) * | 2008-04-01 | 2010-07-06 | Kyocera Corporation | Bi-directional single conductor interrupt line for communication bus |
US7930127B2 (en) * | 2008-11-11 | 2011-04-19 | Nxp B.V. | Oscillator prescale calibration for harmonizing multiple devices with independent oscillators over an I2C bus interface |
US8224602B2 (en) | 2008-11-11 | 2012-07-17 | Nxp B.V. | Automatic on-demand prescale calibration across multiple devices with independent oscillators over an I2C Bus interface |
JP5217982B2 (ja) | 2008-12-04 | 2013-06-19 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
DE102011003729A1 (de) | 2010-02-08 | 2011-08-11 | Robert Bosch GmbH, 70469 | Neuartige Schaltung und Methode zur Kommunikation über eine einzelne Leitung |
US9086966B2 (en) * | 2013-03-15 | 2015-07-21 | Intel Corporation | Systems, apparatuses, and methods for handling timeouts |
CN103714036B (zh) * | 2013-12-20 | 2016-07-20 | 武汉精立电子技术有限公司 | 支持批量读取校验的i2c多路复用器及控制方法 |
KR102169033B1 (ko) * | 2013-12-31 | 2020-10-22 | 엘지디스플레이 주식회사 | 전력 최적화 시스템과 이의 구동 방법 |
DE102014206752B4 (de) * | 2014-04-08 | 2021-08-12 | Robert Bosch Gmbh | Bestimmung des Zustands eines I2C-Busses |
US10151794B2 (en) | 2014-06-19 | 2018-12-11 | X-Fab Semiconductor Foundries Ag | Sleek serial interface for a wrapper boundary register (device and method) |
JP2016063359A (ja) | 2014-09-17 | 2016-04-25 | 株式会社東芝 | バスインタフェース回路 |
DE102014223362A1 (de) * | 2014-11-17 | 2016-05-19 | Robert Bosch Gmbh | Steuerungseinrichtung für I²C-Slave-Einrichtungen |
US9846672B2 (en) * | 2015-02-02 | 2017-12-19 | Atmel Corporation | Serial device with configuration mode for changing device behavior |
KR102618563B1 (ko) | 2016-07-01 | 2023-12-27 | 삼성전자주식회사 | 집적 회로 장치와 이를 포함하는 전자 장치 |
US10804942B2 (en) | 2018-05-24 | 2020-10-13 | Analog Devices, Inc. | State-machine based body scanner imaging system |
CN112445743B (zh) * | 2019-09-04 | 2024-03-22 | 珠海格力电器股份有限公司 | 一种去除毛刺的方法、装置及状态机 |
JP7283412B2 (ja) * | 2020-02-14 | 2023-05-30 | 株式会社デンソー | 通信システム |
CN113114550B (zh) * | 2021-04-07 | 2022-06-21 | 中国科学院苏州生物医学工程技术研究所 | 一种i2c通信控制方法、设备及存储介质 |
CN113254247A (zh) * | 2021-05-14 | 2021-08-13 | 山东英信计算机技术有限公司 | 一种服务器bmc i2c异常恢复方法及相关装置 |
US11777546B2 (en) | 2021-05-27 | 2023-10-03 | Rambus Inc. | Receiver with improved noise immunity |
CN116820840A (zh) * | 2023-07-03 | 2023-09-29 | 白盒子(上海)微电子科技有限公司 | 一种i2c总线挂死自动恢复方法、装置、设备和介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2565751B1 (fr) * | 1984-06-08 | 1986-09-05 | Radiotechnique Compelec | Circuit d'interface du type esclave |
US5758098A (en) * | 1994-05-12 | 1998-05-26 | Apple Computer, Inc. | Method and apparatus for providing a high throughput two-conductor serial interface with support for slave device detection |
US5696994A (en) * | 1995-05-26 | 1997-12-09 | National Semiconductor Corporation | Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes |
KR0184136B1 (ko) * | 1996-06-03 | 1999-05-15 | 구자홍 | 범용 마이컴을 이용한 아이 스퀘어 씨 통신 장치 |
US5878234A (en) * | 1996-09-10 | 1999-03-02 | Sierra Wireless, Inc. | Low power serial protocol translator for use in multi-circuit board electronic systems |
GB2326065B (en) * | 1997-06-05 | 2002-05-29 | Mentor Graphics Corp | A scalable processor independent on-chip bus |
KR100285956B1 (ko) * | 1998-06-30 | 2001-04-16 | 윤종용 | 고속직렬버스에연결된동기식및비동기식장치의제어시스템과제어방법 |
US6622188B1 (en) * | 1998-09-30 | 2003-09-16 | International Business Machines Corporation | 12C bus expansion apparatus and method therefor |
US6175887B1 (en) * | 1998-10-21 | 2001-01-16 | Sun Microsystems, Inc. | Deterministic arbitration of a serial bus using arbitration addresses |
US6286073B1 (en) * | 1998-12-01 | 2001-09-04 | Lucent Technologies Inc. | Integrated circuit interface between a personal computer and an external device |
US6253269B1 (en) * | 1998-12-22 | 2001-06-26 | 3Com Corporation | Bus arbiter system and method for managing communication buses |
US6253268B1 (en) * | 1999-01-15 | 2001-06-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for multiplexing a second interface on an I2C interface |
US6684362B1 (en) * | 1999-02-18 | 2004-01-27 | International Business Machines Corporation | Method and apparatus for connecting manufacturing test interface to a global serial bus including an I2 c bus |
US6530029B1 (en) * | 1999-09-23 | 2003-03-04 | National Semiconductor Corporation | I2C/SMBus start-stop detecting circuit that reduces the likelihood of stalling the bus due to glitches on the data line |
US6553441B1 (en) * | 1999-11-30 | 2003-04-22 | 3Com Corporation | Method and apparatus for using serial bus for PC management |
US6591322B1 (en) * | 2000-08-01 | 2003-07-08 | Sun Microsystems, Inc. | Method and apparatus for connecting single master devices to a multimaster wired-and bus environment |
US20020108011A1 (en) * | 2000-12-11 | 2002-08-08 | Reza Tanha | Dual interface serial bus |
-
2001
- 2001-06-29 US US09/895,921 patent/US6799233B1/en not_active Expired - Lifetime
-
2002
- 2002-06-14 DE DE60219790T patent/DE60219790T2/de not_active Expired - Lifetime
- 2002-06-14 AT AT02727984T patent/ATE360855T1/de not_active IP Right Cessation
- 2002-06-14 EP EP02727984A patent/EP1405192B1/en not_active Expired - Lifetime
- 2002-06-14 CN CNB028130545A patent/CN1286031C/zh not_active Expired - Fee Related
- 2002-06-14 KR KR10-2003-7002970A patent/KR20030033040A/ko not_active Application Discontinuation
- 2002-06-14 JP JP2003511112A patent/JP2004534322A/ja active Pending
- 2002-06-14 WO PCT/IB2002/002301 patent/WO2003005211A2/en active IP Right Grant
- 2002-06-26 TW TW091114005A patent/TWI223154B/zh active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099410A (ja) * | 2004-09-29 | 2006-04-13 | Mitsubishi Electric Corp | I2cバス制御方法 |
JP2008293230A (ja) * | 2007-05-24 | 2008-12-04 | Nec Engineering Ltd | データ転送装置 |
US9671820B2 (en) | 2011-11-25 | 2017-06-06 | Mitsubishi Electric Corporation | Communication device, communication method, and communication system |
Also Published As
Publication number | Publication date |
---|---|
DE60219790T2 (de) | 2008-03-20 |
WO2003005211A2 (en) | 2003-01-16 |
CN1537281A (zh) | 2004-10-13 |
US6799233B1 (en) | 2004-09-28 |
EP1405192B1 (en) | 2007-04-25 |
TWI223154B (en) | 2004-11-01 |
ATE360855T1 (de) | 2007-05-15 |
WO2003005211A3 (en) | 2003-05-22 |
CN1286031C (zh) | 2006-11-22 |
DE60219790D1 (de) | 2007-06-06 |
EP1405192A2 (en) | 2004-04-07 |
KR20030033040A (ko) | 2003-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004534322A (ja) | 汎用i2cスレーブ送信器/受信器ステートマシン | |
US6842806B2 (en) | Method and apparatus for interconnecting wired-AND buses | |
US7562172B2 (en) | I2C Slave/master interface enhancement using state machines | |
US7979597B2 (en) | Programming parallel I2C slave devices from a single I2C data stream | |
EP1877914B1 (en) | Device identification coding of inter-integrated circuit slave devices | |
JP2008539499A (ja) | ダイナミックi2cスレーブデバイスアドレスデコーダ | |
US20170177531A1 (en) | Bus serialization for devices without multi-device support | |
JP6629215B2 (ja) | マルチマスターバスプロトコルのための方法および装置 | |
JP2008539496A (ja) | I2cスレーブ装置の複数のi/oバンクの同時制御 | |
JP2008539644A (ja) | プログラマブル書込みトランザクションサイクルを有するi2cスレーブ装置 | |
EP1969601A2 (en) | Memory using a single-node data, address and control bus | |
CN112445744B (zh) | I2c通信 | |
TW202213115A (zh) | 相位差分協定的錯誤訊號傳遞窗口 | |
EP4162367A1 (en) | Providing acknowledgements for system power management interface | |
US20220066955A1 (en) | Group slave identifier time-multiplexed acknowledgment for system power management interface | |
Yuxin | I2C data transfer program design and communication protocol improvement | |
MX7cK | Synchronous I2C Communications with the | |
JP2001117863A (ja) | 調停アドレスを使用する、シリアル・バスの決定論的調停 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040806 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071127 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20071213 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080227 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080305 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080327 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080527 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20081014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090224 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090901 |