SMU模塊是Aurix芯片自帶的一個功能安全硬件模塊,它能夠收集其他模塊(PMS, MTU, SCU, CCU, e.g.)由于硬件功能安全機制產(chǎn)生的報警(Alarm),然后,SMU模塊通過用戶配置能夠產(chǎn)生內(nèi)部或者外部的動作/響應(yīng),也可以不產(chǎn)生任何動作。本文將詳細介紹SMU模塊。
01
SMU功能概述
SMU 是安全架構(gòu)的核心組件,提供通用接口,用于管理存在故障的微控制器的行為。SMU 集中所有與不同的硬件和軟件安全機制相關(guān)的警報信號。每個警報都可以單獨配置為觸發(fā)內(nèi)部操作和/或通過故障信號協(xié)議(FSP, Fault Signaling Protocol)向外部通知存在故障。每一報警的嚴重程度應(yīng)根據(jù)安全應(yīng)用的需要進行配置:默認情況下,除看門狗超時報警外,每一報警反應(yīng)都被禁用。為了進行調(diào)試和診斷,報警信號設(shè)置了一個粘滯位(sticky bit),該粘滯位可適應(yīng)應(yīng)用程序或系統(tǒng)重置。SMU 還實施了一些與專用安全機制的管理和測試相關(guān)的內(nèi)務(wù)管理(housekeeping functions)功能。可以使用特殊測試模式測試 SMU 本身,以檢測潛在故障。除了寄存器訪問保護外, SMU 還實施了配置鎖定機制(configuration locking mechanism)。此外,為了緩解(mitigate)潛在的常見原因故障, SMU 分為兩部分:
SMU_core:位于core domain.
SMU_stdby:位于stand-by domain.
SMU_CORE 和 SMU_Stdby 的設(shè)計方式和時間安排各不相同。SMU 的兩個部分之間存在物理隔離。它們位于不同的時鐘和電源域中。這允許 SMU 處理任何傳入的報警,而不管用于生成此報警的時鐘頻率如何。此外,在 fSPB (或衍生產(chǎn)品)上生成的報警事件將由 SMU_CORE 處理,而在 fBACK 上生成的報警事件將由 SMU_Stdby 處理。這樣,所有時鐘活動監(jiān)視器警報都將在生成時鐘域中處理。此外,與功率和溫度有關(guān)的報警也以不同的方式處理,因為它們由 SMU_CORE 和 SMU_Stdby 處理。可以在 SMU_CORE 或 SMU_Stdby 中配置對這些報警的一個或多個反應(yīng)(Actions)。
此外,為了檢測 SMU_CORE 中的錯誤,將從 SMU_core 向 SMU_Stdby 發(fā)送警報 SMU_core_alive。對這些警報的反應(yīng)(Actions)可在兩個域中配置。但是,對于 SMU_Stdby ,只有無反應(yīng)(no reaction)或?qū)?Errorpins 配置為高阻抗?fàn)顟B(tài)作為報警反應(yīng)。
SMU 與嵌入式安全機制相結(jié)合,可以在容錯時間間隔內(nèi)檢測并報告超過 99%的微控制器嚴重故障模式。可在 SMU 中配置容錯時間間隔的計時特性。
1.1SMU架構(gòu)
1.2SMU_core
核心域 SMU (也稱為 SMU_core)從安全概念定義的硬件監(jiān)視器(hardware monitors)的安全機制收集大多數(shù)警報信號。報警映射(Alarm Mapping)部分(后面的章節(jié))指定報警接口(alarm interface)并將其分類為報警組(alarm group)。報警組定義邏輯映射,用于將報警信號映射到內(nèi)部狀態(tài)寄存器。“報警處理”部分描述了配置選項。配置選項指定檢測到報警事件時 SMU_core的行為。警報事件可以觸發(fā)內(nèi)部操作和/或激活錯誤針腳,以指示外部環(huán)境存在故障。SMU_CORE Control Interface 部分指定了軟件如何控制 SMU_CORE 以及硬件操作的相關(guān)性。故障信號協(xié)議(FSP)部分描述了外部故障信號協(xié)議的屬性,這些屬性定義了錯誤針腳(ErrorPin)的計時和邏輯屬性。
1.3 SMU_stdby
備用域 SMU (也稱為 SMU_Stdby)從檢測時鐘(無時鐘),電源(電壓過低/過高)和溫度故障(溫度過低/過高)的模塊收集警報。SMU_Stdby 還會收集 SMU_Alive 報警信號,當(dāng) SMU_CORE 在報警升高后未觸發(fā)反應(yīng)時,該信號會發(fā)出通知。此外, SMU_Stdby 實現(xiàn)了內(nèi)置自檢功能,允許用戶測試 SMU_Stdby 對報警信號的反應(yīng)以及從次級電壓監(jiān)視器到 SMU_Stdby 的完整報警路徑。有關(guān)輔助監(jiān)視器和 SMU_Stdby 內(nèi)置自檢的詳細信息,請參閱電源管理系統(tǒng)一章。
“報警映射”部分指定報警接口,并將它們分為兩個報警組。“報警處理”部分描述了可以指定的配置選項。配置選項指定檢測到報警事件時 SMU_Stdby 的行為。警報事件可以觸發(fā)啟動 ErrorPins (錯誤針腳),該 ErrorPins (錯誤針腳)表示外部環(huán)境存在故障。
02
SMU功能詳述
2.1SMU_core
2.1.1 Reset類型
SMU_CORE 需要多種Reset類型。Reset類型在系統(tǒng)控制單元中完全指定。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的接口
與系統(tǒng)控制單元連接的警報事件所導(dǎo)致的內(nèi)部操作。接口信號為:
Emergency Stop Request
Reset Request
NMI Request
CPU Reset Request
2.1.2.2 SMU_core到IR的接口
與中斷路由模塊相連的報警事件導(dǎo)致的內(nèi)部操作。接口信號為:
SMU Interrupt Service Request 0
SMU Interrupt Service Request 1
SMU Interrupt Service Request 2
SMU 中斷服務(wù)請求到中斷路由(IR)中斷節(jié)點的映射可在中斷路由器一章(SRC_SMUy, y=0.2)中找到。
AGC.IGCSx , x={0, 1 , 2 } 寄存器字段提供了軟件接口來控制 SMU 如何觸發(fā)中斷路由器的中斷請求。
每個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章節(jié)描述。
2.1.2.3SMU_core到Ports(ErrorPin)的接口
通用端口結(jié)構(gòu)如下圖所示。
端口引腳(Port Pin)可以通過 ALTx 輸出線路連接到外圍設(shè)備。這是開機重置后端口的默認狀態(tài) 。SMU_CORE 使用 HW_DIR , AlTIN , HW_EN , HW_OUT 信號連接到端口。當(dāng) HW_EN 端口輸入由 SMU_CORE 驅(qū)動時, SMU_CORE 將完全控制該端口,繞過與 ALTx 輸入使用相關(guān)的任何其他軟件配置。
下圖提供了端口結(jié)構(gòu)的更詳細概述,并突出顯示了 SMU_CORE 連接中涉及的信號。
SMU_FSP0(也就是上圖中的FSP [0])由硬件控制。FSP_DIR和FSP_EN由軟件控制,控制寄存器如下:
PCTL.HWDIR直接驅(qū)動FSP_DIR輸出。
PCTL.HWEN直接驅(qū)動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 所有權(quán)從 GPIO 過渡到 SMU 硬件完全控制。
SMU_FSP1 PAD 不在 SMU_CORE 的控制下。通過軟件配置PCTL PCS 字段,不能更改 SMU_FSP1 的 PAD 控制。但是, PCTL HWDIR 和 HWEN 字段可用于超控(overrule) PAD 配置。
PCTL 寄存器的內(nèi)容被KEYS寄存器鎖定,并且只能通過開機重置(power-on reset)進行重置,因此即使存在應(yīng)用程序或系統(tǒng)重置, PAD 配置也將保持不變。此外, PCTL 寄存器使用安全觸發(fā)器安全機制實施,該機制在運行時檢測隨機硬件故障引起的任何位變化。
參考SMU_core Integration Guidelines章節(jié),描述了使用ErrorPin時的SMU和PORT模塊的配置步驟。
2.1.2.4SMU_core到寄存器監(jiān)控的接口
寄存器監(jiān)視器控制(RMCTL),寄存器監(jiān)視器錯誤標(biāo)志寄存器(RMEF)和寄存器監(jiān)視器自檢狀態(tài)寄存器(RMSTS)之間的接口指定如下:
RMCTL.TE[31:0]
-將 RMCTL.TE[i]設(shè)置為 1 將對給定模塊的安全觸發(fā)保護寄存器啟動自檢(請參閱表 523)。
-在自檢結(jié)束時,必須將這些位設(shè)置回0。
RMEF.EF [31:0]
-無論 RMTL.TE[i]的狀態(tài)如何,只要在給定模塊的安全觸發(fā)保護寄存器中檢測到故障, RMEF.EF[i]就會設(shè)置為 1 (參見表 524)。
RMSTS.STS [31:0]
-RMSTS.STS[i]在安全觸發(fā)自檢序列結(jié)束時設(shè)置為1 (參見表525)
安全觸發(fā)器自檢條件
為了防止自檢期間出現(xiàn)意外行為,應(yīng)滿足以下條件:
必須啟用要測試的模塊的時鐘
自檢期間不得修改自檢所涉及模塊的時鐘和時鐘比率
自檢序列中所涉及模塊的時鐘比率應(yīng)以特定方式設(shè)置。有關(guān)更多詳細信息,請參閱安全觸發(fā)相關(guān)章節(jié)
執(zhí)行自檢時,微控制器不應(yīng)設(shè)置為重置,休眠或調(diào)試狀態(tài)
2.1.2.5SMU_core到SMU_stdby的接口
如果發(fā)生故障, SMU_CORE 會向 SMU_Stdby 生成信號 SMU_core_alive。
如果滿足以下條件之一,將生成 SMU_core_alive 信號:
當(dāng) SMU_CORE 處于運行(RUN)或故障(FAULT)狀態(tài),且 SMU_CORE 活動監(jiān)視器(SCAM)檢測到 SMU_CORE 未生成反應(yīng)時,會發(fā)生警報事件。
當(dāng) SMU_CORE 處于啟動(START)狀態(tài),且SCAM檢測到 SMU_CORE 未生成響應(yīng)時,會發(fā)生監(jiān)視程序或恢復(fù)計時器警報事件。
發(fā)送SMU_ActivateFSP或SMU_ActivatePES命令,但SMU_CORE不會生成相應(yīng)的響應(yīng)
在處理此報警時,報警的配置會發(fā)生變化
SMU_core_alive 信號可以通過發(fā)送 SMU_AliveTest 命令來測試。
事實上,發(fā)送 SMU_AliveTest 命令將觸發(fā)SCAM引發(fā)故障并將 SMU_core_alive 警報轉(zhuǎn)發(fā)給 SMU_Stdby。無論是否啟用 SMU_Stdby (請參閱Interdependency Between SMU_core and SMU_stdby),都可以在 AG2i_STDBY (i=1)中讀取 SMU_core_Alive 報警標(biāo)志。可以通過使用不同的參數(shù)發(fā)送 SMU_AliveTest 命令來禁用SCAM錯誤注入(請參閱表 531)。但是,當(dāng)真正的故障生成 SMU_core_alive 報警時, SMU_AliveTest 命令無法清除該報警。要清除 SMU_core_alive 警報,至少需要重置應(yīng)用程序。
對于 TC39xB 和 TC38x ,當(dāng) SMU_CORE 處于啟動(START)狀態(tài)時,在處理“恢復(fù)計時器 1 ”超時警報時發(fā)生故障將不會生成 SMU_core_alive 警報。
2.1.3 SMU_core集成指導(dǎo)
本章通過提供有關(guān)錯誤針腳(故障信號協(xié)議(FSP))與微控制器的其他輸入/輸出(GPIO)功能以及故障信號協(xié)議(FSP)配置的更多信息,擴展了接口概述部分。
在power-on reset期間, ErrorPin 處于高阻態(tài):the pull devices are disabled.
power-on reset后,ErrorPin連接到的端口(PORT)的默認模式為GPIO.
在將 PAD 的所有權(quán)更改為 SMU 之前,軟件應(yīng)配置端口寄存器,包括:
如果未使用GPIO,請disable the pull devices.
通過軟件編程GPIO寄存器,將ErrorPin強驅(qū)動輸出低電平.
設(shè)置P33_PCSR.SEL8為1
設(shè)置P33_PCSR.SEL10為0.
要使 SMU 能夠控制 ErrorPin PAD ,軟件應(yīng)激活 PAD 配置保護處理(configuration safeguarding process)。
-保護處理需要一個軟件操作,包括在 PCTL.PCS 字段中寫入 1。只有從0到 1 的第一個上升沿會使得保護處理生效。新的端口配置以及從0到 1 的 PCTL.PCS 的新轉(zhuǎn)換對硬件沒有影響。
此外,需要按照以下步驟重新配置故障信號協(xié)議(FSP)設(shè)置:
-當(dāng)處于無故障狀態(tài)(Fault Free State)且正在使用時間切換(Time Switching)或Dual Rail協(xié)議(時:
通過將FSP設(shè)置為Bi-stable協(xié)議模式(FSP.MODE= 00B)來禁用時間切換(Time Switching)或Dual Rail協(xié)議
等待Bi-stable協(xié)議模式激活(讀取FSP寄存器兩次)
寫入想寫入的值到PRE1, PRE2或者TFSP_HIGH.
切換FSP.MODE到想要的協(xié)議
當(dāng)處于無故障狀態(tài)且正在使用Bi-stable協(xié)議時:
寫入想寫入的值到PRE1, PRE2或者TFSP_HIGH.
切換FSP.MODE到想要的協(xié)議
2.1.4報警映射(Alarm Mapping)
其他外設(shè)模塊產(chǎn)生的Alarm都幾種映射到SMU模塊。為此,定義了報警組。報警組索引 ALM< n >[index]信號與報警配置和狀態(tài)寄存器(AG< n >[index])之間存在一對一關(guān)系。一個組由多達 32 個警報組成。
TC37x模塊擁有Alarm Group 0-11, Group 20, Group 21共14組Alarm,每組Group有32個Alarm.
2.1.4.1SMU_core內(nèi)部Alarms
下表描述了 SMU_CORE 生成的警報。
2.1.5Alarm處理
2.1.5.1Alarm協(xié)議
每個安全機制都應(yīng)使用預(yù)定義的協(xié)議與 SMU_CORE 連接。該協(xié)議允許以可靠的方式跨越時鐘域。協(xié)議的操作對軟件層沒有影響。
2.1.5.2Alarm配置
收到報警事件后, SMU_CORE 會對要執(zhí)行的操作進行解碼。該操作可以分為內(nèi)部行為和外部行為。可以為每個報警配置內(nèi)部和外部行為。
外部行為與故障信號協(xié)議相關(guān)(請參閱故障信號協(xié)議(FSP))。外部行為通過以下寄存器配置:
AGiFSP (i=0-11)
SMU 在出現(xiàn)報警時的內(nèi)部行為通過以下寄存器進行控制:
AGiCFj (i=0-11;j=0-2)
內(nèi)部行為由 3 位代碼指定,如下所示:
Code = SMU_AGCF2. SMU_AGCF1. SMU_AGCF0, n=0...11
三個bit組成0x0 – 0x7共8種組合。
2.1.5.3 Alarm操作
每當(dāng)檢測到輸入報警事件且 SMU_CORE 狀態(tài)機器處于運行(RUN)或故障(FAULT)狀態(tài)時, SMU 會同時檢查要為內(nèi)部操作和 FSP 執(zhí)行的相應(yīng)操作。如果檢測到輸入報警事件,但未指定報警的操作,則相應(yīng)的狀態(tài)位也應(yīng)設(shè)置為 1 ,但不會發(fā)生任何操作。
傳入報警事件的處理過程如下所示:
同時掃描所有報警組(Alarm Group)和每個報警。
掛起的報警(Alarm)的執(zhí)行是同時進行的。
報警組內(nèi)的報警處理可能需要幾個 fSPB 周期。
如果完成了故障處理,則會在 SMU_AEX 寄存器中設(shè)置相應(yīng)的位。只要設(shè)置了位,相應(yīng)的故障處理就會被阻止。故障處理完成后,此位需要由 SW 重置。
如果SMU_AEX寄存器中與掛起報警相關(guān)的報警執(zhí)行位已設(shè)置,則報警事件被忽略,但狀態(tài)位和相應(yīng)的報警錯過事件位已設(shè)置。
如果與報警事件相關(guān)的狀態(tài)標(biāo)志已設(shè)置為1,則報警事件將被忽略。
無論何時處理報警事件,AG寄存器中的硬件都會將相應(yīng)的狀態(tài)位設(shè)置為1。如果配置并執(zhí)行了內(nèi)部SMU_core動作,則AFCNT寄存器中的動作計數(shù)器(ACNT)遞增。
2.1.5.4Alarm狀態(tài)寄存器
表529規(guī)定了根據(jù)SMU_core狀態(tài)機狀態(tài)在AG報警組狀態(tài)寄存器上可能的軟件操作。
在START狀態(tài)下,軟件可以通過在AG地址寫入來“模擬”輸入報警事件的發(fā)生。如有必要,軟件應(yīng)讀回AG寄存器,以確保操作完成。此外,在清除警報后,軟件應(yīng)重新檢查警報狀態(tài)位(針對清除時間窗口期間發(fā)生的警報)。
要清除各個報警標(biāo)志,請僅使用32位寫入。
2.1.5.5Alarm診斷寄存器
報警診斷寄存器使應(yīng)用程序能夠改進對導(dǎo)致故障的根本原因的診斷。在這種情況下,如果應(yīng)用程序允許,它們可能有助于實施恢復(fù)策略。當(dāng)出現(xiàn)以下情況時,SMU_ADx診斷寄存器應(yīng)生成SMU_AGx寄存器的快照:
當(dāng)SMU處于RUN(運行)或FAULT(故障)狀態(tài)時,SMU要執(zhí)行的動作是復(fù)位
發(fā)生將SMU_core狀態(tài)機(SSMSSM)切換到FAULT狀態(tài)(RUN->FAULT,F(xiàn)AULT->FAULT)的條件,由SMU硬件或軟件命令控制
SMU_ADx寄存器只有在power-on reset后才會被清除。
注:在觸發(fā)SMU對SMU_AGx寄存器進行快照的每個條件之后,SMU_ADx診斷寄存器將被當(dāng)前SMU_AGx寄存器值覆蓋。如果SMU已經(jīng)處于FAULT(故障)狀態(tài),并且FSP再次激活,則這也是有效的。
2.1.5.6Port緊急停止
Port緊急停止功能可強制Pad進入通用輸入模式(General Purpose Input Mode)。SCU的端口緊急停止請求可通過以下任何情況激活:
SMU_ActivatePES()軟件命令。
SMU_AG< x >FSP 啟用且 FSP 啟用的報警事件。
在 SMU_AGCFX 寄存器中配置了內(nèi)部操作且為該操作啟用了 SMU_AGC.PES 的警報事件。
2.1.5.7 Recovery Timer
恢復(fù)計時器(RT)可用于監(jiān)控通過警報, NMI 或中斷操作激活的持續(xù)時間或內(nèi)部錯誤處理程序。在當(dāng)前 SMU_CORE 實現(xiàn)中有兩個獨立實例(RT0和 RT1)可用。恢復(fù)計時器持續(xù)時間(所有實例相同)在寄存器 RTC 中配置。可以啟用或禁用每個實例,但默認情況下,這兩個實例都已啟用,因為操作 CPU 監(jiān)視程序時需要使用它們(另請參閱Watchdog Alarms)。除了 RTC 之外,每個恢復(fù)計時器實例還可以使用附加配置寄存器(RTC00, RTC01 , RTC10和 RTC11)來配置警報映射。
警報映射由一對參數(shù){GIDi, ALIDi} (i = 0..3)組成,其中 GIDi 是組標(biāo)識符,而 ALIDi 是屬于組的警報標(biāo)識符。每個恢復(fù)計時器實例可以配置四個 { GIDi , ALIDi } 對。可以多次配置相同的組標(biāo)識符。如果需要將少于四個報警映射到恢復(fù)計時器,則應(yīng)多次配置相同的{GIDi, ALIDi}。
注:只有當(dāng)內(nèi)部操作是中斷或 NMI 時,才可以使用恢復(fù)計時器。然而,沒有進行硬件檢查,而是由軟件以適當(dāng)?shù)姆绞脚渲肧MU_core.
如果已啟用恢復(fù)計時器,并且任何{ GIDi , ALIDi } 對都將發(fā)生警報事件,并且配置了內(nèi)部操作導(dǎo)致內(nèi)部操作(警報狀態(tài)應(yīng)清除),則恢復(fù)計時器將由硬件自動啟動。這種情況稱為恢復(fù)計時器事件。無內(nèi)部操作的報警不應(yīng)啟動恢復(fù)計時器。
一旦發(fā)生恢復(fù)計時器事件,恢復(fù)計時器將啟動并計數(shù),直到軟件使用 SMU_RTStop()停止它。如果計時器超時,將發(fā)出內(nèi)部 SMU 報警(恢復(fù)計時器超時)。在恢復(fù)計時器運行期間,請求恢復(fù)計時器的任何其他操作都將被忽略。如果發(fā)生此類事件, STS 寄存器中的硬件將位 RTME (恢復(fù)計時器未接來電事件)設(shè)置為 ‘1 ’。RTME bit 只能通過軟件清除。在恢復(fù)計時器運行期間, STS 寄存器中的硬件將 RTS bit (恢復(fù)計時器狀態(tài))設(shè)置為 ‘1 ’:從計時器激活到收到 SMU_RTStop()或計時器過期。收到 SMU_RTStop()或計時器到期時,硬件將清除該位 RTS。
如果在恢復(fù)計時器未處于活動狀態(tài)時收到 SMU_RTStop()命令,該命令將返回錯誤響應(yīng)。
注:如果應(yīng)寫入 RTC.RTD ,請確保沒有運行恢復(fù)計時器(恢復(fù)計時器狀態(tài)由 STS 寄存器中的 BITS RTS0和 RTS1 指示)。
2.1.5.8看門狗Alarms
如果看門狗(WDT)不是由軟件或固件提供服務(wù),則需要對監(jiān)視狗(WDT)超時警報進行特殊處理,以確保微控制器行為正確。應(yīng)確保微控制器在預(yù)警階段后重置,在此階段,軟件仍可以執(zhí)行一些關(guān)鍵操作。
每個超時警報都應(yīng)激活NMI
恢復(fù)計時器0應(yīng)配置為為安全WDT,CPU0 WDT,CPU1 WDT和CPU2 WDT的WDT超時警報提供服務(wù)
恢復(fù)計時器1應(yīng)配置為為維修CPU3 WDT的WDT超時警報,CPU4 WDT和CPU5 WDT
應(yīng)將恢復(fù)計時器0和恢復(fù)計時器 1 超時警報配置為發(fā)出重置請求并激活故障信號協(xié)議。
上述屬性作為監(jiān)視程序超時警報以及恢復(fù)計時器0和 1 的重置值實現(xiàn)。
圖中僅顯示 RTAC 0和相關(guān)的四個 WDT 的示例。同樣, RTAC 1 與相關(guān) WDT3 , WDT4 和 WDT5 的設(shè)置方式也是如此。
由于也需要從 CPU 執(zhí)行的第一個指令中檢測看門狗超時, SMU 應(yīng)在啟動狀態(tài)期間處理任何看門狗超時警報。
注:如果所有 WDT 警報都需要相同的行為,建議使用實施邏輯或所有 WDT 超時警報的全局 WDT 超時警報,從而釋放 RTC00, RTC01 , RTC10和 RTC11 中的某些{GIDi , ALIDi } 配置對,以用于其他用途。
2.1.6 SMU_core控制接口
通過控制接口引入SMU_CORE 的核心功能。控制接口定義了軟件如何控制 SMU_CORE ,如表 530所示。控制接口直接連接到 SMU_CORE 狀態(tài)機(SSM)中所述的 SMU_CORE 狀態(tài)機(SSM)操作和故障信號協(xié)議(FSP)中所述的故障信號協(xié)議(FSP)。控制接口由 CMD 寄存器使用 CMD 和 ARG 字段實現(xiàn)。命令完成狀態(tài)可通過 STS 寄存器獲取。
注:如果參數(shù)不符合命令規(guī)范,則該命令將被忽略并返回錯誤代碼。
下表提供了執(zhí)行命令的合法條件。條件取決于 SMU_CORE 狀態(tài)機器(SSM)狀態(tài)(參見 SMU_CORE 狀態(tài)機器)。任何未指定的情況都會導(dǎo)致錯誤代碼。
2.1.7 SMU_core狀態(tài)機
圖 163 和圖 164 描述了 SMU_CORE 狀態(tài)機(SSM)的行為。
Fault Counter
SMU 實現(xiàn)了一個故障計數(shù)器(AFCNT),該計數(shù)計數(shù)了從運行狀態(tài)到故障狀態(tài)的轉(zhuǎn)換次數(shù)。故障計數(shù)器寄存器只能通過熱啟動重置來重置。
2.1.8故障信號協(xié)議(Fault Signaling Protocol, FSP)
故障信號協(xié)議使微控制器能夠向外部安全控制器設(shè)備報告緊急情況,以控制安全系統(tǒng)的安全狀態(tài)。
2.1.8.1簡介
故障信號協(xié)議通過 FSP 命令寄存器進行配置。FSP 狀態(tài)由 STS 寄存器中的 FSP 標(biāo)志指示。FSP有三種狀態(tài):
開機重置狀態(tài)。在熱啟動重置(warm power-on reset)后, SMU 與端口斷開連接(請參閱 SMU_CORE Integration Guidelines)。在熱啟動重置后, SMU FSP 輸出應(yīng)為故障狀態(tài)。
無故障狀態(tài)。無故障狀態(tài)由一個定時器控制,定時器被稱為 TFSP_FFS ,并由 FSP 寄存器控制。
故障狀態(tài)。故障狀態(tài)的時間由 FSP 寄存器控制。最小活動故障狀態(tài)時間稱為 TFSP_FS。
無故障和故障狀態(tài)行為可以使用以下協(xié)議進行配置:
Bi-stable protocol (default)
Dynamic dual-rail protocol
Time-switching protocol
FSP 可通過以下方式控制:
軟件方式,通過CMD寄存器使用SMU_ActivateFSP()和SMU_ReleaseFSP()命令。
硬件方式,通過AGiFSP(I = 0-11)配置寄存器。
為避免意外報警,僅當(dāng) SMU 未處于故障狀態(tài)且 FSP 處于雙穩(wěn)定協(xié)議模式(FSP 模式= 00B)時,才可執(zhí)行 PRE1 , PRE2 或 TFSP_HIGH 字段的配置。模式切換和配置不應(yīng)使用相同的寫入訪問權(quán)限來注冊 FSP。如果應(yīng)寫入 FSP.PRE1字段,請確保沒有運行恢復(fù)計時器(恢復(fù)計時器狀態(tài)由 STS 寄存器中的 BITS RTS0和 RTS1 指示)。
圖 165 指定了生成 TFSP_FFS 和 TFSP_FS 計時的中間時鐘。
2.1.8.2 Bi-stable fault signaling protocol
操作
在通電重置過程中, FSP[0] =0 (故障狀態(tài))。
通電后重置 FSP[0]保持故障狀態(tài)。
FSP[0]必須設(shè)置為每個軟件的無故障狀態(tài)(SMU_ReleaseFSP ())。
在檢測到配置為激活 FSP 的報警事件時, FSP [0]會進入故障狀態(tài)并保持此狀態(tài),直到收到 SMU_ReleaseFSP ()命令,并且滿足 TFS_FS 或發(fā)生開機重置。
在故障狀態(tài)下,如果收到配置為激活 FSP 的新警報事件,但尚未達到 TFSP_FS ,則應(yīng)重新啟動 TFSP_FS 計時。
在故障狀態(tài)下,如果收到配置為激活 FSP 的新報警事件,并且已經(jīng)達到 TFSP_FS ,則應(yīng)啟動 TFSP_FS 計時。
2.1.8.3Timed dual rail
操作
雙軌編碼是對位進行編碼的另一種方法。雙軌代碼使用兩個信號來定義邏輯狀態(tài)。
在通電重置過程中, FSP[1:0]=2'B00 (故障狀態(tài))?通電重置后, FSP[1:0]保持故障狀態(tài)。
FSP[1:0]必須設(shè)置為每個軟件的無故障狀態(tài)(SMU_ReleaseFSP ())。
故障無狀態(tài)由 FSP[1:0]在 2'B01 和 2'B10之間振蕩定義,其定義頻率通過 FSP 寄存器配置,占空比為 50% (參見圖 167)。
在檢測到配置為激活FSP的報警事件時,F(xiàn)SP [1:0]會立即進入故障狀態(tài),并保持此狀態(tài),直到收到SMU_ReleaseFSP ()命令且TFS_FS滿足或啟動
重置發(fā)生。
2.1.8.4 Time switching protocol
使用定義的頻率在邏輯級別0和邏輯級別 1 之間切換 FP[0]。當(dāng) SMU_CORE 進入故障狀態(tài)時,將違反此頻率調(diào)制協(xié)議。
在通電重置過程中, FSP[0] =0 (故障狀態(tài))。
加電后重置 FSP[0]保持故障狀態(tài)。
FSP[0]必須設(shè)置為每個軟件的無故障狀態(tài)(SMU_ReleaseFSP ())。
在無故障狀態(tài)下,使用通過 FSP 寄存器配置的頻率, FSP[0]在邏輯級別0和邏輯級別 1 之間振蕩(參見圖 168)。
在檢測到配置為激活 FSP 的報警事件時, FSP [0]會立即進入故障狀態(tài),并保持此狀態(tài),直到收到 SMU_ReleaseFSP ()命令且 TFS_FS 滿足或啟動要求重置發(fā)生。
2.1.8.5FSPFault State
當(dāng)警報配置為激活 FSP 時, SMU_CORE 會自動切換到故障狀態(tài)。在此期間,安全相關(guān)軟件還可以嘗試分析根本原因(當(dāng)微控制器仍在運行時),并確定錯誤的嚴重程度。由于 FSP 至少對 TFSP_FS 處于活動狀態(tài),因此可以確保通過獨立于微控制器的外部機制(除了 FSP 本身)輸入系統(tǒng)的安全狀態(tài)。在 TFSP_FS FSP 處于故障狀態(tài)期間,軟件可能已斷定故障不嚴重,并決定發(fā)SMU_ReleaseFSP ()命令,通知 SMU_CORE 它可以返回到運行狀態(tài)(軟件錯誤處理程序的運行時間與 TFSP_FS 的持續(xù)時間沒有直接關(guān)聯(lián),在實踐中應(yīng)該要短得多)。
應(yīng)謹慎使用此功能,當(dāng) SMU 報告的故障被評估為不嚴重時,強烈建議重置微控制器以重新啟動安全功能的操作。因此,默認情況下,此功能處于禁用狀態(tài),應(yīng)使用 AGC 寄存器中的 EFRST (啟用故障到運行狀態(tài)轉(zhuǎn)換)字段進行配置。
2.1.8.6 FSP and SMU_core START State
圖 170顯示了一個典型的使用案例,其中 FSP 在故障狀態(tài)和無故障狀態(tài)之間的轉(zhuǎn)換由軟件使用 SMU_ReleaseFSP()和 SMU_ActivateFSP()命令進行控制。
使用條件:
軟件應(yīng)確保 FSP 處于無故障狀態(tài),然后使用 SMU_Start()命令輸入運行狀態(tài)。
2.2 SMU_stdby
概念和SMU_core基本一樣,參考芯片手冊。
03
SMU配置
和其他硬件模塊一樣,理解了模塊的原理和基本概念后,模塊配置就是按照項目的需求配置模塊相關(guān)的寄存器,只不過提供了圖形化的配置工具。
3.1SMUGeneral配置
SMU General主要配置一些全局的屬性,以及是否使能一些SMU的功能,是否要使能一些API.
3.2SmuConfigSet配置
3.2.1General
3.2.2 SmuCoreRT0Alarm
3.2.3 SmuCoreAlarmGroup
3.2.3 SmuStdbyAlarmGroup
04
總結(jié)
SMU模塊是Aurix芯片自帶的一個功能安全硬件模塊,它能夠收集其他模塊(PMS, MTU, SCU, CCU, e.g.)由于硬件功能安全機制產(chǎn)生的報警(Alarm),然后,SMU模塊通過用戶配置能夠產(chǎn)生內(nèi)部或者外部的動作/響應(yīng),也可以不產(chǎn)生任何動作。對于使用SMU的用戶而言,外部響應(yīng)一般都很少使用,主要就是查對應(yīng)芯片手冊,知道哪一個硬件模塊可以產(chǎn)生一個對應(yīng)SMU的Alarm,然后配置該Alarm產(chǎn)生后需要執(zhí)行的動作即可。
審核編輯:黃飛
-
微控制器
+關(guān)注
關(guān)注
48文章
7660瀏覽量
152187 -
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121294 -
路由器
+關(guān)注
關(guān)注
22文章
3746瀏覽量
114554 -
SMU
+關(guān)注
關(guān)注
1文章
59瀏覽量
17337 -
GPIO
+關(guān)注
關(guān)注
16文章
1217瀏覽量
52441
原文標(biāo)題:TC3xx芯片SMU模塊詳解
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
英飛凌TC3XX系列多核MCU學(xué)習(xí)筆記(1)
![英飛凌<b class='flag-5'>TC3XX</b>系列多核MCU學(xué)習(xí)筆記(1)](https://file1.elecfans.com/web2/M00/A5/17/wKgaomUI_fmAHg66AAC6wo472ro368.jpg)
TC3xx芯片時鐘系統(tǒng)的鎖相環(huán)PLL詳解
![<b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>時鐘系統(tǒng)的鎖相環(huán)PLL詳解](https://file1.elecfans.com/web2/M00/B2/1D/wKgaomVpOUSAdIZJAAAVWUvVLsA023.png)
TC3XX寄存器讀寫時間過長怎么解決?
TC3xx系列怎么禁用trap?
請問TC3XX WDT 的check access應(yīng)該如何使用?
TC3xx的HSM中有沒有單調(diào)計數(shù)器?
TC3XX系列IOM模塊ECMSELR寄存器中的CTS和CES有什么區(qū)別?
AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模塊
AURIX? TC3xx NVM是非易失性存儲器學(xué)習(xí)筆記
![AURIX? <b class='flag-5'>TC3xx</b> NVM是非易失性存儲器學(xué)習(xí)筆記](https://file1.elecfans.com/web2/M00/8A/08/wKgaomSPq26ADVgLAAA37poSRds418.png)
TC3xx芯片DMU介紹
![<b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>DMU介紹](https://file1.elecfans.com/web2/M00/A2/70/wKgaomTwLzKAFA9oAAAzEsYV888714.png)
TC3xx芯片的MPU功能詳解
![<b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的MPU功能詳解](https://file1.elecfans.com/web2/M00/A3/B5/wKgZomUJGniAWMcGAABvIJ3pGu8491.jpg)
評論