説明

クロックのデューティ比を活用した高速度シリアル通信

【課題】 シリアルデータの送受信を向上させる。
【解決手段】 シリアルデータの送受信の際に、送信したいデータが、例えば“00…”又は“11…”のように0又は1が複数ビット連続しているような構造である場合、連続しているビット数に応じて送信側100が出力する同期クロック121のデューティ比を変更する。その際の送信側からの出力データ120は、送信したいデータが“00…”ならば0、“11…”ならば1とする。受信側130は受信データが0か1かを認識し、更に同期クロックのデューティ比に応じて、受信データ0又は1が何ビット連続している構造かを判断し、そのビット数分だけデータをデータ受信シフトレジスタ133に格納する。これにより、同期クロック121の1周期の間に複数ビットのデータ120の送受信が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ送信側が出力する同期クロックにデータ受信側が同期してシリアルデータの受信を行うシリアル送受信方式に関するものである。
【背景技術】
【0002】
従来の、データ送信側が出力する同期クロックにデータ受信側が同期してシリアルデータの受信を行うシリアル送受信方式においては同期クロックの1周期毎に1ビットのデータの受信を実行する(例えば、特許文献1参照)。
【特許文献1】特開2000−196576号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上述のように、従来の、送信側が出力するクロックに同期して受信側がシリアルデータを受信する方式においては、同期クロックの1周期の間に1ビット分のデータしか送受信できなかった。このため、送受信速度を向上するためには同期クロック及び送受信データの周波数を上げる必要があるが、端子を介してのデータの送受信においては、送受信可能な同期クロック及びデータの周波数は端子の能力に応じて制限されてしまい、その結果、送受信速度も端子の能力に応じて制限されてしまう。
【0004】
本発明は上記問題点を解決するもので、シリアルデータ送受信において同期クロックの1周期の間に複数ビットのデータの送受信を実現し、同期クロック及びデータの周波数を上げることなくシリアルデータ送受信速度を向上させる技術を提供するものである。
【課題を解決するための手段】
【0005】
シリアルデータ送信側は、送信したいデータの構成が、例えば“00…”、“11…”、等のように同じデータが複数ビット連続している場合、出力する同期クロックのHIGH幅を、同じデータが連続しているビット数に応じて拡張する。また、この時HIGH幅は変化しても、同期クロックのデューティ比が変わるのみで、1クロックの周期は変更しない。
【0006】
シリアルデータ受信側は、同期クロックのHIGH幅に応じて受け取るデータのビット数を切り替えることにより、同期クロックの1周期の間に複数ビットのシリアルデータを受信することが可能となる。
【発明の効果】
【0007】
上記構成によれば、同期クロックの周波数を上げることなくシリアルデータの送受信速度を向上させることができる。
【発明を実施するための最良の形態】
【0008】
本発明の実施の形態1及び2について、図面に基づいて説明する。
【0009】
《実施の形態1》
実施の形態1においては、シリアルデータ送信側回路、受信側回路共に、N(Nは任意の2以上の整数)ビットのシフトレジスタを有し、同期クロックの1周期の間に複数ビットのデータのやり取りを実施する形態である。
【0010】
実施の形態1について、データ送信回路及びデータ受信回路の構成に関しては図1〜図6を、シリアルデータ送受信の詳細な動作に関しては図7〜図10をそれぞれ用いて説明を行う。
【0011】
図1は、本発明のシリアル送受信システムの構成を示すブロック図であって、データ送信回路100とデータ受信回路130とを備えている。
【0012】
図1に示したデータ送信回路100は、データ送信シフトレジスタ101と、送信データ供給部102と、送信状況確認シフトレジスタ103と、エッジ検出回路104と、クロック1周期カウンタ105と、同期クロック出力切替回路106と、データ送信端子107と、同期クロック送信端子108とにより構成される。
【0013】
データ送信シフトレジスタ101は、シリアル送信データを格納し、送信回路内部クロック118に同期して送信するための回路であり、図2に示したとおり、N個のセレクタ200と、N個のフリップフロップ201とにより構成される。各フリップフロップ201の“LH”は、ホールド端子である。送信データの値が切り替わるか、あるいは格納された送信データを全ビット出力完了すると、同期クロック出力切替信号114がLOWになり、データのシフト動作が中断される。格納されたデータの全ビット送信完了後、シリアル送信データ更新信号116がHIGHになり、送信データ供給部102より、次の送信データがNビット供給される。
【0014】
送信データ供給部102は、シリアル送受信開始時及びデータ送信シフトレジスタ101に格納されたNビットのデータの送信が完了した際に、次の送信データを供給するための回路である。データ送信シフトレジスタ101に格納されたNビットのデータの送信が完了し、送信データ更新信号116がHIGHに切り替えられると、送信供給データ109を、次に出力するNビットのシリアル送信データに切り替える。
【0015】
送信状況確認シフトレジスタ103は、データ送信シフトレジスタ101に格納されたデータ全ビットの送信完了を通知するための回路であり、図3に示したとおり、送信回路内部クロック118に同期して動作するN個のフリップフロップ300と、NORゲート301と、ANDゲート302と、インバータ303と、送信回路内部クロック118の反転信号に同期して動作する他のフリップフロップ304とにより構成されている。当シフトレジスタ103はデータ送信シフトレジスタ101と同じタイミングでシフト動作を実行し、Nビットのシリアルデータの送信が完了すると、供給データ切替信号113をHIGHにすることにより、送信完了を通知する。送信完了後、同期クロックサイクルの終了時に送信データ更新信号116をHIGHにすることにより、データ送信シフトレジスタ101への新たな送信データの格納及び当シフトレジスタ103のクリアを実行し、次のNビットのデータ送信を可能な状態にする。
【0016】
エッジ検出回路104は、送信データの値の切り替わりを検出し、検出時に送信データエッジ検出信号112をHIGHに切り替え、2つのシフトレジスタ101,103のシフト動作を中断させ、かつ送受信同期クロック121をLOWに切り替えるための回路である。データ送信シフトレジスタ101の全ビットデータ送信完了後、送信データ供給部102から次のNビットの送信データを格納する際の当シフトレジスタ101への入力値の切り替わりを送信データの切り替わりエッジと誤認識することを防ぐために、送信データ更新信号116がHIGHの時には、送信データエッジ検出信号112をHIGHに切り替えないものとする。
【0017】
クロック1周期カウンタ105は、送信同期クロック117の周波数を設定するための、カウント周期を任意に設定可能で、送信回路内部クロック118に同期して動作するカウンタである。カウント値が0になるとシリアルデータの送受信を開始し、カウント値が設定値に到達すると、クロック1周期カウント終了信号115をHIGHに切り替えることにより、同期クロックの1周期の終了を通知する。
【0018】
同期クロック出力切替回路106は、送信データのビット数に応じて送信同期クロック117のHIGH幅を切り替えるための回路であり、図4に示したとおり、セレクタ400と、送信回路内部クロック118に同期して動作するフリップフロップ401とにより構成されている。
【0019】
データ送信端子107からは、データ送信シフトレジスタ101に格納されたシリアルデータが送受信データ120としてデータ受信回路130に送信される。
【0020】
同期クロック送信端子108からは、送受信同期クロック121がデータ受信回路130に送信される。
【0021】
一方、データ受信回路130は、図1に示したとおり、データ受信端子131と、同期クロック受信端子132と、データ受信シフトレジスタ133と、受信状況確認シフトレジスタ134と、受信データ格納部135とにより構成されている。
【0022】
データ受信端子131にてデータ送信回路100から送信されたシリアル送信データを受信する。また、同期クロック受信端子132にて同期クロックを受信する。
【0023】
データ受信シフトレジスタ133は、受信同期クロック137がHIGHである時に、受信回路内部クロック140に同期して、シリアルデータをデータ受信端子131より受信するための回路であり、図5に示したように、受信回路内部クロック140に同期して動作するN個のフリップフロップ500により構成されている。データ受信シフトレジスタ133の全ビットにデータが格納されると、格納データ全ビットが受信データ格納部135へと格納される。
【0024】
受信状況確認シフトレジスタ134は、データ受信シフトレジスタ133が、Nビットのデータの受信を完了したことを受信データ格納部135に対して通知するための回路であり、図6に示したとおり、受信回路内部クロック140に同期して動作するN個のフリップフロップ600と、これらN個のフリップフロップ600をリセットするためのフリップフロップ601とにより構成されている。当シフトレジスタ134はデータ受信シフトレジスタ133と同じタイミングでシフト動作を実行し、Nビットのシリアルデータの受信が完了すると、データ格納許可信号139をHIGHに切り替えることにより、データ受信シフトレジスタ133内のデータを受信データ格納部135に格納する。
【0025】
受信データ格納部135は、データ受信シフトレジスタ133で受信したシリアルデータを格納し、用途に応じて使用するための回路である。データ格納許可信号139がHIGHになると、受信データを格納する。
【0026】
ここからは、実施の形態1についての回路の詳細な動作を、回路図とタイミングチャートを用いて説明する。説明する動作としては、
A.シリアル送受信動作
〔1〕“11100…”なる、最初にビット1が3ビット連続している構成のデータの送信を開始:
〔2〕HIGHデータを3ビット送信後、送信データの切り替わりを検出し、送受信を中断:
〔3〕同期クロックの1周期終了後、次の“00…”のデータ送信再開、
B.Nビットデータ送受信完了時動作
〔1〕データ送信シフトレジスタ101に最初に格納されたNビットのデータのうち2ビット“00”のデータだけが未送信で残っている:
〔2〕この状態でLOWデータの2ビット送信開始:
〔3〕2ビット送信終了後、次のNビットデータをデータ送信シフトレジスタ101に格納して送信再開、
という、代表的な2パターンを対象とする。
【0027】
なお、説明の際の前提条件として、各パラメータの設定を、
・データ送信シフトレジスタ101、送信状況確認シフトレジスタ103、データ受信シフトレジスタ133及び受信状況確認シフトレジスタ134は8ビット(N=8)、
・同期クロックの1周期は、送信回路内部クロック118及び受信回路内部クロック140の10周期分とする。
【0028】
前述の動作Aについて、図7を用いてデータ送信回路100の動作を、図8を用いてデータ受信回路130の動作をそれぞれ説明する。
【0029】
データ送信回路100において、送信開始(時刻t1)に先立つ送信回路内部クロック118の1周期前には、同期クロック出力切替信号114がHIGHであり、データ送信シフトレジスタ101及び送信状況確認シフトレジスタ103は送信回路内部クロック118に同期してシフト動作を実行する。クロック1周期カウンタ105のカウント値が“0”になると同時に送信データ110はHIGH(送信するデータが“111”であるため)、送信同期クロック117もHIGHに切り替わり、シリアルデータの送受信を開始する(時刻t1)。HIGHデータを2ビット出力した後、送信データエッジ検出用信号111がLOWに切り替わり、その切り替わりエッジをエッジ検出回路104が検出するため、送信データエッジ検出信号112がHIGHになることにより、同期クロック出力切替信号114はネゲートされる(時刻t2)。その結果、データ送信シフトレジスタ101及び送信状況確認シフトレジスタ103のシフト動作は中断し、送信データ110はHIGHのまま保持される。一方、送信同期クロック117は同期クロック出力切替信号114により出力値が切り替えられるため、送信データエッジ検出信号112がアサートされた次の内部クロック118のポジエッジに同期して、すなわち内部クロック118の3サイクル分だけHIGHを保った後に、LOWに切り替わる(時刻t3)。
【0030】
クロック1周期カウンタ105は、カウント値が上限値(同期クロックの1周期幅が内部クロック118の10周期分であるため、この例では9に設定する)に到達した際に(時刻t4)、クロック1周期カウント終了信号115を内部クロック118の1周期間だけHIGHにする。このクロック1周期カウント終了信号115のアサートを受けて、送信データエッジ検出信号112がLOWになり、その結果同期クロック出力切替信号114がHIGHになるため、次回のデータ送受信は、クロック1周期カウンタ105のカウント値が0になってから開始される(時刻t5)。
【0031】
データ受信回路130においては、データ受信シフトレジスタ133及び受信状況確認シフトレジスタ134のLH信号として受信同期クロック137が使用されているため、受信同期クロック137がHIGHの時にデータ受信シフトレジスタ133は受信回路内部クロック140に同期して受信データを格納し、受信状況確認シフトレジスタ134はHIGHを格納していく。この例では、同期クロックのHIGH幅が内部クロック140の3周期分であるため、データ受信シフトレジスタ133に3ビット分のデータ“111”が格納され、受信状況確認シフトレジスタ134のうち3つのフリップフロップ600の格納値がLOWからHIGHに切り替わる。この場合は、データ受信シフトレジスタ133にデータが3ビットしか格納されていないため、受信データ格納部135へのデータの格納は実行されないまま、次のデータの送受信が実行される。つまり、データ格納許可信号139はLOWを保持する。
【0032】
次に、前述の動作Bについて、図9を用いてデータ送信回路100の動作を、図10を用いてデータ受信回路130の動作をそれぞれ説明する。
【0033】
データ送信回路100において、送信状況確認シフトレジスタ103の全フリップフロップ300にHIGHが格納されると、供給データ切替信号113がHIGHになる(時刻t11)。この結果、同期クロック出力切替信号114がLOWになり、シフト動作が中断されるため、送信データ110はLOWのまま保持される。また、送信同期クロック117は送信回路内部クロック118の次のポジエッジにてHIGHからLOWに切り替わる(時刻t12)。供給データ切替信号113がHIGHの状態でクロック1周期カウンタ105のカウント値が“9”になると、送信データ更新信号116がHIGHになり、その結果、送信データ供給部102からの送信供給データ109が、次に送信するデータへと切り替わる(時刻t13)。また、送信データ更新信号116がHIGHになることにより、データ送信シフトレジスタ101への送信供給データ109の格納及び送信状況確認シフトレジスタ103のクリアが実行され、次のデータ送信が可能となる(時刻t14)。
【0034】
データ受信回路130においては、データ送信回路100より2ビットのLOWデータを受け取った時点で、データ受信シフトレジスタ133の全フリップフロップ500に対する受信データの格納が完了する。この時、受信状況確認シフトレジスタ134においても全フリップフロップ600にHIGHが格納され、その結果データ格納許可信号139がHIGHとなる(時刻t12)。このタイミングで受信データ格納部135に全8ビットデータが格納され、更に内部クロック140の1周期後に受信状況確認シフトレジスタ134がクリアされることにより、次の8ビットのデータの受信が可能となる。
【0035】
《実施の形態2》
実施の形態2は、実施の形態1に対して、
(1)シリアル送受信開始後、一番最初にテストデータ及びテスト用同期クロックを送受信し、データ受信回路において受信データが切り替わるタイミングと同期クロックの立ち上がりのタイミングのずれが、受信回路内部クロックの何周期分に相当するかをカウントし、その結果を元に実際のデータ及び同期クロックの送受信の際に発生するタイミングのずれを補正する機能と、
(2)シリアル送受信開始後、一番最初にテスト用データ及びテスト用同期クロックを送受信することにより、端子を通過する際に付加される遅延による同期クロックのHIGH幅の減少分を認識し、その結果を元に実際の同期クロックの送受信におけるHIGH幅の減少を補正する機能と、
(3)同期クロックのHIGH幅に対してオフセットを付加することにより、端子を通過する際の遅延によって起こりうる、同期クロックのHIGH期間の消失を防止する機能と、
(4)上記(3)で付加したオフセットによるHIGH期間の増加分を送信側にて除去する機能と、
(5)同期クロックのHIGH幅の上限を設定することにより、端子を通過する際の遅延によって起こりうる、同期クロックのLOW期間の消失を防止する機能と、
(6)Nビットの送受信完了後に、送信側は送受信エラー受付期間を設け、この期間中はデータ送信端子を入力に向け、Nビットの送受信が正常に実行されなかったことが原因で、データ受信回路がデータをNビット受信していないのにもかかわらずデータ送信回路がデータをNビット送信完了したと認識している場合、あるいはデータ受信シフトレジスタにNビットのデータが格納されているにもかかわらずデータ送信回路が更にデータを送信している場合に、データ受信回路からデータ送信回路に対して送受信エラー信号を送信し、送受信を失敗したデータの送受信を再実行する機能とを追加した実施形態である。
【0036】
実施の形態2について、データ送信回路に関しては図11〜図16を、データ受信回路に関しては図17〜図24を、シリアルデータ送受信の詳細な動作に関しては、図25〜図32を用いて説明を行う。
【0037】
図11は、本発明の実施の形態2におけるデータ送信回路の構成を示すブロック図である。データ送信回路1100は、図11に示したとおり、データ送信シフトレジスタ1101と、送信データ供給部1102と、送信状況確認シフトレジスタ1103と、エッジ検出回路1104と、クロック1周期カウンタ1105と、同期クロック出力切替回路1106と、シリアルデータ送信回路1107と、同期クロック送信端子1108と、オフセット付加回路1109と、クロック1周期カウンタ(2)1110と、クロックHIGH幅カウンタ1111とにより構成される。
【0038】
データ送信シフトレジスタ1101は、図12に示したとおり、N個のセレクタ1200と、N個のフリップフロップ1201とにより構成される。当シフトレジスタ1101は、送信供給データ1112を送信データ供給部1102から受け取り、送信回路内部クロック1124に同期してシリアルデータ送信回路1107より送信するための回路である。送信データの値が切り替わるか、送信データをNビット送信完了するか、あるいは同期クロック送信端子1108より送信する送受信同期クロック1131のHIGH幅が、クロックHIGH幅カウンタ1111にて設定してある上限値に達した場合には、シフトレジスタ動作許可信号1123がLOWになり、シフト動作が中断され、送信同期クロック1120がLOWに切り替わる。格納されたデータが全ビット送信完了し、更に送受信エラー受付期間が終了すると、送信データ更新信号1118がHIGHになり、送信データ供給部1102から送信供給データ1112が供給される。
【0039】
送信データ供給部1102は、シリアル送受信開始時及びデータ送信シフトレジスタ1101に格納されたNビットのデータの送信が完了した際に、データ送信シフトレジスタ1101に送信データを供給するための回路である。データ送信シフトレジスタ1101のNビットのデータを正常に送信完了した時には、送信供給データ1112を次に出力するNビットの送信データに切り替えてデータ送信シフトレジスタ1101に対して出力する。送信済みのNビットに関して送受信が正常に行われず、送受信エラー信号1121が受信側より送信された場合には、送信供給データ1112を、直前に送信したNビットデータに再び切り替えてデータ送信シフトレジスタ1101に供給することにより、正常に実行されなかった送受信を再度実行する。
【0040】
送信状況確認シフトレジスタ1103は、データ送信シフトレジスタ1101に格納されたNビットのデータの送信完了を通知するための回路であり、図13に示したとおり、送信回路内部クロック1124に同期して動作するN個のフリップフロップ1300と、NORゲート1301とにより構成されている。当シフトレジスタ1103は、データ送信シフトレジスタ1101と同じタイミングでシフト動作を実行し、全ビットのシリアルデータの送信が完了するとNビットデータ送信完了信号1116をHIGHにすることにより、送信完了を通知する。Nビットデータ送信完了後、送受信エラー受付期間が終了すると、当シフトレジスタ1103はクリアされ、次のデータを送受信可能な状態に切り替わる。
【0041】
エッジ検出回路1104は、送信データの値の切り替わりを検出し、検出時に送信データエッジ検出信号1115をHIGHに切り替え、データの送受信を中断するための回路である。なお、データ送信シフトレジスタ1101の全ビットデータ送信完了後、送信データ供給部1102から次のNビットの送信データを格納する際の当シフトレジスタ1101への入力値の切り替わりを、データ送信時の送信データの切り替わりエッジと誤認識することを防ぐために、送信データ更新信号1118がHIGHの時には、送信データエッジ検出信号1115をHIGHに切り替えないものとする。
【0042】
クロック1周期カウンタ1105は、送信同期クロック1120の周波数を設定するための、カウント周期を任意に設定可能な、送信回路内部クロック1124に同期して動作するカウンタである。カウント値が“0”になるとシリアルデータの送受信を開始し、カウント値が設定値に到達すると、クロック1周期カウント終了信号1117をHIGHに切り替えることにより、同期クロックの1周期の終了を通知する。
【0043】
同期クロック出力切替回路1106は、送信データのビット数に応じて送信同期クロック1120のHIGH幅を切り替えるための回路であり、図14に示したとおり、セレクタ1400と、送信回路内部クロック1124に同期して動作するフリップフロップ1401とにより構成される。なお、送信同期クロック1120にはオフセット付加回路1109にて任意にオフセットを付加することが可能であり、オフセットを付加した際には、受信側において同期クロックを使用する際にHIGH幅からオフセットを除去する。
【0044】
シリアルデータ送信回路1107は、シリアルデータの送信と、受信側からデータ送信回路1100に対して送信される送受信エラー信号1121の受信とを行うための回路であり、図15に示したとおり、フリップフロップ1500と、インバータ1501と、トライステートバッファ1502と、ANDゲート1503と、シリアルデータ送信端子1510とにより構成される。データ送信時は出力に向いているが、データ送信シフトレジスタ1101のNビット全てのデータの送信完了後の送受信エラー受付期間中は、送受信エラー信号1121を受け付けるために入力に向く。
【0045】
同期クロック送信端子1108は、送受信同期クロック1131を送信するための端子であって、常に出力を向いている。
【0046】
オフセット付加回路1109は、同期クロックのHIGH幅にオフセットを付加することにより、端子を通過する際の遅延の影響によるHIGH期間の消失を防止するための回路であり、図16に示したとおり、(M+1)個のフリップフロップ1600と、M個のORゲート1601と、1個のセレクタ1602とにより構成される。オフセット値は任意に設定することができ、(オフセット設定値)×(内部クロックの1周期幅)だけ、同期クロックのHIGH幅を拡張することが可能である。
【0047】
クロック1周期カウンタ(2)1110は、Nビットデータの送信終了から送信同期クロック1120の1周期分のカウント動作を実行し、そのカウント期間中は送受信エラー信号1121の受付期間として、データ及び同期クロックを送信しないよう、データ送信回路1100を制御するための回路である。このカウンタ1110の上限値にはクロック1周期カウンタ1105と同じ値が設定される。カウント値が上限値に到達すると、送信データ更新信号1118をHIGHに切り替えることにより、シリアルデータ送信回路1107の出力への切り替え及び送信状況確認シフトレジスタ1103のクリアが実行される。
【0048】
クロックHIGH幅カウンタ1111は、同期クロックのHIGH幅をカウントし、HIGH幅が予め設定したHIGH幅の上限値に到達した時点でデータ及びクロックの送信を中断することにより、端子を通過する際の遅延の影響による同期クロックのLOW期間の消失を防止するための回路である。HIGH幅の上限値は任意に設定することができ、送信するクロックのHIGH幅を、(HIGH幅の上限値)×(内部クロックの1周期幅)以下に制限することが可能である。
【0049】
データ受信回路1700は、図17に示したとおり、シリアルデータ受信回路1701と、同期クロック受信端子1702と、データ受信シフトレジスタ1703と、受信状況確認シフトレジスタ1704と、受信データ格納部1705と、同期クロックHIGH幅補正回路1706と、同期クロックオフセット除去回路1707と、受信データオフセット除去回路1708と、同期クロックLOW幅カウンタ1709と、受信信号切り替わりタイミング補正回路1722とにより構成される。
【0050】
シリアルデータ受信回路1701は、シリアルデータを受信し、かつ送受信エラー信号1713を送信するための回路であり、図18に示したとおり、オフセット付加回路1800と、トライステートバッファ1801と、インバータ1802と、ANDゲート1803と、シリアルデータ受信端子1810とにより構成される。データ受信時は入力に向いているが、Nビット送受信が正常に実行されなかった場合は出力に向き、送受信エラー信号1713を送信する。この際、送受信エラー信号1713には、オフセット付加回路1800により、図11のデータ送信回路1100にて送信同期クロック1120に付加されるオフセットと同じ値のオフセットが付加され、端子を通過する際の遅延による送受信エラー信号1713の消失を防止する。
【0051】
同期クロック受信端子1702は常に入力を向いており、送受信同期クロック1131を受信するための端子である。
【0052】
データ受信シフトレジスタ1703は、受信同期クロック(0)1720がHIGHである時に、受信回路内部クロック1723に同期して、シリアル受信データ(0)1719をシリアルデータ受信回路1701より受信するための回路であり、図19に示したように、N個のフリップフロップ1900により構成されている。データ受信シフトレジスタ1703の全ビットにデータが格納されると、格納データ全ビットが受信データ格納部1705へと格納される。
【0053】
受信状況確認シフトレジスタ1704は、データ受信シフトレジスタ1703がNビットのデータの受信を完了したことを受信データ格納部1705に対して通知するための回路であり、図20に示したとおり、受信回路内部クロック1723に同期して動作するN個のフリップフロップ2000と、他の2個のフリップフロップ2001,2013と、インバータ2010,2016と、ANDゲート2011,2012,2014,2017と、ORゲート2015とにより構成されている。当シフトレジスタ1704は、データ受信シフトレジスタ1703と同じタイミングでシフト動作を実行し、Nビットのシリアルデータの受信が完了すると、データ格納許可信号1718をHIGHに切り替えることにより、データ受信シフトレジスタ1703内のデータを受信データ格納部1705に格納する。また、データ受信シフトレジスタ1703に既にNビットのデータが格納されているにもかかわらず送信側からデータが送信され続けているとき、あるいはデータ受信シフトレジスタ1703にNビットのデータが格納されていないのにもかかわらず送信側がNビットデータ送信を終了し、送受信エラー受付状態に入った時には、Nビットのデータの送受信が正常に実施されなかったと判断し、シリアルデータ受信回路1701へ送受信エラー信号1713を供給する。
【0054】
同期クロックHIGH幅補正回路1706は、端子を通過する際の遅延の影響によって、送受信同期クロック1131のHIGH幅が減少した際に、減少した分だけHIGH幅を拡張することにより送信時のHIGH幅を復元するための回路であり、図21に示したとおり、(M+1)個のフリップフロップ2100と、M個のORゲート2101と、1個のセレクタ2102と、受信同期クロックHIGH幅カウンタ2103とにより構成される。最初にテスト用の同期クロックを送信側が出力し、受信側における同期クロックのHIGH幅の減少分を受信同期クロックHIGH幅カウンタ2103によってカウントし、その減少分だけ当補正回路1706にてHIGH幅を拡張する。
【0055】
なお、受信同期クロックHIGH幅カウンタ2103は、後述する初期設定許可信号(0)2410がLOWの時に受信信号切り替わりタイミング補正回路1722を通過した同期クロックである受信同期クロック(1)1714のHIGH幅が受信回路内部クロック1723の何周期分であるかをカウントする。また、そのカウント結果、つまり受信同期クロックHIGH幅2105の、実際に同期クロック受信端子1702より入力した同期クロックのHIGH幅からの減少分の受信側回路内部クロックカウント数を受信同期クロック(2)1715の出力切り替えのセレクト信号としてセレクタ2102にて使用することにより、受信同期クロック(2)1715を、送信時のHIGH幅が復元された同期クロックとすることが可能である。
【0056】
同期クロックオフセット除去回路1707は、受信同期クロック(0)1720のHIGH幅から、送信側において付加されているオフセットの影響を除去するための回路であり、図22に示したとおり、(M+1)個のフリップフロップ2200と、M個のANDゲート2201と、1個のセレクタ2202と、1個のインバータ2203と、1個のANDゲート2204とにより構成される。
【0057】
受信データオフセット除去回路1708は、同期クロックオフセット除去回路1707を通過した同期クロックと、受信データとの、値の切り替わりのタイミングを揃えるための回路であり、図23に示したとおり、(M+1)個のフリップフロップ2300と、1個のセレクタ2301とにより構成される。同期クロックオフセット除去回路1707を通過する際に、同期クロックはオフセット分だけ遅延し、その結果同期クロックのポジエッジと、受信データの値の切り替わりのタイミングとがずれてしまうため、受信データオフセット除去回路1708により、受信データに対してもオフセット分だけ遅延を付加することによりタイミングを揃えている。
【0058】
同期クロックLOW幅カウンタ1709は、同期クロックのLOW幅をカウントする回路である。図11のデータ送信回路1100は、Nビットデータ送信終了後、次の1同期クロック間は、送受信エラー信号1121を受け付けるためにデータ及び同期クロックを送信しない。そのため、送信側がNビットデータの送信を終了すると、最低でも送受信同期クロック1131の1周期の時間は送受信同期クロック1131がLOWに保持される。当カウンタ1709は、同期クロックのLOW幅をカウントすることにより、送信側のNビットデータの送信終了を確認することを目的としている。
【0059】
受信信号切り替わりタイミング補正回路1722は、図24に示したとおり、シリアル受信データ(0)1719を受け取るシンクロナイザ2400と、(X+1)個のフリップフロップ2401と、受信同期クロック(0)1720を受け取るシンクロナイザ2402と、(Y+1)個のフリップフロップ2403と、データポジエッジ検出器2405と、同期クロックポジエッジ検出器2406と、クロック遅れカウンタ2407と、データ遅れカウンタ2408と、初期設定許可信号(0)2410を生成するためのフリップフロップ2420と、インバータ2421,2422と、ANDゲート2423,2424と、セレクタ2425,2426とにより構成される。当回路1722は、最初のテストデータ及びテスト用同期クロックの送受信の際に、受信側におけるデータのポジエッジと同期クロックのポジエッジとのずれを受信回路内部クロック1723にてカウントし、両者のうち、同期クロックのポジエッジの方が先に検出された場合はデータ遅れカウンタ2408が受信同期クロック(0_2)2416に、受信データのポジエッジの方が先に検出された場合はクロック遅れカウンタ2407がシリアル受信データ(0_2)2415に対してずれの分だけ遅延を付加するようデータ受信回路1700を初期設定することにより、以降の送受信におけるデータ受信ミスの発生を防ぐための回路である。初期設定が実行されるのは、初期設定許可信号(0)2410が初期値LOWの時であり、初期設定許可信号(0)2410は受信同期クロック(0)1720の1回目の立ち下がりが発生するとHIGHになるため、それ以後はシリアル送受信が完了するまで最初の設定が変更されない。
【0060】
図24に示したデータポジエッジ検出器2405と、同期クロックポジエッジ検出器2406と、クロック遅れカウンタ2407と、データ遅れカウンタ2408とは、それぞれ初期設定の際のシリアル受信データ(0_2)2415のポジエッジに対する受信同期クロック(0_2)2416のポジエッジの遅れあるいは受信同期クロック(0_2)2416のポジエッジに対するシリアル受信データ(0_2)2415のポジエッジの遅れを、受信回路内部クロック1723にてカウントするために使用する回路である。
【0061】
データポジエッジ検出器2405は、シンクロナイザ2400を通過した受信データであるシリアル受信データ(0_2)2415のポジエッジを検出すると、データポジエッジ検出信号2411をHIGHにする回路である。データポジエッジ検出信号2411は一度HIGHになると、シリアル送受信が終了するまでHIGHを保つ。
【0062】
データ遅れカウンタ2408は、シリアル受信データ(0_2)2415のポジエッジの受信タイミングの、受信同期クロック(0_2)2416のポジエッジの受信タイミングに対する遅れが受信回路内部クロック1723の何周期分であるかをカウントするためのカウンタであり、データ遅れカウントイネーブル2414がアサートされている間は受信回路内部クロック1723に同期してカウント動作を実行し、クロック遅れカウントイネーブル2413がアサートされるとカウント動作を終了する。
【0063】
同期クロックポジエッジ検出器2406はデータポジエッジ検出器2405と、クロック遅れカウンタ2407はデータ遅れカウンタ2408と、それぞれ同様の動作を同期クロックに関して実行する回路である。
【0064】
両ポジエッジ検出器2405,2406及び両遅れカウンタ2407,2408によって確認された当データ受信回路1700におけるシリアル受信データ(0_2)2415のポジエッジに対する受信同期クロック(0_2)2416のポジエッジの遅れあるいは受信同期クロック(0_2)2416のポジエッジに対するシリアル受信データ(0_2)2415のポジエッジの遅れをクロック遅れカウント値2417またはデータ遅れカウント値2418に反映し、先にポジエッジが検出された方にのみ遅延を付加することによって、タイミング調整済みの受信データ及び同期クロックである、シリアル受信データ(1)1710及び受信同期クロック(1)1714を生成することが可能となる。
【0065】
ここからは、実施の形態2についての回路の詳細な動作を説明する。説明する動作としては、
C.シリアル送受信の最初にテスト用のデータ及びテスト用の同期クロックを送受信し、シリアル受信データ(0_2)2415のポジエッジに対する受信同期クロック(0_2)2416のポジエッジの遅れあるいは受信同期クロック(0_2)2416のポジエッジに対するシリアル受信データ(0_2)2415のポジエッジの遅れを受信回路内部クロック1723にてカウントし、その結果を元に受信信号切り替わりタイミング補正回路1722を設定する動作と、テスト用同期クロックのHIGH幅の減少分を受信回路内部クロック1723にてカウントし、その結果を元に同期クロックHIGH幅補正回路1706を設定する動作、
D.シリアル送受信動作
〔1〕“11100…”なる、最初にビット1が3ビット連続している構成のデータの送信を開始:
〔2〕HIGHデータを3ビット送信後、送信データの切り替わりを検出し、送受信を中断:
〔3〕同期クロックの1周期終了後、次の“00…”のデータ送信再開、
E.Nビットデータ送受信完了時動作
〔1〕データ送信シフトレジスタ1101に最初に格納されたNビットのデータのうち2ビット“00”のデータだけが未送信で残っている:
〔2〕この状態でLOWデータの2ビット送信開始:
〔3〕2ビット送信終了後、送受信エラー受付状態に移行:
〔4〕次のNビットデータをデータ送信シフトレジスタ1101に格納して送信再開、
という、代表的な3パターンを対象とする。
【0066】
なお、説明の際の前提条件として、各パラメータの設定を、
・データ送信シフトレジスタ1101のフリップフロップ1201は8つ(N=8)
・送受信同期クロック1131の1周期幅は、内部クロック1124,1723の10周期分
・送受信同期クロック1131のHIGH幅に付加するオフセットは内部クロック1124,1723の2周期分
・送受信同期クロック1131のHIGH幅の上限値は内部クロック1124,1723の6周期分
・最初に送受信するテストデータはHIGH、テスト用同期クロックのHIGH幅は内部クロック1124,1723の5周期分とする。
【0067】
実施の形態2の動作Cの場合の受信側の回路動作について、図25を用いて説明する。ここでは、シリアル受信データ(0)1719がテストデータであり、受信同期クロック(0)1720がテスト用同期クロックである。
【0068】
今、シリアル受信データ(0)1719及び受信同期クロック(0)1720の受信タイミングが図25に示したようなタイミング(時刻t21の前後)であり、更に受信同期クロック(0)1720のHIGH幅が端子通過の際に発生する遅延の影響により受信回路内部クロック1723の1周期分程度減少した場合(図25中のハッチング)を想定して、回路動作を説明する。
【0069】
この場合、シリアル受信データ(0)1719及び受信同期クロック(0)1720がそれぞれシンクロナイザ2400,2402を通過した後、シリアル受信データ(0_2)2415のポジエッジ(時刻t23)は受信同期クロック(0_2)2416のポジエッジ(時刻t22)に対して受信回路内部クロック1723の1周期分だけ遅れるため、クロック遅れカウンタ2407のカウント値は“0”のままであり、データ遅れカウンタ2408のカウント値は“1”となる(時刻t23)。これらの結果がそれぞれシリアル受信データ(1)1710を生成するセレクタ2425及び受信同期クロック(1)1714を生成するセレクタ2426の各々のセレクト信号として反映され、実際の送受信においては、シリアル受信データ(1)1710としてはシリアル受信データ(0_2)2415をそのまま、受信同期クロック(1)1714としては受信同期クロック(0_2)2416を受信回路内部クロック1723で1回叩いたものをそれぞれ採用することにより、受信信号切り替わりタイミング補正回路1722の通過後のデータのポジエッジと同期クロックのポジエッジとのタイミングを揃えることを可能とする。
【0070】
更に、テストデータ及びテスト用同期クロック送受信時に、受信同期クロック(1)1714のHIGH幅が受信回路内部クロック1723の1周期分減少していることを、受信同期クロックHIGH幅カウンタ2103におけるカウント結果(受信同期クロックHIGH幅)2105から認識し、実際の送受信においては受信同期クロック(1)1714のHIGH幅を同期クロックHIGH幅補正回路1706において受信回路内部クロック1723の1周期分(時刻t26から時刻t27へ)拡張することにより、端子を通過する際の遅延の影響による、受信同期クロック(0)1720におけるHIGH幅の減少を補正することができる。
【0071】
以上の回路設定動作は、初期設定許可信号(0)2410がLOWの時(時刻t26まで)に実行される。テストデータ及びテスト用同期クロックの送受信終了後は初期設定許可信号(0)2410がHIGHとなるため、設定が以降のシリアル送受信において変更されることはない。
【0072】
次に、実施の形態2の動作Dについて、図26及び図27を用いてデータ送信回路1100の動作を、図28を用いてデータ受信回路1700の動作をそれぞれ説明する。
【0073】
データ送信回路1100において、送信開始(時刻t31)に先立つ送信回路内部クロック1124の1周期前には、シフトレジスタ動作許可信号1123はHIGHであり、クロック1周期カウンタ1105のカウント値が“0”になると同時(時刻t31)に送信データはHIGH(送信するデータが“111”であるため)、送信同期クロック1120もHIGHに切り替わり、シリアルデータの送受信を開始する。また、送信状況確認シフトレジスタ1103も同時にシフト動作を開始する。そして、HIGHデータを2ビット出力した後、送信データエッジ検出用信号1114がLOWに切り替わり、その切り替わりエッジをエッジ検出回路1104が検出し、送信データエッジ検出信号1115をHIGHにする(時刻t32)。その結果、シフトレジスタ動作許可信号1123はLOWになり、データ送信シフトレジスタ1101及び送信状況確認シフトレジスタ1103のシフト動作は中断し、シリアル送信データ1113はHIGHのまま保持される。一方、送信同期クロック1120はオフセット付加回路1109によりオフセットを送信回路内部クロック1124の2周期分付加されているため、シフトレジスタ動作許可信号1123がLOWになっても次の送信回路内部クロック1124の立ち上がりではLOWには切り替わらず、今回送信するデータ“111”のビット数“3”にオフセット“2”を加えた、送信回路内部クロック1124の5周期分に相当するHIGH幅を保持する(時刻t31から時刻t33まで)。シフトレジスタ動作中断中もクロック1周期カウンタ1105は動作し続け、そのカウンタ値が上限値である“9”に到達すると(時刻t34)、同期クロックの1周期が終了する合図としてクロック1周期カウント終了信号1117をHIGHにする。これを受けてエッジ検出回路1104は送信データエッジ検出信号1115をLOWに切り替えるため、送信回路内部クロック1124の次の立ち上がり(時刻t35)より、シフトレジスタ1101,1103は再びシフト動作を開始し、データ及び同期クロックの送信を開始する。
【0074】
以上のデータ送信回路1100の動作については、同期クロックHIGH幅が送信回路内部クロック1124の5周期分であり、前述した同期クロックHIGH幅の上限値(送信回路内部クロック1124の6周期分)には到達していない場合を想定しているが、同期クロックHIGH幅が上限値に到達した場合の動作を図27に示す。図26と図27との間の条件の差分は、前者は同期クロックHIGH幅の上限が内部クロック1124の6周期分であるのに対し、後者は内部クロック1124の4周期分に設定してあることである。図26の条件においては、シフトレジスタ1101,1103のシフト動作の中断のタイミングが送信データの“1”から“0”への切り替わりであることから、1回目の送信の際にシリアル送信データ1113をHIGH、送信同期クロック1120を送信回路内部クロック1124の5周期分(送信ビット数+オフセット)HIGH出力することにより、“111”の計3ビットのデータ送信を実施し、2回目の送信で“0…”のデータ送信を実施しているが、図27においては、送信同期クロック1120が送信回路内部クロック1124の4周期分に制限されていることから、シフトレジスタ1101,1103のシフト動作の中断のタイミングが、オフセット付加前のクロックHIGH幅が送信回路内部クロック1124の2周期分に達したタイミング(時刻t31a)となるため、1回目の送信においては“11”の計2ビットのデータ送信を実施し、2回目の送信(時刻t35)において“1”の1ビットのデータ送信を実施している。
【0075】
データ受信回路1700においては、実施の形態2の動作Cにおける初期設定に従って、受信信号切り替わりタイミング補正回路1722においてシリアル受信データ(0)1719及び受信同期クロック(0)1720をそれぞれシンクロナイザ2400,2402を通過させ、更に受信同期クロック(0_2)2416を受信回路内部クロック1723の1周期分だけ遅らせることにより、図28に示したシリアル受信データ(1)1710及び受信同期クロック(1)1714のように、受信同期クロック(1)1714のポジエッジと、シリアル受信データ(1)1710の値の切り替わりタイミングとを揃えて以降の回路に渡している(時刻t42)。更に、受信同期クロック(0)1720に関しては、端子を通過する際の遅延の影響により、HIGH幅が受信回路内部クロック1723の4周期分になっている(時刻t41の直前から時刻t43の直後まで)が、同期クロックHIGH幅補正回路1706において、実施の形態2の動作Cにおける初期設定に従ってHIGH幅を受信回路内部クロック1723の1周期分拡張することにより送信時のクロックHIGH幅を再現して受信同期クロック(2)1715として次の回路へと渡している(時刻t42から時刻t46まで)。更に、受信同期クロック(2)1715のHIGH幅のうち、受信データのビット数を示しているのは、データ送信回路1100にて付加したオフセットの影響を除いた、受信回路内部クロック1723の3周期分のみであるため、同期クロックオフセット除去回路1707にてオフセットの影響を除去した信号を、データ受信回路1700のシフトレジスタ動作許可信号1716として、シフトレジスタ1703,1704のLH信号に使用している(時刻t44から時刻t46まで)。同期クロックオフセット除去回路1707を通過することにより、図28に示したようにシフトレジスタ動作許可信号1716はシリアル受信データ(1)1710に対してオフセット分だけ(時刻t42から時刻t44へ)遅延してしまうため、シリアル受信データ(1)1710に対しても受信データオフセット除去回路1708においてオフセット分だけ遅延させることにより、データ受信シフトレジスタ1703及び受信状況確認シフトレジスタ1704にて使用する受信データの切り替わりタイミングと同期クロックのポジエッジとを揃える(時刻t44)。こうして生成したシリアル受信データ(2)1711及びシフトレジスタ動作許可信号1716により、データ受信シフトレジスタ1703には3ビットのHIGHデータ“111”が格納され、受信状況確認シフトレジスタ1704のうちの3ビットにHIGHが格納される(時刻t46)。
【0076】
次に、実施の形態2の動作Eについて、図29を用いてデータ送信回路1100の動作を、図30〜32を用いてデータ受信回路1700の動作をそれぞれ説明する。なお、図30は送受信エラーが発生しない場合のタイミングチャートであり、図31及び図32はいずれも送受信エラーが発生した場合のタイミングチャートである。
【0077】
データ送信回路1100において、データを1ビット送信完了し、次のビットの送信を開始したタイミングにて送信状況確認シフトレジスタ1103の全フリップフロップ1300にHIGHが格納され、Nビットデータ送信完了信号1116がHIGHになる(時刻t62)。その結果、データを2ビット送信した後、シフトレジスタ1101,1103の動作は終了する。一方、送信同期クロック1120はオフセット付加回路1109によりオフセットを送信回路内部クロック1124の2周期分付加されているため、今回送信するデータ“00”のビット数“2”にオフセット“2”を加えた、送信回路内部クロック1124の4周期分だけHIGH幅を保持する(時刻t61から時刻t63まで)。更に、Nビットデータ送信完了信号1116がHIGHになった時点で、送信データ供給部1102からデータ送信シフトレジスタ1101に対して供給される送信供給データ1112が、送信完了したデータから、次に送信するべきデータへと切り替わる(時刻t62)。Nビットデータ送信完了信号1116がHIGHになった状態で、クロック1周期カウント終了信号1117がHIGHになると(時刻t64)、シリアルデータ送信回路1107が入力に向き(時刻t65)、データ受信回路1700からの送受信エラー信号待ちの状態に入る。送受信エラー受付状態中に、データ受信回路1700より送受信エラー信号1121が出力された場合、送信データ供給部1102はその受信タイミングにて、送信供給データ1112を次に送信するべきデータから、直前に送信完了したNビットのデータへと切り替える(時刻t67)。ただし、送受信エラー信号1121が出力されなかった場合には、送信データ供給部1102は、送信供給データ1112を次に送信するべきデータのまま保持する。送受信エラー受付状態は、同期クロックの1周期だけ続き、この時間はクロック1周期カウンタ(2)1110にてカウントする。
【0078】
なお、クロック1周期カウンタ(2)1110は、Nビットデータ送信完了信号1116がHIGHの状態でクロック1周期カウント終了信号1117がアサートされると(時刻t64)、カウントを開始し、そのカウント値が上限値“9”に到達すると(時刻t68)、送信データ更新信号1118を送信回路内部クロック1124の1周期分だけHIGHにする(時刻t69まで)。送信データ更新信号1118がHIGHになることにより送受信エラー受付状態が終了となり、次に送るデータのデータ送信シフトレジスタ1101への格納、送信状況確認シフトレジスタ1103のクリア、シリアルデータ送信回路1107の出力方向への切り替えが行われ(時刻t70)、次のデータ送信に備える。また、データ送信シフトレジスタ1101に次に送信するデータを格納する際に、送信データエッジ検出用信号1114が切り替わることがあるが、エッジ検出回路1104は送信データ更新信号1118がHIGHになっている間は送信データエッジ検出用信号1114のエッジを検出しないため、送信データエッジ検出信号1115はHIGHにならない(時刻t68)。
【0079】
データ受信回路1700では、受信したデータ及び同期クロックに対して、受信信号切り替わりタイミング補正回路1722にてエッジタイミング調整を、同期クロックHIGH幅補正回路1706にて同期クロックHIGH幅の減少分の拡張を、同期クロックオフセット除去回路1707及び受信データオフセット除去回路1708にてオフセットの補正をそれぞれ施した、シリアル受信データ(2)1711及びシフトレジスタ動作許可信号1716を参照して(図30〜32の時刻t81)、データの受信を実行する。
【0080】
ここで、図32に示したように、受信状況確認シフトレジスタ1704が全ビットHIGHになり、Nビット受信完了信号2005がHIGHになっているにもかかわらずシフトレジスタ動作許可信号1716がHIGHである場合には(図32の時刻t81a)、受信側が誤ってデータを余分に受け取った(4ビットデータが送信された際に補正の失敗等の要因により5ビット受信してしまった等)と判断し、エラー発生信号(2)2007をHIGHに切り替える(図32の時刻t82)。その後、シフトレジスタ動作許可信号1716がLOWになると、そのLOW幅を同期クロックLOW幅カウンタ1709にてカウントする。この同期クロックLOW幅カウンタ1709は、シフトレジスタ動作許可信号1716のポジエッジによりクリアされ(図32の時刻t81)、シフトレジスタ動作許可信号1716のネガエッジでカウントを開始し(図32の時刻t82)、そのカウント値が上限値“7”に到達した次の受信回路内部クロック1723の立ち上がりでクロックLOW幅カウント終了信号1717を受信回路内部クロック1723の1周期分だけHIGHにする(図32の時刻t83から時刻t84まで)。この同期クロックLOW幅カウンタ1709により、シフトレジスタ動作許可信号1716のLOW幅が、同期クロックの1周期幅からオフセット分を差し引いた幅であることを認識すると(この例では、シフトレジスタ動作許可信号1716のLOW幅が受信回路内部クロック1723の8周期分であることをカウントすると)、データ送信回路1100が送受信エラー受付状態であると判断し、シリアルデータ受信回路1701より送受信エラー信号1713を送信する(図32の時刻t83から時刻t84まで)。ただし、この送受信エラー信号1713には、送信側で同期クロックに付加されるオフセットと同じ幅のオフセットが出力時に付加されて、シリアル送受信データ1130の波形に反映される(図32の時刻t83から時刻t85まで)。送受信エラー信号1713の発行後は受信状況確認シフトレジスタ1704をクリアし(図32の時刻t84)、シリアルデータ受信回路1701を受信方向に向けることにより、次のデータの受信に備える。エラー発生時には受信データ格納許可信号1718がHIGHにならないため、データ受信シフトレジスタ1703内のデータは受信データ格納部1705には格納されず、データ受信シフトレジスタ1703が次の受信データにより上書きされる。
【0081】
また、図31に示したように、Nビット受信完了信号2005がアサートされていないにもかかわらず、シフトレジスタ動作許可信号1716のLOW幅が同期クロックの1周期幅からオフセット分を差し引いた幅となった場合には、受信側が誤ってデータを受け取り損ねた(4ビットデータが送信された際に補正の失敗等の要因により3ビットしか受信できなかった等)と判断し、エラー発生信号(1)2006がHIGHに切り替わり、同時に送受信エラー信号1713がHIGHに切り替わる(図31の時刻t83)。その後の回路動作は、図32に示した例と同じである。
【0082】
また、図30に示したように、Nビット受信完了信号2005がHIGHになった時にシフトレジスタ動作許可信号1716がLOWになっている場合には(図30の時刻t82)、データ送受信が正常に終了したと判断し、シフトレジスタ動作許可信号1716のLOW幅が同期クロックの1周期幅からオフセット分を差し引いた幅であることを確認した時点でデータ格納許可信号1718をHIGHに切り替え(図30の時刻t83)、データ受信シフトレジスタ1703のデータを受信データ格納部1705に格納する。また、受信状況確認シフトレジスタ1704をクリアし(図30の時刻t84)、次のデータ受信に備える。
【産業上の利用可能性】
【0083】
以上説明してきたとおり、本発明はシリアル送受信速度を向上する効果を奏し、例えばホストから、シリアル通信を利用してプログラムコードをLSIに内蔵されたメモリへと転送する際に、転送時間の短縮が達成できる。
【図面の簡単な説明】
【0084】
【図1】本発明の実施の形態1におけるデータ送信回路及びデータ受信回路の構成を示すブロック図である。
【図2】図1中のデータ送信シフトレジスタの構成図である。
【図3】図1中の送信状況確認シフトレジスタの構成図である。
【図4】図1中の同期クロック出力切替回路の構成図である。
【図5】図1中のデータ受信シフトレジスタの構成図である。
【図6】図1中の受信状況確認シフトレジスタの構成図である。
【図7】実施の形態1におけるデータ送信回路の動作を示すタイミングチャートである。
【図8】実施の形態1におけるデータ受信回路の動作を示すタイミングチャートである。
【図9】実施の形態1におけるNビットデータ送受信完了時動作にて、データ送信回路の動作を示すタイミングチャートである。
【図10】実施の形態1におけるNビットデータ送受信完了時動作にて、データ受信回路の動作を示すタイミングチャートである。
【図11】本発明の実施の形態2におけるデータ送信回路の構成を示すブロック図である。
【図12】図11中のデータ送信シフトレジスタの構成図である。
【図13】図11中の送信状況確認シフトレジスタの構成図である。
【図14】図11中の同期クロック出力切替回路の構成図である。
【図15】図11中のシリアルデータ送信回路の構成図である。
【図16】図11中のオフセット付加回路の構成図である。
【図17】本発明の実施の形態2におけるデータ受信回路の構成を示すブロック図である。
【図18】図17中のシリアルデータ受信回路の構成図である。
【図19】図17中のデータ受信シフトレジスタの構成図である。
【図20】図17中の受信状況確認シフトレジスタの構成図である。
【図21】図17中の同期クロックHIGH幅補正回路の構成図である。
【図22】図17中の同期クロックオフセット除去回路の構成図である。
【図23】図17中の受信データオフセット除去回路の構成図である。
【図24】図17中の受信信号切り替わりタイミング補正回路の構成図である。
【図25】実施の形態2におけるシリアル送受信動作にて、データ受信回路の初期設定動作を示すタイミングチャートである。
【図26】実施の形態2におけるシリアル送受信動作にて、送信データの切り替わりが発生する場合のデータ送信回路の動作を示すタイミングチャートである。
【図27】実施の形態2におけるシリアル送受信動作にて、同期クロックHIGH幅のオーバーフローが発生する場合のデータ送信回路の動作を示すタイミングチャートである。
【図28】実施の形態2におけるシリアル送受信動作にて、データ受信回路の動作を示すタイミングチャートである。
【図29】実施の形態2におけるNビットデータ送受信完了時動作にて、送受信エラーが発生する場合のデータ送信回路の動作を示すタイミングチャートである。
【図30】実施の形態2におけるNビットデータ送受信完了時動作にて、送受信エラーが発生しない場合のデータ受信回路の動作を示すタイミングチャートである。
【図31】実施の形態2におけるNビットデータ送受信完了時動作にて、受信データ不足の送受信エラーが発生する場合のデータ受信回路の動作を示すタイミングチャートである。
【図32】実施の形態2におけるNビットデータ送受信完了時動作にて、受信データを余分に受け取った場合の送受信エラーが発生する場合のデータ受信回路の動作を示すタイミングチャートである。
【符号の説明】
【0085】
100 データ送信回路
101 データ送信シフトレジスタ
102 送信データ供給部
103 送信状況確認シフトレジスタ
104 エッジ検出回路
105 クロック1周期カウンタ
106 同期クロック出力切替回路
107 データ送信端子
108 同期クロック送信端子
109 送信供給データ
110 送信データ
111 送信データエッジ検出用信号
112 送信データエッジ検出信号
113 供給データ切替信号
114 同期クロック出力切替信号
115 クロック1周期カウント終了信号
116 送信データ更新信号
117 送信同期クロック
118 送信回路内部クロック
120 送受信データ
121 送受信同期クロック
130 データ受信回路
131 データ受信端子
132 同期クロック受信端子
133 データ受信シフトレジスタ
134 受信状況確認シフトレジスタ
135 受信データ格納部
136 受信データ
137 受信同期クロック
138 受信格納データ
139 データ格納許可信号
140 受信回路内部クロック
200 セレクタ
201 フリップフロップ
300 フリップフロップ
301 NORゲート
302 ANDゲート
303 インバータ
304 フリップフロップ
400 セレクタ
401 フリップフロップ
500 フリップフロップ
600 フリップフロップ
601 フリップフロップ
1100 データ送信回路
1101 データ送信シフトレジスタ
1102 送信データ供給部
1103 送信状況確認シフトレジスタ
1104 エッジ検出回路
1105 クロック1周期カウンタ
1106 同期クロック出力切替回路
1107 シリアルデータ送信回路
1108 同期クロック送信端子
1109 オフセット付加回路
1110 クロック1周期カウンタ(2)
1111 クロックHIGH幅カウンタ
1112 送信供給データ
1113 シリアル送信データ
1114 送信データエッジ検出用信号
1115 送信データエッジ検出信号
1116 Nビットデータ送信完了信号
1117 クロック1周期カウント終了信号
1118 送信データ更新信号
1119 同期クロック出力切替信号
1120 送信同期クロック
1121 送受信エラー信号
1122 クロックHIGH幅オーバー信号
1123 シフトレジスタ動作許可信号
1124 送信回路内部クロック
1130 シリアル送受信データ
1131 送受信同期クロック
1200 セレクタ
1201 フリップフロップ
1300 フリップフロップ
1301 NORゲート
1400 セレクタ
1401 フリップフロップ
1500 フリップフロップ
1501 インバータ
1502 トライステートバッファ
1503 ANDゲート
1510 シリアルデータ送信端子
1600 フリップフロップ
1601 ORゲート
1602 セレクタ
1700 データ受信回路
1701 シリアルデータ受信回路
1702 同期クロック受信端子
1703 データ受信シフトレジスタ
1704 受信状況確認シフトレジスタ
1705 受信データ格納部
1706 同期クロックHIGH幅補正回路
1707 同期クロックオフセット除去回路
1708 受信データオフセット除去回路
1709 同期クロックLOW幅カウンタ
1710 シリアル受信データ(1)
1711 シリアル受信データ(2)
1712 受信格納データ
1713 送受信エラー信号
1714 受信同期クロック(1)
1715 受信同期クロック(2)
1716 シフトレジスタ動作許可信号
1717 クロックLOW幅カウント終了信号
1718 データ格納許可信号
1719 シリアル受信データ(0)
1720 受信同期クロック(0)
1721 初期設定許可信号(1)
1722 受信信号切り替わりタイミング補正回路
1723 受信回路内部クロック
1800 オフセット付加回路
1801 トライステートバッファ
1802 インバータ
1803 ANDゲート
1810 シリアルデータ受信端子
1900 フリップフロップ
2000 フリップフロップ
2001 フリップフロップ
2005 Nビット受信完了信号
2006 エラー発生信号(1)
2007 エラー発生信号(2)
2010 インバータ
2011,2012 ANDゲート
2013 フリップフロップ
2014 ANDゲート
2015 ORゲート
2016 インバータ
2017 ANDゲート
2100 フリップフロップ
2101 ORゲート
2102 セレクタ
2103 受信同期クロックHIGH幅カウンタ
2105 受信同期クロックHIGH幅
2200 フリップフロップ
2201 ANDゲート
2202 セレクタ
2203 インバータ
2204 ANDゲート
2300 フリップフロップ
2301 セレクタ
2400 シンクロナイザ
2401 フリップフロップ
2402 シンクロナイザ
2403 フリップフロップ
2405 データポジエッジ検出器
2406 同期クロックポジエッジ検出器
2407 クロック遅れカウンタ
2408 データ遅れカウンタ
2410 初期設定許可信号(0)
2411 データポジエッジ検出信号
2412 同期クロックポジエッジ検出信号
2413 クロック遅れカウントイネーブル
2414 データ遅れカウントイネーブル
2415 シリアル受信データ(0_2)
2416 受信同期クロック(0_2)
2417 クロック遅れカウント値
2418 データ遅れカウント値
2420 フリップフロップ
2421,2422 インバータ
2423,2424 ANDゲート
2425,2426 セレクタ

【特許請求の範囲】
【請求項1】
シリアルデータ送信端子と、
同期クロック送信端子と、
シリアル送信データを一時的に格納し、送信するためのデータ送信シフトレジスタと、
シリアル送信開始時又は前記データ送信シフトレジスタに一時的に格納されたシリアル送信データの送信が全ビット完了した時に、前記データ送信シフトレジスタに対して、送信用シリアルデータを格納するための送信データ供給部と、
前記データ送信シフトレジスタに格納されたシリアル送信データの送信状況を反映し、前記データ送信シフトレジスタに格納されたシリアル送信データを全ビット送信終了した際にデータ送信完了信号を生成することにより、前記データ送信シフトレジスタに格納されたシリアル送信データの全ビット送信が完了したことを通知するための、前記データ送信シフトレジスタと同じビット数のデータ送信状況確認シフトレジスタと、
前記データ送信シフトレジスタの中のあるフリップフロップのQ信号の0から1又は1から0への切り替わりのエッジを検出し、検出したタイミングでエッジ検出信号を生成することにより、シリアル送信データの0から1又は1から0への切り替わり箇所を検出、通知するためのエッジ検出回路と、
出力する同期クロックのクロック幅をカウントし、カウント終了時には1周期カウント終了信号を生成することにより同期クロックの1周期期間が終了したことを通知するための、カウント数を設定可能なクロック1周期カウンタと、
前記エッジ検出回路にてシリアル送信データの0から1又は1から0への切り替わり箇所が検出されたタイミング又は前記データ送信シフトレジスタに一時的に格納されたシリアルデータが全ビット送信完了したタイミングから、前記クロック1周期カウンタにて1クロックのカウントが終了するまでの期間は前記同期クロック送信端子から出力する信号をLOWとし、それ以外の場合には前記同期クロック送信端子から出力する信号をHIGHとするための、同期クロック出力切替回路とを有し、
シリアル送信するデータに0又は1が複数ビット連続する部分がある場合には、その連続するビット数に応じて、前記同期クロック送信端子から出力される同期クロックのデューティ比を切り替えることにより、同期クロックの1周期の間に複数ビットのシリアルデータを送信することを特徴とする送信回路。
【請求項2】
シリアルデータ受信端子と、
同期クロック受信端子と、
任意のビット数のシリアルデータを受信し、一時的に格納するための、前記シリアルデータ受信端子から入力されるシリアル受信データをD信号として動作し、前記同期クロック受信端子から入力される同期クロックをLH信号として動作するデータ受信シフトレジスタと、
前記データ受信シフトレジスタが、前記シリアルデータ受信端子にて受信したシリアルデータにより全ビット更新された際に、そのデータを格納し、使用するためのデータ格納部と、
前記データ受信シフトレジスタにおけるシリアルデータの受信状況を反映し、前記データ受信シフトレジスタが全ビットシリアルデータによって更新された際にデータ格納許可信号をアサートし、前記データ受信シフトレジスタが全ビットシリアルデータの受信を完了したことを通知するための、前記データ受信シフトレジスタと同じビット数のデータ受信状況確認シフトレジスタとを有し、
前記同期クロック受信端子から出力される同期クロックのデューティ比に応じて、前記データ受信シフトレジスタに格納するシリアル受信データのビット数を変更することにより、同期クロックの1周期の間に複数ビットのシリアルデータを受信することを特徴とする受信回路。
【請求項3】
請求項1記載の送信回路において、
前記同期クロック出力切替回路から出力される同期クロックをHIGHに切り替える信号に対してオフセットを付加し、同期クロックのHIGH期間幅を任意に拡張することにより、端子で発生する遅延の影響によるクロックのHIGH幅消失を防止するための、オフセット値が設定可能なオフセット付加回路を更に有することを特徴とする送信回路。
【請求項4】
請求項2記載の受信回路において、
同期クロックのHIGH幅に付加されたオフセットを除去し、同期クロックのHIGH幅を、オフセット付加前のHIGH幅に戻すための同期クロックオフセット除去回路と、
同期クロックが前記同期クロックオフセット除去回路を通過する際に同期クロックに発生する遅延と全く同じ長さの遅延を、前記シリアルデータ受信端子から受信したシリアル受信データに対して付加することにより、シリアル受信データの切り替わりのタイミングと、同期クロックの立ち上がりのタイミングとの間にずれが発生することを防止するための受信データオフセット除去回路とを更に有し、
同期クロックのHIGH幅にオフセットが付加されている場合においてもそのオフセットの影響を除去し、オフセット付加前の同期クロックのデューティ比を再現して受信することを特徴とする受信回路。
【請求項5】
請求項1記載の送信回路において、
前記同期クロックHIGH信号のアサート期間をカウントし、アサート期間があるカウント期間を超えた場合にHIGH幅オーバーフロー信号をアサートし、前記同期クロック送信端子から出力する同期クロックのHIGH幅が、ある期間を超えたことを通知するためのクロックHIGH幅カウンタを更に有し、
前記同期クロック出力切替回路は、前記HIGH幅オーバーフロー信号がアサートされたタイミングから前記クロック1周期カウンタにて1クロックのカウントが終了するまでの期間は前記同期クロック送信端子から出力する信号をLOWとする機能を更に有し、
同期クロックのHIGH幅を制限することによって、端子で発生する遅延の影響によるクロックのLOW幅消失を防止することを特徴とする送信回路。
【請求項6】
請求項1記載の送信回路において、
前記データ送信シフトレジスタに格納されたデータが全ビット送信されて、かつそのクロックの周期が終了するとカウントを開始する通信エラー受付期間カウンタと、
前記データ送信シフトレジスタに格納されたデータが全ビット送信されると同時に入力に切り替わり、かつ前記通信エラー受付期間カウンタがカウントしている間に通信エラー信号が入力された際にその通信エラー信号を検出し、送受信エラー信号をアサートすることによりシリアル送受信にエラーが発生したことを通知するためのシリアルデータ送信回路とを更に有し、
前記送信データ供給部は、前記送受信エラー信号がアサートされた際には、前記データ送信シフトレジスタに直前に格納したシリアル送信データと同じデータを再度格納し、アサートされない場合は、直前に格納したシリアル送信データの次に送信したいデータを格納する機能を更に有することを特徴とする送信回路。
【請求項7】
請求項2記載の受信回路において、
前記同期クロック受信端子からの入力信号のLOW幅をカウントし、オーバーフローした際にはクロックLOW幅カウント終了信号をアサートすることにより、送信回路が当該送信回路のデータ送信シフトレジスタに格納したシリアル送信データを全ビット送信完了したことを通知するためのクロックLOW幅カウンタと、
前記データ受信シフトレジスタの全ビットに対してシリアル受信データが格納されたにもかかわらず前記同期クロック受信端子からの入力信号がHIGHである時に更に前記LOW幅カウント終了信号がアサートされた場合、又は前記データ受信シフトレジスタの全ビットに対してシリアル受信データが格納されていないにもかかわらず前記LOW幅カウント終了信号がアサートされた場合には出力に切り替わり、送受信エラー信号を出力するシリアルデータ受信回路とを更に有することを特徴とする受信回路。
【請求項8】
請求項2記載の受信回路において、
シリアルデータ送受信開始前に送信回路から前記同期クロック受信端子に対してある決まったHIGH幅の信号を入力させ、期待される受信信号のHIGH幅と実際に前記同期クロック受信端子から受信した信号のHIGH幅とを比較し、HIGH幅の期待値からの減少分を補正するための同期クロックHIGH幅補正回路を更に有し、
同期クロックの送受信の際に、端子において発生する遅延の影響により減少する受信同期クロックのHIGH幅を補正し、送信側が意図した同期クロック幅を再現させることを特徴とする受信回路。
【請求項9】
請求項2記載の受信回路において、
シリアルデータ送受信開始前に送信回路から前記同期クロック受信端子及び前記シリアルデータ受信端子に対してある決まったHIGH幅の信号を入力させ、両者のポジエッジが当該受信回路内部に到達するタイミングのずれを測定し、両者のうち早く到達した信号に対して遅延を付加し、両者の到達タイミングを一致させることを特徴とする受信回路。
【請求項10】
請求項1記載の送信回路と、請求項2記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項11】
請求項3記載の送信回路と、請求項4記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項12】
請求項5記載の送信回路と、請求項2記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項13】
請求項6記載の送信回路と、請求項7記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項14】
請求項1記載の送信回路と、請求項8記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項15】
請求項5記載の送信回路と、請求項8記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項16】
請求項1記載の送信回路と、請求項9記載の受信回路とを備えたことを特徴とするシリアル送受信システム。
【請求項17】
請求項5記載の送信回路と、請求項9記載の受信回路とを備えたことを特徴とするシリアル送受信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate


【公開番号】特開2008−300915(P2008−300915A)
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願番号】特願2007−141467(P2007−141467)
【出願日】平成19年5月29日(2007.5.29)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】