以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面のPLL回路(例えば、図5のデジタルPLL112a、図6のデジタルPLL112b、図25のデジタルPLL112c、または、図28のデジタルPLL112d)は、第1に、PSK(Phase Shift Keying)変調されたデジタル信号であるPSK変調信号(例えば、信号DATA)と等しい周波数の第1のクロック信号(例えば、信号sin(wt))、および、前記第1のクロック信号とπ/2だけ位相が異なる第2のクロック信号(例えば、信号cos(wt))を生成するクロック信号生成手段(例えば、図5、図6、図25または図28の分周器131)と、前記PSK変調信号の1周期または1/2周期の長さの期間である算出期間ごとに、前記第1のクロック信号および前記第2のクロック信号の位相を仮想的に制御する角度である制御角だけ前記第1のクロック信号を移相させた信号と前記PSK変調信号との位相を前記算出期間において比較した結果を示す第1の位相比較結果(例えば、値ΣV11)を、前記制御角の余弦に対応する第1のパラメータ(例えば、cos_para)、前記PSK変調信号、および、前記第1のクロック信号を乗じた第1の乗算値と、前記制御角の正弦に対応する第2のパラメータ(例えば、sin_para)、前記PSK変調信号、および、前記第2のクロック信号を乗じた第2の乗算値との和を前記算出期間にわたって累積加算することにより算出し、前記制御角だけ前記第2のクロック信号を移相させた信号と前記PSK変調信号との位相を前記算出期間において比較した結果を示す第2の位相比較結果(例えば、値ΣV12)を、前記第2のパラメータ、前記PSK変調信号、および、前記第1のクロック信号を乗じた第3の乗算値の符号を反転した値と、前記第1のパラメータ、前記PSK変調信号、および、前記第2のクロック信号を乗じた第4の乗算値との和を前記算出期間にわたって累積加算することにより算出する算出手段(例えば、図5のExor回路132a,132b、乗算器133a−1乃至133b−2、加算器134a,134b、および、LPF135a,135b、図6のExor回路132a,132b、乗算器133a−1乃至133b−2、LPF161a−1乃至161b−2、および、加算器162a,162b、図25のExor回路132a,132b、乗算器133a−1乃至133b−2、LPF311a−1乃至311b−4、および、加算器162a,162b、または、図28のExor回路132a,132b、乗算器133a−1乃至133b−2、LPF311a−1乃至311b−4、および、加算器162a,162b)と、前記第1の位相比較結果および前記第2の位相比較結果に基づいて、前記制御角を仮想的に制御する制御方向を設定する制御方向設定手段(例えば、図7または図29の制御方向検出部181)と、前記制御方向に仮想的に制御された前記制御角に基づいて、前記第1のパラメータおよび前記第2のパラメータの値を制御するパラメータ制御手段(例えば、図7または図29のパラメータ制御部183)と、前記制御方向に仮想的に制御された前記制御角に基づいて、前記PSK変調信号からデータを読み出すタイミングを制御する読み出し制御手段(例えば、図7の読み出しタイミング制御部184、または、図29の読み出しタイミング制御部371)とを備える。
本発明の第1の側面のPLL回路は、第2に、前記算出手段は、前記第1乃至前記第4の乗算値を算出する乗算手段(例えば、図25または図28のExor回路132a,132b、乗算器133a−1乃至133b−2)と、前記算出期間ごとに交互に繰り返される第1の期間および第2の期間のうち前記第1の期間において、前記第1の乗算値を前記算出期間にわたって累積加算した第1の累積加算値を算出する第1の累積加算手段(例えば、図25または図28のLPF311a−1)と、前記第2の期間において、前記第1の累積加算値を算出する第2の累積加算手段(例えば、図25または図28のLPF311a−3)と、前記第1の期間において、前記第2の乗算値を前記算出期間にわたって累積加算した第2の累積加算値を算出する第3の累積加算手段(例えば、図25または図28のLPF311a−2)と、前記第2の期間において、前記第2の累積加算値を算出する第4の累積加算手段(例えば、図25または図28のLPF311a−4)と、前記第1の期間において、前記第3の乗算値を前記算出期間にわたって累積加算した第3の累積加算値を算出する第5の累積加算手段(例えば、図25または図28のLPF311b−1)と、前記第2の期間において、前記第3の累積加算値を算出する第6の累積加算手段(例えば、図25または図28のLPF311b−3)と、前記第1の期間において、前記第4の乗算値を前記算出期間にわたって累積加算した第4の累積加算値を算出する第7の累積加算手段(例えば、図25または図28のLPF311b−2)と、前記第2の期間において、前記第4の累積加算値を算出する第8の累積加算手段(例えば、図25または図28のLPF311b−4)と、前記第1の累積加算手段により算出された前記第1の累積加算値と前記第3の累積加算手段により算出された前記第2の累積加算値との和、または、前記第2の累積加算手段により算出された前記第1の累積加算値と前記第4の累積加算手段により算出された前記第2の累積加算値との和を算出する第1の加算手段(例えば、図25または図28の加算器162a)と、前記第5の累積加算手段により算出された前記第3の累積加算値の符号を反転した値と前記第7の累積加算手段により算出された前記第4の累積加算値との和、または、前記第6の累積加算手段により算出された前記第3の累積加算値の符号を反転した値と前記第8の累積加算手段により算出された前記第4の累積加算値との和を算出する第2の加算手段(例えば、図25または図28の加算器162b)とを備える。
本発明の第1の側面の位相制御方法は、PSK(Phase Shift Keying)変調されたデジタル信号であるPSK変調信号(例えば、信号DATA)と等しい周波数の第1のクロック信号(例えば、信号sin(wt))、および、前記第1のクロック信号とπ/2だけ位相が異なる第2のクロック信号(例えば、信号cos(wt))を生成し、前記PSK変調信号の1周期または1/2周期の長さの期間である算出期間ごとに、前記第1のクロック信号および前記第2のクロック信号の位相を仮想的に制御する角度である制御角だけ前記第1のクロック信号を移相させた信号と前記PSK変調信号との位相を前記算出期間において比較した結果を示す第1の位相比較結果(例えば、値ΣV11)を、前記制御角の余弦に対応する第1のパラメータ(例えば、cos_para)、前記PSK変調信号、および、前記第1のクロック信号を乗じた第1の乗算値と、前記制御角の正弦に対応する第2のパラメータ(例えば、sin_para)、前記PSK変調信号、および、前記第2のクロック信号を乗じた第2の乗算値との和を前記算出期間にわたって累積加算することにより算出し、前記制御角だけ前記第2のクロック信号を移相させた信号と前記PSK変調信号との位相を前記算出期間において比較した結果を示す第2の位相比較結果(例えば、値ΣV12)を、前記第2のパラメータ、前記PSK変調信号、および、前記第1のクロック信号を乗じた第3の乗算値の符号を反転した値と、前記第1のパラメータ、前記PSK変調信号、および、前記第2のクロック信号を乗じた第4の乗算値との和を前記算出期間にわたって累積加算することにより算出し、前記第1の位相比較結果および前記第2の位相比較結果に基づいて、前記制御角を仮想的に制御する制御方向を設定し、前記制御方向に仮想的に制御された前記制御角に基づいて、前記第1のパラメータおよび前記第2のパラメータの値を制御し、前記制御方向に仮想的に制御された前記制御角に基づいて、前記PSK変調信号からデータを読み出すタイミングを制御するステップを含む。
本発明の第2の側面のICチップ(例えば、図2の非接触ICチップ101)は、PSK(Phase Shift Keying)変調されたデジタル信号であるPSK変調信号(例えば、信号DATA)と等しい周波数の第1のクロック信号(例えば、信号sin(wt))、および、前記第1のクロック信号とπ/2だけ位相が異なる第2のクロック信号(例えば、信号cos(wt))を生成するクロック信号生成手段(例えば、図5、図6、図25または図28の分周器131)と、前記PSK変調信号の1周期または1/2周期の長さの期間である算出期間ごとに、前記第1のクロック信号および前記第2のクロック信号の位相を仮想的に制御する角度である制御角だけ前記第1のクロック信号を移相させた信号と前記PSK変調信号との位相を前記算出期間において比較した結果を示す第1の位相比較結果(例えば、値ΣV11)を、前記制御角の余弦に対応する第1のパラメータ(例えば、cos_para)、前記PSK変調信号、および、前記第1のクロック信号を乗じた第1の乗算値と、前記制御角の正弦に対応する第2のパラメータ(例えば、sin_para)、前記PSK変調信号、および、前記第2のクロック信号を乗じた第2の乗算値との和を前記算出期間にわたって累積加算することにより算出し、前記制御角だけ前記第2のクロック信号を移相させた信号と前記PSK変調信号との位相を前記算出期間において比較した結果を示す第2の位相比較結果(例えば、値ΣV12)を、前記第2のパラメータ、前記PSK変調信号、および、前記第1のクロック信号を乗じた第3の乗算値の符号を反転した値と、前記第1のパラメータ、前記PSK変調信号、および、前記第2のクロック信号を乗じた第4の乗算値との和を前記算出期間にわたって累積加算することにより算出する算出手段(例えば、図5のExor回路132a,132b、乗算器133a−1乃至133b−2、加算器134a,134b、および、LPF135a,135b、図6のExor回路132a,132b、乗算器133a−1乃至133b−2、LPF161a−1乃至161b−2、および、加算器162a,162b、図25のExor回路132a,132b、乗算器133a−1乃至133b−2、LPF311a−1乃至311b−4、および、加算器162a,162b、または、図28のExor回路132a,132b、乗算器133a−1乃至133b−2、LPF311a−1乃至311b−4、および、加算器162a,162b)と、前記第1の位相比較結果および前記第2の位相比較結果に基づいて、前記制御角を仮想的に制御する制御方向を設定する制御方向設定手段(例えば、図7または図29の制御方向検出部181)と、前記制御方向に仮想的に制御された前記制御角に基づいて、前記第1のパラメータおよび前記第2のパラメータの値を制御するパラメータ制御手段(例えば、図7または図29のパラメータ制御部183)と、前記制御方向に仮想的に制御された前記制御角に基づいて、前記PSK変調信号からデータを読み出すタイミングを制御する読み出し制御手段(例えば、図7の読み出しタイミング制御部184、または、図29の読み出しタイミング制御部371)とを備えるPLL(Phase Locked Loop)回路(例えば、図5のデジタルPLL112a、図6のデジタルPLL112b、図25のデジタルPLL112c、または、図28のデジタルPLL112d)を備え、前記PSK変調信号を復調する機能を有する。
以下、図を参照して、本発明の実施の形態について説明する。
図2は、本発明を適用した非接触IC(Integrated Circuit)チップの実施の形態の一部を示すブロック図である。図2の非接触ICチップ101は、非接触ICカード機能を有するICチップであり、例えば、PSK変調されたデジタル信号から元のデータを復元する機能、すなわち、PSK変調されたデジタル信号を復調する機能などを有する。非接触ICチップ101は、復調回路111、デジタルPLL112、および、CPU(Central Processing Unit)113を含むように構成される。
復調回路111は、図示せぬリーダライタからの電磁波を受信した図示せぬアンテナから供給されてきたRF入力信号に基づいて、非接触ICチップ101の動作に必要な電力を生成し、生成した電力を各部に供給するとともに、RF入力信号を復調することによって得られた復調信号であって、元のデータであるビット列をマンチェスタ符号化することによりPSK変調された1696kbps(bit per second)のデジタル信号である復調信号(以下、信号DATAとも称する)をデジタルPLL112に出力する。
デジタルPLL112は、図1のデジタルPLL1と同様に、図3に示されるように、復調回路111から入力される信号DATAと、図示せぬ発振回路から入力される非接触ICチップ101の動作クロックであって、クロック周波数が13.56MHzのクロック信号f_clkを分周することにより生成される信号sin(wt+Φ)との位相差Δが0となるように、制御角Φを制御する。ただし、後述するように、デジタルPLL112は、sin(wt+Φ)を直接制御するのではなく、sin(wt+Φ)を以下の式(1)のように展開した場合のcosΦに対応するパラメータであるcos_para、および、sinΦに対応するパラメータであるsin_paraの値を制御することにより、仮想的に制御角Φおよび信号sin(wt+Φ)の位相を制御する。
sin(wt+Φ)=cosΦ・sin(wt)+sinΦ・cos(wt) ・・・(1)
また、デジタルPLL112においては、入力される信号DATAのビットレートが1696kbpsであるのに対して、分周器131に入力されるクロック信号f_clkのクロック周波数が13.56MHzであるので、信号DATAの1ビットに対して、換言すれば、信号DATAの1周期に対して、8クロック分のクロック信号f_clkが割り当てられる。そして、後述するように、デジタルPLL112においては、図4に示されるように、1クロックをさらに4分割した位相の分解能、すなわち、信号DATAの1周期を32分割した2π/32の分解能が実現される。なお、以下、分解能幅をΔΦ(=2π/32)と表し、制御角Φ=Φn×ΔΦ(Φnは0乃至31までの整数)とする。
さらに、デジタルPLL112は、Φnの値に基づいて、すなわち、仮想の制御角Φに基づいて、PSK変調前のビット列を抽出するために、すなわち、PSK変調前のデータを復元するために信号DATAからデータを読み出すタイミングを制御する。具体的には、デジタルPLL112は、Φnの値に基づいて、信号DATAからデータを読み出すタイミングを示すタイミング信号を生成し、CPU113に供給する。
CPU113は、クロック信号f_clk、および、デジタルPLL112から供給されるタイミング信号に基づいて、信号DATAからデータを読み出すことにより、PSK変調前のデータを復元し、復元したデータに基づいて、図示せぬ不揮発性メモリに記憶されているデータの読み書きなどの所定の処理を行う。
図5および図6は、図2のデジタルPLL112の構成の例を示す回路図である。なお、以下、図5と図6のデジタルPLL112を区別するために、図5のデジタルPLL112をデジタルPLL112aと称し、図6のデジタルPLL112をデジタルPLL112bと称する。また、以下、デジタルPLL112aとデジタルPLL112bを特に区別する必要がない場合、単に、デジタルPLL112と称する。
図5のデジタルPLL112aは、分周器131、Exor回路132a,132b、乗算器133a−1乃至133b−2、加算器134a,134b、LPF(Low Pass Filter)135a,135b、および、ACT(Amplitude Controlled Transfer)136により構成される。
分周器131は、図示せぬ発振回路から入力される13.56MHzのクロック信号f_clkに基づいて、信号DATAとほぼ等しい周波数である1696kHzのクロック信号である信号sin(wt)、および、信号sin(wt)とπ/2だけ位相が異なる、より正確には、π/2だけ位相が遅延された1696kHzのクロック信号である信号cos(wt)を生成する。分周器131は、信号sin(wt)をExor回路132aに供給し、信号cos(wt)をExor回路132bに供給する。
Exor回路132aは、復調回路111から入力される信号DATAと信号sin(wt)の排他的論理和(Exor)を反転した信号DATA・sin(wt)を生成し、乗算器133a−1および133b−1に供給する。
Exor回路132bは、復調回路111から入力される信号DATAと信号cos(wt)の排他的論理和を反転した信号DATA・cos(wt)を生成し、乗算器133a−2および133b−2に供給する。
乗算器133a−1は、信号DATA・sin(wt)のHiレベルの値を+1、Lowレベルの値を−1とみなして、信号DATA・sin(wt)にACT136から供給されるパラメータcos_paraを乗算し、乗算した値cos_para・DATA・sin(wt)を示す信号cos_para・DATA・sin(wt)を生成し、加算器134aに供給する。
乗算器133a−2は、信号DATA・cos(wt)のHiレベルの値を+1、Lowレベルの値を−1とみなして、信号DATA・cos(wt)にACT136から供給されるパラメータsin_paraを乗算し、乗算した値sin_para・DATA・cos(wt)を示す信号sin_para・DATA・cos(wt)を生成し、加算器134aに供給する。
乗算器133b−1は、信号DATA・sin(wt)のHiレベルの値を+1、Lowレベルの値を−1とみなして、信号DATA・sin(wt)にACT136から供給されるパラメータであるsin_paraを乗算し、乗算した値sin_para・DATA・sin(wt)を示す信号sin_para・DATA・sin(wt)を生成し、加算器134bに供給する。
乗算器133b−2は、信号DATA・cos(wt)のHiレベルの信号の値を+1、Lowレベルの信号の値を−1とみなして、信号DATA・cos(wt)にACT136から供給されるパラメータであるcos_paraを乗算し、乗算した値cos_para・DATA・cos(wt)を示す信号cos_para・DATA・cos(wt)を生成し、加算器134bに供給する。
加算器134aは、値cos_para・DATA・sin(wt)と値sin_para・DATA・cos(wt)を加算し、加算した値V11(=cos_para・DATA・sin(wt)+sin_para・DATA・cos(wt))を示す信号V11を生成し、LPF135aに供給する。
なお、上述した図1のデジタルPLL1のLPF14aに入力される値V1を展開すると、以下の式(2)となり、値V11は、式(2)の最終式のcosΦおよびsinΦをそれぞれcos_paraおよびsin_paraに置き換えた値になる。
V1=(DATA・sin(wt+Φ))
=cosΦ・DATA・sin(wt)+sinΦ・DATA・cos(wt) ・・・(2)
加算器134bは、値sin_para・DATA・sin(wt)の符号を反転した値と値cos_para・DATA・cos(wt)を加算し、加算した値V12(=−sin_para・DATA・sin(wt)+cos_para・DATA・cos(wt))を示す信号V12を生成し、LPF135bに供給する。
なお、上述した図1のデジタルPLL1のLPF14bに入力される信号V2を展開すると、以下の式(3)となり、値V12は、式(3)の最終式のcosΦおよびsinΦをそれぞれcos_paraおよびsin_paraに置き換えた値になる。
V2=(DATA・cos(wt+Φ))
=−sinΦ・DATA・sin(wt)+cosΦ・DATA・cos(wt) ・・・(3)
LPF135aは、値V11を累積加算していき、クロック信号f_clkの8クロック分の期間、すなわち、信号DATAの1周期にわたって値V11を累積加算した値ΣV11(=Σ{cos_para・DATA・sin(wt)+sin_para・DATA・cos(wt)})を示す信号ΣV11をACT136に供給する。信号V11を供給した後、LPF135aが保持する値はリセットされ、LPF135aは、再び0から値V11を累積加算する。すなわち、LPF135aは、信号DATAの1周期ごとに、1周期分の値V11を累積加算し、累積加算した値ΣV11を示す信号ΣV11をACT136に供給する。
同様に、LPF135bは、信号DATAの1周期ごとに、1周期分の値V12を累積加算し、累積加算した値ΣV12を示す信号ΣV12をACT136に供給する。
なお、値ΣV11は、信号DATAの1周期において、仮想の制御角Φだけ信号sin(wt)を移相させた仮想の信号sin(wt+Φ)と信号DATAとの位相を比較した結果を示す。例えば、値ΣV11は、信号DATAのデューティ比が50%である場合、信号sin(wt+Φ)と信号DATAとの位相が一致する場合、最大となり、信号sin(wt+Φ)と信号DATAとの位相がπ/2だけ異なる場合、0となり、信号sin(wt+Φ)と信号DATAとの位相がπだけ異なる場合、最小となる。
また、値ΣV12は、信号DATAの1周期において、仮想の制御角Φだけ信号cos(wt)を移相させた仮想の信号cos(wt+Φ)と信号DATAとの位相を比較した結果を示す。例えば、値ΣV12は、信号DATAのデューティ比が50%である場合、信号cos(wt+Φ)と信号DATAとの位相が一致する場合、最大となり、信号cos(wt+Φ)と信号DATAとの位相がπ/2だけ異なる場合、0となり、信号cos(wt+Φ)と信号DATAとの位相がπだけ異なる場合、最小となる。
ACT136は、信号ΣV11および信号ΣV12に基づいて、cos_paraおよびsin_paraの値を制御する。ACT136は、制御したcos_paraの値を示す信号を乗算器133a−1および133b−2に供給し、制御したsin_paraの値を示す信号を乗算器133a−2および133b−1に供給する。また、ACT136は、信号ΣV11および信号ΣV12に基づいて、信号DATAからデータを読み出すタイミングを示すタイミング信号を生成し、CPU113に供給する。
なお、図5のデジタルPLL112aにおいては、加算器134a,134b、および、LPF135a,135bは線形演算を行うので、加算器134aとLPF135a、および、加算器134bとLPF135bの位置を入れ替えることが可能である。図6のデジタルPLL112bは、図5のデジタルPLL112aにおける加算器134aとLPF135a、および、加算器134bとLPF135bの位置を入れ替えることにより構成される。
図6のデジタルPLL112bは、分周器131、Exor回路132a,132b、乗算器133a−1乃至133b−2、ACT136、LPF161a−1乃至161b−2、および、加算器162a,162bにより構成される。なお、図中、図5と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
LPF161a−1は、値cos_para・DATA・sin(wt)を累積加算していき、クロック信号f_clkの8クロック分の期間、すなわち、信号DATAの1周期にわたって値cos_para・DATA・sin(wt)を累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を加算器162aに供給する。信号Σ{cos_para・DATA・sin(wt)}を供給した後、LPF161a−1が保持する値はリセットされ、LPF161a−1は、再び0から値cos_para・DATA・sin(wt)を累積加算する。すなわち、LPF161a−1は、信号DATAの1周期ごとに、1周期分の値cos_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を加算器162aに供給する。
同様に、LPF161a−2は、信号DATAの1周期ごとに、1周期分の値sin_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・cos(wt)}を示す信号Σ{sin_para・DATA・cos(wt)}を加算器162aに供給する。また、同様に、LPF161b−1は、信号DATAの1周期ごとに、1周期分の値sin_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・sin(wt)}を示す信号Σ{sin_para・DATA・sin(wt)}を加算器162bに供給する。さらに、同様に、LPF161b−2は、信号DATAの1周期ごとに、1周期分の値cos_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・cos(wt)}を示す信号Σ{cos_para・DATA・cos(wt)}を加算器162bに供給する。
加算器162aは、信号DATAの1周期ごとに、値Σ{cos_para・DATA・sin(wt)}と値Σ{sin_para・DATA・cos(wt)}を加算し、加算した値V11(=Σ{cos_para・DATA・sin(wt)+sin_para・DATA・cos(wt)})を示す信号ΣV11を生成し、ACT136に供給する。
加算器162bは、信号DATAの1周期ごとに、値Σ{sin_para・DATA・sin(wt)}の符号を反転した値と値Σ{cos_para・DATA・cos(wt)}を加算し、加算した値V12(=Σ{−sin_para・DATA・sin(wt)+cos_para・DATA・cos(wt)})を示す信号ΣV12を生成し、ACT136に供給する。
図7は、図5および図6のACT136の機能的構成を示すブロック図である。ACT136は、制御方向設定部181、仮想制御角制御部182、パラメータ制御部183、および、読み出しタイミング制御部184を含むように構成される。
制御方向設定部181は、図8に示される表を用いて、信号ΣV11により示される値ΣV11、および、信号ΣV12により示される値ΣV12に基づいて、仮想の制御角Φを制御する方向を設定する。具体的には、図8に示される表に基づいて、値ΣV11と値ΣV12の符号が同じである場合、制御方向は+方向に設定され、値ΣV11と値ΣV12の符号が異なる場合、または、値ΣV11が0であり、かつ、値ΣV12が0でない場合、制御方向は−方向に設定され、値ΣV11に関わらず、値ΣV12が0である場合、制御方向は0、すなわち、制御角Φを変更しないように設定される。すなわち、制御方向設定部181は、値ΣV12が0になるように、制御角Φの制御方向を設定する。制御方向設定部181は、設定した制御方向を仮想制御角制御部182に通知する。
仮想制御角制御部182は、制御方向設定部181により設定された制御方向に基づいて、仮想の制御角Φを制御する。具体的には、仮想制御角制御部182は、制御方向が+方向に設定された場合、Φnの値を1つインクリメントする。すなわち、仮想の制御角ΦがΔΦだけ大きくされ、仮想の信号sin(wt+Φ)の位相がΔΦだけ遅らされる。また、仮想制御角制御部182は、制御方向が−方向に設定された場合、Φnの値を1つデクリメントする。すなわち、仮想の制御角ΦがΔΦだけ小さくされ、仮想の信号sin(wt+Φ)の位相がΔΦだけ進められる。さらに、仮想制御角制御部182は、制御方向が0に設定された場合、Φnの値を変更しない。すなわち、信号DATAと仮想の信号sin(wt+Φ)の位相が同期した状態であると判定され、制御角Φは変更されない。仮想制御角制御部182は、制御したΦnの値をパラメータ制御部183および読み出しタイミング制御部184に通知する。
パラメータ制御部183は、図9に示される表を用いて、Φnの値に基づいて、すなわち、仮想の制御角Φに基づいて、cos_paraおよびsin_paraの値を制御する。図9に示されるように、cos_paraの値は、制御角Φの余弦であるcosΦに対応するように、Φn=0すなわち制御角Φ=0において最大となり、Φn=0乃至16すなわち制御角Φ=0乃至πの区間で単調減少するとともに、Φn=8すなわち制御角Φ=π/2において0となり、Φn=16すなわち制御角Φ=πにおいて最小となり、Φn=16、17、・・・、31、0すなわち制御角Φ=π乃至2π(0)の区間で単調増加するとともに、Φn=24すなわち制御角Φ=3π/2において0となる。
また、sin_paraの値は、制御角Φの正弦であるsinΦに対応するように、Φn=0すなわち制御角Φ=0において0となり、Φn=0乃至8すなわち制御角Φ=0乃至π/2の区間で単調増加し、Φn=8すなわち制御角Φ=π/2において最大となり、Φn=8乃至24すなわち制御角Φ=π/2乃至3π/2の区間で単調減少し、Φn=16すなわち制御角Φ=πにおいて0となり、Φn=24すなわち制御角Φ=3π/2において最小となり、Φn=24、25、・・・、31、0、すなわち制御角Φ=3π/2乃至2π(0)の区間で単調増加する。
パラメータ制御部183は、制御したcos_paraの値を示す信号を乗算器133a−1および133b−2に供給し、制御したsin_paraの値を示す信号を乗算器133a−2および133b−1に供給する。
読み出しタイミング制御部184は、図10に示される表を用いて、Φnの値、すなわち、仮想の制御角Φに基づいて、CPU113が信号DATAからデータを読み出すタイミングを制御する。具体的には、読み出しタイミング制御部184は、図10に示される表に基づいて、信号DATAからデータを読み出すタイミングを、Φnの値が1乃至4である場合、すなわち、制御角Φが1×ΔΦ乃至4×ΔΦの範囲である場合、クロック信号f_clkのクロックカウンタ(以下、単にクロックカウンタとも称する)が0のタイミングに設定し、Φnの値が5乃至8である場合、すなわち、制御角Φが5×ΔΦ乃至8×ΔΦの範囲である場合、クロックカウンタが1のタイミングに設定し、Φnの値が9乃至12である場合、すなわち、制御角Φが9×ΔΦ乃至12×ΔΦの範囲である場合、クロックカウンタが2のタイミングに設定し、Φnの値が13乃至16である場合、すなわち、制御角Φが13×ΔΦ乃至16×ΔΦの範囲である場合、クロックカウンタが3のタイミングに設定し、Φnの値が17乃至20である場合、すなわち、制御角Φが17×ΔΦ乃至20×ΔΦの範囲である場合、クロックカウンタが4のタイミングに設定し、Φnの値が21乃至24である場合、すなわち、制御角Φが21×ΔΦ乃至24×ΔΦの範囲である場合、クロックカウンタが5のタイミングに設定し、Φnの値が25乃至28である場合、すなわち、制御角Φが25×ΔΦ乃至28×ΔΦの範囲である場合、クロックカウンタが6のタイミングに設定し、Φnの値が29、30、31、または、0である場合、すなわち、制御角Φが29×ΔΦ乃至31×ΔΦの範囲または0である場合、クロックカウンタが7のタイミングに設定する。
すなわち、信号DATAのデューティ比が50%である場合、信号DATAの位相に応じて、信号DATAの各ビットの前半のほぼ中央の値が読み出されるように制御される。
読み出しタイミング制御部184は、設定したクロックカウンタの値を示すタイミング信号をCPU113に供給する。
なお、クロック信号f_clkのクロックカウンタは、0乃至7の値を繰り返すものとする。
次に、図11および図12を参照して、デジタルPLL112の処理の詳細について説明する。なお、以下、説明を簡単にするために、主に図6のデジタルPLL112bの処理について説明する。
なお、以下、図11に示されるように、sin(wt)よりπ/2だけ位相が遅れ、cos(wt)と同じ位相であるタイミングで、信号DATAがデジタルPLL112bに入力された場合について考える。また、以下、信号DATAがデジタルPLL112bに入力されたときのΦnの値を1とする。すなわち、仮想の制御角Φ=1×ΔΦであり、仮想の信号sin(wt+Φ)の位相がwt+1×ΔΦのときに、信号DATAが入力された場合について考える。さらに、Φn=1であるので、パラメータ制御部183により、上述した図9に示される表に基づいて、cos_paraの値が7、および、sin_paraの値が1に制御されているものとする。
まず、信号DATAの1ビット目のデジタルPLL112bの処理について説明する。
1ビット目の処理において、Exor回路132aから出力される信号DATA・sin(wt)は、クロックカウンタが0から1の期間においてHiとなり、2から3の期間でLowとなり、4から5の期間でHiとなり、6から7の期間でLowとなる。
また、Exor回路132bから出力される信号DATA・cos(wt)は、クロックカウンタが0から7の全ての期間においてHiとなる。
従って、乗算器133a−1から出力される信号cos_para・DATA・sin(wt)の値は、クロックカウンタが0から1の期間において7となり、2から3の期間で−7となり、4から5の期間で7となり、6から7の期間で−7となる。よって、クロックカウンタが7の時点でLPF161a−1から出力される信号Σ{cos_para・DATA・sin(wt)}の値は、0となる。
また、乗算器133a−2から出力される信号sin_para・DATA・cos(wt)の値は、クロックカウンタが0から7の全ての期間において1となる。よって、クロックカウンタが7の時点でLPF161a−2から出力される信号Σ{sin_para・DATA・cos(wt)}の値は、8となる。
また、乗算器133b−1から出力される信号sin_para・DATA・sin(wt)の値は、クロックカウンタが0から1の期間において1となり、2から3の期間で−1となり、4から5の期間で1となり、6から7の期間で−1となる。よって、クロックカウンタが7の時点でLPF161b−1から出力される信号Σ{sin_para・DATA・sin(wt)}の値は、0となる。
また、乗算器133b−2から出力される信号cos_para・DATA・cos(wt)の値は、クロックカウンタが0から7の全ての期間において7となる。よって、クロックカウンタが7の時点でLPF161b−2から出力される信号Σ{cos_para・DATA・cos(wt)}の値は、56となる。
さらに、クロックカウンタが7の時点で、信号Σ{cos_para・DATA・sin(wt)}の値が0、かつ、信号Σ{sin_para・DATA・cos(wt)}の値が8なので、加算器162aから出力される信号ΣV11の値は8となる。
また、クロックカウンタが7の時点で、信号Σ{sin_para・DATA・sin(wt)}の値が0、かつ、信号Σ{cos_para・DATA・cos(wt)}の値が56なので、加算器162aから出力される信号ΣV11の値は56となる。
従って、制御方向設定部181は、図8に示される表を用いて、信号ΣV11と信号ΣV12の符号に基づいて、制御方向を+方向に設定する。
仮想制御角制御部182は、制御方向が+方向に設定されたので、Φnの値を1から2にインクリメントする。
パラメータ制御部183は、Φnの値が2に変更されたのに伴い、図9に示される表に基づいて、信号cos_paraの値を6に、信号sin_paraの値を2に制御する。
読み出しタイミング制御部184は、Φnの値が2に変更されたのに伴い、図10に示される表に基づいて、信号DATAからデータを読み出すクロックカウンタの値を0に設定したタイミング信号を生成し、CPU113に供給する。すなわち、読み出しタイミング制御部184は、信号DATAの次のビット、いまの場合2ビット目において、クロック信号f_clkのクロックカウンタが0の時点で、CPU113が信号DATAかデータを読み出すように制御する。
LPF161a−1乃至161b−2は、クロックカウンタが7の時点で、保持している値をリセットする。
信号DATAの2ビット目においても、同様の処理が行われ、クロックカウンタが7の時点で、値Σ{cos_para・DATA・sin(wt)}が0、値Σ{sin_para・DATA・cos(wt)}が16、値Σ{sin_para・DATA・sin(wt)}が0、値Σ{cos_para・DATA・cos(wt)}が48となり、値ΣV11が8、値ΣV12が48となる。
従って、図8に示される表に基づいて、制御方向が+方向に設定され、Φnの値が2から3にインクリメントされ、図9に示される表に基づいて、cos_paraの値が5、かつ、sin_paraの値が3に制御され、図10に示される表に基づいて、信号DATAからデータを読み出すクロックカウンタの値が0に制御される。
以降、同様の処理が繰り返され、図11および図12に示されるように、信号DATAの7ビット目の処理において、Φnの値が8、cos_paraの値が0、sin_paraの値が8に設定され、8ビット目の処理において、値Σ{cos_para・DATA・sin(wt)}が0、値Σ{sin_para・DATA・cos(wt)}が64、値Σ{sin_para・DATA・sin(wt)}が0、値Σ{cos_para・DATA・cos(wt)}が0となり、値ΣV11の値が64、値ΣV12が0となる。
従って、図8に示される表に基づいて、制御方向が0に設定される。すなわち、信号DATAと仮想の信号sin(wt+Φ)の位相が同期したと判定され、すなわち、デジタルPLL112bによる位相の制御が収束したと判定され、仮想の制御角Φが8×ΔΦにロックされる。また、cos_paraの値が0、かつ、sin_paraの値が8にロックされ、信号DATAからデータを読み出すクロックカウンタの値が1にロックされる。
このように、デジタルPLL112bは、図1のデジタルPLL1と同じクロック周波数のクロック信号f_clkを用いて、すなわち、クロック周波数を上げることなく、位相の分解能を向上させ、データの受信精度を向上させることができる。換言すれば、クロック周波数を上げることなく、より正確に元のデータを復元することができる。従って、クロック周波数を上げることなく、通信品質を向上させたり、通信品質を保ったままより高い転送レートに対応することができる。
なお、以上では、デジタルPLL112bの処理について説明したが、デジタルPLL112aについても、デジタルPLL112bと同様の処理により、cos_paraおよびsin_paraの値を制御することにより、制御角Φが仮想的に制御され、仮想の制御角Φに合わせて、信号DATAからデータを読み出すタイミングが制御される。
なお、デジタルPLL112において、信号sin(wt)および信号cos(wt)に対して、信号DATAが入力されるタイミングは、図13乃至図20の全部で8パターンある。
図13に示されるパターン1は、信号sin(wt)より位相がπ/2だけ遅れ、信号cos(wt)と同じ位相で、信号DATAがデジタルPLL112に入力されるパターンである。これは、上述した図11および図12と同じパターンである。パターン1において、Exor回路132aから出力される信号DATA・sin(wt)のHiレベルの値を+1、Lowレベルの値を−1とみなし、Exor回路132bから出力される信号DATA・cos(wt)のHiレベルの値を+1、Lowレベルの値を−1とみなした場合、信号DATAの1周期分わたって信号DATA・sin(wt)を加算した値Σ{DATA・sin(wt)}は0となり、信号DATAの1周期分にわたって信号DATA・sin(wt)を加算した値Σ{DATA・cos(wt)}は8となる。また、パターン1に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は8または24に収束する。
図14に示されるパターン2は、信号sin(wt)より位相が3π/4だけ遅れ、信号cos(wt)より位相がπ/4だけ遅れて、信号DATAがデジタルPLL112に入力されるパターンである。パターン2において、値Σ{DATA・sin(wt)}は−4となり、値Σ{DATA・cos(wt)}は4となる。また、パターン2に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの初期値に応じて、Φnの値は12または28に収束する。
図15に示されるパターン3は、信号sin(wt)より位相がπだけ遅れ、信号cos(wt)より位相がπ/2だけ遅れて、信号DATAがデジタルPLL112に入力されるパターンである。パターン3において、値Σ{DATA・sin(wt)}は−8となり、値Σ{DATA・cos(wt)}は0となる。また、パターン3に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は0または16に収束する。
図16に示されるパターン4は、信号sin(wt)より位相が5π/4だけ遅れ、信号cos(wt)より位相が3π/4だけ遅れて、信号DATAがデジタルPLL112bに入力されるパターンである。パターン4において、値Σ{DATA・sin(wt)}は−4となり、値Σ{DATA・cos(wt)}は4となる。また、パターン4に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は4または20に収束する。
図17に示されるパターン5は、信号sin(wt)より位相が3π/2だけ遅れ、信号cos(wt)より位相がπだけ遅れて、信号DATAがデジタルPLL112に入力されるパターンである。パターン5において、値Σ{DATA・sin(wt)}は0となり、値Σ{DATA・cos(wt)}は8となる。また、パターン5に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は8または24に収束する。
図18に示されるパターン6は、信号sin(wt)より位相が7π/4だけ遅れ、信号cos(wt)より位相が5π/4だけ遅れて、信号DATAがデジタルPLL112に入力されるパターンである。パターン6において、値Σ{DATA・sin(wt)}は4となり、値Σ{DATA・cos(wt)}は−4となる。また、パターン6に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は12または28に収束する。
図19に示されるパターン7は、信号sin(wt)と同じ位相で、信号cos(wt)より位相が3π/2だけ遅れて、信号DATAがデジタルPLL112に入力されるパターンである。パターン7において、値Σ{DATA・sin(wt)}は8となり、値Σ{DATA・cos(wt)}は0となる。また、パターン7に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は0または16に収束する。
図20に示されるパターン8は、信号sin(wt)より位相がπ/4だけ遅れ、信号cos(wt)より位相が7π/4だけ遅れて、信号DATAがデジタルPLL112に入力されるパターンである。パターン8において、値Σ{DATA・sin(wt)}は4となり、値Σ{DATA・cos(wt)}は4となる。また、パターン8に示されるタイミングで信号DATAが入力された場合、信号DATAの入力が開始されたときのΦnの値に応じて、Φnの値は4または20に収束する。
以下、デジタルPLL112の他の実施の形態について説明する。
通常、信号DATAにおいては、有効なデータの前に所定のパターンのプリアンブルが付加される。デジタルPLL112は、プリアンブルの期間中に上述した処理を行い、仮想の制御角Φをロックする。ロック後は、デジタルPLL112による位相の制御、すなわち、仮想の制御角Φの制御を必要最低限に抑えるようにすることが望ましい。
しかしながら、上述した処理では、信号DATAのデューティ比が50%から変化した場合、不必要に位相の制御が行われてしまう場合が想定される。
例えば、Φnの値が28に収束し、仮想の制御角Φ=28×ΔΦにロックされた後、図21に示されるように、信号DATAのnビット目、n+1ビット目においてデューティ比が50%から大きく変化した場合について考える。
この場合、信号DATAのnビット目において、値ΣV11が0となり、値ΣV12が−16となり、制御方向が−方向に設定され、Φnの値が28から27にデクリメントされる。また、信号DATAのn+1ビット目において、値ΣV11が−4となり、値ΣV12が16となり、制御方向が−方向に設定され、Φnの値が27から26にデクリメントされる。すなわち、仮想の制御角Φが一旦ロックされた後、デューティ比の変動により、制御方向が連続して同じ方向に設定され、仮想の制御角Φがロックされていた値から離れていくことにより、信号DATAから正確に変調前のデータを復元できなくなる可能性が生じる。
この現象を防止するために、例えば、信号DATAの1/2周期ごとに制御方向を求め、信号DATAの1周期ごとに、求めた2つの制御方向に基づいて、最終的な制御方向を決定するようにしてもよい。ここで、図21を参照して、この対策を施した場合のデジタルPLL112bの処理について説明する。
この対策を施した場合、LPF161a−1は、値cos_para・DATA・sin(wt)を累積加算していき、クロック信号f_clkの4クロック分の期間、すなわち、信号DATAの1/2周期にわたって値cos_para・DATA・sin(wt)を累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を加算器162aに供給する。信号Σ{cos_para・DATA・sin(wt)}を供給した後、LPF161a−1が保持する値はリセットされ、LPF161a−1は、再び0から値cos_para・DATA・sin(wt)を累積加算する。すなわち、LPF161a−1は、信号DATAの1/2周期ごとに、1/2周期分の値cos_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を加算器162aに供給する。
同様に、LPF161a−2は、信号DATAの1/2周期ごとに、1/2周期分の値sin_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・cos(wt)}を示す信号Σ{sin_para・DATA・cos(wt)}を加算器162aに供給する。また、LPF161b−1は、信号DATAの1/2周期ごとに、1/2周期分の値sin_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・sin(wt)}を示す信号Σ{sin_para・DATA・sin(wt)}を加算器162bに供給する。さらに、LPF161b−2は、信号DATAの1/2周期ごとに、1/2周期分の値cos_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・cos(wt)}を示す信号Σ{cos_para・DATA・cos(wt)}を加算器162bに供給する。
加算器162aは、信号DATAの1/2周期ごとに、値Σ{cos_para・DATA・sin(wt)}と値Σ{sin_para・DATA・cos(wt)}を加算し、加算した値V11(=Σ{cos_para・DATA・sin(wt)+sin_para・DATA・cos(wt)})を示す信号ΣV11を生成し、ACT136に供給する。
加算器162bは、信号DATAの1/2周期ごとに、値Σ{sin_para・DATA・sin(wt)}の符号を反転した値と値Σ{cos_para・DATA・cos(wt)}を加算し、加算した値V12(=Σ{−sin_para・DATA・sin(wt)+cos_para・DATA・cos(wt)})を示す信号ΣV12を生成し、ACT136に供給する。
制御方向設定部181は、信号DATAの1/2周期ごとに、上述した図8に示される表を用いて、値ΣV11および値ΣV12の符号に基づいて、制御方向を求め、信号DATAの1周期ごとに、求めた制御方向の多数決をとり、多数決の結果に基づいて、制御方向を決定する。より具体的には、制御方向設定部181は、クロックカウンタが0乃至3の期間(以下、前半とも称する)における制御方向とクロックカウンタが4乃至7の期間(以下、後半とも称する)の制御方向とを求め、求めた2つの制御方向において、+方向が多い場合、制御方向を+方向に決定し、−方向が多い場合、制御方向を−方向に決定し、+方向と−方向の数が同じ場合、制御方向を0に決定する。制御方向設定部181は、決定した制御方向を仮想制御角制御部182に通知する。
なお、デジタルPLL112bのその他の部分は、上述した処理と同様の処理を行う。
例えば、図22に示されるように、図21と同じ条件で信号DATAが入力された場合、信号DATAのnビット目の前半において、値ΣV11は−16となり、値ΣV12は0となる。従って、図8に示される表に基づいて、信号DATAのnビット目の前半の制御方向は0となる。また、信号DATAのnビット目の後半において、値ΣV11は16となり、値ΣV12は−16となる。従って、図8に示される表に基づいて、信号DATAのnビット目の後半における制御方向は−方向となる。
従って、信号DATAのnビット目において、前半の制御方向が0、かつ、後半の制御方向が−方向となり、−方向の方が+方向より多いので、最終的に制御方向は−方向に決定される。これにより、Φnの値は28から27にデクリメントされ、cos_paraの値は3に制御され、sin_paraの値は−5に制御される。
また、次の信号DATAのn+1ビット目の前半において、値ΣV11は16となり、値ΣV12は4となる。従って、図8に示される表に基づいて、信号DATAのn+1ビット目の前半の制御方向は+方向となる。また、信号DATAのn+1ビット目の後半において、値ΣV11は−20となり、値ΣV12は12となる。従って、図8に示される表に基づいて、信号DATAのn+1ビット目の後半における制御方向は−方向となる。
従って、信号DATAのn+1ビット目において、前半の制御方向が+方向、かつ、後半の制御方向が−方向となり、+方向と−方向が同数となるので、最終的に制御方向は0に決定される。よって、Φnの値、cos_paraおよびsin_paraの値は変更されない。
このようにして、仮想の制御角Φの制御が必要以上に行われることが防止される。
ただし、1/2周期ごとの制御方向の多数決により制御方向を決定するようにした場合、例えば、信号DATAのプリアンブルの部分において、信号DATAと仮想の信号sin(wt+Φ)との位相が合っていないのに、Φnの制御、すなわち、仮想の制御角Φの制御が行われなくなる可能性がある。
例えば、Φn=5の場合に、図23に示される信号DATAのnビット目がデジタルPLL112bに入力された場合、信号DATAのnビット目の前半において、ΣV11の値が4、ΣV12の値が16となり、信号DATAのnビット目の後半において、ΣV11の値が−12、ΣV12の値が20となる。その結果、信号DATAのnビット目において、前半の制御方向が+方向、かつ、後半の制御方向が−方向となり、−方向と+方向が同数となり、信号DATAと仮想の信号sin(wt+Φ)の位相が合っていないにも関わらず、Φnの制御が行われないようになる。
この現象を防止するために、例えば、前半と後半の制御方向が逆方向になった場合、強制的に制御方向を+方向または−方向に決定するようにしてもよい。
ところで、LPF161a−1乃至LPF161b−2を、フリップフロップを用いて構成した場合、累積加算値を保持する内部レジスタをリセットしたとき、リセットした次のクロックカウンタにおいて内部レジスタの値が0になってしまい、正確な累積加算値を得られない場合がある。
例えば、LPF161a−1が、信号DATAの1/2周期ごとに、値cos_para・DATA・sin(wt)を累積加算する場合、図24に示されるように、値cos_para・DATA・sin(wt)が、クロックカウンタ0から7までの間に、1、1、−1、−1、1、1、−1、−1と変化するとき、LPF161a−1の内部レジスタの値Σ{cos_para・DATA・sin(wt)}は、図内の枠線F1内に示されるように、クロックカウンタが3のときに0となり、クロックカウンタが7のときに、0とならなければいけない。しかしながら、図内の枠線F2内に示されるように、クロックカウンタが3のときに、LPF161a−1の内部レジスタをリセットした場合、クロックカウンタが4のときに、LPF161a−1の内部レジスタの値Σ{cos_para・DATA・sin(wt)}が0になり、クロックカウンタが7のときの内部レジスタの値Σ{cos_para・DATA・sin(wt)}が−1となり、不正確な値となる場合がある。
図25は、この現象を防止するようにしたデジタルPLL112の実施の形態を示す回路図である。なお、上述したデジタルPLL112aおよびデジタルPLL112bと区別するために、図25のデジタルPLL112をデジタルPLL112cと称する。
図25のデジタルPLL112cは、分周器131、Exor回路132a,132b、乗算器133a−1乃至133b−2、ACT136、加算器162a,162b、LPF311a−1乃至311b−4、および、スイッチ312a−1乃至312b−4により構成される。なお、図中、図6と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
LPF311a−1は、クロックカウンタの値が0乃至3のときに、値cos_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を、スイッチ312a−1を介して、加算器162aに供給する。LPF311a−1は、クロックカウンタが4になった時点で、図示せぬ内部レジスタに保持している累積加算値をリセットし、クロックカウンタの値が4乃至7のときに、内部レジスタの値を0に保つ。すなわち、LPF311a−1は、1回置きに信号DATAの1/2周期にわたって値cos_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を加算器162aに供給する。
同様に、LPF311a−2は、クロックカウンタの値が0乃至3のときに、値sin_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・cos(wt)}を示す信号Σ{sin_para・DATA・cos(wt)}を、スイッチ312a−2を介して、加算器162aに供給し、クロックカウンタの値が4乃至7のときに、内部レジスタの値を0に保つ。
一方、LPF311a−3は、クロックカウンタの値が4乃至7のときに、値cos_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を、スイッチ312a−3を介して、加算器162aに供給する。LPF311a−3は、クロックカウンタが0になった時点で、図示せぬ内部レジスタに保持している加算値をリセットし、クロックカウンタの値が0乃至3のときに、内部レジスタの値を0に保つ。すなわち、LPF311a−3は、LPF311a−1と交互になるように1回置きに信号DATAの1/2周期にわたって値cos_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・sin(wt)}を示す信号Σ{cos_para・DATA・sin(wt)}を加算器162aに供給する。
同様に、LPF311a−4は、クロックカウンタの値が4乃至7のときに、値sin_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・cos(wt)}を示す信号Σ{sin_para・DATA・cos(wt)}を、スイッチ312a−4を介して、加算器162aに供給し、クロックカウンタの値が0乃至3のときに、内部レジスタの値を0に保つ。
また、LPF311b−1は、クロックカウンタの値が0乃至3のときに、値sin_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・sin(wt)}を示す信号Σ{sin_para・DATA・sin(wt)}を、スイッチ312b−1を介して、加算器162bに供給し、クロックカウンタの値が4乃至7のときに、内部レジスタの値を0に保つ。
同様に、LPF311b−2は、クロックカウンタの値が0乃至3のときに、値cos_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・cos(wt)}を示す信号Σ{cos_para・DATA・cos(wt)}を、スイッチ312b−2を介して、加算器162bに供給し、クロックカウンタの値が4乃至7のときに、内部レジスタの値を0に保つ。
さらに、LPF311b−3は、クロックカウンタの値が4乃至7のときに、値sin_para・DATA・sin(wt)を累積加算し、累積加算した値Σ{sin_para・DATA・sin(wt)}を示す信号Σ{sin_para・DATA・sin(wt)}を、スイッチ312b−3を介して、加算器162bに供給し、クロックカウンタの値が0乃至3のときに、内部レジスタの値を0に保つ。
同様に、LPF311b−4は、クロックカウンタの値が4乃至7のときに、値cos_para・DATA・cos(wt)を累積加算し、累積加算した値Σ{cos_para・DATA・cos(wt)}を示す信号Σ{cos_para・DATA・cos(wt)}を、スイッチ312b−4を介して、加算器162bに供給し、クロックカウンタの値が0乃至3のときに、内部レジスタの値を0に保つ。
すなわち、LPF311a−1,311a−2,311b−1および311b−2は、同じタイミングで1/2周期置きに累積換算値を算出し、LPF311a−3,311a−3,311b−3および311b−4は、LPF311a−1,311a−2,311b−1および311b−2と交互になるように、同じタイミングで1/2周期置きに累積換算値を算出する。
スイッチ312a−1、312a−2、312b−1、および、312b−2は、クロックカウンタが3のときオンになり、それ以外の期間においてはオフとなる。
スイッチ312a−3、312a−4、312b−3、および、312b−4は、クロックカウンタが7のときオンになり、それ以外の期間においてはオフとなる。
加算器162aは、クロックカウンタが3のとき、スイッチ312a−1を介して、LPF311a−1から供給される信号Σ{cos_para・DATA・sin(wt)}の値と、スイッチ312a−2を介して、LPF311a−2から供給される信号Σ{sin_para・DATA・cos(wt)}の値とを加算し、加算した値ΣV11を示す信号ΣV11を制御方向設定部181に供給する。また、加算器162aは、クロックカウンタが7のとき、スイッチ312a−3を介して、LPF311a−3から供給される信号Σ{cos_para・DATA・sin(wt)}の値と、スイッチ312a−4を介して、LPF311a−4から供給される信号Σ{sin_para・DATA・cos(wt)}の値とを加算し、加算した値ΣV11を示す信号ΣV11を制御方向設定部181に供給する。
加算器162bは、クロックカウンタが3のとき、スイッチ312b−1を介して、LPF311b−1から供給される信号Σ{sin_para・DATA・sin(wt)}の値の符号を反転した値と、スイッチ312b−2を介して、LPF311b−2から供給される信号Σ{cos_para・DATA・cos(wt)}の値とを加算し、加算した値ΣV12を示す信号ΣV12を制御方向設定部181に供給する。また、加算器162bは、クロックカウンタが7のとき、スイッチ312b−3を介して、LPF311b−3から供給される信号Σ{sin_para・DATA・sin(wt)}の値の符号を反転した値と、スイッチ312b−4を介して、LPF311b−4から供給される信号Σ{cos_para・DATA・cos(wt)}の値とを加算し、加算した値ΣV12を示す信号ΣV12を制御方向設定部181に供給する。
ここで、図26を参照して、図24と同じ条件で信号DATAが入力された場合のデジタルPLL112cの処理について説明する。なお、図内の枠線F11に囲まれた部分は、図24の枠線F1に囲まれた部分と同じであり、値cos_para・DATA・sin(wt)および値Σ{cos_para・DATA・sin(wt)}の正しい値を示している。
LPF311a−1は、図内の枠線F12に囲まれた部分に示されるように、クロックカウンタが0乃至3の期間において、乗算器133a−1から供給される値cos_para・DATA・sin(wt)を累積加算し、クロックカウンタが3のとき、内部レジスタの値Σ{cos_para・DATA・sin(wt)}が0となる。そして、クロックカウンタが3のとき、スイッチ312a−1がオンになり、LPF311a−1は、スイッチ312a−1を介して、内部レジスタの値を示す信号Σ{sin_para・DATA・cos(wt)}を加算器162aに供給する。その後、LPF311a−1は、内部レジスタの値をリセットし、クロックカウンタが4乃至7の期間において、内部レジスタの値を0に保ち、クロックカウンタ0乃至3の期間において、再び乗算器133a−1から供給される値cos_para・DATA・sin(wt)を累積加算する。
一方、LPF311a−3は、図内の枠線F13に囲まれた部分に示されるように、クロックカウンタが0乃至3の期間において、内部レジスタの値を0に保ち、クロックカウンタが4乃至7の期間において、乗算器133a−1から供給される値cos_para・DATA・sin(wt)を累積加算し、クロックカウンタが7のとき、内部レジスタの値Σ{cos_para・DATA・sin(wt)}は0となる。そして、クロックカウンタが7のとき、スイッチ312a−2がオンになり、LPF311a−3は、スイッチ312a−3を介して、内部レジスタの値を示す信号Σ{sin_para・DATA・cos(wt)}を加算器162aに供給する。その後、LPF311a−3は、内部レジスタの値をリセットし、クロックカウンタが0乃至3の期間において、内部レジスタの値を0に保ち、クロックカウンタ4乃至7の期間において、再び乗算器133a−1から供給される値cos_para・DATA・sin(wt)を累積加算する。
これにより、加算器162aに供給される値Σ{sin_para・DATA・cos(wt)}は、枠線F11内に示される正確な値と等しくなる。
なお、他のLPFおよびスイッチについても同様の動作が行われ、加算器162aおよび162bに正確な累積加算値が供給されるようになる。
また、上述した処理においては、例えば、図27に示されるように、信号DATAのnビット目からn+1ビット目において、Φnの値が0から1に変更された場合、nビット目のクロックカウンタが7のときに信号DATAからデータが読み出された後、連続してn+1ビット目のクロックカウンタが0のときに信号DATAからデータが読み出され、その結果、信号DATAのnビット目とn+1ビット目において、同じデータが読み出されてしまうことになり、元のビット列を正しく抽出できなくなる場合がある。
図28は、この現象を防止するようにしたデジタルPLL112の構成の例を示す回路図である。なお、上述したデジタルPLL112a乃至デジタルPLL112cと区別するために、図28のデジタルPLL112をデジタルPLL112dと称する。
図28のデジタルPLL112dは、分周器131、Exor回路132a,132b、乗算器133a−1乃至133b−2、加算器162a,162b、LPF311a−1乃至311b−4、スイッチ312a−1乃至312b−4、および、ACT351により構成される。なお、図中、図25と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
ACT351は、加算器162aから供給される信号ΣV11、および、加算器162bから供給される信号ΣV12に基づいて、cos_paraおよびsin_paraの値を制御する。ACT351は、制御したcos_paraの値を示す信号を乗算器133a−1および133b−2に供給し、制御したsin_paraの値を示す信号を乗算器133a−2および133b−1に供給する。また、ACT351は、信号ΣV11および信号ΣV12に基づいて、信号DATAからデータを読み出すタイミングを示すタイミング信号を2系統生成し、CPU113に供給する。
図29は、図28のACT351の機能的構成を示すブロック図である。ACT351は、制御方向設定部181、仮想制御角制御部182、パラメータ制御部183、および、読み出しタイミング制御部371を含むように構成される。なお、図中、図7と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
読み出しタイミング制御部371は、上述した図10に示される表に加えて、図30に示される表を用いて、Φnの値、すなわち、仮想の制御角Φに基づいて、CPU113が信号DATAからデータを読み出すタイミングを制御する。具体的には、読み出しタイミング制御部184は、図10および図30に示される表に基づいて、信号DATAからデータを読み出すタイミングを、Φnの値が1乃至4である場合、クロックカウンタが0および4のタイミングに設定し、Φnの値が5乃至8である場合、クロックカウンタが1および5のタイミングに設定し、Φnの値が9乃至12である場合、クロックカウンタが2および6のタイミングに設定し、Φnの値が13乃至16である場合、クロックカウンタが3および7のタイミングに設定し、Φnの値が17乃至20である場合、クロックカウンタが0および4のタイミングに設定し、Φnの値が21乃至24である場合、クロックカウンタが1および5のタイミングに設定し、Φnの値が25乃至28である場合、クロックカウンタが2および6のタイミングに設定し、Φnの値が29、30、31、または、0である場合、クロックカウンタが3および7のタイミングに設定する。すなわち、読み出しタイミング制御部371は、信号DATAの1周期において、位相がπだけ異なるタイミングで信号DATAから2回データを読み出すように、CPU113が信号DATAからデータを読み出すタイミングを制御する。
読み出しタイミング制御部371は、信号DATAの1周期において、設定したクロックカウンタの値を示すタイミング信号を2系統生成し、CPU113に供給する。
CPU113は、2系統のタイミング信号に基づいて、信号DATAの各ビットにおいて、2回データを読み出す。例えば、図31に示されるように、図27に示される例と同様に、信号DATAのnビット目からn+1ビット目において、Φnの値が0から1に変更された場合、CPU113は、信号DATAのnビット目において、クロックカウンタが3および7のときに信号DATAからデータを読み出し、n+1ビット目において、クロックカウンタが0および4のときに信号DATAからデータを読み出す。CPU113は、例えば、syncコードなど予め値が定められているデータを用いて、信号DATAのデータの極性を判断するとともに、信号DATAに付加されているCRC(Cyclic Redundancy Check)コードなどに基づいて、読み出した2系統のデータのうち正しい方を選択する。
このようにして、Φnの値の変化に関わらず、信号DATAから正確に元のビット列を抽出することができる。
なお、以上の説明では、sin_paraおよびcos_paraの値を、それぞれ、制御角Φに対して直線的に変化させる例を示したが、sinΦおよびcosΦに近い値とするようにしてもよい。
また、以上の説明では、Φnの値の範囲を0乃至31とする例を示したが、Φnの値の範囲をさらに広げ、Φnに対応するsin_paraおよびcos_paraを設定することにより、すなわち、仮想の制御角Φをより細かく設定できるようにすることにより、さらにデジタルPLL112の位相の分解能をさらに向上させることができる。
さらに、以上の説明で用いた信号DATAのビットレート、および、クロック信号f_clkのクロック周波数はその一例であり、本発明の実施の形態においては、信号DATAのビットレート、および、クロック信号f_clkのクロック周波数を上述した値と異なる値とすることが可能である。
また、以上の説明では、本発明を非接触ICチップに適用する例を示したが、本発明は、非接触ICチップ以外にも、PSK変調されたデジタル信号を復調する機能を有する機器に適用することが可能である。例えば、本発明を適用したデジタルPLLを、非接触ICカード機能を有する機器のデータを読み書きするリーダライタ機能、または、非接触ICカード機能を有する機器のデータを読み出すリーダ機能を有するICチップに設けることにより、上述した非接触ICチップに設けた場合と同様の効果を得ることができる。すなわち、クロック周波数を上げることなく、非接触ICカード機能を有する機器からのデータの受信精度を向上させることができる。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
101 非接触ICチップ, 111 復調回路, 112 デジタルPLL, 113 CPU, 132a,132b Exor回路, 133a−1乃至133b−2 乗算器, 134a,134b 加算器, 135a,135b LPF, 136 ACT, 161a−1乃至161b−2 LPF, 162a,162b 加算器, 181 制御方向設定部, 182 仮想制御角制御部, 183 パラメータ制御部, 184 読み出しタイミング制御部,311a−1乃至311b−4 LPF, 312a−1乃至312b−4 スイッチ, 351 ACT, 371 読み出しタイミング制御部