【MPC5744】SBC - FS65 介绍(下)

关键字 :NXPFS65MPC5744

1. 目的

         本文主要说明 SBC 模块 。

2.故障安全机

2.1 概述

         故障安全机 (FSM) 主要由三个子模块构成 ,此三个子模块分别是 :电压检测 (VS) 、故障安全状态机 (FSSM) 、故障安全输出驱动 (FSO) 。FSM 在电气上是与其他电路无关的 ,所以 FSM 有自己的电压调节器 (模拟和数字) ,振荡器等 。

         所有的电压产生调节器都受到 VS 监控 ,若有故障 ,则反馈给 FSSM ,此时产生一个故障输出 。这里总共有三个故障输出 :RSTB 、FS0B 、FS1B 。


                                                                  图 1 故障安全状态简图

2.2 深度故障安全状态

         使能此功能参见 SBC – FS65 介绍 (上) 。使能此功能之后 ,若故障错误计数 (详见下文) 达到最大值或 RSTB 引脚超过 8.0s 保持在低电平 (这里是有一个 8.0s 定时器监控保持在低电平时间 ,但在故障安全状态机的 “INIT_FS”期间可以禁用 8.0s 定时器 ) ,此时设备进入深度故障安全状态 。

         一旦进入此状态 ,所有调节器都关闭 (如果使用了 VKAM ,VKAM 不会关闭) ,RSTB 、FS0B 、FS1B 低电平 ,此时如果 IO_0 低电平 ,则进入 低功耗 – deep FS ,之后只有 IO_0 为高电平才可以唤醒 。


                                                                                                   图 2 状态简图

2.3 看门狗

         这是一个窗口看门狗 ,他通过 “问/答”机制来刷新看门狗 ,即 FS65 会产生一个伪随机码在 LFSR ,此时 MCU 可以读取这个值并通过计算出的应答发送给对应的寄存器刷新看门狗 ,此时 LFSR 会重新产生一个新的伪随机码 ,但如果计算出的应答错了 ,则 WD 错误计数器增加 ,看门狗重新开始 ,LFSR 不变 ,并产生中断 。

         在 INIT_FS 中 ,可以通过 SPI 更改看门狗时钟 ,或者禁用时钟 。或者可以进入 debug 模式 (将 DEBUG 引脚拉低 ) ,看门狗虽然也运行 ,但不会产生任何影响 。

         从 LFSR 读取出数据之后 ,可通过以下计算出应答 。如上电或低功耗唤醒后默认是 0xB2 ,计算出的应答为 0x4D 。


                                                                             图 3 看门狗计算

2.3.1 INIT_FS 刷新看门狗

         在上电或低功耗唤醒之后 ,一旦 RSTB 释放 (大约在 16.5 ms 之后) ,此时有 256 ms 完全开窗的看门狗窗口 ,必须在这 256ms 内初始化故障安全模块并刷新看门狗 。

2.3.2 Normal WD 刷新看门狗


                                    图 4 FS 时钟的窗口看门狗

         如图 ,看门狗刷新必须在 OPEN 时间段 ,在 CLOSED 段刷新看门狗视为一个错误看门狗刷新 。

这个的占空比是在 50% ± 10% 之间 。

2.3.3 看门狗错误计数

         一旦看门狗出现故障 (如看门狗超时 ,在 CLOSED 期间刷新看门狗) ,看门狗错误计数加 2 ,每次看门狗正确刷新 ,看门狗错误计数减 1 。仅当在 INIT_FS 模式 ,可以配置此错误计数的最大值 。如图 5 。

2.3.4 看门狗刷新计数

         这个计数器用于减小故障错误计数 。当看门狗正确刷新 ,看门狗刷新计数加 1 ,加到最大值后 ,若下一个刷新同样正确 ,则故障错误计数减 1 , 且看门狗刷新计数回到最小值 ,但只要有一个刷新错误 ,则看门狗刷新计数同样回到最小值 。如图 6 。


                                      图 5 看门狗错误计数配置


                                                        图 6 看门狗刷新计数配置

