4、鉴相器(PD)设计:乘法器鉴相器、异或门鉴相器、鉴频鉴相器(PFD)的工作原理与特性

鉴相器,说白了就是时钟恢复电路里的“眼睛”。它负责比较输入数据和本地时钟之间的相位差,然后输出一个误差信号。这个信号会告诉后面的环路滤波器:时钟是快了还是慢了,该往哪个方向调。

我个人习惯把鉴相器分成三类来理解:乘法器型、异或门型,还有最常用的鉴频鉴相器(PFD)。每种都有它的脾气,选错了,整个系统可能就锁不住。

4.1 乘法器鉴相器

这是最基础的一种。它把输入信号和本地时钟信号直接相乘,然后低通滤波,得到相位误差。

假设输入信号是 sin(ωt + θ_in),本地时钟是 cos(ωt + θ_out)。相乘后得到:

V_out = sin(ωt + θ_in) * cos(ωt + θ_out)
      = 0.5 * [sin(2ωt + θ_in + θ_out) + sin(θ_in - θ_out)]

经过低通滤波,高频分量 sin(2ωt + ...) 被滤掉,只剩下 0.5 * sin(θ_in - θ_out)。当相位差很小时,sin(Δθ) ≈ Δθ,输出就近似正比于相位差。

关键特性:

  • 输出是正弦型鉴相特性,线性范围只有 ±π/2
  • 对输入信号的幅度敏感——信号弱了,增益就掉
  • 需要模拟乘法器,功耗和面积都不小

我的经验:我在一个10Gbps的光模块项目中用过乘法器鉴相器。当时觉得模拟方案精度高,结果发现输入信号抖动一大,鉴相增益就飘。后来我换成了数字方案,稳定多了。说实话,现在高速设计中,纯模拟乘法器鉴相器已经很少见了。

4.2 异或门鉴相器

异或门鉴相器是数字电路里的“老黄牛”。它把输入数据和本地时钟的二进制信号做异或运算。输出信号的占空比,就反映了相位差。

你想想看:如果两个信号完全同相,异或输出一直是0。如果完全反相,输出一直是1。如果相位差90°,输出就是50%占空比的方波。

输入数据:  1 0 1 1 0 0 1 ...
本地时钟:  1 1 0 0 1 0 1 ...
异或输出:  0 1 1 0 1 0 0 ...

这个输出经过低通滤波后,平均电压就正比于相位差。线性范围是0到π,比乘法器宽了一倍。

注意:异或门鉴相器有个致命弱点——它需要输入数据有足够的跳变沿。如果数据连续几个比特都是0或1,没有跳变,鉴相器就“瞎了”。

我曾经在一个低速串行链路中吃过这个亏。数据流里有一段长连“0”,结果时钟直接失锁,恢复出来的数据全是错的。嗯,从那以后,我设计系统时一定会检查数据的“游程长度”是否在鉴相器能容忍的范围内。

4.3 鉴频鉴相器(PFD)

终于说到PFD了。这是目前最主流的方案,没有之一。它不仅能鉴相,还能鉴频——也就是说,即使初始频率差很大,它也能把时钟拉回来。

PFD的核心是一个三态状态机。它有三个状态:UP、DOWN、IDLE。比较输入数据和时钟的上升沿:

  • 如果数据上升沿先到,输出UP脉冲,告诉VCO“加速”
  • 如果时钟上升沿先到,输出DOWN脉冲,告诉VCO“减速”
  • 如果两者同时到,保持IDLE

PFD的鉴相特性:

  • 线性范围:-2π 到 +2π(比前两种都宽)
  • 频率捕获范围:理论上无限(只要环路带宽够)
  • 输出是数字脉冲,可以直接驱动电荷泵

为什么PFD能鉴频?我简单解释一下:如果时钟频率比数据频率低,那么数据上升沿会持续领先时钟上升沿,UP脉冲会越来越宽。这个宽脉冲经过环路滤波后,会持续提高VCO的控制电压,把频率往上拉。反过来也一样。

避坑指南:我曾经设计过一个PFD,死区没处理好。当相位差非常小时(比如几个皮秒),PFD来不及响应,输出脉冲宽度为零。结果环路在锁定点附近来回振荡,相位噪声很差。解决办法是加一个“防死区”电路,强制输出一个最小宽度的脉冲。

4.4 三种鉴相器的对比

我把它们放在一起对比,方便你选型时参考:

特性 乘法器鉴相器 异或门鉴相器 鉴频鉴相器(PFD)
鉴相特性 正弦型 三角型 锯齿型
线性范围 ±π/2 0 ~ π -2π ~ +2π
频率捕获 不支持 不支持 支持
对数据跳变要求
实现复杂度 高(模拟) 低(数字) 中(数字)
功耗
适用场景 低速、高精度 低速、有编码 高速、通用

4.5 核心逻辑关系图

下面这张图展示了三种鉴相器在时钟恢复系统中的位置和关系。我特意用SVG画了,方便你理解整个流程。

鉴相器(PD)核心逻辑关系图 输入数据 本地时钟 乘法器鉴相器 异或门鉴相器 鉴频鉴相器(PFD) 环路滤波器 VCO 反馈控制 三种鉴相器均可用于时钟恢复,但PFD具备频率捕获能力,应用最广

从图中可以看到,三种鉴相器都接收输入数据和本地时钟,输出误差信号给环路滤波器。区别在于:乘法器和异或门只能鉴相,而PFD还能鉴频。这也是为什么现代高速光通信系统几乎清一色用PFD的原因。

最后提醒一句:选鉴相器不是越高级越好。如果你的系统有8B/10B编码,数据跳变足够多,异或门鉴相器完全够用,而且功耗更低。但如果你的系统需要快速锁定,或者初始频率偏差大,那就老老实实用PFD。


公众号:蓝海资料掘金营,微信deep3321