(57)【要約】【課題】Ｉ２Ｃ通信の通信速度を向上させることを課題とする。【解決手段】データ線であるＳＤＡ２０にそれぞれ値の異なる抵抗Ｒ１、Ｒ２及びＲ３を互いに並列になるよう挿入する。マスターデバイス１０はＳＤＡ２０の電位レベルをアナログ入力で取り込んでＡ／Ｄ変換を行う。そして、変換後の電位レベルからデータテーブル１１を参照して、各スレーブデバイスＤＥＶの出力レベルを判別することで多ビットでのデータ送受信を行う。【選択図】図１
2016066191.tif 000002
【特許請求の範囲】
【請求項１】
複数のスレーブデバイスと、
それぞれの一端が前記各スレーブデバイスのデータ端子に接続された抵抗値の異なる複数の抵抗と、
前記スレーブデバイスを制御するマスターデバイスと、
前記マスターデバイスのデータ端子と前記複数の抵抗の他端を接続するデータ線と、
一端が前記データ線、他端が電源に接続されたプルアップ抵抗とを備え、
前記マスターデバイスは、前記データ線の電位レベルを取り込んで、その電位レベルに応じて前記各スレーブデバイスがデータ線へ出力している信号レベルを判断するバス制御回路。
【請求項２】
前記マスターデバイスは、前記各スレーブデバイスがデータ線へ出力するハイレベル又はローレベルの組み合わせに応じた前記データ線の電位レベルをデータテーブルとして予め記憶し、前記マスターデバイスは前記データ線の電位レベルを取り込むと、前記データテーブルを参照して、前記各スレーブデバイスがデータ線へ出力している前記ハイレベル又はローレベルからなる信号レベルを判断する請求項１に記載のバス制御回路。
【請求項３】
前記各スレーブデバイスは個別に割り当てられたアドレスを有し、前記マスターデバイスはデータの送受信を行いたい前記スレーブデバイスが有するアドレスをデータ線へ出力することによって、任意の前記スレーブデバイスを選択してデータ送受信を開始するものであり、
前記各スレーブデバイスは、アドレスデコーダを有し、
前記マスターデバイスは、前記各スレーブデバイスに個別に割り当てられたアドレスに加え、前記スレーブデバイスを複数選択するためのアドレスを全ての組み合わせについて記憶し、
前記スレーブデバイスを複数選択するためのアドレスは、前記アドレスデコーダがデコードすることによって、前記マスターデバイスが選択した複数の前記スレーブデバイスのそれぞれのアドレスとなる請求項１又は請求項２に記載のバス制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃバスを用いてデータを送受信するバス制御回路に関する。
【背景技術】
【０００２】
デバイス間のデータ転送を行う手段として、Ｉ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）通信が知られている。Ｉ２Ｃ通信は、特許文献１〜３に記載されているように、複数のスレーブデバイスとスレーブデバイスを制御するマスターデバイスで構成され、スレーブデバイスとマスターデバイスの間はデータ線とクロック線の２本のＩ２Ｃバスで接続され、データ転送が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３４５７３２号公報
【特許文献２】特開２００６−２６７５６９号公報
【特許文献３】特開２００９−１０５７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の通信方法の場合、Ｉ２Ｃ通信はシリアルでのデータ転送になるため、マスターデバイスが１つのスレーブデバイスとデータの送受信をしている間は、他のスレーブデバイスはデータの送受信ができない。従って、構造上、通信速度を向上させることは困難であった。
【０００５】
本発明は、上記の問題を解決するためになされたもので、Ｉ２Ｃ通信の通信速度の向上を目的とする。
【課題を解決するための手段】
【０００６】
本発明におけるバス制御回路は、複数のスレーブデバイスと、それぞれの一端が前記各スレーブデバイスのデータ端子に接続された抵抗値の異なる複数の抵抗と、前記スレーブデバイスを制御するマスターデバイスと、前記マスターデバイスのデータ端子と前記複数の抵抗の他端を接続するデータ線と、一端が前記データ線、他端が電源に接続されたプルアップ抵抗と、を備えたバス制御回路であって、前記マスターデバイスは、前記データ線の電位レベルを取り込んで、その電位レベルに応じて前記各スレーブデバイスがデータ線へ出力している信号レベルを判断する。
【発明の効果】
【０００７】
本発明では、各スレーブデバイスに対して抵抗値の異なる抵抗を互いに並列になるようにデータ線に挿入することで、例えばローレベルを出力したスレーブデバイスの種類に応じてデータ線の電位レベルを分圧の関係で異ならせるので、マスターデバイスはデータ線の電位レベルを判別することにより、複数のスレーブデバイスのうち何れのスレーブデバイスがローレベルを出力したかを判断することができる。すなわち、１本のデータ線で多ビットのデータ送受信を実現することができ、通信速度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係るバス制御回路について示した回路図である。
【図２】スレーブデバイスの出力の組み合わせとデータ線の電位レベルの関係を示した図である。
【図３】第２実施形態に係るバス制御回路について示した回路図である。
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態に係るバス制御回路について図面を参照して説明する。図１は本発明の第１実施形態に係るバス制御回路１について示した回路図である。バス制御回路１はＩ２Ｃバスを用いてデータの送受信する回路である。図１に示すように、Ｉ２Ｃバスはシリアルデータ線（ＳＤＡ）２０とシリアルクロック線（ＳＣＬ）２１の２本で構成され、ＳＤＡ２０及びＳＣＬ２１には、マスターデバイス１０と複数のスレーブデバイスＤＥＶ１、ＤＥＶ２及びＤＥＶ３（以下、適宜まとめて「スレーブデバイスＤＥＶ」という）が接続されている。尚、本実施の形態ではスレーブデバイスが３個の場合を例に挙げて説明する。
【００１０】
マスターデバイス１０は、Ｉ２Ｃバスを制御し、データの送受信を管理するものであり、マスターデバイス１０が指示を出すことでスレーブデバイスＤＥＶの１つが選択され、選択されたスレーブデバイスＤＥＶとデータの送受信を行う。データの送受信はマスターデバイス１０がＳＣＬ２１に出力するクロック信号を基準に行われる。
【００１１】
それぞれのスレーブデバイスＤＥＶは、予め個別のアドレスが割り当てられている。まず、マスターデバイス１０はデータ送受信を行いたいスレーブデバイスＤＥＶに割り当てられたアドレスを出力する。スレーブデバイスＤＥＶは、取り込んだデータの内容が自身のアドレスと一致している場合のみデータを継続して受信する。そして、データを受信していたスレーブデバイスＤＥＶは、受信終了後にマスターデバイス１０に対してＡＣＫ信号を返信する。
【００１２】
ＳＤＡ２０とＳＣＬ２１は、抵抗Ｒａを介して電源レベルにプルアップされている。そして、ＳＣＬ２１のクロック信号がローレベルのときにＳＤＡ２０の状態がハイからロー、又はローからハイに変更可能であり、全ての動作は、ＳＣＬ２１がハイの期間のＳＤＡ２０のハイからローへの変化から始まる。そして、ＳＣＬ２１がハイの期間のＳＤＡ２０のローからハイへの変化で動作が終了する。
【００１３】
従来のＩ２Ｃバスを使った回路の場合、１つのスレーブデバイスがＳＤＡ２０にデータを出力している間は、他のスレーブデバイスはデータを出力できない、又は割り込みをかけてデータ出力をする必要があった。例えば、スレーブデバイスＤＥＶ１及びＤＥＶ２がマスターデバイス１０にデータ送信しようとしても、データ線であるＳＤＡ２０は１本しかないため、どちらかのスレーブデバイスしかデータ送信ができない。つまり、構造上、通信速度を向上させることは困難であった。
【００１４】
そこで、マスターデバイス１０とスレーブデバイスＤＥＶ１の間となるＳＤＡ２０に抵抗Ｒ１を接続し、マスターデバイス１０とスレーブデバイスＤＥＶ２の間となるＳＤＡ２０に抵抗Ｒ１とは抵抗値が異なる抵抗Ｒ２を接続し、マスターデバイス１０とスレーブデバイスＤＥＶ３の間となるＳＤＡ２０に抵抗Ｒ１及び抵抗Ｒ２のいずれとも抵抗値が異なる抵抗Ｒ３を接続する。すなわち、ＳＤＡ２０にそれぞれ値の異なる抵抗Ｒ１、Ｒ２及びＲ３を互いに並列になるよう挿入する。これにより、ＳＤＡ２０にローレベルを出力したスレーブデバイスＤＥＶの種類によって、抵抗Ｒａと抵抗Ｒ１〜Ｒ３の分圧によりＳＤＡ２０の電位レベルが異なってくる。マスターデバイス１０はこのときのＳＤＡ２０の電位レベルを、例えば内蔵するＡ／Ｄ変換回路にアナログ入力で取り込んでディジタル値に変換することで、ＳＤＡ２０の電位レベルから各スレーブデバイスＤＥＶの出力レベルを知ることができる。
【００１５】
具体的に説明する。図２は、各スレーブデバイスＤＥＶの出力レベルとＳＤＡ２０の電位レベルの関係を示した図である。尚、本実施の形態では、Ｒａ＝２．２ｋΩ、Ｒ１＝１ｋΩ、Ｒ２＝２ｋΩ、Ｒ３＝３ｋΩ、スレーブデバイスＤＥＶの出力を５Ｖとして説明する。
【００１６】
マスターデバイス１０は、図２に示したデータをデータテーブル１１として予め記憶している。図２に示すように、例えば、全てのスレーブデバイスＤＥＶがＳＤＡ２０に対してハイレベルを出力しているとき、ＳＤＡ２０の電位レベルは５．０Ｖとなる。また、スレーブデバイスＤＥＶ３だけがローレベルを出力しているとき、ＳＤＡ２０の電位レベルは２．９Ｖとなる。以下、同様に、電位レベルに応じたスレーブデバイスＤＥＶ１〜ＤＥＶ３についてのハイレベル又はローレベルの組み合わせがデータテーブル１１に記憶されている。
【００１７】
マスターデバイス１０は、ＳＤＡ２０の信号を取り込んでＡ／Ｄ変換し、変換後のディジタル値に基づいて、電位レベルが例えば２．９Ｖであることを認識したとき、データテーブル１１を参照して、スレーブデバイスＤＥＶ１及びＤＥＶ２はハイレベル、スレーブデバイスＤＥＶ３がローレベルを出力していることを読み出す。すなわち、マスターデバイス１０は、ＳＤＡ２０の信号の電位レベルに応じたスレーブデバイスＤＥＶ１〜ＤＥＶ３についてのハイレベル又はローレベルの組み合わせを、データテーブル１１を参照して判断する。
【００１８】
同様に、スレーブデバイスＤＥＶ１がハイレベル、スレーブデバイスＤＥＶ２とＤＥＶ３がローレベルを出力しているとき、ＳＤＡ２０の電位レベルは１．８Ｖとなる。マスターデバイス１０は、ＳＤＡ２０の信号を取り込んでＡ／Ｄ変換し、変換後のディジタル値に基づいて、電位レベルが１．８Ｖであることを認識したとき、データテーブル１１を参照して、スレーブデバイスＤＥＶ１がハイレベル、スレーブデバイスＤＥＶ２とＤＥＶ３がローレベルを出力していることを読み出す。
【００１９】
このように、本実施形態では、それぞれのスレーブデバイスＤＥＶに対して抵抗値の異なる抵抗をＳＤＡ２０に挿入することで、ローレベルを出力したスレーブデバイスＤＥＶの種類に応じてＳＤＡ２０の電位レベルを異ならせる。そしてマスターデバイス１０はその電位レベルを判別することで、何れのスレーブデバイスＤＥＶがローレベル（又はハイレベル）を出力したかを判断することができる。つまり、１本のＳＤＡ２０で多ビットのデータ送受信を実現することができ、通信速度を向上させることができる。
【００２０】
次に、第２実施形態に係るバス制御回路を説明する。図３は、第２実施形態に係るバス制御回路について示した回路図である。例えば、複数のスレーブデバイスＤＥＶにデータを出力させるためには、マスターデバイス１０は所望のスレーブデバイスＤＥＶに対してアドレスを送信しなければならない。スレーブデバイスＤＥＶは、取り込んだデータの内容が自身のアドレスと一致している場合のみデータを送信するため、マスターデバイス１０は所望のスレーブデバイスＤＥＶを複数同時に選択するようなアドレスを出力する必要がある。
【００２１】
そこで、第２実施形態では、スレーブデバイスＤＥＶはそれぞれアドレスデコーダ３１〜３３（以下、まとめて「アドレスデコーダ３」という）を有する。そして、マスタースレーブ１０は、スレーブデバイスＤＥＶに個別に割り当てられたアドレスに加えて、スレーブデバイスＤＥＶ１とＤＥＶ２を同時に選択するためのアドレス、ＤＥＶ２とＤＥＶ３を同時に選択するためのアドレス、ＤＥＶ１とＤＥＶ３を同時に選択するためのアドレス、ＤＥＶ１〜ＤＥＶ３を同時に選択するためのアドレスをそれぞれ予め記憶する。これらのアドレスは、アドレスデコーダ３がデコードすることによって、マスターデバイス１０が選択したスレーブデバイスＤＥＶの個別のアドレスとなる。
【００２２】
例えば、マスターデバイス１０がスレーブデバイスＤＥＶ１とＤＥＶ２を同時に選択するためのアドレスを出力すると、スレーブデバイスＤＥＶがアドレスを取り込み、各アドレスデコーダ３が取り込んだアドレスをデコードする。すなわち、スレーブデバイスＤＥＶ１〜ＤＥＶ３のそれぞれがアドレスを取り込み、スレーブデバイスＤＥＶ１のアドレスデコーダ３１、スレーブデバイスＤＥＶ２のアドレスデコーダ３２、スレーブデバイスＤＥＶ３のアドレスデコーダ３３がそれぞれ、取り込んだアドレスをデコードする。その結果、スレーブデバイスＤＥＶ１とＤＥＶ２を同時に選択するためのアドレスは、スレーブデバイスＤＥＶ１とＤＥＶ２の個別のアドレスに変換され、スレーブデバイスＤＥＶ１とＤＥＶ２は自身が選択されたと認識してデータ送信を開始する。これにより、マスターデバイス１０は、ＳＤＡ２０のアナログ入力によって多ビット受信を実現する。このように、アドレスデコーダ３を用いることで、１つのアドレスで複数のスレーブデバイスＤＥＶを指定して選択することが可能である。すなわち、この第２実施形態では、１つのアドレスによる複数のスレーブデバイスＤＥＶの選択と、１本のＳＤＡ２０による多ビットのデータ送受信とを実現できるため、通信速度を更に向上させることが可能になる。
【００２３】
本実施の形態における多ビットの通信方法は、マスターデバイス１０がスレーブデバイスＤＥＶからデータを受信する際に効果的である。また、マスターデバイス１０が複数のスレーブデバイスＤＥＶに対してデータを送信したい場合（スレーブデバイスＤＥＶに対して同時にデータ書き込みを行いたい場合）には、上記した複数のスレーブデバイスＤＥＶを選択するためのアドレスを用いることで、実現可能である。例えば、全てのスレーブデバイスＤＥＶに同じデータを書き込みたい場合、マスターデバイス１０は全てのスレーブデバイスＤＥＶを選択するためのアドレスを送信し、その後書き込みたいデータを送信する。こうすることで、全てのスレーブデバイスＤＥＶは自身が選択されたと認識し、マスターデバイス１０からのデータを受け取ることができる。
【００２４】
尚、本実施の形態の通信方法は、マスターデバイス１０のＡ／Ｄ変換の処理速度によっては、従来のシリアル通信方式に比べて通信速度の改善が見込めない場合がある。しかし、マスターデバイス１０の処理能力が上がり、Ａ／Ｄ変換を高速に行える場合は、複数のスレーブデバイスＤＥＶからの多ビット通信をもって、通信速度を向上させることが可能である。
【符号の説明】
【００２５】
１      バス制御回路
１０    マスターデバイス
１１    データテーブル
２０    ＳＤＡ（データ線）
２１    ＳＣＬ（クロック線）
３１〜３２  アドレスデコーダ
Ｒ１、Ｒ２、Ｒ３、Ｒａ、Ｒｂ  抵抗
ＤＥＶ１、ＤＥＶ２、ＤＥＶ３  スレーブデバイス
【図１】
2016066191.tif 000003
【図２】
2016066191.tif 000004
【図３】
2016066191.tif 000005