(57)【要約】【課題】スキューを有する並列データを受信するために使用するクロックの位相を決定する方法を提供する。【解決手段】基準クロックの位相に対して同じか又は遅延する複数の遅延位相各々について、基準クロックと同期して送信される試験用並列データを、遅延位相を有する遅延クロックと遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとに同期して受信し、複数の遅延位相各々について遅延位相を有する遅延クロックで受信した並列データが正しく受信できたかを判定し且つ遅延位相を有する遅延クロックで受信した並列データと他の遅延位相を有する隣接遅延クロックで受信した並列データとが一致しているかを比較し、複数の遅延位相の中で試験用並列データが正しく受信され且つ比較した結果が一致する遅延位相を含む位相範囲を決定し、決定された位相範囲から並列データを受信するために使用する受信クロックの位相を決定する。【選択図】図７
2015056738.tif 000002
【特許請求の範囲】
【請求項１】
基準クロックの位相に対して同じか又は遅延する複数の遅延位相の各々について、前記基準クロックと同期して送信される試験用の並列データを、前記遅延位相を有する遅延クロックと、前記遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとに同期して受信し、
前記複数の遅延位相の各々について、前記遅延位相を有する遅延クロックで受信した並列データが正しく受信できたかを判定し、且つ、前記遅延位相を有する遅延クロックで受信した並列データと、前記他の遅延位相を有する隣接遅延クロックで受信した並列データとが一致しているか否かを比較し、
前記複数の遅延位相の中で、前記試験用の並列データが正しく受信されており、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定し、
決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する方法。
【請求項２】
前記位相範囲の端に位置する遅延位相を除いた範囲から、前記並列データを受信するために使用する前記受信クロックの位相を決定する請求項１に記載の方法。
【請求項３】
前記位相範囲の中間に位置する遅延位相を、前記並列データを受信するために使用する前記受信クロックの位相として決定する請求項１又は２に記載の方法。
【請求項４】
前記受信クロックを使用して受信される並列データは、基準クロックの立ち上がりと同期して送信される請求項１〜３の何れか一項に記載の方法。
【請求項５】
前記複数の遅延位相の各々について、巡回冗長検査法を用いて、前記遅延位相を有する遅延クロックで受信した並列データが、正しく受信できたかを判定する請求項１〜４の何れか一項に記載の方法。
【請求項６】
前記試験用の並列データは、１と０の間でデータが変化する位置が前記基準クロックの一周期の間にあるように構成されている請求項１〜５の何れか一項に記載の方法。
【請求項７】
基準クロックの位相に対して同じか又は遅延する複数の遅延位相の各々について、前記遅延位相を有する遅延クロックと、前記遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとを出力する遅延同期ループ部と、
前記基準クロックと同期して送信される試験用の並列データを、前記遅延同期ループ回路から出力される遅延クロックと同期して受信して記憶する第１記憶部と、
前記基準クロックと同期して送信される前記試験用の並列データを、前記遅延同期ループ回路から出力される隣接遅延クロックと同期して受信して記憶する第２記憶部と、
前記複数の遅延位相の各々について、前記第１記憶部に記憶された並列データが正しく受信できたかを判定し、判定した結果を出力する判定部と、
前記複数の遅延位相の各々について、前記第１記憶部に記憶されており、前記遅延クロックと同期して受信された並列データと、前記第２記憶部に記憶されており、前記隣接遅延クロックと同期して受信された並列データとが一致しているか否かを比較し、比較した結果を出力する比較部と、
判定した結果及び比較した結果を入力し、前記複数の遅延位相の中で、前記試験用の並列データが正しく受信され、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定し、決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する位相決定部と、
を備える受信回路。
【請求項８】
並列データは、ｎ個のビットデータを有し、
前記第１記憶部は、ｎ個の第１フリップフロップを有し、各第１フリップフロップは、入力した前記遅延クロックと同期して、１つのビットデータを入力して保持し、
前記第２記憶部は、ｎ個の第２フリップフロップを有し、各第２フリップフロップは、入力した前記隣接位相遅延クロックと同期して、１つのビットデータを入力して保持し、
前記比較部は、前記第１記憶部の第１フリップフロップが記憶するビットデータと、前記第２記憶部の第２フリップフロップが記憶する対応するビットデータとを比較する請求項７に記載の受信回路。
【請求項９】
前記位相決定部は、前記位相範囲の端に位置する遅延位相を除いた範囲から、前記並列データを受信するために使用する前記受信クロックの位相を決定する請求項７又は８に記載の受信回路。
【請求項１０】
前記位相決定部は、前記位相範囲の中間に位置する遅延位相を、前記並列データを受信するために使用する前記受信クロックの位相として決定する請求項７〜９の何れか一項に記載の受信回路。
【請求項１１】
基準クロックの位相に対して同じか又は遅延する複数の遅延位相の各々について、前記遅延位相を有する遅延クロックと、前記遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとを出力する遅延同期ループ部と、
前記基準クロックと同期して送信される試験用の並列データを、前記遅延同期ループ回路から出力される遅延クロックと同期して受信して記憶する第１記憶部と、
前記基準クロックと同期して送信される前記試験用の並列データを、前記遅延同期ループ回路から出力される隣接遅延クロックと同期して受信して記憶する第２記憶部と、
前記複数の遅延位相の各々について、前記第１記憶部に記憶された並列データが正しく受信できたかを判定し、判定した結果を出力する判定部と、
前記複数の遅延位相の各々について、前記第１記憶部に記憶されており、前記遅延クロックと同期して受信された並列データと、第２記憶部に記憶されており、前記隣接遅延クロックと同期して受信された並列データとが一致しているか否かを比較し、比較した結果を出力する比較部と、
判定した結果及び比較した結果を入力し、前記複数の遅延位相の中で、前記試験用の並列データが正しく受信され、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定し、決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する位相決定部と、
を備える受信回路を有する電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列データを受信するために使用するクロックの位相を決定する方法、受信回路及び電子装置に関する。
【背景技術】
【０００２】
従来、並列データを受信する受信回路が用いられている。
【０００３】
並列データは、各データを送信する送信回路を形成する回路素子又は各データを伝送する信号線の特性のばらつき等に起因して、各データが受信回路に到達する時間にずれ（スキュー）が生じる場合がある。
【０００４】
送信された並列データを受信する時には、各データを同期して受信可能なタイミングを有するクロックを用いることが好ましい。
【０００５】
そこで、並列データを受信する受信回路は、各データを同期して受信可能なクロックの位相を調整し、調整されたクロックを用いて並列データを受信する。
【０００６】
図１は、従来の受信回路を備えたデジタルカメラを示す図である。
【０００７】
デジタルカメラ１０１は、画像データを記憶するメモリーカード１２０と、メモリーカード１２０が送信する並列データを受信する受信回路１１０とを備える。また、デジタルカメラ１０１は、受信回路１１０を制御する主制御部１０２と、受信回路１１０が受信した並列データを記憶する主記憶部１０３とを備える。更に、デジタルカメラ１０１は、図示しない撮像部及び撮像した画像データをメモリーカード１２０に送信する送信回路を有する。
【０００８】
受信回路１１０は、主制御部１０２に制御されて、メモリーカード１２０が記憶する画像データを受信し、受信した画像データを主記憶部１０３に出力する。
【０００９】
図２に示すように、メモリーカード１２０は、受信回路１１０から送信される基準クロックに同期して、８本のデータ線Ｄ０〜７を介して、受信回路１１０に８ビットの並列データを同時に送信する。
【００１０】
一方、受信回路１１０がデータ線Ｄ０〜７を伝送されたデータを受信する時には、データ線Ｄ０を伝送したデータＮ−１、Ｎと、データ線Ｄ７を伝送したデータＮ−１、Ｎとの間にスキューが生じている。
【００１１】
そこで、受信回路１１０は、送信された並列データを同期して受信するために、試験用の並列データを用いて、各データを受信可能なタイミングを有する受信クロックを決定し、決定された受信クロックを用いて、画像データの受信を開始する。受信クロックは、各データに同期して受信可能なタイミングを有する受信可能期間に収まるように決定される。受信回路１１０は、試験用の並列データを用いて、受信クロックを決定した後に、画像データの受信を開始する。
【００１２】
次に、受信回路１１０が、受信クロックを決定する処理を、以下に説明する。
【００１３】
受信回路１１０は、基準クロックを生成する位相同期ループ回路であるＰＬＬ１１１を備える。ＰＬＬ１１１は、生成した基準クロックを、メモリーカード１２０に送信すると共にＤＬＬ１１２に出力する。
【００１４】
ＤＬＬ１１２は、ＰＬＬ１１１が生成した基準クロックを入力し、基準クロックに対して遅延する遅延位相を有する遅延クロックを生成する遅延同期ループ回路である。ＤＬＬ１１２は、図３に示すように、基準クロックと同じ位相（遅延位相０）、及び基準クロックの位相に対して、基準クロックの周期Ｔの１Ｔ／８〜７Ｔ／８だけ遅れた遅延位相を有する遅延クロックを生成する。８つの遅延クロックは、その位相差がＴ／８ずつ異なっている。
【００１５】
ＤＬＬ１１２は、生成した遅延クロックを記憶部１１３に出力する。記憶部１１３は、８個のフリップフロップ（ＦＦ０〜ＦＦ７）を有している。各ＦＦ０〜ＦＦ７は、８本のデータ線Ｄ０〜Ｄ７の内の１つと接続されており、ＤＬＬ１１２から入力する遅延クロックと同期して、メモリーカード１２０から送信される８ビットの並列データの内の１つのビットデータを入力して保持する。
【００１６】
ＤＬＬ制御部１１７は、主制御部１０２に制御されて、ＤＬＬ１１２が生成する遅延クロックの遅延位相を制御する。ＤＬＬ１１２は、ＤＬＬ制御部１１７に指示された遅延位相を有する遅延クロックを生成する。
【００１７】
また、ＤＬＬ制御部１１７は、メモリーカード１２０に対して、試験用の並列データ及び画像データの送信を命令する。試験用の並列データとして、例えば、巡回冗長検査符号を有するデータを用いることができる。
【００１８】
メモリーカード１２０は、ＤＬＬ制御部１１７から試験用の並列データの送信を求める命令を受信すると、試験用の並列データを、基準クロックに同期して、８本のデータ線を介して受信回路１１０に送信する。
【００１９】
受信回路１１０は、試験用の並列データを、遅延位相が異なる８つの遅延クロックそれぞれを用いて受信し、試験用の並列データを正しく受信できる遅延位相を含む位相範囲を決定する。そして、受信回路１１０は、決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する。
【００２０】
まず、ＤＬＬ制御部１１７は、基準クロックの位相に対して、基準クロックの位相と同じ位相の遅延位相を有する遅延クロックを生成するように、ＤＬＬ１１２に指示すると共に、メモリーカード１２０に対して、試験用の並列データの送信を指示する。
【００２１】
記憶部１１３は、ＤＬＬ１１２から入力する遅延クロックに同期して、試験用の並列データを受信して記憶する。具体的には、記憶部１１３のフリップフロップＦＦ０〜ＦＦ７は、遅延クロックに同期して、各１ビットのデータを受信及び保持した後、保持したデータを判定部１１５に出力する。
【００２２】
判定部１１５は、記憶部１１３から入力した試験用の並列データを、巡回冗長検査符号に基づいて検証して、正しく受信できか否かを判定し、判定した結果をＤＬＬ制御部１１７に出力する。
【００２３】
判定した結果を入力したＤＬＬ制御部１１７は、次に、基準クロックの位相に対して、１Ｔ／８だけ遅れた遅延位相を有する遅延クロックを生成するようにＤＬＬ１１２に指示すると共に、メモリーカード１２０に対して、試験用の並列データの送信を指示する。
【００２４】
受信回路１１０は、上述した処理を繰り返して、試験用の並列データを正しく受信できる遅延位相を含む位相範囲を決定する。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開平６−２２４９６２号公報
【特許文献２】特開２００６−５０１０２号公報
【特許文献３】特開２００３−２２４５５１号公報
【特許文献４】特開２００８−２３５９８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
試験用の並列データを、遅延位相が異なる８つの遅延クロックそれぞれを用いて受信した結果、全ての遅延位相（０〜７Ｔ／８）を有する遅延クロックを用いて、試験用の並列データが正しく受信できたとする。
【００２７】
この場合には、図４に示すように、試験用の並列データを正しく受信できる遅延位相を含む位相範囲は、８つの遅延位相（０〜７Ｔ／８）の全てを含むことになる。並列データを受信するために使用する受信クロックの位相は、通常、位相範囲の中間の値を有する位相を選択することが、安定な受信をする上で好ましい。この場合には、中間の値を有する遅延位相３Ｔ／８又は遅延位相４Ｔ／８が、受信クロックの位相として選択され得る。
【００２８】
ここで、図４に示すように、データＮ−１からデータＮに変化する位置(スキュー）が、遅延位相の間隔Ｔ／８よりも短く、このスキューの位置が、例えば、遅延位相３Ｔ／８と遅延位相４Ｔ／８との間に位置していたとする。
【００２９】
このように、スキューの位置が、遅延位相３Ｔ／８と遅延位相４Ｔ／８との間に位置していても、遅延位相３Ｔ／８を有する遅延クロック、及び遅延位相４Ｔ／８を有する遅延クロックにおいて、試験用の並列データが正しく受信される場合がある。
【００３０】
遅延位相３Ｔ／８又は遅延位相４Ｔ／８を選択すると、ＦＦ０〜ＦＦ７のセットアップタイム又はホールドタイムと重なるタイミングでデータを受信して、並列データを正しく受信できなくなるおそれがある。
【００３１】
従って、受信クロックの位相として、遅延位相３Ｔ／８又は遅延位相４Ｔ／８を選択することは、本来は除外すべき遅延位相を選択したことになる。
【００３２】
そこで、本明細書では、スキューを有する並列データを受信するために使用するクロックの位相を決定する方法を提供することを課題とする。
【００３３】
また、本明細書では、そのようなスキューを有する並列データを受信するために使用するクロックの位相を決定する方法を実行する受信回路を提供することを課題とする。
【００３４】
更に、本明細書では、そのようなスキューを有する並列データを受信するために使用するクロックの位相を決定する方法を実行する受信回路を備えた電子装置を提供することを課題とする。
【課題を解決するための手段】
【００３５】
本明細書に開示する並列データを受信するために使用するクロックの位相を決定する方法の一形態によれば、基準クロックの位相に対して同じか又は遅延する複数の遅延位相の各々について、上記基準クロックと同期して送信される試験用の並列データを、上記遅延位相を有する遅延クロックと、上記遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとに同期して受信し、上記複数の遅延位相の各々について、上記遅延位相を有する遅延クロックで受信した並列データが正しく受信できたかを判定し、且つ、上記遅延位相を有する遅延クロックで受信した並列データと、上記他の遅延位相を有する隣接遅延クロックで受信した並列データとが一致しているか否かを比較し、上記複数の遅延位相の中で、上記試験用の並列データが正しく受信されており、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定し、決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する。
【００３６】
また、本明細書に開示する受信回路の一形態によれば、基準クロックの位相に対して同じか又は遅延する複数の遅延位相の各々について、上記遅延位相を有する遅延クロックと、上記遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとを出力する遅延同期ループ部と、上記基準クロックと同期して送信される試験用の並列データを、上記遅延同期ループ回路から出力される遅延クロックと同期して受信して記憶する第１記憶部と、上記基準クロックと同期して送信される上記試験用の並列データを、上記遅延同期ループ回路から出力される隣接遅延クロックと同期して受信して記憶する第２記憶部と、上記複数の遅延位相の各々について、上記第１記憶部に記憶された並列データが正しく受信できたかを判定し、判定した結果を出力する判定部と、上記複数の遅延位相の各々について、上記第１記憶部に記憶されており、上記遅延クロックと同期して受信された並列データと、上記第２記憶部に記憶されており、上記隣接遅延クロックと同期して受信された並列データとが一致しているか否かを比較し、比較した結果を出力する比較部と、判定した結果及び比較した結果を入力し、上記複数の遅延位相の中で、上記試験用の並列データが正しく受信され、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定し、決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する位相決定部と、を備える。
【００３７】
更に、本明細書に開示する電子装置の一形態によれば、基準クロックの位相に対して同じか又は遅延する複数の遅延位相の各々について、上記遅延位相を有する遅延クロックと、上記遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとを出力する遅延同期ループ部と、上記基準クロックと同期して送信される試験用の並列データを、上記遅延同期ループ回路から出力される遅延クロックと同期して受信して記憶する第１記憶部と、上記基準クロックと同期して送信される上記試験用の並列データを、上記遅延同期ループ回路から出力される隣接遅延クロックと同期して受信して記憶する第２記憶部と、上記複数の遅延位相の各々について、上記第１記憶部に記憶された並列データが正しく受信できたかを判定し、判定した結果を出力する判定部と、上記複数の遅延位相の各々について、上記第１記憶部に記憶されており、上記遅延クロックと同期して受信された並列データと、第２記憶部に記憶されており、上記隣接遅延クロックと同期して受信された並列データとが一致しているか否かを比較し、比較した結果を出力する比較部と、判定した結果及び比較した結果を入力し、上記複数の遅延位相の中で、上記試験用の並列データが正しく受信され、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定し、決定された位相範囲から、並列データを受信するために使用する受信クロックの位相を決定する位相決定部と、を備える受信回路を有する。
【発明の効果】
【００３８】
上述した本明細書に開示する方法の一形態によれば、スキューを有する並列データを受信できる。
【００３９】
また、上述した本明細書に開示する受信回路の一形態によれば、スキューを有する並列データを受信できる。
【００４０】
更に、上述した本明細書に開示する電子装置の一形態によれば、スキューを有する並列データを受信できる。
【００４１】
本発明の目的及び効果は、特に請求項において指摘される構成要素及び組み合わせを用いることによって認識され且つ得られるだろう。
【００４２】
前述の一般的な説明及び後述の詳細な説明の両方は、例示的及び説明的なものであり、特許請求の範囲に記載されている本発明を制限するものではない。
【図面の簡単な説明】
【００４３】
【図１】従来のデジタルカメラを示す図である。
【図２】スキューを有する並列データを説明する図である。
【図３】ＤＬＬが出力する遅延クロックを説明する図である。
【図４】従来の受信回路により決定された位相範囲を説明する図である。
【図５】本明細書に開示するデジタルカメラの一実施形態を示す図である。
【図６】試験用の並列データを説明する図である。
【図７】受信回路の動作を説明するフローチャートである。
【図８】試験用の並列データを第１記憶部及び第２記憶部で受信するタイミングチャートを示す図である。
【図９】遅延クロックで受信した並列データと、隣接遅延クロックで受信した並列データとを比較する処理を説明する図である。
【図１０】位相範囲及び受信位相を決定する処理を説明する図（その１）である。
【図１１】位相範囲及び受信位相を決定する処理を説明する図（その２）である。
【図１２】位相範囲及び受信位相を決定する処理を説明する図（その３）である。
【発明を実施するための形態】
【００４４】
以下、本明細書で開示する電子装置の好ましい実施形態を、図を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【００４５】
図５は、本明細書に開示するデジタルカメラの一実施形態を示す図である。
【００４６】
本実施形態の電子装置であるデジタルカメラ１は、画像データを記憶するメモリーカード２０と、メモリーカード２０が送信する並列データを受信する受信回路１０とを備える。また、デジタルカメラ１は、受信回路１０を制御する主制御部２と、受信回路１０が受信した並列データを記憶する主記憶部３とを備える。更に、デジタルカメラ１は、図示しない撮像部及び撮像した画像データをメモリーカード２０に送信する送信回路を有する。
【００４７】
受信回路１０は、主制御部２に制御されて、メモリーカード２０が記憶する画像データを受信し、受信した画像データを主記憶部３に出力する。
【００４８】
メモリーカード２０は、受信回路１０から画像データの送信を求める命令を受信すると、受信回路１０から送信される基準クロックに同期して、画像データである８ビットの並列データを、８本のデータ線Ｄ０〜Ｄ７を介して、受信回路１０に送信する。
【００４９】
受信回路１０は、メモリーカード２０から送信された並列データを同期して受信するために、試験用の並列データを用いて、各データを受信可能なタイミングを有する受信クロックを決定し、決定された受信クロックを用いて、画像データの受信をする。
【００５０】
受信回路１０は、受信クロックを決定するために、以下に説明する構成を有する。
【００５１】
受信回路１０は、基準クロックを生成する位相同期ループ回路であるＰＬＬ１１と、基準クロックを入力し、遅延クロック及び隣接遅延クロックを生成する遅延同期ループ回路であるＤＬＬ１２と、ＤＬＬ１２を制御するＤＬＬ制御部１７を有する。ＤＬＬ制御部１７は、主制御部２によって制御される。
【００５２】
ＤＬＬ１２は、基準クロックの位相に対して遅れた２相のクロックを生成する。具体的には、ＤＬＬ１２は、基準クロックの位相に対して同じか又は遅延する複数の遅延位相を有する遅延クロックと、遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとを出力する。
【００５３】
ＤＬＬ１２は、例えば、遅延素子のセットと、セット内の遅延素子を選択するセレクタとを、２つずつ用いて、遅延する２相のクロックを生成するように形成することができる。
【００５４】
また、受信回路１０は、第１記憶部１３及び第２記憶部１４を有する。
【００５５】
第１記憶部１３は、８個のフリップフロップ（第１ＦＦ０〜第１ＦＦ７）を有する。各第１ＦＦ０〜第１ＦＦ７は、８本のデータ線Ｄ０〜Ｄ７の内の１つと接続しており、ＤＬＬ１２から入力する遅延クロックと同期して、メモリーカード２０から送信される８ビットの並列データの内の１つのビットデータを入力して保持する。
【００５６】
第２記憶部１４も、第１記憶部１３と同様に、８個のフリップフロップ（第２ＦＦ０〜第２ＦＦ７）を有している。各第２ＦＦ０〜第２ＦＦ７は、８本のデータ線Ｄ０〜Ｄ７の内の１つと接続されており、ＤＬＬ１２から入力する隣接遅延クロックと同期して、メモリーカード２０から送信される８ビットの並列データの内の１つのビットデータを入力して保持する。
【００５７】
８個の第１ＦＦ０〜第１ＦＦ７は、８個の第２ＦＦ０〜第２ＦＦ７と対応している。第１ＦＦ０及び第２ＦＦ０は、データ線Ｄ０と接続しており、データ線Ｄ０を介して送信されるデータを受信して保持する。同様に、第１ＦＦ１〜第１ＦＦ７と第２ＦＦ１〜第２ＦＦ７は、データ線Ｄ２〜Ｄ７と接続しており、データ線Ｄ２〜Ｄ７を介して送信されるデータを受信して保持する。
【００５８】
更に、受信回路１０は、判定部１５及び比較部１６を有する。
【００５９】
判定部１５は、第１記憶部１３に記憶された並列データが正しく受信できたかを判定し、判定した結果を、ＤＬＬ制御部１７に出力する。具体的には、判定部１５は、巡回冗長検査法を用いて、各遅延位相を有する遅延クロックで受信した並列データが、正しく受信できたかを判定する。
【００６０】
比較部１６は、第１記憶部１３に記憶されており、一の遅延クロックと同期して受信された並列データと、第２記憶部１４に記憶されており、一の遅延クロックに隣接する遅延位相を有する隣接遅延クロックと同期して受信された並列データとが一致しているか否かを比較し、比較した結果をＤＬＬ制御部１７に出力する。
【００６１】
ＤＬＬ制御部１７は、入力された判定した結果及び比較した結果に基づいて、並列データが正しく受信され且つ比較した結果が一致している遅延位相を含む位相範囲を決定する。そして、ＤＬＬ制御部１７は、決定された位相範囲から、並列データを受信するために使用する受信クロックの受信位相を決定する。
【００６２】
ＤＬＬ制御部１７は、ハードウェアを用いて形成しても良いし、又は、プログラムを実行する演算回路を用いて形成しても良い。
【００６３】
図６は、試験用の並列データを説明する図である。
【００６４】
メモリーカード２０は、データ線Ｄ０〜Ｄ７を用いて、試験用の並列データを受信回路１０に送信する。各データ線Ｄ０〜Ｄ７に送信されるデータブロックは、スタートビットＳと、試験用のデータと、巡回冗長検査符号であるＣＲＣ符号と、エンドビットＥを有する。
【００６５】
試験用のデータは、１及び０が並んだビット列であり、全てが１又は全てが０とはなっていないことが好ましい。隣接するデータ線に送信される試験用のデータは、１と１又は０と０又は１と０とが並んで送信されるようになっている。ＣＲＣ符号としては、例えば、ＣＲＣ１６等を用いることができる。試験用の並列データは、１と０の間でデータが変化する位置が基準クロックの一周期の間にあるように構成されていることが好ましい。
【００６６】
次に、上述したデジタルカメラ１の受信回路１０が受信クロックの受信位相を決定する動作を、図７に示すフローチャートを参照して、以下に説明する。
【００６７】
ステップＳ１０〜ステップＳ１８の間において、全ての遅延位相を有する遅延クロックを用いて、ステップＳ１２〜ステップＳ１６の処理が行われる。
【００６８】
まず、ステップＳ１２において、メモリーカード２０が基準クロックと同期して送信する試験用の並列データを、受信回路１０が、遅延クロックと、隣接遅延クロックとに同期して受信する。
【００６９】
主制御部２に制御されるＤＬＬ制御部１７は、基準クロックの位相に対して、基準クロックの位相と同じ位相である遅延位相を有する遅延クロックを生成するように、ＤＬＬ１２に指示すると共に、メモリーカード２０に対して試験用の並列データの送信を指示する。
【００７０】
図８に示すように、メモリーカード２０は、ＤＬＬ制御部１７から試験用の並列データの送信を求める命令を受信すると、試験用の並列データを、基準クロックの立ち上がりと同期して、８本のデータ線Ｄ０〜Ｄ７を介して受信回路１０に送信する。図８では、８本のデータ線Ｄ０〜Ｄ７を介して送信される試験用の並列データを、データブロック０〜７と示している。即ち、データブロック０〜７は、基準クロックの立ち上がりと同期して、受信回路１０に送信される。
【００７１】
図９に示すように、ＤＬＬ１２は、基準クロックの位相に対して０〜７Ｔ／８だけ遅れた８つの遅延位相を有する遅延クロックを生成し、生成した遅延クロックを第１記憶部１３に出力する。８つの遅延クロックは、その位相差がＴ／８ずつ異なっている。ここで、基準クロックは周期Ｔを有する。
【００７２】
また、ＤＬＬ１２は、遅延クロックが有する遅延位相に対して位相差がＴ／８遅れた遅延位相を有する隣接遅延クロックを生成して、第２記憶部１４に出力する。隣接遅延クロックは、基準クロックの位相に対して１Ｔ／８〜８Ｔ／８だけ遅れた位相を有する。
【００７３】
即ち、遅延クロックが基準クロックに対して位相差が０である遅延位相を有する時には、この遅延クロックに隣接する隣接遅延クロックが有する遅延位相は、基準クロックに対して位相が１Ｔ／８だけ遅れている。
【００７４】
同様に、遅延クロックが基準クロックに対して位相差が１Ｔ／８である遅延位相を有する時には、この遅延クロックに隣接する隣接遅延クロックが有する遅延位相は、基準クロックに対して位相が２Ｔ／８だけ遅れている。
【００７５】
また、遅延クロックが基準クロックに対して位相差が７Ｔ／８である遅延位相を有する時には、この遅延クロックに隣接する隣接遅延クロックが有する遅延位相は、基準クロックに対して位相が８Ｔ／８＝（Ｔ）だけ遅れている。他の隣接遅延クロックの遅延位相も同様である。
【００７６】
図８に示すように、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７は、ＤＬＬ１２から入力する遅延クロックと同期して、データ線Ｄ０〜Ｄ７から送信される１つのビットデータを入力して保持する。そして、図５に示すように、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７は、保持するデータを、判定部１５及び比較部１６に出力する。
【００７７】
また、図８に示すように、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７は、ＤＬＬ１２から入力する隣接遅延クロックと同期して、データ線Ｄ０〜Ｄ７から送信される１つのビットデータを入力して保持する。そして、図５に示すように、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７は、保持するデータを、比較部１６に出力する。
【００７８】
次に、ステップＳ１４において、比較部１６は、遅延クロックで受信した並列データと、隣接遅延クロックで受信した並列データとが一致しているか否かを比較する。
【００７９】
比較部１６には、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７に保持されている各データが入力される。同時に、比較部１６には、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７に保持されている各データが入力される。
【００８０】
そして、比較部１６は、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７に保持されていた各データと、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７に保持されていた対応する各データとが一致しているか否かを比較し、比較した結果をＤＬＬ制御部１７に出力する。
【００８１】
具体的には、比較部１６は、第１ＦＦ０が保持するデータと、対応する第２ＦＦ０が保持するデータとが一致しているか否かを比較する。同様に、比較部１６は、第１ＦＦ１〜第１ＦＦ７が保持するデータと、対応する第２ＦＦ１〜第２ＦＦ７が保持するデータとが一致しているか否かを比較する。比較部１６は、他のデータ同士も同様に比較する。
【００８２】
図９に示す例では、メモリーカード２０は、試験用の並列データ０と、データ１を順番に受信回路１０に送信している。データ０は、データ１の前に送信される。ここで、データ０は、８ビットの並列データが全て１であるとする。また、データ１は、８ビットの並列データが全て０であるとする。そして、データ０がデータ１に変化する位置が、遅延位相３Ｔ／８と遅延位相４Ｔ／８との間にあるとする。
【００８３】
遅延位相０を有する遅延クロックと同期してデータを受信する第１記憶部１３の第１ＦＦ０〜第１ＦＦ７は、データ０を受信する。また、遅延位相０を有する遅延クロックの隣接遅延クロックと同期してデータを受信する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７も、データ０を受信する。従って、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータは１（データ０）であり、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータも１（データ０）であり、両者は一致する。そこで、比較部１６は、両者が一致したという比較した結果をＤＬＬ制御部１７に出力する。ＤＬＬ制御部１７は、入力した比較した結果を記憶する。
【００８４】
比較部１６は、遅延位相０を有する遅延クロックを用いて受信される、メモリーカード２０から送信される全ての試験用のデータに対して、第１ＦＦ０が保持するデータと、対応する第２ＦＦ０が保持するデータとが一致しているか否かを比較する。
【００８５】
比較部１６は、第２記憶部１４に試験用のデータが保持されたタイミングから、第１記憶部１３に次の試験用のデータが保持されるタイミングまでの間に、第２記憶部１４のデータと第１記憶部１３のデータとを比較する。具体的には、比較部１６は、試験用のデータの要求後から試験用のデータの受信完了（エンドビット検知）までの間、第１記憶部１３の第１ＦＦ０の保持データと第２記憶部１４の第２ＦＦ０の保持データの間の比較を、例えば、基準クロックである遅延位相０クロックによって行っても良い。
【００８６】
次に、ステップＳ１６において、判定部１５は、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が受信した並列データが正しく受信できたか否かを判定する。具体的には、判定部１５は、データ線Ｄ０を伝送して、第１ＦＦ０が受信した試験用のデータを、試験用のデータに続いて伝送されたＣＲＣ符号に基づいて検証して、試験用のデータが正しく受信できた否かを判定する。同様に、判定部は、データ線Ｄ１〜Ｄ７を伝送した試験用のデータが正しく受信できた否かを判定する。そして、判定部１５は、判定した結果をＤＬＬ制御部１７に出力する。ＤＬＬ制御部１７は、入力した判定した結果を記憶する。
【００８７】
なお、ＣＲＣ符号が正しく受信できない場合には、試験用のデータが正しく受信出来ていても、データが正しく受信できないと判定される。
【００８８】
次に、ステップＳ１８に進んで、残りの遅延位相１Ｔ／８〜７Ｔ／８を有する遅延クロックを用いて、ステップＳ１２〜ステップＳ１６の処理が繰り返される。
【００８９】
次に、ステップＳ１４で繰り返される処理について、図９を参照して、更に説明する。
【００９０】
ステップＳ１４において、遅延位相１Ｔ／８を有する遅延クロック及び遅延位相２Ｔ／８を有する遅延クロックと同期してデータを受信する第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータは、それぞれの隣接遅延クロックと同期してデータを受信する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータと同じになる。
【００９１】
次に、遅延位相３Ｔ／８を有する遅延クロックと同期してデータを受信する第１記憶部１３の第１ＦＦ０〜第１ＦＦ７は、データ０を受信する。しかし、遅延位相３Ｔ／８を有する遅延クロックの隣接遅延クロックと同期してデータを受信する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７は、データ１を受信する。従って、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータは１であるが、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータは０であり、両者は一致しない。そこで、比較部１６は、両者が一致しないという比較した結果をＤＬＬ制御部１７に出力する。ＤＬＬ制御部１７は、入力した比較した結果を記憶する。
【００９２】
次ぎに、遅延位相４Ｔ／８を有する遅延クロックと同期してデータを受信する第１記憶部１３の第１ＦＦ０〜第１ＦＦ７は、データ１を受信する。また、遅延位相４Ｔ／８を有する遅延クロックの隣接遅延クロックと同期してデータを受信する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７も、データ１を受信する。従って、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータは０であり、第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータも０であり、両者は一致する。そこで、比較部１６は、両者が一致する比較結果をＤＬＬ制御部１７に出力する。
【００９３】
同様に、遅延位相５Ｔ／８〜７Ｔ／８を有する遅延クロックと同期してデータを受信する第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータは、それぞれの隣接遅延クロックと同期してデータを受信する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータと同じになる。
【００９４】
なお、図９に示す例では、データ０は、８ビットの並列データが全て１であり、データ１は、８ビットの並列データが全て０であった。実際には、８ビットの並列データは、全てが１ではなく、また、全てが０ではない場合もある。しかし、比較部１６が、第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータそれぞれを、対応する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータと比較することには変わりはない。そして、データ線Ｄ０〜Ｄ７の内の何れかで伝送されたビットデータについて、第１記憶部１３と第２記憶部１４との間で一致しない比較した結果を入力したＤＬＬ制御部１７は、その遅延位相では、遅延クロックで受信した並列データと、隣接遅延クロックで受信した並列データとが一致しないと記憶する。
【００９５】
次に、ステップＳ２０において、ＤＬＬ制御部１７は、並列データが正しく受信されており、且つ、比較した結果が一致している遅延位相を含む位相範囲を決定する。
【００９６】
具体的には、図１０に示すように、ＤＬＬ制御部１７は、判定した結果に基づいて、各遅延位相に対してフラグＡをたてる。
【００９７】
ＤＬＬ制御部１７は、一の遅延位相を有する遅延クロックを用いて受信した全ての試験用の並列データが正しく受信できた場合には、その遅延位相に対してフラグＡとして１をたてる。一方、そうでなければ、その遅延位相に対してフラグＡとして０をたてる。
【００９８】
図１０に示す例では、全ての遅延位相に対して、フラグＡは１となっている。
【００９９】
また、図１０に示すように、ＤＬＬ制御部１７は、比較した結果に基づいて、各遅延位相に対してフラグＢをたてる。
【０１００】
ＤＬＬ制御部１７は、一の遅延位相を有する遅延クロックを用いて試験用の並列データを受信する際に、何れかのビットデータにおいて、一致しない比較した結果がある場合には、その遅延位相に対してフラグＢとして０をたてる。一方、そうでなければ、その遅延位相に対してフラグＢとして１をたてる。
【０１０１】
図９を参照して、上述したように、遅延位相３Ｔ／８を有する遅延クロックと同期してデータを受信する第１記憶部１３の第１ＦＦ０〜第１ＦＦ７が保持するデータは、隣接遅延クロックと同期してデータを受信する第２記憶部１４の第２ＦＦ０〜第２ＦＦ７が保持するデータと一致しない。従って、図１０に示す例では、遅延位相３Ｔ／８に対して、フラグＢは０となっている。
【０１０２】
また、本実施形態では、フラグＢが０となる遅延位相に隣接する遅延位相４Ｔ／８に対しても、フラグＢとして０をたてる。
【０１０３】
従って、図１０に示す例では、遅延位相３Ｔ／８及び４Ｔ／８に対して、フラグＢは０となっている。
【０１０４】
そして、ＤＬＬ制御部１７は、各遅延位相に対して、フラグＡとフラグＢとの論理積をとったフラグＣを求める。フラグＣとして１を有する遅延位相は、並列データが正しく受信されており、且つ、比較した結果が一致している。
【０１０５】
そして、ＤＬＬ制御部１７は、フラグＣとして１を有する遅延位相を含む位相範囲Ａを決定する。位相範囲Ａは、遅延位相０、１Ｔ／８、２Ｔ／８、５Ｔ／８、６Ｔ／８及び７Ｔ／８を含む。
【０１０６】
次に、ステップＳ２２において、ＤＬＬ制御部１７は、決定された位相範囲Ａから、並列データを受信するために使用する受信クロックの受信位相を決定する。
【０１０７】
具体的には、ＤＬＬ制御部１７は、位相範囲Ａの端に位置する遅延位相を除いた位相範囲Ｂから、並列データを受信するために使用する受信クロックの受信位相を決定することができる。位相範囲Ｂは、遅延位相０、１Ｔ／８、６Ｔ／８及び７Ｔ／８を含む。位相範囲Ａの両端に位置する遅延位相を除くことにより、スキューに対して余裕のあるタイミングでデータを受信することができる。
【０１０８】
また、ＤＬＬ制御部１７は、位相範囲Ａの中間に位置する遅延位相０及び７Ｔ／８を、並列データを受信するために使用するクロックの受信位相として決定することができる。位相範囲Ａの中間に位置する遅延位相を有する受信クロックを用いることにより、更にスキューに対して余裕のあるタイミングでデータを受信することができる。
【０１０９】
そして、本実施形態では、位相範囲Ａの中間に位置する遅延位相０及び７Ｔ／８の内、小さい値を有する遅延位相０を受信クロックの受信位相として決定する。ＤＬＬ制御部１７は、受信クロックの受信位相が決定されたことを主制御部２に出力する。主制御部２は、メモリーカード２０から画像データを受信することを、ＤＬＬ制御部１７に指示する。また、主制御部２は、主記憶部３に対して、受信回路１０から画像データを受信することを指示する。
【０１１０】
次に、ステップＳ２４において、受信回路１０は、決定した受信クロックを用いて、画像データの受信を開始する。受信回路１０は、受信した画像データを主記憶部３に出力し、主記憶部３は、入力した画像データを記憶する。
【０１１１】
次に、ＤＬＬ制御部１７が、位相範囲及び受信位相を決定する他の例を、図１１及び図１２を参照して、以下に説明する。
【０１１２】
図１１に示す例では、遅延位相０、１Ｔ／８、２Ｔ／８、３Ｔ／８、６Ｔ／８及び７Ｔ／８に対して、フラグＡは１となっている。また、図１１に示す例では、遅延位相０及び７Ｔ／８に対して、フラグＢは０となっている。
【０１１３】
従って、フラグＣとして１を有する遅延位相は、１Ｔ／８、２Ｔ／８、３Ｔ／８及び６Ｔ／８となり、位相範囲Ａは、遅延位相１Ｔ／８、２Ｔ／８、３Ｔ／８及び６Ｔ／８を含むことになる。
【０１１４】
この場合、位相範囲Ａの端に位置する遅延位相を除いた位相範囲Ｂは、２Ｔ／８を含む。
【０１１５】
また、位相範囲Ａの中間に位置する遅延位相も２Ｔ／８となる。
【０１１６】
図１１に示す例では、遅延位相２Ｔ／８を受信位相として決定できる。
【０１１７】
次に、図１２に示す例では、遅延位相０、１Ｔ／８、２Ｔ／８、３Ｔ／８、４Ｔ／８、５Ｔ／８及び６Ｔ／８に対して、フラグＡは１となっている。また、図１２に示す例では、遅延位相０及び１Ｔ／８に対して、フラグＢは０となっている。
【０１１８】
従って、フラグＣとして１を有する遅延位相は、２Ｔ／８、３Ｔ／８、４Ｔ／８、５Ｔ／８及び６Ｔ／８となり、位相範囲Ａは、遅延位相２Ｔ／８、３Ｔ／８、４Ｔ／８、５Ｔ／８及び６Ｔ／８を含むことになる。
【０１１９】
この場合、位相範囲Ａの端に位置する遅延位相を除いた位相範囲Ｂは、３Ｔ／８、４Ｔ／８、５Ｔ／８を含む。
【０１２０】
また、位相範囲Ａの中間に位置する遅延位相は、４Ｔ／８となる。
【０１２１】
図１２に示す例では、遅延位相４Ｔ／８を受信位相として決定できる。
【０１２２】
上述した本実施形態の電子装置によれば、並列データが正しく受信されており且つ比較した結果が一致している遅延位相を含む位相範囲から、並列データを受信するために使用する受信クロックの受信位相を決定するので、スキューを有する並列データを受信できる。
【０１２３】
ところで、スキューを有する並列データを受信する方法として、ＤＬＬが生成する遅延クロックが有する遅延位相の間隔を短くすることが考えられる。例えば、遅延位相の間隔を、Ｔ／８からＴ／１６に短くすることがある。しかし、遅延位相の間隔を短くすることは、ＤＬＬを含む受信回路の回路構成を複雑にする問題が生じる。
【０１２４】
一方、本実施形態に開示する受信回路は、遅延位相の間隔を短くすることなく、スキューを有する並列データを受信することができる。
【０１２５】
本発明では、上述した実施形態の並列データを受信するために使用するクロックの位相を決定する方法、受信回路及び電子装置は、本発明の趣旨を逸脱しない限り適宜変更が可能である。また、一の実施形態が有する構成要件は、他の実施形態にも適宜適用することができる。
【０１２６】
例えば、上述した実施形態では、遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとして、遅延クロックが有する遅延位相に対して、位相が遅れた隣接する他の遅延位相を有するクロックを用いていた。遅延クロックが有する遅延位相に隣接する他の遅延位相を有する隣接遅延クロックとして、遅延クロックが有する遅延位相に対して、位相が進んだ隣接する他の遅延位相を有するクロックを用いても良い。
【０１２７】
また、上述した実施形態では、判定部は、巡回冗長検査法を用いて、各遅延位相を有する遅延クロックで受信した並列データが、正しく受信できたかを判定していたが、他の判定法を用いても良い。
【０１２８】
また、上述した実施形態では、受信回路が、デジタルカメラに備えられていたが、受信回路は、他の電子装置に備えられていても良い。
【０１２９】
ここで述べられた全ての例及び条件付きの言葉は、読者が、発明者によって寄与された発明及び概念を技術を深めて理解することを助けるための教育的な目的を意図する。ここで述べられた全ての例及び条件付きの言葉は、そのような具体的に述べられた例及び条件に限定されることなく解釈されるべきである。また、明細書のそのような例示の機構は、本発明の優越性及び劣等性を示すこととは関係しない。本発明の実施形態は詳細に説明されているが、その様々な変更、置き換え又は修正が本発明の精神及び範囲を逸脱しない限り行われ得ることが理解されるべきである。
【符号の説明】
【０１３０】
１    デジタルカメラ（電子装置）
２    主制御部
３    主記憶部
１０    受信回路
１１    ＰＬＬ
１２    ＤＬＬ（遅延同期ループ部）
１３    第１フリップフロップ（第１記憶部）
１４    第２フリップフロップ（第２記憶部）
１５    判定部
１６    比較部
１７    ＤＬＬ制御部（位相決定部）
２０    メモリーカード
【図１】
2015056738.tif 000003
【図２】
2015056738.tif 000004
【図３】
2015056738.tif 000005
【図４】
2015056738.tif 000006
【図５】
2015056738.tif 000007
【図６】
2015056738.tif 000008
【図７】
2015056738.tif 000009
【図８】
2015056738.tif 000010
【図９】
2015056738.tif 000011
【図１０】
2015056738.tif 000012
【図１１】
2015056738.tif 000013
【図１２】
2015056738.tif 000014