I2Cインタフェースを有するシステム及びその方法
【課題】本発明の目的は、I2Cインタフェースを有するシステムを提供することである。
【解決手段】本発明の第1の態様によると、マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムが提供される。前記マスター装置は第1のデータ・バスと接続され第1の駆動電圧で動作し、前記スレーブ装置は第2のデータ・バスと接続され第2の駆動電圧で動作し、前記システムは、それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える。
【解決手段】本発明の第1の態様によると、マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムが提供される。前記マスター装置は第1のデータ・バスと接続され第1の駆動電圧で動作し、前記スレーブ装置は第2のデータ・バスと接続され第2の駆動電圧で動作し、前記システムは、それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、I2Cインタフェースに同一の固有アドレスを有する複数のスレーブを接続することを可能にする、I2Cインタフェースのレベルシフト回路に関する。
【背景技術】
【0002】
携帯型電子機器の小型化のためには、回路を小型化し且つ複数の機能を纏めて1つの回路に集積する技術が不可欠である。複数の機能を纏めて1つの回路に集積するために、従来、MPUのような処理装置に種々のデジタル・インタフェースを集積することが一般的に行われている。しかしながら、アナログ回路やCMOSセンサ等は、製造プロセスがMPUのような処理装置と異なるために集積することが困難である。更に、アナログ回路やCMOSセンサ等の駆動電圧はMPUのような処理装置の駆動電圧と異なる場合が多い。このため、同じインタフェースを有する場合でも、駆動電圧が異なるために直接接続できないという問題がある。
【0003】
図1は、上述の問題を解決する、従来のレベルシフト回路を用い異なる駆動電圧を有する集積回路を接続する方法を示す。図1では、1.8Vの駆動電圧で動作する集積回路(IC)111、2.8Vの駆動電圧で動作する集積回路(IC)112、113、1.8Vの信号を2.8Vの信号に変換する2個のレベルシフト回路(LS)120、2.8Vの駆動電圧で動作する任意の論理回路130、を有する。LSはIC111からの1.8Vの出力信号をIC113への2.8Vの入力信号に変換するためにIC111とIC113との間に挿入されても良く、又は更にLSとIC113との間に例えばIC112と接続された任意の論理回路を有しても良い。しかしながら、多くの機能及びインタフェースを有する昨今の携帯型電子機器では、各インタフェース間にLSが必要となる図1の方法によると、LSのための部品数が増加し携帯型電子機器の小型化が困難になる。
【0004】
図2は、図1の方法の問題を解決する、従来のLS及び任意の論理回路を1つの集積回路に集積する方法を示す。図2では、図1のLS120及び任意の論理回路130が1つの集積回路IC210に集積されている。IC210として2種類以上の電源端子を有するIC、例えばプログラム可能なCPLD若しくはFPGA、又はASICのような専用ICを利用することが考えられる。従って、単純なレベルシフトだけでなく、任意の論理回路もIC210に集積することができるので、部品数を低減することができる。
【0005】
CPLD若しくはFPGA、又はASIC等にI2Cインタフェースのレベルシフト回路を集積する場合に、以下に述べるいくつかの問題がある。ここでI2Cは、フィリップス社により開発されたシリアル・バスであり、「I2Cバス仕様書」(http://www.nxp.com/acrobat_download/literature/9398/39340011_jp.pdfから入手可能)により定められている。
【0006】
第1の問題点を説明する。図3は、従来のI2Cインタフェースのレベルシフト回路の構成例を示す。図3に示すように、I2Cインタフェースは2本の信号、つまりクロック信号SCLとデータ信号SDAとを有する。データ信号SDAは双方向信号であり、データ信号SDAの送信側と受信側が「I2Cバス仕様書」により定められるI2Cプロトコルに従ってデータ信号SDAを切り替えるため、当該送信側と受信側との間にアナログのレベルシフト回路310が必要となる。一般にCPLD若しくはFPGA、又はASIC等はデジタル・インタフェースのI/O端子のみを有し、アナログ・インタフェースのI/O端子を有さないので、I2Cインタフェースのレベルシフトを集積できず部品数が増加してしまう。
【0007】
第2の問題点を説明する。図4は、従来のアナログ・インタフェースを用いずにI2Cインタフェースのレベルシフトを実現する方法を示す。図4に示すように、I2Cプロトコルを解釈してデータ信号SDAの方向を切り替えるI2Cマスター/スレーブ回路430を設けることが考えられる。しかしながら、このような回路は接続方法の汎用性を達成するために2組設ける必要があり、それにより回路規模が増大してしまう。
【0008】
第3の問題点を説明する。I2Cインタフェースで接続される装置間にはマスターとスレーブという関係があり、マスターはデータ転送の開始と終了及びクロック信号の生成を行い、スレーブはマスターによりアドレスを指定される。図5に示すように、I2Cインタフェースでは複数の装置、例えばIC111、114、115を1本のSDAバスに接続することが可能である。IC毎にアクセスを区別するために、各ICは固有アドレスを有する。マスターであるIC111が、スレーブである集積回路IC114又はIC115へアクセスする場合には、マスター111がSDAバスに所望のスレーブのアドレスを送出し、当該アドレスと同一の固有アドレスを有するスレーブのみが当該SDAバスにデータを送出することにより、アクセスが正しく行われる。しかしながら、同一の固有アドレスを有する複数のスレーブが存在する場合には、複数のスレーブが同時に応答してしまうので、同一のSDAバスに接続することができない。1つのインタフェースしか有さないマスターに同一の固有アドレスを有する複数のスレーブを接続する場合には、マスターの外部でSDAバスを切り替える必要がある。
【特許文献1】特開2003−133937号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明の目的は、小規模のデジタル回路で構成されて集積しやすいI2Cインタフェースのレベルシフト回路を提供することである。
【課題を解決するための手段】
【0010】
本発明の第1の態様によると、マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムが提供される。前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、前記システムは、それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える。
【0011】
本発明の第2の態様によると、第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法が提供される。当該方法は、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する。
【0012】
本発明の第3の態様によると、スター装置と前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムが提供される。前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成し、前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作する。前記システムは、それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ、又は選択された前記スレーブ装置から前記マスター装置へ切り替える。
【0013】
本発明の第4の態様によると、第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法が提供される。前記方法は、前記マスター装置は、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成する段階、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する。
【発明の効果】
【0014】
本発明のレベルシフト回路により、I2Cインタフェースのレベルシフト機能を簡易な回路で実現することができる。
【0015】
本発明のレベルシフト回路により、I2Cインタフェースに同一の固有アドレスを有する複数のスレーブを接続することが可能になる。
【発明を実施するための最良の形態】
【0016】
図6は本発明によるI2Cインタフェースのレベルシフト回路(i2ccnt)610の構成例を示す。レベルシフト回路610は、それぞれ異なる駆動電圧VDDE1、VDDE2を有するIC111とIC112との間に接続される。IC111はマスター、IC112はスレーブであるとする。図6には1個のレベルシフト回路610のみが示されるが、I2Cインタフェースでは異なる駆動電圧を有するデータ信号及びクロック信号用にそれぞれレベルシフト回路610が必要である。レベルシフト回路610は、本発明によるシーケンサ回路(Seq)620、及びシーケンサ回路620とIC111又はIC112との間にそれぞれ接続された従来知られている双方向デジタル入出力回路(I/O)631、632を有する。簡単のため、図6は双方向デジタル入出力回路631、632の入出力方向の制御に必要な部分のみを示す。
【0017】
図7は、図6のレベルシフト回路に用いられる、従来知られている双方向デジタル入出力回路(I/O)630を示す。デジタル入出力回路630は、外部から電源電圧VDDI、VDDEをそれぞれ受信する電源電圧端子V1、V2、図6のシーケンサ回路Seqから駆動信号としてstate[0]又はstate[1]を受信する駆動信号端子drv、データ・バス又はクロック・バスを介してICと接続された双方向入出力端子io、図6のシーケンサ回路620の入力端子と接続されシーケンサ回路620への入力信号を送信するための信号端子i、及びデータ・バス又はクロック・バスを介してICへのLowレベル出力信号を受信するための信号端子o、を有する。表1に双方向デジタル入出力回路I/Oの動作を示す。
【0018】
【表1】
表1に示されるように、駆動信号端子drvが2値信号の0に保たれている間、信号端子oの信号が入出力(io)端子に出力され、双方向デジタル入出力回路I/Oはo端子のデータをio端子に出力する。これは、図6の双方向デジタル入出力回路631ではマスター111へデータが出力されることを意味する。また、図6の双方向デジタル入出力回路632ではスレーブ112へデータが出力されることを意味する。また、信号をモニターする目的で、入力信号(i)端子にo端子の信号が出力される。駆動信号(drv)端子が2値信号の1に保たれている間、双方向デジタル入出力回路I/Oはio端子のデータをi端子に出力する。これは、図6の双方向デジタル入出力回路631がマスター111からデータを受信するように動作すること、及び図6の双方向デジタル入出力回路632がスレーブ112からデータを受信するように動作することを意味する。また、入出力端子ioは入力方向のためハイインピーダンスに保たれているがVDDE1でプルアップされているためスレーブデバイスがLowレベルの信号をドライブしていない場合にはHighレベルがi端子から出力される。
【0019】
以上に図7及び表1を参照して説明した双方向デジタル入出力回路I/Oをシーケンサ回路620と同一のICに集積することにより、I2Cプロトコルを解釈して信号の方向を切り替える回路が少ない部品数で実現できるので、上述の第1及び第2の問題点が解決される。
【0020】
図8は、図6のシーケンサ回路620の詳細な構成を示す図である。シーケンサ回路620は、I2Cインタフェースの方向制御を行う主制御回路810、及び2つのフリップフロップ回路820、830を有する。
【0021】
主制御回路810は、図6に示された2つの双方向デジタル入出力回路631、632のそれぞれから入力信号ii2c1、ii2c2を受信する。双方向デジタル入出力回路631は、データ・バスを介してマスターIC111から受信した信号をシーケンサ回路620への入力信号ii2c1として入力信号端子iに出力する。双方向デジタル入出力回路632は、データ・バスを介してマスターIC112から受信した信号をシーケンサ回路620への入力信号ii2c2として入力信号端子iに出力する。
【0022】
フリップフロップ回路820、830へ入力されるクロック信号CLKは、I2Cインタフェースのマスターとなるマイクロプロセッサー(MPU)等のクロック又はMPUが動作するシステム・クロックを逓倍することにより生成され、図3及び図4に示した従来のI2Cインタフェースのクロック信号SCLの周波数の約10倍以上の周波数を有することが望ましい。十分速いクロック信号が無い場合には、FPGAやASIC等に実装されている位相ロックループ(PLL)により内部クロックを逓倍することにより、I2Cインタフェースのクロック信号SCLより十分速い周波数のクロック信号を生成することが望ましい。これにより、シーケンサ回路620はI2CインタフェースのSDAバスの信号の変化を迅速に検出することができる。また、フリップフロップ回路821、822はリセット信号RSTを受信する。フリップフロップ回路821、822の動作は従来知られているので、説明を省略する。
【0023】
次に、図8及び図9を参照して主制御回路810の動作を説明する。一般にI2Cインタフェースでは、マスターとスレーブがI2Cデータ・バスにI2Cプロトコルに従って低位(Low)信号を出力することによりアクセスを行う。本発明はこの動作を利用する。つまり、シーケンサ回路620の主制御回路810は図9に示される3つの状態を有し、I2CのSDAバスの信号レベル、つまり入力信号ii2c1及びii2c2を監視し、当該信号レベルの変化に応じて当該複数の状態の間を遷移する。以下に説明する動作は、図9の下半分に示した表にも記載される。
【0024】
図9に示されるnodrv状態910は、入力信号ii2c1及びii2c2の両方がLowをドライブしていない、つまり当該入力信号がLowではない状態、又は両方ともLowをドライブしている、つまり当該入力信号がLowである状態である。主制御回路810はnodrv状態910のときにフリップフロップ回路820の出力state[1]=1(High)及びstate[0]=1(High)(以後、纏めてstate[1:0]=11のように記載する)、ii21=0(Low)、ii2c2=1(High)を受信すると、nstate[1]=0(Low)及びnstate[0]=1(High)を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=0、nstate[0]=1をそれぞれstate[1]=0、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=01を受信し、drv1状態920へ遷移する。
【0025】
主制御回路810はnodrv状態910のときにstate[1:0]=11、ii21=1、ii2c2=0を受信すると、nstate[1]=1及びnstate[0]=0を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=0をそれぞれstate[1]=1、state[0]=0として出力する。従って主制御回路810は次にstate[1:0]=10を受信し、drv2状態930へ遷移する。
【0026】
主制御回路810はnodrv状態910のときにstate[1:0]=11、上記以外の入力信号、つまりii21=0、ii2c2=0、又はii21=1、ii2c2=1を受信すると、nstate[1]=1及びnstate[0]=1を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、状態遷移を起こさずnodrv状態のままである。
【0027】
主制御回路810はnodrv状態910のときにstate[1:0]=11を受信すると、ii21、ii2c2に拘わらず、nstate[1]=1及びnstate[0]=1を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、状態遷移を起こさずnodrv状態のままである。
【0028】
図9に示されるdrv1状態920は、入力信号ii2c1がLowをドライブしている、つまり当該入力信号がLowである状態である。主制御回路810はdrv1状態920のときにstate[1:0]=01、ii21=1を受信すると、nstate[1]=1及びnstate[0]=1を出力する。このときii2c2の値は考慮されない(don’t care)。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、上述のnodrv状態910へ遷移する。
【0029】
主制御回路810はdrv1状態920のときにstate[1:0]=01、上記以外の入力信号、つまりii21=0、ii2c2=0、又はii21=0、ii2c2=1を受信すると、nstate[1]=0及びnstate[0]=1を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=0、nstate[0]=1をそれぞれstate[1]=0、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=01を受信し、状態遷移を起こさずdrv1状態920のままである。
【0030】
図9に示されるdrv2状態930は、入力信号ii2c2がLowをドライブしている、つまり当該入力信号がLowである状態である。主制御回路810はdrv2状態930のときにstate[1:0]=10、ii22=1を受信すると、nstate[1]=1及びnstate[0]=1を出力する。このときii2c1の値は考慮されない(don’t care)。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、上述のnodrv状態910へ遷移する。
【0031】
主制御回路810はdrv2状態930のときにstate[1:0]=10、上記以外の入力信号、つまりii21=0、ii2c2=0、又はii21=1、ii2c2=0を受信すると、nstate[1]=1及びnstate[0]=0を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=0をそれぞれstate[1]=1、state[0]=0として出力する。従って主制御回路810は次にstate[1:0]=10を受信し、状態遷移を起こさずdrv2状態930のままである。
【0032】
以上に図8及び図9を参照して説明した論理により、主制御回路810は複数のICのうちどのICが最初にLowをドライブしたかを監視することができる。上述のようにクロック信号CLKがI2Cインタフェースのクロック信号SCLの周波数の例えば約10倍以上の周波数を有することにより、I2CのSDAバスに出力されている信号の変化を迅速に検出することが可能になる。また、図9を参照して説明された論理は数ゲートのみで実現できるので、主制御回路810は非常に小さい回路規模で実現可能である。従って、I2Cプロトコルを解釈して信号の方向を切り替える回路が少ない部品数で実現できるので、上述の第1及び第2の問題点が解決される。
【0033】
以上に1個のマスターと2個のスレーブを接続する場合を説明したが、本発明は3個以上のスレーブを接続する場合にも適用されて良い。
【0034】
図10は、レベルシフト回路(i2ccnt)1011、1012、1個のマスターIC111、及び同一の固有アドレスを有する2個のスレーブIC112、113の接続例を示す。スレーブIC112、113は、レベルシフト回路1011を介してスレーブIC112、113と異なる駆動電圧で動作するマスターIC111が接続されているSCLバスと、及びレベルシフト回路1012を介してスレーブIC112、113と異なる駆動電圧で動作するマスターIC111が接続されているSDAバスと接続される。SCLバスと接続されたレベルシフト回路1011は、スレーブ112、113を区別する必要がなくレベルシフトができれば良いので、図6に示されたレベルシフト回路610を用いて良い。双方向デジタル入出力回路1021、1022、1023、シーケンサ回路1031、1032は、それぞれ図7に示された双方向デジタル入出力回路710、図8に示されたシーケンサ回路620と同様である。
【0035】
同一の固有アドレスを有するスレーブを区別するためにマスターにより生成された切替信号と双方向デジタル入出力回路からの出力信号との論理和(OR)が、シーケンサ回路Seqへ入力される。図11のOR回路1041、1042の出力は図8のii2c1、ii2c2にそれぞれ相当する。また図11のOR回路1043、1044の出力も図8のii2c1、ii2c2にそれぞれ相当する。
【0036】
マスターIC111は、同一の固有アドレスを有するスレーブ112、113が存在する場合に、例えばスレーブ112にアクセスする場合に切替信号に0(Low)を出力し、スレーブ113にアクセスする場合に切替信号に1(High)を出力すると予め設定されて良い。切替信号は、OR回路1041、1042へ反転されずに入力され、OR回路1043、1044へ反転された後に入力される。
【0037】
マスターIC111が切替信号に0を出力すると、OR回路1042は、切り替え信号が0の間、少なくとも1つの入力が0となるので、双方向デジタル入出力回路1022から受信する信号をそのまま出力する。一方、OR回路1044は、切り替え信号が0の間、少なくとも1つの入力が1となるので、双方向デジタル入出力回路1023から受信する信号に無関係に1を出力する。従って切り替え信号が0の間、スレーブIC112が選択される。
【0038】
マスターIC111が切替信号に1を出力すると、OR回路1042は、切り替え信号が1の間、少なくとも1つの入力が1となるので、双方向デジタル入出力回路1022から受信する信号に無関係に1を出力する。一方、OR回路1044は、切り替え信号が1の間、少なくとも1つの入力が0となるので、双方向デジタル入出力回路1023から受信する信号をそのまま出力する。従って切り替え信号が1の間、スレーブIC113が選択される。
【0039】
このように、マスターIC111は、切り替え信号を用いることにより、同一の固有アドレスを有する複数のスレーブへのデータの入出力を制御することができるので、上述の第3の問題点が解決される。
【0040】
図11は、レベルシフト回路1101、1個のマスターIC111、及び同一の固有アドレスを有する3個のスレーブIC112、113、114の接続例を示す。簡単のため図11にはデータ・バスと接続されたレベルシフト回路1101のみが示される。図10と同様に、クロック・バスと接続されたレベルシフト回路は、スレーブIC112、113、114を区別する必要がなくレベルシフトができれば良いので、図6に示されたレベルシフト回路610を用いて良い。3個のスレーブIC112、113、114を区別するために、マスターは2ビットの切替信号を生成する。
【0041】
図11に示されたレベルシフト回路1101は、6個のセレクタ1111、1112、1121、1122、1131、1132、図8と同様の3個のシーケンサ回路1141〜1143、図7と同様の4個の双方向デジタル入出力回路1151〜1154を有する。マスターIC111により生成された2ビットの切替信号は、セレクタ1111、1112、1121、1122、1131、1132へ入力される。双方向デジタル入出力回路1151はマスターIC111側のDSAバスと接続され、双方向デジタル入出力回路1152〜1154はスレーブIC112、113、114側のSDAバスと接続される。シーケンサ回路1141は、セレクタ1111、1112の出力OUTからの信号を入力信号state[1]、state[0]として受信し、出力信号state[1]、state[0]をOR回路1161、双方向デジタル入出力回路1152へそれぞれ出力する。同様にシーケンサ回路1142、1143もそれぞれが接続されたセレクタの出力OUTからの信号を入力信号として受信し、出力信号をOR回路1161、及び双方向デジタル入出力回路1153又は1154へそれぞれ出力する。
【0042】
マスターIC111は、例えばスレーブIC112にアクセスする場合に切替信号00を出力し、スレーブIC113にアクセスする場合に切替信号01を出力し、スレーブIC114にアクセスする場合に切替信号10を出力すると予め設定されて良い。
【0043】
表2は、図11に示すセレクタの動作を示す。表2の()内の値は、IN信号と同じ値が出力されることを示す。
【0044】
【表2】
表2の1行目に示されるように、マスターIC111が切替信号00を送出し、IN信号が0である場合、セレクタ1111、1112(SEL1)はIN信号と同じ値、つまり0を出力する。表2の5行目に示されるように、マスターIC111が切替信号00を送出し、IN信号が1である場合、セレクタ1111、1112(SEL1)はIN信号と同じ値、つまり1を出力する。このとき、セレクタ1121、1122(SEL2)、及び1131、1132(SEL3)の出力は入力信号に拘わらず1に保持される。従ってスレーブIC112が選択される。
【0045】
表2の2行目に示されるように、マスターIC111が切替信号01を送出し、IN信号が0である場合、セレクタ1121、1122(SEL2)はIN信号と同じ値、つまり0を出力する。表2の6行目に示されるように、マスターIC111が切替信号01を送出し、IN信号が1である場合、セレクタ1121、1122(SEL2)はIN信号と同じ値、つまり1を出力する。このとき、セレクタ1111、1112(SEL1)、及び1131、1132(SEL3)の出力は入力信号に拘わらず1に保持される。従ってスレーブIC113が選択される。
【0046】
表2の3行目に示されるように、マスターIC111が切替信号10を送出し、IN信号が0である場合、セレクタ1131、1132(SEL3)はIN信号と同じ値、つまり0を出力する。表2の7行目に示されるように、マスターIC111が切替信号10を送出し、IN信号が1である場合、セレクタ1131、1132(SEL3)はIN信号と同じ値、つまり1を出力する。このとき、セレクタ1111、1112(SEL1)、及び1121、1122(SEL2)の出力は入力信号に拘わらず1に保持される。従ってスレーブIC114が選択される。
【0047】
上述のように、同一の固有アドレスを有する3個のスレーブを区別することができるので、上述の第3の問題点を解決できる。また、本発明は、切替信号のビット数を変更することにより3個より多いスレーブが接続される場合にも適用されて良い。
【0048】
以上に説明された本発明のレベルシフト回路(i2ccnt)は専用のICで実施されて良く、又は任意の論理回路を有するICの一部に実装されても良い。
【0049】
以上に説明した実施形態の他に、更に以下を開示する。
(付記1)
マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える、システム。
(付記2)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行い、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う、付記1に記載のシステム。
(付記3)
前記シーケンサ回路は、
前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信し、
前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から前記スレーブ装置へ切り替え、
前記第2の入力信号のみが0になった場合に、データの伝達方向を前記スレーブ装置から前記マスター装置へ切り替える、付記1に記載のシステム。
(付記4)
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
(付記5)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、を有する付記4に記載の方法。
(付記6)
前記シーケンサ回路は、前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信する段階、
前記シーケンサ回路は、前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から前記スレーブ装置へ切り替える段階、
前記シーケンサ回路は、前記第2の入力信号のみが0になった場合に、データの伝達方向を前記スレーブ装置から前記マスター装置へ切り替える段階、を有する付記4に記載の方法。
(付記7)
マスター装置と前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ、又は選択された前記スレーブ装置から前記マスター装置へ切り替える、システム。
(付記8)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行い、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う、付記7に記載のシステム。
(付記9)
前記シーケンサ回路は、
前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信し、
前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ切り替え、
前記第2の入力信号のみが0になった場合に、データの伝達方向を選択された前記スレーブ装置から前記マスター装置へ切り替える、付記7に記載のシステム。
(付記10)
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記マスター装置は、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成する段階、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
(付記11)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、を有する付記10に記載の方法。
(付記12)
前記シーケンサ回路は、前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信する段階、
前記シーケンサ回路は、前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ切り替える段階、
前記シーケンサ回路は、前記第2の入力信号のみが0になった場合に、データの伝達方向を選択された前記スレーブ装置から前記マスター装置へ切り替える段階、を有する付記10に記載の方法。
【図面の簡単な説明】
【0050】
【図1】従来のレベルシフト回路を用い異なる駆動電圧を有する集積回路を接続する方法を示す。
【図2】従来のLS及び任意の論理回路を1つの集積回路に集積する方法を示す。
【図3】従来のI2Cインタフェースのレベルシフト回路の構成例を示す。
【図4】従来のアナログ・インタフェースを用いずにI2Cインタフェースのレベルシフトを実現する方法を示す。
【図5】従来の複数の集積回路を1本のデータ・バスに接続するI2Cインタフェースの構成例を示す。
【図6】本発明によるI2Cインタフェースのレベルシフト回路の構成例を示す。
【図7】図6のレベルシフト回路に用いられる、従来知られている双方向デジタル入出力回路を示す。
【図8】図6のシーケンサ回路の詳細な構成を示す図である。
【図9】図6の主制御回路の状態遷移図である。
【図10】図6のレベルシフト回路、1個のマスター、及び同一の固有アドレスを有する2個のスレーブの接続例を示す。
【図11】図6のレベルシフト回路、1個のマスター、及び同一の固有アドレスを有する3個のスレーブの接続例を示す。
【符号の説明】
【0051】
111〜115、210 集積回路(IC)
120、410、610、1011、1012 レベルシフト回路
130 論理回路
310 アナログ双方向レベルシフト回路
420 デジタル入出力回路(I/O)
430 I2Cマスター/スレーブ回路
620、1031 シーケンサ回路
630、631、632、1021〜1023、1151〜1154 双方向デジタル入出力回路(I/O)
810 主制御回路
821、822 フリップフロップ
1041〜1045、1161 OR回路
1111、1112、1121、1122、1131、1132 セレクタ
【技術分野】
【0001】
本発明は、I2Cインタフェースに同一の固有アドレスを有する複数のスレーブを接続することを可能にする、I2Cインタフェースのレベルシフト回路に関する。
【背景技術】
【0002】
携帯型電子機器の小型化のためには、回路を小型化し且つ複数の機能を纏めて1つの回路に集積する技術が不可欠である。複数の機能を纏めて1つの回路に集積するために、従来、MPUのような処理装置に種々のデジタル・インタフェースを集積することが一般的に行われている。しかしながら、アナログ回路やCMOSセンサ等は、製造プロセスがMPUのような処理装置と異なるために集積することが困難である。更に、アナログ回路やCMOSセンサ等の駆動電圧はMPUのような処理装置の駆動電圧と異なる場合が多い。このため、同じインタフェースを有する場合でも、駆動電圧が異なるために直接接続できないという問題がある。
【0003】
図1は、上述の問題を解決する、従来のレベルシフト回路を用い異なる駆動電圧を有する集積回路を接続する方法を示す。図1では、1.8Vの駆動電圧で動作する集積回路(IC)111、2.8Vの駆動電圧で動作する集積回路(IC)112、113、1.8Vの信号を2.8Vの信号に変換する2個のレベルシフト回路(LS)120、2.8Vの駆動電圧で動作する任意の論理回路130、を有する。LSはIC111からの1.8Vの出力信号をIC113への2.8Vの入力信号に変換するためにIC111とIC113との間に挿入されても良く、又は更にLSとIC113との間に例えばIC112と接続された任意の論理回路を有しても良い。しかしながら、多くの機能及びインタフェースを有する昨今の携帯型電子機器では、各インタフェース間にLSが必要となる図1の方法によると、LSのための部品数が増加し携帯型電子機器の小型化が困難になる。
【0004】
図2は、図1の方法の問題を解決する、従来のLS及び任意の論理回路を1つの集積回路に集積する方法を示す。図2では、図1のLS120及び任意の論理回路130が1つの集積回路IC210に集積されている。IC210として2種類以上の電源端子を有するIC、例えばプログラム可能なCPLD若しくはFPGA、又はASICのような専用ICを利用することが考えられる。従って、単純なレベルシフトだけでなく、任意の論理回路もIC210に集積することができるので、部品数を低減することができる。
【0005】
CPLD若しくはFPGA、又はASIC等にI2Cインタフェースのレベルシフト回路を集積する場合に、以下に述べるいくつかの問題がある。ここでI2Cは、フィリップス社により開発されたシリアル・バスであり、「I2Cバス仕様書」(http://www.nxp.com/acrobat_download/literature/9398/39340011_jp.pdfから入手可能)により定められている。
【0006】
第1の問題点を説明する。図3は、従来のI2Cインタフェースのレベルシフト回路の構成例を示す。図3に示すように、I2Cインタフェースは2本の信号、つまりクロック信号SCLとデータ信号SDAとを有する。データ信号SDAは双方向信号であり、データ信号SDAの送信側と受信側が「I2Cバス仕様書」により定められるI2Cプロトコルに従ってデータ信号SDAを切り替えるため、当該送信側と受信側との間にアナログのレベルシフト回路310が必要となる。一般にCPLD若しくはFPGA、又はASIC等はデジタル・インタフェースのI/O端子のみを有し、アナログ・インタフェースのI/O端子を有さないので、I2Cインタフェースのレベルシフトを集積できず部品数が増加してしまう。
【0007】
第2の問題点を説明する。図4は、従来のアナログ・インタフェースを用いずにI2Cインタフェースのレベルシフトを実現する方法を示す。図4に示すように、I2Cプロトコルを解釈してデータ信号SDAの方向を切り替えるI2Cマスター/スレーブ回路430を設けることが考えられる。しかしながら、このような回路は接続方法の汎用性を達成するために2組設ける必要があり、それにより回路規模が増大してしまう。
【0008】
第3の問題点を説明する。I2Cインタフェースで接続される装置間にはマスターとスレーブという関係があり、マスターはデータ転送の開始と終了及びクロック信号の生成を行い、スレーブはマスターによりアドレスを指定される。図5に示すように、I2Cインタフェースでは複数の装置、例えばIC111、114、115を1本のSDAバスに接続することが可能である。IC毎にアクセスを区別するために、各ICは固有アドレスを有する。マスターであるIC111が、スレーブである集積回路IC114又はIC115へアクセスする場合には、マスター111がSDAバスに所望のスレーブのアドレスを送出し、当該アドレスと同一の固有アドレスを有するスレーブのみが当該SDAバスにデータを送出することにより、アクセスが正しく行われる。しかしながら、同一の固有アドレスを有する複数のスレーブが存在する場合には、複数のスレーブが同時に応答してしまうので、同一のSDAバスに接続することができない。1つのインタフェースしか有さないマスターに同一の固有アドレスを有する複数のスレーブを接続する場合には、マスターの外部でSDAバスを切り替える必要がある。
【特許文献1】特開2003−133937号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明の目的は、小規模のデジタル回路で構成されて集積しやすいI2Cインタフェースのレベルシフト回路を提供することである。
【課題を解決するための手段】
【0010】
本発明の第1の態様によると、マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムが提供される。前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、前記システムは、それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える。
【0011】
本発明の第2の態様によると、第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法が提供される。当該方法は、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する。
【0012】
本発明の第3の態様によると、スター装置と前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムが提供される。前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成し、前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作する。前記システムは、それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ、又は選択された前記スレーブ装置から前記マスター装置へ切り替える。
【0013】
本発明の第4の態様によると、第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法が提供される。前記方法は、前記マスター装置は、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成する段階、前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する。
【発明の効果】
【0014】
本発明のレベルシフト回路により、I2Cインタフェースのレベルシフト機能を簡易な回路で実現することができる。
【0015】
本発明のレベルシフト回路により、I2Cインタフェースに同一の固有アドレスを有する複数のスレーブを接続することが可能になる。
【発明を実施するための最良の形態】
【0016】
図6は本発明によるI2Cインタフェースのレベルシフト回路(i2ccnt)610の構成例を示す。レベルシフト回路610は、それぞれ異なる駆動電圧VDDE1、VDDE2を有するIC111とIC112との間に接続される。IC111はマスター、IC112はスレーブであるとする。図6には1個のレベルシフト回路610のみが示されるが、I2Cインタフェースでは異なる駆動電圧を有するデータ信号及びクロック信号用にそれぞれレベルシフト回路610が必要である。レベルシフト回路610は、本発明によるシーケンサ回路(Seq)620、及びシーケンサ回路620とIC111又はIC112との間にそれぞれ接続された従来知られている双方向デジタル入出力回路(I/O)631、632を有する。簡単のため、図6は双方向デジタル入出力回路631、632の入出力方向の制御に必要な部分のみを示す。
【0017】
図7は、図6のレベルシフト回路に用いられる、従来知られている双方向デジタル入出力回路(I/O)630を示す。デジタル入出力回路630は、外部から電源電圧VDDI、VDDEをそれぞれ受信する電源電圧端子V1、V2、図6のシーケンサ回路Seqから駆動信号としてstate[0]又はstate[1]を受信する駆動信号端子drv、データ・バス又はクロック・バスを介してICと接続された双方向入出力端子io、図6のシーケンサ回路620の入力端子と接続されシーケンサ回路620への入力信号を送信するための信号端子i、及びデータ・バス又はクロック・バスを介してICへのLowレベル出力信号を受信するための信号端子o、を有する。表1に双方向デジタル入出力回路I/Oの動作を示す。
【0018】
【表1】
表1に示されるように、駆動信号端子drvが2値信号の0に保たれている間、信号端子oの信号が入出力(io)端子に出力され、双方向デジタル入出力回路I/Oはo端子のデータをio端子に出力する。これは、図6の双方向デジタル入出力回路631ではマスター111へデータが出力されることを意味する。また、図6の双方向デジタル入出力回路632ではスレーブ112へデータが出力されることを意味する。また、信号をモニターする目的で、入力信号(i)端子にo端子の信号が出力される。駆動信号(drv)端子が2値信号の1に保たれている間、双方向デジタル入出力回路I/Oはio端子のデータをi端子に出力する。これは、図6の双方向デジタル入出力回路631がマスター111からデータを受信するように動作すること、及び図6の双方向デジタル入出力回路632がスレーブ112からデータを受信するように動作することを意味する。また、入出力端子ioは入力方向のためハイインピーダンスに保たれているがVDDE1でプルアップされているためスレーブデバイスがLowレベルの信号をドライブしていない場合にはHighレベルがi端子から出力される。
【0019】
以上に図7及び表1を参照して説明した双方向デジタル入出力回路I/Oをシーケンサ回路620と同一のICに集積することにより、I2Cプロトコルを解釈して信号の方向を切り替える回路が少ない部品数で実現できるので、上述の第1及び第2の問題点が解決される。
【0020】
図8は、図6のシーケンサ回路620の詳細な構成を示す図である。シーケンサ回路620は、I2Cインタフェースの方向制御を行う主制御回路810、及び2つのフリップフロップ回路820、830を有する。
【0021】
主制御回路810は、図6に示された2つの双方向デジタル入出力回路631、632のそれぞれから入力信号ii2c1、ii2c2を受信する。双方向デジタル入出力回路631は、データ・バスを介してマスターIC111から受信した信号をシーケンサ回路620への入力信号ii2c1として入力信号端子iに出力する。双方向デジタル入出力回路632は、データ・バスを介してマスターIC112から受信した信号をシーケンサ回路620への入力信号ii2c2として入力信号端子iに出力する。
【0022】
フリップフロップ回路820、830へ入力されるクロック信号CLKは、I2Cインタフェースのマスターとなるマイクロプロセッサー(MPU)等のクロック又はMPUが動作するシステム・クロックを逓倍することにより生成され、図3及び図4に示した従来のI2Cインタフェースのクロック信号SCLの周波数の約10倍以上の周波数を有することが望ましい。十分速いクロック信号が無い場合には、FPGAやASIC等に実装されている位相ロックループ(PLL)により内部クロックを逓倍することにより、I2Cインタフェースのクロック信号SCLより十分速い周波数のクロック信号を生成することが望ましい。これにより、シーケンサ回路620はI2CインタフェースのSDAバスの信号の変化を迅速に検出することができる。また、フリップフロップ回路821、822はリセット信号RSTを受信する。フリップフロップ回路821、822の動作は従来知られているので、説明を省略する。
【0023】
次に、図8及び図9を参照して主制御回路810の動作を説明する。一般にI2Cインタフェースでは、マスターとスレーブがI2Cデータ・バスにI2Cプロトコルに従って低位(Low)信号を出力することによりアクセスを行う。本発明はこの動作を利用する。つまり、シーケンサ回路620の主制御回路810は図9に示される3つの状態を有し、I2CのSDAバスの信号レベル、つまり入力信号ii2c1及びii2c2を監視し、当該信号レベルの変化に応じて当該複数の状態の間を遷移する。以下に説明する動作は、図9の下半分に示した表にも記載される。
【0024】
図9に示されるnodrv状態910は、入力信号ii2c1及びii2c2の両方がLowをドライブしていない、つまり当該入力信号がLowではない状態、又は両方ともLowをドライブしている、つまり当該入力信号がLowである状態である。主制御回路810はnodrv状態910のときにフリップフロップ回路820の出力state[1]=1(High)及びstate[0]=1(High)(以後、纏めてstate[1:0]=11のように記載する)、ii21=0(Low)、ii2c2=1(High)を受信すると、nstate[1]=0(Low)及びnstate[0]=1(High)を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=0、nstate[0]=1をそれぞれstate[1]=0、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=01を受信し、drv1状態920へ遷移する。
【0025】
主制御回路810はnodrv状態910のときにstate[1:0]=11、ii21=1、ii2c2=0を受信すると、nstate[1]=1及びnstate[0]=0を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=0をそれぞれstate[1]=1、state[0]=0として出力する。従って主制御回路810は次にstate[1:0]=10を受信し、drv2状態930へ遷移する。
【0026】
主制御回路810はnodrv状態910のときにstate[1:0]=11、上記以外の入力信号、つまりii21=0、ii2c2=0、又はii21=1、ii2c2=1を受信すると、nstate[1]=1及びnstate[0]=1を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、状態遷移を起こさずnodrv状態のままである。
【0027】
主制御回路810はnodrv状態910のときにstate[1:0]=11を受信すると、ii21、ii2c2に拘わらず、nstate[1]=1及びnstate[0]=1を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、状態遷移を起こさずnodrv状態のままである。
【0028】
図9に示されるdrv1状態920は、入力信号ii2c1がLowをドライブしている、つまり当該入力信号がLowである状態である。主制御回路810はdrv1状態920のときにstate[1:0]=01、ii21=1を受信すると、nstate[1]=1及びnstate[0]=1を出力する。このときii2c2の値は考慮されない(don’t care)。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、上述のnodrv状態910へ遷移する。
【0029】
主制御回路810はdrv1状態920のときにstate[1:0]=01、上記以外の入力信号、つまりii21=0、ii2c2=0、又はii21=0、ii2c2=1を受信すると、nstate[1]=0及びnstate[0]=1を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=0、nstate[0]=1をそれぞれstate[1]=0、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=01を受信し、状態遷移を起こさずdrv1状態920のままである。
【0030】
図9に示されるdrv2状態930は、入力信号ii2c2がLowをドライブしている、つまり当該入力信号がLowである状態である。主制御回路810はdrv2状態930のときにstate[1:0]=10、ii22=1を受信すると、nstate[1]=1及びnstate[0]=1を出力する。このときii2c1の値は考慮されない(don’t care)。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=1をそれぞれstate[1]=1、state[0]=1として出力する。従って主制御回路810は次にstate[1:0]=11を受信し、上述のnodrv状態910へ遷移する。
【0031】
主制御回路810はdrv2状態930のときにstate[1:0]=10、上記以外の入力信号、つまりii21=0、ii2c2=0、又はii21=1、ii2c2=0を受信すると、nstate[1]=1及びnstate[0]=0を出力する。フリップフロップ回路820は、クロック信号をトリガーとして、入力された信号nstate[1]=1、nstate[0]=0をそれぞれstate[1]=1、state[0]=0として出力する。従って主制御回路810は次にstate[1:0]=10を受信し、状態遷移を起こさずdrv2状態930のままである。
【0032】
以上に図8及び図9を参照して説明した論理により、主制御回路810は複数のICのうちどのICが最初にLowをドライブしたかを監視することができる。上述のようにクロック信号CLKがI2Cインタフェースのクロック信号SCLの周波数の例えば約10倍以上の周波数を有することにより、I2CのSDAバスに出力されている信号の変化を迅速に検出することが可能になる。また、図9を参照して説明された論理は数ゲートのみで実現できるので、主制御回路810は非常に小さい回路規模で実現可能である。従って、I2Cプロトコルを解釈して信号の方向を切り替える回路が少ない部品数で実現できるので、上述の第1及び第2の問題点が解決される。
【0033】
以上に1個のマスターと2個のスレーブを接続する場合を説明したが、本発明は3個以上のスレーブを接続する場合にも適用されて良い。
【0034】
図10は、レベルシフト回路(i2ccnt)1011、1012、1個のマスターIC111、及び同一の固有アドレスを有する2個のスレーブIC112、113の接続例を示す。スレーブIC112、113は、レベルシフト回路1011を介してスレーブIC112、113と異なる駆動電圧で動作するマスターIC111が接続されているSCLバスと、及びレベルシフト回路1012を介してスレーブIC112、113と異なる駆動電圧で動作するマスターIC111が接続されているSDAバスと接続される。SCLバスと接続されたレベルシフト回路1011は、スレーブ112、113を区別する必要がなくレベルシフトができれば良いので、図6に示されたレベルシフト回路610を用いて良い。双方向デジタル入出力回路1021、1022、1023、シーケンサ回路1031、1032は、それぞれ図7に示された双方向デジタル入出力回路710、図8に示されたシーケンサ回路620と同様である。
【0035】
同一の固有アドレスを有するスレーブを区別するためにマスターにより生成された切替信号と双方向デジタル入出力回路からの出力信号との論理和(OR)が、シーケンサ回路Seqへ入力される。図11のOR回路1041、1042の出力は図8のii2c1、ii2c2にそれぞれ相当する。また図11のOR回路1043、1044の出力も図8のii2c1、ii2c2にそれぞれ相当する。
【0036】
マスターIC111は、同一の固有アドレスを有するスレーブ112、113が存在する場合に、例えばスレーブ112にアクセスする場合に切替信号に0(Low)を出力し、スレーブ113にアクセスする場合に切替信号に1(High)を出力すると予め設定されて良い。切替信号は、OR回路1041、1042へ反転されずに入力され、OR回路1043、1044へ反転された後に入力される。
【0037】
マスターIC111が切替信号に0を出力すると、OR回路1042は、切り替え信号が0の間、少なくとも1つの入力が0となるので、双方向デジタル入出力回路1022から受信する信号をそのまま出力する。一方、OR回路1044は、切り替え信号が0の間、少なくとも1つの入力が1となるので、双方向デジタル入出力回路1023から受信する信号に無関係に1を出力する。従って切り替え信号が0の間、スレーブIC112が選択される。
【0038】
マスターIC111が切替信号に1を出力すると、OR回路1042は、切り替え信号が1の間、少なくとも1つの入力が1となるので、双方向デジタル入出力回路1022から受信する信号に無関係に1を出力する。一方、OR回路1044は、切り替え信号が1の間、少なくとも1つの入力が0となるので、双方向デジタル入出力回路1023から受信する信号をそのまま出力する。従って切り替え信号が1の間、スレーブIC113が選択される。
【0039】
このように、マスターIC111は、切り替え信号を用いることにより、同一の固有アドレスを有する複数のスレーブへのデータの入出力を制御することができるので、上述の第3の問題点が解決される。
【0040】
図11は、レベルシフト回路1101、1個のマスターIC111、及び同一の固有アドレスを有する3個のスレーブIC112、113、114の接続例を示す。簡単のため図11にはデータ・バスと接続されたレベルシフト回路1101のみが示される。図10と同様に、クロック・バスと接続されたレベルシフト回路は、スレーブIC112、113、114を区別する必要がなくレベルシフトができれば良いので、図6に示されたレベルシフト回路610を用いて良い。3個のスレーブIC112、113、114を区別するために、マスターは2ビットの切替信号を生成する。
【0041】
図11に示されたレベルシフト回路1101は、6個のセレクタ1111、1112、1121、1122、1131、1132、図8と同様の3個のシーケンサ回路1141〜1143、図7と同様の4個の双方向デジタル入出力回路1151〜1154を有する。マスターIC111により生成された2ビットの切替信号は、セレクタ1111、1112、1121、1122、1131、1132へ入力される。双方向デジタル入出力回路1151はマスターIC111側のDSAバスと接続され、双方向デジタル入出力回路1152〜1154はスレーブIC112、113、114側のSDAバスと接続される。シーケンサ回路1141は、セレクタ1111、1112の出力OUTからの信号を入力信号state[1]、state[0]として受信し、出力信号state[1]、state[0]をOR回路1161、双方向デジタル入出力回路1152へそれぞれ出力する。同様にシーケンサ回路1142、1143もそれぞれが接続されたセレクタの出力OUTからの信号を入力信号として受信し、出力信号をOR回路1161、及び双方向デジタル入出力回路1153又は1154へそれぞれ出力する。
【0042】
マスターIC111は、例えばスレーブIC112にアクセスする場合に切替信号00を出力し、スレーブIC113にアクセスする場合に切替信号01を出力し、スレーブIC114にアクセスする場合に切替信号10を出力すると予め設定されて良い。
【0043】
表2は、図11に示すセレクタの動作を示す。表2の()内の値は、IN信号と同じ値が出力されることを示す。
【0044】
【表2】
表2の1行目に示されるように、マスターIC111が切替信号00を送出し、IN信号が0である場合、セレクタ1111、1112(SEL1)はIN信号と同じ値、つまり0を出力する。表2の5行目に示されるように、マスターIC111が切替信号00を送出し、IN信号が1である場合、セレクタ1111、1112(SEL1)はIN信号と同じ値、つまり1を出力する。このとき、セレクタ1121、1122(SEL2)、及び1131、1132(SEL3)の出力は入力信号に拘わらず1に保持される。従ってスレーブIC112が選択される。
【0045】
表2の2行目に示されるように、マスターIC111が切替信号01を送出し、IN信号が0である場合、セレクタ1121、1122(SEL2)はIN信号と同じ値、つまり0を出力する。表2の6行目に示されるように、マスターIC111が切替信号01を送出し、IN信号が1である場合、セレクタ1121、1122(SEL2)はIN信号と同じ値、つまり1を出力する。このとき、セレクタ1111、1112(SEL1)、及び1131、1132(SEL3)の出力は入力信号に拘わらず1に保持される。従ってスレーブIC113が選択される。
【0046】
表2の3行目に示されるように、マスターIC111が切替信号10を送出し、IN信号が0である場合、セレクタ1131、1132(SEL3)はIN信号と同じ値、つまり0を出力する。表2の7行目に示されるように、マスターIC111が切替信号10を送出し、IN信号が1である場合、セレクタ1131、1132(SEL3)はIN信号と同じ値、つまり1を出力する。このとき、セレクタ1111、1112(SEL1)、及び1121、1122(SEL2)の出力は入力信号に拘わらず1に保持される。従ってスレーブIC114が選択される。
【0047】
上述のように、同一の固有アドレスを有する3個のスレーブを区別することができるので、上述の第3の問題点を解決できる。また、本発明は、切替信号のビット数を変更することにより3個より多いスレーブが接続される場合にも適用されて良い。
【0048】
以上に説明された本発明のレベルシフト回路(i2ccnt)は専用のICで実施されて良く、又は任意の論理回路を有するICの一部に実装されても良い。
【0049】
以上に説明した実施形態の他に、更に以下を開示する。
(付記1)
マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える、システム。
(付記2)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行い、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う、付記1に記載のシステム。
(付記3)
前記シーケンサ回路は、
前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信し、
前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から前記スレーブ装置へ切り替え、
前記第2の入力信号のみが0になった場合に、データの伝達方向を前記スレーブ装置から前記マスター装置へ切り替える、付記1に記載のシステム。
(付記4)
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
(付記5)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、を有する付記4に記載の方法。
(付記6)
前記シーケンサ回路は、前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信する段階、
前記シーケンサ回路は、前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から前記スレーブ装置へ切り替える段階、
前記シーケンサ回路は、前記第2の入力信号のみが0になった場合に、データの伝達方向を前記スレーブ装置から前記マスター装置へ切り替える段階、を有する付記4に記載の方法。
(付記7)
マスター装置と前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ、又は選択された前記スレーブ装置から前記マスター装置へ切り替える、システム。
(付記8)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行い、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う、付記7に記載のシステム。
(付記9)
前記シーケンサ回路は、
前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信し、
前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ切り替え、
前記第2の入力信号のみが0になった場合に、データの伝達方向を選択された前記スレーブ装置から前記マスター装置へ切り替える、付記7に記載のシステム。
(付記10)
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記マスター装置は、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成する段階、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
(付記11)
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う段階、を有する付記10に記載の方法。
(付記12)
前記シーケンサ回路は、前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信する段階、
前記シーケンサ回路は、前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ切り替える段階、
前記シーケンサ回路は、前記第2の入力信号のみが0になった場合に、データの伝達方向を選択された前記スレーブ装置から前記マスター装置へ切り替える段階、を有する付記10に記載の方法。
【図面の簡単な説明】
【0050】
【図1】従来のレベルシフト回路を用い異なる駆動電圧を有する集積回路を接続する方法を示す。
【図2】従来のLS及び任意の論理回路を1つの集積回路に集積する方法を示す。
【図3】従来のI2Cインタフェースのレベルシフト回路の構成例を示す。
【図4】従来のアナログ・インタフェースを用いずにI2Cインタフェースのレベルシフトを実現する方法を示す。
【図5】従来の複数の集積回路を1本のデータ・バスに接続するI2Cインタフェースの構成例を示す。
【図6】本発明によるI2Cインタフェースのレベルシフト回路の構成例を示す。
【図7】図6のレベルシフト回路に用いられる、従来知られている双方向デジタル入出力回路を示す。
【図8】図6のシーケンサ回路の詳細な構成を示す図である。
【図9】図6の主制御回路の状態遷移図である。
【図10】図6のレベルシフト回路、1個のマスター、及び同一の固有アドレスを有する2個のスレーブの接続例を示す。
【図11】図6のレベルシフト回路、1個のマスター、及び同一の固有アドレスを有する3個のスレーブの接続例を示す。
【符号の説明】
【0051】
111〜115、210 集積回路(IC)
120、410、610、1011、1012 レベルシフト回路
130 論理回路
310 アナログ双方向レベルシフト回路
420 デジタル入出力回路(I/O)
430 I2Cマスター/スレーブ回路
620、1031 シーケンサ回路
630、631、632、1021〜1023、1151〜1154 双方向デジタル入出力回路(I/O)
810 主制御回路
821、822 フリップフロップ
1041〜1045、1161 OR回路
1111、1112、1121、1122、1131、1132 セレクタ
【特許請求の範囲】
【請求項1】
マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える、システム。
【請求項2】
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行い、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う、請求項1に記載のシステム。
【請求項3】
前記シーケンサ回路は、
前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信し、
前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から前記スレーブ装置へ切り替え、
前記第2の入力信号のみが0になった場合に、データの伝達方向を前記スレーブ装置から前記マスター装置へ切り替える、請求項1に記載のシステム。
【請求項4】
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
【請求項5】
マスター装置と前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ、又は選択された前記スレーブ装置から前記マスター装置へ切り替える、システム。
【請求項6】
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記マスター装置は、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成する段階、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
【請求項1】
マスター装置と前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える、システム。
【請求項2】
前記第1及び第2の双方向デジタル入出力回路及び前記シーケンサ回路は同一の集積回路に実装され、
前記第1の双方向デジタル入出力回路は、前記第1の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行い、
前記第2の双方向デジタル入出力回路は、前記第2の駆動電圧を、前記同一の集積回路の内部電圧に変換することによりレベルシフトを行う、請求項1に記載のシステム。
【請求項3】
前記シーケンサ回路は、
前記第1の双方向デジタル入出力回路を介して前記第1のデータ・バスの信号を第1の入力信号として受信し、前記第2の双方向デジタル入出力回路を介して前記第2のデータ・バスの信号を第2の入力信号として受信し、
前記第1の入力信号のみが0になった場合に、データの伝達方向を前記マスター装置から前記スレーブ装置へ切り替え、
前記第2の入力信号のみが0になった場合に、データの伝達方向を前記スレーブ装置から前記マスター装置へ切り替える、請求項1に記載のシステム。
【請求項4】
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御されるスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
【請求項5】
マスター装置と前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェースを有するシステムであって、
前記マスター装置は、第1のデータ・バスと接続され、第1の駆動電圧で動作し、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成し、
前記スレーブ装置は、前記第1のデータ・バスと異なる第2のデータ・バスと接続され、前記第1の駆動電圧と異なる第2の駆動電圧で動作し、
前記システムは、
それぞれ前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び
前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有し、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力に基づき、データの伝達方向を前記マスター装置から選択された前記スレーブ装置へ、又は選択された前記スレーブ装置から前記マスター装置へ切り替える、システム。
【請求項6】
第1のデータ・バスと接続され第1の駆動電圧で動作するマスター装置と、前記第1のデータ・バスと異なる第2のデータ・バスと接続され前記第1の駆動電圧と異なる第2の駆動電圧で動作する前記マスター装置により制御される同一の固有アドレスを有する複数のスレーブ装置との間のインタフェースをとるI2Cインタフェース、前記第1及び第2の駆動電圧の間のレベルシフト機能を有する第1及び第2の双方向デジタル入出力回路、及び前記第1及び第2の双方向デジタル入出力回路を制御するシーケンサ回路、を有するシステムにおける方法であって、
前記方法は、
前記マスター装置は、前記複数のスレーブ装置の中から1つを選択する切り替え信号を生成する段階、
前記シーケンサ回路は、前記第1及び第2の双方向デジタル入出力回路の出力を監視する段階、及び
前記出力に基づき、データの伝達方向を前記マスター装置から前記スレーブ装置へ、又は前記スレーブ装置から前記マスター装置へ切り替える段階、を有する方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−68321(P2010−68321A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−233447(P2008−233447)
【出願日】平成20年9月11日(2008.9.11)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願日】平成20年9月11日(2008.9.11)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]