时钟恢复(CDR:Clock and Data Recovery)和PLL/DLL

2023-05-16

  1. CDR的作用及应用场景

CDR的主要有两大作用,第一是为接收器端各电路提供时钟信号;第二是对接收到的信号进行判决,便于数据信号的恢复与后续处理。

  1. CDR在各种高速PHY RX的应用:

比如高速phy(MIPI CPHY/ethernet phy)的RX端,这种情况下由于物理层信道中没有直接传输clk信号,所以需要从接收数据中恢复时钟频率和相位。

  1. CDR在光信号上的应用

因为光信号传输至一定距离的时候,通常是长距离传输,其波形会出现一定程度的失真,接收端接收到的信号是一个个长短不一的脉冲信号,这个时候在接收端,我们就无法得到我们需要的数据。所以,这个时候就需要有信号的再生,信号的再生功能为再放大、再整形和再定时,其中的再定时指的就是CDR时钟数据恢复。总之,光模块中CDR时钟数据恢复功能的最大作用就是让接收端的信号与发射端信号保持一致。一般会使用到CDR的光模块,多数都是一些高速率、长距离传输的光模块,例如:10G SFP+ ER/10G SFP+ ZR一般都会用到的,使用CDR芯片的光模块会被锁定速率,不可以降频使用。

  1. 锁相环和倍频器

想要完成CDR少不了锁相环PLL(Phase Locked Loop)

2.1 倍频器实现原理

倍频器是利用了锁相环(Phase Locked Loop)负反馈控制系统实现的,锁相环简称PLL,PLL逻辑原理图如下所示:

① 输入F1

输入低频频率信号。

② 输出F2

输出倍频频率信号,为输入F1信号的N倍频。

③ 鉴相器PD

使输出电压与两个输入信号之间的相位差有确定关系的电路,表示其间关系的函数称为鉴相特性,输出信号为矩形波,如下右图所示。

④ 分频器FD

使输出F2信号除N倍频输出,供给鉴相器,做负反馈,使电路构成自动调整相位差回路,电路稳定后F2 = N * F1。

⑤ 低通滤波器LF

为了使信号变得平滑,如下图右侧所示,PD输出电路信号为矩形脉冲信号,所以需要采用低通滤波器使PD信号变得平滑。

⑥ 压控振荡器VCO

Voltage Controlled Oscillator,为输入信号为电压,输出信号为频率的特殊电路,输出频率与输入电压成正比。

原文链接:https://blog.csdn.net/Sensemoment/article/details/126489443

2.2 鉴相器

2.2.1 鉴相器的原理

可以参考以下专题

锁相环(PLL)专题一:鉴相器PD

2.2.2 鉴相器的分类

以下分类摘自知乎

小白说——鉴相器

  1. CDR的原理

CDR的具体实现方式有很多种,可以用模拟鉴相器做模拟反馈回路,也可以用数字鉴相器配合逻辑电路在数字域做反馈;可以用VCO来产生追踪输入频率的本地时钟,也可以用相位插值器来不断补偿相位误差。

分别参考以下两篇文章:

SerDes interface参考设计_CDR设计(5)

时钟和数据恢复(CDR)电路原理——基于PLL

或者对应的本人转载的链接如下:

https://blog.csdn.net/cy413026/article/details/129251356?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129251356%22%2C%22source%22%3A%22cy413026%22%7D

https://blog.csdn.net/cy413026/article/details/129251422?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129251422%22%2C%22source%22%3A%22cy413026%22%7D

下面两篇文章详细补充了SerDes interface参考设计_CDR设计(5)文章中的相位插值法和过采样法

3.1 CDR与相位插值器

CDR与相位插值器

相位插值器需要多个不同相位的输入时钟,通常是四相输入或是八相输入,然后它会选取两个相邻的输入相位,对它们进行加权插值。通过调整两个相位的权重,相位插值器就可以输出任意相位的时钟。

其实相位插值算法 它的输入时钟频率和实际的采样频率并不需要相同,是直接进行相位反馈而不是频率反馈,就是通过不断调整采样点的相位值,来实现正确采样。

也可以用如下的方法理解:

存储正弦波的100个均分相位的波形值,然后用不同的速率来周期传输这100个值,那么产生的离散正弦波频率是和bit率相关的。

