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