英飞凌的TC3xx系列是符合ASIL D的MCU,自身带有很多自检功能,今天我们来分享下LBIST,逻辑数字部分的自检功能。代码使用AURIX Development studio V1.8版本
TC334平台LBIST简介
英飞凌Aurix TC3xx作为满足ASIL D的32位高性能MCU,提供了大量安全机制来覆盖MCU不同的失效模式。针对潜在失效部分,TC3xx有PBIST(电源自检),LBIST (逻辑自检), MBIST(内存自检),MONBIST(二级电压监控自检)等特性来满足客户系统级的功能安全需求。
LBIST是一种片上硬件机制,可用于检测MCU潜在故障。AURIX TC3xx平台的LBIST实现允许对MCU逻辑执行定期自检。LBIST在MCU应用模式下的执行基于为生产测试而实施的DFT结构,因此可重复使用MCU中已有的扫描链、控制和状态机制。启动LBIST有两种可配置的方式:作为启动序列的一部分或由MCU功能模式下的应用软件启动。LBIST的执行结果在LBIST结果和状态寄存器中提供,应用软件可利用这些结果在检测到潜在故障时达到 MCU安全状态。
LBIST功能开启
LBIST执行函数存放于Ifx_Cfg_Ssw.c文件,根据函数定义只需将Ifx_Cfg_Ssw.h文件中的IFX_CFG_SSW_ENABLE_LBIST定义改为1,程序就会在SSW执行过程中进行逻辑自检。
LBIST功能执行函数
默认值为0,写1打开LBIST
结果验证
期望签名
LBISTDONE位显示为1,表明自上电复位以来,至少有一次LBIST过程成功执行。且SCU_LBISTCTRL3.SIGNATURE为0x740ef25a,与期望配置中的签名一致,代表逻辑自检成功。
如若逻辑自检不成功,则用户在此处可以进行相关处理。
通过查看以上寄存器的的值,表明LBIST功能成功执行。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !