基于PSoC芯片的两路高精度频率测量系统设计

2014-01-15 09:59赵浩吴斌
电子设计工程 2014年15期
关键词:计数器闸门计数

赵浩,吴斌

(西北机电工程研究所 陕西 咸阳 712099)

在电工技术领域内,频率是一个最基本的参数,频率与其他许多电参量的测量方案、测量结果都有十分密切的关系。因此,频率的测量就显得尤为重要。随着航天军事科学技术的发展,对时间及频率的测量精度有了更高的要求。而现有的基于单片机、CPLD为核心的测频设备在高频率的工作条件下不稳定,电路板设计困难,测量精度达不到要求的数量级[1]。因此,研究测量精度更高的测量设备具有重大意义。

PSoC(Programmable System on Chip)是美国赛普拉斯公司推出的一款完全基于通用IP模块,具有真正混合信号处理能力的可编程片上系统芯片。PSoC与单片机的根本区别在于其内部集成有数字和模拟模块。设计者可以根据不同设计要求调用不同的数字和模拟模块,完成芯片内部的功能设计。实现使用一块芯片就可以配置成具有多种不同外围元器件的微控制器,建立一种可配置嵌入式微控制器。用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。同时,PSoC器件提供了ASIC的优点,但却没有典型ASICNRE或转换时间[2]。因此,PSoC能够适应非常复杂的实时控制需求,使用它进行产品开发可以大大提高开发效率,降低系统开发的复杂性和费用,同时增强系统的可靠性和抗干扰能力。因此,PSoC特别适用于各种控制和自动化领域。

基于上述考虑,本设计采用PSoC来搭建测量系统,提高频率测量的精度。

1 测量原理

频率测量主要有测频法和测周法两种[3]。测频法就是在确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:fx=Nx/Tw。测周法需要有标准频率的信号fs,在待测信号的一个周期Tx内,记录标准频率信号的周期数Ns,则被测信号的频率为:fx=fs/Ns;在多个周期内,记录被测频率的变化周期数(或脉冲个数)Nx,则被测频率为:fx=fs×Nx/Ns。这两种方法的计数值会产生±1个字误差,并且测试精度与计数器中记录的数值Nx或Ns有关。

结合以上思路,本设计采用多周期同步测频法:首先通过对定时器的设定来预置闸门时间(闸门时间的设定要考虑被测信号的周期数)。将标准频率信号和被测频率信号分别输入两个计数器进行多个周期的同步计数。预置闸门时间结束时,两个计数器并不停止计数,而是等到被测频率信号下一个同相位触发沿到来才关闭同步门(实际闸门)并停止计数,故测量结果的精度仅与闸门时间和标准频率有关,误差由被测频率的±1个脉冲减少到标准频率信号的±1个脉冲,测量精度显著提高。

图1 多周期同步测频法原理图Fig.1 Principle of multi-cycle synchronization frequency measurement

2 系统设计

多路信号频率测量是在单路信号测频的基础上,通过硬件的配置、扩展,和软件的协调分配来实现的。

2.1 硬件设计

由原理分析可知,采用多周期同步测频法测量单路信号频率时,至少需要一个能提供闸门信号的定时器;一个控制实际闸门信号在被测信号上升沿处起停的同步控制模块;两个分别对实际闸门内的被测频率信号和标准频率信号进行计数的计数器。由运算器对计数器的结果进行运算,求出被测频率值,最后通过显示模块进行测量结果显示。

在两路信号频率测量中,不同信号的闸门信号产生电路和计数器都是彼此独立的,但其控制运算部分都由CPU来完成。基于对PSoC内部资源上的考虑,结合精度要求,采用1片PSoC芯片CY8C29666[4]作为频率测量系统的主体部分,对应两路输入信号。每个PSoC芯片内部至少需要配置两个定时器功能模块、4个计数器功能模块,以供两路被测信号的频率测量之用。最后各计数器的计数结果输入到CPU中进行计算,得到的被测信号频率值并输出到显示部分。

PSoC芯片是整个频率测量系统的核心部分。其配置方式的可行性和合理性直接关系到系统功能能否顺利实现[5]。应用PSoC Designer中的器件编辑器对CY8C29666内部的全局资源、用户模块、连接关系以及芯片管脚进行配置,在此基础上添加外部器件(如电平调理、同步触发器等),即可完成系统的硬件平台的搭建。本系统中,两路信号对应的处理部分平分系统资源,即:定时器模块均为8位,两个被测频率计数器均为16位,两个标准频率计数器均为32位。这样配置既不过多占用内存,又可满足系统精度要求。

这里重点介绍一下定时器的配置方式。定时器模块是由1个周期寄存器、一个同步递减计数器和1个捕获比较寄存器组成。周期寄存器和捕获比较寄存器里面要分别存放两个值,即Period和CompareValue,这两项值决定着闸门时间的长短。定时器模块共有两项输出:比较输出和最终计数输出。其中比较输出连到同步控制模块,用于产生同步使能信号;最终计数输出端接到指定的GPIO管脚,用来判断何时读取计数器的计数值及重写计数器的初值。

