CN116340038A - 一种闪存的擦写掉电数据保护方法及装置 - Google Patents

一种闪存的擦写掉电数据保护方法及装置 Download PDF

Info

Publication number
CN116340038A
CN116340038A CN202310197478.7A CN202310197478A CN116340038A CN 116340038 A CN116340038 A CN 116340038A CN 202310197478 A CN202310197478 A CN 202310197478A CN 116340038 A CN116340038 A CN 116340038A
Authority
CN
China
Prior art keywords
flash memory
voltage
main control
control module
voltages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310197478.7A
Other languages
English (en)
Inventor
吴奔雷
梁毅宏
夏锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Xinzhilian Technology Co ltd
Original Assignee
Guangzhou Xinzhilian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Xinzhilian Technology Co ltd filed Critical Guangzhou Xinzhilian Technology Co ltd
Priority to CN202310197478.7A priority Critical patent/CN116340038A/zh
Publication of CN116340038A publication Critical patent/CN116340038A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种闪存的擦写掉电数据保护方法及装置,该方法包括:电压监测模块监测闪存的第一电压,电压监测模块确定第一电压是否小于预设电压阈值,当第一电压小于预设电压阈值时,电压监测模块将第一中断信号发送到主控模块,主控模块响应于第一中断信号,对闪存执行数据保护操作。可见,实施本发明能够在对闪存擦写过程中闪存异常掉电时,对闪存非擦写区域的数据进行保护的同时,可兼容更多的闪存型号,降低闪存非擦写区域数据被窜改的风险,降低对闪存自身的写保护功能要求,且通过中断的方式通知主控模块,提高了响应速度,进而提高了主控模块对闪存执行数据保护操作的精准性和效率。

Description

