简易数字频率计Word文件下载.docx
《简易数字频率计Word文件下载.docx》由会员分享,可在线阅读,更多相关《简易数字频率计Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
对幅度为0.5V—5V,频率为1Hz—1MHz的正弦波和方波信号进行频率和周期的测量,测量误差≤0.1%。
能对幅度为0.5—5V,脉冲宽度≥100μS的脉冲波进行测量,测量误差≤1%。
发挥部分:
扩展频率测量范围为0.1Hz—10MHz(信号幅度0.5V—5V),测试误差降低为0.01%(最大闸门时间≤10s)。
测量并显示脉冲信号(幅度0.5V—5V、频率1Hz—1kHz)的占空比,占空比变化范围为10%—90%,测量误差≤1%。
在1Hz—1MHz范围内及测试误差≤0.1%的条件下,进行小信号的频率测量,提出并实现抗干扰的措施。
一.方案比较与论证
方案一:
系统测频部分采用中小规模数字集成电路,用机械式功能转换开关换档,完成测频率、测周期及测脉宽等功能。
该方案的特点是中小规模集成电路应用技术成熟,能可靠的完成频率计的基本功能,但由于系统功能要求较高,所以电路过于复杂。
而且多量程转换开关使用不便。
原理框图如图1所示。
图1方框图
方案二:
采用直接测频法,把被测频率信号经脉冲形成电路后加到闸门开通时间T(以秒计)内,被计数的脉冲被送到十进制计数器进行计数。
设计数器的值为N,由频率定义式可以计算得到被测信号频率为f=N/T。
经过分析,本种测量方法在低频段的相对测量误差较大。
增大T可以提高测量精度,但在低频段仍不能满足设计的要求。
方案三:
系统采用89C51单片机为核心,门控信号由单片机内部的计数定时器产生。
由于单片机的计数频率上限较低(12M晶体振荡器时约为500KHz),所以需对高频被测信号进行硬件预分频处理,89C51则完成运算、控制及显示功能。
由于使用单片机使整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展和改进。
系统方框图如图2所示。
图2系统方框图
比较以上三种方案,都有一个共同就是为了提高系统的测量精度和灵敏度,三中方案都使用了小信号放大整形电路。
但是每个方案各有不同,方案一由于电路复杂,系统实现起来不方便,而且调试困难。
对于方案二从系统设计的测量范围0.1Hz—10MHz,以频率下限0.1Hz来说,要达到误差<
0.01%的目的,必须显示5位的有效数字,而使用直接测频的方法,要达到这个测量精度,需要主门连续开启10000s,由此可见,直接测频方法对低频测量是不现实的,而采用带有运算器的单片机则可以很容易地解决这个问题,实现课题的要求。
也就是对低频信号采用先测信号的周期,然后在通过单片机求周期倒数的方法,从而得到我们所需要的低频信号的测量精度。
另外由于使用了功能较强的89C51芯片,使本系统可以通过对软件改进而扩展功能,提高测量精度,因此我们选用方案三作为具体实施的方案。
二.测量原理
1.频率测量
由于单片机具有程序运算功能,且频率为周期的倒数,使频率测量与周期测量可以互通。
按照频率的定义,即单位时间内周期信号的发生次数,通过参考晶体振荡提供了测量的时间基准,分频后通过控制电路去开启与关闭时间闸门。
闸门开启时,经放大整形后的测量信号进入计数器进行计数,闸门关闭时,停止计数。
若闸门开放时间为Tg,计数值为N,则被测频率fx=N/Tg。
测频的框图如图3所示。
图3测频框图
用这种频率测量原理,对于频率较低的被测信号来说,存在着测量实时性与测量精度之间的矛盾,由分频系数M=Tg/Tr(Tr为参考晶振的周期)本身是没有误差的(若电路工作正常的话),测量误差主要由以下两种因数产生的:
计数误差和参考晶体振荡的误差,也即
为减小第二项误差,可采用高精度的参考晶体振荡器。
对于第一项误差为计数相对误差,其最大可达±
1,属于不可避免的系统误差,若要减少,就必须增大N,在被测信号频率很低,为达到一定的测量精度,就要求闸门开放时间大得难以忍受,即一次测量过程的时间很长,失去了使用意义。
例如若被测频率为10Hz,精度要求为±
0.01%,则最短闸门开放时间为
像这样的测量周期根本不可能接受的,可见频率测量法不适用于低频信号的测量,在同样精度下10MHz的测量仅需要1ms,即对于高频信号适宜用此方法测量。
2.周期测量
周期测量的基本原理方框图如图4所示。
图4测周期框图
它与测频基本结构是相同的,只是把晶体振荡产生的基准信号与被测信号的位置互换了一下,由此得,计数值N与被测信号的周期成正比,N反映了M个信号周期的平均值。
利用周期测量法在一定信号频率范围内,通过调节分频系数M,可以较好地解决测量精度与实时性的矛盾。
由上式可得:
第二项误差取决于晶体稳定度,第一项为计数的量化误差,故该项主要取决于N的大小。
在平均周期测量法中,N值的大小与测量时间的长短成正比,可根据测量精度要求而定。
假设的允许误差为±
0.001%,则N=105,在Tr选定时测量时间等于105Tr,,若Tr=2μS,则测得时间等于0.2s。
对于不同范围的被测周期信号,可以通过调节分频系数M的大小,达到相近的测量精度,也就有相近的测量时间,且不会太长。
当然,对于高频信号,测量周期的方法就需要很大分频系数M,增加了硬件的复杂性,不宜采用测周期的方法。
3.脉宽和占空比测量
在脉冲周期Tp、脉冲宽度Tw、占空比Tw/Tp、两个脉冲的时间间隔Ta-b等测量中,都要应用时间测量。
实际上,时间间隔测量法与周期测量法类同,只是增加了一个信号通道而已。
如图5中A、B通道的波形与闸门开闭关系,由单片机的内部运算即可得占空比。
图5通道的波形与闸门开闭关系图
三.硬件电路设计与说明
为了测量小信号,需要在输入端加前置信号处理电路,将小信号放大整形后,送入后级分频电路进行处理。
使用分频电路是因为门控信号由89C51内部的计数定时器产生,单位为1us。
由于单片机的计数额定上限较低(12MH2晶振时约500kHz),所以需对高频被测信号进行硬件预分频处理。
又因为对频率较低的信号,我们不必分频,只是对高频信号要分频,因此我们使用模拟开关4052对不同频率的信号进行不同的分频。
1.小信号放大电路
根据任务的要求,对与一些小信号也应该准确地测出其频率,所谓的小信号即是电压幅值小,约几百毫伏或是几十毫伏的信号。
对于这么小的信号,要求对其进行放大,必须能让后面的单片机识别出其频率的变化,这就要求电路有足够的放大倍数,而且要有较高的稳定度。
对于信号放大,我们不仅要考虑到对信号的放大作用,还应该注意频率的带宽。
由NE5534构成电压跟随器起到增大输入阻抗的目的。
然后有两个二极管对输入信号进行限幅,使其幅度限制在大约0.7V~-0.7V。
再由NE5534将信号进行放大,最大的放大倍数为10倍。
NE5534的增益带宽积GB=10MHz,在输入信号的频率为1MHz时,我们对它进行放大10倍是可以的。
但是这种方案只能达到任务设计的基本要求,并不能达到任务的发挥部分的要求。
由此我们可以利用反向器的线形区作为放大器,它的增益带宽积有10MHz以上,频响范围很宽,能达到测量10MHz信号的任务要求。
又由于反向器74LS04的转换速度低,不适用本系统,所以我们采用转换速度更快的74HC04。
反向器的传输特性如图6所示。
图6反向器的传输特性
由图我们可以看出,图中的线形区的斜率很大,传输特性变化比较急剧,我们也就是利用了这种特性,用反相器作为放大器来使用,而且电路反应速度也很快。
只要将静态工作点设置在图中的反相器线形区域中,调节输入输出的电压值相同,就能将电路工作于放大状态。
具体的实现电路如图7所示。
图7小信号放大电路
这种电路实现简单,便于调试。
图中使用了三级放大,保证了小信号的放大倍数,使单片机能识别出小信号的频率。
最后在输出端加了一个7414施密特触发器作为输出波形的整形。
2.分频器
门控信号由89C51内部的计数定时器产生,单位为1us。
由于单片机的计数额率上限较低(12MH2晶振时约500kHz),所以需对高频被测信号进行硬件预分频处理。
本设计对≥100Kz的被测信号先进行100分频或是10分频再送入单片机进行数据处理;
对于1Hz≤≤100KHz的信号直接送入单片机进行数据处理。
由单片机的P1.0口和P1.1口控制74LS151的A、B端来进行选择。
74LS151的输出端接单片机的T1计数器,对信号进行计数。
对被测信号的100分频,则是由两个4017芯片来实现的。
电路如图8所示。
图8分频器电路
3.按键与显示
系统的输入设备采用4位带上拉电阻的按键和控制4个LED指示灯。
由单片机的P0.0—P0.3作为按键输入端口,P1.2—P1.5端口控制4个LED指示灯的亮灭。
输出显示采用8位的串行显示。
电路如图9所示。
图9串行显示电路
4.CPU主电路
电路如图10所示。
图10CPU主电路图
四.软件设计与流程图
1.系统流程设计
系统的主流程图如图11所示。
图11系统主流程图
由软件完成各部分的控制和协调,下面对图11的流程图进行介绍。
初始化系统:
系统上电后完成硬件和系统变量的初始化。
其中包括外围器件的端口设定、置中断和定时器状态、设置控制口P0和P1的状态。
等待功能键输入:
由键盘输入测频、测周、测脉宽和测占空比的显示选择。
相应量的测量计算:
单片机读入计数值M、N,通过单片机的内部编程,选用适应的准确算法,计算出频率和周期。
测量脉宽时只读入计数器的值进行处理,计算出脉宽的值。
占空比的计算只是将脉宽值与周期的比值。
显示:
89C51通过控制P3.0和P3.1两个端口,让输出结果通过串行显示的方式,输出显示出来。
2.频率和周期中的自动量程转换
频率和周期是可以互相转换的,测出其中一个参数就可以靠高精度的算法算出另一个参数。
因此,在测量频率或周期中,实际上是采用频率测量法还是周期测量法,并不取决于最后要求显示的是频率还是周期,而是取决于用哪一种测量方法精度更高。
系统将根据信号的频率范围来自动选择测量方法,信号频率较高时将采用频率测量法,并根据不同频率改变计数闸门开放的时间(定时时间),较低时将采用周期测量法,并根据不同频率自动改变周期扩展倍数,以满足精度要求。
五.系统误差分析与抗干扰措施
1.系统误差分析
该系统的测量误差主要由以下两种因素产生:
因为采用了高精度的参考晶体振荡器,所以参考晶体振荡的误差减小到很小,可以忽略。
对于计数误差,ΔN为计数绝对误差,其最大可达±
1,属于不可避免的系统误差,若要减小ΔN/N,就必须增大N。
本系统为了提高测量精度,采用了直接与间接测量结合的方法进行测量。
根据任务书提出的要求上面已经算出临界频率为10KHz。
当在10KHz≤≤10MHz时,我们对10KHz≤≤300KHz的信号采用测频的方法测量;
对300KHz≤≤10MHz的信号先进行10分频或100分频后再用测频法测量(即把300KHz≤≤10MHz的信号变为10KHz≤≤300KHz的信号进行测量,再将测量结果乘于100)。
在分频电路工作正常的情况下,分频不产生误差。
我们采用闸门时间为1S,当被测频率为1KHz时,可计数1000个,这时由±
1量化误差而导致的相对测试误差为0.l%;
当被