JP2014186500A - I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法 - Google Patents

I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法 Download PDF

Info

Publication number
JP2014186500A
JP2014186500A JP2013060542A JP2013060542A JP2014186500A JP 2014186500 A JP2014186500 A JP 2014186500A JP 2013060542 A JP2013060542 A JP 2013060542A JP 2013060542 A JP2013060542 A JP 2013060542A JP 2014186500 A JP2014186500 A JP 2014186500A
Authority
JP
Japan
Prior art keywords
bit
arbitration
communication
control unit
bus communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013060542A
Other languages
English (en)
Inventor
Yoshiro Imai
義朗 今井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013060542A priority Critical patent/JP2014186500A/ja
Publication of JP2014186500A publication Critical patent/JP2014186500A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 不要な設備を導入せずに通信の優先順位を制御することができるI2Cバス通信のためのデバイスを提供する。
【解決手段】 他のデバイスと、I2Cバス通信のためのバスを介して送受信を行う通信部と、スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、前記通信部を通じてI2Cバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手(スレーブデバイス)のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部とを含むI2Cバス通信のためのデバイス。
【選択図】 図2

Description

本発明は、I2C(Inter−Integrated Circuit)バス通信システムデバイス、I2Cバス通信システム、及びその通信方法に関する。
I2Cバス通信とは、抵抗でプルアップされたクロックとデータの2本の信号線だけで通信バスを構成する通信形態である(特許文献1)。I2C通信において、バスに接続される複数のデバイスは、マスタ転送またはスレーブ転送機能を有する。マスタは個別に決められたスレーブのアドレスを指定してスレーブを選択してからそのスレーブと通信する。I2Cバス通信は、使用する信号線の数が少ないことが特徴で、例えばセンサからの読み取りのため、あるいは冗長化された制御系における情報共有のために利用される。
このようなI2Cバス通信において、バスの使用効率を高めるため、通信の優先順位を制御するI2Cバス通信システムが知られている。このI2Cバス通信システムは、複数のマスタ間での通信の優先順位が制御される。
通信の優先順位を制御するI2Cバス通信システムの一例が特許文献2に記載されている。特許文献2に記載されたI2Cバス通信システムは、通信を制御するコントローラが、バス使用を許可するデバイスにトークンを発行し、トークンを受信したデバイスがマスタとしてデータを転送する。
米国特許第4689740号明細書 特開平04−332065号公報
しかしながら、上述した特許文献2に記載された技術は、複数のデバイスの他に、トークンを発信するコントローラを接続する必要がある。また、トークンの転送とデータの転送を区別するために、データライン、クロックライン以外に制御ラインを設ける必要がある。もしくは全てのデバイス(マイクロプロセッサ)が常にバス上を流れるデータを監視する必要がある。したがって、特許文献2に記載された技術は、本来のI2Cバス通信に不要な設備を導入する必要があり、コストがかかるという問題点がある。
本発明の目的の一例は、上述した問題点を解決でき、通信の優先順位を制御できるI2Cバス通信システム、及び通信方法を提供することにある。
本発明の一形態におけるI2Cバス通信のためのデバイスは、他のデバイスと、I2Cバス通信のためのバスを介して送受信を行う通信部と、スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、前記通信部を通じてI2Cバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手(スレーブデバイス)のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部を備える。
本発明の一形態におけるI2Cバス通信方法は、デバイスの記憶部に記憶される調停ビットと、通信を行う相手(スレーブデバイス)のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行う。
本発明によれば、不要な設備を導入せずに通信の優先順位を制御することができるという効果が得られる。
図1は、本発明の第1の実施の形態におけるI2Cバス通信システム1000の構成の一例を示す回路図である。 図2は、第1の実施の形態におけるデバイス10の構成を示すブロック図である。 図3は、第1の実施の形態におけるデバイス10を素子およびデバイスで実現したハードウェア構成を示す図である。 図4は、第1の実施の形態におけるI2Cバス通信システム1000での各デバイスの通信の優先順位の制御の動作の概要を示すフローチャートである。 図5は、第1の実施の形態における通信回数N回目、N+1回目、N+2回目、N+3回目の時のデバイス10乃至40の調停ビットと調停結果を示した表である。 図6は、第2の実施の形態におけるデバイス60の構成を示すブロック図である。 図7は、第2の実施の形態における通信回数N回目、N+1回目、N+2回目、N+3回目の時のデバイス10乃至40の緊急ビット、調停ビットと調停結果を示した表である。
次に、本発明の実施形態について図面を参照して詳細に説明する。
[第1の実施の形態]
一般に、I2C通信において、あるデータのやり取りを行う場合、1つのデバイスが信号線(バスとも言う)を占有し、クロックと同時に送信先デバイスのアドレス(スレーブアドレス)をデータとして送信する。次に、該当する送信先デバイスがそのスレーブアドレスを受信し、自身のアドレスと一致した場合のみACK(肯定応答)を返す。そのスレーブアドレスを受信する他のデバイスは、自身とは無関係の通信と判断して以後送られてくるデータを無視する。以上により目的のデバイスとの1:1のデータ通信が行われる。この時、バスを占有してリードまたはライト命令を行うデバイスをマスタデバイス、その通信相手となるデバイスをスレーブデバイスと呼ぶ。
I2C通信システムは、複数のデバイスで1つの信号線を信号(データ)の転送に使用するため、全てのデバイスはLow駆動のみ行う。すなわち、デバイスが「0」を送信したい場合、そのデバイスは信号をLowに駆動する。しかし、信号線は外部抵抗でプルアップされているので、駆動していない場合、信号は自動的にHighに遷移する。このため、デバイスが「1」を送信したい場合、そのデバイスはHigh駆動を行わない。一方のデバイスが「0」、他方のデバイスが「1」を送信した場合、Low駆動を行っている「0」を送信するデバイスが優先されてマスタデバイスとなり、信号をスレーブデバイスに出力する。
I2C通信システムにおいて2つ以上のマスタが存在する場合、一度にデータ送信できるマスタは1デバイスであるため、通信の衝突が発生する。その場合、I2Cバスに送信するスレーブアドレス(通常7ビット)による調停が行われる。調停において、一方のデバイスが「0」を送信している際に、他方のデバイスが「1」を送信すると、「1」を送信するデバイス側は調停に負けたと認識してエラー終了し、「0」を出力するデバイス側がマスタデバイスとして通信を継続する。
たとえば、スレーブアドレスが「0010010」の第1のデバイスと、「0010001」の第2のデバイスが同時に互いに通信を行うケースを想定する。この場合、6ビット目に第1のデバイスが「0」を送信するタイミングで、第2のデバイスは「1」を送信する。この結果、6ビット目で第2のデバイスは、「1」を送信しているにも関わらず、第1のデバイスから「0」が出力されているという状況を認識する。この時、第2のデバイスは調停に負けたと判断し、以降のデータ送信を中止する。このようにして第1のデバイスが調停の結果、通信を継続する。
図1は、本発明の第1の実施の形態におけるI2Cバス通信システム1000の構成の一例を示す回路図である。図1を参照すると、I2Cバス通信システム1000において、デバイス10、20、30、40、50が、クロックライン(SCL)、データライン(SDA)で接続され、それぞれプルアップ抵抗Rpを介して電源電圧Vddに接続される。クロックライン(SCL)とデータライン(SDA)は、I2Cバスである。なお、本実施形態ではデバイスの数を5台としているが、4台以下もしくは6台以上接続していても構わない。
I2Cバス通信システム1000は、マルチマスタシステムである。すなわち、デバイス10、20、30、40、50は、全てI2Cバス通信におけるマスタとしてデータを転送することができるものとする。
また、図2は、本発明の第1の実施の形態におけるデバイス10の構成を示すブロック図である。なお、第1の実施の形態におけるデバイス20、30、40、50の構成も同様とする。図2を参照すると、デバイス10は、通信部100と、制御部110と、上位ビット演算部120と、上位ビット記憶部130と、下位ビット記憶部140と、を備える。上位ビット記憶部130と下位ビット記憶部140は、総称して記憶部とも言う。これら記憶部の構成は、図2のように2つに分離した構成に限定されない。本発明の実施の形態の最小構成として、上位ビット演算部120は、制御部110に含まれる構成、すなわち、制御部の一部の構成となる。図2では、調停ビットである上位ビットを演算する機能として、制御部110から上位ビット演算部120を機能的に分離している。
次に、第1の実施の形態におけるデバイス10の構成について説明する。
通信部100は、他のデバイスと、SCL上におけるクロック信号、SDA上におけるデータ信号の送受信を行う。データ及びI2Cバス通信におけるスレーブアドレスは、データ信号で送受信される。また、通信部100は、緊急信号を受信してもよい。
制御部110は、I2Cバス通信における他のデバイスとの通信を制御する。また、通信部100を通じてデータライン(SDA)の信号レベルを確認する。本実施の形態はI2Cバス通信の通信優先順位の制御に関する技術であり、優先順位が決定した後の通信の制御の説明は省略する。なお、本実施の形態では、マスタデバイスとして通信する際に出力するスレーブアドレスは、上位ビット記憶部120の上位ビットと下位ビット記憶部140の下位ビットを、制御部110が統合してスレーブアドレスとする。
上位ビット記憶部120は、スレーブアドレスのうち調停ビットに割り振ったビットを記憶する。なお、調停ビットのビット数は、制御部110が任意に設定できるようにしてもよい。また、上位ビットが更に、緊急ビットと調停ビットの二つに分割される場合、上位ビット記憶部120は、緊急ビットと調停ビットの両方を記憶する。
上位ビット演算部130は、上位ビット記憶部120に記憶された調停ビットに対し、所定の演算を行う。例えば、I2Cバス通信では通信の最初にマスタデバイスがスレーブアドレスを出力する。マスタデバイス同士のスレーブアドレス出力の衝突が発生し、調停に失敗し通信できなかった場合、調停の失敗を確認したマスタデバイスの上位ビット演算部130は、調停ビットの値を所定数、例えば、「1」減算する(調停ビットが「110」だった場合、「101」とする)処理を行う。これにより、優先度が上昇する。また、別の一例では、マスタデバイス同士のスレーブアドレス出力の衝突が発生し、調停に成功し通信できた場合、そのマスタデバイスの上位ビット演算部130は、調停ビットをすべて「1」とし、最大の値とする(調停ビットが「101」で調停に成功した場合、「111」とする)処理を行う。これにより、優先度が最小となる。なお、調停に成功した場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にすれば良い。
更に別の一例では、上位ビットが緊急ビットと調停ビットの二つに分割される場合、緊急と判断される場合(具体的には緊急と判断した管理者が図示しない入力部を使用して、あるいは緊急と判断したセンサの発報に基づいて、緊急信号が通信部100通じて制御部110に入力された場合など)、緊急を判断したマスタデバイスの上位ビット演算部130は、緊急ビットの値を「1」から「0」に減算する。また、緊急と判断されなくなった場合(具体的には緊急と判断される場合と同様である)、そのマスタデバイスの上位ビット演算部130は、緊急ビットの値を「0」から「1」に加算する。なお、上位ビット演算部130の動作は全て制御部110が実施してもよく、その場合、上位ビット演算部130は不要としてもよい。
下位ビット記憶部140は、デバイス10がマスタデバイスとして通信を行う相手(スレーブデバイス)のアドレスを記憶する。なお、直接管理者が図示しない入力部を使用して、制御部110に対してスレーブデバイスを指定する場合は、下位ビット記憶部140は不要としてもよい。
図3は、本発明の第1の実施の形態におけるデバイス10を素子およびデバイスで実現したハードウェア構成を示す図である。図3に示されるように、デバイス10は、通信インタフェース11、制御チップ12、記憶素子13を含む。
通信インタフェース11は、周辺デバイスとのI2Cバス通信のための端末インタフェースを構成する。第1の実施の形態においては通信部100として機能する。
制御チップ12は、本発明の第1の実施の形態に係るデバイス10の、少なくとも通信の優先順位を制御するI2C通信用制御デバイスである。また、制御チップ12は、1つに限らず2つ以上備えていてもよい。第1の実施の形態において、制御チップ12は、制御部110および上位ビット演算部130として機能する。
記憶素子13は、例えばトランジスタなどで実現され、ビット情報の記録のために用いられる。第1の実施の形態においては上位ビット記憶部120または下位ビット記憶部140として機能する。また、記憶素子は、I2C通信用制御デバイスである制御チップに処理を実行させるプログラムを記憶しても良い。
以上のように構成されたI2Cバス通信システム1000の動作について、図4のフローチャートを参照して説明する。
図4は、第1の実施の形態におけるI2Cバス通信システム1000での各デバイスの通信の優先順位の制御の動作の概要を示すフローチャートである。ここでは、デバイス10の動作について説明するが、他のデバイスでも同様に動作可能である。なお、通信の優先順位の制御に関与しない処理、例えばクロックライン(SCL)におけるクロック信号とデータライン(SDA)におけるデータ信号の転送処理に関しては省略する。
図4に示すように、まず、デバイス10の制御部110は、通信部100を通じて、他のデバイス(デバイス20、30、40、50)からの調停ビットとスレーブアドレスまたはデータの受信中であるかどうかを確認する(ステップS101)。もし受信中であれば(ステップS101でYES)、制御部110は、他のデバイスからストップコンディションを検知するまで、すなわち他のデバイスの通信が終了するまで、通信を待機する(ステップS102)。制御部110は、ストップコンディションを検知すると、ステップ103に移行する。
他のデバイスからの調停ビットとスレーブアドレスの受信中またはデータの受信中でなければ(ステップS101でNO)、次に、デバイス10の制御部110は、通信部100を介し、I2Cバスに接続されている全てのデバイスに対して、スタートコンディションを出力し(ステップS103)、通信の開始を宣言する。
ここで、まず、自然数の変数Nを定義し、初期値はN=1とする(ステップS104)。制御部110は、上位ビット記憶部120に記憶される調停ビットと、下位ビット記憶部140に記憶されるスレーブアドレスを組み合わせ、上からNビット目の値を、データラインを通じて全てのデバイスに対して出力する(ステップS105)。
次に、制御部110は、ステップS105にて出力したビットの値と、データラインの信号レベル(「1」に対応するHigh(高)もしくは「0」に対応するLow(低))とが一致しているかどうか確認する(ステップS106)。もし一致していなければ(ステップS106でNO)、デバイス10は、少なくとも1つの他のデバイスと調停中で、かつデバイス10は調停負けと判断する。制御部110は、上位ビット演算部130に指示し、上位ビット演算部130はデバイス10の調停ビットの値を「1」減算する(ステップS107)。そして、制御部110は、ステップS102に戻ってストップコンディションを検知するまで待機する。
ステップS105にて出力したビットの値と、データラインの信号レベルとが一致している場合は(ステップS106でYES)、デバイス10は調停中かつ調停負けしていないか、もしくは調停が起きていないと判断する。
次に、制御部110は、N=調停ビット+スレーブアドレスのビット数であるかを確認する(ステップS108)。言い換えると、ステップS105において、調停ビットとスレーブアドレスの全てのビットの値を出力したかどうかである。N=調停ビット+スレーブアドレスのビット数でなければ(ステップS108でNO)、N=N+1として(ステップS109)、再度ステップS105に戻り、制御部110は組み合わせた調停ビットとスレーブアドレスの、上からNビット目の値を、通信部100を経由してデータラインに出力する。
このように、ステップS105〜S109にて、データラインの信号レベルとの不一致が起こらない限り、通信部100は組み合わせた調停ビットとスレーブアドレスのビットの値を上から順番に送信する。
ステップS108にてN=調停ビット+スレーブアドレスのビット数であった場合、つまり、調停ビットとスレーブアドレスの全てのビットの値を出力し終わった場合、デバイス10の制御部110は調停負けしなかった、もしくは調停が起きなかったと判断し、スレーブアドレスに該当するスレーブデバイスに対してデータの通信を行う(ステップS110)。終了後、制御部110は、ストップコンディションを出力する(ステップS111)。
ここで、デバイス10は通信成功しているので、制御部110は上位ビット演算部130に指示し、上位ビット演算部130はデバイス10の調停ビットの値を、他のデバイスの調停ビットの値の中で最大の値に、すなわち、たとえば全て「1」とする(ステップS112)。
最後に、制御部110は通信を終了する(ステップS113)。
以上で、デバイス10は、通信の優先順位の制御の動作を終了する。
次に、本発明の第1の実施の形態の効果について説明する。
上述した本実施形態におけるI2Cバス通信システム1000は、各デバイスの通信機会を平等に割り振ることができる。
その理由は、以下のような構成を含むからである。即ち、第1にデバイス10の上位ビット演算部130は、デバイス10の調停負けの場合、調停ビットの値を「1」減算する。第2に、上位ビット演算部130は、デバイス10の調停勝ちの場合、調停ビットの値を全て「1」とする。I2Cバス通信における調停とは、制御部110において調停ビットの最上位ビットから順番に比較し、「0」が先に出てきた方の勝ち、すなわち、調停ビットの値が小さい方の勝ちであると判断することである。つまり、調停負けの場合、上位ビット演算部130は、調停ビットの値を所定数(たとえば、「1」)減算することで、次の調停で調停勝ちになる可能性が高くなり(優先度が上昇し)、逆に調停勝ちの場合、調停ビットの値を、他のデバイスの調停ビットの値の中で最大の値に、たとえば全て「1」にすることで、調停ビットの値がデバイスの中で最大となり、次の調停で調停勝ちになる可能性が最も低くなる(優先度が最小になる)。これにより、I2Cバス通信システム1000は、各デバイスについて調停負けが発生する度に調停勝ちする可能性が高くなるので、各デバイスの通信機会を平等に割り振ることができるという効果が得られる。
例として、デバイス10、20、30、40が通信機会ごとに必ず全て同時にマスタデバイスとして通信を試みる場合を考える。それぞれのデバイスの通信先すなわちスレーブデバイスについては通信の優先順位の制御に影響を与えないので省略する。
図5は通信回数N(N:1以上の整数)回目、N+1回目、N+2回目、N+3回目の時のデバイス10、20、30、40の調停ビットと調停結果を示した表である。なお、調停ビットを上位3ビットとする。
N回目の通信における調停では、上位2ビット目の比較でデバイス10とデバイス20が他のデバイス30、40に勝ち、さらに上位3ビット目の比較でデバイス10がデバイス20に勝つ。この調停結果に基づいて、N回目の通信ではデバイス10がマスタデバイスとなり通信を行う。また、それぞれのデバイスの調停ビットは、通信を行ったデバイス10の調停ビットはステップS113の処理から全て「1」すなわち「111」とし、他のデバイスの調停ビットはステップS112の処理から全て「1」減算する。例えばデバイス20は調停ビット「101」から「1」減算し調停ビット「100」とする。
N+1回目の通信における調停では、上位2ビット目の比較でデバイス20とデバイス30が勝ち、さらに上位3ビット目の比較でデバイス20が勝つ。この調停結果に基づいて、N+1回目の通信ではデバイス20がマスタデバイスとなり通信を行う。また、それぞれのデバイスの調停ビットは、通信を行ったデバイス20の調停ビットはステップS113の処理から全て「1」すなわち「111」とし、他のデバイスの調停ビットはステップS112の処理から全て「1」減算する。
図5を参照すると、このようにしてN+2回目の通信はデバイス30がマスタデバイスとなり、N+3回目の通信はデバイス40がマスタデバイスとなり通信を行う。なお、図5には記載していないが、N+4回目の通信ではデバイス10がN回目に続きマスタデバイスとなることが予想できる。このようにして、本実施形態により全てのデバイスに平等に通信機会が割り振られることが容易に理解できる。
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
図6は、本発明の第2の実施形態に係るデバイス60の構成を示すブロック図である。
図6を参照すると、本実施形態におけるデバイス60は、第1の実施形態のそれと比べて、センサ150を新たに備える。また、制御部111と上位ビット記憶部121は、第1の実施形態のそれと比べて、機能が一部異なる。
センサ150は、緊急と判断した場合、緊急信号を制御部111に発報する。図6ではセンサ150はデバイス60の構成の一つとしているが、デバイス60の外部にセンサ150を設けてもよい。その場合は、通信部100を通じて制御部111に発報する。
上位ビット記憶部121は、スレーブアドレスのうち、少なくとも最上位の1ビット(最上位ビット)と定義される緊急ビットと調停ビットに割り振ったビットを記憶する。緊急ビットは、通常時は「1」に設定される。なお、第1の実施形態と同様、調停ビットを何ビットにするかは、管理者が任意に運用してよい。
制御部111は、第1の実施形態での制御部110の機能に加え、緊急信号をセンサ150から受信し、制御部111がそれを検出した場合、または緊急と判断した管理者が図示しない入力部を使用して入力した緊急信号を受信し、制御部111がそれを検出した場合、制御部111の機能の一部でもある上位ビット演算部130は、上位ビット記憶部121の緊急ビットの値を「1」から「0」に減算する。また、緊急と判断されなくなった場合(具体的な判断方法は、緊急と判断される場合と同様である)、上位ビット演算部130は、上位ビット記憶部121の緊急ビットの値を「0」から「1」に加算する。
次に、デバイス60と同じ構成のデバイスで構成されたI2Cバス通信システム1000の、緊急ビットを含んだ通信の優先順位の制御の動作について説明する。
第1の実施形態の通信の優先順位の制御の動作中、緊急と判断される事象が発生した場合、緊急時に優先して通信する必要のあるデバイス(ここではデバイス10とする)の制御部111は、緊急信号を受信する。
次に、制御部111は、上位ビット記憶部121の緊急ビットの値を「1」から「0」に減算する。
ここで調停が発生した場合(第1の実施形態のステップS104でYES、調停相手のデバイスはデバイス20とする)、制御部111は、上位ビット記憶部120に記憶される緊急ビットと調停ビットと、下位ビット記憶部140に記憶されるスレーブアドレスを更に出力し、同時に、デバイス20の出力する緊急ビットと調停ビットとスレーブアドレスを受信する(ステップS109、S110)。
次に、制御部110は、デバイス10とデバイス20の上位ビットの最上位ビットである緊急ビットを比較する(ステップS111)。第1の実施形態では上位ビットは全て調停ビットのため、第1の実施形態におけるステップS111の調停ビットを上位ビットから比較する処理と、本実施形態における上位ビットの最上位ビットである緊急ビットを比較する処理は、全く同じ処理である。
ここで、デバイス10の緊急ビットは「0」、デバイス20の緊急ビットは「1」のため、必ずデバイス10の調停勝ちとなる。これによりデバイス10は緊急ではないデバイスとの調停には必ず勝利する。
なお、緊急と判断されなくなった場合は、デバイス10の制御部111は、上位ビット記憶部121の緊急ビットの値を「0」から「1」に加算する。これにより、緊急時以外においてI2Cバス通信システム1000は、通常通り(第1の実施形態)の通信の優先順位の制御を実行する。
次に、本発明の第2の実施の形態の効果について説明する。
上述した本実施形態におけるI2Cバス通信システム1000は、緊急時に優先して通信する必要のあるデバイスは優先的に通信機会を得ることができる。
その理由は、以下のような構成を含むからである。即ち、第1に緊急と判断される事象が発生した場合、緊急時に優先して通信する必要のあるデバイス(デバイス10とする)の制御部111は緊急ビットの値を所定数減算(たとえば、「1」から「0」に減算)する。第2に、デバイス10は緊急時、緊急ではないデバイスとの調停には必ず勝利する。これにより、I2Cバス通信システム1000は、デバイス10を緊急時必ず通信させることができるので、緊急時に優先して通信する必要のあるデバイスは優先的に通信機会を得ることができるという効果が得られる。
第1の実施形態同様、例として、デバイス10、20、30、40が通信機会ごとに必ず全て同時にマスタデバイスとして通信を試みる場合を考える。
図7は通信回数N回目、N+1回目、N+2回目、N+3回目の時のデバイス10、20、30、40の緊急ビット、調停ビットと調停結果を示した表である。なお、緊急ビットを最上位の1ビット、調停ビットを緊急ビットの下の上位3ビットとする。また、N+1回目の通信とN+2回目の通信間において、障害発生による緊急信号をデバイス10に発報し、デバイス10の緊急ビットを「0」にする。また、N+2回目の通信とN+3回目の通信間において、緊急と判断されなくなり、デバイス10の緊急ビットを「1」にする処理を行うこととする。
N回目およびN+1回目の通信における調停では、第1の実施形態同様、N回目にてデバイス10が、N+1回目にてデバイス20が調停勝ちとなり、この調停結果に基づいて、N回目の通信ではデバイス10が、N+1回目の通信ではデバイス20がマスタデバイスとなり通信を行う。
N+2回目の通信においては、調停ビットの比較を行うことなく、緊急ビットが「0」であるデバイス10が最上位ビットである緊急ビットの比較で調停勝ちとなり、マスタデバイスとして通信を行う。
N+3回目の通信においては、全てのデバイスの緊急ビットが「1」のため、N回目、N+1回目の通信と同様、調停ビットの比較でデバイス30が調停勝ちとなり、マスタデバイスとして通信を行う。
このようにして、本実施形態により緊急時は優先して通信する必要のあるデバイスは優先的に通信機会を得ることが容易に理解できる。
以上説明した、本発明の各実施形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
たとえば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
さらに、以上説明した各実施形態では、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)他のデバイスと、I2Cバス通信のためのバスを介して送受信を行う通信部と、スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、前記通信部を通じてI2Cバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手(スレーブデバイス)のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部とを含むI2Cバス通信のためのデバイス。
(付記2)前記デバイスが調停に失敗し通信できなかった場合、前記制御部が、前記記憶部に記憶される調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項1記載のI2Cバス通信のためのデバイス。
(付記3)前記記憶部が、少なくとも最上位ビットとして定義され通常時は「1」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項1または2に記載のI2Cバス通信のためのデバイス。
(付記4)前記制御部は、センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項3に記載のI2Cバス通信のためのデバイス。
(付記5)複数の請求項1ないし4のいずれか1つに記載のI2Cバス通信システムデバイスを含むマルチマスタシステムのI2Cバス通信システム。
(付記6)デバイスの記憶部に記憶される調停ビットと、通信を行う相手(スレーブデバイス)のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行うマルチマスタシステムのI2Cバス通信方法。
(付記7)前記制御部が、前記デバイスが調停に失敗し通信できなかった場合、前記上位ビット記憶に記憶される前記調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項6記載のI2Cバス通信方法。
(付記8)前記記憶部が、少なくとも最上位ビットとして定義され通常時は「1」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項6または7に記載のI2Cバス通信システムデバイス。
(付記9)センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項8に記載のI2Cバス通信方法。
(付記10)デバイスの記憶部に記憶される調停ビットと、通信を行う相手(スレーブデバイス)のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行う処理をコンピュータに実行させるプログラム。
(付記11)前記制御部が、前記デバイスが調停に失敗し通信できなかった場合、前記上位ビット記憶に記憶される前記調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする処理をコンピュータに実行させる請求項10記載のプログラム。
(付記12)前記記憶部が、少なくとも最上位ビットとして定義され通常時は「1」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する処理をコンピュータに実行させる請求項10または11に記載のプログラム。
(付記13)センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する処理をコンピュータに実行させる請求項12に記載のプログラム。
10、20、30、40、50、60 デバイス
11 通信インタフェース
12 制御チップ
13 記憶素子
100 通信部
110、111 制御部
120、121 上位ビット記憶部
130 上位ビット演算部
140 下位ビット記憶部
150 センサ

