电源管理芯片PMIC的安全策略

1.概述

PMIC作为系统的电源管理模块,其输入电压一般会比较高,为保证芯片自身的安全,PMIC芯片会有独立的安全域,和功能域完全隔离,拥有独立的电压和电流输入,独立的晶振模块,内部运行监控状态机,实时监控芯片的运行状况,保障芯片的安全和稳定运行,故障安全域需要满足QM、ASIL B或ASIL D级别的功能安全等级。

2.解决的问题

PMIC的安全域,主要作用是监控系统运行、系统故障恢复,系统运行中,随时可能出现过压、欠压、程序跑飞等各种问题,PMIC的安全域正是为了解决这些问题而发明的,当系统出现这些故障,要根据故障级别,执行对应的故障恢复策略。

下面以VR5510进行详细分析

3.VR5510安全域

3.1 系统框图

3.2 功能模块

1.初始化

VR5510在电源上电复位或从待机模式或深度睡眠模式唤醒后,RSTB引脚被释放,故障安全状态机将进入INIT_FS阶段,为各个寄存器写入值,进行初始化操作。为了确保在INIT_FS期间的写入过程的安全性,MCU必须对所有INIT_FS寄存器执行以下序列操作:

在FS_I_Register_A(DATA)中写入所需的数据,在FS_I_NOT_Register_A(DATA_NOT)中写入FS_I_Register_A数据的一位补码。

例如,如果FS_I_Register_A = 0xABCD,则必须将0x5432(0xABCD的一位补码)写入FS_I_NOT_Register_A。

也就是说,INIT_FS阶段,所有INIT_FS相关的寄存器,都存在寄存器和它的互补寄存器。

VR5510实时计算DATA XOR  DATA_NOT的异或结果。如果计算结果为真,则FS_STATES寄存器中的REG_CORRUPT位被设置为0。如果计算结果为假,则REG_CORRUPT位被设置为1。在INIT_FS阶段第一次有效的看门狗刷新而关闭后,REG_CORRUPT的监控立即激活。

INIT_FS必须在看门狗窗口超时之前通过第一次有效的看门狗刷新来关闭。窗口持续时间可以通过WD_INIT_TIMEOUT_OTP[1:0]位(CFG_2_OTP寄存器)进行编程。

在INIT_FS关闭后,可以通过设置FS_SAFE_IOS寄存器中的GOTO_INITFS位,从任何其他FS_state状态重新进入INIT_FS阶段。

2.看门狗

看门狗有Simple和Challenger两种类型,都是带有窗口的监控。窗口的第一部分被称为“CLOSED”窗口,而第二部分被称为“OPEN”窗口。

在“OPEN”窗口期间进行的正确看门狗响应被视为好的看门狗刷新。而坏的看门狗刷新则包括以下几种情况:在“OPEN”窗口期间进行的错误看门狗响应、在“OPEN”窗口期间没有进行任何看门狗刷新,或者在“CLOSED”窗口期间进行了正确的看门狗响应。

无论是好的还是坏的看门狗刷新之后,都会立即开始一个新的窗口周期,以确保微控制器(MCU)与带窗口的看门狗保持同步。

首次成功的看门狗刷新会关闭INIT_FS。看门狗窗口继续运行,MCU必须在看门狗窗口周期的“OPEN”窗口内刷新看门狗。看门狗窗口的持续时间可以通过FS_WD_WINDOW寄存器中的WD_WINDOW[3:0]位进行配置,范围从1毫秒到1024毫秒。新的看门狗窗口设置将在下一次看门狗刷新后生效。

看门狗窗口只能在INIT_FS阶段被禁用。一旦INIT_FS阶段关闭,看门狗禁用的操作才会生效。在INIT_FS阶段结束后,如果看门狗窗口被禁用,它将不再监控MCU的运行状态,将无法恢复MCU故障。

Simple看门狗使用了一个独特的种子值。微控制器(MCU)可以将自己的种子值发送到WD_SEED位字段(FS_WD_SEED寄存器)中,或者它可以使用默认值0x5AB2。这个种子值必须在OPEN看门狗窗口期间写入到WD_ANSWER位字段(FS_WD_ANSWER寄存器)中。当结果正确时,看门狗窗口会重新启动。如果结果不正确,WD错误计数器会增加,并且看门狗窗口也会重新启动。

在Simple看门狗配置中,不能将0xFFFF和0x0000的值写入WD_SEED。如果尝试写入0x0000或0xFFFF,则会报告通信错误。这是因为这些值可能被看门狗机制用作特殊标记或保留值,以防止意外的配置错误。因此,在配置Simple看门狗时,应确保使用有效的种子值,并遵循看门狗机制的规定来刷新看门狗,以确保系统的稳定运行。

