处理流水文件的方法及系统的制作方法

文档序号:10488689阅读:180来源:国知局
处理流水文件的方法及系统的制作方法
【专利摘要】本发明公开了一种处理流水文件的方法及系统,包括:按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改状态标志;根据扇区存储数据的状态标志,进行擦除/重写入操作;根据剩余空闲扇区数量,进行空间整理。通过上述方式,本发明在维修更换存储芯片时不会影响和破坏到用户程序文件,提升系统的稳定性的同时可提高使用寿命。
【专利说明】
处理流水文件的方法及系统
技术领域
[0001 ]本发明涉及文件存储技术领域,尤其是涉及一种处理流水文件的方法及系统。
【背景技术】
[0002] 金融POS机作为银行卡消V费使用的终端,需要保存记录交易消费的流水信息,方 便操作员打印流水账单、重打历史票据、同步支付后台系统流水账信息等。
[0003] 通常一台POS-天的交易次数平均在600次内,每次交易的流水记录在IKB字节内, 因此金融POS机的交易流水账需要保存固定数量记录,根据需求可以设计保存5000-10000 条记录;且通常一台POS的保修期1年,有效使用寿命在5-10年,决定了金融POS机的交易流 水存储介质使用寿命不少于10年。
[0004] 当金融POS机连接支付后台完成结算后会清空本地流水文件记录;金融POS厂家会 把流水账存放在普通NandFlash文件系统中,利用FAT文件系统管理,且金融POS常规应用程 序和系统程序文件通常也保存在NandFlash为介质的FAT文件系统中。
[0005] 但是上述方案存在如下缺点:
[0006] 1、金融POS流水记录文件通常会和常规应用程序和系统程序文件保存在同一个存 储介质下,由于流水记录的频繁操作和写入掉电问题,偶尔造成文件系统的崩溃,会影响到 整个POS系统的稳定性;
[0007] 2、通用传统FAT16文件系统对掉电时候的数据保护有时候会丢失文件且无法恢复 最后一次操作;
[0008] 3、由于金融POS的流水记录信息的频繁操作,会加速存储介质的老化寿命。

【发明内容】

