CN110362417B - Fpga实现断电续存功能的系统及方法 - Google Patents

Fpga实现断电续存功能的系统及方法 Download PDF

Info

Publication number
CN110362417B
CN110362417B CN201910527857.1A CN201910527857A CN110362417B CN 110362417 B CN110362417 B CN 110362417B CN 201910527857 A CN201910527857 A CN 201910527857A CN 110362417 B CN110362417 B CN 110362417B
Authority
CN
China
Prior art keywords
written
module
data
power
page
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.)
Active
Application number
CN201910527857.1A
Other languages
English (en)
Other versions
CN110362417A (zh
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.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
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 Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN201910527857.1A priority Critical patent/CN110362417B/zh
Publication of CN110362417A publication Critical patent/CN110362417A/zh
Application granted granted Critical
Publication of CN110362417B publication Critical patent/CN110362417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0751Error or fault detection not based on redundancy
    • 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

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

本发明公开了一种FPGA实现断电续存功能的系统及方法,针对在弹箭飞行过程中可能产生瞬时断电的故障,导致主控器中应写地址的丢失,从而引起重新上电后数据无法写入Flash芯片等问题,以FPGA为主控制器,利用折半查找的算法,在上电复位后快速找出存储芯片中已写过的范围,保证上电后所传输数据能够沿续断电前的已写页后写入,从而避免数据无法写入Flash等问题,提高数据存储器记录数据的可靠性。

Description

FPGA实现断电续存功能的系统及方法
技术领域
本发明涉及系统断电后重新上电的数据续存领域,具体是一种FPGA实现断电续存功能的系统及方法。
背景技术
弹箭飞行过程中的各运动参数对弹体的控制与校准十分重要,需要利用数据采集存储器对该飞行参数进行记录。而在弹箭飞行过程中可能会产生瞬时断电的故障,导致主控器中应写地址的丢失,从而引起重新上电后数据无法写入Flash芯片等问题,而这样的情况是不利于对数据的记录以及后续的分析工作。
现有技术是对Flash的扇区进行顺序检测,即从存储区域开始扇区的第一步开始,一步一步往下找,直到找到还没有进行存储的那一扇区,然后在对当前数据进行存储。这种方式需要对当前所有存储的扇区进行检测,当存储数据多时,它需要耗费的时间会很多,会降低效率,当弹箭在飞行过程中所要的时间很有限,当断电恢复后,现有技术的断电续存的方法会造成数据的遗失。
发明内容
本发明的目的在于提供一种FPGA实现断电续存功能的系统及方法。
实现本发明目的的技术解决方案为:一种FPGA实现断电续存功能的系统,包括上电复位模块、折半查找模块、SPI读写控制模块、数据FIFO模块;其中:
上电复位检测模块与折半查找模块相连,上电复位检测模块检测到上电后,发送至折半查找模块以开始断电前已写页数的查找;
折半查找模块分别与SPI读写控制模块以及数据FIFO模块相连,折半查找模块通过控制SPI读写控制模块进行Flash存储内容的读取,并使用折半查找算法找到已写页数;
数据FIFO模块与串口接收端、SPI读写控制模块相连,当折半查找模块找到已写页数后,将已写页数信息以及准许写入Flash的信号传送给数据FIFO,可保证串口数据在断电前已写页数后继续写入Flash,从而完成断电续存的功能。
所述折半查找模块,其输入端连接上电复位检测模块,用于接收启动查找信号,其输出端连接数据FIFO模块以及SPI控制读写模块,使用折半查找算法找到已写页数由一个状态机实现,定义首页与尾页的变量,通过折半逼近,最终找出断电前的已写页数;找到后,将已写页数信息和准许接收数据信号输出至数据FIFO模块,使得系统继续保存数据。
一种FPGA实现断电续存功能的方法,包括以下步骤:
数据由串口传输至FPGA的缓存区,当数据量满足Flash一页的存储字节量时,通过FPGA内的SPI读写控制模块写入至Flash芯片内;
当该存储系统瞬时断电后的重新上电时,触发FPGA内的上电复位模块,上电复位模块开始启动折半查找模块对断电前Flash芯片已写页数进行查找;
当折半查找模块查找出断电前已写页数时,即将已写页数参数传递给SPI读写控制模块,至此,系统将缓存区的数据沿续断电前的已写页之后写入Flash芯片,完成断电续存功能。
折半查找模块对断电前Flash芯片已写页数进行查找的具体步骤为:
(1)定义三个变量参数Min、Max、k,Min变量为Flash芯片的首页,Max变量为Flash芯片的尾页;
(2)k的取值为k=(Min+Max)/2;
(3)折半查找模块通过SPI读写控制模块查询Flash的第k页,对其进行是否写过的检测,若已写过数据,则转步骤(4),若未写过数据,则转步骤(5);
(4)第k页还未写入数据;则将Max变量赋予k值,Min变量不变,回到第(2)步;
(5)第k页已经写入数据,则将Min变量赋予k值,Max变量不变,回到第(2)步;
第k页已经写入数据,则将Min变量赋予k值,Max变量不变,并判断是否满足满足Max-Min=1的条件,若是,则查找的续存页数便为Max,即查找完成;否则,回到第(2)步。
本发明与现有技术相比,其显著优点:(1)本发明通过折半查找的方法,对断电前的Flash已存地址进行查找,使得数据能够延续在断电前的已写页数后保存;(2)折半查找算法相比于对地址进行的顺序遍历查找,缩短了查找时间,提高了效率。当已存数据量变得较多时,现有技术中的顺序查找速度会变得越来越慢,而本发明的折半查找方法不会受到较大影响。
附图说明
图1为本发明的系统结构图。
图2为本发明的折半查找算法流程图。
具体实施方式
针对在弹箭飞行过程中可能产生瞬时断电的故障,导致主控器中应写地址的丢失,从而引起重新上电后数据无法写入Flash芯片等问题,本发明以FPGA为主控制器,利用折半查找的算法,在上电复位后快速找出存储芯片中已写过的范围,保证上电后所传输数据能够沿续断电前的已写页后写入,从而避免数据无法写入Flash等问题。
下面结合本说明书附图对本发明作进一步描述。
参照附图1,图1是本发明的系统结构图。数据由串口传输至FPGA的缓存区,当数据量满足Flash一页的存储字节量时,该缓存模块遵循先进先出(First in First out)的规则。
在数据缓存区中达到Flash一页的字节数量后,然后数据通过FPGA内的SPI读写控制模块写入至Flash芯片内,顺序写入Flash芯片中的每页。而本发明所使用的Flash芯片为W25Q系列,该系列Flash的特征为:一页所存储的字节数为256Byte,当某页没有写入过数据时,该页256Byte的值全为0xFF。
在数据传送过程中发生瞬时断电时,导致主控器FPGA中应写Flash地址的丢失。在恢复上电后,触发FPGA内的上电复位模块,启动FPGA折半查找出断电前的应写Flash地址。
折半查找的方法参照图2,图2是本发明的折半查找算法流程图。联系具体Flash芯片W25Q来说明该算法的运行流程。
首先给定初始状态,将Flash首页的地址设为Min,末页设为Max。因为Flash在没写入数据时,其中存储的数据都为FF,我们定义k=(Min+Max)/2,对k页中的数据进行判断,若它的256个字节数据都为FF则将k值赋给Max;若它的它的256个字节数据不全为FF则将k的值赋给Min。
接着将赋了新地址的Min或者Max带回到初始的状态,进行下一次的循环。通过不断的循环,当初始状态中,Max及Min满足Max-Min=1这个条件时,即完成了折半查找,而Max的值就是要续写的页数地址。
接着,按照图1中的流程,将串口接收到的数据传给数据缓存区,再通过读写控制将数据不断的传输到查找到的flash的Max的地址中,从而实现断电续存的功能。
本发明通过折半查找的方法,对重新上电的FPGA存储地址进行折半查找,使得数据能够继续保存,相比于现有技术对地址进行从头到尾的顺序检测,缩短了时间,提高了查找效率。而且,当Flash中的已写数据量越来越大时,顺序查找方法的查找速度会越来越慢,但折半查找方法的查找速度受此情况影响较小。另外,具体实施例中折半查找算法并不局限于该类芯片,可以针对具体Flash芯片一页规定的字节数以及其没有写过数据的特征作判断条件的调整,来使用折半查找算法。

Claims (4)

1.一种FPGA实现断电续存功能的系统,其特征在于:包括上电复位模块、折半查找模块、SPI读写控制模块、数据FIFO模块;其中:
上电复位检测模块与折半查找模块相连,上电复位检测模块检测到上电后,发送至折半查找模块以开始断电前已写页数的查找;
折半查找模块分别与SPI读写控制模块以及数据FIFO模块相连,折半查找模块通过控制SPI读写控制模块进行Flash存储内容的读取,并使用折半查找算法找到已写页数;
数据FIFO模块与串口接收端、SPI读写控制模块相连,当折半查找模块找到已写页数后,将已写页数信息以及准许写入Flash的信号传送给数据FIFO模块,保证串口数据在断电前已写页数后继续写入Flash,从而完成断电续存的功能。
2.根据权利要求1所述的FPGA实现断电续存功能的系统,其特征在于:所述折半查找模块,其输入端连接上电复位检测模块,用于接收启动查找信号,其输出端连接数据FIFO模块以及SPI控制读写模块,使用折半查找算法找到已写页数由一个状态机实现,定义首页与尾页的变量,通过折半逼近,最终找出断电前的已写页数;找到后,将已写页数信息和准许接收数据信号输出至数据FIFO模块,使得系统继续保存数据。
3.一种FPGA实现断电续存功能的方法,其特征在于,包括以下步骤:
数据由串口传输至FPGA的缓存区,当数据量满足Flash一页的存储字节量时,通过FPGA内的SPI读写控制模块写入至Flash芯片内;
当存储系统瞬时断电后的重新上电时,触发FPGA内的上电复位模块,上电复位模块开始启动折半查找模块对断电前Flash芯片已写页数进行查找;
当折半查找模块查找出断电前已写页数时,即将已写页数参数传递给SPI读写控制模块,至此,系统将缓存区的数据沿续断电前的已写页之后写入Flash芯片,完成断电续存功能。
4.根据权利要求3所述的FPGA实现断电续存功能的方法,其特征在于,折半查找模块对断电前Flash芯片已写页数进行查找的具体步骤为:
(1)定义三个变量参数Min、Max、k,Min变量为Flash芯片的首页,Max变量为Flash芯片的尾页;
(2)k的取值为k=(Min+Max)/2;
(3)折半查找模块通过SPI 读写控制模块查询Flash的第k页,对其进行是否写过的检测,若已写过数据,则转步骤(4),若未写过数据,则转步骤(5);
(4)第k页还未写入数据;则将Max变量赋予k值,Min变量不变,回到第(2)步;
(5) 第k页已经写入数据,则将Min变量赋予k值,Max变量不变,回到第(2)步;
第k页已经写入数据,则将Min变量赋予k值,Max变量不变,并判断是否满足Max-Min=1的条件,若是,则查找的续存页数便为Max,即查找完成;否则,回到第(2)步。
CN201910527857.1A 2019-06-18 2019-06-18 Fpga实现断电续存功能的系统及方法 Active CN110362417B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910527857.1A CN110362417B (zh) 2019-06-18 2019-06-18 Fpga实现断电续存功能的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910527857.1A CN110362417B (zh) 2019-06-18 2019-06-18 Fpga实现断电续存功能的系统及方法

Publications (2)

Publication Number Publication Date
CN110362417A CN110362417A (zh) 2019-10-22
CN110362417B true CN110362417B (zh) 2022-09-27

Family

ID=68216346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910527857.1A Active CN110362417B (zh) 2019-06-18 2019-06-18 Fpga实现断电续存功能的系统及方法

Country Status (1)

Country Link
CN (1) CN110362417B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324917A (zh) * 2020-03-31 2020-06-23 南京辉腾电子科技有限公司 一种fpga实现的断电续存功能的系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100014330A1 (en) * 2008-07-16 2010-01-21 Acbel Polytech Inc. Ac to dc power converter with hold-up time function
US20160023773A1 (en) * 2014-07-23 2016-01-28 Hamilton Sundstrand Corporation Hybrid electric pulsed-power propulsion system for aircraft
CN106055274A (zh) * 2016-05-23 2016-10-26 联想(北京)有限公司 一种数据存储方法、数据读取方法及电子设备
CN106649142A (zh) * 2016-12-02 2017-05-10 北京航天长征飞行器研究所 一种具有断电续存功能的高速存储器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100014330A1 (en) * 2008-07-16 2010-01-21 Acbel Polytech Inc. Ac to dc power converter with hold-up time function
US20160023773A1 (en) * 2014-07-23 2016-01-28 Hamilton Sundstrand Corporation Hybrid electric pulsed-power propulsion system for aircraft
CN106055274A (zh) * 2016-05-23 2016-10-26 联想(北京)有限公司 一种数据存储方法、数据读取方法及电子设备
CN106649142A (zh) * 2016-12-02 2017-05-10 北京航天长征飞行器研究所 一种具有断电续存功能的高速存储器

Also Published As

Publication number Publication date
CN110362417A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
EP2187315A1 (en) Method for accessing data in flash memory and data accessing controller
US8010770B2 (en) Caching device for NAND flash translation layer
CN101719103B (zh) 基于存储设备的信息处理方法以及存储设备
US10430331B2 (en) Reconstruct drive for dynamic resizing
US7571276B2 (en) Read operation for semiconductor memory devices
CN106021120B (zh) 存储系统及其操作方法
CN106802867B (zh) 固态储存装置及其数据编程方法
JP2006172458A (ja) 不揮発性保存装置にマルチメディアデータをブロック単位で保存する方法及び装置
US9449660B2 (en) Sampling circuit module, memory control circuit unit, and method for sampling data
US8775742B2 (en) System and method for cache management in a DIF enabled storage system
US20120011299A1 (en) Memory device with dynamic controllable physical logical mapping table loading
US9606811B2 (en) Operating method of data storage device
US20040193864A1 (en) System and method for actively booting a computer system
TW202009936A (zh) 快閃記憶體控制器及相關的存取方法及電子裝置
CN110362417B (zh) Fpga实现断电续存功能的系统及方法
TW202011411A (zh) 快閃記憶體控制器及相關的存取方法及電子裝置
US9928177B2 (en) Managing method for cache memory of solid state drive
CN111026325B (zh) 闪存控制器、闪存控制器的控制方法及相关的电子装置
TWI534814B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN111324917A (zh) 一种fpga实现的断电续存功能的系统及方法
CN113010236B (zh) 一种程序执行方法、装置、设备及存储介质
CN109729730B (zh) 写入信息的方法和装置
US20140089356A1 (en) Data storage device and operating method thereof
CN112673364A (zh) 数据传输方法、数据传输装置、电子设备和存储介质
CN113836059B (zh) 一种应用于eeprom存储器的控制系统

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
GR01 Patent grant
GR01 Patent grant