
其他博主在《https://mp.weixin.qq.com/s/Nqkros1DSHuA99rH5JXJ-w》一文詳細介紹了英飛凌TC3xx_LBIST原理及實現步驟,我們不再重復他的內容,我們站在巨人的肩膀上先給出功能安全手冊中關于LBIST的需求后再細化下LBIST的實現細節,然后介紹一個LBIST測試中可能存在的問題。
AUTOSAR BSW: Vector Davinci
MCAL: EB Infineon
HW Platform: TC3xx
Debug Tool: UDE
功能安全系列文章:
TC3xx芯片RAM ECC錯誤軟件調試
TC3xx芯片RAM的錯誤檢測
TC3xx芯片RAM監控機制的補充
如何監控TC3xx芯片PFlash的ECC錯誤
TC3xx芯片PFlash的ECC校驗問題補充
TC3xx芯片ROM ECC錯誤軟件調試
TC3xx芯片MPU介紹
TC3xx芯片的總線內存保護
TC3xx芯片ACCEN寄存器保護詳解
AUTOSAR架構下QM Application如何訪問ASIL Application
AUTOSAR架構下MCAL Modules軟件分區問題分析
內存分區設計及鏈接文件實現
AUTOSAR項目實戰(11)-AUTOSAR OS MPU配置及調試
EVADC功能安全需求及一些軟硬件設計注意事項
TC3xx芯片SMU FSP自檢原理和實現
【功能安全】ESM[SW]:SMU:ALIVE_ALARM_TEST原理及具體實現
【功能安全】ESM[SW]:SYS:MCU_FW_CHECK原理及注意實現
《AURIX TC3xx Safety Manual v1.11.pdf》

LBIST 是一種安全機制,它通過執行結構測試并檢查MCU的數字邏輯來檢測硬錯誤:包括潛在故障和多點故障。

應用程序軟件應通過LBISTCTRL0、LBISTCTRL1和LBISTCTRL2配置 LBIST 參數,并按照用戶手冊中的說明啟動 LBIST 執行。冷啟動復位后,固件也可通過 UCB 寄存器配置 LBIST 參數,并按照用戶手冊說明(配置方案A)啟動 LBIST 執行。

應用程序軟件應在LBIST 執行完成后檢查 LBIST 結果,并將其與預期值進行比較。
在檢查MISR 簽名之前,應用程序軟件應通過檢查LBISTCTRL0.l LBISTDONE==‘1’和RSTSTAT. LBTERM =‘1’,確認先前觸發的LBIST 運行是否已成功終止。
隨后,需將LBISTCTRL3生成的32位 MISR 簽名結果與預期的 MISR 結果進行比對。
在此背景下需注意,預期的MISR 簽名結果取決于產品版本、應用的LBIST-patterns數量(LBISTCTRL0.PATTERNS)以及LBISTCTRL1寄存器中的 LBIST 配置位(包括 BODY位)。
要成功執行LBIST ,必須確保LBISTCTRL2的length字段默認值未被應用程序軟件修改。
應當認識到,LBIST 是一種結構測試方法,其切換活動頻繁,且要求環境電壓和溫度條件穩定。因此,在極端運行條件下,單次 LBIST 測試可能因出現意外 MISR 結果而失敗。
在這種情況下,必須至少重復執行兩次 LBIST 測試來確認硅器件的故障行為。如果 LBIST 功能在連續三次運行中均未能生成正確的MISR 簽名,則該器件應被視為存在缺陷,且不得啟動至安全應用程序。
完成MISR 簽名驗證后,建議通過設置LBISTCTRL0(lbistres=‘1’)將 LBIST 控制器恢復至安全復位狀態。此舉將清除LBISTCTRL3寄存器中的 MISR 簽名,但卻是解除 LBIST SMU警報ALM8[5]位有效狀態所必需的。
《Infineon-AURIX_TC38x-UserManual-v02_00-EN.pdf》

LBIST 功能可通過SCU層級的四個寄存器進行控制:LBISTCTRL0、LBISTCTRL1、LBISTCTRL2和LBISTCTRL3(有關這些寄存器的完整說明,請參閱該系列規范)。
LBISTCTRL3寄存器存儲 MISR 簽名值,該值可在 LBIST 執行后(且執行有效)通過軟件讀取。只有當軟件讀取的MISR簽名值和預期值一致的時候,才能認為LBIST測試成功。
LBIST用戶軟件測試流程如下圖所示,軟件可按該流程圖來具體實現,ECU每次重啟的時候執行一次測試。圖中具體判斷條件和實施動作在后文將詳細介紹。