AURIX™ TC4x CDSP 軟體功能介紹與使用

引言

CDSP 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)。

圖 1. CDSP 架構

 

CDSP 以 f_ADC 頻率運行(160MHz),CDSP 作為一個外設,由 Tricore 控制其重置、運行等。

圖 2. CDSP 輸入與輸出介面

 

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內核接收到新的輸入採樣時,就會被喚醒並轉換到喚醒狀態,以處理新的輸入採樣。處理完成後,會將結果生成到結果暫存器,然後再進入休眠。

圖3. CDSP 的睡眠與喚醒

 

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 軟體就會開始執行。CDSP 軟體執行的第一階段稱為「初始化」,且只執行一次。
 

在這個階段,CDSP 濾波器鏈的所有配置參數都已初始化,CDSP 軟體準備好處理輸入取樣。在這個階段結束時,CDSP 核心會進入休眠狀態,等待輸入取樣從配置的輸入來源到達。如果存在無效的配置參數,CDSP 將進入錯誤狀態(死循環)。
 

  • 執行時:主迴圈

每當有新的取樣到達配置的 CDSP 輸入來源時,就會觸發喚醒事件,將 CDSP 核心從休眠狀態喚醒。喚醒後,CDSP 核心開始執行濾波器鏈,從而對輸入信號進行處理。
 

下圖展示了一個通用 FC(Filter Chain)的 CDSP SW 主迴圈執行序列,用於處理單個輸入取樣。
 

圖4. CDSP軟體執行時間

 

如上圖所示,CDSP 核心在喚醒 (t_wu)、讀取輸入取樣 (t_Rd)、寫入輸出取樣 (t_Wr) 和過渡到休眠狀態 (t_t-slp) 的時間消耗都是固定數量的時鐘週期,與 CDSP 軟體配置無關,而濾波器區塊的執行時間(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 軟體功能

 

CDSP SW 中實現了以下濾波器模組:

  • SDA:簡單數據累積濾波器

  • DA:數據累加濾波器

  • MAT:數學運算濾波器(函數)

  • AVG:平均值濾波器

  • MDN:中值濾波器

  • STAT0:統計運算濾波器

  • FIR:有限脈衝響應濾波器

  • IIR:無限脈衝響應濾波器

  • FFT:快速傅立葉變換濾波器(函數)

  • LO:龍貝格觀測器濾波器(函數)
     

FCM,FC0-FC9 共 11 個濾波鏈路是由上述濾波器組合形成的 11 個功能,如下圖所示。

圖5. 包含濾波器區塊的濾波器鏈

 

每一個CDSP可以選擇其中任意一個濾波鏈路,並進行參數配置,應用於實際需求。
 

CDSP SW 透過可執行二進位檔案提供,有 .bin、.hex、.h 和 .mem 四種格式,這些檔案都包含相同的資訊,使用者可根據需求選擇檔案格式進行整合。
 

除了 FC5 濾波器鏈是由兩個單獨的二進位檔案實現之外,其他各個濾波器鏈都是由一個二進位檔案實現。

圖6. 不同濾波鏈的DCCM記憶體映射

 

如圖所示是一個DCCM參數配置表的示意圖,有4種資料結構,根據選擇的濾波功能不同,使用者會實例化其中一個資料結構並對相關的參數進行配置,以實現特定功能。
 

使用者在 Tricore 應用程式中實例化一個資料結構後,將其載入到 CDSP 的 DCCM 儲存中,並將對應的二進位檔案載入到 CDSP 的 ICCM 儲存中,即完成了功能整合。在執行期間,ICCM 中一次只能載入並執行一個濾波器鏈。
 

CDSP SW 使用範例

 

CDSP SW 的使用非常方便,只需要配置相應的參數,並將配置參數放置到 DCCM,把對應的運算功能程式碼放到 ICCM,啟動 CDSP 即可得到結果。
 

這裡以FC9(基礎中值濾波功能)和FC7(數學運算)為例,介紹使用方法。
 

圖7. CDSP 基本中位數(FC9)


FC9的功能是計算多個輸入信號的中值,計算速率可以達到1MSPs。

圖8. CDSP基本中位數配置參數

 

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 輸出結果正確。
 

圖9. CDSP 基本數據累積(FC7)

 

FC7 的功能分為兩個運行段,第一段是對輸入的兩個信號進行數學運算,第二段是將第一段的結果進行累加。這兩段都可以對各自的輸出結果進行向右位移運算,也就是除法運算。
 

圖 10. 數學濾波器的功能方塊圖

 

A和B進行運算,A為暫存器結果,B為暫存器結果或者為給定數值,A和B進行數學運算,並將結果進行位移。
 

圖 11. 數學過濾器配置參數

 

FC7 的 MAT 部分參數說明,可以選擇加、減、乘、除
 

圖12. SDA濾波器配置參數

 

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™ 技術支援諮詢使用。
 

參考文獻

[1] 英飛凌-AURIX-TC4Dx-使用手冊-v01_00-英文版

[2] AURIX_TC4x_CDSP_PROD_V0.4.1-PR1_使用者手冊

[3] https://mp.weixin.qq.com/s/c1bjycblTr1oEyvPQWjQcg 於2024年11月20日14:20(CST)訪問。

掃描 QR 碼,關注英飛凌汽車電子尋找更多應用程式或產品資訊

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

英飞凌汽车电子生态圈: https://mp.weixin.qq.com/s/sOHPrcFL98Gq2T_utshMnA

評論