一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

eMMC数据保护方法、装置、eMMC封装及存储介质与流程

2022-06-15 22:02:39 来源:中国专利 TAG:

emmc数据保护方法、装置、emmc封装及存储介质
技术领域
1.本发明实施例涉及智能车辆和存储器技术,尤其涉及一种emmc数据保护方法、装置、emmc封装及存储介质。


背景技术:

2.emmc(embedded multi media card)是mmc协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格,目前,emmc越来越多地应用到智能车辆上,主要用作智能座舱的显示屏数据的存储。
3.在一些情况下,显示屏会出现黑屏的情况,emmc信息系统上会出现错误数据,引发机器故障。有些情况下,数据表格损坏严重到无法修复,emmc无法索引内部空间,最终导致固件损坏器件失效。
4.综上所述,急需要一种emmc数据保护方法,保证显示屏的正常显示。


技术实现要素:

5.本发明实施例提供一种emmc数据保护方法、装置、emmc封装及可读存储介质,以避免数据误写,保证显示屏的正常显示。
6.第一方面,本发明实施例提供了一种emmc数据保护方法,包括:
7.在emmc控制器上电后,检测emmc的输入供电电压;
8.如果所述电压低于第一电压阈值且高于第二电压阈值,通过所述emmc控制器停止所述闪存的读写操作,直到所述电压达到稳定条件;
9.如果所述电压低于所述第二电压阈值且高于第三电压阈值,通过所述emmc控制器重置所述闪存的当前页数据;
10.如果所述电压低于所述第三电压阈值,通过所述emmc控制器将所述闪存重置至刚上电状态;
11.其中,所述第一电压阈值大于所述第二电压阈值,所述第二电压阈值大于所述第三电压阈值。
12.第二方面,本发明实施例还提供了一种emmc数据保护装置,包括:
13.检测模块,用于在emmc控制器上电后,检测emmc的输入供电电压;
14.停止模块,用于如果所述电压低于第一电压阈值且高于第二电压阈值,通过所述emmc控制器停止所述闪存的读写操作,直到所述电压达到稳定条件;
15.第一重置模块,用于如果所述电压低于所述第二电压阈值且高于第三电压阈值,通过所述emmc控制器重置所述闪存的当前页数据;
16.第二重置模块,用于如果所述电压低于所述第三电压阈值,通过所述emmc控制器将所述闪存重置至刚上电状态;
17.其中,所述第一电压阈值大于所述第二电压阈值,所述第二电压阈值大于所述第三电压阈值。
18.第三方面,本发明实施例还提供了一种emmc封装,包括主机和存储分配模块,所述存储分配模块包括emmc控制器和闪存,所述主机包括:
19.一个或多个处理器;
20.存储器,用于存储一个或多个程序,
21.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的emmc数据保护方法。
22.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的emmc数据保护方法。
23.本发明实施例中,通过emmc控制器上电后,检测emmc的输入供电电压,能够从emmc运行之初就进行电压检测,有效地捕捉emmc固件加载和初始化过程中的掉电或电压跌落的情况;通过多级控制方式,避免emmc固件损坏和数据误写,保证显示屏的正常显示。本实施例提供的多级控制方式中,确定电压落在不同的电压范围内时,通过emmc控制器执行不同程度的数据保护策略,有效地保护闪存上电后写入的正确数据,擦除可能错误的数据。
附图说明
24.图1a是本实施例提供的emmc封装的结构示意图;
25.图1b是本发明实施例提供的第一种emmc数据保护方法的流程图;
26.图2是本发明实施例提供的第二种emmc数据保护方法的流程图;
27.图3是本发明实施例提供的一种emmc数据保护装置的结构示意图;
28.图4为本发明实施例提供的一种主机的结构示意图。
具体实施方式
29.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
30.为了清除介绍本实施例提供的emmc数据保护方法,首先介绍该方法适用的emmc封装。图1a是本实施例提供的emmc封装的结构示意图,emmc封装10包括主机(host)110和存储分配模块(device)120,存储分配模块120包括emmc控制器121和闪存(nand flash memory)122。可选的,闪存122可以是多片叠加的形式,在闪存122上叠加emmc控制器121(例如asic)。
31.闪存122包括用户数据区域和用户不可见区域,用户不可见区域用于存储固件、参数分布表和物理逻辑映射表。
32.主机110可以向emmc控制器121发送指令和待写入闪存的数据,emmc控制器121对指令进行应答,并将数据写入闪存。emmc控制器121的功能包括:处理主机接口协议、处理闪存接口协议、保证可靠的读取和程序以及管理闪存访问和资源。
33.值得说明的是,主机110还包括时钟发生器(未示出)和输出电路(未示出)用于同步存储分配模块120内的时钟。emmc封装内的其他通用结构可参考现有技术,此处不再赘述。
34.发明人在研究过程中发现,当智能车辆点火时,由于瞬间电流增大,会造成emmc电
压跌落甚至掉电的情况。经过对emmc的测试分析,发明人创造性地发现:无论是对用户数据区进行写操作还是对固件自身数据表格(尤其是物理逻辑映射表)的写入更新,都需要电压的稳定支持。如果此时发生电压跌落或掉电,均会导致写入失败,严重的情况可能导致数据误写到无法预测的地址,导致物理逻辑映射表损坏严重到无法恢复,emmc控制器将无法索引内部空间,导致固件损坏,emmc失效,最终造成显示屏黑屏。
35.为了解决上述问题,基于上述emmc封装的结构,本发明实施例提供第一种emmc数据保护方法,其流程图如图1b所示,可适用于对emmc封装内闪存数据进行保护的情况。该方法可以由emmc数据保护装置来执行,该装置可以由软件和/或硬件构成,并一般集成在主机中。可选的,该装置还可以集成在emmc封装之外的电子设备,该电子设备可以是终端或服务器,通过向emmc控制器发送指令来控制emmc控制器执行对闪存的操作。emmc控制器对闪存的操作参见s120~s140。
36.结合图1a和图1b,本实施例提供的方法具体包括:
37.s100、在emmc控制器上电后,检测emmc的输入供电电压。
38.假设执行主体为主机,主机上电后向emmc控制器发送指令cmd0,emmc控制器和闪存通过同一供电电源上电,emmc控制器上电后,电压不断爬升,达到3.3v稳定电压后,进行固件加载。加载完成后接收主机发送的cmd0,emmc控制器进入空闲状态(idle)。如果电压稳定未跌落,则emmc控制器会继续完成固件初始化,并向主机返回准备(ready)状态的应答。如果主机在发送cmd0后仍然没有收到emmc控制器ready状态的应答,则在一段固定时间后向emmc控制器发送cmd1,以向emmc控制器询问是否固件初始化完成。如果未完成固件初始化(可能由于电压跌落或掉电)则处于忙碌(busy)状态,主机接收到r3中busy bit为0,则连续发送cmd1询问;或者,主机未得到任何应答(可能由于固件加载时电压跌落或掉电)。无论加载过程发生故障还是初始化过程发生故障,都可能导致闪存写入错误甚至固件损坏,则在emmc控制器上电之后,得到emmc控制器的ready状态应答之前,检测emmc的输入供电电压。
39.s110、比较电压与第一电压阈值、第二电压阈值和第三电压阈值。如果电压低于第一电压阈值且高于第二电压阈值,跳转到s120。如果电压低于第二电压阈值且高于第三电压阈值,跳转到s130。如果电压低于第三电压阈值,跳转到s140。
40.具体的,如果电压低于第一电压阈值,则触发数据保护事件。然后,根据电压与第一电压阈值、第二电压阈值和第三电压阈值之间的大小关系处,执行相应的分级处理方法。
41.s120、通过emmc控制器停止闪存的读写操作,直到电压达到稳定条件。
42.s130、通过emmc控制器重置闪存的当前页数据。
43.s140、通过emmc控制器将闪存重置至刚上电状态。
44.s120~s140为分级数据保护策略,第一电压阈值大于第二电压阈值,第二电压阈值大于第三电压阈值。用户可以根据emmc数据保护效果,灵活地设置各电压阈值。优先的,经过多次试验,确定第一电压阈值为2.475v,第二电压阈值为2.29v,第三电压阈值为0.73v。
45.在s120处,如果电压在2.29v~2.475v范围内,主机或者外部电子设备向emmc控制器发送指令,以使emmc控制器停止闪存的读写操作,直到电压达到稳定条件。具体的,如果电压跌落到2.29v~2.475v范围,也就是刚刚发生电压跌落,且电压不低的情况,可认为如
果电压继续跌落,闪存会写入错误数据,而目前已写入的数据是正确的。那么,emmc控制器停止闪存的读写操作,直到电压达到第四电压阈值,且维持设定时长。第四电压阈值大于第一电压阈值,例如为2.525v,设定时长可以是150μs。示例性的,使用内置时钟作基准.例如现在时钟脉冲为1mhz,转换成时间为1us,即当在150个脉冲内仍然保持在2.525v以上,便可判断为符合。如果不足150个脉冲便认为电压仍然有波动。
46.可选的,在电压达到稳定条件后,如果主机需要,可控制emmc控制器执行完整的物理逻辑映射表恢复,而不受固件的干扰。具体的,将闪存上正在运行的物理逻辑映射表清空,并将备份物理逻辑映射表写入闪存。备份物理逻辑表为emmc芯片的内部备份档案,储存在emmc芯片的闪存nand flash内。nand flash是一个非易失存储器,即使不供电,其中储存的数据仍然保留。
47.在s130处,如果电压在0.73v~2.29v范围内,主机或者外部电子设备向emmc控制器发送指令,以使emmc控制器重置闪存的当前页数据。具体的,如果电压跌落到0.73v~2.29v范围,也就是电压跌落到比较低的情况,会在闪存的当前页写入错误数据,则可以擦除当前页数据。重置之后,映射表当前页与闪存当前页一致。
48.在s140处,如果电压低于0.73,主机或外部电子设备向emmc控制器发送指令,以使emmc控制器将闪存重置至刚上电状态。具体的,如果电压跌落到低于0.73,掉电事件发生,则从刚上电到当前时刻都可能存在错误数据写入,则将刚上电到当前时刻写入的数据均擦除。
49.可选的,如果电压高于第一电压阈值,则正常执行当前任务,例如写入主机数据。
50.本发明实施例中,通过主机上电后,检测emmc的输入供电电压,能够从emmc运行之初就进行电压检测,有效地捕捉emmc固件加载和初始化过程中的掉电或电压跌落的情况;通过多级控制方式,避免emmc固件损坏和数据误写,保证显示屏的正常显示。本实施例提供的多级控制方式中,确定电压落在不同的电压范围内时,通过emmc控制器执行不同程度的数据保护策略,有效地保护闪存上电后写入的正确数据,擦除可能错误的数据。
51.在上述实施例和下述实施例中,从数据写入流程看,物理逻辑映射表对总管全局空间起到非常重要作用,保证物理逻辑映射表的数据正确具有至关重要的意义。基于此,emmc控制器对闪存的操作具体为对闪存内物理逻辑映射表的操作。具体而言,如果电压低于第一电压阈值且高于第二电压阈值,通过emmc控制器停止物理逻辑映射表的读写操作,直到电压达到稳定条件;如果电压低于第二电压阈值且高于第三电压阈值,通过emmc控制器重置物理逻辑映射表的当前页数据;如果电压低于第三电压阈值,通过emmc控制器擦除闪存上电后导入到物理逻辑映射表中的数据。
52.图2是本发明实施例提供的第二种emmc数据保护方法的流程图。本实施例对通过emmc控制器重置闪存的当前页数据的操作进行细化。
53.如图2所示,具体包括以下步骤:
54.s200、在emmc控制器上电后,检测emmc的输入供电电压。
55.如图1a所示,emmc控制器包括第一寄存器(vcc-drop occurences)和第二寄存器(vcc-droop occurences)。第一寄存器用于检测电压的掉电次数,即低于第三电压阈值(如0.73v)的次数,第二寄存器用于检测电压的跌落次数,即低于第一电压阈值(2.475v)且高于第三电压阈值(0.73v)的次数。在显示屏黑屏的场景中,均发现第一寄存器和第二寄存器
内的数据增加,指示有电压跌落甚至掉电的情况发生。
56.可选的,在emmc控制器上电后,读取emmc控制器内第一寄存器内的掉电次数和第二寄存器内的电压跌落次数;如果掉电次数加1,确定电压低于第三电压阈值;如果电压跌落次数加1,确定电压低于第一电压阈值;读取电压,并确定电压是否高于第二电压阈值。
57.具体的,主机上电后,向emmc控制器发送cmd62 0x96c9d71c,读取两个寄存器中的数据。如果跌落次数加1,进一步通过a/d convertor(模拟/数字转换器),把电压转换成数字信号,例如,2.475v转换成数字信号为11000010。进而通过数字信号确定电压是否高于第二电压阈值。
58.s210、比较电压与第一电压阈值、第二电压阈值和第三电压阈值。如果电压低于第一电压阈值且高于第二电压阈值,跳转到s220。如果电压低于第二电压阈值且高于第三电压阈值,跳转到s230。如果电压低于第三电压阈值,跳转到s240。
59.s220、通过emmc控制器停止闪存的读写操作,直到电压达到稳定条件。
60.s230、通过emmc控制器检查当前是否执行主机写事务。如果当前执行主机写事务,执行s231;如果当前未执行主机写事务,执行s232。
61.s231、通过emmc控制器将闪存当前页的物理逻辑映射表数据擦除,将备份物理逻辑映射表数据复制到闪存当前页。
62.s232、通过emmc控制器将备份物理逻辑映射表数据复制到闪存当前页。
63.可选的,对于电压跌落到0.73v~2.29v范围内的情况,emmc控制器和闪存的启动过程会回退到电压爬升阶段,在电压稳定(到达3.3v)后,重新加载固件并重新初始化。
64.s240、通过emmc控制器将闪存重置至刚上电状态。
65.通过emmc控制器擦除闪存上电后导入到物理逻辑映射表中的数据。由于掉电,emmc控制器和闪存的启动过程会回退到电压爬升阶段,在电压稳定(到达3.3v)后,重新加载固件并重新初始化。
66.本实施例通过读取emmc控制器内第一寄存器内的掉电次数和第二寄存器内的电压跌落次数,可以直接获知电压低于第三电压阈值,以及是否高于第一电压阈值,不需要实时读取电压进行数据大小判断,简化了数据读取操作。通过检测当前是否执行主机写事务,准确地捕捉到当前页是否写入有错误数据,从而选择性擦除当前页的物理逻辑映射表,避免错误数据写入;而且,通过将备份物理逻辑映射表数据复制到闪存当前页,保证闪存内存储有正确的物理逻辑映射表,保证数据读写操作的正常运行。
67.图3是本发明实施例提供的一种emmc数据保护装置的结构示意图,本发明实施例适用于对emmc封装内闪存数据进行保护的情况。结合图3,emmc数据保护装置包括:检测模块310,停止模块320、第一重置模块330和第二重置模块340。
68.检测模块310,用于在emmc控制器上电后,检测emmc的输入供电电压;
69.停止模块320,用于如果电压低于第一电压阈值且高于第二电压阈值,通过emmc控制器停止闪存的读写操作,直到电压达到稳定条件;
70.第一重置模块330,用于如果电压低于第二电压阈值且高于第三电压阈值,通过emmc控制器重置闪存的当前页数据;
71.第二重置模块340,用于如果电压低于第三电压阈值,通过emmc控制器将闪存重置至刚上电状态;
72.其中,第一电压阈值大于第二电压阈值,第二电压阈值大于第三电压阈值。
73.本发明实施例中,通过emmc控制器上电后,检测emmc的输入供电电压,能够从emmc运行之初就进行电压检测,有效地捕捉emmc固件加载和初始化过程中的掉电或电压跌落的情况;通过多级控制方式,避免emmc固件损坏和数据误写,保证显示屏的正常显示。本实施例提供的多级控制方式中,确定电压落在不同的电压范围内时,通过emmc控制器执行不同程度的数据保护策略,有效地保护闪存上电后写入的正确数据,擦除可能错误的数据。
74.可选的,停止模块320用于如果电压低于第一电压阈值且高于第二电压阈值,通过emmc控制器停止闪存的读写操作,直到电压达到第四电压阈值,且维持设定时长;其中,第四电压阈值大于第一电压阈值;该装置还包括清空与写入模块,用于在电压达到稳定条件后,将闪存上正在运行的物理逻辑映射表清空,并将备份物理逻辑映射表写入闪存。
75.可选的,第一重置模块330用于如果电压低于第二电压阈值且高于第三电压阈值,通过emmc控制器检查当前是否执行主机写事务;如果当前执行主机写事务,通过emmc控制器将闪存当前页的物理逻辑映射表数据擦除,将备份物理逻辑映射表数据复制到闪存当前页;如果当前未执行主机写事务,通过emmc控制器将备份物理逻辑映射表数据复制到闪存当前页。
76.可选的,第二重置模块340用于如果电压低于第三电压阈值,通过emmc控制器擦除闪存上电后导入到物理逻辑映射表中的数据。
77.可选的,检测模块310用于在emmc控制器上电后,读取emmc控制器内第一寄存器内的掉电次数和第二寄存器内的电压跌落次数;如果掉电次数加1,确定电压低于第三电压阈值;如果电压跌落次数加1,确定电压低于第一电压阈值;读取电压,并确定电压是否高于第二电压阈值。
78.可选的,第一电压阈值为2.475v,第二电压阈值为2.29v,第三电压阈值为0.73v,第四电压阈值为2.525v。
79.本发明实施例所提供的emmc数据保护装置可执行本发明任意实施例所提供的emmc数据保护方法,具备执行方法相应的功能模块和有益效果。
80.本发明实施例还提供一种emmc封装,包括主机和存储分配模块,存储分配模块包括emmc控制器和闪存,具体结构参见图1a,此处不在赘述。
81.图4为本发明实施例提供的一种主机的结构示意图,如图4所示,该主机包括处理器40、存储器41、输入装置42和输出装置43;主机中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;主机中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图4中以通过总线连接为例。
82.存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的emmc数据保护方法对应的程序指令/模块(例如,emmc数据保护装置中的检测模块310,停止模块320、第一重置模块330和第二重置模块340)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的emmc数据保护方法。
83.存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁
盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
84.输入装置42可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
85.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例的emmc数据保护方法。
86.本技术实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
87.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
88.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
89.可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
90.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献