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 中配置容錯時間間隔的計時特性。
1.1SMU架構
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 控的。
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)中找到。
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章節描述。
2.1.2.3SMU_core到Ports(ErrorPin)的接口
通用端口結構如下圖所示。
端口引腳(Port Pin)可以通過 ALTx 輸出線路連接到外圍設備。這是開機重置后端口的默認狀態 。SMU_CORE 使用 HW_DIR , AlTIN , HW_EN , HW_OUT 信號連接到端口。當 HW_EN 端口輸入由 SMU_CORE 驅動時, SMU_CORE 將完全控制該端口,繞過與 ALTx 輸入使用相關的任何其他軟件配置。
下圖提供了端口結構的更詳細概述,并突出顯示了 SMU_CORE 連接中涉及的信號。
SMU_FSP0(也就是上圖中的FSP [0])由硬件控制。FSP_DIR和FSP_EN由軟件控制,控制寄存器如下:
PCTL.HWDIR直接驅動FSP_DIR輸出。
PCTL.HWEN直接驅動FSP_EN輸出。
PCTL.HWDIR和PCTL.HWEN同時也會控制SMU_FSP1.
PCTL. PCS 位域,與 P33_PCSR.SEL 位字段配合使用,使軟件能夠更改 FSP [0]的 PAD 控制。借助 P33_PCSR. SEL , PCTL HWDIR , HWEN 和 PCS 字段,軟件可以控制 FPSP [0] PAD 所有權從 GPIO 過渡到 SMU 硬件完全控制。
SMU_FSP1 PAD 不在 SMU_CORE 的控制下。通過軟件配置PCTL PCS 字段,不能更改 SMU_FSP1 的 PAD 控制。但是, PCTL HWDIR 和 HWEN 字段可用于超控(overrule) PAD 配置。
PCTL 寄存器的內容被KEYS寄存器鎖定,并且只能通過開機重置(power-on reset)進行重置,因此即使存在應用程序或系統重置, PAD 配置也將保持不變。此外, PCTL 寄存器使用安全觸發器安全機制實施,該機制在運行時檢測隨機硬件故障引起的任何位變化。
參考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。
RMEF.EF [31:0]
-無論 RMTL.TE[i]的狀態如何,只要在給定模塊的安全觸發保護寄存器中檢測到故障, RMEF.EF[i]就會設置為 1 (參見表 524)。
RMSTS.STS [31:0]
-RMSTS.STS[i]在安全觸發自檢序列結束時設置為1 (參見表525)
安全觸發器自檢條件
為了防止自檢期間出現意外行為,應滿足以下條件:
必須啟用要測試的模塊的時鐘
自檢期間不得修改自檢所涉及模塊的時鐘和時鐘比率
自檢序列中所涉及模塊的時鐘比率應以特定方式設置。有關更多詳細信息,請參閱安全觸發相關章節
執行自檢時,微控制器不應設置為重置,休眠或調試狀態
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 個警報組成。
TC37x模塊擁有Alarm Group 0-11, Group 20, Group 21共14組Alarm,每組Group有32個Alarm.
2.1.4.1SMU_core內部Alarms
下表描述了 SMU_CORE 生成的警報。
2.1.5Alarm處理
2.1.5.1Alarm協議
每個安全機制都應使用預定義的協議與 SMU_CORE 連接。該協議允許以可靠的方式跨越時鐘域。協議的操作對軟件層沒有影響。
2.1.5.2Alarm配置
收到報警事件后, SMU_CORE 會對要執行的操作進行解碼。該操作可以分為內部行為和外部行為。可以為每個報警配置內部和外部行為。
外部行為與故障信號協議相關(請參閱故障信號協議(FSP))。外部行為通過以下寄存器配置:
AGiFSP (i=0-11)
SMU 在出現報警時的內部行為通過以下寄存器進行控制:
AGiCFj (i=0-11;j=0-2)
內部行為由 3 位代碼指定,如下所示:
Code = SMU_AGCF2. SMU_AGCF1. SMU_AGCF0, n=0...11
三個bit組成0x0 – 0x7共8種組合。
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報警組狀態寄存器上可能的軟件操作。
在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 的重置值實現。
圖中僅顯示 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 寄存器獲取。
注:如果參數不符合命令規范,則該命令將被忽略并返回錯誤代碼。
下表提供了執行命令的合法條件。條件取決于 SMU_CORE 狀態機器(SSM)狀態(參見 SMU_CORE 狀態機器)。任何未指定的情況都會導致錯誤代碼。
2.1.7 SMU_core狀態機
圖 163 和圖 164 描述了 SMU_CORE 狀態機(SSM)的行為。
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 計時的中間時鐘。
2.1.8.2 Bi-stable fault signaling protocol
操作
在通電重置過程中, 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
操作
雙軌編碼是對位進行編碼的另一種方法。雙軌代碼使用兩個信號來定義邏輯狀態。
在通電重置過程中, 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滿足或啟動
重置發生。
2.1.8.4 Time switching protocol
使用定義的頻率在邏輯級別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 的持續時間沒有直接關聯,在實踐中應該要短得多)。
應謹慎使用此功能,當 SMU 報告的故障被評估為不嚴重時,強烈建議重置微控制器以重新啟動安全功能的操作。因此,默認情況下,此功能處于禁用狀態,應使用 AGC 寄存器中的 EFRST (啟用故障到運行狀態轉換)字段進行配置。
2.1.8.6 FSP and SMU_core START State
圖 170顯示了一個典型的使用案例,其中 FSP 在故障狀態和無故障狀態之間的轉換由軟件使用 SMU_ReleaseFSP()和 SMU_ActivateFSP()命令進行控制。
使用條件:
軟件應確保 FSP 處于無故障狀態,然后使用 SMU_Start()命令輸入運行狀態。
2.2 SMU_stdby
概念和SMU_core基本一樣,參考芯片手冊。
03
SMU配置
和其他硬件模塊一樣,理解了模塊的原理和基本概念后,模塊配置就是按照項目的需求配置模塊相關的寄存器,只不過提供了圖形化的配置工具。
3.1SMUGeneral配置
SMU General主要配置一些全局的屬性,以及是否使能一些SMU的功能,是否要使能一些API.
3.2SmuConfigSet配置
3.2.1General
3.2.2 SmuCoreRT0Alarm
3.2.3 SmuCoreAlarmGroup
3.2.3 SmuStdbyAlarmGroup
04
總結
SMU模塊是Aurix芯片自帶的一個功能安全硬件模塊,它能夠收集其他模塊(PMS, MTU, SCU, CCU, e.g.)由于硬件功能安全機制產生的報警(Alarm),然后,SMU模塊通過用戶配置能夠產生內部或者外部的動作/響應,也可以不產生任何動作。對于使用SMU的用戶而言,外部響應一般都很少使用,主要就是查對應芯片手冊,知道哪一個硬件模塊可以產生一個對應SMU的Alarm,然后配置該Alarm產生后需要執行的動作即可。
審核編輯:黃飛
-
微控制器
+關注
關注
48文章
7489瀏覽量
151050 -
寄存器
+關注
關注
31文章
5317瀏覽量
120008 -
路由器
+關注
關注
22文章
3707瀏覽量
113543 -
SMU
+關注
關注
1文章
57瀏覽量
17252 -
GPIO
+關注
關注
16文章
1196瀏覽量
51918
原文標題:TC3xx芯片SMU模塊詳解
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論