基于FPGA的数字锁相环DPLL同步提取时钟信息

发布于:2025-06-22 ⋅ 阅读:(19) ⋅ 点赞:(0)

应用场景说明

解码板接受外界传过来的曼彻斯特码数据流,理想状态下通过计算信号频率就可以 利用锁相环生成对应需求频率的解码时钟,进而完成解码。但是实际情况传过来的曼彻斯特码数据流本身存在一定的抖动或者说叫相位偏差,即每个比特的时钟周期不一定是固定的,可能会长一点,可能会短一点,因此如果仍然始终锁相环生成的固定的频率的时钟,就一定会出现解码错误的情况。
因此数字锁相环的意义就是根据接受的曼彻斯特码数据流提取生成动态的解码时钟,进而使得时钟的上升沿以及下降沿能够取得正确的数据,进而完成正确解码。
实际效果图如下所示:
在这里插入图片描述
其实作用对象不一定非的是曼彻斯特码数据流,类似的二进制比特流都可以结合去修改参数进而完成使用。

一、解码板工作流程

工程首先通过phasecomparator模块对输入的5MHz曼彻斯特编码信号和反馈信号进行相位和频率检测,产生Lead和Lag脉冲,再由随机游走滤波器(randomwalkfilter和variableresetrandomwalkfilter)将脉冲平滑为微调指令,驱动可变分频器freqdivider_multiple根据指令动态调整分频比,输出稳定的5MHz恢复时钟和10MHz采样时钟;随后用恢复出的10MHz时钟在yima模块中对曼彻斯特信号进行采样和解码,生成NRZ比特流,再由one_sixteen模块在10MHz时钟下将比特流移入16位寄存器并在移满后发出send信号,最终由SPI_Master模块在50MHz系统时钟下响应send信号,通过SPI协议将并行数据串行输出。整个流程从时钟提取到数据解调再到SPI发送,构成了一条完整的曼彻斯特编码处理链路。
在这里插入图片描述
解码板软件框图

二、数字锁相环构成

数字锁相环模块负责提取曼彻斯码中的时钟信息,通过设计相位比较器、数控振荡器以及环路滤波器实现跟踪曼彻斯特码数据的时钟。考虑到数据相位在传输过程中存在一定的波动,因此数字锁相环模块需要不断根据实际相位偏差进行调整,保障提取时钟的相位偏差小于解码偏差范围,提供一个相对稳定可靠的解码时钟。

如图所示,数字锁相环的实现思路是通过相位比较器检测输入曼彻斯特码与本地生成时钟的相位差异,生成超前或滞后信号。随后由环路滤波器对相位误差信号进行累积,输出调整脉冲。分频器根据调整脉冲动态调节分频系数,通过增减分频比的方式修正本地时钟的相位和频率,使其逐步与曼彻斯特码的时钟信息同步。当相位误差稳定在允许范围内时,系统进入锁定状态。
在这里插入图片描述

1.鉴相器模块

鉴相器模块相关输入输出信号说明如表1所示。
在这里插入图片描述
鉴相器模块首先进行参考信号以及反馈信号的上升沿以及下降沿缓存判断,波形如图1所示。相关信号与判断锁定以及生成超前或者滞后脉冲相关。
在这里插入图片描述
图1 信号上升沿以及下降沿判断缓存
判断锁定标志的条件:
如果未锁定会产生超前和滞后脉冲,如果锁定便不再产生。
条件判断:最理想的状态就是检测到参考信号上升沿后同时检测到反馈信号的上升沿。但是条件过于苛刻,所以现在将上升沿信号打拍一次,也就是延迟一个时钟周期。Edge信号就是延迟一个时钟周期的参考信号上升沿。
未锁定情况:
在这里插入图片描述
锁定情况:
在这里插入图片描述
整体系统刚开始,属于是未锁定情况,所以继续判断产生超前和滞后信号。
判断超前和滞后信号:
在这里插入图片描述

2.滤波器模块

滤波器模块相关输入输出信号说明如表2所示。
在这里插入图片描述滤波器调用Randomwalkfilter模块讲解
重要计数器参数说明:
FilterCounter计数器:根据lead或者lag对计数器进行加或者减,在达到计数器的最大值或者最小值时生成超前和滞后脉冲。
这些参数可以自己修改。
这个地方解释一下为什么代码中总会出现256-某个数。
假设lead使得计数器加,lag使得计数器减
FilterResetValue表示累加或者累减判断数,原始是8位宽的计数器,所以最大数是255。初始值是0,如果累加4个就到了最小值4,如果累减4个,就是0-4,就变成了256-4的意思。
在这里插入图片描述
图中可以发现,前期只有lead信号,每累加4个输出一个滞后脉冲。
在这里插入图片描述
滤波器模块顶层讲解:
上面调用的小滤波器模块根据lead和lag生成了超前和滞后脉冲,但是这个脉冲不是滤波器整体输出的最终脉冲,而是将这个脉冲封装成up和down再次进行作为滤波器中的复位器计数器进行滤波。因为当顶层中的lead和lag计数达到最大值或者最小值时,为实现更好效果就利用up和down生成的复位计数器对计数器重装值进行赋值。所以小滤波器的作用就是控制复位计数器,进而控制滤波计数器的重装值。
相关计数器参数说明与上方一致。
顶层滤波计数器工作波形如图所示。
在这里插入图片描述
达到滤波计数器的最大值或者最小值后,计数器需要重装值,如图所示。最终根据这个滤波计数器输出超前和滞后脉冲。
在这里插入图片描述

3.分频器模块

在这里插入图片描述
在这里插入图片描述

总结

仿真理解过程,然后上班抓取波形调试,上板跟仿真可能存在不同情况,主要取决于你信号质量或者说变化幅度。


网站公告

今日签到

点亮在社区的每一天
去签到