微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 可编程定时/计数器提高输出频率准确度方法

可编程定时/计数器提高输出频率准确度方法

时间:03-07 来源:互联网 点击:

将单片机内置或专用可编程定时/计数器作脉冲发生器,一般输入脉冲由晶振产生经过整形或分频后形成,有很高的频率准确度和稳定度。设输入脉冲频率为fin,期望输出脉冲频率为f,应置入脉冲发生器的计数值N=fin/f。当f为fin的约数,则N为整数,f与fin的准确度相同;当f不为fin的约数,则N 也不为整数,N=n+δ,其中n为N的整数部分,δ为 N 的纯小数部分。由于计数值只能为整数,实际计数值Np只能取N的近似数n或n+1,竞争输出脉冲频率fp=fin/Np。因Np的近似,fp与f间必然存在误差,且此误差分量较之因fin准确度和稳定度有限引起的误差分量可能大得多。f的准确度主要受Np的近似影响。本文在不计由fin准确度和稳定度影响的条件下,分析由Np引起f误差的特点,探讨消除或减小因Np引起f误差的方法,从而提高f的准确度。

1 单时钟源时,因Np近似影响输出频率准确度分析

当脉冲发生器输入脉冲为fin时,若最大计数值为nmax,则Np取值可能为1,2,…,nmax,有nmax种可能,相应fp被离散为fin, fin/2,…,fin/nmax,也有nmax种取值的可能。令fin/(nmax+1)=0,这些离散频率将0~fin频段分成nmax个子频段,对于任一f∈(0,fin),总对应一n,使f∈(fin/n+1),fin/n)。Np取n或n+1,近似N,实际上是用fin/n或fin/(n+1) 来近似f。当f为fin的约数时,Np=N,fp=f,绝对误差Δf=fp-f=0,相对误差r=Δf/f=0;当f不为fin的约数时,Δf≠0,r≠0。Δf和r的值与Np的取值方案有关,有以下三种情况:

①Np=n时,fp=fin/n>f, Δf>0,r>0,Δf随f的增大而减小。F趋近于fin/(n+1)时,Δf和r趋于极大值;Δf趋近于fin/n-fin/(n+1)=fin/[n(n+1)]时,r趋近于1/n。采用此方案时,f越接近于fin/(n+1),f的准确性越差,如图1口Δf(f)曲线。

②Np=n+1时,fp=fin/(n+1)f,f0,r0,| Δf|随f的增大而增大。F趋近于fin/n时,|Δf|和|r|趋于极大值;Δf趋近于fin/(n+1)-fin/n=-fin/[n(n+1)])时,r趋近于-1/n。采用此方案时,f越接近于fin/n,f的准确性越差,如图2中-Δf(f)曲线。

③以|Δf|为最小原则,f∈[fin/(n+1),fin/(n+1)+fin/2n(n+1)]时,Np=n+1,fp=fin/(n+1),则Δf0,r0;f∈[fin/(n+1)+fin/2n(n+1),fin/n]时,Np=n,fp=fin/n,则Δf>0,r>0;当f=fin/(n+1)+fin/[2n(n+1)]时,|Δf|和|r|达到极大值。Δf=±fin/2[n(n+1)],r=±1/(2n+1)。采用此方案时,f越接近fin/(n+1)+fin/[2n(n+1)],f的准确性越差(见图2)。

综合以上三种方案的误差情况,因Np近似引起的输出频率误差有以下特点:

①三种方案的Δf(f)曲线都是由一组分辩率为-1的平行线段组成,子频段越宽,斜线段越长。说明各子频率的最大绝对误差值max(|Δf|)及max(|r|)与子频段宽度成正比,而子频段的宽度与n成反比。

②方案③各子频段的max(|Δf|)和max(|r|)为前面方案一半,说明方案③较前两方案更合理。以后讨论Np取值时都按方案③。

③ 评价发生器的准确度,是用给定频段最大相对误差的大小。最大相对误差大小取值越小,则发生器的准确度越高。在子频段[fin/(n+1),fin/n] 中,其极大值为1/(2n+1)。由此可以看出,fin一定时,f越大,n越小;子频段的|r|极大值越大,准确度越低。对于给定输出频段的准确度,可以用该频段频率上限对应的子频段|r|的极大值来评价。换言之,提高了输出高频段的准确度,也就提高了整修输出频段的准确度。

表1是设fin=10 7Hz,f在不同数量级Hz频段,由N近似影响f准确度的指标。

从表1可以看出,f每增加1个数量级,max(|r|)增加1个数量级,max(|Δf|)增加2个数量级。

2 提高输出频率准确度的方法

在给定可编程定时/计时器条件下,针对Np引起输出频率误差的特点,可以采取不同方法消除或减小输出频率误差,从而提高输出频率的准确度。

(2)脉冲发生器仅需有限个确定频点输出时的情况

脉冲发生器仅需有限个确定频点输出时,以下两种方法可以消除因计数值近似引起的输出频率误差。

①单时钟公倍数法。若取fin为这些频点的公倍数,则其中每个频点f对尖的N都为整数,从而消除了因计数值近似引起的输出频率误差。采用此法须注意,一是fin不得超出脉冲发生器的允许输出频率上限;二是确定已知频点的有效位数时,要考虑到晶振的准确度和稳定度。

② 多时钟源公倍数法。采用单时钟公倍数法确定的fin超出脉冲发生器输入频率上限时,可以采用二

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top