分频器是指将不同频段的声音信号区分开来,分别给于放大,然后送到相应频段的扬声器中再进行重放。在高质量声音重放时,需要进行电子分频处理。具体实现形式有偶数分频、奇数分频、锁相环分频电路等,这种结构的分频器只能实现整数分频,或者是仅实现半整数分频和奇数分频[1],一般的锁相环分频电路会有几十微秒级的频率转换时间[2],虽然现在少数芯片有所改善,但是时间也较长。同时,在某些场合下,所需要的频率与给定的频率并不成整数或半整数倍关系,或需要实现对输入信号频率的微调整,此时可采用小数分频器进行分频[3]。
本文提出了一种基于FPGA的小数分频实现方法,给出该方法的设计原理以及实现框图,使用VHDL硬件描述语言和原理图混合输入的设计方式[4],通过Quartus II开发软件,在Altera公司的Stratix II系列EP2S15F484C3型FPGA器件平台上对电路进行仿真,并对仿真结果进行分析,由仿真结果可以看出该方法可有效实现对输入信号的50%占空比的小数调整,解决了在一些场合下整数分频对输入频率调整幅度较大,频率转换时间较长的问题[6]。
1 设计方案及其原理
该方法是通过两级计数电路来实现小数分频的,级利用输入信号对系统时钟计数,并对计数结果进行修正;第二级利用修正后的结果通过定时操作产生频率调整后的输出信号。电路图的组成如图1所示。
以输入信号的脉宽作为闸值,计数器1在系统时钟的控制下进行加计数,设此计数结果为n。为实现对输入信号频率的调整,通过给n加上一个调整值N来实现对计数结果的调整,调整后的结果存于寄存器3,同时计数器1复位并等待进入下一轮操作。计数器2在同一系统时钟控制下对寄存器3的值减计数。当计数器2减到0时产生下溢信号,如此重复,计数器2将产生频率调整后的非对称方波,利用模一计数器将其调整为占空比为50%的时钟信号。上述方法中,N的值决定了输出信号与输入信号间的频率关系,通过对N的设置来改变该方法的分频倍数。
在具体实现时,为了避免计数器2置入的数据发生冲突,n的修正值先存放在寄存器3中,这样,每当计数器2减到0时,再置入n的修正值,则可以避免第二级计数器没有输出信号的问题。
1.2 小数分频参数的取值范围
使用本设计方法对输入信号的频率进行小数量级的分频,要得到有效、可靠的结果,调整参数N只在一定范围内取值。
由式(1)可知:由于输出信号频率K>0,故N>-n。
2 仿真结果及分析
2.1 电路功能的仿真及分析
理论上,当fin=1 MHz、N=1时,n=100,K=1.01, fout≈0.990 1 MHz。
以上述参数对电路进行仿真,仿真结果如图2所示。
N在有效范围内变化,使用上述参数对电路进行仿真得到表1所示仿真结果。
对电路进行调整,把N减小一个单位,即:N=1,由式(1)得分频比K2=1.02,电路的仿真结果如图4所示。
文中提出了两级计数电路来实现小数分频的方法,并对结果进行仿真和分析,该方法可以实现分频比为任意小数的小数分频,或者可高地完成对输入信号频率的微调,实现结果表明了本设计可以使频率转换时间被缩短到2.56 μs,随着分频步长的提高,频率调整误差?着会增加,但是误差比较小,这一优点应用在IEEE1588中,可有效地实现LXI的主从设备的时钟同步[5],这是本设计方案的典型应用。但是,当系统的时钟频率与输入频率的比值n不是整数时,频率调整误差ε较大,这是本方案的使用局限性。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。