Claims (10)

  1. 他のデバイスと、I2Cバス通信のためのバスを介して送受信を行う通信部と、
    スレーブアドレスのうち少なくとも調停ビットに割り振られるビットを記憶する記憶部と、
    前記通信部を通じてI2Cバス通信における他のデバイスとの通信を制御し、前記記憶部の調停ビットと通信を行う相手(スレーブデバイス)のアドレスである他のビットを統合してスレーブアドレスとし、調停結果に基づいて調停ビットに所定の演算を行う制御部と
    を含むI2Cバス通信のためのデバイス。
  2. 前記デバイスが調停に失敗し通信できなかった場合、前記制御部が、前記記憶部に記憶される調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項1記載のI2Cバス通信のためのデバイス。
  3. 前記記憶部が、少なくとも最上位ビットとして定義され通常時は「1」に設定される緊急ビットをさらに記憶し、緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項1または2に記載のI2Cバス通信のためのデバイス。
  4. 前記制御部は、センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項3に記載のI2Cバス通信のためのデバイス。
  5. 複数の請求項1ないし4のいずれか1つに記載のI2Cバス通信システムデバイスを含むマルチマスタシステムのI2Cバス通信システム。
  6. デバイスの記憶部に記憶される調停ビットと、通信を行う相手(スレーブデバイス)のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、
    複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行うマルチマスタシステムのI2Cバス通信方法。
  7. 前記制御部が、前記デバイスが調停に失敗し通信できなかった場合、前記上位ビット記憶に記憶される前記調停ビットの値を所定数減算し、前記デバイスが調停に成功し通信できた場合、調停ビットは、他のデバイスの調停ビットの値の中で最大の値にする請求項6記載のI2Cバス通信方法。
  8. 前記記憶部が、少なくとも最上位ビットとして定義され通常時は「1」に設定される緊急ビットをさらに記憶し、
    緊急と判断される場合、前記制御部は、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項6または7に記載のI2Cバス通信方法。
  9. センサの出力に基づく緊急信号を検出した場合、前記上位ビット記憶部の緊急ビットの値を所定数減算する請求項8に記載のI2Cバス通信方法。
  10. デバイスの記憶部に記憶される調停ビットと、通信を行う相手(スレーブデバイス)のアドレスである他のビットを前記デバイスの制御部が統合してスレーブアドレスとし、
    複数のデバイスの調停発生時、調停結果に基づいて前記制御部が前記調停ビットに所定の演算を行う処理
    をコンピュータに実行させるプログラム。
