ARM平台的高精度滑动测频法
2016-03-20陈飞张天宏罗震
陈飞,张天宏,罗震
(南京航空航天大学江苏省航空动力系统重点实验室,江苏210016)
ARM平台的高精度滑动测频法
陈飞,张天宏,罗震
(南京航空航天大学江苏省航空动力系统重点实验室,江苏210016)
基于ARM平台设计了一种改进滑动测频法。该方法定时更新一个运行参数序列,以同时记录脉冲信号计数值和脉冲信号采集时间,并由运行参数序列求取被测脉冲信号的频率值。该方法有效解决了传统测频法测量结果更新时间长,只适用于高频信号的测量的问题。试验结果表明,所设计的改进滑动测频法提高了测量结果的实时性,同样适用于低频信号的测量,且实现简单。
测频法;高精度;实时;ARM
引 言
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要[1-2]。
传统的频率测量方法主要有三种:测频法、测周法和组合测周法[3]。测频法作为一种简单易用的频率测量方法,在实际工程中被大量应用,其原理是:在一定时间间隔T1内,计算检测到的脉冲信号个数以此获得被测脉冲信号的频率测量值。但测频法只适用于测量高频信号,且测量结果的更新时间等于时间间隔T1,更新不及时,实时性差。本文设计的改进滑动测频法是对传统测频法的改进,不仅提高了测量结果的实时性,也适用于测量低频信号。
目前ARM内核微控制器发展迅速,其性能高、耗电少、成本低,具备16/32位双指令集。本文选用TI公司Cortex-M4内核的TM4C123GHP6M芯片,该芯片最高具有80 MHz主频,多个高精度定时器,满足改进滑动测频法的实现要求[4]。
1 改进滑动测频法的原理
1.1 传统测频法
在一定时间间隔T1内,计数被测脉冲信号的个数N,则被测信号的频率。其测量准确性主要由两项误差决定:一项是时基误差;另一项是量化±1误差。当时基误差远小于量化±1误差时,测量准确性主要由量化±1误差来确定,测量相对误差。
设信号最低频率为fmin,容许的测量相对误差为emax,则定时时间间隔应T1满足关系式T1≥1/(fminemax)。传统测频法测量结果的更新时间间隔也为T1,以时间区间[tn, tn+T1]为例,测量结果相对于实际被测信号的滞后时间在[T1/2,3 T1/2]之间变化[5]。
在某些脉冲信号发生器(如音轮)齿数较少的转速测量系统中,被测信号的频率较低,此时为保证测量结果的相对误差满足性能要求,需要较大的时间间隔T1,但这会导致测量结果的更新时间大大增加,更新速率变慢,同时导致滞后时间变大;且传统测频法受原理所限,在测量低频信号时本身的测量误差较大。这都导致传统测频法不适用于更新速度快、延迟要求高、被测频率较低的应用场合。
1.2 改进滑动测频法
本文设计的改进滑动测频法的本质是将传统测频法的时间间隔T1的1/n设置为新的定时时间tf,每隔tf时间读取一次脉冲信号总数,并根据最新记录的n+1个脉冲信号总数获得时间间隔T1内系统采集到的脉冲信号总数m来计算频率,因此测量结果的更新间隔缩短为传统测频法的1/n。该方法同时记录每次采集到上升沿的时间,以此获得m个脉冲信号的实际时间间隔T,将测频法转换为测周法,大大提高了低频信号的测量精度。
该方法主要包括三部分:
①脉冲信号计数值的实时更新,记录采集到的脉冲信号的总个数;
②脉冲信号采集时间的实时更新,记录脉冲上升沿时定时计数器的计数值;
③运行参数序列的定时更新,保存当前时刻脉冲信号计数值和最新一次的脉冲信号采集时间。
脉冲信号计数值是从程序开始,运行系统采集到的脉冲信号的总个数,脉冲信号的采集时间是在脉冲信号的上升沿时定时计数器的计数值。脉冲信号的计数值和采集时间的实时更新都采用嵌入式系统的中断功能,当芯片采集到脉冲信号的上升沿时,程序进入中断服务程序时,将当前的脉冲信号计数值加1,并记录当前的定时计数器的计数值作为采集时间。
运行参数序列是一个行数为L、列数为2的数组,数组中每行存储两个数据,分别是脉冲信号计数值和脉冲信号采集时间。运行参数序列的定时更新采用嵌入式系统的中断功能,当定时时间tf到后,程序进入中断服务程序,记录当前的脉冲信号计数值和脉冲信号采集时间,将其滑动更新进运行参数序列。
运行参数序列的更新方式如图1所示,将运行参数序列的每行2个数据看做一个整体,在tn+1时刻采集到一个新的脉冲信号计数值和脉冲信号采集时间Datan+1,则Datan+1将被加入到运行参数序列的入口端,tn时刻的数据整体往出口端平移,Datan-m从出口端去除。
在运行参数序列更新后可以计算被测脉冲信号的频率大小。首先计算运行参数序列入口端与出口端的实际时间间隔T,取运行参数序列入口端数据中的脉冲信号采集时间减去出口端数据中的脉冲信号采集时间,再除以定时计数器的计数频率,就可得到实际时间间隔T。再计算实际时间间隔T内嵌入式系统采集到的脉冲信号个数m,取运行参数序列入口端的脉冲信号计数值减去出口端的脉冲信号计数值。最后用脉冲信号个数m除以实际时间间隔T得到频率测量值。改进滑动测频法计数示意图如图2所示。
图1 运行参数序列的更新示意图
图2 改进滑动测频法计数示意图
其中,定时时间tf等于实际要求的频率测量的更新时间间隔;运行参数序列行数L的选取依据定时时间tf和频率测量实时性的要求,其中(L-1)tf≤滞后时间[5]。
2 改进滑动测频法的实现
基于改进滑动测频法的原理,本文充分利用TM4C123GHP6M芯片的32/64位通用定时器和串口通信模块设计了一个转速采集控制器。
由改进滑动测频法的原理可知,该方法的核心是脉冲信号计数值的实时更新、脉冲信号采集时间的实时更新和运行参数序列的定时更新。为实现脉冲信号计数值和采集时间的实时更新,利用TM4C123GHP6M芯片32/64位通用定时器的输入边沿计数捕获中断功能和定时计数功能,第一个32/64位通用定时器设定为输入边沿计数捕获,计数值设为1,上升沿采集,第二个32/64位通用定时器设定为定时计数器。图3所示是脉冲信号计数值和采集时间的实时更新示意图,当第一个32/64位通用定时器采集到脉冲信号的上升沿,程序立即进入中断服务程序,将当前的脉冲信号计数值加1,并记录当前的定时计数器的计数值作为采集时间。为实现运行参数序列的定时更新,利用TM4C123GHP6M芯片32/64位通用定时器的定时中断功能,设定定时时间为tf,当定时时间到后程序进入中断服务程序,更新运行参数序列并计算被测脉冲信号的频率值。
图3 脉冲信号计数值和采集时间的实时更新
图4 运行参数序列的定时更新与频率值的计算
其中运行参数序列的定时更新与频率值的计算程序代码如下:
3 试验结果和分析
本文设计的频率采集控制器的计数频率是80 MHz,设定频率测量的更新时间间隔为20 ms,也就是定时时间tf等于20 ms。试验系统要求的测量延迟时间不高于0.5 s,选择运行参数序列行数L为51。试验系统包括电机、音轮(齿数为60)、磁电式转速传感器和频率采集控制器,电机带动音轮旋转,激励磁电式转速传感器产生正弦信号,频率采集控制器首先将正弦信号转换为脉冲信号,再采用改进滑动测频法对脉冲信号的频率进行采集。
实际测量效果如图5所示:图中传统测频法曲线的时间间隔T1选择为1 s(保证1000 Hz测量误差不大于0.1%)。可以明显地看到在61.5 s左右转速开始升高,传统测频法的测量值只能1秒更新一次,而改进滑动测频法的更新时间显著小于1秒(实际为20 ms),大大提高了转速测量值的实时性。同时分别给定500 Hz、1500 Hz和4500 Hz的被测信号,实际测量结果分别为499.9 Hz、1499.9 Hz和4 499.8 Hz,对于低频信号测量精度同样很高。
图5 实际脉冲信号采集试验
结 语
本文在TM4C123GHP6M芯片上设计并实现了一种改进滑动测频法。该方法实现简单设计新颖,有效解决了传统测频法测量结果更新时间慢、不适用于低频信号的问题,具有一定的工程实用价值。
[1]马惠铖.基于单片机的等精度测频法及其应用研究[J].赤峰学院学报:自然科学版,2015(9):4344.
[2]宋立新.准等精度多周期同步测频法及实现[J].哈尔滨理工大学学报,1999,4(4):2021.
[3]周正干,李然,李和平,等.高精度数字式转速测量系统的研究[J].测控技术,2000,19(5):6062.
[4]沈建华.ARM处理器与嵌入式系统[J].单片机与嵌入式系统应用,2010(11):57.
[5]郝允志,周黔.动态频率测量的滞后误差分析及改进[J].仪器仪表学报,2016,37(1):7582.
陈飞、罗震(硕士研究生),主要研究方向为航空发动机控制系统设计与仿真;张天宏(教授),主要研究方向为嵌入式控制系统、系统控制与仿真。
High-precision Sliding Frequency Measuring Method Based on ARM Platform
Chen Fei,Zhang Tianhong,Luo Zhen
(Jiangsu Province Key Laboratory of Aerospace Power System,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)
A novel measuring frequency method is designed based on ARM.This method periodical updates a sequence of parameters which record the number and the acquisition time of the pulse signal.The frequency of the measured pulse signal can be calculated based on the sequence of parameters.The proposed method can effectively solve the problem of the traditional measuring frequency method that the measurement result’s real-time performance is poor and can only be used for the high-frequency signal.The experiment results show that the designed method can improve the real-time performance of the measurement result and is also suitable for the low-frequency signal.
measuring frequency method;high precision;real-time;ARM
TP368.1
:A
杨迪娜
2016-06-15)