精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入解析TC3xx芯片中的SMU模塊應用

jf_EksNQtU6 ? 來源:談思實驗室 ? 2024-02-27 10:32 ? 次閱讀

SMU模塊是Aurix芯片自帶的一個功能安全硬件模塊,它能夠收集其他模塊(PMS, MTU, SCU, CCU, e.g.)由于硬件功能安全機制產生的報警(Alarm),然后,SMU模塊通過用戶配置能夠產生內部或者外部的動作/響應,也可以不產生任何動作。本文將詳細介紹SMU模塊。

01

SMU功能概述

SMU 是安全架構的核心組件,提供通用接口,用于管理存在故障的微控制器的行為。SMU 集中所有與不同的硬件和軟件安全機制相關的警報信號。每個警報都可以單獨配置為觸發內部操作和/或通過故障信號協議(FSP, Fault Signaling Protocol)向外部通知存在故障。每一報警的嚴重程度應根據安全應用的需要進行配置:默認情況下,除看門狗超時報警外,每一報警反應都被禁用。為了進行調試和診斷,報警信號設置了一個粘滯位(sticky bit),該粘滯位可適應應用程序或系統重置。SMU 還實施了一些與專用安全機制的管理和測試相關的內務管理(housekeeping functions)功能。可以使用特殊測試模式測試 SMU 本身,以檢測潛在故障。除了寄存器訪問保護外, SMU 還實施了配置鎖定機制(configuration locking mechanism)。此外,為了緩解(mitigate)潛在的常見原因故障, SMU 分為兩部分:

SMU_core:位于core domain.

SMU_stdby:位于stand-by domain.

SMU_CORE 和 SMU_Stdby 的設計方式和時間安排各不相同。SMU 的兩個部分之間存在物理隔離。它們位于不同的時鐘電源域中。這允許 SMU 處理任何傳入的報警,而不管用于生成此報警的時鐘頻率如何。此外,在 fSPB (或衍生產品)上生成的報警事件將由 SMU_CORE 處理,而在 fBACK 上生成的報警事件將由 SMU_Stdby 處理。這樣,所有時鐘活動監視器警報都將在生成時鐘域中處理。此外,與功率和溫度有關的報警也以不同的方式處理,因為它們由 SMU_CORE 和 SMU_Stdby 處理。可以在 SMU_CORE 或 SMU_Stdby 中配置對這些報警的一個或多個反應(Actions)。

此外,為了檢測 SMU_CORE 中的錯誤,將從 SMU_core 向 SMU_Stdby 發送警報 SMU_core_alive。對這些警報的反應(Actions)可在兩個域中配置。但是,對于 SMU_Stdby ,只有無反應(no reaction)或將 Errorpins 配置為高阻抗狀態作為報警反應。

SMU 與嵌入式安全機制相結合,可以在容錯時間間隔內檢測并報告超過 99%的微控制器嚴重故障模式。可在 SMU 中配置容錯時間間隔的計時特性。

9de224c4-d490-11ee-a297-92fbcf53809c.png

1.1SMU架構

9df7579a-d490-11ee-a297-92fbcf53809c.png

1.2SMU_core

核心域 SMU (也稱為 SMU_core)從安全概念定義的硬件監視器(hardware monitors)的安全機制收集大多數警報信號。報警映射(Alarm Mapping)部分(后面的章節)指定報警接口(alarm interface)并將其分類為報警組(alarm group)。報警組定義邏輯映射,用于將報警信號映射到內部狀態寄存器。“報警處理”部分描述了配置選項。配置選項指定檢測到報警事件時 SMU_core的行為。警報事件可以觸發內部操作和/或激活錯誤針腳,以指示外部環境存在故障。SMU_CORE Control Interface 部分指定了軟件如何控制 SMU_CORE 以及硬件操作的相關性。故障信號協議(FSP)部分描述了外部故障信號協議的屬性,這些屬性定義了錯誤針腳(ErrorPin)的計時和邏輯屬性。

1.3 SMU_stdby

備用域 SMU (也稱為 SMU_Stdby)從檢測時鐘(無時鐘),電源(電壓過低/過高)和溫度故障(溫度過低/過高)的模塊收集警報。SMU_Stdby 還會收集 SMU_Alive 報警信號,當 SMU_CORE 在報警升高后未觸發反應時,該信號會發出通知。此外, SMU_Stdby 實現了內置自檢功能,允許用戶測試 SMU_Stdby 對報警信號的反應以及從次級電壓監視器到 SMU_Stdby 的完整報警路徑。有關輔助監視器和 SMU_Stdby 內置自檢的詳細信息,請參閱電源管理系統一章。

“報警映射”部分指定報警接口,并將它們分為兩個報警組。“報警處理”部分描述了可以指定的配置選項。配置選項指定檢測到報警事件時 SMU_Stdby 的行為。警報事件可以觸發啟動 ErrorPins (錯誤針腳),該 ErrorPins (錯誤針腳)表示外部環境存在故障。

