(57)【要約】【課題】バスに接続されるモジュールのアドレスを簡易かつ効率的に設定するためのアドレスデコーダ及びアドレス設定方法を提供する。【解決手段】アドレスデコーダ１０は、レベル比較器１１、エッジ検出器１２、出力デコーダ１３を備えている。レベル比較器１１は、ＳＤＡ端子に入力されたＳＤＡ信号とＡＤＤＲ端子に入力されたアドレス選択信号とを比較し、比較結果を出力する。ここで、両者が一致している場合には、すべてのスレーブアドレスを受信するまで比較を続ける。一致していない場合は以降の比較は行なわない。エッジ検出器１２は、ＡＤＤＲ端子に入力されたアドレス選択信号のエッジを検出する。出力デコーダ１３は、ＡＤＤＲ端子の接続先に応じたアドレスを設定することにより、アドレスデコーダ１０に接続されたスレーブモジュールのアドレスを決定する。【選択図】図１
2010212989.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータ信号の参照信号入力端子と、
電源電圧、接地電圧、シリアルデータ信号の何れかからなるアドレス選択信号の選択信号入力端子と、
前記参照信号入力端子に入力されたシリアルデータ信号と、前記選択信号入力端子に入力されたアドレス選択信号との比較し、比較結果を出力する信号強度比較部と、
前記信号強度比較部から出力された比較結果及び前記アドレス選択信号の信号レベルに基いて、前記アドレス選択信号として入力された信号を特定し、この信号に対応するアドレスを設定するアドレス設定部と
を備えたことを特徴とするアドレスデコーダ。
【請求項２】
前記参照信号入力端子に入力されたシリアルデータ信号と、前記選択信号入力端子に入力されたアドレス選択信号とが一致しない場合には、前記アドレス選択信号の信号レベルを出力することを特徴とする請求項１に記載のアドレスデコーダ。
【請求項３】
前記アドレス選択信号には、シリアルクロック信号を含んでおり、
前記アドレスデコーダは、前記アドレス選択信号の立ち上がり又は立ち下がりを検出し、エッジ検出信号を出力するエッジ検出部を更に備え、
前記アドレス設定部は、前記信号強度比較部から出力された比較結果及び前記エッジ検出部から出力されたエッジ検出信号に基づいて、前記アドレス選択信号として入力された信号を特定し、この信号に対応するアドレスを設定することを特徴とする請求項１又は２に記載のアドレスデコーダ。
【請求項４】
前記信号強度比較部は、ＸＯＲゲート、ＯＲゲート、Ｄ型フリップフロップを含んで構成されており、
前記ＸＯＲゲートには、シリアルデータ信号及びアドレス選択信号を入力し、
前記ＯＲゲートには、前記ＸＯＲゲートの出力信号及びＤ型フリップフロップの出力信号を入力し、
前記Ｄ型フリップフロップには、前記ＯＲゲートの出力信号を入力するように構成したことを特徴とする請求項１〜３のいずれか一つに記載のアドレスデコーダ。
【請求項５】
シリアルデータ信号の参照信号入力端子と、
電源電圧、接地電圧、シリアルデータ信号の何れかからなるアドレス選択信号の選択信号入力端子と、
アドレス選択信号を出力する制御手段を用いて、アドレスを設定する方法であって、
前記制御手段が、
前記参照信号入力端子に入力されたシリアルデータ信号と、前記選択信号入力端子に入力されたアドレス選択信号との比較し、比較結果を出力する段階と、
前記比較結果及び前記アドレス選択信号の信号レベルに基いて、前記アドレス選択信号として入力された信号を特定し、この信号に対応するアドレスを設定する段階と
実行することを特徴とするアドレス設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスラインに接続された各モジュールの制御に関するものであり、特に各機器のアドレスの設定に関するものである。
【背景技術】
【０００２】
コンピュータの内外の複数のモジュールを、データを交換するための共通の経路を接続して利用する場合がある（バス接続）。このようなバス接続では、モジュール別に個別のアドレスを設定し、制御モジュール（マスタ）から被制御モジュール（スレーブ）のアドレスを含めたコマンドを送信する。スレーブ側では受信した被制御アドレスと設定済みの自アドレスとを比較し、合致する被制御アドレスのコマンドに対してのみ応答するようにしている。
【０００３】
近年、通信システムは、通信規約に従ったシリアルデータ信号（ＳＤＡ信号）とシリアルクロック信号（ＳＣＬ信号）の２本の信号線を備えたＩ２Ｃ（Inter Integrated Circuit）シリアル転送バスを用いることがある。
【０００４】
例えば、タッチセンサ製品ではモジュール数を増やすことでタッチキーの数を増やすことができるため、複数のアドレスをユーザが選択できることは製品自体の魅力となる。
Ｉ２Ｃ通信等のスレーブとして機能するセンサ製品を複数使用したい場合、アドレスを個別に設定しなければならない。ユーザが容易にアドレスを設定する方法としては、モジュールにアドレス入力端子（ＡＤＤＲ端子）を持たせ、その入力レベルに応じてアドレスを選択する手法が用いられている。ＡＤＤＲ端子をディジタル入力として２値の検出を行なう手法は最も簡易であるが、より多くのモジュールを通信バスに接続させるためにはＡＤＤＲ端子を増やす必要があり、端子数の少ないパッケージを多用するセンサ製品では、多くの端子をアドレス入力専用とすることは困難である。
【０００５】
そこで、スレーブモジュールのアドレスを設定するための各種技術が検討されている（例えば特許文献１を参照。）。特許文献１に記載された技術では、通信システムは、アドレスピンを備えているスレーブ・デバイスから構成されており、各スレーブ・デバイスは、シリアルデータライン、クロックライン、電源ライン、接地ラインと結合されている。通信回路は、データ転送バスの上の通信規約に応じて、マスターデバイスと通信を行なう。まず、デコード回路はアドレスピンの最初の状態を検出する。そして、アドレスピンの２番目の状態を検出して、アドレスピンの１つ以上の論理値が最初の状態と２番目の状態の間で異なる最初の状態を検出する。その後、アドレスピンの最初の状態と２番目の状態との機能的な関係としてスレイブデバイスアドレスをデコードする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００８／０１４７９４１号明細書（第１頁、図３）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載された技術では、特定の通信規約に依存しており、汎用性が低い。また、この技術では、遅延素子が用いられており、動作特性が製造プロセスのバラツキに強く影響を受けるため、集積化に適さない。更に、各状態の比較や検知は適切なタイミングで実行する必要がある。
【０００８】
本発明は、上記の問題点を解決するためになされたものであり、バスに接続されるモジュールのアドレスを簡易かつ効率的に設定するためのアドレスデコーダ及びアドレス設定方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記問題点を解決するために、本発明は、シリアルデータ信号の参照信号入力端子と、電源電圧、接地電圧、シリアルデータ信号の何れかからなるアドレス選択信号の選択信号入力端子と、前記参照信号入力端子に入力されたシリアルデータ信号と、前記選択信号入力端子に入力されたアドレス選択信号との比較し、比較結果を出力する信号強度比較部と、前記信号強度比較部から出力された比較結果及び前記アドレス選択信号の信号レベルに基いて、前記アドレス選択信号として入力された信号を特定し、この信号に対応するアドレスを設定するアドレス設定部とを備えることを特徴とする。これにより、シリアルデータ信号を他の信号と識別するとともに、アドレス選択信号の信号レベルに基いて電源電圧と接地電圧とを識別することができる。従って、簡易な構成により多値入力を実現することができ、これに応じたアドレスを設定することができる。
【００１０】
本発明において、参照信号入力端子に入力されたシリアルデータ信号と、前記選択信号入力端子に入力されたアドレス選択信号とが一致しない場合には、前記アドレス選択信号の信号レベルを出力することを特徴とする。これにより、信号強度比較部からの出力に基いて、アドレス選択信号の種類を特定することができる。
【００１１】
本発明において、前記アドレス選択信号には、シリアルクロック信号を含んでおり、前記アドレスデコーダは、前記アドレス選択信号の立ち上がり又は立ち下がりを検出し、エッジ検出信号を出力するエッジ検出部を更に備え、前記アドレス設定部は、前記信号強度比較部から出力された比較結果及び前記エッジ検出部から出力されたエッジ検出信号に基づいて、前記アドレス選択信号として入力された信号を特定し、この信号に対応するアドレスを設定することを特徴とする。これにより、シリアルクロック信号を用いて４値入力を実現し、多様なアドレスを設定することができる。
【００１２】
本発明において、前記信号強度比較部は、ＸＯＲゲート、ＯＲゲート、Ｄ型フリップフロップを含んで構成されており、前記ＸＯＲゲートには、シリアルデータ信号及びアドレス選択信号を入力し、前記ＯＲゲートには、前記ＸＯＲゲートの出力信号及びＤ型フリップフロップの出力信号を入力し、前記Ｄ型フリップフロップには、前記ＯＲゲートの出力信号を入力することを特徴とする。これにより、簡易な回路構成でアドレス設定を実現できる。
【発明の効果】
【００１３】
本発明によれば、バスに接続されるモジュールについて、簡易かつ効率的にアドレスを設定することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のアドレスデコーダの機能ブロックの説明図。
【図２】本実施形態のアドレスデコーダの各機能ブロックにおける出力の説明図であって、（ａ）はレベル比較器、（ｂ）はエッジ検出器、（ｃ）は出力デコーダの説明図。
【図３】本実施形態のアドレスデコーダの各機能ブロックにおける動作の説明図であって、（ａ）はレベル比較器、（ｂ）はエッジ検出器、（ｃ）は出力デコーダの説明図。
【図４】本実施形態のアドレスデコーダの各機能ブロックにおける回路構成の説明図であって、（ａ）はレベル比較器、（ｂ）はエッジ検出器、（ｃ）は出力デコーダの説明図。
【図５】他の実施形態のアドレスデコーダの各機能ブロックにおける回路構成の説明図であって、（ａ）はレベル比較器、（ｂ）はエッジ検出器、（ｃ）は出力デコーダの説明図。
【図６】他の実施形態のアドレスデコーダの各機能ブロックにおける処理手順の説明図であって、（ａ）はレベル比較器、（ｂ）はエッジ検出器の説明図。
【図７】他の実施形態のアドレスデコーダのエッジ検出器における出力の説明図。
【発明を実施するための形態】
【００１５】
以下、本発明を具体化したアドレスデコーダ及びアドレス設定方法についての一実施形態を図１〜図４に従って説明する。本実施形態においては、マスタースレーブ構成において、スレーブモジュールのアドレスを設定するためのアドレスデコーダについて説明する。ここでは、マスタモジュールとスレーブモジュールとの間で、Ｉ２Ｃ通信規約に従って、スタートコンディション、アドレス転送、アクノリッジ、データ転送、ストップコンディションを実行する。
【００１６】
図１に示すように、このアドレスデコーダ１０は、参照信号入力端子としてのＳＤＡ端子及び選択信号入力端子としてのＡＤＤＲ端子を備えている。このＳＤＡ端子にはＳＤＡ信号が入力され、ＡＤＤＲ端子にはアドレス選択信号が入力される。ここで、スレーブアドレスはモジュール毎にユニークな値を設定しなければならないため、アドレス信号には必ず「０」と「１」とを含む。その特徴を利用して、アドレスデコーダ１０は、ＡＤＤＲ端子において、電源電圧が供給されるＶＤＤライン、接地電圧が供給されるＶＳＳライン、シリアルデータ信号（ＳＤＡ信号）が供給されるＳＤＡライン、シリアルクロック信号（ＳＣＬ信号）が供給されるＳＣＬラインのいずれかに接続されているかを検出する。
【００１７】
このため、アドレスデコーダ１０は、信号強度比較部としてのレベル比較器１１、エッジ検出部としてのエッジ検出器１２、アドレス設定部としての出力デコーダ１３を備えている。
【００１８】
レベル比較器１１は、ＳＤＡ端子に入力されたＳＤＡ信号とＡＤＤＲ端子に入力されたアドレス選択信号とを比較し、一致している場合には、出力を「ＴＲＵＥ」としてすべてのスレーブアドレスを受信するまで比較を続ける。一致していない場合は出力を「ＦＡＬＳＥ」とし、以降の比較は行なわない。
【００１９】
エッジ検出器１２は、ＡＤＤＲ端子に入力されたアドレス選択信号の立ち上がりエッジ、立下りエッジもしくはパルスであるかを検出することにより、ＡＤＤＲ端子への入力信号が固定レベルではないことを検出する。その場合、ＡＤＤＲ端子はＳＤＡライン又はＳＣＬラインに接続されていることが判る。
【００２０】
出力デコーダ１３は、ＡＤＤＲ端子の接続先に応じたアドレスを設定することにより、アドレスデコーダ１０を備えたスレーブモジュールのアドレス（Ｉ２Ｃ通信の場合には７ビット）を決定する。そして、アドレスが一致したスレーブモジュールは、マスタモジュールからのアドレス転送を完了した場合、マスタモジュールに対して受領確認信号（ＡＣＫ）を返信する。これにより、マスターモジュール・スレーブモジュール間の通信が確立する。
【００２１】
（アドレスデコーダにおける各機能ブロックからの出力）
次に、レベル比較器１１、エッジ検出器１２、出力デコーダ１３における出力信号を、図２を用いて説明する。
【００２２】
レベル比較器１１は、図２（ａ）に示すテーブルＴ１１を用いてＳＤＡ信号との一致不
一致、信号レベルを判定する。
ここで、レベル比較器１１は、ＡＤＤＲ端子に入力されたアドレス選択信号と、ＳＤＡ端子に入力されたＳＤＡ信号とを比較し、同じ信号が入力されている場合には「０」を出力する。
【００２３】
一方、ＡＤＤＲ端子にＳＤＡ信号とは異なる信号が入力されている場合には、ＶＤＤライン、ＶＳＳライン、ＳＣＬラインに接続されていることになる。ハイレベルの信号が入力されている場合には、電源ライン又はＳＣＬラインに接続されているので、レベル比較器１１は「１」を出力する。一方、ローレベルの信号が入力されている場合には、接地ライン又はＳＣＬラインに接続されているので、レベル比較器１１は「２」を出力する。
【００２４】
エッジ検出器１２は、図２（ｂ）に示すテーブルＴ１２を用いて、エッジの有無を判定する。そして、ＡＤＤＲ端子がＳＤＡライン又はＳＣＬラインに接続されており、エッジを検出した場合には、エッジ検出器１２は「１」を出力する。一方、ＡＤＤＲ端子が電源ライン又は接地ラインに接続されており、エッジを検出しない場合には、エッジ検出器１２は、「０」を出力する。
【００２５】
出力デコーダ１３は、図２（ｃ）に示すテーブルＴ１３を用いて、アドレスデコーダ１０のＡＤＤＲ端子の接続先を判定し、この判定に対応するアドレスを設定する。
具体的には、レベル比較器１１の出力が「０」の場合には、ＳＤＡラインに接続されていると判定する。一方、レベル比較器１１の出力が「１」又は「２」であり、エッジ検出器１２の出力が「１」の場合には、ＳＣＬラインに接続されていると判定する。また、レベル比較器１１の出力が「１」であり、エッジ検出器１２の出力が「０」の場合には、電源ラインに接続されていると判定する。その他の場合には、接地ラインに接続されていると判定する。ここでは、「ＳＤＡ」〜「ＶＳＳ」の順番に優先的にアドレスを決定する。
【００２６】
（アドレスデコーダにおける動作）
アドレスデコーダにおけるＡＤＤＲ端子の接続先の判定についての状態遷移を、図３（ａ）を用いて説明する。
【００２７】
スタートコンディションとなった場合、レベル比較器１１は、ＳＤＡ端子に入力されたＳＤＡ信号と、ＡＤＤＲ端子に入力されたアドレス選択信号とを比較する。両者の信号レベルが一致している場合には、信号「Ｌｅｖｅｌ」として「ＳＤＡ」を出力するとともに比較を継続する。
【００２８】
一方、ＡＤＤＲ端子に入力されたアドレス選択信号とＳＤＡ端子に入力されたＳＤＡ信号とが異なる場合には、レベル比較器１１は、ＡＤＤＲ端子に入力されるアドレス選択信号のレベルに応じて、信号「Ｌｅｖｅｌ」として「ＶＤＤ」又は「ＶＳＳ」を出力する。
【００２９】
エッジ検出器１２において、図３（ｂ）に示すように、ＡＤＤＲ端子に入力されるアドレス選択信号レベルの変化の有無により、信号「Ｅｄｇｅ」を出力する。ここでは、信号レベルの変化を検知した場合には信号「Ｅｄｇｅ」として「１」、信号レベルの変化を検知しなかった場合には「０」を出力する。
【００３０】
出力デコーダ１３は、図３（ｃ）に示すテーブルＴ２０を用いて、レベル比較器１１から出力された信号「Ｌｅｖｅｌ」、エッジ検出器１２から出力された信号「Ｅｄｇｅ」を用いて、接続先のラインを判定する。ここでは、信号「Ｌｅｖｅｌ」が「ＳＤＡ」の場合には、出力デコーダ１３は「ＳＤＡ」を出力する。信号「Ｌｅｖｅｌ」が「ＳＤＡ」以外であって、信号「Ｅｄｇｅ」が「１」の場合には、出力デコーダ１３は「ＳＣＬ」を出力する。信号「Ｅｄｇｅ」が「０」であって、信号「Ｌｅｖｅｌ」が「ＶＤＤ」の場合には
、出力デコーダ１３は「ＶＤＤ」を出力し、信号「Ｌｅｖｅｌ」が「ＶＳＳ」の場合には「ＶＳＳ」を出力する。
【００３１】
（アドレスデコーダにおける各機能ブロックの構成例）
次に、図４（ａ）に、レベル比較器１１の構成例を説明する。ここでは、レベル比較器１１は、第１の回路１１ａ、第２の回路１１ｂを用いて構成する。
【００３２】
第１の回路１１ａは、Ｄ型フリップフロップ１１１、ＸＯＲゲート１１２、ＯＲゲート１１３を備えている。レベル比較器１１のＳＤＡ端子及びＡＤＤＲ端子に入力された信号は、ＸＯＲゲート１１２に入力される。このＸＯＲゲート１１２の出力信号は、ＯＲゲート１１３に入力される。このＯＲゲート１１３には、Ｄ型フリップフロップ１１１から出力される信号「ｓｄａ＿ｂ」も入力される。そして、このＯＲゲートの出力は、Ｄ型フリップフロップ１１１のデータ入力端子に入力される。更に、Ｄ型フリップフロップ１１１には、ＳＣＬ信号及びスタート信号（スタートコンディションを示す信号）が入力される。そして、このＤ型フリップフロップ１１１は信号「ｓｄａ＿ｂ」を出力する。
【００３３】
ここで、ＳＤＡ端子及びＡＤＤＲ端子に入力された信号が一致している場合、ＸＯＲゲート１１２の出力は継続的に「０」となり、Ｄ型フリップフロップ１１１から出力される信号「ｓｄａ＿ｂ」も継続的に「０」となる。一方、ＳＤＡ端子及びＡＤＤＲ端子に入力された信号が不一致となり、ＸＯＲゲート１１２の出力が一旦「１」になった場合には、Ｄ型フリップフロップ１１１から出力される信号「ｓｄａ＿ｂ」は継続的に「１」となる。
【００３４】
また、第２の回路１１ｂは、Ｄ型フリップフロップ１１４、ＯＲゲート１１５を備えている。レベル比較器１１のＡＤＤＲ端子に入力されたアドレス選択信号は、ＯＲゲート１１５に供給される。このＯＲゲート１１５には、Ｄ型フリップフロップ１１４から出力される信号「ｖｄｄ」も供給される。このＯＲゲート１１５の出力信号はＤ型フリップフロップ１１４に供給される。このＤ型フリップフロップ１１４にも、ＳＣＬ信号とスタート信号とが入力される。ここで、ＡＤＤＲ端子が電源ライン又は接地ラインに接続されている場合には、それぞれの信号「ｖｄｄ」として「１」、「０」が継続的に出力される。
【００３５】
次に、エッジ検出器１２の構成例を、図４（ｂ）を用いて説明する。このエッジ検出器１２においては、２つのＤ型フリップフロップ１２１，１２２を用いる。各Ｄ型フリップフロップ１２１，１２２には、電源電圧がデータ端子に入力される。そして、Ｄ型フリップフロップ１２１のクロック端子にはアドレス選択信号ＡＤＤＲ、Ｄ型フリップフロップ１２２のクロック端子には、インバータ１２３により生成されたアドレス選択信号ＡＤＤＲの反転信号が入力される。この場合、ＡＤＤＲ端子に入力されたアドレス選択信号において立ち上がりおよび立下りを検知した場合に、信号「ｐｕｌｓｅ」として「１」を出力する。
【００３６】
出力デコーダ１３は、図４（ｃ）に示すテーブルＴ３０により出力を行なう。ここでは、信号「ｓｄａ＿ｂ」、「ｖｄｄ」、「ｐｕｌｓｅ」に応じて決定した接続先「ＳＤＡ」、「ＳＣＬ」、「ＶＤＤ」、「ＶＳＳ」を特定する。そして、出力デコーダ１３は、この接続先に応じたアドレスを出力して、スレーブモジュールのアドレスを設定する。
【００３７】
上記実施形態の素子構造によれば、以下のような効果を得ることができる。
・  上記実施形態では、アドレスデコーダ１０に、ＳＤＡ端子及びＡＤＤＲ端子を設ける。そして、ＳＤＡ端子にはＳＤＡ信号を入力する。一方、ＡＤＤＲ端子には、電源レベル、接地レベル、ＳＤＡ信号、ＳＣＬ信号のいずれかのアドレス選択信号を入力する。そして、アドレスデコーダ１０は、レベル比較器１１、エッジ検出器１２、出力デコーダ１
３により、ＡＤＤＲ端子の接続先を判定して、アドレスを指定する。これにより、電源レベル、接地レベル、ＳＤＡ信号、ＳＣＬ信号の４値入力により、アドレスを設定することができる。従って、アドレス設定に用いることができる端子数が少ない場合にも、簡易な回路構成で多様なアドレスを設定することができる。
【００３８】
・  上記実施形態では、エッジ検出器１２がエッジの有無を検出し、信号「Ｅｄｇｅ」（信号「ｐｕｌｓｅ」）を出力する。出力デコーダ１３は、これらの信号により、静的な信号（電源レベル又は接地レベル）と動的な信号とを識別する。これにより、ＳＣＬ信号を用いて、アドレスを設定することができる。
【００３９】
なお、上記実施形態は以下のように変更してもよい。
○  上記実施形態においては、アドレスデコーダ１０は、ＳＤＡ端子及びＡＤＤＲ端子を備えている。ここで、アドレスデコーダ１０に複数のＡＤＤＲ端子を設けることも可能である。この場合には、各ＡＤＤＲ端子への入力に応じた組み合わせにより、多様なアドレスを指定することができる。
【００４０】
○  上記実施形態においては、レベル比較器１１において、Ｄ型フリップフロップ１１４、ＯＲゲート１１５から構成された第１の回路１１ａを用いて、信号「ｖｄｄ」として「１」、「０」が継続的に出力されるようにした。これに代えて、ＡＤＤＲ端子に入力された信号を、そのまま用いて電源レベル又は接地レベルを判定するようにしてもよい。具体的には、図５（ａ）に示すように、レベル比較器１１が第１の回路１１ａのみを含み、第２の回路１１ｂを省略する。この場合、エッジ検出器１２としては、図５（ｂ）に示す構成を用いる。この構成は、図４（ｂ）に示した構成と同じである。そして、出力デコーダ１３において、図５（ｃ）に示すテーブルＴ４０を用いて、ＡＤＤＲ端子の接続先を特定する。これにより、簡単な構成により、レベル比較器１１を実現することができる。
【００４１】
○  上記実施形態においては、エッジ検出器１２は、エッジの有無を検出する。この場合、このエッジ検出器１２は、ＡＤＤＲ入力の立ち上がりエッジおよび立下りエッジを検出し、ＡＤＤＲ入力がパルスであるかを検出する。これに代えて、立ち上がり又は立ち下がりのいずれか一方を検出するように構成してもよい。この場合には、エッジ検出器１２を一つのＤ型フリップフロップに構成することができる。
【００４２】
更に、アドレス選択信号を構成するパルスの数だけ、Ｄ型フリップフロップの段数を設け、エッジもしくはパルスが出現した回数をカウントし期待値と比較するようにしてもよい。これにより、エッジ検出器１２としてカウンタを用いて、アドレス選択信号のビット数を検出して、的確にアドレス選択信号の受信を判定することができる。
【００４３】
○  上記実施形態においては、ゲートやＤ型フリップフロップを用いたハードウェア構成によりアドレスを設定する。これに代えて、ＣＰＵやメモリから構成された制御手段を用いて、ソフトウェアによりアドレス選択を行なうように構成することも可能である。この場合、レベル比較器１１、エッジ検出器１２における処理を、図６を用いて説明する。
【００４４】
図６（ａ）に示すように、レベル比較器１１において、スタート信号を取得した場合（Ｓ１１１）、変数「ｓｄａ」を「１」と設定する（Ｓ１１２）。そして、レベル比較器１１は、ＡＤＤＲ端子に入力されたアドレス選択信号とＳＤＡ端子に入力されたＳＤＡ信号とを比較する。ここで、両者が一致した場合（Ｓ１１３において「Ｙｅｓ」の場合）には、変数「ｓｄａ」として「１」を維持する。一方、両者が一致しなかった場合（Ｓ１１３において「Ｎｏ」の場合）には、レベル比較器１１は変数「ｓｄａ」として「０」を設定する（Ｓ１１４）。
【００４５】
又、レベル比較器１１において、スタート信号を取得した場合（Ｓ１１５）、変数「ｖｄｄ」を「０」と設定する（Ｓ１１６）。そして、レベル比較器１１は、ＡＤＤＲ端子に入力されたアドレス選択信号が「０」かどうかを判定する。ここで、「０」の場合（Ｓ１１６において「Ｙｅｓ」の場合）には、変数「ｖｄｄ」として「０」を維持する。一方、「０」の場合（Ｓ１１６において「Ｎｏ」の場合）には、変数「ｖｄｄ」として「１」を設定する（Ｓ１１７）。
【００４６】
エッジ検出器１２においては、図６（ｂ）に示すように、スタート信号を取得した場合（Ｓ１２１）、変数「ｐｕｌｓｅ」を「０」と設定する（Ｓ１２２）。そして、エッジ検出器１２は、ＡＤＤＲ端子に入力されたアドレス選択信号において、エッジ又はパルスを検出したかどうかを判定する。ここで、エッジ又はパルスを検出しない場合（Ｓ１２３において「Ｎｏ」の場合）には、変数「ｐｕｌｓｅ」として「０」を維持する。一方、エッジ又はパルスを検出した場合（Ｓ１２３において「Ｙｅｓ」の場合）には、エッジ検出器１２は変数「ｐｕｌｓｅ」として「１」を設定する（Ｓ１２４）。
【００４７】
そして、出力デコーダ１３は、図７に示すテーブルＴ５０を用いて、変数「ｓｄａ」、「ｖｄｄ」、「ｐｕｌｓｅ」に対応してＡＤＤＲ端子の接続先を特定し、アドレスを設定することができる。
【００４８】
○  上記実施形態においては、アドレスデコーダ１０のＡＤＤＲ端子には、ＶＤＤライン、ＶＳＳライン、ＳＤＡライン、ＳＣＬラインのいずれかに接続される場合を想定した。これに代えて、シリアルクロック信号を用いない場合には、エッジ検出は不要となり、レベル比較器１１の出力より、ＳＤＡライン、電源ライン、接地ラインへの各接続を識別することができる。
【符号の説明】
【００４９】
１０…アドレスデコーダ、１１…レベル比較器、１２…エッジ検出器、１３…出力デコーダ、１１ａ…第１の回路、１１ｂ…第２の回路、１１１…Ｄ型フリップフロップ、１１２…ＸＯＲゲート、１１３…ＯＲゲート、１１４…Ｄ型フリップフロップ、１１５…ＯＲゲート、１２１，１２２…Ｄ型フリップフロップ、１２３…インバータ。
【図１】
2010212989.tif 000003
【図２】
2010212989.tif 000004
【図３】
2010212989.tif 000005
【図４】
2010212989.tif 000006
【図５】
2010212989.tif 000007
【図６】
2010212989.tif 000008
【図７】
2010212989.tif 000009