(57)【要約】【課題】データ転送処理に悪影響を及ぼすことを回避しながら、消費電力の低減を図ることを可能にする。【解決手段】Ｉ２Ｃバス５０に接続され、Ｉ２Ｃバス５０に接続されたマスターデバイスとの間でデータを転送するスレーブデバイスであって、Ｉ２Ｃバス５０上のＳＣＬクロックを受信し、データ転送状態を制御するステートマシン制御部２と、マスターデバイスからのデータの受信処理及びマスターデバイスへのデータの送信処理を行うＳＤＡ制御部３と、マスターデバイスからの受信データ及びマスターデバイスへの送信データを格納するバッファ部４と、データ転送状態に応じてＳＤＡ制御部３及びバッファ部４へのクロック信号の供給の有無を制御するＣＬＫ制御部６とを備え、ＣＬＫ制御部６は、データ転送状態がデータ転送を行わない状態であるときに、ＳＤＡ制御部３及びバッファ部４へのクロック信号の供給を停止することを特徴とするスレーブデバイス１。【選択図】図１
2008293230.tif 000002
【特許請求の範囲】
【請求項１】
Ｉ２Ｃバスに接続され、該Ｉ２Ｃバスに接続されたマスターデバイスとの間でデータを転送するデータ転送装置であって、
前記Ｉ２Ｃバス上のＳＣＬクロックを受信し、データ転送状態を制御するステートマシン制御部と、
前記マスターデバイスからのデータの受信処理及び前記マスターデバイスへのデータの送信処理を行うデータ制御部と、
前記データ転送状態に応じて前記データ制御部へのクロック信号の供給の有無を制御するクロック制御部とを備え、
前記クロック制御部は、前記データ転送状態がデータ転送を行わない状態であるときに、前記データ制御部へのクロック信号の供給を停止することを特徴とするデータ転送装置。
【請求項２】
前記マスターデバイスからの要求が自デバイスを対象とするものであるか否かを判定する要求対象判定手段を備え、
前記クロック制御部は、前記要求対象判定手段で前記マスターデバイスからの要求が自デバイスを対象とするものでないと判定されたときに、前記データ制御部へのクロック信号の供給を停止することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記マスターデバイスからの要求が終了したことを示すストップコンディションを検出する要求終了検出手段を備え、
前記クロック制御部は、前記要求終了検出手段で前記ストップコンディションが検出されたときに、前記データ制御部へのクロック信号の供給を停止することを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
前記マスターデバイスからのデータ送信、又は前記マスターデバイスでのデータ受信が中断されたことを検出する中断検出手段を備え、
前記クロック制御部は、前記中断検出手段で前記マスターデバイスとの間のデータ転送の中断が検出されたときに、前記データ制御部へのクロック信号の供給を停止することを特徴とする請求項１、２又は３に記載のデータ転送装置。
【請求項５】
前記データ制御部は、前記マスターデバイスからの受信データ及び前記マスターデバイスに送信すべきデータを格納するバッファ部と、前記マスターデバイスからデータを受信し、受信したデータを前記バッファ部に送出するとともに、前記バッファ部からデータを読み出し、前記マスターデバイスに送出するＳＤＡ制御部とを備え、
前記クロック制御部は、前記バッファ部及び前記ＳＤＡ制御部の少なくとも一方へのクロック信号の供給を停止することを特徴とする請求項１乃至４のいずれかに記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃ（Inter Integrated Circuit）バスに接続して用いるデータ転送装置に関し、特に、Ｉ２Ｃバスに接続されたマスターデバイスからの制御に従い、スレーブデバイスとして動作するデータ転送装置に関する。
【背景技術】
【０００２】
複数のデバイス間で双方向の通信を行うためのバス形式として、フィリップス（Philips）社によって開発されたＩ２Ｃバスと呼ばれるバス形式が知られている。このＩ２Ｃバスは、クロック供給ラインであるＳＣＬ（serial clock line）と、データ転送ラインであるＳＤＡ（serial data line）とによる単純な双方向２線式バスで構成されている。Ｉ２Ｃバスには、複数のデバイスを接続することが可能であり、Ｉ２Ｃバスに接続された複数のデバイスのうち、マスターデバイスとして機能するデバイスが他のデバイスにクロックを供給して全体のデータ通信状態を制御する。
【０００３】
図４は、Ｉ２Ｃバスシステムの構成例を示す図である。同図に示すように、Ｉ２Ｃバス５０のＳＤＡ５１及びＳＣＬ５２には、複数のデバイス５３〜５６が接続され、各デバイスは、データ通信の制御権限を有するマスター状態、又はマスターデバイスの制御に従って動作するスレーブ状態の何れかの状態に設定される。また、スレーブ状態になったデバイスには、各々、固有のスレーブアドレスが設定される。尚、図４では、デバイス５３、５４、５６がスレーブ状態であり、デバイス５５がマスター状態である場合を示している。
【０００４】
そして、上記の状態において、マスターデバイス５５が、データを送受信したいスレーブデバイスのスレーブアドレスと、データの送信方向（Ｗｒｉｔｅ又はＲｅａｄ）を指定する情報とを、ＳＤＡ５１を通じて送出することにより、指定されたスレーブデバイスとマスターデバイス５５との間でデータ転送が開始される（例えば、特許文献１参照）。
【０００５】
図５は、従来のスレーブデバイスの状態遷移を示す図である。リセット又はデータ転送の終了が行われると、スレーブデバイスは、アイドル状態Ａに遷移し、スタートコンディション（開始条件）を待つ状態となる。その後、スタートコンディションを検出すると、開始状態Ｂに遷移し、それに続いて、アドレス受信状態Ｃに遷移する。
【０００６】
受信したスレーブアドレスが自デバイスに割り当てられたアドレス値と異なる場合には、スレーブアドレス無効として、アイドル状態Ａに遷移する。これに対して、両アドレスが一致する場合には、要求がＷｒｉｔｅであるかＲｅａｄであるかに応じて、データ受信状態Ｄ又はデータ送信状態Ｅの何れかに遷移する。そして、データ受信又はデータ送信が終了すると、再度、アイドル状態Ａに遷移し、次のスタートコンディションを待つ状態となる。
【０００７】
このように、Ｉ２Ｃバスを用いれば、簡単なバス構成により、相互接続された複数のデバイス間のデータ転送を制御することができるが、Ｉ２Ｃバスシステムにおいては、ＳＣＬクロックに同期して、スタートコンディション情報やスレーブアドレス等が送出されるため、全てのデバイスに対してＳＣＬクロックを送出する必要がある。このため、データ転送を行っているデバイスのみならず、データ転送を行っていないデバイスや、データ転送を終了したデバイスにもＳＣＬクロックが供給されることになり、システム全体としての消費電力が増大し易いという問題があった。
【０００８】
そこで、特許文献２に記載のように、データ転送状態に応じて、ＳＣＬクロック及び各デバイスへの電源供給を制御するバスシステムが提案されている。このバスシステムは、ストップコンディション（終了条件）を検出するストップコンディション検出手段と、ＳＣＬクロックのレベルをＬｏｗレベルに設定するスイッチ手段と、スレーブデバイスの電源のＯＮ／ＯＦＦを切り替える電源制御手段とを備え、ストップコンディションが検出されたときに、ＳＣＬクロックを強制的にＬｏｗレベルに切り替えるとともに、スレーブデバイスへの電源供給を遮断するように構成されている。上記バスシステムによれば、データ転送の必要がないときに、スレーブデバイスの動作を停止させるため、不要な電力消費を回避することが可能となる。
【０００９】
【特許文献１】特開２００４−５３４３２２号公報
【特許文献２】特開２００４−３１０４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献２に記載のバスシステムにおいては、Ｉ２Ｃバスライン単位でストップコンディションを検出し、ＳＣＬクロックのレベル及び電源のＯＮ／ＯＦＦを変更するため、特定のデバイスのみならず、Ｉ２Ｃバスに接続された全てのデバイスに対して影響が及ぶという問題がある。特に、クロックレベル及び電源状態の変更後にデータ転送を再開するには、クロックを本来の状態に戻すとともに、改めて電源をＯＮする必要があるが、通常、復旧時間はデバイス毎に異なるため、上記問題は、復旧後に正常なデータ転送を行えないなどの弊害を招く虞がある。
【００１１】
また、Ｉ２Ｃバスシステムでは、複数のマスターデバイスが接続され、それらが優先順位を決めながら、連続的にデータ転送を行っていく場合があるが、かかる状態において、ある１つのマスターデバイスのデータ転送終了時に、ＳＣＬクロックを強制的にＬｏｗレベルに設定すると、次のマスターデバイスのデータ転送を迅速に開始できないという問題が生じる。すなわち、ＳＣＬクロックを強制的にＬｏｗレベルに設定することは、次のマスターデバイスからすると意図しない操作となるため、次のマスターデバイスは、ＳＣＬクロックの状態が本来の状態に戻るまで、データ転送を待機する必要が生じる。
【００１２】
そこで、本発明は、上記従来の技術における問題点に鑑みてなされたものであって、データ転送処理に悪影響を及ぼすことを回避しながら、消費電力の低減を図ることを可能とするデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明は、Ｉ２Ｃバスに接続され、該Ｉ２Ｃバスに接続されたマスターデバイスとの間でデータを転送するデータ転送装置であって、前記Ｉ２Ｃバス上のＳＣＬクロックを受信し、データ転送状態を制御するステートマシン制御部と、前記マスターデバイスからのデータの受信処理及び前記マスターデバイスへのデータの送信処理を行うデータ制御部と、前記データ転送状態に応じて前記データ制御部へのクロック信号の供給の有無を制御するクロック制御部とを備え、前記クロック制御部は、前記データ転送状態がデータ転送を行わない状態であるときに、前記データ制御部へのクロック信号の供給を停止することを特徴とする。
【００１４】
そして、本発明によれば、データ転送を行わない状態であるときに、データ制御部へのクロック信号の供給を停止するため、データ転送処理に悪影響を及ぼすことなく、消費電力の低減を図ることが可能となる。
【００１５】
前記データ転送装置において、前記マスターデバイスからの要求が自デバイスを対象とするものであるか否かを判定する要求対象判定手段を備え、前記クロック制御部が、前記要求対象判定手段で前記マスターデバイスからの要求が自デバイスを対象とするものでないと判定されたときに、前記データ制御部へのクロック信号の供給を停止するように構成することができる。この構成によれば、マスターデバイスからの要求が他のデバイスを対象とし、自デバイスがデータ転送を行う必要がないときに、余分な電力が消費されるのを回避することができる。
【００１６】
前記データ転送装置において、前記マスターデバイスからの要求が終了したことを示すストップコンディションを検出する要求終了検出手段を備え、前記クロック制御部は、前記要求終了検出手段で前記ストップコンディションが検出されたときに、前記データ制御部へのクロック信号の供給を停止するように構成することができる。この構成によれば、マスターデバイスからの要求が終了してデータ転送が完了した後に、余分な電力が消費されるのを回避することができる。
【００１７】
前記データ転送装置において、前記マスターデバイスからのデータ送信、又は前記マスターデバイスでのデータ受信が中断されたことを検出する中断検出手段を備え、前記クロック制御部は、前記中断検出手段で前記マスターデバイスとの間のデータ転送の中断が検出されたときに、前記データ制御部へのクロック信号の供給を停止するように構成することができる。この構成によれば、データ転送が中断されてから復帰するまでの間に、余分な電力が消費されるのを回避することができる。
【００１８】
前記データ転送装置において、前記データ制御部が、前記マスターデバイスからの受信データ及び前記マスターデバイスに送信すべきデータを格納するバッファ部と、前記マスターデバイスからデータを受信し、受信したデータを前記バッファ部に送出するとともに、前記バッファ部からデータを読み出し、前記マスターデバイスに送出するＳＤＡ制御部とを備え、前記クロック制御部が、前記バッファ部及び前記ＳＤＡ制御部の少なくとも一方へのクロック信号の供給を停止するように構成することができる。
【発明の効果】
【００１９】
以上のように、本発明によれば、データ転送処理に悪影響を及ぼすことを回避しながら、消費電力の低減を図ることが可能となる。
【発明を実施するための最良の形態】
【００２０】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
図１は、本発明にかかるデータ転送装置としてのスレーブデバイスの全体構成図であり、スレーブデバイス１は、ステートマシン制御部２と、ＳＤＡ制御部３と、バッファ部４と、ファンクション部５と、ＣＬＫ制御部６とで構成される。このスレーブデバイス１は、図４に示すスレーブデバイス５３、５４と同様に、Ｉ２Ｃの規格に準拠した機能を備えるマスターデバイスとともに、ＩＣ２バス５０（ＳＤＡ５１、ＳＣＬ５２）に接続される。
【００２２】
ステートマシン制御部２は、Ｉ２Ｃバス５０と接続され、Ｉ２Ｃバス５０を介してマスターデバイスから送られてくる信号に基づき、Ｉ２Ｃバス制御、転送開始停止の検出を行うとともに、Ｉ２Ｃバスの規格に沿ったスレーブデバイスのシーケンスを生成する。このステートマシン制御部２は、図１に示すように、例えば、Ｉ２Ｃバス制御部２０、開始停止検出回路２１、ＡＣＫ（acknowledge signal）確認部２２、データ数カウンタ２３及びステートマシン部２４等から構成される。
【００２３】
Ｉ２Ｃバス制御部２０は、Ｉ２Ｃバス５０からのデータ取り込みタイミング、及びＩ２Ｃバス５０へのデータ送出タイミングを決定し、後段のブロックに動作タイミング信号を送出する。開始停止検出回路２１は、Ｉ２Ｃバス５０との転送を行うための開始条件、終了条件であるスタートコンディション、ストップコンディションを検出し、検出情報を送出する。
【００２４】
ＡＣＫ確認部２２は、マスターデバイスとＲｅａｄ動作を行う際に、データを受信できたことを示すアクノリッジ信号を監視する。データ数カウンタ２３は、転送されるデータのビット数をカウントし、Ｉ２Ｃの規格で指定されたビット長のデータが揃ったか否かを監視する。ステートマシン部２４は、Ｉ２Ｃバス制御部２０、開始停止検出回路２１、ＡＣＫ確認部２２及びデータ数カウンタ２３と接続され、Ｉ２Ｃバスの規格に沿ったスレーブシーケンスを生成する。
【００２５】
ＳＤＡ制御部３は、ステートマシン制御部２とバッファ部４との間に接続され、上位からのデータ送信及び受信命令に従って、Ｒｅａｄ要求、Ｗｒｉｔｅ要求をバッファ部４へ送出し、バッファ部４とデータを送受信する。また、ＳＤＡ制御部３は、Ｉ２Ｃバス５０を介して転送されるスレーブアドレスを監視し、Ｉ２Ｃバス５０上のデータが自デバイス宛のものであるか否かを判断する。このＳＤＡ制御部３は、図１に示すように、例えば、シリアル／パラレル（Ｓ／Ｐ）変換回路３１、スレーブアドレス生成部３２、バッファアドレス生成部３３、Ｗｒｉｔｅデータ生成部３４、ラッチタイミング生成部３５、パラレル／シリアル（Ｐ／Ｓ）変換回路３６、Ｒｅａｄデータ生成部３７及びＲｅａｄタイミング生成部３８等から構成される。
【００２６】
Ｓ／Ｐ変換回路３１は、Ｉ２Ｃバスから転送されるシリアルデータをパラレルデータに変換し、変換後のデータをスレーブアドレス生成部３２、バッファアドレス生成部３３及びＷｒｉｔｅデータ生成部３４へ送出する。スレーブアドレス生成部３２は、転送されるスレーブアドレス値と、自デバイスに割り当てられたスレーブアドレス値とを比較し、それらが異なる場合には、その旨をＣＬＫ制御部６に通知する。バッファアドレス生成部３３は、Ｗｒｉｔｅ時のデータを書き込むべきバッファ部４のアドレス空間を指定し、Ｗｒｉｔｅデータ生成部３４は、Ｗｒｉｔｅ時のデータをバッファ部４へ送出し、ラッチタイミング生成部３５は、Ｗｒｉｔｅデータをバッファ部４へ書き込むタイミングを指定する。
【００２７】
Ｐ／Ｓ変換回路３６は、マスターデバイスからの要求に応じてバッファ部４から読み出されたパラレルデータをシリアルデータに変換し、Ｉ２Ｃバス制御部２０へ送出する。Ｒｅａｄデータ生成部３７は、Ｒｅａｄ時のデータをバッファ部４から受信し、Ｒｅａｄタイミング生成部３８は、Ｒｅａｄ要求発生時にバッファ部４からデータを読み出すタイミングを指定する。
【００２８】
バッファ部４は、転送されるデータを格納するためのものであり、Ｗｒｉｔｅ要求の場合には、Ｗｒｉｔｅデータ生成部３４から送出されたデータを、指定されたアドレス空間に格納し、Ｒｅａｄ要求の場合には、指定されたアドレス空間のデータをＲｅａｄデータ生成部３７に送出する。
【００２９】
ＣＬＫ制御部６は、ステートマシン制御部２の開始停止検出回路２１及びＡＣＫ確認部２２と、ＳＤＡ制御部３のスレーブアドレス生成部３２と、バッファ部４とに接続され、開始停止検出回路２１、ＡＣＫ確認部２２及びスレーブアドレス生成部３２の出力に基づいて、ＳＤＡ制御部３及びバッファ部４へのクロック供給の有無を制御する。
【００３０】
次に、スレーブデバイス１の動作について図１乃至図３を参照しながら説明する。以下の説明においては、スレーブデバイス１の各構成の具体的な動作の説明に先立ち、先ずは、スレーブデバイス１全体の動作について概略的に説明する。
【００３１】
本発明にかかるスレーブデバイス１を用いた際のＩ２Ｃスレーブ動作のシーケンスは、図２及び図３に示すように、アイドル状態Ａ、開始状態Ｂ、アドレス受信状態Ｃ、データ受信状態Ｄ、データ送信状態Ｅ及びスリープ状態Ｆからなる６つの状態間を遷移させるものとなる。尚、状態の遷移は、マスターデバイスからのＳＣＬクロックにより制御される。
【００３２】
該シーケンスにおいては、リセットやパワーオンリセットが行われると、スレーブデバイス１は、アイドル状態Ａとなり、データ転送が開始されるのを待機する。その後、スタートコンディション（開始状態）を検出すると、開始状態Ｂに遷移し、それに続いて、スレーブアドレス及びデータ送信方向（Ｗｒｉｔｅ又はＲｅａｄ）を示す情報を受信するアドレス受信状態Ｃに遷移する。
【００３３】
スレーブアドレスの受信後、そのスレーブアドレスが自デバイスに割り当てられているアドレス値と一致しない場合には、スリープ状態Ｆに遷移し、クロックを停止する。尚、クロックの停止については、後に詳述する。こうして、スリープ状態Ｆに遷移すると、次のスタートコンディションを検出するまで、その状態を維持し、スタートコンディションを検出したときには、開始状態Ｂに遷移する。
【００３４】
これに対し、受信したスレーブアドレスが自デバイスのアドレスと一致する場合には、データ送信方向を示す情報に基づいて、Ｗｒｉｔｅ要求であるか、Ｒｅａｄ要求であるかを判定する。判定の結果、Ｗｒｉｔｅ要求であれば、データ受信状態Ｄに遷移し、その後は、マスターデバイスがデータを送信する間（Ｗｒｉｔｅする間）において、データ受信状態Ｄを維持する。そして、スタートコンディションを検出した場合は、開始状態Ｂに遷移し、ストップコンディションを検出した場合は、スリープ状態Ｆに遷移する。
【００３５】
一方、Ｒｅａｄ要求である場合には、データ送信状態Ｅに遷移するが、この場合でも、マスターデバイスがデータの受信を要求する間（Ｒｅａｄする間）は、データ送信状態Ｅを維持し、スタートコンディションを検出した場合は、開始状態Ｂに遷移し、ストップコンディションを検出した場合は、スリープ状態Ｆに遷移する。また、データ送信状態Ｅにおいては、データの受信エラーとなった場合にも、スリープ状態Ｆに遷移する。
【００３６】
次に、スレーブデバイス１の各構成の具体的な動作について説明する。
【００３７】
データ転送が開始され、Ｉ２Ｃバス５０を通じてスレーブデバイス１にデータが送信されると、Ｉ２Ｃバス制御部２０において、送信されたデータに基づき、データの取り込みタイミング及び出力タイミングを決定するとともに、それらを示すタイミング信号をＡＣＫ確認部２２、データカウンタ３４、ステートマシン部２４及びＳＤＡ制御部３に送出する。これと併せて、転送開始、停止を示す情報が開始停止検出回路２１に送出され、開始停止検出回路２１において、転送開始の有無を判定する。
【００３８】
転送開始の情報を検出すると、開始情報がステートマシン部２４に送出され、ステートマシン部２４のステートマシンがリセット直後のアイドル状態Ａから開始状態Ｂに遷移し、それに続いて、アドレス受信状態Ｃに遷移する。
【００３９】
Ｉ２Ｃのシーケンスでは、スタートコンディションの後は、通常７ビットのスレーブアドレスと、１ビットの要求判別ビット（Ｗｒｉｔｅ要求／Ｒｅａｄ要求）とが転送される。このため、送信されるデータをデータ数カウンタ２３でカウントアップし、先ずは、７ビット分のデータをＳ／Ｐ変換回路３１でパラレル変換する。
【００４０】
その後、スレーブアドレス生成部３２において、パラレル変換されたデータを一時的に保持し、そのデータを自デバイスに割り当てられているスレーブアドレスと比較する。比較の結果、両アドレスが一致しない場合には、自デバイスに対する要求ではないと判定し、ステートマシン部２４へアドレス無効の情報を送信する。ステートマシン部２４は、アドレス無効の情報を受信すると、アドレス受信Ｃ状態からスリープＦ状態に遷移する。
【００４１】
スリープ状態Ｆに遷移すると、ＣＬＫ制御部６において、ＳＤＡ制御部３及びバッファ部４へのクロックの供給を停止し、ＳＤＡ制御部３及びバッファ部４の動作を停止させる。尚、このとき、ステートマシン制御部２の動作は停止されることなく、ＳＣＬ５２からのＳＣＫクロックの受信は継続される。
【００４２】
一方、受信したスレーブアドレスと自デバイスに割り当てられたスレーブアドレスとが一致する場合には、自デバイスに対する要求であるため、８ビット目の要求判別ビットを参照し、求められている処理がＷｒｉｔｅであるかＲｅａｄであるかを判定する。
【００４３】
判定の結果、Ｗｒｉｔｅ要求である場合は、その後のデータがＷｒｉｔｅデータとして転送されるため、ステートマシン部２４のステートマシンの状態をデータ受信Ｄ状態に遷移する。そして、送信されたデータをデータ数カウンタ２３でカウントアップし、Ｓ／Ｐ変換回路３１において、８ビット単位でパラレル変換する。その後は、バッファアドレス生成部３３、Ｗｒｉｔｅデータ生成部３４及びラッチタイミング生成部３５により、変換したデータをバッファ部４にバッファリングする。
【００４４】
マスターデバイスからのＷｒｉｔｅデータの送信が終了し、ストップコンディションが送信されると、開始停止検出回路２１がそれを検出してステートマシン部２４に転送終了の情報を送信する。これに応答して、ステートマシン部２４は、アドレス受信Ｄ状態からスリープＦ状態に遷移し、上記と同様に、ＣＬＫ制御部６によって、ＳＤＡ制御部３及びバッファ部４へのクロックの供給を停止する。
【００４５】
一方、Ｒｅａｄ要求である場合は、自デバイスからＲｅａｄデータを送出する必要があるため、ステートマシン部２４は、アドレス受信状態Ｃからデータ送信状態Ｅに遷移する。そして、データ数カウンタ２３、Ｒｅａｄデータ生成部３７、Ｒｅａｄタイミング生成部３８及びＰ／Ｓ変換回路３６を通じて、８ビットのシリアルデータをＩ２Ｃバス５０に送出する。
【００４６】
データの送出は、ストップコンディションが検出されるまで継続されるが、その途中で、マスターデバイスから受信エラーが送出されると、ＡＣＫ確認部２２が受信エラーを検出し、ステートマシン部２４は、アドレス送信状態Ｅからスリープ状態Ｆに遷移する。そして、上記と同様に、ＣＬＫ制御部６によって、ＳＤＡ制御部３及びバッファ部４へのクロックの供給を停止する。
【００４７】
受信エラーが生じることなく、Ｒａｅｄデータの送出が終了し、マスターデバイスからストップコンディションが送信されると、開始停止検出回路２１がそれを検出し、ステートマシン部２４へ転送終了の情報を送信する。このときも、ステートマシン部２４は、アドレス受信Ｄ状態からスリープＦ状態に遷移し、ＣＬＫ制御部６によって、ＳＤＡ制御部３及びバッファ部４へのクロックの供給を停止する。
【００４８】
以上のように、本実施の形態によれば、自デバイスに対する要求ではない場合、データ転送の停止条件が検出された場合、及び受信エラーが発生してデータ転送が中断された場合に、ＳＤＡ制御部３及びバッファ部４へのクロックの供給を停止して、それらの動作を停止させるため、消費電力の低減を図ることができる。特に、デバイス単位でデータ転送の有無を判定するとともに、デバイス内部のみでクロック供給状態を変更するため、動作を停止させても、Ｉ２Ｃバスに接続された全デバイスに影響が及ぶことを回避することが可能となる。また、その際、スレーブデバイス１全体の動作は停止させず、ＳＤＡ制御部３及びバッファ部４の動作のみを停止させるため、その後に自デバイスに対する要求が発生しても、迅速にデータ転送を行うことができる。
【００４９】
さらに、本実施の形態においては、ＳＣＬ５２上のＳＣＬクロックのレベルは変更しないため、複数のマスターデバイスをＩ２Ｃバス５０に接続して連続的にデータ転送を行う際に、円滑にデータ転送を行うことが可能となる。
【００５０】
尚、上記実施の形態においては、ＳＤＡ制御部３及びバッファ部４へのクロックの供給を停止するが、必ずしも、ＳＤＡ制御部３及びバッファ部４の双方へのクロックの供給を停止する必要はなく、それらの何れか一方へのクロックの供給を停止してもよい。
【００５１】
また、上記実施の形態においては、Ｒｅａｄ要求の場合に、マスターデバイス側でデータ受信エラーが発生したか否かを判定し、受信エラーの発生時にクロックの供給を停止するが、Ｗｒｉｔｅ要求の場合にも、マスターデバイス側でデータ送信エラーが発生したか否かを判定し、送信エラーの発生時にクロックの供給を停止してもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明にかかるデータ転送装置としてのスレーブデバイスの全体構成図である。
【図２】図１のスレーブデバイスの状態遷移を示す図である。
【図３】図１のスレーブデバイスの動作を説明するための図である。
【図４】Ｉ２Ｃバスシステムの構成例を示す図である。
【図５】従来のスレーブデバイスの状態遷移を示す図である。
【符号の説明】
【００５３】
１  スレーブデバイス
２  ステートマシン制御部
３  ＳＤＡ制御部
４  バッファ部
５  ファンクション部
６  ＣＬＫ制御部
２０  Ｉ２Ｃバス制御部
２１  開始停止検出回路
２２  ＡＣＫ確認部
２３  データ数カウンタ
２４  ステートマシン部
３１  Ｓ／Ｐ変換回路
３２  スレーブアドレス生成部
３３  バッファアドレス生成部
３４  Ｗｒｉｔｅデータ生成部
３５  ラッチタイミング生成部
３６  Ｐ／Ｓ変換回路
３７  Ｒｅａｄデータ生成部
３８  Ｒｅａｄタイミング生成部
５０  Ｉ２Ｃバス
５１  ＳＤＡ
５２  ＳＣＬ
５３、５４  スレーブデバイス
５５  マスターデバイス
５６  マスター／スレーブデバイス
【図１】
2008293230.tif 000003
【図２】
2008293230.tif 000004
【図３】
2008293230.tif 000005
【図４】
2008293230.tif 000006
【図５】
2008293230.tif 000007