02

SMU功能詳述

2.1SMU_core

2.1.1 Reset類型

SMU_CORE 需要多種Reset類型。Reset類型在系統控制單元中完全指定。SMU_CORE 要求的重置類型為:

Power-on Reset

System Reset

Debug Reset

Application Reset

下表指定了每個重置(Reset)類型的范圍,這些重置類型的配置和邏輯是SMU_core 控的。

9e0b30bc-d490-11ee-a297-92fbcf53809c.png

2.1.2接口(Interfaces)概述

這一章描述SMU_core和其他模塊之間的接口信號。

2.1.2.1SMU_core到SCU的接口

與系統控制單元連接的警報事件所導致的內部操作。接口信號為:

Emergency Stop Request

Reset Request

NMI Request

CPU Reset Request

2.1.2.2 SMU_core到IR的接口

與中斷路由模塊相連的報警事件導致的內部操作。接口信號為:

SMU Interrupt Service Request 0

SMU Interrupt Service Request 1

SMU Interrupt Service Request 2

SMU 中斷服務請求到中斷路由(IR)中斷節點的映射可在中斷路由器一章(SRC_SMUy, y=0.2)中找到。

9e32348c-d490-11ee-a297-92fbcf53809c.png

AGC.IGCSx , x={0, 1 , 2 } 寄存器字段提供了軟件接口來控制 SMU 如何觸發中斷路由器的中斷請求。

每個AGC.IGCSx是一個3-bits的位域信號:

AGC.IGCSx[0] shall be set to ‘1’ to trigger SMU Interrupt Service Request 0

AGC.IGCSx[1] shall be set to ‘1’ to trigger SMU Interrupt Service Request 1

AGC.IGCSx[2] shall be set to ‘1’ to trigger SMU Interrupt Service Request 2

AGC.IGCSx的使用在Alarm Configuration章節描述。

9e3e7be8-d490-11ee-a297-92fbcf53809c.png

2.1.2.3SMU_core到Ports(ErrorPin)的接口

通用端口結構如下圖所示。

9e505e12-d490-11ee-a297-92fbcf53809c.png

端口引腳(Port Pin)可以通過 ALTx 輸出線路連接到外圍設備。這是開機重置后端口的默認狀態 。SMU_CORE 使用 HW_DIR , AlTIN , HW_EN , HW_OUT 信號連接到端口。當 HW_EN 端口輸入由 SMU_CORE 驅動時, SMU_CORE 將完全控制該端口,繞過與 ALTx 輸入使用相關的任何其他軟件配置。

下圖提供了端口結構的更詳細概述,并突出顯示了 SMU_CORE 連接中涉及的信號。

9e6c7386-d490-11ee-a297-92fbcf53809c.png

SMU_FSP0(也就是上圖中的FSP [0])由硬件控制。FSP_DIR和FSP_EN由軟件控制,控制寄存器如下:

PCTL.HWDIR直接驅動FSP_DIR輸出。

PCTL.HWEN直接驅動FSP_EN輸出。

PCTL.HWDIR和PCTL.HWEN同時也會控制SMU_FSP1.

9e7ac238-d490-11ee-a297-92fbcf53809c.png

PCTL. PCS 位域,與 P33_PCSR.SEL 位字段配合使用,使軟件能夠更改 FSP [0]的 PAD 控制。借助 P33_PCSR. SEL , PCTL HWDIR , HWEN 和 PCS 字段,軟件可以控制 FPSP [0] PAD 所有權從 GPIO 過渡到 SMU 硬件完全控制。

9e8c1dc6-d490-11ee-a297-92fbcf53809c.png

9e9f55e4-d490-11ee-a297-92fbcf53809c.png

SMU_FSP1 PAD 不在 SMU_CORE 的控制下。通過軟件配置PCTL PCS 字段,不能更改 SMU_FSP1 的 PAD 控制。但是, PCTL HWDIR 和 HWEN 字段可用于超控(overrule) PAD 配置。

PCTL 寄存器的內容被KEYS寄存器鎖定,并且只能通過開機重置(power-on reset)進行重置,因此即使存在應用程序或系統重置, PAD 配置也將保持不變。此外, PCTL 寄存器使用安全觸發器安全機制實施,該機制在運行時檢測隨機硬件故障引起的任何位變化。

9eb6172a-d490-11ee-a297-92fbcf53809c.png

參考SMU_core Integration Guidelines章節,描述了使用ErrorPin時的SMU和PORT模塊的配置步驟。

2.1.2.4SMU_core到寄存器監控的接口

寄存器監視器控制(RMCTL),寄存器監視器錯誤標志寄存器(RMEF)和寄存器監視器自檢狀態寄存器(RMSTS)之間的接口指定如下:

