JP3929559B2 - シリアルインタフェースバス送受信回路 - Google Patents
シリアルインタフェースバス送受信回路 Download PDFInfo
- Publication number
- JP3929559B2 JP3929559B2 JP21525497A JP21525497A JP3929559B2 JP 3929559 B2 JP3929559 B2 JP 3929559B2 JP 21525497 A JP21525497 A JP 21525497A JP 21525497 A JP21525497 A JP 21525497A JP 3929559 B2 JP3929559 B2 JP 3929559B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- data
- signal
- circuit
- reception
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Dc Digital Transmission (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、データ信号線およびクロック信号線の2本の信号線により情報の転送を行うシリアルインタフェースバス送受信回路に関するものである。
【0002】
【従来の技術】
従来のシリアルインタフェースバス送受信回路としてはI2 Cバスがあり、TV製品やVTR製品などの電気回路に用いられるIC間の情報転送に用いられている。
図6は、従来のシリアルインタフェースバス送受信回路の構成を示す回路図であり、図において、1はシリアルインタフェースバスのデータが出力されるデータ信号線、2はシリアルインタフェースバスのクロック信号が出力されるクロック信号線であり、このシリアルインタフェースバスは図示していない例えばマイクロコントローラなどのマスタデバイスと接続されている。3はデータ信号線1へ出力されたデータをこのシリアルインタフェースバス送受信回路へ取り込むためのデータ用入力バッファ回路、4は当該シリアルインタフェースバス送受信回路からデータをデータ信号線1へ出力するためのデータ用出力バッファ回路、5はクロック信号線2へ出力されたクロック信号を当該シリアルインタフェースバス送受信回路へ取り込むためのクロック用入力バッファ回路である。
【0003】
6はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路であり、ストップ条件検出用Dフリップフロップ6a、スタート条件検出用Dフリップフロップ6b、ノア回路6c、ラッチ回路6d、Dフリップフロップ6e、Dフリップフロップ6fを備えている。
スタート条件検出用Dフリップフロップ6bのリセット端子は、前記マスタデバイスからクロック信号線2へ供給されたクロック信号がクロック用入力バッファ回路5を介して出力されるクロック信号供給ライン(以下、SCLという)と接続される。また、スタート条件検出用Dフリップフロップ6bのクロック信号入力端子は、前記マスタデバイスからデータ信号線1へ供給されたデータがデータ用入力バッファ回路3を介して出力されるデータ供給ライン(以下、SDAという)と接続されている。また、スタート条件検出用Dフリップフロップ6bのデータ端子はVccラインと接続されている。
ストップ条件検出用Dフリップフロップ6aのリセット端子は、スタート条件検出用Dフリップフロップ6bの反転Q ̄出力端子と接続されている。また、ストップ条件検出用Dフリップフロップ6aのクロック信号入力端子は、前記SDAと接続されている。また、スタート条件検出用Dフリップフロップ6aのデータ端子はVccラインと接続されている。
【0004】
ノア回路6cのそれぞれの入力端子は、一方の入力端子がストップ条件検出用Dフリップフロップ6aの非反転Q出力端子と接続され、他方の入力端子がスタート条件検出用Dフリップフロップ6bの非反転Q出力端子と接続されている。また、ノア回路6cの出力端子はラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子と接続されている。
【0005】
ラッチ回路6dの非反転Q出力端子はDフリップフロップ6eのデータ端子と接続され、リセット端子はDフリップフロップ6fの反転Q ̄出力端子と接続されており、ラッチ回路6dの反転Q ̄出力端子からはシリアルインタフェース動作の初期化を行うためのバスフリー信号(BUS FREE)が出力される。
【0006】
Dフリップフロップ6eおよびDフリップフロップ6fのクロック信号入力端子は前記SCLと接続され、Dフリップフロップ6eの非反転Q出力端子はDフリップフロップ6fのデータ端子と接続されている。
【0007】
7は制御論理部、8は8ビットのデータを直並列変換または並直列変換する8ビットシフトレジスタ、9はサブアドレスを内部状態として保持し出力するNビットカウンタ、10は8ビットシフトレジスタ8から出力された内部情報またはアクノレッジを出力する出力選択回路、11は出力選択回路10の出力に対しバス規格で規定する遅延量を付加するための遅延回路、12および14はデータ情報が書き込まれるサブアドレスをデコードするアドレスデコーダ、13はアドレスデコーダ12のデコード出力によりデータ情報が書き込まれる内部レジスタ、15はアドレスデコーダ14のデコード出力によりデータ情報が書き込まれる内部レジスタである。16および18は内部情報を読み出すためのサブアドレスをデコードするアドレスデコーダ、17はアドレスデコーダ16のデコード出力により内部情報を読み出すための情報選択素子、19はアドレスデコーダ18のデコード出力により内部情報を読み出すための情報選択素子である。
【0008】
制御論理部7は、データ用入力バッファ回路3を介して前記SDAへ出力されたデータ、クロック用入力バッファ回路5を介して前記SCLへ出力されたクロック信号、ラッチ回路6dの反転Q ̄出力端子から出力されたバスフリー信号、および8ビットシフトレジスタ8により変換されたデータが供給され、これら各信号をもとに操作信号PIDSC、SR8T、DATAOUTEN、ACKOUT、SAEP、SALDC、STRBC、LQBOECを生成し、各制御信号線へ出力する。PIDSCは読み出された内部情報を8ビットシフトレジスタ8へロードするための操作信号、SR8Tは8ビットシフトレジスタ8のシフトタイミングを規定する操作信号、DATAOUTENは出力選択回路10からの内部情報の出力を制御する操作信号、ACKOUTは出力選択回路10からのアクノレッジの出力を制御する操作信号、SAEPはNビットカウンタ9の内部状態を‘+1’更新するための操作信号である。SALDCはNビットカウンタ9へサブアドレス情報をロードするための操作信号である。STRBCは内部レジスタ13,15へデータ情報を書き込むための操作信号である。LQBOECは読み出された内部情報を8ビットシフトレジスタ8へ与えるための操作信号である。
【0009】
次に動作について説明する。
図7は、このシリアルインタフェースバス送受信回路の動作を示すタイミングチャートである。
先ず、SCL上のクロック信号レベルが‘H’レベルのときのSDA上のデータの立ち上がりエッジを検出することでDフリップフロップ6aがストップ条件を検出する。Dフリップフロップ6aの非反転Q出力端子からのストップ条件検出出力はノア回路6cを経てラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子へ与えられる。この結果、ラッチ回路6dはセットされて、ラッチ回路6dの反転Q ̄出力であるバスフリー信号が有意となり制御論理部7の動作を初期化する。引き続いてSCL上のクロック信号レベルが‘H’レベルのときのSDA上のデータの立ち下がりエッジを検出することでDフリップフロップ6bがスタート条件を検出する。Dフリップフロップ6bの反転Q ̄出力端子からの出力はDフリップフロップ6aをリセットして、Dフリップフロップ6aから出力されていたストップ条件検出出力を消す。Dフリップフロップ6bの非反転Q出力端子からのスタート条件検出出力は、ノア回路6cを経てラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子へ与えられ、ラッチ回路6dはセット状態を維持し、制御論理部7は前記初期化を継続する。
【0010】
次いで、シリアル転送操作が開始されて、SCL上に負極性のクロック信号がマスタデバイスから供給される。この結果、最初の前記クロック信号の‘L’レベルによりDフリップフロップ6bはリセットされ、Dフリップフロップ6bの非反転Q出力端子から出力されていたスタート条件検出出力は消える。この状態ではラッチ回路6dはセット状態を維持しており前記バスフリー信号は有意である。
【0011】
前記最初のクロック信号の立ち下がりエッジにより、ラッチ回路6cの非反転Q出力はDフリップフロップ6eへ伝わり、さらに前記最初のクロック信号の立ち上がりエッジにより、Dフリップフロップ6eへ伝わったラッチ回路6cの非反転Q出力はDフリップフロップ6fへ伝わり、この結果、Dフリップフロップ6fの反転Q ̄出力によりラッチ回路6cはセット状態からリセット状態へ移行する。前記バスフリー信号はこの時点で非有意となって、制御論理部7は動作を開始する。
【0012】
制御論理部7が動作を開始した状態で、始めにSDA上にデバイスアドレス情報がマスタデバイスから送られてくる。このデバイスアドレス情報は、8ビットシフトレジスタ8へ入力される。8ビットシフトレジスタ8は、制御論理部7から出力される操作信号SR8Tにより駆動されて、前記デバイスアドレス情報の8ビット転送終了時には当該デバイスアドレス情報をラインLDB〈7:0〉へ出力する。このラインLDB〈7:0〉へ出力されたデバイスアドレス情報が当該シリアルインタフェースバス送受信回路のデバイスアドレスと一致している場合には、制御論理部7は操作信号ACKOUTを有意にすると同時に出力選択回路10を操作信号DATAOUTENにより制御して、出力選択回路10からアクノレッジ信号を出力する。この結果、データ信号線1には‘L’レベルのアクノレッジ信号が出力される。一方、一致していない場合には、制御論理部7は操作信号ACKOUTを有意にしないで内部動作を停止する。
なお、アクノレッジ期間にはマスタデバイスは、データ信号線1を開放することによりスレーブのアクノレッジを監視している。
【0013】
デバイスアドレス情報が当該シリアルインタフェースバス送受信回路のデバイスアドレスと一致しており、‘L’レベルのアクノレッジ信号が出力されるとともにデバイスアドレスのLSBが‘L’レベルである場合には、データ情報の書き込みシーケンスが開始される。このシーケンスでは、サブアドレス情報がマスタデバイスからデータ信号線1を介して送られてくる。このサブアドレス情報の8ビット転送終了時には8ビットシフトレジスタ8は当該サブアドレス情報をラインLDB〈7:0〉へ出力する。
【0014】
制御論理部7は、操作信号ACKOUTを有意にすると同時に操作信号DATAOUTENで制御して出力選択回路10の出力にアクノレッジ信号を出力する。このとき同時に制御論理部7の出力する操作信号SALDCによりラインLDB<7:0>へ出力されたサブアドレス情報の値をNビットカウンタ9にロードし、ラインLAB<N−1:0>へ出力されているサブアトレス情報を更新する。次に、マスタデバイスから送られてくる書き込みデータ情報が入力され、8ビット転送終了時には8ビットシフトレジスタ8は前記書き込みデータ情報をラインLDB〈7:0〉へ出力する。制御論理部7は操作信号ACKOUTを有意にしてデータ信号線1に‘L’レベルのアクノレッジ信号を出力すると同時に内部レジスタへデータ情報の書き込みを行うための操作信号STRBCを有意にする。この結果、アドレスデコーダ12,14の中で、ラインLAB〈N−1:0〉へ出力されたサブアドレスに対応するアドレスデコーダだけが前記操作信号STRBCの有意期間中にラインLDB〈7:0〉上の書き込みデータを内部レジスタ13または内部レジスタ15に格納する。
【0015】
以降、引き続いて書き込みデータ情報が8ビット入力される毎に、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内容が‘+1’更新される。そして、ラインLAB〈N−1:0〉上のサブアドレスが更新され前記内部レジスタへの書き込みデータの更新動作が繰り返される。STOP条件の検出もしくは再START条件の検出により書き込みデータ更新動作は終了する。
【0016】
デバイスアドレス情報に対し‘L’レベルのアクノレッジ信号が出力され、かつデバイスアドレスのLSBが‘H’レベルである場合にはデータ情報の読み出しシーケンスが開始される。‘L’レベルのアクノレッジ信号を出力した直後に、アドレスデコーダ16,18の中でラインLAB〈N−1:0〉上に出力されているサブドレスに対応するアドレスデコーダだけが、操作信号LQBOECの有意期間中に読み出しデータをラインLQB〈7:0〉上に出力する。操作信号LQBOECの有意期間が十分に覆うタイミングで制御論理部7により生成され出力された操作信号PIDSCによりラインLQB〈7:0〉上の前記読み出しデータが8ビットシフトレジスタ8にロードされる。入力されるSCL上のクロック信号の立ち上がりエッジとタイミングを同じにして、制御論理部7から出力される操作信号SR8Tにより8ビットシフトレジスタ8は読み出しデータをシリアルデータに変換し出力選択回路10へ出力する。制御論理部7の出力する操作信号DATAOUTENにより、出力選択回路10は前記シリアルデータに変換された前記読み出しデータを出力する。
なお、出力選択回路10から出力された前記読み出しデータは遅延回路11によりバス規格が規定する遅延が施されてデータ信号線1へ出力される。
【0017】
8ビット出力後にマスタデバイスがSDA上のデータを‘L’操作している場合には、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内部状態は‘+1’更新され、ラインLAB〈N−1:0〉上のサブアドレスを更新し読み出しデータ出力動作を繰り返す。8ビット出力後にマスタデバイスがSDA上のデータを‘H’操作している場合には、データ信号線1を解放する状態で内部動作を停止する。
【0018】
このようにシリアルインタフェースバス送受信回路をスレーブとしてマスタデバイスとの間で情報転送を行うためには、SCL上の信号レベルが‘H’レベルのときのSDA上のデータが‘H’レベルから‘L’レベルへ変化することで開始条件をマスタデバイスが生成し、またSCL上の信号レベルが‘H’レベルのときのSDA上のデータが‘L’レベルから‘H’レベルへ変化することでマスタデバイスが停止条件を生成する。また、SCL上の信号レベルが‘H’レベルのときのSDA上のデータの状態は一定でなければならず、‘L’レベルのときのみ状態変更が許される。また、これらの定義を成立させるためにSCL上の信号レベルが‘H’レベルから‘L’レベルへの変化を起点として最低300nsecのSDA上のデータが変化してはいけないSDA信号ホールド時間を設けるなどのタイミング制約条件が決められている。
【0019】
【発明が解決しようとする課題】
従来のシリアルインタフェースバス送受信回路は以上のように構成されているので、マスタデバイスに接続された複数のスレーブの中で前記SDA信号ホールド時間を設けるというタイミング制約条件を満足していないシリアルインタフェースバス送受信回路が存在すると、他のスレーブにとってSDA上のデータとSCL上のクロック信号とが同時的に変化する場合が生じることになって誤動作する可能性が大きくなる課題があった。
【0020】
このような誤動作を引き起こす原因は、バスに複数のスレーブを接続した状態においては、バスラインの保有する抵抗値や寄生容量およびバスに接続するスレーブの入力容量が各スレーブ入力端でのSDA上の信号とSCL上の信号の伝搬遅延量をばらつかせるため、他のスレーブへのSDA上のデータとSCL上のクロック信号とが同時的に変化する場合が生じるからである。
この誤動作についてさらに説明すると、誤動作を引き起こすスレーブがアクノレッジまたはデータ読み出し出力動作時に、他のスレーブで前記通信の開始条件や停止条件の検出が成立してしまい、引き続くSDA上の情報が、マスタデバイスではデータとして管理している転送サイクルにおいて前記他のスレーブでアドレスとして受信され、この受信されたアドレスが前記他のスレーブのデバイスアドレスと一致した場合に当該スレーブでは送受信動作が起動されてしまう。このような誤動作を起す場合には誤反応を起したスレーブのSDA入力端において遅延要素を付加することにより対処している。しかしながらこのような誤反応は、対象となるスレーブの持つ機能の多様性および前述のバスの電気的な環境の変化が関係することから早期の発見が困難である。また、このようなシリアルインタフェースバス送受信回路を内蔵した製品のシリアルインタフェース機能をテストする際には、テスト時間を短縮するためにバス規格で規定している以上の高速安定動作が望まれるが、このように高速動作させる場合には、前記SDA入力端とSCL入力端の入力位相管理がテスタの動作精度に左右されず、またタイミング制約条件の設定が容易であることが望まれる課題があった。
【0021】
この発明は、上記のような課題を解決するためになされたもので、マスタデバイスに接続された複数のスレーブの中で他のスレーブの誤動作の原因となる前記タイミング制約条件を満足しないものがあっても、誤動作の影響を受けにくい、誤動作に対する耐性を向上させたシリアルインタフェースバス送受信回路を得ることを目的とする。
【0022】
また、この発明はシリアルインタフェース機能をテストする際のテスト時間を短縮できるシリアルインタフェースバス送受信回路を得ることを目的とする。
【0023】
【課題を解決するための手段】
請求項1記載の発明に係るシリアルインタフェースバス送受信回路は、データ信号線を介して前記マスタデバイスから入力された前記データおよび前記クロック信号線を介して前記マスタデバイスから入力されたクロック信号をもとに、マスタデバイスとの間のデータ送受の停止および前記データ送受の開始を検出して当該検出結果を出力するとともに、前記クロック信号の信号レベルによりリセットされるデータ送受停止・開始検出手段と、該データ送受停止・開始検出手段による検出結果をもとに時限動作を行い、設定された時間経過後にストップ条件認識信号およびスタート条件認識信号を出力する条件認識信号時限出力手段と、前記データ送受のための初期化を指示する初期化指示信号を前記条件認識信号時限出力手段の出力をもとに生成し出力する初期化指示信号生成手段と、前記クロック信号をもとに前記初期化指示信号生成手段が出力した前記初期化指示信号をリセットする初期化指示信号リセット手段と、前記初期化指示信号生成手段の出力する初期化指示信号をもとにデータ送受のための初期化を実行し、前記初期化指示信号リセット手段により前記初期化指示信号がリセットされた後、前記クロック信号と同期してデータを前記マスタデバイスとの間で送受する制御手段とを備えるようにしたものである。
【0024】
請求項2記載の発明に係るシリアルインタフェースバス送受信回路は、条件認識信号時限出力手段の出力またはデータ送受停止・開始検出手段が検出したマスタデバイスとの間のデータ送受の停止、前記データ送受の開始の検出結果をもとに、データ送受のための初期化を指示する初期化指示信号を生成し出力する初期化指示信号生成手段を備えるようにしたものである。
【0025】
請求項3記載の発明に係るシリアルインタフェースバス送受信回路は、データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号との相互入力条件を判定するために使用する判定データを格納する判定データ格納手段と、該判定データ格納手段に格納した判定データをもとに、前記相互入力条件を判定する相互入力条件判定手段と、該相互入力条件判定手段による判定結果を格納する判定結果格納手段と、該判定結果格納手段に格納した前記判定結果をマスタデバイスから読み出す判定結果読出手段とを備えるようにしたものである。
【0026】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1は、この実施の形態1のシリアルインタフェースバス送受信回路の構成を示す回路図である。図1において、1はシリアルインタフェースバスのデータが出力されるデータ信号線、2はシリアルインタフェースバスのクロック信号が出力されるクロック信号線であり、このシリアルインタフェースバスは図示していない例えばマイクロコントローラなどのマスタデバイスと接続されている。3はデータ信号線1へ出力されたデータをこのシリアルインタフェースバス送受信回路へ取り込むためのデータ用入力バッファ回路、4は当該シリアルインタフェースバス送受信回路からデータをデータ信号線1へ出力するためのデータ用出力バッファ回路、5はクロック信号線2へ出力されたクロック信号を当該シリアルインタフェースバス送受信回路へ取り込むためのクロック用入力バッファ回路である。
【0027】
100はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路であり、ストップ条件検出用Dフリップフロップ(データ送受停止・開始検出手段)6a、スタート条件検出用Dフリップフロップ(データ送受停止・開始検出手段)6b、第1時限計測回路(条件認識信号時限出力手段)54、第2時限計測回路(条件認識信号時限出力手段)56、NOR回路6c、ラッチ回路(初期化指示信号生成手段)6d、Dフリップフロップ(初期化指示信号リセット手段)6e、Dフリップフロップ(初期化指示信号リセット手段)6fを備えている。
第1時限計測回路54および第2時限計測回路56に設定されている時限値は、ストップ条件、スタート条件をマスタデバイスが生成するためのデータ、クロックの変化であるか、スレーブデバイスのアクノレッジ出力や読み出しデータ出力の動作によるデータ、クロックの変化であるかの識別を可能にする値に設定されている。
ストップ条件検出用Dフリップフロップ6a、スタート条件検出用Dフリップフロップ6bのリセット端子は、前記マスタデバイスからクロック信号線2へ供給されたクロック信号がクロック用入力バッファ回路5を介して入力されるSCL(クロック信号供給ライン)と接続されている。また、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bのクロック信号入力端子は、前記マスタデバイスからデータ信号線1へ供給されたデータがデータ用入力バッファ回路3を介して入力されるSDA(データ供給ライン)と接続されている。また、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bのデータ端子はVccラインと接続されている。
【0028】
ストップ条件検出用Dフリップフロップ6aの非反転Q出力端子は、第1時限計測回路54のリセット端子と接続されている。また、スタート条件検出用Dフリップフロップ6bの非反転Q出力端子は第2時限計測回路56のリセット端子と接続されている。第1時限計測回路54および第2時限計測回路56のクロック入力端子には内部クロックが供給されている。
NOR回路6cの一方の入力端子は第1時限計測回路54のFLAG出力端子と接続され、また他方の入力端子は第2時限計測回路56のFLAG出力端子と接続されている。第2時限計測回路56のFLAG出力端子は、また、第1時限計測回路54の第2リセット端子(R_FLAG)と接続されている。NOR回路6cの出力端子はラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子と接続されている。
【0029】
ラッチ回路6dの非反転Q出力端子はDフリップフロップ6eのデータ端子と接続され、リセット端子はDフリップフロップ6fの反転Q ̄出力端子と接続されており、ラッチ回路6dの反転Q ̄出力端子からはシリアルインタフェース動作の初期化を行うためのバスフリー信号(BUS FREE)が出力される。
【0030】
Dフリップフロップ6eおよびDフリップフロップ6fのクロック信号入力端子は前記SCLと接続され、Dフリップフロップ6eの非反転Q出力端子はDフリップフロップ6fのデータ端子と接続されている。
【0031】
7は制御論理部(制御手段)、8は8ビットのデータを直並列変換または並直列変換する8ビットシフトレジスタ、9はサブアドレスを内部状態として保持し出力するNビットカウンタ、10は8ビットシフトレジスタ8から出力された内部データまたはアクノレッジを出力する出力選択回路、11は出力選択回路10の出力に対しバス規格で規定する遅延量を付加するための遅延回路、12および14はデータ情報が書き込まれるサブアドレスをデコードするアドレスデコーダ、13はアドレスデコーダ12のデコード出力によりデータ情報が書き込まれる内部レジスタ、15はアドレスデコーダ14のデコード出力によりデータ情報が書き込まれる内部レジスタである。16および18は内部データを読み出すためのサブアドレスをデコードするアドレスデコーダ、17はアドレスデコーダ16のデコード出力により内部データを読み出すための情報選択素子、19はアドレスデコーダ18のデコード出力により内部データを読み出すための情報選択素子である。
【0032】
制御論理部7は、データ用入力バッファ回路3を介して前記SDAへ入力されたデータ、クロック用入力バッファ回路5を介して前記SCLへ入力されたクロック信号、ラッチ回路6dの反転Q ̄出力端子から出力されたバスフリー信号、および8ビットシフトレジスタ8により変換されたデータが供給され、これら各信号をもとに操作信号PIDSC、SR8T、DATAOUTEN、ACKOUT、SAEP、SALDC、STRBC、LQBOECを生成し、各制御信号線へ出力する。
PIDSCは読み出された内部情報を8ビットシフトレジスタ8へロードするための操作信号、SR8Tは8ビットシフトレジスタ8のシフトタイミングを規定する操作信号、DATAOUTENは出力選択回路10からの内部情報の出力を制御する操作信号、ACKOUTは出力選択回路10からのアクノレッジの出力を制御する操作信号、SAEPはNビットカウンタ9の内部状態を‘+1’更新するための操作信号である。SALDCはNビットカウンタ9へサブアドレス情報をロードするための操作信号である。STRBCは内部レジスタ13,15へデータ情報を書き込むための操作信号である。LQBOECは読み出された内部情報を8ビットシフトレジスタ8へ与えるための操作信号である。
【0033】
ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bは、SCL上のクロック信号のレベルが‘L’レベルのときには非有意化される。ストップ条件検出用Dフリップフロップ6aは、SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されているデータの立ち上がりエッジを検出し、非反転Q出力端子からの出力であるSTOP条件を有意化する。また、スタート条件検出用Dフリップフロップ6bは、SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されているデータの立ち下かりエッジを検出し、非反転Q出力端子からの出力であるSART条件を有意化する。
【0034】
STOP条件もしくはSTART条件が成立すると第1時限計測回路54、第2時限計測回路56が動作を開始し、既定の時限に達すると第1時限計測回路54のFLAG出力端子からの信号WDT_STOP、第2時限計測回路56のFLAG出力端子からの信号WDTSTARTが有意になる。
ストップ条件検出用Dフリップフロップ6aの非反転Q出力端子から出力されるSTOP条件が非有意の場合、第1時限計測回路54の時限計測機能は初期化される。但し、信号WDT_STOPの出力機能の初期化は、信号WDT_STARTの非有意から有意への変化エッジにより実行される。START条件が非有意の場合、第2時限計測回路56の時限計測機能と信号WDT_STARTの出力機能は共に初期化される。これら信号WDT_STOP、WDT_STARTによりNOR回路6cの出力が有意となりラッチ回路6dをセットする。ラッチ回路6dの反転Q ̄出力端子からの出力は、バスフリー信号としてシリアルインタフェース動作を初期化する。
【0035】
ラッチ回路6dの非反転Q出力端子からの出力は、SCL上の負極性クロック信号の立ち下がりエッジでDフリップフロップ6eに取り込まれ非反転Q出力端子から出力され、この出力は前記負極性クロック信号の次の立ち上がりエッジでDフリップフロップ6fに伝搬する。
Dフリップフロップ6fの反転Q ̄出力端子からの出力はラッチ回路6dをリセットして、ラッチ回路6dから出力されていたバスフリー信号を終了させる。この結果、シリアルインタフェース動作が始まる。
Dフリップフロップ6fは、バスフリー信号の非有意がラッチ回路6dから伝搬して非有意となるか、またはノア回路6cの出力により非有意化される。
SDA上へ供給されたデータのシリアル信号は8ビットシフトレジスタ8により8ビットのパラレル信号に直並列変換されLDB〈7:0〉に出力される。こうしてLDB〈7:0〉上へ出力されたパラレル信号は、内部レジスタ13,15のサブアドレスを内容とするタイミングにおいて、Nビットカウンタ9にロードされ内部レジスタ13,15のサブアドレスとして保持され、LAB〈N−1:0〉へ出力される。LAB〈N−1:0〉へ出力されている前記サブアドレスは、内部レジスタ13,15へデータ情報を書き込み内部で使用する情報とする場合の内部レジスタ13,15を選択するレジスタ選択指定用として、または内部データを外部へ読み出す場合の内部情報選択指定用として用いられる。
【0036】
次に、このシリアルインタフェースバス送受信回路の動作について説明する。
このシリアルインタフェースバス送受信回路の動作の説明では、図7に示すタイミングチャートを参照する。
SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されたデータの立ち上がりエッジを検出し、ストップ条件検出用Dフリップフロップ6aはSTOP条件を検出する。このSTOP条件を検出するとストップ条件検出用Dフリップフロップ6aの非反転Q出力端子の出力は‘H’レベルに変化し、このタイミングからさらに既定の時限後に第1時限計測回路54から出力される信号WDT_STOPが有意となる。この結果、NOR回路6cの出力によりラッチ回路6dがセットされ、反転Q ̄出力端子から出力されるバスフリー信号が有意となり制御論理部7の動作が初期化される。
【0037】
引き続いて、SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されたデータの立ち下がりエッジを検出し、スタート条件検出用Dフリップフロップ6bはSTART条件を検出する。このSTART条件を検出するとスタート条件検出用Dフリップフロップ6bの非反転Q出力端子の出力は‘H’レベルに変化し、このタイミングからさらに既定の時限後に第2時限計測回路56から出力される信号WDT_STARTが有意となる。この結果、NOR回路6cの出力によりラッチ回路6dが再びセットされる。信号WDT_STARTが有意になると、第1時限計測回路54の出力は初期化され、第1時限計測回路54の出力である有意となっていた信号WDT_STOPは非有意となる。この時点ではバスフリー信号は制御論理部7の動作の初期化を続ける。
【0038】
そして、シリアル転送操作が開始され、SCL上へ負極性クロックが入力される。最初のSCL上へ入力された最初の前記負極性クロックにより、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bはリセットされ初期化されて、前記STOP条件と前記START条件は消える。STOP条件が消えてストップ条件検出用Dフリップフロップ6aの非反転Q出力端子のレベルが‘L’レベルになることにより、第1時限計測回路54の時限計測機能は初期化される。また、START条件が消えてスタート条件検出用Dフリップフロップ6bの非反転Q出力端子のレベルが‘L’レベルになることにより、第2時限計測回路56の時限計測機能と出力機能は初期化されて信号WDT_STARTは非有意となる。SCL上へ入力されたクロック信号の最初の立ち下がりエッジで、バスフリー信号を出力しているラッチ回路6dの有意状態がDフリップフロップ6eに伝搬し、さらに前記クロック信号の次の立ち上がりエッジでDフリップフロップ6fへ伝わり、Dフリップフロップ6fの反転Q ̄出力端子からの出力によりラッチ回路6cはリセットされ、バスフリー信号は非有意となり、この時点で制御論理部7は動作を開始する。
【0039】
マスタデバイスからは、始めにデバイスアドレス情報が入力され、制御論理部7の出力する操作信号SR8Tで駆動される8ビットシフトレジスタ8は、8ビット転送終了時にはLDB〈7:0〉へデバイスアドレス情報を出力する。このときのLDB〈7:0〉へ出力された前記デバイスアドレス情報がこのシリアルインタフェースバス送受信回路のデバイスアドレスと一致している場合には、制御論理部7は操作信号ACKOUTを有意にすると同時に操作信号DATAOUTENで出力選択回路10を制御して、出力選択回路10の出力にアクノレッジを出力する。この結果、データ信号線1に‘L’レベルのアクノレッジ信号が出力される。
一方、前記デバイスアドレス情報がこのシリアルインタフェースバス送受信回路のデバイスアドレスと一致していない場合には、制御論理部7は操作信号ACKOUTを有意にしないて内部動作を停止する。
なお、アクノレッジ期間には、マスタデバイスはデータ信号線1を解放することによりスレーブ出力するアクノレッジ信号を監視している。
【0040】
‘L’レベルのアクノレッジ信号が出力された場合であり、かつデバイスアドレスのLSBが‘L’である場合には、データ情報の書き込みシーケンスが始まる。データ信号線1にはマスタデバイスからサブアドレス情報が入力され、8ビット転送終了時には8ビットシフトレジスタ8は前記サブアドレス情報をLDB〈7:0〉に出力する。制御論理部7は操作信号ACKOUTを有意にすると同時に操作信号DATAOUTENで出力選択回路10を制御して、出力選択回路10の出力にアクノレッジ信号を出力する。このとき同時に制御論理部7の出力する操作信号SALDCによりLDB〈7:0〉へ出力されている前記サブアドレス情報の値をNビットカウンタ9にロードし、LAB〈N−1:0〉上へ出力されていたサブアドレス情報が更新される。
【0041】
次に、書き込みデータ情報が入力される。この書き込みデータ情報は、8ビット転送終了時には8ビットシフトレジスタ8からLDB〈7:0〉に出力される。制御論理部7は、操作信号ACKOUTを有意にしてデータ信号線1へ‘L’レベルのアクノレッジを出力すると同時に、内部レジスタ13,15へデータ情報を書き込むための操作信号(ストローブ信号)STRBCを有意にする。アドレスデコーダ12,14の中で、LAB〈N−1:0〉へ出力されているサブアトレス情報に対応するアドレスデコーダだけが前記操作信号STRBCの有意期間にストローブ信号を生成し、LDB〈7:0〉上の書き込みデータを内部レジスタ13または内部レジスタ15に格納する。
【0042】
以降、引き続いて書き込みデータ情報が8ビット入力される毎に、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内容が+1更新される。そして、LAB〈N−1:0〉へ出力されているサブアドレス情報の指定するサブアドレスが更新され内部レジスタへの書き込みデータ更新動作を繰り返す。なお、STOP条件の検出または再START条件の検出により書き込みデータ更新動作は終了する。
【0043】
デバイスアドレス情報に対するアクノレッジ信号を出力した場合であり、かつデバイスアドレスのLSBが‘H’である場合には内部データの読み出しシーケンスが始まる。‘L’レベルのアクノレッジ信号を出力した直後に、LAB〈N−1:0〉へ出力されているサブアドレス情報の指定するサブアドレスに対応するアドレスデコーダ16またはアドレスデコーダ18だけが、操作信号(情報選択期間信号)LQBOECの有意期間中に内部データをLQB〈7:0〉上に出力させる。操作信号LQBOECの有意期間が十分に覆うタイミングで生成される制御論理部7の出力する操作信号PIDSCにより、LQB〈7:0〉へ読み出された前記内部データの値は8ビットシフトレジスタ8にロードされる。SCL上へ入力されたクロック信号の立ち上がりエッジとタイミングを同じにして制御論理部7から出力される操作信号SR8T毎に、8ビットシフトレジスタ8が前記内部データを並直列変換し、制御論理部7の出力する操作信号DATAOUTENにより出力選択回路10は前記並直列変換された内部データを出力する。
なお、出力選択回路10の出力は、遅延回路11によりバス規格が規定する遅延が施されてデータ信号線1へ出力される。
【0044】
8ビット出力後にマスタデバイスがSDA上の信号レベルを‘L’操作している場合には、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内部状態を‘+1’更新してLAB〈N−1:0〉へ出力されているサブアドレス情報の指定するサブアドレスを更新し、前記内部データ出力動作を繰り返す。8ビット出力後に、マスタデバイスがSDA上の信号レベルを‘H’操作している場合には、データ信号線1を解放する状態で内部動作を停止する。
【0045】
図2は、SDA上に入力されたデータとSCL上に入力されたクロック信号とが同時的に変化する従来のシリアルインタフェースバス送受信回路では誤動作してしまう状況を示すタイミングチャートである。このタイミングチャートに示すように、SCL上のクロック信号とSDA上のデータとが同時変化しても、SCL上のクロック信号の‘L’レベルによりストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bは共にリセットされ、さらに第2時限計測回路56が前記クロック信号の‘L’レベルによりリセットされる。このため、SCL上のクロック信号とSDA上のデータとが同時変化した時点でストップ条件検出用Dフリップフロップ6aによりストップ条件が検出されても、その直後に前記クロック信号の‘L’レベルにより前記ストップ条件は消滅し、図8に示すような誤動作が防止できる。
【0046】
以上のように、この実施の形態1によれば、第1時限計測回路54および第2時限計測回路56に設定されている時限値は、ストップ条件、スタート条件をマスタデバイスが生成するためのデータ、クロックであるか、スレーブデバイスのアクノレッジ出力や読み出しデータ出力の動作によるデータ、クロックであるかの識別を可能にする値に設定されており、バスフリー信号を生成するためのラッチ回路6cをセットする信号は、前記第1時限計測回路54が出力するWDT_STOPおよび第2時限計測回路56が出力するWDT_STARTである。SDA上に入力されたデータとSCL上に入力されたクロック信号とが同時的に変化する従来のシリアルインタフェースバス送受信回路では誤動作してしまう状況下では、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bの非反転Q出力から‘H’レベルの信号が短時間出力される。しかしながら、この実施の形態のシリアルインタフェースバス送受信回路では、前記‘H’レベルの信号出力期間より充分期間の長い時限値が第1時限計測回路54および第2時限計測回路56に設定されている。このため、前記時限値に対応する時間が経過してWDT_STOPやWDT_STARTが出力される前に前記‘H’レベルの信号は消えてしまい、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6b、さらに第1時限計測回路54および第2時限計測回路56がSCL上のクロック信号レベル‘L’によりリセットされる。
【0047】
従って、マスタデバイスに接続された複数のスレーブの中で他のスレーブの誤動作の原因となるタイミング制約条件を満足しないものがある、SDA上に入力されたデータとSCL上に入力されたクロック信号とが同時的に変化する従来のシリアルインタフェースバス送受信回路では誤動作してしまう状況に対し、誤動作の影響を受けにくい、誤動作に対する耐性を向上させたシリアルインタフェースバス送受信回路が得られる効果がある。
【0048】
実施の形態2.
図3は、この実施の形態2のシリアルインタフェースバス送受信回路を示す回路図であり、図3において図1と同一または相当の部分については同一の符号を付し説明を省略する。図において、200はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路、58はバスフリー信号を反転Q ̄出力端子から出力するセット端子、リセット端子が付加されたDフリップフロップ(初期化指示信号生成手段)、59はストップ条件検出用Dフリップフロップ6aの非反転Q出力端子の出力であるストップ条件およびスタート条件検出用Dフリップフロップ6bの非反転Q出力端子の出力であるスタート条件が共に有意の状態を検出するNAND回路、61はNOR回路6cの出力とNAND回路59の出力のAND結果を、Dフリップフロップ6fをリセットするリセット信号として出力するAND回路であり、ストップ・スタート条件生成回路200の他の構成は前記実施の形態1のストップ・スタート条件生成回路100と同様である。
【0049】
なお、この実施の形態2の動作と前記実施の形態1の動作の違いはストップ・スタート条件生成回路200における動作の違いのみであるため、ストップ・スタート条件生成回路200の動作について説明する。このストップ・スタート条件生成回路200では、SCL上のクロック信号のレベルが‘H’のときのSDA上へ供給されたデータの立ち上がりエッジを検出し、ストップ条件検出用Dフリップフロップ6aがSTOP条件検出出力を非反転Q出力端子から出力する。ストップ条件検出用Dフリップフロップ6aの非反転Q出力端子が‘H’に変化してSTOP条件が検出され、STOP条件検出出力が前記非反転Q出力端子から出力されると、第1時限計測回路54は既定の時限後に出力信号WDT_STOPを有意にする。この結果、NOR回路6cの出力によりDフリップフロップ58がセットされてバスフリー信号が有意となり制御論理部7の動作を初期化する。
【0050】
引き続いて、スタート条件検出用Dフリップフロップ6bは、SCL上のクロック信号のレベルが‘H’のときのSDA上へ出力されたデータの立ち下がりエッジを検出してTART条件検出出力を非反転Q出力端子から出力する。スタート条件検出用Dフリップフロップ6bの非反転Q出力端子が‘H’に変化してSTART条件が検出され、START条件検出出力が前記非反転Q出力端子から出力されると、第2時限計測回路56はSTART条件検出出力が出力されてから既定の時限後に出力信号WDT_STARTを有意にする。そして、NOR回路6cの出力を有意にしてDフリップフロップ58は再びセットされる。出力信号WDT_STARTが有意になると、この変化エッジにより第1時限計測回路54の出力は初期化され、第1時限計測回路54の出力信号WDT_STOPは非有意となる。この時点ではバスフリー信号は制御論理部7の動作の初期化を続ける。
【0051】
シリアル転送操作が開始され、SCL上に負極性クロックが入力される。この入力された最初の負極性クロックの‘L’により、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bは初期化され、STOP条件とSTART条件は消える。STOP条件が消えて‘L’になることにより第1時限計測回路54の時限計測機能は初期化される。また、START条件が消えて‘L’になることにより第2時限計測回路56の計測機能と出力機能は初期化されて第2時限計測回路56の出力信号WDT_STARTは非有意となる。
【0052】
また、SCL上のクロック信号の最初の立ち下がりエッジで、バスフリー信号を生成しているDフリップフロップ58の有意状態がDフリップフロップ6eへ伝搬し、クロック信号の次の立ち上がりエッジでDフリップフロップ6eの状態がDフリップフロップ6fへ伝わり、Dフリップフロップ6fの反転Q ̄出力がDフリップフロップ58をリセットする。バスフリー信号はこの時点で非有意となり制御論理部7は動作を開始する。
【0053】
次にテスト時のバス操作仕様に基づく回路動作を説明する。
SCL上のクロック信号のレベルが‘H’のときのSDA上のデータの立ち上がりエッジを検出し、ストップ条件検出用Dフリップフロップ6aはSTOP条件を検出する。この結果、第1時限計測回路54が時限計測している途中で、SCL上のクロック信号が‘H’のときのSDA上のデータの立ち下がりエッジを検出すると、スタート条件検出用Dフリップフロップ6bはSTART条件を検出し、非反転Q出力を‘H’レベルにする。この‘H’レベルへの立ち上がりエッジでDフリップフロップ58は、データ端子へ供給されているSTOP条件をサンプルしてバスフリー信号を有意にし制御論理部7の動作を初期化する。
【0054】
シリアル転送操作が開始され、SCLに負極性クロックが入力される。SCL上へ入力された負極性クロックの最初の‘L’によりスタート条件検出用Dフリップフロップ6bは初期化されてSTART条件は消え、START条件が消えて‘L’となることにより第2時限計測回路56も初期化されて信号WDT_STARTは非有意を継続する。また、Dフリップフロップ58はバスフリー信号の出力を維持している。
SCL上の負極性クロックの最初の立ち下がりエッジ、さらに次の立ち上がりエッジでDフリップフロップ6fにDフリップフロップ58の有意状態が伝搬し、Dフリップフロップ6fの反転Q ̄出力がDフリップフロップ58をリセットする。バスフリー信号は、この時点で非有意となり制御論理部7は動作を開始する。
【0055】
テスト時のバス操作仕様においては、第1時限計測回路54、第2時限計測回路56が共に時限計測中にシリアル転送操作が開始される。このテスト時には、ストップ条件検出用Dフリップフロップ6aがSTOP条件を検出し、非反転Q出力を‘H’レベルに変化させる。次いでストップ条件検出用Dフリップフロップ6bがSTART条件を検出し、非反転Q出力を‘H’レベルに変化させると、この立ち上がりエッジによりDフリップフロップ58はデータ端子へ供給されているストップ条件検出用Dフリップフロップ6aの‘H’レベルの非反転Q出力を読み込んでバスフリー信号を出力する。前記実施の形態1では、第1時限計測回路54が信号WDT_STOPを有意にした後、さらに第2限計測回路56がWDT_STARTを有意にする時間を経てシリアル転送操作が開始できる構成であったが、この実施の形態2のシリアルインタフェースバス送受信回路では、ストップ条件検出用Dフリップフロップ6aがSTOP条件を検出し、非反転Q出力を‘H’レベルに変化させた後、ストップ条件検出用Dフリップフロップ6bがSTART条件を検出すると、第1時限計測回路54および第2時限計測回路56の時限動作を待たずにシリアル転送操作が開始できる。
【0056】
以上のように、この実施の形態2によれば、前記実施の形態1の効果に加えて、第1時限計測回路54および第2時限計測回路56の時限動作を待たずにテストを開始できるため、テスト時間を短縮できるシリアルインタフェースバス送受信回路が得られる効果がある。
【0057】
実施の形態3.
図4は、この実施の形態3のシリアルインタフェースバス送受信回路を示す回路図であり、図4において図1と同一または相当の部分については同一の符号を付し説明を省略する。この実施の形態3のシリアルインタフェースバス送受信回路は、前記実施の形態1においてSTOP条件もしくはSTART条件が成立すると動作が起動される第1時限計測回路54および第2時限計測回路56を、第1の時限と第2の時限(第1の時限>第2の時限)を計測できる第3時限計測回路(相互入力条件判定手段)70および第4時限計測回路(相互入力条件判定手段)72に置き換え、かつ第3時限計測回路70および第4時限計測回路72の第2の時限の計測結果をバスのステータスとしてフラグレジスタ(判定結果格納手段)74へフラグ出力し、マスタデバイスはシリアルインタフェース通信により前記フラグレジスタ74に設定されたフラグを読み取ることで、データとクロック間の相互入力遅延条件を実動作状態において判定できる構成である。なお、この場合の前記第2の時限値はマスタデバイスから内部レジスタ(判定データ格納手段)13に設定された値である。
【0058】
図4において、300はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路、70は第1の時限と第2の時限を計測できる第3時限計測回路、72は第1の時限と第2の時限を計測できる第4時限計測回路、74は制御論理部(判定結果読出手段)7が出力する操作信号LQBOECをもとにバスステータスフラッグをLDB〈7:0〉へ出力するフラグレジスタである。なお、ストップ・スタート条件生成回路300の他の構成は前記実施の形態1のストップ・スタート条件生成回路100と同様である。
【0059】
次に動作について説明する。
この実施の形態3のシリアルインタフェースバス送受信回路の動作は、前記実施の形態1のシリアルインタフェースバス送受信回路の動作とほぼ同じであるが、実施の形態1の動作に加えて∵第3時限計測回路70および第4時限計測回路72からの各第2の時限計測結果がバスのステータスとしてフラグレジスタ74にセットされる。このフラグレジスタ74は、マスタデバイスのバスのステータス読み取り動作後にリセットされる。
【0060】
マスタデバイスから送られてきた第2の時限値は内部レジスタ13に格納される。この内部レジスタ13に格納された第2の時限値は、第3時限計測回路70および第4時限計測回路72に設定され、第3時限計測回路70および第4時限計測回路72のリセットが解除されてから第3時限計測回路70や第4時限計測回路72にFLAG2が立つ前記第2の時限値に対応した時刻が経過するまでの時間を規定する。
SDA上のデータとSCL上のクロック信号との相互入力遅延条件を満足しない前記データと前記クロック信号が同時的に変化する状況では、ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力からはストップ条件検出出力、スタート条件検出出力として短期間、‘H’レベルの信号が出力される場合がある。この短期間出力されることのある‘H’レベルの信号は第3時限計測回路70や第4時限計測回路72のリセットを解除するが、このような短期間リセットが解除される場合には前記実施の形態1で説明したように、第3時限計測回路70や第4時限計測回路72からは信号WDT_STOP、WDT_STARTは出力されないので、ラッチ回路6dはバスフリー信号を有意にすることはない。
【0061】
しかしながら第3時限計測回路70や第4時限計測回路72に設定される前記第2の時限値が、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子から短期間‘H’レベルとして出力される信号の出力期間内であれば、第3時限計測回路70や第4時限計測回路72のFLAG2端子からは前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からの‘H’レベルから‘L’レベルに変化するタイミングで‘H’パルス状のFLAG2が出力され、フラグレジスタ74は‘H’レベルにセットされる。また、前記第2の時限値が、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子から短期間‘H’レベルとして出力される信号の出力期間後であれば、第3時限計測回路70や第4時限計測回路72のFLAG2端子からは、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からの‘H’レベルから‘L’レベルに変化するタイミングで‘H’パルス状のFLAG2は出力されず、フラグレジスタ74にもフラグがセットされることはない。SDA上のデータとSCL上のクロック信号との相互入力遅延条件を満足する信号が入力される状況では、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からはストップ条件検出出力やスタート条件検出出力として第2の時限値はもとより第1の時限値を満たす期間‘H’レベルの信号が出力される。この場合は、第1の時限値経過後であることによりWDT_STOP、WDT_STARTが‘H’レベルとなることにより、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からの‘H’レベルから‘L’レベルに変化するタイミングでは‘H’パルス状のFLAG2は出力されない動作をする。従って、前記第2の時限値を徐々に短くするように操作することで、前記相互入力遅延条件を満足しない前記データと前記クロック信号が同時的に変化する状況を実操作状態において判定できる。
【0062】
なお、この実施の形態3ではSTOP条件用、START条件用の第2の時限値のみを共通に可変設定できる構成であるが、第1の時限および第2の時限を共に可変設定できる構成、さらにはSTOP条件用およびSTART条件用の時限を独立にそれぞれ可変設定できる構成にしてもよい。
【0063】
以上のように、この実施の形態3によれば、前記実施の形態1の効果に加えて、相互入力遅延条件を満足しないSDA上のデータとSCL上のクロック信号が同時的に変化する状況を実動作状態において判定できるシリアルインタフェースバス送受信回路が得られる効果がある。
【0064】
実施の形態4.
図5は、この実施の形態4のシリアルインタフェースバス送受信回路を示す回路図であり、図5において図3および図4と同一または相当の部分については同一の符号を付し説明を省略する。この実施の形態4のシリアルインタフェースバス送受信回路は、前記実施の形態2で説明したシリアルインタフェースバス送受信回路と前記実施の形態3で説明したシリアルインタフェースバス送受信回路の特徴を共に備えた構成をストップ・スタート条件生成回路が備えている。
図5において、400はストップ・スタート条件生成回路である。
【0065】
この実施の形態4のシリアルインタフェースバス送受信回路の動作は、テスト時のバス操作仕様において第3時限計測回路70、第4時限計測回路72が共に時限計測中にシリアル転送操作を開始するため、第3時限計測回路70、第4限計測回路72が信号WDT_STOP、WDT_STARTを有意にする時間を介さずにシリアル転送操作が開始できるという前記実施の形態2の動作と、相互入力遅延条件を満足しないデータとクロック信号が同時的に変化する状況を実動作状態において判定できるという前記実施の形態3の動作が両立する。
【0066】
従って、この実施の形態4では、前記実施の形態2の効果と前記実施の形態3の効果を実現するシリアルインタフェースバス送受信回路が得られる効果がある。
【0067】
【発明の効果】
以上のように、請求項1記載の発明によれば、データ信号線を介してマスタデバイスから入力されたデータおよびクロック信号線を介して前記マスタデバイスから入力されたクロック信号をもとに、前記マスタデバイスとの間のデータ送受の停止および前記データ送受の開始を検出して当該検出結果を出力するとともに、前記クロック信号の信号レベルによりリセットされるデータ送受停止・開始検出手段と、該データ送受停止・開始検出手段による検出結果をもとに時限動作を行い、設定された時間経過後にストップ条件認識信号およびスタート条件認識信号を出力する条件認識信号時限出力手段とを備えるように構成したので、データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号が相互入力条件を満足していない状況にあっても、すなわち前記信号両者が同時的に変化するような場合であっても、ストップ条件認識信号およびスタート条件認識信号は条件認識信号時限出力手段から出力されず、誤動作の原因にはならず、誤動作の影響を受けにくい誤動作に対する耐性を向上できる効果がある。
【0068】
請求項2記載の発明によれば、条件認識信号時限出力手段の出力またはデータ送受停止・開始検出手段が検出したマスタデバイスとの間のデータ送受の停止、前記データ送受の開始の検出結果をもとに、データ送受のための初期化を指示する初期化指示信号を生成し出力する初期化指示信号生成手段を備えるように構成したので、条件認識信号時限出力手段を介さないで初期化指示信号を生成し出力することができ、シリアルインタフェース機能をテストする際のテスト時間を短縮できる効果がある。
【0069】
請求項3記載の発明によれば、データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号との相互入力条件を判定するために使用する判定データを格納する判定データ格納手段と、該判定データ格納手段に格納した判定データをもとに、前記相互入力条件を判定する相互入力条件判定手段と、該相互入力条件判定手段による判定結果を格納する判定結果格納手段と、該判定結果格納手段に格納した前記判定結果をマスタデバイスから読み出す判定結果読出手段とを備えるように構成したので、前記相互入力条件を満足しないデータとクロック信号が同時的に変化する状況などを実動作状態において判定できる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図2】 この発明の実施の形態1によるシリアルインタフェースバス送受信回路のストップ・スタート条件生成回路の動作を示すタイミングチャートである。
【図3】 この発明の実施の形態2によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図4】 この発明の実施の形態3によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図5】 この発明の実施の形態4によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図6】 従来のシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図7】 シリアルインタフェースバス送受信回路の動作を示すタイミングチャートである。
【図8】 従来のシリアルインタフェースバス送受信回路のストップ・スタート条件生成回路における正常動作および異常動作を示すタイミングチャートである。
【符号の説明】
1 データ信号線、2 クロック信号線、6a ストップ条件検出用Dフリップフロップ(データ送受停止・開始検出手段)、6b スタート条件検出用Dフリップフロップ(データ送受停止・開始検出手段)、6d ラッチ回路(初期化指示信号生成手段)、6e,6f Dフリップフロップ(初期化指示信号リセット手段)、7 制御論理部(制御手段、判定結果読出手段)、13 内部レジスタ(判定データ格納手段)、54 第1時限計測回路(条件認識信号時限出力手段)、56 第2時限計測回路(条件認識信号時限出力手段)、58 Dフリップフロップ(初期化指示信号生成手段)、70 第3時限計測回路(相互入力条件判定手段)、72 第4時限計測回路(相互入力条件判定手段)、74 フラグレジスタ(判定結果格納手段)。
【発明の属する技術分野】
この発明は、データ信号線およびクロック信号線の2本の信号線により情報の転送を行うシリアルインタフェースバス送受信回路に関するものである。
【0002】
【従来の技術】
従来のシリアルインタフェースバス送受信回路としてはI2 Cバスがあり、TV製品やVTR製品などの電気回路に用いられるIC間の情報転送に用いられている。
図6は、従来のシリアルインタフェースバス送受信回路の構成を示す回路図であり、図において、1はシリアルインタフェースバスのデータが出力されるデータ信号線、2はシリアルインタフェースバスのクロック信号が出力されるクロック信号線であり、このシリアルインタフェースバスは図示していない例えばマイクロコントローラなどのマスタデバイスと接続されている。3はデータ信号線1へ出力されたデータをこのシリアルインタフェースバス送受信回路へ取り込むためのデータ用入力バッファ回路、4は当該シリアルインタフェースバス送受信回路からデータをデータ信号線1へ出力するためのデータ用出力バッファ回路、5はクロック信号線2へ出力されたクロック信号を当該シリアルインタフェースバス送受信回路へ取り込むためのクロック用入力バッファ回路である。
【0003】
6はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路であり、ストップ条件検出用Dフリップフロップ6a、スタート条件検出用Dフリップフロップ6b、ノア回路6c、ラッチ回路6d、Dフリップフロップ6e、Dフリップフロップ6fを備えている。
スタート条件検出用Dフリップフロップ6bのリセット端子は、前記マスタデバイスからクロック信号線2へ供給されたクロック信号がクロック用入力バッファ回路5を介して出力されるクロック信号供給ライン(以下、SCLという)と接続される。また、スタート条件検出用Dフリップフロップ6bのクロック信号入力端子は、前記マスタデバイスからデータ信号線1へ供給されたデータがデータ用入力バッファ回路3を介して出力されるデータ供給ライン(以下、SDAという)と接続されている。また、スタート条件検出用Dフリップフロップ6bのデータ端子はVccラインと接続されている。
ストップ条件検出用Dフリップフロップ6aのリセット端子は、スタート条件検出用Dフリップフロップ6bの反転Q ̄出力端子と接続されている。また、ストップ条件検出用Dフリップフロップ6aのクロック信号入力端子は、前記SDAと接続されている。また、スタート条件検出用Dフリップフロップ6aのデータ端子はVccラインと接続されている。
【0004】
ノア回路6cのそれぞれの入力端子は、一方の入力端子がストップ条件検出用Dフリップフロップ6aの非反転Q出力端子と接続され、他方の入力端子がスタート条件検出用Dフリップフロップ6bの非反転Q出力端子と接続されている。また、ノア回路6cの出力端子はラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子と接続されている。
【0005】
ラッチ回路6dの非反転Q出力端子はDフリップフロップ6eのデータ端子と接続され、リセット端子はDフリップフロップ6fの反転Q ̄出力端子と接続されており、ラッチ回路6dの反転Q ̄出力端子からはシリアルインタフェース動作の初期化を行うためのバスフリー信号(BUS FREE)が出力される。
【0006】
Dフリップフロップ6eおよびDフリップフロップ6fのクロック信号入力端子は前記SCLと接続され、Dフリップフロップ6eの非反転Q出力端子はDフリップフロップ6fのデータ端子と接続されている。
【0007】
7は制御論理部、8は8ビットのデータを直並列変換または並直列変換する8ビットシフトレジスタ、9はサブアドレスを内部状態として保持し出力するNビットカウンタ、10は8ビットシフトレジスタ8から出力された内部情報またはアクノレッジを出力する出力選択回路、11は出力選択回路10の出力に対しバス規格で規定する遅延量を付加するための遅延回路、12および14はデータ情報が書き込まれるサブアドレスをデコードするアドレスデコーダ、13はアドレスデコーダ12のデコード出力によりデータ情報が書き込まれる内部レジスタ、15はアドレスデコーダ14のデコード出力によりデータ情報が書き込まれる内部レジスタである。16および18は内部情報を読み出すためのサブアドレスをデコードするアドレスデコーダ、17はアドレスデコーダ16のデコード出力により内部情報を読み出すための情報選択素子、19はアドレスデコーダ18のデコード出力により内部情報を読み出すための情報選択素子である。
【0008】
制御論理部7は、データ用入力バッファ回路3を介して前記SDAへ出力されたデータ、クロック用入力バッファ回路5を介して前記SCLへ出力されたクロック信号、ラッチ回路6dの反転Q ̄出力端子から出力されたバスフリー信号、および8ビットシフトレジスタ8により変換されたデータが供給され、これら各信号をもとに操作信号PIDSC、SR8T、DATAOUTEN、ACKOUT、SAEP、SALDC、STRBC、LQBOECを生成し、各制御信号線へ出力する。PIDSCは読み出された内部情報を8ビットシフトレジスタ8へロードするための操作信号、SR8Tは8ビットシフトレジスタ8のシフトタイミングを規定する操作信号、DATAOUTENは出力選択回路10からの内部情報の出力を制御する操作信号、ACKOUTは出力選択回路10からのアクノレッジの出力を制御する操作信号、SAEPはNビットカウンタ9の内部状態を‘+1’更新するための操作信号である。SALDCはNビットカウンタ9へサブアドレス情報をロードするための操作信号である。STRBCは内部レジスタ13,15へデータ情報を書き込むための操作信号である。LQBOECは読み出された内部情報を8ビットシフトレジスタ8へ与えるための操作信号である。
【0009】
次に動作について説明する。
図7は、このシリアルインタフェースバス送受信回路の動作を示すタイミングチャートである。
先ず、SCL上のクロック信号レベルが‘H’レベルのときのSDA上のデータの立ち上がりエッジを検出することでDフリップフロップ6aがストップ条件を検出する。Dフリップフロップ6aの非反転Q出力端子からのストップ条件検出出力はノア回路6cを経てラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子へ与えられる。この結果、ラッチ回路6dはセットされて、ラッチ回路6dの反転Q ̄出力であるバスフリー信号が有意となり制御論理部7の動作を初期化する。引き続いてSCL上のクロック信号レベルが‘H’レベルのときのSDA上のデータの立ち下がりエッジを検出することでDフリップフロップ6bがスタート条件を検出する。Dフリップフロップ6bの反転Q ̄出力端子からの出力はDフリップフロップ6aをリセットして、Dフリップフロップ6aから出力されていたストップ条件検出出力を消す。Dフリップフロップ6bの非反転Q出力端子からのスタート条件検出出力は、ノア回路6cを経てラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子へ与えられ、ラッチ回路6dはセット状態を維持し、制御論理部7は前記初期化を継続する。
【0010】
次いで、シリアル転送操作が開始されて、SCL上に負極性のクロック信号がマスタデバイスから供給される。この結果、最初の前記クロック信号の‘L’レベルによりDフリップフロップ6bはリセットされ、Dフリップフロップ6bの非反転Q出力端子から出力されていたスタート条件検出出力は消える。この状態ではラッチ回路6dはセット状態を維持しており前記バスフリー信号は有意である。
【0011】
前記最初のクロック信号の立ち下がりエッジにより、ラッチ回路6cの非反転Q出力はDフリップフロップ6eへ伝わり、さらに前記最初のクロック信号の立ち上がりエッジにより、Dフリップフロップ6eへ伝わったラッチ回路6cの非反転Q出力はDフリップフロップ6fへ伝わり、この結果、Dフリップフロップ6fの反転Q ̄出力によりラッチ回路6cはセット状態からリセット状態へ移行する。前記バスフリー信号はこの時点で非有意となって、制御論理部7は動作を開始する。
【0012】
制御論理部7が動作を開始した状態で、始めにSDA上にデバイスアドレス情報がマスタデバイスから送られてくる。このデバイスアドレス情報は、8ビットシフトレジスタ8へ入力される。8ビットシフトレジスタ8は、制御論理部7から出力される操作信号SR8Tにより駆動されて、前記デバイスアドレス情報の8ビット転送終了時には当該デバイスアドレス情報をラインLDB〈7:0〉へ出力する。このラインLDB〈7:0〉へ出力されたデバイスアドレス情報が当該シリアルインタフェースバス送受信回路のデバイスアドレスと一致している場合には、制御論理部7は操作信号ACKOUTを有意にすると同時に出力選択回路10を操作信号DATAOUTENにより制御して、出力選択回路10からアクノレッジ信号を出力する。この結果、データ信号線1には‘L’レベルのアクノレッジ信号が出力される。一方、一致していない場合には、制御論理部7は操作信号ACKOUTを有意にしないで内部動作を停止する。
なお、アクノレッジ期間にはマスタデバイスは、データ信号線1を開放することによりスレーブのアクノレッジを監視している。
【0013】
デバイスアドレス情報が当該シリアルインタフェースバス送受信回路のデバイスアドレスと一致しており、‘L’レベルのアクノレッジ信号が出力されるとともにデバイスアドレスのLSBが‘L’レベルである場合には、データ情報の書き込みシーケンスが開始される。このシーケンスでは、サブアドレス情報がマスタデバイスからデータ信号線1を介して送られてくる。このサブアドレス情報の8ビット転送終了時には8ビットシフトレジスタ8は当該サブアドレス情報をラインLDB〈7:0〉へ出力する。
【0014】
制御論理部7は、操作信号ACKOUTを有意にすると同時に操作信号DATAOUTENで制御して出力選択回路10の出力にアクノレッジ信号を出力する。このとき同時に制御論理部7の出力する操作信号SALDCによりラインLDB<7:0>へ出力されたサブアドレス情報の値をNビットカウンタ9にロードし、ラインLAB<N−1:0>へ出力されているサブアトレス情報を更新する。次に、マスタデバイスから送られてくる書き込みデータ情報が入力され、8ビット転送終了時には8ビットシフトレジスタ8は前記書き込みデータ情報をラインLDB〈7:0〉へ出力する。制御論理部7は操作信号ACKOUTを有意にしてデータ信号線1に‘L’レベルのアクノレッジ信号を出力すると同時に内部レジスタへデータ情報の書き込みを行うための操作信号STRBCを有意にする。この結果、アドレスデコーダ12,14の中で、ラインLAB〈N−1:0〉へ出力されたサブアドレスに対応するアドレスデコーダだけが前記操作信号STRBCの有意期間中にラインLDB〈7:0〉上の書き込みデータを内部レジスタ13または内部レジスタ15に格納する。
【0015】
以降、引き続いて書き込みデータ情報が8ビット入力される毎に、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内容が‘+1’更新される。そして、ラインLAB〈N−1:0〉上のサブアドレスが更新され前記内部レジスタへの書き込みデータの更新動作が繰り返される。STOP条件の検出もしくは再START条件の検出により書き込みデータ更新動作は終了する。
【0016】
デバイスアドレス情報に対し‘L’レベルのアクノレッジ信号が出力され、かつデバイスアドレスのLSBが‘H’レベルである場合にはデータ情報の読み出しシーケンスが開始される。‘L’レベルのアクノレッジ信号を出力した直後に、アドレスデコーダ16,18の中でラインLAB〈N−1:0〉上に出力されているサブドレスに対応するアドレスデコーダだけが、操作信号LQBOECの有意期間中に読み出しデータをラインLQB〈7:0〉上に出力する。操作信号LQBOECの有意期間が十分に覆うタイミングで制御論理部7により生成され出力された操作信号PIDSCによりラインLQB〈7:0〉上の前記読み出しデータが8ビットシフトレジスタ8にロードされる。入力されるSCL上のクロック信号の立ち上がりエッジとタイミングを同じにして、制御論理部7から出力される操作信号SR8Tにより8ビットシフトレジスタ8は読み出しデータをシリアルデータに変換し出力選択回路10へ出力する。制御論理部7の出力する操作信号DATAOUTENにより、出力選択回路10は前記シリアルデータに変換された前記読み出しデータを出力する。
なお、出力選択回路10から出力された前記読み出しデータは遅延回路11によりバス規格が規定する遅延が施されてデータ信号線1へ出力される。
【0017】
8ビット出力後にマスタデバイスがSDA上のデータを‘L’操作している場合には、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内部状態は‘+1’更新され、ラインLAB〈N−1:0〉上のサブアドレスを更新し読み出しデータ出力動作を繰り返す。8ビット出力後にマスタデバイスがSDA上のデータを‘H’操作している場合には、データ信号線1を解放する状態で内部動作を停止する。
【0018】
このようにシリアルインタフェースバス送受信回路をスレーブとしてマスタデバイスとの間で情報転送を行うためには、SCL上の信号レベルが‘H’レベルのときのSDA上のデータが‘H’レベルから‘L’レベルへ変化することで開始条件をマスタデバイスが生成し、またSCL上の信号レベルが‘H’レベルのときのSDA上のデータが‘L’レベルから‘H’レベルへ変化することでマスタデバイスが停止条件を生成する。また、SCL上の信号レベルが‘H’レベルのときのSDA上のデータの状態は一定でなければならず、‘L’レベルのときのみ状態変更が許される。また、これらの定義を成立させるためにSCL上の信号レベルが‘H’レベルから‘L’レベルへの変化を起点として最低300nsecのSDA上のデータが変化してはいけないSDA信号ホールド時間を設けるなどのタイミング制約条件が決められている。
【0019】
【発明が解決しようとする課題】
従来のシリアルインタフェースバス送受信回路は以上のように構成されているので、マスタデバイスに接続された複数のスレーブの中で前記SDA信号ホールド時間を設けるというタイミング制約条件を満足していないシリアルインタフェースバス送受信回路が存在すると、他のスレーブにとってSDA上のデータとSCL上のクロック信号とが同時的に変化する場合が生じることになって誤動作する可能性が大きくなる課題があった。
【0020】
このような誤動作を引き起こす原因は、バスに複数のスレーブを接続した状態においては、バスラインの保有する抵抗値や寄生容量およびバスに接続するスレーブの入力容量が各スレーブ入力端でのSDA上の信号とSCL上の信号の伝搬遅延量をばらつかせるため、他のスレーブへのSDA上のデータとSCL上のクロック信号とが同時的に変化する場合が生じるからである。
この誤動作についてさらに説明すると、誤動作を引き起こすスレーブがアクノレッジまたはデータ読み出し出力動作時に、他のスレーブで前記通信の開始条件や停止条件の検出が成立してしまい、引き続くSDA上の情報が、マスタデバイスではデータとして管理している転送サイクルにおいて前記他のスレーブでアドレスとして受信され、この受信されたアドレスが前記他のスレーブのデバイスアドレスと一致した場合に当該スレーブでは送受信動作が起動されてしまう。このような誤動作を起す場合には誤反応を起したスレーブのSDA入力端において遅延要素を付加することにより対処している。しかしながらこのような誤反応は、対象となるスレーブの持つ機能の多様性および前述のバスの電気的な環境の変化が関係することから早期の発見が困難である。また、このようなシリアルインタフェースバス送受信回路を内蔵した製品のシリアルインタフェース機能をテストする際には、テスト時間を短縮するためにバス規格で規定している以上の高速安定動作が望まれるが、このように高速動作させる場合には、前記SDA入力端とSCL入力端の入力位相管理がテスタの動作精度に左右されず、またタイミング制約条件の設定が容易であることが望まれる課題があった。
【0021】
この発明は、上記のような課題を解決するためになされたもので、マスタデバイスに接続された複数のスレーブの中で他のスレーブの誤動作の原因となる前記タイミング制約条件を満足しないものがあっても、誤動作の影響を受けにくい、誤動作に対する耐性を向上させたシリアルインタフェースバス送受信回路を得ることを目的とする。
【0022】
また、この発明はシリアルインタフェース機能をテストする際のテスト時間を短縮できるシリアルインタフェースバス送受信回路を得ることを目的とする。
【0023】
【課題を解決するための手段】
請求項1記載の発明に係るシリアルインタフェースバス送受信回路は、データ信号線を介して前記マスタデバイスから入力された前記データおよび前記クロック信号線を介して前記マスタデバイスから入力されたクロック信号をもとに、マスタデバイスとの間のデータ送受の停止および前記データ送受の開始を検出して当該検出結果を出力するとともに、前記クロック信号の信号レベルによりリセットされるデータ送受停止・開始検出手段と、該データ送受停止・開始検出手段による検出結果をもとに時限動作を行い、設定された時間経過後にストップ条件認識信号およびスタート条件認識信号を出力する条件認識信号時限出力手段と、前記データ送受のための初期化を指示する初期化指示信号を前記条件認識信号時限出力手段の出力をもとに生成し出力する初期化指示信号生成手段と、前記クロック信号をもとに前記初期化指示信号生成手段が出力した前記初期化指示信号をリセットする初期化指示信号リセット手段と、前記初期化指示信号生成手段の出力する初期化指示信号をもとにデータ送受のための初期化を実行し、前記初期化指示信号リセット手段により前記初期化指示信号がリセットされた後、前記クロック信号と同期してデータを前記マスタデバイスとの間で送受する制御手段とを備えるようにしたものである。
【0024】
請求項2記載の発明に係るシリアルインタフェースバス送受信回路は、条件認識信号時限出力手段の出力またはデータ送受停止・開始検出手段が検出したマスタデバイスとの間のデータ送受の停止、前記データ送受の開始の検出結果をもとに、データ送受のための初期化を指示する初期化指示信号を生成し出力する初期化指示信号生成手段を備えるようにしたものである。
【0025】
請求項3記載の発明に係るシリアルインタフェースバス送受信回路は、データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号との相互入力条件を判定するために使用する判定データを格納する判定データ格納手段と、該判定データ格納手段に格納した判定データをもとに、前記相互入力条件を判定する相互入力条件判定手段と、該相互入力条件判定手段による判定結果を格納する判定結果格納手段と、該判定結果格納手段に格納した前記判定結果をマスタデバイスから読み出す判定結果読出手段とを備えるようにしたものである。
【0026】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1は、この実施の形態1のシリアルインタフェースバス送受信回路の構成を示す回路図である。図1において、1はシリアルインタフェースバスのデータが出力されるデータ信号線、2はシリアルインタフェースバスのクロック信号が出力されるクロック信号線であり、このシリアルインタフェースバスは図示していない例えばマイクロコントローラなどのマスタデバイスと接続されている。3はデータ信号線1へ出力されたデータをこのシリアルインタフェースバス送受信回路へ取り込むためのデータ用入力バッファ回路、4は当該シリアルインタフェースバス送受信回路からデータをデータ信号線1へ出力するためのデータ用出力バッファ回路、5はクロック信号線2へ出力されたクロック信号を当該シリアルインタフェースバス送受信回路へ取り込むためのクロック用入力バッファ回路である。
【0027】
100はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路であり、ストップ条件検出用Dフリップフロップ(データ送受停止・開始検出手段)6a、スタート条件検出用Dフリップフロップ(データ送受停止・開始検出手段)6b、第1時限計測回路(条件認識信号時限出力手段)54、第2時限計測回路(条件認識信号時限出力手段)56、NOR回路6c、ラッチ回路(初期化指示信号生成手段)6d、Dフリップフロップ(初期化指示信号リセット手段)6e、Dフリップフロップ(初期化指示信号リセット手段)6fを備えている。
第1時限計測回路54および第2時限計測回路56に設定されている時限値は、ストップ条件、スタート条件をマスタデバイスが生成するためのデータ、クロックの変化であるか、スレーブデバイスのアクノレッジ出力や読み出しデータ出力の動作によるデータ、クロックの変化であるかの識別を可能にする値に設定されている。
ストップ条件検出用Dフリップフロップ6a、スタート条件検出用Dフリップフロップ6bのリセット端子は、前記マスタデバイスからクロック信号線2へ供給されたクロック信号がクロック用入力バッファ回路5を介して入力されるSCL(クロック信号供給ライン)と接続されている。また、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bのクロック信号入力端子は、前記マスタデバイスからデータ信号線1へ供給されたデータがデータ用入力バッファ回路3を介して入力されるSDA(データ供給ライン)と接続されている。また、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bのデータ端子はVccラインと接続されている。
【0028】
ストップ条件検出用Dフリップフロップ6aの非反転Q出力端子は、第1時限計測回路54のリセット端子と接続されている。また、スタート条件検出用Dフリップフロップ6bの非反転Q出力端子は第2時限計測回路56のリセット端子と接続されている。第1時限計測回路54および第2時限計測回路56のクロック入力端子には内部クロックが供給されている。
NOR回路6cの一方の入力端子は第1時限計測回路54のFLAG出力端子と接続され、また他方の入力端子は第2時限計測回路56のFLAG出力端子と接続されている。第2時限計測回路56のFLAG出力端子は、また、第1時限計測回路54の第2リセット端子(R_FLAG)と接続されている。NOR回路6cの出力端子はラッチ回路6dのセット端子およびDフリップフロップ6fのリセット端子と接続されている。
【0029】
ラッチ回路6dの非反転Q出力端子はDフリップフロップ6eのデータ端子と接続され、リセット端子はDフリップフロップ6fの反転Q ̄出力端子と接続されており、ラッチ回路6dの反転Q ̄出力端子からはシリアルインタフェース動作の初期化を行うためのバスフリー信号(BUS FREE)が出力される。
【0030】
Dフリップフロップ6eおよびDフリップフロップ6fのクロック信号入力端子は前記SCLと接続され、Dフリップフロップ6eの非反転Q出力端子はDフリップフロップ6fのデータ端子と接続されている。
【0031】
7は制御論理部(制御手段)、8は8ビットのデータを直並列変換または並直列変換する8ビットシフトレジスタ、9はサブアドレスを内部状態として保持し出力するNビットカウンタ、10は8ビットシフトレジスタ8から出力された内部データまたはアクノレッジを出力する出力選択回路、11は出力選択回路10の出力に対しバス規格で規定する遅延量を付加するための遅延回路、12および14はデータ情報が書き込まれるサブアドレスをデコードするアドレスデコーダ、13はアドレスデコーダ12のデコード出力によりデータ情報が書き込まれる内部レジスタ、15はアドレスデコーダ14のデコード出力によりデータ情報が書き込まれる内部レジスタである。16および18は内部データを読み出すためのサブアドレスをデコードするアドレスデコーダ、17はアドレスデコーダ16のデコード出力により内部データを読み出すための情報選択素子、19はアドレスデコーダ18のデコード出力により内部データを読み出すための情報選択素子である。
【0032】
制御論理部7は、データ用入力バッファ回路3を介して前記SDAへ入力されたデータ、クロック用入力バッファ回路5を介して前記SCLへ入力されたクロック信号、ラッチ回路6dの反転Q ̄出力端子から出力されたバスフリー信号、および8ビットシフトレジスタ8により変換されたデータが供給され、これら各信号をもとに操作信号PIDSC、SR8T、DATAOUTEN、ACKOUT、SAEP、SALDC、STRBC、LQBOECを生成し、各制御信号線へ出力する。
PIDSCは読み出された内部情報を8ビットシフトレジスタ8へロードするための操作信号、SR8Tは8ビットシフトレジスタ8のシフトタイミングを規定する操作信号、DATAOUTENは出力選択回路10からの内部情報の出力を制御する操作信号、ACKOUTは出力選択回路10からのアクノレッジの出力を制御する操作信号、SAEPはNビットカウンタ9の内部状態を‘+1’更新するための操作信号である。SALDCはNビットカウンタ9へサブアドレス情報をロードするための操作信号である。STRBCは内部レジスタ13,15へデータ情報を書き込むための操作信号である。LQBOECは読み出された内部情報を8ビットシフトレジスタ8へ与えるための操作信号である。
【0033】
ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bは、SCL上のクロック信号のレベルが‘L’レベルのときには非有意化される。ストップ条件検出用Dフリップフロップ6aは、SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されているデータの立ち上がりエッジを検出し、非反転Q出力端子からの出力であるSTOP条件を有意化する。また、スタート条件検出用Dフリップフロップ6bは、SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されているデータの立ち下かりエッジを検出し、非反転Q出力端子からの出力であるSART条件を有意化する。
【0034】
STOP条件もしくはSTART条件が成立すると第1時限計測回路54、第2時限計測回路56が動作を開始し、既定の時限に達すると第1時限計測回路54のFLAG出力端子からの信号WDT_STOP、第2時限計測回路56のFLAG出力端子からの信号WDTSTARTが有意になる。
ストップ条件検出用Dフリップフロップ6aの非反転Q出力端子から出力されるSTOP条件が非有意の場合、第1時限計測回路54の時限計測機能は初期化される。但し、信号WDT_STOPの出力機能の初期化は、信号WDT_STARTの非有意から有意への変化エッジにより実行される。START条件が非有意の場合、第2時限計測回路56の時限計測機能と信号WDT_STARTの出力機能は共に初期化される。これら信号WDT_STOP、WDT_STARTによりNOR回路6cの出力が有意となりラッチ回路6dをセットする。ラッチ回路6dの反転Q ̄出力端子からの出力は、バスフリー信号としてシリアルインタフェース動作を初期化する。
【0035】
ラッチ回路6dの非反転Q出力端子からの出力は、SCL上の負極性クロック信号の立ち下がりエッジでDフリップフロップ6eに取り込まれ非反転Q出力端子から出力され、この出力は前記負極性クロック信号の次の立ち上がりエッジでDフリップフロップ6fに伝搬する。
Dフリップフロップ6fの反転Q ̄出力端子からの出力はラッチ回路6dをリセットして、ラッチ回路6dから出力されていたバスフリー信号を終了させる。この結果、シリアルインタフェース動作が始まる。
Dフリップフロップ6fは、バスフリー信号の非有意がラッチ回路6dから伝搬して非有意となるか、またはノア回路6cの出力により非有意化される。
SDA上へ供給されたデータのシリアル信号は8ビットシフトレジスタ8により8ビットのパラレル信号に直並列変換されLDB〈7:0〉に出力される。こうしてLDB〈7:0〉上へ出力されたパラレル信号は、内部レジスタ13,15のサブアドレスを内容とするタイミングにおいて、Nビットカウンタ9にロードされ内部レジスタ13,15のサブアドレスとして保持され、LAB〈N−1:0〉へ出力される。LAB〈N−1:0〉へ出力されている前記サブアドレスは、内部レジスタ13,15へデータ情報を書き込み内部で使用する情報とする場合の内部レジスタ13,15を選択するレジスタ選択指定用として、または内部データを外部へ読み出す場合の内部情報選択指定用として用いられる。
【0036】
次に、このシリアルインタフェースバス送受信回路の動作について説明する。
このシリアルインタフェースバス送受信回路の動作の説明では、図7に示すタイミングチャートを参照する。
SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されたデータの立ち上がりエッジを検出し、ストップ条件検出用Dフリップフロップ6aはSTOP条件を検出する。このSTOP条件を検出するとストップ条件検出用Dフリップフロップ6aの非反転Q出力端子の出力は‘H’レベルに変化し、このタイミングからさらに既定の時限後に第1時限計測回路54から出力される信号WDT_STOPが有意となる。この結果、NOR回路6cの出力によりラッチ回路6dがセットされ、反転Q ̄出力端子から出力されるバスフリー信号が有意となり制御論理部7の動作が初期化される。
【0037】
引き続いて、SCL上のクロック信号のレベルが‘H’レベルのときのSDA上へ供給されたデータの立ち下がりエッジを検出し、スタート条件検出用Dフリップフロップ6bはSTART条件を検出する。このSTART条件を検出するとスタート条件検出用Dフリップフロップ6bの非反転Q出力端子の出力は‘H’レベルに変化し、このタイミングからさらに既定の時限後に第2時限計測回路56から出力される信号WDT_STARTが有意となる。この結果、NOR回路6cの出力によりラッチ回路6dが再びセットされる。信号WDT_STARTが有意になると、第1時限計測回路54の出力は初期化され、第1時限計測回路54の出力である有意となっていた信号WDT_STOPは非有意となる。この時点ではバスフリー信号は制御論理部7の動作の初期化を続ける。
【0038】
そして、シリアル転送操作が開始され、SCL上へ負極性クロックが入力される。最初のSCL上へ入力された最初の前記負極性クロックにより、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bはリセットされ初期化されて、前記STOP条件と前記START条件は消える。STOP条件が消えてストップ条件検出用Dフリップフロップ6aの非反転Q出力端子のレベルが‘L’レベルになることにより、第1時限計測回路54の時限計測機能は初期化される。また、START条件が消えてスタート条件検出用Dフリップフロップ6bの非反転Q出力端子のレベルが‘L’レベルになることにより、第2時限計測回路56の時限計測機能と出力機能は初期化されて信号WDT_STARTは非有意となる。SCL上へ入力されたクロック信号の最初の立ち下がりエッジで、バスフリー信号を出力しているラッチ回路6dの有意状態がDフリップフロップ6eに伝搬し、さらに前記クロック信号の次の立ち上がりエッジでDフリップフロップ6fへ伝わり、Dフリップフロップ6fの反転Q ̄出力端子からの出力によりラッチ回路6cはリセットされ、バスフリー信号は非有意となり、この時点で制御論理部7は動作を開始する。
【0039】
マスタデバイスからは、始めにデバイスアドレス情報が入力され、制御論理部7の出力する操作信号SR8Tで駆動される8ビットシフトレジスタ8は、8ビット転送終了時にはLDB〈7:0〉へデバイスアドレス情報を出力する。このときのLDB〈7:0〉へ出力された前記デバイスアドレス情報がこのシリアルインタフェースバス送受信回路のデバイスアドレスと一致している場合には、制御論理部7は操作信号ACKOUTを有意にすると同時に操作信号DATAOUTENで出力選択回路10を制御して、出力選択回路10の出力にアクノレッジを出力する。この結果、データ信号線1に‘L’レベルのアクノレッジ信号が出力される。
一方、前記デバイスアドレス情報がこのシリアルインタフェースバス送受信回路のデバイスアドレスと一致していない場合には、制御論理部7は操作信号ACKOUTを有意にしないて内部動作を停止する。
なお、アクノレッジ期間には、マスタデバイスはデータ信号線1を解放することによりスレーブ出力するアクノレッジ信号を監視している。
【0040】
‘L’レベルのアクノレッジ信号が出力された場合であり、かつデバイスアドレスのLSBが‘L’である場合には、データ情報の書き込みシーケンスが始まる。データ信号線1にはマスタデバイスからサブアドレス情報が入力され、8ビット転送終了時には8ビットシフトレジスタ8は前記サブアドレス情報をLDB〈7:0〉に出力する。制御論理部7は操作信号ACKOUTを有意にすると同時に操作信号DATAOUTENで出力選択回路10を制御して、出力選択回路10の出力にアクノレッジ信号を出力する。このとき同時に制御論理部7の出力する操作信号SALDCによりLDB〈7:0〉へ出力されている前記サブアドレス情報の値をNビットカウンタ9にロードし、LAB〈N−1:0〉上へ出力されていたサブアドレス情報が更新される。
【0041】
次に、書き込みデータ情報が入力される。この書き込みデータ情報は、8ビット転送終了時には8ビットシフトレジスタ8からLDB〈7:0〉に出力される。制御論理部7は、操作信号ACKOUTを有意にしてデータ信号線1へ‘L’レベルのアクノレッジを出力すると同時に、内部レジスタ13,15へデータ情報を書き込むための操作信号(ストローブ信号)STRBCを有意にする。アドレスデコーダ12,14の中で、LAB〈N−1:0〉へ出力されているサブアトレス情報に対応するアドレスデコーダだけが前記操作信号STRBCの有意期間にストローブ信号を生成し、LDB〈7:0〉上の書き込みデータを内部レジスタ13または内部レジスタ15に格納する。
【0042】
以降、引き続いて書き込みデータ情報が8ビット入力される毎に、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内容が+1更新される。そして、LAB〈N−1:0〉へ出力されているサブアドレス情報の指定するサブアドレスが更新され内部レジスタへの書き込みデータ更新動作を繰り返す。なお、STOP条件の検出または再START条件の検出により書き込みデータ更新動作は終了する。
【0043】
デバイスアドレス情報に対するアクノレッジ信号を出力した場合であり、かつデバイスアドレスのLSBが‘H’である場合には内部データの読み出しシーケンスが始まる。‘L’レベルのアクノレッジ信号を出力した直後に、LAB〈N−1:0〉へ出力されているサブアドレス情報の指定するサブアドレスに対応するアドレスデコーダ16またはアドレスデコーダ18だけが、操作信号(情報選択期間信号)LQBOECの有意期間中に内部データをLQB〈7:0〉上に出力させる。操作信号LQBOECの有意期間が十分に覆うタイミングで生成される制御論理部7の出力する操作信号PIDSCにより、LQB〈7:0〉へ読み出された前記内部データの値は8ビットシフトレジスタ8にロードされる。SCL上へ入力されたクロック信号の立ち上がりエッジとタイミングを同じにして制御論理部7から出力される操作信号SR8T毎に、8ビットシフトレジスタ8が前記内部データを並直列変換し、制御論理部7の出力する操作信号DATAOUTENにより出力選択回路10は前記並直列変換された内部データを出力する。
なお、出力選択回路10の出力は、遅延回路11によりバス規格が規定する遅延が施されてデータ信号線1へ出力される。
【0044】
8ビット出力後にマスタデバイスがSDA上の信号レベルを‘L’操作している場合には、制御論理部7の出力する操作信号SAEPによりNビットカウンタ9の内部状態を‘+1’更新してLAB〈N−1:0〉へ出力されているサブアドレス情報の指定するサブアドレスを更新し、前記内部データ出力動作を繰り返す。8ビット出力後に、マスタデバイスがSDA上の信号レベルを‘H’操作している場合には、データ信号線1を解放する状態で内部動作を停止する。
【0045】
図2は、SDA上に入力されたデータとSCL上に入力されたクロック信号とが同時的に変化する従来のシリアルインタフェースバス送受信回路では誤動作してしまう状況を示すタイミングチャートである。このタイミングチャートに示すように、SCL上のクロック信号とSDA上のデータとが同時変化しても、SCL上のクロック信号の‘L’レベルによりストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bは共にリセットされ、さらに第2時限計測回路56が前記クロック信号の‘L’レベルによりリセットされる。このため、SCL上のクロック信号とSDA上のデータとが同時変化した時点でストップ条件検出用Dフリップフロップ6aによりストップ条件が検出されても、その直後に前記クロック信号の‘L’レベルにより前記ストップ条件は消滅し、図8に示すような誤動作が防止できる。
【0046】
以上のように、この実施の形態1によれば、第1時限計測回路54および第2時限計測回路56に設定されている時限値は、ストップ条件、スタート条件をマスタデバイスが生成するためのデータ、クロックであるか、スレーブデバイスのアクノレッジ出力や読み出しデータ出力の動作によるデータ、クロックであるかの識別を可能にする値に設定されており、バスフリー信号を生成するためのラッチ回路6cをセットする信号は、前記第1時限計測回路54が出力するWDT_STOPおよび第2時限計測回路56が出力するWDT_STARTである。SDA上に入力されたデータとSCL上に入力されたクロック信号とが同時的に変化する従来のシリアルインタフェースバス送受信回路では誤動作してしまう状況下では、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bの非反転Q出力から‘H’レベルの信号が短時間出力される。しかしながら、この実施の形態のシリアルインタフェースバス送受信回路では、前記‘H’レベルの信号出力期間より充分期間の長い時限値が第1時限計測回路54および第2時限計測回路56に設定されている。このため、前記時限値に対応する時間が経過してWDT_STOPやWDT_STARTが出力される前に前記‘H’レベルの信号は消えてしまい、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6b、さらに第1時限計測回路54および第2時限計測回路56がSCL上のクロック信号レベル‘L’によりリセットされる。
【0047】
従って、マスタデバイスに接続された複数のスレーブの中で他のスレーブの誤動作の原因となるタイミング制約条件を満足しないものがある、SDA上に入力されたデータとSCL上に入力されたクロック信号とが同時的に変化する従来のシリアルインタフェースバス送受信回路では誤動作してしまう状況に対し、誤動作の影響を受けにくい、誤動作に対する耐性を向上させたシリアルインタフェースバス送受信回路が得られる効果がある。
【0048】
実施の形態2.
図3は、この実施の形態2のシリアルインタフェースバス送受信回路を示す回路図であり、図3において図1と同一または相当の部分については同一の符号を付し説明を省略する。図において、200はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路、58はバスフリー信号を反転Q ̄出力端子から出力するセット端子、リセット端子が付加されたDフリップフロップ(初期化指示信号生成手段)、59はストップ条件検出用Dフリップフロップ6aの非反転Q出力端子の出力であるストップ条件およびスタート条件検出用Dフリップフロップ6bの非反転Q出力端子の出力であるスタート条件が共に有意の状態を検出するNAND回路、61はNOR回路6cの出力とNAND回路59の出力のAND結果を、Dフリップフロップ6fをリセットするリセット信号として出力するAND回路であり、ストップ・スタート条件生成回路200の他の構成は前記実施の形態1のストップ・スタート条件生成回路100と同様である。
【0049】
なお、この実施の形態2の動作と前記実施の形態1の動作の違いはストップ・スタート条件生成回路200における動作の違いのみであるため、ストップ・スタート条件生成回路200の動作について説明する。このストップ・スタート条件生成回路200では、SCL上のクロック信号のレベルが‘H’のときのSDA上へ供給されたデータの立ち上がりエッジを検出し、ストップ条件検出用Dフリップフロップ6aがSTOP条件検出出力を非反転Q出力端子から出力する。ストップ条件検出用Dフリップフロップ6aの非反転Q出力端子が‘H’に変化してSTOP条件が検出され、STOP条件検出出力が前記非反転Q出力端子から出力されると、第1時限計測回路54は既定の時限後に出力信号WDT_STOPを有意にする。この結果、NOR回路6cの出力によりDフリップフロップ58がセットされてバスフリー信号が有意となり制御論理部7の動作を初期化する。
【0050】
引き続いて、スタート条件検出用Dフリップフロップ6bは、SCL上のクロック信号のレベルが‘H’のときのSDA上へ出力されたデータの立ち下がりエッジを検出してTART条件検出出力を非反転Q出力端子から出力する。スタート条件検出用Dフリップフロップ6bの非反転Q出力端子が‘H’に変化してSTART条件が検出され、START条件検出出力が前記非反転Q出力端子から出力されると、第2時限計測回路56はSTART条件検出出力が出力されてから既定の時限後に出力信号WDT_STARTを有意にする。そして、NOR回路6cの出力を有意にしてDフリップフロップ58は再びセットされる。出力信号WDT_STARTが有意になると、この変化エッジにより第1時限計測回路54の出力は初期化され、第1時限計測回路54の出力信号WDT_STOPは非有意となる。この時点ではバスフリー信号は制御論理部7の動作の初期化を続ける。
【0051】
シリアル転送操作が開始され、SCL上に負極性クロックが入力される。この入力された最初の負極性クロックの‘L’により、ストップ条件検出用Dフリップフロップ6aおよびスタート条件検出用Dフリップフロップ6bは初期化され、STOP条件とSTART条件は消える。STOP条件が消えて‘L’になることにより第1時限計測回路54の時限計測機能は初期化される。また、START条件が消えて‘L’になることにより第2時限計測回路56の計測機能と出力機能は初期化されて第2時限計測回路56の出力信号WDT_STARTは非有意となる。
【0052】
また、SCL上のクロック信号の最初の立ち下がりエッジで、バスフリー信号を生成しているDフリップフロップ58の有意状態がDフリップフロップ6eへ伝搬し、クロック信号の次の立ち上がりエッジでDフリップフロップ6eの状態がDフリップフロップ6fへ伝わり、Dフリップフロップ6fの反転Q ̄出力がDフリップフロップ58をリセットする。バスフリー信号はこの時点で非有意となり制御論理部7は動作を開始する。
【0053】
次にテスト時のバス操作仕様に基づく回路動作を説明する。
SCL上のクロック信号のレベルが‘H’のときのSDA上のデータの立ち上がりエッジを検出し、ストップ条件検出用Dフリップフロップ6aはSTOP条件を検出する。この結果、第1時限計測回路54が時限計測している途中で、SCL上のクロック信号が‘H’のときのSDA上のデータの立ち下がりエッジを検出すると、スタート条件検出用Dフリップフロップ6bはSTART条件を検出し、非反転Q出力を‘H’レベルにする。この‘H’レベルへの立ち上がりエッジでDフリップフロップ58は、データ端子へ供給されているSTOP条件をサンプルしてバスフリー信号を有意にし制御論理部7の動作を初期化する。
【0054】
シリアル転送操作が開始され、SCLに負極性クロックが入力される。SCL上へ入力された負極性クロックの最初の‘L’によりスタート条件検出用Dフリップフロップ6bは初期化されてSTART条件は消え、START条件が消えて‘L’となることにより第2時限計測回路56も初期化されて信号WDT_STARTは非有意を継続する。また、Dフリップフロップ58はバスフリー信号の出力を維持している。
SCL上の負極性クロックの最初の立ち下がりエッジ、さらに次の立ち上がりエッジでDフリップフロップ6fにDフリップフロップ58の有意状態が伝搬し、Dフリップフロップ6fの反転Q ̄出力がDフリップフロップ58をリセットする。バスフリー信号は、この時点で非有意となり制御論理部7は動作を開始する。
【0055】
テスト時のバス操作仕様においては、第1時限計測回路54、第2時限計測回路56が共に時限計測中にシリアル転送操作が開始される。このテスト時には、ストップ条件検出用Dフリップフロップ6aがSTOP条件を検出し、非反転Q出力を‘H’レベルに変化させる。次いでストップ条件検出用Dフリップフロップ6bがSTART条件を検出し、非反転Q出力を‘H’レベルに変化させると、この立ち上がりエッジによりDフリップフロップ58はデータ端子へ供給されているストップ条件検出用Dフリップフロップ6aの‘H’レベルの非反転Q出力を読み込んでバスフリー信号を出力する。前記実施の形態1では、第1時限計測回路54が信号WDT_STOPを有意にした後、さらに第2限計測回路56がWDT_STARTを有意にする時間を経てシリアル転送操作が開始できる構成であったが、この実施の形態2のシリアルインタフェースバス送受信回路では、ストップ条件検出用Dフリップフロップ6aがSTOP条件を検出し、非反転Q出力を‘H’レベルに変化させた後、ストップ条件検出用Dフリップフロップ6bがSTART条件を検出すると、第1時限計測回路54および第2時限計測回路56の時限動作を待たずにシリアル転送操作が開始できる。
【0056】
以上のように、この実施の形態2によれば、前記実施の形態1の効果に加えて、第1時限計測回路54および第2時限計測回路56の時限動作を待たずにテストを開始できるため、テスト時間を短縮できるシリアルインタフェースバス送受信回路が得られる効果がある。
【0057】
実施の形態3.
図4は、この実施の形態3のシリアルインタフェースバス送受信回路を示す回路図であり、図4において図1と同一または相当の部分については同一の符号を付し説明を省略する。この実施の形態3のシリアルインタフェースバス送受信回路は、前記実施の形態1においてSTOP条件もしくはSTART条件が成立すると動作が起動される第1時限計測回路54および第2時限計測回路56を、第1の時限と第2の時限(第1の時限>第2の時限)を計測できる第3時限計測回路(相互入力条件判定手段)70および第4時限計測回路(相互入力条件判定手段)72に置き換え、かつ第3時限計測回路70および第4時限計測回路72の第2の時限の計測結果をバスのステータスとしてフラグレジスタ(判定結果格納手段)74へフラグ出力し、マスタデバイスはシリアルインタフェース通信により前記フラグレジスタ74に設定されたフラグを読み取ることで、データとクロック間の相互入力遅延条件を実動作状態において判定できる構成である。なお、この場合の前記第2の時限値はマスタデバイスから内部レジスタ(判定データ格納手段)13に設定された値である。
【0058】
図4において、300はストップ条件およびスタート条件を生成するストップ・スタート条件生成回路、70は第1の時限と第2の時限を計測できる第3時限計測回路、72は第1の時限と第2の時限を計測できる第4時限計測回路、74は制御論理部(判定結果読出手段)7が出力する操作信号LQBOECをもとにバスステータスフラッグをLDB〈7:0〉へ出力するフラグレジスタである。なお、ストップ・スタート条件生成回路300の他の構成は前記実施の形態1のストップ・スタート条件生成回路100と同様である。
【0059】
次に動作について説明する。
この実施の形態3のシリアルインタフェースバス送受信回路の動作は、前記実施の形態1のシリアルインタフェースバス送受信回路の動作とほぼ同じであるが、実施の形態1の動作に加えて∵第3時限計測回路70および第4時限計測回路72からの各第2の時限計測結果がバスのステータスとしてフラグレジスタ74にセットされる。このフラグレジスタ74は、マスタデバイスのバスのステータス読み取り動作後にリセットされる。
【0060】
マスタデバイスから送られてきた第2の時限値は内部レジスタ13に格納される。この内部レジスタ13に格納された第2の時限値は、第3時限計測回路70および第4時限計測回路72に設定され、第3時限計測回路70および第4時限計測回路72のリセットが解除されてから第3時限計測回路70や第4時限計測回路72にFLAG2が立つ前記第2の時限値に対応した時刻が経過するまでの時間を規定する。
SDA上のデータとSCL上のクロック信号との相互入力遅延条件を満足しない前記データと前記クロック信号が同時的に変化する状況では、ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力からはストップ条件検出出力、スタート条件検出出力として短期間、‘H’レベルの信号が出力される場合がある。この短期間出力されることのある‘H’レベルの信号は第3時限計測回路70や第4時限計測回路72のリセットを解除するが、このような短期間リセットが解除される場合には前記実施の形態1で説明したように、第3時限計測回路70や第4時限計測回路72からは信号WDT_STOP、WDT_STARTは出力されないので、ラッチ回路6dはバスフリー信号を有意にすることはない。
【0061】
しかしながら第3時限計測回路70や第4時限計測回路72に設定される前記第2の時限値が、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子から短期間‘H’レベルとして出力される信号の出力期間内であれば、第3時限計測回路70や第4時限計測回路72のFLAG2端子からは前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からの‘H’レベルから‘L’レベルに変化するタイミングで‘H’パルス状のFLAG2が出力され、フラグレジスタ74は‘H’レベルにセットされる。また、前記第2の時限値が、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子から短期間‘H’レベルとして出力される信号の出力期間後であれば、第3時限計測回路70や第4時限計測回路72のFLAG2端子からは、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からの‘H’レベルから‘L’レベルに変化するタイミングで‘H’パルス状のFLAG2は出力されず、フラグレジスタ74にもフラグがセットされることはない。SDA上のデータとSCL上のクロック信号との相互入力遅延条件を満足する信号が入力される状況では、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からはストップ条件検出出力やスタート条件検出出力として第2の時限値はもとより第1の時限値を満たす期間‘H’レベルの信号が出力される。この場合は、第1の時限値経過後であることによりWDT_STOP、WDT_STARTが‘H’レベルとなることにより、前記ストップ条件検出用Dフリップフロップ6aやスタート条件検出用Dフリップフロップ6bの非反転Q出力端子からの‘H’レベルから‘L’レベルに変化するタイミングでは‘H’パルス状のFLAG2は出力されない動作をする。従って、前記第2の時限値を徐々に短くするように操作することで、前記相互入力遅延条件を満足しない前記データと前記クロック信号が同時的に変化する状況を実操作状態において判定できる。
【0062】
なお、この実施の形態3ではSTOP条件用、START条件用の第2の時限値のみを共通に可変設定できる構成であるが、第1の時限および第2の時限を共に可変設定できる構成、さらにはSTOP条件用およびSTART条件用の時限を独立にそれぞれ可変設定できる構成にしてもよい。
【0063】
以上のように、この実施の形態3によれば、前記実施の形態1の効果に加えて、相互入力遅延条件を満足しないSDA上のデータとSCL上のクロック信号が同時的に変化する状況を実動作状態において判定できるシリアルインタフェースバス送受信回路が得られる効果がある。
【0064】
実施の形態4.
図5は、この実施の形態4のシリアルインタフェースバス送受信回路を示す回路図であり、図5において図3および図4と同一または相当の部分については同一の符号を付し説明を省略する。この実施の形態4のシリアルインタフェースバス送受信回路は、前記実施の形態2で説明したシリアルインタフェースバス送受信回路と前記実施の形態3で説明したシリアルインタフェースバス送受信回路の特徴を共に備えた構成をストップ・スタート条件生成回路が備えている。
図5において、400はストップ・スタート条件生成回路である。
【0065】
この実施の形態4のシリアルインタフェースバス送受信回路の動作は、テスト時のバス操作仕様において第3時限計測回路70、第4時限計測回路72が共に時限計測中にシリアル転送操作を開始するため、第3時限計測回路70、第4限計測回路72が信号WDT_STOP、WDT_STARTを有意にする時間を介さずにシリアル転送操作が開始できるという前記実施の形態2の動作と、相互入力遅延条件を満足しないデータとクロック信号が同時的に変化する状況を実動作状態において判定できるという前記実施の形態3の動作が両立する。
【0066】
従って、この実施の形態4では、前記実施の形態2の効果と前記実施の形態3の効果を実現するシリアルインタフェースバス送受信回路が得られる効果がある。
【0067】
【発明の効果】
以上のように、請求項1記載の発明によれば、データ信号線を介してマスタデバイスから入力されたデータおよびクロック信号線を介して前記マスタデバイスから入力されたクロック信号をもとに、前記マスタデバイスとの間のデータ送受の停止および前記データ送受の開始を検出して当該検出結果を出力するとともに、前記クロック信号の信号レベルによりリセットされるデータ送受停止・開始検出手段と、該データ送受停止・開始検出手段による検出結果をもとに時限動作を行い、設定された時間経過後にストップ条件認識信号およびスタート条件認識信号を出力する条件認識信号時限出力手段とを備えるように構成したので、データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号が相互入力条件を満足していない状況にあっても、すなわち前記信号両者が同時的に変化するような場合であっても、ストップ条件認識信号およびスタート条件認識信号は条件認識信号時限出力手段から出力されず、誤動作の原因にはならず、誤動作の影響を受けにくい誤動作に対する耐性を向上できる効果がある。
【0068】
請求項2記載の発明によれば、条件認識信号時限出力手段の出力またはデータ送受停止・開始検出手段が検出したマスタデバイスとの間のデータ送受の停止、前記データ送受の開始の検出結果をもとに、データ送受のための初期化を指示する初期化指示信号を生成し出力する初期化指示信号生成手段を備えるように構成したので、条件認識信号時限出力手段を介さないで初期化指示信号を生成し出力することができ、シリアルインタフェース機能をテストする際のテスト時間を短縮できる効果がある。
【0069】
請求項3記載の発明によれば、データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号との相互入力条件を判定するために使用する判定データを格納する判定データ格納手段と、該判定データ格納手段に格納した判定データをもとに、前記相互入力条件を判定する相互入力条件判定手段と、該相互入力条件判定手段による判定結果を格納する判定結果格納手段と、該判定結果格納手段に格納した前記判定結果をマスタデバイスから読み出す判定結果読出手段とを備えるように構成したので、前記相互入力条件を満足しないデータとクロック信号が同時的に変化する状況などを実動作状態において判定できる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図2】 この発明の実施の形態1によるシリアルインタフェースバス送受信回路のストップ・スタート条件生成回路の動作を示すタイミングチャートである。
【図3】 この発明の実施の形態2によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図4】 この発明の実施の形態3によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図5】 この発明の実施の形態4によるシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図6】 従来のシリアルインタフェースバス送受信回路の構成を示す回路図である。
【図7】 シリアルインタフェースバス送受信回路の動作を示すタイミングチャートである。
【図8】 従来のシリアルインタフェースバス送受信回路のストップ・スタート条件生成回路における正常動作および異常動作を示すタイミングチャートである。
【符号の説明】
1 データ信号線、2 クロック信号線、6a ストップ条件検出用Dフリップフロップ(データ送受停止・開始検出手段)、6b スタート条件検出用Dフリップフロップ(データ送受停止・開始検出手段)、6d ラッチ回路(初期化指示信号生成手段)、6e,6f Dフリップフロップ(初期化指示信号リセット手段)、7 制御論理部(制御手段、判定結果読出手段)、13 内部レジスタ(判定データ格納手段)、54 第1時限計測回路(条件認識信号時限出力手段)、56 第2時限計測回路(条件認識信号時限出力手段)、58 Dフリップフロップ(初期化指示信号生成手段)、70 第3時限計測回路(相互入力条件判定手段)、72 第4時限計測回路(相互入力条件判定手段)、74 フラグレジスタ(判定結果格納手段)。
Claims (3)
- データ信号線およびクロック信号線によりマスタデバイスと接続され、前記クロック信号線を介して前記マスタデバイスから入力されたクロック信号に同期して、前記データ信号線を介して前記マスタデバイスとシリアルにデータの送受信を行うシリアルインタフェースバス送受信回路において、
前記データ信号線を介して前記マスタデバイスから入力された前記データおよび前記クロック信号線を介して前記マスタデバイスから入力されたクロック信号をもとに、前記マスタデバイスとの間のデータ送受の停止および前記データ送受の開始を検出して当該検出結果を出力するとともに、前記クロック信号の信号レベルによりリセットされるデータ送受停止・開始検出手段と、
該データ送受停止・開始検出手段による検出結果をもとに時限動作を行い、設定された時間経過後にストップ条件認識信号およびスタート条件認識信号を出力する条件認識信号時限出力手段と、
前記データ送受のための初期化を指示する初期化指示信号を前記条件認識信号時限出力手段の出力をもとに生成し出力する初期化指示信号生成手段と、
前記クロック信号をもとに前記初期化指示信号生成手段が出力した前記初期化指示信号をリセットする初期化指示信号リセット手段と、
前記初期化指示信号生成手段の出力する初期化指示信号をもとにデータ送受のための初期化を実行し、前記初期化指示信号リセット手段により前記初期化指示信号がリセットされた後、前記クロック信号と同期してデータを前記マスタデバイスとの間で送受する制御手段とを備えていることを特徴とするシリアルインタフェースバス送受信回路。 - 初期化指示信号生成手段は、条件認識信号時限出力手段の出力またはデータ送受停止・開始検出手段が検出したマスタデバイスとの間のデータ送受の停止、前記データ送受の開始の検出結果をもとに、データ送受のための初期化を指示する初期化指示信号を生成し出力することを特徴とする請求項1記載のシリアルインタフェースバス送受信回路。
- データ信号線を介して入力されたデータとクロック信号線を介して入力されたクロック信号との相互入力条件を判定するために使用する判定データを格納する判定データ格納手段と、
該判定データ格納手段に格納した判定データをもとに、前記相互入力条件を判定する相互入力条件判定手段と、
該相互入力条件判定手段による判定結果を格納する判定結果格納手段と、
該判定結果格納手段に格納した前記判定結果をマスタデバイスから読み出す判定結果読出手段とを備えたことを特徴とする請求項1または請求項2記載のシリアルインタフェースバス送受信回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21525497A JP3929559B2 (ja) | 1997-08-08 | 1997-08-08 | シリアルインタフェースバス送受信回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21525497A JP3929559B2 (ja) | 1997-08-08 | 1997-08-08 | シリアルインタフェースバス送受信回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1153307A JPH1153307A (ja) | 1999-02-26 |
JP3929559B2 true JP3929559B2 (ja) | 2007-06-13 |
Family
ID=16669278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21525497A Expired - Fee Related JP3929559B2 (ja) | 1997-08-08 | 1997-08-08 | シリアルインタフェースバス送受信回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3929559B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802036B2 (en) | 2007-02-06 | 2010-09-21 | Seiko Epson Corporation | Serial communication system using an I2C bus as a serial bus |
JP2011250967A (ja) * | 2010-06-01 | 2011-12-15 | Takasago Electric Ind Co Ltd | 遊技機 |
JP5778734B2 (ja) * | 2013-09-25 | 2015-09-16 | 株式会社藤商事 | 遊技機 |
-
1997
- 1997-08-08 JP JP21525497A patent/JP3929559B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1153307A (ja) | 1999-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5109490A (en) | Data transfer using bus address lines | |
JP4773742B2 (ja) | 2線チップ間インターフェース | |
US4756006A (en) | Bus transceiver | |
US9448960B2 (en) | Address translation in I2C data communications system | |
KR100337413B1 (ko) | 내부 집적 회로 버스를 포함하는 글로벌 직렬 버스에 제작시험 인터페이스를 연결하는 방법 및 장치 | |
CN115309687A (zh) | 跨数据帧的串行外围接口(spi)自动寄存器地址增量 | |
US5274784A (en) | Data transfer using bus address lines | |
KR20080080799A (ko) | 메모리의 직렬 인터페이스 방법 및 장치 | |
US5884074A (en) | Microcomputer utilizing flash memory for data storage | |
US7533275B2 (en) | Data processing apparatus and memory card using the same | |
JP3929559B2 (ja) | シリアルインタフェースバス送受信回路 | |
JP2005196782A (ja) | メモリエミュレーションモジュールを用いて高速でテストできるエンベデッドmcu、及びそのテスト方法 | |
JP2001127827A (ja) | データ転送方式 | |
JP4806747B2 (ja) | シリアライザ/デシリアライザ・バスコントローラ・インターフェース | |
US8131882B2 (en) | Method for input output expansion in an embedded system utilizing controlled transitions of first and second signals | |
US5617433A (en) | Serial data transfer apparatus | |
US5938746A (en) | System for prioritizing slave input register to receive data transmission via bi-directional data line from master | |
KR20050046932A (ko) | i2C 버스를 이용한 슬레이브 장치들의 상태 검사 시스템 | |
JP2001290764A (ja) | データ転送システム装置及びそのデータ転送方法 | |
US8209571B2 (en) | Valid-transmission verifying circuit and a semiconductor device including the same | |
US6292861B1 (en) | Processor having interface with bus arbitration circuit | |
JPS63158652A (ja) | 並列データポート選択方法及び装置 | |
CN110781118B (zh) | 实现并行总线从模式的方法及装置、计算机设备、介质 | |
KR100532104B1 (ko) | 프로세서에 내장된 메모리를 관리하는 방법 및 장치와 그 장치를 탑재한 시스템 온 칩 | |
JP2994906B2 (ja) | データ受信回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040413 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070307 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |