(57)【特許請求の範囲】
【請求項１】
ピークシフトを持った入力データに対して所定の位相関係を持つウインドウパルスを出力信号として出力するディジタルＶＦＯ装置であって、
複数のＶＦＯ回路と、
前記複数の各ＶＦＯ回路に設けられた補正特性がそれぞれ異なる同期カウンタと、
前記各ＶＦＯ回路からそれぞれ出力される前記入力データのピークシフトの状態を示す信号と、
前記入力データのピークシフトの状態を示す信号に基づき、前記複数のＶＦＯ回路から一つのＶＦＯ回路を選択する調停回路と、
前記調停回路が選択したＶＦＯ回路の同期カウンタのカウンタ値を、他のＶＦＯ回路の同期カウンタに代入することで、他のＶＦＯ回路の同期カウンタを補正するための補正指示信号と、
で構成したことを特徴とするディジタルＶＦＯ装置。
【請求項２】
前記調停回路は、
入力した第２の入力データの直前に入力した第１の入力データのピークシフトの状態を示す信号を保持する各ＶＦＯ回路毎に設けられたデータ保持回路と、
前記第２の入力データのピークシフトの状態を示す信号と前記データ保持手段に保持されているデータとに基づき、前記第２の入力データのピークシフトが予め決められた論理であるか否かを検出し、予め決められた論理でない状態を検出したとき、当該ＶＦＯ回路の同期カウンタのカウンタ値を補正するための前記補正指示信号を出力する各ＶＦＯ回路毎に設けられた検出回路と、
前記検出回路の検出結果に基づき、複数のＶＦＯ回路からいずれかのＶＦＯ回路を選択し、選択したＶＦＯ回路のウインドウパルスを出力信号として出力するするウインドウパルス選択回路と、
で構成したことを特徴とする請求項１記載のディジタルＶＦＯ装置。
【請求項３】
前記調停回路は、
入力した第２の入力データの直前に入力した第１の入力データのピークシフトの状態を示す信号を保持する各ＶＦＯ回路毎に設けられた第１のデータ保持回路と、
前記第１のデータ保持回路に保持されているデータの直前の入力データのピークシフトの状態を示す信号を更に保持する各ＶＦＯ回路毎に設けられた第２のデータ保持回路と、
前記第２の入力データのピークシフトの状態を示す信号と前記第１及び第２のデータ保持手段に保持されているデータとに基づき、前記第２の入力データのピークシフトが予め決められた論理であるか否かを検出し、予め決められた論理でない状態を検出したとき、当該ＶＦＯ回路の同期カウンタのカウンタ値を補正するための前記補正指示信号を出力する各ＶＦＯ回路毎に設けられた検出回路と、
前記検出回路の検出結果に基づき、複数のＶＦＯ回路からいずれかのＶＦＯ回路を選択し、選択したＶＦＯ回路のウインドウパルスを出力信号として出力するするウインドウパルス選択回路と、
で構成したことを特徴とする請求項１記載のディジタルＶＦＯ装置。
【請求項４】
前記複数のＶＦＯ回路のうち、いずれかのＶＦＯ回路が優先権を有し、前記検出回路が検出結果を出力しないとき、前記優先権を有するＶＦＯ回路から出力されるウインドウパルスが出力信号として出力されることを特徴とする請求項２又は３記載のディジタルＶＦＯ装置。
【請求項５】
前記入力データのピークシフトの状態を示す信号は、少なくとも、クロック信号が右シフトした状態を示すビットと、クロック信号が左シフトした状態を示すビットと、データ信号が右シフトした状態を示すビットと、データ信号が左シフトした状態を示すビットとを含む信号であることを特徴とする請求項２乃至４のいずれかに記載のディジタルＶＦＯ装置。
【請求項６】
前記入力データは、当該装置から当該装置の１システムクロック分遅延して出力され、ウインドウパルスも１システムクロック分遅延して出力されることを特徴とする請求項２乃至５のいずれかに記載のディジタルＶＦＯ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタルＶＦＯ装置に係わり、特に、フロッピイディスクドライブ装置からデータを読み出す際、読み出しエラーがあっても、リトライすることなしにデータを読み出すことを可能にしたディジタルＶＦＯ装置に関する。
【０００２】
【従来の技術】
ＶＦＯ（Ｖａｒｉａｂｌｅ  Ｆｒｅｑｕｅｎｃｙ  Ｏｓｃｉｌｌａｔｏｒ）は、特に、磁気記録ディスクのデータを再生する時に用いられる。
【０００３】
このＶＦＯは、一般的にアナログ回路により実現されている。アナログ回路は、抵抗値や容量値のあわせ込みを行なわねばならず、設計が困難であり、チップ面積の縮小も難しい。
【０００４】
近年、ＶＦＯのディジタル化が要求されている。この要請に応えるために、例えば、特開平３−２２７１２３号公報に開示されているように、カウンタを使ったＶＦＯで、ディジタル化することが提案されている。
【０００５】
この先行技術文献に開示された構成を、図１３に示した。
【０００６】
図１３において、再生データ（３１）は、フロッピィ・ディスク駆動装置が出力する信号である。基準化回路（３２）は、再生データ（３１）から基準クロックにより、基準クロックの１クロック幅の基準データを生成する。カウンタ回路（３３）は、基準クロックによりカウンタ値を増やすリセット機能付きの２進カウンタで、ＭＳＢは、最上位ビットを示す。Ｄタイプフリップフロップ（３４）は、カウンタ回路（３３）の出力を２分周して出力クロックを生成する。図１３における出力クロックが、本発明の図１のＷＩＮＤＯＷパルス（１１１）に相当する。
【０００７】
データの転送レートが５００Ｋｂｐｓで、図１３の基準クロック（本発明の図２のシステムクロックＣＬＫに相当する）が１２ＭＨｚである場合を例に説明する。
【０００８】
この場合、出力クロックを発生させるカウンタ（３３）の周期を十進数の１２にすると、入力データと出力クロックとの周期が一致する。
【０００９】
図１３の回路は、再生データがある毎に再生データが出力クロックのＨｉｇｈ幅、またはＬｏｗ幅の中心になるように、カウンタ値に６をセットし、即座に位相補正を行なう。このため、磁気によって記録されたデータの特徴であるピークシフトが再生データに含まれる場合、誤った補正が行なわれてしまい、データが正しく再生できないという欠点があった。
【００１０】
図１３の構成によるピークシフト対に対する誤った補正の例を図１４に示す。図１４の実線で描かれた出力クロックは誤って補正されたもの、点線で描かれた出力クロックは、補正を行なわなかった場合の波形を示す。再生されるべきデータは”１１”であり、これらの両ビットが中心より左右に離れるピークシフトを起こしているものとする。
【００１１】
本来、再生データが発生したときに、出力クロックは、Ｈｉｇｈとなるタイミングで出力しなければならない。図１３の構成では、ピークシフトが発生した場合、時刻ｔ１０における再生データが出力クロックＨｉｇｈのタイミングから外れてしまっている。
【００１２】
また、同公報に記載された他の構成を、図１５に示した。
【００１３】
図１５において、ドライブからの再生データ（９２）は、基準化回路（９１）により、システムクロック（９３）の１クロック分の長さを持ったパルス（９４）に基準化される。パルス（９４）は、位相差検出回路（９５）で、出力クロック（９９）との位相差が検出される。出力クロック（９９）は、本発明のＷＩＮＤＯＷパルス（１１１）に相当する。
【００１４】
検出された位相差は、周波数差検出回路（９６）にて、符号付きの値として蓄積される。例えば、位相差がマイナスならば、周波数差検出回路（９６）内で保持される値を−１し、位相差がプラスならば、値を＋１するという操作を行う。
【００１５】
周波数差検出回路（９６）の値が一定値に達すると、周波数差検出回路（９６）は、分周比設定回路（９７）に対し、分周比のアップ、もしくはダウンの指示を出す。分周回路（９８）は、分周比設定回路（９７）の設定値に基づき、出力クロック（９９）を所定の周期で出力する。これは、デジタルＶＦＯのＷＩＮＤＯＷパルスを生成するカウンタの最大値（周期）を変更することに相当する。
【００１６】
この従来技術では、位相差を基に検出された周波数差に基づき、ＷＩＮＤＯＷパルスの周期だけを変更する。
【００１７】
カウンタ値を即座に代入する前記の従来方式と異なり、個々のビットには反応しないため、ピークシフトに対して過補正を起こしてしまうということがない。
【００１８】
しかし、この方式は、周期の検出手段として、位相差の蓄積を基にしているので、必ずしも周期の誤差を正しく検出することは出来ない。
【００１９】
この構成による、誤った周波数補正の例を図１６に示した。
【００２０】
図１６では、出力クロック（９９）に対し、入力データ（９４）は、常に中心の右側にあるため、位相差検出回路（９５）の出力は常にプラス側となり、それを蓄積した周波数差検出回路（９６）は、分周比設定回路（９７）に対して周期を伸ばすように設定を行う。
【００２１】
しかし、実際は、入力データ（９４）は、出力クロック（９９）より周期が短く、図では、出力クロック（９９）の右端近くで捕らえられていたものが、少しずつ中心側に近づきつつある。即ち、この補正は、誤補正となる。
【００２２】
このように、ピークシフトと周波数誤差という２つの問題は、相反する特性を持っており、この２点のどちらかに有効な補正アルゴリズムはいくつか提案されているが、その両方に対して有効なものは、提案されていなかった。
【００２３】
【発明が解決しようとする課題】
本発明の目的は、上記した従来技術の欠点を改良し、特に、ピークシフトに対して補正能力を持つＶＦＯ回路と周波数誤差に対して補正能力を持つＶＦＯ回路とを備えることで、即ち、補正特性の異なるＶＦＯ回路を備えることで、フロッピイディスクドライブ装置からデータを読み出す際、読み出しエラーがあっても、リトライすることなしにデータを読み出すことを可能にした新規なディジタルＶＦＯ装置を提供するものである。
【００２４】
【課題を解決するための手段】
本発明は上記した目的を達成するため、基本的には、以下に記載されたような技術構成を採用するものである。
【００２５】
即ち、本発明に係わるディジタルＶＦＯ装置の第１態様は、
ピークシフトを持った入力データに対して所定の位相関係を持つウインドウパルスを出力信号として出力するディジタルＶＦＯ装置であって、
複数のＶＦＯ回路と、
前記複数の各ＶＦＯ回路に設けられた補正特性がそれぞれ異なる同期カウンタと、
前記各ＶＦＯ回路からそれぞれ出力される前記入力データのピークシフトの状態を示す信号と、
前記入力データのピークシフトの状態を示す信号に基づき、前記複数のＶＦＯ回路から一つのＶＦＯ回路を選択する調停回路と、
前記調停回路が選択したＶＦＯ回路の同期カウンタのカウンタ値を、他のＶＦＯ回路の同期カウンタに代入することで、他のＶＦＯ回路の同期カウンタを補正するための補正指示信号と、
で構成したことを特徴とするものであり、
叉、第２態様は、
前記調停回路は、
入力した第２の入力データの直前に入力した第１の入力データのピークシフトの状態を示す信号を保持する各ＶＦＯ回路毎に設けられたデータ保持回路と、
前記第２の入力データのピークシフトの状態を示す信号と前記データ保持手段に保持されているデータとに基づき、前記第２の入力データのピークシフトが予め決められた論理であるか否かを検出し、予め決められた論理でない状態を検出したとき、当該ＶＦＯ回路の同期カウンタのカウンタ値を補正するための前記補正指示信号を出力する各ＶＦＯ回路毎に設けられた検出回路と、
前記検出回路の検出結果に基づき、複数のＶＦＯ回路からいずれかのＶＦＯ回路を選択し、選択したＶＦＯ回路のウインドウパルスを出力信号として出力するするウインドウパルス選択回路と、
で構成したことを特徴とするものであり、
叉、第３態様は、
前記調停回路は、
入力した第２の入力データの直前に入力した第１の入力データのピークシフトの状態を示す信号を保持する各ＶＦＯ回路毎に設けられた第１のデータ保持回路と、
前記第１のデータ保持回路に保持されているデータの直前の入力データのピークシフトの状態を示す信号を更に保持する各ＶＦＯ回路毎に設けられた第２のデータ保持回路と、
前記第２の入力データのピークシフトの状態を示す信号と前記第１及び第２のデータ保持手段に保持されているデータとに基づき、前記第２の入力データのピークシフトが予め決められた論理であるか否かを検出し、予め決められた論理でない状態を検出したとき、当該ＶＦＯ回路の同期カウンタのカウンタ値を補正するための前記補正指示信号を出力する各ＶＦＯ回路毎に設けられた検出回路と、
前記検出回路の検出結果に基づき、複数のＶＦＯ回路からいずれかのＶＦＯ回路を選択し、選択したＶＦＯ回路のウインドウパルスを出力信号として出力するするウインドウパルス選択回路と、
で構成したことを特徴とするものであり、
叉、第４態様は、
前記複数のＶＦＯ回路のうち、いずれかのＶＦＯ回路が優先権を有し、前記検出回路が検出結果を出力しないとき、前記優先権を有するＶＦＯ回路から出力されるウインドウパルスが出力信号として出力されることを特徴とするものであり、
叉、第５態様は、
前記入力データのピークシフトの状態を示す信号は、少なくとも、クロック信号が右シフトした状態を示すビットと、クロック信号が左シフトした状態を示すビットと、データ信号が右シフトした状態を示すビットと、データ信号が左シフトした状態を示すビットとを含む信号であることを特徴とするものであり、
叉、第６態様は、
前記入力データは、当該装置から当該装置の１システムクロック分遅延して出力され、ウインドウパルスも１システムクロック分遅延して出力されることを特徴とするものである。
【００２６】
【発明の実施の形態】
本発明に係わるディジタルＶＦＯ装置は、シリアルデータ再生の際のデジタルＶＦＯによるデータ復号において、異なった特性を持つ複数のデジタルＶＦＯを同時に用い、即ち、ピークシフトに対して補正能力を持つＶＦＯ回路と周波数誤差に対して補正能力を持つＶＦＯ回路とを設け、ピークシフト発生の法則性を利用して、復号と同時に各ＶＦＯの正誤判定を行い、正しいＶＦＯの復号結果のみをフロッピーディスクコントローラに与ると共に、誤ったＶＦＯには、正しいＶＦＯの状態値をロードすることにより、正しい状態に復帰させるように構成したことを特徴としている。
【００２７】
図１に、ＶＦＯを２個用いた場合の本発明の構成を示す。
【００２８】
ディスクドライブ（１０）からのシリアルデータ（１１）は、２つのデジタルＶＦＯ（１２）及び（１４）に入力される。ＶＦＯ（１２）及び（１４）は、それぞれのアルゴリズムに従って、ＷＩＮＤＯＷパルス（１３）及び（１５）を生成する。
【００２９】
ディスクドライブ（１０）からのシリアルデータ（１１）が発生した時に、ＷＩＮＤＯＷパルス（１３）と（１５）のカウンタ値が異なる場合、調停回路（１１０）がＷＩＮＤＯＷパルス（１３）と（１５）の正誤判定を行い、正しいと考えられる方のＷＩＮＤＯＷパルスを、最終結果（１１１）としてフロッピィディスクコントローラ（１１２）に出力する。
【００３０】
この時、誤っていると考えられるＶＦＯに対しては、正しい補正をしていると考えられるＶＦＯのカウンタ値を代入し、誤ったＶＦＯのカウンタのカウンタ値を正常な値に復帰させる。ＶＦＯ（１２）、（１４）は、それぞれ、調停回路（１１０）から出力される状態値ロード信号（１７）、（１６）によって、正しい方のＶＦＯの状態値をロードする。
【００３１】
このように、本発明では、複数のＶＦＯの調停を行い、位相の正しいデータとＷＩＮＤＯＷパルスとをコントローラ側に渡しつつ、誤った状態に陥ったＶＦＯを正常な状態に復帰させることにより、常に最適なＷＩＮＤＯＷパルスを、フロッピィディスクコントローラ（１１２）に出力することが可能となる。
【００３２】
【実施例】
以下に、本発明に係わるディジタルＶＦＯ装置の具体例を図面を参照しながら詳細に説明する。
（第１の具体例）
図１乃至図８は、第１の具体例を示す図であり、これらの図には、
ピークシフトを持った入力データ（１１）に対して所定の位相関係を持つウインドウパルスを出力信号として出力するディジタルＶＦＯ装置であって、
複数のＶＦＯ回路（１２、１４）と、
前記複数の各ＶＦＯ回路（１２、１４）に設けられた補正特性がそれぞれ異なる同期カウンタ（１２ａ、１４ａ）と、
前記各ＶＦＯ回路からそれぞれ出力される前記入力データ（１１）のピークシフトの状態を示す信号（１１３、１１４）と、
前記入力データ（１１）のピークシフトの状態を示す信号（１１３、１１４）に基づき、前記複数のＶＦＯ回路（１２、１４）から一つのＶＦＯ回路を選択する調停回路（１１０）と、
前記調停回路（１１０）が選択したＶＦＯ回路の同期カウンタのカウンタ値を、他のＶＦＯ回路の同期カウンタに代入することで、他のＶＦＯ回路の同期カウンタを補正するための補正指示信号（１６、１７）と、
で構成したことを特徴とするディジタルＶＦＯ装置が示され、
又、前記調停回路（１１０）は、
入力した第２の入力データ（１１）の直前に入力した第１の入力データのピークシフトの状態を示す信号（ＳＴＡＯＬＤ）を保持する各ＶＦＯ回路毎に設けられたデータ保持回路（２６）と、
前記第２の入力データ（１１）のピークシフトの状態を示す信号（ＳＴＡ）と前記データ保持手段（２６）に保持されているデータとに基づき、前記第２の入力データ（１１）のピークシフトが予め決められた論理であるか否かを検出し、予め決められた論理でない状態を検出したとき、当該ＶＦＯ回路（１２）の同期カウンタ（１２ａ）のカウンタ値を補正するための前記補正指示信号（１７）を出力する各ＶＦＯ回路毎に設けられた検出回路（２７、２３）と、
前記検出回路の検出結果に基づき、複数のＶＦＯ回路からいずれかのＶＦＯ回路を選択し、選択したＶＦＯ回路（１４）のウインドウパルスを出力信号として出力するするウインドウパルス選択回路（２２０、２２１、２２）と、
で構成したことを特徴とするディジタルＶＦＯ装置が示されている。
【００３３】
図１を参照すると、本発明の一実施例としてのシステム構成図が示されている。本システム構成図は、フロッピィディスクドライブ（１０）、ドライブよりのシリアルデータ（１１）、第一のＶＦＯ（１２）、ＶＦＯ（１２）がシリアルデータ（１１）に対して生成するＷＩＮＤＯＷパルス（１３）、第二のＶＦＯ（１４）、ＶＦＯ（１４）がシリアルデータ（１１）に対して生成するＷＩＮＤＯＷパルス（１５）、ＶＦＯ（１２）がＶＦＯ（１４）の状態値をロードする信号（１７）、ＶＦＯ（１４）がＶＦＯ（１２）の状態値をロードする信号（１６）、ＶＦＯ（１２）の状態値（１８）、ＶＦＯ（１４）の状態値（１９）、調停回路（１１０）、調停回路によって選択されたＷＩＮＤＯＷパルス（１１１）、フロッピィディスクコントローラ（１１２）を有する。ここで、ＶＦＯ（１２）及びＶＦＯ（１４）の状態値（１８）、（１９）とは、デジタルＶＦＯは、ＷＩＮＤＯＷパルスを同期カウンタの値を基に作成しているので、そのカウンタ値になる。ＶＦＯ（１２）、ＶＦＯ（１４）は異なる補正アルゴリズムをもつデジタルＶＦＯで、そのカウンタに同期しているクロック、及びカウンタの周期は同じである必要がある。また、各ＶＦＯは、データ（１１）を受け取った際、ＷＩＮＤＯＷパルスとの位相関係から、そのビットがピークシフトを含むビットであるかどうかを判断し、ビットのピークシフト状態を表わす信号（１１３）、（１１４）を調停回路（１１０）にわたす。
【００３４】
ディスクドライブ（１０）からの信号（１１）は、ＶＦＯ（１２）及び（１４）に供給される。ＶＦＯ（１２）及びＶＦＯ（１４）は、この入力データ（１１）に対し、それぞれのアルゴリズムで位相、周期補正を行い、ＷＩＮＤＯＷパルス（１３）及び（１５）を発生する。
【００３５】
この処理データに対し、本発明に従って設けられた調停回路（１１０）は、入力データ（１１）に対するＷＩＮＤＯＷ（１３）及び（１５）の結果が異なる時、この調停を行い、正しいと思われる結果の方を最終結果（１１１）として、フロッピィディスクコントローラ（１１２）に供給する。
【００３６】
また、この時、状態が誤っている方のＶＦＯには、正しい状態であると考えられる方のＶＦＯの値をロードさせる。
【００３７】
調停回路（１１０）は、ＷＩＮＤＯＷパルスの調停を行う際、同時に、状態ロード信号（１６）又は（１７）を生成する。
【００３８】
図１の例では、ＶＦＯ（１２）がＶＦＯ（１４）の値をロードする合図となる信号をロード信号（１７）、ＶＦＯ（１４）がＶＦＯ（１２）の値をロードする合図となる信号をロード信号（１６）とする。即ち、ロード信号（１７）がアクティブになったとき、ＶＦＯ（１２）はＶＦＯ（１４）の状態値（１９）をロードし、ロード信号（１６）がアクティブになった時には、ＶＦＯ（１４）がＶＦＯ（１２）の状態値（１８）をロードする。
【００３９】
図２（ａ）に、図１の調停回路（１１０）の詳細なブロック図の一構成例を、図２（ｂ）に、カウンタのブロック図を示した。
【００４０】
図２において、多ビットフリップフロップ（２６）及び（２１１）は、ドライブからのデータ（１１）がアクティブになった時に、信号（１１３）、（１１４）をそれぞれ保持するレジスタである。ここで、（１１３）、（１１４）は、ＶＦＯ（１２）及び（１４）から入力されるデータがピークシフトを含むかどうか、ピークシフトを含む場合それはどちら方向へのものか、などを表わす多ビット信号である。
【００４１】
デコーダ（２７）及び（２１２）は、信号（１１３）、（１１４）のそれぞれ２回分の値より、ピークシフト発生の法則から外れた場合に出力信号（２１３）、（２１４）をそれぞれアクティブにする。
【００４２】
信号（１１３）及び（１１４）が確定するのは、ＤＡＴＡ（１１）を受けた後であるので、図２の構成例では、ＤＡＴＡ（１１）を１クロック遅らせた信号（１１５）のタイミングで、ＷＩＮＤＯＷの調停を行う。タイミング調整のため、ＷＩＮＤＯＷ（１３）及び（１５）をそれぞれ１クロック遅らせた信号（２１５）、（２１６）を用いる。
【００４３】
信号（１１５）が発生した時に、２つのＷＩＮＤＯＷパルス（２１５）、（２１６）の値が不一致を起こしており、信号（２１３）がアクティブ、且つ（２１４）がインアクティブの時、ＡＮＤゲート（２３）により、信号（１７）がアクティブになる。信号（１７）はフリップフロップ（２２０）及びＯＲゲート（２２１）によって、２クロック分の長さの信号（２２２）になり、信号（２２２）に基づきセレクタ（２２）が選択したＷＩＮＤＯＷパルス（２１６）が、コントローラに渡される。最終結果（１１１）には、ＶＦＯ（１４）の値（２１６）が出力される。
【００４４】
この時、信号（１７）はＶＦＯ（１２）に出力され、ＶＦＯ（１２）がＶＦＯ（１４）の状態値（カウンタ値）（１９）をロードするためのロード信号となる。
【００４５】
同様に、信号（１６）がアクティブになった時には、ＶＦＯ（１４）がＶＦＯ（１２）の値（１８）をロードする。
【００４６】
図２は、ＶＦＯの出力としてＶＦＯ（１２）を優先させた場合の例であり、ＷＩＮＤＯＷパルスの値が一致している時、ＶＦＯ（１２）、ＶＦＯ（１４）ともにピークシフト発生の法則から外れている時、あるいは両方ともにピークシフト発生の法則から外れてはいないが結果が不一致の時には、ＷＩＮＤＯＷ（２１５）の方がコントローラに渡される構成になっている。
【００４７】
図３には、デコーダ（２７）、（２１２）に用いられるデコーダの論理の一例を示す。
【００４８】
図３に示す通り、ピークシフト状態を表わすＶＦＯ（１２）の信号（１１３）、ＶＦＯ（１４）の信号（１１４）（これの信号をＳＴＡ（３:０）ともいう）は、右シフトクロックビットを表わす信号ＲＣと、右シフトデータビットを表わす信号ＲＤと、左シフトクロックビットを表わす信号ＬＣと、左シフトデータビットを表わす信号ＬＤとから構成している。
【００４９】
デジタルＶＦＯは、カウンタの値を基にＷＩＮＤＯＷパルスを作るので、入力データ（１１）が入力された時のカウンタの値があらかじめ定めた基準値より小さければ左ピークシフト、基準値より大きければ右ピークシフトと判断できるから、ＲＣ、ＲＤ、ＬＣ、ＬＤが生成され、又、ＷＩＮＤＯＷパルスの値が「１」ならばデータビット、「０」ならばクロックビットと判断できる。
【００５０】
上記した例の場合、「同じ方向のピークシフトは二回続かない」「左ピークシフトの次に、それと違う種類のビットは続かない」という考えに基づいており、データ発生時の２回分のＳＴＡ（３:０）の値、即ち、図２中のＶＦＯ（１２）のピークシフトの状態を表わす信号（１１３）と１クロック前のピークシフト状態を表わす信号（２５）との組み合わせ、あるいは、ＶＦＯ（１４）のピークシフトの状態を表わす信号（１１４）と１クロック前のピークシフト状態を表わす信号（２１０）との組み合わせが、上記に示したピークシフト発生の法則に反した時、ピークシフトの現われ方に矛盾があることを示す信号（１７）又は（１６）がそれぞれアクティブになる。
【００５１】
図７には、本発明の構成によるフロッピィディスクのセクタリードの処理の流れを示すフローチャートを示す。
【００５２】
システムがあるセクタのデータをリードする際、まず所望セクタのアドレスをサーチする（１１０１）。
【００５３】
各セクタのアドレス部を順次読みとり、読みとったアドレス部の値が、所望するセクタ番号と一致した場合、アドレスを発見したことになり（１１０２）、次にデータ部のリードに移る（１１０３）。
【００５４】
データ部のリード中、本発明の構成にる複数搭載したＶＦＯの値が異なる時、分岐（１１０４）により、処理（１１０５）が行われる。ここで、すでに図１及び図２を用いて説明したとおり、正しい値を返していると判断されたＶＦＯの値を選択し、誤った値を返したと判断されたＶＦＯには、正しいと判断されたＶＦＯの内部状態値を代入する。
【００５５】
以上の処理を重ね、規定バイト数のリードが終了すると、分岐（１１０６）でＣＲＣ領域のリード処理（１１０７）に移る。
【００５６】
セクタの最後に記されているＣＲＣの値と、フロッピーディスクコントローラが計算したＣＲＣの値が一致する事を確認し、セクタのリードが終了する（１１１０）。
【００５７】
次に、本具体例の動作について説明する。
【００５８】
図１及び図２の各構成において、読み出しデータ（１１）の転送レートは５００Ｋｂｐｓで、ＶＦＯの動作クロックが１２ＭＨｚである場合、図１のＶＦＯ（１２）及び（１４）が１２進のカウンタとして動作し、カウンタが一周するごとにＷＩＮＤＯＷパルス（１３）及び（１５）が反転するように構成すると、データ転送レートとＷＩＮＤＯＷパルスとの周期が一致する。
【００５９】
ＶＦＯ（１２）、（１４）のカウンタが５の時に入力データ（１１）が発生するのが、ピークシフト、及び転送レートの誤差がない場合の理想的な位相関係となる。
【００６０】
デコーダ（２７）、及びデコーダ（２１２）は、図３の表に従ってそれぞれ信号（２１３）、（２１４）を発生させるものとする。
【００６１】
また、ＶＦＯ（１２）、（１４）は、ピークシフト発生状況を示す信号（１１３）、（１１４）をそれぞれ調停回路（１１０）に渡す。
【００６２】
信号（１１３）、（１１４）は、シリアルデータ（１１）が発生した時のＶＦＯのカウンタ値によって、図４の図表に従って生成されるものとする。
【００６３】
以下、図５のタイミング図に従って、ＶＦＯ（１２）とＶＦＯ（１４）が不一致を起こした時の調停例を説明する。
【００６４】
これは、図７のフローチャートにおいて、分岐（１１０４）が、「ＹＥＳ」となったときの処理（１１０５）に相当する。
【００６５】
図５の範囲において、入力データされるビット列は"１１００"であり、ドライブからの入力データ（１１）は、時刻ｔ１、ｔ２でデータビット、時刻ｔ３でクロックビットを発生する。時刻ｔ４は、時刻ｔ３の１システムクロック後の時間とする。ＭＦＭ変調方式におけるピークシフト発生の法則により、時刻ｔ２のデータビットは右に、時刻ｔ３のクロックビットは左にピークシフトしている。時刻ｔ１のデータビットは、ピークシフトしていないものとする。また、転送レートの誤差はないものとする。
【００６６】
時刻ｔ１のデータビットに対し、ＶＦＯ（１２）、（１４）ともに理想的な位相関係にあったとする。即ち、時刻ｔ１でデータビットが発生した時、ＶＦＯ（１２）、（１４）のカウンタ値はともに「５」であり、１クロック後に「６」になる位相関係にあるものとする。このとき、図４の表に基づき、ＳＴＡ（３:０）＝"００００"となる。
【００６７】
次に、時刻ｔ２で発生したデータビットは右にピークシフトしており、このビットが立った時、両ＶＦＯのカウンタ値はそれぞれ「９」であったとする。ここで、ＶＦＯ（１２）と（１４）は異なる補正アルゴリズムを持ったＶＦＯであり、ＶＦＯ（１２）はここで補正を行わず、次のクロックでカウンタ値を「Ａ」に、ＶＦＯ（１４）は、この入力データをＷＩＮＤＯＷの中心で受けたように補正し、次のクロックでカウンタ値「６」を代入するものとする。図４の表に基づき、これは右ピークシフトと判定されるので、（１１３）、（１１４）の値はともに"０１００"となる。
【００６８】
次に、時刻ｔ３で、左にピークシフトしたクロックビットが発生した時、ＶＦＯ（１２）は時刻ｔ２で位相補正を行っていないので、入力データ（１１）に対して正しい位相関係のＷＩＮＤＯＷパルス（１３）を生成することができている。一方、ＶＦＯ（１４）は、時刻ｔ２でのピークシフトに対して過補正を行っているため、左にピークシフトしたクロックビットを、右にピークシフトしたデータビットであるかのように捕らえてしまう。即ち、状態値（２１０）は先ほどの（１１４）の値をロードし"０１００"に、（１１４）は図４の表に従ってやはり"１０００"となる。つまり、右方向にピークシフトしたデータビットが２回続いたという判断になる。
【００６９】
調停は、入力データ（１１）の１クロック後に行われ、図３の表に従い、ＶＦＯ（１４）の動作がおかしいと判断され、信号（１６）がアクティブになる。この信号のタイミングでＶＦＯ（１４）のカウンタ値にＶＦＯ（１２）のカウンタ値及びＷＩＮＤＯＷパルスの値が代入され、ＶＦＯ（１４）が正しい状態に復帰することとなる。
【００７０】
なお、この図５では、優先度の低いＶＦＯ（１４）の方が誤った場合について説明したが、ＶＦＯ（１２）が誤ったと判定された場合は、図５の信号（１６）の代わりに信号（１７）がアクティブになる。信号（１７）がアクティブになるのは１クロック分だけであるが、これをフリップフロップ（２２０）及びＯＲゲート（２２１）で２クロック分に伸ばした信号（２２２）により、ＶＦＯ（１４）のＷＩＮＤＯＷパルス（１５）を１クロック分遅らせた信号（２１６）がコントローラ側に渡される。また、信号（１７）がアクティブになった時、ＶＦＯ（１２）はＶＦＯ（１４）の状態値（１９）をロードする。正しいと判断されたＶＦＯ（１４）のＷＩＮＤＯＷパルスは２クロック時間だけ、コントローラに渡すＷＩＮＤＯＷパルス（１１１）として選択されるが、２クロック時間後に、ＷＩＮＤＯＷパルス（１１１）には、再びＶＦＯ（１２）のＷＩＮＤＯＷパルス（１３）を１クロック遅らせた信号（２１５）が選択される。ＷＩＮＤＯＷパルス（２１６）が選択されている２クロック時間の間に、ＶＦＯ（１２）は状態値のロードを行い、その１クロック遅れの信号（２１５）にも反映されるので、コントローラに渡されるＷＩＮＤＯＷパルスには途切れなく、正しい位相関係のものが選択される。
【００７１】
この部分のタイミング図を図６に示す。
【００７２】
時刻ｔ６でＶＦＯ（１２）の方が誤っていると判定され、信号（１７）が立ち上がる。同時に、信号（２２２）によって、ＷＩＮＤＯＷ（１１１）には、ＶＦＯ（１４）の生成するＷＩＮＤＯＷ（１５）の１クロック遅れの信号（２１６）が選択される。
【００７３】
信号（１７）を受けて、時刻ｔ７のタイミングでＶＦＯ（１２）は、ＶＦＯ（１４）の状態値（１９）をロードするが、信号（２２２）は依然としてアクティブであるため、ＷＩＮＤＯＷ（１１１）にはまだＷＩＮＤＯＷ（２１６）が出力される。時刻ｔ８で信号（２２２）がインアクティブになり、ＷＩＮＤＯＷ（１１１）には（２１５）が選択されることになるが、この１クロック前にＶＦＯ（１２）とＶＦＯ（１４）の状態は同じになっているため、１クロック遅れの信号（２１５）においても時刻ｔ８で（２１５）＝（２１６）になっており、コントローラに渡される信号（１１１）には正しい状態のＷＩＮＤＯＷパルスが途切れなく渡されることになる。
【００７４】
この構成の場合、コントローラに渡されるＷＩＮＤＯＷパルスは、調停回路を通る前に生成されたＷＩＮＤＯＷパルスの１クロック遅れになるため、タイミング調整のため、コントローラに渡すデータパルス（１１５）も、ドライブの再生信号（１１）の１クロック遅れの信号を用いる。
（第２の具体例）
図９は、第２の具体例の構成を示す図である。
【００７５】
上記第１の具体例では、ＶＦＯを２個用いる場合について説明した。これを２個に限らず、任意の数ｎ個のＶＦＯについて同様の構成を取ることも可能である。各ＶＦＯに優先度を定め、優先度の高いＶＦＯが誤ったと判定され、且つ、より優先度の低いＶＦＯが誤っていないと判断された時、そのＶＦＯの生成するＷＩＮＤＯＷパルスをコントローラに渡し、その状態値を各ＶＦＯにロードするように構成する。
（第３の具体例）
図１０は、第３の具体例の構成を示す図である。
【００７６】
第１の具体例では、ピークシフトの状態を示す信号を、右ピークシフトしたクロックビットＲＣ、右ピークシフトしたデータビットＲＤ、左ピークシフトしたクロックビットＬＣ、左ピークシフトしたデータビットＬＤとで構成したが、各ビットが全て０である時、ピークシフトがないビットを表現するように構成する。即ち、ＳＴＡ（５:０）を拡張し、ピークシフトがないクロックビットＣ、ピークシフトがないデータビットＤを表現できるようにする。
【００７７】
これにより、従来の「同じ方向のピークシフトが２回続くことはない」「左ピークシフトしたクロック（データ）ビットの次に右ピークシフトしたデータ（クロック）ビットが現れることはない」という従来の誤り判定アルゴリズムに加え、「ピークシフト無しのデータ（クロック）ビットの次に、右にピークシフトしたクロック（データ）ビットが現れることはない」という考えを付け加えることが出来る。図１０には、このＳＴＡ（５:０）によるデコーダの論理の一例の一部分を示す。これは、図３のデコーダに相当するものである。
【００７８】
図３のデコーダでは、ピークシフトが発生しなかったときにはＳＴＡ（３:０）＝"００００"となり、次に発生したビットの状態がどのようであっても誤りとは判定されなかったが、ＳＴＡを６ビットに拡張すると、ピークシフトなしでもＳＴＡ（５:０）＝"０００００１"またはＳＴＡ（５:０）＝"００００１０"となり、図１３のデコーダのように、次のビットの状態によっては誤りと判定できる。
（第４の具体例）
図１１、１２は、第４の具体例を示す図である。
【００７９】
第１の具体例では、ＶＦＯの発生するピークシフトの状況を表わす信号値ＳＴＡ（３:０）の２回分の値を基に各ＶＦＯの正誤判定を行うように構成したが、この第４の具体例では、更に、ＳＴＡの２回以上の履歴を基に正誤判定を行う構成するものである。
【００８０】
これにより、「ピークシフトなしのデータ（クロック）ビットが２回以上続いた後に、右にピークシフトしたクロック（データ）ビットが発生するのはおかしい」という判定基準を増やすことが可能となる。
【００８１】
第４の具体例の構成例を図１４に示した。点線で囲った部分が、図２と異なる部分である。図２では、シリアルデータ（１１）が発生したときに、ピークシフト発生状況を示す信号（１１３）、（１１４）を２回分保持する構成になっていたが、図１４では、シフトレジスタを用い、２回分以上の値を保持し、デコーダに渡している。
【００８２】
デコーダ（１４０７）、（１４０８）の論理の一例を、図１５に示す。ＳＴＡ（５:０）の３回分の値をデコードする例になる。
【００８３】
２回分しか保持しなかった図１３では、ピークシフトが発生しなかったときは、矛盾を示す組み合わせは一通りしかなかった。図１５のデコーダでは、同じ種類のピークシフト無しビットが２回続いた後には、同じ種類でまたピークシフト無しのビットが発生するか、あるいは右にピークシフトしたビットしか発生しない、と判断することができる。
【００８４】
このように、この具体例の調停回路は、
入力した第２の入力データの直前に入力した第１の入力データのピークシフトの状態を示す信号を保持する各ＶＦＯ回路毎に設けられた第１のデータ保持回路と、
前記第１のデータ保持回路に保持されているデータの直前の入力データのピークシフトの状態を示す信号を更に保持する各ＶＦＯ回路毎に設けられた第２のデータ保持回路と、
前記入力した第２の入力データのピークシフトの状態を示す信号と前記第１及び第２のデータ保持手段に保持されているデータとに基づき、前記第２の入力データのピークシフトが予め決められた論理であるか否かを検出し、予め決められた論理でない状態を検出したとき、当該ＶＦＯ回路の同期カウンタのカウンタ値を補正するための前記補正指示信号を出力する各ＶＦＯ回路毎に設けられた検出回路と、
前記検出回路の検出結果に基づき、複数のＶＦＯ回路からいずれかのＶＦＯ回路を選択し、選択したＶＦＯ回路のウインドウパルスを出力信号として出力するするウインドウパルス選択回路と、
で構成したことを特徴とするものである。
【００８５】
【発明の効果】
本発明に係わるディジタルＶＦＯ装置は、上述のように構成したので、特性の異なる２個のＶＦＯのそれぞれの利点を生かしたＭＦＭの復号ができる。
【００８６】
図８に、従来の構成による処理フローを示した。
【００８７】
図８に示す従来の構成の場合、コントローラが、フォーマット中のＣＲＣ領域で読み取った値と自身が計算した値との比較を行い、そこで初めて復号の誤りの有無を知ることが出来るが、本構成では、どちらかのＶＦＯが誤りを起こした際、その時即座に正しい補正をしているＶＦＯを選択し、そのＶＦＯが生成したＷＩＮＤＯＷパルスをフロッピーディスクコントローラ側に渡すため、ＣＲＣ領域まで判断してからセクタの再読み込みを行う従来の構成と比較して、リトライにかける時間が大幅に短縮できる。
【００８８】
具体的には、エラーを起こしたセクタにもう一度たどり着くには、最低ディスク一回転分の時間が必要となるので、通常の３６０ｒｐｍのディスクドライブを使用した場合、
１６７[ｍｓｅｃ]  ×  （リトライ数）
だけのリトライ時間を必要とする。
【００８９】
本発明の構成によれば、どちらかのＶＦＯがそのセクタを読み取る能力を備えていれば、リトライ無しで当該セクタのリードが可能となり、上記のリトライ時間をなくすことが出来る。
【００９０】
なお、本発明中の調停回路による誤り判定には、ピークシフト発生の法則性を利用している。ピークシフトが発生するデータ列は、特開平５−３０３７０６号公報などで公知である。例えば、Ａ、Ｂ二つの特性の異なるＶＦＯを搭載し、これらを切り替えて使う場合、あるセクタ中にＡ、Ｂがそれぞれ苦手とするデータ特性ａ、ｂが両方含まれていた場合、そのセクタはＡでもＢでも読み取ることは出来ず、最終的に読み取れないセクタということになる。
【００９１】
本発明によれば、いずれかのＶＦＯが誤りをおかした場合に、正しいＶＦＯの状態値を代入するため、セクタ中のａの部分ではＶＦＯ（Ｂ）でリードし、誤りをおかしたＶＦＯ（Ａ）には、Ｂの状態値を代入して正しい状態に復帰させる。従って、次に、データｂが現れた時は、正しい状態に復帰しているＶＦＯ（Ａ）が、正しくリードすることにより、従来のシステムでＶＦＯを切り替えてリトライしても読み取れなかったセクタを読み取れるようになることが可能になる。
【図面の簡単な説明】
【図１】本発明の構成を示す図である。
【図２】（ａ）は、第１の具体例の調停回路の構成を示すブロック図、（ｂ）は、カウンタのブロック図である。
【図３】デコーダの論理の一例を説明する図である。
【図４】データとクロックとのピークシフトの状態を示す信号の構成の一例を示す図である。
【図５】動作タイミングを示す図である。
【図６】出力タイミングを示す図である。
【図７】本発明の動作を説明するフローチャートである。
【図８】従来技術による動作を説明するフローチャートである。
【図９】第２の具体例の調停回路の構成を示すブロック図である。
【図１０】本発明の第３の具体例を示し、データとクロックとのピークシフトの状態を示す信号を、６ビットに拡張した場合のデコーダの論理の一例を示す図である。
【図１１】第４の具体例の調停回路の構成を示すブロック図である。
【図１２】本発明の第４の具体例のデコーダの論理の一例を示す図である。
【図１３】特開平３−２２５１２３号公報に示される従来例の図である。
【図１４】図１３の構成によるＶＦＯの誤った位相補正の例を示す図である。
【図１５】特開平３−２２７１２３号公報に示される従来例の図である。
【図１６】図１５の構成によるＶＦＯの誤った周期補正の例を示す図である。
【符号の説明】
１０  フロッピーディスクドライブ
１１  入力信号
１２、１４  ＶＦＯ回路
１２ａ、１４ａ  同期カウンタ
１３、１５、１１１  ＷＩＮＤＯＷパルス
１１３、１１４  入力データのピークシフトの状態を示す信号
１６、１７  状態値ロード信号
１８、１９  状態値
１１０  調停回路
１１２  フロッピーディスクコントローラ
１１５  シリアルデータ
【図１】
0003645194.tif 000002
【図２】
0003645194.tif 000003
【図３】
0003645194.tif 000004
【図４】
0003645194.tif 000005
【図５】
0003645194.tif 000006
【図６】
0003645194.tif 000007
【図７】
0003645194.tif 000008
【図８】
0003645194.tif 000009
【図９】
0003645194.tif 000010
【図１０】
0003645194.tif 000011
【図１１】
0003645194.tif 000012
【図１２】
0003645194.tif 000013
【図１３】
0003645194.tif 000014
【図１４】
0003645194.tif 000015
【図１５】
0003645194.tif 000016
【図１６】
0003645194.tif 000017