(57)【要約】【課題】  複数のＳＰＩデバイスと通信するためのクロック生成回路をハード回路のみの構成で組み立て、システム速度の改善を実現する。【解決手段】ＳＰＩコントローラと外部ＳＰＩデバイスを、少なくとも１つ持つシステムにおいて、少なくとも１つの伝送周波数を送出するための発信器を有し、ＳＰＩデバイス毎に対応するクロック周波数を生成し、ＳＰＩデバイス毎に対応するクロック信号でデータ転送を行い、データ転送を高速に行い、更にバッファ回路やビジィー信号の発生を省略し、回路を簡略化することで回路規模を小さくしコストダウンも実現できるインタフェース回路である。【選択図】図１
2006304011.tif 000002
【特許請求の範囲】
【請求項１】
通信周波数の異なる複数のデバイスに接続され、データの送受信を行うインタフェース回路であり、
前記複数のデバイスの中の一のデバイスを選択する選択手段と、
送信データを保持する送信バッファ手段と、
該送信バッファ手段に保持された送信データを前記選択手段によって選択されたデバイスに送信する送信手段と、
該送信データを選択された前記デバイスに送信する際、該デバイスの通信周波数のクロック信号を生成し、該クロック信号によって前記送信データの送信を行わせるクロック信号生成手段と、
を有することを特徴とするインタフェース回路。
【請求項２】
前記送信データは、前記複数のデバイスの通信周波数の中の最も高い周波数のクロック信号を使用して前記送信バッファに保持されたことを特徴とする請求項１記載のインタフェース回路。
【請求項３】
前記送信バッファは、シリアル・パラレル変換器によってパラレルデータに変換された送信データを保持し、前記選択されたデバイスに出力される際、パラレル・シリアル変換器によってシリアルデータに変換されたデータが該デバイスに供給されることを特徴とする請求項１、又は２記載のインタフェース回路。
【請求項４】
前記選択手段によって選択されたデバイスから供給されるデータを受信バッファを介して受信する受信手段を備え、該データを受信する際、前記クロック信号生成手段によって生成された周波数のクロック信号を使用して該受信処理を行うことを特徴とする請求項１、２、又は３記載のインタフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＳＰＩ（Serial Peripheral Interface）デバイスとの間でデータの授受を行うインタフェース回路に関する。
【背景技術】
【０００２】
従来、複数のシリアルデバイスを１つのシリアルバスに接続するため、ＳＰＩが使用されている。このシステムでは、ＳＰＩに対応する複数のデバイスを、シリアルバスに直接接続し、チップセレクト信号（ＣＳ信号）によって選択したデバイスとの間で通信を行う。
【０００３】
例えば、図６に示す回路は従来のインタフェース回路であり、チップセレクト信号（CS１信号）がSPIデバイスAを選択する時、送信データ（TXD）をＳＰＩデバイスＡに出力し、受信データ（ＲＸＤ）をSPIデバイスAから受信する。同様に、チップセレクト信号（CS２信号）がSPIデバイスBを選択する時、送信データ（TXD）をＳＰＩデバイスBに出力し、受信データ（ＲＸＤ）をSPIデバイスBから受信する。さらに、チップセレクト信号（CS３信号）がSPIデバイスCを選択する時、送信データ（TXD）をＳＰＩデバイスCに出力し、受信データ（ＲＸＤ）をSPIデバイスCから受信する。
【０００４】
一方、ＳＰＩクロック信号（ＳＰＩＣＬＫ）は、ＳＰＩデバイスA〜Cごとに最大周波数が仕様として定められている。このような状況において、ＳＰＩデバイスA〜Cへのデータの送受信制御を行うためには、先ず接続されているＳＰＩデバイスの中で、最も遅い周波数のSPIクロック信号に他のＳＰＩデバイスをあわせて使用する。例えば、ＳＰＩデバイスＡが１ＭＨｚ、ＳＰＩデバイスＢが５ＭＨｚ、ＳＰＩデバイスＣが１０ＭＨｚの周波数で動作をする場合、最も遅いＳＰＩデバイスＡに合わせ、ＳＰＩコントローラは１ＭＨｚのSPIクロック信号で動作するように設定される。
【０００５】
一方、アクセスするＳＰＩデバイスA〜Cごとに、最適となる周波数のSPIクロック信号を出力するように制御する方法もある。この場合、ＳＰＩデバイスA〜Cにアクセスする度にSPIクロック信号の周波数設定を行う。例えば、ＳＰＩデバイスＡをアクセスする場合、SPIクロック信号の周波数を１ＭＨｚに設定し、次にＳＰＩデバイスＢにアクセスする場合には、先ずSPIクロック信号の周波数を５ＭＨｚに設定し直してからアクセスを行う。尚、この種のインタフェース回路として特許文献１の発明が開示されている。
【特許文献１】特開平５−２９２１４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の方式では、以下のような問題がある。
先ず、最も遅いＳＰＩデバイスにＳＰＩクロック信号の周波数を合わせる場合、仮にＳＰＩデバイスＢ、Ｃをアクセスする際の周波数が５ＭＨｚ、又は１０ＭＨｚの高速処理が可能であったとしても、ＳＰＩデバイスＡの周波数が１ＭＨｚと低速であれば、ＳＰＩデバイスＢ、Ｃも１ＭＨｚでアクセスすることになり、効率の悪いシステムとなる。
【０００７】
次に、ＳＰＩデバイスにアクセスする度に最適なＳＰＩクロック信号の周波数設定をソフト処理によって行う場合には、毎回ソフト制御が入り、システムスピードに影響を及ぼす。
【０００８】
そこで、本発明はソフト制御によらず、ハード回路構成によってＳＰＩクロック信号の周波数制御を行うことで、アクセス速度を向上し、高速なデータの送受信が可能なインタフェース回路を提供するものである。
【課題を解決するための手段】
【０００９】
本発明は上記課題を解決するため、通信周波数の異なる複数のデバイスに接続され、データの送受信を行うインタフェース回路であり、前記複数のデバイスの中の一のデバイスを選択する選択手段と、送信データを保持する送信バッファ手段と、該送信バッファ手段に保持された送信データを前記選択手段によって選択されたデバイスに送信する送信手段と、該送信データを選択された前記デバイスに送信する際、該デバイスの通信周波数のクロック信号を生成し、該クロック信号によって前記送信データの送信を行わせるクロック信号生成手段とを有するインタフェース回路を備えることを特徴とする。
【００１０】
このように構成することにより、選択されたデバイスの通信速度に対応した周波数のクロック信号を生成し、最適な速度でデータ送信を行うことができ、実質的に高速なデータ送信を可能とするインタフェース回路が提供できる。
【００１１】
また、前記送信データは、例えば前記複数のデバイスの通信周波数の中の最も高い周波数のクロック信号を使用して前記送信バッファに保持する構成である。
また、前記送信バッファは、例えばシリアル・パラレル変換器をよってパラレルデータに変換された送信データを保持し、前記選択されたデバイスに出力される際、パラレル・シリアル変換器によってシリアルデータに変換されたデータが該デバイスに供給される構成である。
【００１２】
さらに、前記選択手段によって選択されたデバイスから供給されるデータを受信バッファを介して受信する受信手段を備え、該データを受信する際、前記クロック信号生成手段によって生成された周波数のクロック信号を使用して該受信処理を行う構成である。
【００１３】
このように構成することにより、選択されたデバイスの通信速度に対応した周波数のクロック信号を生成し、更に最適な速度でデータの送受信を行うことができ、実質的に高速なデータの送受信を可能とするインタフェース回路が提供できる。
【発明の効果】
【００１４】
本発明により、複数のＳＰＩデバイスと通信するためのクロック生成回路をハード構成のみで組み立てることができる。また、システム速度の改善を図ることができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
（第１の実施形態）
図１は本発明における実施形態１の回路ブロック図である。同図において、本例のインタフェース回路はＳＰＩコントローラ１、ＳＰＩバッファ回路２、発信器３、及びＳＰＩデバイスＡ〜Ｃで構成されている。ＳＰＩコントローラ１はチップセレクト信号（ＣＳ１信号〜ＣＳ３信号）によってＳＰＩデバイスＡ〜Ｃの選択を行うと共に、ＳＰＩクロック信号（以下、ＳＰＩクロック信号１で示す）を出力し、この信号に同期して送信データ（TXD）をSPIバッファ回路2に出力する。
【００１６】
尚、受信データ（RXD）はＳＰＩデバイスＡ〜Ｃから供給されるデータである。
ＳＰＩバッファ回路２はＳＰＩコントローラ１から出力された送信データ（TXD）を保持し、所定のバイト入力に基づいて選択されたＳＰＩデバイスＡ〜Ｃに出力する。また、発信器３はSPIバッファ回路2から送信データ（TXD）をＳＰＩデバイスＡ〜Ｃに出力する際のクロック信号の発信源である。
【００１７】
ＳＰＩデバイスＡ〜Ｃは通信周波数の異なるデバイスであり、例えば印刷装置に対応させた場合、ＳＰＩデバイスＡはクロック周波数の低いオペレーションパネルが対応し、ＳＰＩデバイスＢはクロック周波数の中位のリアルタイムクロック発生装置が対応し、ＳＰＩデバイスＣはクロック周波数の高いＥＥＰＲＯＭが対応する。
【００１８】
図２は上記ＳＰＩバッファ回路２の具体的な回路図であり、分周セレクタ２１、分周設定回路２８、ＴＸＤ側のシリアル・パラレル変換器２２、送信バッファ２３、パラレル・シリアル変換器２４と、ＲＸＤ側のシリアル・パラレル変換器２５、受信バッファ２６、パラレル・シリアル変換器２７で構成されている。
【００１９】
分周設定回路２８は、接続されているＳＰＩデバイスに対応するＳＰＩクロック信号（以下、ＳＰＩクロック信号２で示す）を生成するため、発信器３の出力を分周セレクタ２１によって分周させる回路であり、前述のチップセレクト信号（ＣＳ信号）に基づいて分周比を設定する。例えば、ＣＳ１用の分周値、ＣＳ２用の分周値、ＣＳ３用の分周値をラッチする。
【００２０】
例えば、チップセレクト信号（ＣＳ１信号）がアクティブになると、対応する分周値が分周セレクタ２１によって選択され、対応する周波数のＳＰＩクロック信号が生成される。同様にして、チップセレクト信号（ＣＳ２、又は３信号）に対応する分周値が分周セレクタ２１によって選択され、対応する周波数のＳＰＩクロック信号が生成される。
【００２１】
ＳＰＩコントローラ１が、どのＳＰＩデバイスＡ〜Ｃに対するアクセスであるかは、各ＳＰＩデバイスに設定されているチップセレクト（ＣＳ）の状態で自動的に判断できる。例えば、チップセレクト信号（ＣＳ１信号）がアクティブの時、ＳＰＩデバイスＡが選択されていることが分かり、チップセレクト信号（ＣＳ２信号）がアクティブの時、ＳＰＩデバイスＢが選択されていることが分かり、チップセレクト信号（ＣＳ３信号）がアクティブの時、ＳＰＩデバイスＣが選択されていることが分かる。
【００２２】
図３は上記通信アクセス時のタイムチャートを示し、同図（ａ）は送信データ（ＴＸＤ）をシリアル・パラレル変換器２２を介して送信バッファ２３に送信する処理を説明するタイムチャートであり、同図（ｂ）は送信バッファ２３から送信データ（TXD）を対応するＳＰＩデバイスＡ〜Ｃに出力する際のタイムチャートを示す。
【００２３】
先ず、ＳＰＩコントローラ１は、ＳＰＩクロック信号１に同期して送信データ（TXD）をシリアル・パラレル変換器２２に出力する（同図（a）に示す期間S１）。送信データ（TXD）はシリアル・パラレル変換器２２によってパラレルデータに変換され、送信バッファ２３に順次保持される。このとき、ＢＵＳＹ信号がアクティブであり、この間ＳＰＩコントローラ１は次の送信データ（TXD）の送出を禁止する。その後、送信データ（TXD）が所定バイト揃った時点で、ＢＵＳＹ信号はインアクティブとなり、送信データ（TXD）の送出が可能となる。
【００２４】
一方、送信バッファ２３に送られた送信データ（TXD）は、パラレル・シリアル変換器２４を介してシリアルデータに変換され、ＳＰＩデバイスAに送出される。この時、分周セレクタ２１からパラレル・シリアル変換器２４に対してＳＰＩデバイスＡの通信周波数に対応したＳＰＩクロック信号２が出力される（同図（ｂ）に示す期間Ｓ２）。例えば、前述のようにＳＰＩデバイスＡとしてオペレーションパネルが設定されている場合、２５０ＫＨzのＳＰＩクロック信号２がパラレル・シリアル変換器２４に供給され、ＳＰＩデバイスＡの通信速度に対応したデータ送信を行う。
【００２５】
また、送信データ（TXD）を転送する相手がＳＰＩデバイスＢである場合においても、送信バッファ２３には前述と同様にしてＳＰＩコントローラ１から送信データ（TXD）がＳＰＩクロック信号１に同期して送信され（同図（a）に示す期間S１）、所定のバイトデータが保持されると、送信バッファ２３からＳＰＩデバイスＢに送信データ（TXD）が出力される（同図（ｂ）に示す期間Ｓ２）。この時、例えばＳＰＩデバイスBがリアルタイムクロック発生装置である場合、１MＨzのＳＰＩクロック信号がパラレル・シリアル変換器２４に供給され、ＳＰＩデバイスBの通信速度に対応した周波数でデータ送信を行う。
【００２６】
さらに、同様にして、送信データ（TXD）を転送する相手がＳＰＩデバイスCである場合、送信バッファ２３には前述と同様にしてＳＰＩコントローラ１から送信データ（TXD）がＳＰＩクロック信号１に同期して送信され（同図（a）に示す期間S１）、所定のバイトデータが保持されると、送信バッファ２３からＳＰＩデバイスＢに送信データ（TXD）が出力される（同図（ｂ）に示す期間Ｓ２）。この時、例えばＳＰＩデバイスCがEEPROMである場合、２MＨzのＳＰＩクロック信号２がパラレル・シリアル変換器２４に供給され、ＳＰＩデバイスCの通信速度に対応した周波数でデータ送信を行う。
【００２７】
以上のように、本例によればＳＰＩバッファ回路２により最適なＳＰＩクロック信号２を自動的に選択することができ、ＳＰＩコントローラ１はデータ転送先のＳＰＩデバイスＡ〜Ｃに関係なく高速なＳＰＩクロック信号を使用して送信データ（TXD）の送信を行うことができる。
【００２８】
尚、ＳＰＩデバイスＡ〜ＣからＳＰＩコントローラ１に供給される受信データ（RXD）については、ＳＰＩクロック信号２に対してＳＰＩクロック信号１は高速であり、受信バッファ２６にデータが滞留することがないので、例えＢＵＳＹ信号を使用しなくてもデータがオーバーフローすることはない。
（実施形態２）
次に、本発明の実施形態２について説明する。
【００２９】
図４は本実施形態２を説明する図であり、SPIバッファ回路2の具体例である。本例のSPIバッファ回路2は、分周セレクタ４１、分周設定回路４５、パラレル・シリアル変換器４２、シリアル・パラレル変換器４３で構成されている。本例では、通常ＬＳＩやマイコンの中に内蔵されているＳＰＩコントローラ１に追加、即ち本例の回路をＳＰＩコントローラ１に組み込むことによって、通常１つしかない分周設定用ラッチをチップセレクト信号（ＣＳ信号）分用意し、選択されたチップセレクト信号（ＣＳ信号）によって自動的にＳＰＩクロック信号２の周波数を変更し、データ転送する回路である。
【００３０】
このように構成することにより、ＳＰＩクロック信号そのものが自動的に適切な周波数に切り替わるため、第１の実施形態にあるようなバッファやＢＵＳＹ信号による制御は全く不要となる。また、同図の分周設定回路４５は、接続されているＳＰＩデバイスＡ〜Ｃに対応するＳＰＩクロック信号２を生成する構成であり、前述と同様分周セレクタ４１によって分周する値をＳＰＩデバイスのＣＳ毎に設定するための構成である。
【００３１】
図５は、本例の処理を説明するタイムチャートであり、例えば第１にＣＳ１用の分周値、第２にＣＳ２用の分周値をラッチし、前述と同様、適切なＳＰＩクロック信号２を生成し、送信データ（TXD）を対応する周波数のＳＰＩクロック信号２によってＳＰＩデバイスＡ〜Ｃに送信することができる。
【００３２】
以上により、ＳＰＩデバイスＡ〜Ｃの通信周波数に対応するＳＰＩクロック信号２が自動的に設定され、送信データ（TXD）を最適なＳＰＩクロック信号２によって送信することができる。また、上記処理の際、実施形態１で使用した送信バッファ２３やＢＵＳＹ信号を使用する必要もない。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施形態における構成概略図である。
【図２】本発明の第１の実施形態におけるＳＰＩバッファ回路のブロック図である。
【図３】本発明の第１の実施形態におけるタイムチャートである。
【図４】本発明の第２の実施形態における構成概略図である。
【図５】本発明の第２の実施形態におけるタイムチャートである。
【図６】従来の実施形態における構成概略図である。
【符号の説明】
【００３４】
１・・・ＳＰＩコントローラ
２・・・ＳＰＩバッファ回路
３・・・発信器
２１，４１・・・分周セレクタ
２２，２５，４３・・・シリアル・パラレル変換器
２３・・・受信バッファ
２４，２７，４２・・・パラレル・シリアル変換器
２６・・・送信バッファ
２８，４５・・・分周設定回路
Ａ〜Ｃ・・・ＳＰＩデバイス
【図１】
2006304011.tif 000003
【図２】
2006304011.tif 000004
【図３】
2006304011.tif 000005
【図４】
2006304011.tif 000006
【図５】
2006304011.tif 000007
【図６】
2006304011.tif 000008