電荷泵鎖相迴路

電荷泵鎖相迴路（Charge-pump phase-locked loop）簡稱CP-PLL，是一種鑒相器適用於方波輸入信號的鎖相迴路。CP-PLL可以快速的鎖定到輸入信號的相位，可以達到很低的穩態相位誤差。

## 鑒相器（PFD）

鑒相器（PFD）是由參考信號（Ref）以及受控輸出（VCO）信號的下緣所觸發。PFD $i(t)$的輸出信號只有三個狀態：0, $+I_p$,和$-I_p$。

參考信號的下緣會使PFD切換到較高的狀態，若PFD已經在$+I_p$就不會變動。

VCO信號的下緣會使PFD切換到較低的狀態，若PFD已經在$-I_p$就不會變動。

若二個信號的下緣同時出現，PFD會切換到0。

## CP-PLL的數學模型

第一個二階CP-PLL的數學模型是由佛洛依德·加德納在1980年提出的。M. van Paemel在1994年提出了不考慮VCO過載（overload）的非線性模型，N. Kuznetsov等人在2019年優化該模型。也有學者在推導考慮VCO過載的CP-PLL解析解數學模型。

CP-PLL的數學模型可以針對一些參數進行解析的預估，例如hold-in範圍（在VCO沒有過載的情形下，可能進行鎖相的輸入信號頻率範圍），及捕獲範圍（pull-in range，在CP-PLL任意初始狀態下，CP-PLL最終可以鎖相的輸入信號頻率範圍）。

### 二階CP-PLL的連續時間線性模型以及加德納的猜想

加德納的分析是以以下的近似為基礎：每個參考信號的周期內，PFD非零的時間區間為

$$t_p = |\theta_e|/\omega_{\rm ref},\ \theta_e = \theta_{\rm ref} - \theta_{\rm vco}.$$

CP-PLL的PDF平均輸出為

$$i_d = I_p \theta_e/2\pi$$

對應的傳遞函數為

$$I_d(s) = I_p\theta_e(s)/2\pi$$

若用濾波器傳遞函數$F(s) = R + \frac{1}{Cs}$以及VCO傳遞函數$\theta_{\rm vco}(s) = K_{\rm vco}I_d(s)F(s)/s$，可以得到加德納的二階CP-PLL線性近似平均模型:

$$\frac{\theta_e(s)}{\theta_{\rm ref}(s)} = \frac{2\pi s}{2\pi s + K_{\rm vco}I_p\left(R + \frac{1}{Cs}\right)}.$$

佛洛依德·加德納在1980年以上述的理解，提出了猜想：「實際電荷泵鎖相迴路的暫態響應，預期會和等效傳統PLL的暫態響應幾乎相同。」（加德納對CP-PLL的猜想）。

依照加德納的結果，也類似Egan在type 2 APLL捕獲範圍的猜想，Amr M. Fahim在其書中猜想：為了要達到無限大的捕獲範圍，CP-PLL的迴路濾波器需要使用主動濾波器（Fahim-Egan在type II CP-PLL捕獲範圍的猜想）。

### 二階CP-PLL的連續時間非線性模型

為了簡化推導，但不失去通用性，假設VCO和參考信號在其相位為整數時為其下降緣。

令參考信號第一個下降緣的時間為$t = 0$。

PFD狀態$i(0)$會依PFD的初始狀態$i(0-)$，VCO的初始相位移$\theta_{vco}(0)$，以及參考信號$\theta_{ref}(0)$的值而不同。

若利用電阻和電容製作純PI（比例積分）的濾波器，其輸入電流$i(t)$和輸出電壓$v_F(t)$的關係為

$$<pre> \begin{align} v_F(t) = v_c(0) + Ri(t) + \frac{1}{C}\int\limits_0^t i(\tau)d\tau \end{align} </pre>$$

其中$R>0$是電阻，$C>0$是電感。

$v_c(t)$是電容器的電壓。

控制信號$v_F(t)$會調整VCO頻率：

$$<pre> \begin{align} \dot\theta_{vco}(t) = \omega_{vco}(t) = \omega_{vco}^{\text{free}} + K_{vco}v_F(t), \end{align} </pre>$$

其中$\omega_{vco}^{\text{free}}$是VCO的自由運行頻率（也就是$v_F(t)\equiv 0$)，$K_{vco}$是VCO增益（靈敏度）、$\theta_{vco}(t)$是VCO相位。

最後，CP-PLL連續時間非線性數學模型如下

$$\begin{align} <pre> \dot v_c(t) = \tfrac{1}{C}i(t), \quad \dot\theta_{vco}(t) = \omega_{vco}^{\text{free}} + K_{vco} ( Ri(t) + v_c(t) ) </pre> \end{align}$$

其中有以下的不連續分段常數非線性

