我正在使用 MPC5746C 微控制器进行功能安全关键型 ECU 设计,我需要确保我的 ASILB ECU 的功能安全相关输入(数字输入、ADC、PWM)的完整性。
根据 MPC5746C 功能安全手册(修订版 2),第 5.2.31 节 (SIUL2) 和假设 [SM_232]、[SM_233] 和 [SM_237],建议使用冗余 I/O 模块或复制传感器来实现所需的功能安全完整性。
不过,由于当前系统的硬件限制,我只能使用单个硬件输入,没有冗余引脚或重复的传感器。因此,我无法实现硬件级冗余。
我想请您就以下方面提供指导
推荐或支持哪些软件或 MCU 级别的机制(例如诊断、自检或可信性检查)来确保此类非冗余配置中输入数据完整性?
在 SIUL2、ADC 或其他模块中,是否有寄存器、内部交叉检查或外设功能可用于在运行时检测故障(卡住、VDD/GND 短路等)?
恩智浦是否为单通道输入完整性监控提供任何参考实现或示例,以替代硬件冗余?
你好
在内部将单个 ADC 输入连接到不同的 ADC 通道并验证两个通道的输出如何?- 这种说法是否成立?
这样就可以排除内部 ADC 模块的故障。但也可以通过每隔一段时间进行 ADC 测试测量来消除这种情况,以确保 ADC 正确转换引脚信号。
有些 UC 还为此进行了 ADC 硬件自检。但这次不是。
如果引脚上存在电磁兼容干扰(感应),那么这种电磁兼容干扰也会从引脚传播到所有路由 ADC 通道。
换句话说,如果您在引脚上测量到不正确的电压(由于感应),您只能通过两个不相邻的输入引脚进行双重感应来消除这种情况。
我在这里看不到任何解决方法。
也许如果你知道要测量的预期电压范围,那么你可以编写一个比较+测试算法,使其至少在预期范围内,如果不是,你将进入安全状态(RESET/重新测量等...)。但这并不能捕捉边角情况。
请说明如何对数字输入和PWM 输入实施类似的完整性检查或故障检测机制?
以下是一些一般提示:
1.数字输入 - 完整性监测技术
卡死故障检测
上拉/下拉电阻器切换:
输入激励(如有可能)
可信度检查
2.PWM 输入 - 完整性监测技术
捕获和测量占空比
可信度检查
与 ADC 或系统状态交叉检查
据我了解,在每次破坏性RESET期间,STCU 已经验证了外设的完整性,而 ADC的输入完整性只能通过冗余输入通道得到充分保证。请确认这一解释是否正确。
是,如果选择并启用了 ADC 的 STCU BIST。除了冗余测量之外,我看不到其他确保测量信号正确的方法。由于电磁兼容性通常不会影响所有引脚。这只是邻居针脚的感应。
顺祝商祺!
Peter
正如您所提到的,在同一 ADC 通道上执行多次读取(突发采样)可以提高诊断覆盖率,但无法检测到所有类型的故障。因此,这种方法并不能完全有效地确保电磁兼容性条件下的输入完整性。
在内部将单个 ADC 输入连接到不同的 ADC 通道并验证两个通道的输出如何?- 这种说法是否成立?
请说明如何对数字输入和PWM 输入实施类似的完整性检查或故障检测机制?
据我了解,在每次破坏性RESET期间,STCU 已经验证了外设的完整性,而 ADC的输入完整性只能通过冗余输入通道得到充分保证。请确认这一解释是否正确。
你好
推荐或支持哪些软件或 MCU 级别的机制(例如诊断、自检或可信性检查)来确保此类非冗余配置中输入数据完整性?
好吧,你很难用软件对策取代硬件层面的冗余读取。我不清楚 ASIL-B 标准中关于 ADC 读冗余的具体要求,但您可以在同一通道上进行多次读取(如突发),然后查看所有数据是否都在所需的阈值范围内。
但是,如果输入受到电磁兼容性的干扰,这就没有什么用了。
因此,需要对引脚分布的 2 个通道进行物理读取。
在 SIUL2、ADC 或其他模块中,是否有寄存器、内部交叉检查或外设功能可用于在运行时检测故障(卡住、VDD/GND 短路等)?
我不用担心外设的完整性,因为它在每次破坏性 RESET 时都会由 STCU2 逻辑 BIST 进行测试。该设备没有像 ASIL-D 设备那样的版本 ADC 自检功能。
恩智浦是否为单通道输入完整性监控提供任何参考实现或示例,以替代硬件冗余?
不,我们通过多种渠道为 HW 提供支持。而且我看不出任何软件示例将如何帮助消除模拟引脚上的电磁干扰。
我认为 ASIL-B 要求的目的是消除 EMC 导致的通道错误读取,因此您需要对遍布 uC 的引脚进行冗余读取。
顺祝商祺!
Peter