引言
CDSP SW(Converter Digital Signal Processor software)是專用於TC4x CDSP 硬體模組的軟體包。
CDSP SW 以二進位檔案和頭檔提供,用戶通過設定參數並將其儲存在 CDSP 的 DCCM 中來實現特定的濾波功能,通過將指令二進位程式碼存放在CDSP的ICCM來實現演算法,在 TriCore™ 核上運行的應用程式無需調用API 即可實現 CDSP SW 的濾波功能來對外部輸入訊號進行處理。
Jan . 2025
分享至
CDSP SW(Converter Digital Signal Processor software)是專用於TC4x CDSP 硬體模組的軟體包。
CDSP SW 以二進位檔案和頭檔提供,用戶通過設定參數並將其儲存在 CDSP 的 DCCM 中來實現特定的濾波功能,通過將指令二進位程式碼存放在CDSP的ICCM來實現演算法,在 TriCore™ 核上運行的應用程式無需調用API 即可實現 CDSP SW 的濾波功能來對外部輸入訊號進行處理。
Figure 1. CDSP architecture
CDSP包含一個 Synopsys DesignWare® ARC® EM5D(ARC) DSP 內核,3 KB 指令記憶體 (ICCM)、3 KB 數據記憶體 (DCCM) 。
Figure 2. CDSP input and output interface
CDSP 以 f_ADC頻率運作(160MHz), CDSP作為一個外部設備,由Tricore控制其重設、運作等。
CDSP可以處理來自DSADC (Δ-Σ ADC)、EXMOD (外部調製器)、TMADC (分時復用 ADC)、CARMAG (載波調製器) 或GP (通用) 暫存器的訊號。
CDSP處理完成,產生的結果存放在結果暫存器RES0,RES1和RES2或DCCM,並且RES0有一個深度為4的FIFO用於結果快取。
CDSP的基本的運作邏輯為:外部的觸發訊號(比如輸入的暫存器結果值更新)觸發CDSP工作,CDSP計算完成,產生CDSP結果,並觸發Tricore中斷,由Tricore拿到CDSP結果值進行後續運算。
Figure 3. CDSP sleep and wake-up
CDSP SW 正常運作下,CDSP 核心會交替處於休眠和喚醒狀態,以處理輸入採樣。
在配置好輸入訊號源後(每次只能配置一個輸入訊號用於喚醒),當CDSP 核心接收到新的輸入取樣時,就被喚醒並轉換到喚醒狀態,以處理新的輸入取樣,處理完成後,生成結果到結果暫存器,然後再進入休眠。
CDSP_DSPa_DSPCFG 暫存器中的 INPSEL 位元選擇哪個輸入取樣到達會喚醒 CDSP 核心。例如,如果將 DSADC0 配置為 CDSP 核心的喚醒來源,那麼每個新的 DSADC0 輸入取樣都會喚醒 CDSP 核心。一旦 CDSP 核心被喚醒,它就會開始執行載入的濾波器鏈 (FC),直到產生結果到結果暫存器,CDSP 核心便進入休眠狀態。
新輸入採樣的到來會再次喚醒 CDSP 內核,並重複上述過程。如果在 CDSP 核心仍在處理目前樣本時(CDSP 核心仍處於喚醒狀態),有新樣本到來,則會產生喚醒錯誤。所以,用戶使用時需要注意選擇的濾波器鏈對一個輸入樣本的處理時間必須小於兩個連續輸入樣本之間的時間間隔。
Figure 4. CDSP SW execution time
CDSP SW 的執行主要分為三個階段:
在啟動階段,CDSP 核心處於停止狀態,CDSP SW 代碼複製到 ICCM 中,並將CDSP SW 的配置參數複製到DCCM 記憶體中。
一旦 CDSP 核心從停止狀態轉換到運作狀態,CDSP SW 就開始執行。 CDSP SW 執行的第一階段稱為 "初始化",只執行一次。
每當有新的採樣到達配置的 CDSP 輸入來源,就會觸發喚醒事件,將CDSP 核心從休眠狀態喚醒。喚醒後,CDSP 核心開始執行濾波器鏈,從而對輸入訊號進行處理。
下圖展示了一個通用 FC (Filter Chain)的 CDSP SW 主循環執行序列,用於處理單一輸入取樣。
如上圖所示,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 核心將轉入睡眠模式,直到下一個喚醒訊號到來。
Figure 5. Filter chains with containing filter blocks
CDSP SW 中實作了以下濾波器模組:
FCM,FC0-FC9共11個濾波鏈路是由上述濾波器組合形成的11個功能,如下圖所示。
每一個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 中載入和執行一個濾波器鏈。
Figure 7. CDSP Basic Median (FC9)
CDSP SW的使用非常方便,只需要配置相應的參數,並將配置參數放置到DCCM,把對應的運算功能程式碼放到ICCM,啟動CDSP即可得到結果。
這裡以FC9(基礎中值濾波功能)和FC7(數學運算)為例,介紹使用方法。
Figure 8. CDSP Basic Median configuration parameter
FC9的功能為計算幾個輸入訊號的中位數,計算速率可以達到1MSPs。
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輸出結果正確。
Figure 9. CDSP Basic Data Accumulation(FC7)
9個輸入量分別是:991、991、991、991、991、990、990、991、991,中位數為991,CDSP輸出結果正確。
Figure 10. Functional block diagram of Math filter
FC7的功能分為兩個運行段,第一段是對輸入的2個訊號進行數學運算,第二段是將第一段的結果進行累加,兩段都可以對各自的輸出結果進行結果向右位移,即除法運算。
Figure 11. Math filter configuration parameters
A和B進行運算,A為暫存器結果,B為暫存器結果或為給定數值,A和B進行數學運算,並將結果進行位移。
Figure 12. SDA filter configuration parameters
FC7的MAT部分參數說明,可以選擇加、減、乘、除。
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.
文章來源:英飛凌汽車電子生態圈