基于FLASH的数据存储方法、设备、装置及门锁系统与流程

文档序号:33187186发布日期:2023-02-04 06:57阅读:30来源:国知局
基于FLASH的数据存储方法、设备、装置及门锁系统与流程
基于flash的数据存储方法、设备、装置及门锁系统
技术领域
1.本发明涉及嵌入式系统技术领域,具体涉及基于flash(flash memory,闪存)的数据存储方法、设备、装置及门锁系统。


背景技术:

2.目前,在嵌入式系统中,经常会使用flash作为存储介质,在上面保存非易失性数据。对于内存比较大的系统,可以在flash上建立文件系统,如:fatfs、jffs2(journaling flash file system version2,日志闪存文件系统版本2)、yaffs(yet another flash filing system,第一个专门为nand闪存设计的嵌入式文件系统)、ext4(fourth extended filesystem,第四个扩展文件系统)等。而对于内存比较小的系统(门锁系统),由于无法使用文件系统,会给不同类型数据直接指定存储空间地址进行存储,若该地址被占用,则需要先进行擦除才能写入。
3.上述存储方式存在的缺点:数据处理完成后才能进行擦除和写入flash,耗时比较大,会出现基于未及时存储写入而导致的数据丢帧的技术问题。针对视频帧而言,若未及时写入flash,由于视频流的数据生产速度可能大于存储过程的数据消费速度,导致存储过程丢帧,继而在播放时视频可能会存在卡顿问题。
4.因此,现有技术有待于改善。


技术实现要素:

5.本发明的主要目的在于提出一种基于flash的数据存储方法、设备、装置及门锁系统,以至少解决现有的存储方法存在的存储数据因未及时存储而丢帧的技术问题。
6.本发明的第一方面,提供了一种基于flash的数据存储方法,包括:接收目标存储数据并检测目标存储数据相应的目标存储数据类型;根据目标存储数据类型确定目标flash存储空间及数据处理模式;若数据处理模式为待处理模式且目标flash存储空间为已占用状态,控制对目标存储数据进行处理以及对目标flash存储空间进行擦除,并采用擦除后的目标flash存储空间存储处理完毕的目标存储数据。
7.本发明的第二方面,提供了一种电子设备,包括存储器、处理器及总线;总线用于实现存储器、处理器之间的连接通信;处理器用于执行存储在存储器上的计算机程序;处理器执行计算机程序时,实现第一方面的基于flash的数据存储方法中的步骤。
8.本发明的第三方面,提供了一种数据存储装置,数据存储装置包括控制单元、业务处理单元和存储单元flash;控制单元用于接收目标存储数据并检测目标存储数据相应的目标存储数据类型,以及根据目标存储数据类型确定flash存储空间及数据处理模式;若数据处理模式为待处理模式且目标flash存储空间为已占用状态,业务处理单元用于对目标存储数据进行业务处理以及控制单元还用于对目标flash存储空间进行擦除;存储单元flash用于采用擦除后的目标flash存储空间存储处理完毕的目标存储数据。
9.本发明的第四方面,提供了一种门锁系统,与终端通信连接,包括摄像模组、门锁
主控制器和如第三方面的数据存储装置;摄像模组用于获取目标存储数据;数据存储装置用于存储目标存储数据,并根据终端所发出的读出数据请求传输目标存储数据至终端;门锁主控制器用于根据摄像模组接收图像的生物识别结果控制锁体开启或关闭。
10.本发明的一种基于flash的数据存储方法、设备、装置及门锁系统,通过接收目标存储数据并检测目标存储数据相应的目标存储数据类型,根据目标存储数据类型确定目标flash存储空间及数据处理模式,若数据处理模式为待处理模式且目标flash存储空间为已占用状态,控制对目标存储数据进行处理以及对目标flash存储空间进行擦除,并采用擦除后的目标flash存储空间存储处理完毕的目标存储数据。即在进行实施时,当识别到数据处理模式为待处理模式以及目标flash存储空间为已占用状态,可以控制对目标存储数据进行处理以及对目标flash存储空间执行擦除,通过处理过程、擦除过程同步进行的机制,在数据处理过程中一并将目标flash存储空间的状态修改为未占用状态(腾出该存储空间),则当目标存储数据完成处理后,基于涉及到的块均为已擦除态,则可以快速、及时将已处理完的目标存储数据写入到目标flash存储空间中,通过快速、及时存储来解决因未及时存储写入而导致的数据丢帧的技术问题。
附图说明
11.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1为本发明一实施例所提供的门锁系统的结构示意图;
13.图2为本发明一实施例所提供的电子设备的模块连接示意图;
14.图3为本发明一实施例所提供的基于flash的数据存储方法的流程示意图;
15.图4为本发明一实施例所提供的基于flash的数据存储方法的流程示意图;
16.图5为本发明一实施例中遍历block集合的示意图。
17.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
18.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
19.需要注意的是,相关术语如“第一”、“第二”等可以用于描述各种组件,但是这些术语并不限制该组件。这些术语仅用于区分一个组件和另一组件。例如,不脱离本发明的范围,第一组件可以被称为第二组件,并且第二组件类似地也可以被称为第一组件。术语“和/或”是指相关项和描述项的任何一个或多个的组合。
20.相关技术中,多使用flash作为存储介质来存储编码后的数据,这些数据可以是视频帧,也可以是语音数据。当编码后的视频帧数据量比较大时,会占用多个flash的块,同时基于flash特性决定,从有数据状态到可写入状态,需经过擦除过程,来使flash的块处于已擦除态(此时块上的数据均为0xff)。一方面,数据处理完成后才能进行擦除和写入flash,耗时比较大,此时会出现基于未及时存储写入而导致的数据丢帧的技术问题。另一方面,因为视频流的数据生产速度可能大于存储过程的数据消费速度,导致存储过程丢帧,继而也
导致在播放时视频也会卡顿的技术问题。
21.针对上述问题有三种解决方式:第一种,在视频流生产数据与存储过程消费数据之间,虽然可以增加数据缓冲队列,但是缓冲队列的缓存也是有限的,可以使存储过程降低丢帧数量,但是仍难以避免丢帧;第二种,增加类似m3u8方式(苹果公司推出的视频播放标准,一种索引文件)的多层索引方式,对数据可以片段方式的存储或读取,这个软件复杂度比较高,对系统要求比较高,不适用于小型化的门锁系统中;第三种,降低存储过程耗时,使得其耗时能小于视频流生产耗时。
22.其中,由于flash的易损坏特性,如果不对数据正确性加以保证,则可能会导致视频流的部分视频损坏无法播放或者丢失,从而导致卡顿;以及对于flash的每个block写入或删除频度不均衡,可能会出现某些block高频写入或删除,从而形成坏块情况。
23.为了解决上述存储方法中基于未及时存储写入而导致的数据丢帧的技术问题,请参阅图1,图1示出本发明所提供的一种门锁系统,其包括摄像模组、门锁主控制器和数据存储装置。
24.具体的,摄像模组表示可以执行拍照、录像功能的器件,例如摄像头,其主要用于获取目标存储数据(一段访客留言视频或者访客的照片)。
25.具体的,数据存储装置表示具备存储功能的器件,其用于存储目标存储数据,并根据终端所发出的读出数据请求传输数据存储装置中的目标存储数据至终端。
26.具体的,门锁主控制器为具备控制功能的器件,其主要用于根据摄像模组接收图像的生物识别结果控制锁体开启或关闭。
27.该门锁系统还可以包括与数据存储装置匹配的终端,例如是能够与数据存储装置实现数据通信的设备(手机、ipad等)。一般情况下,门锁系统的用户(主人)通过该终端发送读出数据请求以及接收数据存储装置读出的目标存储数据,从而查看一段访客留言视频或者访客的照片。
28.请再次参阅图1,本发明的一种数据存储装置具体包括控制单元、业务处理单元和存储单元flash;
29.具体的,控制单元为具备处理功能的器件,例如cpu(central processing unit,中央处理器)。其用于接收目标存储数据并检测目标存储数据相应的目标存储数据类型,以及根据目标存储数据类型确定flash存储空间及数据处理模式;若数据处理模式为待处理模式且目标flash存储空间为已占用状态,则业务处理单元用于对目标存储数据进行业务处理以及控制单元还用于对目标flash存储空间进行擦除;
30.最终存储单元flash用于采用擦除后的目标flash存储空间存储处理完毕的目标存储数据。
31.其中,业务处理单元可以包括视频模块venc和算法单元npu,视频模块venc属于视频编码器,其用于视频压缩编解码;以及算法单元npu用于算法推理或者其它计算过程等,本技术中业务处理单元不局限于上述两种业务,也可以是其他业务。
32.由此,通过上述数据存储装置,在实施时,当识别到数据处理模式为待处理模式以及目标flash存储空间地址为已占用状态,可以控制对目标存储数据进行处理以及对目标flash存储空间执行擦除,通过处理过程、擦除过程同步进行的机制,在数据处理过程中一并将目标flash存储空间的状态修改为未占用状态(腾出该存储空间),则当目标存储数据
完成处理后,基于涉及到的块均为已擦除态,则可以快速、及时将已处理完的目标存储数据写入到目标flash存储空间中,通过快速、及时存储来解决因未及时存储写入而导致的数据丢帧的技术问题。
33.请参阅图2,图2示出了本发明实施例所提供的一种电子设备,该电子设备包括存储器201、处理器202、总线203及存储在存储器201上并可在处理器202上运行的计算机程序,存储器201和处理器202通过总线203连接。处理器202执行该计算机程序时,可以实现后面实施例中介绍的基于flash的数据存储方法。其中,处理器的数量可以是一个或多个。存储器201可以是高速随机存取记忆体(ram,random access memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器201用于存储可执行程序代码,处理器202与存储器201耦合。本实施例中的电子设备可以是深度相机等
34.进一步的,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述装置或电子设备中,该计算机可读存储介质还可以是存储器,也可以是如u盘、移动硬盘、只读存储器(rom,read-only memory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。该计算机可读存储介质上一般存储有计算机程序,该程序被处理器执行时实现后面实施例中介绍的基于flash的数据存储方法。
35.请参阅图3,本技术实施例提供了一种基于flash的数据存储方法,应用于控制单元,以cpu为例,该数据存储方法包括以下步骤:
36.步骤s10,接收目标存储数据并检测目标存储数据相应的目标存储数据类型;
37.具体的,目标存储数据可以包括视频、语音、图像以及控制指令等;当cpu接收到待存储的目标存储数据,可以对目标存储数据的数据类型进行检测,从而得到目标存储数据类型。例如,当目标存储数据包括视频时,则所检测到的目标存储数据类型为视频。
38.步骤s20,根据目标存储数据类型确定目标flash存储空间及数据处理模式;
39.具体的,cpu预先对于不同的目标存储数据类型设定不同的目标flash存储空间,即flash中会具有不同的目标flash存储空间地址,不同的目标flash存储空间地址所对应的存储空间或者存储块会负责将对应的存储数据进行存储。例如,flash中的block1至block3(block合集中的第一个至第三个)用于存储视频流数据,block4用于存储文字内容等。则当得到目标存储数据类型后,可以通过目标存储数据类型确定目标flash存储空间及数据处理模式。其中,block表示flash中的块区域,其用于提供可存储数据的存储空间。
40.步骤s30,若数据处理模式为待处理模式且目标flash存储空间为已占用状态,控制对目标存储数据进行处理以及对目标flash存储空间进行擦除,并采用擦除后的目标flash存储空间存储处理完毕的目标存储数据。
41.其中,擦除后的目标flash存储空间用于对处理完毕后的目标存储数据进行存储。即当数据处理模式为待处理模式且目标flash存储空间为已占用状态,表明目标flash存储空间在存储之前存储有历史数据,则此时cpu可以通过发送控制信号至flash,从而控制对目标存储数据进行处理以及对目标flash存储空间执行擦除,即通过控制信号来控制处理过程、擦除过程同步进行,从而使得目标flash存储空间的状态修改为未占用状态,快速、及时实现目标存储数据的存储。
42.在一实际场景中,当访客来访而主人不在家时,可以通过交互界面选择留言开启视频录制模式以录制一小段访客留言视频,这时录制的视频会被存储于flash既定的视频
存储空间内。在存储之前可能会有历史数据占用当前部分的存储空间,且由于flash是先擦后写机制,需要一定时间先将既定存储空间内的数据按照block为单位进行擦除,然后再将视频数据写入,擦除到写入需要一定时间,尤其是如果视频数据还需要先进行压缩编解码以及npu(neural-network process units,神经网络处理器)算法推理或者其它计算过程等,例如人脸检测算法、人脸识别算法或视频编码算法等(这个过程比较耗时),然后处理完之后再进行flash的擦除和存储,则会耗费更多时间。虽然在编码器和传输通道之间设置有缓存器,并可以通过cbr(constantbit rate,恒定码率)/vbr(variable bitrate,可变码率)两种方式对编码器进行速率控制,但是缓存器的缓存容量有限,如果前一片段的视频流处理时间过长或造成后面视频流片段的积压,造成数据溢出或者丢弃,即导致会出现写入视频丢帧,播放视频时出现卡顿的现象。
43.因此通过本实施例,即在数据处理模式为待处理模式时以及目标flash存储空间为已占用状态时,则控制对目标存储数据进行处理以及对目标flash存储空间执行擦除,通过处理过程、擦除过程同步进行的机制,在处理过程中一并将目标flash存储空间的状态修改为未占用状态(腾出该存储空间),则往往目标存储数据完成处理后,基于涉及到的块均为已擦除态,则可以快速、及时将已处理完的目标存储数据写入到目标flash存储空间中,通过快速、及时存储来解决因未及时存储写入而导致的数据丢帧的技术问题。进一步的,由于降低了存储耗时,由此使得其耗时小于视频流生产耗时,避免出现视频数据流卡顿现象,并提高视频流的流畅性、完整性的技术效果。
44.在本实施例中,在得到目标存储数据类型的步骤之后,计算将目标存储数据进行存储所需时间,当存储所需时间大于预设时间阈值时,则执行根据目标存储数据类型确定目标flash存储空间及数据处理模式的步骤。即cpu在得到目标存储数据类型之后,会先评估存储目标存储数据的操作是否为耗时操作,若为耗时操作,则应当执行步骤s20,以降低存储耗时。
45.在本实施例中,目标flash存储空间包括主分区及从分区;采用擦除后的目标flash存储空间存储处理完毕的目标存储数据的步骤,具体包括:
46.根据预设的主从备份规则将处理完毕的目标存储数据分别存储于主分区及从分区。
47.具体的,cpu根据预设的主从备份规则将目标存储数据分别存储于目标flash存储空间中的主分区及从分区,从而使得主分区所存储到的数据与从分区所存储到的数据相同。即在进行实施时,由于flash的易损坏特性(例如在系统随机断电时,可能发生主分区或从分区只写了一部分,导致该分区数据错误的现象),如果不对数据正确性加以保证,则可能会影响业务系统功能正常运行,例如可能会导致视频流的部分视频损坏无法播放或者丢失。因此通过引入主从备份机制,由于主分区所存储到的数据与从分区所存储到的数据相同,则当任一区的数据基于断电或其它情况造成数据损坏时,都可以从另一数据正确的分区同步数据或直接读取数据。两个分区的数据同时损坏的概率非常小,一般至少存在一个分区的数据是正确的(可能是主分区,也可能是从分区),可以支撑业务功能正常进行。由上述可知,基于在对目标存储数据进行存储时执行主从分区的存储方式,能够提高视频数据流的完整性。
48.在本实施例中,目标存储数据包括访客记录数据及对应的访客记录控制指令;根
据预设的主从备份规则将处理完毕的目标存储数据分别存储于主分区及从分区的步骤之前,还包括:根据访客记录控制指令检测访客记录数据对应的等级是否达到预设合法访问等级;若达到合法访问等级,则执行根据预设的主从备份规则将处理完毕的目标存储数据分别存储于主分区及从分区的步骤。也即通过访客记录控制指令确定访客记录数据对应的预设合法访问等级,当该预设合法访问达到合法访问等级,表明该目标存储数据优先级较高,被认定为重要信息需要进行立刻存储,则将访客记录数据作为重要信息来进行安全性、保护性更高的主从备份操作。
49.在本实施例中,根据预设的主从备份规则将处理完毕的目标存储数据分别存储于主分区及从分区的步骤,具体包括:
50.将处理完毕的目标存储数据分别写入于主分区及从分区过程中,检测主分区及从分区中的数据是否发生损坏;
51.若检测到主分区数据损坏,则将从未发生数据损坏的从分区所写入的数据同步至主分区;
52.若检测到从分区数据损坏,则将从未发生数据损坏的主分区所写入的数据同步至从分区。
53.具体的,在系统基于突发情况发生异常断电时,可能发生主分区或从分区只写了一部分,导致该分区数据损坏的现象。针对该现象,通过在存储过程中检测主分区及所述从分区中的数据是否发生损坏来决定是否需要将未发生数据损坏的分区数据进行同步。即当在主分区或从分区数据错误时,通过将另一个从未发生数据损坏的分区所写入的数据进行同步,从而使得主从分区数据再次保持一致;由此至少存在主分区或从分区的数据是正确的,可以支撑业务功能正常进行读flash过程,无论在写flash过程任何时刻发生数据损坏,一定会保证系统的主分区或从分区之一处于数据正常状态,从而使得系统功能不失能。
54.在本实施例中,在根据目标存储数据类型确定目标flash存储空间及数据处理模式的步骤之后,还包括:若目标flash存储空间为部分占用状态,则获取目标存储数据的数据大小,当目标flash存储空间中的剩余存储空间大于目标存储数据的数据大小时,采用预设的块block轮询存储方式对目标存储数据进行存储。
55.具体的,当目标flash存储空间的存储状态为部分占用状态,通过获取目标存储数据的数据大小,并将取目标存储数据的数据大小与目标flash存储空间的剩余存储空间进行的对比,通过对比判定该目标flash存储空间中的剩余存储空间是否大于目标存储数据的数据大小,显然当目标flash存储空间中剩余存储空间大于目标存储数据的数据大小时(表明目标flash存储空间可以容纳目标存储数据),则采用预设的block轮询存储方式对目标存储数据进行存储。
56.请参阅图4,在本实施例中,采用预设的block轮询存储方式对目标存储数据进行存储的步骤,具体包括:
57.步骤s401,获取目标flash存储空间中所有的block对应的存储状态;
58.步骤s402,根据所有的block对应的存储状态选择距离当前时刻时间间隔最大且处于未占用状态的目标block;
59.步骤s403,将目标存储数据存储于目标block中,并记录目标block的存储状态为占用状态。
60.具体的,可以对目标flash存储空间中所有的block进行遍历,从而获取目标flash存储空间中所有的block对应的存储状态,进一步获取存储状态对应的存储时刻,则在所获得的所有的block对应的存储状态中选择距离当前时刻时间间隔最大且处于未占用状态的目标block,则将目标存储数据存储于目标block中,将目标block的存储状态记录为占用状态(即并持久化记录目标block的状态为占用状态)。
61.应当理解的是,虽然对于不同类型的数据有相应的block存储分配既定,但是各block的使用不定,对于flash的每个block写入或删除频度不均衡,可能会出现某些block高频写入或删除,导致坏块情况,如在视频数据写入时存在坏块,可能会导致这部分视频损坏或者被丢失,导致整个数据流不完整。因此可以采用上述的block轮换机制,以延长各block的使用寿命,也即当将数据存储于目标block时,目标block的状态会被设置为占用状态。
62.请参阅图5,获取目标flash存储空间中所有的block对应的存储状态的步骤,具体包括:从最近一次状态记录为占用状态的block开始,依次遍历目标flash存储空间中block集合中的所有block,以获取所有的block对应的存储状态。
63.具体的,从最近一次状态记录为占用状态的block开始,依次遍历目标flash存储空间中block集合,当遍历完成block集合中最后一个block时(即到block集合的末尾),则跳转到block集合中首个block继续遍历(即到block集合的开头),直到遍历完block集合中所有的block,以获取整个遍历过程中目标flash存储空间中所有的block对应的存储状态。即在获取所有的block对应的存储状态时,对于block集合中的遍历的顺序是从最近一次状态记录为占用状态的block(这里假设定义为block-m)开始,直到又回到block-m,则完成一次遍历过程,由此获取所有的block对应的存储状态。
64.从上述可知,遍历终止条件为遍历了block集合中全部的block(即每个block都遍历了一次),且对于既定数量的block集合,按如上方式使用,通过round robin轮换方式应用于block的策略,达到了对使用到的flash的block磨损均衡,延长flash使用寿命,保证数据存储的稳定性,提高视频数据流的完整性。
65.在本实施例中,在对目标存储数据进行存储的步骤之后,还包括:接收获取数据指令,并根据获取数据指令确定对应的待提取block,并检测待提取block中是否存在对应的待提取数据,若存在则输出对应的待提取数据(输出完成后从待提取block中删除对应的待提取数据),并持久化记录该待提取block的存储状态为未占用状态。其中,记录可以采用标签的方式进行记录,直到该待提取block空出(状态为未占用状态)后去除标签或将标签改为空。
66.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
67.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络
模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
68.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
69.集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
70.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
71.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
72.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1