(57)【要約】【課題】ＣＰＵの負担を抑えながら、簡単な構成でスレーブデバイスの割り込み要求を監視することができるマスタデバイスを実現する。【解決手段】本発明に係るマスタデバイス３は、Ｉ２Ｃバスを介してスレーブデバイス２ａ〜２ｅに接続され、各スレーブデバイス２ａ〜２ｅに割り当てられたデバイスアドレスを指定することで各スレーブデバイス２ａ〜２ｅとの通信を行い、スレーブデバイス２ａ〜２ｅのうち、割り込み機能を有するスレーブデバイス２ａ、２ｂ、２ｄ、２ｅから、マスタデバイス３およびスレーブデバイス２ａ〜２ｅを制御するＣＰＵ４への割り込み要求を周期的に監視する割り込み監視回路３１を備える。【選択図】図１
2012194829.tif 000002
【特許請求の範囲】
【請求項１】
Ｉ２Ｃバスを介してスレーブデバイスに接続され、上記スレーブデバイスに割り当てられたデバイスアドレスを指定することで上記スレーブデバイスとの通信を行うマスタデバイスであって、
上記スレーブデバイスから、上記マスタデバイスおよび上記スレーブデバイスを制御するＣＰＵへの割り込み要求を周期的に監視する割り込み監視回路を備えることを特徴とするマスタデバイス。
【請求項２】
上記割り込み監視回路は、
上記スレーブデバイスの割り込み要求の有無を示すペンディングビットを含むステータスデータを、上記マスタデバイスを介して上記スレーブデバイスから周期的に読み出す読み出し回路と、
上記スレーブデバイスから読み出された上記ステータスデータに基づいて、上記スレーブデバイスの割り込み要求の有無を判定する判定回路と、
上記判定回路によって、上記スレーブデバイスの割り込み要求が有と判定された場合に、上記ＣＰＵに割り込み要求を通知する割り込み要求通知回路と、を備えることを特徴とする請求項１に記載のマスタデバイス。
【請求項３】
上記判定回路は、
上記スレーブデバイスの割り込み要求の有無を判定するための第１および第２の判定用データを、当該スレーブデバイスと対応付けて記憶するメモリと、
第１および第２の判定用データおよび上記ステータスデータに基づいて、上記スレーブデバイスの割り込み要求の有無の判定結果を出力する論理回路と、を備えることを特徴とする請求項２に記載のマスタデバイス。
【請求項４】
上記読み出し回路は、
上記ステータスデータの読み出しのタイミングを制御するタイミング制御回路を備え、
上記タイミング制御回路は、所定のタイミングで、上記読み出し回路が上記スレーブデバイスからの上記ステータスデータの読み出しを開始するように制御し、
上記ＣＰＵが上記マスタデバイスへアクセスしている間に、上記所定のタイミングが到来した場合、
上記読み出し回路は、上記ＣＰＵの上記マスタデバイスへのアクセスが終了するまで、上記ステータスデータの読み出し開始を延期させることを特徴とする請求項２または３に記載のマスタデバイス。
【請求項５】
スレーブデバイスと、Ｉ２Ｃバスを介して上記スレーブデバイスに接続され、上記スレーブデバイスに割り当てられたデバイスアドレスを指定することで上記スレーブデバイスとの通信を行うマスタデバイスとを備えるバスシステムであって、
上記マスタデバイスとして、請求項１〜４のいずれか１項に記載のマスタデバイスを備えることを特徴とするバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃバスを利用したバスシステムに関し、特に、スレーブデバイスからの割り込み要求を監視する技術に関する。
【背景技術】
【０００２】
デバイス間の情報伝達を行うためのインターフェイスとして、Ｉ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスが知られている。
【０００３】
図９は、Ｉ２Ｃバスを用いた従来のバスシステム１０１の概略構成を示すブロック図である。バスシステム１０１は、５つのスレーブデバイス１０２ａ〜１０２ｅと、マスタデバイス１０３と、ＣＰＵ１０４とを備えている。マスタデバイス１０３およびＣＰＵ１０４とは、同一のチップ１０５内に設けられる。
【０００４】
スレーブデバイス１０２ａ〜１０２ｅとマスタデバイス１０３とは、Ｉ２Ｃバスを介して接続されている。マスタデバイス１０３は、各スレーブデバイス１０２ａ〜１０２ｅに割り当てられたデバイスアドレスを指定することで、各スレーブデバイス１０２ａ〜１０２ｅとの通信を行う。各スレーブデバイス１０２ａ〜１０２ｅは、マスタデバイス１０３からのシリアルクロックＳＣＬに合わせて、シリアルデータＳＤＡの入出力を行う。
【０００５】
ＣＰＵ１０４は、スレーブデバイス１０２ａ〜１０２ｅおよびマスタデバイス１０３の制御を行うものであり、マスタデバイス１０３とＣＰＵ１０４とは、データバスＤＢ、アドレスバスＡＢおよび割り込みラインＬ１を介して接続されている。割り込みラインＬ１は、マスタデバイス１０３から見たＩ２Ｃバスのエラーや処理完了などによる割り込み要求をマスタデバイス１０３からＣＰＵ１０４へ送信するためのものである。
【０００６】
また、スレーブデバイス１０２ａ〜１０２ｅのうち、スレーブデバイス１０２ａ、１０２ｂ、１０２ｄ、１０２ｅは、ＣＰＵ１０４に対する割り込み機能を有している。しかしながら、Ｉ２Ｃバスを用いたシリアルバスシステムでは、スレーブデバイスからＩ２Ｃバスを介してＣＰＵへの割り込みを行うことができない。そのため、バスシステム１０１では、割り込みを必要とするスレーブデバイス１０２ａ、１０２ｂ、１０２ｄ、１０２ｅとＣＰＵ１０４とが、割り込みラインＬ２〜Ｌ５によってそれぞれ接続されている。なお、スレーブデバイス１０２ｃはＣＰＵ１０４に対する割り込み機能を有していないので、ＣＰＵ１０４とスレーブデバイス１０２ｃとは結線されていない。
【０００７】
各スレーブデバイス１０２ａ、１０２ｂ、１０２ｄ、１０２ｅは、割り込み要求を示すペンディングビットを含むステータスレジスタを備えており、ペンディングビットの値をそれぞれ割り込みラインＬ２〜Ｌ５を介してＣＰＵ１０４に送信するように構成されている。これにより、各スレーブデバイス１０２ａ、１０２ｂ、１０２ｄ、１０２ｅからＣＰＵ１０４への割り込み要求を可能としている。
【０００８】
しかしながら、図９の破線枠に示すように、チップ１０５に割り込みラインＬ２〜Ｌ５のための入力ピンが必要となる。このため、チップ１０５として予め割り込みライン用の入力ピンを備えているものを使用するか、あるいは、ＡＳＩＣ等を使って実装する必要がある。
【０００９】
そこで、下記の特許文献１では、マスタデバイス（マスタ装置）がスレーブデバイス（スレーブ装置）にリードアクセスの要求を絶えず送信し続け、割り込み信号を発しているスレーブデバイスから割り込み状態ビットを有する応答を受信することにより、割り込み状態を認識することが記載されている。これにより、スレーブデバイスからＣＰＵへの割り込みラインを不要とし、チップのピン数を抑えることができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−１２０１４６号公報（２００６年５月１１日公開）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に記載の構成では、システムの動作速度が遅くなるという問題がある。
【００１２】
具体的には、特許文献１には、スレーブデバイスから割り込み状態ビットを有する割り込み関連情報がマスタデバイスに返信された場合、マスタデバイスが割り込みを処理する旨記載されているが（図１０、Ｓ１６）、ＣＰＵの割り込みを要求することは記載されていない。また、マスタデバイスがハードウェアによってスレーブデバイスに割り込み要求を「絶えず」送信していると仮定すると、ＣＰＵが、割り込み監視以外の通常のスレーブデバイスへのアクセスを実行できるタイミングが存在しないこととなる。
【００１３】
そのため、特許文献１では、ソフトウェアによって割り込みの監視を行っていると考えられる。そうすると、ＣＰＵが実行するタスクの１つを、常に割り込み監視用に使用することになるため、ＣＰＵの負担が増大し、システムの動作速度が遅くなってしまう。
【００１４】
本発明は、上記の問題点を解決するためになされたもので、その目的は、ＣＰＵの負担を抑えながら、簡単な構成でスレーブデバイスの割り込み要求を監視することができるマスタデバイスを提供することにある。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、本発明に係るマスタデバイスは、Ｉ２Ｃバスを介してスレーブデバイスに接続され、上記スレーブデバイスに割り当てられたデバイスアドレスを指定することで上記スレーブデバイスとの通信を行うマスタデバイスであって、上記スレーブデバイスから、上記マスタデバイスおよび上記スレーブデバイスを制御するＣＰＵへの割り込み要求を周期的に監視する割り込み監視回路を備えることを特徴としている。
【００１６】
上記の構成によれば、割り込み監視回路によって、スレーブデバイスからＣＰＵへの割り込み要求を周期的に監視している。割り込み監視回路は、ハードウェア構成であるため、割り込み要求の監視によるＣＰＵの負担の増大を抑えることができる。また、割り込み監視のために、スレーブデバイスとＣＰＵとを結線する必要がない。したがって、ＣＰＵの負担を抑えながら、簡単な構成でスレーブデバイスの割り込み要求を監視することができるマスタデバイスを提供することができる。
【００１７】
本発明に係るマスタデバイスでは、上記割り込み監視回路は、上記スレーブデバイスの割り込み要求の有無を示すペンディングビットを含むステータスデータを、上記マスタデバイスを介して上記スレーブデバイスから周期的に読み出す読み出し回路と、上記スレーブデバイスから読み出された上記ステータスデータに基づいて、上記スレーブデバイスの割り込み要求の有無を判定する判定回路と、上記判定回路によって、上記スレーブデバイスの割り込み要求が有と判定された場合に、上記ＣＰＵに割り込み要求を通知する割り込み要求通知回路と、を備えることが好ましい。
【００１８】
上記の構成によれば、読み出し回路によってペンディングビットを含むステータスデータがスレーブデバイスから読み出され、判定回路が、読み出されたステータスデータに基づいて、スレーブデバイスの割り込み要求の有無を判定し、スレーブデバイスの割り込み要求が有と判定された場合に、割り込み要求通知回路によってＣＰＵに割り込み要求が通知される。これにより、ＣＰＵは、割り込み要求の有無を検知することができる。
【００１９】
本発明に係るマスタデバイスでは、上記判定回路は、上記スレーブデバイスの割り込み要求の有無を判定するための第１および第２の判定用データを、当該スレーブデバイスと対応付けて記憶するメモリと、第１および第２の判定用データおよび上記ステータスデータに基づいて、上記スレーブデバイスの割り込み要求の有無の判定結果を出力する論理回路と、を備えることが好ましい。
【００２０】
本発明に係るマスタデバイスでは、上記論理回路は、第１の判定用データの各ビットと上記ステータスデータの各ビットとの論理積を出力するＡＮＤゲートと、上記ＡＮＤゲートの各出力ビットと第２の判定用データの各ビットとの排他的論理和を出力するＥＸＯＲゲートと、上記ＥＸＯＲゲートの各出力ビットの論理和を出力するＯＲゲートとを備え、上記ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイスに対応する第１および第２の判定用データは、当該ペンディングビットに対応するビットが「１」であり、当該ペンディングビット以外に対応するビットが「０」であり、上記ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイスに対応する第１の判定用データは、当該ペンディングビットに対応するビットが「１」であり、当該ペンディングビット以外に対応するビットが「０」であり、当該スレーブデバイスに対応する第２の判定用データは、すべてのビットが「０」であることが好ましい。
【００２１】
上記の構成によれば、ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイスに対応する第１および第２の判定用データは、ペンディングビットに対応するビットが「１」であるので、ペンディングビットが「０」の場合（すなわち、割り込み要求「有」の場合）、ペンディングビットと「１」との論理積が「０」となり、当該論理積「０」と「１」との排他的論理和は「１」となる。ペンディングビットが「１」の場合（すなわち、割り込み要求「無」の場合）、ペンディングビットと「１」との論理積が「１」となり、当該論理積「１」と「１」との排他的論理和が「０」となる。また、第１および第２の判定用データは、ペンディングビット以外に対応するビットが「０」であるので、ステータスデータのペンディングビット以外のビットをＹとすると、「Ｙ」と「０」との論理積と、「０」との排他的論理和は、Ｙの値に関わらず、「０」となる。
【００２２】
同様に、ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイスに対応する第１の判定用データは、ペンディングビットに対応するビットが「１」であり、当該スレーブデバイスに対応する第２の判定用データは、ペンディングビットに対応するビットが「０」であるので、ペンディングビットが「１」の場合（すなわち、割り込み要求「有」の場合）、ペンディングビットと「１」との論理積が「１」となり、当該論理積「１」と「０」との排他的論理和は「１」となる。ペンディングビットが「０」の場合（すなわち、割り込み要求「無」の場合）、ペンディングビットと「１」との論理積が「０」となり、当該論理積「０」と「０」との排他的論理和が「０」となる。また、第１および第２の判定用データは、ペンディングビット以外に対応するビットが「０」であるので、ステータスデータのペンディングビット以外のビットをＹとすると、「Ｙ」と「０」との論理積と、「０」との排他的論理和は、Ｙの値に関わらず、「０」となる。
【００２３】
したがって、ＥＸＯＲゲートの各出力ビットの論理和は、割り込み要求「有」の場合「１」となり、割り込み要求「無」の場合「０」となるため、ＯＲゲートの出力ビットが割り込み要求の有無に対応する。したがって、判定回路は、割り込み要求の有無を判定することができる。
【００２４】
本発明に係るマスタデバイスでは、上記論理回路は、第２の判定用データの各ビットと上記ステータスデータの各ビットとの排他的論理和を出力するＥＸＯＲゲートと、上記ＥＸＯＲゲートの各出力ビットと第１の判定用データの各ビットとの論理積を出力するＡＮＤゲートと、上記ＡＮＤゲートの各出力ビットの論理和を出力するＯＲゲートとを備え、上記ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイスに対応する第１および第２の判定用データは、当該ペンディングビットに対応するビットが「１」であり、当該ペンディングビット以外に対応するビットが「０」であり、当該ペンディングビット以外に対応するビットが「０」であり、上記ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイスに対応する第１の判定用データは、当該ペンディングビットに対応するビットが「１」であり、当該ペンディングビット以外に対応するビットが「０」であり、当該スレーブデバイスに対応する第２の判定用データは、すべてのビットが「０」であることが好ましい。
【００２５】
上記の構成によれば、ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイスに対応する第１および第２の判定用データは、ペンディングビットに対応するビットが「１」であるので、ペンディングビットが「０」の場合（すなわち、割り込み要求「有」の場合）、ペンディングビットと「１」との排他的論理和が「１」となり、当該排他的論理和「１」と「１」との論理積は「１」となる。ペンディングビットが「１」の場合（すなわち、割り込み要求「無」の場合）、ペンディングビットと「１」との排他的論理和が「０」となり、当該排他的論理和「０」と「１」との論理積は「０」となる。また、第１および第２の判定用データは、ペンディングビット以外に対応するビットが「０」であるので、ステータスデータのペンディングビット以外のビットをＹとすると、「Ｙ」と「０」との排他的論理和と、「０」との論理積は、Ｙの値に関わらず、「０」となる。
【００２６】
同様に、ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイスに対応する第１の判定用データは、ペンディングビットに対応するビットが「１」であり、当該スレーブデバイスに対応する第２の判定用データは、ペンディングビットに対応するビットが「０」であるので、ペンディングビットが「１」の場合（すなわち、割り込み要求「有」の場合）、ペンディングビットと「０」との排他的論理和が「１」となり、当該排他的論理和「１」と「１」との論理積は「１」となる。ペンディングビットが「０」の場合（すなわち、割り込み要求「無」の場合）、ペンディングビットと「０」との排他的論理和が「０」となり、当該排他的論理和「０」と「１」との論理積が「０」となる。また、第１および第２の判定用データは、ペンディングビット以外に対応するビットが「０」であるので、ステータスデータのペンディングビット以外のビットをＹとすると、「Ｙ」と「０」との排他的論理和と、「０」との論理積は、Ｙの値に関わらず、「０」となる。
【００２７】
したがって、ＡＮＤゲートの各出力ビットの論理和は、割り込み要求「有」の場合「１」となり、割り込み要求「無」の場合「０」となるため、ＯＲゲートの出力ビットが割り込み要求の有無に対応する。したがって、判定回路は、割り込み要求の有無を判定することができる。
【００２８】
本発明に係るマスタデバイスでは、上記読み出し回路は、上記ステータスデータの読み出しのタイミングを制御するタイミング制御回路を備え、上記タイミング制御回路は、所定のタイミングで、上記読み出し回路が上記スレーブデバイスからの上記ステータスデータの読み出しを開始するように制御し、上記ＣＰＵが上記マスタデバイスへアクセスしている間に、上記所定のタイミングが到来した場合、上記読み出し回路は、上記ＣＰＵの上記マスタデバイスへのアクセスが終了するまで、上記ステータスデータの読み出し開始を延期させることが好ましい。
【００２９】
上記の構成によれば、タイミング制御回路によって、ステータスデータの読み出しが所定のタイミングで実行されるので、ＣＰＵからマスタデバイスへの通常のアクセスのための時間を確保することができる。また、ＣＰＵのマスタデバイスへのアクセスが終了するまで、ステータスデータの読み出し開始が延期されるので、当該アクセスを阻害することなくスレーブデバイスの割り込み監視を行うことができる。
【００３０】
本発明に係るバスシステムは、スレーブデバイスと、Ｉ２Ｃバスを介して上記スレーブデバイスに接続され、上記スレーブデバイスに割り当てられたデバイスアドレスを指定することで上記スレーブデバイスとの通信を行うマスタデバイスとを備えるバスシステムであって、上記マスタデバイスとして、上記いずれかのマスタデバイスを備えることを特徴としている。
【発明の効果】
【００３１】
以上のように、本発明に係るマスタデバイスは、ＣＰＵの負担を抑えながら、簡単な構成でスレーブデバイスの割り込み要求を監視することができるという効果を奏する。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るバスシステムの概略構成を示すブロック図である。
【図２】上記バスシステムのマスタデバイスの詳細な構成を示す回路図である。
【図３】登録記憶用ＲＡＭおよび登録記録用レジスタに記憶されるデータ、および各スレーブデバイスから読み出されるステータスデータの内容を示す図である。
【図４】図２に示すマスタデバイスの判定回路の具体的な構成を示す回路図である。
【図５】ステートマシンの状態遷移図である。
【図６】既存マスタデバイスとスレーブデバイスとの間で、Ｉ２Ｃバスを介して送受信されるデータを示す図である。
【図７】割り込み監視のタイミングを制御するための主な信号の波形の一例を示す図である。
【図８】割り込み監視のタイミングを制御するための主な信号の波形の一例を示す図である。
【図９】Ｉ２Ｃバスを用いた従来のバスシステムの概略構成を示すブロック図である。
【発明を実施するための形態】
【００３３】
本発明の実施の一形態について図１〜図８に基づいて説明すれば以下のとおりである。
【００３４】
（バスシステムの構成）
図１は、本実施形態に係るバスシステム１の概略構成を示すブロック図である。バスシステム１は、５つのスレーブデバイス２ａ〜２ｅと、マスタデバイス３と、ＣＰＵ４とを備えており、マスタデバイス３およびＣＰＵ４とは、同一のチップ５内に設けられる。
【００３５】
スレーブデバイス２ａ〜２ｅとマスタデバイス３とは、Ｉ２Ｃバスを介して接続されている。マスタデバイス３は、各スレーブデバイス２ａ〜２ｅに割り当てられたデバイスアドレスを指定することで、各スレーブデバイス２ａ〜２ｅとの通信を行う。各スレーブデバイス２ａ〜２ｅは、マスタデバイス３からのシリアルクロックＳＣＬに合わせて、シリアルデータＳＤＡの入出力を行う。なお、バスシステム１におけるＩ２Ｃバスの転送速度は、４００Ｋｂｐｓ（周期２．５μｓ）であるとする。
【００３６】
ＣＰＵ４は、スレーブデバイス２ａ〜２ｅおよびマスタデバイス３の制御を行うものであり、マスタデバイス３とＣＰＵ４とは、データバスＤＢ、アドレスバスＡＢおよび割り込みラインＬ１を介して接続されている。割り込みラインＬ１は、図９に示す従来のバスシステム１０１における割り込みラインＬ１と略同一である。
【００３７】
また、スレーブデバイス２ａ〜２ｅのうち、スレーブデバイス２ａ、２ｂ、２ｄ、２ｅは、ＣＰＵ４に対する割り込み機能を有しており、スレーブデバイス２ｃは、ＣＰＵ４に対する割り込み機能を有していない。従来のバスシステム１０１では、割り込みを必要とするスレーブデバイスが割り込みラインによってＣＰＵに接続されていたが、本実施形態に係るバスシステム１では、割り込みラインが設けられていない。そこで、バスシステム１では、マスタデバイス３に割り込み監視回路３１を設け、割り込み監視回路３１によってスレーブデバイスの割り込み要求を監視し、割り込みラインＬ１を介して、スレーブデバイスの割り込み要求を通知する構成となっている。
【００３８】
マスタデバイス３は、割り込み監視回路３１および既存マスタデバイス３２を備えている。既存マスタデバイス３２は、図９に示す従来のマスタデバイス１０３に相当する。すなわち、マスタデバイス３は、従来のマスタデバイスに割り込み監視回路３１が追加された構成である。
【００３９】
割り込み監視回路３１は、スレーブデバイスからＣＰＵ４への割り込み要求を、ハードウェアによって周期的に監視する機能をマスタデバイス３に付加するものである。ソフトウェアによってスレーブデバイスの割り込み要求を監視する場合、ＣＰＵに対する負荷が増大し、システムの動作速度の低下を招いてしまう。これに対し、本実施形態では、スレーブデバイスの割り込み要求の監視を、ハードウェアである割り込み監視回路３１によって実行する。これにより、スレーブデバイスとＣＰＵ４との結線を省略してチップ５のピン数を減らすとともに、ＣＰＵ４の負荷増大およびバスシステム１の動作速度低下を回避している。
【００４０】
詳細には、マスタデバイス３は、３７５μｓの周期で、割り込み機能を有する１つのスレーブデバイス毎に、割り込み要求の有無を示すペンディングビットを含むステータスデータを読み出し、読み出されたステータスデータに基づいて、当該スレーブデバイスの割り込み要求の有無を判定する。そして、マスタデバイス３は、いずれかのスレーブデバイスの割り込み要求が有と判定された場合に、割り込みラインＬ１を介してＣＰＵ４に割り込み要求を通知する。さらに、１つの周期において、１２０μｓの期間、ステータスデータの読み出し、割り込み要求の判定および割り込み要求の通知とが実行され、残りの２５５μｓの期間は、ＣＰＵ４から既存マスタデバイス３２への通常のアクセスを可能としている。
【００４１】
（マスタデバイスの構成）
続いて、上記のような機能を有するマスタデバイス３の具体例について説明する。
【００４２】
図２は、マスタデバイス３の詳細な構成を示す回路図である。マスタデバイス３は、既存マスタデバイス３２に割り込み監視回路３１を追加した構成であり、割り込み監視回路３１は、ＡＮＤゲートＡＮＤ１〜３６、ＥＸＯＲゲートＥＸＯＲ１〜８、ＯＲゲートＯＲ１〜９、ＮＯＲゲートＮＯＲ１、フリップフロップＦＦ１〜２、カウンタＣＯＵＮＴ１〜３、レジスタＲＥＧ１〜２、デコーダＤＥＣ１〜２、セレクタＳＥＬ１〜３、ステートマシンＳＴＡＴＥ１、バッファＢＵＦ１および登録記憶用ＲＡＭ３３を備えている。
【００４３】
これらの構成要素の中で、主に、カウンタＣＯＵＮＴ１〜３、ＡＮＤゲートＡＮＤ１０〜３６、ＯＲゲートＯＲ２〜９、フリップフロップＦＦ１〜２、レジスタＲＥＧ１、セレクタＳＥＬ２〜３、デコーダＤＥＣ２およびステートマシンＳＴＡＴＥ１が、読み出し回路３１ａを構成している。また、主に、登録記憶用ＲＡＭ３３、ＡＮＤゲートＡＮＤ１〜９、ＥＸＯＲゲートＥＸＯＲ１〜８およびＯＲゲートＯＲ１が、判定回路３１ｂを構成している。また、主にデコーダＤＥＣ１、レジスタＲＥＧ２およびＮＯＲゲートＮＯＲ１が、割り込み要求通知回路３１ｃを構成している。
【００４４】
また、ＣＰＵ４から既存マスタデバイス３２を介してＩ２Ｃバスに送信されるデータや、既存マスタデバイス３２がＩ２Ｃバスから受信したデータは、一旦バッファＢＵＦ１に格納される。
【００４５】
（判定回路の構成）
先に、判定回路３１ｂについて説明する。後述するように、読み出し回路３１ａによって、各スレーブデバイスから割り込み要求の有無を示すペンディングビットを含むステータスデータが読み出される。ステータスデータは、通常８ビットのデータであり、上記の１ビットのペンディングデータを含んでいる。判定回路３１ｂは、読み出されたステータスデータに基づいて、割り込み要求の有無を判定する。
【００４６】
例えば、図１に示すスレーブデバイス２ａから“ＹＸＹＹＹＹＹＹ”のステータスデータが読み出されるとする。ここで、Ｘは割り込み要求の有無を示すペンディングビットであり、Ｙはその他のビットである。ＸおよびＹは、「１」または「０」の値をとる。スレーブデバイス２ａは、ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイスであり、割り込み要求が有の場合、Ｘは「０」となる。なお、ペンディングビットＸのステータスデータにおける位置は、スレーブデバイス毎に設定されている。また、本発明は、ペンディングビットに使用されるロジックがポジティブロジックおよびネガティブロジックのどちらの場合でも適用可能であり、ペンディングビットに使用されるロジックもスレーブデバイス毎に設定されている。
【００４７】
スレーブデバイス２ａから読み出されたステータスデータ“ＹＸＹＹＹＹＹＹ”は、判定回路３１ｂに入力され、第１の判定用データＤ１および第２の判定用データＤ２に基づいて、ペンディングビットが割り込み要求の有を示すか否かが判定される。第１および第２の判定用データＤ１、Ｄ２は、対応するスレーブデバイスのステータスデータのペンディングビットに対応するビットが「１」であり、ペンディングビット以外に対応するビットが「０」である。例えば、スレーブデバイス２ａの割り込み要求の有無を判定するための第１および第２の判定用データＤ１、Ｄ２は、“０１００００００”である。また、ステータスデータが“ＹＹＹＹＹＸＹＹ”のスレーブデバイス２ｄ（図３のアイテムＮｏ．２に対応）の割り込み要求の有無を判定するための第１および第２の判定用データＤ１、Ｄ２は、“０００００１００”である。
【００４８】
続いて、スレーブデバイス２ａから読み出されたステータスデータ“ＹＸＹＹＹＹＹＹ”から割り込み要求の有無の判定を行うための演算内容について説明する。
【００４９】
ステータスデータ“ＹＸＹＹＹＹＹＹ”の各ビットは、判定回路３１ｂのＡＮＤゲートＡＮＤ１〜８の各入力端子にそれぞれ入力される。また、登録記憶用ＲＡＭ３３から、スレーブデバイス２ａに対応する第１の判定用データＤ１“０１００００００”が読み出されて、ＡＮＤゲートＡＮＤ１〜８の各入力端子にそれぞれ入力される。具体的には、第１の判定用データＤ１“０１００００００”の各ビットがＡＮＤゲートＡＮＤ１〜８の入力端子にそれぞれ入力され、ステータスデータ“ＹＸＹＹＹＹＹＹ”とデータ“０１００００００”との１ビット毎の論理積が、ＡＮＤゲートＡＮＤ１〜８からそれぞれ出力される。
【００５０】
これにより、Ｘ＝０の場合（割り込み要求「有」の場合）、Ｙの値に関わらず、“００００００００”がＡＮＤゲートＡＮＤ１〜８から出力される。一方、Ｘ＝１の場合（割り込み要求「無」の場合）、Ｙの値に関わらず、“０１００００００”がＡＮＤゲートＡＮＤ１〜８から出力される。
【００５１】
ＡＮＤゲートＡＮＤ１〜８からの各出力ビットは、ＥＸＯＲゲートＥＸＯＲ１〜８の各入力端子に入力される。また、登録記憶用ＲＡＭ３３に記憶されている第２の判定用データＤ２のうち、スレーブデバイス２ａに対応するデータ“０１００００００”が読み出されて、当該データの各ビットがＥＸＯＲゲートＥＸＯＲ１〜８の各入力端子にそれぞれ入力される。これにより、ＡＮＤゲートＡＮＤ１〜８からの出力データとデータ“０１００００００”との１ビット毎の排他的論理和が、ＥＸＯＲゲートＥＸＯＲ１〜８からそれぞれ出力される。
【００５２】
具体的には、Ｘ＝０の場合（割り込み要求「有」の場合）、ＡＮＤゲートＡＮＤ１〜８からの出力データ“００００００００”とデータ“０１００００００”との１ビット毎の排他的論理和である“０１００００００”がＥＸＯＲゲートＥＸＯＲ１〜８からそれぞれ出力される。また、Ｘ＝１の場合（割り込み要求「無」の場合）、ＡＮＤゲートＡＮＤ１〜８からの出力データ“０１００００００”とデータ“０１００００００”との１ビット毎の排他的論理和である“００００００００”がＥＸＯＲゲートＥＸＯＲ１〜８からそれぞれ出力される。
【００５３】
ＥＸＯＲゲートＥＸＯＲ１〜８からの各出力ビットは、ＯＲゲートＯＲ１に入力される。これにより、Ｘ＝０（割り込み要求「有」）の場合、“０１００００００”の論理和である「１」がＯＲゲートＯＲ１から出力され、Ｘ＝１（割り込み要求「無」）の場合、“００００００００”の論理和である「０」がＯＲゲートＯＲ１から出力される。このように、ＯＲゲートＯＲ１の出力ビットは、割り込み要求の有無に対応している。
【００５４】
ＯＲゲートＯＲ１の出力ビットはＡＮＤゲートＡＮＤ９の一方の入力端子に入力される。また、ＡＮＤゲートＡＮＤ９の他方の入力端子には、後述するステートマシンＳＴＡＴＥ１からの信号ｓｔａｔｅ＿Ｐｏｌｌｉｎｇが入力される。信号ｓｔａｔｅ＿Ｐｏｌｌｉｎｇは、割り込み要求の監視期間に「１」となる信号であり、信号ｓｔａｔｅ＿Ｐｏｌｌｉｎｇが「１」のときに、割り込み要求の有無を示すＯＲゲートＯＲ１の出力ビットが割り込み要求通知回路３１ｃに入力される。
【００５５】
上記では、スレーブデバイス２ａから読み出されたステータスデータ“ＹＸＹＹＹＹＹＹ”に基づいて、スレーブデバイス２ａからＣＰＵ４への割り込み要求の有無を判断する例について説明したが、割り込み要求の有無を判断するための第１および第２の判定用データは、ステータスデータにおけるペンディングビットの位置に応じて異なる。第１および第２の判定用データについて、図３を参照して説明する。
【００５６】
図３は、登録記憶用ＲＡＭ３３および登録記録用レジスタＲＥＧ１に記憶されるデータ、および各スレーブデバイスから読み出されるステータスデータの内容を示す図である。割り込み機能を有するスレーブデバイス２ａ、２ｂ、２ｄ、２ｅは、それぞれアイテムＮｏ．０、４、２、６に対応する。なお、スレーブデバイス２ｃは、割り込み機能を有していないので、どのアイテムＮｏ．にも対応付けられていない。
【００５７】
また、スレーブデバイス２ａ、２ｂ、２ｄでは、ペンディングビットに使用されるロジックがネガティブロジックである一方、スレーブデバイス２ｅでは、ペンディングビットに使用されるロジックがポジティブロジックである。まず、ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイス２ａ、２ｂ、２ｄに対応する第１および第２の判定用データＤ１、Ｄ２について説明する。
【００５８】
例えば、アイテムＮｏ．４に対応するスレーブデバイス２ｂからは、“ＹＹＸＹＹＹＹＹ”のステータスデータが読み出され、スレーブデバイス２ｂの割り込み要求の有無を判断するための第１および第２の判定用データＤ１、Ｄ２として“００１０００００”が用いられる。同様に、アイテムＮｏ．２に対応するスレーブデバイス２ｄからは、“ＹＹＹＹＹＸＹＹ”のステータスデータが読み出され、スレーブデバイス２ｄの割り込み要求の有無を判断するための第１および第２の判定用データＤ１、Ｄ２として“０００００１００”が用いられる。
【００５９】
すなわち、ペンディングビットに使用されるロジックがネガティブロジックであるスレーブデバイスに対応する第１および第２の判定用データＤ１、Ｄ２は、１ビットの「１」と７ビットの「０」とからなり、「１」のビット位置は、対応するスレーブデバイスから読み出されるステータスデータにおけるペンディングビットＸの位置に対応する。これにより、読み出されたステータスデータのペンディングビットＸと、第１の判定用データＤ１の「１」との論理積が、図２に示すＡＮＤゲートＡＮＤ１〜８のいずれかから出力され、続いて、当該論理積と第２の判定用データＤ２の「１」との排他的論理和が、ＥＸＯＲゲートＥＸＯＲ１〜８のいずれかから出力され、ＥＸＯＲゲートＥＸＯＲ１〜８の各出力ビットの論理和がＯＲゲートＯＲ１から出力される。
【００６０】
その結果、Ｘ＝０の場合（割り込み要求「有」の場合）、ＥＸＯＲゲートＥＸＯＲ１〜８の各出力ビットのいずれかに「１」が含まれるため、ＯＲゲートＯＲ１から「１」が出力され、Ｘ＝１の場合（割り込み要求「無」の場合）、ＥＸＯＲゲートＥＸＯＲ１〜８の各出力ビットはいずれも「０」であるため、ＯＲゲートＯＲ１から「０」が出力される。
【００６１】
続いて、ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイス２ｅに対応する第１および第２の判定用データＤ１、Ｄ２について説明する。
【００６２】
アイテムＮｏ．６に対応するスレーブデバイス２ｅからは、“ＸＹＹＹＹＹＹＹ”のステータスデータが読み出され、スレーブデバイス２ｅの割り込み要求の有無を判断するための第１の判定用データＤ１として、“１０００００００”が用いられ、第２の判定用データＤ２として、“００００００００”が用いられる。
【００６３】
すなわち、ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイスに対応する第１の判定用データＤ１は、１ビットの「１」と７ビットの「０」とからなり、「１」のビット位置は、対応するスレーブデバイスから読み出されるステータスデータにおけるペンディングビットＸの位置に対応する。一方、ペンディングビットに使用されるロジックがポジティブロジックであるスレーブデバイスに対応する第２の判定用データＤ２は、８ビットの「０」からなる。
【００６４】
これにより、読み出されたステータスデータのペンディングビットＸと、第１の判定用データＤ１の「１」との論理積が、図２に示すＡＮＤゲートＡＮＤ１〜８のいずれかから出力され、続いて、当該論理積と第２の判定用データＤ２の「０」との排他的論理和が、ＥＸＯＲゲートＥＸＯＲ１〜８のいずれかから出力され、ＥＸＯＲゲートＥＸＯＲ１〜８の各出力ビットの論理和がＯＲゲートＯＲ１から出力される。
【００６５】
その結果、Ｘ＝１の場合（割り込み要求「有」の場合）、ＥＸＯＲゲートＥＸＯＲ１〜８の各出力ビットのいずれかに「１」が含まれるため、ＯＲゲートＯＲ１から「１」が出力され、Ｘ＝０の場合（割り込み要求「無」の場合）、ＥＸＯＲゲートＥＸＯＲ１〜８の各出力ビットはいずれも「０」であるため、ＯＲゲートＯＲ１から「０」が出力される。
【００６６】
以上のように、ペンディングビットに使用されるロジックに関わらず、割り込み要求「有」の場合、ＯＲゲートＯＲ１から「１」が出力され、割り込み要求「無」の場合、ＯＲゲートＯＲ１から「０」が出力される。これにより、判定回路３１ｂは、スレーブアドレスから読み出されたステータスデータに基づいて、各スレーブデバイスの割り込み要求の有無を判定する。
【００６７】
なお、「Ｖａｌｉｄ」は、各スレーブデバイスに対する割り込み監視の有効／無効を示すデータであり、図２に示す登録記憶用のレジスタＲＥＧ１に記憶される。Ｖａｌｉｄが「１」の場合は、対応するスレーブデバイスに対する割り込み要求の監視が実行され、Ｖａｌｉｄが「０」の場合は、対応するスレーブデバイスに対する割り込み要求の監視は実行されない。
【００６８】
また、デバイスアドレスデータＤ３は、スレーブデバイスのアドレスを示すデータであり、既存マスタデバイス３２は、読み出し回路３１ａが読み出したデバイスアドレスデータＤ３に基づいて、スレーブデバイスにアクセスする。レジスタアドレスデータＤ４は、スレーブデバイスのステータスレジスタにアクセスするためのデータであり、既存マスタデバイス３２は、読み出し回路３１ａが読み出したレジスタアドレスデータＤ４に基づいて、スレーブデバイスからステータスデータを読み出す。また、登録記憶用ＲＡＭ３３および登録記録用レジスタＲＥＧ１への上記データの格納は、ソフトウェア処理によって行われる。その具体的内容は後述する。
【００６９】
（割り込み要求通知回路の構成）
続いて、割り込み要求通知回路３１ｃについて説明する。
【００７０】
図４は、判定回路３１ｂの具体的な構成を示す回路図である。判定回路３１ｂは、デコーダＤＥＣ１、ペンディング用のレジスタＲＥＧ２およびＮＯＲゲートＮＯＲ１を備えている。レジスタＲＥＧ２は、ＳＲフリップフロップＦＦ２０〜ＦＦ２９で構成されている。
【００７１】
図２に示すように、判定回路３１ｂのＡＮＤゲートＡＮＤ９の出力信号が、デコーダＤＥＣ１のイネーブル端子ＥＮＢに入力される。また、デコーダＤＥＣ１の入力端子には、読み出し回路３１ａのアイテムカウンタＣＯＵＮＴ３からの３ビットの信号Ｉｔｅｍ＿Ｎｏ．が入力される。この信号Ｉｔｅｍ＿Ｎｏ．は、割り込み要求の監視対象となっているスレーブデバイスに対応するアイテムＮｏ．（０〜７）に対応している。例えば、アイテムＮｏ．２に対応するスレーブデバイス２ｄの割り込み要求を監視している期間、「２」の信号Ｉｔｅｍ＿Ｎｏ．がデコーダＤＥＣ１に入力される。
【００７２】
デコーダＤＥＣ１は、イネーブル端子ＥＮＢに「１」が入力されている場合に、アイテムカウンタＣＯＵＮＴ３からの３ビットの信号Ｉｔｅｍ＿Ｎｏ．を８ビットのデータに変換し、当該データの各ビットを、出力端子０〜７からそれぞれ出力する。これにより、イネーブル端子ＥＮＢに「１」が入力されると、その時点において入力される信号Ｉｔｅｍ＿Ｎｏ．に対応する値の出力端子から「１」が出力され、他の出力端子から「０」が出力される。
【００７３】
デコーダＤＥＣ１の出力端子０〜７は、フリップフロップＦＦ２０〜ＦＦ２７の各セット入力端子Ｓにそれぞれ接続されている。これにより、いずれかのスレーブデバイスの割り込み要求が有と判定された場合、デコーダＤＥＣ１の出力端子０〜７のうち、当該スレーブアドレスに対応するアイテムＮｏ．の出力端子から「１」が出力され、当該出力端子に接続されているフリップフロップに保持される。
【００７４】
フリップフロップＦＦ２８、ＦＦ２９の各セット入力端子Ｓには、マスタデバイスとしての割り込み要求（例えば、Ｉ２Ｃバスのエラーやアクセス完了）を示す信号が入力される。フリップフロップＦＦ２０〜ＦＦ２９のデータ出力端子は、ＮＯＲゲートＮＯＲ１に入力される。また、図２に示すように、ＮＯＲゲートＮＯＲ１の出力端子は、割り込みラインＬ１を介してＣＰＵ４に接続されている。
【００７５】
これにより、フリップフロップＦＦ２０〜ＦＦ２９のいずれかから「１」が出力された場合、ＮＯＲゲートＮＯＲ１から出力される割り込み信号ＩＮＴが「０」となり、スレーブデバイスおよびマスタデバイスの少なくともいずれかから割り込み要求が有ることがＣＰＵ４に通知される。割り込み信号ＩＮＴが「０」となった場合、ＣＰＵ４は、レジスタＲＥＧ２にアクセスして、フリップフロップＦＦ２０〜ＦＦ２９のいずれに「１」が記憶されているかを確認する。これにより、ＣＰＵ４は、割り込み要求が有のデバイス（マスタデバイス、またはいずれかのスレーブデバイス）を特定することができる。
【００７６】
割り込み要求が有のデバイスが特定されると、ＣＰＵ４は、当該デバイスにアクセスして、ステータスレジスタのペンディングビットを先にリセットし、その後、当該デバイスに対応するフリップフロップをリセットする。
【００７７】
また、ＣＰＵ４がレジスタＲＥＧ２にアクセスしたときに、複数個のフリップフロップの出力が「１」である場合、ＣＰＵ４は、１つのフリップフロップ毎にリセットを行う。すなわち、「１」が記憶されている複数のフリップフロップの１つフリップフロップに対し、当該フリップフロップに対応するデバイスのステータスレジスタのペンディングビットを先にリセットし、当該デバイスに対応するフリップフロップをリセットする。このリセット処理を、「１」が記憶されているフリップフロップ毎に行う。
【００７８】
（読み出し回路の構成）
続いて、読み出し回路３１ａについて説明する。読み出し回路３１ａは、３７５μｓの周期で、割り込み機能を有する１つのスレーブデバイスから、既存マスタデバイス３２を介して割り込み要求の有無を示すペンディングビットを含むステータスデータを読み出すように構成されている。また、１つの周期において、１２０μｓの期間は、ステータスデータの読み出しと割り込み要求の判定とが実行され、残りの２５５μｓの期間は、ＣＰＵ４から既存マスタデバイス３２へのアクセスを可能としている。図２、図５〜図７を参照して、読み出し回路３１ａの具体的な構成について説明する。
【００７９】
スレーブデバイスからのステータスデータの読み出し制御は、主に、ステートマシンＳＴＡＴＥ１によって実行される。ステートマシンＳＴＡＴＥ１は、図５に示すように状態遷移するように実装されたハードウェアであり、ＴｉｍｅＣｏｍｅ，ＳＴＯＰ，ＡＣＫ，ＣＰＵ＿ＲＥＱの各信号を入力とし、Ｉ２Ｃ＿ＲＷ，Ｓｔａｔｅ＿ＤＥＶ，Ｓｔａｔｅ＿ＲＥＧ，Ｓｔａｔｅ＿ＰＯＬ，Ｉ２Ｃ＿Ｒｅａｄ，Ｗｉｔｈ＿ＳＴＯＰ，Ｉ２Ｃ＿Ｄｒｉｖｅ，Ｉ２Ｃ＿ＤｒｉｖｅＷｉｔｈＳｔａｒｔ，ＣＰＵ＿ＡＣＣＥＳＳの各信号を出力する。
【００８０】
図２に示すように、各ＡＮＤゲートＡＮＤ１３〜２０は、一方の入力端子に、ＣＰＵ４から既存マスタデバイス３２への８ビットのアクセスデータがバッファＢＵＦ１から入力されるとともに、他方の入力端子に、信号ＣＰＵ＿Ａｃｃｅｓｓが入力される。
【００８１】
また、各ＡＮＤゲートＡＮＤ２１〜２７は、一方の入力端子に、登録記憶用ＲＡＭ３３に記憶されている７ビットのデバイスアドレスデータＤ３がそれぞれ入力されるとともに、他方の入力端子に、信号Ｓｔａｔｅ＿ＤＥＶが入力される。ＡＮＤゲートＡＮＤ２８は、一方の入力端子に、信号Ｉ２Ｃ＿ＲＷが入力されるとともに、他方の入力端子に、信号Ｓｔａｔｅ＿ＤＥＶが入力される。
【００８２】
また、各ＡＮＤゲートＡＮＤ２９〜３６は、一方の入力端子に、登録記憶用ＲＡＭ３３に記憶されている８ビットのレジスタアドレスデータＤ４がそれぞれ入力されるとともに、他方の入力端子に、信号Ｓｔａｔｅ＿ＲＥＧが入力される。
【００８３】
ＯＲゲートＯＲ２は、ＡＮＤゲートＡＮＤ１３・２１・２９の各出力信号の論理和を出力する。同様に、ＯＲゲートＯＲ３〜９は、それぞれ、ＡＮＤゲートＡＮＤ１４・２２・３０、ＡＮＤゲートＡＮＤ１５・２３・３１、ＡＮＤゲートＡＮＤ１６・２４・３２、ＡＮＤゲートＡＮＤ１７・２５・３３、ＡＮＤゲートＡＮＤ１８・２６・３４、ＡＮＤゲートＡＮＤ１９・２７・３５、ＡＮＤゲートＡＮＤ２０・２８・３６の各出力信号の論理和を出力する。各ＯＲゲートＯＲ２〜９から出力される信号Ｉ２Ｃ＿ｗｒｉｔｅ＿ＤＴは、既存マスタデバイス３２に入力され、既存マスタデバイス３２は、信号Ｉ２Ｃ＿ｗｒｉｔｅ＿ＤＴによって、Ｉ２Ｃバスを介してスレーブデバイスとの通信を行う。
【００８４】
既存マスタデバイス３２には、信号Ｉ２Ｃ＿ｗｒｉｔｅ＿ＤＴの他、Ｉ２Ｃ＿Ｒｅａｄ，Ｗｉｔｈ＿ＳＴＯＰ，Ｉ２Ｃ＿Ｄｒｉｖｅ，Ｉ２Ｃ＿ＤｒｉｖｅＷｉｔｈＳｔａｒｔの各信号が入力される。
【００８５】
（ステートマシンの状態遷移）
図５に示すように、ステートマシンＳＴＡＴＥ１は、リセットまたは電源がＯＮされることにより初期化され（Ｃ１）、アイドル状態（Ｃ２）となる。
【００８６】
ここで、信号ＴｉｍｅＣｏｍｅ＝０かつ信号ＣＰＵ＿ＲＥＱ＝１の場合、通常のＣＰＵ４から既存マスタデバイス３２へのアクセスが行われる（Ｃ３〜Ｃ５）。信号ＣＰＵ＿ＲＥＱは、ＣＰＵ４がアクセスに必要なデータが全てバッファＢＵＦ１に貯められた時点で「１」になる。信号ＴｉｍｅＣｏｍｅ＝０のときに信号ＣＰＵ＿ＲＥＱが「１」になると、ステートマシンＳＴＡＴＥ１は信号ＣＰＵ＿ＡＣＣＥＳＳを「１」とする。これにより、バッファＢＵＦ１からアクセスデータが読み出され、ＡＮＤゲートＡＮＤ１３〜２０およびＯＲゲートＯＲ２〜９を介して既存マスタデバイス３２に出力される。
【００８７】
なお、信号ＴｉｍｅＣｏｍｅ＝１のときに信号ＣＰＵ＿ＲＥＱが「１」になっても、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「０」のまま保持する。そのため、ＣＰＵ４のアクセスデータは、既存マスタデバイス３２に出力されない。
【００８８】
一連のＣＰＵアクセスにおける最終のアクセス（Ｃ５）では、ステートマシンＳＴＡＴＥ１は、これに続く信号にＩ２Ｃのストップ信号付きであることを示す信号Ｗｉｔｈ＿ＳＴＯＰを既存マスタデバイス３２に出力し、既存マスタデバイス３２から信号ＳＴＯＰを受信することにより、アイドル状態に戻る（Ｃ２）。
【００８９】
一方、信号ＴｉｍｅＣｏｍｅ＝１の場合、スレーブデバイスへの割り込み監視が行われる（Ｃ６〜Ｃ１０）。ここからは、既存マスタデバイス３２とスレーブデバイスとの間で、Ｉ２Ｃバスを介して送受信されるデータを示す図６も参照して説明する。
【００９０】
まず、ステートマシンＳＴＡＴＥ１は、信号Ｉ２Ｃ＿ＤｒｉｖｅＷｉｔｈＳｔａｒｔを既存マスタデバイス３２に出力するとともに、信号Ｓｔａｔｅ＿ＤＥＶ＝１とし、信号Ｉ２Ｃ＿ＲＷ＝０とする（デバイスアドレス送信状態、Ｃ６）。信号Ｉ２Ｃ＿ＤｒｉｖｅＷｉｔｈＳｔａｒｔは、Ｉ２Ｃのスタート信号を付加してスレーブデバイスのデバイスアドレスを出力するコマンドであり、これにより、スタートシーケンスとなる（図６の期間Ａ）。また、信号Ｓｔａｔｅ＿ＤＥＶ＝１、信号Ｉ２Ｃ＿ＲＷ＝０となることにより、登録記憶用ＲＡＭ３３からデバイスアドレスデータＤ３のうち、割り込み監視対象となるスレーブデバイスに対応するデバイスアドレスが読み出され、読み出された当該デバイスアドレスと「０」のＲｅａｄ／Ｗｒｉｔｅフラグとが既存マスタデバイス３２から送信される（図６の期間Ｂ）。
【００９１】
これに対し、スレーブデバイスがＡＣＫを返信すると（図６の期間Ｃ）、ステートマシンＳＴＡＴＥ１は、信号Ｉ２Ｃ＿Ｄｒｉｖｅを既存マスタデバイス３２に出力するとともに、信号Ｓｔａｔｅ＿ＲＥＧ＝１とし、信号Ｓｔａｔｅ＿ＤＥＶ＝０とする（レジスタアドレス送信状態、Ｃ７）。信号Ｉ２Ｃ＿Ｄｒｉｖｅは、Ｉ２Ｃのスタート信号を付加せずにスレーブデバイスのデバイスアドレスを出力するコマンドである。信号Ｓｔａｔｅ＿ＲＥＧ＝１となることにより、登録記憶用ＲＡＭ３３からレジスタアドレスデータＤ４のうち、割り込み監視対象となるスレーブデバイスに対応するレジスタアドレスが読み出され、当該レジスタアドレスが既存マスタデバイス３２から送信される（図６の期間Ｄ）。
【００９２】
これに対し、スレーブデバイスがＡＣＫを返信すると（図６の期間Ｅ）、ステートマシンＳＴＡＴＥ１は、信号Ｉ２Ｃ＿ＤｒｉｖｅＷｉｔｈＳｔａｒｔを既存マスタデバイス３２に出力するとともに、信号Ｓｔａｔｅ＿ＤＥＶ＝１とし、信号Ｉ２Ｃ＿ＲＷ＝１とする（デバイスアドレス送信状態、Ｃ８）。これにより、スタートシーケンスとなり（図６の期間Ｆ）、続いて、割り込み監視対象となるスレーブデバイスのデバイスアドレスと「１」のＲｅａｄ／Ｗｒｉｔｅフラグとが既存マスタデバイス３２から送信される（図６の期間Ｇ）。
【００９３】
これに対し、スレーブデバイスがＡＣＫを返信すると（図６の期間Ｈ）、ステートマシンＳＴＡＴＥ１は、信号Ｗｉｔｈ＿ＳＴＯＰおよび信号Ｉ２Ｃ＿Ｒｅａｄを既存マスタデバイス３２に出力する（ステータスデータ受信状態、Ｃ９）。信号Ｉ２Ｃ＿Ｒｅａｄは、レジスタアドレスで指定したレジスタからデータを読み出すコマンドであり、既存マスタデバイス３２は、割り込み監視対象となるスレーブデバイスのステータスレジスタからステータスデータを受信する（図６の期間Ｉ）。続いて、既存マスタデバイス３２は、スレーブデバイスにＮＡＫを返信するとともに（図６の期間Ｊ）、受信した８ビットのステータスデータを、図２に示す判定回路３１ｂのＡＮＤゲートＡＮＤ１〜８に出力する。
【００９４】
続いて、ステートマシンＳＴＡＴＥ１は、信号Ｓｔａｔｅ＿ＰＯＬを判定回路３１ｂのＡＮＤゲートＡＮＤ９に出力する（割り込み要求判定状態、Ｃ１０）。これにより、判定回路３１ｂにおける割り込み要求の判定結果が、ＡＮＤゲートＡＮＤ９から出力される。また、既存マスタデバイス３２から信号ＳＴＯＰが出力される（図６の期間Ｋ）。
【００９５】
割り込み要求の判定結果が「１」の場合（割り込み要求「有」の場合）、その値がレジスタＲＥＧ２にセットされ、割り込み要求の判定結果が「０」の場合（割り込み要求「無」の場合）、レジスタＲＥＧ２に格納される値は変わらない。その後、ステートマシンＳＴＡＴＥ１は、アイドル状態に戻る（Ｃ２）。
【００９６】
以上のように、ステートマシンＳＴＡＴＥ１の状態遷移によって、ＣＰＵ４から既存マスタデバイス３２へのアクセスと、ステータスデータの読み出しとが行われる。上記のように、ステータスデータの読み出しは、ステートマシンＳＴＡＴＥ１に入力される信号ＴｉｍｅＣｏｍｅ＝１のときに実行される。そして、信号ＴｉｍｅＣｏｍｅが周期的に「１」となることにより、ステータスデータの読み出しを周期的に実行することができる。
【００９７】
（読み出し開始のタイミング制御）
続いて、ステータスデータの読み出し開始のタイミングを制御するための構成について説明する。
【００９８】
ステータスデータの読み出しは、ステートマシンＳＴＡＴＥ１に入力される信号ＴｉｍｅＣｏｍｅが「１」になることで開始される。特に、カウンタＣＯＵＮＴ１〜３、ＡＮＤゲートＡＮＤ１０〜１２、フリップフロップＦＦ１〜２、レジスタＲＥＧ１、セレクタＳＥＬ２は、特許請求の範囲に記載のタイミング制御回路を構成している。このタイミング制御回路は、所定のタイミングで、読み出し回路３１ａが各スレーブデバイスからのステータスデータの読み出しを開始するように、信号ＴｉｍｅＣｏｍｅの値を制御している。
【００９９】
レジスタＲＥＧ１は、図３に示す「Ｖａｌｉｄ」を記憶するための登録記憶用レジスタであり、８つのフリップフロップＦＦ１０〜１７で構成されている。「Ｖａｌｉｄ」は、各スレーブデバイスに対する割り込み監視の有効／無効を示すデータであり、フリップフロップＦＦ１０〜１７には、それぞれアイテムＮｏ．０〜７に対応する「Ｖａｌｉｄ」が記憶される。本実施形態では、フリップフロップＦＦ１０、１２、１４、１６に「１」が記憶され、フリップフロップＦＦ１１、１３、１５、１７に「０」が記憶される。
【０１００】
セレクタＳＥＬ２は、カウンタＣＯＵＮＴ３からの３ビットの信号Ｉｔｅｍ＿Ｎｏ．に基づいて、８つの入力端子０〜７に入力される信号から１つの信号を選択して、選択した信号を信号ＶＡＬＩＤとして出力する。より詳細には、信号Ｉｔｅｍ＿Ｎｏ．に対応する値の入力端子に入力される信号を、ＡＮＤゲートＡＮＤ１０に出力する。すなわち、信号Ｉｔｅｍ＿Ｎｏ．が「０」、「２」、「４」、「６」の場合、セレクタＳＥＬ２から「１」の信号ＶＡＬＩＤが出力され、信号Ｉｔｅｍ＿Ｎｏ．が「１」、「３」、「５」、「７」の場合、セレクタＳＥＬ２から「０」の信号ＶＡＬＩＤが出力される。後述するように、カウンタＣＯＵＮＴ３は３７５μｓの周期でカウント動作を行うため、セレクタＳＥＬ２は、３７５μｓの周期で選択切り替えを行う。
【０１０１】
カウンタＣＯＵＮＴ１は、Ｉ２Ｃバスの転送周期と同一周期のクロック信号を生成するためのカウンタであり、図示しない発振器から入力されるクロック信号ＢＣＬＫに基づいて、４００ＫＨｚのクロック信号Ｉ２Ｃ＿ＣＬＫを出力する。
【０１０２】
カウンタＣＯＵＮＴ２は、１５０ステージのバイナリカウンタであり、クロック信号Ｉ２Ｃ＿ＣＬＫに基づいて、３７５μｓの周期でハイパルスとなる２つの信号Ｉｔｅｍ＿ＣＮＴ、Ｓｔａｒｔ＿ＰＯＬを出力する。
【０１０３】
信号Ｉｔｅｍ＿ＣＮＴは、カウンタＣＯＵＮＴ３に入力され、これにより、カウンタＣＯＵＮＴ３は３７５μｓの周期でカウント動作を行う。
【０１０４】
信号Ｓｔａｒｔ＿ＰＯＬは、セレクタＳＥＬ２からの信号ＶＡＬＩＤとともに、ＡＮＤゲートＡＮＤ１０に入力される。ＡＮＤゲートＡＮＤ１０の出力信号は、フリップフロップＦＦ１のセット入力端子Ｓに入力される。フリップフロップＦＦ１の出力信号は、ＡＮＤゲートＡＮＤ１１の入力端子の一方に入力される。ＡＮＤゲートＡＮＤ１１の入力端子の他方には、信号ＣＰＵ＿ＡＣＣＥＳＳの反転信号が入力される。ＡＮＤゲートＡＮＤ１１の出力信号は、フリップフロップＦＦ２のセット入力端子Ｓに入力される。フリップフロップＦＦ２の出力信号である信号ＴｉｍｅＣｏｍｅは、ステートマシンＳＴＡＴＥ１、フリップフロップＦＦ１のリセット端子、およびＡＮＤゲートＡＮＤ１２の入力端子の一方に入力される。また、ＡＮＤゲートＡＮＤ１２の入力端子の他方には、既存マスタデバイス３２からの信号ＳＴＯＰが入力される。
【０１０５】
割り込み監視のタイミングを制御するための主な信号の波形の一例を、それぞれ図７および図８に示す。なお、これらの波形図において、ＡＮＤゲートＡＮＤ１０〜１２の出力信号をそれぞれ「ＡＮＤ１０」、「ＡＮＤ１１」、「ＡＮＤ１２」と表記し、フリップフロップＦＦ１の出力信号を「ＦＦ１」と表記している。
【０１０６】
図７に示すように、カウンタＣＯＵＮＴ２から出力される２つの信号Ｉｔｅｍ＿ＣＮＴ、Ｓｔａｒｔ＿ＰＯＬは、どちらも周期が３７５μｓであり、信号Ｉｔｅｍ＿ＣＮＴが「１」になった２５５μｓ後に信号Ｓｔａｒｔ＿ＰＯＬが「１」になる。
【０１０７】
タイミングａでは、信号Ｉｔｅｍ＿ＣＮＴが「１」になることにより、信号Ｉｔｅｍ＿Ｎｏ．が「７」から「０」に切り替わる。これにより、セレクタＳＥＬ２から出力される信号ＶＡＬＩＤが、アイテムＮｏ．７に設定されている「０」から、アイテムＮｏ．０に設定されている「１」に切り替わる。
【０１０８】
続いて、タイミングｂにおいて、ＣＰＵ４が既存マスタデバイス３２へのアクセスするために、信号ＣＰＵ＿ＲＥＱが「１」になると、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「１」にする。これにより、ＣＰＵ４から既存マスタデバイス３２へのアクセスが行われる（図５のＣ３〜Ｃ５）。
【０１０９】
続いて、タイミングｃにおいて、ＣＰＵ４から既存マスタデバイス３２へのアクセスが終了すると、既存マスタデバイス３２から「１」の信号ＳＴＯＰが出力され、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「０」にする。
【０１１０】
続いて、タイミングａから２５５μｓ経過後のタイミングｄにおいて、カウンタＣＯＵＮＴ２から出力される信号Ｓｔａｒｔ＿ＰＯＬが「１」になる。このとき、信号ＶＡＬＩＤが「１」であることにより、ＡＮＤゲートＡＮＤ１０は「１」の信号を出力する。この時点で、信号ＴｉｍｅＣｏｍｅは「０」であるため、フリップフロップＦＦ１は、「１」の信号を出力する。また、信号ＣＰＵ＿ＡＣＣＥＳＳは「０」であるため、ＡＮＤゲートＡＮＤ１１は、「１」の信号を出力する。このとき、ＡＮＤゲートＡＮＤ１２の出力信号は「０」であるため、フリップフロップＦＦ２は、「１」の信号ＴｉｍｅＣｏｍｅを出力する。これにより、アイテムＮｏ．０に対応するスレーブデバイス２ａからのステータスデータの読み出し、およびスレーブデバイス２ａの割り込み監視処理が開始される（図５のＣ６〜Ｃ１０）。
【０１１１】
その後、信号Ｓｔａｒｔ＿ＰＯＬが「０」になると、ＡＮＤゲートＡＮＤ１０およびフリップフロップＦＦ１の出力も「０」となる。これにより、ＡＮＤゲートＡＮＤ１１の出力も「０」となり、ＡＮＤゲートＡＮＤ１２の出力は「０」であるため、フリップフロップＦＦ２の出力信号ＴｉｍｅＣｏｍｅは「１」のまま保持される。
【０１１２】
カウンタＣＯＵＮＴ３から出力される信号Ｉｔｅｍ＿Ｎｏ．は、セレクタＳＥＬ２の他、セレクタＳＥＬ３の一方の入力端子０およびデコーダＤＥＣ１にも入力される。セレクタＳＥＬ３の他方の入力端子１は、アドレスバスＡＢに接続されており、デコーダＤＥＣ２からのセレクト信号ＳＥＬによって、入力端子０、１の一方への入力信号を選択して出力する。登録記憶用ＲＡＭ３３およびレジスタＲＥＧ１の書き換え時以外は、セレクタＳＥＬ３を制御するセレクト信号ＳＥＬは「０」となっており、登録記憶用ＲＡＭ３３に、信号Ｉｔｅｍ＿Ｎｏ．が入力される。これにより、信号Ｉｔｅｍ＿Ｎｏ．が示すアイテムＮｏ．に対応するデバイスアドレス、レジスタアドレス、第１および第２の判定用データが、登録記憶用ＲＡＭ３３から読み出される。
【０１１３】
また、割り込み要求通知回路３１ｃのデコーダＤＥＣ１は、イネーブル端子ＥＮＢへの入力信号が「１」の場合（すなわち、割り込み要求「有」の場合）に、出力端子０〜７ののうち信号Ｉｔｅｍ＿Ｎｏ．が示す値の出力端子から「１」を出力する。これにより、レジスタＲＥＧ２のフリップフロップＦＦ２０〜２７（図４）のうち、監視対象となっているスレーブデバイスに対応するフリップフロップに「１」が記憶される。
【０１１４】
タイミングｄでは、信号Ｉｔｅｍ＿Ｎｏ．が「０」であるため、デバイスデータ、レジスタデータ、第１の判定用データおよび第２の判定用データとして、“０００００００１”、“００００１０００”、“０１００００００”および“０１０００００”がそれぞれ読み出される。また、割り込み要求「有」と判定された場合、スレーブデバイス２ａに対応するフリップフロップＦＦ２０に「１」が記憶される。
【０１１５】
再び図７を参照し、信号ＴｉｍｅＣｏｍｅ＝１となっているタイミングｅにおいて、信号ＣＰＵ＿ＲＥＱが「１」になった場合、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「０」のまま保持する。そのため、割り込み監視処理が優先され、ＣＰＵ４から既存マスタデバイス３２へのアクセスは行われない。
【０１１６】
続いて、タイミングｆにおいて、割り込み監視処理が終了すると、既存マスタデバイス３２から出力される信号ＳＴＯＰが「１」となる。これにより、ＡＮＤゲートＡＮＤ１２から「１」の信号が出力され、フリップフロップＦＦ２から出力される信号ＴｉｍｅＣｏｍｅは「０」となる。
【０１１７】
またこのとき、信号ＣＰＵ＿ＲＥＱ＝１であることにより、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「１」にする。これにより、ＣＰＵ４から既存マスタデバイス３２へのアクセスが行われる（図５のＣ３〜Ｃ５）。
【０１１８】
続いて、割り込み監視処理の開始から１２０μｓ経過後のタイミングｇにおいて、信号Ｉｔｅｍ＿ＣＮＴが「１」になり、信号Ｉｔｅｍ＿Ｎｏ．が「１」に切り替わる。これにより、セレクタＳＥＬ２から出力される信号ＶＡＬＩＤが、アイテムＮｏ．０に設定されている「１」から、アイテムＮｏ．１に設定されている「０」に切り替わる。割り込み監視処理の所要時間は、１００μｓ程度であるので、信号Ｉｔｅｍ＿Ｎｏ．の切り替えまでに、余裕を持って割り込み監視処理を完了することができる。
【０１１９】
なお、割り込み監視処理のために確保される期間（本実施形態では１２０μｓ）は、Ｉ２Ｃバスの転送速度や、既存マスタデバイスとスレーブデバイスとの間で送受信されるデータ量によって、適宜変更してもよい。
【０１２０】
続いて、タイミングｈにおいてＣＰＵ４から既存マスタデバイス３２へのアクセスが終了し、タイミングｇから２５５μｓ経過後のタイミングｉにおいて、カウンタＣＯＵＮＴ２から出力される信号Ｓｔａｒｔ＿ＰＯＬが「１」になる。しかしながら、ＡＮＤゲートＡＮＤ１０に入力される信号ＶＡＬＩＤが「０」であるため、ＡＮＤゲートＡＮＤ１０の出力信号は「０」のままである。そのため、フリップフロップＦＦ２から出力される信号ＴｉｍｅＣｏｍｅも「０」のまま保持される。したがって、ステートマシンＳＴＡＴＥ１は、割り込み監視処理を行う状態（図５のＣ６〜Ｃ１０）には遷移しない。
【０１２１】
信号Ｉｔｅｍ＿Ｎｏ．は、０〜７の範囲で３７５μｓ毎にカウントアップされるため、１つのスレーブデバイスに着目すると、当該スレーブデバイスに対して、３７５μｓ×８＝３ｍｓの周期で割り込み監視が行われることとなる。この周期は、Ｉ２Ｃバスの転送速度（４００Ｋｂｐｓ）に対して、充分に短い。なお、割り込み監視処理を行う周期は、上記に限定されず、Ｉ２Ｃバスの転送速度などに応じて適宜設定される。
【０１２２】
上記のように、読み出し回路３１ａは、所定のタイミングで、各スレーブデバイスからのステータスデータの読み出しを開始するように構成される。
【０１２３】
（読み出し開始の延期）
続いて、ＣＰＵ４が既存マスタデバイス３２へアクセスしている間に、上記所定のタイミングが到来した場合について説明する。図７に示す例では、信号Ｉｔｅｍ＿Ｎｏ．が切り替わってから２５５μｓ経過する前に、ＣＰＵ４から既存マスタデバイス３２へのアクセスが終了していた。しかしながら、信号Ｉｔｅｍ＿Ｎｏ．が切り替わってから２５５μｓ経過時に、ＣＰＵ４から既存マスタデバイス３２へのアクセスが継続する場合もある。この場合に、すぐにスレーブデバイスからのステータスデータの読み出しを実行すると、ＣＰＵ４から既存マスタデバイス３２へのアクセスを阻害するおそれがある。そこで本実施形態では、当該場合に、ＣＰＵ４によるアクセスが終了するまで、信号ＴｉｍｅＣｏｍｅを「０」に保持して、ステータスデータの読み出し開始を延期させる。その具体例を図８に示す。
【０１２４】
タイミングｊにおいて、信号Ｉｔｅｍ＿ＣＮＴが「１」になることにより、信号Ｉｔｅｍ＿Ｎｏ．が「１」から「２」に切り替わる。これにより、セレクタＳＥＬ２から出力される信号ＶＡＬＩＤが、アイテムＮｏ．１に設定されている「０」から、アイテムＮｏ．２に設定されている「１」に切り替わる。
【０１２５】
続いて、タイミングｋにおいて、ＣＰＵ４が既存マスタデバイス３２へのアクセスするために、信号ＣＰＵ＿ＲＥＱが「１」になると、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「１」にする。これにより、ＣＰＵ４から既存マスタデバイス３２へのアクセスが行われる（図５のＣ３〜Ｃ５）。
【０１２６】
続いて、タイミングｊから２５５μｓ経過後のタイミングｌにおいて、カウンタＣＯＵＮＴ２から出力される信号Ｓｔａｒｔ＿ＰＯＬが「１」になる。このとき、信号ＶＡＬＩＤが「１」であることにより、ＡＮＤゲートＡＮＤ１０は「１」の信号を出力する。この時点で、信号ＴｉｍｅＣｏｍｅは「０」であるため、フリップフロップＦＦ１は、「１」の信号を出力する。
【０１２７】
一方、図７に示す例と異なり、ＣＰＵ４から既存マスタデバイス３２へのアクセスは継続しているため、信号ＣＰＵ＿ＡＣＣＥＳＳは「１」のままである。したがって、ＡＮＤゲートＡＮＤ１１の出力信号は「０」であり、フリップフロップＦＦ２の出力信号ＴｉｍｅＣｏｍｅは、「０」で維持される。そのため、フリップフロップＦＦ１の出力信号も「１」のままである。
【０１２８】
ここで、フリップフロップＦＦ１の出力信号は、カウンタＣＯＵＮＴ２のホールド端子ＨＯＬＤにも入力される。カウンタＣＯＵＮＴ２は、ホールド端子ＨＯＬＤへの入力信号が「１」の場合、出力値を維持したまま停止するように構成されている。そのため、フリップフロップＦＦ１の出力信号が「１」で維持されることにより、カウンタＣＯＵＮＴ２の出力信号Ｓｔａｒｔ＿ＰＯＬも、「１」のまま維持される。
【０１２９】
その後、タイミングｍにおいて、ＣＰＵ４から既存マスタデバイス３２へのアクセスが終了すると、既存マスタデバイス３２から「１」の信号ＳＴＯＰが出力され、ステートマシンＳＴＡＴＥ１は、信号ＣＰＵ＿ＡＣＣＥＳＳを「０」にする。これにより、ＡＮＤゲートＡＮＤ１１の出力信号が「１」になり、フリップフロップＦＦ２から出力される信号ＴｉｍｅＣｏｍｅも「１」になる。これにより、アイテムＮｏ．２に対応するスレーブデバイス２ｄからのステータスデータの読み出し、およびスレーブデバイス２ｄの割り込み監視処理が開始される（図５のＣ６〜Ｃ１０）。なお、フリップフロップＦＦ１は、リセット優先のＳＲフリップフロップであり、リセット端子に「１」が入力されることにより、フリップフロップＦＦ１の出力信号は「０」になる。
【０１３０】
このように、信号Ｉｔｅｍ＿Ｎｏ．が切り替わってから２５５μｓ経過時に、ＣＰＵ４から既存マスタデバイス３２へのアクセスが継続している場合、当該アクセスが終了するまで信号ＴｉｍｅＣｏｍｅを「０」に保持して、ステータスデータの読み出し開始を延期させる。これにより、ＣＰＵ４から既存マスタデバイス３２へのアクセスを阻害することなくスレーブデバイスの割り込み監視を行うことができる。
【０１３１】
なお、タイミングｌからタイミングｍの間は、カウンタＣＯＵＮＴ２はカウント動作を停止しており、タイミングｍから再びカウント動作を開始する。そのため、カウンタＣＯＵＮＴ２は、タイミングｍから１２０μｓ経過後のタイミングｎにおいて、信号Ｉｔｅｍ＿ＣＮＴが「１」になる。そのため、ステータスデータの読み出し開始が延期されても、割り込み監視処理のために確保される期間は短縮されない。
【０１３２】
（データ登録処理）
続いて、図２に示す登録記憶用ＲＡＭ３３およびレジスタＲＥＧ１へのデータ登録処理について説明する。データ登録処理は、バスシステム１の稼働前にＣＰＵ４のソフトウェア処理によって実行される。
【０１３３】
データ登録処理時において、デコーダＤＥＣ２からバッファＢＵＦ１に出力される信号ＣＰＵ＿ＣＳが「１」の時に、デコーダＤＥＣ２からセレクタＳＥＬ３に出力されるセレクト信号ＳＥＬが「１」となることにより、ＣＰＵ４は、アドレスバスＡＢを介して登録記憶用ＲＡＭ３３にアクセス可能となる。また、セレクタＳＥＬ１のイネーブル端子ＥＮＢに「１」が入力されることにより、ＣＰＵ４は、データバスＤＢを介してレジスタＲＥＧ１にアクセス可能となる。これにより、登録記憶用ＲＡＭ３３およびレジスタＲＥＧ１に記憶されているデータの書き換えが可能となる。
【０１３４】
データ登録処理が終了すると、デコーダＤＥＣ２からセレクタＳＥＬ３に出力されるセレクト信号ＳＥＬは「０」となる。これにより、登録記憶用ＲＡＭ３３には、カウンタＣＯＵＮＴ３から出力される信号Ｉｔｅｍ＿Ｎｏ．が入力され、信号Ｉｔｅｍ＿Ｎｏ．に対応するデバイスアドレス等が登録記憶用ＲＡＭ３３から読み出し可能となる。また、セレクタＳＥＬ１のイネーブル端子ＥＮＢに「０」が入力されることにより、レジスタＲＥＧ１に対する書き換えができなくなる。
【０１３５】
データＶａｌｉｄ、アドレスデータ、レジスタアドレスデータ、第１および第２の判定用データを記憶するためのメモリの種類は、特に限定されない。例えば、レジスタＲＥＧ１を設ける代わりに、各スレーブデバイスに対する割り込み監視の有効／無効を示すデータＶａｌｉｄを、登録記憶用ＲＡＭ３３に記憶させてもよい。ただし、あるスレーブデバイスが割り込み監視不要となった場合、当該スレーブデバイスに対応するデータＶａｌｉｄを「０」に変更すれば、当該スレーブデバイスに対応するアドレスデータ、レジスタアドレスデータ、第１および第２の判定用データの書き換えを行う必要はない。そのため、データＶａｌｉｄはレジスタＲＥＧ１に記憶させることが望ましい。なお、アドレスデータ、レジスタアドレスデータ、第１および第２の判定用データのデータ量が小さければ、それらのデータをレジスタに記憶させてもよい。
【０１３６】
また、図３に示すように、アドレスデータ、レジスタアドレスデータ、第１および第２の判定用データを登録可能なスレーブデバイスの最大数は８である。当該最大数は、特に限定されない。
【０１３７】
また、データ登録は、アイテムＮｏ．が０、４、２、６、１、５、３、７の順に行うことが望ましい。これにより、アイテムＮｏ．が若い順にデータ登録を行う場合に比べ、割り込み監視を行うタイミングの偏りが緩和されるため、ＣＰＵ４から既存マスタデバイス３２へのアクセスが容易になる。
【０１３８】
また、１つのスレーブデバイスに対応するデータ登録の順序に関して、アドレスデータ、レジスタアドレスデータ、第１および第２の判定用データの登録後に、Ｖａｌｉｄを「１」に設定することが望ましい。
【０１３９】
〔付記事項〕
上記の実施形態では、第１の判定用データとステータスデータとの論理積を演算し、当該論理積と第２の判定用データとの排他的論理和を演算し、当該排他的論理和の論理和を演算したが、これに限定されない。例えば、第２の判定用データとステータスデータとの排他的論理和を演算し、当該排他的論理和と第１の判定用データとの論理積を演算し、当該論理積の論理和を演算してもよい。この場合も、当該論理和は、割り込み要求の有無に対応する。
【０１４０】
判定回路に用いられる論理回路や第１および第２の判定用データは、判定回路から割り込み要求の有無に対応する判定結果が得られるものであれば、特に限定されない。
【０１４１】
本発明は上記の実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１４２】
本発明は、Ｉ２Ｃバスシステムに好適である。
【符号の説明】
【０１４３】
１    バスシステム
２ａ〜２ｅ    スレーブデバイス
３    マスタデバイス
４    ＣＰＵ
５    チップ
３１    割り込み監視回路
３１ａ    読み出し回路
３１ｂ    判定回路
３１ｃ    割り込み要求通知回路
３２    既存マスタデバイス
３３    登録記憶用ＲＡＭ（メモリ）
ＡＮＤ１〜８    ＡＮＤゲート
Ｄ１  第１の判定用データ
Ｄ２  第２の判定用データ
ＥＸＯＲ１〜８  ＥＸＯＲゲート
ＯＲ１  ＯＲゲート
【図１】
2012194829.tif 000003
【図２】
2012194829.tif 000004
【図３】
2012194829.tif 000005
【図４】
2012194829.tif 000006
【図５】
2012194829.tif 000007
【図６】
2012194829.tif 000008
【図７】
2012194829.tif 000009
【図８】
2012194829.tif 000010
【図９】
2012194829.tif 000011