1 引 言
现代高集成度的数/模混合集成电路中,锁相环广泛的应用于频率合成和时钟恢复电路。其中,电荷泵锁相环以其电路实现简单、无限的捕获带及非常稳定的性能受到青睐。对电荷泵锁相环锁定时间的仿真,传统的方法都是基于固定步长按时间扫描的方式进行的,模型精确的计算每个时间点的环路参数的变化情况。为了达到较高的时间分辨率,时间步长必须足够小,那就意味着,整个仿真过程需要计算大量时间点,而仿真一次需要的总时间和计算量是由要计算的时间点数成正比的,所以,传统的仿真方法从根本上限制了仿真速度的提高。
本文下面要介绍的事件驱动模型则完全摆脱了按步长计算的模式,它只需要计算特定的时间点,使得时间点的总数相比按步长扫描的方式大大减小了,从而大大地提高了仿真速度,并且这种方法具有良好的精确性。本文主要在事件驱动思想的基础上提出了对电荷泵锁相环锁定时间进行快速仿真的方法,并且用Matlab语言实现了模型。
2电荷泵锁相环的基本原理
电荷泵锁相环的原理框图如图1所示。
环路包括如下几个部分:鉴频鉴相器(PFD)、电荷泵(CP)、环路滤波器(LF)、压控振荡器(VCO)、分频器。下面简单的描述它的工作原理:环路通过鉴频鉴相器检测输入信号fi(φ)与输出信号fy(φ)之间的相差和频差,产生输出电压信号UP和DN来控制电荷泵工作,电荷泵电路对环路滤波器充、放电以产生加在压控振荡器的控制电压,该控制电压与鉴相误差成正比,从而迫使压控振荡器的频率或相位向鉴相误差减小的方向改变。当鉴相误差为零时,就表示锁相环路进入了锁定状态。
3事件驱动的基本思想
事件驱动思想的应用相当广泛,下面做简单的介绍,一个事件驱动模型一般由以下3个部分组成:事件产生源、调度室、事件处理器,如图2(a)所示。
举个简单的例子说明事件驱动的基本思想:对一台个人计算机,所谓的事件产生源就好比鼠标的1次点击,或者键盘的1次操作。调度室收集这些事件并且按某种优先顺序建立1个处理列队,同时按顺序唤醒相应的处理进程来处理这些事件。
4电荷泵锁相环的事件驱动模型
4.1 事件驱动思想应用于电荷泵锁相环
对于电荷泵锁相环,能发现它同上述的事件驱动思想有类似的地方,作为一个频率与相位反馈系统,鉴频鉴相器收集收入与输出信号,进行频率与相位比较,根据下降沿到达的时刻(假设鉴频鉴相器工作在下降沿触发方式),输出UP和DN信号,电荷泵根据UP和DN信号的不同,工作在3种状态:充电状态、放电状态和高阻状态。低通滤波器和VCO因为电荷泵工作的不同状态而做出不同的响应,控制输出频率与相位的向频差和相差减小的方向变化,新的VCO频率与相位重新与参考信号进行比较,形成新的事件,可以用图2(b)表示这种事件驱动的工作方式。
图2(b)中,A,B和C三种处理模块对应着电荷泵工作在充电、放电和高阻三种工作状态时VCO所发生频率与相位的变化,VCO频率与相位的变化又会触发新事件的产生、形成循环网络、直到环路锁定。
4.2具体实现方法
电荷泵锁相环事件驱动模型是建立在对锁相环电路行为分析的基础上,用事件驱动模型对锁相环进行模拟,其与电路级模拟非常接近,可以很快得到锁相环的动态性能指标。
先来分析电荷泵锁相环工作的特点。如图3所示,鉴频鉴相器根据2个输入端信号的下降沿来临时间(t0,t1,t2,t3,t4,t5,t6等)做出不同的响应,通过UP和DN信号来控制电荷泵电流Ip(t)变化,最终通过控制电压VC(t)控制VCO发生变化,在这个过程中,不需要按照步长计算每个时间环路的响应,而只需要计算关心的时间点(to,t1,t2,t3,t4,t5,t6等),即事件发生的时间点,就可以得到环路的工作特性。
假设相邻2个事件发生的时间用tn,tn+1表示,那么在时间区间[tn,tn+1]里,环路的传递特性可以用连续的微分方程描述,在已知tn时刻环路状态的情况下,通过求解微分方程可以得到下一时刻tn+1的环路状态,同时,还可以计算出下一时刻tn+1的具体值。通过这种递推关系,可以不断的推导出新事件发生的时刻和所处的状态,从而得到环路工作的整个描述。下面推导这种递推关系。
假设参考信号的频率是一个常数,并且采用VCO的线性模型,即:
其中,Ko为VCO增益,Vc为压控电压值,fv0是其自由震荡频率。则参考信号和VCO输出信号的相位方程可以表示成:
假设环路采用图4所示二阶无源环路滤波器,那么可以得到相应的微分方程组。
用VC2tn,Vc3tn分别表示电容C2,C3在tn时刻的电压值,VC2,VC3表示电容C2,C3在tn+1时刻的电压值,代入初始条件,可解得微分方程的解为:
根据上面的方程,可以由上一事件发生时刻的电压值计算得到下一个事件发生时刻的电压值。
同时,利用上面公式作为条件,进一步可以得到描述参考信号和VCO相位特性的递归方程为:
利用这两个递归方程,可以确定下一个触发时刻tn+1在时间轴上的位置,同时能够根据PFD的状态图确定电荷泵的触发方式,进而判断何种事件发生。然后,再把tn+1时刻作为起始时刻,进行下一事件发生时间点和环路状态的推倒,不断循环,从而完整描述整个电荷泵锁相环系统,仿真其时域特性。
4.3仿真结果
根据前面两节的论述,采用Matlab程序语言能够很方便的实现上面的算法,下面举个实例来证明这种方法的正确性。设三阶电荷泵锁相环的环路参数如表1所示,理论上的控制电压可以这样计算:Vc=(fiN-fv0)/KO,计算得到压控电压的理论值为2.272 7 V,与仿真图形比较发现,模型和仿真结果是正确的。同时,作者通过实验进一步验证了锁定时间的正确性。
当电荷泵锁相环应用于信号跟踪时,要求能跟踪频率阶跃变化的信号。此时,模型同样适用,如图6所示,参考信号频率在70μs的时候发生阶跃变化,程序同样能够正确地进行仿真。