Challenger看门狗是基于VR5510和微控制器(MCU)之间的问答交互机制。在INIT_FS阶段,VR5510使用线性反馈移位寄存器(LFSR)来生成一个16位的伪随机数。

MCU可以发送一个不同的LFSR种子,或者使用VR5510默认的LFSR值(0x5AB2)来执行一个预定义的计算。计算结果在OPEN看门狗窗口期间通过I2C接口发送,并由VR5510进行验证。当结果正确时,看门狗窗口会重新启动,并生成一个新的LFSR值。如果结果错误,WD错误计数器会增加,看门狗窗口会重新启动,但LFSR值不会改变。

在初始化阶段(INIT_FS),MCU发送LFSR的种子,或者使用VR5510生成的默认LFSR值(0x5AB2),该值存储在WD_SEED寄存器中。使用此LFSR,MCU根据以下公式执行一个简单的计算,并将结果发送到WD_ANSWER寄存器中。

通过这种方式,Challenger看门狗提供了一种比Simple看门狗更高级别的保护,可以防止未经授权的访问或篡改。如果MCU在OPEN窗口期间无法提供正确的答案,那么看门狗会认为系统可能出现了故障,并采取相应的恢复措施,如重启MCU。

看门狗错误策略适用于Challenger看门狗和Simple看门狗。设备中实现了看门狗错误计数器,用于过滤不正确的看门狗刷新。每次发生看门狗失败时,设备会将计数器增加2。每当看门狗被正确刷新时,错误计数器就会减少1。这一原则确保了循环的“OK/NOK”行为最终会收敛到故障检测上。

为了在应用中提供灵活性,在INIT_FS阶段,可以通过FS_I_WD_CFG寄存器中的WD_ERR_LIMIT[1:0]位字段来配置看门狗错误计数器的最大值。这样,开发者可以根据具体的应用场景和需求,设置合适的错误计数阈值,以便在检测到一定数量的错误后采取相应的恢复措施。

MCU故障恢复

当MCU通过其FCCU(故障捕获和纠正单元)引脚触发故障时,设备会激活FS0B引脚,并将看门狗窗口的持续时间自动转换为一个开放窗口状态,即在此期间不再受原有的占空比限制。这个开放窗口的持续时间在INIT_FS(故障安全初始化)阶段可以通过FS_WD_WINDOW寄存器中的WDW_RECOVERY[3:0]位字段进行配置。

3.FCCU监控

FCCU(故障捕获和纠正单元)的负责监测来自MCU的硬件故障。这些输入引脚可以按对配置,也可以作为单独独立的输入。一旦INIT_FS通过第一个有效的看门狗刷新信号关闭,FCCU的监测功能就会立即激活。

4.电压监视器

负责监测VCOREMON、HVLDO、VDDIO以及VMON1/2/3/4输入引脚上的过压和欠压情况。当这些引脚中任何发生过压时,相关的稳压器将被关闭,直到故障被清除。电压监测功能在FS_ENABLE=1时立即激活。故障发生时,会报告欠压(UV)和过压(OV)标志。

电压监视器能够实时地检测和处理电源供应中的异常情况,从而保护微控制器和其他敏感电路免受损坏。当检测到过压或欠压时,电压监视器可以通过关闭受影响的稳压器来防止进一步的损害,并等待故障被修复后再重新启用稳压器。同时,通过报告UV/OV标志,VR5510还可以向MCU提供关于电源状态的信息,以便MCU处理故障。

5.故障管理

R5510集成了一个可配置的故障错误计数器,用于统计与设备本身相关的故障数以及与外部事件相关的故障数,包括过压、欠压、FCCU、看门狗刷新错误。故障错误计数器具有两个输出值:中间值和最终值。中间值可以根据FS_I_FSSM寄存器中FLT_ERR_IMPACT[1:0]位字段的配置,用于强制激活FS0B(故障安全信号0)或生成RSTB(复位信号)脉冲。

当故障错误计数器记录到中间值时,系统可以根据FLT_ERR_IMPACT[1:0]的设置来决定是触发FS0B以启动故障安全机制,还是发送RSTB脉冲来复位系统。

在正常工作状态下,当FS0B和RSTB被释放时,如果VR5510的故障安全状态机检测到故障,则故障错误计数器会增加。如果未将故障配置为断言RSTB和FS0B,则不会增加故障错误计数器的值。在这种情况下,仅提供标志供微控制器(MCU)进行诊断。