2.4 故障错误计数

         每当看门狗错误计数达到最大值或有其他故障源 (过压 、欠压 、外部复位等) ,则故障错误计数加 1 。

故障错误计数有两个值 (中间值和终值) :

  • 中间值能在 INIT_FAULT 寄存器的 FLT_ERR_IMP_1:0 配置功能 ,即达到中间值 ,FS0B 输出有效电平或产生 RSTB 脉冲 。
  • 终值用于在使能深度故障安全状态时 ,进入此状态 ,但若没使能此状态 ,则终值没影响 。

                                    图 7 故障错误计数 FLT_ERR_FS=0


                                       图 8 故障错误计数 FLT_ERR_FS=1

         注意 :在 INIT_FS 期间 ,错误刷新看门狗一次 ,故障错误计数加 1 。

在任何时候 ,若 RSTB 保持在低电平超过 8.0s ,若使能深度故障安全状态 ,则进入低功耗 – deep FS ,若没有使能深度故障安全状态 ,则进入低功耗 – sleep 。

         可以使得故障错误计数增加的情况 :

  • 在 INIT_FS 模式中看门狗刷新错误或看门狗超时
  • 看门狗错误计数达到配置的最大值
  • VPRE 过压
  • VCORE 、VCCA 、VAUX 过压或欠压
  • IO_23 错误检测 (FCCU)
  • IO_45 错误检测 (外部 IC 错误)
  • ABIST1 、ABIST2 自检错误
  • 被保护的故障状态机寄存器在 INIT_FS 模式以外的模式被改写
  • 外部复位
  • FCRBM 电压值不正常
  • RSTB short to high

2.5 RSTB 引脚有效

对 RSTB 影响可配置 :

  • 看门狗错误计数达到最大值
  • VCORE 、VCCA 、VAUX 过压或欠压
  • FCRBM 电压值不正常
  • IO_23 错误检测 (FCCU)
  • 故障错误计数到达一定值

对 RSTB 影响不可配置 :

  • VPRE 过压
  • 在 INIT_FS 模式看门狗刷新错误或看门狗超时
  • FS0B short to high
  • SPI 请求

2.6 FS0B 引脚有效

对 FS0B 影响可配置 :

  • 看门狗错误计数达到最大值
  • VCORE 、VCCA 、VAUX 过压或欠压
  • FCRBM 电压值不正常
  • IO_23 错误检测 (FCCU)
  • IO_45 错误检测 (外部 IC 错误)
  • 故障错误计数到达一定值

对 FS0B 影响不可配置 :

  • VPRE 过压
  • 在 INIT_FS 模式看门狗刷新错误或看门狗超时
  • LBIST 、ABIST1 、ABIST2 自检失败
  • RSTB 、FS1B short to high
  • SPI 请求
  • 被保护的故障状态机寄存器在 INIT_FS 模式以外的模式被改写

2.7 FSxB 释放

         若 FS0B 和 FS1B 由于故障被断言低 ,则需要先验证一下情况 :

  • ABIST2_FS1B_OK=1 (如果有 FS1B)
  • ABIST2_VAUX_OK=1 (除非 VAUX_FS_OV_1:0=VAUX_FS_UV_1:0=00)
  • 故障已经解决
  • 故障错误计数为零
  • 如果 FS1B_DLY_DRV bit=1 ,关闭 S1
  • 释放 FSxB 寄存器值应该用正确的值写进去

2.8 输入电压范围


                  图 9 输入电压范围

3. CAN 功能

3.1 操作模式

         FS65 中的 CAN 速率最高可达 2.0Mbit/s ,其操作有两种 :一种是正常模式 ,在这个模式中可正常接收和发送数据 。另一种是休眠模式 ,休眠模式可伴随着唤醒功能 ,如下图 。 其中 CAN_mode 在寄存器 CAN_LIN_MODE 中 。(监听指能监视总线 (CANL 和 CANH) 电平变化 ,但不能发送数据)


                                                                                        图 10 在 FS65 模式下的 CAN 模式

