JP2008539645A - 状態マシンを用いたi2cスレーブ/マスタインタフェース機能強化 - Google Patents
状態マシンを用いたi2cスレーブ/マスタインタフェース機能強化 Download PDFInfo
- Publication number
- JP2008539645A JP2008539645A JP2008508409A JP2008508409A JP2008539645A JP 2008539645 A JP2008539645 A JP 2008539645A JP 2008508409 A JP2008508409 A JP 2008508409A JP 2008508409 A JP2008508409 A JP 2008508409A JP 2008539645 A JP2008539645 A JP 2008539645A
- Authority
- JP
- Japan
- Prior art keywords
- state
- state machine
- machine
- slave
- bus
- 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.)
- Withdrawn
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
- 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
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Abstract
一実施の形態によれば、通信プロトコルを実現するのに用いられるシリアルデータ線及びクロック線を有するシリアルデータ転送バス(125)を用いた通信システムは、状態バスを用いるI2Cバス上の機能強化されたスレーブ/マスタインタフェースを組み入れる。通信システムは、クロック信号(134)の立上り縁に応答する第1及び第2の状態マシン(150,160)と、クロック信号の立下り縁の応答し、第1及び第2の状態マシンから独立して動作する第3の状態マシンとを有する。第1の状態マシンと第2の状態マシンのうちの一方は、通信プロトコルの書込み状態に従い、第1の状態マシンと第2の状態マシンのうちの他方は、通信プロトコルの読出し状態に従う。
Description
本発明は、一般に、通信装置及び方法に関し、特に、状態マシンを用いたI2Cバス上のマスタ/スレーブインタフェースを機能強化する方法及び装置に関する。
フィリップス社によって開発されたアイ・スクエアード・シー(I2C)バスによって、集積回路は、簡単な2方向2ワイヤバス(並びに電源及びグランド)を通じて互いに直接やりとりを行うことができる。装置は、バス上の二つのワイヤの各々と、データ通信用の一つのシリアルデータ線(SDA)と、装置間のデータ通信の制御及び同期用の他のシリアルクロック線(SCL)とに接続する。各装置は、他の装置の各々に並列接続され、バスラインの各々、SDA及びSCLは、バス上の全ての線のワイヤードアンドとして機能する。各装置の出力部は、オープンコレクタ/オープンドレイン装置として形成され、一つ以上のプルアップトランジスタは、バスが休止状態にある間にバス上で「ソフト」論理ハイ値を維持する。装置がバスへのアクセスを所望する場合、装置は、導通状態において接地電位になるオープンコレクタ/オープンドレイン装置を通じて、バスを論理ロー値にする。
I2バスに接続された各装置は、アドレスによって識別可能であり、送信機、受信機又はその両方として動作することができる。データ転送は、マスタ−スレーブ通信プロトコルを用いて行われる。マスタは、データ転送を開始するとともに転送を許可するためのクロック信号を発生する装置である。アドレス指定される任意の装置は、この転送のためのスレーブであると考えられる。データ転送を、データをスレーブに転送(ここでは、「書込み」と称する。)し又はデータをスレーブから要求(ここでは、「読出し」と称する。)するマスタによって開始することができる。例えば、表示スクリーンのような出力装置は、典型的には、データ転送を開始することができず、したがって、スレーブ装置としてのみ動作するよう形成される。それに対して、マイクロプロセッサは、典型的には、状況に応じてマスタ又はスレーブとして動作するよう形成される。
休止状態において、SDAバスラインとSCLバスラインは、両方とも論理ハイ状態(ここでは、「ハイ」又は「1の論理状態」と称する。)となる。マスタは、SCLラインがハイである間にSDAライン上での論理ロー状態(個々では、「ロー」又は「0の論理状態」と称する。)への遷移をアサートすることによってデータ転送を開始する。これは、開始(START)状態と称される。その後、マスタは、データ転送の同期を制御するためにSCLラインをトグリングする。データ値の変化は、SCLクロックがローであるときにSDAラインで生じ、SDAラインの状態は、SCLクロックがハイであるときのみ有効であると考えられる。
同一転送セッション内で一連のデータ転送を行うために複数のSTARTをアサートすることができる。一般に、各データ転送は、データ転送の指定された受取人からの承認を必要とする。データ転送を終了するために、ホストは、SCLクロックがハイである間にSDAライン上でのロー−ハイ遷移をアサートする。その後、任意の装置は、既に説明したように、SDAライン上でのハイ−ロー遷移をアサートすることによってマスタとしてのバスの制御を仮定することができる。言及を簡略にするために、ここでは、用語「アサート」を、特定の論理状態の実行又は実行の試みに対して用いる。論理ハイ状態の遷移の一例において、これは、典型的には、アサート装置によって強要されたプルダウン状態からバスを解放することによって与えられる。このような論理ハイ状態のアサートによって、バス上の上記プルアップ装置は、他の装置もプルダウン状態を強いられない場合にはバスを論理ハイ状態にする。
I2Cデータ転送の一般的なフォーマットは、I2Cバスを形成するSDAライン及びSCLライン上の信号を伴う。START状態(S)は、SCLラインがハイである間のSDAライン上の信号のハイ−ロー遷移に対応する。START後、ホストは、読出し/非書込みインジケータに続く通常は7ビットのアドレスを送信する。アドレス及びデータ転送の方向(R/W−)の送信後、ホストは、SDAラインを解放し、論理ハイレベルまでの上昇を許容する。スレーブ装置がアドレスを識別する場合、スレーブ装置は、バスをローにすることによって肯定応答信号(ACK)を送信する。したがって、ホストがSDAラインを解放するときにロー信号が存在しないことは、否定応答(NAK)であることを表す。アドレスが、SDAがローであることを通じて承認される場合、送信装置はデータを送信する。データ転送の方向が、ホストに対して「読出し」である場合、スレーブ装置が送信装置となる。データ転送の方向が、ホストに対して「書込み」である場合、マスタ装置が送信装置となる。送信装置は、SDAラインの制御を解放し、受信装置は、SDAラインの論理ロー値をアサートすることによってデータの受信を承認する。データが承認される場合、送信器は追加のデータを送信する。このプロセスは、データの全部が送信されるまで又は送信データアイテムが承認されなくなるまで継続する。その後、マスタは、START信号を再アサートすることができ、上記プロセスをくり返し、又は、このデータ転送セッションを終了するためにSTOP信号(P)をアサートすることができる。
上記インターフェースプロトコルを、種々の方法で実現することができる。I2Cインタフェースのプログラム又は設計のための開発時間を最小にするために、種々の汎用インタフェース案が公表されている。“Design Of A Behavioral (Register Transfer Level, RTL) Model Of The Inter-Integrated Circuit Or I2C-Bus Master-Slave Interface”, Master’s Thesis of Amrita Deshpande, University of New Mexico, 1999は、I2C装置で実現するためのI2Cマスタインタフェース及びスレーブインタフェースを開示し、参照によりここに組み込まれる。検証されたI2Cインタフェースを設けることによって、システム設計者は、I2C仕様及びプロトコルの詳細を指定する必要がない。この論文のマスタインタフェース及びスレーブインタフェースは、状態マシンに基づく。状態マシンに基づくシステム及び方法は、米国特許第6,799,233号に更に記載されており、参照によりここに組み込まれる。
本発明の種々の態様は、上記課題を指摘し及び解決するように状態マシンを用いたI2Cインタフェースを機能強化する方法及び装置を対象とする。
一実施の形態によれば、本発明は、通信プロトコルを実現するのに用いられるシリアルデータ線及びクロック線を有するI2Cシリアルデータ転送バスを用いる通信システム及び/又は方法を対象とする。通信システムは、クロック信号の立上り縁に応答する第1及び第2の状態マシンと、クロック信号の立下り縁の応答し、第1及び第2の状態マシンから独立して動作する第3の状態マシンとを有する。第1の状態マシンと第2の状態マシンのうちの一方は、通信プロトコルの書込み状態に従い、第1の状態マシンと第2の状態マシンのうちの他方は、通信プロトコルの読出し状態に従う。
本発明の上記要約は、本発明の各実施の形態及び各実現を説明することを意図するものではない。本発明の利点及び実現は、詳細な説明、特許請求の範囲及び添付図面を参照することによって、本発明の完全の理解のために明らかになる。
本発明を、添付図面に関連して本発明の種々の実施の形態の詳細な説明を考察することによって理解することができる。
本発明が種々の変更及び変形に従う間、その詳細を、図面中で例示して示すとともに詳細に説明する。しかしながら、本発明が記載した特定の実施の形態に限定されるものでないことを理解すべきである。それに対して、添付した特許請求の範囲によって規定された発明の範囲内にある全ての変更、等価物及び変形をカバーすることを意図する。
本発明は、一般に、状態マシンを用いたI2Cバス上のマスタ/スレーブインタフェースを機能強化する方法及び装置に適用可能である。本発明は、アイ・スクエアード・シー(I2C)シリアルデータ通信バスに特に有利であることがわかり、システム管理バス(SMバス)アーキテクチャ及び/又はプロトコル又は他のシリアルデータ通信システムのような他のバス及び通信プロトコルにも有利である。説明のために、本発明を、スレーブ装置に対する通信を制御するマスタ装置を有するI2Cに関連して説明するが、本発明は、これに限定されるものではない。
マスタは、I2CバスアーキテクチャのI2Cスレーブとの通信を制御する。I2Cスレーブは、携帯電話、PDA及びスマートホンからLCD TV、医療機器、ゲーム及び他のアプリケーションまでの範囲の分野において種々のアプリケーションを見つける。I2Cデータバスの装置の新たな特徴は、マスタ装置とスレーブ装置との間の通信に対して新たな問題を表す。本発明による複数の状態マシンの同時の使用を、新たな特徴によって表された問題の一部を指摘するのに用いることができる。これら状態マシンは、データ転送用の制御信号の設計及び発生を簡素化し、他の特徴を組み込む「グルー」論理の使用を取り除く。
本発明の特定の実施の形態において、二つの状態マシンが、スレーブ装置のフォアグランドで実行するとともにSCLクロックの立上り縁で応答し、一つの状態マシンが、バックグランドで実行するとともにSCLクロックの立下り縁で応答する。状態マシンに対してグレーコードを維持するために、一つのモノリシック状態マシンの代わりに、フォアグランドの二つの状態マシンが存在する。状態マシンをグレーコード化することによって、状態マシンの状態に基づいて発生したデータ出力の異常を除去する。
これまで説明したように、バックグランドで実行するとともにSCLクロックの立下り縁で応答する一つの状態マシンが存在する。フォアグランドで実行する状態マシンとバックグランドで実行する状態マシンとがクロックの互いに逆の縁で応答することによって、バックグランドの状態マシンの入力の競合状態を除去する。
一実施の形態によれば、本発明は、通信プロトコルを実現するのに用いられるシリアルデータ線及びクロック線を有するI2Cシリアルデータ転送バスを用いる通信システムを対象とする。通信システムは、クロック信号の立上り縁に応答する第1及び第2の状態マシンと、クロック信号の立下り縁の応答し、第1及び第2の状態マシンから独立して動作する第3の状態マシンとを有する。第1の状態マシンと第2の状態マシンのうちの一方は、通信プロトコルの書込み状態に従い、第1の状態マシンと第2の状態マシンのうちの他方は、通信プロトコルの読出し状態に従う。
図1は、本発明の実施の形態による状態マシンを用いてI2Cバス上で機能強化されたスレーブ/マスタインタフェースを実現するデータ通信システム100のブロック図である。SDAライン110及びSCLライン120は、I2Cデータバス125として配置される。マスタ装置130及びスレーブ装置140は、I2Cデータバス125に取り付けられる。マスタ装置130は、SCLライン120及びSDAライン110にそれぞれ電気的に接続されたクロック接続134及びデータ接続132を用いてI2Cデータバス125に電気的に接続される。
スレーブ装置140は、SCLライン120及びSDAライン110にそれぞれ電気的に接続されたクロック接続144及びデータ接続142を用いてI2Cデータバス125に電気的に接続される。スレーブ装置は、フォアグランドで実行する第1の状態マシン150及び第2の状態マシン160を有する。便宜上、第1の状態マシン150は、I2C状態マシンWRITE(I2CSM−W)として設計され、第2の状態マシン160は、I2C状態マシンREAD(I2CSM−R)として設計される。二つの状態マシンを、フォアグランドで実行するとともにSCLの立上り縁で起動する状態マシンとする。(図4〜7に示す)バックグランド状態マシン170は、DIA_ARA_SMとして設計され、バックグランドで実行するとともにSCLの立下り縁で起動する状態マシンである。
I2CSM−W状態マシン及びI2CSM−R状態マシンは、I2Cバスによってシミュレートされ、通信プロトコルを解釈する。DIA_ARA_SM状態マシンは、後に更に説明する装置IDアドレスに対する応答やSMバスアラーム応答のような新たな態様の実現を容易にする。
図2は、第1の状態マシン150の状態図である。図示のために、状態マシンを、標準的なI2Cバスに対する接続(例えば、SDA,SCL、グランド(GND)、電源(VDD))及びINT#として設計した割込みピンを有するI2Cスレーブ装置として示す。図2の各サイクルは、個別の状態に対応し、大文字が付され、大文字の下に示した4ビットバイナリーコードに対応する。
状態A1:
・ この状態マシンは、いずれもアクティブハイであるSTOP及びRESET状態において非同期的にリセットする。
・ 状態マシンは、ゲートSCLクロックを用いる。SCLクロックは、状態マシンの状態によってゲートされる。状態マシンは、「書込み」状態マシン又は「読出し」状態マシンがアイドル状態であるときにSCLを受信しない(A1及びA2)。
・ この状態マシンは、いずれもアクティブハイであるSTOP及びRESET状態において非同期的にリセットする。
・ 状態マシンは、ゲートSCLクロックを用いる。SCLクロックは、状態マシンの状態によってゲートされる。状態マシンは、「書込み」状態マシン又は「読出し」状態マシンがアイドル状態であるときにSCLを受信しない(A1及びA2)。
状態G1:
・ START状態において、状態マシンは、非同期的に状態G1に進む。
・ 次のクロックにおいて、状態マシンは、状態B1に入り、スレーブアドレスを受け取る準備をする。
・ START状態において、状態マシンは、非同期的に状態G1に進む。
・ 次のクロックにおいて、状態マシンは、状態B1に入り、スレーブアドレスを受け取る準備をする。
状態B1:
・ スレーブビジー信号がアサートされる場合、状態マシンは、状態A1にリセットする。
・ 状態マシンが全呼出アドレス(ACA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
・ 状態マシンがSMバスアラーム応答アドレス(ARA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
・ 状態マシンが装置IDアドレス(DIA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
以下、(このポイントから状態Eまで)ACA,ARA及びDIAがイネーブルされると仮定する。
・ 状態マシンが、読出しビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態A1にリセットする。
・ 状態マシンが、書込みビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態Eになる。
・ 状態マシンがARA及び読出しビットを受け取るとともにローであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンがARA及び読出しビットを受け取るとともにハイであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにローであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにハイであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンが、書込みビットとともにDIAを受け取る場合、状態マシンは状態Hに進む。
・ 状態マシンが、読出しビットとともにDIAを受け取る場合、状態マシンは状態A1にリセットする。
・ 状態マシンが、SA,ACA,ARA又はDIA以外のものを受け取る場合、状態マシンは状態A1にリセットする。
・ 状態マシンが上記のいずれでもない場合、状態マシンは、状態B1のままであり、スレーブアドレスを受け取る。
・ スレーブビジー信号がアサートされる場合、状態マシンは、状態A1にリセットする。
・ 状態マシンが全呼出アドレス(ACA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
・ 状態マシンがSMバスアラーム応答アドレス(ARA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
・ 状態マシンが装置IDアドレス(DIA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
以下、(このポイントから状態Eまで)ACA,ARA及びDIAがイネーブルされると仮定する。
・ 状態マシンが、読出しビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態A1にリセットする。
・ 状態マシンが、書込みビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態Eになる。
・ 状態マシンがARA及び読出しビットを受け取るとともにローであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンがARA及び読出しビットを受け取るとともにハイであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにローであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにハイであると解釈されると、状態マシンは状態A1にリセットする。
・ 状態マシンが、書込みビットとともにDIAを受け取る場合、状態マシンは状態Hに進む。
・ 状態マシンが、読出しビットとともにDIAを受け取る場合、状態マシンは状態A1にリセットする。
・ 状態マシンが、SA,ACA,ARA又はDIA以外のものを受け取る場合、状態マシンは状態A1にリセットする。
・ 状態マシンが上記のいずれでもない場合、状態マシンは、状態B1のままであり、スレーブアドレスを受け取る。
状態E:
・ この状態において、状態マシンはACKNOWLEDGEを送出する。
・ 状態マシンは、次のSCLクロックで状態F3に進む。
・ この状態において、状態マシンはACKNOWLEDGEを送出する。
・ 状態マシンは、次のSCLクロックで状態F3に進む。
状態F3:
・ 状態F3において、状態マシンは、データ入力をシリアルデータ線からシフトする。
・ 状態マシンが、データ入力のシフトの終了時にスレーブビジー信号を受け取る場合、状態マシンは状態A1に戻り、又は、状態マシンが、スレーブビジー信号を受け取ることなくデータシフトを完了する場合、状態マシンは状態Eに戻る。
・状態マシンは、8ビット入力がシフトする間状態F3のままである。
・ 状態F3において、状態マシンは、データ入力をシリアルデータ線からシフトする。
・ 状態マシンが、データ入力のシフトの終了時にスレーブビジー信号を受け取る場合、状態マシンは状態A1に戻り、又は、状態マシンが、スレーブビジー信号を受け取ることなくデータシフトを完了する場合、状態マシンは状態Eに戻る。
・状態マシンは、8ビット入力がシフトする間状態F3のままである。
状態H:
・ この状態において、状態マシンはACKNOWLEDGEを送出する。
・ 状態マシンは、次のSCLクロックで状態F1に進む。
・ この状態において、状態マシンはACKNOWLEDGEを送出する。
・ 状態マシンは、次のSCLクロックで状態F1に進む。
状態F1:
・ この状態において、状態マシンは、DIAの第1のビットを受け取る。
・ 状態マシンは、次のSCLクロックで状態F2に進む。
・ この状態は、状態マシンのグレーコード符号化を維持するために加えられた。
・ この状態において、状態マシンは、DIAの第1のビットを受け取る。
・ 状態マシンは、次のSCLクロックで状態F2に進む。
・ この状態は、状態マシンのグレーコード符号化を維持するために加えられた。
状態F2:
・ この状態において、状態マシンは、DIAの第2のビットを受け取る。
・ 状態マシンは、次のSCLクロックで状態F3に進む。
・ この状態は、状態マシンのグレーコード符号化を維持するために加えられた。
・ この状態において、状態マシンは、DIAの第2のビットを受け取る。
・ 状態マシンは、次のSCLクロックで状態F3に進む。
・ この状態は、状態マシンのグレーコード符号化を維持するために加えられた。
図3は、本発明による第2のフォアグランド状態マシン160の状態図である。図3に示す状態は、図2と同一の表示プロトコルに従う。状態の説明は、次の通りである。
状態A2:
・ この状態マシンは、いずれもアクティブハイであるSTOP及びRESET状態において非同期的にリセットする。
・ 状態マシンは、ゲートSCLクロックを用いる。SCLクロックは、状態マシンの状態によってゲートされる。状態マシンは、「書込み」状態マシン又は「読出し」状態マシンがアイドル状態であるときにSCLを受信しない(A1及びA2)。
・ この状態マシンは、いずれもアクティブハイであるSTOP及びRESET状態において非同期的にリセットする。
・ 状態マシンは、ゲートSCLクロックを用いる。SCLクロックは、状態マシンの状態によってゲートされる。状態マシンは、「書込み」状態マシン又は「読出し」状態マシンがアイドル状態であるときにSCLを受信しない(A1及びA2)。
状態G2:
・ START状態において、状態マシンは、非同期的に状態G2に進む。
・ 次のクロックにおいて、状態マシンは、状態B2に入り、スレーブアドレスを受け取る準備をする。
・ START状態において、状態マシンは、非同期的に状態G2に進む。
・ 次のクロックにおいて、状態マシンは、状態B2に入り、スレーブアドレスを受け取る準備をする。
状態B2:
・ スレーブビジー信号がアサートされる場合、状態マシンは、状態A2にリセットする。
・ 状態マシンが全呼出アドレス(ACA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A2にリセットする。
・ 状態マシンがSMバスアラーム応答アドレス(ARA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A2にリセットする。
・ 状態マシンが装置IDアドレス(DIA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
以下、(このポイントから状態Iまで)ACA,ARA及びDIAがイネーブルされると仮定する。
・ 状態マシンが、読出しビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態Cに進む。
・ 状態マシンが、読出しビットとともにDIAを受け取ると、状態マシンは状態Jに進む。
・ 状態マシンが、書込みビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態A2にリセットする。
・ 状態マシンがARA及び読出しビットを受け取るとともにローであると解釈されると、状態マシンは状態Iに進む。
・ 状態マシンがARA及び読出しビットを受け取るとともにハイであると解釈されると、状態マシンは状態A2にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにローであると解釈されると、状態マシンは状態A2にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにハイであると解釈されると、状態マシンは状態A2にリセットする。
・ 状態マシンが、書込みビットとともにDIAを受け取る場合、状態マシンは状態A2にリセットする。
・ 状態マシンが、SA,ACA,ARA又はDIA以外のものを受け取る場合、状態マシンは状態A2にリセットする。
・ 状態マシンが上記のいずれでもない場合、状態マシンは、状態B2のままであり、スレーブアドレスを受け取る。
・ スレーブビジー信号がアサートされる場合、状態マシンは、状態A2にリセットする。
・ 状態マシンが全呼出アドレス(ACA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A2にリセットする。
・ 状態マシンがSMバスアラーム応答アドレス(ARA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A2にリセットする。
・ 状態マシンが装置IDアドレス(DIA)を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態A1にリセットする。
以下、(このポイントから状態Iまで)ACA,ARA及びDIAがイネーブルされると仮定する。
・ 状態マシンが、読出しビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態Cに進む。
・ 状態マシンが、読出しビットとともにDIAを受け取ると、状態マシンは状態Jに進む。
・ 状態マシンが、書込みビットとともにスレーブアドレス(SA)又はACAを受け取る場合、状態マシンは状態A2にリセットする。
・ 状態マシンがARA及び読出しビットを受け取るとともにローであると解釈されると、状態マシンは状態Iに進む。
・ 状態マシンがARA及び読出しビットを受け取るとともにハイであると解釈されると、状態マシンは状態A2にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにローであると解釈されると、状態マシンは状態A2にリセットする。
・ 状態マシンがARA及び書込みビットを受け取るとともにハイであると解釈されると、状態マシンは状態A2にリセットする。
・ 状態マシンが、書込みビットとともにDIAを受け取る場合、状態マシンは状態A2にリセットする。
・ 状態マシンが、SA,ACA,ARA又はDIA以外のものを受け取る場合、状態マシンは状態A2にリセットする。
・ 状態マシンが上記のいずれでもない場合、状態マシンは、状態B2のままであり、スレーブアドレスを受け取る。
状態I:
・ この状態において、状態マシンはACKNOWLEDGEを送出し、送出されるそれ自体のアドレスを有するシフトレジスタをロードする。
・ 状態マシンは、次のSCLクロックで状態D1に進む。
・ この状態において、状態マシンはACKNOWLEDGEを送出し、送出されるそれ自体のアドレスを有するシフトレジスタをロードする。
・ 状態マシンは、次のSCLクロックで状態D1に進む。
状態D1:
・この状態は、グレーコードを有する全ての状態遷移をエンコードできるようにするためにのみ追加された。
・ スレーブアドレスの第1のビットがこの状態で送出される。
・ スレーブビジー信号がここで検出されると、状態マシンは状態A2にリセットする。
・この状態は、グレーコードを有する全ての状態遷移をエンコードできるようにするためにのみ追加された。
・ スレーブアドレスの第1のビットがこの状態で送出される。
・ スレーブビジー信号がここで検出されると、状態マシンは状態A2にリセットする。
状態D4:
・ この状態において、状態マシンはACKNOWLEDGEを送出する。
・ 状態マシンは、次のSCLクロックで状態F1に進む。
・ この状態において、状態マシンはACKNOWLEDGEを送出する。
・ 状態マシンは、次のSCLクロックで状態F1に進む。
状態F1:
・ この状態において、状態マシンは、R/W#ビットに従ってスレーブアドレスの残りの6ビットを送出する。
・ スレーブビジー信号がここで検出されると、状態マシンは状態A2にリセットする。
・ 8ビット全てを送出した後、状態マシンは、状態Kに進む。
・ この状態において、状態マシンは、R/W#ビットに従ってスレーブアドレスの残りの6ビットを送出する。
・ スレーブビジー信号がここで検出されると、状態マシンは状態A2にリセットする。
・ 8ビット全てを送出した後、状態マシンは、状態Kに進む。
状態K:
・ この状態は、“dia_ara_sm”とともに、アラーム応答アドレスプロトコルの終了を識別する制御信号を発生する。
・ 状態マシンは、次のSCLクロックで状態A2に進む。
・ この状態は、“dia_ara_sm”とともに、アラーム応答アドレスプロトコルの終了を識別する制御信号を発生する。
・ 状態マシンは、次のSCLクロックで状態A2に進む。
状態C:
・ この状態において、状態マシンはACKNOWLEDGEを送出し、送出されるそれ自体のアドレスを有するシフトレジスタをロードする。
・ 状態マシンは、次のSCLクロックで状態D2に進む。
・ この状態において、状態マシンはACKNOWLEDGEを送出し、送出されるそれ自体のアドレスを有するシフトレジスタをロードする。
・ 状態マシンは、次のSCLクロックで状態D2に進む。
状態D2:
・ この状態において、状態マシンはデータをデータ線に送出する。状態マシンは、合計8ビットを送出する。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信する場合、状態マシンは、8クロックサイクル後に状態Cに戻る。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信しない場合、状態マシンは、状態A2にリセットする。
・ 状態マシンがスレーブビジー信号を検出する場合、状態マシンは、状態A2にリセットする。
・ この状態において、状態マシンはデータをデータ線に送出する。状態マシンは、合計8ビットを送出する。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信する場合、状態マシンは、8クロックサイクル後に状態Cに戻る。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信しない場合、状態マシンは、状態A2にリセットする。
・ 状態マシンがスレーブビジー信号を検出する場合、状態マシンは、状態A2にリセットする。
状態J:
・ この状態において、状態マシンはACKNOWLEDGEを送出し、装置IDバイトを有するシフトレジスタをロードする。
・ 状態マシンは、次のSCLクロックで状態D3に進む。
・ この状態において、状態マシンはACKNOWLEDGEを送出し、装置IDバイトを有するシフトレジスタをロードする。
・ 状態マシンは、次のSCLクロックで状態D3に進む。
状態D3:
・ この状態において、状態マシンはデータをデータ線に送出する。状態マシンは、合計8ビットを送出する。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信する場合、状態マシンは、8クロックサイクル後に状態Jに戻る。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信しない場合、状態マシンは、状態A2にリセットする。
・ 状態マシンがスレーブビジー信号を検出する場合、状態マシンは、状態A2にリセットする。
・ この状態において、状態マシンはデータをデータ線に送出する。状態マシンは、合計8ビットを送出する。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信する場合、状態マシンは、8クロックサイクル後に状態Jに戻る。
・ 状態マシンが8番目のクロックサイクルの後にACKNOWLEDGEを受信しない場合、状態マシンは、状態A2にリセットする。
・ 状態マシンがスレーブビジー信号を検出する場合、状態マシンは、状態A2にリセットする。
図4〜7は、DIA_ARA_SMを付したバックグランド状態マシン170の状態図を示す。図4において、コネクタ410を、図4のダイヤグラムと図5のコネクタ410との間の接続を表す図形的な注釈として示す。図4において、コネクタ420を、図4のダイヤグラムと図6のコネクタ420との間の接続を表す図形的な注釈として示す。図5において、コネクタ430を、図5のフローチャートの左下と右上との間の接続を表す図5の左下及び右上の図形的な注釈として示す。図6において、コネクタ440を、図6のフローチャートの左下と右上との間の接続を表す図6の左下及び右上の図形的な注釈として示す。図6において、コネクタ450を、図6のダイヤグラムと図7のコネクタ450との間の接続を表す図形的な注釈として示す。図7において、コネクタ460を、図7のフローチャートの左下と右上との間の接続を表す図7の左下及び右上の図形的な注釈として示す。状態の説明は、次の通りである。
状態IDLE_DIA_ARA:
・ 状態マシンは、いずれもアクティブローであるRESET状態又はSTOP状態に応じて非同期的にこの状態に入る。
・ 状態マシンが、I2CSM−Wが状態Hであることを検出する場合、状態マシンは、RCV_DIA_SAに進む。
・ 状態マシンが、I2CSM−Rが状態Iであることを検出する場合、状態マシンは、状態SND_SA6に進む。
・ それ以外の場合、状態マシンは、状態IDLE_DIA_ARAのままである。
・ 状態マシンは、いずれもアクティブローであるRESET状態又はSTOP状態に応じて非同期的にこの状態に入る。
・ 状態マシンが、I2CSM−Wが状態Hであることを検出する場合、状態マシンは、RCV_DIA_SAに進む。
・ 状態マシンが、I2CSM−Rが状態Iであることを検出する場合、状態マシンは、状態SND_SA6に進む。
・ それ以外の場合、状態マシンは、状態IDLE_DIA_ARAのままである。
状態RCV_DIA_SA
・ 状態マシンは、I2CSM−Wが状態F1,F2又はF3のいずれであるかを検出するまでこの状態のままである。
・ 状態マシンが、I2CSM−Wが状態Eであることを検出すると、状態マシンは、状態ACK_DIA_SAに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ 状態マシンは、I2CSM−Wが状態F1,F2又はF3のいずれであるかを検出するまでこの状態のままである。
・ 状態マシンが、I2CSM−Wが状態Eであることを検出すると、状態マシンは、状態ACK_DIA_SAに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態ACK_DIA_SA:
・ この状態において、I2CSM−WがG1にある場合、状態マシンは、状態REP_Sに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態において、I2CSM−WがG1にある場合、状態マシンは、状態REP_Sに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態REP_S:
・ この状態において、I2CSM−WがB1にある場合、状態マシンは、状態RCV_DIA_Rに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態において、I2CSM−WがB1にある場合、状態マシンは、状態RCV_DIA_Rに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態RCV_DIA_R:
・ I2CSM−Wが状態B1である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ I2CSM−Wが状態B1である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態PRE_SND_BYTE1:
・ この状態において、I2Cバス上で送信すべきDEVICE ID BYTE1をロードするために制御信号を発生する。
・ この状態において、I2CSM−Rが状態D3である場合、状態マシンは、状態SND_BYTE1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態において、I2Cバス上で送信すべきDEVICE ID BYTE1をロードするために制御信号を発生する。
・ この状態において、I2CSM−Rが状態D3である場合、状態マシンは、状態SND_BYTE1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_BYTE1:
・ I2CSM−Rが状態D3である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE2に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ I2CSM−Rが状態D3である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE2に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態PRE_SND_BYTE2:
・ この状態において、I2Cバス上で送信すべきDEVICE ID BYTE2をロードするために制御信号を発生する。
・ この状態において、I2CSM−Rが状態D3である場合、状態マシンは、状態SND_BYTE2に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態において、I2Cバス上で送信すべきDEVICE ID BYTE2をロードするために制御信号を発生する。
・ この状態において、I2CSM−Rが状態D3である場合、状態マシンは、状態SND_BYTE2に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_BYTE2:
・ I2CSM−Rが状態D3である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE3に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ I2CSM−Rが状態D3である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE3に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態PRE_SND_BYTE3:
・ この状態において、I2Cバス上で送信すべきDEVICE ID BYTE3をロードするために制御信号を発生する。
・ この状態において、I2CSM−Rが状態D3である場合、状態マシンは、状態SND_BYTE3に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態において、I2Cバス上で送信すべきDEVICE ID BYTE3をロードするために制御信号を発生する。
・ この状態において、I2CSM−Rが状態D3である場合、状態マシンは、状態SND_BYTE3に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_BYTE3:
・ I2CSM−Rが状態D3である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ I2CSM−Rが状態D3である間、状態マシンは、この状態のままである。
・ I2CSM−Rが状態Jである場合、この状態マシンは、PRE_SND_BYTE1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA6:
・ この状態は、スレーブアドレスの6番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D1である場合、この状態は、状態SND_SA5に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの6番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D1である場合、この状態は、状態SND_SA5に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA5:
・ この状態は、スレーブアドレスの5番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA4に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの5番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA4に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA4:
・ この状態は、スレーブアドレスの4番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA3に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの4番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA3に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA3:
・ この状態は、スレーブアドレスの3番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA2に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの3番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA2に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA2:
・ この状態は、スレーブアドレスの2番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの2番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA1に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA1:
・ この状態は、スレーブアドレスの1番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA0に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの1番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_SA0に進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_SA0:
・ この状態は、スレーブアドレスの0番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_RWNに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスの0番目のビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態SND_RWNに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_RWN:
・ この状態は、スレーブアドレスのR/W#ビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態RCV_NACKに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ この状態は、スレーブアドレスのR/W#ビットのI2Cバス上での送出が成功したか否かをチェックするために用いられる。
・ I2CSM−Rが状態D4である場合、この状態は、状態RCV_NACKに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態SND_RWN:
・ I2CSM−Rが状態Kである場合、この状態は、状態REL_INT_Nに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
・ I2CSM−Rが状態Kである場合、この状態は、状態REL_INT_Nに進む。
・ それ以外の場合には、状態マシンは、状態IDLE_DIA_ARAに戻る。
状態REL_INT_N:
・状態マシンは、状態IDLE_DIA_ARAに戻る。
・状態マシンは、状態IDLE_DIA_ARAに戻る。
図8は、本発明の実施の形態による状態マシンを用いてI2Cバス上で機能強化されたスレーブ/マスタインタフェースを実現する方法800のフローチャートである。方法800は、I2Cスレーブ装置のフォアグランドにおける第1の状態マシンの実行810及びバックグランドにおける第2の状態マシンの実行820を有する。830において、スレーブ装置の動作制御は、スレーブ装置の形態を実現するために第1の状態マシンから第2の状態マシンに転送される。形態、例えば、機能強化された動作840が実行され、その後、動作制御が第1の状態マシンに戻される(850)。用語「第1の状態マシン」は、図8に関連して、図1〜3に示す第1及び第2の状態マシンのモノリシックな実施の形態を含むことができる。
ALL CALLや装置IDのような機能強化された形態は、出願人が所有する米国特許出願第60/676,164号及び米国特許出願第60/676,104号(代理人整理番号PH000772US1及びPH000771US1)で更に詳しく説明されており、ここに参照することによりここに組み込む。
ハードウェア、ファームウェア、ソフトウェア又はその組合せを、ここで説明するような状態マシンを用いてI2Cバス上で機能強化されたスレーブ/マスタインタフェースを実現する種々の実施の形態を実施するのに用いることができる。本発明に関連して用いられるマスタ装置の機能は、説明したI2Cマスタ装置に存在してもよく、又は、シリアルデータ通信システム100に取り付けられたスタンドアローン又はネットワーク化されたコンピュータに存在してもよい。図1に示すシリアルデータ通信システム100は、本発明の動作を実施するためにそのような通信システム、コンピュータ又は他のコンピュータ実行装置との通信に用いることができる構造の一例である
本発明によるI2Cバス上のI2C通信を制御するのに適した図1のマスタ装置130の例は、典型的には、ランダムアクセスメモリ(RAM)及び/又は読出し専用メモリ(ROM)の一部の変形に結合した中央処理装置(CPU)を有する。ROMを、プログラマブルROM(PROM)やイレーザブルPROMのようなプログラム記憶用の他の記憶媒体とすることもできる。プロセッサは、制御信号、通信信号等を提供するために入力/出力(I/O)回路及び/又は他のバスを通じて他の内部素子及び外部素子とやり取りを行うことができる。
マスタ装置130は、ハードディスクドライブ、フレキシブルディスクドライブ、DC−ROMドライブ、及び情報を読出し及び/又は記憶することができるDVDのような他のハードディスクを含む一つ以上のデータ記憶装置を有することもできる。一実施の形態において、状態マシンを用いてI2Cバス上でスレーブ/マスタインタフェースをコツ減するソフトウェアを、CD−ROM、ディスケット、又は携帯型で情報を記憶することができる他の形態の媒体に記憶し及び分配することができる。これら記憶媒体を、CD−ROMドライブ、ディスクドライブ等の装置に挿入し及び当該装置から読み出すことができる。ソフトウェアを、インターネットのようなネットワークを通じて電気的にダウンロードするようにデータ信号を通じて演算装置に送信することもできる。さらに、既に説明したように、本発明に関連する機能を実行するソフトウェアを、ROMのような演算装置の内部メモリに格納することもできる。
コンピュータ読出し可能なプログラムコードを有する結果的に得られるあらゆる(一つ以上の)プログラムを、記憶装置や送信装置のような一つ以上のコンピュータ利用可能な媒体内で実行することができ、これによって、本発明によるコンピュータプログラム又は製品を形成する。ここで用いるような用語「コンピュータ読出し可能媒体」、「製品」、「コンピュータプログラム」又は他の同様な用語は、あらゆる記憶装置のようなあらゆるコンピュータ読出し可能な媒体又はあらゆる送信装置で永久に又は一時的に存在するコンピュータプログラムを含むことを意図する。
(添付した特許請求の範囲、要約書及び図面を含む)本明細書で開示した各形態を、特に説明しない限り同一、等価又は同様な目的で体感することができる。したがって、特に説明しない限り、開示した各形態は、等価の又は同様な形態の一例に過ぎない。
本発明は、これまで説明した特定の例に制限されるものと考えるべきではない。本発明を適用することができる種々の変更、等価のプロセス及び種々の構造は、本発明の範囲内である。例えば、本発明による状態マシンを用いたI2Cバス上での機能強化されたスレーブ/マスタインタフェースの実施の形態を、SMバスや他のバス配置のような共通バス上の装置間で通信を行う同様に構成された1方向又は2方向インタフェースを用いて実施することができる。そのような変形を、添付した特許請求の範囲で適正に説明するような請求の範囲に記載されている発明の一部と考えることができる。
Claims (4)
- I2Cシリアルデータ転送バスを具えるデータ通信システムであって、前記I2Cシリアルデータ転送バスが、通信プロトコルを実現するために、サイクル的に繰り返す立上り縁及び立下り縁を有するクロック信号を提供するクロック線と、シリアルデータ線とを具え、前記データ通信システムが、スレーブ装置を具え、前記スレーブ装置が、前記クロック信号の立上り縁に応答する第1及び第2の状態マシンと、前記クロック信号の立下り縁に応答し、前記第1及び第2の状態マシンから独立して動作する第3の状態マシンとを具え、前記第1の状態マシンと前記第2の状態マシンのうちの一方が、前記通信プロトコルの書込み状態に従い、前記第1の状態マシンと前記第2の状態マシンのうちの他方が、前記通信プロトコルの読出し状態に従うデータ通信システム。
- 請求項1記載のデータ通信システムにおいて、前記第1及び第2の状態マシンが、I2C STOP状態、I2C RESET状態又はSTART状態で非同期的にリセットすることを特徴とするデータ通信システム。
- 請求項1記載のデータ通信システムにおいて、前記第1及び第2の状態マシンが、予め決定された状態の下で、前記スレーブ装置の動作制御を前記第3の状態マシンに転送することを特徴とするデータ通信システム。
- 請求項1記載のデータ通信システムにおいて、前記スレーブ装置の動作制御を前記第3の状態マシンに転送するまで、前記第1及び第2の状態マシンが、前記スレーブ装置の想定される動作制御をフォアグランドで実行することを特徴とするデータ通信システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67609505P | 2005-04-29 | 2005-04-29 | |
PCT/IB2006/051365 WO2006117752A1 (en) | 2005-04-29 | 2006-05-01 | I2c slave/master interface enhancement using state machines |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008539645A true JP2008539645A (ja) | 2008-11-13 |
Family
ID=36928563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008508409A Withdrawn JP2008539645A (ja) | 2005-04-29 | 2006-05-01 | 状態マシンを用いたi2cスレーブ/マスタインタフェース機能強化 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7562172B2 (ja) |
EP (1) | EP1877911B1 (ja) |
JP (1) | JP2008539645A (ja) |
CN (1) | CN100576193C (ja) |
AT (1) | ATE443892T1 (ja) |
DE (1) | DE602006009388D1 (ja) |
WO (1) | WO2006117752A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014216738A (ja) * | 2013-04-24 | 2014-11-17 | セイコーエプソン株式会社 | 通信回路、物理量測定装置、電子機器、移動体、通信方法 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739435B2 (en) * | 2006-12-29 | 2010-06-15 | Texas Instruments Incorporated | System and method for enhancing I2C bus data rate |
FR2939926B1 (fr) * | 2008-12-17 | 2010-12-10 | St Microelectronics Rousset | Transmission sur bus i2c |
WO2011106016A1 (en) * | 2010-02-26 | 2011-09-01 | Hewlett-Packard Development Company, L.P. | Restoring stability to an unstable bus |
US9092582B2 (en) * | 2010-07-09 | 2015-07-28 | Cypress Semiconductor Corporation | Low power, low pin count interface for an RFID transponder |
CN102521077B (zh) * | 2011-12-01 | 2013-12-25 | 广州中大微电子有限公司 | 一种文件防插拔写入方法及系统 |
JP6178060B2 (ja) * | 2012-09-26 | 2017-08-09 | 日本電産サンキョー株式会社 | 情報処理装置およびデータ通信方法 |
US9966584B2 (en) | 2013-03-11 | 2018-05-08 | Atieva, Inc. | Bus bar for battery packs |
US9946675B2 (en) | 2013-03-13 | 2018-04-17 | Atieva, Inc. | Fault-tolerant loop for a communication bus |
US10089274B2 (en) | 2013-03-13 | 2018-10-02 | Atieva, Inc. | Dual voltage communication bus |
US9229889B2 (en) * | 2013-03-13 | 2016-01-05 | Atieva, Inc. | Dual voltage communication bus |
US9514086B2 (en) | 2013-03-13 | 2016-12-06 | Atieva, Inc. | Configuration switch for a broadcast bus |
US9041454B2 (en) | 2013-03-15 | 2015-05-26 | Atieva, Inc. | Bias circuit for a switched capacitor level shifter |
US9448965B2 (en) * | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
CN103714029B (zh) * | 2013-05-07 | 2015-03-25 | 深圳市汇春科技有限公司 | 新型二线同步通信协议及应用 |
CN103631161A (zh) * | 2013-09-17 | 2014-03-12 | 北京理工大学 | 一种基于状态机的滤波方法 |
CN105930294A (zh) * | 2016-06-25 | 2016-09-07 | 张宏彬 | 一种基于状态机的数字集成电路总线系统 |
KR102618563B1 (ko) | 2016-07-01 | 2023-12-27 | 삼성전자주식회사 | 집적 회로 장치와 이를 포함하는 전자 장치 |
FR3100349B1 (fr) * | 2019-08-28 | 2022-07-08 | Stmicroelectronics Grand Ouest Sas | Communication sur bus I2C |
CN112445743B (zh) * | 2019-09-04 | 2024-03-22 | 珠海格力电器股份有限公司 | 一种去除毛刺的方法、装置及状态机 |
CN111208892B (zh) * | 2020-01-10 | 2022-04-01 | 江苏钜芯集成电路技术股份有限公司 | 一种用串行i2c信号对芯片系统实现复位的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799233B1 (en) * | 2001-06-29 | 2004-09-28 | Koninklijke Philips Electronics N.V. | Generalized I2C slave transmitter/receiver state machine |
US7366809B2 (en) * | 2004-04-12 | 2008-04-29 | Texas Instruments Incorporated | Pipelined stop, start, address byte, and data byte technique and circuit for I2C logic system |
US7493433B2 (en) * | 2004-10-29 | 2009-02-17 | International Business Machines Corporation | System, method and storage medium for providing an inter-integrated circuit (I2C) slave with read/write access to random access memory |
-
2006
- 2006-05-01 WO PCT/IB2006/051365 patent/WO2006117752A1/en active Application Filing
- 2006-05-01 DE DE602006009388T patent/DE602006009388D1/de active Active
- 2006-05-01 CN CN200680023204A patent/CN100576193C/zh not_active Expired - Fee Related
- 2006-05-01 JP JP2008508409A patent/JP2008539645A/ja not_active Withdrawn
- 2006-05-01 EP EP06728105A patent/EP1877911B1/en active Active
- 2006-05-01 US US11/913,067 patent/US7562172B2/en active Active
- 2006-05-01 AT AT06728105T patent/ATE443892T1/de not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014216738A (ja) * | 2013-04-24 | 2014-11-17 | セイコーエプソン株式会社 | 通信回路、物理量測定装置、電子機器、移動体、通信方法 |
Also Published As
Publication number | Publication date |
---|---|
US7562172B2 (en) | 2009-07-14 |
DE602006009388D1 (de) | 2009-11-05 |
ATE443892T1 (de) | 2009-10-15 |
WO2006117752A1 (en) | 2006-11-09 |
US20080195783A1 (en) | 2008-08-14 |
EP1877911B1 (en) | 2009-09-23 |
CN101208676A (zh) | 2008-06-25 |
EP1877911A1 (en) | 2008-01-16 |
CN100576193C (zh) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008539645A (ja) | 状態マシンを用いたi2cスレーブ/マスタインタフェース機能強化 | |
US7979597B2 (en) | Programming parallel I2C slave devices from a single I2C data stream | |
EP1877916B1 (en) | Dynamic 12c slave device address decoder | |
US7774528B2 (en) | Device identification coding of inter-integrated circuit slave devices | |
JP2008539496A (ja) | I2cスレーブ装置の複数のi/oバンクの同時制御 | |
JP2008539644A (ja) | プログラマブル書込みトランザクションサイクルを有するi2cスレーブ装置 | |
CN106462526B (zh) | 用于多主总线协议的方法及装置 | |
KR20030033040A (ko) | 인터페이스 디바이스 및 이를 포함하는 디바이스 및 통신방법 | |
JP2008539495A (ja) | サービスに対する要求をラッチするスレーブ装置 | |
CN106201973B (zh) | 一种单线串行通信接口的方法与系统 | |
TW202143061A (zh) | 促進與積體電路間(ic)反向相容性之改良式積體電路間(i3c)集線器 | |
CN107783793A (zh) | 自动辨识主机操作系统的方法与usb装置 | |
CN101901113B (zh) | 串行附接小型计算机系统接口扩充卡设定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20081015 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20081014 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20081106 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090901 |