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