• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    采用DSP實現(xiàn)信號高速采集與實時FFT運算

    2021-04-12 01:44:08湖南工業(yè)職業(yè)技術(shù)學(xué)院電氣工程學(xué)院賀力克
    電子世界 2021年5期
    關(guān)鍵詞:源地址存儲器中斷

    湖南工業(yè)職業(yè)技術(shù)學(xué)院電氣工程學(xué)院 賀力克

    湖南工業(yè)大學(xué)交通工程學(xué)院 易吉良

    快速傅里葉變換(FFT)采用時間抽取或頻率抽取方式大大提高了傅里葉變換的運算效率。但在旋轉(zhuǎn)變壓器解碼和電能質(zhì)量分析等應(yīng)用領(lǐng)域,由于信號采樣率很高,同時這些應(yīng)用中FFT算法的運算量很大,在DSP芯片中很難實現(xiàn)實時處理。本文介紹一種采用TMS320F28335DSP實現(xiàn)高速信號采集并實時進行FFT運算的方法,為基于FFT的大運算量算法的實時應(yīng)用提供一種解決方案。

    1 系統(tǒng)構(gòu)成

    以采用DSP解碼的旋轉(zhuǎn)變壓器解碼系統(tǒng)為例,其系統(tǒng)結(jié)構(gòu)框圖如圖1所示。從圖1可以看出,旋轉(zhuǎn)變壓器的三路信號Vc、Vs和Ve通過信號調(diào)理電路轉(zhuǎn)換為滿足DSP內(nèi)置AD端口需要的電壓信號V1~V3。

    圖1 旋轉(zhuǎn)變壓器解碼系統(tǒng)框圖

    一般上述三路信號的頻率為5KHz~10KHz,需要AD的采樣頻率為50KHz~200KHz。以10KHz信號頻率和100KHz采樣頻率為例,若在分析數(shù)據(jù)過程中截取10周期數(shù)據(jù),則待分析信號的時長為0.1ms。在上述條件下,若要做到實時運算,則芯片要在0.1ms內(nèi)要處理完數(shù)據(jù)采樣、算法運算和其他數(shù)據(jù)通信等事務(wù)。如果每次數(shù)據(jù)采樣都需要CPU參與,而FFT沒有高效算法的情況下,一般的DSP芯片很難做到實時性。TI公司的TMS320F28335DSP芯片設(shè)計了直接存儲器訪問技術(shù)(DMA),AD采樣的數(shù)據(jù)直接傳送到指定的數(shù)據(jù)緩沖區(qū),不需要CPU在每個采樣周期都參與數(shù)據(jù)傳輸,只需在完成一定量的數(shù)據(jù)采集后,才通過中斷通知CPU執(zhí)行相關(guān)操作。另外,該芯片的軟件開發(fā)資源非常豐富,包括開發(fā)環(huán)境CCS和資源包controlSUITE,為高數(shù)據(jù)采樣率和大運算量的實時應(yīng)用提供了支持。

    2 TMS320F28335的DMA技術(shù)

    2.1 DMA工作原理

    DMA提供了外設(shè)和存儲器之間的一種直接硬件傳輸數(shù)據(jù)的方式,可以大大減少CPU的開銷。為了簡要描述DMA的工作原理,以ADC采樣結(jié)果傳輸?shù)絉AM的過程為例,描述TMS320F28335的DMA如何直接將AD采樣的數(shù)據(jù)傳輸?shù)街付ǖ腞AM中。

    圖2中DMA的工作首先要分配好源地址和目的地址,在本例中,源地址就是AD采樣結(jié)果寄存器,而目的地址就是存放采樣結(jié)果的數(shù)據(jù)緩沖區(qū)RAM。DSP傳輸數(shù)據(jù)要用到數(shù)據(jù)總線,而這些總線都是共享的,也就是說只有在傳輸數(shù)據(jù)時才能占用。而DMA的傳輸觸發(fā)是通過中斷實現(xiàn)的,即AD一旦完成了采樣就發(fā)出中斷信號,通知DMA將結(jié)果寄存器的數(shù)據(jù)取走,這時DMA就要占用數(shù)據(jù)總線,傳完數(shù)據(jù)就會自動釋放總線。而當(dāng)數(shù)據(jù)緩沖區(qū)填滿的新的數(shù)據(jù)后,可以設(shè)置DMA發(fā)出中斷,通知CPU對緩沖區(qū)的數(shù)據(jù)進行處理,這樣,CPU只需在DMA中斷時才提取數(shù)據(jù),節(jié)省了大量的CPU時間。

    圖2 TMS320F28335DMA原理

    2.2 DMA軟件實現(xiàn)

    根據(jù)上述DMA原理,使用DMA需要對相關(guān)寄存器做設(shè)置,在初始化程序中,主要利用如下幾個C語言函數(shù):(1)DMACH1AddrConfig( ):該函數(shù)用來配置DMA的源地址和目的地址。(2)DMACH1BurstConfig( ):該函數(shù)用于配置每幀DMA傳輸?shù)臄?shù)據(jù)量,以及每次傳輸源地址和目標(biāo)地址改變的步長。(3)DMACH1TransferConfig( ):該函數(shù)用于配置傳輸幀數(shù)量,以及幀地址步長。(4)DMACH1Wrap-Config( ):該函數(shù)用于定義進行循環(huán)傳輸,以及相應(yīng)的源地址和目的地址與步長。(5)DMACH1ModeConfig( ):這個函數(shù)有10個參數(shù)需要配置,關(guān)系到DMA的中斷使能和工作模式等。每個參數(shù)的具體含義需結(jié)合數(shù)據(jù)手冊中的DMA工作流程加以理解,限于篇幅,不再贅述。

    在DMA完成DMACH1TransferConfig( )函數(shù)定義的數(shù)據(jù)幀后,就需要產(chǎn)生中斷,執(zhí)行interrupt void local_DINTCH1_ISR( )中斷函數(shù),在該函數(shù)中執(zhí)行FFT等算法程序。

    3 快速實現(xiàn)FFT

    FFT是很多應(yīng)用中的算法。在DSP中實現(xiàn)FFT有兩種方案,一種是直接根據(jù)FFT的定義編寫程序;另一種是利用TI的FFT庫函數(shù)實現(xiàn)。作者對兩種方案進行了測試,發(fā)現(xiàn)庫函數(shù)有更高的運算效率,下面主要介紹庫函數(shù)的應(yīng)用方法。

    3.1 庫函數(shù)的使用

    庫函數(shù)利用壓縮算法實現(xiàn)FFT,使得計算效率得到了很大提高。其實整個庫函數(shù)除了FFT外,還有求IFFT和求幅值等函數(shù)。庫函數(shù)的源碼在controlSUITE目錄下可以找到,基本都是采用匯編語言編寫。庫函數(shù)的詳細(xì)的使用方法可以從TI公司官網(wǎng)下載文檔C28x-FPU-LIB-UG.pdf進行了解。這里主要介紹在使用庫函數(shù)過程中需要注意一些細(xì)節(jié),如輸入數(shù)據(jù)是否對齊、處理結(jié)果存放在哪些緩沖區(qū)等。

    使用庫函數(shù)只要在CCS工程中添加C28x_FPU_Lib.lib庫文件和FPU.h頭文件,然后就可以直接調(diào)用FFT相關(guān)函數(shù),包括:(1)CFFT_f32( ):該函數(shù)用于計算FFT,注意該函數(shù)的參數(shù)是復(fù)數(shù)格式,在DSP中需要用兩個單元分別存放實部和虛部,且實部在前,虛部在后。(2)ICFFT_f32( ):該函數(shù)用于計算IFFT,其參數(shù)要求與CFFT_f32( )一樣。(3)abs_SP_CV_2( ):該函數(shù)用于求復(fù)數(shù)的幅值,三個參數(shù)分別是存放幅值結(jié)果,輸入的復(fù)數(shù)和數(shù)據(jù)長度。

    圖3 CCS調(diào)試界面

    3.2 cmd文件的處理

    在使用庫函數(shù)求FFT時對數(shù)據(jù)存放的存儲單元有特殊要求,即對齊某個地址,這就需要在存儲器分配文件*.cmd中對相應(yīng)數(shù)據(jù)變量進行說明。*.cmd文件中用到兩條分配存儲單元,即指令MEMORY和SECTIONS。其中MEMORY用于說明系統(tǒng)中有哪些可用的存儲器,而SECTIONS用于將定義的變量分配到可用的存儲器中。為了滿足FFT庫函數(shù)的要求,在SECTIONS指令中需要用到如下說明:

    該語句的含義是將FFTRAML3s數(shù)據(jù)段定位到數(shù)據(jù)空間PAGE1的RAML3存儲器中,當(dāng)然PAGE1和RAML3是在MEMORY指令中定義好的。同時可以注意到,該指令后面還有ALIGN(512)的說明,它是保證FFTRAML3s對齊512個存儲單元,對齊的意思是該數(shù)據(jù)段的起始地址應(yīng)保證最低的N位為0,N要滿足:2N≥512。這樣CCS給FFTRAML3s分配的地址最低9位就是0。這樣做的目的是滿足DSP芯片的高效尋址方式,以使FFT算法快速執(zhí)行。

    4 測試結(jié)果

    采用TMS320F28335開發(fā)板進行測試,系統(tǒng)時鐘頻率位150MHz,利用DMA技術(shù)高速采樣,采樣頻率100kHz。利用庫函數(shù)計算128點FFT,測得需要機器周期為5926,如圖3所示??梢运愠鲎?28點的FFT時間為:5926×6.67ns=0.039766ms,而128數(shù)據(jù)時間為0.128ms,因此,在上述條件下能夠?qū)崿F(xiàn)FFT的實時運算。

    綜上所述,利用TMS320F28335的DMA技術(shù)和FFT庫函數(shù),能夠?qū)崿F(xiàn)數(shù)據(jù)的高頻采集和FFT算法的快速運算,滿足對信號采集和頻譜分析的實時性要求極高的應(yīng)用場合。

    猜你喜歡
    源地址存儲器中斷
    國內(nèi)互聯(lián)網(wǎng)真實源地址驗證研究進展①
    靜態(tài)隨機存儲器在軌自檢算法
    跟蹤導(dǎo)練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    存儲器——安格爾(墨西哥)▲
    基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計
    實現(xiàn)RSF機制的分布式域間源地址驗證
    網(wǎng)絡(luò)安全策略中防火墻技術(shù)的應(yīng)用
    天融信防火墻的雙線路路由和VPN設(shè)置
    AT89C51與中斷有關(guān)的寄存器功能表解
    宜黄县| 鸡东县| 巴林右旗| 东宁县| 高平市| 扶风县| 南宫市| 定结县| 昭苏县| 大邑县| 永兴县| 鹤山市| 临沧市| 历史| 濮阳市| 侯马市| 克拉玛依市| 河间市| 额敏县| 景泰县| 安图县| 鲜城| 贵南县| 蒙阴县| 九寨沟县| 青州市| 社会| 中方县| 祁阳县| 武安市| 新竹县| 修水县| 鄱阳县| 河源市| 鄂温| 海城市| 启东市| 金门县| 广东省| 静安区| 准格尔旗|