简易数字频率计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易数字频率计
论文摘要:
本系统用单片机89C51为核心,设计了能够测量频率、周期、脉宽和占空比的简易数字频率计。
本系统包括前端放大整形、分频处理和单片机数据处理三大模块。
前级放大整形模块采用74HC04做放大器对信号进行放大;分频处理模块提高测量的频率范围;单片机数据处理模块利用软件分频的方法,克服了±1误差在高低频段精度不等的缺陷,提高了测量系统的精度。
本系统实现了测量频率、周期、脉宽和占空比的测量要求,且测量的频率可以达到0.1Hz—10MHz。
频率和周期的测量误差小于0.01%,脉宽的测量误差小于1%。
基本完成了任务设计的要求。
引言
设计并制作一台简易的数字显示频率计。
基本要求:对幅度为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.频率测量
由于单片机具有程序运算功能,且频率为周期的倒数,使频率测量与周期测量可以互通。
按照频率的定义,即单位时间内周期信号的发生次数,通过参考晶体振荡提供了测量的时间基准,分频后通过控制电路去开启与关闭时间闸门。
闸门开启时,经放大整形后的测量信号进入计数器进行计数,闸门关闭时,停止计数。
若闸门开放时间为T g,计数值为N,则被测频率f x=N/T g。
测频的框图如图3所示。
图3 测频框图
用这种频率测量原理,对于频率较低的被测信号来说,存在着测量实时性与
测量精度之间的矛盾,由分频系数M=T g /T r (T r 为参考晶振的周期)本身是没有误差的(若电路工作正常的话),测量误差主要由以下两种因数产生的:计数误差和参考晶体振荡的误差,也即
/(/)(/)(/)(/)r r r r r f f N N f f Nf Mf f f ∆=∆+∆=∆+∆
为减小第二项误差,可采用高精度的参考晶体振荡器。
对于第一项误差N ∆为计数相对误差,其最大可达±1,属于不可避免的系统误差,若要减少/N N ∆,就必须增大N ,在被测信号频率很低,为达到一定的测量精度,就要求闸门开放时间大得难以忍受,即一次测量过程的时间很长,失去了使用意义。
例如若被测频率为10Hz ,精度要求为±0.01%,则最短闸门开放时间为
/1/0.000110000N Nf f =∆∆==
/1000g T N f s ==
像这样的测量周期根本不可能接受的,可见频率测量法不适用于低频信号的测量,在同样精度下10MHz 的测量仅需要1ms ,即对于高频信号适宜用此方法测量。
2.周期测量
周期测量的基本原理方框图如图4所示。
图4 测周期框图
它与测频基本结构是相同的,只是把晶体振荡产生的基准信号与被测信号的
位置互换了一下,由此得//r r T N Mf NT M ==,计数值N 与被测信号的周期成正比,N 反映了M 个信号周期的平均值。
利用周期测量法在一定信号频率范围内,通过调节分频系数M ,可以较好地解决测量精度与实时性的矛盾。
由上式可得:
/////r r r r r T T N N T T N TMf T T ∆=∆+∆=∆+∆
第二项误差取决于晶体稳定度,第一项为计数的量化误差,故该项主要取决于N 的大小。
在平均周期测量法中,N 值的大小与测量时间的长短成正比,可根据测量精度要求而定。
假设/N N ∆的允许误差为±0.001%,则N=105,在T r 选定时测量时间等于105T r ,,若T r =2μS ,则测得时间等于0.2s 。
对于不同范围的被测周期信号,可以通过调节分频系数M 的大小,达到相近的测量精度,也就有相近的测量时间,且不会太长。
当然,对于高频信号,测量周期的方法就需要很大分频系数M ,增加了硬件的复杂性,不宜采用测周期的方法。
3.脉宽和占空比测量
在脉冲周期T p 、脉冲宽度T w 、占空比T w /T p 、两个脉冲的时间间隔T a-b 等测量中,都要应用时间测量。
实际上,时间间隔测量法与周期测量法类同,只是增加了一个信号通道而已。
如图5中A 、B 通道的波形与闸门开闭关系,由单片机的内部运算即可得占空比。
图5 通道的波形与闸门开闭关系图
三.硬件电路设计与说明
为了测量小信号,需要在输入端加前置信号处理电路,将小信号放大整形后,送入后级分频电路进行处理。
使用分频电路是因为门控信号由89C51内部的计数定时器产生,单位为1us。
由于单片机的计数额定上限较低(12MH2晶振时约500 kHz),所以需对高频被测信号进行硬件预分频处理。
又因为对频率较低的信号,我们不必分频,只是对高频信号要分频,因此我们使用模拟开关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晶振时约500 kHz),所以需对高频被测信号进行硬件预分频处理。
本设计对
f≥100Kz的被测信号先进行100分频或是10分频再送
i
入单片机进行数据处理;对于1Hz≤
f≤100KHz的信号直接送入单片机进行数
i
据处理。
由单片机的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所示。
图10 CPU主电路图四.软件设计与流程图
1.系统流程设计
系统的主流程图如图11所示。
图11 系统主流程图
由软件完成各部分的控制和协调,下面对图11的流程图进行介绍。
初始化系统:系统上电后完成硬件和系统变量的初始化。
其中包括外围器件的端口设定、置中断和定时器状态、设置控制口P0和P1的状态。
等待功能键输入:由键盘输入测频、测周、测脉宽和测占空比的显示选择。
相应量的测量计算:单片机读入计数值M、N,通过单片机的内部编程,选用适应的准确算法,计算出频率和周期。
测量脉宽时只读入计数器的值进行处理,计算出脉宽的值。
占空比的计算只是将脉宽值与周期的比值。
显示:89C51通过控制P3.0和P3.1两个端口,让输出结果通过串行显示的方式,输出显示出来。
2.频率和周期中的自动量程转换
频率和周期是可以互相转换的,测出其中一个参数就可以靠高精度的算法算出另一个参数。
因此,在测量频率或周期中,实际上是采用频率测量法还是周期
测量法,并不取决于最后要求显示的是频率还是周期,而是取决于用哪一种测量方法精度更高。
系统将根据信号的频率范围来自动选择测量方法,信号频率较高时将采用频率测量法,并根据不同频率改变计数闸门开放的时间(定时时间),较低时将采用周期测量法,并根据不同频率自动改变周期扩展倍数,以满足精度要求。
五.系统误差分析与抗干扰措施
1.系统误差分析
该系统的测量误差主要由以下两种因素产生:计数误差和参考晶体振荡的误差,也即
)/()/()/()/(/r r r r r f f Mf Nf f f N N f f ∆+∆=∆+∆=∆
因为采用了高精度的参考晶体振荡器,所以参考晶体振荡的误差减小到很小,可以忽略。
对于计数误差,ΔN 为计数绝对误差,其最大可达±1,属于不可避免的系统误差,若要减小ΔN/N ,就必须增大N 。
本系统为了提高测量精度,采用了直接与间接测量结合的方法进行测量。
根据任务书提出的要求上面已经算出临界频率为10KHz 。
当i f 在10KHz ≤i f ≤10MHz 时,我们对10KHz ≤i f ≤300KHz 的信号采用测频的方法测量;对300KHz ≤i f ≤10MHz 的信号先进行10分频或100分频后再用测频法测量(即把300KHz ≤i f ≤10MHz 的信号变为10KHz ≤i f ≤300KHz 的信号进行测量,再将测量结果乘于100)。
在分频电路工作正常的情况下,分频不产生误差。
我们采用闸门时间为1S ,当被测频率为1KHz 时,可计数1000个,这时由±1量化误差而导致的相对测试误差为0.l %;当被测信号为10KHz 和100KHz 时,可分别计数10000个和100000个,这时由±1量化误差而导。