类比的由于在CDR中为了消除频率偏差,相位插值器通常都是在以一定速率不断地移动输出相位,它的输出就像在单位圆上不断旋转一样,这个不同的旋转速度就决定了输出的时钟频率。

RAMBUS就使用了相位插值作为CDR电路

RAMBUS_基于相位内插器的 CDR

3.2 基于过采样的CDR环路结构

基于过采样的CDR环路结构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时钟恢复(CDR:Clock and Data Recovery)和PLL/DLL 的相关文章

  • 全数字锁相环(DPLL)的原理简介以及verilog设计代码

    随着数字电路技术的发展 数字锁相环在调制解调 频率合成 FM 立体声解码 彩色副载波同步 图象处理等各个方面得到了广泛的应用 数字锁相环不仅吸收了数字电路可靠性高 体积小 价格低等优点 还解决了模拟锁相环的直流零点漂移 器件饱和及易受电源和
  • ES recovery、主副分片复制会有一段时间block写入?

    先说结论 1 ES在主副本分片复制时候不会block写入 version gt 2 x 2 ES在recovery主分片时候会有一段时间block写入 全文 ES recovery 主副分片复制会有一段时间block写入 阿里云开发者社区E
  • Lombok插件注解详解

    Lombok主要常用的注解 Data注解 在JavaBean或类JavaBean中使用 这个注解包含范围最广 它包含getter setter NoArgsConstructor注解 即当使用当前注解时 会自动生成包含的所有方法 Gette
  • splunk 之 搜索(Searching)

    Let s Searching Results Example Results Example 注意 在结果之上 有一个菜单项允许您更改页面上显示的事件的数量 默认情况下 这个选项是每页20个 但是您可以单击这个选项来增加或减少这个数字 t
  • 炫酷翻页时钟FlipClock的使用和样式自定义

    前言 基于 kuan vue flip clock 插件 由于插件的样式比较固定 所以想要改变其样式需要自定义 这里我是在PC端 vue2 x 样式表sass 样式vw rem自适应 插件文档 https www npmjs com pac
  • 如何使用 mysql 二进制日志从删除数据库命令恢复?

    如何恢复使用 drop database 命令删除的 mysql 数据库 我可以访问二进制日志 这应该使这种类型的回滚成为可能 文档很糟糕 它暗示 DROP DATABASE 是可恢复的 但仅在我不熟悉的奇怪条件下http dev mysq
  • 如何在C++中使用clock()

    我怎么打电话clock in C 例如 我想测试线性搜索在数组中查找给定元素需要多长时间 include
  • 如何使用 Android 获得最准确的时间?

    我真的不认为这个问题是重复的 类似问题的大多数答案都说使用 System currentTimeMillis 作为最准确的时间 但我注意到并排的两个 Android 设备可能会彼此相差 5 秒或更长时间 或者 更重要的是 实时 我相信 cu
  • 函数的运行时间

    我想打印我的函数的运行时间 由于某种原因 我的计时器总是返回 0 谁能告诉我为什么 double RunningTime clock t time1 clock t time2 double t time1 time2 double tim
  • 如何计算 Java 中事件的经过时间? [复制]

    这个问题在这里已经有答案了 使用 Java 访问系统时钟的简单 容易的方法是什么 以便我可以计算事件的经过时间 我会避免使用System currentTimeMillis 用于测量经过的时间 currentTimeMillis 返回 挂钟
  • Git 恢复:“目标文件为空”。如何重新创建树木?

    注意 我没有此存储库的任何损坏前克隆 我相信我的情况与这里描述的其他人不同 因为我缺少一棵树 而不是一个斑点 发生了什么 当我尝试通过 LAN 通过 SSH 克隆存储库时 Git 返回一条错误 指出存储库已损坏 remote error o
  • EDAplayground 中不显示时钟波形

    当尝试在 EDA Playground 中显示时钟波形时 出现错误 执行中断或达到最大运行时间 如何显示波形 EDA Playground 上的代码 module test reg clk initial begin dumpfile du
  • 如何使用 Data.Time.UTCTime 将分钟添加到当前时间?

    我想在给定的给定时间上添加 减去给定的分钟数 并找出结果时间 例如假设给定时间为 11 30AM 要添加的分钟数为 100 则结果时间为 01 10PM 如何在 Haskell 中使用 Data Time 库做到这一点 我尝试阅读Haske
  • 如何在应用程序运行之间本地检测用户的 iPhone 时钟进度?

    休闲游戏中的一个常见漏洞是人为地提前系统时钟以在游戏中向前跳跃 iOS 设备上的应用程序如何检测此类用户时钟提前 不得涉及网络通信 当时钟提前时 不得假设应用程序已打开 运行或暂停 必须检测时钟前进 仅检测时钟回滚是不够的 理想情况下 该解
  • 着色器时间统一 -clock_gettime 被截断

    使用clock gettime将此函数获取时间作为双精度 return current time in milliseconds static double time get ms void struct timespec res ifde
  • Windows 7 左键单击时钟弹出窗口

    当在 Windows 7 也可能是 Vista 上单击任务栏中的时钟时 会打开一个弹出窗口 显示日历和时钟 因此不是日期和时间调整窗口 我如何自己打开这个窗口 在 C 中首选 我希望timedate cpl会调用它 但这会打开日期和时间调整
  • 使用 Powershell 设置远程服务的恢复选项?

    我真的很难让它发挥作用 希望有人可以帮助我 我目前正在为一项服务编写 Powershell 部署脚本 安装服务后 我想将服务恢复选项设置为每次服务在 0 分钟后崩溃时 重新启动服务 有谁知道如何使用 Powershell 为远程计算机设置这
  • 恢复发送至自部署合约的BNB

    我正在尝试创建 BOT 因此在 BSC 中从 eatamask 创建并部署了一个合约 我向该合约发送了一些 BNB 来检查 但没有成功 我怎样才能拿回BNB 感谢帮助 因为我对此很陌生 除非您在合约中具有允许您提取资金的自定义功能 否则它们
  • Cassandra 备份,包括架构

    我感兴趣的备份技术有两种 a SCHEMA 备份 恢复数据库模式 添加或删除列 更改列类型 添加表等 b 数据备份 恢复数据 更新 从一个表读取到另一个表 让我通过例子来解释一下 首先 我创建实体 客户 Customer 编号 名称 11
  • C# 中的密码恢复工具不起作用

    嗨 我对此还很陌生 我创建了一个门户 用户可以登录并在其中查看我制作的其他程序 问题是密码恢复似乎不起作用 我没有收到任何错误消息 我只是收到消息 我们无法访问您的信息 请重试 我已经正确设置了 ASP NET 配置 并使用不同的用户和权限

