08-22 CDR数据时钟恢复电路
CDR是光模块的一个重要组成部分,也叫时钟恢复电路。它的作用主要是从接收到的信号中提取出数据序列,并且恢复出与数据序列相对应的时钟时序信号,从而还原接收到的具体信息。4 级脉幅调制 (PAM4) 由于具有在相同带宽下 2 倍的数据传输速率,得到越来越广泛的应用。在光互连系统中, 当单通道数据速率达到 25Gbit/s 时, 无论在接收端和发射端都需要采用时钟与数据恢复(CDR)电路从高损耗的信号里恢复出高质量的数据, 再通过驱动电路将数据加载到光波上。
, CDR 基本的组成部分包括鉴相器(PD)、 电荷泵(CP)、 环 路 滤 波 器 、 压 控 振 荡 器(VCO)等。鉴相器通过用 VCO 的输出时钟对输入数据进行采样来获得控制信号, 控制信号输出到电荷泵产生控制电压来调节 VCO 的振荡频率,由 此 恢 复 高 质 量 的 时 钟 信 号 和 数据 。目前的CDR电路是在此基本组成上进行优化。
锁相的意义是相位同步的自动控制,能够完成两个电信号相位同步的自动控制闭环系统叫做锁相环,简称PLL。
一个典型的锁相环(PLL)系统,是由鉴相器(PD),压控荡器(VCO)和低通滤波器(LPF)(环路滤波器)三个基本电路组成。PLL工作的基本原理就是将压控振荡器的输出经过分频后与基准信号输入PFD,PFD通过比较这两个信号的频率差,输出一个代表两者差异的信号,再经过低通滤波器转变成一个直流脉冲电压去控制VCO使它的频率改变。这样经过一个很短的时间,VCO的输出就会稳定下来。所以:
PLL并不是直接对晶振进行倍频,而是将频率稳定的晶振作为基准信号,与PLL内部振荡电路生成的信号分频后进行比较,使PLL输出的信号频率稳定
上图所示为PLL电路的基本结构图,此所使用的基准信号为稳定度很高的晶体振荡电路信号。此一电路的中心为相位比较器。相位比较器可以将基准信号与VCO(Voltage Controlled Oscillator)的相位比较。如果此两个信号之间有相位差存在时,便会产生相位误差信号输出。将VCO的振荡频率与基准频率比较,利用反馈电路的控制,使两者的频率为一致。利用这个误差信号,可以控制VCO的振荡频率,使VCO的相位与基准信号的相位成为一致。
PLL可以使高频率振荡器的频率与基准频率的整数倍的频率相一致。由于,基准振荡器大多为使用晶体振荡器,因此,高频率振荡器的频率稳定度可以与晶体振荡器相媲美。
只要是基准频率的整数倍,便可以得到各种频率的输出。
从上图的PLL基本构成中,可以知道其是由VCO,相位比较器,基准频率振荡器,回路滤波器所构成。在此,假设基准振荡器的频率是fr,VCO的频率为fo。
在电路中,假设fr>fo时,也就是VCO的振荡频率fo比fr低时,此时的相位比较器的输出PD如下图所示,产生正脉冲信号,使VCO的振荡器频率提高。相反的,如果fr<fo时,会插产生负脉波信号。
锁相环理论计算:
锁相环中的鉴相器通常由模拟乘法器组成,利用模拟乘法器组成的鉴相器电路如图所示。
鉴相器的工作原理是:设外界输入的信号电压和压控振荡器输出的信号电压分别为:
式中的ω0为压控振荡器在输入控制电压为零或为直流电压时的振荡角频率,称为电路的固有振荡角频率。则模拟乘法器的输出电压uD为:
用低通滤波器LF将上式中的和频分量滤掉,剩下的差频分量作为压控振荡器的输入控制电压uC(t)。即uC(t)为:
式中的ωi为输入信号的瞬时振荡角频率,θi(t)和θO(t)分别为输入信号和输出信号的瞬时位相,根据相量的关系可得瞬时频率和瞬时位相的关系为:
即
则,瞬时相位差θd为
对两边求微分,可得频差的关系式为
上式等于零,说明锁相环进入相位锁定的状态,此时输出和输入信号的频率和相位保持恒定不变的状态,uc(t)为恒定值。当上式不等于零时,说明锁相环的相位还未锁定,输入信号和输出信号的频率不等,uc(t)随时间而变。
因压控振荡器的压控特性如图所示,该特性说明压控振荡器的振荡频率ωu以ω0为中心,随输入信号电压uc(t)的变化而变化。该特性的表达式为
上式说明当uc(t)随时间而变时,压控振荡器的振荡频率ωu也随时间而变,锁相环进入“频率牵引”,自动跟踪捕捉输入信号的频率,使锁相环进入锁定的状态,并保持ω0=ωi的状态不变。
matlab实现QPSK锁相环解调
参考代码:
%程序及结果如下:
clear all;
close all;%仿真数据长度
Simulation_Length=1000;
%基带信号
I_Data=randint(Simulation_Length,1)*2-1;
Q_Data=randint(Simulation_Length,1)*2-1;
Signal_Source=I_Data + j*Q_Data;
%载波信号
Freq_Sample=2400;%采样率,Hz
Delta_Freq=-60; %频偏,Hz
Time_Sample=1/Freq_Sample;
Delta_Phase=rand(1)*2*pi; %随机初相,Rad
Carrier=exp(j*(Delta_Freq/Freq_Sample*(1:Simulation_Length)+Delta_Phase));
%调制处理
Signal_Channel=Signal_Source.*Carrier';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%以下为锁相环处理过程
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%参数清零
Signal_PLL=zeros(Simulation_Length,1);
NCO_Phase = zeros(Simulation_Length,1);
Discriminator_Out=zeros(Simulation_Length,1);
Freq_Control=zeros(Simulation_Length,1);
PLL_Phase_Part=zeros(Simulation_Length,1);
PLL_Freq_Part=zeros(Simulation_Length,1);
%环路处理
C1=0.22013;
C2=0.0024722;
for i=2:Simulation_Length
Signal_PLL(i)=Signal_Channel(i)*exp(-j*mod(NCO_Phase(i-1),2*pi));
I_PLL(i)=real(Signal_PLL(i));
Q_PLL(i)=imag(Signal_PLL(i));
Discriminator_Out(i)=(sign(I_PLL(i))*Q_PLL(i)-sign(Q_PLL(i))*I_PLL(i))...
/(sqrt(2)*abs(Signal_PLL(i)));PLL_Phase_Part(i)=Discriminator_Out(i)*C1;
Freq_Control(i)=PLL_Phase_Part(i)+PLL_Freq_Part(i-1);
PLL_Freq_Part(i)=Discriminator_Out(i)*C2+PLL_Freq_Part(i-1);
NCO_Phase(i)=NCO_Phase(i-1)+Freq_Control(i);
end
%画图显示结果
figure
subplot(2,2,1)
plot(-PLL_Freq_Part(2:Simulation_Length)*Freq_Sample);
grid on;
title('锁相环频率响应曲线');
axis([1 Simulation_Length -100 100]);
subplot(2,2,2)
plot(PLL_Phase_Part(2:Simulation_Length)*180/pi);
title('锁相环相位响应曲线');
axis([1 Simulation_Length -2 2]);
grid on;
%设定显示范围
Show_D=300; %起始位置
Show_U=900; %终止位置
Show_Length=Show_U-Show_D;
subplot(2,2,3)
plot(Signal_Channel(Show_D:Show_U),'*');
title('进入锁相环的数据星座图');
axis([-2 2 -2 2]);
grid on;
hold on;
subplot(2,2,3)
plot(Signal_PLL(Show_D:Show_U),'r*');
grid on;
subplot(2,2,4)
plot(Signal_PLL(Show_D:Show_U),'r*');
title('锁相环锁定及稳定后的数据星座图');
axis([-2 2 -2 2]);
grid on;figure
%设定显示范围
Show_D=300; %起始位置
Show_U=350; %终止位置
Show_Length=Show_U-Show_D;
subplot(2,2,1)
plot(I_Data(Show_D:Show_U));
grid on;
title('I路信息数据');
axis([1 Show_Length -2 2]);
subplot(2,2,2)
plot(Q_Data(Show_D:Show_U));
grid on;
title('Q路信息数据');
axis([1 Show_Length -2 2]);
subplot(2,2,3)
plot(I_PLL(Show_D:Show_U));
grid on;
title('锁相环输出I路信息数据');
axis([1 Show_Length -2 2]);
subplot(2,2,4)
plot(Q_PLL(Show_D:Show_U));
grid on;
title('锁相环输出Q路信息数据');
axis([1 Show_Length -2 2]);
锁相环在调频和解调电路中的应用
调频波的特点是频率随调制信号幅度的变化而变化。压控振荡器的振荡频率取决于输入电压的幅度。当载波信号的频率与锁相环的固有振荡频率ω0相等时,压控振荡器输出信号的频率将保持ω0不变。若压控振荡器的输入信号除了有锁相环低通滤波器输出的信号uc外,还有调制信号ui,则压控振荡器输出信号的频率就是以ω0为中心,随调制信号幅度的变化而变化的调频波信号。由此可得调频电路可利用锁相环来组成,由锁相环组成的调频电路组成框图如图8-4-5所示。
锁相环原理链接
1.鉴相器PD
鉴相器(phasedetector),是能够鉴别出输入信号的相位差的器件,是使输出电压与两个输入信号之间的相位差有确定关系的电路。它是PLL,即锁相环的重要组成部分。
鉴相器有很多种:鉴相器链接
2.压控振荡器VCO
压控振荡器(VCO)是一种将电平变换为相应频率的脉冲变换电路,或者说是输出脉冲频率与输入信号电平成比例的电路。
PAM4时钟数据与恢复电路
25 G Baud/s 的 PAM4 信号进入 CDR 后到达 PD 模块, PD 由 4个时间交织的 1/4 速率同路并行而成, 每条通路工作在 6.25 Gbit/s。每条 PD 通路由 1 个前端电路 (PD-FE) 、重定时寄存器、 PAM4 译码器和 1 个逻辑电路模块构成。其中 PD-FE 采用了 3 个并行的判决器来量化具有 4个电平信息的 PAM4 信号, 并将其输出为 3 位温度计码判决结果; 译码器负责将温度计码转换为二进制码, 即代表 2 倍权重位的最高权重位 (MSB)和 1 倍 权 重 位 的 最 低 权 重 位(LSB)(图 4 中 MSB_6G 和 LSB_6G)信 号 。需要注意的是: PD 时间交织的采样后, MSB_6G 和 LSB_6G 均为 6.25 Gbit/s
的 NRZ 数据; 该数据通过串行转化器进行 4:1 变换, 并汇聚到单路25Gbit/s再输出给驱动器供光器件或测试仪器使用。
PAM4 信号的时钟与数据恢复中最关键的电路模块是 PD, 因其工作在整个 CDR 的最高速率 25G Baud/s,并且负责对带有码间干扰和非线性失真的 PAM4 信号的逻辑判决。如图 所示, PD 的核心部分是其前端电路(图中简写为 PD-FE) , 它由并行的 3条数据通路和 1 条边沿通路构成, 而每条通路均包含了 1 个判决器。由于 PAM4 信号具有 4 个不同的逻辑电平, 因此判决器需依据 3 个不同的电压阈值来判决上述逻辑, 分别为对应于+/-符号判决的逻辑阈值 0, 以及对应 于 ±3 逻 辑 电 平 的判 决 阈 值 ±2。 每 路PD-FE 的输出先进入灵 敏 放 大 器(SA)进一步放大, 再送入 SR型锁存器进行逻辑电平 再 生 。 此 时 PD 判决出的 3 位数据逻辑信号(DataA, B, C)表现 出 温 度 计 编 码 特性, 需要在数据输出之 前 转 换 为 二 进 制码; 并且通过双值逻辑产生出当前时刻数据和时钟边沿相对位置关系的指示信号,
指导锁相环路进行时钟恢复达到数据与时钟边沿的实时对齐。
普遍使用的CDR电路:
普遍使用的CDR电路有:1) 双环结构CDR电路, 由锁相环(PLL) 和延迟锁相环(DLL) 组成,PLL提供所需频率的低抖动正交时钟,D LL将正交时钟的相位调整为最佳采样相位;2) 全数字化CDR电路此C DR采用全数字电路实现, 功耗较低, 但精度有限;3) 无参考时钟 CD R电路[3], 此 CDR不需要提供片外参考时钟, 应用灵活, 但工作频率范围较小。
08-22 CDR数据时钟恢复电路相关推荐
- c# 数据可视化_#OpenVisConf上的22位数据可视化从业者的10点收获
c# 数据可视化 by Siena Duplan 通过锡耶纳·杜普兰(Siena Duplan) #OpenVisConf上的22位数据可视化从业者的10点收获 (10 Takeaways from ...
- 11.2 22大数据c语言自测3题解
写在开头: 22大数据c语言自测3(11.02-11.16)进行时长两周.共10题,共12人参与解答,参与率较低.希望同学们趁着现在题目还比较简单,多参与参与. 想和大家分享一个之前在力扣(leetc ...
- 月亮网摘(2006.08.22)
月亮网摘(2006.08.22) Youtube视频的下载.本地播放及格式转换 特别适合Youtube的忠实"观众"阅读的技术帖,告诉你怎么从加密后的Youtube网页里挖出嵌在其 ...
- 2021.08.22学习内容torch.cat()和torch.stack()函数
torch.cat()函数 将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. def cat(tensors: List[torch.Tensor], d ...
- 论坛议程|COSCon'22 大数据(D)
COSCon'22 开源社/KAIYUANSHE 业界具有广泛影响力的开源年度盛会2022第七届中国开源年会(COSCon22)将于10月29日-30日由开源社举办. 今年,我们的主题是: Open ...
- 4.22作业---数据简单查询
-- 创建数据库 create database mydb charset utf8; -- 使用数据库 use mydb; -- 创建课程表 CREATE TABLE course (cs_id i ...
- 异常作业2(2018.08.22)
2.编写程序接收用户输入分数信息,如果分数在0-100之间, 输出成绩.如果成绩不在该范围内, 抛出异常信息,提示分数必须在0-100之间. 要求:使用自定义异常实现 1 import java.ut ...
- 2017/08/22 工作日志
今日正式开始制作机构.科室选择页面的样式. 最明显的难点就是页面里的滚动,最初使用了H-ui里的滚动样式,但是在里面套Repeater控件时会出现问题,并且,它的翻页是JavaScript脚本,同一页 ...
- 【浮*光】 #noip模拟# 2018.08.22
1.Game [题目描述] 明明和亮亮在玩一个游戏.桌面上一行有n个格子,一些格子中放着棋子. 轮流选择如下方式中的一种移动棋子(图示中o表示棋子,*表示空格): 1) 当一枚棋子的右边是空格子的话, ...
- spring注解方式 2022/08/22
spring注解方式 代码整体布局: 代码如下: pom.xml: spring-1.xml: Student: Test: Test2: spring-2.xml: Car: Driver: Tes ...
最新文章
- php 添加行_php 多行数据同时插入
- 真·无监督!延世大学提出图像到图像无监督模型,实验结果超SOTA
- android 开发清理内存_2019年 11 款最流行的安卓手机清理工具 总有一款适合你
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- java keyadapter_在java中使用keyAdapter和keyEvent时出错
- 保障了罗振宇跨年演讲的PTS铂金版正式上线,产品体验全新升级
- CV之 HOG特征描述算子-行人检测
- 扩展CheckBoxList实现选中绑定
- Python入门之PyCharm中目录directory与包package的区别
- python中利用itchat实现自动回复
- 12306 被质疑过度获取用户隐私;直播答题外挂横行;阿里云辟谣称绝不做虚拟货币 | 一周业界事
- 字节大牛教你手撕Java学习,神操作!
- JasperReport报表开发(一)--原理介绍
- 主流影视网站8合一H5视频源码自动更新数据
- PLC控制一阶惯性纯滞后系统的大林(Dahlin)算法详解(SCL代码)
- Windows 系统封装
- mount qemu qcow2、img
- flappybird android源码,iOS学习之flappyBird游戏的实现
- Python程序设计总结 目录
- 蛋白质的数据预处理个人笔记(2)