基于单片机和CPLD的频率测量研究

时间:2022-10-23 09:08:29

基于单片机和CPLD的频率测量研究

摘 要:针对单片机进行高频测量存在的响应速度问题,利用CPLD适合精确、高速计数的特点,提出了一种基于单片机和CPLD的频率测量电路,通过CPLD对被测信号分频再与单片机计数值进行比较,实现了高精度、等精度测量,同时又解决了高频测量中存在的问题,满足了系统对响应时间的要求。该项研究成果已经在所设计信号源产品中得到了应用。

关键词:频率测量;信号源;高频测量;CPLD

中图分类号:TP3681文献标识码:A

文章编号:1004-373X(2008)24-052-02

Research of Frequency Measurement Based on Single Chip Computer and CPLD

YU Ning1,ZOU Yingquan2

(1.Huaian College of Information Technology,Huaian,223003,China;2.Nanjing University of Information Science & Technology,Nanjing,210044,China)

Abstract:In order to deal with the problem ofresponse rate of single chip computer while measuring high frequency,a frequency measurement circuit based on single chip computer and CPLD is proposed,which realizes high-accuracy measurement by comparing the frequency division of the measured signals with the counting number of single chip computer,which has been applied in funtion generator.

Keywords:frequency measurement;signal source;high frequency measurement;CPLD

信号源一般都具有频率测量功能,信号源中大多数的测频电路都是通过单片机实现,低频时采用测周,高频时采用测频。这种方法存在非等精度误差问题,同时由于单片机速度限制,不能测量很高信号频率。当信号频率高于10 MHz时,这种方法难于实现。针对单片机测频电路缺点,本文提出了一种基于单片机和CPLD的测频方法,并在实践中得到了验证。

1 硬件电路设计

硬件电路包括模拟调理电路、CPLD部分、单片机部分,如图1所示。模拟调理电路完成对被测信号的整形,该电路将输入的正弦或其他波形的信号通过整形,输出方波。模拟调理电路主要由滞回比较器和输入保护电路构成。CPLD完成对输入信号分频,CPLD用Altera公司MAX3128。单片机完成对分频后的被测信号测周,单片机采用Cygnal公司C8051F206。

被测信号通过模拟调理电路后接入CPLD的全局时钟I/O口,CPLD对被测信号进行适当分频,把外部信号通过分频将频率限制在一定范围内,然后送至单片机,在送入单片机信号的1个周期内,单片机对其进行计数,可以得到计数值为Nx。设单片机频率为fs,输入单片机信号的频率为fx,则可得fx=fs/Nx,得到的频率再乘以前面CPLD中的分频比,就可以得到外部输入信号的频率,以达到频率测量目的。CPLD中的分频比由单片机控制,复位时单片机送固定分频比给CPLD,CPLD对外部输入被测信号分频,分频后送至单片机进行计数,单片机计数并判断计数值,如果单片机得到的计数值不在要求的范围之内(具体范围在软件设计中讨论),那么单片机根据得到的计数值再送不同分频比给CPLD,CPLD对输入信号再次分频,反复上述过程,直到单片机得到合适的计数值。这样,可以保证外部信号频率的测试精度,同时实现了等精度测量。

图1 工作原理图

2 软件设计

软件部分包括单片机程序和CPLD程序。单片机主要完成计数和频率计算、显示。CPLD接收单片机送来的分频比,完成分频。

2.1 单片机程序设计

当送到单片机的被测信号为高电平时,高电平计数子程序计数,计数时基是100 μs;单片机内时基采用循环计数实现,高电平计数完成再对低电平计数,对高低电平分别计数解决了占空比不是1∶1的频率测量问题。判断总的计数值是否在1 000~10 000之间。如果在该范围内,则频率(kHz)为:f=NDIV/0.1Ncount,其中,Ncount为单片机计数值;NDIV为CPLD内部分频比。如果计数值不在1 000~10 000范围内,根据计数值单片机向CPLD重新送分频比,然后再次计数,判断计数值,直到计数值在要求的范围之内,因为如果计数值太小,则计算的频率误差偏大,所以要求计数值必须在一个合适的范围内。图2是程序的流程图。

图2 频率测量软件流程图

2.2 CPLD程序设计