一种闪存的擦写掉电数据保护方法及装置
技术领域
本发明涉及存储芯片技术领域,尤其涉及一种闪存的擦写掉电数据保护方法及装置。
背景技术
目前,闪存芯片主要分为NOR闪存和NAND闪存,而由于NOR闪存支持芯片内执行功能,也即代码可以直接在NOR闪存上执行,无需拷贝到内存中执行,因此,NOR闪存被广泛搭载于嵌入式设备中,但是,实际应用中,在对NOR闪存进行擦写操作的过程中发生异常掉电时,闪存中的非目标擦写区域中存储的数据存在被篡改的风险。
目前,针对上述问题的解决方案主要是通过使用闪存自带的写保护功能,将闪存中用于存储固件代码的区域设置为保护区域来实现,这种方法的通用性较低,且需要依赖于闪存的写保护功能,适用范围较小。因此,提出一种能够不依赖于闪存的写保护功能,且在闪存芯片掉电时,有效保护闪存芯片中存储的数据的方法显得尤为重要。
发明内容
本发明提供了一种闪存的擦写掉电数据保护方法及装置,能够有利于降低对闪存自身的写保护功能的要求,可兼容更多型号的闪存,提高了对闪存掉电的响应速度,对读取到的电压进行过滤处理,减少了电压偶然性抖动导致误判的情况,提高了对闪存执行数据保护操作的准确性和可靠性,进而提高了主控模块对闪存执行数据保护操作的效率。
为了解决上述技术问题,本发明第一方面公开了一种闪存的擦写掉电数据保护方法,所述方法应用于闪存的擦写掉电数据保护装置中,所述数据保护装置包括电压监测模块和主控模块,所述方法包括:
所述电压监测模块监测闪存的第一电压,并确定所述第一电压是否小于预设电压阈值,所述预设电压阈值大于或等于最低电压,所述最低电压为保证所述闪存正常工作所需要的电压;
当所述第一电压小于所述预设电压阈值时,所述电压监测模块将第一中断信号发送到所述主控模块;
所述主控模块响应于所述第一中断信号,对所述闪存执行数据保护操作。
作为一种可选的实施方式,在本发明第一方面中,在所述电压监测模块监测所述闪存的第一电压之后,所述方法还包括:
所述电压监测模块将监测得到的所有所述第一电压进行存储;
所述主控模块响应于所述第一中断信号,对所述闪存执行数据保护操作,包括:
所述主控模块响应于所述第一中断信号,读取所述电压监测模块存储的所有所述第一电压,并对所有所述第一电压进行过滤处理,得到所有所述第一电压对应的第一过滤电压;
当所述第一过滤电压小于所述预设电压阈值时,所述主控模块执行所述的对所述闪存执行数据保护操作。
作为一种可选的实施方式,在本发明第一方面中,所述主控模块对所述闪存执行数据保护操作,包括:
所述主控模块判断所述闪存的HOLD引脚是否被复用;
当所述主控模块判断出所述闪存的HOLD引脚被复用时,所述主控模块将所述闪存的CS片选引脚和HOLD引脚拉低,以将所述闪存的状态设置为暂停状态;
当所述主控模块判断出所述闪存的HOLD引脚没有被复用时,所述主控模块将所述闪存的CS片选引脚拉高,停止对所述闪存的擦/写操作。
作为一种可选的实施方式,在本发明第一方面中,所述闪存为nor闪存,在所述主控模块对所述闪存执行数据保护操作之后,所述方法还包括:
所述主控模块检测是否使用所述闪存的芯片内执行功能,得到检测结果;
当所述检测结果表示所述主控模块没有使用所述闪存的芯片内执行功能时,所述主控模块配置所述电压监测模块为高阈值中断模式,其中,所述高阈值中断模式用于指示所述电压监测模块监测所述闪存的电压是否大于所述预设电压阈值;
所述电压监测模块在监测到所述闪存的电压大于所述预设电压阈值时向所述主控模块发送第二中断信号;
所述主控模块响应于所述第二中断信号,控制所述闪存恢复正常工作。
作为一种可选的实施方式,在本发明第一方面中,所述闪存为nor闪存,在所述主控模块对所述闪存执行数据保护操作之后,所述方法还包括:
所述主控模块检测是否使用所述闪存的芯片内执行功能,得到检测结果;
当所述检测结果表示所述主控模块使用所述闪存的芯片内执行功能时,所述主控模块采用轮询读取的方式读取所述电压监测模块的所有FIFO中存储的第二电压,所述第二电压是在所述主控模块对所述闪存执行数据保护操作之后监测到的电压;
当所述主控模块读取完毕所述电压监测模块的所有FIFO中存储的第二电压时,所述主控模块对所有所述第二电压进行过滤处理,得到所有所述第二电压对应的第二过滤电压;
当所述第二过滤电压大于所述预设电压阈值时,所述主控模块将所述闪存恢复正常工作;
当所述第二过滤电压小于所述预设电压阈值时,所述主控模块继续执行所述的采用轮询读取的方式读取所述电压监测模块的FIFO中存储的第二电压的操作。
作为一种可选的实施方式,在本发明第一方面中,在所述主控模块将所述闪存恢复正常工作之后,所述方法还包括:
所述主控模块向所述闪存发送reset指令,控制所述闪存执行非断电方式的reset操作;
在所述闪存执行完毕所述非断电方式的reset操作之后,所述主控模块从所述闪存中读取预设测试字段,所述预设测试字段包括所述闪存的设备ID;
当所述主控模块读取到所述预设测试字段时,所述主控模块控制所述闪存执行电压恢复后的正常工作;
当所述主控模块没有读取到所述预设测试字段时,所述主控模块配置电源管理模块,所述电源管理模块控制所述闪存执行断电方式的reset操作;
在所述闪存执行完毕所述断电方式的reset操作之后,所述主控模块控制所述闪存执行电压恢复后的正常工作。
作为一种可选的实施方式,在本发明第一方面中,所述过滤处理包括:
所述主控模块删除读取到的所有电压中的最大电压和最小电压;
所述主控模块对剩余的所有所述电压执行求平均值操作,得到目标过滤电压;
或者,所述主控模块将所述电压监测模块配置为轮询读取模式,并采用轮询读取的方式读取所述电压监测模块的所有FIFO中存储的电压;
当所述主控模块读取完毕所述电压监测模块的所有FIFO中存储的电压时,所述主控模块对所有所述电压进行检测,当在连续时间t内或连续m次内所述主控模块读取到的所述电压满足预设条件时,所述主控模块将第n次读取到的电压确定为目标过滤电压,所述预设条件用于表示所述电压均大于所述预设电压阈值或均小于所述预设电压阈值,n为自然数,且n大于m;
当在连续时间t内或连续m次内所述主控模块读取到的所述电压不满足预设条件时,所述主控模块对读取到的所有所述电压进行求平均值计算,得到所述目标过滤电压。
本发明第二方面公开了一种闪存的擦写掉电数据保护装置,所述装置包括电压监测模块和主控模块;
所述电压监测模块包括监测单元、确定单元以及第一发送单元,所述主控模块包括数据保护单元,其中:
所述监测单元,用于监测闪存的第一电压;
所述确定单元,用于确定所述第一电压是否小于预设电压阈值,所述预设电压阈值大于或等于最低电压,所述最低电压为保证所述闪存正常工作所需要的电压;
所述第一发送单元,用于当所述第一电压小于所述预设电压阈值时,将第一中断信号发送到所述数据保护单元;
所述数据保护单元,用于响应于所述第一中断信号,对所述闪存执行数据保护操作。
作为一种可选的实施方式,在本发明第二方面中,所述电压监测模块还包括存储单元,其中:
所述存储单元,用于将所述监测单元监测得到的所有所述第一电压进行存储;
所述数据保护单元响应于所述第一中断信号,对所述闪存执行数据保护操作的方式具体包括:
响应于所述第一中断信号,读取所述电压监测模块存储的所有所述第一电压,并对所有所述第一电压进行过滤处理,得到所有所述第一电压对应的第一过滤电压;
当所述第一过滤电压小于所述预设电压阈值时,所述数据保护单元执行所述的对所述闪存执行数据保护操作。
作为一种可选的实施方式,在本发明第二方面中,所述数据保护单元对所述闪存执行数据保护操作的方式具体包括:
判断所述闪存的HOLD引脚是否被复用;
当判断出所述闪存的HOLD引脚被复用时,将所述闪存的CS片选引脚和HOLD引脚拉低,以将所述闪存的状态设置为暂停状态;
当判断出所述闪存的HOLD引脚没有被复用时,将所述闪存的CS片选引脚拉高,停止对所述闪存的擦/写操作。
作为一种可选的实施方式,在本发明第二方面中,所述闪存为nor闪存,所述主控模块还包括第一检测单元、配置单元以及第一恢复单元,其中:
所述第一检测单元,用于在所述数据保护单元对所述闪存执行数据保护操作之后,检测是否使用所述闪存的芯片内执行功能,得到检测结果;
所述配置单元,用于当所述检测结果表示没有使用所述闪存的芯片内执行功能时,配置所述电压监测模块为高阈值中断模式,其中,所述高阈值中断模式用于指示所述监测单元监测所述闪存的电压是否大于所述预设电压阈值;
所述第一发送单元,还用于在所述监测单元监测到所述闪存的电压大于所述预设电压阈值时向所述主控模块发送第二中断信号;
所述第一恢复单元,用于响应于所述第二中断信号,控制所述闪存恢复正常工作。
作为一种可选的实施方式,在本发明第二方面中,所述闪存为nor闪存,所述主控模块还包括第二检测单元、第一读取单元、过滤单元以及第二恢复单元,其中:
所述第二检测单元,用于在所述数据保护单元对所述闪存执行数据保护操作之后,检测是否使用所述闪存的芯片内执行功能,得到检测结果;
所述第一读取单元,用于当所述检测结果表示使用所述闪存的芯片内执行功能时,采用轮询读取的方式读取所述电压监测模块的所有FIFO中存储的第二电压,所述第二电压是在所述主控模块对所述闪存执行数据保护操作之后监测到的电压;
所述过滤单元,用于当所述第一读取单元读取完毕所述电压监测模块的所有FIFO中存储的第二电压时,对所有所述第二电压进行过滤处理,得到所有所述第二电压对应的第二过滤电压;
所述第二恢复单元,用于当所述第二过滤电压大于所述预设电压阈值时,将所述闪存恢复正常工作;
所述第一读取单元,用于当所述第二过滤电压小于所述预设电压阈值时,继续执行所述的采用轮询读取的方式读取所述电压监测模块的FIFO中存储的第二电压的操作。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括电源管理模块;
所述主控模块还包括第二发送单元以及第二读取单元,其中:
所述第二发送单元,用于在所述第一恢复单元将所述闪存恢复正常工作之后,向所述闪存发送reset指令,控制所述闪存执行非断电方式的reset操作;
所述第二读取单元,用于在所述闪存执行完毕所述非断电方式的reset操作之后,从所述闪存中读取预设测试字段,所述预设测试字段包括所述闪存的设备ID;
所述第一恢复单元,还用于在所述第二读取单元读取到所述预设测试字段时,控制所述闪存执行电压恢复后的正常工作;
所述配置单元,还用于当所述第二读取单元没有读取到所述预设测试字段时,配置电源管理模块,所述电源管理模块控制所述闪存执行断电方式的reset操作;
所述第一恢复单元,还用于在所述闪存执行完毕所述断电方式的reset操作之后,控制所述闪存执行电压恢复后的正常工作。
作为一种可选的实施方式,在本发明第二方面中,所述过滤处理的方式具体包括:
所述主控模块删除读取到的所有电压中的最大电压和最小电压;
所述主控模块对剩余的所有所述电压执行求平均值操作,得到目标过滤电压;
或者,所述主控模块将所述电压监测模块配置为轮询读取模式,并采用轮询读取的方式读取所述电压监测模块的所有FIFO中存储的电压;
当所述主控模块读取完毕所述电压监测模块的所有FIFO中存储的电压时,所述主控模块对所有所述电压进行检测,当在连续时间t内或连续m次内所述主控模块读取到的所述电压满足预设条件时,所述主控模块将第n次读取到的电压确定为目标过滤电压,所述预设条件用于表示所述电压均大于所述预设电压阈值或均小于所述预设电压阈值,n为自然数,且n大于m;
当在连续时间t内或连续m次内所述主控模块读取到的所述电压不满足预设条件时,所述主控模块对读取到的所有所述电压进行求平均值计算,得到所述目标过滤电压。
本发明第三方面公开了另一种闪存的擦写掉电数据保护装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的闪存的擦写掉电数据保护方法。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的闪存的擦写掉电数据保护方法。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,电压监测模块监测闪存的第一电压,电压监测模块确定第一电压是否小于预设电压阈值,当第一电压小于预设电压阈值时,电压监测模块将第一中断信号发送到主控模块,主控模块响应于第一中断信号,对闪存执行数据保护操作。
可见,实施本发明能够在对闪存擦写过程中闪存异常掉电时,对闪存非擦写区域的数据进行保护的同时,可兼容更多的闪存型号,降低闪存非擦写区域数据被窜改的风险。实施本发明能够通过引入电压监测模块,提高了本方法的适用范围,且本方法不依赖于闪存自身的写保护功能,对闪存芯片自身无特殊功能要求,软件程序只需依据不同型号的闪存配置不同的预设电压阈值,即可达到对闪存的擦写掉电数据保护的功能,因此本方法可兼容更多型号的闪存。
采用通用SAR型ADC作为电压监测模块,适用性更广,成本更低,方案风险更小。通过电压监测模块触发中断的方式通知主控模块闪存的电压情况,提高了系统的整体响应速度,进而提高了主控模块对闪存执行数据保护操作的精准性和效率,且本方法中的电压监测模块采用通用的逐次逼近型ADC模块对闪存进行电压监测,在硬件方案上可以直接使用SOC自带的ADC模块,结合本方法即可完成闪存关键数据的擦写时掉电保护,提高了整体适应性,且在不额外增加硬件设计的情况下,有效降低该方法的适用成本。
支持PMU断电机制,保证Flash在异常无法恢复时可进行断电reset,鲁棒性更强。本方法采用可编程PMU对闪存的供电电源进行管控,在某些型号的闪存进入异常状态后,即使电压恢复且退出停止模式,也无法接收指令恢复正常工作的情况下,主控模块可配置PMU让闪存进行断电方式的复位,保证电压恢复后,闪存正常工作,提高了系统整体鲁棒性和可靠性。
支持监测电压抖动检测,可靠性更高。能够在闪存电压异常或电压恢复时,通过多种过滤处理方法对闪存的电压进行过滤处理或二次检测处理,减少了电压偶然性抖动导致误检测的情况,同时保证了得到的目标过滤电压的准确性和可靠性,提高了对闪存执行数据保护操作的准确性和可靠性,进而提高了主控模块对闪存执行数据保护操作的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种闪存的擦写掉电数据保护方法的整体框架图;
图2是本发明实施例公开的一种闪存的擦写掉电数据保护方法的流程示意图;
图3是本发明实施例公开的一种电压监测模块示例图;
图4是本发明实施例公开的另一种闪存的擦写掉电数据保护方法的流程示意图;
图5是本发明实施例公开的一种中位平均值滤波法的流程示意图;
图6是本发明实施例公开的一种主控轮询读取法的流程示意图;
图7是本发明实施例公开的一种主控延时读取法的流程示意图;
图8是本发明实施例公开的一种主控系统初始化的流程示意图;
图9是本发明实施例公开的一种电压监测模块初始化的流程示意图;
图10是本发明实施例公开的一种电压监测模块的中断响应流程图;
图11是本发明实施例公开的一种闪存的擦写掉电数据保护装置的结构示意图;
图12是本发明实施例公开的另一种闪存的擦写掉电数据保护装置的结构示意图;
图13是本发明实施例公开的又一种闪存的擦写掉电数据保护装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种闪存的擦写掉电数据保护方法及装置,能够降低对闪存自身的写保护功能要求,可兼容更多型号的闪存,且通过中断的方式通知主控模块,提高了响应速度,进而提高了主控模块对闪存执行数据保护操作的精准性和效率。以下分别进行详细说明。
为了更好的理解本发明所描述的闪存的擦写掉电数据保护方法及装置,首先对本发明中涉及到的各设备的整体组成框架进行描述,具体的,各设备的整体组成框架对应的整体框架图可以如图1所示,图1为本发明实施例公开的一种整体框架图。如图1所示,该整体框架图包括主控、NOR Flash(闪存)、电源管理模块(Power Management Unit,PMU)、电压监测模块、电源1以及电源2。其中,电源管理模块由电源1供电,电源管理模块为主控和闪存供电,主控可通过编程配置电源管理模块,进而通过电源管理模块控制电源1对闪存的供电开闭,主控还可以通过指令交互的方式以实现对闪存的擦、写和读操作;电压监测模块由电源2提供独立的供电支撑,且电压监测模块独立于主控,电压监测模块可以根据主控配置的电压阈值监测闪存的电压情况。
需要说明的是,图1所示的整体框架图只是为了体现本发明中涉及到的各设备的整体组成框架结构,涉及到的主控、NOR Flash(闪存)、电源管理模块、电压监测模块、电源1以及电源2也只是示意性展示,图1所示的整体框架图对此不做限定。且以上对本发明实施例公开的一种整体框架图做了描述,下面对闪存的擦写掉电数据保护方法及装置进行详细的描述。
实施例一
请参阅图2,图2是本发明实施例公开的一种闪存的擦写掉电数据保护方法的流程示意图。其中,图2所描述的闪存的擦写掉电数据保护方法可以应用于闪存的擦写掉电数据保护装置中,本发明实施例不做限定。如图2所示,该闪存的擦写掉电数据保护方法可以包括以下操作:
101、电压监测模块监测闪存的第一电压。
本发明实施例中,可选的,电压监测模块可以根据预设电压阈值对闪存的电压进行监测,当闪存的电压小于预设电压阈值时,电压监测模块会通知主控模块停止对闪存的擦/写操作,并暂停闪存,当闪存的电压恢复且大于预设电压阈值时,电压监测模块会通知主控模块恢复对闪存的正常操作,本发明不做限定。
本发明实施例中,可选的,电压监测模块可以为逐次逼近(SuccessiveApproximation Register,SAR)型ADC硬件模块,以12位分辨率和10位有效SAR型ADC硬件模块为例,如图3所示,图3为本发明公开的一种ADC电压监测模块示意图,其中,通过Adcmux<3:0>选择使用的采样通道,通过Mode<2:0>配置参考电压与监测电压范围,进一步的,电压监测模块可以为独立于主控的外接ADC硬件模块,也可以为主控自带的硬件模块,本发明不做限定。
102、电压监测模块确定第一电压是否小于预设电压阈值。
本发明实施例中,可选的,预设电压阈值可以是由主控模块根据闪存的型号配置的,预设电压阈值大于或等于最低电压,其中,最低电压为保证闪存正常工作所需的电压,以Vcc为3.3V正常供电的闪存为例,其正常工作电压约为0.7*Vcc-1*Vcc(约2.31V-3.30V),停止工作电压一般为0.3Vcc(约0.99V)以下,其中,当闪存的电压处于0.3*Vcc-0.7Vcc(约0.99V-2.31V)时,闪存处于异常工作状态,此时会有概率出现闪存内部数据损坏的情况,因此预设电压阈值大于或等于最低电压,且小于最高电压,即预设电压阈值大于或等于0.7*Vcc(约2.31V),且小于1*Vcc(约3.30V),具体的,预设电压阈值可以为0.7*Vcc,也可以为0.8*Vcc,本发明不做限定。
103、当第一电压小于预设电压阈值时,电压监测模块将第一中断信号发送到主控模块。
本发明实施例中,可选的,第一电压可以是某一时刻的瞬时电压,也可以是某一时间段内的连续电压,第一中断信号可以包括第一电压对应的电压值,还可以包括通知主控模块闪存掉电的预设指令,本发明不做限定。
104、主控模块响应于第一中断信号,对闪存执行数据保护操作。
本发明实施例中,可选的,数据保护操作可以包括制止主控模块向闪存发出操作命令或让闪存进入暂停状态实现,本发明不做限定。
可见,实施图2所描述的闪存的擦写掉电数据保护方法能够通过电压监测模块检测闪存的第一电压,并确定第一电压是否小于预设电压阈值,在电压监测模块判断出闪存的第一电压小于预设电压阈值时,将第一中断信号发送到主控模块,主控模块响应于第一中断信号,对闪存执行数据保护操作,通过引入电压监测模块,提高了本方法的适用范围,且本方法不依赖于闪存自身的写保护功能,对闪存芯片自身无特殊功能要求,软件程序只需依据不同型号的闪存配置不同的预设电压阈值,即可达到对闪存的擦写掉电数据保护的功能,因此本方法可兼容更多型号的闪存,通过电压监测模块触发中断的方式通知主控模块闪存的电压情况,提高了系统的整体响应速度,进而提高了主控模块对闪存执行数据保护操作的精准性和效率,且本方法中的电压监测模块采用通用的逐次逼近型ADC模块对闪存进行电压监测,在硬件方案上可以直接使用SOC自带的ADC模块,结合本方法即可完成闪存关键数据的擦写时掉电保护,提高了整体适应性,且在不额外增加硬件设计的情况下,有效降低该方法的适用成本。
在一个可选的实施例中,主控模块对闪存执行数据保护操作可以包括以下操作:
主控模块判断闪存的HOLD引脚是否被复用;
当主控模块判断出闪存的HOLD引脚被复用时,主控模块将闪存的CS片选引脚和HOLD引脚拉低,以将闪存的状态设置为暂停状态;
当主控模块判断出闪存的HOLD引脚没有被复用时,主控模块将闪存的CS片选引脚拉高,停止对闪存的擦/写操作。
该可选的实施例中,可选的,当闪存的HOLD引脚被复用时,主控模块将闪存的CS片选引脚和HOLD引脚拉低,此时闪存可以被主控模块选中,主控模块可以向闪存发送擦/写指令,但是闪存的状态被设置为暂停状态,闪存不响应主控模块发出的擦/写指令,当闪存的HOLD引脚没有被复用时,闪存未进入暂停状态,此时主控模块将闪存的CS片选引脚拉高,使得主控模块无法选中闪存,即主控模块无法向闪存发送擦/写指令,进一步可选的,本实施例中闪存的CS片选引脚和HOLD引脚都是低电平有效,即将闪存的引脚拉低表示使能,拉高表示失能,本实施例不做限定。
可见,实施该可选的实施例能够通过判断闪存的HOLD引脚的复用情况以确定对闪存的引脚执行相对应的控制操作,达到对闪存中的数据进行保护的效果,能够提高主控模块对闪存引脚操作的准确性和可靠性,进而提高对闪存中的数据进行保护的精准性和可靠性。
在另一个可选的实施例中,闪存为nor闪存,在主控模块对闪存执行数据保护操作之后,该闪存的擦写掉电数据保护方法还可以包括:
主控模块检测是否使用闪存的芯片内执行功能,得到检测结果;
当检测结果表示主控模块没有使用闪存的芯片内执行功能时,主控模块配置电压监测模块为高阈值中断模式,其中,高阈值中断模式用于指示电压监测模块监测闪存的电压是否大于预设电压阈值;
电压监测模块在监测到闪存的电压大于预设电压阈值时向主控模块发送第二中断信号;
主控模块响应于第二中断信号,控制闪存恢复正常工作。
该可选的实施例中,可选的,当主控模块没有使用闪存的芯片内执行(Execute InPlace,XIP)功能时,闪存又已进入暂停状态,此时主控模块对闪存的擦/写指令会被闪存忽视,此时允许主控模块去执行其他程序,主控模块将电压监测模块配置为高阈值中断模式,并使能电压监测模块,电压监测模块持续监测闪存的电压,在闪存的电压恢复且大于预设电压阈值时,触发高阈值中断,即向主控模块发送第二中断信号,主控模块响应于第二中断信号,控制闪存恢复其正常工作,本实施例不做限定。
该可选的实施例中,可选的,当闪存的HOLD引脚被复用时,主控模块将闪存恢复正常工作的方式为主控模块将闪存的HOLD引脚拉高,当闪存的HOLD引脚没有被复用时,主控模块将闪存恢复正常工作的方式为主控模块将闪存的CS片选引脚拉低,本实施例不做限定。
可见,实施该可选的实施例能够检测是否使用闪存的芯片内执行功能,并在主控模块没有使用闪存的芯片内执行功能时,主控模块配置电压监测模块为高阈值中断模式,电压监测模块在监测到闪存的电压大于预设电压阈值时向主控模块发送第二中断信号,主控模块响应于第二中断信号,控制闪存恢复正常工作,能够在主控模块没有使用闪存的芯片内执行功能时,采用中断策略监测闪存的电压恢复情况,提高了主控模块和电压监测模块的工作效率,进而提高了对闪存电压恢复的监测效率和判断效率。
在又一个可选的实施例中,闪存为nor闪存,在主控模块对闪存执行数据保护操作之后,该闪存的擦写掉电数据保护方法还可以包括:
主控模块检测是否使用闪存的芯片内执行功能,得到检测结果;
当检测结果表示主控模块使用闪存的芯片内执行功能时,主控模块采用轮询读取的方式读取电压监测模块的所有FIFO中存储的第二电压,第二电压是在主控模块对闪存执行数据保护操作之后监测到的电压;
当主控模块读取完毕电压监测模块的所有FIFO中存储的第二电压时,主控模块对所有第二电压进行过滤处理,得到所有第二电压对应的第二过滤电压;
当第二过滤电压大于预设电压阈值时,主控模块将闪存恢复正常工作;
当第二过滤电压小于预设电压阈值时,主控模块继续执行的采用轮询读取的方式读取电压监测模块的FIFO中存储的第二电压的操作。
该可选的实施例中,可选的,电压监测模块中可以包含多个FIFO(First InputFirst Output,一种先进先出的数据缓存器),本实施例以电压监测模块包含32个FIFO为例进行说明,当主控模块使用闪存的芯片内执行功能时,主控模块取消电压监测模块的中断模式,并配置电压监测模块为Poll轮询读取模式,可选的,当主控模块读取完毕电压监测模块的32个FIFO时,对所有第二电压进行过滤处理的方法可以是均值法,即求出所有第二电压对应的均值电压,进一步可选的,对所有第二电压进行过滤处理可以包括单次过滤处理,也可以包括过滤处理以及多次检测操作,例如对过滤后的电压进行二次检测,本实施例不做限定。
该可选的实施例中,可选的,当第二过滤电压大于预设电压阈值时,可以将电压监测模块的中断关闭,并失能电压监测模块,当闪存的HOLD引脚被复用时,主控模块将闪存恢复正常工作的方式为主控模块将闪存的HOLD引脚拉高,当闪存的HOLD引脚没有被复用时,主控模块将闪存恢复正常工作的方式为主控模块将闪存的CS片选引脚拉低,本实施例不做限定。
可见,实施该可选的实施例能够在主控模块使用闪存的芯片内执行功能时,读取电压监测模块的所有FIFO中存储的第二电压,并对所有第二电压进行过滤处理,根据处理结果判断闪存的电压是否恢复到工作电压,能够提高判断闪存电压是否恢复到正常工作电压的精准性和可靠性,同时对读取到的第二电压进行过滤处理,能够降低电压抖动造成误判的几率,进一步提高整体可靠性。
在又一个可选的实施例中,在主控模块将闪存恢复正常工作之后,该闪存的擦写掉电数据保护方法还可以包括:
主控模块向闪存发送reset指令,控制闪存执行非断电方式的reset操作;
在闪存执行完毕非断电方式的reset操作之后,主控模块从闪存中读取预设测试字段,预设测试字段包括闪存的设备ID;
当主控模块读取到预设测试字段时,主控模块控制闪存执行电压恢复后的正常工作;
当主控模块没有读取到预设测试字段时,主控模块配置电源管理模块,电源管理模块控制闪存执行断电方式的reset操作;
在闪存执行完毕断电方式的reset操作之后,主控模块控制闪存执行电压恢复后的正常工作。
该可选的实施例中,可选的,主控模块可以通过向闪存发送指令的方式去读取闪存中的预设测试字段,预设测试字段可以为闪存自带的预设出厂参数,如闪存的设备ID、出厂编号等,也可以为人工预存的特殊字段,如用于识别闪存的二进制编码等,本实施例不做限定。
该可选的实施例中,可选的,主控模块可对电源管理模块进行预编程配置,通过电源管理模块控制闪存的供电开闭,当主控模块没有读取到预设测试字段时,电源管理模块将闪存进行断电方式的reset,主控模块调用系统的Watch Dog Reset(看门狗复位),将闪存系统整体复位,本实施例不做限定。
可见,实施该可选的实施例能够向闪存发送reset指令,控制闪存执行非断电方式的reset操作,并通过读取闪存中预设测试字段以验证闪存是否恢复正常工作,提高了闪存恢复正常工作的可靠性,当主控模块没有读取到预设测试字段时,主控模块配置电源管理模块,电源管理模块控制闪存执行断电方式的reset操作,且本方法采用可编程PMU对闪存的供电电源进行管控,在某些型号的闪存进入异常状态后,即使电压恢复且退出停止模式,也无法接收指令恢复正常工作的情况下,主控模块可配置PMU让闪存进行断电方式的复位,保证电压恢复后,闪存正常工作,提高了系统整体鲁棒性和可靠性。
实施例二
请参阅图4,图4是本发明实施例公开的另一种闪存的擦写掉电数据保护方法的流程示意图。其中,图4所描述的闪存的擦写掉电数据保护方法可以应用于闪存的擦写掉电数据保护装置中,本发明实施例不做限定。如图4所示,该闪存的擦写掉电数据保护方法可以包括以下操作:
201、电压监测模块监测闪存的第一电压。
202、电压监测模块将监测得到的所有第一电压进行存储。
本发明实施例中,可选的,电压监测模块将所有第一电压存储到电压监测模块的FIFO中,电压监测模块中可以包含多个FIFO,本实施例以电压监测模块包含32个FIFO为例进行说明,本发明不做限定。
203、电压监测模块确定第一电压是否小于预设电压阈值
204、当第一电压小于预设电压阈值时,电压监测模块将第一中断信号发送到主控模块。
本发明实施例中,针对步骤201、步骤203和步骤204的其他描述,请参照实施例一中针对步骤101-步骤103的详细描述,本发明实施例不再赘述。
205、主控模块响应于第一中断信号,读取电压监测模块存储的所有第一电压,并对所有第一电压进行过滤处理,得到所有第一电压对应的第一过滤电压。
本发明实施例中,可选的,主控模块根据第一中断信号,检查电压监测模块(以SAR型ADC硬件模块为例)的中断模式是否为低阈值中断,当ADC模块的中断模式为低阈值中断时,主控模块从电压监测模块的所有FIFO中读取所有第一电压,对所有第一电压的过滤处理操作可以包括初步过滤操作和二次校验操作,还可以包括多次校验操作,本发明不做限定。
206、当第一过滤电压小于预设电压阈值时,主控模块执行对闪存执行数据保护操作。
本发明实施例中,可选的,预设电压阈值可以是由主控模块根据闪存的型号配置的,预设电压阈值大于或等于最低电压,其中,最低电压为保证闪存正常工作所需的电压,以Vcc为3.3V正常供电的闪存为例,其正常工作电压约为0.7*Vcc-1*Vcc(约2.31V-3.30V),停止工作电压一般为0.3Vcc(约0.99V)以下,其中,当闪存的电压处于0.3*Vcc-0.7Vcc(约0.99V-2.31V)时,闪存处于异常工作状态,此时会有概率出现闪存内部数据损坏的情况,因此预设电压阈值大于或等于最低电压,且小于最高电压,即预设电压阈值大于或等于0.7*Vcc(约2.31V),且小于1*Vcc(约3.30V),具体的,预设电压阈值可以为0.7*Vcc,也可以为0.8*Vcc,本发明不做限定。
本发明实施例中,可选的,数据保护操作可以包括制止主控模块向闪存发出操作命令或让闪存进入暂停状态实现,本发明不做限定。
可见,实施图4所描述的闪存的擦写掉电数据保护方法能够在电压监测模块判断出闪存的第一电压小于预设电压阈值时,将第一中断信号发送到主控模块,主控模块响应于第一中断信号,读取电压监测模块存储的所有第一电压,并对所有第一电压进行过滤处理,得到第一过滤电压,当第一过滤电压小于预设电压阈值时,主控模块执行对闪存执行数据保护操作,对闪存自身的写保护功能要求低,可兼容更多型号的闪存,且通过中断的方式通知主控模块,提高了响应速度,对读取到的电压进行过滤处理,减少了因电压偶然性抖动导致误判的情况,提高了对闪存执行数据保护操作的准确性和可靠性,进而提高了主控模块对闪存执行数据保护操作的效率。
在一个可选的实施例中,过滤处理可以包括以下操作:
主控模块删除读取到的所有电压中的最大电压和最小电压;
主控模块对剩余的所有电压执行求平均值操作,得到目标过滤电压;
或者,主控模块将电压监测模块配置为轮询读取模式,并采用轮询读取的方式读取电压监测模块的所有FIFO中存储的电压;
当主控模块读取完毕电压监测模块的所有FIFO中存储的电压时,主控模块对所有电压进行检测,当在连续时间t内或连续m次内主控模块读取到的电压满足预设条件时,主控模块将第n次读取到的电压确定为目标过滤电压,预设条件用于表示电压均大于预设电压阈值或均小于预设电压阈值,n为自然数,且n大于m;
当在连续时间t内或连续m次内主控模块读取到的电压不满足预设条件时,主控模块对读取到的所有电压进行求平均值计算,得到目标过滤电压。
该可选的实施例中,可选的,过滤处理可以包括对电压数据的过滤操作和/或二次检测操作,过滤处理的方法可以包括中位平均值滤波法、主控轮询读取法和主控延迟读取法,具体的,若电压监测模块的采样频率足够快,能够保证主控模块收到中断信号后电压监测模块的FIFO中的数据均为电压异常后的转换值时,可以采用中位平均值滤波法,中位平均值滤波法可以如图5所示,以电压监测模块中包含32个FIFO,且以ADC模块为电压监测模块为例,主控模块从ADC模块的FIFO中获取32个电压监测数据,并存入本地数组array,主控模块计算找到array数组中的最大值valuemax并将其剔除,主控模块计算找到array数组中的最小值valuemin并将其剔除,主控模块将剩余的采样数据进行求平均只计算,得到目标过滤电压valueout,进一步的,目标过滤电压可以是滤波结果,也可以是供主控进行电压异常二次检测的中间结果,本实施例不做限定。
该可选的实施例中,可选的,电压监测模块的采样频率不够快,且电压监测模块的FIFO中的数据有可能为闪存电压异常前的数据时,可以采用主控轮询读取法或主控延迟读取法,主控轮询读取法可以如图6所示,主控模块将ADC模块配置为Poll轮询读取模式,主控模块轮询读取n次ADC模块中当前最新的电压监测值valuecnt,并将读取到的valuecnt依次存入本地数组array中,主控模块检测是否在连续时间t内或连续m次的读取数值均满足预设条件,其中,预设条件表示连续时间t内或连续m次的读取数值均异常(即均大于预设电压阈值或均小于预设电压阈值),若满足,则将最后一次的读取结果作为目标过滤电压valueout,若不满足,则对数组array中的数据进行求平均值计算,得到目标过滤电压valueout,进一步的,目标过滤电压可以是滤波结果,也可以是供主控进行电压异常二次检测的中间结果,本实施例不做限定。
该可选的实施例中,可选的,主控延迟读取法可以如图7所示,主控模块将ADC模块配置为Poll轮询读取模式,主控模块配置延迟读取时长tdelay、二次测量次数x和异常次数阈值y,主控模块延时tdelay后读取ADC模块中最新电压监测值,记录当前测量次数,并将读取结果存入本地数组array中,主控模块判断是否连续y次读取到的电压数值均满足预设条件,其中,预设条件表示连续时间t内或连续m次的读取数值均异常(即均大于预设电压阈值或均小于预设电压阈值),若满足,则将当前最后一次读取到的电压数值作为目标过滤电压valueout,若不满足,则检查读取次数是否达到测量次数n,当读取次数达到测量次数n时,对数组array中的数据进行求平均值计算,得到目标过滤电压valueout,然后还原ADC硬件配置,进一步的,目标过滤电压可以是滤波结果,也可以是供主控进行电压异常二次检测的中间结果,本实施例不做限定。
可见,实施该可选的实施例能够在闪存电压异常或电压恢复时,通过多种过滤处理方法对闪存的电压进行过滤处理或二次检测处理,减少了电压偶然性抖动导致误检测的情况,同时保证了得到的目标过滤电压的准确性和可靠性,提高了对闪存执行数据保护操作的准确性和可靠性,进而提高了主控模块对闪存执行数据保护操作的效率。
在另一个可选的实施例中,如图8所示,对主控模块的初始化可以包括以下操作:
系统上电运行,首先检查闪存是否使用四线模式,若闪存使用四线模式,则从闪存的本地状态寄存器中获取QE位值,计算并保存闪存当前的HOLD引脚复用状态;
主控模块初始化失能电压监测模块,依据闪存的型号为电压监测模块配置预设电压阈值,电压监测模块开始对闪存的电压进行监测。
可见,实施图8所示的实施例可以在主控模式初始化时保存闪存的HOLD引脚复用状态,以供后续判断闪存的HOLD引脚是否被复用,且根据闪存型号配置预设电压阈值,提高了对闪存掉电情况判断的精准性,进而提高了对闪存的数据进行保护的效率。
在又一个可选的实施例中,如图9所示,主控模块对电压监测模块的初始化可以包括以下操作:
主控模块配置电压监测模块为连续工作模式,对闪存的工作电压进行连续监测;
主控模块配置硬件延迟参数并进行电压监测模块通道选择;
主控模块配置电压监测模块为中断低阈值触发模式,并配置闪存对应的预设电压阈值,当闪存的工作电压低于预设电压阈值时,电压监测模块会触发中断给主控模块;
主控模块配置电压监测模块为FIFO缓存工作模式,将数模转换后的数据依次存入FIFO;
主控模块配置电压监测模块的模块参考电压,并使能需要使用的电压监测模块的通道;
主控模块配置使能电压监测模块对应通道下的中断回调,并使能电压监测模块,启动对闪存电压的监测。
可见,实施图9所示的实施例能够在配置电压监测模块时根据需求对相应的通道以及通道回调进行配置,能够提高电压电测模块的工作效率,进而提高了对闪存的数据进行保护的效率。
在又一个可选的实施例中,如图10所示,电压监测模块的中断响应流程可以包括以下操作:
电压监测模块(ADC模块)触发中断后,主控模块判断中断模式,当中断模式为低于阈值中断时,主控模块复读FIFO中的数据,并对数据进行过滤处理,获取过滤后的监测电压;
对过滤后的监测电压进行二次检测,当监测电压正常时,不对闪存进行处理,退出中断,当监测电压异常时,关闭ADC中断,使能ADC模块,主控模块判断闪存的HOLD引脚是否被复用,当闪存的HOLD引脚被复用时,主控模块将闪存的CS和HOLD引脚拉低,使闪存进入暂停状态,并判断系统是否会使用闪存的XIP功能;
当系统没有使用闪存的XIP功能时,重新配置ADC模块为高于阈值终端检测,打开ADC模块中断,使能ADC模块,等待闪存电压恢复产生ADC高阈值中断;
当系统使用闪存的XIP功能时,取消ADC模块的中断模式,且当闪存的HOLD引脚没有被复用时,直接执行取消ADC模块的中断模式的操作;
主控模块配置切换ADC模块为Poll模式,主控模块轮询读取ADC检测电压值,当读完全部FIFO时,对检测电压值进行中位平均滤波,当没有读完全部FIFO时,继续执行主控模块轮询读取ADC检测电压值的操作;
通过滤波结果判断闪存电压是否恢复,当闪存电压没有恢复时,继续执行主控模块轮询读取ADC检测电压值的操作,当闪存电压恢复时,主控模块将闪存的CS和HOLD引脚拉高,闪存恢复工作状态,主控模块发送闪存reset指令,并读取闪存的ID,当读取到闪存的ID时,调用WDG(Watch DOG)reset,并等待系统复位,当没有读取到闪存的ID时,主控模块控制PUM将闪存电源reset;
当中断模式为高于阈值中断时,主控模块复读FIFO中的数据,并对数据进行过滤处理,获取过滤后的监测电压,对过滤后的监测电压进行二次检测,当电压没有恢复时,执行不对闪存进行处理,退出中断的操作,当电压恢复是,关闭ADC模块中断,失能ADC,并执行主控模块将闪存的CS和HOLD引脚拉高,闪存恢复工作状态的操作。
可见,实施图10所示的实施例能够对闪存掉电以及闪存电压恢复两种情况做出完整的反应,通过中断的方式通知主控模块,提高了系统整体的响应速度,其中对监测电压进行二次检测,减少了因电压偶然性抖动导致误判的情况,判断闪存HOLD引脚是否被复用以确定对闪存的引脚执行相对应的控制操作,达到对闪存中的数据进行保护的效果,能够提高主控模块对闪存引脚操作的准确性和可靠性,通过引入电源管理模块对闪存进行断电机制的重置,提高了系统整体鲁棒性和可靠性。
实施例三
请参阅图11,图11是本发明实施例公开的一种闪存的擦写掉电数据保护装置的结构示意图。如图11所示,该闪存的擦写掉电数据保护装置可以包括电压监测模块30和主控模块40,电压监测模块30包括监测单元301、确定单元302以及第一发送单元303,主控模块包括数据保护单元401,其中:
监测单元401,用于监测闪存的第一电压。
确定单元302,用于确定第一电压是否小于预设电压阈值,预设电压阈值大于或等于最低电压,最低电压为保证闪存正常工作所需要的电压。
第一发送单元303,用于当第一电压小于预设电压阈值时,将第一中断信号发送到数据保护单元401。
数据保护单元401,用于响应于第一中断信号,对闪存执行数据保护操作。
可见,实施图11所描述的闪存的擦写掉电数据保护装置能够在电压监测模块判断出闪存的第一电压小于预设电压阈值时,将第一中断信号发送到主控模块,主控模块响应于第一中断信号,对闪存执行数据保护操作,对闪存自身的写保护功能要求低,可兼容更多型号的闪存,且通过中断的方式通知主控模块,提高了响应速度,进而提高了主控模块对闪存执行数据保护操作的精准性和效率。
在一个可选的实施例中,如图12所示,电压监测模块30还包括存储单元304,其中:
存储单元304,用于将监测单元监测得到的所有第一电压进行存储;
数据保护单元401响应于第一中断信号,对闪存执行数据保护操作的具体方式包括:
响应于第一中断信号,读取电压监测模块存储的所有第一电压,并对所有第一电压进行过滤处理,得到所有第一电压对应的第一过滤电压;
当第一过滤电压小于预设电压阈值时,数据保护单元执行的对闪存执行数据保护操作。
可见,实施图12所描述的闪存的擦写掉电数据保护装置能够在电压监测模块判断出闪存的第一电压小于预设电压阈值时,将第一中断信号发送到主控模块,主控模块响应于第一中断信号,读取电压监测模块存储的所有第一电压,并对所有第一电压进行过滤处理,得到第一过滤电压,当第一过滤电压小于预设电压阈值时,主控模块执行对闪存执行数据保护操作,对闪存自身的写保护功能要求低,可兼容更多型号的闪存,且通过中断的方式通知主控模块,提高了响应速度,对读取到的电压进行过滤处理,减少了电压偶然性抖动导致误判的情况,提高了对闪存执行数据保护操作的准确性和可靠性,进而提高了主控模块对闪存执行数据保护操作的效率。
在另一个可选的实施例中,数据保护单元401对闪存执行数据保护操作的具体方式包括:
判断闪存的HOLD引脚是否被复用;
当判断出闪存的HOLD引脚被复用时,将闪存的CS片选引脚和HOLD引脚拉低,以将闪存的状态设置为暂停状态;
当判断出闪存的HOLD引脚没有被复用时,将闪存的CS片选引脚拉高,停止对闪存的擦/写操作。
可见,实施图12所描述的闪存的擦写掉电数据保护装置能够通过判断闪存的HOLD引脚的复用情况以确定对闪存的引脚执行相对应的控制操作,达到对闪存中的数据进行保护的效果,能够提高主控模块对闪存引脚操作的准确性和可靠性,进而提高对闪存中的数据进行保护的精准性和可靠性。
在又一个可选的实施例中,闪存为nor闪存,主控模块40还包括第一检测单元402、配置单元403以及第一恢复单元404,其中:
第一检测单元402,用于在数据保护单元401对闪存执行数据保护操作之后,检测是否使用闪存的芯片内执行功能,得到检测结果;
配置单元403,用于当检测结果表示没有使用闪存的芯片内执行功能时,配置电压监测模块30为高阈值中断模式,其中,高阈值中断模式用于指示监测单元301监测闪存的电压是否大于预设电压阈值;
第一发送单元303,还用于在监测单元301监测到闪存的电压大于预设电压阈值时向主控模块40发送第二中断信号;
第一恢复单元404,用于响应于第二中断信号,控制闪存恢复正常工作。
可见,实施图12所描述的闪存的擦写掉电数据保护装置能够检测是否使用闪存的芯片内执行功能,并在主控模块没有使用闪存的芯片内执行功能时,主控模块配置电压监测模块为高阈值中断模式,电压监测模块在监测到闪存的电压大于预设电压阈值时向主控模块发送第二中断信号,主控模块响应于第二中断信号,控制闪存恢复正常工作,能够在主控模块没有使用闪存的芯片内执行功能时,采用中断策略监测闪存的电压恢复情况,提高了主控模块和电压监测模块的工作效率,进而提高了对闪存电压恢复的监测效率和判断效率。
在又一个可选的实施例中,闪存为nor闪存,主控模块40还包括第二检测单元405、第一读取单元406、过滤单元407以及第二恢复单元408,其中:
第二检测单元405,用于在数据保护单元401对闪存执行数据保护操作之后,检测是否使用闪存的芯片内执行功能,得到检测结果;
第一读取单元406,用于当检测结果表示使用闪存的芯片内执行功能时,采用轮询读取的方式读取电压监测模块30的所有FIFO中存储的第二电压,第二电压是在主控模块40对闪存执行数据保护操作之后监测到的电压;
过滤单元407,用于当第一读取单元406读取完毕电压监测模块的所有FIFO中存储的第二电压时,对所有第二电压进行过滤处理,得到所有第二电压对应的第二过滤电压;
第二恢复单元408,用于当第二过滤电压大于预设电压阈值时,将闪存恢复正常工作;
第一读取单元406,用于当第二过滤电压小于预设电压阈值时,继续执行采用轮询读取的方式读取电压监测模块30的FIFO中存储的第二电压的操作。
可见,实施图12所描述的闪存的擦写掉电数据保护装置能够在主控模块使用闪存的芯片内执行功能时,读取电压监测模块的所有FIFO中存储的第二电压,并对所有第二电压进行过滤处理,根据处理结果判断闪存的电压是否恢复到工作电压,能够提高判断闪存电压是否恢复到正常工作电压的精准性和可靠性,同时对读取到的第二电压进行过滤处理,能够降低电压抖动造成误判的几率,进一步提高整体可靠性。
在又一个可选的实施例中,该闪存的擦写掉电数据保护装置还可以包括电源管理模块50;
主控模块40还包括第二发送单元409以及第二读取单元410,其中:
第二发送单元409,用于在第一恢复单元404将闪存恢复正常工作之后,向闪存发送reset指令,控制闪存执行非断电方式的reset操作;
第二读取单元410,用于在闪存执行完毕非断电方式的reset操作之后,从闪存中读取预设测试字段,预设测试字段包括闪存的设备ID;
第一恢复单元404,还用于在第二读取单元410读取到预设测试字段时,控制闪存执行电压恢复后的正常工作;
配置单元403,还用于当第二读取单元410没有读取到预设测试字段时,配置电源管理模块50,电源管理模块50控制闪存执行断电方式的reset操作;
第一恢复单元404,还用于在闪存执行完毕断电方式的reset操作之后,控制闪存执行电压恢复后的正常工作。
可见,实施图12所描述的闪存的擦写掉电数据保护装置能够向闪存发送reset指令,控制闪存执行非断电方式的reset操作,并通过读取闪存中预设测试字段以验证闪存是否恢复正常工作,提高了闪存恢复正常工作的可靠性,当主控模块没有读取到预设测试字段时,主控模块配置电源管理模块,电源管理模块控制闪存执行断电方式的reset操作,通过引入电源管理模块对闪存进行断电机制的重置,提高了系统整体鲁棒性和可靠性。
在又一个可选的实施例中,过滤处理的具体方式包括:
主控模块删除读取到的所有电压中的最大电压和最小电压;
主控模块对剩余的所有电压执行求平均值操作,得到目标过滤电压;
或者,主控模块将电压监测模块配置为轮询读取模式,并采用轮询读取的方式读取电压监测模块的所有FIFO中存储的电压;
当主控模块读取完毕电压监测模块的所有FIFO中存储的电压时,主控模块对所有电压进行检测,当在连续时间t内或连续m次内主控模块读取到的电压满足预设条件时,主控模块将第n次读取到的电压确定为目标过滤电压,预设条件用于表示电压均大于预设电压阈值或均小于预设电压阈值,n为自然数,且n大于m;
当在连续时间t内或连续m次内主控模块读取到的电压不满足预设条件时,主控模块对读取到的所有电压进行求平均值计算,得到目标过滤电压。
可见,实施图12所描述的闪存的擦写掉电数据保护装置能够通过多种过滤处理方法对闪存的电压进行过滤处理或二次检测,保证了得到的目标过滤电压的准确性和可靠性,同时减少了电压偶然性抖动导致误判的情况,提高了对闪存执行数据保护操作的准确性和可靠性,进而提高了主控模块对闪存执行数据保护操作的效率。
实施例四
请参阅图13,图13是本发明实施例公开的又一种闪存的擦写掉电数据保护装置的结构示意图。如图13所示,该闪存的擦写掉电数据保护装置可以包括:
存储有可执行程序代码的存储器601;
与存储器601耦合的处理器602;
处理器602调用存储器601中存储的可执行程序代码,执行本发明实施例一或本发明实施例二所描述的闪存的擦写掉电数据保护方法中的步骤。
实施例五
本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一或本发明实施例二所描述的闪存的擦写掉电数据保护方法中的步骤。
实施例六
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二中所描述的闪存的擦写掉电数据保护方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种闪存的擦写掉电数据保护方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

