王皎 任曉琨
摘要:嵌入式系統(tǒng)中,頻率采集是一個非常重要和普遍的功能,信號采集的精確性和可靠性對系統(tǒng)應(yīng)用至關(guān)重要。該文針對基于DSP的頻率捕獲單元,通過數(shù)頻,計算和濾波,提出了一種通用的計算方法。并通過實際激勵信號,進行測試和驗證,結(jié)果表明該頻率計算方法有效,測量精度高。
關(guān)鍵詞:頻率;DSP;捕獲單元
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2019)12-0276-02
開放科學(xué)(資源服務(wù))標識碼(OSID):
Calculating Methods of Frequency Based on DSP
WANG Jiao, REN Xiao-kun
(AVIC ACTRI,Xian 710065, China)
Abstract: In an embedded system, Frequency acquisition is a very important and universal feature. The accuracy and reliability of signal acquisition is critical to system applications This article is for DSP based frequency capture unit.it Proposed ageneral calculation method by calculation and filtering. This method was tested and verified by actual excitation signal. The result show that the frequency calculation method is effective and accurately.
Key words: frequency; dsp; capture unit
1 背景
當今時代,嵌入式系統(tǒng)已無所不在。從早期的汽車工業(yè),國防工業(yè),通信設(shè)備,工業(yè)控制,醫(yī)療器械等領(lǐng)域已很快擴展到與人們?nèi)粘I蠲芮邢嚓P(guān)的電子產(chǎn)品中。以DSP為核心的嵌入式系統(tǒng)更是成為現(xiàn)代人生活的一部分。在這種以微處理器為硬件平臺的系統(tǒng)中,頻率采集是系統(tǒng)應(yīng)用中非常常見的一種需求。而由于DSP的型號種類繁多,外部設(shè)備激勵也千差萬別。因此,提出一種通用,精度高的頻率采集方法。該方法通過DSP的捕獲單元獲得時間值,并經(jīng)過軟件采頻算法計算出最終頻率值。
2 頻率捕獲單元設(shè)計原理
DSP的捕獲單元是掛在內(nèi)部事件管理器EV下,EV具有自己通用定時器,捕獲單元通過獲取外部輸入脈沖波形的上升沿或者下降沿,統(tǒng)計脈沖的間隔,,以及脈沖的個數(shù)。圖1為EVA組成框圖。
2.1 通用定時器配置
通用定時器的數(shù)值根據(jù)外部晶振,PLL寄存器,高速預(yù)定標寄存器,以及TPS因子設(shè)置而來,如圖2所示。
其中,
SYSCLKOUT=OSCCLK(m=0)
SYSCLKOUT=OSCCLK*m/2(m[≠]0)
HSPCLK= SYSCLKOUT(n=0)
HSPCLK= SYSCLKOUT/2n(n[≠]0)
TCLK= HSPCLK/[2p]
2.2 捕獲單元
捕獲單元能夠捕獲外部輸入引腳的電平變化,其原理圖如圖3所示:
每個捕獲單元都有一個捕獲引腳,當捕獲引腳輸入脈沖波形時,捕獲單元就能夠捕獲指定的電平變化,當捕獲到脈沖指定的電平變化時,捕獲單元就記錄下定時器的時間。捕獲到第一個脈沖時定時器的時間為[tk-1],捕獲到第2個脈沖定時器的時間為[tk],那么脈沖的寬度就為[tk]-[tk-1]。由此便可計算出頻率值。
3 數(shù)頻計算設(shè)計
本文中使用TMS2812,在CCS中進行DSP的初始化和數(shù)頻計算,其中設(shè)置參
數(shù)如表1所示:
軟件算法中每50ms計算一次頻率值,每個周期中最大收取20次脈沖時間值,達到20次后,關(guān)中斷。不再進行脈沖時間的收集。每50ms將收集到的脈沖時間值存入FIFO中,并記錄收集到的中斷次數(shù)。由于時間是累加增長的,所以通過前后兩次的時間差和脈沖次數(shù)便可計算出頻率值,考慮到計時器有可能翻轉(zhuǎn)的情況,當前后脈沖時間差值為負數(shù)時,加上計數(shù)器翻轉(zhuǎn)一圈的最大值。代碼實現(xiàn)如下:
IF FREQCOUT11>=20 THEN
For(i=0;i<19;i++)
{
IF 后一次采集值<=前一次采集值 THEN
(JZ*PLL*HSPCLK*TCLK*1000)/(后一次采集值+0xffff—前一次采集值)
ELSE
(JZ*PLL*HSPCLK*TCLK*1000)/(后一次采集值—前一次采集值)
END IF
}
頻率濾波(19)
ELSE
IF FREQCOUT11==0 THEN
頻率=0
ELSE IF FREQCOUT11==1 THEN
頻率=10
ELSE
For(i=0;i< FREQCOUT11-1;i++)
{
IF 后一次采集值<=前一次采集值 THEN
(JZ*PLL*HSPCLK*TCLK*1000)/(后一次采集值+0xffff—前一次采集值)
ELSE
(JZ*PLL*HSPCLK*TCLK*1000)/(后一次采集值—前一次采集值)
END IF
}
頻率濾波(FREQCOUT11-1)
4 測試結(jié)果分析
使用頻率發(fā)生器,實際測量結(jié)果如表2所示,當頻率低于10Hz時,采集頻率均為0,該數(shù)據(jù)是因為采集周期為50ms,時間過短原因,實際使用中,如果對于低頻信號有系統(tǒng)需求,可加長采集周期時間。當高于10Hz時,采集精度誤差小于1%,符合預(yù)期要求。
參考文獻:
[1] 梁波. 飛機電動靜液防滑剎車系統(tǒng)額仿真研究[D]. 西安: 西北工業(yè)大學(xué), 2009.
[2] 范啟亮. 一種簡易數(shù)字頻率計的設(shè)計與實現(xiàn)[J]. 科技風(fēng), 2014(20).
[3] 白勇. 基于FPGA的飛機輪速測量系統(tǒng)設(shè)計[J]. 微處理機, 2011, 32(3): 16-19.
[4] 陳勇, 洪傳文. 基于LabVIEW 的水輪機振動信號采集與處理[J]. 水電與新能源, 2010(5): 27-29.
[5] 葛君, 王旭柱. 基于TMS320C6713B 的實時數(shù)據(jù)采集與處理系統(tǒng)[J]. 微計算機信息, 2010, 26(12): 111-113.
【通聯(lián)編輯:謝媛媛】