引 言
同步串行口是一种常用的串行通信接口方式,对于单向数据传输,它通常需要同时提供数据、位时钟、帧同步脉冲三路信号。如在印制电路板上直接利用同步串行口实现板际数据传输, 那么这种三线连接方式不但浪费导线, 而且往往受环境的影响很难实现三路信号间的同步。利用数字锁相环可以从串行位流数据中恢复出接收位同步时钟。有了位同步时钟就可以很容易地提取出帧同步脉冲。这样, 在印制板上只需一根数据线就可以接收来自板外的同步串行数据, 简化了对外接口关系。本文以单线4MHz同步串行数据的接收为例, 介绍利用数字锁相环恢复位同步时钟的设计与实现。
2 环路总体结构及工作原理概述
数字锁相环(DPLL)是一种相位反馈控制系统[1]。它根据输入信号与本地估算时钟之间的相位误差对本地估算时钟的相位进行连续不断的反馈调节,从而达到使本地估算时钟相位跟踪输入信号相位的目的。DPLL 通常有三个组成模块: 数字鉴相器(DPD)、数字环路滤波器(DLF)、 数控振荡器(DCO)。根据各个模块组态的不同, DPLL 可以被划分出许多不同的类型。根据设计的要求,本文采用超前滞后型数字锁相环[1](LL- DPLL)作为解决方案, 图1是其实现结构。在LL- DPLL中,DLF 用双向计数逻辑和比较逻辑实现,DCO 采用加扣脉冲式数控振荡器。这样设计出来的DPLL具有结构简洁明快, 参数调节方便, 工作稳定可靠的优点。
环路的工作原理如下: 超前滞后型数字鉴相器LL- DPD 比较输入位流数据DataIn 与本地估算时钟ClkEst的相位, 给出相位误差信号Sign 和AbsVal(两者合并记为PhsDif)。DLF对相位误差信号进行平滑滤波, 并生成控制DCO 动作的控制信号Deduct 和Insert。DCO 根据控制信号给出的指令, 调节内部高速振荡器的震荡频率, 使其输出时钟ClkEst(同时反馈给LL- DPD)的相位跟踪输入数据DataIn的相位。
环路模块具体功能及其电路实现
下面沿环路依次介绍LL- DPLL各个组成模块的详细功能、内部结构及对外接口信号。
3.1 超前-滞后型数字鉴相器(LL-DPD)
与一般DPLL 的DPD 的设计不同,位同步DPLL 的DPD需要排除位流数据输入连续几位码值保持不变的不利影响。LL- DPD 为二元鉴相器, 在有效的相位比较结果中仅给出相位超前或相位滞后两种相位误差极性, 而相位误差的绝对大小固定不变。LL- DPD通常有两种实现方式: 微分型LL-DPD 和积分型LL-DPD。积分型LL- DPD具有优良的抗干扰性能, 而它的结构和硬件实现都比较复杂。微分型LL- DPD 虽然抗干扰能力不如积分型LL- DPD, 但是结构简单, 硬件实现比较容易。本文采用微分型LL- DPD, 将环路抗噪声干扰的任务交给DLF模块负。
如图2所示, LL- DPD 在ClkEst跳变沿(含上升沿和下降沿)处采样DataIn上的码值, 寄存在Mem中。在ClkEst下降沿处再将它们对应送到两路异或逻辑中, 判断出相位误差信息并输出。Sign 给出相位误差极性, 即ClkEst 相对于DataIn 是相位超前(Sign=1)还是滞后(Sign=0)。AbsVal 给出相位误差绝对值: 若前一位数据有跳变, 则判断有效, 以AbsVal输出1表示; 否则,输出0表示判断无效。 图3显示了LL- DPD模块的仿真波形图。
3. 2 数字环路滤波器(DLF)
DLF用于滤除因随机噪声引起的相位抖动, 并生成控制DCO 动作的控制指令。本文实现的DLF内部结构及其对外接口信号如图4所示。
滤波功能用加减计数逻辑CntLgc实现, 控制指令由比较逻辑CmpLgc 生成。在初始时刻,CntLgc 被置初值M/2。前级LL- DPD模块送来的相位误差PhsDif 在CntLgc 中作代数累加。在计数值达到边界值0或M后, 比较逻辑CmpLgc 将计数逻辑CntLgc同步置回M/2, 同时相应地在Deduct 或Insert引脚上输出一高脉冲作为控制指令。随机噪声引起的LL- DPD相位误差输出由于长时间保持同一极性的概率极小, 在CntLgc 中会被相互抵消, 而不会传到后级模块中去, 达到了去噪滤波的目的。
计数器逻辑CntLgc 的模值M 对DPLL的性能指标有着显著地影响。加大模值M, 有利于提高DPLL 的抗噪能力, 但是会导致较大的捕捉时间和较窄的捕捉带宽。减小模值M 可以缩短捕捉时间, 扩展捕捉带宽, 但是降低了DPLL 的抗噪能力。根据理论分析和调试实践, 确定M 为1024,图中计数器数据线宽度w可以根据M确定为10。
3.3 数控振荡器(DCO)
DCO 的主要功能是根据前级DLF 模块输出的控制信号Deduct 和Insert 生成本地估算时钟ClkEst, 这一时钟信号即为DPLL恢复出来的位时钟。同时, DCO 还产生协调DPLL 内各模块工作的时钟, 使它们能够协同动作。要完成上述功能, DCO 应有三个基本的组成部分: 高速振荡器(HsOsc)、相位调节器(PhsAdj)、分频器(FnqDvd), 如图5 所示。
高速振荡器(HsOsc)提供高速稳定的时钟信号Clk64MHz, 该时钟信号有固定的时钟周期, 周期大小即为DPLL 在锁定状态下相位跟踪的精度, 同时, 它还影响DPLL 的捕捉时间和捕捉带宽。
考虑到DPLL 工作背景的要求,以及尽量提高相位跟踪的精度以降低数据接收的误码率,取HsOsc输出信号Clk64MHz 的周期为15.625ns, 即高速振荡器HsOsc 的振荡频率为64MHz。
PhsAdj 在控制信号Deduct 和Insert 上均无高脉冲出现时, 仅对Osc输出的时钟信号作4分频处理, 从而产生的Clk16MHz时钟信号将是严格16MHz 的。当信号Deduct 上有高脉冲时, 在脉冲上升沿后, PhsAdj 会在时钟信号Clk16MHz 的某一周期中扣除一个Clk64Mhz时钟周期, 从而导致Clk16MHz时钟信号相位前移。当在信号Insert 上有高脉冲时, 相对应的处理会导致Clk16MHz时钟信号相位后移。图6为相位调节器单元经功能编译仿真后的波形图。
引入分频器FnqDvd 的目的主要是为DPLL 中DLF 模块提供时钟控制,协调DLF 与其它模块的动作。分频器FnqDvd 用计数器实现, 可以提供多路与输入位流数据有良好相位同步关系的时钟信号。在系统中, 分频器FnqDvd提供8路输出ClksSyn[7: 0]。其中, ClksSyn1 即为本地估算时钟ClkEst,也即恢复出的位时钟;ClksSyn0 即为DLF 模块的计数时钟ClkCnt,其速率是ClkEst的两倍, 可以加速计数, 缩短DPLL 的捕捉时间, 并可扩展其捕捉带宽。
4 环路实现
随着电子系统设计理念不断向前发展, 可编程逻辑器件(PLD)和硬件描述语言(HDL)倍受青睐。利用HDL语言配合PLD 器件进行片上系统(SoC)设计, 可以大大缩短设计时间, 减小印刷电路板(PCB)面积, 提高系统的可靠性, 增强设计的灵活性[3]。基于上述考虑, 本文在Altera 公司MaxplusII 开发软件平台上, 利用VHDL语言运用自顶向下的系统设计方法, 将数字锁相环嵌入在高密高速FPGA 芯片(PLD 器件的一种)EP1K30TI144- 2 中。
利用MaxplusII对实现的DPLL 进行仿真, 在环路锁定时, 得到如图7 所示的仿真波形。
为了更好地说明DPLL环路的工作情况, 图中除了给出DPLL 基本的输入输出信号DataIn、Clk64MHz 和ClkEst 外, 还将环路内部的重要信号作为输出显示出来。由于MaxPlusII 可仿真的最小时间单位是0 1ns, 不能满足DPLL 环路实际需要的仿真精度, 故将所有信号在时间轴上伸展为原来的100 倍, 这并不影响问题的本质。从图7 中可以看出, 实现的DPLL环路可以很好的满足系统设计的要求。
5 结束语
数字锁相环技术现在正处于快速发展阶段, 在信息系统中有着日益广泛的应用。本文提供了一种自顶向下的、模块化的数字锁相环设计方法。设计出的数字锁相环具有各模块间分工明确、接口清晰、调试容易等优点, 而且便于系统的升级。例如, 在LL- DPD模块中引入计数器, 而将DLF 用加法器实现还可以大大改善环路性能。在实际使用中, 环路表现出捕捉时间短、抖动小、抗噪声能力强的良好特性。
参考文献
1 胡华春, 石玉. 数字锁相环原理与应用[M]. 上海科学技术出版社, 1990.
2 方建邦, 董献忱, 王天玺. 锁相环原理及其应用[M]. 人民邮电出版社, 1988.
3 赵俊超. 集成电路设计VHDL 教程[M]. 北京希望电子出版社, 2002.
4 黄正瑾, 徐坚, 章小丽, 熊明珍. CPLD 系统设计技术入门与应用[M]. 电子工业出版社,
2002.