首页 > 技术文库 > 一种快速位同步时钟提取方案及实现

一种快速位同步时钟提取方案及实现

时间:2008-02-19 16:10:00      来源:

“实现位同步的方法很多,本文讨论的是一种提取位同步信号的新型设计方案。该设计在Quartus II下调试通过并在实践中得到应用。实践证明这种方法可以用很少的FPGA资源实现位同步的目的,并具有很高的稳定性和可靠性。

引言

在数字通信系统中,同步技术是非常重要的,而位同步是最基本的同步。位同步时钟信号不仅用于监测输入码元信号,确保收发同步,而且在获取祯同步、群同步及对接收的数字码元进行各种处理的过程中,也为系统提供了一个基准的同步时钟。

随着可编程器件容量的增加,设计师倾向于把位同步电路设计在CPLD/FPGA芯片内部。因此,本文采用Quartus II软件设计了一种新型的位同步提取电路,对电路进行了仿真试验,并使用Altera的Cyclone II系列FPGA芯片EP2C5予以实现。

在CPLD/FPGA上实现位同步,最简单直接的办法就是利用FPGA的片上锁相环。但这种锁相环要求的输入时钟范围是10MHz~100MHz,它对于低速数据显得无能为力。而且,对于中低档FPGA来说,锁相环是稀缺资源,很多时候被用作系统时钟锁相。CPLD片上则没有锁相环,大部分应用都需要设计师自己设计位同步电路。

两种位同步提取电路性能分析

目前在CPLD/FPGA上常用的位同步方案可分为两类:一是采用锁相环的闭环相位调整电路,二是采用开环结构的位同步电路。下面用两个典型的设计电路来讨论这两种方案的优缺点。

基于超前滞后型锁相环的位同步提取电路

这种电路一般采用添/扣门结构,如图1所示,每输入一个码元后,根据鉴相器输出是超前还是滞后,通过反馈回路控制的添/扣门来调整相位,使之逼近输入码元的相位。为了提高精度,这种方案只能采用更短的调整脉冲,一旦失步,就需要通过反馈回路重新调整。每一个超前和滞后脉冲仅能调整一步,如果接收码元出现连“0”或是连“1”的情况,锁定时间会很长,使其同步建立时间和调整精度变得相互制约。尽管有此缺点,但由于这种结构具有失锁后的自我调节性,因此,码元消失或是码元相位出现抖动时,同步脉冲不会出现较大变化,仍然可以输出稳定的同步脉冲。

图1 数字锁相环法位同步提取原理框图

采用开环结构的快速位同步电路

由于这种结构没有采用闭环的相位调节电路,所以要求在每一个输入码元跳变沿实现与输出的同步脉冲跳变沿相位对齐。所以,通常采用这种结构的位同步电路能够快速实现同步。其典型实例如图2所示。

图2 开环位同步提取电路框图

跳变沿提取电路的作用是,当产生一个边沿脉冲时,它直接反映了输入信号的真实相位。以它为基准,就可以有效地提取出与输入信号同步的时钟。时钟同步的原理就是利用这个边沿脉冲清零计数器,输出反映输入码元相位的一个高精度时钟源周期的短脉冲。图中状态寄存器保证了在接收码元出现连“0”或是连“1”时仍然会有固定的反映码元时钟的短脉冲输出。可见,这种设计与数字锁相环法相比,优点主要是可以快速提取位同步脉冲,并进行实时输出。另外,这种电路结构要更节省硬件资源。

该电路也有两大缺点,首先,输出S并不是占空比为50%的时钟脉冲,而是间隔不固定的短脉冲。此缺点可以通过增加一个时钟整形电路来解决。第二个缺点是,由于跳变沿提取电路的输出X3(clr)具有对计数器清零的作用,如果跳变沿出现抖动的话,这种跳变沿会和计数器原先的输出产生冲突,造成输出时钟信号占空比大幅度变化,严重时会出现毛刺。这对后续电路功能的实现无疑会产生致命的影响,很可能导致设计失败。

新型快速位同步提取方案

综合以上两种设计的优缺点,本文提出了一种新型的设计方案,其原理框图如图3所示。该方案实现位同步的基本原理是利用输入码元的跳变沿脉冲作为计数器的清零输入信号,这里高精度时钟的频率为F,码元速率为f,取F=2Nf=2N/T(T为输入的不归零码元的宽度)。原理图中的计数器为N进制自动增加计数器。当输入清零信号后,计数器输出翻转。当输入码元出现连“0”或是连“1”时,一个码元的长度为2NT。由于计数器为N进制,计数器的计数值回到0时,计数器的输出仍然翻转,占空比为:NT/2NT=50%。这样就保证了一个输入码元的宽度对应了占空比为50%的时钟信号,即实现了输入码元与计数器输出CLKOUT时钟的同步。