Claims (10)

1.一种闪存的擦写掉电数据保护方法,其特征在于,所述方法应用于闪存的擦写掉电数据保护装置中,所述数据保护装置包括电压监测模块和主控模块,所述方法包括:
所述电压监测模块监测闪存的第一电压,并确定所述第一电压是否小于预设电压阈值,所述预设电压阈值大于或等于最低电压,所述最低电压为保证所述闪存正常工作所需要的电压;
当所述第一电压小于所述预设电压阈值时,所述电压监测模块将第一中断信号发送到所述主控模块;
所述主控模块响应于所述第一中断信号,对所述闪存执行数据保护操作。
2.根据权利要求1所述的闪存的擦写掉电数据保护方法,其特征在于,在所述电压监测模块监测所述闪存的第一电压之后,所述方法还包括:
所述电压监测模块将监测得到的所有所述第一电压进行存储;
所述主控模块响应于所述第一中断信号,对所述闪存执行数据保护操作,包括:
所述主控模块响应于所述第一中断信号,读取所述电压监测模块存储的所有所述第一电压,并对所有所述第一电压进行过滤处理,得到所有所述第一电压对应的第一过滤电压;
当所述第一过滤电压小于所述预设电压阈值时,所述主控模块执行所述的对所述闪存执行数据保护操作。
3.根据权利要求1或2所述的闪存的擦写掉电数据保护方法,其特征在于,所述主控模块对所述闪存执行数据保护操作,包括:
所述主控模块判断所述闪存的HOLD引脚是否被复用;
当所述主控模块判断出所述闪存的HOLD引脚被复用时,所述主控模块将所述闪存的CS片选引脚和HOLD引脚拉低,以将所述闪存的状态设置为暂停状态;
当所述主控模块判断出所述闪存的HOLD引脚没有被复用时,所述主控模块将所述闪存的CS片选引脚拉高,停止对所述闪存的擦/写操作。
4.根据权利要1或2所述的闪存的擦写掉电数据保护方法,其特征在于,所述闪存为nor闪存,在所述主控模块对所述闪存执行数据保护操作之后,所述方法还包括:
所述主控模块检测是否使用所述闪存的芯片内执行功能,得到检测结果;
当所述检测结果表示所述主控模块没有使用所述闪存的芯片内执行功能时,所述主控模块配置所述电压监测模块为高阈值中断模式,其中,所述高阈值中断模式用于指示所述电压监测模块监测所述闪存的电压是否大于所述预设电压阈值;
所述电压监测模块在监测到所述闪存的电压大于所述预设电压阈值时向所述主控模块发送第二中断信号;
所述主控模块响应于所述第二中断信号,控制所述闪存恢复正常工作。
5.根据权利要求1或2所述的闪存的擦写掉电数据保护方法,其特征在于,所述闪存为nor闪存,在所述主控模块对所述闪存执行数据保护操作之后,所述方法还包括:
所述主控模块检测是否使用所述闪存的芯片内执行功能,得到检测结果;
当所述检测结果表示所述主控模块使用所述闪存的芯片内执行功能时,所述主控模块采用轮询读取的方式读取所述电压监测模块的所有FIFO中存储的第二电压,所述第二电压是在所述主控模块对所述闪存执行数据保护操作之后监测到的电压;
当所述主控模块读取完毕所述电压监测模块的所有FIFO中存储的第二电压时,所述主控模块对所有所述第二电压进行过滤处理,得到所有所述第二电压对应的第二过滤电压;
当所述第二过滤电压大于所述预设电压阈值时,所述主控模块将所述闪存恢复正常工作;
当所述第二过滤电压小于所述预设电压阈值时,所述主控模块继续执行所述的采用轮询读取的方式读取所述电压监测模块的FIFO中存储的第二电压的操作。
6.根据权利要求4述的闪存的擦写掉电数据保护方法,其特征在于,在所述主控模块将所述闪存恢复正常工作之后,所述方法还包括:
所述主控模块向所述闪存发送reset指令,控制所述闪存执行非断电方式的reset操作;
在所述闪存执行完毕所述非断电方式的reset操作之后,所述主控模块从所述闪存中读取预设测试字段,所述预设测试字段包括所述闪存的设备ID;
当所述主控模块读取到所述预设测试字段时,所述主控模块控制所述闪存执行电压恢复后的正常工作;
当所述主控模块没有读取到所述预设测试字段时,所述主控模块配置电源管理模块,所述电源管理模块控制所述闪存执行断电方式的reset操作;
在所述闪存执行完毕所述断电方式的reset操作之后,所述主控模块控制所述闪存执行电压恢复后的正常工作。
7.根据权利要求2所述的闪存的擦写掉电数据保护方法,其特征在于,所述过滤处理包括:
所述主控模块删除读取到的所有电压中的最大电压和最小电压;
所述主控模块对剩余的所有所述电压执行求平均值操作,得到目标过滤电压;
或者,所述主控模块将所述电压监测模块配置为轮询读取模式,并采用轮询读取的方式读取所述电压监测模块的所有FIFO中存储的电压;
当所述主控模块读取完毕所述电压监测模块的所有FIFO中存储的电压时,所述主控模块对所有所述电压进行检测,当在连续时间t内或连续m次内所述主控模块读取到的所述电压满足预设条件时,所述主控模块将第n次读取到的电压确定为目标过滤电压,所述预设条件用于表示所述电压均大于所述预设电压阈值或均小于所述预设电压阈值,n为自然数,且n大于m;
当在连续时间t内或连续m次内所述主控模块读取到的所述电压不满足预设条件时,所述主控模块对读取到的所有所述电压进行求平均值计算,得到所述目标过滤电压。
8.一种闪存的擦写掉电数据保护装置,其特征在于,所述装置包括电压监测模块和主控模块;
所述电压监测模块包括监测单元、确定单元以及第一发送单元,所述主控模块包括数据保护单元,其中:
所述监测单元,用于监测闪存的第一电压;
所述确定单元,用于确定所述第一电压是否小于预设电压阈值,所述预设电压阈值大于或等于最低电压,所述最低电压为保证所述闪存正常工作所需要的电压;
所述第一发送单元,用于当所述第一电压小于所述预设电压阈值时,将第一中断信号发送到所述数据保护单元;
所述数据保护单元,用于响应于所述第一中断信号,对所述闪存执行数据保护操作。
9.一种闪存的擦写掉电数据保护装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的闪存的擦写掉电数据保护方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的闪存的擦写掉电数据保护方法。
CN202310197478.7A 2023-03-02 2023-03-02 一种闪存的擦写掉电数据保护方法及装置 Pending CN116340038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310197478.7A CN116340038A (zh) 2023-03-02 2023-03-02 一种闪存的擦写掉电数据保护方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310197478.7A CN116340038A (zh) 2023-03-02 2023-03-02 一种闪存的擦写掉电数据保护方法及装置

