刘风华
(接上期)
其中定时器0和定时器1的组成基本一致,以5个触发器(其中4个触发器处理正常计数功能,一个触发器处理进位、置数使能)作为“定时单元”。4个“定时单元”构成16位定时器,通过对“定时单元”定时过程中置数使能的产生和置数值的设定来设置不同的定时状态(如十进制定时则“定时单元”在从9减到0这个过程的下一个时钟周期为置数周期,产生置数使能信号,同时置数值设定为1001:而如果是六进制定时则“定时单元”在从5减到O这个过程的下一个时钟周期为置数周期,产生置数使能信号,同时置数值设定为0110。其他进制的定时过程同理)。通过对4个定时单元的不同设置,可产生全十进制定时方式,二进制定时方式,六十进制定时方式(应用于北京时间的分、秒处理)、二十四进制定时方式(应用于北京时间的小时处理)、三十进制定时方式(应用于北京时间的目处理,因为没有“0天”这种说法,故该处理需要在定时单元的结构上增加一个判定)。
在此结构上,如果需要增加新的定时进制处理,只需要对置数rom逻辑进行增加即可。
定时器T2的设计是针对北京时间二进制表示的定时设计,同时具备基本的二进制定时。它主要处理北京时间小时级及小时以上的数据处理。做为基本二进制定时时,它可单独使用、也可以与定时器T0和定时器T1做级联使用。当它需要处理北京时间二进制表示高位信息处理时,和定时器T1组成32位定时器,定时器l处理“秒”、“分”信息,定时器T2处理“小时”、“天”“月”“年”数据。T2+T1的级联方式,主要用于处理从某一时刻到另一时刻的定时方式。
精度控制
电路提供两种可选择时钟源输入:内部集成硅振荡器和外部晶体振荡器输入。电路设计了两种精度控制方法,其一是时基脚准,时基校准就是解决因定时时钟误差引起的定时累计误差的办法。如果我们能得到一个精确的定时时钟,则没有这部分定时误差。但是不管怎么样的校准,始终是无法得到一个完全精确的定时时钟的,我们要做的是最大可能的得到一个精确定时时钟。
其二是定时校正,指在定时过程中,电路根据设定的某一固定值对定时过程进行校正或者接受外部校正信号对定时过程进行校正。这一方法旨在解决引非时钟误差问题引起的定时误差。同时,该校正方法也可以用于解决因时钟规律性偏差所引起的误差问题,比如时钟的温度漂移偏差问题。
硅振荡器的精度调整方法总的来说有两种:模拟方法和数字方法。模拟调整方法主要是在电路中测过程对电路中的电容阵列进行熔丝处理,调整电容值大小,得到一个较为精确的时钟,但是这种方法需要很大的成本,并且调整后的精度范围为1%左右,如果要得到更高精度的硅振荡器,则需要付出更大的成本,并且给电路设计带来很大的挑战。本电路提供一种更高精度的数字调整方法,该方法可以在电路正常工作前对电路进行在线校准,也可以在测试过程中对批电路进行一次性校准。
本电路的时基校准方法是通过外部端口输入标准S12ms时间长度,以振荡器输出频率对512ms时间进行采样计数,得出一个计数值。然后把该计数值除以512,得到商值和余数。商值做为1ms时钟的基本长度,然后通过判断再次基本长度上增加或者不增加1个计数脉冲来得到最终的1ms时钟信号,这样每一个1ms输出时钟最大误差为1T(硅振荡器输出时钟周期),而s12ms时间最大误差也为1T。上述判断过程以512位周期,即每一个512ms对商和余数做同样的处理。
那么,在不考虑温度等条件的情况下,以该方案得到的时钟进行Nms(N=512X+Y,x=0,1,2,3,……;0≤Y≤5lI)时间长度定时,最大误差为(X+Y/4),T。我们通过分析,可以得出以下几句数据:
438s时间长度定时误差为103T(T为内建振荡器输出时钟周期,当设计值为1us时,此时的定时精度约为2ppm)。
82m时间长度定时误差为104T(T为内建振荡器输出时钟周期,当设计值为1us时,此时的定时精度约为2ppm)。
142h时间长度定时误差为106T(T为内建振荡器输出时钟周期,当设计值为1us时,此时的定时精度约为2ppm)。
在不考虑硅振荡器的温度特性条件下,利用本方法产生时钟进行的定时精度为2ppm,可以等同于压控制式晶体振荡器频率精度的10-6~10-5量级。
本电路给出的定时校正方法主要是用以解决定时过程中因外部环境所引起的定时偏差,或者解决因控制需要而改变定时时间长度的问题。电路在定时过程中,接受外部信号,对定时过程进行实时校正。
图4为定时器的结构示意图,以减计数器为核心,同时接受定时数据和修正数据。定时数据做为减计数器的定时起点,而修正数据主要是用来对进入定时器的定时时钟进行调整。定时器的修正功能模块可以保证,在任何一时刻,处理一帧数据,缓存一帧数据,让进入修正模块处理的数据完成后,缓存器中的数据立刻进入修正模块,而修正总线上的数据进入缓存器。
修正方法是根据外部修正数据的符号位进行增减判断,如果是增长定时过程N个时钟周期,则,在对定时时钟进行N个时钟周期的上升沿磨平处理;如果是缩短N个时钟周期,则在N个时钟周期内,定时器进入双沿触发定时过程。
图5为定时修正波形图,从ADJUST端口输入具体修正时间,图中第一帧为定时增长7个时钟周期,第二帧为定时缩短7个时钟周期。CLKIN为定时时钟,CLKOUT为修正后时钟。T0counter[15:0]为定时器的数据。
功耗考虑
根据电路的工作状态,可以把电路分为配置工作状态和定时状态。任意工作状态下,并非所有的模块都处于工作状态下。在设计模块间接口信号时,同时设计模块电源控制信号。在进行配置工作状态下,通信模块和储存单元处于工作状态,而整个定时处理工作模块处于等待状态。在这段时间,定时处理工作模块一直处于清零状态,而且对定时器时钟信号进行锁定不工作。当处于定时状态下,大部分的通信模块及存储单元不会发生数据变化,此时可以关断EEPROM的参考电流源来降低电路功耗。
结论
通过本文的配置方案和精度方案,可以保证电路定时精度在2ppm左右。采用菊花链式配置定时器结构,可以通过简单的配置得到多种定时应用,满足多种控制要求。