您好,欢迎访问三七文档
案例设计浙江大学光电系王晓萍、刘玉玲•数字频率计设计数字频率计设计1.频率测量原理2.高频测量方法与误差分析3.低频测量方法与误差分析4.软件设计方法1.频率测量原理•频率:即周期信号在单位时间(秒)内变化的次数。•如测量信号为方波脉冲,则要测量的“频率”就是在单位时间内检测到的脉冲数。•对于频率测量有两种方法,一种是测量单位时间内的脉冲数,称为“直接测频法”,一般用于测量高频信号;另一种是通过精确测量待测信号的周期的方式来间接测量其频率,称为“间接测频法”,一般用于测量低频信号。2.高频测量方法与误差分析•当信号频率较高时,通常采用直接测频法,测一定时间内的脉冲数即可得到其频率。•测量过程:如图1所示,在闸门时间内,对输入脉冲信号进行计数,即可得到其频率。若闸门开启时间为T,在闸门时间T内计数器的计数值为N,则待测信号的频率为fx=N/T。假设闸门时间为1s,计数器的值为1000,则待测信号频率为1000Hz即1.000kHz。2.高频测量方法与误差分析定时时间T计数值N停止计数开始计数计数闸门图1.直接测频法2.高频测量方法与误差分析•直接测频法的硬件连接:频率信号接至一个计数器的输入端。该定时器/计数器工作在计数方式,用来记录外部被测脉冲的个数;设置另一定时器/计数器工作在定时方式,进行时间的定时。•如由T0控制定时的长度为1S,T1记录外部脉冲;在定时器T0开始定时的同时,打开计数器的输入门,在定时1S时间到时,关闭计数器的输入,然后读出T1的计数值(计数器初值为0),这样即可求出频率。2.高频测量方法与误差分析•频率测量的误差分析:假设计数闸门时间为1秒,计数器是上升沿触发计数;图2所示的情况是在闸门时间内,有3个完整的脉冲信号,但实际有4个上升沿,因此实际计数值是4,即多计了一个脉冲。而图3所示的情况是在闸门时间内,接近有4个完整的脉冲信号,但只有3个上升沿,实际计数值是3,即少计了一个脉冲。•有以上分析可知,采用计数法的频率测量误差为±1Hz。对于更一般的情况,设闸门时间为T,实际脉冲数为N,则用测频法测得的实际值为N±1。则测量误差为:NTNTfff11实际实际测量2.高频测量方法与误差分析1s脉冲信号123图2在1s时间内,基本上是3个脉冲,但有4个上升沿,故计数值为4,多计了一个。1s1234图3在1s时间内,基本上有4个脉冲,但只有3个上升沿,故计数值为3,少计了一个。脉冲信号2.高频测量方法与误差分析•由于计数器是在脉冲的一个变沿加1,在1秒时间内脉冲个数都不会正好是整数个,存在多1个或少1个的情况。也即频率测量的误差是±1个脉冲,能测量的最高频率为65.536KHz。通过缩短定时时间或分频外部被测脉冲,可提高测量范围,但是测量精度相应降低。•如被测脉冲的频率为5KHz,由于脉冲计数误差为±1,所以其测量误差为=。%2.0500013.低频测量方法与误差分析•当信号频率较高时,通常采用间接测频法,测量出待测信号的周期,再通过计算获得信号的频率。其测量示意图如图4所示。•图4.间接测频法3.低频测量方法与误差分析•可以通过中断或查询的方式检测待测信号相邻的两个下降沿,即一个周期的起始和结束位置。在周期开始时,开启计数器计数,计数器的计数脉冲为测量系统内部时钟信号,在周期结束时,停止计数。设系统的时钟周期为,待测信号的实际周期为,计数器的计数值为N。根据前面对直接测频法的分析可知,间接测频法同样存在计数器的±1个脉冲的误差,即待测信号周期的测量值。其测量误差为:TsysTsysT实T实T实TTTsys实测TTTsys实测11111TTTTTTTfffffsyssys实实实测实实测实实测3.低频测量方法与误差分析•由以上分析可知,对于一个给定的待测信号,系统的测量误差与系统的时钟周期有关,越小,测量误差越小。通常系统的时钟周期是比较小的,如对于51单片机测量系统,若工作晶振频率为12M,则计数器计数的机器周期=1us,根据误差计算公式可知,对于比较大(即频率较小)的待测信号,测量误差可以做到很小。所以间接测频法适用于测量频率较小的信号。但频率太小的信号会让计数器计数溢出,这就限定了系统的测量频率下限。TsysTsysTsysTsysT实3.低频测量方法与误差分析•如当被测频率较低时,如100Hz,由于脉冲计数误差为±1测量结果为99Hz~101Hz,因此其测量误差为。•如被测频率为10Hz,由于脉冲计数误差为±1测量结果为9Hz~11Hz,因此测量误差变为±1/10=±10%。•因此测频法适用于测量频率较高的信号,对于低频信号,误差较大。%110013.低频测量方法与误差分析•间接测频法的硬件连接:外部脉冲直接连到中断输入端。•设置允许外部中断,下降沿引起中断。这样在第一个下降沿到来时,申请CPU中断,在中断服务程序中,命令一个定时器开始定时(定时器初值设为0);第二个下降沿到来时引起CPU中断,在中断服务程序关闭定时器,并读出定时器的计数值。根据2个下降沿之间的定时值,就可以方便地计算出脉冲信号的周期和频率。•当系统频率为12MHz时,定时的误差为±1uS;如从定时器中读出的计数值是24ms,则频率为。定时误差几乎可以忽略。•例:某一脉冲信号的频率范围为10Hz—5KHz,要求测频精度≤±0.2%。请设计测量方法。解:为保证整个范围内的测量精度,对于高频率段要用测频法;对于低频率段则要用测周法。分界频率的确定:%2.01minfHZms7.41241ss610241测量误差分析举例测量误差分析举例•测频时最大误差:•即f(分界)=fmin=500Hz即对于频率≥500Hz的脉冲信号,采用测频法(定时1S),此时的最大测量误差是±0.2%。对于频率≤500Hz的脉冲信号,采用测周法,此时最大测量误差是±1us/2000us=±0.05%。Hzf500%2.01min3.软件设计方法•直接测频法:设置定时器T0工作于定时方式,即计数脉冲为系统时钟。T1工作于计数方式,计数脉冲为外部待测信号。设置T0为定时方式,允许中断,定时时间为50ms,即50ms产生一次中断,当T0产生第20次中断即定时1s时间到,此时读取T1的计数值,即为1s时间内记录的外部脉冲信号,也即信号的频率值;将该数值转化为十进制数送显示设备进行显示。3.软件设计方法•间接测频法:T0工作在定时器方式,计数时钟为系统时钟12分频。外部中断1设置为下降沿触发方式,则外部信号每一个时钟周期触发一次外部中断。在第一次外部中断中设置T0的时间常数为0,并启动T0开始定时;在下一次外部中断时,读取T0寄存器的值即为外部信号一个脉冲周期的时间长度即外部信号的周期,由该周期可以计算得到信号的频率值,完成一次测量。例如,测得的定时器0的计数值为N,单片机晶振频率为fs,则被测信号的周期为:Tx=N*12/fs,则被测信号的频率为:fx=fs/(N*12)。
本文标题:单片机_案例设计
链接地址:https://www.777doc.com/doc-3184005 .html