APP下载

具有断电续存功能固态存储器的设计*

2015-02-26菅少坤张会新

电子器件 2015年3期

菅少坤,张会新*

(1.电子测试技术国家重点实验室(中北大学),太原030051; 2.仪器科学与动态测试教育部重点实验室,太原030051)



具有断电续存功能固态存储器的设计*

菅少坤1,2,张会新1,2*

(1.电子测试技术国家重点实验室(中北大学),太原030051; 2.仪器科学与动态测试教育部重点实验室,太原030051)

摘要:针对飞行器飞行过程中因偶然瞬时断电而导致已存储的数据会被覆盖记录的问题而提出了具有断电续存功能固态存储器的设计方案。以FPGA作为主控芯片,RS-422与LVDS作为硬件通信手段,NAND型FLASH为存储核心,着重在交替双平面存储方式的基础上通过编程实现了断电续存功能。经大量实测数据的科学分析表明,具有断电续存功能固态存储器的设计已成功实现,解决了瞬时断电后数据会被覆盖记录的问题,满足某型号飞行器的需要。

关键词:固态存储器;断电续存; FPGA; LVDS; FLASH

项目来源:航天一院一部项目

随着科技的发展,飞行器的结构更加的复杂,飞行器飞行过程中出现偶然瞬时断电的概率越来越高,而偶然瞬时断电会导致已存储的数据被覆盖记录的问题,这种情况极其不利于科研。为此,设计了一种断电并恢复供电后在不覆盖原数据的基础上继续记录的固态存储器,同时可记录断电次数并通过断电次数拆分出相应瞬时断电后所记录的数据。在科研调试阶段,多次测试后只需重新供电一次即可读取全部数据,可以减轻供配电系统工作负担,减少科研资金,缩短科研时间。

1 固存总体结构设计

总体结构设计主要分4个模块,分别为:供电模块、采集模块、缓存模块、存储模块。供电模块中因采集图像数据速度过快易受干扰,故需要单独供电;采集模块主要采集PCM数据和图像数据,采集的PCM数据经电平转换后缓存到FPGA内部8KFIFO中,图像数据经数据隔离器后将数字信号缓存到FPGA内部45KFIFO中[1-2];缓存模块主要缓存PCM数据和图像数据,以便存储模块混编存储。总体结构如图1所示。

图1 总体结构框图

2 固存硬件设计

PCM数据接收模块采用技术非常成熟的RS-422通信接口,主控芯片为DS26C32,电平转换芯片为SN74LV4245,电平转换为5 V~3.3 V;图像数据接收模块采用速度远快于RS-422的LVDS通信,主控芯片为SN65LV1224,采集的数据经ADUM1400进行模数隔离,隔离后将数字信号发给FPGA。中心程序处理器采用XILINX生产的XC3S1400,总内存空间为72 kbyte,给PCM数据分配8 kbyte缓存空间,图像数据分配45 kbyte缓存空间,所以不需要配置外部FIFO即可实现数据的缓存[3-4]。

数据存储模块采用三星公司生产的K9WBG08U1M,该芯片内部封装了2个完全相同单元,各有一个片选信号CE控制,每个单元有4个plane,每个plane有2 048个block,每个block有64 个page,每个page存储空间为4 kbyte及128 byte的扩展存储区。所以每片K9WBG08U1M共8个plane,每排共8个block,共2×8192block块,4 Gbyte的存储空间。K9WBG08U1M平面结构示意图如图2所示。

图2 K9WBG08U1M平面结构示意图

3 功能逻辑设计

3.1边擦边写设计

为实现断电续存功能,必须解决两个问题,第1:如何找到上次断电时数据存储的最后地址; 第2:如何确定断电次数。存储器每次执行擦除命令时,有效数据和断电次数归零,所以为解决这两个问题,必须从数据存储特点入手。根据K9WBG08U1M双片选的结构特点(每片FLASH 有8个Plane),采用双片选interleave two-plane页编程方式存储数据,这样就形成了每8个平面的8个块为一个操作排列。block擦除操作时如果结合对片选信号的切换,那么即可实现双片选双平面block擦除的操作方式,这样就实现了一次擦除一排8块的特点[5-8]。双片选双平面block擦除的时序图如图3所示。

图3 双片选双平面block擦除时序图