Publications (1)

Publication Number Publication Date
CN116340038A true CN116340038A (zh) 2023-06-27

Family

ID=86892231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310197478.7A Pending CN116340038A (zh) 2023-03-02 2023-03-02 一种闪存的擦写掉电数据保护方法及装置

Country Status (1)

Country Link
CN (1) CN116340038A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117746970A (zh) * 2024-02-21 2024-03-22 江苏华存电子科技有限公司 一种断电上电的装置和方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117746970A (zh) * 2024-02-21 2024-03-22 江苏华存电子科技有限公司 一种断电上电的装置和方法

Similar Documents

Publication Publication Date Title
US8874886B2 (en) Executing soft reset for intelligent terminal in abnormal instruction state and hard reset for intelligent terminal in dead halt state
CN204360323U (zh) 用于启用主电源的连接的控制电路、计算系统及装置
US8397103B2 (en) Method for detecting the improper removal of electronic equipment
CN116340038A (zh) 一种闪存的擦写掉电数据保护方法及装置
US10250325B2 (en) Network switching system
CN110445638B (zh) 一种交换机系统故障保护方法及装置
CN104734979A (zh) 一种路由器外接存储设备的控制方法
CN106897177B (zh) 一种基于移动终端指纹系统短路检测和保护的方法及系统
CN105389525A (zh) 刀片服务器的管理方法和系统
KR101947487B1 (ko) 데이터 자동복구가 가능한 감시 제어 장치
CN104850182A (zh) 应用于嵌入式系统的电路结构和掉电保护方法
CN115061453A (zh) 核电厂dcs故障的处理方法、装置、电子设备及存储介质
CN103744700A (zh) 一种系统启动方法及电子设备
CN115862711A (zh) 掉电保护方法、掉电保护电路、芯片、电子设备及系统
CN103136064B (zh) 开机错误处理方法
US10921875B2 (en) Computer system, operational method for a microcontroller, and computer program product
US8478975B2 (en) Electronic device and method for detecting operative states of components in the electronic device
CN112269463A (zh) 一种掉电保护电路、方法及电能表
CN108879589B (zh) 过流保护方法、装置、终端设备及存储介质
JP2012002577A (ja) 試験装置と試験方法
CN112685086B (zh) 一种信息处理方法及电子设备
CN110490006B (zh) 终端中的滑块控制方法及装置、电子设备、存储介质
JP3087650B2 (ja) 自動復電方式
CN111966548B (zh) 一种服务器开机慢的故障检测方法及系统
CN219225479U (zh) 一种带电源低压监测保护的嵌入式系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination