锁步技术是嵌入式系统中一种重要的冗余容错机制,用于提高系统的可靠性与安全性。在AURIX微控制器家族中,锁步技术的应用尤为突出。AURIX微控制器是德国英飞凌公司(Infineon)推出的面向汽车和工业应用的32位多核微控制器,其锁步技术的实现和故障注入开发案例为本文讨论的重点。 锁步技术原理解读: 锁步技术是指两个或多个处理器以完全相同的方式同时执行相同的指令,并且结果应该一致。这种设计允许系统监控指令执行过程中的差异,以检测故障。如果检测到不一致,说明系统可能出现了故障,这时系统可以采取措施来应对故障。 Lockstep监控使能条件: 在AURIX系列微控制器中,锁步监控功能的使能是在Bootloader的启动过程中完成的。当CPU加载BMI(Boot Mode Identifier)时,必须确保启动模式标志位BMI[9]被设置为有效,这样锁步功能才会被打开。在量产程序中,建议在Bootloader的Power on启动时保持“锁步监控使能开关”有效。 如何确认锁步监控功能有效: 确认锁步监控功能是否有效,需要通过硬件调试器如UDE界面进行观测。首先要确保在Bootloader软件中,BMI内容被定义成Const类型并写入,此时锁步功能尚未被使能。通过调试器观测到位域LSEN为0,表示Lockstep是禁用状态。随后改变Bootloader程序中的BMI[9],重新烧录到开发板上并冷启动。这时,如果通过UDE观测到SCU_LCLCON1=0x02,位域LSEN为1,表明Lockstep是使能状态,并且位域LS表明正在运行在锁步模式下,这时可以确认锁步监控功能已经有效。 锁步失锁生成器解读: 失锁生成器(Failure inject Test, FIT)是用于模拟锁步故障的一种工具。在AURIX系列微控制器中,可以通过FaultGen向锁步核注入故障。FIT的注入是瞬态的,SPBclock配置为100MHz时,FIT时刻仅持续0.01微秒,之后LCLT1会自恢复到无故障状态。FIT注入后,影响的是Checker核的运算结果,而Master核的计算结果由于未与Databus相连,不会受到FIT的干扰,结果保持正常。 软件FIT方法及代码实现: 软件实现FIT的方法主要通过模拟Lockstep核的失锁来测试MCU的SMUAlarm报错机制。首先进行寄存器写操作的FIT理论分析,然后在满足特定变量条件时,执行特定的寄存器写入操作来模拟锁步失效。通过对比试验,观察故障注入前后程序的行为变化,确认锁步监控功能的有效性。SMUAlarm0Group[0]是Lockstep锁步监控的失锁故障标志位。FIT测试前后,寄存器SMU_AG1位域SF0的值变化,可以用来观测FIT测试的效果。 总结: 本文通过案例展示了AURIX系列微控制器中锁步技术的原理和故障注入开发实践。通过锁步监控使能、锁步功能确认、失锁生成器解读、软件FIT方法及代码实现的详细介绍,体现了AURIX系列微控制器在嵌入式开发中使用锁步技术的细节和方法。通过反复测试,可以验证锁步监控功能在系统中起到的实际作用,保证了系统的可靠性。同时,SMUAlarm标志位作为应用层安全机制的重要依据,为功能安全相关安全机制的软件设计提供了基础。需要注意的是,SMUAlarm标志在使用后需要复位清除,以避免对后续故障检测的影响。
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍
- 基于Python及多语言集成的TSDT软件过程改进设计源码
- 基于Java语言的歌唱比赛评分系统设计源码
- 基于JavaEE技术的课程项目答辩源码设计——杨晔萌、李知林、岳圣杰、张俊范小组作品
- 基于Java原生安卓开发的蔚蓝档案娱乐应用设计源码
- 基于Java、Vue、JavaScript、CSS、HTML的毕设设计源码