陳飛,張?zhí)旌?羅震
(南京航空航天大學(xué)江蘇省航空動(dòng)力系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,江蘇210016)
ARM平臺(tái)的高精度滑動(dòng)測頻法
陳飛,張?zhí)旌?羅震
(南京航空航天大學(xué)江蘇省航空動(dòng)力系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,江蘇210016)
基于ARM平臺(tái)設(shè)計(jì)了一種改進(jìn)滑動(dòng)測頻法。該方法定時(shí)更新一個(gè)運(yùn)行參數(shù)序列,以同時(shí)記錄脈沖信號(hào)計(jì)數(shù)值和脈沖信號(hào)采集時(shí)間,并由運(yùn)行參數(shù)序列求取被測脈沖信號(hào)的頻率值。該方法有效解決了傳統(tǒng)測頻法測量結(jié)果更新時(shí)間長,只適用于高頻信號(hào)的測量的問題。試驗(yàn)結(jié)果表明,所設(shè)計(jì)的改進(jìn)滑動(dòng)測頻法提高了測量結(jié)果的實(shí)時(shí)性,同樣適用于低頻信號(hào)的測量,且實(shí)現(xiàn)簡單。
測頻法;高精度;實(shí)時(shí);ARM
在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,因此頻率的測量就顯得更為重要[1-2]。
傳統(tǒng)的頻率測量方法主要有三種:測頻法、測周法和組合測周法[3]。測頻法作為一種簡單易用的頻率測量方法,在實(shí)際工程中被大量應(yīng)用,其原理是:在一定時(shí)間間隔T1內(nèi),計(jì)算檢測到的脈沖信號(hào)個(gè)數(shù)以此獲得被測脈沖信號(hào)的頻率測量值。但測頻法只適用于測量高頻信號(hào),且測量結(jié)果的更新時(shí)間等于時(shí)間間隔T1,更新不及時(shí),實(shí)時(shí)性差。本文設(shè)計(jì)的改進(jìn)滑動(dòng)測頻法是對(duì)傳統(tǒng)測頻法的改進(jìn),不僅提高了測量結(jié)果的實(shí)時(shí)性,也適用于測量低頻信號(hào)。
目前ARM內(nèi)核微控制器發(fā)展迅速,其性能高、耗電少、成本低,具備16/32位雙指令集。本文選用TI公司Cortex-M4內(nèi)核的TM4C123GHP6M芯片,該芯片最高具有80 MHz主頻,多個(gè)高精度定時(shí)器,滿足改進(jìn)滑動(dòng)測頻法的實(shí)現(xiàn)要求[4]。
1.1 傳統(tǒng)測頻法
在一定時(shí)間間隔T1內(nèi),計(jì)數(shù)被測脈沖信號(hào)的個(gè)數(shù)N,則被測信號(hào)的頻率。其測量準(zhǔn)確性主要由兩項(xiàng)誤差決定:一項(xiàng)是時(shí)基誤差;另一項(xiàng)是量化±1誤差。當(dāng)時(shí)基誤差遠(yuǎn)小于量化±1誤差時(shí),測量準(zhǔn)確性主要由量化±1誤差來確定,測量相對(duì)誤差。
設(shè)信號(hào)最低頻率為fmin,容許的測量相對(duì)誤差為emax,則定時(shí)時(shí)間間隔應(yīng)T1滿足關(guān)系式T1≥1/(fminemax)。傳統(tǒng)測頻法測量結(jié)果的更新時(shí)間間隔也為T1,以時(shí)間區(qū)間[tn, tn+T1]為例,測量結(jié)果相對(duì)于實(shí)際被測信號(hào)的滯后時(shí)間在[T1/2,3 T1/2]之間變化[5]。
在某些脈沖信號(hào)發(fā)生器(如音輪)齒數(shù)較少的轉(zhuǎn)速測量系統(tǒng)中,被測信號(hào)的頻率較低,此時(shí)為保證測量結(jié)果的相對(duì)誤差滿足性能要求,需要較大的時(shí)間間隔T1,但這會(huì)導(dǎo)致測量結(jié)果的更新時(shí)間大大增加,更新速率變慢,同時(shí)導(dǎo)致滯后時(shí)間變大;且傳統(tǒng)測頻法受原理所限,在測量低頻信號(hào)時(shí)本身的測量誤差較大。這都導(dǎo)致傳統(tǒng)測頻法不適用于更新速度快、延遲要求高、被測頻率較低的應(yīng)用場合。
1.2 改進(jìn)滑動(dòng)測頻法
本文設(shè)計(jì)的改進(jìn)滑動(dòng)測頻法的本質(zhì)是將傳統(tǒng)測頻法的時(shí)間間隔T1的1/n設(shè)置為新的定時(shí)時(shí)間tf,每隔tf時(shí)間讀取一次脈沖信號(hào)總數(shù),并根據(jù)最新記錄的n+1個(gè)脈沖信號(hào)總數(shù)獲得時(shí)間間隔T1內(nèi)系統(tǒng)采集到的脈沖信號(hào)總數(shù)m來計(jì)算頻率,因此測量結(jié)果的更新間隔縮短為傳統(tǒng)測頻法的1/n。該方法同時(shí)記錄每次采集到上升沿的時(shí)間,以此獲得m個(gè)脈沖信號(hào)的實(shí)際時(shí)間間隔T,將測頻法轉(zhuǎn)換為測周法,大大提高了低頻信號(hào)的測量精度。
該方法主要包括三部分:
①脈沖信號(hào)計(jì)數(shù)值的實(shí)時(shí)更新,記錄采集到的脈沖信號(hào)的總個(gè)數(shù);
②脈沖信號(hào)采集時(shí)間的實(shí)時(shí)更新,記錄脈沖上升沿時(shí)定時(shí)計(jì)數(shù)器的計(jì)數(shù)值;
③運(yùn)行參數(shù)序列的定時(shí)更新,保存當(dāng)前時(shí)刻脈沖信號(hào)計(jì)數(shù)值和最新一次的脈沖信號(hào)采集時(shí)間。
脈沖信號(hào)計(jì)數(shù)值是從程序開始,運(yùn)行系統(tǒng)采集到的脈沖信號(hào)的總個(gè)數(shù),脈沖信號(hào)的采集時(shí)間是在脈沖信號(hào)的上升沿時(shí)定時(shí)計(jì)數(shù)器的計(jì)數(shù)值。脈沖信號(hào)的計(jì)數(shù)值和采集時(shí)間的實(shí)時(shí)更新都采用嵌入式系統(tǒng)的中斷功能,當(dāng)芯片采集到脈沖信號(hào)的上升沿時(shí),程序進(jìn)入中斷服務(wù)程序時(shí),將當(dāng)前的脈沖信號(hào)計(jì)數(shù)值加1,并記錄當(dāng)前的定時(shí)計(jì)數(shù)器的計(jì)數(shù)值作為采集時(shí)間。
運(yùn)行參數(shù)序列是一個(gè)行數(shù)為L、列數(shù)為2的數(shù)組,數(shù)組中每行存儲(chǔ)兩個(gè)數(shù)據(jù),分別是脈沖信號(hào)計(jì)數(shù)值和脈沖信號(hào)采集時(shí)間。運(yùn)行參數(shù)序列的定時(shí)更新采用嵌入式系統(tǒng)的中斷功能,當(dāng)定時(shí)時(shí)間tf到后,程序進(jìn)入中斷服務(wù)程序,記錄當(dāng)前的脈沖信號(hào)計(jì)數(shù)值和脈沖信號(hào)采集時(shí)間,將其滑動(dòng)更新進(jìn)運(yùn)行參數(shù)序列。
運(yùn)行參數(shù)序列的更新方式如圖1所示,將運(yùn)行參數(shù)序列的每行2個(gè)數(shù)據(jù)看做一個(gè)整體,在tn+1時(shí)刻采集到一個(gè)新的脈沖信號(hào)計(jì)數(shù)值和脈沖信號(hào)采集時(shí)間Datan+1,則Datan+1將被加入到運(yùn)行參數(shù)序列的入口端,tn時(shí)刻的數(shù)據(jù)整體往出口端平移,Datan-m從出口端去除。
在運(yùn)行參數(shù)序列更新后可以計(jì)算被測脈沖信號(hào)的頻率大小。首先計(jì)算運(yùn)行參數(shù)序列入口端與出口端的實(shí)際時(shí)間間隔T,取運(yùn)行參數(shù)序列入口端數(shù)據(jù)中的脈沖信號(hào)采集時(shí)間減去出口端數(shù)據(jù)中的脈沖信號(hào)采集時(shí)間,再除以定時(shí)計(jì)數(shù)器的計(jì)數(shù)頻率,就可得到實(shí)際時(shí)間間隔T。再計(jì)算實(shí)際時(shí)間間隔T內(nèi)嵌入式系統(tǒng)采集到的脈沖信號(hào)個(gè)數(shù)m,取運(yùn)行參數(shù)序列入口端的脈沖信號(hào)計(jì)數(shù)值減去出口端的脈沖信號(hào)計(jì)數(shù)值。最后用脈沖信號(hào)個(gè)數(shù)m除以實(shí)際時(shí)間間隔T得到頻率測量值。改進(jìn)滑動(dòng)測頻法計(jì)數(shù)示意圖如圖2所示。
圖1 運(yùn)行參數(shù)序列的更新示意圖
圖2 改進(jìn)滑動(dòng)測頻法計(jì)數(shù)示意圖
其中,定時(shí)時(shí)間tf等于實(shí)際要求的頻率測量的更新時(shí)間間隔;運(yùn)行參數(shù)序列行數(shù)L的選取依據(jù)定時(shí)時(shí)間tf和頻率測量實(shí)時(shí)性的要求,其中(L-1)tf≤滯后時(shí)間[5]。
基于改進(jìn)滑動(dòng)測頻法的原理,本文充分利用TM4C123GHP6M芯片的32/64位通用定時(shí)器和串口通信模塊設(shè)計(jì)了一個(gè)轉(zhuǎn)速采集控制器。
由改進(jìn)滑動(dòng)測頻法的原理可知,該方法的核心是脈沖信號(hào)計(jì)數(shù)值的實(shí)時(shí)更新、脈沖信號(hào)采集時(shí)間的實(shí)時(shí)更新和運(yùn)行參數(shù)序列的定時(shí)更新。為實(shí)現(xiàn)脈沖信號(hào)計(jì)數(shù)值和采集時(shí)間的實(shí)時(shí)更新,利用TM4C123GHP6M芯片32/64位通用定時(shí)器的輸入邊沿計(jì)數(shù)捕獲中斷功能和定時(shí)計(jì)數(shù)功能,第一個(gè)32/64位通用定時(shí)器設(shè)定為輸入邊沿計(jì)數(shù)捕獲,計(jì)數(shù)值設(shè)為1,上升沿采集,第二個(gè)32/64位通用定時(shí)器設(shè)定為定時(shí)計(jì)數(shù)器。圖3所示是脈沖信號(hào)計(jì)數(shù)值和采集時(shí)間的實(shí)時(shí)更新示意圖,當(dāng)?shù)谝粋€(gè)32/64位通用定時(shí)器采集到脈沖信號(hào)的上升沿,程序立即進(jìn)入中斷服務(wù)程序,將當(dāng)前的脈沖信號(hào)計(jì)數(shù)值加1,并記錄當(dāng)前的定時(shí)計(jì)數(shù)器的計(jì)數(shù)值作為采集時(shí)間。為實(shí)現(xiàn)運(yùn)行參數(shù)序列的定時(shí)更新,利用TM4C123GHP6M芯片32/64位通用定時(shí)器的定時(shí)中斷功能,設(shè)定定時(shí)時(shí)間為tf,當(dāng)定時(shí)時(shí)間到后程序進(jìn)入中斷服務(wù)程序,更新運(yùn)行參數(shù)序列并計(jì)算被測脈沖信號(hào)的頻率值。
圖3 脈沖信號(hào)計(jì)數(shù)值和采集時(shí)間的實(shí)時(shí)更新
圖4 運(yùn)行參數(shù)序列的定時(shí)更新與頻率值的計(jì)算
其中運(yùn)行參數(shù)序列的定時(shí)更新與頻率值的計(jì)算程序代碼如下:
本文設(shè)計(jì)的頻率采集控制器的計(jì)數(shù)頻率是80 MHz,設(shè)定頻率測量的更新時(shí)間間隔為20 ms,也就是定時(shí)時(shí)間tf等于20 ms。試驗(yàn)系統(tǒng)要求的測量延遲時(shí)間不高于0.5 s,選擇運(yùn)行參數(shù)序列行數(shù)L為51。試驗(yàn)系統(tǒng)包括電機(jī)、音輪(齒數(shù)為60)、磁電式轉(zhuǎn)速傳感器和頻率采集控制器,電機(jī)帶動(dòng)音輪旋轉(zhuǎn),激勵(lì)磁電式轉(zhuǎn)速傳感器產(chǎn)生正弦信號(hào),頻率采集控制器首先將正弦信號(hào)轉(zhuǎn)換為脈沖信號(hào),再采用改進(jìn)滑動(dòng)測頻法對(duì)脈沖信號(hào)的頻率進(jìn)行采集。
實(shí)際測量效果如圖5所示:圖中傳統(tǒng)測頻法曲線的時(shí)間間隔T1選擇為1 s(保證1000 Hz測量誤差不大于0.1%)??梢悦黠@地看到在61.5 s左右轉(zhuǎn)速開始升高,傳統(tǒng)測頻法的測量值只能1秒更新一次,而改進(jìn)滑動(dòng)測頻法的更新時(shí)間顯著小于1秒(實(shí)際為20 ms),大大提高了轉(zhuǎn)速測量值的實(shí)時(shí)性。同時(shí)分別給定500 Hz、1500 Hz和4500 Hz的被測信號(hào),實(shí)際測量結(jié)果分別為499.9 Hz、1499.9 Hz和4 499.8 Hz,對(duì)于低頻信號(hào)測量精度同樣很高。
圖5 實(shí)際脈沖信號(hào)采集試驗(yàn)
本文在TM4C123GHP6M芯片上設(shè)計(jì)并實(shí)現(xiàn)了一種改進(jìn)滑動(dòng)測頻法。該方法實(shí)現(xiàn)簡單設(shè)計(jì)新穎,有效解決了傳統(tǒng)測頻法測量結(jié)果更新時(shí)間慢、不適用于低頻信號(hào)的問題,具有一定的工程實(shí)用價(jià)值。
[1]馬惠鋮.基于單片機(jī)的等精度測頻法及其應(yīng)用研究[J].赤峰學(xué)院學(xué)報(bào):自然科學(xué)版,2015(9):4344.
[2]宋立新.準(zhǔn)等精度多周期同步測頻法及實(shí)現(xiàn)[J].哈爾濱理工大學(xué)學(xué)報(bào),1999,4(4):2021.
[3]周正干,李然,李和平,等.高精度數(shù)字式轉(zhuǎn)速測量系統(tǒng)的研究[J].測控技術(shù),2000,19(5):6062.
[4]沈建華.ARM處理器與嵌入式系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(11):57.
[5]郝允志,周黔.動(dòng)態(tài)頻率測量的滯后誤差分析及改進(jìn)[J].儀器儀表學(xué)報(bào),2016,37(1):7582.
陳飛、羅震(碩士研究生),主要研究方向?yàn)楹娇瞻l(fā)動(dòng)機(jī)控制系統(tǒng)設(shè)計(jì)與仿真;張?zhí)旌?教授),主要研究方向?yàn)榍度胧娇刂葡到y(tǒng)、系統(tǒng)控制與仿真。
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)