RMCTL.TE[31:0]

-將 RMCTL.TE[i]設置為 1 將對給定模塊的安全觸發保護寄存器啟動自檢(請參閱表 523)。

-在自檢結束時,必須將這些位設置回0。

9ecc3bae-d490-11ee-a297-92fbcf53809c.png

9eddc496-d490-11ee-a297-92fbcf53809c.png

RMEF.EF [31:0]

-無論 RMTL.TE[i]的狀態如何,只要在給定模塊的安全觸發保護寄存器中檢測到故障, RMEF.EF[i]就會設置為 1 (參見表 524)。

9ef87ac0-d490-11ee-a297-92fbcf53809c.png

9f05dd1e-d490-11ee-a297-92fbcf53809c.png

9f248430-d490-11ee-a297-92fbcf53809c.png

9f30e2ac-d490-11ee-a297-92fbcf53809c.png

RMSTS.STS [31:0]

-RMSTS.STS[i]在安全觸發自檢序列結束時設置為1 (參見表525)

9f46317a-d490-11ee-a297-92fbcf53809c.png

9fce62f2-d490-11ee-a297-92fbcf53809c.png

安全觸發器自檢條件

為了防止自檢期間出現意外行為,應滿足以下條件:

必須啟用要測試的模塊的時鐘

自檢期間不得修改自檢所涉及模塊的時鐘和時鐘比率

自檢序列中所涉及模塊的時鐘比率應以特定方式設置。有關更多詳細信息,請參閱安全觸發相關章節

執行自檢時,微控制器不應設置為重置,休眠或調試狀態

2.1.2.5SMU_core到SMU_stdby的接口

如果發生故障, SMU_CORE 會向 SMU_Stdby 生成信號 SMU_core_alive。

如果滿足以下條件之一,將生成 SMU_core_alive 信號:

當 SMU_CORE 處于運行(RUN)或故障(FAULT)狀態,且 SMU_CORE 活動監視器(SCAM)檢測到 SMU_CORE 未生成反應時,會發生警報事件。

當 SMU_CORE 處于啟動(START)狀態,且SCAM檢測到 SMU_CORE 未生成響應時,會發生監視程序或恢復計時器警報事件。

發送SMU_ActivateFSP或SMU_ActivatePES命令,但SMU_CORE不會生成相應的響應

在處理此報警時,報警的配置會發生變化

SMU_core_alive 信號可以通過發送 SMU_AliveTest 命令來測試。

事實上,發送 SMU_AliveTest 命令將觸發SCAM引發故障并將 SMU_core_alive 警報轉發給 SMU_Stdby。無論是否啟用 SMU_Stdby (請參閱Interdependency Between SMU_core and SMU_stdby),都可以在 AG2i_STDBY (i=1)中讀取 SMU_core_Alive 報警標志。可以通過使用不同的參數發送 SMU_AliveTest 命令來禁用SCAM錯誤注入(請參閱表 531)。但是,當真正的故障生成 SMU_core_alive 報警時, SMU_AliveTest 命令無法清除該報警。要清除 SMU_core_alive 警報,至少需要重置應用程序。

對于 TC39xB 和 TC38x ,當 SMU_CORE 處于啟動(START)狀態時,在處理“恢復計時器 1 ”超時警報時發生故障將不會生成 SMU_core_alive 警報。

2.1.3 SMU_core集成指導

本章通過提供有關錯誤針腳(故障信號協議(FSP))與微控制器的其他輸入/輸出(GPIO)功能以及故障信號協議(FSP)配置的更多信息,擴展了接口概述部分。

在power-on reset期間, ErrorPin 處于高阻態:the pull devices are disabled.

power-on reset后,ErrorPin連接到的端口(PORT)的默認模式為GPIO.

在將 PAD 的所有權更改為 SMU 之前,軟件應配置端口寄存器,包括:

如果未使用GPIO,請disable the pull devices.

通過軟件編程GPIO寄存器,將ErrorPin強驅動輸出低電平.

設置P33_PCSR.SEL8為1

設置P33_PCSR.SEL10為0.

要使 SMU 能夠控制 ErrorPin PAD ,軟件應激活 PAD 配置保護處理(configuration safeguarding process)。

-保護處理需要一個軟件操作,包括在 PCTL.PCS 字段中寫入 1。只有從0到 1 的第一個上升沿會使得保護處理生效。新的端口配置以及從0到 1 的 PCTL.PCS 的新轉換對硬件沒有影響。

此外,需要按照以下步驟重新配置故障信號協議(FSP)設置:

