APP下载

基于可编程逻辑阵列的高精度频率计设计

2016-11-29靖,徐

数字通信世界 2016年11期
关键词:频率计测频单片机

陈 靖,徐 清

(1.中国电子科技集团公司电子科学研究院,北京 100041;2. 中国电子科技集团公司信息科学研究院,北京 100041)

基于可编程逻辑阵列的高精度频率计设计

陈靖1,徐清2

(1.中国电子科技集团公司电子科学研究院,北京 100041;2. 中国电子科技集团公司信息科学研究院,北京 100041)

本设计是一个等精度频率计,不但具有测频功能,还可以对周期、脉宽和占空比进行测量,克服了传统频率计的精度随着被测频率的改变而改变的缺点,在整个频率区域都能保持恒定的测试精度。

等精度;频率计;单片机;FPGA

1 引言

频率检测是电子测量领域最基本也是最重要的测量之一,频率信号抗干扰能力强,易于传输,可以获得较高的测量精度。所以测量频率方法的研究越来越受到重视,设计中采用了模块化设计方法,并使用了EDA工具,提高了设计的效率,各项实测表明,等精度测频率、周期、占空比的原理是合理的、成功的,本产品的研制解决了在测量系统中需要高精度测量的不便。

2 总体设计方案

传统的数字频率计一般是由分立元件搭建而成,随着单片机的应用,出现了不少用单片机控制的频率测量系统。相比分立元件构成的电路,单片机频率测量系统在测量范围、测量精度和测量速度上都有了很大的提高。但是由于单片机固有特性的限制(频率、内部计数器位数),使单片机控制的频率测量系统无法在频率测量范围、精度、速度上有更大突破[1]。

FPGA是新型的可编程逻辑器件,具有集成度高、速度快、可移植性强、具备在系统编程等优点,在测频精度和速度上有绝对的优势。但是,等精度数字频率计涉及到的计算包括加、减、乘、除等,以及对于显示和输入设备的控制,耗用的资源比较大,用一般的中小规模FPGA芯片难以实现。因此,我们选择单片机和FPGA的结合来实现。电路系统原理框图如图1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出, FPGA完成各种测试功能。单片机接收红外遥控信号,从FPGA读回计数数据并进行运算,向显示电路输出测量结果。这样的设计充分发挥了单片机和FPGA的优势[2]。

图1 等精度频率计电路系统原理框图

3 等精度测频原理

等精度测频方法是在直接测频方法的基础上发展起来的。它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,避除了对被测信号计数所产生±1个字误差,并且达到了在整个测试频段的等精度测量,其测频原理如图2所示。在测量过程中,由两个计数器分别对标准信号和被测信号同时计数。首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。可以看出,实际闸门时间T与预置闸门时间T0并不严格相等,但差值不超过被测信号的一个周期[3]。

图2 等精度测频原理框图

等精度测频原理框图如图3所示,CONT1和CONT2是两个可控计数器,标准频率信号从CONT1的时钟输入端CLK1输入;经整形后的被测信号从CONT2的时钟输入端CLK2输入。当预置门控信号为高电平时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动CONT1和CONT2。CONT1,CONT2同时对标准频率信号和经整形后的被测信号进行计数,分别为Ns与Nx。当预置门信号为低电平的时候,后而来的被测信号的上升沿将使两个计数器同时关闭,所测得的频率为(Fs/Ns)*Nx。则等精度测量方法测量精度与预置门宽度的标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变[4]。

图3 等精度测频原理框图

4 系统设计及实现

4.1FPGA内部功能模块设计

本设计中采用FPGA和单片机相结合来实现对频率的测量,它们都是可编程芯片,需要对其进行软件编程。FPGA是在Quartus II开发平台下运用VHDL语言进行编程、仿真与验证,而单片机的程序是在Keil软件下运用C语言来编写。等精度频率计FPGA部分的RTL电路如图4所示。

图4 等精度频率计FPGA部分的RTL电路

SS1的逻辑功能为:当Q2=‘1’,Q3=‘0’,则PUL=‘1’,否则PUL=‘0’。当Q2=‘1’,Q3=‘1’则EEND=‘1’,否则EEND=‘0’。

根据RTL电路可以比较容易地写出相应的VHDL程序,接下来在所建项目下建立一个波形文件,进行仿真。所得到的波形结果如图5和图6所示。

图5 等精度频率计频率测试仿真波形

图6 等精度频率计脉宽测试仿真波形

4.2单片机软件设计

系统软件的设计主要是和硬件电路相结合,正确地实现等精度测量。单片机程序主要完成的任务包括:接收红外遥控信号,从而控制FPGA执行测频或测脉宽功能,并且从32位计数模块读取标准信号和被测频率信号的计数值,然后进行数据处理,把处理结果通知系统,由系统根据数据的处理结果做出调整,对运算后的结果用液晶12864进行显示。

在向液晶屏写指令和写数据时,是严格按照时序来操作的,所以要尽量少的运用中断程序,或者使中断里的程序尽量简短,这样才不至于干扰到液晶屏的显示,否则很容易出现花屏现象。而对于红外数据的解码主要在于对数据“0”和“1”的判断,当一个周期内高电平和低电平比例为一比一,那么就判断为“0”,而当在一个周期内高电平和低电平比例为一比三,那么就判断为“1”,这些在编程时都有一些小的技巧,需要不断通过调试来完成。而在单片机与FPGA通信方面我们也下了不少功夫,SPI协议是一种串行协议,我们这里却不是完全按照串行协议来使用,而是用单片机模拟出来的一种改良后的协议,可以很稳定的让单片机和FPGA之间传输信号[5]。