图3中数字滤波器的作用是将输入码元中的窄脉冲干扰滤除掉,这部分电路较简单,在此不作介绍。跳变沿提取电路的作用仍然是提取码元的跳变沿,这部分作用和实现原理与图2介绍的方法相同。其中,跳变沿提取电路如图4所示。

图3 新型位同步提取电路框图

图4 码元跳变沿脉冲产生电路

固定延迟单元的作用是,将经过跳变沿提取电路之后的码元信号进行固定时钟周期的延迟,使之与计数器的输出同相,从而达到位同步。

本设计的关键点是带清零抖动判断的N进制计数器的设计。当计数器清零输入没有抖动,而严格按照t=n×2NT时间出现时(当出现连“1”或是连“0”时,式中n>1,否则n = 1),计数器计到“0”和清零脉冲同时生效,计数器输出翻转,这时的输出时钟是稳定的。计数器的清零输入信号是由码元的边沿脉冲提供的,所谓清零抖动实际上就是输入码元的边沿位置出现抖动,这是符合实际情况的,因为信号的传输路径上不可避免地会产生衰减,并受到干扰,发送方的数据发送时钟也有可能存在抖动。下面讨论这种抖动对N进制计数器输出产生的影响:

1.当输入的不归零码元的跳变沿出现的时间略小于2NT的整数倍时,称之为前向抖动。此时计数器的清零脉冲出现在计数器还没有计数到 “0”的某个计数值的位置,比如当计数器计到N-1时,清零脉冲出现,于是计数器被清零脉冲清零,同时输出脉冲翻转。这种情况会使输出的时钟脉冲比估计的翻转时间提前aT=(0+N-(N-1)+1)T=2T,这对时钟输出不会产生不利影响。而且,时钟的翻转时间实时反映出码元的变化,有利于后续电路功能的实现。

2.当输入的不归零码元的跳变沿出现的时间略大于2NT的整数倍时,称之为后向抖动。此时计数器的清零脉冲出现在计数器计数到“0”之后的某个计数值的位置,比如当计数值为2时,清零脉冲出现。现在来看计数器的输出,首先当计数器计到“0”前,计数器输出一直维持在“0”;计数器计到“0”后,计数器输出自动翻转为“1”,然后继续计数;当计数值为2时,清零脉冲出现,于是计数器被清零脉冲清零,同时输出脉冲翻转为“0”,计数器输出就会出现持续时间为bT=(2-0)T=2T的窄脉冲。当接收电路的时钟里出现这种不可预测的窄脉冲时,接收电路位同步之后的后续电路的功能也就无法正常实现了,这也就是本文刚开始讨论的采用开环结构的快速位同步电路的缺点。

本文的设计方案中所采用的计数器是利用VHDL语言设计的、带清零抖动判断功能的计数器。具体来说,它可以判断清零抖动为前向抖动还是后向抖动。如果是后者,则忽略此次清零脉冲,同时将此之后的某个计数值减去b,这样做的目的是防止这种抖动带来的影响出现累加。依照以上分析及处理办法,可以设计出带有清零抖动判断功能的计数器。

a:process(clk,clr) begin

if clkevent and clk=1 then

if clr=1 and count>c then count<=0;

elsif clr=1 and count=0 then count<=1; zero<=1;

elsif clr=1 and count>0 and count<=c then temp<=count;

elsif count=N/2 then

if zero=1 then count<=N/2; zero<=0;

elsif temp=0 then count<=count+1;

else count<=N/2-temp+1; temp<=0;

end if;

else count<=count + 1;

end if;

end if;

end process a;

b:process(clk,clkout) begin

if clkevent and clk=1 then

if count=0 then clkout<= not clkout;

end if;

end if;

end process b;

声明:本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原网站所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱:[email protected]。

分享到:

猜你喜欢

我要评论