[0009] 本发明所要解决的技术问题是:提供一种金融POS流水文件系统,采用Serial Flash作为存储介质,循环存储POS交易的流水记录信息。提高POS系统稳定性,延长介质使 用寿命。
[0010] 为了解决上述技术问题,本发明采用的技术方案为:提供一种处理流水文件的方 法,包括:
[0011]按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改状态标志;
[0012] 根据扇区存储数据的状态标志,进行擦除/重写入操作;
[0013] 根据剩余空闲扇区数量,进行空间整理。
[0014] 为解决上述问题,本发明还提供一种处理流水文件的系统,包括:
[0015] 写入模块,用于按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改状 态标志;
[0016] 操作模块,用于根据扇区存储数据的状态标志,进行擦除/重写入操作;
[0017] 整理模块,用于根据剩余空闲扇区数量,进行空间整理。
[0018] 本发明的有益效果在于:区别于现有技术,本发明通过向Serial Flash存储介质 的DATA扇区写入数据,并修改状态标志;进行擦除/重写入操作;最后,根据剩余空闲扇区数 量,进行空间整理。通过上述方式,本发明在维修更换存储芯片数据时不会影响和破坏到用 户程序文件,提升系统的稳定性的同时可提高使用寿命。
【附图说明】
[0019] 图1为本发明方法实施例一的流程示意图;
[0020] 图2为本发明系统实施例二的结构示意图;
[0021] 图3为本发明具体实施例的各扇区的空间分配表。
【具体实施方式】
[0022]为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附 图予以说明。
[0023]本发明最关键的构思在于:采用Serial Flash作为存储介质,采用循环存储方案, 用于保存POS交易的流水记录信息。
[0024]请参照图1,本发明实施例一提供一种处理流水文件的方法,包括:
[0025] Sl:按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改状态标志;
[0026] S2:根据扇区存储数据的状态标志,进行擦除/重写入操作;
[0027] S3:根据剩余空闲扇区数量,进行空间整理。
[0028]其中,本发明采用Serial Flash作为存储介质,因此将Serial Flash作为存储介 质后,划分为FDT扇区、STATUS扇区、BACK扇区及DATA扇区;
[0029]在Π)Τ扇区文件系统存放格式化信息及文件分配表FDT信息,并初始化。
[0030] 步骤Sl具体为:
[0031]写入数据前,设置STATUS扇区状态标志为1;
[0032]按顺序向Serial Flash存储介质的DATA扇区的空白区写入数据,并存储;
[0033] 写入LRC校验值,并修改STATUS扇区状态标志为0。
[0034] 步骤S2具体为:
[0035] 设置数据状态标志1为有效,状态标志0为无效;
[0036] 擦除无效状态的数据,并将状态标志1修改为0;
[0037] 根据状态标志,选择擦除次数小于阈值的扇区,作为备用扇区;
[0038] 在备用扇区中,将数据最少扇区内的数据迀移到剩余空闲扇区,并将原数据状态 标志设为无效;
[0039] 擦除所述数据最少的备用扇区内记录,设为空闲扇区,并进行重新写入操作。
[0040] 在擦除扇区数据后,记录该扇区的累计擦除次数,并重新设定该扇区的擦除寿命。 [0041 ]优选地,在写入数据前,还需设置掉电保护;
[0042]读取BACK扇区数据及STATUS扇区状态标志,进行掉电保护的检测及恢复。
[0043]对应地,本发明实施例二提供一种处理流水文件的系统100,包括:
[0044] 写入模块110,用于按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改 状态标志;
[0045] 操作模块120,用于根据扇区存储数据的状态标志,进行擦除/重写入操作;
[0046] 整理模块130,用于根据剩余空闲扇区数量,进行空间整理。
[0047]其中,还包括划分模块101,用于采用Serial Flash作为存储介质,并划分为FDT扇 区、STATUS扇区、BACK扇区及DATA扇区;
[0048]初始化模块102,用于在Π)Τ扇区文件系统存放格式化信息及文件分配表FDT信息, 并初始化。
[0049] 还包括重设模块140,用于在擦除扇区数据后,记录该扇区的累计擦除次数,并重 新设定该扇区的擦除寿命;以及
[0050] 保护模块150,用于写入数据前,设置掉电保护;通过读取MCK扇区数据及STATUS 扇区状态标志,进行掉电保护的检测及恢复。
[0051] 为方便理解,以下结合附图1~3,通过一个具体实施例进行说明。
[0052] Serial Flash具有快速擦除和字节编程的能力,本方法以SST39VF040为参考,最 小的擦除单位为扇区,一个扇区大小512KB(不同芯片的扇区大小不同,本发明以512KB为 例),每一位只能从1写为0,若要从0写成1,则必须擦除整个扇区,每个扇区的擦除寿命最小 1万次,多数为10万次(典型值)。
[0053]本发明以金融POS流水文件系统的应用模型为参考设计,选择最适合客户的日常 操作习惯为依据,总结出产品的设计需求,每天平均600笔写记录,每条记录253字节(存储 时候取整到255字节),允许每天有3次的文件创建和删除,允许每天修改或删除20笔记录, 以上需求综合评估出的Serial Flash使用寿命如图2,保证了10年的使用寿命需求。
[0054]本发明提供的是一种金融POS流水文件系统,采用Serial Flash作为存储介质,采 用循环存储方案,用于保存POS交易的流水记录信息。
[0055] 与现有技术相比,
[0056] (1)本发明采用"状态标志"方法来保证写入数据的可靠,这是为了解决掉电问题。 具体可通过下述三种方法所述:
[0057] 1)、"状态标志"的写入是可靠的;准确的说FLASH的写入只有保证"位写"的可靠, "状态标志"仅一个字节,其状态的变化为一个位的改变,因此,符合FLASH的可靠标准; [0058] 2)、通过"状态标志"来保证一块或多块数据的写入是可靠的;上述提到"状态标 志"的写入是可靠的,因此在数据写入前后通过先写"状态标志"来保证数据的写入是可靠 的;"校验"采用LRC校验,是用来防止存储的数据被非法修改,"校验"内容不包括"状态标 志";
[0059] 3)、通过"掉电保护"来保证多块数据的写入是可靠的;在具体的写操作前先写"掉 电保护","掉电保护"本身是一个带"状态标志"及"校验"的数据块,因此,"掉电保护"的写 入是可靠的,数据块的写操作完成后,再修改"掉电保护"的状态。
[0060] (2)通过循环存储方案,有效利用存储空间,降低老化速度,这可有效解决老化问 题。具体地:
[0061 ]状态标志用于表示"记录"的"有效"、"无效"状态,如果记录无效时将记录的数据 擦除,由于Flash擦除以扇区为单位(512kB,而记录是256B),必然增加擦除的次数,同时,会 造成排在前面的扇区使用频率高,而拍在后面的扇区使用频率低,最终导致使用频率高的 扇区急速老化,影响整体寿命。
[0062]本本发明具体实施例通过每条记录的第1个字节最高bit作为记录有效的标志,1 表示有效,O表示无效。当记录无效时,只需将状态从1写为O。
[0063] 通过状态标志,可以查询到整个Flash中数据区存储的记录是否有效。在添加记录 时,从空白区开始存储,直到整个数据区空间使用即将完毕(如剩余1个扇区),则进行存储 空间整理,空间整理方法如下:
[0064] 通过状态标志,选择擦除次数未达到预先设定的阈值的扇区中,有效记录最少的 扇区,将有效的记录数据移至剩余的空闲扇区,并将原记录的状态记录为无效,因而原来已 使用的扇区所有记录都将是无效的,此时可以进行擦除,使得该扇区变为空闲状态,可以继 续存储数据。在扇区擦除时,记录该扇区的累计擦除次数,预先设定的阈值按照擦除寿命进 行设定。例如典型值为10万次,设定阈值为8万次,那么当累计擦除次数到达8万次时,则表 示已接近擦除寿命了,优先使用其他扇区进行存储。当所有扇区均达到设定的阈值时,需要 将阈值提升,例如从8万提升到9.6万等等,使得所有扇区整体使用寿命延长。
[0065] (3)掉电保护,用于恢复最后一次操作;具体地:
[0066]通过定义BACK扇区,对文件系统部分的操作进行备份,在掉电时,重启后可以通过 BACK扇区读取数据,恢复最后一次操作。
[0067]除此之外,本发明根据POS的设计需求可以选择(扇区大小)512KB存储容量的 Serial Flash ,Serial Flash属于低功耗的快速闪存,采用SPI串行总线通讯,所需的PIN接 口较少,不会占用太多的PCB空间,同时Serial Flash的市场应用成长快速,使得其价格在 POS产品的制造成本上较为低廉。
[0068] 具体实施如下:
[0069] (1)将整个Flash扇区分别进行定义为以下4种扇区:
[0070] "FDT扇区":用于存放文件系统的格式化信息和文件分配表FDT信息;
[0071 ] "STATUS扇区":用于存放文件系统的各种操作状态,以实现掉电保护;
[0072] "BACK扇区":用于存放文件系统部分操作的扇区备份,以实现掉电保护;
[0073] "DATA扇区":用于存放文件的记录信息。
[0074] (2)进行相关操作。包括:
[0075] 1)进行初始化(仅进行一次),包括Π)Τ扇区的文件系统的格式化信息和文件分配 表FDT信息;
[0076] 其余扇区均全部为1 (未有任何操作)。
[0077] 2)需要写入"记录"时,按顺序写入"DATA扇区";每个记录占用256字节。
[0078] 在写之前,在STATUS扇区的对应状态标志为1,在写完成时,写入LRC校验值,同时 将状态标志写为0。假如在此过程中发生了掉电,那么在重启之后可以通过BACK扇区读取到 最后一次操作,并且可能遇到两种情况:
[0079] a、状态标志为1,表示最后一次操作未完成,该记录是无效的,可将记录状态标志 写为〇。
[0080] b、状态标志为0,表示最后一次操作已完成,该次掉电未造成影响。
[0081] 作为对比,如果没有采用状态标志,在重启后将不知道掉电前最后一次记录是否 写成功,如果不成功,而记录的标志又显示为"有效",那么对该记录的使用将可能引起不可 预知的问题。
[0082] 3)需要删除"记录"时,将对应记录的标志写为0。
[0083] 4)修改记录时,将原记录的标志写为0,同时按顺序将新记录进行"写"操作。
[0084] 5)当剩余的空闲扇区很少时,例如只剩下1个,进行空间整理(详细见前文所述), 使得有足够的空间可以继续使用。
[0085] 6)当检测到扇区存储的记录全部为无效状态时,进行擦除操作,使得该扇区可以 继续使用,同时累计擦除次数增加1。
[0086] 7)在每次重启时,进行读取MCK扇区数据及STATUS扇区的状态,进行掉电保护相 关的检测与恢复。
[0087] Serial Flash具有快速擦除和字节编程的能力,如在实际中,以SST39VF040为参 考,最小的擦除单位为扇区,一个扇区大小512KB,每一位只能从1写为0,若要从0写成1,则 必须擦除整个扇区,每个扇区的擦除寿命最小1万次,多数为10万次(典型值)。
[0088] 本发明以金融POS流水文件系统的应用模型为参考设计,选择最适合客户的日常 操作习惯为依据,总结出产品的设计需求,每天平均600笔写记录,每条记录253字节(存储 时候取整到255字节),允许每天有3次的文件创建和删除,允许每天修改或删除20笔记录, 以上需求综合评估出的Serial Flash使用寿命保证了 10年的使用寿命需求。
[0089] 本发明基于FAT的原理来安排各个扇区功能,根据图3对各个扇区功能进行说明。
[0090] "FDT扇区":用于存放文件系统的格式化信息和文件分配表FDT信息;
[0091 ] "STATUS扇区":用于存放文件系统的各种操作状态,以实现掉电保护;
[0092] "BACK扇区":用于存放文件系统部分操作的扇区备份,以实现掉电保护;
[0093] "DATA扇区":用于存放文件的记录信息。
[0094]作为流水文件系统,保证写入Serial Flash的流水记录可靠需要考虑两种异常故 障:掉电或者Serial Flash已坏;
[0095]本设计采用三种方法来保证写入数据的可靠;
[0096]方法一、"状态标志"的写入是可靠的;准确的说FLASH的写入只有保证"位写"的可 靠,"状态标志"仅一个字节,其状态的变化为一个位的改变,因此,符合FLASH的可靠标准; [0097]方法二、通过"状态标志"来保证一块或多块数据的写入是可靠的;"方法一"提到 "状态标志"的写入是可靠的,因此在数据写入前后通过先写"状态标志"来保证数据的写入 是可靠的;"校验"采用LRC校验,是用来防止存储的数据被非法修改,"校验"内容不包括"状 态标志";
[0098]方法三、通过"掉电保护"来保证多块数据的写入是可靠的;在具体的写操作前先 写"掉电保护","掉电保护"本身是一个带"状态标志"及"校验"的数据块,因此,"掉电保护" 的写入是可靠的,数据块的写操作完成后,再修改"掉电保护"的状态。
[0099]对FLASH的擦除操作也存在掉电或FLASH已坏的故障;保证擦除的可靠,可以通过 扇区判空函数来实现,所谓空扇区是刚擦除后的扇区,所有字节都为OxFF,当有数据写入后 就不再是空扇区了,如果需要重复写入就要再次进行擦除操作。在启用一块空的新扇区时, 通过调用扇区判空函数(遍历整个扇区数据是否全为OxFF)来保证该扇区是空的。以下列举 几种扇区的擦除:
[0100] 1)、FDT SECT:整个擦除都处于掉电保护过程;
[0101] 2 )、STATUS SECT:使用扇区的第一个状态前,对扇区判空,非空则擦除,再判空,成 功继续,不成功返回FLASH ERROR;
[0102] 3)、BACK SECT:使用首个备份扇区前,对所有的备份扇区判空,非空则擦除,再判 空,成功继续,不成功返回FLASH ERROR;
[0103] 4)、DATA SECT:两种擦除情况,一是改写记录,此时处于掉电保护过程;二是无空 数据扇区分配时擦除所有删除数据扇区,在中途掉电后,重新上电时重新统计空数据扇区, 到没有可用空数据扇区时,再对删除数据扇区进行擦除操作(这也可以作为判断是否做掉 电保护的依据)。
[0104]对流水文件系统的操作接口,设计为类普通文件系统的接口,包含:
[0105] 1)流水文件系统初始化接口;
[0106] 2)格式化文件系统接口;
[0107] 3)检查格式化状态接口;
[0108] 4)创建文件接口;
[0109] 5)删除文件接口;
[0110] 6)打开文件接口;
[0111] 7)关闭文件接口;
[0112] 8)写文件记录接口,包含修改文件记录;
[0113] 9)删除文件记录接口;
[0114] 10)读文件记录接口;
[0115] 11)查找文件记录接口,允许按照关键字进行记录查找;
[0116] 流水文件系统的运行建立在Serial Flash的驱动之上,对应的Flash驱动接口如 下:
[0117] 1)擦除一个扇区,内部判扇区是否为空,若为空则直接返回成功;
[0118] 2)判断指定的FLASH扇区是否为空;
[0119] 3)按字节编程写入接口;
[0120] 4)按扇区编程写入接口;
[0121] 5)按字节读取接口;
[0122] 6)按扇区读取接口;
[0123] 7)读取Serial Flash ID接口,判别是否为兼容Flash;
[0124] 在应用本发明所述方案后,各扇区的使用寿命计算如下:
[0125] 每个Flash扇区每天可写次数: Γ ? 1000()次 … 0126] ---7 ?2.74次 10年X 365天
[0127] 作为流水文件系统的Π)Τ扇区寿命: 賴·志
[0128] ^~-κ 1 〇〇〇〇次二 80472-人《 220外: -+ 3次建立+ 3次删除+ 20次修改 16笔"欠
[0129] 作为流水文件系统的备份扇区寿命:
[0130]
[0131]
[0132]
[0133] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发 明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括 在本发明的专利保护范围内。
【主权项】
1. 一种处理流水文件的方法,其特征在于,包括: 按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改状态标志; 根据扇区存储数据的状态标志,进行擦除/重写入操作; 根据剩余空闲扇区数量,进行空间整理。2. 根据权利要求1所述处理流水文件的方法,其特征在于,还包括: 采用Serial Flash作为存储介质,并划分为FDT扇区、STATUS扇区、BACK扇区及DATA扇 区; 在FDT扇区文件系统存放格式化信息及文件分配表FDT信息,并初始化。3. 根据权利要求2所述处理流水文件的方法,其特征在于,按顺序向SerialFlash存储 介质的DATA扇区写入数据,并修改状态标志的步骤具体为: 写入数据前,设置STATUS扇区状态标志为1; 按顺序向Serial Flash存储介质的DATA扇区的空白区写入数据,并存储; 写入LRC校验值,并修改STATUS扇区状态标志为0。4. 根据权利要求1所述处理流水文件的方法,其特征在于,根据扇区存储数据的状态标 志,进行擦除/重写入操作的步骤具体为: 设置数据状态标志1为有效,状态标志〇为无效; 擦除无效状态的数据,并将状态标志1修改为0; 根据状态标志,选择擦除次数小于阈值的扇区,作为备用扇区; 在备用扇区中,将数据最少扇区内的数据迀移到剩余空闲扇区,并将原数据状态标志 设为无效; 擦除所述数据最少的备用扇区内记录,设为空闲扇区,并进行重新写入操作。5. 根据权利要求4所述处理流水文件的方法,其特征在于,在擦除扇区数据后,记录该 扇区的累计擦除次数,并重新设定该扇区的擦除寿命。6. 根据权利要求2所述处理流水文件的方法,其特征在于,还包括: 写入数据前,设置掉电保护; 读取BACK扇区数据及STATUS扇区状态标志,进行掉电保护的检测及恢复。7. -种处理流水文件的系统,其特征在于,包括: 写入模块,用于按顺序向Serial Flash存储介质的DATA扇区写入数据,并修改状态标 志; 操作模块,用于根据扇区存储数据的状态标志,进行擦除/重写入操作; 整理模块,用于根据剩余空闲扇区数量,进行空间整理。8. 根据权利要求7所述处理流水文件的系统,其特征在于,还包括: 划分模块,用于采用Serial Flash作为存储介质,并划分为Π)Τ扇区、STATUS扇区、BACK 扇区及DATA扇区; 初始化模块,用于在FDT扇区文件系统存放格式化信息及文件分配表FDT信息,并初始 化。9. 根据权利要求7所述处理流水文件的系统,其特征在于,还包括重设模块,用于在擦 除扇区数据后,记录该扇区的累计擦除次数,并重新设定该扇区的擦除寿命。10. 根据权利要求7所述处理流水文件的系统,其特征在于,还包括: 保护模块,用于写入数据前,设置掉电保护;通过读取BACK扇区数据及STATUS扇区状态 标志,进行掉电保护的检测及恢复。
【文档编号】G06F3/06GK105843558SQ201610180349
【公开日】2016年8月10日
【申请日】2016年3月25日
【发明人】吴卫东, 蒋声障
【申请人】福建联迪商用设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1