一种智能卡数据更新方法

文档序号:9910750阅读:563来源:国知局
一种智能卡数据更新方法
【技术领域】
[0001 ]本发明涉及通信技术领域,尤其涉及一种智能卡数据更新方法。
【背景技术】
[0002] 目前,智能卡普遍采用的数据存储材料是FLASH,但是使用这种存储材料的产品有 两个缺点,一是按块改写造成耗时较长,因为在修改某个字节的内容时,必须先将该字节所 在的整个物理块全部擦除掉,例如原物理块为512B,全部擦除后所有字节变成了FF,然后再 写入该物理块的全部内容,整个过程耗时较长。另一个是可更新次数受限造成使用寿命短 暂,因为FLASH的一个物理块的最大擦出次数是有上限的,一般可靠的更新次数大约是10万 次左右,所以这样造成基于这种FLASH材料实现的产品的使用寿命比较短暂。
[0003] 假设一个物理块上保存着512字节数据,如果要改第一个字节的内容,则需要以下 三步:(1)将该物理块擦除,则该物理块上所有字节都变成FF;(2)向第一字节写入新数据;
[3] 向后面511字节写入旧数据。这整个过程需要一定的时间,如果在这个过程中掉电了,则 显然会发生数据的丢失。对于智能卡的文件系统来说,关键数据的丢失是不能允许的,一般 数据的丢失也常常是不可挽回的。所以,必须想办法使得即便发生了意外掉电,也要保证数 据的一致性,即要么新数据更新成功,要么旧数据全部都在。从物理上讲,FLASH的一个物理 块的擦除次数是有上限的,次数到了,则该物理块就损坏了。大多数情况下,一个物理块的 损坏等于整个FLASH的损坏。所以,必须想办法让写操作在物理上分摊开,以延长FLASH整体 的寿命。
[0004] 因此,有必要针对智能卡存储材料的特点,设计一个文件系统更新方法,以提高智 能卡的稳定性和安全性。
[0005] 鉴于FLASH存储材料存在的上述问题,因此在使用这种存储材料实现的文件系统 时也就主要考虑两个方面:如何保证数据更新的完整性和如何提高数据存储的使用寿命。 而目前,几乎所有的智能卡都以文件为单位对数据进行读写,并且设计了更新方法,一个典 型更新方法举例如下:1)在智能卡里划分出一段存储区域作为备份区和标志区;2)将要更 新的数据所在的整个存储块备份至备份区;3)设置备份区有效的标志;4)更新目标数据;5) 清楚备份区有效的标志。如果这个过程由于智能卡断电而发生中断,则智能卡会在下一次 上电后检查标志,如果标志有效则把备份区的数据恢复到要更新的目标地址去。这个方法 虽然解决了文件更新时可能发生数据丢失的问题,但是并没能提高文件数据的可更新次 数,更新的效率低,速度慢。
[0006] 所以需要一种能够提高智能卡稳定性和安全性的智能卡数据更新方法。

【发明内容】