quartus利用锁相环产生时钟_一种快速位同步时钟提取方案及实现相关推荐

  1. 锁相环载波同步MATLAB实现,利用锁相环实现载波同步

    利用锁相环实现载波同步 一:实验目的:利用matlab 验证锁相环实现载波同步的原理和方法. 二:实验要求:设输入已调信号为FM 信号,该调频信号由100Hz 的消息正选拨调制1kHz 的载频而成.试 ...

  2. 锁相环载波同步MATLAB实现,MATLAB中利用锁相环实现载波同步

    利用锁相环实现载波同步 一. 实验目的:利用matlab验证锁相环实现载波同步的原理和方法 二. 实验要求:设输入已调信号为FM信号,该调频信号由100Hz的消息正选拨调制1kHz的载频而成.试用锁相 ...

  3. 基于ESO的永磁同步电机无感FOC 采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息

    基于ESO的永磁同步电机无感FOC 1.采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息,从而实现无位置传感器控制: 2.提供算法对应的参考文献和仿真模型. 购 ...

  4. 锁相环环路滤波器计算公式_锁相环PLL的电路原理以及基本构成

    锁相环 (phase locked loop),顾名思义,就是锁定相位的环路.学过自动控制原理的人都知道,这是一种典型的反馈控制电路,利用外部输入的参考信号控制环路内部振荡信号的频率和相位,实现输出信 ...

  5. 锁相环环路滤波器计算公式_锁相环计算方法

    2.1.2 锁相环分频 锁相环分频由参考分频和可编程分频组成,由 MC145152 及 MC12022 实现. 分频框图如下: 图中 PD 为数字鉴相器, f o 为压控振荡的输出频率(即发射频率) ...

  6. 锁相环环路滤波器计算公式_锁相环计算方法.doc

    锁相环计算方法 2.理论分析计算与电路设计 2.1 锁相环 2.1.1 锁相环原理 为了使系统产生稳定的载波,本系统设计中采用锁相环路.锁相环路是一种反馈控制电路,将参考信号与输出信号之间的相位进行比 ...

  7. 幼儿园手工之自制时钟_幼儿园手工之自制时钟,提高孩子良好的时间观念

    原标题:幼儿园手工之自制时钟,提高孩子良好的时间观念 今天,Yoyo带来各种各样的手工时钟,用有趣好玩的方式,让孩子学会认时间! 文末附上了精华知识,用这些方法教孩子更有效! 纸盘时钟 [准备材料]纸 ...

  8. java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...

    编写程序显示一个时钟.示例输出如图所示. 代码: package com.DisplayClock; import javax.swing.*; import java.awt.*; import j ...

  9. java编写数字时钟_用JAVA写数字时钟

    展开全部 import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; ...

  10. 后氧传感器损坏的危害_几种快速判断氧传感器故障的简便方法

    氧传感器异常时,不仅会使汽车尾气中的有害气体含量超标,而且还会使发动机的燃油消耗增加.1. 观察氧传感器外观颜色01外部破损的检查 先从排气管上拆下氧传感器,直观检查氧传感器外壳上的通风孔是否被堵塞, ...

最新文章

  1. mysql简拼_mysql实现汉字换拼音,及汉字转简拼
  2. svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
  3. Java 摄氏和华氏之间的转换
  4. 浅谈SQL Server数据库分页
  5. SQL基础-- 数据处理(DML、RETURNING、MERGE INTO)
  6. webserver之定时器
  7. JavaScript随机排序算法1
  8. ASP.NET输入文本框自动提示功能
  9. 响应式布局与自适应式布局有什么不同
  10. 【优化算法】龙格-库塔优化算法【含Matlab源码 1799期】
  11. Luogu3455[POI2007] ZAP-Queries
  12. js修改css样式的方法,js如何设置css样式?js修改css样式的方法
  13. java反编译工具jd-gui下载与使用
  14. python 上传文件到服务器(模拟网页前端上传)
  15. weblogic安装以及异常解决方法【转】
  16. Spring源码解析一 (IOC容器初始化深度解析)
  17. Errors occured, no packages were upgraded. ⇒ ERROR: Failed to install packages to new root.
  18. 爬虫系列——做爬虫必备:各大网站蜘蛛UA
  19. JSON.prase()和 eval()区别
  20. 电脑重装系统后序列号怎么查

热门文章

  1. Open Yale course:Listening to Music
  2. 微前端(single-spa和qiankun)
  3. js文本框设置必填项_表单字段必填项JS代码
  4. 【爬虫】链接二手房信息爬取
  5. TARA-汽车安全概念
  6. Python 批量发送邮件脚本
  7. Apple Push Notification service
  8. 【C#】基础篇(3) C#实现串口助手,解决中文乱码
  9. python --opencv图像处理轮廓(寻找轮廓、绘制轮廓)详解
  10. 计算机课件网站,课件-优秀课件大全-瑞文网课件频道