对FLASH页编程时,根据擦除方式对interleave two-plane页编程方式进行改进,加入片选后即实现了双片选交替双平面页编程的特点,编程的平面示意图如图4所示。一般的边擦编写顺序为检查第N块,擦除第N块,页编程第N块;采用双片选边擦边写流程后,一次擦除8个block,然后采用图4所示的页编程方式,这样保证了每次页编程的数据块之后总有至少8个block的“FF”块。

图4 双片选交替双片面页编程平面示意图

3.2断电续存功能的实现

根据断电后数据存储的结尾处有“FF”块的特点,可以解决查找断电时所存储到的block块地址问题。为了方便查找断电次数,在Flash页编编程时每页数据的第1个字节(页计数之前)存储断电次数,然后采用检查无效块的方式来确定首段“FF”块的地址。最后,要找到“FF”块,只需根据双片选交替双平面页编程特别,查找第1个plane的每块的第1页的前一百个字节即可以完全确定断电地址和断电次数。由于无效块的初始数据也可能为FF,所以为了确保查找“FF”块的准确性,查找前应确定该块为有效块。需要注意的是:检查无效块时是检查所有block块,而查找“FF”块则是在有效块的基础上仅检查第1个 plane的所有block块。具体流程图如图5所示。

图5中FF_CNT表示FF字节计数器; POWER_ CNT_BUF用来缓存该块第1个字节的数据,即缓存断电次数; POWER_CNT用来存储本次断电次数; FLASHDO表示从FLASH中读出的数据; COUNTB为块地址计数器,提供检查无效块地址; COUNTB_ BUF用来缓存断电地址。

图5 查找断电地址与断电次数流程图

当FF_CNT= 0时表示从设定的块地址的首页读出来了第1个数据,将该值赋给POWER_CNT_ BEF是为了保持断电次数实时更新,且暂存以前断电次数。因存储的数据格式设定为每页第1个字节记录的是断电次数,所以读出来的第1个数据其值表示存储该块数据时的断电次数或者为FF,若该值不为FF则表示为断电次数。将缓存在POWER_ CNT_BUF的值赋给POWER_CNT,表示该值为存储该块数据时的断电次数,那么FF_CNT归零同时块地址计数器COUNTB加2(因同一个plane里连续block块地址值差2,如图2所示)进入下一个循环;若该值为FF则可能为所要查找的“FF”块,那么FF _CNT加1然后返回继续读该页的下一个字节,当连续读出了100个FF时,即可确定找到了“FF”块。找到“FF”块后,断电计数器POWER_CNT加1和FF_CNT归零,POWER_CNT加1后表示第几次断电并在本次存储数据的每页的第1个字节写入该值,为下次查找断电次数做准备。同时将查找到的“FF”块的块地址COUNTB赋给COUNTB_BUF作为本次存储数据的起始地址。

根据本设计页编程的特点,断电时每次FLASH中正在进行页编程的block块一般不能全部编程完成,而重新上电后会在下一块开始存储,所以两次连续断电所记录的数据之间一般存在一段“FF”数据,“FF”数据的页数为0~512(8×64)之间。因存储的有效数据为PCM数据和图像数据,且在FLASH中存储的方式为混编存储,所以回读上的数据需进行拆分处理,上位机根据不同的断电计数器的值将PCM数据和图像数据拆分到不同的数据包中,且数据包的文件名中显示了为第几次断电存储的数据。处拆分后的数据中不包含断电次数。根据拆分数据的结果也可以判断出断电续存功能是否完成,更可以直观的判断出存储数据期间存储器断电的次数。

3.3断电续存功能可靠性分析

固态存储器每次上电时首先进行初始化,初始化工作主要是找出并记录断电次数和存储的初始地址。为了不影响对固态存储器的正常操作,初始化固态存储器的时间必须在短时间内执行完,并且保存最后的断电记录地址和断电次数。

初始化所用时间计算。每个block检查2个page,一排block无效块检查所用时间Tb为: Tb= (tWB+tR+tRR+N×T)×8个block块×2个page = (194.46 ns+25 μs+20 ns+27×13.89 ns)×2×8 = 409 431.84 ns=0.41 ms;

检查一个block块是否为“FF”块所用时间Tf为:

tWB、tR、tRR对FLASH操作时所必须的延时,T为所选时钟晶振的周期,晶振为72 MHz,N为运行该程序所必须的时钟个数。所以查“FF”块所用时间最多为:

根据计算可知初始化时间最多为0.891 s,满足实际需求。

