基于DSP2812设计的简易数字频率计

我们设计的简易数字频率计在未采用任何门控器件控制的情况下,在很宽的范围内实现了等精度频率测量,0.5hz~10mhz的范围内测量方波的最大相对误差小于2e-6,测量正弦波的最大相对误差小于3.5e-5;结果通过rs232通讯显示在计算机上,可以很方便地监测数据。
方案设计
总体介绍
传统的等精度测频法使用门控器件产生门控信号,从而实现实际门闸信号与被测信号同步,消除对被测信号计数产生的一个脉冲的误差,其原理图如图1所示。
图1 传统的等精度测量原理
由硬件控制计数的门闸时间,当预置们信号(即定闸门信号)为高电平时,基准信号计数器cnt1和被测信号计数器cnt2并不启动,而是等被测信号的上升沿来到时才同时开始计数;当预置们信号为低电平时,两个计数器并不马上关闭,同样要等到被测信号上升沿来到后再关闭;于是,实际闸门时间就是被测信号周期的整数倍,从而实现了闸门与被测信号的同步。但是,实际的门闸时间并不固定,与被测信号的频率有关。此外,无论是采用计数器还是单片机,在实现等精度测量时总是离不开门控器件。
本设计基于dsp丰富的软件资源,经过判断和处理,完成了对被测信号频率的等精度测量。硬件上无需任何门控器件,简化了电路。系统框图如图2所示,信号处理部分以tms320f2812 dsp芯片作为控制和测量的核心;信号调理部分主要是完成对信号的放大、整形和限幅;标准频率信号由30mhz有源晶振产生,作为高频标准填充脉冲;通过dsp的sci模块与上位机实现通信,结果显示在上位机上。
图2 系统框图
频率/周期测量
在对被测信号频率和周期的测量中,等精度测量是基于dsp比较匹配时t1pwm引脚输出电平的跳变作为门闸信号的开启和关闭,由于比较匹配发生在被测信号的上升沿,从而实现了门闸时间与被测信号的同步。原理图如图3所示。
图3 本等精度频率测量原理
通用定时器t1时钟输入选择外部定时器时钟,此处用调理后的被测信号作为定时器t1的时钟输入,定时器t2时钟输入选择内部cpu时钟,用来产生高频标准填充脉冲。f2812片上eva中通用定时器t1在发生比较匹配事件时,其比较输出引脚t1cmp输出信号会自动改变电平状态,产生pwm波。捕获单元cap1设置为上升沿捕获,t1pwm输出的pwm波上升沿被cap1捕获到,读取此时定时器t2的计数值,同理在下一次比较匹配时再次读取定时器t2的计数值。通过两次t2cnt值的相减,即可获得该门闸时间内标准填充脉冲的个数,然后求出被测信号频率。
基于dsp比较匹配时t1pwm引脚输出电平的跳变作为门闸信号的开启和关闭,由于比较匹配发生在被测信号的上升沿,从而实现了门闸时间与被测信号的同步。两个相邻的比较匹配产生的pwm波的上升沿分别作为门闸信号的开启和关闭信号,其中被测信号的个数为整数,并且是由我们自己任意设定的。定时器t2时钟输入选择内部cpu时钟,用来产生标准填充脉冲。设定捕获单元cap1为上升沿捕获,当其捕获到上升沿时读取堆栈capfifo内的值,在下一次捕获到时再读堆栈内的值,计算出标准填充脉冲的个数ny,保证ny的个数不小于一定的值,即可保证门闸时间大于一定的值。假设现在希望一个门闸时间内高频填充脉冲的总数不小于n,当ny>n时,就增大定时器t1的定时周期,即增大定时器t1周期寄存器tipr的值。存在公式t1pr+1=n/ny,由于n/ny不一定为整数,假a 周期测量与频率测量的基本原理完全相同,测出信号频率,根据公t=1/f即可得出被测信号的周期。
误差分析
定时器t1计数的启停时间都是由该信号的上升沿触发的,在一次测量时间内对被测信号的计数无误差;在此时间内标准频率脉冲的计数个数ny,最多相差一个脉冲,故理论误差为:
|d|≤1/ny
显然,测量精度仅仅与ny有关,只要ny值足够大,就能保证精度。
硬件设计
如图4所示,将被测信号经过高速运放opa2690进行放大,在经过高速比较器tl3016进行整形[3],由于比较器在对低频正弦波信号进行整形时,输出波形的边沿有比较严重的抖动,影响测量。解决办法是对比较器加入正反馈,加速信号边沿,同时形成滞环,可有效消除抖动。整形后的信号经过高速施密特触发sn74lvc1g14进行限幅和进一步整形。测量部分主要使用dsp2812芯片上定时器t1的时钟输入引脚tclkina、定时器t1的比较输出引脚t1pwm和捕获单元cap1的输入引脚cap1,即可完成频率测量。通讯部分选择max3221作为rs-232电平转换器件,通过9芯标准rs-232口与上位机进行串行通信。主要使用了dsp的串行通信发送引脚scirxd和串行通信接收引脚scitxd。
图4 硬件电路连接图
软件设计
软件设计部分主要包括以下四部分:
·初始化:对变量参数、系统时钟、pie、ev、flash、gpio等进行配置。
·中断模块:sci中断和定时器t2、t3上溢中断。
·数据处理模块:分段+取算术平均值。
·输出操作模块:数据经rs-232传给上位机。
图5为测频率、周期软件流程图,图6为定时器2的溢出中断流程图。
图5 测频率、周期流程图
图6 定时器t2溢出中断流程图
在该部分初始化时,要进行以下配置:通用定时器t1时钟输入为外部定时器时钟,通用定时器t2时钟输入为内部时钟输入,用来对标准脉冲进行计数,该标准脉冲由外部30mhz的有源晶振提供;捕获单元1设置为上升沿捕获,用来捕获t1pwm引脚输出pwm波的上升沿,在每次比较匹配时读取定时器t2的计数值t2cnt,该值保存在cap1fifo内。初始化时要将捕获单元1的状态寄存器中的fifo堆栈状态设置成空堆栈;将定时器t1的定时周期设置为4个被测信号的周期长度,通过测得的定时器t1的一个定时周期内的标准脉冲的个数,计算出被测信号频率,然后对被测信号进行分段,分别为低频段(小于46.875hz),中频段(大于46.875hz,小于2343.75khz),以及高频段(大于2343.75 khz),其中分段的依据是定时器的计数饱和值为65536和计数个数应大于等于1。若信号频率为中高频段则重新配置定时器t1,定时器t2的寄存器,来改变定时周期以及每个门闸时间内的高频填充脉冲的个数。在定时器t1的下一个定时周期内计算出频率和周期。另外,定时器t2的溢出次数要在第一次发生比较匹配时清零,而是否是第一次发生比较匹配则通过设置一个标志来判断。当溢出次数清零后才开始记溢出次数,直到第二次发生比较匹配。
下一步改进意见
该方法的测量误差主要来自硬件部分,整形电路的优劣直接关系到测量精度的高低。所以我们下一步的工作就是改进整形电路的整形效果和抗干扰性能,尽最大可能减小信号整形带来的误差。
由于dsp定时器在计数时存在计数饱和的情况,因此在实现该等精度测量时存在上限,即当被测信号频率高于高频填充脉冲的频率时,该方法就不能实现等精度了。可以在该方案的基础上进行以下处理:选择定时器t1定时周期内被测信号的个数固定,可设置t1pr为65529,同时将定时器t2的时钟修改为75mhz,这样就能保证每个门闸时间内高频填充脉冲的个数,从而在对高频信号实现频率和周期测量时保证了精度。
但选择定时器t1时钟输入为外部时钟时对被测信号的输入范围存在限制,如果要进一步提高测量的信号的范围,使得范围达到上百兆或上g赫兹,可以考虑相位测量的方法,将被测信号设为360度,根据被测信号与标准信号之间的x度相位差,计算被测信号频率。

食品重金属含量检测仪那家好?
太阳能电池构造与发电原理
DSP芯片资料
mb6f整流桥有什么作用 整流桥mb6f与mb6s一样吗
干货:各类继电器的接线方法及通用继电器接线图
基于DSP2812设计的简易数字频率计
电源企业面向21世纪发展之浅见
雪铁龙天逸什么时候要上市?雪铁龙天逸雪铁龙的骄傲之作,旗舰型SUV即将上市
一文深入理解操作系统的进程调度
麒麟970已被曝光!将采用更先进10nm工艺
怎样延长双金属温度计的寿命
机器人需要一双慧眼吗
大手笔!微软在GitHub开源的5大技术教程
四款来自国外的机器人,再次刷新我的认知
骁龙865放弃台积电代工?高通重回三星怀抱一年前就伏笔了!
IT未来十年枯荣变数:摩尔定律与消费主义
最简单的射频发射器电路
天钰原装FP6373AS6CTR芯片,可调输出电压低至0.6V,电源良好指示灯输出
美普思推出多线程内核C2-270 防撞系统
方太水槽洗碗机JBSD2T-Q8评测 比手洗干净不费水