$$<pre> i(t) = i\big(i(t-), \theta_{ref}(t), \theta_{vco}(t)\big) </pre>$$

初始條件為$\big(v_c(0), \theta_{vco}(0)\big)$.

此模型是非線性、非自主式、不連續的開關系統。

### 二階CP-PLL的離散時間非線性模型

假設參考信號頻率為常數:

$$\theta_{ref}(t) = \omega_{ref}t = \frac{t}{T_{ref}},$$ 其中$T_{ref}$、$\omega_{ref}$和$\theta_{ref}(t)$是參考資料的週期、頻率和相位。

令$t_0 = 0$。

這表示$t_0^{\rm middle}$是第一個PFD輸出為0的時間（若$i(0)=0$，則$t_0^{\rm middle}=0$）

且$t_1$是VCO或參考信號的第一個下降緣。

其且，可以定義對應的遞減數列$\{t_k\}$、$\{t_k^{\rm middle}\}$，其中$k=0,1,2...$。

令$t_k < t_k^{\rm middle}$.

則在$t \in [t_k,t_k^{\rm middle})$時，$\text{sign}(i(t))$是非零的常數（$\pm1$）。

令$\tau_k$為PFD脈波寬度（PFD輸出為非零長度的時間區間）乘以PFD輸出的正負號：

$\tau_k = (t_k^{\rm middle} - t_k)\text{sign}(i(t))$ for $t \in [t_k,t_k^{\rm middle})$

$\tau_k = 0$ for $t_k=t_k^{\rm middle}$

若VCO的下降緣在參考信號的下降緣之前，則$\tau_k < 0$，反之，可得$\tau_k > 0$。$\tau_k$可以看出二個信號下降緣的先後順序。在$(t_k^{\rm middle},t_{k+1})$區間內，PFD輸出為零，PFD $i(t) \equiv 0$：

$v_F(t) \equiv v_k$ for $t \in [t_k^{\rm middle},t_{k+1})$.

將$(\tau_k,v_k)$變成下式的變數變換$$<pre> p_k = \frac{\tau_k}{T_{\rm ref}}, u_k=T_{\rm ref} ( \omega_{\rm vco}^{\text{free}} + K_{\rm vco}v_k ) - 1, </pre>$$ 可以讓參數減至二個：

$$<pre> \alpha = K_{\rm vco}I_pT_{\rm ref}R, \beta = \frac{K_{\rm vco}I_pT_{\rm ref}^2}{2C}. </pre>$$

此處$p_k$是正規化的相位偏移，$u_k+1$是VCO頻率 $\omega_{\rm vco}^{\text{free}} + K_{\rm vco}v_k$相對於參考頻率$\frac{1}{T_{\rm ref}}$的比例。

最後，不考慮VCO過載的二階CP-PLL離散時間模型如下

$$<pre> \begin{align} & u_{k+1} = u_k +2\beta p_{k+1},\\ & p_{k+1} = \begin{cases} \frac{-(u_k + \alpha + 1) + \sqrt{(u_k + \alpha + 1)^2 - 4\beta c_k}}{2\beta}, \quad \text{ for } p_k \geq 0, \quad c_k \leq 0, \\ \frac{1}{ u_k + 1} -1 + ( p_k \text{ mod }1), \quad \text{ for } p_k \geq 0, \quad c_k > 0, \\ l_k-1, \quad \text{ for } p_k < 0, \quad l_k \leq 1, \\ \frac{-(u_k + \alpha + 1) + \sqrt{(u_k + \alpha + 1)^2 - 4\beta d_k}}{2\beta}, \quad \text{ for } p_k < 0, \quad l_k > 1, \end{cases} \end{align} </pre>$$

其中

$$\begin{align} <pre> c_k = (1 - ( p_k \text{ mod }1))( u_k +1) - 1, S_{l_k} = -( u_k - \alpha + 1 ) p_k + \beta p_k^2, l_k = \frac{1 - (S_{l_k} \text{ mod }1)}{ u_k + 1}, d_k = (S_{l_k} \text{ mod }1) + u_k. </pre> \end{align}$$

此離散時間模型只在$(u_k=0,p_k=0)$有一個穩態，可以估計hold-in範圍和捕獲範圍。

若VCO過載，也就是$\dot\theta_{\rm vco}(t)$為零。

或者是以下的式子$(p_k>0, u_k<2\beta p_k-1)$或$(p_k<0, u_k<\alpha-1)$,

則需要考慮額外的CP-PLL動態特性。

針對任何參數，只要VCO和參考信號的頻率差夠大，就會使VCO過載。

在實務上，需避免VCO的過載。

### 高階CP-PLL的非線性模型

高階CP-PLL非線性模型推導和超越方程有關，無法求得解析解，需要用近似的方式計算