2. 配置IIRFA(下)
2.2 操作方法
2.2.2 處理方法
根據(jù)IIRFA的配置,有三種執(zhí)行通道處理的方法。它們在通道處理開始后從IIRCHnOUT寄存器讀取輸出數(shù)據(jù)的操作過程不同。從定義上來講,單數(shù)據(jù)處理是指對一個輸入值執(zhí)行通道處理,處理完成后不執(zhí)行其他通道處理。多數(shù)據(jù)處理則是指對多個輸入值連續(xù)執(zhí)行通道處理。
表3列出了每種方法的操作過程:
表3. 數(shù)據(jù)處理方法
方法1
方法1是不等待輸出數(shù)據(jù)準備完成即可讀取輸出數(shù)據(jù)的過程。輪詢和中斷均禁用。一旦輸入值寫入IIRCHnINP寄存器,內(nèi)核執(zhí)行就會停止,直到在IIRFA處理結(jié)束時數(shù)據(jù)被寫入IIRCHnOUT寄存器。此方法在全部三種方法中速度最快,但它可能會在處理期間發(fā)生更高的全局中斷延遲。如果您的樣本處理是優(yōu)先級最高的任務(wù),則中斷延遲可以忽略不計。
圖4是采用方法1的通道處理操作過程流程圖示例。
圖4. 方法1操作過程流程圖
重要說明:
? 不需要進行標志確定處理,因此存儲器和時間開銷在所有方法中最小。
? 當(dāng)執(zhí)行對IIRCHnOUT寄存器的讀訪問時,CPU將暫停,直到輸出數(shù)據(jù)準備完成,這將使系統(tǒng)和PSBIU總線掛起。
? 注:在等待IIRCHnOUT時,內(nèi)核不會處理任何中斷。對于單樣本處理,32級濾波器的最長等待時間可以達到約64個ICLK周期,對于多樣本處理,可以達到224個ICLK周期(隨著使用的級數(shù)而線性遞減)。
方法2
方法2是設(shè)置數(shù)據(jù)準備完成標志后讀取輸出數(shù)據(jù)的過程。啟用輪詢并禁止IIR模塊上的中斷。一旦輸入值寫入IIRCHnINP寄存器,IIRFA驅(qū)動程序?qū)⑤喸兺瓿蓸酥荆@表明IIRCHnOUT寄存器中的數(shù)據(jù)可用。
下面給出了使用方法2進行通道處理的操作過程流程圖示例:
圖5. 方法2操作過程流程圖
重要說明:
? 需要進行標志確定處理,因此開銷很大。
? 執(zhí)行對IIRCHnOUT寄存器的讀訪問時,不會強制等待總線訪問。其他系統(tǒng)中斷可以在等待標志置1的同時進行處理。
方法3
方法3是在發(fā)生數(shù)據(jù)準備完成中斷后讀取輸出數(shù)據(jù)的過程。禁用輪詢并使能中斷。一旦輸入值寫入IIRCHnINP寄存器,內(nèi)核就可以處理其他指令,直到數(shù)據(jù)準備完成中斷發(fā)出IIRCHnOUT寄存器中的數(shù)據(jù)可用的信號。
圖6采用方法3的通道處理的操作過程流程圖示例。
圖6. 方法3操作過程流程圖
重要說明:
? 由于在接受中斷時處理,因此開銷很大。
? 執(zhí)行對IIRCHnOUT寄存器的讀訪問時,不會強制等待總線訪問。
? 通道處理開始后,內(nèi)核可以執(zhí)行其他操作,直到發(fā)生輸出數(shù)據(jù)準備完成中斷或通道處理完成中斷。
2.3 注意事項
2.3.1 最大程序提高性能
IIRFA的最佳配置取決于應(yīng)用程序,因此根據(jù)您的系統(tǒng)需求考慮可用設(shè)置和操作方法的影響非常重要。
每個濾波器級需要花費2個ICLK周期來處理一個樣本,另外需要5個周期來將狀態(tài)值寫回寄存器。因此,單樣本操作每個級只需要2個周期,而多樣本操作則需要7個周期。加載和存儲每個樣本需要額外的開銷周期。
以下建議可能會提高性能:
? 使用函數(shù)R_IIRFA_Filter時,選擇較大的數(shù)據(jù)塊大小。對于實時濾波,建議使用R_IIRFA_SingleFilter內(nèi)聯(lián)函數(shù)執(zhí)行單樣本處理。
注:函數(shù)R_IIRFA_SingleFilter沒有參數(shù)檢查,只處理一個樣本,并返回濾波后的樣本。此函數(shù)支持輪詢(如果已配置)。
? 如果您的濾波器僅使用1個雙二階級,請啟用軟件展開循環(huán)深度設(shè)置并提供大小為展開深度倍數(shù)的數(shù)據(jù)。
? 使用少量級時禁用輪詢可顯著提高性能;但是,它可能會在處理過程中產(chǎn)生更高的全局中斷延遲。
? 在優(yōu)化IIRFA處理時間時,應(yīng)避免使用方法3,因為處理中斷所需的時間遠大于濾波數(shù)據(jù)所需的時間。對于大型數(shù)據(jù)集,使用中斷幾乎可以使總處理時間加倍。
2.3.2 限制
下面匯總列出了設(shè)計應(yīng)用程序時要考慮的主要限制:
? 所有配置的通道共有32個級可用。
? 使用DTC或DMA時無法保證IIRFA正確操作,因此不受支持。
? 禁用輪詢時,內(nèi)核執(zhí)行在等待數(shù)據(jù)可用時會停止。當(dāng)內(nèi)核執(zhí)行暫停時,無法處理任何中斷。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5325瀏覽量
120045 -
加速器
+關(guān)注
關(guān)注
2文章
795瀏覽量
37772 -
中斷處理
+關(guān)注
關(guān)注
0文章
94瀏覽量
10961 -
IIR濾波器
+關(guān)注
關(guān)注
0文章
31瀏覽量
11498
原文標題:RA6T2 IIR濾波器加速器應(yīng)用指南 [4] 配置IIRFA(下)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論