随机推荐

  • vue 报错 TypeError: Object(...) is not a function

    1 可能是从外部引入的文件地址错了 xff08 我中了三次了 xff01 xff01 xff01 xff09 2 可能是import时没有加
  • 老毛子、华硕固件USB连接打印机,普通打印机变无线打印机

    1硬件及原因说明 本次作为打印机服务器的是Newifi Mini xff0c 1千兆wan口 xff0c 2百兆lan口 xff0c 1USB2 0接口 xff0c 打印机型号为canon ip1180 xff0c 年代非常久远 xff0c
  • ubuntu 18.04 安装 gurobi10.0.0

    安装准备 1 在官网下载安装包 gt 链接 link 2 校内ip直接在官网申请相应的licence gt 链接 link 3 校外ip需要给官方发送邮件申请 gt 链接 link 安装步骤 1 进入压缩包所在目录 xff0c 解压 tar
  • centos 7.9手把手搭建安装confluence 7

    1 准备环境 root 64 localhost cat etc redhat release CentOS Linux release 7 9 2009 Core root 64 localhost java version openjd
  • Debian10安装

    Debian 10 7 buster 使用bt文件下载 下载链接 xff1a https cdimage debian org debian cd current amd64 bt dvd 这次是在VMware Workstation上安装
  • Debian——网络/镜像配置

    文章目录 前言一 添加镜像源二 配置网络三 添加阿里云镜像 前言 安装完成之后 xff0c 配置apt源和网络 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 添加镜像源 添加ISO文件 xff0c 并连接 ap
  • [Arch iwlist issue] Allocation failed

    之前在学校用 networkmanager 一直不好用 所以试了试手动调试 谁知道再用 iwlist scan时出错 allocation failed 查了一下google 原来是个bug 在无线太多环境下 xff0c 就会出现这种情况
  • 执行pth-winexe报错:ERROR: CreateService failed. NT_STATUS_ACCESS_DENIED.

    问题 xff1a 执行pth winexe时报错 xff1a pth winexe U test aad3b435b51404eeaad3b435b51404ee afc44ee7351d61d00698796da06b1ebf 192 1
  • Windows 远程端口号修改

    远程桌面端口号修改 xff1a 1 计算机 HKEY LOCAL MACHINE SYSTEM CurrentControlSet Control Terminal Server Wds rdpwd Tds tcp 修改PortNumber
  • CCSP2016-1 选座(ticket_chooser)

    CCSP2016 1 选座 xff08 ticket chooser xff09 题目描述 小 B 是一个电影迷 xff0c 只要有时间 xff0c 她就要去观摩最新的大片 但她不喜欢自己在 电脑或其他电子设备上观看 xff0c 而是喜欢去
  • manjaro配置VNC服务

    硬件 xff1a 开发板 xff1a Raspberry Pi 树莓派4B 4G内存 电脑 xff1a win10主机 系统 xff1a manjaro xff1a Raspberry Pi 4 KDE Plasma 21 06 一些准备工
  • iOS开发:关于UISearchController的简单使用

    UISearchController是iOS8以后推出的一个控件 xff0c 在以前的搜索控制器中 xff0c 需要将searchBar于tableView结合使用 有了这个控件之后 xff0c 做搜索控制器就很简单了 效果图 一 需要遵守
  • mac访问win7共享文件夹

    看了网上的一些操作步骤不是太详尽 xff08 对 xff0c 我就是嫌弃它图少 xff09 xff0c 特地制作一个教程来教大家使用mac访问win7的共享文件夹 一 首先我们创建一个用于测试的文件夹 我的台式电脑撤出来一根网线连接在了路由
  • DllNotFoundException

    检查运行dll是否需要其他的dll 这个是报错比较常见的原因 在Unity中报DllNotFoundException有可能是找不到的dll xff0c 它需要引用的其他dll不存在 这个不仅仅是适用于Unity xff0c 大多数dll的
  • Steam游戏的爬取与分析

    Steam游戏的爬取与分析 本文爬取了steam冒险类游戏中热销产品中的7500个游戏进行统计分析 1 首先要先知道网页链接的组成形式 xff1a 2 其次查看我们想要爬取的信息区域 xff1a 3 开始分析 xff1a xff08 1 x
  • word里面的自带编辑器公式怎么转换成math type公式

    这是最近产生的一个问题 xff0c 还在解决中 已解决 这个问题出现主要是因为老板要编书 xff0c 然后一开始是让我们用word自带的编辑器进行编辑 xff0c 现在突然变化 xff0c 让我们全部改成math type格式 首先百度ma
  • Ubuntu 20.04 无法解析软件包文件 /var/lib/dpkg/status

    出现问题 E 无法解析软件包文件 var lib dpkg status 1 W 您可能需要运行 apt get update 来解决这些问题 E 软件包缓存文件损坏了 截图 xff1a 这东西我试了前辈的博客的方法 xff0c 瞎套果然不
  • 如何进入Ubuntu 18.04.1 LTS的根目录

    Ubantu虽然在文件操作上已经有了比较完善的桌面版 xff0c 但是有时候我们想在文件夹找到某一目录还是很难找到的 这个时候我们可以先到根目录下 xff0c 然后在依次查找相应文件夹 另外 xff0c 此操作对于不习惯或者不会使用vi或者
  • Linux下V4L2调用摄像头设备程序崩溃

    问题描述 使用V4L2驱动调用摄像头 xff0c 只能打开一次摄像头 xff0c 第二次打开时程序崩溃 原因 在获取相机数据流时我们一般会使用mmap 来将linux内核空间映射到用户空间 xff0c 在关闭相机时应当调用munmap 解除
  • 时钟恢复(CDR:Clock and Data Recovery)和PLL/DLL

    CDR的作用及应用场景 CDR的主要有两大作用 xff0c 第一是为接收器端各电路提供时钟信号 xff1b 第二是对接收到的信号进行判决 xff0c 便于数据信号的恢复与后续处理 CDR在各种高速PHY RX的应用 xff1a 比如高速ph