CPLD程序顶层图采用原理图设计,模块采用VHDL语言编写。其包括2个部分,如图3所示,第一部分完成CPLD与单片机通信,CPLD与单片机的通信协议为自定义协议;WR为单片机的普通I/O口,mcu_data[7..0]为单片机的数据总线;WR下降沿来时表示写入的是地址,WR为上升沿时表示写入对应数据。第二部分是分频部分,根据单片机送来的20位分频比对被测信号fin分频。分频之后信号送单片机计数。分频之后的信号频率控制在0.1~1 Hz之间。

图3 Max+PlusⅡ环境下的顶层图

3 误差及性能分析

测频电路的误差来源主要有时基电路误差,单片机计数误差,以及频率值定点运算误差。由于显示采用的是6位数码管显示,在计算频率值时取了6位有效数字,所以忽略定点运算误差。误差计算表达式可以表示为:

df/f=dN/N+dt/t

其中,N为计数值;t为时基。时基时间相对误差dt/t主要取决于单片机晶体的频率稳定度,选择合适的石英晶体和振荡电路,误差一般可小于10-6。当仅显示6 位有效数字时,该项误差可以忽略。对于dN/N部分,无论时基时间长短,计数法测频总存在1个单位的量化误差。由于计数值的范围在1 000~10 000之间,所以测频电路的相对误差为:0.001~0.000 1,绝对误差为:NDIVNcount。经过电路实际测量误差完全在允许范围内。

测频电路的频率测量范围也是一个非常重要指标,当CPLD的分频比为1,单片机的计数值为10 000时测得的频率为能测得的最低频率,其最低频率为:1/(10 000×0.1 ms)=0.1 Hz;当CPLD的分频比为FFFFFH,单片机计数值为1 000时测得的频率为能测得的最高频率,为:1 048 575×1/(1 000×0.1 ms)=10.485 75 MHz。在实际电路设计中上限测量频率为10 MHz。从上面分析来看下限频率决定于计数值和时基选择,通过选择不同时基可以实现更低频率测量。最高频率测量范围主要决定于CPLD内部的分频比,如果CPLD的分频计数器为25位,那能测量的最高频率为:8 388 600×1/(1 000×0.1 ms)=83.886 MHz。能否实现这么高的频率测量决定于CPLD的性能,而与单片机性能无关,现CPLD最高能到400 MHz,所以对100 MHz信号分频完全可以实现。通过分析可以看出这种测频电路的可扩展性非常好。

4 结 语

本文的测频电路方案结构合理,能实现等精度频率测量,且可扩展性强。该测频电路已在所设计信号源中得到应用,并投入生产。经检验,产品性能稳定,指标符合设计要求。在该信号源中CPLD同时完成单片机的I/O口扩展和LED显示控制,所以测频电路成本较低。

参考文献

[1]潘琢金,施国君.C8051FXXX高速SoC单片机原理及应用.北京:北京航空航天大学出版社,2002.

[2]MAX3000A Date Sheet,Programmable Logic Device Family,Altera Corporation,1999.

[3]蒋焕文.电子测量.北京:中国计量出版社,1988.

[4]陈晓荣,蔡萍,周红全.基于单片机的频率测量的几种实用方法.工业仪表与自动化装置,2003(1):40-42.

[5]邓勇,施文康.8031单片机测量高频信号频率的一种方法.电测与仪表,2000,37(10):23-25,7.

[6]张雪平.单片机提高频率测量精确度的新方法.微计算机应用,2004,25(1):114-117.

[7]李汉军,许百荣.等精度测频单片机系统的研究.仪器仪表用户,2001(1):16-18.

[8]于忠得.基于单片机的脉冲频率的宽范围高精度测量.仪表技术,2002(6):19-20.

[9]赫建国,刘立新.基于单片机的频率计设计.西安邮电学院学报,2003,8(3):31-34,72.

[10]郑丹玲.一种快速高精度测频方法.重庆邮电学院学报:自然科学版,1999,11(2):58-59,64.

作者简介

俞 宁 江苏省淮安信息职业技术学院副院长,研究员级高工。

邹应全 南京信息工程大学讲师。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:无线通信系统中的MIMO空时编码技术 下一篇:Multisim 10在差动放大电路分析中的应用