AURIX? TC4x CDSP Software功能介紹和使用
引言
本文引用地址:http://2s4d.com/article/202501/466443.htmCDSP SW(Converter Digital Signal Processor software)是專用于TC4x CDSP 硬件模塊的軟件包。
CDSP SW 以二進制文件和頭文件提供,用戶通過配置參數(shù)并將其存儲在 CDSP 的 DCCM 中來實現(xiàn)特定的濾波功能,通過將指令二進制代碼存放在CDSP的ICCM來實現(xiàn)算法,在 TriCore? 核上運行的應(yīng)用程序無需調(diào)用API 即可實現(xiàn) CDSP SW 的濾波功能來對外部輸入信號進行處理。
CDSP 結(jié)構(gòu)
CDSP包括一個 Synopsys DesignWare? ARC? EM5D(ARC) DSP 內(nèi)核,3 KB 指令存儲器 (ICCM)、3 KB 數(shù)據(jù)存儲器 (DCCM) 。
Figure 1. CDSP architecture
CDSP 以 f_ADC頻率運行(160MHz), CDSP作為一個外設(shè),由Tricore控制其復(fù)位、運行等。
Figure 2. CDSP input and output interface
CDSP可以處理來自DSADC (Δ-Σ ADC)、EXMOD (外部調(diào)制器)、TMADC (分時復(fù)用 ADC)、CARMAG (載波調(diào)制器) 或GP (通用) 寄存器的信號。
CDSP處理完成,產(chǎn)生的結(jié)果存放在結(jié)果寄存器RES0,RES1和RES2或DCCM,并且RES0有一個深度為4的FIFO用于結(jié)果緩存。
CDSP的基本的運行邏輯為:外部的觸發(fā)信號(比如輸入的寄存器結(jié)果值更新)觸發(fā)CDSP工作,CDSP計算完成,產(chǎn)生CDSP結(jié)果,并觸發(fā)Tricore中斷,由Tricore拿到CDSP結(jié)果值進行后續(xù)運算。
CDSP SW工作原理
CDSP SW 正常工作下,CDSP 內(nèi)核會交替處于休眠和喚醒狀態(tài),以處理輸入采樣。
在配置好輸入信號源后(每次只能配置一個輸入信號用于喚醒),當(dāng)CDSP 內(nèi)核接收到新的輸入采樣時,就被喚醒并轉(zhuǎn)換到喚醒狀態(tài),以處理新的輸入采樣,處理完成后,生成結(jié)果到結(jié)果寄存器,然后再進入休眠。
Figure 3. CDSP sleep and wake-up
CDSP_DSPa_DSPCFG 寄存器中的 INPSEL 位選擇哪個輸入采樣到達會喚醒 CDSP 內(nèi)核。例如,如果將 DSADC0 配置為 CDSP 內(nèi)核的喚醒源,那么每個新的 DSADC0 輸入采樣都將喚醒 CDSP 內(nèi)核。一旦 CDSP 內(nèi)核被喚醒,它就會開始執(zhí)行加載的濾波器鏈 (FC),直到產(chǎn)生結(jié)果到結(jié)果寄存器,CDSP 內(nèi)核便進入休眠狀態(tài)。
新輸入采樣的到來會再次喚醒 CDSP 內(nèi)核,并重復(fù)上述過程。如果在 CDSP 內(nèi)核仍在處理當(dāng)前樣本時(CDSP 內(nèi)核仍處于喚醒狀態(tài)),有新樣本到來,則會產(chǎn)生喚醒錯誤。所以,用戶使用時需要注意選擇的濾波器鏈對一個輸入樣本的處理時間必須小于兩個連續(xù)輸入樣本之間的時間間隔。
CDSP SW 運行過程
CDSP SW 的執(zhí)行主要分為三個階段:
啟動
在啟動階段,CDSP 內(nèi)核處于停止?fàn)顟B(tài),CDSP SW 代碼被復(fù)制到 ICCM 中,并將CDSP SW 的配置參數(shù)復(fù)制到DCCM 存儲器中。
運行時:初始化
一旦 CDSP 內(nèi)核從停止?fàn)顟B(tài)轉(zhuǎn)換到運行狀態(tài),CDSP SW 就開始執(zhí)行。CDSP SW 執(zhí)行的第一階段稱為 "初始化",只執(zhí)行一次。
在這一階段,CDSP 濾波器鏈的所有配置參數(shù)都被初始化,CDSP SW 準(zhǔn)備好處理輸入采樣。在這一階段結(jié)束時,CDSP 內(nèi)核轉(zhuǎn)入休眠狀態(tài),等待輸入采樣到達配置的輸入源。如果存在配置參數(shù)無效,CDSP將進入錯誤狀態(tài)(死循環(huán))。
運行時:主循環(huán)
每當(dāng)有新的采樣到達配置的 CDSP 輸入源,就會觸發(fā)喚醒事件,將CDSP 內(nèi)核從休眠狀態(tài)喚醒。喚醒后,CDSP 內(nèi)核開始執(zhí)行濾波器鏈,從而對輸入信號進行處理。
下圖展示了一個通用 FC (Filter Chain)的 CDSP SW 主循環(huán)執(zhí)行序列,用于處理單個輸入采樣。
Figure 4. CDSP SW execution time
如上圖所示,CDSP 內(nèi)核在喚醒 (t_wu)、讀取輸入采樣 (t_Rd)、寫入輸出采樣 (t_Wr) 和過渡到休眠狀態(tài) (t_t-slp) 的時間消耗都是固定數(shù)量的時鐘周期 , 與 CDSP SW 配置無關(guān), 而濾波器塊執(zhí)行時間(t_FB)取決于濾波器鏈的配置。
例如,在中值濾波功能中,濾波執(zhí)行時間(t_FB)會隨著中值濾波器濾波器長度的增加而增加。用戶需要確保一個輸入采樣的總執(zhí)行時間(t_TOTAL)不超過 CDSP SW 兩個連續(xù)輸入采樣之間的持續(xù)時間,否則會進入錯誤狀態(tài)。
CDSP SW對單個輸入采樣運算的總執(zhí)行時間公式如下:
t_TOTAL = t_wu + t_Rd + t_FB + t_Wr + t_t-slp
CDSP執(zhí)行完成濾波鏈路并將輸出結(jié)果寫入輸出寄存器后,DSP 內(nèi)核將轉(zhuǎn)入睡眠模式,直到下一個喚醒信號到來。
CDSP SW 功能
CDSP SW 中實現(xiàn)了以下濾波器模塊:
SDA:簡單數(shù)據(jù)累積濾波器
DA:數(shù)據(jù)累加濾波器
MAT:數(shù)學(xué)運算濾波器(函數(shù))
AVG:平均值濾波器
MDN:中值濾波器
STAT0:統(tǒng)計運算濾波器
FIR:有限脈沖響應(yīng)濾波器
IIR:無限脈沖響應(yīng)濾波器
FFT:快速傅立葉變換濾波器(函數(shù))
LO:龍貝格觀測器濾波器(函數(shù))
FCM,F(xiàn)C0-FC9共11個濾波鏈路是由上述濾波器組合形成的11個功能,如下圖所示。
Figure 5. Filter chains with containing filter blocks
每一個CDSP可以選擇其中任意一個濾波鏈路,并進行參數(shù)配置,應(yīng)用于實際需求。
CDSP SW 通過可執(zhí)行二進制文件提供,有 .bin、.hex、.h 和 .mem 4種格式,這些文件都包含相同的信息,用戶根據(jù)需要選擇文件格式進行集成。
除 FC5 濾波器鏈由兩個單獨的二進制文件實現(xiàn)外,其他各個濾波器鏈都由一個二進制文件實現(xiàn)。
Figure 6. DCCM memory map for different filter chains
如圖所示是一個DCCM參數(shù)配置表的示意圖,有4種數(shù)據(jù)結(jié)構(gòu),根據(jù)選擇的濾波功能不同,用戶實例化其中一個數(shù)據(jù)結(jié)構(gòu)并對關(guān)聯(lián)的參數(shù)進行配置,來實現(xiàn)特定功能。
用戶在Tricore應(yīng)用程序中實例化一個數(shù)據(jù)結(jié)構(gòu)后,將其加載到 CDSP 的 DCCM 存儲中,并將對應(yīng)的二進制文件加載到 CDSP的 ICCM存儲中,即完成了功能集成。在運行期間,一次只能在 ICCM 中加載和執(zhí)行一個濾波器鏈。
CDSP SW 使用實例
CDSP SW的使用非常方便,只需要配置相應(yīng)的參數(shù),并將配置參數(shù)放置到DCCM,把對應(yīng)的運算功能代碼放到ICCM,啟動CDSP即可得到結(jié)果。
這里以FC9(基礎(chǔ)中值濾波功能)和FC7(數(shù)學(xué)運算)為例,介紹使用方法。
Figure 7. CDSP Basic Median (FC9)
FC9的功能為計算幾個輸入信號的中值,計算速率可以達到1MSPs。
Figure 8. CDSP Basic Median configuration parameter
FC9的輸入信號數(shù)量可以選1、3、5、7、9。
使用FC9功能,只需要設(shè)置CDSP的首位輸入地址以及濾波信號長度,這里輸入地址是0x0000906CU(映射地址為TMADC0_AW0_RES0),濾波信號長度為9。
配置代碼如下:
將FC9的代碼放到ICCM中,以及將配置的參數(shù)放到DCCM中,完成對FC9基礎(chǔ)中值濾波的CDSP功能配置。
在每一次TMADC0_AW0_RES0更新后,觸發(fā)CDSP執(zhí)行FC9的功能,得出最近9個輸入的TMADC0_AW0_RES0的 中值。
9個輸入量分別是:991、990、991、991、990、990、990、991、989,中值為990,CDSP輸出結(jié)果正確。
9個輸入量分別是:991、991、991、991、991、990、990、991、991,中值為991,CDSP輸出結(jié)果正確。
Figure 9. CDSP Basic Data Accumulation(FC7)
FC7的功能分為兩個運行段,第一段是對輸入的2個信號進行數(shù)學(xué)運算,第二段是將第一段的結(jié)果進行累加,兩段都可以對各自的輸出結(jié)果進行結(jié)果向右位移,即除法運算。
Figure 10. Functional block diagram of Math filter
A和B進行運算,A為寄存器結(jié)果,B為寄存器結(jié)果或者為給定數(shù)值,A和B進行數(shù)學(xué)運算,并將結(jié)果進行位移。
Figure 11. Math filter configuration parameters
FC7的MAT部分參數(shù)說明,可以選擇加、減、乘、除 。
Figure 12. SDA filter configuration parameters
FC7的SDA部分參數(shù)說明,輸入的信號數(shù)量可以是1-16,右移0-4位。
FC7的功能使用,只需要設(shè)置CDSP的首位輸入地址,第二個輸入?yún)?shù),數(shù)學(xué)操作,累加運算信號數(shù)量,位移,這里首位輸入地址是0x0000906CU(映射地址為TMADC0_AW0_RES0),第二個輸入?yún)?shù)設(shè)置為固定值1000,數(shù)學(xué)運算為首位輸入地址信號+第二個輸入?yún)?shù),累加運算長度為4,然后除以2,最終結(jié)果為平均值的2倍。
數(shù)學(xué)運算式:[(A1+B)+(A2+B)+(A3+B)+(A4+B)]/2。
配置代碼如下:
在將FC7的代碼放到ICCM中,以及將配置的參數(shù)放到DCCM中,完成對輸入信號的數(shù)學(xué)運算的CDSP功能配置。
以上實現(xiàn)了FC9和FC7功能。
總結(jié)
CDSP SW是英飛凌基于CDSP硬件模塊開發(fā)的軟件包,以二進制文件和頭文件方式提供,使用便捷,功能豐富,可以用于旋變解碼、發(fā)動機爆震、電壓監(jiān)測和濾波等場景。
CDSP SW的更多應(yīng)用場景,有待廣大用戶去使用,歡迎大家點擊 “ 英飛凌汽車電子生態(tài)圈 ” 最右邊菜單 “ AURIX? 技術(shù)支持 ” 咨詢使用。
REFERENCES
[1] Infineon-AURIX-TC4Dx-UM-v01_00-EN
[2] AURIX_TC4x_CDSP_PROD_V0.4.1-PR1_UserManual
[3] https://mp.weixin.qq.com/s/c1bjycblTr1oEyvPQWjQcg accessed on 20.11.2024 14:20 CST.
評論