4.3单片机与FPGA连接电路

单片机测频控制电路如图7所示,由单片机完成整个测量电路的测试控制、数据处理和显示输出,FPGA完成各种测试功能[18]。当中由于单片机与FPGA在速度上存在不匹配的问题,所以单片机与FPGA不能直接进行通信,而是通过增加两根连接线,在程序上模拟出SPI协议,通过SPI协议可以很稳定的进行之间的通信,这样就很好地解决了单片机和FPGA之间速度不匹配的问题[6]。 4.4硬件实现

图7 CPLD与单片机通信框图

本实验在调试阶段中用到的主要硬件有MAX II最小系统,LY-51S单片机开发板,12864液晶屏,红外遥控器。在寝室时,由于没有标准信号发生器,所以调试阶段,单独用一个单片机最小系统产生一个固定信号,作为信号源,对此信号进行测量。通过这套系统把单片机和FPGA程序最终调试了出来。调试阶段整个硬件系统如图8所示。

图8 调试阶段硬件系统

在通过开发板调试完单片机和FPGA程序后,接着对硬件的最终形式做了定夺。采用双层板结构,把连线部分完全放在两层板子中间,这样在外部看来不会显得很乱,FPGA和单片机插在下层板上,上层板放置了12864液晶屏、红外接收头和红外信号接收指示灯,这样的设计使整个系统简洁大方,最终成品如图9~图11所示。

图9 最终作品功能菜单

图10 最终作品背面展示

图11 最终成品进行频率测量

我们在这里设置了红外信号接收指示灯的主要目的是对红外干扰信号的探测,因为当我们测频时外部有可能有红外干扰信号,而红外接收芯片是与单片机的外部中断P3.2口相连,且设置的是下降沿触发,所以一旦有干扰信号,单片机就会误进中断,而12864液晶屏是按时序来控制的,一旦误进入中断次数过多,就会使12864液晶屏出现花屏现象,降低了用户体验。所以设置了指示灯和一个可以切断红外接收芯片和单片机相连的开关,当发现指示灯提示干扰过多,可以手动关掉此开关,单片机不再接收红外信号。

在基本功能实现的基础上,出于对个性的追求,最后又加入了点阵显示模块,点阵显示模块是与主模块随时保持同步工作,用于提示此时机器处于的状态,从另一层面增加了用户体验。

4.5技术指标

基于传统测频原理的频率计的测频精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测量频率区域内保持恒定的测试精度。本系统设计的基本指标如下:

⊙ 对于频率测试功能,测频范围为270Hz~50MHz,对于频率精度,测频全域相对误差恒为百万分之一。

⊙ 对于周期测试范围,信号的测试范围与精度与频率测试功能相同。

⊙ 对于脉宽测试功能,测试的范围为0.1μs~1s,测试的精度为0.01μs。

⊙ 对于占空比测试功能,测试精度为1%~99%。

5 结束语

在软件设计方面,针对系统实际应用,对系统的各组成模块进行程序设计并进行波形仿真,简单介绍了单片机的工作过程。但是由于采用的单片机是中等档次,在算数运算方面只支持单精度浮点运算,因此在得到的测量结果中,只能保证7位有效数字。最后通过系统的整体设计,将各模块有机的连接起来。在硬件验证方面,先是利用单片机程序开发板和FPGA最小系统进行调试,验证硬件与软件的实现方案。然后通过手工焊板,实现简洁的一体机结构。

[1] 黄任.AVR单片机与CPLD/FPGA综合应用入门.北京:北京航空航天大学出版社,2004.8

[2] 陈云.PLD应用技术与数字系统设计.北京:电子工业出版社,2003:79-82 [3] 曾任贤.基于FPGA的等精度数字频率计的研究与实现.科技广场,2009, (5):238-239

[4] 林明权.VHDL数字控制系统设计范例.北京:电子工业出版社,2003:83~114

[5] Altera Corp. Nios II DevelopmentBoard Data Sheet. Altera,2005.45-48

[6] Lin Mengxi, Lin Jingqiu. Design and Frequency Measurement Based on FPGA and MCU. The 2nd International Conference on Computer Engineering and Technology.2010

Design of a High Precision Cymometer Based on FPGA

Chen Jing1, Xu Qing2
(1.China Academy of Electronics and information Technology, Beijing, 100041; 2. nformation Sciences Academy of China Electronics Technology Corporation, Beijing, 100041)

The design is an equal precision frequency meter, not only has the frequency measurement function, you can also cycle, pulse width and duty cycle measurements. This design overcomes the shortcomings of conventional frequency meter accuracy with the change of the measured frequency change in the entire frequency region can maintain a constant test accuracy.

Equal precision; Frequency meter; MCU; FPGA

10.3969/J.ISSN.1672-7274.2016.11.009

TN98文献标示码:A

1672-7274(2016)11-0030-04

猜你喜欢

频率计测频单片机
基于VHDL 的数字频率计设计与仿真*
对某设备低温下测频超差问题的分析和研究
谐振式传感器高精度频率测量技术研究*
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
瞬时测频接收机自动测试系统的设计与实现
电子侦察测频系统的建模与仿真
Microchip推出两个全新PIC单片机系列
无晶振输出频率计的自动检定装置研究