前言
AURIX™ 微控制器將三種強大的技術集成在一個矽晶片上,為嵌入式應用實現了新的功率、速度和經濟性水平。AURIX™ 微控制器旨在滿足最苛刻的嵌入式控制系統應用需求,在這些應用中,價格/性能、實時響應能力、計算能力、數據帶寬和功耗等相互競爭的因素是關鍵的設計要素。
TriCore™ 架構手冊描述了 Infineon Technologies TriCore 微控制器架構的核心架構和指令集。TriCore 是一種統一的 32 位微控制器-DSP 單核架構,針對實時嵌入式系統進行了優化。
TriCore 架構具有以下特點:
-
高性能和低功耗:TriCore 架構具有高效的指令集和流水線設計,可以實現高性能和低功耗。
-
實時響應能力:TriCore 架構具有多個實時特性,如多個優先級級別、硬體計時器和事件管理器,可以滿足實時嵌入式系統的嚴格要求。
-
安全性:TriCore 架構具有多種安全特性,如記憶體保護和片上加密引擎,可以保護系統免受攻擊。
TriCore 微控制器廣泛應用於汽車、工業和消費電子領域,如汽車發動機控制、安全係統、工業自動化控制和智能家居設備等。
AURIX™ TC3xx為TriCore™ 162 generation, 最多有6個300Mhz CPUs
資料來源:Product Brochure AURIX™ 32-bit microcontrollers for automotive and industrial applications
依不同的需求,AURIX™ TC3xx 有著先進的封裝技術提供最佳的價格/性能比,客戶可以在同一引腳兼容封裝中選擇不同的包裝。
資料來源:Product Brochure AURIX™ 32-bit microcontrollers for automotive and industrial applications
中斷管理模塊(Interrupt Router (IR))
在真實的應用中,存在大量的中斷事件。例如ADC採樣,通訊模組(CAN, UART, SPI, I2C....)等等,這些事件的處理都會中斷服務者停止運行程序,進而執行中斷優先權高的程序。完成後回到中斷處,繼續運行主程序。而AURIX™ TC3xx提供了最多六個CPUs核心,這些事件中都需要使用者來分配相對應的事件給各個CPUs執行,以減輕單一CPU的負擔。本文章主要介紹AURIX™的系統中斷和事件處理,主要包含外部中斷、內部中斷和軟件中斷。中斷服務包含CPU與DMA。
Feature List
-
支持多達 1024 個服務請求的中斷系統
-
每個 ICU / 服務提供者支持多達 255 個服務請求優先級級別
-
支持多達 8 個 ICU / 服務提供者
-
為每個已實現的 CPU / DMA 模塊(服務提供者)提供一個專用的 ICU
-
低延遲仲裁 - 從收到服務請求到將其發送到服務提供者需要 3/4 個時鐘週期
-
每個外圍設備中斷都有一個專用的服務請求節點 (SRN)
-
每個 SRN 都有一個可編程的 8 位優先級向量
-
每個 SRN 都可以映射到一個已實現的 ICU / 服務提供者
-
SRN 在配置的服務提供者確認中斷時由硬件自動清除
-
支持完整性的中斷系統
-
每個 CPU 有 8 個通用服務請求 (GPSR),可用作軟件中斷(未分配給外圍設備或外部中斷)
-
服務請求廣播寄存器 (SRB) 可同時向多個服務提供者發送通用服務請求(軟件中斷)
-
優先級相關的中斷請求屏蔽(對於 CPU,相關控制寄存器包含在 CPU 中)
-
具有濾波模式和觸發模式的外部中斷(例如,下降沿、上升沿、高電平或低電平)。模式可以在運行時配置
-
CPU 喚醒支持(向 CPUx 發送服務請求會發信號給 SCU,在 CPUx 處於 IDLE 狀態時喚醒 CPUx)
Overview
中斷請求可以由 CPU 或 DMA 模塊來處理。中斷請求被稱為“Service Requests“,而不是“Interrupt Requests“,因為它們可以由任何一個Service Provider來處理。中斷系統在中斷路由器模塊(Interrupt Router)中實現,該模塊包括服務請求節點 (SRN)、中斷控制單元 (ICU) 和用於軟件開發支持的其他功能。
如下圖所示,每個可以生成服務請求的模塊都連接到中央中斷路由器模塊(Interrupt Router)中的一个或多个服務請求節點 (SRN)。中斷路由器模塊(Interrupt Router)還包括幾個用於軟件 (SW) 觸發服務請求的通用服務請求節點 (SRN)。每個 SRN 都包含一個服務請求控制寄存器 (SRC),用於配置服務請求,例如優先級、映射到可用Service Provider之一。
資料來源:AURIX™ TC3xx User Manual Part-1
每個Service Request 必須配置為由其中之一Service Provider來服務
每個 SRN 都連接到中斷路由器模塊(Interrupt Router)中的所有 ICU,其中 SRN 控制寄存器設置定義了目標Service Provider和服務請求的優先級。每個 ICU 處理來自映射到 ICU 的 SRN 的競爭服務請求之間的中斷仲裁。每個 ICU 都連接到一個Service Provider(CPU 或 DMA 模塊),其中 ICU 在仲裁回合中提供有效的獲勝Service Request/SRN,Service Provider反過來向 ICU 發信號表示何時以及正在處理哪個服務請求。
為每個服務請求分配優先級
每個服務請求必須分配一個從 0 到 255 的服務請求優先級號 (SRPN):
-
取決於所選的服務提供者 (TOS),SRPN 表示以下內容:
-
CPUx:相關服務請求的中斷優先級(SRPN 0 為不觸發)
-
DMA:要觸發的 DMA 通道的編號。
-
仲裁
對於每個 ISPx,IR (Interrupt Router)在映射到該 ISPx 的掛起服務請求組中進行仲裁。仲裁回合的獲勝者是具有最高優先級(SRPN 號碼)的掛起 SR。
仲裁是中斷系統中的一個重要過程,用於確定應由哪個服務提供者處理服務請求。在仲裁過程中,中斷路由器模塊 (IR) 會檢查映射到每個服務提供者 (ISPx) 的掛起服務請求組。IR 會選擇具有最高優先級(SRPN 號碼)的掛起服務請求,並將其發送到該 ISPx。
仲裁過程可以確保最緊急的服務請求得到優先處理。例如,如果一個外部設備需要立即傳輸重要數據,則 IR 會確保該設備的服務請求得到優先處理。
仲裁過程通常在一個硬件模塊中實現,該模塊能夠快速高效地進行仲裁。這確保了中斷系統能夠快速響應服務請求。
以下是一個仲裁過程的示例:
-
一個外部設備向中斷路由器模塊 (IR) 發送服務請求。
-
IR 檢查映射到該設備的服務提供者 (ISPx) 的掛起服務請求組。
-
IR 選擇具有最高優先級(SRPN 號碼)的掛起服務請求。
-
IR 將所選服務請求發送到 ISPx。
-
ISPx 處理服務請求。
結論
中斷系統是嵌入式系統中的重要組成部分,用於接收、管理和處理來自外圍設備和其他模塊的服務請求。Interrupt Roter是Aurix中斷系統的核心。每個外圍設備中斷都有專門的服務請求節點 (SRN),服務提供者和服務請求優先級號配置,中斷溢出,軟件中斷設置/清除。每個服務提供者都有專門的中斷控制單元 (ICU)對映射到不同 ISP 的待處理服務請求進行並行和獨立的仲裁。
-
支持優先級仲裁,以確保最緊急的服務請求得到優先處理。
-
支持多種Service Provider,包括 CPU 和 DMA 模塊。
-
支持多種Service Request,包括中斷請求和軟件(SW)觸發的服務請求。
提供使用者靈活的應用,以及可靠性的事件處理,採用硬件加速可快速響應服務的請求。
References
AURIX™ TC3xx User Manual Part-1
https://www.infineon.com/dgdl/Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN.pdf?fileId=5546d462712ef9b701717d3605221d96
TriCore TM TC1.6.2 core architecture manual
https://www.infineon.com/dgdl/Infineon-AURIX_TC3xx_Architecture_vol1-UserManual-v01_00-EN.pdf?fileId=5546d46276fb756a01771bc4c2e33bdd
AURIX™視訊課程 第四課:中斷系統
https://videos.infineon-autoeco.com/pc/page/detail/1405
評論