6.引脚说明

三个安全输出引脚(PGOOD、RSTB、FS0B)在层次上被赋予了优先级,以确保系统能够安全地达到稳定状态。

PGOOD(电源良好)具有最高优先级(一级)。如果PGOOD被断言(即电源良好信号被激活),则RSTB和FS0B也会被断言。

RSTB(复位)具有次高优先级(二级)。如果RSTB被断言,FS0B也会被断言,但PGOOD可能不被断言。

FS0B(故障安全)具有最低优先级(三级)。如果FS0B被断言,RSTB和PGOOD可能不被断言。

STBY 引脚,可以在应用中连接到 MCU。STBY(待机)输入引脚的极性可以通过 STBY_POLARITY_OTP 位(CFG_DEVID_OTP 寄存器)进行配置,以选择是在待机模式下高电平有效/正常模式下低电平有效,还是在待机模式下低电平有效/正常模式下高电平有效。

STBY 功能通过 STBY_EN_OTP 位(CFG_2_OTP 寄存器)启用。

进入待机模式有两种可能的路径,这取决于 STBY_SAFE_DIS_OTP 位(CFG_2_OTP 寄存器)的设置:

标准路径:仅使用 STBY 引脚的电平变化。

安全路径:使用 I2C 请求(FS_SAFE_IOS 寄存器中的 STBY_REQ 位)以及 STBY 引脚的电平变化。

7.自测试

故障安全状态机包含一个逻辑内置自测试(LBIST),用于验证安全逻辑监控的正确功能。LBIST 在每次上电复位(POR)之后,或者在每次从待机模式唤醒后进行。如果 LBIST 失败,RSTB 和 PGOOD 会被释放,但 FS0B 会保持在低电平状态并且无法被释放。

故障安全状态机包括两个模拟内置自测试(ABIST),用于验证安全模拟监控的正确功能。

ABIST1 在每次上电复位(POR)之后,或者在每次从待机模式唤醒后自动执行。在 ABIST1 期间,要检查的稳压器的分配是通过 OTP(一次性可编程存储器)完成的。

ABIST2 是在 INIT_FS 阶段之后通过 I2C 使用 Vxxx_ABIST2 位(FS_I_ABIST2_CTRL 寄存器)来执行的。

如果 ABIST 失败(无论是 ABIST1 还是 ABIST2),RSTB 和 PGOOD 会被释放,但 FS0B 会保持在低电平状态并且无法被释放。这表示系统已进入故障安全状态,以防止在不安全条件下继续运行。

5.总结

本文对PMIC的安全策略进行了讲解,拿VR5510进行具体分析,其他PMIC芯片也是类似的原理。

本文的实操,已在github公开,需要深入研究的自取。
https://github.com/sydyg/Vehicle_Soft_Class.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/38834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL实战-4 | 深入浅出索引(上)(下)

什么是数据库索引,索引又是如何工作的呢? 一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下&…

试用笔记之-免费的汇通餐饮管理软件

首先下载免费的汇通餐饮管理软件: http://www.htsoft.com.cn/download/htcanyin.exe 安装后的图标 登录软件,默认没有密码 汇通餐饮管理软件主界面 汇通餐饮软件前台系统 点菜

使用 Java Swing 和 XChart 创建多种图表

在现代应用程序开发中,数据可视化是一个关键部分。本文将介绍如何使用 Java Swing 和 XChart 库创建各种类型的图表。XChart 是一个轻量级的图表库,支持多种类型的图表,非常适合在 Java 应用中进行快速的图表绘制。 1、环境配置 在开始之前&…

imx6ull/linux应用编程学习(7)在LCD上显示文字

在linux中,确实可以像裸机一样自己取模、自己写函数打点显示,但是效率很低,不能满足多文字显示,在Linux 系统中, 字体文件通常会放在/usr/share/fonts 目录下,有了字体文件之后,我们就不需要再对…

X86 +PC104+支持WinCE5.0,WinCE6.0,DOS,WinXP, QNX等操作系统,工业控制数据采集核心模块板卡定制

CPU 模块 是一款基于RDC 3306的SOM Express模块。RDC 3306这款X86架构的CPU是一款性能高、稳定性强的处理器。 它是一款灵活精巧的主板(尺寸为91.8mm68.6mm),可以灵活的运用于用户的底板,节约开发成本。模块的接插件使用插针形式…

人工智能在音乐创作中的双刃剑:创新与挑战

