(57)【要約】一実施の形態によれば、通信プロトコルを実現するのに用いられるシリアルデータ線及びクロック線を有するシリアルデータ転送バス（１２５）を用いた通信システムは、状態バスを用いるＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを組み入れる。通信システムは、クロック信号（１３４）の立上り縁に応答する第１及び第２の状態マシン（１５０，１６０）と、クロック信号の立下り縁の応答し、第１及び第２の状態マシンから独立して動作する第３の状態マシンとを有する。第１の状態マシンと第２の状態マシンのうちの一方は、通信プロトコルの書込み状態に従い、第１の状態マシンと第２の状態マシンのうちの他方は、通信プロトコルの読出し状態に従う。
2008539645.tif 000002
【特許請求の範囲】
【請求項１】
Ｉ２Ｃシリアルデータ転送バスを具えるデータ通信システムであって、前記Ｉ２Ｃシリアルデータ転送バスが、通信プロトコルを実現するために、サイクル的に繰り返す立上り縁及び立下り縁を有するクロック信号を提供するクロック線と、シリアルデータ線とを具え、前記データ通信システムが、スレーブ装置を具え、前記スレーブ装置が、前記クロック信号の立上り縁に応答する第１及び第２の状態マシンと、前記クロック信号の立下り縁に応答し、前記第１及び第２の状態マシンから独立して動作する第３の状態マシンとを具え、前記第１の状態マシンと前記第２の状態マシンのうちの一方が、前記通信プロトコルの書込み状態に従い、前記第１の状態マシンと前記第２の状態マシンのうちの他方が、前記通信プロトコルの読出し状態に従うデータ通信システム。
【請求項２】
請求項１記載のデータ通信システムにおいて、前記第１及び第２の状態マシンが、Ｉ２Ｃ  ＳＴＯＰ状態、Ｉ２Ｃ  ＲＥＳＥＴ状態又はＳＴＡＲＴ状態で非同期的にリセットすることを特徴とするデータ通信システム。
【請求項３】
請求項１記載のデータ通信システムにおいて、前記第１及び第２の状態マシンが、予め決定された状態の下で、前記スレーブ装置の動作制御を前記第３の状態マシンに転送することを特徴とするデータ通信システム。
【請求項４】
請求項１記載のデータ通信システムにおいて、前記スレーブ装置の動作制御を前記第３の状態マシンに転送するまで、前記第１及び第２の状態マシンが、前記スレーブ装置の想定される動作制御をフォアグランドで実行することを特徴とするデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、通信装置及び方法に関し、特に、状態マシンを用いたＩ２Ｃバス上のマスタ／スレーブインタフェースを機能強化する方法及び装置に関する。
【背景技術】
【０００２】
フィリップス社によって開発されたアイ・スクエアード・シー（Ｉ２Ｃ）バスによって、集積回路は、簡単な２方向２ワイヤバス（並びに電源及びグランド）を通じて互いに直接やりとりを行うことができる。装置は、バス上の二つのワイヤの各々と、データ通信用の一つのシリアルデータ線（ＳＤＡ）と、装置間のデータ通信の制御及び同期用の他のシリアルクロック線（ＳＣＬ）とに接続する。各装置は、他の装置の各々に並列接続され、バスラインの各々、ＳＤＡ及びＳＣＬは、バス上の全ての線のワイヤードアンドとして機能する。各装置の出力部は、オープンコレクタ／オープンドレイン装置として形成され、一つ以上のプルアップトランジスタは、バスが休止状態にある間にバス上で「ソフト」論理ハイ値を維持する。装置がバスへのアクセスを所望する場合、装置は、導通状態において接地電位になるオープンコレクタ／オープンドレイン装置を通じて、バスを論理ロー値にする。
【０００３】
Ｉ２バスに接続された各装置は、アドレスによって識別可能であり、送信機、受信機又はその両方として動作することができる。データ転送は、マスタ−スレーブ通信プロトコルを用いて行われる。マスタは、データ転送を開始するとともに転送を許可するためのクロック信号を発生する装置である。アドレス指定される任意の装置は、この転送のためのスレーブであると考えられる。データ転送を、データをスレーブに転送（ここでは、「書込み」と称する。）し又はデータをスレーブから要求（ここでは、「読出し」と称する。）するマスタによって開始することができる。例えば、表示スクリーンのような出力装置は、典型的には、データ転送を開始することができず、したがって、スレーブ装置としてのみ動作するよう形成される。それに対して、マイクロプロセッサは、典型的には、状況に応じてマスタ又はスレーブとして動作するよう形成される。
【０００４】
休止状態において、ＳＤＡバスラインとＳＣＬバスラインは、両方とも論理ハイ状態（ここでは、「ハイ」又は「１の論理状態」と称する。）となる。マスタは、ＳＣＬラインがハイである間にＳＤＡライン上での論理ロー状態（個々では、「ロー」又は「０の論理状態」と称する。）への遷移をアサートすることによってデータ転送を開始する。これは、開始（ＳＴＡＲＴ）状態と称される。その後、マスタは、データ転送の同期を制御するためにＳＣＬラインをトグリングする。データ値の変化は、ＳＣＬクロックがローであるときにＳＤＡラインで生じ、ＳＤＡラインの状態は、ＳＣＬクロックがハイであるときのみ有効であると考えられる。
【０００５】
同一転送セッション内で一連のデータ転送を行うために複数のＳＴＡＲＴをアサートすることができる。一般に、各データ転送は、データ転送の指定された受取人からの承認を必要とする。データ転送を終了するために、ホストは、ＳＣＬクロックがハイである間にＳＤＡライン上でのロー−ハイ遷移をアサートする。その後、任意の装置は、既に説明したように、ＳＤＡライン上でのハイ−ロー遷移をアサートすることによってマスタとしてのバスの制御を仮定することができる。言及を簡略にするために、ここでは、用語「アサート」を、特定の論理状態の実行又は実行の試みに対して用いる。論理ハイ状態の遷移の一例において、これは、典型的には、アサート装置によって強要されたプルダウン状態からバスを解放することによって与えられる。このような論理ハイ状態のアサートによって、バス上の上記プルアップ装置は、他の装置もプルダウン状態を強いられない場合にはバスを論理ハイ状態にする。
【０００６】
Ｉ２Ｃデータ転送の一般的なフォーマットは、Ｉ２Ｃバスを形成するＳＤＡライン及びＳＣＬライン上の信号を伴う。ＳＴＡＲＴ状態（Ｓ）は、ＳＣＬラインがハイである間のＳＤＡライン上の信号のハイ−ロー遷移に対応する。ＳＴＡＲＴ後、ホストは、読出し／非書込みインジケータに続く通常は７ビットのアドレスを送信する。アドレス及びデータ転送の方向（Ｒ／Ｗ−）の送信後、ホストは、ＳＤＡラインを解放し、論理ハイレベルまでの上昇を許容する。スレーブ装置がアドレスを識別する場合、スレーブ装置は、バスをローにすることによって肯定応答信号（ＡＣＫ）を送信する。したがって、ホストがＳＤＡラインを解放するときにロー信号が存在しないことは、否定応答（ＮＡＫ）であることを表す。アドレスが、ＳＤＡがローであることを通じて承認される場合、送信装置はデータを送信する。データ転送の方向が、ホストに対して「読出し」である場合、スレーブ装置が送信装置となる。データ転送の方向が、ホストに対して「書込み」である場合、マスタ装置が送信装置となる。送信装置は、ＳＤＡラインの制御を解放し、受信装置は、ＳＤＡラインの論理ロー値をアサートすることによってデータの受信を承認する。データが承認される場合、送信器は追加のデータを送信する。このプロセスは、データの全部が送信されるまで又は送信データアイテムが承認されなくなるまで継続する。その後、マスタは、ＳＴＡＲＴ信号を再アサートすることができ、上記プロセスをくり返し、又は、このデータ転送セッションを終了するためにＳＴＯＰ信号（Ｐ）をアサートすることができる。
【０００７】
上記インターフェースプロトコルを、種々の方法で実現することができる。Ｉ２Ｃインタフェースのプログラム又は設計のための開発時間を最小にするために、種々の汎用インタフェース案が公表されている。“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は、Ｉ２Ｃ装置で実現するためのＩ２Ｃマスタインタフェース及びスレーブインタフェースを開示し、参照によりここに組み込まれる。検証されたＩ２Ｃインタフェースを設けることによって、システム設計者は、Ｉ２Ｃ仕様及びプロトコルの詳細を指定する必要がない。この論文のマスタインタフェース及びスレーブインタフェースは、状態マシンに基づく。状態マシンに基づくシステム及び方法は、米国特許第６，７９９，２３３号に更に記載されており、参照によりここに組み込まれる。
【発明の開示】
【０００８】
本発明の種々の態様は、上記課題を指摘し及び解決するように状態マシンを用いたＩ２Ｃインタフェースを機能強化する方法及び装置を対象とする。
【０００９】
一実施の形態によれば、本発明は、通信プロトコルを実現するのに用いられるシリアルデータ線及びクロック線を有するＩ２Ｃシリアルデータ転送バスを用いる通信システム及び／又は方法を対象とする。通信システムは、クロック信号の立上り縁に応答する第１及び第２の状態マシンと、クロック信号の立下り縁の応答し、第１及び第２の状態マシンから独立して動作する第３の状態マシンとを有する。第１の状態マシンと第２の状態マシンのうちの一方は、通信プロトコルの書込み状態に従い、第１の状態マシンと第２の状態マシンのうちの他方は、通信プロトコルの読出し状態に従う。
【００１０】
本発明の上記要約は、本発明の各実施の形態及び各実現を説明することを意図するものではない。本発明の利点及び実現は、詳細な説明、特許請求の範囲及び添付図面を参照することによって、本発明の完全の理解のために明らかになる。
【００１１】
本発明を、添付図面に関連して本発明の種々の実施の形態の詳細な説明を考察することによって理解することができる。
【発明を実施するための最良の形態】
【００１２】
本発明が種々の変更及び変形に従う間、その詳細を、図面中で例示して示すとともに詳細に説明する。しかしながら、本発明が記載した特定の実施の形態に限定されるものでないことを理解すべきである。それに対して、添付した特許請求の範囲によって規定された発明の範囲内にある全ての変更、等価物及び変形をカバーすることを意図する。
【００１３】
本発明は、一般に、状態マシンを用いたＩ２Ｃバス上のマスタ／スレーブインタフェースを機能強化する方法及び装置に適用可能である。本発明は、アイ・スクエアード・シー（Ｉ２Ｃ）シリアルデータ通信バスに特に有利であることがわかり、システム管理バス（ＳＭバス）アーキテクチャ及び／又はプロトコル又は他のシリアルデータ通信システムのような他のバス及び通信プロトコルにも有利である。説明のために、本発明を、スレーブ装置に対する通信を制御するマスタ装置を有するＩ２Ｃに関連して説明するが、本発明は、これに限定されるものではない。
【００１４】
マスタは、Ｉ２ＣバスアーキテクチャのＩ２Ｃスレーブとの通信を制御する。Ｉ２Ｃスレーブは、携帯電話、ＰＤＡ及びスマートホンからＬＣＤ  ＴＶ、医療機器、ゲーム及び他のアプリケーションまでの範囲の分野において種々のアプリケーションを見つける。Ｉ２Ｃデータバスの装置の新たな特徴は、マスタ装置とスレーブ装置との間の通信に対して新たな問題を表す。本発明による複数の状態マシンの同時の使用を、新たな特徴によって表された問題の一部を指摘するのに用いることができる。これら状態マシンは、データ転送用の制御信号の設計及び発生を簡素化し、他の特徴を組み込む「グルー」論理の使用を取り除く。
【００１５】
本発明の特定の実施の形態において、二つの状態マシンが、スレーブ装置のフォアグランドで実行するとともにＳＣＬクロックの立上り縁で応答し、一つの状態マシンが、バックグランドで実行するとともにＳＣＬクロックの立下り縁で応答する。状態マシンに対してグレーコードを維持するために、一つのモノリシック状態マシンの代わりに、フォアグランドの二つの状態マシンが存在する。状態マシンをグレーコード化することによって、状態マシンの状態に基づいて発生したデータ出力の異常を除去する。
【００１６】
これまで説明したように、バックグランドで実行するとともにＳＣＬクロックの立下り縁で応答する一つの状態マシンが存在する。フォアグランドで実行する状態マシンとバックグランドで実行する状態マシンとがクロックの互いに逆の縁で応答することによって、バックグランドの状態マシンの入力の競合状態を除去する。
【００１７】
一実施の形態によれば、本発明は、通信プロトコルを実現するのに用いられるシリアルデータ線及びクロック線を有するＩ２Ｃシリアルデータ転送バスを用いる通信システムを対象とする。通信システムは、クロック信号の立上り縁に応答する第１及び第２の状態マシンと、クロック信号の立下り縁の応答し、第１及び第２の状態マシンから独立して動作する第３の状態マシンとを有する。第１の状態マシンと第２の状態マシンのうちの一方は、通信プロトコルの書込み状態に従い、第１の状態マシンと第２の状態マシンのうちの他方は、通信プロトコルの読出し状態に従う。
【００１８】
図１は、本発明の実施の形態による状態マシンを用いてＩ２Ｃバス上で機能強化されたスレーブ／マスタインタフェースを実現するデータ通信システム１００のブロック図である。ＳＤＡライン１１０及びＳＣＬライン１２０は、Ｉ２Ｃデータバス１２５として配置される。マスタ装置１３０及びスレーブ装置１４０は、Ｉ２Ｃデータバス１２５に取り付けられる。マスタ装置１３０は、ＳＣＬライン１２０及びＳＤＡライン１１０にそれぞれ電気的に接続されたクロック接続１３４及びデータ接続１３２を用いてＩ２Ｃデータバス１２５に電気的に接続される。
【００１９】
スレーブ装置１４０は、ＳＣＬライン１２０及びＳＤＡライン１１０にそれぞれ電気的に接続されたクロック接続１４４及びデータ接続１４２を用いてＩ２Ｃデータバス１２５に電気的に接続される。スレーブ装置は、フォアグランドで実行する第１の状態マシン１５０及び第２の状態マシン１６０を有する。便宜上、第１の状態マシン１５０は、Ｉ２Ｃ状態マシンＷＲＩＴＥ（Ｉ２ＣＳＭ−Ｗ）として設計され、第２の状態マシン１６０は、Ｉ２Ｃ状態マシンＲＥＡＤ（Ｉ２ＣＳＭ−Ｒ）として設計される。二つの状態マシンを、フォアグランドで実行するとともにＳＣＬの立上り縁で起動する状態マシンとする。（図４〜７に示す）バックグランド状態マシン１７０は、ＤＩＡ＿ＡＲＡ＿ＳＭとして設計され、バックグランドで実行するとともにＳＣＬの立下り縁で起動する状態マシンである。
【００２０】
Ｉ２ＣＳＭ−Ｗ状態マシン及びＩ２ＣＳＭ−Ｒ状態マシンは、Ｉ２Ｃバスによってシミュレートされ、通信プロトコルを解釈する。ＤＩＡ＿ＡＲＡ＿ＳＭ状態マシンは、後に更に説明する装置ＩＤアドレスに対する応答やＳＭバスアラーム応答のような新たな態様の実現を容易にする。
【００２１】
図２は、第１の状態マシン１５０の状態図である。図示のために、状態マシンを、標準的なＩ２Ｃバスに対する接続（例えば、ＳＤＡ，ＳＣＬ、グランド（ＧＮＤ）、電源（ＶＤＤ））及びＩＮＴ＃として設計した割込みピンを有するＩ２Ｃスレーブ装置として示す。図２の各サイクルは、個別の状態に対応し、大文字が付され、大文字の下に示した４ビットバイナリーコードに対応する。
【００２２】
状態Ａ１：
・  この状態マシンは、いずれもアクティブハイであるＳＴＯＰ及びＲＥＳＥＴ状態において非同期的にリセットする。
・  状態マシンは、ゲートＳＣＬクロックを用いる。ＳＣＬクロックは、状態マシンの状態によってゲートされる。状態マシンは、「書込み」状態マシン又は「読出し」状態マシンがアイドル状態であるときにＳＣＬを受信しない（Ａ１及びＡ２）。
【００２３】
状態Ｇ１：
・  ＳＴＡＲＴ状態において、状態マシンは、非同期的に状態Ｇ１に進む。
・  次のクロックにおいて、状態マシンは、状態Ｂ１に入り、スレーブアドレスを受け取る準備をする。
【００２４】
状態Ｂ１：
・  スレーブビジー信号がアサートされる場合、状態マシンは、状態Ａ１にリセットする。
・  状態マシンが全呼出アドレス（ＡＣＡ）を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態Ａ１にリセットする。
・  状態マシンがＳＭバスアラーム応答アドレス（ＡＲＡ）を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態Ａ１にリセットする。
・  状態マシンが装置ＩＤアドレス（ＤＩＡ）を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態Ａ１にリセットする。
以下、（このポイントから状態Ｅまで）ＡＣＡ，ＡＲＡ及びＤＩＡがイネーブルされると仮定する。
・  状態マシンが、読出しビットとともにスレーブアドレス（ＳＡ）又はＡＣＡを受け取る場合、状態マシンは状態Ａ１にリセットする。
・  状態マシンが、書込みビットとともにスレーブアドレス（ＳＡ）又はＡＣＡを受け取る場合、状態マシンは状態Ｅになる。
・  状態マシンがＡＲＡ及び読出しビットを受け取るとともにローであると解釈されると、状態マシンは状態Ａ１にリセットする。
・  状態マシンがＡＲＡ及び読出しビットを受け取るとともにハイであると解釈されると、状態マシンは状態Ａ１にリセットする。
・  状態マシンがＡＲＡ及び書込みビットを受け取るとともにローであると解釈されると、状態マシンは状態Ａ１にリセットする。
・  状態マシンがＡＲＡ及び書込みビットを受け取るとともにハイであると解釈されると、状態マシンは状態Ａ１にリセットする。
・  状態マシンが、書込みビットとともにＤＩＡを受け取る場合、状態マシンは状態Ｈに進む。
・  状態マシンが、読出しビットとともにＤＩＡを受け取る場合、状態マシンは状態Ａ１にリセットする。
・  状態マシンが、ＳＡ，ＡＣＡ，ＡＲＡ又はＤＩＡ以外のものを受け取る場合、状態マシンは状態Ａ１にリセットする。
・  状態マシンが上記のいずれでもない場合、状態マシンは、状態Ｂ１のままであり、スレーブアドレスを受け取る。
【００２５】
状態Ｅ：
・  この状態において、状態マシンはＡＣＫＮＯＷＬＥＤＧＥを送出する。
・  状態マシンは、次のＳＣＬクロックで状態Ｆ３に進む。
【００２６】
状態Ｆ３：
・  状態Ｆ３において、状態マシンは、データ入力をシリアルデータ線からシフトする。
・  状態マシンが、データ入力のシフトの終了時にスレーブビジー信号を受け取る場合、状態マシンは状態Ａ１に戻り、又は、状態マシンが、スレーブビジー信号を受け取ることなくデータシフトを完了する場合、状態マシンは状態Ｅに戻る。
・状態マシンは、８ビット入力がシフトする間状態Ｆ３のままである。
【００２７】
状態Ｈ：
・  この状態において、状態マシンはＡＣＫＮＯＷＬＥＤＧＥを送出する。
・  状態マシンは、次のＳＣＬクロックで状態Ｆ１に進む。
【００２８】
状態Ｆ１：
・  この状態において、状態マシンは、ＤＩＡの第１のビットを受け取る。
・  状態マシンは、次のＳＣＬクロックで状態Ｆ２に進む。
・  この状態は、状態マシンのグレーコード符号化を維持するために加えられた。
【００２９】
状態Ｆ２：
・  この状態において、状態マシンは、ＤＩＡの第２のビットを受け取る。
・  状態マシンは、次のＳＣＬクロックで状態Ｆ３に進む。
・  この状態は、状態マシンのグレーコード符号化を維持するために加えられた。
【００３０】
図３は、本発明による第２のフォアグランド状態マシン１６０の状態図である。図３に示す状態は、図２と同一の表示プロトコルに従う。状態の説明は、次の通りである。
【００３１】
状態Ａ２：
・  この状態マシンは、いずれもアクティブハイであるＳＴＯＰ及びＲＥＳＥＴ状態において非同期的にリセットする。
・  状態マシンは、ゲートＳＣＬクロックを用いる。ＳＣＬクロックは、状態マシンの状態によってゲートされる。状態マシンは、「書込み」状態マシン又は「読出し」状態マシンがアイドル状態であるときにＳＣＬを受信しない（Ａ１及びＡ２）。
【００３２】
状態Ｇ２：
・  ＳＴＡＲＴ状態において、状態マシンは、非同期的に状態Ｇ２に進む。
・  次のクロックにおいて、状態マシンは、状態Ｂ２に入り、スレーブアドレスを受け取る準備をする。
【００３３】
状態Ｂ２：
・  スレーブビジー信号がアサートされる場合、状態マシンは、状態Ａ２にリセットする。
・  状態マシンが全呼出アドレス（ＡＣＡ）を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態Ａ２にリセットする。
・  状態マシンがＳＭバスアラーム応答アドレス（ＡＲＡ）を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態Ａ２にリセットする。
・  状態マシンが装置ＩＤアドレス（ＤＩＡ）を受け取るとともにこの態様がディスエーブルされる場合、状態マシンは状態Ａ１にリセットする。
以下、（このポイントから状態Ｉまで）ＡＣＡ，ＡＲＡ及びＤＩＡがイネーブルされると仮定する。
・  状態マシンが、読出しビットとともにスレーブアドレス（ＳＡ）又はＡＣＡを受け取る場合、状態マシンは状態Ｃに進む。
・  状態マシンが、読出しビットとともにＤＩＡを受け取ると、状態マシンは状態Ｊに進む。
・  状態マシンが、書込みビットとともにスレーブアドレス（ＳＡ）又はＡＣＡを受け取る場合、状態マシンは状態Ａ２にリセットする。
・  状態マシンがＡＲＡ及び読出しビットを受け取るとともにローであると解釈されると、状態マシンは状態Ｉに進む。
・  状態マシンがＡＲＡ及び読出しビットを受け取るとともにハイであると解釈されると、状態マシンは状態Ａ２にリセットする。
・  状態マシンがＡＲＡ及び書込みビットを受け取るとともにローであると解釈されると、状態マシンは状態Ａ２にリセットする。
・  状態マシンがＡＲＡ及び書込みビットを受け取るとともにハイであると解釈されると、状態マシンは状態Ａ２にリセットする。
・  状態マシンが、書込みビットとともにＤＩＡを受け取る場合、状態マシンは状態Ａ２にリセットする。
・  状態マシンが、ＳＡ，ＡＣＡ，ＡＲＡ又はＤＩＡ以外のものを受け取る場合、状態マシンは状態Ａ２にリセットする。
・  状態マシンが上記のいずれでもない場合、状態マシンは、状態Ｂ２のままであり、スレーブアドレスを受け取る。
【００３４】
状態Ｉ：
・  この状態において、状態マシンはＡＣＫＮＯＷＬＥＤＧＥを送出し、送出されるそれ自体のアドレスを有するシフトレジスタをロードする。
・  状態マシンは、次のＳＣＬクロックで状態Ｄ１に進む。
【００３５】
状態Ｄ１：
・この状態は、グレーコードを有する全ての状態遷移をエンコードできるようにするためにのみ追加された。
・  スレーブアドレスの第１のビットがこの状態で送出される。
・  スレーブビジー信号がここで検出されると、状態マシンは状態Ａ２にリセットする。
【００３６】
状態Ｄ４：
・  この状態において、状態マシンはＡＣＫＮＯＷＬＥＤＧＥを送出する。
・  状態マシンは、次のＳＣＬクロックで状態Ｆ１に進む。
【００３７】
状態Ｆ１：
・  この状態において、状態マシンは、Ｒ／Ｗ＃ビットに従ってスレーブアドレスの残りの６ビットを送出する。
・  スレーブビジー信号がここで検出されると、状態マシンは状態Ａ２にリセットする。
・  ８ビット全てを送出した後、状態マシンは、状態Ｋに進む。
【００３８】
状態Ｋ：
・  この状態は、“ｄｉａ＿ａｒａ＿ｓｍ”とともに、アラーム応答アドレスプロトコルの終了を識別する制御信号を発生する。
・  状態マシンは、次のＳＣＬクロックで状態Ａ２に進む。
【００３９】
状態Ｃ：
・  この状態において、状態マシンはＡＣＫＮＯＷＬＥＤＧＥを送出し、送出されるそれ自体のアドレスを有するシフトレジスタをロードする。
・  状態マシンは、次のＳＣＬクロックで状態Ｄ２に進む。
【００４０】
状態Ｄ２：
・  この状態において、状態マシンはデータをデータ線に送出する。状態マシンは、合計８ビットを送出する。
・  状態マシンが８番目のクロックサイクルの後にＡＣＫＮＯＷＬＥＤＧＥを受信する場合、状態マシンは、８クロックサイクル後に状態Ｃに戻る。
・  状態マシンが８番目のクロックサイクルの後にＡＣＫＮＯＷＬＥＤＧＥを受信しない場合、状態マシンは、状態Ａ２にリセットする。
・  状態マシンがスレーブビジー信号を検出する場合、状態マシンは、状態Ａ２にリセットする。
【００４１】
状態Ｊ：
・  この状態において、状態マシンはＡＣＫＮＯＷＬＥＤＧＥを送出し、装置ＩＤバイトを有するシフトレジスタをロードする。
・  状態マシンは、次のＳＣＬクロックで状態Ｄ３に進む。
【００４２】
状態Ｄ３：
・  この状態において、状態マシンはデータをデータ線に送出する。状態マシンは、合計８ビットを送出する。
・  状態マシンが８番目のクロックサイクルの後にＡＣＫＮＯＷＬＥＤＧＥを受信する場合、状態マシンは、８クロックサイクル後に状態Ｊに戻る。
・  状態マシンが８番目のクロックサイクルの後にＡＣＫＮＯＷＬＥＤＧＥを受信しない場合、状態マシンは、状態Ａ２にリセットする。
・  状態マシンがスレーブビジー信号を検出する場合、状態マシンは、状態Ａ２にリセットする。
【００４３】
図４〜７は、ＤＩＡ＿ＡＲＡ＿ＳＭを付したバックグランド状態マシン１７０の状態図を示す。図４において、コネクタ４１０を、図４のダイヤグラムと図５のコネクタ４１０との間の接続を表す図形的な注釈として示す。図４において、コネクタ４２０を、図４のダイヤグラムと図６のコネクタ４２０との間の接続を表す図形的な注釈として示す。図５において、コネクタ４３０を、図５のフローチャートの左下と右上との間の接続を表す図５の左下及び右上の図形的な注釈として示す。図６において、コネクタ４４０を、図６のフローチャートの左下と右上との間の接続を表す図６の左下及び右上の図形的な注釈として示す。図６において、コネクタ４５０を、図６のダイヤグラムと図７のコネクタ４５０との間の接続を表す図形的な注釈として示す。図７において、コネクタ４６０を、図７のフローチャートの左下と右上との間の接続を表す図７の左下及び右上の図形的な注釈として示す。状態の説明は、次の通りである。
【００４４】
状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡ：
・  状態マシンは、いずれもアクティブローであるＲＥＳＥＴ状態又はＳＴＯＰ状態に応じて非同期的にこの状態に入る。
・  状態マシンが、Ｉ２ＣＳＭ−Ｗが状態Ｈであることを検出する場合、状態マシンは、ＲＣＶ＿ＤＩＡ＿ＳＡに進む。
・  状態マシンが、Ｉ２ＣＳＭ−Ｒが状態Ｉであることを検出する場合、状態マシンは、状態ＳＮＤ＿ＳＡ６に進む。
・  それ以外の場合、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡのままである。
【００４５】
状態ＲＣＶ＿ＤＩＡ＿ＳＡ
・  状態マシンは、Ｉ２ＣＳＭ−Ｗが状態Ｆ１，Ｆ２又はＦ３のいずれであるかを検出するまでこの状態のままである。
・  状態マシンが、Ｉ２ＣＳＭ−Ｗが状態Ｅであることを検出すると、状態マシンは、状態ＡＣＫ＿ＤＩＡ＿ＳＡに進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００４６】
状態ＡＣＫ＿ＤＩＡ＿ＳＡ：
・  この状態において、Ｉ２ＣＳＭ−ＷがＧ１にある場合、状態マシンは、状態ＲＥＰ＿Ｓに進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００４７】
状態ＲＥＰ＿Ｓ：
・  この状態において、Ｉ２ＣＳＭ−ＷがＢ１にある場合、状態マシンは、状態ＲＣＶ＿ＤＩＡ＿Ｒに進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００４８】
状態ＲＣＶ＿ＤＩＡ＿Ｒ：
・  Ｉ２ＣＳＭ−Ｗが状態Ｂ１である間、状態マシンは、この状態のままである。
・  Ｉ２ＣＳＭ−Ｒが状態Ｊである場合、この状態マシンは、ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ１に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００４９】
状態ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ１：
・  この状態において、Ｉ２Ｃバス上で送信すべきＤＥＶＩＣＥ  ＩＤ  ＢＹＴＥ１をロードするために制御信号を発生する。
・  この状態において、Ｉ２ＣＳＭ−Ｒが状態Ｄ３である場合、状態マシンは、状態ＳＮＤ＿ＢＹＴＥ１に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５０】
状態ＳＮＤ＿ＢＹＴＥ１：
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ３である間、状態マシンは、この状態のままである。
・  Ｉ２ＣＳＭ−Ｒが状態Ｊである場合、この状態マシンは、ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ２に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５１】
状態ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ２：
・  この状態において、Ｉ２Ｃバス上で送信すべきＤＥＶＩＣＥ  ＩＤ  ＢＹＴＥ２をロードするために制御信号を発生する。
・  この状態において、Ｉ２ＣＳＭ−Ｒが状態Ｄ３である場合、状態マシンは、状態ＳＮＤ＿ＢＹＴＥ２に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５２】
状態ＳＮＤ＿ＢＹＴＥ２：
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ３である間、状態マシンは、この状態のままである。
・  Ｉ２ＣＳＭ−Ｒが状態Ｊである場合、この状態マシンは、ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ３に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５３】
状態ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ３：
・  この状態において、Ｉ２Ｃバス上で送信すべきＤＥＶＩＣＥ  ＩＤ  ＢＹＴＥ３をロードするために制御信号を発生する。
・  この状態において、Ｉ２ＣＳＭ−Ｒが状態Ｄ３である場合、状態マシンは、状態ＳＮＤ＿ＢＹＴＥ３に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５４】
状態ＳＮＤ＿ＢＹＴＥ３：
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ３である間、状態マシンは、この状態のままである。
・  Ｉ２ＣＳＭ−Ｒが状態Ｊである場合、この状態マシンは、ＰＲＥ＿ＳＮＤ＿ＢＹＴＥ１に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５５】
状態ＳＮＤ＿ＳＡ６：
・  この状態は、スレーブアドレスの６番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ１である場合、この状態は、状態ＳＮＤ＿ＳＡ５に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５６】
状態ＳＮＤ＿ＳＡ５：
・  この状態は、スレーブアドレスの５番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＳＮＤ＿ＳＡ４に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５７】
状態ＳＮＤ＿ＳＡ４：
・  この状態は、スレーブアドレスの４番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＳＮＤ＿ＳＡ３に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５８】
状態ＳＮＤ＿ＳＡ３：
・  この状態は、スレーブアドレスの３番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＳＮＤ＿ＳＡ２に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００５９】
状態ＳＮＤ＿ＳＡ２：
・  この状態は、スレーブアドレスの２番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＳＮＤ＿ＳＡ１に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００６０】
状態ＳＮＤ＿ＳＡ１：
・  この状態は、スレーブアドレスの１番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＳＮＤ＿ＳＡ０に進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００６１】
状態ＳＮＤ＿ＳＡ０：
・  この状態は、スレーブアドレスの０番目のビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＳＮＤ＿ＲＷＮに進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００６２】
状態ＳＮＤ＿ＲＷＮ：
・  この状態は、スレーブアドレスのＲ／Ｗ＃ビットのＩ２Ｃバス上での送出が成功したか否かをチェックするために用いられる。
・  Ｉ２ＣＳＭ−Ｒが状態Ｄ４である場合、この状態は、状態ＲＣＶ＿ＮＡＣＫに進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００６３】
状態ＳＮＤ＿ＲＷＮ：
・  Ｉ２ＣＳＭ−Ｒが状態Ｋである場合、この状態は、状態ＲＥＬ＿ＩＮＴ＿Ｎに進む。
・  それ以外の場合には、状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００６４】
状態ＲＥＬ＿ＩＮＴ＿Ｎ：
・状態マシンは、状態ＩＤＬＥ＿ＤＩＡ＿ＡＲＡに戻る。
【００６５】
図８は、本発明の実施の形態による状態マシンを用いてＩ２Ｃバス上で機能強化されたスレーブ／マスタインタフェースを実現する方法８００のフローチャートである。方法８００は、Ｉ２Ｃスレーブ装置のフォアグランドにおける第１の状態マシンの実行８１０及びバックグランドにおける第２の状態マシンの実行８２０を有する。８３０において、スレーブ装置の動作制御は、スレーブ装置の形態を実現するために第１の状態マシンから第２の状態マシンに転送される。形態、例えば、機能強化された動作８４０が実行され、その後、動作制御が第１の状態マシンに戻される（８５０）。用語「第１の状態マシン」は、図８に関連して、図１〜３に示す第１及び第２の状態マシンのモノリシックな実施の形態を含むことができる。
【００６６】
ＡＬＬ  ＣＡＬＬや装置ＩＤのような機能強化された形態は、出願人が所有する米国特許出願第６０／６７６，１６４号及び米国特許出願第６０／６７６，１０４号（代理人整理番号ＰＨ０００７７２ＵＳ１及びＰＨ０００７７１ＵＳ１）で更に詳しく説明されており、ここに参照することによりここに組み込む。
【００６７】
ハードウェア、ファームウェア、ソフトウェア又はその組合せを、ここで説明するような状態マシンを用いてＩ２Ｃバス上で機能強化されたスレーブ／マスタインタフェースを実現する種々の実施の形態を実施するのに用いることができる。本発明に関連して用いられるマスタ装置の機能は、説明したＩ２Ｃマスタ装置に存在してもよく、又は、シリアルデータ通信システム１００に取り付けられたスタンドアローン又はネットワーク化されたコンピュータに存在してもよい。図１に示すシリアルデータ通信システム１００は、本発明の動作を実施するためにそのような通信システム、コンピュータ又は他のコンピュータ実行装置との通信に用いることができる構造の一例である
【００６８】
本発明によるＩ２Ｃバス上のＩ２Ｃ通信を制御するのに適した図１のマスタ装置１３０の例は、典型的には、ランダムアクセスメモリ（ＲＡＭ）及び／又は読出し専用メモリ（ＲＯＭ）の一部の変形に結合した中央処理装置（ＣＰＵ）を有する。ＲＯＭを、プログラマブルＲＯＭ（ＰＲＯＭ）やイレーザブルＰＲＯＭのようなプログラム記憶用の他の記憶媒体とすることもできる。プロセッサは、制御信号、通信信号等を提供するために入力／出力（Ｉ／Ｏ）回路及び／又は他のバスを通じて他の内部素子及び外部素子とやり取りを行うことができる。
【００６９】
マスタ装置１３０は、ハードディスクドライブ、フレキシブルディスクドライブ、ＤＣ−ＲＯＭドライブ、及び情報を読出し及び／又は記憶することができるＤＶＤのような他のハードディスクを含む一つ以上のデータ記憶装置を有することもできる。一実施の形態において、状態マシンを用いてＩ２Ｃバス上でスレーブ／マスタインタフェースをコツ減するソフトウェアを、ＣＤ−ＲＯＭ、ディスケット、又は携帯型で情報を記憶することができる他の形態の媒体に記憶し及び分配することができる。これら記憶媒体を、ＣＤ−ＲＯＭドライブ、ディスクドライブ等の装置に挿入し及び当該装置から読み出すことができる。ソフトウェアを、インターネットのようなネットワークを通じて電気的にダウンロードするようにデータ信号を通じて演算装置に送信することもできる。さらに、既に説明したように、本発明に関連する機能を実行するソフトウェアを、ＲＯＭのような演算装置の内部メモリに格納することもできる。
【００７０】
コンピュータ読出し可能なプログラムコードを有する結果的に得られるあらゆる（一つ以上の）プログラムを、記憶装置や送信装置のような一つ以上のコンピュータ利用可能な媒体内で実行することができ、これによって、本発明によるコンピュータプログラム又は製品を形成する。ここで用いるような用語「コンピュータ読出し可能媒体」、「製品」、「コンピュータプログラム」又は他の同様な用語は、あらゆる記憶装置のようなあらゆるコンピュータ読出し可能な媒体又はあらゆる送信装置で永久に又は一時的に存在するコンピュータプログラムを含むことを意図する。
【００７１】
（添付した特許請求の範囲、要約書及び図面を含む）本明細書で開示した各形態を、特に説明しない限り同一、等価又は同様な目的で体感することができる。したがって、特に説明しない限り、開示した各形態は、等価の又は同様な形態の一例に過ぎない。
【００７２】
本発明は、これまで説明した特定の例に制限されるものと考えるべきではない。本発明を適用することができる種々の変更、等価のプロセス及び種々の構造は、本発明の範囲内である。例えば、本発明による状態マシンを用いたＩ２Ｃバス上での機能強化されたスレーブ／マスタインタフェースの実施の形態を、ＳＭバスや他のバス配置のような共通バス上の装置間で通信を行う同様に構成された１方向又は２方向インタフェースを用いて実施することができる。そのような変形を、添付した特許請求の範囲で適正に説明するような請求の範囲に記載されている発明の一部と考えることができる。
【図面の簡単な説明】
【００７３】
【図１】図１は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信システムのブロック図である。
【図２】図２は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信システムの状態図である。
【図３】図３は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信システムの他の状態図である。
【図４】図４は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信方法のフローチャートを示す。
【図５】図５は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信方法のフローチャートを示す。
【図６】図６は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信方法のフローチャートを示す。
【図７】図７は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現するデータ通信方法のフローチャートを示す。
【図８】図８は、本発明の実施の形態による状態マシンを用いたＩ２Ｃバス上の機能強化されたスレーブ／マスタインタフェースを実現する他の方法のフローチャートを示す。
【図１】
2008539645.tif 000003
【図２】
2008539645.tif 000004
【図３】
2008539645.tif 000005
【図４】
2008539645.tif 000006
【図５】
2008539645.tif 000007
【図６】
2008539645.tif 000008
【図７】
2008539645.tif 000009
【図８】
2008539645.tif 000010
【国際調査報告】
2008539645.tif 000011
2008539645.tif 000012