JP2013060542A 2013-03-22 2013-03-22 I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法 Pending JP2014186500A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013060542A JP2014186500A (ja) 2013-03-22 2013-03-22 I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013060542A JP2014186500A (ja) 2013-03-22 2013-03-22 I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法

Publications (1)

Publication Number Publication Date
JP2014186500A true JP2014186500A (ja) 2014-10-02

Family

ID=51834025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013060542A Pending JP2014186500A (ja) 2013-03-22 2013-03-22 I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法

Country Status (1)

Country Link
JP (1) JP2014186500A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056917A1 (ja) * 2015-10-01 2017-04-06 ソニー株式会社 通信システム、デバイス、マスタデバイス、スレーブデバイス、通信システムの制御方法、および、プログラム
KR102283902B1 (ko) * 2021-02-17 2021-08-02 주식회사 리빙케어 서버 컴퓨터용 메모리 모듈의 온도 데이터 검출방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056917A1 (ja) * 2015-10-01 2017-04-06 ソニー株式会社 通信システム、デバイス、マスタデバイス、スレーブデバイス、通信システムの制御方法、および、プログラム
US9727506B2 (en) 2015-10-01 2017-08-08 Sony Corporation Communication system, communication system control method, and program
US9916271B2 (en) 2015-10-01 2018-03-13 Sony Corporation Communication system, communication system control method, and program
CN108139997A (zh) * 2015-10-01 2018-06-08 索尼公司 通信系统、设备、主设备、从设备、通信系统控制方法和程序
US10140230B2 (en) 2015-10-01 2018-11-27 Sony Corporation Communication system, communication system control method, and program
US10372641B2 (en) 2015-10-01 2019-08-06 Sony Corporation Communication system, communication system control method, and program
US10740268B2 (en) 2015-10-01 2020-08-11 Sony Corporation Communication system, communication system control method, and program
TWI735469B (zh) * 2015-10-01 2021-08-11 日商新力股份有限公司 通信系統、通信系統之控制方法、及程式
TWI767782B (zh) * 2015-10-01 2022-06-11 日商新力股份有限公司 主控單元器件及通信器件
KR102283902B1 (ko) * 2021-02-17 2021-08-02 주식회사 리빙케어 서버 컴퓨터용 메모리 모듈의 온도 데이터 검출방법

