(57)【特許請求の範囲】
【請求項１】
他のデバイスとデータラインを介してＩ２Ｃバス通信を行う通信部と、
調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶する記憶部と、
前記通信部を制御して前記他のデバイスとのＩ２Ｃバス通信を制御する制御部と、    を備え、
前記制御部は、
前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、
前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、
ことを特徴とするＩ２Ｃバス通信用デバイス。
【請求項２】
前記制御部は、
最初の通信において前記第２の判断にて前記他のデバイスとの調停負けとなった場合、次回の通信では前記第２の値に設定された前記調停ビットにて前記第１の判断を行い、その後、前記スレーブアドレスの各ビットにて前記第２の判断を行う、
ことを特徴とする請求項１に記載のＩ２Ｃバス通信用デバイス。
【請求項３】
前記調停ビットについて、前記第１の値は１であり前記第２の値は０であり、前記制御部は、前記調停ビットが前記第２の値であり、かつ、前記他のデバイスの前記調停ビットが前記第１の値の場合に、前記第１の判断に成功して前記第２の判断を行う、
ことを特徴とする請求項１に記載のＩ２Ｃバス通信用デバイス。
【請求項４】
スレーブデバイスとデータラインを介したＩ２Ｃバス通信を行うマスタデバイスを複数備えたＩ２Ｃバス通信システムであって、
前記複数のマスタデバイスは、夫々、前記Ｉ２Ｃバス通信を行う通信部と、
調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶する記憶部と、
前記通信部を制御して前記Ｉ２Ｃバス通信を制御する制御部と、
を備え、
前記制御部は、
前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、
前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、
ことを特徴とするＩ２Ｃバス通信システム。
【請求項５】
複数のデバイス間でデータラインを介してＩ２Ｃバス通信を行うＩ２Ｃバス通信方法であって、
調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶し、
前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、
前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、
前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、
ことを特徴とするＩ２Ｃバス通信方法。
【請求項６】
複数のデバイス間でデータラインを介してＩ２Ｃバス通信をコンピュータに実行させるＩ２Ｃバス通信プログラムであって、
調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶し、
前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、
前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、
前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、
ことを特徴とするＩ２Ｃバス通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃバス通信用デバイス、Ｉ２Ｃバス通信システム、Ｉ２Ｃバス通信方法、およびＩ２Ｃバス通信プログラムに関する。
【背景技術】
【０００２】
Ｉ２Ｃバス通信とは、シリアル・データライン（ＳＤＡ）とシリアル・クロックライン（ＳＣＬ）の２本のみで動作することを特徴とする通信形態である。また、Ｉ２Ｃバスは、複数のマスタデバイスをバスに接続することが出来るマルチマスタバスである。Ｉ２Ｃ通信において、システム内で複数のマスタデバイスを使用している場合、２つ以上のマスタデバイスが同時に通信を行った際、バスの使用権を制御するための調停という機能が存在する。
【０００３】
調停において、各マスタデバイスは１ビット毎にＳＤＡのレベルが自分の送信した内容と一致するかのチェックを行い、自分が１を送信しているにも関わらずＳＤＡが０状態であることを検出したマスタデバイスは、調停に負けたことを認識し、ＳＤＡ出力をオフにする。これを繰り返し、最後まで残ったマスタデバイスが調停に勝ったことになり、バスの使用権を得ることができる。
【０００４】
従来のＩ２Ｃの調停機能では、マスタデバイスが送信するスレーブアドレスとデータのみによってバスの使用権が決定されるため、バスの使用権が均等に割り振られないという問題がある。これを解決するための一例が下記特許文献１に記載されている。
【０００５】
特許文献１記載のＩ２Ｃバス通信用デバイスは、スレーブアドレスのうち調停ビットに割り振ったビットを記憶する上位ビット記憶部と、マスタデバイスとして通信を行う相手であるスレーブデバイスのアドレスを記憶する下位ビット記憶部と、を備えている。そして、Ｉ２Ｃバス通信用デバイスにおける制御部は、記憶された調停ビットと、記憶されたスレーブデバイスのアドレスとを統合してスレーブアドレスとする。また、Ｉ２Ｃバス通信システムでは、マスタデバイスの制御部は、通信部を制御して、スレーブアドレスを出力し、調停結果に基づいて調停ビットに所定の演算を行い、バスの使用権を均等に割り振っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１８６５００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の文献に記載された技術は、複数のマスタデバイスに均等に割り振るためには、マスタデバイスの数に応じて調停ビットの数を増やす必要がある。マスタデバイスの数に対して調停ビットの数が少ない場合、バスの使用権を均等に割り振ることができない。制御するマスタデバイスを増やし、かつ、優先権を均等に割り振るためには、調停ビットを増加させる必要があり、その場合、使用できるスレーブアドレスを減少させてしまうという問題がある。
【０００８】
本発明は、以上のような課題を解決するためになされたものであり、優先権を均等に割り振るために、調停ビットを増加させる必要がなく、使用できるスレーブアドレスを減少させることのないＩ２Ｃバス通信用デバイス、Ｉ２Ｃバス通信システム、Ｉ２Ｃバス通信方法、およびＩ２Ｃバス通信プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の一態様は、他のデバイスとデータラインを介してＩ２Ｃバス通信を行う通信部と、調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶する記憶部と、前記通信部を制御して前記他のデバイスとのＩ２Ｃバス通信を制御する制御部と、を備え、前記制御部は、前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、ことを特徴とするＩ２Ｃバス通信用デバイスである。
【００１０】
また、本発明の一態様は、複数のデバイス間でデータラインを介してＩ２Ｃバス通信を行うＩ２Ｃバス通信方法であって、調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶し、前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、ことを特徴とするＩ２Ｃバス通信方法である。
【００１１】
また、本発明の一態様は、複数のデバイス間でデータラインを介してＩ２Ｃバス通信をコンピュータに実行させるＩ２Ｃバス通信プログラムであって、調停ビットを最上位ビットとした所定ビット数のスレーブアドレスを記憶し、前記調停ビットを第１の値に設定して、通信の開始後に前記調停ビットを前記データラインに出力し、前記データラインの信号レベルと一致するか判断する第１の判断を行い、前記第１の判断に失敗すると通信の終了まで待機し、前記第１の判断に成功すると前記調停ビット以降の前記スレーブアドレスの各ビットの値が前記データラインの信号レベルと一致するか判断する第２の判断を行い、前記第２の判断に失敗すると調停負けと判断して前記調停ビットを第２の値に設定して通信の終了まで待機し、前記第２の判断に成功すると調停勝ちと判断して前記調停ビットを第１の値に維持する、ことを特徴とするＩ２Ｃバス通信プログラムである。
【発明の効果】
【００１２】
本発明の一態様によれば、優先権を均等に割り振るため、調停ビットをマスタデバイスの数に依存しない１ビットで行うことにより、使用できるスレーブアドレスを減少させることをなくすことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るＩ２Ｃバス通信システムの構成の一例を示すブロック図である。
【図２】本発明の一実施形態に係るＩ２Ｃバス通信用デバイスの基本構成例を示すブロック図である。
【図３】図１に示すＩ２Ｃバス通信用デバイスのうちのマスタデバイスが、スタートコンディション後に送信するデータの最初のバイトフォーマットを示す。
【図４】本発明の実施形態におけるＩ２Ｃバス通信システムでの各デバイスの通信の優先順位の制御の動作の概要を示すフローチャートである。
【図５】通信回数１回目、２回目、３回目、４回目、および５回目の時のマスタ１から３までの調停ビットの動作と調停結果を表した図である。
【発明を実施するための形態】
【００１４】
以下、まず、Ｉ２Ｃバス通信システムのマスタデバイスが、調停結果に応じてバスの使用権を得る場合の一般的な動作について説明し、その後、本発明の実施形態について順番に図面を参照して説明する。
【００１５】
Ｉ２Ｃバス通信システムは、信号線をオープンドレイン接続することで、複数のデバイスで１本の信号線を共有して使用することができる。また、オープンドレインはＬｏｗ駆動であるため、Ｉ２Ｃバス通信用デバイスが信号を駆動していない場合、信号線はプルアップ抵抗によって自動的に１の状態となる。よって、Ｉ２Ｃバス通信用デバイスが信号線に１の値を送信したい場合は駆動を行わず、デバイスが０の値を送信したい場合にはＬｏｗ駆動を行う。これにより、複数のＩ２Ｃバス通信用デバイスのうち１つが１の値を、他の１つが０の値を送信したい場合、信号線はＩ２Ｃバス通信用デバイスによるＬｏｗ駆動によって０の状態になるため、０の値を送信するＩ２Ｃバス通信用デバイスにおけるマスタデバイスがバスの使用権を得ることが出来る。
【００１６】
Ｉ２Ｃバス通信において、複数のマスタデバイスが同時にデータの送信を行った場合、一度のデータ転送で信号線を使用できるデバイスは１つであるため、どのマスタデバイスの転送を完遂させるかを決定するために、上記で説明したオープンドレインの特性を利用した調停機能が存在する。調停において、各マスタデバイスは１ビット毎にＳＤＡ（一方の信号線）のレベルが自分の送信した内容と一致するかのチェックを行う。信号線はＬｏｗ駆動であるため、自分が０の値を送信する場合、信号線は必ず０の状態になるが、自分が１の値を送信する場合は、他のデバイスのＬｏｗ駆動により信号線は０の状態になる場合がある。自分が１の値を送信しているにも関わらず、信号線が０の状態であることを検出したマスタデバイスは、調停に負けたことを認識し、データの転送を中断する。これを繰り返し、最後まで残ったマスタデバイスが調停に勝ったことになり、バスの使用権を得ることができる。
【００１７】
図１は、本発明の一実施形態に係るＩ２Ｃバス通信システムの構成の一例を示すブロック図である。
図１に示すように、Ｉ２Ｃバス通信システム１００においては、３つのマスタデバイス（マスタ１、マスタ２、マスタ３）、および３つのスレーブデバイス（スレーブ１、スレーブ２、スレーブ３）にクロックライン（ＳＣＬ）、データライン（ＳＤＡ）の２本が接続され、２本のバスがそれぞれプルアップ抵抗Ｒｐを介して電源電圧Ｖｄｄに接続されている。
なお、以下、マスタ１、マスタ２、マスタ３を、デバイス１０、デバイス２０、デバイス３０と、スレーブ１、スレーブ２、スレーブ３を、デバイス４０、デバイス５０、デバイス６０ということもある。
ここで、ＳＣＬとＳＤＡとが、Ｉ２Ｃバスである。なお、本実施形態ではデバイス（Ｉ２Ｃバス通信用デバイス）の数を６台としているが、５台以下もしくは７台以上接続していても構わない。また、Ｉ２Ｃバス通信システム１００は、マルチマスタシステムである。すなわち、デバイス１０〜６０は、全てＩ２Ｃバス通信におけるマスタとしてデータを転送することができる。ここで、図１において示すように、本実施形態の説明においては、Ｉ２Ｃバス通信システム１００は、マスタデバイスであるデバイスを複数含み（デバイス１０〜３０の３台）、スレーブデバイスであるデバイスを複数（デバイス４０〜６０の３台）含むものとする。
【００１８】
また、図２は、本発明の一実施形態に係るＩ２Ｃバス通信用デバイスの基本構成例を示すブロック図である。なお、図１に示すデバイス２０〜６０の構成も同様とする。図２を参照すると、デバイス１０は、通信部１１と、制御部１２と、記憶部１３と、を含んで構成される。
通信部１１は、他のデバイス（デバイス２０〜６０）と、ＳＣＬ上におけるクロック信号、ＳＤＡ上におけるデータ信号の送受信を行う。データ、調整ビット、およびＩ２Ｃバス通信におけるスレーブアドレスは、データ信号で送受信される。
制御部１２は、Ｉ２Ｃバス通信における他のデバイスとの通信を制御する。また、制御部１２は、通信部１１を制御してデータライン（ＳＤＡ）の信号レベルを確認する。本実施の形態はＩ２Ｃバス通信の通信優先順位の制御に関する技術である。
【００１９】
図３は、図１に示すＩ２Ｃバス通信用デバイスのうちのマスタデバイスが、スタートコンディション後に送信するデータの最初のバイトフォーマットを示す。
一般的なＩ２Ｃバス通信システムでは、通常スタートコンディション後の７ビットをスレーブアドレスとして使用する。しかしながら、本発明のＩ２Ｃバス通信システムにおいては、図３に示すように、スタートコンディション後の最初の１ビット、すなわちスレーブアドレス（７ビット）のうち最上位の１ビット（Ｍｏｓｔ Ｓｉｇｎｉｆｉｃａｎｔ Ｂｉｔ）を調停ビットとする。また、調停ビットより下位の６ビットをスレーブアドレスとする。
すなわち、記憶部１３は、図３に示すように、スレーブアドレスと、スレーブアドレスより１ビット上位のビットである調停ビットと、の値（７ビットのデータ）を、少なくともデータ１３ａとして記憶する。さらに、６ビットのスレーブアドレスより下位の（図３に示すバイトフォーマットの最下位の）ビット（Ｌｅａｓｔ ｓｉｇｎｉｆｉｃａｎｔ Ｂｉｔ）を、Ｒ／Ｗ決定ビット（リードまたはライト命令を行うビット）とする。
つまり、記憶部１３は、図３に示す調停ビット、スレーブアドレスの６ビット、Ｒ／Ｗ決定ビットを、データ１３ａとして記憶する。
【００２０】
そして、制御部１２は、記憶部１３に記憶された調停ビットの値とデータライン（ＳＤＡ）の信号レベルとが一致するか否かを判断する第１の判断を行い、続いて、記憶部１３に記憶されたスレーブアドレスの値とデータライン（ＳＤＡ）の信号レベルとが一致するか否かを判断する第２の判断を行う。これにより、制御部１２は、他のデバイスに含まれるマスタデバイス（デバイス２０、およびデバイス３０）との調停における勝敗を、第１の判断の判断結果または第２の判断の判断結果に応じて判断し、判断結果が勝ちの場合、データラインの使用権を得ることができる。
【００２１】
以上のように構成されたＩ２Ｃバス通信システム１００の動作について、図４のフローチャートを参照して説明する。
図４は、本発明の実施形態におけるＩ２Ｃバス通信システムでの各デバイスの通信の優先順位の制御の動作の概要を示すフローチャートである。ここで、各デバイスとは、マスタデバイス（デバイス１０、デバイス２０、およびデバイス３０）のうちのいずれか１台のデバイスを意味する。
制御部１２は、調停ビットの初期値を１とする（ステップＳＴ４１）。
具体的には、制御部１２は、図３に示す調停ビット（ＭＳＢ）に１を設定する。
次に、マスタデバイスにおける制御部１２は、通信部１１を制御して、スタートコンディションを出力し、通信の開始を宣言する（ステップＳＴ４２）。
その後、制御部１２は、通信部１１を制御して、スタートコンディション後の最初の１ビット、すなわち調停ビットの出力を行う（ステップＳＴ４３）。
【００２２】
ここで、制御部１２は、出力した調停ビットの値と、ＳＤＡの信号レベルが一致しているか否かの判断（第１の判断）を行う（ステップＳＴ４４）。
制御部１２は、出力した調停ビットの値と、ＳＤＡの信号レベルとが一致していなかった場合（ステップＳＴ４４−Ｎｏ）、自デバイスは調停に負けたと判断し、ストップコンディションを検出するまで待機する（ステップＳＴ４５）。
制御部１２は、ストップコンディション検出後（ステップＳＴ４５）、再びスタートコンディションの出力（ステップＳＴ４２）に戻る。
【００２３】
制御部１２は、出力した調停ビットの値と、ＳＤＡの信号レベルとが一致していた場合（ステップＳＴ４４−Ｙｅｓ）、次に、通信部１１を制御して、スレーブアドレスとデータの出力を行う（ステップＳＴ４６）。
具体的には、制御部１２は、通信部１１を制御して、スレーブアドレスとスレーブアドレスより下位にあるデータを出力データとして１ビット毎に上位のビットから複数ビット出力するデータ転送を行う。
【００２４】
制御部１２は、１ビット毎に出力ビットとＳＤＡのレベルが一致しているか否かの判断（第２の判断）を行い（ステップＳＴ４７）、この判断をデータの転送が完了するか（ステップＳＴ４９−Ｙｅｓ）、出力ビットとＳＤＡのレベルの不一致を検出する（ステップＳＴ４７−Ｎｏ）まで行う。
【００２５】
制御部１２は、データ転送の完了（ステップＳＴ４９−Ｙｅｓ）までに出力ビットとＳＤＡの信号レベルが一致しないビットがあった場合（ステップＳＴ４７−Ｎｏ、あるいはステップＳＴ４７−Ｙｅｓ→ステップＳＴ４９−Ｎｏ→ステップＳＴ４６→ステップＳＴ４７−Ｎｏ）、自デバイスは調停に負けたと判断する。
ここで、制御部１２は、自デバイスの調停ビットが１であった場合は、記憶部１３における調停ビットを０にする（ステップＳＴ４８）。
制御部１２は、自デバイスの調停ビットが０であった場合は調停ビットを０のままにする（ステップＳＴ４８）。
ステップＳＴ４８の後、制御部１２は、ストップコンディションを検出するまで待機し（ステップＳＴ４５）、検出後（ステップＳＴ４５）は再びスタートコンディションの出力（ステップＳＴ４２）に戻る。
【００２６】
制御部１２は、データ転送の完了（ステップＳＴ４９−Ｙｅｓ）まで出力ビットとＳＤＡの信号レベルが一致していた場合（ステップＳＴ４７−Ｙｅｓ）、自デバイスは調停勝ちとなり（調停勝ちと判断し）、調停ビットが０であった場合は調停ビットを１にする（ステップＳＴ５０）。
制御部１２は、調停ビットが１であった場合は調停ビットを１のままにする（ステップＳＴ５０）。
【００２７】
以上説明した様に、本発明を利用することで、Ｉ２Ｃバス通信システムの調停における各デバイスの通信機会を、必要最小限の情報（１ビットの調整ビット）で均等に割り振ることができる。この理由は下記の通りである。
本発明では、調停に勝ったデバイスは次回の調停において優先度が下がる。また、全てのデバイスが調停に勝つまで調停に勝ったデバイスの優先度は下がったままである。この２つを両立することで、各デバイスは調停に負ける度に優先度が上がることになり、結果として通信機会を均等に割り振ることができるという効果が得られる。
【００２８】
この得られる効果について図５を参照しつつ説明する。図５は、通信回数１回目、２回目、３回目、４回目、および５回目の時のマスタ１から３（デバイス１０〜デバイス３０）までの調停ビットの動作と調停結果を表した図である。
【００２９】
１回目の調停では、全ての調停ビットが１のため、調停ビットにおける調停では勝敗が付かず（図４に示すステップＳＴ４４−Ｙｅｓ）、スレーブアドレスによる調停となる（図４に示すステップＳＴ４６→ステップＳＴ４７）。２ビット目、すなわちスレーブアドレスの上位１ビット目の比較により、マスタ１が調停勝ちとなる（図４に示すステップＳＴ４７−Ｙｅｓ→ステップＳＴ４９−Ｙｅｓ）。この時、マスタ２とマスタ３は自身の調停ビットを０にする（図４に示すステップＳＴ４７−Ｎｏ→ステップＳＴ４８）。
【００３０】
２回目の調停では、マスタ１の調停ビットのみ１のため（１回目の調停における図４に示すステップＳＴ５０）、１ビット目で調停負けとなる（図４に示すステップＳＴ４４−Ｎｏ）。マスタ２、マスタ３の３ビット目の比較により（図４に示すステップＳＴ４７）、マスタ２が調停勝ちとなる（図４に示すステップＳＴ４７−Ｙｅｓ→ステップＳＴ４９−Ｙｅｓ）。この時、マスタ２は自身の調停ビットを１に戻す（図４に示すステップＳＴ５０）。
【００３１】
３回目の調停では、マスタ３のみが調停ビット０であるため（２回目の調停における図４に示すステップＳＴ４７−Ｎｏ→ステップＳＴ４８）、調停ビットの比較により（図４に示すステップＳＴ４４）、マスタ３が調停勝ちとなる（ステップＳＴ４４−Ｙｅｓ→ステップＳＴ４６→ステップＳＴ４７−Ｙｅｓ→ステップＳＴ４９−Ｙｅｓ）。この時、マスタ３は自身の調停ビットを１に戻す（ステップＳＴ５０）。
【００３２】
３回の調停（１回目の調停〜３回目の調停）で各マスタに通信機会が均等に割り振られており、さらに４回目の調停では、全てのマスタの調停ビットが１に戻っている、すなわち１回目の調停と同様の調停結果が得られるため、今後通信回数が増えたとしても、調停に勝ったデバイスは次回の調停において優先度が下がる。また、全てのデバイスが調停に勝つまで調停に勝ったデバイスの優先度は下がったままである。この２つを両立することで、各デバイスは調停に負ける度に優先度が上がることになり、結果として通信機会が均等に割り振られる。
【００３３】
以上の本発明の実施形態の構成によれば、優先権を均等に割り振るため、調停ビットをマスタデバイスの数に依存しない１ビットで行うことにより、使用できるスレーブアドレスを減少させることをなくすことができる。
【００３４】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００３５】
例えば、本発明によれば、マスタのバスの使用権を均等にするだけでなく、設定によってバスの使用権を偏らせることもできる。例えば、３つのマスタを制御する際、調停が起きた時に必ずマスタ１が勝つようなシステムを作りたいとする。その場合、マスタ１の調停ビットを常に０と設定することで、必ずマスタ１が調停に勝つようなシステムにすることができる。
また、通常１回勝つと調停ビットの値を０から１にするところを、マスタ１だけが２回勝った時に初めて調停ビットの値を１とする設定にすることで、マスタ２、マスタ３が１回の使用権を得る間に、マスタ１に２回の使用権を与えることができる。
【符号の説明】
【００３６】
１０，２０，３０，４０，５０，６０…デバイス、１１…通信部、１２…制御部、１３…記憶部、１００…Ｉ２Ｃバス通信システム
【図１】
0006943478.tif 000002
【図２】
0006943478.tif 000003
【図３】
0006943478.tif 000004
【図４】
0006943478.tif 000005
【図５】
0006943478.tif 000006