(57)【要約】【課題】  不要な設備を導入せずに通信の優先順位を制御することができるＩ２Ｃバス通信のためのデバイスを提供する。【解決手段】  他のデバイスと、Ｉ２Ｃバス通信のためのバスを介して送受信を行う通信部と、スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、前記通信部を通じてＩ２Ｃバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手（スレーブデバイス）のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部とを含むＩ２Ｃバス通信のためのデバイス。【選択図】      図２
2014186500.tif 000002
【特許請求の範囲】
【請求項１】
他のデバイスと、Ｉ２Ｃバス通信のためのバスを介して送受信を行う通信部と、
スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、
前記通信部を通じてＩ２Ｃバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手（スレーブデバイス）のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部と
を含むＩ２Ｃバス通信のためのデバイス。
【請求項２】
前記デバイスが調停に失敗し通信できなかった場合、前記制御部が、前記記憶部に記憶される調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項１記載のＩ２Ｃバス通信のためのデバイス。
【請求項３】
前記記憶部が、少なくとも最上位ビットとして定義され通常時は「１」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項１または２に記載のＩ２Ｃバス通信のためのデバイス。
【請求項４】
前記制御部は、センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項３に記載のＩ２Ｃバス通信のためのデバイス。
【請求項５】
複数の請求項１ないし４のいずれか１つに記載のＩ２Ｃバス通信システムデバイスを含むマルチマスタシステムのＩ２Ｃバス通信システム。
【請求項６】
デバイスの記憶部に記憶される調停ビットと、通信を行う相手（スレーブデバイス）のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、
複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行うマルチマスタシステムのＩ２Ｃバス通信方法。
【請求項７】
前記制御部が、前記デバイスが調停に失敗し通信できなかった場合、前記上位ビット記憶に記憶される前記調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項６記載のＩ２Ｃバス通信方法。
【請求項８】
前記記憶部が、少なくとも最上位ビットとして定義され通常時は「１」に設定される緊急ビットをさらに記憶し、
緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項６または７に記載のＩ２Ｃバス通信方法。
【請求項９】
センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項８に記載のＩ２Ｃバス通信方法。
【請求項１０】
デバイスの記憶部に記憶される調停ビットと、通信を行う相手（スレーブデバイス）のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、
複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行う処理
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バス通信システムデバイス、Ｉ２Ｃバス通信システム、及びその通信方法に関する。
【背景技術】
【０００２】
Ｉ２Ｃバス通信とは、抵抗でプルアップされたクロックとデータの２本の信号線だけで通信バスを構成する通信形態である（特許文献１）。Ｉ２Ｃ通信において、バスに接続される複数のデバイスは、マスタ転送またはスレーブ転送機能を有する。マスタは個別に決められたスレーブのアドレスを指定してスレーブを選択してからそのスレーブと通信する。Ｉ２Ｃバス通信は、使用する信号線の数が少ないことが特徴で、例えばセンサからの読み取りのため、あるいは冗長化された制御系における情報共有のために利用される。
【０００３】
このようなＩ２Ｃバス通信において、バスの使用効率を高めるため、通信の優先順位を制御するＩ２Ｃバス通信システムが知られている。このＩ２Ｃバス通信システムは、複数のマスタ間での通信の優先順位が制御される。
【０００４】
通信の優先順位を制御するＩ２Ｃバス通信システムの一例が特許文献２に記載されている。特許文献２に記載されたＩ２Ｃバス通信システムは、通信を制御するコントローラが、バス使用を許可するデバイスにトークンを発行し、トークンを受信したデバイスがマスタとしてデータを転送する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第４６８９７４０号明細書
【特許文献２】特開平０４−３３２０６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献２に記載された技術は、複数のデバイスの他に、トークンを発信するコントローラを接続する必要がある。また、トークンの転送とデータの転送を区別するために、データライン、クロックライン以外に制御ラインを設ける必要がある。もしくは全てのデバイス（マイクロプロセッサ）が常にバス上を流れるデータを監視する必要がある。したがって、特許文献２に記載された技術は、本来のＩ２Ｃバス通信に不要な設備を導入する必要があり、コストがかかるという問題点がある。
【０００７】
本発明の目的の一例は、上述した問題点を解決でき、通信の優先順位を制御できるＩ２Ｃバス通信システム、及び通信方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態におけるＩ２Ｃバス通信のためのデバイスは、他のデバイスと、Ｉ２Ｃバス通信のためのバスを介して送受信を行う通信部と、スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、前記通信部を通じてＩ２Ｃバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手（スレーブデバイス）のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部を備える。
【０００９】
本発明の一形態におけるＩ２Ｃバス通信方法は、デバイスの記憶部に記憶される調停ビットと、通信を行う相手（スレーブデバイス）のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行う。
【発明の効果】
【００１０】
本発明によれば、不要な設備を導入せずに通信の優先順位を制御することができるという効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１の実施の形態におけるＩ２Ｃバス通信システム１０００の構成の一例を示す回路図である。
【図２】図２は、第１の実施の形態におけるデバイス１０の構成を示すブロック図である。
【図３】図３は、第１の実施の形態におけるデバイス１０を素子およびデバイスで実現したハードウェア構成を示す図である。
【図４】図４は、第１の実施の形態におけるＩ２Ｃバス通信システム１０００での各デバイスの通信の優先順位の制御の動作の概要を示すフローチャートである。
【図５】図５は、第１の実施の形態における通信回数Ｎ回目、Ｎ+１回目、Ｎ+２回目、Ｎ＋３回目の時のデバイス１０乃至４０の調停ビットと調停結果を示した表である。
【図６】図６は、第２の実施の形態におけるデバイス６０の構成を示すブロック図である。
【図７】図７は、第２の実施の形態における通信回数Ｎ回目、Ｎ+１回目、Ｎ+２回目、Ｎ＋３回目の時のデバイス１０乃至４０の緊急ビット、調停ビットと調停結果を示した表である。
【発明を実施するための形態】
【００１２】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１３】
［第１の実施の形態］
一般に、Ｉ２Ｃ通信において、あるデータのやり取りを行う場合、１つのデバイスが信号線（バスとも言う）を占有し、クロックと同時に送信先デバイスのアドレス（スレーブアドレス）をデータとして送信する。次に、該当する送信先デバイスがそのスレーブアドレスを受信し、自身のアドレスと一致した場合のみＡＣＫ（肯定応答）を返す。そのスレーブアドレスを受信する他のデバイスは、自身とは無関係の通信と判断して以後送られてくるデータを無視する。以上により目的のデバイスとの１：１のデータ通信が行われる。この時、バスを占有してリードまたはライト命令を行うデバイスをマスタデバイス、その通信相手となるデバイスをスレーブデバイスと呼ぶ。
【００１４】
Ｉ２Ｃ通信システムは、複数のデバイスで１つの信号線を信号（データ）の転送に使用するため、全てのデバイスはＬｏｗ駆動のみ行う。すなわち、デバイスが「０」を送信したい場合、そのデバイスは信号をＬｏｗに駆動する。しかし、信号線は外部抵抗でプルアップされているので、駆動していない場合、信号は自動的にＨｉｇｈに遷移する。このため、デバイスが「１」を送信したい場合、そのデバイスはＨｉｇｈ駆動を行わない。一方のデバイスが「０」、他方のデバイスが「１」を送信した場合、Ｌｏｗ駆動を行っている「０」を送信するデバイスが優先されてマスタデバイスとなり、信号をスレーブデバイスに出力する。
【００１５】
Ｉ２Ｃ通信システムにおいて２つ以上のマスタが存在する場合、一度にデータ送信できるマスタは１デバイスであるため、通信の衝突が発生する。その場合、Ｉ２Ｃバスに送信するスレーブアドレス（通常７ビット）による調停が行われる。調停において、一方のデバイスが「０」を送信している際に、他方のデバイスが「１」を送信すると、「１」を送信するデバイス側は調停に負けたと認識してエラー終了し、「０」を出力するデバイス側がマスタデバイスとして通信を継続する。
【００１６】
たとえば、スレーブアドレスが「００１００１０」の第１のデバイスと、「００１０００１」の第２のデバイスが同時に互いに通信を行うケースを想定する。この場合、６ビット目に第１のデバイスが「０」を送信するタイミングで、第２のデバイスは「１」を送信する。この結果、６ビット目で第２のデバイスは、「１」を送信しているにも関わらず、第１のデバイスから「０」が出力されているという状況を認識する。この時、第２のデバイスは調停に負けたと判断し、以降のデータ送信を中止する。このようにして第１のデバイスが調停の結果、通信を継続する。
【００１７】
図１は、本発明の第１の実施の形態におけるＩ２Ｃバス通信システム１０００の構成の一例を示す回路図である。図１を参照すると、Ｉ２Ｃバス通信システム１０００において、デバイス１０、２０、３０、４０、５０が、クロックライン（ＳＣＬ）、データライン（ＳＤＡ）で接続され、それぞれプルアップ抵抗Ｒｐを介して電源電圧Ｖｄｄに接続される。クロックライン（ＳＣＬ）とデータライン（ＳＤＡ）は、Ｉ２Ｃバスである。なお、本実施形態ではデバイスの数を５台としているが、４台以下もしくは６台以上接続していても構わない。
【００１８】
Ｉ２Ｃバス通信システム１０００は、マルチマスタシステムである。すなわち、デバイス１０、２０、３０、４０、５０は、全てＩ２Ｃバス通信におけるマスタとしてデータを転送することができるものとする。
【００１９】
また、図２は、本発明の第１の実施の形態におけるデバイス１０の構成を示すブロック図である。なお、第１の実施の形態におけるデバイス２０、３０、４０、５０の構成も同様とする。図２を参照すると、デバイス１０は、通信部１００と、制御部１１０と、上位ビット演算部１２０と、上位ビット記憶部１３０と、下位ビット記憶部１４０と、を備える。上位ビット記憶部１３０と下位ビット記憶部１４０は、総称して記憶部とも言う。これら記憶部の構成は、図２のように２つに分離した構成に限定されない。本発明の実施の形態の最小構成として、上位ビット演算部１２０は、制御部１１０に含まれる構成、すなわち、制御部の一部の構成となる。図２では、調停ビットである上位ビットを演算する機能として、制御部１１０から上位ビット演算部１２０を機能的に分離している。
【００２０】
次に、第１の実施の形態におけるデバイス１０の構成について説明する。
【００２１】
通信部１００は、他のデバイスと、ＳＣＬ上におけるクロック信号、ＳＤＡ上におけるデータ信号の送受信を行う。データ及びＩ２Ｃバス通信におけるスレーブアドレスは、データ信号で送受信される。また、通信部１００は、緊急信号を受信してもよい。
【００２２】
制御部１１０は、Ｉ２Ｃバス通信における他のデバイスとの通信を制御する。また、通信部１００を通じてデータライン（ＳＤＡ）の信号レベルを確認する。本実施の形態はＩ２Ｃバス通信の通信優先順位の制御に関する技術であり、優先順位が決定した後の通信の制御の説明は省略する。なお、本実施の形態では、マスタデバイスとして通信する際に出力するスレーブアドレスは、上位ビット記憶部１２０の上位ビットと下位ビット記憶部１４０の下位ビットを、制御部１１０が統合してスレーブアドレスとする。
【００２３】
上位ビット記憶部１２０は、スレーブアドレスのうち調停ビットに割り振ったビットを記憶する。なお、調停ビットのビット数は、制御部１１０が任意に設定できるようにしてもよい。また、上位ビットが更に、緊急ビットと調停ビットの二つに分割される場合、上位ビット記憶部１２０は、緊急ビットと調停ビットの両方を記憶する。
【００２４】
上位ビット演算部１３０は、上位ビット記憶部１２０に記憶された調停ビットに対し、所定の演算を行う。例えば、Ｉ２Ｃバス通信では通信の最初にマスタデバイスがスレーブアドレスを出力する。マスタデバイス同士のスレーブアドレス出力の衝突が発生し、調停に失敗し通信できなかった場合、調停の失敗を確認したマスタデバイスの上位ビット演算部１３０は、調停ビットの値を所定数、例えば、「１」減算する（調停ビットが「１１０」だった場合、「１０１」とする）処理を行う。これにより、優先度が上昇する。また、別の一例では、マスタデバイス同士のスレーブアドレス出力の衝突が発生し、調停に成功し通信できた場合、そのマスタデバイスの上位ビット演算部１３０は、調停ビットをすべて「１」とし、最大の値とする（調停ビットが「１０１」で調停に成功した場合、「１１１」とする）処理を行う。これにより、優先度が最小となる。なお、調停に成功した場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にすれば良い。
【００２５】
更に別の一例では、上位ビットが緊急ビットと調停ビットの二つに分割される場合、緊急と判断される場合（具体的には緊急と判断した管理者が図示しない入力部を使用して、あるいは緊急と判断したセンサの発報に基づいて、緊急信号が通信部１００通じて制御部１１０に入力された場合など）、緊急を判断したマスタデバイスの上位ビット演算部１３０は、緊急ビットの値を「１」から「０」に減算する。また、緊急と判断されなくなった場合（具体的には緊急と判断される場合と同様である）、そのマスタデバイスの上位ビット演算部１３０は、緊急ビットの値を「０」から「１」に加算する。なお、上位ビット演算部１３０の動作は全て制御部１１０が実施してもよく、その場合、上位ビット演算部１３０は不要としてもよい。
【００２６】
下位ビット記憶部１４０は、デバイス１０がマスタデバイスとして通信を行う相手（スレーブデバイス）のアドレスを記憶する。なお、直接管理者が図示しない入力部を使用して、制御部１１０に対してスレーブデバイスを指定する場合は、下位ビット記憶部１４０は不要としてもよい。
【００２７】
図３は、本発明の第１の実施の形態におけるデバイス１０を素子およびデバイスで実現したハードウェア構成を示す図である。図３に示されるように、デバイス１０は、通信インタフェース１１、制御チップ１２、記憶素子１３を含む。
【００２８】
通信インタフェース１１は、周辺デバイスとのＩ２Ｃバス通信のための端末インタフェースを構成する。第１の実施の形態においては通信部１００として機能する。
【００２９】
制御チップ１２は、本発明の第１の実施の形態に係るデバイス１０の、少なくとも通信の優先順位を制御するＩ２Ｃ通信用制御デバイスである。また、制御チップ１２は、１つに限らず２つ以上備えていてもよい。第１の実施の形態において、制御チップ１２は、制御部１１０および上位ビット演算部１３０として機能する。
【００３０】
記憶素子１３は、例えばトランジスタなどで実現され、ビット情報の記録のために用いられる。第１の実施の形態においては上位ビット記憶部１２０または下位ビット記憶部１４０として機能する。また、記憶素子は、Ｉ２Ｃ通信用制御デバイスである制御チップに処理を実行させるプログラムを記憶しても良い。
【００３１】
以上のように構成されたＩ２Ｃバス通信システム１０００の動作について、図４のフローチャートを参照して説明する。
【００３２】
図４は、第１の実施の形態におけるＩ２Ｃバス通信システム１０００での各デバイスの通信の優先順位の制御の動作の概要を示すフローチャートである。ここでは、デバイス１０の動作について説明するが、他のデバイスでも同様に動作可能である。なお、通信の優先順位の制御に関与しない処理、例えばクロックライン（ＳＣＬ）におけるクロック信号とデータライン（ＳＤＡ）におけるデータ信号の転送処理に関しては省略する。
【００３３】
図４に示すように、まず、デバイス１０の制御部１１０は、通信部１００を通じて、他のデバイス（デバイス２０、３０、４０、５０）からの調停ビットとスレーブアドレスまたはデータの受信中であるかどうかを確認する（ステップＳ１０１）。もし受信中であれば（ステップＳ１０１でＹＥＳ）、制御部１１０は、他のデバイスからストップコンディションを検知するまで、すなわち他のデバイスの通信が終了するまで、通信を待機する（ステップＳ１０２）。制御部１１０は、ストップコンディションを検知すると、ステップ１０３に移行する。
【００３４】
他のデバイスからの調停ビットとスレーブアドレスの受信中またはデータの受信中でなければ（ステップＳ１０１でＮＯ）、次に、デバイス１０の制御部１１０は、通信部１００を介し、Ｉ２Ｃバスに接続されている全てのデバイスに対して、スタートコンディションを出力し（ステップＳ１０３）、通信の開始を宣言する。
【００３５】
ここで、まず、自然数の変数Ｎを定義し、初期値はＮ＝１とする（ステップＳ１０４）。制御部１１０は、上位ビット記憶部１２０に記憶される調停ビットと、下位ビット記憶部１４０に記憶されるスレーブアドレスを組み合わせ、上からＮビット目の値を、データラインを通じて全てのデバイスに対して出力する（ステップＳ１０５）。
【００３６】
次に、制御部１１０は、ステップＳ１０５にて出力したビットの値と、データラインの信号レベル（「１」に対応するＨｉｇｈ（高）もしくは「０」に対応するＬｏｗ（低））とが一致しているかどうか確認する（ステップＳ１０６）。もし一致していなければ（ステップＳ１０６でＮＯ）、デバイス１０は、少なくとも１つの他のデバイスと調停中で、かつデバイス１０は調停負けと判断する。制御部１１０は、上位ビット演算部１３０に指示し、上位ビット演算部１３０はデバイス１０の調停ビットの値を「１」減算する（ステップＳ１０７）。そして、制御部１１０は、ステップＳ１０２に戻ってストップコンディションを検知するまで待機する。
【００３７】
ステップＳ１０５にて出力したビットの値と、データラインの信号レベルとが一致している場合は（ステップＳ１０６でＹＥＳ）、デバイス１０は調停中かつ調停負けしていないか、もしくは調停が起きていないと判断する。
【００３８】
次に、制御部１１０は、Ｎ＝調停ビット＋スレーブアドレスのビット数であるかを確認する（ステップＳ１０８）。言い換えると、ステップＳ１０５において、調停ビットとスレーブアドレスの全てのビットの値を出力したかどうかである。Ｎ＝調停ビット＋スレーブアドレスのビット数でなければ（ステップＳ１０８でＮＯ）、Ｎ＝Ｎ＋１として（ステップＳ１０９）、再度ステップＳ１０５に戻り、制御部１１０は組み合わせた調停ビットとスレーブアドレスの、上からＮビット目の値を、通信部１００を経由してデータラインに出力する。
【００３９】
このように、ステップＳ１０５〜Ｓ１０９にて、データラインの信号レベルとの不一致が起こらない限り、通信部１００は組み合わせた調停ビットとスレーブアドレスのビットの値を上から順番に送信する。
【００４０】
ステップＳ１０８にてＮ＝調停ビット＋スレーブアドレスのビット数であった場合、つまり、調停ビットとスレーブアドレスの全てのビットの値を出力し終わった場合、デバイス１０の制御部１１０は調停負けしなかった、もしくは調停が起きなかったと判断し、スレーブアドレスに該当するスレーブデバイスに対してデータの通信を行う（ステップＳ１１０）。終了後、制御部１１０は、ストップコンディションを出力する（ステップＳ１１１）。
【００４１】
ここで、デバイス１０は通信成功しているので、制御部１１０は上位ビット演算部１３０に指示し、上位ビット演算部１３０はデバイス１０の調停ビットの値を、他のデバイスの調停ビットの値の中で最大の値に、すなわち、たとえば全て「１」とする（ステップＳ１１２）。
【００４２】
最後に、制御部１１０は通信を終了する（ステップＳ１１３）。
【００４３】
以上で、デバイス１０は、通信の優先順位の制御の動作を終了する。
【００４４】
次に、本発明の第１の実施の形態の効果について説明する。
【００４５】
上述した本実施形態におけるＩ２Ｃバス通信システム１０００は、各デバイスの通信機会を平等に割り振ることができる。
【００４６】
その理由は、以下のような構成を含むからである。即ち、第１にデバイス１０の上位ビット演算部１３０は、デバイス１０の調停負けの場合、調停ビットの値を「１」減算する。第２に、上位ビット演算部１３０は、デバイス１０の調停勝ちの場合、調停ビットの値を全て「１」とする。Ｉ２Ｃバス通信における調停とは、制御部１１０において調停ビットの最上位ビットから順番に比較し、「０」が先に出てきた方の勝ち、すなわち、調停ビットの値が小さい方の勝ちであると判断することである。つまり、調停負けの場合、上位ビット演算部１３０は、調停ビットの値を所定数（たとえば、「１」）減算することで、次の調停で調停勝ちになる可能性が高くなり（優先度が上昇し）、逆に調停勝ちの場合、調停ビットの値を、他のデバイスの調停ビットの値の中で最大の値に、たとえば全て「１」にすることで、調停ビットの値がデバイスの中で最大となり、次の調停で調停勝ちになる可能性が最も低くなる（優先度が最小になる）。これにより、Ｉ２Ｃバス通信システム１０００は、各デバイスについて調停負けが発生する度に調停勝ちする可能性が高くなるので、各デバイスの通信機会を平等に割り振ることができるという効果が得られる。
【００４７】
例として、デバイス１０、２０、３０、４０が通信機会ごとに必ず全て同時にマスタデバイスとして通信を試みる場合を考える。それぞれのデバイスの通信先すなわちスレーブデバイスについては通信の優先順位の制御に影響を与えないので省略する。
【００４８】
図５は通信回数Ｎ（Ｎ：１以上の整数）回目、Ｎ+１回目、Ｎ+２回目、Ｎ＋３回目の時のデバイス１０、２０、３０、４０の調停ビットと調停結果を示した表である。なお、調停ビットを上位３ビットとする。
【００４９】
Ｎ回目の通信における調停では、上位２ビット目の比較でデバイス１０とデバイス２０が他のデバイス３０、４０に勝ち、さらに上位３ビット目の比較でデバイス１０がデバイス２０に勝つ。この調停結果に基づいて、Ｎ回目の通信ではデバイス１０がマスタデバイスとなり通信を行う。また、それぞれのデバイスの調停ビットは、通信を行ったデバイス１０の調停ビットはステップＳ１１３の処理から全て「１」すなわち「１１１」とし、他のデバイスの調停ビットはステップＳ１１２の処理から全て「１」減算する。例えばデバイス２０は調停ビット「１０１」から「１」減算し調停ビット「１００」とする。
【００５０】
Ｎ＋１回目の通信における調停では、上位２ビット目の比較でデバイス２０とデバイス３０が勝ち、さらに上位３ビット目の比較でデバイス２０が勝つ。この調停結果に基づいて、Ｎ＋１回目の通信ではデバイス２０がマスタデバイスとなり通信を行う。また、それぞれのデバイスの調停ビットは、通信を行ったデバイス２０の調停ビットはステップＳ１１３の処理から全て「１」すなわち「１１１」とし、他のデバイスの調停ビットはステップＳ１１２の処理から全て「１」減算する。
【００５１】
図５を参照すると、このようにしてＮ＋２回目の通信はデバイス３０がマスタデバイスとなり、Ｎ＋３回目の通信はデバイス４０がマスタデバイスとなり通信を行う。なお、図５には記載していないが、Ｎ＋４回目の通信ではデバイス１０がＮ回目に続きマスタデバイスとなることが予想できる。このようにして、本実施形態により全てのデバイスに平等に通信機会が割り振られることが容易に理解できる。
【００５２】
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【００５３】
図６は、本発明の第２の実施形態に係るデバイス６０の構成を示すブロック図である。
【００５４】
図６を参照すると、本実施形態におけるデバイス６０は、第１の実施形態のそれと比べて、センサ１５０を新たに備える。また、制御部１１１と上位ビット記憶部１２１は、第１の実施形態のそれと比べて、機能が一部異なる。
【００５５】
センサ１５０は、緊急と判断した場合、緊急信号を制御部１１１に発報する。図６ではセンサ１５０はデバイス６０の構成の一つとしているが、デバイス６０の外部にセンサ１５０を設けてもよい。その場合は、通信部１００を通じて制御部１１１に発報する。
【００５６】
上位ビット記憶部１２１は、スレーブアドレスのうち、少なくとも最上位の１ビット（最上位ビット）と定義される緊急ビットと調停ビットに割り振ったビットを記憶する。緊急ビットは、通常時は「１」に設定される。なお、第１の実施形態と同様、調停ビットを何ビットにするかは、管理者が任意に運用してよい。
【００５７】
制御部１１１は、第１の実施形態での制御部１１０の機能に加え、緊急信号をセンサ１５０から受信し、制御部１１１がそれを検出した場合、または緊急と判断した管理者が図示しない入力部を使用して入力した緊急信号を受信し、制御部１１１がそれを検出した場合、制御部１１１の機能の一部でもある上位ビット演算部１３０は、上位ビット記憶部１２１の緊急ビットの値を「１」から「０」に減算する。また、緊急と判断されなくなった場合（具体的な判断方法は、緊急と判断される場合と同様である）、上位ビット演算部１３０は、上位ビット記憶部１２１の緊急ビットの値を「０」から「１」に加算する。
【００５８】
次に、デバイス６０と同じ構成のデバイスで構成されたＩ２Ｃバス通信システム１０００の、緊急ビットを含んだ通信の優先順位の制御の動作について説明する。
【００５９】
第１の実施形態の通信の優先順位の制御の動作中、緊急と判断される事象が発生した場合、緊急時に優先して通信する必要のあるデバイス（ここではデバイス１０とする）の制御部１１１は、緊急信号を受信する。
【００６０】
次に、制御部１１１は、上位ビット記憶部１２１の緊急ビットの値を「１」から「０」に減算する。
【００６１】
ここで調停が発生した場合（第１の実施形態のステップＳ１０４でＹＥＳ、調停相手のデバイスはデバイス２０とする）、制御部１１１は、上位ビット記憶部１２０に記憶される緊急ビットと調停ビットと、下位ビット記憶部１４０に記憶されるスレーブアドレスを更に出力し、同時に、デバイス２０の出力する緊急ビットと調停ビットとスレーブアドレスを受信する（ステップＳ１０９、Ｓ１１０）。
【００６２】
次に、制御部１１０は、デバイス１０とデバイス２０の上位ビットの最上位ビットである緊急ビットを比較する（ステップＳ１１１）。第１の実施形態では上位ビットは全て調停ビットのため、第１の実施形態におけるステップＳ１１１の調停ビットを上位ビットから比較する処理と、本実施形態における上位ビットの最上位ビットである緊急ビットを比較する処理は、全く同じ処理である。
【００６３】
ここで、デバイス１０の緊急ビットは「０」、デバイス２０の緊急ビットは「１」のため、必ずデバイス１０の調停勝ちとなる。これによりデバイス１０は緊急ではないデバイスとの調停には必ず勝利する。
【００６４】
なお、緊急と判断されなくなった場合は、デバイス１０の制御部１１１は、上位ビット記憶部１２１の緊急ビットの値を「０」から「１」に加算する。これにより、緊急時以外においてＩ２Ｃバス通信システム１０００は、通常通り（第１の実施形態）の通信の優先順位の制御を実行する。
【００６５】
次に、本発明の第２の実施の形態の効果について説明する。
【００６６】
上述した本実施形態におけるＩ２Ｃバス通信システム１０００は、緊急時に優先して通信する必要のあるデバイスは優先的に通信機会を得ることができる。
【００６７】
その理由は、以下のような構成を含むからである。即ち、第１に緊急と判断される事象が発生した場合、緊急時に優先して通信する必要のあるデバイス（デバイス１０とする）の制御部１１１は緊急ビットの値を所定数減算（たとえば、「１」から「０」に減算）する。第２に、デバイス１０は緊急時、緊急ではないデバイスとの調停には必ず勝利する。これにより、Ｉ２Ｃバス通信システム１０００は、デバイス１０を緊急時必ず通信させることができるので、緊急時に優先して通信する必要のあるデバイスは優先的に通信機会を得ることができるという効果が得られる。
【００６８】
第１の実施形態同様、例として、デバイス１０、２０、３０、４０が通信機会ごとに必ず全て同時にマスタデバイスとして通信を試みる場合を考える。
【００６９】
図７は通信回数Ｎ回目、Ｎ+１回目、Ｎ+２回目、Ｎ＋３回目の時のデバイス１０、２０、３０、４０の緊急ビット、調停ビットと調停結果を示した表である。なお、緊急ビットを最上位の１ビット、調停ビットを緊急ビットの下の上位３ビットとする。また、Ｎ＋１回目の通信とＮ＋２回目の通信間において、障害発生による緊急信号をデバイス１０に発報し、デバイス１０の緊急ビットを「０」にする。また、Ｎ＋２回目の通信とＮ＋３回目の通信間において、緊急と判断されなくなり、デバイス１０の緊急ビットを「１」にする処理を行うこととする。
【００７０】
Ｎ回目およびＮ＋１回目の通信における調停では、第１の実施形態同様、Ｎ回目にてデバイス１０が、Ｎ＋１回目にてデバイス２０が調停勝ちとなり、この調停結果に基づいて、Ｎ回目の通信ではデバイス１０が、Ｎ＋１回目の通信ではデバイス２０がマスタデバイスとなり通信を行う。
【００７１】
Ｎ＋２回目の通信においては、調停ビットの比較を行うことなく、緊急ビットが「０」であるデバイス１０が最上位ビットである緊急ビットの比較で調停勝ちとなり、マスタデバイスとして通信を行う。
【００７２】
Ｎ＋３回目の通信においては、全てのデバイスの緊急ビットが「１」のため、Ｎ回目、Ｎ＋１回目の通信と同様、調停ビットの比較でデバイス３０が調停勝ちとなり、マスタデバイスとして通信を行う。
【００７３】
このようにして、本実施形態により緊急時は優先して通信する必要のあるデバイスは優先的に通信機会を得ることが容易に理解できる。
【００７４】
以上説明した、本発明の各実施形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【００７５】
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【００７６】
たとえば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【００７７】
さらに、以上説明した各実施形態では、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【００７８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７９】
（付記１）他のデバイスと、Ｉ２Ｃバス通信のためのバスを介して送受信を行う通信部と、スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、前記通信部を通じてＩ２Ｃバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手（スレーブデバイス）のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部とを含むＩ２Ｃバス通信のためのデバイス。
【００８０】
（付記２）前記デバイスが調停に失敗し通信できなかった場合、前記制御部が、前記記憶部に記憶される調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項１記載のＩ２Ｃバス通信のためのデバイス。
【００８１】
（付記３）前記記憶部が、少なくとも最上位ビットとして定義され通常時は「１」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項１または２に記載のＩ２Ｃバス通信のためのデバイス。
【００８２】
（付記４）前記制御部は、センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項３に記載のＩ２Ｃバス通信のためのデバイス。
【００８３】
（付記５）複数の請求項１ないし４のいずれか１つに記載のＩ２Ｃバス通信システムデバイスを含むマルチマスタシステムのＩ２Ｃバス通信システム。
【００８４】
（付記６）デバイスの記憶部に記憶される調停ビットと、通信を行う相手（スレーブデバイス）のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行うマルチマスタシステムのＩ２Ｃバス通信方法。
【００８５】
（付記７）前記制御部が、前記デバイスが調停に失敗し通信できなかった場合、前記上位ビット記憶に記憶される前記調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項６記載のＩ２Ｃバス通信方法。
【００８６】
（付記８）前記記憶部が、少なくとも最上位ビットとして定義され通常時は「１」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項６または７に記載のＩ２Ｃバス通信システムデバイス。
【００８７】
（付記９）センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項８に記載のＩ２Ｃバス通信方法。
【００８８】
（付記１０）デバイスの記憶部に記憶される調停ビットと、通信を行う相手（スレーブデバイス）のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行う処理をコンピュータに実行させるプログラム。
【００８９】
（付記１１）前記制御部が、前記デバイスが調停に失敗し通信できなかった場合、前記上位ビット記憶に記憶される前記調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする処理をコンピュータに実行させる請求項１０記載のプログラム。
【００９０】
（付記１２）前記記憶部が、少なくとも最上位ビットとして定義され通常時は「１」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する処理をコンピュータに実行させる請求項１０または１１に記載のプログラム。
【００９１】
（付記１３）センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する処理をコンピュータに実行させる請求項１２に記載のプログラム。
【符号の説明】
【００９２】
１０、２０、３０、４０、５０、６０    デバイス
１１    通信インタフェース
１２    制御チップ
１３    記憶素子
１００    通信部
１１０、１１１    制御部
１２０、１２１    上位ビット記憶部
１３０    上位ビット演算部
１４０    下位ビット記憶部
１５０    センサ
【図１】
2014186500.tif 000003
【図２】
2014186500.tif 000004
【図３】
2014186500.tif 000005
【図４】
2014186500.tif 000006
【図５】
2014186500.tif 000007
【図６】
2014186500.tif 000008
【図７】
2014186500.tif 000009