Similar Documents

Publication Publication Date Title
JP6082752B2 (ja) メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法
US20190272252A1 (en) Method of processing deadlock of i2c bus, electronic device and communication system
US9798684B2 (en) Bus communications with multi-device messaging
KR100224965B1 (ko) 다층 구조의 아이2씨 버스를 이용한 진단/제어 시스템
JP4640126B2 (ja) サイドバンド・バス設定回路
US7249209B2 (en) System and method for dynamically allocating inter integrated circuits addresses to multiple slaves
US20080270654A1 (en) Bus System for Selectively Controlling a Plurality of Identical Slave Circuits Connected to the Bus and Method Therefore
JP2009535677A (ja) I2cクロックの生成方法及びシステム
US20080288684A1 (en) Design structure for an address translation device
WO2022228333A1 (zh) 一种基于amd平台的点灯方法、装置、设备及可读介质
JP2014186500A (ja) I2cバス通信用デバイス、i2cバス通信システム、及びi2cバス通信方法
US20190287585A1 (en) Memory interface and memory system
US8612663B1 (en) Integrated circuit devices, systems and methods having automatic configurable mapping of input and/or output data connections
WO2014079034A1 (zh) 内部整合电路总线控制电路和控制方法
KR101082110B1 (ko) 타이밍 제어기, 이를 이용하여 데이터를 송수신하는 장치
KR20070102823A (ko) I2c 프로토콜에서의 어드레스 제어 장치
KR101816895B1 (ko) 섀시형 통신 장비를 위한 관리용 시리얼 버스
JP5763519B2 (ja) Usbハブコントローラ、usbホストコントローラ、およびシステム
JP6960841B2 (ja) 半導体デバイス、電子機器、データ伝送方法、タイミングコントローラ、自動車
JP2015184935A (ja) I2cバスの調停システムおよび調停方法
EP1652057A2 (en) Device identification
CN107957969B (zh) 判定设备连接状态及设备类型的方法
JP2014232414A (ja) I2c通信スレーブ装置
US8843687B2 (en) Semiconductor device controlling outbound and inbound path switching sections based on a setting state and controlling method thereof
TW201543346A (zh) 固態硬碟控制電路及相關的固態硬碟裝置與固態硬碟存取系統