陳飛,張天宏,羅震
(南京航空航天大學江蘇省航空動力系統重點實驗室,江蘇210016)
ARM平臺的高精度滑動測頻法
陳飛,張天宏,羅震
(南京航空航天大學江蘇省航空動力系統重點實驗室,江蘇210016)
基于ARM平臺設計了一種改進滑動測頻法。該方法定時更新一個運行參數序列,以同時記錄脈沖信號計數值和脈沖信號采集時間,并由運行參數序列求取被測脈沖信號的頻率值。該方法有效解決了傳統測頻法測量結果更新時間長,只適用于高頻信號的測量的問題。試驗結果表明,所設計的改進滑動測頻法提高了測量結果的實時性,同樣適用于低頻信號的測量,且實現簡單。
測頻法;高精度;實時;ARM
在電子技術中,頻率是最基本的參數之一,并且與許多電參量的測量方案、測量結果都有十分密切的關系,因此頻率的測量就顯得更為重要[1-2]。
傳統的頻率測量方法主要有三種:測頻法、測周法和組合測周法[3]。測頻法作為一種簡單易用的頻率測量方法,在實際工程中被大量應用,其原理是:在一定時間間隔T1內,計算檢測到的脈沖信號個數以此獲得被測脈沖信號的頻率測量值。但測頻法只適用于測量高頻信號,且測量結果的更新時間等于時間間隔T1,更新不及時,實時性差。本文設計的改進滑動測頻法是對傳統測頻法的改進,不僅提高了測量結果的實時性,也適用于測量低頻信號。
目前ARM內核微控制器發展迅速,其性能高、耗電少、成本低,具備16/32位雙指令集。本文選用TI公司Cortex-M4內核的TM4C123GHP6M芯片,該芯片最高具有80 MHz主頻,多個高精度定時器,滿足改進滑動測頻法的實現要求[4]。
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]。
基于改進滑動測頻法的原理,本文充分利用TM4C123GHP6M芯片的32/64位通用定時器和串口通信模塊設計了一個轉速采集控制器。
由改進滑動測頻法的原理可知,該方法的核心是脈沖信號計數值的實時更新、脈沖信號采集時間的實時更新和運行參數序列的定時更新。為實現脈沖信號計數值和采集時間的實時更新,利用TM4C123GHP6M芯片32/64位通用定時器的輸入邊沿計數捕獲中斷功能和定時計數功能,第一個32/64位通用定時器設定為輸入邊沿計數捕獲,計數值設為1,上升沿采集,第二個32/64位通用定時器設定為定時計數器。圖3所示是脈沖信號計數值和采集時間的實時更新示意圖,當第一個32/64位通用定時器采集到脈沖信號的上升沿,程序立即進入中斷服務程序,將當前的脈沖信號計數值加1,并記錄當前的定時計數器的計數值作為采集時間。為實現運行參數序列的定時更新,利用TM4C123GHP6M芯片32/64位通用定時器的定時中斷功能,設定定時時間為tf,當定時時間到后程序進入中斷服務程序,更新運行參數序列并計算被測脈沖信號的頻率值。

圖3 脈沖信號計數值和采集時間的實時更新

圖4 運行參數序列的定時更新與頻率值的計算
其中運行參數序列的定時更新與頻率值的計算程序代碼如下:

本文設計的頻率采集控制器的計數頻率是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)