CN116225326A - 数据存储方法、模块、无人机控制装置和可读存储介质 - Google Patents
数据存储方法、模块、无人机控制装置和可读存储介质 Download PDFInfo
- Publication number
- CN116225326A CN116225326A CN202310180117.1A CN202310180117A CN116225326A CN 116225326 A CN116225326 A CN 116225326A CN 202310180117 A CN202310180117 A CN 202310180117A CN 116225326 A CN116225326 A CN 116225326A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- physical
- block
- block number
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据存储方法、模块、无人机控制装置和可读存储介质,所述方法包括:所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理‑逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址;当掉电事件发生时,所述缓冲电源为所述控制器提供电能,且所述控制器根据预设暂存块号和物理‑暂存映射表获取暂存物理存储块号;所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区,有效解决现有技术现有技术中突然掉电时存在存储数据丢失的问题,保证了数据存储的稳定性。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种数据存储方法、模块、无人机控制装置和可读存储介质。
背景技术
无人机在使用过程中,操作者往往希望将使用过程中的各类数据存储起来,以备后续查验,尤其在异常情况发生后操作者希望能获取并回溯过程记录数据,以便分析、排查事件发生过程和原因;需要记录、存储的数据,一般包含传感器数据、导航定位数据、控制指令数据、遥测数据、飞行控制数据等等。同时还要求能方便的导出这些数据记录,比如设计独立的外部接口,连上线缆与外部设备,即可读取出存储的数据,用于后续处理与分析。
但是,目前在无人机突然断电时,正在存储或者即将存储的数据会存在丢失的问题,无法保证数据存储的可靠性。
发明内容
针对现有技术中所存在的不足,本发明提供的数据存储方法、模块、无人机控制装置和可读存储介质,解决了现有技术中突然掉电时存在存储数据丢失的问题。
第一方面,本发明提供一种数据存储方法,应用于数据存储模块,所述数据存储模块包括存储器、控制器和缓冲电源,所述存储器包括多个物理存储块,每个物理存储块包括多个页,每个页包括用于存储数据的数据存储区和用于管理数据的页备用区,所述备用区包括好坏块标识位、块号标识位、暂存物理块号标识位、暂存块内地址标识位和暂存数据长度标识位,所述方法包括:所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和物理-暂存映射表;所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址;当掉电事件发生时,所述缓冲电源为所述控制器提供电能,且所述控制器根据预设暂存块号和物理-暂存映射表获取暂存物理存储块号;所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区。
可选地,所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区之后,所述方法还包括:根据所述暂存物理块号标识位、暂存块内地址标识位和数据长度标识位建立暂存记录链表;当掉电事件发生后,根据所述暂存记录链表将所述暂存物理存储块中暂存存储数据存储到所述目标物理存储块中的目标数据存储区。
可选地,所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址,包括:根据数据存储指令中的逻辑起始地址和待存储数据长度,获取数据存储操作对应的目标逻辑存储块号和块内地址;根据所述目标逻辑存储块号和所述物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号;根据所述目标物理存储块号、所述块内地址和所述待存储数据长度,获取所述目标物理存储块号内的目标数据存储区。
可选地,当未发生掉电事件且所述目标数据存储区未存储数据时,将所述数据存储指令中的待存储数据写入到所述目标数据存储区。
可选地,当未发生掉电事件且所述目标数据存储区已有存储数据时,所述方法还包括:读取所述目标数据存储区的存储数据;将所述目标数据存储区的存储数据与所述待存储数据进行合并更新,得到合并存储数据;从所述空闲物理存储块表中选取一个空闲物理存储块,将所述合并存储数据写入到所述空闲物理存储块中。
可选地,将所述合并存储数据写入到所述空闲物理存储块中之后,所述方法还包括:将所述目标逻辑存储块号写入到所述空闲物理存储块的首页备用区的块号标识位;根据所述空闲物理存储块号更新所述物理-逻辑映射表;擦除所述目标物理存储块号的数据后并标记到所述空闲物理存储块表中。
可选地,在所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和建立物理-暂存映射之前,所述方法还包括:根据每个物理存储块中首页备用区的好坏块标识位和次页备用区的好坏块标识位,获取当前所有正常物理存储块;根据预设的逻辑存储块,将每个逻辑块号依次写入相对应正常物理存储块的首页备用区的块号标识位。
第二方面,本发明提供一种数据存储模块,所述模块包括:存储器、控制器、掉电检测电路、缓冲电源和USB接口;其中,所述存储器包括多个物理存储块,每个物理存储块包括多个页,每个页包括用于存储数据的数据存储区和用于管理数据的页备用区,所述备用区包括好坏块标识位、块号标识位、暂存物理块号标识位、暂存块内地址标识位和暂存数据长度标识位;所述控制器分别与所述缓冲电源、所述存储器、所述掉电检测电路和所述USB接口相连;所述掉电检测电路分别与外部电源和缓冲电源相连,用于检测所述外部电源是否发生掉电,还用于当检测到所述外部电源发生掉电时输出掉电信号到所述缓冲电源和所述控制器,使所述缓冲电源根据所述掉电信号为所述控制器提供电能,还使所述控制器根据所述掉电信号将待存储数据存储在暂存物料存储块中。
第三方面,本发明提供一种无人机控制装置,所述控制装置集成所述数据存储模块。
第四方面,本发明提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和物理-暂存映射表;所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址;当掉电事件发生时,所述缓冲电源为所述控制器提供电能,且所述控制器根据预设暂存块号和物理-暂存映射表获取暂存物理存储块号;所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区。
与现有技术相比,本发明的有益效果为:
1、本发明在数据存储模块中设置缓冲电源,当外部电源发生掉电事件时可以通过缓冲电源为控制器提供短暂电能,使所述控制器能够将待存储数据存储到暂存物料存储块中,防止突然掉电时的数据丢失。
2、本发明通过将逻辑存储块、暂存块分别与物理存储块进行映射,通过数据存储指令中的逻辑起始地址和待存储数据长度计算出需要存储的目标物理存储块号;当发生掉电事件时控制器根据暂存块与物理存储块的映射关系,将待存储数据快速存储在暂存物理存储块中,可以进一步防止突然掉电时出现数据丢失的问题,保证了数据存储的稳定性。
附图说明
图1所示为本发明实施例提供的一种数据存储模块的结构示意图;
图2所示为本发明实施例提供的一种程序层级关系示意图;
图3所示为本发明实施例提供的一种存储器的结构示意图;
图4所示为本发明实施例提供的一种数据存储方法的流程示意图;
图5所示为本发明实施例提供的一种掉电事件的处理流程图;
图6所示为本发明实施例提供的一种换块事件的处理流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
第一方面,本发明提供一种数据存储模块,具体包括以下实施例:
如图1所示,所述数据存储模块包括存储器、控制器、掉电检测电路、缓冲电源和USB接口,所述存储器包括多个物理存储块,每个物理存储块包括多个页,每个页包括用于存储数据的数据存储区和用于管理数据的页备用区,所述备用区包括好坏块标识位、块号标识位、暂存物理块号标识位、暂存块内地址标识位和暂存数据长度标识位;
所述控制器分别与所述缓冲电源、所述存储器、所述掉电检测电路和所述USB接口相连;所述掉电检测电路分别与外部电源、缓冲电源和所述控制器相连,用于检测所述外部电源是否发生掉电,还用于当检测到所述外部电源发生掉电时输出掉电信号到所述缓冲电源和所述控制器,使所述缓冲电源根据所述掉电信号为所述控制器提供电能,还使所述控制器根据所述掉电信号将待存储数据存储在暂存物料存储块中。
需要说明的是,控制器通过并口与存储器连接,实现对存储器的访问和操作,比如写、读、擦除、参数配置等;如图2所示,为了实现对存储器的访问和操作,在控制器中运行有多个程序,主要包括存储介质驱动程序,掉电事件中断处理程序,介质操作日志程序,介质操作恢复程序,文件***程序,存储应用程序,USB驱动程序,SPI驱动程序,时钟程序。文件***在介质驱动程序提供的API之上实现,存储模块使用通用文件***组织数据、文件存储,并向上层提供API调用接口。
存储应用程序,调用文件***API,实现文件管理、数据存储与读出。通过SPI驱动程序,实现与外部通信,获取存储数据、反馈存储***状态。掉电事件发生时,存储应用程序立马进入关闭存储任务、关闭打开文件流程,在缓冲电源耗尽前,实现存储信息的完整保存。USB驱动程序调用介质驱动程序提供的API访问存储介质,结合独立设计的USB接口,普通电脑可方便访问并读取存储的数据。另外,数据以通用文件***的形式,组织存放在存储介质中,如此,普通电脑通过USB接口,可像U盘那样访问存储模块。时钟程序在MCU的RTC基础上,实现计时功能,供上层应用使用。时钟程序可通过SPI通信接口,获取外部时刻,以进行时间粗同步;控制器内部自带USB外设控制器,其通信管脚通过印制板线路连接USB接口器件,供外部设备访问使用;控制器通过SPI与飞控处理平台连接,实现对存储数据的接收以及外部命令的接收与应答。掉电检测电路,检测到外部电源电压降到某一阈值时,通过连接到控制器的GPIO管脚,通知控制器掉电事件发生。缓冲电源在供电电源掉电后,能在ms级别持续供电一段时间。
如图3所述,存储器一般由多个物理存储块组成,一个物理存储块由多页组成,每页由数据存储区和备用区组成,各区由一定数量的字节存储空间组成。可随机寻址写入数据,但擦除需以物理存储块为单位进行。
第二方面,本发明提供一种数据存储方法,具体包括以下实施例:
图4所示为本发明实施例提供的一种数据存储方法的流程示意图;如图4所示,所述数据存储方法具体包括以下步骤:
步骤S101,控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和物理-暂存映射表。
在本实施例中,在所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和物理-暂存映射之前,所述方法还包括:根据每个物理存储块中首页备用区的好坏块标识位和次页备用区的好坏块标识位,获取当前所有正常物理存储块;根据预设的逻辑存储块,将每个逻辑块号依次写入相对应正常物理存储块的首页备用区的块号标识位。
需要说明的是,所述好坏块标识位用于识别当前物理存储块是否正常,在对存储器进行格式化时,所有好物理存储块的所有存储区域和所有标识位都被重置为0xFF数据,如果某个好物理存储块存在异常则在发现异常时其好坏块标识位标识为非0xFF数据;因此,通过对每个物理存储块中首页备用区的好坏块标识位和次页备用区的好坏块标识位的取值来判断每个物理存储块是否为正常物理存储块。
进一步地,本实施例中的物理存储块是指存储器中的实际存储空间,逻辑存储块是在程序中划分的虚拟存储空间,一个逻辑存储块可以对应一个或任意多个物理存储块,根据控制器中运行的控制程序进行设定,在本实施例以一个逻辑存储块对应一个物理存储块为例,预设的逻辑存储块按照顺序依次定义逻辑块号,并将每个逻辑块号依次写入对应的正常物理存储块的块号标识位,实现逻辑存储块与物理存储块的绑定;同理,本实施例中还定义用于临时存储的暂存存储块,并将每个暂存存储块号依次写入对应的正常物理存储块的块号标识位,实现暂存存储块与物理存储块的绑定;进一步地,将没有进行绑定的物料存储块作为空闲物理存储块,从而根据对每个正常物理存储块的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和建立物理-暂存映射表。
步骤S102,所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址。
在本实施例中,所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址,包括:根据数据存储指令中的逻辑起始地址和待存储数据长度,获取数据存储操作对应的目标逻辑存储块号和块内地址;根据所述目标逻辑存储块号和所述物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号;根据所述目标物理存储块号、所述块内地址和所述存储数据长度,获取所述目标物理存储块号内的目标数据存储区。
需要说明的是,数据存储指令可以是飞控运行平台发送到控制器的指令,所述数据存储指令中包括待存储数据、用于存储待存储数据的逻辑起始地址和待存储数据长度;其中,本实施例中的逻辑存储块的存储地址是连续的,例如每个逻辑存储块包括256个字节,那个第一个逻辑存储块的块内地址从0-255,第二个逻辑存储块的块内地址从256-512;因此根据数据存储指令中的逻辑起始地址和待存储数据长度,可以计算出对应的目标逻辑存储块号以及块内地址,然后查询物理-逻辑映射表,找到写入操作对应的目标物理存储块号,根据目标物理存储块号、块内地址、待存储数据长度,查询目标数据存储区。
步骤S103,当掉电事件发生时,所述缓冲电源为所述控制器提供电能,且所述控制器根据预设暂存块号和物理-暂存映射表获取暂存物理存储块号。
需要说明的是,当掉电检测电路检测到所述外部电源发生掉电时输出掉电信号到所述缓冲电源和所述控制器,使所述缓冲电源根据所述掉电信号为所述控制器提供短暂电能,使所述短暂电能使控制器能够将待存储数据存储到暂存物料存储块中。
在本实施例中,当控制器接收到所述掉电检测电路输出的掉电信号时,根据预设暂存块号从物理-暂存映射表中找到相对应的暂存物理存储块号。
步骤S104,所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区。
需要说明的是,所述控制器将待存储数据直接写入暂时物理存储块的数据存储区,为了后续方便查询和数据恢复,将所述目标物理存储块号、所述块内地址、待存储数据长度分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位。
在本实施例中,所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区之后,所述方法还包括:根据所述暂存物理块号标识位、暂存块内地址标识位和数据长度标识位建立暂存记录链表;当掉电事件发生后,下次上电时,根据所述暂存记录链表将所述暂存物理存储块中暂存存储数据存储到所述目标物理存储块中的目标数据存储区。
需要说明的是,掉电事件中断处理程序在掉电事件发生时被触发,如图5所示,程序从空闲物理存储块表中选取一物理块作为暂存块,剔除空闲物理存储块表中这块被使用的物理块的标记;此块首页备用区填写暂存块号的顺序号,此时为起始号。随后将此映射关系记录写入物理块号、暂存块号映射表。暂存写入位置初始化为此暂存块序号和块内首页编号。
介质操作日志程序在掉电事件发生时被触发,其介入存储器驱动程序换块写入操作,换块操作将不执行,而是将写入数据暂存入暂存块中,以此降低操作时间。如图6所述,首先根据暂存写入位置标记中的暂存块号,查询物理-暂存映射表,确定暂存块号对应的物理块号。然后,将写入数据的物理写入地址(物理块号、块内地址)及数据长度,写入暂存写入位置指向的页备用区中,备用区第五、六个字节写入数据原应写入的物理块号,备用区第七到第十个字节写入数据原应写入的物理块内地址,备用区第十一到第十四个字节写入数据长度。随后,待写入数据,从暂存写入位置指向的暂存空间起始位置,开始顺序写入数据。若暂存空间用完,从空闲物理块号表中选取一物理块作为暂存块继续存储数据,剔除空闲物理块号表中这块被使用的物理块的标记;此块首页备用区填写新分配的暂存块号,并将此映射关系记录写入物理块号、暂存块号映射表。数据存储完毕时,在暂存记录链表中,增加一条记录,记录“写入数据对应的物理块号,块内地址,数据长度,其“暂存写入位置”指向的暂存块号,其“暂存写入位置”指向的页编号”。最后,更新暂存写入位置指向剩余未写暂存空间的暂存块序号以及块内剩余暂存空间的起始位置(页编号),以待下次暂存操作使用。
掉电事件发生后,存储器驱动程序的读操作,需先通过查询暂存记录链表,确定读数据的地址范围是否有落在暂存区,如果有,则在读取此部分数据时,需读取暂存区内的数据,保证数据一致性。
上电初始化时,扫描存储器后,若建立的物理块号、暂存块号映射表不为空,则触发介质操作恢复程序。此程序,首先根据物理块号、暂存块号映射表,从暂存区起始位置扫描暂存区,通过读取每次暂存时写入起始页备用区的信息,可以构建完整的暂存记录链表。随后,介质操作恢复程序,将根据暂存记录链表中记录的条目信息,将暂存区的数据依次读出,并执行完整的换块操作,恢复数据存储区的数据一致性。最后,清空物理-暂存映射表,清空暂存记录链表。
与现有技术相比,本发明的有益效果为:
1、本发明在数据存储模块中设置缓冲电源,当外部电源发生掉电事件时可以通过缓冲电源为控制器提供短暂电能,使所述控制器能够将待存储数据存储到暂存物料存储块中,防止突然掉电时的数据丢失。
2、本发明通过将逻辑存储块、暂存块分别与物理存储块进行映射,通过数据存储指令中的逻辑起始地址和待存储数据长度计算出需要存储的目标物理存储块号;当发生掉电事件时控制器根据暂存块与物理存储块的映射关系,将待存储数据快速存储在暂存物理存储块中,可以进一步防止突然掉电时出现数据丢失的问题,保证了数据存储的稳定性。
在本发明的另一个实施例中,当未发生掉电事件且所述目标数据存储区未存储数据时,将所述数据存储指令中的待存储数据写入到所述目标数据存储区。
在本发明的另一个实施例中,当未发生掉电事件且所述目标数据存储区已有存储数据时,所述方法还包括:读取所述目标数据存储区的存储数据;将所述目标数据存储区的存储数据与所述待存储数据进行合并更新,得到合并存储数据;从所述空闲物理存储块表中选取一个空闲物理存储块,将所述合并存储数据写入到所述空闲物理存储块中。
需要说明的是,当目标数据存储区中有存储数据时,需要将目标数据存储区的存储数据读取到控制器的缓存中,将待处理数据和目标数据存储区的存储数据进行合并更新后存入一个空闲物理存储块中,也就是数据存储的换块操作。由于数据存储的换块操作需要将已存储数据读取到缓存中,再与待存储数据进行合并更新,然后选取一个空闲物理存储块,最后将合并存储数据写入到空闲物理存储块中,这一些列的操作流程耗时较长,在未发生掉电事件时按照这个操作流程进行数据存储是没有问题,可以保证数据存储的准确性和稳定性,但是发生掉电事件时耗时较长的换块操作就不适应,进而需要切换到上述实施例中阐述的将待存储数据快速存储在暂存物理存储块中,可以降低操作时间,防止突然掉电时出现数据丢失的问题,保证了数据存储的稳定性。
在本实施例中,将所述合并存储数据写入到所述空闲物理存储块中之后,所述方法还包括:将所述目标逻辑存储块号写入到所述空闲物理存储块的首页备用区的块号标识位;根据所述空闲物理存储块号更新所述物理-逻辑映射表;擦除所述目标物理存储块号的数据后并标记到所述空闲物理存储块表中。
第三方面,本发明提供一种无人机控制装置,所述控制装置已集成导航定位平台、飞控程序运行平台、数据处理平台和上述实施例所述的数据存储模块,通过硬件高度集成化设计于一体化控制装置中,降低整体装置重量,提升无人机有效载荷,集成化设计也让模块功能可靠性得到保证。数据存储模块通过使用一般的文件***管理数据文件,结合独立设计的USB接口,使普通电脑即可方便访问并读取存储的数据。通过软硬件集成化设计,充分利用存储介质及其特性,保证突然断电后,存储模块内已写入的数据文件依然存在,可靠应对突发掉电情况。
第四方面,本发明提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实现以下步骤:所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和物理-暂存映射表;所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址;当掉电事件发生时,所述缓冲电源为所述控制器提供电能,且所述控制器根据预设暂存块号和物理-暂存映射表获取暂存物理存储块号;所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种数据存储方法,其特征在于,应用于数据存储模块,所述数据存储模块包括存储器、控制器和缓冲电源,所述存储器包括多个物理存储块,每个物理存储块包括多个页,每个页包括用于存储数据的数据存储区和用于管理数据的页备用区,所述备用区包括好坏块标识位、块号标识位、暂存物理块号标识位、暂存块内地址标识位和暂存数据长度标识位,所述方法包括:
所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和物理-暂存映射表;
所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址;
当掉电事件发生时,所述缓冲电源为所述控制器提供电能,且所述控制器根据预设暂存块号和物理-暂存映射表获取暂存物理存储块号;
所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区。
2.如权利要求1所述的数据存储方法,其特征在于,所述控制器将所述目标物理存储块号、所述块内地址、待存储数据长度和待存储数据分别写入所述暂存物理存储块的暂存物理块号标识位、暂存块内地址标识位、暂存数据长度标识位和数据存储区之后,所述方法还包括:
根据所述暂存物理块号标识位、暂存块内地址标识位和数据长度标识位建立暂存记录链表;
当掉电事件发生后,根据所述暂存记录链表将所述暂存物理存储块中暂存存储数据存储到所述目标物理存储块中的目标数据存储区。
3.如权利要求1所述的数据存储方法,其特征在于,所述控制器根据数据存储指令中的逻辑起始地址、待存储数据长度和物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号和块内地址,包括:
根据数据存储指令中的逻辑起始地址和待存储数据长度,获取数据存储操作对应的目标逻辑存储块号和块内地址;
根据所述目标逻辑存储块号和所述物理-逻辑映射表,获取数据存储操作对应的目标物理存储块号;
根据所述目标物理存储块号、所述块内地址和所述待存储数据长度,获取所述目标物理存储块号内的目标数据存储区。
4.如权利要求3所述的数据存储方法,其特征在于,当未发生掉电事件且所述目标数据存储区未存储数据时,将所述数据存储指令中的待存储数据写入到所述目标数据存储区。
5.如权利要求3所述的数据存储方法,其特征在于,当未发生掉电事件且所述目标数据存储区已有存储数据时,所述方法还包括:
读取所述目标数据存储区的存储数据;
将所述目标数据存储区的存储数据与所述待存储数据进行合并更新,得到合并存储数据;
从所述空闲物理存储块表中选取一个空闲物理存储块,将所述合并存储数据写入到所述空闲物理存储块中。
6.如权利要求5所述的数据存储方法,其特征在于,将所述合并存储数据写入到所述空闲物理存储块中之后,所述方法还包括:
将所述目标逻辑存储块号写入到所述空闲物理存储块的首页备用区的块号标识位;
根据所述空闲物理存储块号更新所述物理-逻辑映射表;
擦除所述目标物理存储块号的数据后并标记到所述空闲物理存储块表中。
7.如权利要求1所述的数据存储方法,其特征在于,在所述控制器根据每个正常物理存储块的首页备用区的块号标识位,建立物理-逻辑映射表、空闲物理存储块表和建立物理-暂存映射之前,所述方法还包括:
根据每个物理存储块中首页备用区的好坏块标识位和次页备用区的好坏块标识位,获取当前所有正常物理存储块;
根据预设的逻辑存储块,将每个逻辑块号依次写入相对应正常物理存储块的首页备用区的块号标识位。
8.一种基于权利要求1所述的数据存储方法的数据存储模块,其特征在于,所述模块包括:
存储器、控制器、掉电检测电路、缓冲电源和USB接口;其中,所述存储器包括多个物理存储块,每个物理存储块包括多个页,每个页包括用于存储数据的数据存储区和用于管理数据的页备用区,所述备用区包括好坏块标识位、块号标识位、暂存物理块号标识位、暂存块内地址标识位和暂存数据长度标识位;
所述控制器分别与所述缓冲电源、所述存储器、所述掉电检测电路和所述USB接口相连;
所述掉电检测电路分别与外部电源和缓冲电源相连,用于检测所述外部电源是否发生掉电,还用于当检测到所述外部电源发生掉电时输出掉电信号到所述缓冲电源和所述控制器,使所述缓冲电源根据所述掉电信号为所述控制器提供电能,还使所述控制器根据所述掉电信号将待存储数据存储在暂存物料存储块中。
9.一种无人机控制装置,其特征在于,所述控制装置集成权利要求8所述的数据存储模块。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180117.1A CN116225326A (zh) | 2023-02-17 | 2023-02-17 | 数据存储方法、模块、无人机控制装置和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180117.1A CN116225326A (zh) | 2023-02-17 | 2023-02-17 | 数据存储方法、模块、无人机控制装置和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225326A true CN116225326A (zh) | 2023-06-06 |
Family
ID=86580202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310180117.1A Pending CN116225326A (zh) | 2023-02-17 | 2023-02-17 | 数据存储方法、模块、无人机控制装置和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225326A (zh) |
-
2023
- 2023-02-17 CN CN202310180117.1A patent/CN116225326A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8006030B2 (en) | Memory controller for identifying the last valid page/segment in a physical block of a flash memory | |
US7065608B2 (en) | Apparatus for recording data and method for writing data to flash memory | |
CN101558452B (zh) | 用于在闪速eeprom存储页中重构可靠性数据的方法和装置 | |
US8275927B2 (en) | Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method | |
US20080104361A1 (en) | Storage Device, Memory Managing Apparatus, Memory Managing Method, and Program | |
US6839798B1 (en) | Flash memory capable of storing frequently rewritten data | |
CN106354662B (zh) | 一种nand flash数据存储方法 | |
CN112347002B (zh) | flash数据的保存方法、***、计算机设备及存储介质 | |
CN111324290A (zh) | 一种存储器 | |
CN104021089A (zh) | 快闪存储器控制芯片与存储装置以及快闪存储器控制方法 | |
CN112988611A (zh) | 非易失性存储器的数据写入方法、终端和可读存储介质 | |
CN114089915B (zh) | 基于flash存储器的文件追加写操作方法及装置 | |
US20200167235A1 (en) | Data processing method for solid state drive | |
JP4661369B2 (ja) | メモリコントローラ | |
CN116225326A (zh) | 数据存储方法、模块、无人机控制装置和可读存储介质 | |
JP2661131B2 (ja) | 情報記憶読出方法とその装置 | |
CN103389943A (zh) | 控制装置、存储装置及存储控制方法 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
CN111090542A (zh) | 基于异常掉电的异常块识别方法、装置及计算机设备 | |
JP3978720B2 (ja) | データ記憶方法 | |
CN112988037A (zh) | 静态磨损均衡方法、终端和计算机可读存储介质 | |
CN110795275A (zh) | 基于异常掉电过程中的异常块识别方法和装置 | |
CN114518834B (zh) | 一种信息存储方法、装置及电子设备 | |
CN110427161B (zh) | 一种用于串行闪存的数据存储方法 | |
CN113625964B (zh) | 基于NandFlash的顺序存储方法、电子设备和存储介质 |
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 |