説明

通信インタフェース装置及び通信方法

【課題】複雑な制御を要することなく2つの異なるインタフェース回路の一方のインタフェース回路での通信動作中に他方のインタフェース回路での通信動作が行われないようにする。
【解決手段】通信インタフェース装置は、第1の端子201に接続されたチップセレクト端子、第2の端子202に接続されたクロック端子、及び第3の端子203に接続されたデータ端子を有するSPIインタフェース回路101と、第1の端子201に接続されたクロック端子、及び第3の端子203に接続されたデータ端子を有するI2Cインタフェース回路102とを備え、SPIインタフェース回路101で通信する場合は、第1の端子201に固定信号を入力し、第2の端子202にクロック信号を入力し、第3の端子203にデータ信号を入力し、I2Cインタフェース回路102で通信する場合は、第1の端子201にクロック信号を入力し、第3の端子203にデータ信号を入力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信インタフェース装置及び通信方法に関し、特に異なる複数のインタフェースプロトコルで通信可能な通信インタフェース装置及び通信方法に関するものである。
【背景技術】
【0002】
従来、SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)等の様々なシリアルバスインタフェースが、CPU及び周辺機器間通信、チップ間通信に広く用いられている。SPIは、3線式のシリアルバスインタフェースの1つとして知られ、I2Cは2線式のシリアルバスインタフェースの1つとして知られ、一般的に広く用いられている。従って、近年、多くの集積回路に、2線式及び3線式の双方に対応可能なように、両方のインタフェース回路が搭載されている。
【0003】
2種類のインタフェースプロトコルを認識する方法として、従来は、シリアルバス通信に必要な端子の他に、プロトコル認識(選択)のための端子を別途設け、当該端子に対して外部からプロトコルを選択するための選択信号を入力し、2線式、3線式のいずれかの回路を選択させて動作させていた。
【0004】
これに対して、2種類のインタフェースプロトコルを自動的に認識する方法が提案されている。例えば、特許文献1には、クロック端子及びデータ端子を2線式及び3線式で共有し、チップイネーブル信号でプロトコルを判別する方法が開示され、特許文献2には、データ転送前にプロトコル認識のための特殊な信号を送る(ダミーアクセス)ことにより、プロトコル認識を行う方法が開示されている
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−232508号公報
【特許文献2】特開昭63−250759号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の方法では、誤動作の原因となる問題があった。
ここで、図7及び図8を用いて、この誤動作について説明する。
【0007】
図7は、上記特許文献1に記載の手法を用いて、CPU300と、LSI(Large Scale Integration)301、302との間で通信を行う通信回路の構成例である。LSI301、302の各々は、I2C及びSPIの双方のインタフェースプロトコルで動作可能に構成されている。
【0008】
クロック信号clkを伝送するクロック線305、及びデータ信号dataを伝送するデータ線306は、各々2分岐して、LSI301、LSI302の各々に接続されている。従って、CPU300から信号が入力される端子のうち、LSI301に対して供給するクロック信号clk、及びLSI302に対して供給するクロック信号clkが共通の端子から入力され、LSI301に対して転送するデータ信号data、及びLSI302に対して転送するデータ信号dataも共通の端子(ただしクロック信号clkが入力される端子とは異なる)から入力される構成となっている。
【0009】
チップセレクト線303は、LSI302に対してチップセレクト信号cs1を伝送する。チップセレクト線304は、LSI301に対してチップセレクト信号cs2を伝送する。
【0010】
チップセレクト信号cs1がLowレベルのときに、LSI302とCPU300との間でSPI通信が行われる。LSI302とCPU300との間でSPI通信が行われる期間は、LSI301が動作しないよう(通信を行わないよう)、チップセレクト信号cs2はHighレベルにされる。
【0011】
また、チップセレクト信号cs2がLowレベルのときに、LSI301とCPU300との間でSPI通信が行われる。LSI301とCPU300との間でSPI通信が行われる期間は、LSI302が動作しないよう(通信を行わないよう)、チップセレクト信号cs1はHighレベルにされる。
【0012】
なお、この通信回路には、レジスタ等が接続されており、LSI301、302のうち、チップセレクト信号cs1、cs2により選択され動作したLSIから出力されたデータ信号が示すデータが、当該接続されているレジスタ等に書込み(ライト)される。
【0013】
ここで、LSI302を介して、SPI通信により、レジスタのアドレス0x11にデータ0xffをライトする場合を例に挙げて説明する。
【0014】
図8(A)は、LSI302に対する信号のタイムチャートを示す図であり、図8(B)は、LSI301に対する信号のタイムチャートを示す図である。図8(A)に示すように、LSI302を動作させるため、まずチップセレクト信号cs1をLowレベルにして、アドレス0x11を転送し、アドレス転送終了後、データ転送を行う。
【0015】
このように、LSI302だけ見れば正常に通信可能だが、データ信号を入力する端子、クロック信号を入力する端子を各LSI間で共用していることによって、チップセレクト信号cs2以外はLSI301にも同じ信号が入力されることになる。
【0016】
LSI301については、チップセレクト信号cs2がHighレベル固定となるため、SPI通信は成立しない。しかしながら、I2Cインタフェースプロトコルでの動作の観点から見ると、クロック信号clkがHighのときに、データ信号dataがLowに変化したところで、I2Cのスタートコンディションを満たしてしまう。
【0017】
また、I2Cプロトコルにおいては、各LSIに、LSI固有のスレーブアドレスが割り当てられている。通常、I2Cプロトコルではスタートコンディションの後に、通信相手先を示すスレーブアドレスが送信されるが、本例において、LSI301の固有のスレーブアドレスが0x1fである場合、図8(B)に示すように、スタートコンディションの後、データ信号dataとして、当該スレーブアドレス0x1fに一致する信号が送信されると、LSI301は、I2Cアクセスされたと誤認識してしまう。
【0018】
これにより、LSI301は、図8(B)の円で囲んだ区間において、アクノリッジとしてデータ線306を介してCPU300にLowレベルの信号を送信しようとする。一方、CPU300は、通常通り、SPIプロトコルでLSI302にデータを送信しようとするが、LSI301がデータ線306のレベルをLowレベルにしようとするため、LSI302に対するデータが、アクノリッジ区間で化けてしまう可能性がある。すなわち、アクノリッジ区間において、CPUがHドライブ、LSI301がLドライブで動作することにより、通信品質が著しく低下し誤動作の原因となってしまう。
【0019】
これは、LSI301に供給するデータ信号を入力する端子及びLSI302に供給するデータ信号を入力する端子を共通にしているだけでなく、LSI301に供給するクロック信号を入力する端子及びLSI302に供給するクロック信号を入力する端子を共通にしていることにより生ずる問題である。
【0020】
また、上記特許文献2に記載の方法では、特殊なアクセス(ダミーアクセス)を使ってプロトコルを認識しており、インタフェースバスに複数のLSIが接続された場合(例えば、当該複数のLSIに、ダミーアクセスが必要なLSIとダミーアクセスが不要なLSIとが混在していた場合)には、制御が複雑になる問題があった。
【0021】
本発明は、上述した課題を解決するために提案されたものであり、複雑な制御を要することなく2つの異なるインタフェース回路の一方のインタフェース回路での通信動作中に他方のインタフェース回路での通信動作が行われないようにすることができる通信インタフェース装置及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【0022】
上記課題を解決するために、請求項1の発明の通信インタフェース装置は、第1の端子に接続されたチップセレクト端子、第2の端子に接続されたクロック端子、及び第3の端子に接続されたデータ端子を有する第1のインタフェース回路と、前記第1の端子に接続されたクロック端子、及び前記第3の端子に接続されたデータ端子を有する第2のインタフェース回路と、を備え、前記第1のインタフェース回路で通信する場合には、前記第1の端子に予め定められたレベルに固定された固定信号が入力され、前記第2の端子にクロック信号が入力され、前記第3の端子にデータ信号が入力され、前記第2のインタフェース回路で通信する場合には、前記第1の端子にクロック信号が入力され、前記第3の端子にデータ信号が入力される。
【0023】
このように、第1のインタフェース回路に供給するクロック信号を入力する端子と、第2のインタフェース回路に供給するクロック信号を入力する端子とを異ならせたため、複雑な制御を要することなく一方のインタフェース回路での通信動作中に他方のインタフェース回路での通信動作が行われないようにすることができる。なお、前記第1のインタフェース回路で通信する場合に前記第1の端子に入力される固定信号は、前記第2のインタフェース回路の通信開始条件を満たさないレベルの固定信号とすることができる。
【0024】
請求項2の発明は、請求項1に記載の通信インタフェース装置において、前記第2のインタフェース回路で通信する場合には、更に前記第2の端子に予め定められたレベルに固定された固定信号が入力され、前記第2の端子に入力された信号が固定信号の場合には、前記第1のインタフェース回路から出力された信号を選択し、前記第2の端子に入力された信号がクロック信号の場合には、前記第2のインタフェース回路から出力された信号を選択する選択部を更に備えて構成されている。
【0025】
このように、第1のインタフェース回路で通信する場合と第2のインタフェース回路で通信する場合とで入力される信号が異なる第2の端子に入力された信号に応じて、第1のインタフェース回路から出力された信号又は第2のインタフェース回路から出力された信号を選択するように構成したため、複雑な制御を要することなく一方のインタフェース回路での通信動作中に当該一方のインタフェース回路から出力された信号を選択することができる。
【0026】
請求項3の発明は、請求項2に記載の通信インタフェース装置において、前記選択部は、前記第1のインタフェース回路から出力された信号及び前記第2のインタフェース回路から出力された信号のいずれかを選択するための選択信号が入力され、前記入力された選択信号が第1のレベルのときに前記第1のインタフェース回路から出力された信号を選択し、前記入力された選択信号が第2のレベルのときに前記第2のインタフェース回路から出力された信号を選択するセレクタと、前記第2の端子に接続されたクロック端子、及び当該クロック端子に入力された信号がクロック信号である場合に前記第1のレベルの選択信号を前記セレクタに出力し、当該クロック端子に入力された信号が固定信号である場合に前記第2のレベルの選択信号を前記セレクタに出力する出力端子を有するDフリップフロップと、を有するものである。
【0027】
これにより簡易な構成で、適切な信号を選択することができる。
【0028】
請求項4の発明は、請求項3に記載の通信インタフェース装置において、前記Dフリップフロップのクロック端子と前記第2の端子との間に、外乱ノイズを除去するノイズフィルタを更に備えている。
【0029】
このような構成によれば、外乱ノイズによってDフリップフロップが誤動作することを抑制することができ、Dフリップフロップからセレクタに対して適切な選択信号を入力できる。
【0030】
請求項5の発明は、請求項3に記載の通信インタフェース装置において、前記Dフリップフロップは、前記Dフリップフロップがリセット状態において、前記Dフリップフロップの出力端子から前記セレクタに前記第2のレベルの選択信号が入力されるように構成され、前記第1のインタフェース回路及び前記第2のインタフェース回路の少なくとも一方の通信状況を検出し、前記第1のインタフェース回路が通信中でないこと、又は前記第2のインタフェース回路の通信中であることが検出されている期間は前記Dフリップフロップがリセット状態となるように制御する検出制御部を更に備えている。
【0031】
このような構成によれば、外乱ノイズによらず、第2のインタフェース回路の通信中にセレクタに第2のレベルの選択信号を入力させることができる。
【0032】
請求項6の発明は、請求項1に記載の通信インタフェース装置において、前記第1の端子に入力された信号がクロック信号の場合には、前記第1のインタフェース回路から出力された信号を選択し、前記第1の端子に入力された信号が固定信号の場合には、前記第2のインタフェース回路から出力された信号を選択する選択部を更に備えている。
【0033】
このように、第1のインタフェース回路で通信する場合と第2のインタフェース回路で通信する場合とで入力される信号が異なる第2の端子に入力された信号に応じて、第1のインタフェース回路から出力された信号又は第2のインタフェース回路から出力された信号を選択するように構成したため、複雑な制御を要することなく一方のインタフェース回路での通信動作中に当該一方のインタフェース回路から出力された信号を選択することができる。
【0034】
請求項7の発明は、請求項6に記載の通信インタフェース装置において、前記選択部は、前記第1のインタフェース回路から出力された信号及び前記第2のインタフェース回路から出力された信号のいずれかを選択するための選択信号が入力され、前記入力された選択信号が第1のレベルのときに前記第1のインタフェース回路から出力された信号を選択し、前記入力された選択信号が第2のレベルのときに前記第2のインタフェース回路から出力された信号を選択するセレクタと、前記第1の端子に接続されたクロック端子と、当該クロック端子に入力された信号が固定信号である場合に前記第1のレベルの選択信号を前記セレクタに出力し、当該クロック端子に入力された信号がクロック信号である場合に前記第2のレベルの選択信号を前記セレクタに出力する出力端子を有するDフリップフロップと、を有する。
【0035】
これにより簡易な構成で、適切な信号を選択することができる。
【0036】
請求項8の発明は、請求項7に記載の通信インタフェース装置において、前記Dフリップフロップのクロック端子と前記第1の端子との間に、外乱ノイズを除去するノイズフィルタを更に備えた。
【0037】
このような構成によれば、外乱ノイズによってDフリップフロップが誤動作することを抑制することができ、Dフリップフロップからセレクタに対して適切な選択信号を入力できる。
【0038】
請求項9の発明は、請求項7に記載の通信インタフェース装置において、前記Dフリップフロップは、前記Dフリップフロップがリセット状態において、前記Dフリップフロップの出力端子から前記セレクタに前記第1のレベルの選択信号が入力されるように構成され、前記第1のインタフェース回路及び前記第2のインタフェース回路の少なくとも一方の通信状況を検出し、前記第1のインタフェース回路が通信中であること、又は前記第2のインタフェース回路が通信中でないことが検出されている期間は前記Dフリップフロップがリセット状態となるように制御する検出制御手段を更に備えている。
【0039】
このような構成によれば、外乱ノイズによらず、第1のインタフェース回路の通信中にセレクタに第1のレベルの選択信号を入力させることができる。
【0040】
請求項10の発明の通信方法は、第1の端子に接続されたチップセレクト端子、第2の端子に接続されたクロック端子、及び第3の端子に接続されたデータ端子を有する第1のインタフェース回路と、前記第1の端子に接続されたクロック端子、及び前記第3の端子に接続されたデータ端子を有する第2のインタフェース回路と、を備えた通信インタフェース装置において通信するにあたり、前記第1のインタフェース回路で通信する場合には、前記第1の端子に予め定められたレベルに固定された固定信号を入力し、前記第2の端子にクロック信号を入力し、前記第3の端子にデータ信号を入力し、前記第2のインタフェース回路で通信する場合には、前記第1の端子にクロック信号を入力し、前記第3の端子にデータ信号を入力するものである。
【0041】
このような方法によれば、請求項1と同様の作用を奏するため、複雑な制御を要することなく2つの異なるインタフェース回路の一方のインタフェース回路での通信動作中に他方のインタフェース回路での通信動作が行われないようにすることができる。
【発明の効果】
【0042】
以上説明したように本発明によれば、複雑な制御を要することなく2つの異なるインタフェース回路の一方のインタフェース回路での通信動作中に他方のインタフェース回路での通信動作が行われないようにすることができる、という効果を奏する。
【図面の簡単な説明】
【0043】
【図1】第1の実施の形態に係る通信インタフェース装置の回路図である。
【図2】I2C通信中の信号の流れを説明する説明図である。
【図3】SPI通信中の信号の流れを説明する説明図である。
【図4】第2の実施の形態に係る通信インタフェース装置の回路図である。
【図5】第3の実施の形態に係る通信インタフェース装置の回路図である。
【図6】第4の実施の形態に係る通信インタフェース装置の回路図である。
【図7】CPUと、2つのLSIとの間で3線式の通信を行う場合の通信回路の構成例を示す図である。
【図8】(A)は、一方のLSIに対する信号のタイムチャートを示し、(B)は、他方のLSIに対する信号のタイムチャートを示す図である。
【発明を実施するための形態】
【0044】
以下、実施の形態について図面を参照しながら詳細に説明する。
【0045】
[第1の実施の形態]
【0046】
図1は、第1の実施の形態に係る通信インタフェース装置の回路図である。
【0047】
本実施の形態に係る通信インタフェース装置は、3線式のシリアルバスインタフェースプロトコルの1つであるSPI(Serial Peripheral Interface)で通信を行うSPIインタフェース回路101、及び2線式のシリアルバスインタフェースプロトコルの1つであるI2C(Inter-Integrated Circuit)で通信を行うI2Cインタフェース回路102、Dフリップフロップ回路(以下、DFF)103、セレクタ104、第1の端子201、第2の端子202、及び第3の端子203を備えている。
【0048】
SPIインタフェース回路101には、チップセレクト信号csが入力されるためのチップセレクト端子と、クロック信号clkが入力されるためのクロック端子と、データ信号dataが入力されるためのデータ端子とが設けられている。
【0049】
I2Cインタフェース回路102には、クロック信号clkが入力されるためのクロック端子と、データ信号dataが入力されるためのデータ端子とが設けられている。
【0050】
第1の端子201は、SPIインタフェース回路101のチップセレクト端子と、I2Cインタフェース回路102のクロック端子とに接続されている。第2の端子202は、SPIインタフェース回路101のクロック端子と、DFF103のクロック端子に接続されている。第3の端子203は、SPIインタフェース回路101のデータ端子と、I2Cインタフェース回路102のデータ端子とに接続されている。
【0051】
DFF103のD端子は、電源電圧VDDを供給する電源に接続されている。DFF103のQ端子は、セレクタ104に接続されている。DFF103は、DFF103に設けられているクリア端子に対して、Highレベルの信号(リセット信号)が入力されるとリセットされ、DFF103のクロック端子に対してクロック信号が入力されない限り、Q端子からの出力がLowレベルに固定される。従って、リセット状態(初期状態)においては、DFF103の非反転出力端子であるQ端子の出力はLowレベルとなっている。なお、本実施の形態のDFF103には、プリセット信号が入力されることによりQ端子の出力をHighレベルにしてリセット状態にするプリセット端子は設けられていない、或いは設けられていても使用しない構成とする。
【0052】
SPIインタフェース回路101の出力端子、及びI2Cインタフェース回路102の出力端子の各々は、セレクタ104に接続されている。SPIインタフェース回路101の出力端子からは、SPIインタフェース回路101に入力された信号の各々がセレクタ104に出力され、I2Cインタフェース回路102の出力端子からは、I2Cインタフェース回路102に入力された信号の各々がセレクタ104に出力される。
【0053】
セレクタ104は、DFF103のQ端子から出力された信号に応じて、SPIインタフェース回路101の出力端子から出力された信号と、I2Cインタフェース回路102の出力端子から出力された信号とを排他的に選択する。本実施の形態では、DFF103のQ端子から出力された信号が、Highレベル(1)であった場合には、SPIインタフェース回路101の出力端子から出力された信号を選択し、DFF103のQ端子から出力された信号が、Lowレベル(0)であった場合には、I2Cインタフェース回路102の出力端子から出力された信号を選択する。セレクタ104は、選択したデータ信号が示すアドレス(レジスタのアドレス)に、当該アドレスに続いて選択した信号が示すデータを出力する(書き込む)。
【0054】
また、本実施の形態において、2線式のI2Cで通信を行う場合には、第2の端子202に入力する信号をGNDレベル、すなわちLowレベルに固定して使用する構成としている。もちろん、これに限定されるものではなく、2線式のI2Cで通信を行う場合に、第2の端子202に入力する信号をVDDレベル、すなわちHighレベルに固定して使用する構成としもよい。
【0055】
また、本実施の形態において、不図示のCPU(Central Processing Unit)が、第1の端子201、第2の端子202、及び第3の端子203の各々に接続され、これら各端子に信号を入力するものとするが、何らかの制御回路等、各端子に信号を入力するものであればよく、CPUに限定されない。
【0056】
まず、2線式のI2Cインタフェースプロトコルで通信を行う場合の動作について図2を参照して説明する。
【0057】
CPUは、事前にDFF103のクリア端子にリセット信号を入力してDFF103をリセット状態にし、第1の端子201にクロック信号clkを入力し、第3の端子203にはデータ信号dataを入力する。具体的には、I2Cのスタートコンディションのための信号を第1の端子201及び第3の端子203に入力した後、クロック信号を第1の端子201に入力すると共に、アドレス情報、及び転送するデータを第3の端子203に入力する。
【0058】
なお、CPUが事前にDFF103のクリア端子に対してリセット信号を入力したリセット状態においては、DFF103のクロック端子にクロック信号が入力されない限り、DFF103のQ端子の出力がLowレベル固定となる。I2Cインタフェースプロトコルでの通信中は、前述したように、第2の端子202をLowレベル(またはHighレベル)に固定するため、DFF103は動作しない。すなわち、DFF103のQ端子の出力のLowレベル固定状態が継続される。
【0059】
これにより、セレクタ104は、I2Cインタフェース回路102の出力信号を選択して、レジスタに出力する(書き込む)。
【0060】
次に、3線式のSPIインタフェースプロトコルで通信を行う場合の動作について図3を参照して説明する。
【0061】
CPUは、第1の端子201には、SPIインタフェース回路101にSPI通信動作を許可するチップセレクト信号であって、I2Cインタフェース回路102のスタートコンディションを満たさないようにするためのチップセレクト信号を入力する。具体的には、第1の端子201にLowレベル固定のチップセレクト信号csを入力する。SPIインタフェース回路101は、第1の端子201から入力されたチップセレクト信号csによりSPI通信が許可されたことを認識する。また、CPUは、第2の端子202にクロック信号clkを入力すると共に、第3の端子203にデータ信号dataとして、アドレス情報と、転送すべきデータとを入力し転送する。
【0062】
このとき、第2の端子202にはクロック信号clkが入力されるため、DFF103が動作する。DFF103のD端子には、電源VDDレベル(Highレベル)の信号が入力されているため、Q端子からはHighレベル(1)の信号が出力される。セレクタ104は、Highレベルの信号を受けて、SPIインタフェース回路101の出力信号を選択して、レジスタに出力する(書き込む)。
【0063】
なお、I2Cインタフェース回路102のクロック端子には、Lowレベル固定の信号が入力されるため、I2Cのスタートコンディション(クロック信号clkがHighのときに、データ信号dataがLowに変化する)を満たす状態にはならない。従って、I2Cインタフェース回路102からCPUにアクノリッジを出力することはない。
【0064】
以上説明したように、SPIインタフェース回路101のクロック端子にクロック信号clkを入力するための端子と、I2Cインタフェース回路102のクロック端子にクロック信号clkを入力するための端子とを共用しないことにより、誤認識を起こさないという効果がある。また、プロトコル認識のためのダミーアクセスが不要なため、制御が複雑にならない、という効果がある。
【0065】
更に又、別途端子を設けることなく、プロトコル認識、出力信号の選択ができるため、チップサイズの増大を抑制できる。例えば、縦横4×4の端子から1端子増やす場合は、4×5或いは5×5の端子配列とする必要があり(通常は、端子配列は矩形状、面積的な効果を考慮すれば正方形状が好ましいため)、端子を1つ増やすだけで、チップサイズの増大につながる。そこで、上記のように通信インタフェース装置を構成することで、こうした面積的な要請にも対応することができる。特に、WCSP(Wafer level Chip Size Package)等の小型パッケージを実現するためには有利である。現在のWCSPは、基板搭載時の信頼性を確保するため、端子の大きさは一定以上の大きさにすることが要求されている。従って、チップサイズを小さくすればするほど搭載できる端子数が減ることになる。このように、端子の大きさを一定以上確保しつつパッケージサイズを小さくするべく製造される超小型集積回路にとっては上記構成は特に有利となる。
【0066】
[第2の実施の形態]
【0067】
第2の実施の形態に係る通信インタフェース装置の回路図を図4に示す。第1の実施の形態と異なる点は、DFF103のクロック信号経路(第2の端子202とDFF103のクロック端子との間)に、ノイズフィルタ105を追加した点である。
【0068】
第1の実施の形態で説明したように、I2C通信を行う場合には、第2の端子202をVDD又はGNDに固定する。このように、CPUが固定の信号を入力している状態ではあるが、外部ノイズなどの影響により信号レベルに変動が生じる可能性もある。そこで、本実施の形態では、ノイズフィルタ105を追加して、第2の端子202から入力された信号に混入した外乱ノイズをフィルタリング(除去)し、DFF103に影響を与えないようにする。
【0069】
このように、外乱ノイズをフィルタリングするノイズフィルタ105を設けることで、外乱ノイズによる誤動作を防ぐことができる。
【0070】
[第3の実施の形態]
【0071】
第3の実施の形態に係る通信インタフェース装置の回路図を図5に示す。第2の実施の形態では、外乱ノイズをノイズフィルタ105により除去して、I2C通信中のQ端子出力をLowレベル固定とする例について説明したが、本実施の形態では、ノイズフィルタ105の代わりに、SPIインタフェース回路101の通信状況を検出する通信ステータス検出器106を設けて、外乱ノイズによらずI2C通信中のQ端子出力をLowレベル固定とする構成について説明する。
【0072】
通信ステータス検出器106は、例えば、SPIインタフェース回路101のチップセレクト端子に入力された信号、或いは、SPIインタフェース回路101のクロック端子に入力された信号を監視して、SPIインタフェース回路101の通信状況を検出する。より具体的には、SPIインタフェース回路101のチップセレクト端子に入力された信号が、Lowレベル固定であれば、SPIインタフェース回路101がSPI通信中であると認識し、レベルが周期的に変動する信号であれば、SPI通信は行われていないと認識する。また、SPIインタフェース回路101のクロック端子に入力された信号が周期的にレベルが変動する信号であれば、SPI通信中であると認識し、Lowレベル或いはHighレベル固定であれば、SPI通信は行われていないと認識する。
【0073】
そして、通信ステータス検出器106は、SPI通信中であることが検出されている期間は、DFF103のクリア端子を解除しておき(DFF103のクリア端子にHighレベルのリセット信号を入力しない)、SPI通信中であることが検出されていない期間はクリア端子にリセット信号を出力してDFF103をリセット状態にしておく。これにより、第2の実施例と同様の効果が得られる。
【0074】
また、通信ステータス検出器106を第2の端子202に直接接続して、SPIインタフェース回路101の通信状況を検出するように構成してもよい。
【0075】
なお、ここでは、通信ステータス検出器106が、SPIインタフェース回路101の通信状況を検出するものとして説明したが、これに限定されず、例えば、I2Cインタフェース回路102のクロック端子に入力される信号を監視して、I2Cインタフェース回路102の通信状況を検出するものとしてもよい。すなわち、I2C通信中であることが検出されている期間は、クリア端子にリセット信号を出力してDFF103をリセット状態にしておき、I2C通信中であることが検出されない期間はDFF103のクリア端子を解除しておく(DFF103のクリア端子にHighレベルのリセット信号を入力しない)。また、通信ステータス検出器106を第1の端子201に直接接続して、I2Cインタフェース回路102の通信状況を検出するように構成してもよい。
【0076】
また、通信ステータス検出器106が、SPIインタフェース回路101の通信状況及びI2Cインタフェース回路102の通信状況の双方を検出するようにしてもよい。
【0077】
[第4の実施の形態]
【0078】
第4の実施の形態に係る通信インタフェース装置の回路図を図6に示す。
【0079】
ここで、第1の実施の形態に係る通信インタフェース装置と本実施の形態に係る通信インタフェース装置との相違点を説明する。本実施の形態に係るDFF103のクロック端子は、第2の端子202に代えて、第1の端子201に接続されている。また、セレクタ104には、DFF103の非反転出力端子であるQ端子に代えて、反転出力端子である/Q端子が接続されている。また、本実施の形態では、第2の端子202はDFF103に接続されていないため、I2C通信中に第2の端子202に入力する信号は特に限定されない。
【0080】
本実施の形態において、2線式のI2Cインタフェースプロトコルで通信を行う場合の動作について説明する。
【0081】
CPUが、第1の端子201にクロック信号clkを入力し、第3の端子203にはデータ信号dataを入力する。具体的には、I2Cのスタートコンディションのための信号を第1の端子201及び第3の端子203に入力した後、クロック信号を第1の端子201に入力すると共に、アドレス情報、及び転送するデータを第3の端子203に入力する。
【0082】
このとき、DFF103のクロック端子には、第1の端子201に入力されたクロック信号clkが入力されるため、DFF103が動作する。DFF103のD端子には、電源VDDレベル(Highレベル)の信号が入力されているため、/Q端子からはLowレベルの信号が出力される。セレクタ104は、このLowレベルの信号を受けて、I2Cインタフェース回路102の出力信号を選択して、レジスタに出力する(書き込む)。
【0083】
次に、3線式のSPIインタフェースプロトコルで通信を行う場合の動作について説明する。
【0084】
CPUは、事前にDFF103のクリア端子にリセット信号を入力してDFF103をリセット状態にし、第1の端子201にLowレベル固定のチップセレクト信号csを入力する。また、CPUは、第2の端子202にクロック信号clkを入力すると共に、第3の端子203にデータ信号dataとして、アドレス情報と、転送すべきデータとを入力し転送する。
【0085】
なお、CPUが事前にDFF103のクリア端子に対してリセット信号を入力したリセット状態においては、DFF103のクロック端子にクロック信号が入力されない限り、DFF103の/Q端子の出力がHighレベル固定となる。前述したように、SPI通信中は、第1の端子201をLowレベルに固定するため、DFF103は動作しない。すなわち、DFF103の/Q端子の出力のHighレベル固定状態が継続される。従って、セレクタ104は、SPIインタフェース回路101の出力信号を選択して、これをレジスタに出力する(書き込む)。
【0086】
更に、I2Cインタフェース回路102のクロック端子には、Lowレベル固定の信号が入力されるため、I2Cのスタートコンディション(クロック信号clkがHighのときに、データ信号dataがLowに変化する)を満たす状態にはならない。従って、I2Cインタフェース回路102からCPUにアクノリッジを出力することはない。
【0087】
このような構成によっても、上記第1の実施の形態と同様の効果を奏する。
【0088】
また、図6に示した通信インタフェース装置において、第2の実施の形態と同様に、DFF103のクロック信号経路(第1の端子201とDFF103のクロック端子との間)に、ノイズフィルタ105を設けてもよい。
【0089】
更にまた、図6に示した通信インタフェース装置に、第3の実施の形態と同様に、通信ステータス検出器106を設けてもよい。通信ステータス検出器106は、SPI通信中であることが検出されている期間は、クリア端子にリセット信号を出力してDFF103をリセット状態にしておき、SPI通信中であることが検出されない期間は、DFF103のクリア端子を解除しておく(DFF103のクリア端子にHighレベルのリセット信号を入力しない)。また、通信ステータス検出器106が、I2Cインタフェース回路102の通信状況を検出するものとした場合には、I2C通信中であることが検出されている期間は、DFF103のクリア端子を解除しておき(DFF103のクリア端子にHighレベルのリセット信号を入力しない)、I2C通信中であることが検出されない期間はクリア端子にリセット信号を出力してDFF103をリセット状態にしておく。これにより、第3の実施の形態と同様の効果が得られる。
【0090】
また、通信ステータス検出器106が、SPIインタフェース回路101の通信状況及びI2Cインタフェース回路102の通信状況の双方を検出するようにしてもよい。
【0091】
[その他の実施の形態]
【0092】
上記第1〜第4の実施の形態において説明した構成以外にも、様々な構成を適用できる。例えば、上記では、DFF103のクリア端子をアクティブハイとしたが、アクティブローとしてもよい。この場合、クリア端子にLowレベルのリセット信号を入力してリセットする。
【0093】
また、上記第1〜第4の実施の形態では、DFF103からセレクタ104に入力される信号がHighレベル(1)のときには、SPIインタフェース回路101の出力信号が選択され、Lowレベル(0)のときには、I2Cインタフェース回路102の出力信号が選択される例について説明したが、これに限定されず、例えば、以下のように構成して、DFF103からセレクタ104に入力される信号がHighレベル(1)のときには、I2Cインタフェース回路102の出力信号が選択され、Lowレベル(0)のときには、SPIインタフェース回路101の出力信号が選択されるようにしてもよい。
【0094】
第1〜第3の実施の形態において、DFF103のQ端子をセレクタ104に接続する代わりに反転出力端子である/Q端子をセレクタ104に接続する。また、第4の実施の形態において、DFF103の/Q端子をセレクタ104に接続する代わりにQ端子をセレクタ104に接続する。そして、セレクタ104は、/Q端子から出力された信号がHighレベル(1)の場合に、I2Cインタフェース回路102の出力端子から出力された信号を選択し、DFF103の/Q端子から出力された信号が、Lowレベル(0)であった場合には、SPIインタフェース回路101の出力端子から出力された信号を選択する。
【0095】
また、上記実施の形態のDFF103には、リセット信号(アクティブローの場合には、リセット信号はLowレベルの信号とし、アクティブハイの場合にはHighレベルの信号とする)が入力されることによりQ端子の出力をHighレベル固定にするプリセット端子は設けられていない、或いは設けられていても使用しない構成とする例について説明したが、例えば、DFF103にこのプリセット端子が設けられており、リセット時にはこのプリセット端子を用いてリセットする構成としてもよい。このように構成する場合、更にDFF103のD端子にはGNDレベル(Lowレベル)の信号が入力されるようにする。
【0096】
そして、第1〜第3の実施の形態において、セレクタ104を、Q端子から出力された信号がHighレベル(1)の場合に、I2Cインタフェース回路102の出力端子から出力された信号を選択し、DFF103のQ端子から出力された信号が、Lowレベル(0)の場合には、SPIインタフェース回路101の出力端子から出力された信号を選択するよう構成してもよい。また、セレクタ104と/Q端子とを接続し、DFF103からセレクタ104に入力される信号がHighレベル(1)のときには、SPIインタフェース回路101から出力された信号を選択し、Lowレベル(0)のときには、I2Cインタフェース回路102から出力された信号を選択するようセレクタ104構成してもよい。
【0097】
また、上記第4の実施の形態でも同様にリセット時にプリセット端子を用いてリセットし、D端子をGNDレベルとする構成とする場合には、DFF103のQ端子とセレクタ104とを接続する。そして、DFF103からセレクタ104に入力される信号がHighレベル(1)のときには、SPIインタフェース回路101の出力信号が選択され、Lowレベル(0)のときには、I2Cインタフェース回路102の出力信号が選択されるように構成する。また、セレクタ104と/Q端子とを接続し、DFF103からセレクタ104に入力される信号がHighレベル(1)のときには、I2Cインタフェース回路102の出力信号が選択され、Lowレベル(0)のときには、SPIインタフェース回路101の出力信号が選択されるように構成してもよい。また、通信ステータス検出器106を設ける場合には、通信ステータス検出器106からDFF103のプリセット端子にリセット信号を入力する構成とする。
【0098】
また、上記各実施の形態では、3線式のインタフェースプロトコルがSPIであって、2線式のインタフェースプロトコルがI2Cである場合の例について説明したが、他の3線式、2線式のインタフェースプロトコルであっても、同様の効果を得ることができる。
【符号の説明】
【0099】
101 SPIインタフェース回路
102 I2Cインタフェース回路
103 Dフリップフロップ
104 セレクタ
105 ノイズフィルタ
106 通信ステータス検出器
201 第1の端子
202 第2の端子
203 第3の端子