[0007] 本发明的目的在于解决现有技术中存在的智能卡数据更新方法稳定性差、工作效 率低的问题。为解决上述问题,本发明实施例提供了 一种智能卡数据更新方法。
[0008] 本发明提供一种智能卡数据更新方法,可包括:
[0009] 创建待更新文件;
[0010] 为所述待更新文件配置两个同样大小的数据存储空间;
[0011] 初始化所述两个数据存储空间;
[0012] 获得所述两个数据存储空间中需要更新的数据存储空间;
[0013] 写入新数据到所述需要更新的数据存储空间完成文件更新。
[0014] 优选的,所述两个同样大小的数据存储空间的状态在同一时刻只有其中一个是有 效的。
[0015] 优选的,所述两个同样大小的数据存储空间的大小均为N+3字节。
[0016]优选的,所述两个同样大小的数据空间分别包括有效标志序号、数据存储内容和 校验和,其中所述有效标志序号占1字节,所述数据存储内容占 N字节,所述校验和占2字节。 [0017]优选的,所述两个同样大小的数据存储空间分别定位在独立的FLASH存储块中。
[0018] 优选的,获得所述两个数据存储空间中需要更新的数据存储空间包括:
[0019] 判断所述两个数据存储空间的校验和是否正确;
[0020] 若其中一个数据存储空间的校验和不正确,则确定该数据存储空间为需要更新的 数据存储空间。
[0021] 优选的,若所述两个数据存储空间的校验和均正确,则判断所述两个数据存储空 间的有效标志序号值的大小,所述有效标志序号值小的为需要更新的数据存储空间。
[0022] 优选的,所述方法完成所述文件更新后还包括:
[0023]获得当前有效的数据存储空间的地址;
[0024] 找到所述文件的数据存储内容的存储地址;
[0025] 读取所述存储地址中的数据存储内容完成所述文件读取。
[0026] 优选的,所述获得当前有效的数据存储空间的地址包括:
[0027] 判断所述两个数据存储空间的校验和是否正确;
[0028]若其中一个数据存储空间的校验和不正确,则判断另一个数据存储空间是有效 的。
[0029] 优选的,若所述两个数据存储空间的校验和都正确,则判断所述两个存储空间的 有效标志序号值的大小,所述有效标志序号值大的为当前有效的数据存储空间。
[0030] 优选的,所述有效标志序号值判断大小时规定0大于255。
[0031] 本发明实施例提供的一种智能卡数据更新方法,通过对待更新文件配置两块同样 大小的数据存储空间进行文件更新,使得文件更新可以把擦写FLASH的次数大大降低,提高 了FLASH存储器的使用寿命。同时,FLASH的擦写操作是智能卡里最耗时的处理,本发明提供 的方法由于减少了 FLASH擦写的次数,极大地提高了文件更新的处理速度,提高了工作效 率。
【附图说明】
[0032] 图1为本发明实施例1提供的一种智能卡数据更新方法流程图。
【具体实施方式】
[0033] 本发明实施例提供了一种智能卡数据更新方法,能够解决现有技术中存在的智能 卡数据更新方法稳定性差、工作效率低的问题。
[0034] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人 员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0035] 智能卡在建立文件时会在存储区按照要建立的文件的大小分配一定的空间,本发 明所述方法会在分配的空间基础上,再申请同样大小的存储空间,这样要建立的文件就拥 有2块同样大小的数据空间,即一个文件拥有大小相同的2个文件数据区。
[0036] 智能卡对该文件的更新和读取都是基于该文件的这两个文件区来完成的,同一时 刻只有其中的一个文件区是有效的。智能卡在工作时会根据具体的情况来完成两个文件区 的切换。
[0037] 可以理解的是,本发明所述方法适用于更新频率高、文件大小适中的、对更新速度 要求高的文件,对于在使用中不会经常被更新的文件可以不使用本发明所述方法,即本发 明所述的方法并不应用于全部智能卡里的全部文件,而是根据需要在创建文件时指明使用 的是传统的方法,还是本发明所述方法。下面所述各种实施例均以在创建文件时指明使用 本发明所述方法为例进行说明。
[0038] 本发明提供实施例1,参照图1所示,本发明实施例1所述智能卡数据更新方法具体 可以包括:
[0039] S101、创建待更新文件;
[0040]具体的,由智能卡的文件系统负责创建待更新文件。
[0041] S102、为所述待更新文件配置两个同样大小的数据存储空间;
[0042] 具体的,在创建完所述待更新文件后,所述智能卡会再未使用的数据存储空间里 份配两块数据存储空间,这两块数据存储空间的大小一样,用来存储所述待更新文件的内 容。
[0043] S103、初始化所述两个数据存储空间;
[0044] 具体的,所述智能卡对所述待更新文件的两个同样大小的数据存储空间进行初始 化,这样就算完成了所述待更新文件的创建过程。
[0045] S104、获得所述两个数据存储空间中需要更新的数据存储空间;
[0046] 具体的,所述智能卡的文件系统针对所述待更新文件进行文件更新前,需要先确 定需要更新的数据存储空间是哪一个,即在上述两个同样大小的数据存储空间中确定出一 个需要更新的数据存储空间。
[0047] S105、写入新数据到所述需要更新的数据存储空间完成文件更新。
[0048] 具体的,在确定出需要更新的数据存储空间后,所述智能卡的文件系统将需要更 新的内容,即新数据写入到所述需要更新的数据存储空间中,完成所述文件更新。
[0049] 本发明实施例所述方法通过对待更新文件配置两块同样大小的数据存储空间进 行文件更新,使得文件更新可以把擦写FLASH的次数大大降低,提高了 FLASH存储器的使用 寿命。
[0050] 为了更清楚的理解本发明提供的智能卡数据更新方法,本发明还提供了实施例2, 在实施例1的基础上,智能卡数据更新方法具体还可以包括如下内容。
[0051] 所述待更新文件的创建是由智能卡的文件系统来负责的,所述待更新文件的创建 过程具体可以包括:设定要创建的所述待更新文件大小是N字节,则在智能卡的未使用的存 储空间里分配2块数据存储空间,在这标记为A块和B块,每块数据存储空间的大小是N+3,即 所述两个同样大小的数据存储空间的大小均为N+3字节。两个同样大小的数据存储空间分 别定位在独立的FLASH存储块中。
[0052] 其中,A数据存储空间数据如下:
[0053]
[0054] B数据存储空间数据如下:
[0055]
[0056] ~由上面两个表格可以看出,所述两个同样大小的数据空间分别包括有效标志序, 号、数据存储内容和校验和,其中所述有效标志序号占
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1