AI在创造还是毁掉音乐? 简介 最近一个月,轮番上线的音乐大模型,一举将素人生产音乐的门槛降到了最低,并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后,AI产品的版权归属于谁,创意产业要如何在AI的阴…

全网最全的TTS模型汇总,电商人、自媒体人狂喜

近日TTS语音模型在AI圈内热度不小,今天小编就来给大家做了个TTS模型汇总! GPT-SoVITS(AI 卖货主播大模型Streamer-Sales销冠用的TTS模型) 模型简介:支持英语、日语和中文,零样本文本到语音(TT…

Python UUID模块:深入理解与使用技巧

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Atom CMS v2.0 SQL 注入漏洞(CVE-2022-25488)

前言 CVE-2022-25488 是一个发现于 Telesquare SDT-CW3B1 设备中的命令注入漏洞。这一漏洞可以被未经认证的远程攻击者利用,通过特殊构造的 HTTP 请求在设备上执行任意命令。以下是关于该漏洞的详细信息: 漏洞详细信息 漏洞编号: CVE-2022-25488影响范…

沃尔核材:价值重估

当英伟达这个曾经的GPU行业龙头,伴随AI的发展成为AI芯片架构的供应商时,他就跳出了原本行业的竞争格局,曾经还能与之一战的超威半导体被远远甩在身后,成为宇宙第一公司。 这说的就是一家公司价值的重估。今天给大家聊的也是这样一…

Python层次密度聚类算法库之HDBSCAN使用详解

概要 HDBSCAN 是一种层次密度聚类算法,它通过密度连接性来构建聚类层次结构。与传统的 K-Means 算法相比,HDBSCAN 具有以下几个显著特点: 自动确定聚类数量:HDBSCAN 能够根据数据自动确定聚类数量,不需要预先指定。 适应噪声和异常点:HDBSCAN 在聚类过程中能够很好地处理…

后端之路(集合项目)——结合案例正式搭建项目

在前面学完java后端的Maven、spring boot、Mysql、Mybatis之后,我们现在就应该集合它们开始搭建一个项目试试手了 这里我还是跟着黑马程序员的步骤来走好每一步,也给各位讲清楚怎么弄 先看一下这个图,觉得太笼统不明白的话不着急&#xff0c…

Java面试题总结

Redis篇 什么是缓存穿透 ? 怎么解决 ? 缓存穿透是指查询一个不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况大概率是遭到了攻击。 解决方案有两种&…

Arthas实战(2)- OOM问题排查

一、 准备测试应用 新建一个 SpringBoot应用&#xff0c;写一段有 OOM bug 的代码&#xff1a; RestController RequestMapping public class JvmThreadController {List<TestWrapper> memoryList new ArrayList<>();GetMapping("/test")public Strin…

mov文件怎么转换成mp4格式?这四种转换方法超级好用!

mov文件怎么转换成mp4格式&#xff1f;在数字娱乐的世界中&#xff0c;你是否曾遇到过MOV格式的视频&#xff1f;也许&#xff0c;对于许多人来说&#xff0c;这并不是一个常见的格式&#xff0c;但这并非偶然&#xff0c;首先&#xff0c;我们来谈谈MOV的兼容性问题&#xff0…

使用python做飞机大战

代码地址: 点击跳转

不看测评盲买花了多少冤枉钱..测评希喂、爱立方、帕特看完不踩雷

主食冻在挑选主食冻干时&#xff0c;许多宠物主人都会感到头疼。尽管主食冻干相较于普通猫粮具有诸多优势&#xff0c;但其价格也相对高昂。这导致许多宠物主人担心高价购买的主食冻干可能营养价值并不理想。然而&#xff0c;在选择时&#xff0c;我们还需要考虑其他重要因素&a…

“穿越时空的机械奇观:记里鼓车的历史与科技探秘“

在人类文明的发展历程中&#xff0c;科技的创新与进步不仅仅推动了社会的进步&#xff0c;也为我们留下了丰富的文化遗产。记里鼓车&#xff0c;作为一种古老的里程计量工具&#xff0c;其历史地位和技术成就在科技史上具有重要的意义。本文将详细介绍记里鼓车的起源、结构原理…

这所985院校不保护一志愿,18人不合格被刷!西北农林科技大学计算机考研考情分析!

西北农林科技大学(Northwest A&F University)&#xff0c;简称“西农”或“西北农林”&#xff0c;始创于1934年&#xff0c;位于中华人民共和国陕西省杨凌示范区。1999年9月11日由同处杨凌的原西北农业大学、西北林学院、中国科学院水利部水土保持研究所、水利部西北水利科…