CN102508723A - 一种面向ic卡的掉电保护方法 - Google Patents
一种面向ic卡的掉电保护方法 Download PDFInfo
- Publication number
- CN102508723A CN102508723A CN2011102987372A CN201110298737A CN102508723A CN 102508723 A CN102508723 A CN 102508723A CN 2011102987372 A CN2011102987372 A CN 2011102987372A CN 201110298737 A CN201110298737 A CN 201110298737A CN 102508723 A CN102508723 A CN 102508723A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- buffer
- card
- buffer zone
- 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
Abstract
本发明公开了一种面向IC卡的掉电保护方法,在IC卡的用户数据区中开辟保留区,保留区包括多个缓冲区,把待写入文件区的数据首先写入缓冲区进行缓存;那么,当掉电上电复位后,判断写入缓冲区的数据是否完整,若完整,则进入把缓冲区内的相应数据写入文件区的步骤,否则擦除已经写入缓冲区的数据。依据本发明的掉电保护方法保证写入文件区的数据完整性。
Description
技术领域
本发明涉及一种面向IC卡的掉电保护方法,针对采用IC卡(Integrated Circuit Card,集成电路卡)COS(Chip Operating System,片内操作系统)设计过程中数据存储的完整性要求,以保证IC卡在任何掉电的情况下不会出现数据完整性问题,属于嵌入式系统设计的领域。
背景技术
IC卡在当今社会的各个角落得到了广泛的应用,如公交卡、校园卡、门禁卡等等,其中带有CPU内核的IC卡(简称IC卡)由于具有完善的安全机制保证,保密性和安全性更好而得到更多关注。近日, 中国人民银行发布了《中国人民银行关于推进金融IC 卡应用工作的意见》,决定在全国范围内正式启动银行卡芯片迁移工作,这对IC卡的应用开辟了更加广阔的空间。
IC卡中的程序和数据存储主要有两种结构,一种是ROM+E2PROM的结构,程序存储在ROM而用户数据存储在E2PROM;另一种是Flash结构,在这种IC卡中有比较大容量的Flash存储空间,Flash空间被分为两段,一段用于存储程序代码,另一段用于存储用户数据。ROM+E2PROM结构目前处于主流地位,因为E2PROM可以进行字节编程,应用更为灵活,ROM存储的代码更加安全;Flash介质不能进行字节编程,只能以Sector(扇区)为单位进行数据写入,在传统的认识上Flash能够承受的擦写次数不如E2PROM,并且在Flash中存储程序代码存在被篡改的可能而受到质疑,因此在应用上受到一定局限。但是随着Flash技术的进步,这些认识正逐渐得到改变。目前国内已经有清华同方等多家智能卡芯片生产商提供Flash介质的IC卡,国际上,英飞凌也推出了基于Flash介质的Solid Flash系列产品。可以预见,随着Flash工艺的改进,芯片安全体制的进步,Flash IC卡由于开发更加方便,在小批量情况下比掩膜ROM更低的成本将得到广泛普及。
COS是指挥智能卡工作的灵魂,文件管理是COS的主要功能之一,对数据存储的可靠性具有严格的要求。中国金融集成电路(IC)卡规范要求IC卡“必须能够在交易处理的任何情况下,甚至是在更新E2PROM过程中掉电的情况下,保持数据的完整性”,这就要求对数据的存储采取备份等机制,保证数据的完整性。
发明内容
本发明针对IC卡中数据存储的完整性要求,提出了一种面向IC卡的掉电保护方法,以保证写入文件区的数据完整性。
本发明采用以下技术方案:
该发明面向IC卡的掉电保护方法,在IC卡的用户数据区中开辟保留区,保留区包括多个缓冲区,把待写入文件区的数据首先写入缓冲区进行缓存;那么,当掉电上电复位后,判断写入缓冲区的数据是否完整,若完整,则进入把缓冲区内的相应数据写入文件区的步骤,否则擦除已经写入缓冲区的数据。
依据本发明的面向IC卡的掉电保护方法,通过开辟缓冲区进行数据的缓冲和备份,提高了存储的可靠性。当掉电后上电复位时,如果缓冲区内的数据完整,则将缓冲区中的数据写入文件区,否则擦除缓冲区中的数据。这种方法保证了掉电的数据保护和写入文件区数据的正确性。
另外,用户数据区包括系统区、保留区和文件区,在保留区中开辟的缓冲区,保证了数据在用户数据区的快速转移,通常不会因为掉电产生影响。
为确保IC卡在掉电之后能够知道掉电发生在什么阶段,在IC卡的写入过程中有以下两个状态标志:
1.缓冲区状态标志:缓冲区状态标志位于缓冲区的头部,该标志表示当前缓冲区的存储状态。缓冲区状态标志包括以下三种不同的状态。
(1)擦写结束状态:此状态表示缓冲区已经擦除结束,可用来缓存数据。考虑到掉电可能发生在写操作的任何时段,缓冲区的数据可能不完整,IC卡可以通过此状态了解到上次从缓冲区写文件区的操作是否正常完成。
(2)写入头状态:此状态表示写缓冲区操作已经开始,上电复位的过程中如果缓冲区存在此状态,那么上次写缓冲区必然没有完成。
(3)写入尾状态:此状态表示缓冲区数据已经完全写入,上电复位的过程中如果缓冲区存在此状态,则表示上次写文件区必然没有完成,因为如果写文件区操作完成,那么缓冲区状态标志应为擦写结束状态。
2.写操作完成标志:此标志位于缓冲区中写入数据的地址之后, IC卡可以通过此标志了解到写缓冲区操作是否完全完成;
上述面向IC卡的掉电保护方法,置有缓冲区状态标志,上电复位后要判断缓冲区状态标志是否为擦写结束状态,若缓冲区状态标志为擦写结束状态,表明上次擦除正常,没有发生掉电,IC卡等待读卡器发出写指令;否则,掉电发生在数据写入缓冲区的过程中,需要进行缓冲区数据完整性判断。
上述面向IC卡的掉电保护方法,数据在写入缓冲区时,首先要置缓冲区状态标志为写入头状态。
上述面向IC卡的掉电保护方法,数据在写入缓冲区结束时置缓冲区状态标志为写入尾状态,并在缓冲区数据写入结束后添加写操作完成标志。所述判断写入缓冲区的数据是否完整的方法是判断当前数据是否存在写操作完成标志,如存在写操作完成标志,则完整,否则为不完整。
上述面向IC卡的掉电保护方法,所述缓冲区置缓冲区状态标志,以在缓冲区写数据之前置缓冲区状态标志为写入头状态,写缓冲区结束之后置缓冲区状态标志为写入尾状态,并在缓冲区数据写入结束后添加写操作完成标志。
上述面向IC卡的掉电保护方法,所述把缓冲区内的相应数据写入文件区的步骤含有首先由缓冲区状态标志是否为擦写结束状态判断相应数据是否在掉电前已经写入文件区,若已经写入,则擦除所分配缓冲区,否则通过写操作完成标志判断缓冲区数据是否完整,若缓冲区数据完整则向文件区写入缓冲区中的数据,若缓冲区数据不完整,则丢弃缓冲区中的数据,擦除缓冲区数据。
上述面向IC卡的掉电保护方法,在IC卡用户数据区中开辟保留区,保留区包括有多个缓冲区,用做数据的缓冲。用户可以设定一个缓冲区写入操作的阈值,当一个缓冲区的写入操作次数达到这个阈值时,则启用新的缓冲区进行数据缓冲,避免存储介质因为频繁写入失效造成数据丢失。
上述面向IC卡的掉电保护方法,缓冲区的数据存储方式为该缓冲区首先存储缓冲区状态标志,随后存入当前该缓冲区数据的总长度,然后依次写入各段数据,且写入数据时先写入该数据在文件区的目标地址,然后是数据长度,然后写入该数据,所有数据写完之后写入写操作完成标志。
附图说明
下面结合说明书附图详述本发明的技术方案,其中:
图1为依据本发明的掉电保护方法中数据写入和掉电恢复流程图。
图2为缓冲区数据格式图。
图3为用户数据区分区图。
具体实施方式
如附图3所示将用户数据区(E2PROM或者Flash)分为系统区、保留区和文件区,其中系统区用于存放包括卡状态、传输密钥、传输密钥状态在内的一些系统管理关键数据。
保留区由若干缓冲区构成,用于对写入卡的数据进行缓冲和备份,缓冲区的大小可以根据应用进行调整。当一个缓冲区写入次数达到一定阈值时可以调整到新的缓冲区。
文件区用于存储IC卡的文件和相关的密钥。
要写进文件区的数据首先要写入缓冲区,然后再写入文件区,缓冲区将要写入的数据进行整理,提高了存储的可靠性。
为确保IC卡在掉电之后能够知道掉电发生在什么阶段,在IC卡的写入过程中有以下两个状态标志:
1.缓冲区状态标志:缓冲区状态标志位于缓冲区的头部,该标志表示当前缓冲区的存储状态。缓冲区状态标志包括以下三种不同的状态。
(1)擦写结束状态:此状态表示缓冲区已经擦除结束,可用来缓存数据。考虑到掉电可能发生在写操作的任何时段,缓冲区的数据可能不完整,IC卡可以通过此标志了解到上次从缓冲区写文件区的操作是否正常完成。
(2)写入头状态:此状态表示写缓冲区操作已经开始,上电复位的过程中如果缓冲区存在此状态,那么上次写缓冲区必然没有完成。
(3)写入尾状态:此状态表示缓冲区数据已经完全写入,上电复位的过程中如果缓冲区存在此状态,那么上次写文件区必然没有完成,因为如果写文件区操作完成,那么缓冲区状态标志应为擦写结束状态。
2.写操作完成标志:此标志位于缓冲区中写入数据地址之后, IC卡可以通过此标志了解到写缓冲区操作是否完全完成;
在IC卡上电后,在CPU初始化的过程中判断有无异常掉电事件发生,若有掉电事件发生,则读取数据缓冲区的写操作完成标志,若存在写操作完成标志,则缓冲区的数据是完整的,继而启动掉电恢复机制将相应数据写入到文件区;若数据不完整,则擦除缓冲区数据,保证数据的完整与正确。
以上为本发明的基本原理,那么进而,参见说明书附图1,一个具体示例表现在说明书附图1中。本发明是针对IC卡在写入操作时的掉电保护机制,因此附图1中主要考虑写入操作的处理,没有详细展开描述对IC卡读命令的处理过程。本发明方法包括以下步骤:
A.IC卡上电复位。在IC上电复位的过程中,检查缓冲区状态标志,若缓冲区状态标志为擦写结束状态,表明上次擦写正常结束,则IC卡转步骤B,可进入IDLE状态,等待读卡器发出写指令;反之,表明上次擦除缓冲区步骤没有正常结束,则转步骤H;
B.IC卡等待读卡器发出命令,在接收到对IC卡发出写命令后,进入准备写状态。在该状态下检查擦写结束状态是否有效,若是,表示缓冲区可以正常写,或者说允许写,转步骤D;否则表示缓冲区出现写错误,转步骤C;
C.擦除缓冲区中所有数据,置缓冲区状态标志为擦写结束状态;
D. IC卡进入开始写状态,置缓冲区状态标志为写入头状态。在此状态下将需要写入的数据写入缓冲区中,缓冲区的数据存储方式为该缓冲区首先存储缓冲区状态标志,随后存入当前该缓冲区数据的总长度,然后依次写入各段数据,且写入数据时先写入该数据在文件区的目标地址,然后是数据长度,然后写入该数据,所有数据写完之后写入写操作完成标志。。转步骤E;
E.若需要写入的数据都已经完全写入缓冲区中,置缓冲区的状态标志为写入尾状态。转步骤F;
F.将缓冲区中的各段数据写入到各自在文件区的目标地址中:每一个数据都有其文件区目标地址、数据长度、数据三个部分组成,读出各段数据的数据信息,按其目标地址、数据长度将数据写入文件区中。转步骤G;
G.擦除缓冲区,置缓冲区状态标志为擦写结束状态,等待下次写操作,转步骤B;
H.检查缓冲区数据是否完整,即是否存在写操作完成标志,若存在,缓冲区中的备份信息是完整的,转步骤F;若不存在,缓冲区中的备份信息不完整,则擦除缓冲区全部数据,将缓冲区状态标志置为擦写结束状态,转步骤B。
在整个IC卡的写操作过程中,为了保证IC卡在任何掉电的情况下都不会出现数据完整性的问题,我们考虑到了掉电过程可能发生的所有可能情况。
1. 掉电发生在缓冲区写操作进行的过程中:
掉电如果发生在缓冲区写操作进行的过程中,那么IC卡在下次上电复位的过程中会首先检查缓冲区状态标志,此时缓冲区状态标志应为写入头状态,且写操作完成标志不存在,显然掉电发生在缓冲区写操作进行的过程中。由于此时缓冲区数据信息不完整,因此擦除缓冲区中所有的数据,置缓冲区状态标志为擦写结束状态,等待IC卡读卡器发出新的指令。
2. 掉电发生在缓冲区写操作结束之后:
掉电如果发生在缓冲区写操作结束之后,那么IC卡在下次上电复位的过程中会首先检查缓冲区状态标志和写操作完成标志,若存在写操作完成标志或者缓冲区状态标志为写入尾状态,则可知掉电发生在写缓冲区完成之后,缓冲区中的数据是完整的。因为缓冲区状态标志不是擦写结束状态。表示缓冲区中的数据还没有完整写入到文件区中,因此此时需要将缓冲区中的数据全部写入到文件区中去。写入的操作如图2中的缓冲区数据格式,根据数据在文件区的目标地址与数据长度将各段数据写入到文件区目标地址中。数据全部恢复后擦除缓冲区中的数据,置缓冲区状态标志为擦写结束状态。
Claims (5)
1.一种面向IC卡的掉电保护方法,其特征在于,在IC卡的用户数据区开辟保留区,保留区包括多个缓冲区,把待写入文件区的数据首先写入缓冲区;那么,当掉电上电复位后,判断写入缓冲区的数据是否完整,若完整,则进入把缓冲区内的相应数据写入文件区的步骤,否则将已经写入缓冲区的数据擦除。
2.根据权利要求1所述的面向IC卡的掉电保护方法,其特征在于,所述缓冲区设置缓冲区状态标志,该缓冲区状态标志包括擦写结束状态,写入头状态和写入尾状态;通过这三个状态表征IC卡掉电发生时数据写入的状态。
3.根据权利要求2所述的面向IC卡的掉电保护方法,其特征在于,缓冲区的数据存储方式为该缓冲区首先存储缓冲区状态标志,随后存入当前该缓冲区数据的总长度,然后依次写入各段数据,且写入数据的方法为先写入该数据在文件区的目标地址,然后是数据长度,之后写入该数据,所有数据写完之后写入写操作完成标志。
4.根据权利要求3所述的面向IC卡的掉电保护方法,其特征在于,数据在写入缓冲区时,首先要置缓冲区状态标志为写入头状态,所有待写入数据在写入缓冲区结束后写入写操作完成标志,然后置缓冲区状态标志为写入尾状态,继而将缓冲区中的数据按照所述写入数据的方法依次写入到文件区中,进而擦除缓冲区,置缓冲区状态标志为擦写结束状态。
5.根据权利要求2所述的面向IC卡的掉电保护方法,其特征在于,IC卡上电后通过缓冲区状态标志判断IC卡写入数据时有无掉电发生,若有掉电发生,则通过写操作完成标志判断缓冲区数据是否完整,若缓冲区数据完整则向文件区写入相应数据,若缓冲区数据不完整,则丢弃缓冲区中的数据,擦除缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102987372A CN102508723A (zh) | 2011-09-28 | 2011-09-28 | 一种面向ic卡的掉电保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102987372A CN102508723A (zh) | 2011-09-28 | 2011-09-28 | 一种面向ic卡的掉电保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102508723A true CN102508723A (zh) | 2012-06-20 |
Family
ID=46220815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102987372A Pending CN102508723A (zh) | 2011-09-28 | 2011-09-28 | 一种面向ic卡的掉电保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508723A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133740A (zh) * | 2014-07-28 | 2014-11-05 | 浪潮软件集团有限公司 | 异常掉电数据恢复的方法 |
CN106227680A (zh) * | 2016-07-26 | 2016-12-14 | 成都三零嘉微电子有限公司 | 一种数据处理及防掉电数据保护方法 |
CN106709386A (zh) * | 2016-12-30 | 2017-05-24 | 金邦达有限公司 | 智能卡数据写入方法及装置 |
CN107729972A (zh) * | 2017-09-01 | 2018-02-23 | 捷德(中国)信息科技有限公司 | 一种智能ic卡的数据保护方法 |
CN108228243A (zh) * | 2016-12-09 | 2018-06-29 | 北京京存技术有限公司 | Emmc初始化方法和装置 |
CN109254929A (zh) * | 2018-09-05 | 2019-01-22 | 北京智芯微电子科技有限公司 | 实现数据被可靠写入芯片的方法 |
CN109739683A (zh) * | 2018-12-31 | 2019-05-10 | 河南思维自动化设备股份有限公司 | 基于掉电防护介质的lkj文件写入方法、存储介质 |
CN110888605A (zh) * | 2019-12-11 | 2020-03-17 | 重庆超力高科技股份有限公司 | Eeprom的数据写入方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038676A (en) * | 1997-09-25 | 2000-03-14 | International Business Machines Corporation | Method and circuit for data integrity verification during DASD data transfer |
CN101197006A (zh) * | 2007-12-19 | 2008-06-11 | 东信和平智能卡股份有限公司 | 智能卡及数据写入方法 |
CN101539891A (zh) * | 2008-03-17 | 2009-09-23 | 凤凰微电子(中国)有限公司 | 一种嵌入式快闪存储器、存储系统及其数据掉电保护方法 |
CN101656106A (zh) * | 2009-08-27 | 2010-02-24 | 北京握奇数据系统有限公司 | 一种向eeprom写入数据的方法及装置 |
-
2011
- 2011-09-28 CN CN2011102987372A patent/CN102508723A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038676A (en) * | 1997-09-25 | 2000-03-14 | International Business Machines Corporation | Method and circuit for data integrity verification during DASD data transfer |
CN101197006A (zh) * | 2007-12-19 | 2008-06-11 | 东信和平智能卡股份有限公司 | 智能卡及数据写入方法 |
CN101539891A (zh) * | 2008-03-17 | 2009-09-23 | 凤凰微电子(中国)有限公司 | 一种嵌入式快闪存储器、存储系统及其数据掉电保护方法 |
CN101656106A (zh) * | 2009-08-27 | 2010-02-24 | 北京握奇数据系统有限公司 | 一种向eeprom写入数据的方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133740A (zh) * | 2014-07-28 | 2014-11-05 | 浪潮软件集团有限公司 | 异常掉电数据恢复的方法 |
CN106227680B (zh) * | 2016-07-26 | 2019-01-04 | 成都三零嘉微电子有限公司 | 一种数据处理及防掉电数据保护方法 |
CN106227680A (zh) * | 2016-07-26 | 2016-12-14 | 成都三零嘉微电子有限公司 | 一种数据处理及防掉电数据保护方法 |
CN108228243A (zh) * | 2016-12-09 | 2018-06-29 | 北京京存技术有限公司 | Emmc初始化方法和装置 |
CN106709386A (zh) * | 2016-12-30 | 2017-05-24 | 金邦达有限公司 | 智能卡数据写入方法及装置 |
CN107729972B (zh) * | 2017-09-01 | 2020-09-08 | 捷德(中国)科技有限公司 | 一种智能ic卡的数据保护方法 |
CN107729972A (zh) * | 2017-09-01 | 2018-02-23 | 捷德(中国)信息科技有限公司 | 一种智能ic卡的数据保护方法 |
CN109254929A (zh) * | 2018-09-05 | 2019-01-22 | 北京智芯微电子科技有限公司 | 实现数据被可靠写入芯片的方法 |
CN109254929B (zh) * | 2018-09-05 | 2020-09-08 | 北京智芯微电子科技有限公司 | 实现数据被可靠写入芯片的方法 |
CN109739683A (zh) * | 2018-12-31 | 2019-05-10 | 河南思维自动化设备股份有限公司 | 基于掉电防护介质的lkj文件写入方法、存储介质 |
CN109739683B (zh) * | 2018-12-31 | 2022-08-05 | 河南思维自动化设备股份有限公司 | 基于掉电防护介质的lkj文件写入方法、存储介质 |
CN110888605A (zh) * | 2019-12-11 | 2020-03-17 | 重庆超力高科技股份有限公司 | Eeprom的数据写入方法、装置和电子设备 |
CN110888605B (zh) * | 2019-12-11 | 2023-10-20 | 重庆超力高科技股份有限公司 | Eeprom的数据写入方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508723A (zh) | 一种面向ic卡的掉电保护方法 | |
CN103577121B (zh) | 一种基于Nand Flash的高可靠线性文件存取方法 | |
CN102081577B (zh) | 对Flash存储器的数据存储结构进行数据操作的方法 | |
US7515500B2 (en) | Memory device performance enhancement through pre-erase mechanism | |
CN101656106B (zh) | 一种向eeprom写入数据的方法及装置 | |
CN106227680B (zh) | 一种数据处理及防掉电数据保护方法 | |
CN102567146B (zh) | 一种实现日志备份的方法及其装置、智能卡 | |
CN101918928B (zh) | 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法 | |
US8266391B2 (en) | Method for writing data of an atomic transaction to a memory device | |
CN103914407B (zh) | 一种sd卡掉电保护、恢复方法以及带有掉电保护的sd卡 | |
US20080320253A1 (en) | Memory device with circuitry for writing data of an atomic transaction | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN102439573A (zh) | 用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换 | |
CN1936853B (zh) | 嵌入式设备的数据掉电保护和修复方法 | |
CN106528443B (zh) | 适用于星载数据管理的flash管理系统及方法 | |
CN101645046A (zh) | 一次性可编程存储器仿真 | |
CN101699476A (zh) | 智能卡的数据处理方法及装置 | |
CN101706788B (zh) | 一种嵌入式文件系统的跨区访问方法 | |
CN104050396B (zh) | 用于保护数字内容的装置和方法 | |
CN109697017A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN101354635A (zh) | 信息记录装置及其控制方法 | |
CN107168889A (zh) | 一种利用MCU内部Flash存储KVM通道信息的方法 | |
CN104992212A (zh) | 旅游智能卡系统 | |
TW201214111A (en) | Data writing method, memory controller and memory storage apparatus | |
JP5104653B2 (ja) | Icカード及びicカードプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120620 |