开定时器后,递减计数器由Period值开始递减,同时两个输出端均输出低电平。当计数值等于CompareValue时,在下一个系统时钟上升沿,比较输出端输出高电平,直至计数值递减到零时,比较输出跳低——这样就产生了定闸门信号。定闸门信号通入同步控制模块,产生与被测信号上升沿同步的使能信号。两个计数器在使能信号为高时开始递减计数。当使能信号跳低后,计数器暂停计数。读取当前计数值,即可计算出测量结果。

系统结构框图如图2所示。

图2 采用多周期同步测量法测量两路数字信号的结构框图Fig.2 Structure diagram of multi-cycle synchronization frequency measurement for two digital signal

2.2 软件设计

该系统的程序设计主要由主程序、中断服务子程序和显示子程序构成。为了使设计出来的软件功能明确,便于调试、扩展和移植,采用结构化的程序设计方法[6]。主程序如图3所示。

图3 主程序流程图Fig.3 Flow char of the main program

系统的工作方式在硬件部分已作过介绍,这里不再赘述。需要注意的是,定时器最终计数结束后的下一个系统时钟周期,定时器会自动重新加载计数初值。所以要在此之前读取两计数器的计数值。故使用定时器的最终计数输出功能,在此时输出一个脉冲触发中断,即可通过编写中断处理程序实现读取计数值,并重置计数器初值的功能。中断服务程序流程图如图4所示。

3 实验结果及误差分析

设标准信号的频率为fs,通过配置定时器模块得到的闸门时间为T,被测信号频率的理论值为fxe,T时间内计数器对被测频率信号和基准频率信号的计数值分别为Nx和Ns,则被测信号的频率为fx=fs×Nx/Ns。在忽略基准频率fs误差的情况下,测频可能产生的误差为

图4 中断服务子程序流程图Fig.4 Flow char of the Interrupt Service Routine (ISR)

由于测量中两计数器的计数起停都由fx的上升沿触发,即实际闸门时间为被测频率信号的整数倍,故对fx计数不存在误差;对fs的计数Ns最多相差一个脉冲的误差,即|ΔNs|≤1,此时测量频率为

将此式和频率计算公式代入误差计算公式可以得出

由式(3)可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和基准信号频率有关。闸门时间越长,标准频率越高,测频的相对误差就越小。这里选定标准信号频率为SystemCLK*2模式(即48 MHz),讨论闸门时间分别为10 s和10 ms情况下,系统的误差情况。通过计算可知:闸门时间为10 s时,理论误差为 2.083×10-9;闸门时间为 10 ms时,理论误差为 2.083×10-6。

系统电路安装调试成功后,对上述结果进行验证。两路输入信号分别取自江苏扬中市绿杨电子厂生产的绿杨牌YB1631信号发生器以及安徽埠阳无线电厂的信达牌XD11BH多用信号发生器。被测信号参考频率由美国Keithley公司生产的Keithley 2000数字万用表测得。实测结果如表1所示。

由表1数据可知,本频率测量系统的相对精度在10-6以上,基本达到设计精度要求。但是跟理论误差相比还有一定差距。这一方面是由于在我们现有的实验室条件下,没有比参考频率精度更高的频率计,故以其为标准计算得到的误差只能作为参考,更高的测量精度无法验证,另一方面是因为系统本身存在误差。经分析,系统本身的误差可能由下述原因引起:

1)被测频率信号本身的不准确性。2)测量环境中存在电磁干扰,对准确计数产生影响。3)计算中的舍入误差。

4 结 论

本系统以PSoC器件为核心,以多周期同步测频法为基础,充分利用了PSoC芯片内部集成的功能模块资源完成两路信号频率测量系统的设计。其接口电路简单,提高了频率测量的精度,实现了高集成度、高速和高可靠性,同时由于PSoC器件的体积和功能优势,简化了仪表的设计,进一步降低了成本。

表1 测试数据Tab.1 Testing data

[1]马献果,焦阳.频率测量方法的改进 [J].仪器仪表学报,2004,25(4):21 MA Xian-guo,JIAO Yang.Frequency measurement method improvement[J].Chinese Journal of Scientific Instrument,2004,25(4):21.

[2]何宾.可编程片上系统PSoC设计指南[M].北京:化学工业出版社,2011.

[3]侯俊勇.高速高精度频率测量系统的CPLD实现 [J].仪器仪表学报,2003,24(4):159.HOU Jun-yong.The realizing of high-speed and highaccuracy frequency surveying system in CPLD[J].Chinese Journal of Scientific Instrument,2003,24(4):159.

[4]PSoC®Mixed-Signal Array Final Data Sheet_CY8C29666[EB/OL].http://download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cy8c29666_8.pdf.

[5]邵自然,曹丹.一种频率测量片上系统设计与实现[J].电脑开发与应用,2006(6):49.SHAO Zi-ran,CAO Dan.Design and implementation of frequency measurement system based on SoC[J].Computer Development&Applications,2006(6):49.

[6]San Jose.PSoC Designer C Language Compiler User Guide[EB/OL].(2011-09-13)http://www.cypress.com.

猜你喜欢
计数器闸门计数
采用虚拟计数器的电子式膜式燃气表
古人计数
递归计数的六种方式
关于74LS90计数器的Multisim仿真分析
古代的计数方法
水利工程闸门的管理及维护措施
这样“计数”不恼人
把住医保基金水池闸门
找准入口,打开思路的闸门
算盘是个“小气鬼”