【特許請求の範囲】
【請求項1】
第1の端子に接続されたチップセレクト端子、第2の端子に接続されたクロック端子、及び第3の端子に接続されたデータ端子を有する第1のインタフェース回路と、
前記第1の端子に接続されたクロック端子、及び前記第3の端子に接続されたデータ端子を有する第2のインタフェース回路と、
を備え、
前記第1のインタフェース回路で通信する場合には、前記第1の端子に予め定められたレベルに固定された固定信号が入力され、前記第2の端子にクロック信号が入力され、前記第3の端子にデータ信号が入力され、
前記第2のインタフェース回路で通信する場合には、前記第1の端子にクロック信号が入力され、前記第3の端子にデータ信号が入力される
通信インタフェース装置。
【請求項2】
前記第2のインタフェース回路で通信する場合には、更に前記第2の端子に予め定められたレベルに固定された固定信号が入力され、
前記第2の端子に入力された信号が固定信号の場合には、前記第1のインタフェース回路から出力された信号を選択し、前記第2の端子に入力された信号がクロック信号の場合には、前記第2のインタフェース回路から出力された信号を選択する選択部を更に備えた請求項1に記載の通信インタフェース装置。
【請求項3】
前記選択部は、
前記第1のインタフェース回路から出力された信号及び前記第2のインタフェース回路から出力された信号のいずれかを選択するための選択信号が入力され、前記入力された選択信号が第1のレベルのときに前記第1のインタフェース回路から出力された信号を選択し、前記入力された選択信号が第2のレベルのときに前記第2のインタフェース回路から出力された信号を選択するセレクタと、
前記第2の端子に接続されたクロック端子、及び当該クロック端子に入力された信号がクロック信号である場合に前記第1のレベルの選択信号を前記セレクタに出力し、当該クロック端子に入力された信号が固定信号である場合に前記第2のレベルの選択信号を前記セレクタに出力する出力端子を有するDフリップフロップと、
を有する請求項2に記載の通信インタフェース装置。
【請求項4】
前記Dフリップフロップのクロック端子と前記第2の端子との間に、外乱ノイズを除去するノイズフィルタを更に備えた請求項3に記載の通信インタフェース装置。
【請求項5】
前記Dフリップフロップは、前記Dフリップフロップがリセット状態において、前記Dフリップフロップの出力端子から前記セレクタに前記第2のレベルの選択信号が入力されるように構成され、
前記第1のインタフェース回路及び前記第2のインタフェース回路の少なくとも一方の通信状況を検出し、前記第1のインタフェース回路が通信中でないこと、又は前記第2のインタフェース回路の通信中であることが検出されている期間は前記Dフリップフロップがリセット状態となるように制御する検出制御部を更に備えた請求項3に記載の通信インタフェース装置。
【請求項6】
前記第1の端子に入力された信号がクロック信号の場合には、前記第1のインタフェース回路から出力された信号を選択し、前記第1の端子に入力された信号が固定信号の場合には、前記第2のインタフェース回路から出力された信号を選択する選択部を更に備えた請求項1に記載の通信インタフェース装置。
【請求項7】
前記選択部は、
前記第1のインタフェース回路から出力された信号及び前記第2のインタフェース回路から出力された信号のいずれかを選択するための選択信号が入力され、前記入力された選択信号が第1のレベルのときに前記第1のインタフェース回路から出力された信号を選択し、前記入力された選択信号が第2のレベルのときに前記第2のインタフェース回路から出力された信号を選択するセレクタと、
前記第1の端子に接続されたクロック端子と、当該クロック端子に入力された信号が固定信号である場合に前記第1のレベルの選択信号を前記セレクタに出力し、当該クロック端子に入力された信号がクロック信号である場合に前記第2のレベルの選択信号を前記セレクタに出力する出力端子を有するDフリップフロップと、
を有する請求項6に記載の通信インタフェース装置。
【請求項8】
前記Dフリップフロップのクロック端子と前記第1の端子との間に、外乱ノイズを除去するノイズフィルタを更に備えた請求項7に記載の通信インタフェース装置。
【請求項9】
前記Dフリップフロップは、前記Dフリップフロップがリセット状態において、前記Dフリップフロップの出力端子から前記セレクタに前記第1のレベルの選択信号が入力されるように構成され、
前記第1のインタフェース回路及び前記第2のインタフェース回路の少なくとも一方の通信状況を検出し、前記第1のインタフェース回路が通信中であること、又は前記第2のインタフェース回路が通信中でないことが検出されている期間は前記Dフリップフロップがリセット状態となるように制御する検出制御手段を更に備えた請求項7に記載の通信インタフェース装置。
【請求項10】
第1の端子に接続されたチップセレクト端子、第2の端子に接続されたクロック端子、及び第3の端子に接続されたデータ端子を有する第1のインタフェース回路と、前記第1の端子に接続されたクロック端子、及び前記第3の端子に接続されたデータ端子を有する第2のインタフェース回路と、を備えた通信インタフェース装置において通信するにあたり、
前記第1のインタフェース回路で通信する場合には、前記第1の端子に予め定められたレベルに固定された固定信号を入力し、前記第2の端子にクロック信号を入力し、前記第3の端子にデータ信号を入力し、
前記第2のインタフェース回路で通信する場合には、前記第1の端子にクロック信号を入力し、前記第3の端子にデータ信号を入力する
通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−8982(P2012−8982A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−146918(P2010−146918)
【出願日】平成22年6月28日(2010.6.28)
【出願人】(308033711)ラピスセミコンダクタ株式会社 (898)
【Fターム(参考)】