(57)【要約】【課題】Ｉ２Ｃ通信スレーブ装置に内蔵されるＣＰＵが他の処理のためにＩ２Ｃ通信ができないときにも、Ｉ２Ｃ通信スレーブ装置はＩ２Ｃバスを占有せず、他の通信を阻害しないようにする。【解決手段】Ｉ２Ｃバスを介してマスタと接続され、固有スレーブアドレスが付与され、ＣＰＵを備える、Ｉ２Ｃ通信スレーブ装置であって、マスタがアクセスを要求する要求スレーブアドレスを受信し、前記要求スレーブアドレスが前記固有スレーブアドレスと一致する場合に、アクノリッジを応答するか不応答とするかを、前記ＣＰＵによって指定することができるように構成される。【選択図】図１
2014232414.tif 000002
【特許請求の範囲】
【請求項１】
Ｉ２Ｃバスに接続されるＩ２Ｃインターフェース回路とＣＰＵとを備えるＩ２Ｃ通信スレーブ装置であって、
前記Ｉ２Ｃインターフェース回路は、付与されたスレーブアドレスを保持し、前記Ｉ２Ｃバスから受信したデータと前記スレーブアドレスとのアドレス比較を、前記ＣＰＵによってイネーブルまたはディセーブルする制御を可能に構成され、
前記Ｉ２Ｃインターフェース回路は、前記アドレス比較がイネーブルのときには前記アドレス比較の結果が一致の場合に、前記Ｉ２Ｃバスを介してアクノリッジを応答し、前記アドレス比較がディセーブルのときには前記アドレス比較の結果の一致、不一致に関わらずアクノリッジを応答しない、
Ｉ２Ｃ通信スレーブ装置。
【請求項２】
請求項１において、前記Ｉ２Ｃインターフェース回路は、前記Ｉ２Ｃバスから受信したシリアルデータをパラレルデータに変換するシリアル／パラレル変換回路と、前記シリアル／パラレル変換回路から出力されるパラレルデータを保持する受信レジスタと、前記スレーブアドレスを保持するスレーブアドレスレジスタと、前記受信レジスタと前記スレーブアドレスレジスタの値を比較するアドレス比較器と、前記Ｉ２Ｃバスを駆動することによってアクノリッジを応答可能なバス駆動回路とを備える、
Ｉ２Ｃ通信スレーブ装置。
【請求項３】
請求項２において、前記アドレス比較器は、記アドレス比較がイネーブルのときには前記アドレス比較の結果が一致の場合にアドレスの一致を出力し、前記アドレス比較がディセーブルのときには前記アドレス比較の結果の一致、不一致に関わらずアドレスの不一致を出力し、前記バス駆動回路は、前記アドレス比較器の出力が一致の場合に、アクノリッジを応答する、
Ｉ２Ｃ通信スレーブ装置。
【請求項４】
請求項１において、前記Ｉ２Ｃ通信スレーブ装置は、前記Ｉ２Ｃインターフェース回路から前記ＣＰＵに対する割り込み要求信号を有し、前記Ｉ２Ｃインターフェース回路は、前記ＣＰＵからアクセス可能な、通信状態レジスタを備え、
前記Ｉ２Ｃインターフェース回路は、前記アドレス比較がイネーブルのときには前記アドレス比較の結果が一致の場合に、前記割り込み要求信号をアサートし、及び／または、前記通信状態レジスタに前記Ｉ２Ｃバスから受信したアクセス制御情報を前記通信状態レジスタに書き込み、
前記Ｉ２Ｃバスを介してアクノリッジを応答し、前記アドレス比較がディセーブルのときには前記アドレス比較の結果の一致、不一致に関わらず、前記割り込み要求信号をアサートせず、前記通信状態レジスタに前記アクセス制御情報を書き込まない、
Ｉ２Ｃ通信スレーブ装置。
【請求項５】
請求項１において、単一半導体基板上に形成される、Ｉ２Ｃ通信スレーブ装置。
【請求項６】
Ｉ２Ｃバスを介してマスタと接続され、固有スレーブアドレスが付与され、ＣＰＵを備える、Ｉ２Ｃ通信スレーブ装置であって、
前記マスタがアクセスを要求する要求スレーブアドレスを受信し、前記要求スレーブアドレスが前記固有スレーブアドレスと一致する場合に、アクノリッジを応答するか不応答とするかを、前記ＣＰＵによって指定可能な、Ｉ２Ｃ通信スレーブ装置。
【請求項７】
請求項６において、前記Ｉ２Ｃ通信スレーブ装置は前記ＣＰＵに対する割り込み要求信号を有し、
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致し、且つ、アクノリッジを応答する場合には、前記ＣＰＵに対する割り込み要求信号がアサートされ、
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致するが、アクノリッジを不応答とする場合には、前記ＣＰＵに対する割り込み要求信号が抑止される、
Ｉ２Ｃ通信スレーブ装置。
【請求項８】
請求項６において、前記Ｉ２Ｃ通信スレーブ装置は前記マスタが要求するアクセスの属性を保持するステータスレジスタを有し、
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致し、且つ、アクノリッジを応答する場合には、前記ステータスレジスタは前記マスタが要求するアクセスの属性に基づいて更新され、
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致するが、アクノリッジを不応答とする場合には、前記ステータスレジスタの更新は抑止される、
Ｉ２Ｃ通信スレーブ装置。
【請求項９】
請求項６において、単一半導体基板上に形成される、Ｉ２Ｃ通信スレーブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃ（Inter-Integrated Circuit）通信スレーブ装置に関し、特にプロセッサを含むＩ２Ｃ通信スレーブ装置に好適に利用できるものである。
【背景技術】
【０００２】
Ｉ２Ｃ（Inter-Integrated Circuit）バスは、フィリップス社が開発した、集積回路間通信のためのバスの規格である。マスタ装置（以下単に「マスタ」と呼ぶ。）と１以上の複数のスレーブ装置（以下単に「スレーブ」と呼ぶ。）は、１本のシリアルクロックライン（ＳＣＬ：Serial Clock Line）と１本のシリアルデータライン（ＳＤＡ：Serial Data Line）に共通して接続され、双方向通信を行う。ＳＣＬとＳＤＡのラインはそれぞれ抵抗で電源にプルアップされており、送信する装置は、ラインを接地側に導通することによりロウを出力し、ラインを電源側に導通するか、ラインを駆動しないことによりハイを出力する。
【０００３】
マスタは、スレーブごとに付与されたスレーブアドレスを指定して、所望のスレーブとの通信を行う。マスタは、バスにスタートコンディションを発生させた後、バスに通信対象のスレーブアドレスを出力する。対象のスレーブアドレスに合致するアドレスを持つスレーブが、アクノリッジ（ＡＣＫ）を応答することにより、通信が開始される。通信中はデータを受信した側の装置が、ＡＣＫを応答する。マスタがバスにストップコンディションを発生させることにより、そのスレーブとの通信は終了する。
【０００４】
特許文献１には、装置識別コーディングを用いてＩ２Ｃスレーブ装置を識別する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００８−５３９４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００７】
Ｉ２Ｃ通信スレーブ装置を、ＣＰＵ（Central Processing Unit）などのプロセッサを有するＬＳＩ（Large Scale Integrated circuit）で構成する場合、ＣＰＵの負荷が重い場合に、Ｉ２Ｃバスを長時間に渡って占有し、他の装置との通信を阻害する問題があることがわかった。
【０００８】
Ｉ２Ｃバスの規格では、マスタが指定した通信対象のスレーブアドレスに合致するアドレスを持つスレーブは、マスタが送信したアドレスに続く所定のビット位置で、ＳＤＡをロウ駆動することにより、ＡＣＫを応答する。
【０００９】
ＣＰＵを備えるＩ２Ｃ通信スレーブ装置には、Ｉ２Ｃインターフェース回路を備えるものがある。Ｉ２Ｃインターフェース回路は、ＣＰＵによるプログラム処理を経ずにハードウェアで、付与されたスレーブアドレスと、マスタから送信されたアドレスとの照合を行い、合致した場合にはマスタに対してＡＣＫを応答し、ＣＰＵに対してステータスフラグや割り込みなどでＩ２Ｃ通信の処理が発生したことを通知する。通知されたＣＰＵは、Ｉ２Ｃ通信の処理を行う。マスタからのリード要求の場合は指定されたデータをＩ２Ｃインターフェース回路を介して送信し、ライト要求の場合はＩ２Ｃインターフェース回路内のバッファに受信されているデータを転送するなどの処理を行う。しかし、ＣＰＵが他の処理を並列に実行している場合には、Ｉ２Ｃ通信のための処理を必ずしも即座に開始することができるとは限らない。そのような場合は、Ｉ２Ｃバスの仕様に規定されるプロトコルに則って、Ｉ２Ｃインターフェース回路を介して所定の応答をすることにより、マスタを待たせることができる。しかし、その場合は、Ｉ２Ｃバスは、マスタを待たせているスレーブとの通信で占有され、他のスレーブとの通信を行うことができない。ＣＰＵの負荷が著しく重い場合には、長時間に渡ってバスが占有され、他の通信が阻害される。
【００１０】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態によれば、下記の通りである。
【００１２】
すなわち、Ｉ２Ｃバスを介してマスタと接続され、固有スレーブアドレスが付与され、Ｉ２Ｃ通信スレーブ装置（スレーブ）であって、以下のように構成される。スレーブは、ＣＰＵを備え、マスタがアクセスを要求する要求スレーブアドレスを受信し、前記要求スレーブアドレスが前記固有スレーブアドレスと一致する場合に、アクノリッジを応答するか不応答とするかを、前記ＣＰＵによって指定することができるように構成される。
【発明の効果】
【００１３】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、スレーブに内蔵されるＣＰＵが他の処理のためにＩ２Ｃ通信ができないときには、スレーブはＩ２Ｃバスを占有せず、他の通信を阻害しないようにすることができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、一実施の形態に係るＩ２Ｃ通信スレーブ装置の構成を表すブロック図である。
【図２】図２は、Ｉ２Ｃバスによる正常な通信を示すタイミング図である。
【図３】図３は、Ｉ２Ｃバスにおいてスレーブからマスタ側を待たせるためのプロトコルを示すタイミング図である。
【図４】図４は、ライト時にＩ２Ｃバスを占有するという課題を示すタイミング図である。
【図５】図５は、リード時にＩ２Ｃバスを占有するという課題を示すタイミング図である。
【図６】図６は、一実施の形態に係るＩ２Ｃ通信スレーブ装置の動作を表すタイミング図である。
【図７】図７は、一実施の形態に係るＩ２Ｃ通信スレーブ装置の詳細な構成例を表すブロック図である。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕＜アドレス比較イネーブル＞
本願において開示される代表的な実施の形態に係るＩ２Ｃ通信スレーブ装置（１）は、Ｉ２Ｃバス（８）に接続されるＩ２Ｃインターフェース回路（２）とＣＰＵ（３）とを備え、以下のように構成される。
【００１８】
前記Ｉ２Ｃインターフェース回路は、付与されたスレーブアドレスを保持し、前記Ｉ２Ｃバスから受信したデータと前記スレーブアドレスとのアドレス比較を、前記ＣＰＵによってイネーブルまたはディセーブルする制御を可能に構成される。
【００１９】
前記Ｉ２Ｃインターフェース回路は、前記アドレス比較がイネーブルのときには前記アドレス比較の結果が一致の場合に、前記Ｉ２Ｃバスを介してアクノリッジを応答し、前記アドレス比較がディセーブルのときには前記アドレス比較の結果の一致、不一致に関わらずアクノリッジを応答しない。
【００２０】
これにより、Ｉ２Ｃ通信スレーブ装置に内蔵されるＣＰＵが他の処理のためにＩ２Ｃ通信ができないときには、Ｉ２Ｃ通信スレーブ装置はＩ２Ｃバスを占有せず、他の通信を阻害しないようにすることができる。
【００２１】
〔２〕＜アドレス比較器＞
項１において、前記Ｉ２Ｃインターフェース回路は、前記Ｉ２Ｃバスから受信したシリアルデータをパラレルデータに変換するシリアル／パラレル変換回路（２１）と、前記シリアル／パラレル変換回路から出力されるパラレルデータを保持する受信レジスタ（５）とを備える。前記Ｉ２Ｃインターフェース回路は、さらに、前記スレーブアドレスを保持するスレーブアドレスレジスタ（４）と、前記受信レジスタと前記スレーブアドレスレジスタの値を比較するアドレス比較器（６）と、前記Ｉ２Ｃバスを駆動することによってアクノリッジを応答可能なバス駆動回路（７）とを備える。
【００２２】
これにより、Ｉ２Ｃインターフェース回路を簡単な回路で構成することができる。
【００２３】
〔３〕＜アドレス比較器に対するアドレス比較イネーブル制御＞
項２において、前記アドレス比較器は、前記アドレス比較がイネーブルのときには前記アドレス比較の結果が一致の場合にアドレスの一致を出力し、前記アドレス比較がディセーブルのときには前記アドレス比較の結果の一致、不一致に関わらずアドレスの不一致を出力し、前記バス駆動回路は、前記アドレス比較器の出力が一致の場合に、アクノリッジを応答する。
【００２４】
これにより、Ｉ２Ｃインターフェース回路において、アドレス比較イネーブル制御を簡単な回路で構成することができる。
【００２５】
〔４〕＜アドレス比較ディセーブル時のＣＰＵへの通知の抑止＞
項１において、前記Ｉ２Ｃ通信スレーブ装置は、前記Ｉ２Ｃインターフェース回路から前記ＣＰＵに対する割り込み要求信号を有し、前記Ｉ２Ｃインターフェース回路は、前記ＣＰＵからアクセス可能な、通信状態レジスタ（２３）を備える。
【００２６】
前記Ｉ２Ｃインターフェース回路は、前記アドレス比較がイネーブルのときには前記アドレス比較の結果が一致の場合に、前記割り込み要求信号をアサートし、及び／または、前記通信状態レジスタに前記Ｉ２Ｃバスから受信したアクセス制御情報を書き込む。
【００２７】
前記Ｉ２Ｃバスを介してアクノリッジを応答し、前記アドレス比較がディセーブルのときには前記アドレス比較の結果の一致、不一致に関わらず、前記割り込み要求信号をアサートせず、前記通信状態レジスタに前記アクセス制御情報を書き込まない。
【００２８】
これにより、アドレス比較がディセーブルのときには、ＣＰＵにはＩ２Ｃバス通信のための負荷をかけることがない。
【００２９】
〔５〕＜１チップ＞
項１から項４のうちのいずれか１項において、前記Ｉ２Ｃ通信スレーブ装置は、単一半導体基板上に形成される。
【００３０】
これにより、Ｉ２Ｃ通信スレーブ装置は、１チップのＬＳＩに集積され、実装コストが抑えられる。
【００３１】
〔６〕＜アドレス比較イネーブル＞
本願において開示される代表的な実施の形態に係るＩ２Ｃ通信スレーブ装置（１）は、Ｉ２Ｃバス（８）を介してマスタ（９）と接続され、固有スレーブアドレスが付与され、ＣＰＵ（３）を備え、以下のように構成される。
【００３２】
前記Ｉ２Ｃ通信スレーブ装置は、前記マスタがアクセスを要求する要求スレーブアドレスを受信し、前記要求スレーブアドレスが前記固有スレーブアドレスと一致する場合に、アクノリッジを応答するか不応答とするかを、前記ＣＰＵによって指定可能に構成される。
【００３３】
これにより、Ｉ２Ｃ通信スレーブ装置に内蔵されるＣＰＵが他の処理のためにＩ２Ｃ通信ができないときには、Ｉ２Ｃ通信スレーブ装置はＩ２Ｃバスを占有せず、他の通信を阻害しないようにすることができる。
【００３４】
〔７〕＜アドレス比較ディセーブル時の割り込み要求の抑止＞
項６において、前記Ｉ２Ｃ通信スレーブ装置は前記ＣＰＵに対する割り込み要求信号を有する。
【００３５】
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致し、且つ、アクノリッジを応答する場合には、前記ＣＰＵに対する割り込み要求信号がアサートされる。
【００３６】
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致するが、アクノリッジを不応答とする場合には、前記ＣＰＵに対する割り込み要求信号が抑止される。
【００３７】
これにより、アドレス比較がディセーブルのときには、ＣＰＵにはＩ２Ｃバス通信のための割り込み処理の負荷をかけることがない。
【００３８】
〔８〕＜アドレス比較ディセーブル時のステータスフラグ更新の停止＞
項６において、前記Ｉ２Ｃ通信スレーブ装置は前記マスタが要求するアクセスの属性を保持するステータスレジスタ（２３）を有する。
【００３９】
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致し、且つ、アクノリッジを応答する場合には、前記ステータスレジスタは前記マスタが要求するアクセスの属性に基づいて更新される。
【００４０】
前記要求スレーブアドレスと前記固有スレーブアドレスとが一致するが、アクノリッジを不応答とする場合には、前記ステータスレジスタの更新は抑止される。
【００４１】
これにより、アドレス比較がディセーブルのときには、ＣＰＵにはＩ２Ｃバス通信のためのステータスフラグ処理の負荷をかけることがない。
【００４２】
〔９〕＜１チップ＞
項６から項８のうちのいずれか１項において、前記Ｉ２Ｃ通信スレーブ装置は、単一半導体基板上に形成される。
【００４３】
これにより、Ｉ２Ｃ通信スレーブ装置は、１チップのＬＳＩに集積され、実装コストが抑えられる。
【００４４】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４５】
〔実施形態１〕
図１は、一実施の形態に係るＩ２Ｃ通信スレーブ装置の構成を表すブロック図である。
【００４６】
Ｉ２Ｃ通信スレーブ装置１は、Ｉ２Ｃ通信マスタ装置９とＩ２Ｃバス８によって接続されている。Ｉ２Ｃバス８は、１本のシリアルクロックラインＳＣＬと１本のシリアルデータラインＳＤＡからなる、双方向シリアルバスである。Ｉ２Ｃ通信スレーブ装置１は、Ｉ２Ｃバス８に接続されるＩ２Ｃインターフェース回路２とＣＰＵ３とを備える。Ｉ２Ｃインターフェース回路２は、例えばバス１１を介してＣＰＵ３に接続される、ＣＰＵ３の周辺モジュールの１つである。バス１１は、階層化されていてもよく、他のモジュールが接続されていても良い。ＣＰＵは、如何なるアーキテクチャのプロセッサであってよく、マルチプロセッサであってもよい。
【００４７】
Ｉ２Ｃインターフェース回路２は、付与されたスレーブアドレスを保持し、Ｉ２Ｃバス８から受信したデータとスレーブアドレスとのアドレス比較を、ＣＰＵ３によってイネーブルまたはディセーブルする制御が可能である。上記付与されたスレーブアドレスとは、通信に先立って付与された、スレーブ１に固有のアドレスであり、Ｉ２Ｃバス８から受信したデータは、マスタ９がアクセスを要求する要求スレーブアドレスである。両者を比較することにより、スレーブ１はマスタ９からのアクセス要求の対象が自分自身か否かの判断を行う。このアドレス比較の実行／不実行は、ＣＰＵ３によって選択的に指定される。
【００４８】
Ｉ２Ｃインターフェース回路２は、例えば、スレーブアドレスレジスタ４と、シフトレジスタ２１と受信レジスタ５と、比較器６とバス駆動回路（アクノリッジ応答回路）７とを備える。スレーブアドレスレジスタ４は、付与されたスレーブアドレスを保持する。シフトレジスタ２１は、ＳＣＬから入力されるクロックに同期してＳＤＡから入力されるシリアルデータを取り込み、順次シフトすることによって、パラレルデータに変換する、シリアル／パラレル変換回路である。パラレルデータに変換された受信データは、受信レジスタ５に転送される。比較器６にはスレーブアドレスレジスタ４の出力と受信レジスタ５の出力が接続され、アドレス比較の実行／不実行を指定するイネーブル信号がＣＰＵ３から入力される。比較器６は、アドレス比較がイネーブルのときにはアドレス比較の結果が一致の場合にアドレスの一致を出力し、アドレス比較がディセーブルのときにはアドレス比較の結果の一致、不一致に関わらずアドレスの不一致を出力する。バス駆動回路（アクノリッジ応答回路）７は、アドレス比較がイネーブルで、且つ、アドレス比較の結果が一致の場合に、Ｉ２Ｃバス８を介してマスタ９に対してアクノリッジを応答し、アドレス比較がディセーブルのときにはアドレス比較の結果の一致、不一致に関わらずアクノリッジを応答しない。
【００４９】
これにより、Ｉ２Ｃ通信スレーブ装置１に内蔵されるＣＰＵ３が他の処理のためにＩ２Ｃ通信ができないときには、Ｉ２Ｃ通信スレーブ装置１はＩ２Ｃバス８を占有せず、他の通信を阻害しないようにすることができる。また、上記のように構成することにより、Ｉ２Ｃインターフェース回路２を簡単な回路で構成することができる。特に、Ｉ２Ｃインターフェース回路２において、アドレス比較イネーブル制御を簡単な回路で構成することができる。
【００５０】
Ｉ２Ｃ通信スレーブ装置１は、特に制限されないが、例えば、公知のＣＭＯＳ（Complementary Metal-Oxide-Semiconductor field effect transistor）ＬＳＩの製造技術を用いて、シリコンなどの単一半導体基板上に形成される。
【００５１】
これにより、Ｉ２Ｃ通信スレーブ装置２は、１チップのＬＳＩに集積され、実装コストが抑えられる。
【００５２】
本実施形態に係るＩ２Ｃ通信スレーブ装置１の動作について説明する。
【００５３】
図２から図６はＩ２Ｃバス８による通信を示すタイミング図であり、横軸に時間を取り、縦軸方向に、Ｉ２Ｃバスの状態、ＳＤＡの波形、ＳＣＬの波形を、上から順に示す。
【００５４】
図２は、Ｉ２Ｃバスによる通常の通信を示すタイミング図である。スレーブ１に内蔵されるＣＰＵ３の負荷はＩ２Ｃ通信を処理する余力を持っており、ＣＰＵ３により、アドレス比較はイネーブルに設定されている場合の例示である。時刻ｔ０〜ｔ１にスタートコンディションが発生している。スタートコンディションとは、Ｉ２Ｃバスの仕様に規定される、通信プロトコルの開始条件であり、ＳＣＬがハイの期間にＳＤＡがハイからロウに変化することによって発生する。前述の通り、ＳＣＬとＳＤＡのラインは、それぞれ抵抗で電源にプルアップされており、送信する装置は、ラインを接地側に導通することによりロウを出力し、ラインを電源側に導通するか、ラインを駆動しないことによりハイを出力する。
【００５５】
この例では、マスタ９が通信を開始したものとして説明する。マスタ９は、スタートコンディションを発生させた後、時刻ｔ１〜ｔ３にアクセスを要求する要求スレーブアドレスと、時刻ｔ３〜ｔ４にリード又はライトのいずれかの指定を送信する。これを受信したスレーブ２は、指定された要求スレーブアドレスと、自己に付与されたスレーブアドレスとを比較し、一致したときは、上記に続く時刻ｔ４〜ｔ５にアクノリッジを送出する。ＳＤＡを接地側に導通させることにより、ロウが出力されることで、マスタ９はアクノリッジを認識する。自己に付与されたスレーブアドレスと一致しないスレーブ装置は、ＳＤＡを駆動しない。マスタ９がアクノリッジを認識すると、実際のアクセスが開始される。
【００５６】
例えばマスタ９からのリード要求であるとすると、スレーブ１は時刻ｔ５〜ｔ８に読み出されるべきデータを送出する。このデータを正しく受信することができた場合には、マスタ９は時刻ｔ８〜ｔ９に、ＳＤＡを接地側に導通させることにより、ロウを出力することで、アクノリッジをスレーブ側に送出する。以降、スレーブ側からのデータの出力とマスタ９側からのアクノリッジの応答が、所定回数だけ繰り返され、アクセスが完了すると、マスタ９がストップコンディションを発生させて、一連の通信を終了させる。ここで、ストップコンディションとは、Ｉ２Ｃバスの仕様に規定される、通信プロトコルの終了条件であり、ＳＣＬがハイの期間にＳＤＡがロウからハイに変化することによって発生する。
【００５７】
例えばマスタ９からのライト要求であるとすると、マスタ９は時刻ｔ５〜ｔ８に、スレーブ１に書き込むべきデータを送出する。このデータを正しく受信することができた場合には、スレーブ１は時刻ｔ８〜ｔ９に、ＳＤＡを接地側に導通させることにより、ロウを出力することで、アクノリッジをスレーブ１側に送出する。以降、マスタ９側からのデータの出力とスレーブ１側からのアクノリッジの応答が、所定回数だけ繰り返され、アクセスが完了すると、マスタ９がストップコンディションを発生させて、一連の通信を終了させる。
【００５８】
図２には、時刻ｔ９〜ｔ１２のマスタ９側またはスレーブ１側からのデータの出力と時刻ｔ１２〜ｔ１３のマスタ９側またはスレーブ１側からのアクノリッジの応答、及び、時刻ｔ１３におけるストップコンディションの発生が例示されている。スタートコンディションからストップコンディションまで（時刻ｔ０から時刻ｔ１４まで）は、マスタ９によりアクセス対象として指定されたスレーブアドレスを持つスレーブ１以外のスレーブ装置は、マスタ９とは通信することができず、バス８はアクセス対象のスレーブ装置によって占有される。
【００５９】
以上の例は、スレーブ１に内蔵されるＣＰＵ３の負荷にＩ２Ｃ通信を処理する余力がある場合であるが、余力がない場合には、マスタ９側を待たせることができる。Ｉ２Ｃバスの仕様には、スレーブ側が何らかの理由により、データの全てのビットを受信または送信することができない場合、マスタ側を待たせるためのプロトコルが規定されている。
【００６０】
図３は、Ｉ２Ｃバスにおいてスレーブからマスタ側を待たせるためのプロトコルを示すタイミング図（比較例）である。マスタは、図２に示したプロトコルと同様に、時刻ｔ０〜ｔ１にスタートコンディションが発生させ、時刻ｔ１〜ｔ３にアクセスを要求する要求スレーブアドレスと、時刻ｔ３〜ｔ４にリード又はライトのいずれかの指定を送信している。これを受信したスレーブ装置は、指定された要求スレーブアドレスと、自己に付与されたスレーブアドレスとを比較して一致を検出したが、続くデータの送受信ができない状態にあるものとする。このとき、スレーブ装置は、上記に続く時刻ｔ４〜ｔ５にアクノリッジを送出する代わりに、時刻ｔ４〜ｔ１５にクロックラインＳＣＬをロウに保持する（インタラプト状態）。その後、スレーブ装置が、続くデータの送受信が可能な状態になった時（時刻ｔ１５〜ｔ５）に、ＳＤＡを接地側に導通させることにより、ＳＤＡにロウが出力されることで、マスタはアクノリッジを認識する。マスタがアクノリッジを認識すると、時刻ｔ５〜ｔ１４は図２に示したのと同様のアクセスが開始される。
【００６１】
ここで、スレーブ装置がデータの送受信をすることができない状態が、長時間に渡って続くと、その期間Ｉ２Ｃバスが占有され、他のスレーブ装置との通信に使うことができない状態が続くこととなる。本実施形態は、このような課題を解決するが、さらに以下に示す新たな課題も同時に解決する。
【００６２】
実際にこのプロトコルによってマスタ側を待たせる機能を実装するためには、マスタ装置が、ＳＣＬにロウが保持されていることを検知する機能を備えている必要がある。しかしＩ２Ｃバスは汎用であるため、接続されるマスタ装置を特定することができない場合があり、一部のマスタ装置は、ＳＣＬがロウに保持されていることを検知する機能を備えていないものがある。マスタ装置がＳＣＬ＝ロウを検知する機能を備えておらず、スレーブ装置側がこのプロトコルによってマスタ側を待たせる機能を実装していると、通信データが失われる恐れがある。図４と図５は、それぞれライト時とリード時にＩ２Ｃバスを占有するという課題を示すタイミング図である。図４では、図３と同様に時刻ｔ０〜ｔ１にスタートコンディションが発生し、時刻ｔ１〜ｔ３にアクセスを要求する要求スレーブアドレスと、時刻ｔ３〜ｔ４にライトの指定が送信され、その後時刻ｔ４〜ｔ１５に、スレーブ装置がＳＣＬをロウに保持（インタラプト状態）している。しかしマスタ装置がＳＣＬ＝ロウを検知する機能を備えていないと、マスタ装置はその後時刻ｔ１５〜ｔ１８にライトデータを送出する。しかし、スレーブ装置は、このデータを受信することができないし、さらに、アクノリッジ（ＡＣＫ）に代えて、ライトデータを受信することができなかったことを応答（ＮＡＣＫ）できるかどうかも保証の限りではない。スレーブ装置は、規定されたプロトコルに則って、インタラプト状態を保っているに過ぎないからである。図５では、スタートコンディション（時刻ｔ０〜ｔ１）、アドレス（時刻ｔ１〜ｔ３）、リードの指定（時刻ｔ３〜ｔ４）が送信された後、時刻ｔ４〜ｔ１９に、スレーブ装置がＳＣＬをロウに保持してバスをインタラプト状態にしている。マスタ装置がＳＣＬ＝ロウを検知する機能を備えていないと、マスタ装置はその期間（時刻ｔ４〜ｔ１８）のＳＤＡの状態を、リードデータと誤認して読み込んでしまう。
【００６３】
以上のように、Ｉ２Ｃバスの仕様に則って、ＳＣＬをロウに保持してバスをインタラプト状態にすることにより、スレーブ側がマスタ装置を待たせることができるが、その期間はバスが占有されて他のスレーブ装置との通信ができないので、占有が長時間になると問題が深刻である。またさらに、インタラプト状態を検出する機能を備えていないマスタ装置との間では、通信データが失われる恐れがある。
【００６４】
図６は、一実施の形態に係るＩ２Ｃ通信スレーブ装置の動作を表すタイミング図である。
【００６５】
マスタ９は、図２に示したプロトコルと同様に、時刻ｔ０〜ｔ１にスタートコンディションを発生させ、時刻ｔ１〜ｔ３にアクセスを要求する要求スレーブアドレスと、時刻ｔ３〜ｔ４にリード又はライトのいずれかの指定を送信している。これを受信したスレーブ２は、指定されたアクセス対象のアドレスと、自己に付与されたスレーブアドレスとを比較して一致を検出したが、続くデータの送受信ができない状態にあるものとする。このとき、スレーブ２は、上記に続く時刻ｔ４〜ｔ５にアクノリッジを送出する代わりに、時刻ｔ４〜ｔ１５にデータラインＳＤＡをハイに保持する。ＳＤＡは電源に対してプルアップされているので、スレーブ２のバス駆動回路（アクノリッジ応答回路）７は、ＳＤＡをロウ駆動しない。マスタ９は、スレーブ２からのアクノリッジを受信できなかったので、時刻ｔ１６にストップコンディションを発生させ、通信プロトコルを終了させる。これにより、バスの占有は時刻ｔ０〜ｔ１６となり、それ以降は解放され、他の通信に利用することができる。以上のように、Ｉ２Ｃ通信スレーブ装置１に内蔵されるＣＰＵ３が他の処理のためにＩ２Ｃ通信ができないときにも、Ｉ２Ｃ通信スレーブ装置はＩ２Ｃバス８を占有せず、他の通信を阻害しないようにすることができる。
【００６６】
〔実施形態２〕
図７は、一実施の形態に係るＩ２Ｃ通信スレーブ装置のより詳細な構成例を表すブロック図である。
【００６７】
Ｉ２Ｃ通信スレーブ装置１は、Ｉ２Ｃ通信マスタ装置９とＩ２Ｃバス８によって接続されている。Ｉ２Ｃバス８には、さらに複数のスレーブ装置１０＿１〜１０＿３が接続されている。Ｉ２Ｃ通信スレーブ装置１と他のスレーブ装置１０＿１〜１０＿３にはそれぞれ固有のスレーブアドレスが付与されている。
【００６８】
Ｉ２Ｃ通信スレーブ装置１は、Ｉ２Ｃバス８に接続されるＩ２Ｃインターフェース回路２、ＣＰＵ３、さらに、ＲＯＭ１２、ＲＡＭ１３、及び、割り込み制御回路１４を備え、バス１１を介してＣＰＵ３に接続されている。
【００６９】
Ｉ２Ｃインターフェース回路２は、スレーブアドレスレジスタ４、シリアル／パラレル変換回路であるシフトレジスタ２１、受信レジスタ５、比較器６、バス駆動回路（アクノリッジ応答回路）７、さらに、ステータスレジスタ制御回路２２、ステータスレジスタ２３、及び、割り込み要求回路２４を備える。
【００７０】
図１を引用して説明した実施形態１と同様に、マスタ９からアクセスを要求されたスレーブアドレスが受信レジスタ５に入力され、その出力とスレーブアドレスレジスタ４に格納されている付与された固有スレーブアドレスとが比較器６に入力される。マスタ９からアクセスを要求されたスレーブアドレスと固有スレーブアドレスとが一致する場合に、アクノリッジを応答するか不応答とするかは、ＣＰＵ３によって指定することができる。アクノリッジ応答回路７は、アドレスの比較動作がイネーブルのときにはアドレス比較の結果が一致の場合に、Ｉ２Ｃバス８を介してマスタ９に対してアクノリッジを応答し、アドレス比較がディセーブルのときにはアドレス比較の結果の一致、不一致に関わらずアクノリッジを応答しない。
【００７１】
マスタ９からアクセスを要求されたスレーブアドレスと固有スレーブアドレスとが一致するときに、アクノリッジを応答する場合には、ステータスレジスタ２３はマスタ９が要求するアクセスの属性に基づいて更新される。マスタ９が要求するアクセスの属性には、例えばリード要求かライト要求かなどの情報が含まれる。アドレス比較の結果が一致するときにも、アクノリッジを不応答とする場合には、ステータスレジスタ２３の更新は行われない。これにより、アドレス比較がディセーブルのときには、ＣＰＵにはＩ２Ｃバス通信のためのステータスフラグ処理の負荷をかけることがない。
【００７２】
マスタ９からアクセスを要求されたスレーブアドレスと固有スレーブアドレスとが一致するときに、アクノリッジを応答する（アドレス比較がイネーブル）場合には、割り込み要求回路２４により、ＣＰＵ３に対する割り込み要求信号がアサートされる。割り込み要求回路２４からの割り込み要求信号は、割り込み制御回路１４において、割り込みマスクの処理や、図示されない他の機能モジュールからの割り込み信号との間で、優先順位の判定などの制御を受け、条件が満たされればＣＰＵ３への割り込み要求信号として出力される。マスタ９からアクセスを要求されたスレーブアドレスと固有スレーブアドレスと一致してもアクノリッジを不応答とする場合（アドレス比較がディセーブル）には、ＣＰＵ３に対する割り込み要求信号は抑止される。これにより、アドレス比較がディセーブルのときには、ＣＰＵにはＩ２Ｃバス通信のための割り込み処理の負荷をかけることがない。
【００７３】
ステータスレジスタ２３と割り込み要求回路２４とは、必ずしも両方同時に設ける必要はなく、一方のみでも良いが、両方設けて、通信対象に応じて使い分けることもできる。
【００７４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００７５】
例えば、ＣＰＵ３は特定のアーキテクチャのプロセッサに限定されず、如何なるアーキテクチャのプロセッサにも変更することができる。
【符号の説明】
【００７６】
１  Ｉ２Ｃ通信スレーブ装置
２  Ｉ２Ｃインターフェース回路
３  ＣＰＵ
４  スレーブアドレスレジスタ
５  受信レジスタ
６  比較器
７  バス駆動回路（アクノリッジ応答回路）
８  Ｉ２Ｃバス
９  Ｉ２Ｃ通信マスタ装置
１０＿１、１０＿２、１０＿３  他のＩ２Ｃ通信スレーブ装置
１１  バス
１２  ＲＯＭ（Read Only Memory）
１３  ＲＡＭ（Random Access Memory）
１４  割り込み制御回路
２１  シリアル／パラレル変換回路（シフトレジスタ）
２２  ステータスレジスタ制御回路
２３  ステータスレジスタ
２４  割り込み要求回路
【図１】
2014232414.tif 000003
【図２】
2014232414.tif 000004
【図３】
2014232414.tif 000005
【図４】
2014232414.tif 000006
【図５】
2014232414.tif 000007
【図６】
2014232414.tif 000008
【図７】
2014232414.tif 000009