-當處于無故障狀態(Fault Free State)且正在使用時間切換(Time Switching)或Dual Rail協議(時:

通過將FSP設置為Bi-stable協議模式(FSP.MODE= 00B)來禁用時間切換(Time Switching)或Dual Rail協議

等待Bi-stable協議模式激活(讀取FSP寄存器兩次)

寫入想寫入的值到PRE1, PRE2或者TFSP_HIGH.

切換FSP.MODE到想要的協議

當處于無故障狀態且正在使用Bi-stable協議時:

寫入想寫入的值到PRE1, PRE2或者TFSP_HIGH.

切換FSP.MODE到想要的協議

2.1.4報警映射(Alarm Mapping)

其他外設模塊產生的Alarm都幾種映射到SMU模塊。為此,定義了報警組。報警組索引 ALM< n >[index]信號與報警配置和狀態寄存器(AG< n >[index])之間存在一對一關系。一個組由多達 32 個警報組成。

9fe97fb0-d490-11ee-a297-92fbcf53809c.png

TC37x模塊擁有Alarm Group 0-11, Group 20, Group 21共14組Alarm,每組Group有32個Alarm.

2.1.4.1SMU_core內部Alarms

下表描述了 SMU_CORE 生成的警報。

a00cdf8c-d490-11ee-a297-92fbcf53809c.png

2.1.5Alarm處理

2.1.5.1Alarm協議

每個安全機制都應使用預定義的協議與 SMU_CORE 連接。該協議允許以可靠的方式跨越時鐘域。協議的操作對軟件層沒有影響。

2.1.5.2Alarm配置

收到報警事件后, SMU_CORE 會對要執行的操作進行解碼。該操作可以分為內部行為和外部行為。可以為每個報警配置內部和外部行為。

外部行為與故障信號協議相關(請參閱故障信號協議(FSP))。外部行為通過以下寄存器配置:

AGiFSP (i=0-11)

a01bf35a-d490-11ee-a297-92fbcf53809c.png

a02cc70c-d490-11ee-a297-92fbcf53809c.png

SMU 在出現報警時的內部行為通過以下寄存器進行控制:

AGiCFj (i=0-11;j=0-2)

a038717e-d490-11ee-a297-92fbcf53809c.png

內部行為由 3 位代碼指定,如下所示:

Code = SMU_AGCF2. SMU_AGCF1. SMU_AGCF0, n=0...11

三個bit組成0x0 – 0x7共8種組合。

a0531b00-d490-11ee-a297-92fbcf53809c.png

2.1.5.3 Alarm操作

每當檢測到輸入報警事件且 SMU_CORE 狀態機器處于運行(RUN)或故障(FAULT)狀態時, SMU 會同時檢查要為內部操作和 FSP 執行的相應操作。如果檢測到輸入報警事件,但未指定報警的操作,則相應的狀態位也應設置為 1 ,但不會發生任何操作。

傳入報警事件的處理過程如下所示:

同時掃描所有報警組(Alarm Group)和每個報警。

掛起的報警(Alarm)的執行是同時進行的。

報警組內的報警處理可能需要幾個 fSPB 周期。

如果完成了故障處理,則會在 SMU_AEX 寄存器中設置相應的位。只要設置了位,相應的故障處理就會被阻止。故障處理完成后,此位需要由 SW 重置。

如果SMU_AEX寄存器中與掛起報警相關的報警執行位已設置,則報警事件被忽略,但狀態位和相應的報警錯過事件位已設置。

如果與報警事件相關的狀態標志已設置為1,則報警事件將被忽略。

無論何時處理報警事件,AG寄存器中的硬件都會將相應的狀態位設置為1。如果配置并執行了內部SMU_core動作,則AFCNT寄存器中的動作計數器(ACNT)遞增。

2.1.5.4Alarm狀態寄存器

表529規定了根據SMU_core狀態機狀態在AG報警組狀態寄存器上可能的軟件操作。

a06d388c-d490-11ee-a297-92fbcf53809c.png

在START狀態下,軟件可以通過在AG地址寫入來“模擬”輸入報警事件的發生。如有必要,軟件應讀回AG寄存器,以確保操作完成。此外,在清除警報后,軟件應重新檢查警報狀態位(針對清除時間窗口期間發生的警報)。

要清除各個報警標志,請僅使用32位寫入。

2.1.5.5Alarm診斷寄存器

報警診斷寄存器使應用程序能夠改進對導致故障的根本原因的診斷。在這種情況下,如果應用程序允許,它們可能有助于實施恢復策略。當出現以下情況時,SMU_ADx診斷寄存器應生成SMU_AGx寄存器的快照:

當SMU處于RUN(運行)或FAULT(故障)狀態時,SMU要執行的動作是復位

發生將SMU_core狀態機(SSMSSM)切換到FAULT狀態(RUN->FAULT,FAULT->FAULT)的條件,由SMU硬件或軟件命令控制

SMU_ADx寄存器只有在power-on reset后才會被清除。

注:在觸發SMU對SMU_AGx寄存器進行快照的每個條件之后,SMU_ADx診斷寄存器將被當前SMU_AGx寄存器值覆蓋。如果SMU已經處于FAULT(故障)狀態,并且FSP再次激活,則這也是有效的。

2.1.5.6Port緊急停止

Port緊急停止功能可強制Pad進入通用輸入模式(General Purpose Input Mode)。SCU的端口緊急停止請求可通過以下任何情況激活:

SMU_ActivatePES()軟件命令。

SMU_AG< x >FSP 啟用且 FSP 啟用的報警事件。

在 SMU_AGCFX 寄存器中配置了內部操作且為該操作啟用了 SMU_AGC.PES 的警報事件。

2.1.5.7 Recovery Timer

恢復計時器(RT)可用于監控通過警報, NMI 或中斷操作激活的持續時間或內部錯誤處理程序。在當前 SMU_CORE 實現中有兩個獨立實例(RT0和 RT1)可用。恢復計時器持續時間(所有實例相同)在寄存器 RTC 中配置。可以啟用或禁用每個實例,但默認情況下,這兩個實例都已啟用,因為操作 CPU 監視程序時需要使用它們(另請參閱Watchdog Alarms)。除了 RTC 之外,每個恢復計時器實例還可以使用附加配置寄存器(RTC00, RTC01 , RTC10和 RTC11)來配置警報映射。

警報映射由一對參數{GIDi, ALIDi} (i = 0..3)組成,其中 GIDi 是組標識符,而 ALIDi 是屬于組的警報標識符。每個恢復計時器實例可以配置四個 { GIDi , ALIDi } 對。可以多次配置相同的組標識符。如果需要將少于四個報警映射到恢復計時器,則應多次配置相同的{GIDi, ALIDi}。

注:只有當內部操作是中斷或 NMI 時,才可以使用恢復計時器。然而,沒有進行硬件檢查,而是由軟件以適當的方式配置SMU_core.

如果已啟用恢復計時器,并且任何{ GIDi , ALIDi } 對都將發生警報事件,并且配置了內部操作導致內部操作(警報狀態應清除),則恢復計時器將由硬件自動啟動。這種情況稱為恢復計時器事件。無內部操作的報警不應啟動恢復計時器。

一旦發生恢復計時器事件,恢復計時器將啟動并計數,直到軟件使用 SMU_RTStop()停止它。如果計時器超時,將發出內部 SMU 報警(恢復計時器超時)。在恢復計時器運行期間,請求恢復計時器的任何其他操作都將被忽略。如果發生此類事件, STS 寄存器中的硬件將位 RTME (恢復計時器未接來電事件)設置為 ‘1 ’。RTME bit 只能通過軟件清除。在恢復計時器運行期間, STS 寄存器中的硬件將 RTS bit (恢復計時器狀態)設置為 ‘1 ’:從計時器激活到收到 SMU_RTStop()或計時器過期。收到 SMU_RTStop()或計時器到期時,硬件將清除該位 RTS。

如果在恢復計時器未處于活動狀態時收到 SMU_RTStop()命令,該命令將返回錯誤響應。

注:如果應寫入 RTC.RTD ,請確保沒有運行恢復計時器(恢復計時器狀態由 STS 寄存器中的 BITS RTS0和 RTS1 指示)。

2.1.5.8看門狗Alarms

如果看門狗(WDT)不是由軟件或固件提供服務,則需要對監視狗(WDT)超時警報進行特殊處理,以確保微控制器行為正確。應確保微控制器在預警階段后重置,在此階段,軟件仍可以執行一些關鍵操作。

每個超時警報都應激活NMI

恢復計時器0應配置為為安全WDT,CPU0 WDT,CPU1 WDT和CPU2 WDT的WDT超時警報提供服務

恢復計時器1應配置為為維修CPU3 WDT的WDT超時警報,CPU4 WDT和CPU5 WDT

應將恢復計時器0和恢復計時器 1 超時警報配置為發出重置請求并激活故障信號協議。

上述屬性作為監視程序超時警報以及恢復計時器0和 1 的重置值實現。

a07ce9d0-d490-11ee-a297-92fbcf53809c.png

圖中僅顯示 RTAC 0和相關的四個 WDT 的示例。同樣, RTAC 1 與相關 WDT3 , WDT4 和 WDT5 的設置方式也是如此。

由于也需要從 CPU 執行的第一個指令中檢測看門狗超時, SMU 應在啟動狀態期間處理任何看門狗超時警報。

注:如果所有 WDT 警報都需要相同的行為,建議使用實施邏輯或所有 WDT 超時警報的全局 WDT 超時警報,從而釋放 RTC00, RTC01 , RTC10和 RTC11 中的某些{GIDi , ALIDi } 配置對,以用于其他用途。

2.1.6 SMU_core控制接口

通過控制接口引入SMU_CORE 的核心功能。控制接口定義了軟件如何控制 SMU_CORE ,如表 530所示。控制接口直接連接到 SMU_CORE 狀態機(SSM)中所述的 SMU_CORE 狀態機(SSM)操作和故障信號協議(FSP)中所述的故障信號協議(FSP)。控制接口由 CMD 寄存器使用 CMD 和 ARG 字段實現。命令完成狀態可通過 STS 寄存器獲取。

a09b7ce2-d490-11ee-a297-92fbcf53809c.png

注:如果參數不符合命令規范,則該命令將被忽略并返回錯誤代碼。

下表提供了執行命令的合法條件。條件取決于 SMU_CORE 狀態機器(SSM)狀態(參見 SMU_CORE 狀態機器)。任何未指定的情況都會導致錯誤代碼。

a0c1b286-d490-11ee-a297-92fbcf53809c.png

a0d7b216-d490-11ee-a297-92fbcf53809c.png

2.1.7 SMU_core狀態機

圖 163 和圖 164 描述了 SMU_CORE 狀態機(SSM)的行為。

a0eec0a0-d490-11ee-a297-92fbcf53809c.png

a10818d4-d490-11ee-a297-92fbcf53809c.png

Fault Counter

SMU 實現了一個故障計數器(AFCNT),該計數計數了從運行狀態到故障狀態的轉換次數。故障計數器寄存器只能通過熱啟動重置來重置。

2.1.8故障信號協議(Fault Signaling Protocol, FSP)

故障信號協議使微控制器能夠向外部安全控制器設備報告緊急情況,以控制安全系統的安全狀態。

2.1.8.1簡介

故障信號協議通過 FSP 命令寄存器進行配置。FSP 狀態由 STS 寄存器中的 FSP 標志指示。FSP有三種狀態:

開機重置狀態。在熱啟動重置(warm power-on reset)后, SMU 與端口斷開連接(請參閱 SMU_CORE Integration Guidelines)。在熱啟動重置后, SMU FSP 輸出應為故障狀態。

無故障狀態。無故障狀態由一個定時器控制,定時器被稱為 TFSP_FFS ,并由 FSP 寄存器控制。

故障狀態。故障狀態的時間由 FSP 寄存器控制。最小活動故障狀態時間稱為 TFSP_FS。

無故障和故障狀態行為可以使用以下協議進行配置:

Bi-stable protocol (default)

Dynamic dual-rail protocol

Time-switching protocol

FSP 可通過以下方式控制:

軟件方式,通過CMD寄存器使用SMU_ActivateFSP()和SMU_ReleaseFSP()命令。

硬件方式,通過AGiFSP(I = 0-11)配置寄存器。

為避免意外報警,僅當 SMU 未處于故障狀態且 FSP 處于雙穩定協議模式(FSP 模式= 00B)時,才可執行 PRE1 , PRE2 或 TFSP_HIGH 字段的配置。模式切換和配置不應使用相同的寫入訪問權限來注冊 FSP。如果應寫入 FSP.PRE1字段,請確保沒有運行恢復計時器(恢復計時器狀態由 STS 寄存器中的 BITS RTS0和 RTS1 指示)。

圖 165 指定了生成 TFSP_FFS 和 TFSP_FS 計時的中間時鐘。

a11b6272-d490-11ee-a297-92fbcf53809c.png

2.1.8.2 Bi-stable fault signaling protocol

a129ff3a-d490-11ee-a297-92fbcf53809c.png

操作

在通電重置過程中, FSP[0] =0 (故障狀態)。

通電后重置 FSP[0]保持故障狀態。

FSP[0]必須設置為每個軟件的無故障狀態(SMU_ReleaseFSP ())。

在檢測到配置為激活 FSP 的報警事件時, FSP [0]會進入故障狀態并保持此狀態,直到收到 SMU_ReleaseFSP ()命令,并且滿足 TFS_FS 或發生開機重置。

在故障狀態下,如果收到配置為激活 FSP 的新警報事件,但尚未達到 TFSP_FS ,則應重新啟動 TFSP_FS 計時。

在故障狀態下,如果收到配置為激活 FSP 的新報警事件,并且已經達到 TFSP_FS ,則應啟動 TFSP_FS 計時。

2.1.8.3Timed dual rail

a14513ba-d490-11ee-a297-92fbcf53809c.png

操作

雙軌編碼是對位進行編碼的另一種方法。雙軌代碼使用兩個信號來定義邏輯狀態。

在通電重置過程中, FSP[1:0]=2'B00 (故障狀態)?通電重置后, FSP[1:0]保持故障狀態。

FSP[1:0]必須設置為每個軟件的無故障狀態(SMU_ReleaseFSP ())。

故障無狀態由 FSP[1:0]在 2'B01 和 2'B10之間振蕩定義,其定義頻率通過 FSP 寄存器配置,占空比為 50% (參見圖 167)。

在檢測到配置為激活FSP的報警事件時,FSP [1:0]會立即進入故障狀態,并保持此狀態,直到收到SMU_ReleaseFSP ()命令且TFS_FS滿足或啟動

重置發生。

a1560ea4-d490-11ee-a297-92fbcf53809c.png

2.1.8.4 Time switching protocol

a162c09a-d490-11ee-a297-92fbcf53809c.png

使用定義的頻率在邏輯級別0和邏輯級別 1 之間切換 FP[0]。當 SMU_CORE 進入故障狀態時,將違反此頻率調制協議。

在通電重置過程中, FSP[0] =0 (故障狀態)。

加電后重置 FSP[0]保持故障狀態。

FSP[0]必須設置為每個軟件的無故障狀態(SMU_ReleaseFSP ())。

在無故障狀態下,使用通過 FSP 寄存器配置的頻率, FSP[0]在邏輯級別0和邏輯級別 1 之間振蕩(參見圖 168)。

在檢測到配置為激活 FSP 的報警事件時, FSP [0]會立即進入故障狀態,并保持此狀態,直到收到 SMU_ReleaseFSP ()命令且 TFS_FS 滿足或啟動要求重置發生。

2.1.8.5FSPFault State

當警報配置為激活 FSP 時, SMU_CORE 會自動切換到故障狀態。在此期間,安全相關軟件還可以嘗試分析根本原因(當微控制器仍在運行時),并確定錯誤的嚴重程度。由于 FSP 至少對 TFSP_FS 處于活動狀態,因此可以確保通過獨立于微控制器的外部機制(除了 FSP 本身)輸入系統的安全狀態。在 TFSP_FS FSP 處于故障狀態期間,軟件可能已斷定故障不嚴重,并決定發SMU_ReleaseFSP ()命令,通知 SMU_CORE 它可以返回到運行狀態(軟件錯誤處理程序的運行時間與 TFSP_FS 的持續時間沒有直接關聯,在實踐中應該要短得多)。

a17b7ee6-d490-11ee-a297-92fbcf53809c.png

應謹慎使用此功能,當 SMU 報告的故障被評估為不嚴重時,強烈建議重置微控制器以重新啟動安全功能的操作。因此,默認情況下,此功能處于禁用狀態,應使用 AGC 寄存器中的 EFRST (啟用故障到運行狀態轉換)字段進行配置。

2.1.8.6 FSP and SMU_core START State

圖 170顯示了一個典型的使用案例,其中 FSP 在故障狀態和無故障狀態之間的轉換由軟件使用 SMU_ReleaseFSP()和 SMU_ActivateFSP()命令進行控制。

a1fb0d82-d490-11ee-a297-92fbcf53809c.png

使用條件:

軟件應確保 FSP 處于無故障狀態,然后使用 SMU_Start()命令輸入運行狀態。

2.2 SMU_stdby

概念和SMU_core基本一樣,參考芯片手冊。

03

SMU配置

和其他硬件模塊一樣,理解了模塊的原理和基本概念后,模塊配置就是按照項目的需求配置模塊相關的寄存器,只不過提供了圖形化的配置工具。

3.1SMUGeneral配置

SMU General主要配置一些全局的屬性,以及是否使能一些SMU的功能,是否要使能一些API.

a20c153c-d490-11ee-a297-92fbcf53809c.png

3.2SmuConfigSet配置

3.2.1General

a2269a9c-d490-11ee-a297-92fbcf53809c.png

3.2.2 SmuCoreRT0Alarm

a2499d58-d490-11ee-a297-92fbcf53809c.png

3.2.3 SmuCoreAlarmGroup

a25978e0-d490-11ee-a297-92fbcf53809c.png

3.2.3 SmuStdbyAlarmGroup

a270a65a-d490-11ee-a297-92fbcf53809c.png

04

總結

SMU模塊是Aurix芯片自帶的一個功能安全硬件模塊,它能夠收集其他模塊(PMS, MTU, SCU, CCU, e.g.)由于硬件功能安全機制產生的報警(Alarm),然后,SMU模塊通過用戶配置能夠產生內部或者外部的動作/響應,也可以不產生任何動作。對于使用SMU的用戶而言,外部響應一般都很少使用,主要就是查對應芯片手冊,知道哪一個硬件模塊可以產生一個對應SMU的Alarm,然后配置該Alarm產生后需要執行的動作即可。

a28654e6-d490-11ee-a297-92fbcf53809c.png

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7489

    瀏覽量

    151050
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120008
  • 路由器
    +關注

    關注

    22

    文章

    3707

    瀏覽量

    113543
  • SMU
    SMU
    +關注

    關注

    1

    文章

    57

    瀏覽量

    17252
  • GPIO
    +關注

    關注

    16

    文章

    1196

    瀏覽量

    51918

原文標題:TC3xx芯片SMU模塊詳解

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    英飛凌TC3XX系列多核MCU學習筆記(1)

    聲明:本文是在學習英飛凌 TC3XX系列多核 MCU 過程中整理的筆記,便于后期復習!
    發表于 09-19 09:54 ?2394次閱讀
    英飛凌<b class='flag-5'>TC3XX</b>系列多核MCU學習筆記(1)

    TC3xx芯片的Endinit功能詳解

    上鎖Endinit。那什么是Endinit功能了? -- 本文就來詳細解鎖TC3xx芯片的Endinit機制。
    的頭像 發表于 11-27 09:23 ?2094次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的Endinit功能詳解

    TC3xx芯片時鐘系統的鎖相環PLL詳解

    的Tick數就是基于模塊時鐘的)。本系列文章就來詳細介紹TC3xx芯片的時鐘系統及其具體配置。本文為TC3xx芯片時鐘系統的鎖相環PLL詳解
    的頭像 發表于 12-01 09:37 ?2374次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>時鐘系統的鎖相環PLL詳解

    英飛凌TC3xx系列安全管理單元的使用

    本篇文檔主要用來介紹英飛凌基于AURIX-2G TriCore 1.6.2架構的 TC3xx系列安全管理單元的使用。
    的頭像 發表于 12-07 09:29 ?2001次閱讀
    英飛凌<b class='flag-5'>TC3xx</b>系列安全管理單元的使用

    TC3XX寄存器讀寫時間過長怎么解決?

    我目前在做TC3XX底層代碼優化,經過之前多次測試目前可以確定該系列芯片對單個寄存器地址的讀寫耗時超過100us。請問對于寄存器讀寫耗時你們官方有沒有確切的文件說明?還有就是既然寄存器讀寫時間那么長100M的外設總線時鐘是否有意義?
    發表于 01-25 06:56

    TC3xx系列怎么禁用trap?

    目前在TC3xx調試flash讀寫功能,單獨運行flash相關功能沒有問題,但將flash相關功能集成到工程中。操作pflash就會進入trap中,查看了一些帖子說是要禁掉trap?請問怎么禁用trap?目前沒找到相關函數
    發表于 01-31 06:21

    請問TC3XX WDT 的check access應該如何使用?

    hi,各位老師:請問TC3XX WDT 的check access應該如何使用?以及Time Check Password如何理解及使用?讀手冊時,一直沒有理解到Time Check
    發表于 02-02 08:17

    TC3xx系列是否支持RTC功能?

    請教各位,TC3xx系列芯片是否支持RTC功能,目前要記錄snapshot的時間點(年月日時分秒)。
    發表于 02-02 07:53

    TC3xx的HSM中有沒有單調計數器?

    你好, 我看到 OPTIGA 有單調計數器,但我在 TC3xx 的 HSM 中確實找不到單調計數器。 能否確認TC3xx的HSM中沒有單調計數器?
    發表于 03-05 07:56

    TC3XX系列IOM模塊ECMSELR寄存器中的CTS和CES有什么區別?

    我想利用 IOM 模塊來監控 PWM 輸出,但我有一些問題。 TC3XX 系列 IOM 模塊 ECMSELR 寄存器中的 CTS 和 CES 有什么區別? 如果將 CES 的相應通道設置為 1,是否會在發生事件時向
    發表于 05-29 07:39

    AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模塊

    ADC模塊了,由于最近開始使用Infineon TC3xx芯片,在配置ADC模塊的時候發現ADC模塊對上提供的標準接口是一樣的,在切換
    的頭像 發表于 01-29 16:45 ?8267次閱讀

    AURIX? TC3xx NVM是非易失性存儲器學習筆記

    TC3xx芯片最多有6個內核,每個核有自己的私有的Memory以及共有的Memory。
    發表于 06-19 09:09 ?6491次閱讀
    AURIX? <b class='flag-5'>TC3xx</b> NVM是非易失性存儲器學習筆記

    TC3xx芯片DMU介紹

    AUTOSAR架構圖下的Fls模塊對上(Fee)模塊提供統一的標準接口,但是具體的實現因不同的芯片而不一樣,Infineon公司的Fls模塊通過操作
    的頭像 發表于 08-31 14:10 ?1798次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>DMU介紹

    TC3xx芯片的MPU功能詳解

    在前面的文章文章中我們介紹了RH850-U2A的內存保護單元(MPU),了解了MPU的概念以及在RH850-U2A上的具體使用流程,但是對于TC3xx系列芯片的的MPU功能不甚了解。本文就來詳細介紹下
    的頭像 發表于 09-19 11:42 ?2148次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的MPU功能詳解

    深入解析TC3xx芯片中SMU模塊應用

    TC3xx芯片是德國英飛凌半導體公司推出的汽車級處理器芯片系列,其中的SMU(System Management Unit)模塊是其重要組成
    的頭像 發表于 03-01 18:08 ?1619次閱讀