4 结果分析

以4次断电记录为例,4次断电应有5组数据(每组均包括一个图像数据包和一个PCM数据包),将回读数据经拆分处理后结果如图6所示。图中显示的第1个数据包为回读上来的原始数据,经过图中“拆分原始数据”指令后出现下面的5组数据。第1个括号里的数据表示回读数据的时间和数据编号,第2个括号里的值表示存储本文件中的数据时的断电次数,最后的数据表示为第几次记录的数据,以P开题的文件表示PCM数据,以T开头的文件表示图像数据。从图中所示结果与理论结果完全相同可知,该设计成功的实现了存储器的断电计数功能。

图6 4次断电存储后数据拆分结果

图7为第3次断电记录的结尾与第4次断电记录的开始,图中每行数据为28 672 byte(7×4 096数据),方框中的数据表示页计数,可知每行数据之间差值为7,椭圆中标注的为第3次断电和第4次断电的计数,箭头表示第4次断电的起始点,从页计数的值也可知断电计数功能的成功实现。图中两次数据之间有55页(每次的数据间隔可能不一样,但在0~512之间变化)的“FF”数据,这和理论情况完全相符。根据数据结果可知,该设计成功的查到了上次断电的地址并在不覆盖原数据的情况下完成了继续存储数据的功能。

图7 实测数据片段

5 结论

具有断电续存功能固态存储器已经应用到了某型号飞行器中,成功的解决了固态存储器记录数据时因偶然瞬时断电且恢复供电后重新记录会覆盖原有数据的问题。经实际测试表明,两次断电时间间隔至少在0.2 ms才可使系统准确的记录断电次数并查找到断电地址,而掉电时间在存储器使用年限之内(根据所选的FLASH而定,理论时间为8年)均可使系统完成预期目的。

参考文献:

[1]李大鹏.基于FPGA的高速LVDS接口实现[J].航空计算技术,2012(9) : 46-47.

[2]任伟.基于LVDS的高速数据传输装置的设计[J].科学技术与工程,2012(10) : 100-103.

[3]郭铮,张会新.基于FPGA的飞控系统数据存储器的设计与实现[J].计算机测量与控,2013(1) : 304-305.

[4]孙其瑞,熊继军,梁庭.基于MEGA2560的低成本飞控系统双存储方案的设计[J].电子器件,2014,37(3) : 45-46.

[5]丁海飞.基于双平面技术的固态存储器的设计与实现[D].太原:中北大学,2012: 5.

[6]郭鹏翔,祖静.基于FPGA与NAND闪存的固态存储系统设计[J].电子测试,2011(12) : 201-204.

[7]石亮.闪存存储系统的性能优化研究[D].中国科学技术大学,2013: 5.

[8]史玉健.基于FLASH的高速记录器的研究与实现[J].计算机测量与控制,2011(12) : 147-148.

菅少坤(1988-),男,汉族,河南省安阳市内黄县人,现就读于中北大学硕士研究生,主要研究方向为测试计量技术及仪器,976651004@ qq.com;

张会新(1980-),男,汉族,山西省太原市人,现就读于北京理工博士学位,主要研究方向为测试计量技术及仪器,52167135@ qq.com。

Applications of Two-Dimensional FFT Algorithm in Radar Signal Processing of LFMCW Based on FPGA*

LIU Wenbin1,ZHU Mingri1*,ZHENG Danping2,PAN Kai1,YAO Xin1
(1.School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin Guangxi 541004,China; 2.School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin Guangxi 541004,China)

Abstract:There is a certain degree of difficulty to detect moving targets by linear frequency modulated continuous wave(LFMCW),two-dimensional FFT target echo signal processing techniques to extract phase information,which can effectively suppress the fixed clutter,achieve the detection of moving targets.The implementation of signal processing for Doppler velocity radar with a FPGA chip and LFMCW Doppler radar signal processing principles are introduced.The data buffer,fast algorithm for the FFT sequence of real numbers,Hilbert transform,etc of the FPGA are described.Finally,the test results show that the two-dimensional FFT algorithm can extract the distance and speed of the target.

Key words:FPGA; FFT; LFMCW; target detection

中图分类号:TP333.1

文献标识码:A

文章编号:1005-9490(2015) 03-0592-05

收稿日期:2014-06-25修改日期: 2014-08-08

doi:EEACC: 7210G10.3969/j.issn.1005-9490.2015.03.024