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