3.2 错误检测

3.2.1 TXD 显性超时

         如果 TXD 引脚在显性电平时间超过 tDOUT (0.8~5.0ms) ,则 TXD 驱动关闭 ,不影响 RXD 。此时 CAN_mode 是变为监听模式 ,在 DIAG_CAN_FD 会接收到相应的错误报告 。只有将 CAN_mode 重新设置为正常模式 ,并且 TXD 检测到高电平 ,设备才可以从这个错误中恢复 。注意该错误检测只有在正常模式和监听模式才有效 。

3.2.2 RXD 永久隐性

         如果在显性或接收周期中连续检测到 7 个高电平 (隐性电平) ,则 CAN 驱动和接收器关闭 ,此时进入监听模式 ,在 DIAG_CAN_FD 会接收到相应的错误报告 。注意该错误检测只有在正常模式和监听模式才有效 。

3.2.3 CAN 总线短路

         当 CANL 或 CANH (一对差分线上的信号) 短接到地或高电平时 ,只会将相应的检测结果报告给主状态机寄存器 ,不会关闭 CAN 驱动和接收器 。

         如果 CAN 总线 (CANL 和 CANH) 是显性的时间超过 tDOM (0.8~5.0ms) ,则在 DIAG_CAN_FD 会接收到相应的报告 ,但不会禁用总线驱动 。注意该错误检测只有在正常模式和监听模式才有效 。

3.2.4 CAN 电流限制

         当 CANL 和 CANH 电流限制在 100mA 及以下 ,这是为了预防短路 。

3.2.5 CAN 过温检测

         如果驱动温度超过 TSD (最小 160℃) ,则CAN 驱动关闭 ,CAN 接收器继续工作 ,此时进入监听模式 , 并在 DIAG_CAN_LIN 产生相应报告 。

         在过温之后 ,要 CAN 恢复正常模式 ,需要达到 :

  • CAN 模式为正常模式 。
  • 温度下降到一定程度 ,此时不会禁用 CAN 驱动 。
  • 在 TXD 引脚上检查到高电平 。

3.2.6 CAN 错误和诊断

         CAN 错误会产生中断 ,如下图所示 ,DIAG_CAN_FD 和 DIAG_CAN_LIN 两个寄存器的一些标志位分别代表诊断结果和 CAN 错误 。


                                                                                                 图 11 CAN 错误和诊断位

3.3 唤醒机制

         可以配置是否将 FS65 从低功耗中唤醒 。若是开启唤醒 ,则显性电平脉冲唤醒检测被开启 ,但是检测的脉冲需在 t3PTOX (120us 或 2.8ms ,取决于配置) 范围内 。

         CAN 唤醒必须在规定的时间范围内发出以下三个脉冲 :

  • 发出持续时间超过 t1PWU (0.5~3.5μs) 的显性电平
  • 接着发出持续时间超过 t3PWU (0.5~1μs) 的显性电平
  • 再发出持续时间超过 t3PWU (0.5~1μs) 的显性电平

                                                              图 12 多重脉冲唤醒

4. 参考资料

①  NXP 官网 :《MPC5744PRM》

下载链接 :

https://www.nxp.com/products/processors-and-microcontrollers/power-architecture/mpc55xx-5xxx-mcus/ultra-reliable-mpc57xx-mcus/ultra-reliable-mpc574xp-mcu-for-automotive-industrial-safety-applications:MPC574xP?tab=Documentation_Tab

②  NXP 官网 :《FS6500-4500》

下载链接 :

https://www.nxp.com/products/power-management/pmics-and-sbcs/safety-sbcs/grade-1-and-grade-0-safety-power-system-basis-chip-with-can-flexible-data-transceiver:FS6500?tab=Documentation_Tab&linkline=Data%20Sheet&fpsp=1

技术文档

类型标题档案
推广文件PDF版本

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论