CN100561452C - 一种卡片操作***对数据文件进行操作的方法及智能卡 - Google Patents

一种卡片操作***对数据文件进行操作的方法及智能卡 Download PDF

Info

Publication number
CN100561452C
CN100561452C CNB2007101762483A CN200710176248A CN100561452C CN 100561452 C CN100561452 C CN 100561452C CN B2007101762483 A CNB2007101762483 A CN B2007101762483A CN 200710176248 A CN200710176248 A CN 200710176248A CN 100561452 C CN100561452 C CN 100561452C
Authority
CN
China
Prior art keywords
file
data
card
data file
smart card
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.)
Expired - Fee Related
Application number
CNB2007101762483A
Other languages
English (en)
Other versions
CN101140548A (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.)
Beijing Watchdata Co ltd
Original Assignee
Beijing WatchData System Co Ltd
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 Beijing WatchData System Co Ltd filed Critical Beijing WatchData System Co Ltd
Priority to CNB2007101762483A priority Critical patent/CN100561452C/zh
Publication of CN101140548A publication Critical patent/CN101140548A/zh
Application granted granted Critical
Publication of CN100561452C publication Critical patent/CN100561452C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种智能卡卡片操作***对数据文件进行操作的方法及智能卡,用于对外部存储设备进行数据文件操作,包括:智能卡卡片操作***获取外部存储设备配置信息,所述配置信息包括外部存储设备的容量及文件数据格式;当智能卡卡片操作***或智能卡应用程序进行数据文件操作时,智能卡卡片操作***根据所述配置信息在外部存储设备上进行数据文件操作。使用本发明,可以使卡片操作***在对外部存储设备进行操作时并不会破坏在外部存储设备上的原有的文件格式***,使外部设备仍旧能够访问其原来的文件***。

Description

一种卡片操作***对数据文件进行操作的方法及智能卡
技术领域
本发明涉及数据文件操作,特别涉及智能卡卡片操作***对数据文件进行操作的方法及智能卡。
背景技术
智能卡,英文名为“SMART CARD”,又称“集成电路卡”;是一种带有微处理器和存储器等微型集成电路芯片的、具有标准规格的卡片。智能卡标准主要有ISO7816(International Standards Organization 7816,国际标准化组织7816标准第四部分)、CEN(TC224,WG10)(the European Committee forStandardization Electronic Purse,欧洲标准化委员会电子钱包)、EMV(Europay、Mastercard和Visa,***联合体)ETSI(European Telecommunications StandardsInstitute,欧洲电信标准学会)等。图1为智能卡内部结构示意图。如图所示,智能卡可以通过USB接口、闪存接口、7816接口、SD/MMC接口与外部进行数据交互。在日趋激烈的竞争环境下,智能卡技术正在朝着超大容量、高处理能力、高速接口以及高安全性的方向发展。
目前,将智能卡与其他外接设备相关联正在成为市场的新亮点,如将外部存储设备NAND闪存整合到智能卡芯片上,使得智能卡的容量可以达到64MB到512MB甚至更高。在这类外部存储设备的使用上,对于PC(PersonalComputer,个人电脑)、手机等终端来说,现有技术中它们可以通过MMC/USB(Multi Media Card/Universal Serial Bus,多媒体卡/通用串行总线)等快速接口直接访问NAND闪存。对于智能卡来说,由NAND闪存控制器控制的闪存和智能卡芯片之间也能够互连,使得智能卡上的应用程序可以通过COS(CardOperating System,卡片操作***)对整合的闪存进行访问,从而获得更大的可用空间。
但是,现有技术的不足在于:由于PC、手机等终端通过MMC/USB等快速接口访问NAND闪存时,需要使用PC或手机本身的文件***,如FAT16、FAT32对闪存进行了相应的格式化之后,再在相应的文件***基础之上对NAND闪存进行访问;所以,现有技术中COS并不能让应用程序访问NAND闪存而不破坏闪存本身的文件***,也不能同时保证闪存仍然能够被PC或手机这类设备通过MMC/USB快速通道访问。
发明内容
本发明实施例提供一种卡片操作***对数据文件进行操作的方法及智能卡,用以使得现有技术中的外部存储设备能够被智能卡COS进行数据文件操作,也能够被其他如PC或手机这类设备进行数据文件操作的问题。
本发明实施例提供了一种智能卡卡片操作***对数据文件进行操作的方法,用于对外部存储设备进行数据文件操作,包括如下步骤:
智能卡卡片操作***获取外部存储设备配置信息,所述配置信息包括外部存储设备的容量及文件数据格式;
当智能卡卡片操作***或智能卡应用程序进行数据文件操作时,智能卡卡片操作***根据所述配置信息在外部存储设备上进行数据文件操作。
本发明实施例还提供了一种智能卡,应用于与外部存储设备进行数据文件操作,包括外存设备管理模块、文件操作请求模块、外存设备访问接口、文件访问控制模块,其中:
外存设备管理模块,用于获取外部存储设备的配置信息,所述配置信息包括外部存储设备的容量及文件数据格式,并根据配置信息在建立智能卡与外部存储设备的连接后提供对数据文件进行操作的通道;
文件操作请求模块,用于发起对数据文件的操作请求;
外存设备访问接口,用于在接收到所述文件操作请求模块的操作请求后,根据操作请求提供对外部存储设备进行操作的操作指令;
文件访问控制模块,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行数据文件操作。
本发明实施例有益效果如下:
本发明实施例中,智能卡COS在对外部存储设备进行数据文件操作时,首先获取外部存储设备配置信息,配置信息包括有外部存储设备的容量及文件数据格式;这样,当智能卡卡片COS或智能卡应用程序进行数据文件操作时,智能卡COS不仅需要根据配置信息中的容量,还须根据外部存储设备的文件格式在外部存储设备上进行数据文件操作。由于在存储体上执行数据文件的操作需要根据文件格式来执行,使得COS在对外部存储设备进行操作时并不会破坏在外部存储设备上的原有的文件格式***,这也就保证了PC、手机等终端仍旧能够通过MMC/USB等快速接口访问其原来的文件***。
附图说明
图1为背景技术中所述智能卡内部结构示意图;
图2为本发明实施例中所述智能卡COS对数据文件进行操作的方法实施流程示意图;
图3为本发明实施例中所述智能卡结构示意图;
图4为本发明实施例中所述文件目录解析实施流程示意图;
图5为本发明实施例中所述高速缓存实施流程示意图;
图6为本发明实施例中所述中断与异常实施流程示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行说明。
本发明实施例中所述的智能卡应用程序是指运行在COS之上,通过COS完成各种不同需求的应用。例如有各种安全加密的应用程序、包括“超级号簿”、“***”等的电信STK(SIM Tool Kit,SIM卡工具箱)应用程序、支持Java的JavaApplet应用程序等等。
智能卡的外部存储设备是指整合到智能卡芯片上的存储设备,相对智能卡上内置的存储体来说,一般指外部大容量的存储设备,特别是M(兆)级的存储设备,比如目前使用较多的NAND闪存。
在外部存储设备与如PC等外部设备与智能卡的数据操作关系上,外部存储设备可以通过其芯片上的USB/MMC等快速通道作为可移动磁盘挂接到外部设备的windows、Unix等各种操作***上,并且外部存储设备的文件***能够被相应的操作***识别与进行操作;而COS通过内部的数据总线来访问外部存储设备,对外部存储设备进行数据文件的操作,如读取和修改等操作,同时,卡片上的应用程序也能够通过COS对外部存储设备进行有效的访问并操作。这样,通过USB/MMC等快速通道以及智能卡内部数据总线,外部设备能够与外部存储设备进行数据交互,智能卡也能够与外部存储设备进行数据交互。
在按前述方式与外部存储设备进行连接后,智能卡COS就可以对外部存储设备进行数据文件操作了,图2为智能卡COS对数据文件进行操作的方法实施流程示意图,如图所示,智能卡COS对外部存储设备进行数据文件操作可以包括如下步骤:
步骤201、智能卡COS获取外部存储设备配置信息,所述配置信息包括外部存储设备的容量及文件数据格式;
步骤202、当智能卡COS或智能卡应用程序进行数据文件操作时,智能卡COS根据所述配置信息在外部存储设备上进行数据文件操作。
实施中,当智能卡COS或智能卡应用程序进行ISO7816格式的数据文件操作时,智能卡COS或智能卡应用程序在外部存储设备的ISO7816格式的数据文件夹中进行操作,这样,由于COS对外部存储设备的操作是按ISO7816协议执行,并在ISO7816的数据文件中操作,因此并不会影响到PC等外部设备对原有操作的文件***,如FAT16、Ext3等;而当智能卡卡片操作***或智能卡应用程序进行目录文件***格式的数据文件操作时,智能卡卡片操作***或智能卡应用程序可直接在外部存储设备的目录文件***格式的数据文件夹中进行操作。
实施中,由于外部存储设备并不一定包括有ISO7816数据文件,所以智能卡COS获取外部存储设备配置信息时,还可以进一步包括:当配置信息中不含ISO7816格式的文件数据时,创建ISO7816格式的数据文件夹;当智能卡COS或智能卡应用程序进行ISO7816格式的数据文件操作时,智能卡COS或智能卡应用程序在所述外部存储设备的ISO7816格式的数据文件夹中进行操作;
或者,当智能卡COS或智能卡应用程序进行ISO7816格式的数据文件操作时,当所述配置信息中不含ISO7816格式的文件数据时,创建ISO7816格式的数据文件夹;智能卡COS或智能卡应用程序在所述外部存储设备的ISO7816格式的数据文件夹中进行操作。
创建ISO7816格式的数据文件是为了更合理有效的利用大容量的外部存储设备,它是在外部存储设备开辟一片区域专门用于存放7816规范定义的文件。可以按照ISO7816规范来对外部存储设备中创建的7816数据文件进行访问控制。
例如,在应用程序的发起访问请求需要对数据文件进行操作时,如果操作请求针对的是7816数据文件,则对访问的请求进行分析,在外部存储设备的7816数据文件***中进行查找,找到请求的文件,并完成读取或者写入的操作。
具体实施时可以相应的分为7816数据文件***识别配置、7816数据文件***目录结构解析和7816数据文件读写操作三个部分。7816数据文件***识别配置时在外部存储设备的根目录下建立一个对应于外部存储设备文件***的文件,所有保存到外部存储设备的7816数据文件都将保存在这个文件的内容中。7816数据文件***目录结构解析时负责对这个文件中的各个7816数据文件进行识别解析,找到指定的7816目录或文件。找到指定的7816目录文件后,就可以完成对7816数据文件的读取和写入等操作。
当然,如果应用程序的访问请求针对的是目录文件***,则在外部存储设备的目录文件***中进行查找,找到请求的文件,并完成读取或者写入的操作。
相应的,具体实施中也可以分为目录文件***识别、目录文件***目录结构解析和文件读写操作三个部分。目录文件***识别时首先读取外部存储设备起始扇区的内容,然后对起始扇区的内容格式进行分析,判断是FAT16文件***还是FAT32文件***或者Ext2、Ext3等其他文件***。目录结构解析时完成对目录结构的分析查找等操作,在完成外部存储设备文件***识别后,可以根据具体的文件***类别的对文件***目录结构进行解析,完成对指定目录或指定文件的查找,如对于FAT16或FAT32文件***来说,则是从根目录起进行目录表项的遍历和查找等。目录结构分析完成对指定目录或文件的查找定位后,即可完成对文件的打开,读写,以及相应的目录项修改的等操作。
智能卡COS根据所述配置信息在外部存储设备上进行数据文件操作,还可以进一步包括如下步骤之一或者其组合:
1、防插拔掉电保护步骤:当智能卡COS根据所述配置信息在外部存储设备上进行写入数据文件操作时,将所述数据文件写入智能卡数据备份区后写入外部存储设备;当外部存储设备上电时,若所述智能卡数据备份区与外部存储设备数据文件不一致时,将所述智能卡数据备份区的数据文件写入外部存储设备;
本步骤中,在对外部存储设备的访问过程中,由于智能卡本身使用环境的特殊性,访问过程中有可能出现忽然掉电的情况,为了使卡片和外部存储设备不在掉电过程中出现核心数据被破坏而导致整个卡片不能使用的情况,可以使用本步骤来对智能卡上的数据进行保护。具体地,可以当文件访问***模块需要读取外部存储设备数据时,不直接存取外部存储设备的数据,而是通过调用防插拔函数来完成数据的读取和修改。在接收到数据读取或修改的指令后,会先将数据写入到卡片中的备份区,备份区写入完成后,再对外部存储设备进行写入。而在每次重新上电时,首先检查备份区是否有要恢复的数据,如果有,则根据备份区的内容进行相应的恢复。
2、缓存步骤:智能卡COS根据操作规律在智能卡缓存区存储数据文件,智能卡操作***优先从所述缓存区读取需操作的数据文件;
由于外部存储设备物理设备的特性,COS访问外部存储设备的速度要远远低于直接访问智能卡内部存储器的速度。因此,本步骤可以预先读取外部存储设备中的内容到卡片的缓存区,用以提高访问的速度。当需要读取外部存储设备中的数据文件时,检查要访问的数据文件是否存在于缓存区中,如果存在于缓存区中,则直接返回缓存区中的数据文件内容;如果缓存区中没有需要的数据文件,则需要从外部存储设备中读取相应的数据文件,并将相关的数据文件拷贝到缓存区中即可。
具体实施时,可以根据COS读取外部存储设备的规律,例如读取频率高的数据文件等,预先读取外部存储设备中的这部分数据文件到缓存中,这样COS在访问外部存储设备时,就可以直接在缓存中进行读取,能够大大提高访问的速度。
3、中断和异常控制步骤:智能卡COS根据所述配置信息在外部存储设备上进行的数据文件操作发生中断时,保存操作执行状态,中断恢复后,根据所述保存的操作执行状态继续执行。
在访问外部存储设备的过程中,还可能会发生某个扇区物理损坏不能读取、找不到相应数据扇区、外部存储设备响应超时等异常情况,本步骤可以用于处理这些异常事件。实施中,当数据文件发送或者数据文件接收完成时、或数据文件传输时间片轮转时触发了相应的中断后,完成对中断的响应,并调用相应的中断处理函数来完成处理。具体的,当异常中断发生时,执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。在进入异常中断处理程序时,保存被中断的程序的执行现场。从异常中断处理程序退出时,恢复被中断的程序的执行现场即可。
本发明实施例还提供了一种应用于与外部存储设备进行数据文件操作的智能卡,下面结合附图对智能卡的具体实施方式进行说明。
由于外部存储设备具有的文件***格式比较多样,为了实现智能卡COS及应用程序对外部存储设备的访问,实施例采用了层次结构的方案,将应用程序及COS对外部存储设备的访问操作封装成不同的功能层次,应用程序只需要调用COS最外层的功能模块,而操作控制、缓存、防插拔掉电等各模块都相应的封装在中间层,最底层则是统一的调用外部存储设备的物理读取模块;从而构建了快速、安全、有效,便于扩展的外部存储设备操作方案。
层次结构主要将构成的各个模块部分按照不同层次进行布局;层与层之间单向依赖,相邻层间通过界面相互作用,下层为上层提供服务,上层使用下层提供的服务以实现本层的功能。上层隐藏紧接下层的细节,下层所涉及的技术规范、实现技术被紧邻上层所屏蔽。
图3为智能卡结构示意图,本智能卡应用于与外部存储设备进行数据文件操作,如图所示,智能卡包括外存设备管理模块、文件操作请求模块、外存设备访问接口、文件访问控制模块,其中:
外存设备管理模块,用于获取外部存储设备的配置信息,所述配置信息包括外部存储设备的容量及文件数据格式,并根据配置信息在建立智能卡与外部存储设备的连接后提供对数据文件进行操作的通道;
文件操作请求模块,用于发起对数据文件的操作请求;
外存设备访问接口,用于在接收到所述文件操作请求模块的操作请求后,根据操作请求提供对外部存储设备进行操作的操作指令;
文件访问控制模块,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行数据文件操作。
下面对各模块的具体实施进行说明。
一、外存设备管理模块。
外存设备管理模块可以建立与外部存储设备的连接,完成读取外部存储设备中的数据以及将数据写入外部存储设备等操作。在获取外部存储设备的配置信息时,首先询问当前是否有可用的外部存储设备,在得到响应后,根据响应的结果继续查询具体的外部存储设备设备配置信息。在得到外部存储设备配置信息后,便可与外部存储设备建立连接,同时也可以对外部存储设备进行数据读取和写入等操作。
外存设备管理模块对连接的外部存储设备设备进行枚举,得到有效的外部存储设备设备配置信息,在设备配置信息中可以得到设备类型、支持的接口、外部存储设备的容量、文件***格式等信息,并据此与外部存储设备设备建立连接。
具体的,可以通过外部存储设备设备描述符获取外部存储设备的设备配置信息,并以此建立连接,从而对外部存储设备数据进行读写。外部存储设备设备描述符可以包括下表所示内容:
  偏移   字段   大小(字节)   值   描述
  0   长度   1   10h   描述符的长度
  1   设备类型   1   NandFlash或其他存储介质
  2   支持接口   1   MMC或USB等
  3   产品ID   2   生产厂商的ID号
  5   外部存储设备容量   4   以k为单位
  9   配置信息   1   bit0:1带掉电保护0不带bit1:1支持7816数据文件读写0不支持
  bit 2-7保留
  10   保留字节   6   保留
二、文件操作请求模块。
文件操作请求模块中还可以包括卡片操作***请求单元、和/或应用程序请求单元,其中:
卡片操作***请求单元,用于在卡片操作***对数据文件进行操作时,发起对数据文件的操作请求;
应用程序请求单元,用于在应用程序对数据文件进行操作时,发起对数据文件的操作请求。
三、外存设备访问接口。
外存设备访问接口中可以包括目录文件***访问指令集存储单元、7816数据文件***访问指令集存储单元、指令提供单元,其中:
目录文件***访问指令集存储单元,用于存储目录文件***访问指令集;
7816数据文件***访问指令集存储单元,用于存储7816数据文件***访问指令集;
指令提供单元,用于在接收到所述文件操作请求模块的操作请求后,根据操作请求从目录文件***访问指令集存储单元或7816数据文件***访问指令集存储单元选取相应操作指令后,提供对外部存储设备进行操作的操作指令。
外存设备访问接口提供了应用程序通过操作***对外部存储设备进行访问的指令集。模块位于整个访问体系的最上层,应用程序及COS对外部存储设备的访问操作都可以封装在这个接口中,COS及应用程序通过直接调用该接口中的指令集实现对外部存储设备的操作访问。外存设备访问接口收到应用程序的访问请求后,根据请求进行处理,再调用相应的目录文件***或7816数据文件***访问的指令集。
考虑到外部存储设备中的文件***可能包括有目录结构和7816两种文件***,相应的指令集也分成目录结构文件访问指令集和7816数据文件访问指令集两部分,这些指令通过调用下层的文件***访问控制服务,来完成各自对文件的查找、读取、修改等操作命令功能。
实施中,由于指令集是COS访问外部存储设备的指令集合,所以在所有指令前可以增加前缀cm。输入参数的编码格式如果是纯英文数字,则用ASC码;如果包含中文字符,则可采用Unicode编码。
为了描述的简练,下面提到的目录信息包括7816数据文件目录和普通目录文件目录。
作为输入参数的文件名格式如果没有带目录信息,则为当前目录下文件,如果有目录信息,则必须包含完整的目录(从根目录起)。
1、读取外部存储设备文件和目录指令举例如下:
A)、例如改变当前目录命令可表示为:
Boolean cm_Cdir(byte[]DestDir)
即,将当前目录设置为DestDir所指目录。
在对外部存储设备的访问过程中,可以保留一个全局的变量,用以标识在对外部存储设备访问时当前访问位置的当前目录。通过定义这个当前目录,COS在继续访问时,如果被访问对象在当前目录下,就不必输入访问对象从根目录起的完整的绝对路径,而是可以输入比较简短的从当前目录起始的相对路径。
如输入参数:
Byte[]DestDir:
当DestDir为绝对路径时,目录格式为:分区号:\目录名\目录名;如果外部存储设备上进行了分区,则设外部存储设备上第一分区为0分区,第二分区为1分区,依次类推。如0:\dir1\dir2。如果DestDir为相对路径,则无分区号,格式为:目录名\目录名,如dir1\dir2,指当前目录下的子目录。DestDir的编码格式:如为纯英文数字,则是ASC码,如包含中文字符,则采用Unicode编码。
返回值:如果能够正确访问到目的目录,则返回true,否则返回false。
B)、例如查看当前目录下所有文件与目录列表命令可以表示为:
Boolean cm_List(byte[]listbuffer,byte listType)
即,将当前目录下文件和目录列表输入到listbuffer中。
Listbuffer:当前目录下的文件和目录以TLV(Tag Length Value,标记长度数值)的格式填充到这个缓存中。
按上面命令执行后会输出一组数据,而数据是按照这种表格中定义的TLV格式组织的:
TLV TLV TLV
具体的如:
如果输出:D0000474657374DF0008746573742E747874;
表示当前目录下有:目录test文件test.txt。
Figure C20071017624800171
listType:0文件目录都输出到listbuffer中
1只把文件输出到到listbuffer中
2只把目录输出到到listbuffer中
返回值:如果能够正确访问到当前目录下的文件目录列表,则返回true,否则返回false。
C)、如读当前目录下指定文件命令可以表示为:
Boolean cm_ReadFile(byte[]destfile,short fileoffset,byte[]destBuffer,shortdestoffset,short length)
即,将指定文件的指定内容(偏移量+长度)输出到destBuffer的指定位置中(偏移量)。各命令分别为:
byte[]destfile:当byte[]destfile包含路径时,如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指当前目录下的子目录中包含的文件。如果不包含路径,则指当前目录的文件。编码格式:如为纯英文数字,则是ASC码,如包含中文字符,则采用Unicode编码。
Fileoffset:从目的文件读内容的起始位置。
destBuffer:将文件内容存放的缓存区。
destoffset:存放读取的文件内容的缓存区的起始位置。
Length:读取的文件内容的长度。0表示读取整个文件。
返回值:如果能够正确访问到指定文件,则返回true,否则返回false。
D)、如查找指定范围内指定文件命令可以表示为:
Boolean cm_FindFile(byte[]destfile,byte[]destDir,byte[]result)
即,在指定目录范围内查找指定文件名的文件,返回其完整目录信息。各命令分别为:
Destfile:完整的文件名,不包括路径。
destDir:在该目录范围内进行查找,如果为相对路径,则指相对当前目录的路径。
Result:LV格式,L 2字节表示后续内容长度,V绝对路径,编码格式:如为纯英文数字,则是ASC码,如包含中文字符,则采用Unicode编码。返回值:如果能够找到指定文件,则返回true,否则返回false。
E)、如查看指定文件属性命令可以表示为:
Boolean cm_GetFileAttribute(byte[]destfile,byte AttributeType,byte[]AttributeBuffer)
其中各命令分别为:
Destfile:如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指当前目录下的子目录中包含的文件。
AttributeType:返回的文件的属性类型。
AttributeBuffer:返回的文件属性输出缓存区。
Figure C20071017624800191
返回值:如果能够找到指定文件的属性,则返回true,否则返回false。
上述的命令会根据输入的AttributeType返回对应的文件属性,而具体的如何对应则是根据表格的描述来进行的,如输入AttributeType为0x01,那么根据表格,对应的是查询文件的大小,于是会在AttributeBuffer处写入一组数据表示对应的文件大小属性,而具体的数据如何表示文件大小,也是在表格中定义的。
2、修改外部存储设备文件和目录指令举例如下:
A)、如修改指定文件文件名称指令表示为:
Boolean cm_ChgFileNm(byte[]destfile,byte[]NewFileName)
即,将Destfile指定的文件名称修改为NewFileName中定义的文件名称。各命令分别为:
Destfile:如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指当前目录下的子目录中包含的文件。
NewFileName:新的文件名称。LV格式。L 2字节V文件名称,如为纯英文数字,则是ASC码,如包含中文字符,则采用Unicode编码。
返回值:如果修改文件名成功,则返回true,否则返回false。
B)、如修改指定目录名称指令表示为:
Boolean cm_ChgDirNm(byte[]destDirNm,byte[]NewDirNm)
即,将destDirNm指定的目录名称修改为NewDirNm中定义的目录名称。各命令分别为:
destDirNm:如果为绝对路径,格式为:分区号:\目录名\目录名;如果为相对路径,则指当前目录下的子目录。
NewDirNm:新的目录名称。LV格式。L 2字节V文件名称,如为纯英文数字,则是ASC码,如包含中文字符,则采用Unicode编码。
返回值:如果修改目录名成功,则返回true,否则返回false。
C)、如删除指定文件指令表示为:
Boolean cm_DelFile(byte[]destfile)
其中各命令分别为:destfile:如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指当前目录下的子目录中包含的文件。
返回值:如果删除文件成功,则返回true,否则返回false。
D)、如创建文件指令表示为:
Boolean cm_CreateFile(byte[]destfile)
即,创建一个内容为空的文件。其中各命令分别为:
destfile:如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指在当前目录下的子目录中创建文件。
返回值:如果创建文件成功,则返回true,否则返回false。
E)、如修改指定文件指令表示为:
Boolean cm_AmendFile(byte[]destfile,short FileOffset,byte[]SrcBuffer,short SrcOffset,short Length)
其中各命令分别为:
destfile:如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指在当前目录下的子目录中包含的文件。如果在目录结构中找不到指定的文件,命令将自动创建该文件。
Fileoffset:从目的文件写内容的起始位置。
SrcBuffer:要写入的文件内容存放的缓存区。
SrcOffset:存放写入文件内容的缓存区的起始位置。
Length:写入的文件内容的长度。
返回值:如果写入文件成功,则返回true,否则返回false。
F)、如建立子目录命令表示为:
Boolean cm_MD(byte[]SubDirName)
其中各命令分别为:
SubDirName:如果为绝对路径,格式为:分区号:\目录名\目录名;如果为相对路径,则指在当前目录下的子目录。
返回值:如果创建子目录成功,则返回true,否则返回false
G)、如拷贝文件指令表示为:
Byte cm_CopyFile(byte[]destfile,byte[]destdir)
其中各命令分别为:
Destfile:如果为绝对路径,格式为:分区号:\目录名\目录名\文件名;如果为相对路径,则指当前目录下的子目录中包含的文件。
Destdir:如果为绝对路径,格式为:分区号:\目录名\目录名\;如果为相对路径,则指当前目录下的子目录。
返回值:0表示文件拷贝成功。
        1表示读取复制文件失败
        2表示目的目录下有同名文件,无法覆盖
H)、如删除目录指令表示为:
Boolean cm_DelDir(byte[]destdir)
其中各命令分别为:
删除该目录,及其目录下的所有子目录和子文件。不能删除当前目录。
Destdir:如果为绝对路径,格式为:分区号:\目录名\目录名\;如果为相对路径,则指当前目录下的子目录。
四、文件访问控制模块。
文件访问控制模块可以包括目录文件***访问控制单元、和/或7816数据文件访问控制单元,对外部存储设备上的目录文件***的分析和读写操作都可以封装在本模块中,其中:
目录文件***访问控制单元,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行目录文件***格式的数据文件操作;
7816数据文件访问控制单元,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行ISO7816数据文件格式的数据文件操作。
当外存设备访问接口在收到应用程序或COS的操作请求后,如果请求针对的是目录文件***,则调用目录文件***访问控制单元对访问的请求进行分析,在外部存储设备的目录文件***中进行查找,找到请求的文件,并完成读取或者写入等操作。
目录文件***访问控制单元可以分为目录文件***识别、目录文件***目录结构解析和文件读写操作三个部分。目录文件***识别部分首先读取外部存储设备起始扇区的内容,然后对起始扇区的内容格式进行分析,判断是FAT16文件***还是FAT32文件***或者Ext2、Ext3等其他文件***。目录结构解析部分完成对目录结构的分析查找等操作,在完成外部存储设备文件***识别后,可以根据具体的文件***类别的对文件***目录结构进行解析,完成对指定目录或指定文件的查找,如对于FAT16或FAT32文件***来说,则是从根目录起进行目录表项的遍历和查找等。文件读写操作部分是目录结构分析部分完成对指定目录或文件的查找定位后,由文件读写操作部分来完成对文件的打开、读写、以及相应的目录项修改的等操作。
当外存设备访问接口在收到应用程序或COS的操作请求后,如果请求针对的是7816数据文件,则调用7816数据文件***访问控制单元对访问的请求进行分析,在外部存储设备的7816数据文件***中进行查找,找到请求的文件,并完成读取或者写入的操作。
7816数据文件***访问控制单元也可以分为7816数据文件***识别配置、7816数据文件***目录结构解析和7816数据文件读写操作三个部分。7816数据文件***识别配置部分在外部存储设备的根目录下建立一个对应于外部存储设备文件***的文件,所有保存到外部存储设备的7816数据文件都将保存在这个文件的内容中。7816数据文件***目录结构解析部分负责对这个文件中的各个7816数据文件进行识别解析,找到指定的7816目录或文件。找到指定的7816目录文件后,7816数据文件读写操作部分完成对7816数据文件的读取和写入的操作
为了更合理有效的利用大容量的外部存储设备,可以在外部存储设备开辟一片区域用于存放7816规范定义的文件。因此智能卡还可以进一步包括第一创建模块、和/或第二创建模块,其中:
第一创建模块,用于在智能卡COS获取外部存储设备配置信息时,当所述配置信息中不含ISO7816格式的文件数据,则创建ISO7816格式的数据文件夹;
第二创建模块,用于当智能卡COS或智能卡应用程序进行ISO7816格式的数据文件操作时,当所述配置信息中不含ISO7816格式的文件数据时,创建ISO7816格式的数据文件夹;
这样,7816数据文件访问控制单元还可以进一步用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上创建的ISO7816格式的数据文件夹进行ISO7816数据文件格式的数据文件操作。
具体的,目录文件***负责完成对外部存储设备目录文件***的访问,包括有文件***的识别、文件目录的解析、文件的读取和修改等。
文件***识别时,读取外部存储设备的主引导扇区的主引导分区表,通过分析主引导分区表中的***分区类型,就可以得到外部存储设备的文件***类型信息。
图4为文件目录解析实施流程示意图,如图所示,对于文件目录的解析可以按如下步骤完成:
步骤401、判断输入的List目录是否为绝对目录,是则转入步骤402,否则转入步骤403;
步骤402、读根目录扇区,返回根目录扇区内容,转入步骤404;
步骤403、读当前目录位置,找到当前目录的目录文件内容,转入步骤404;
步骤404、在目录项中查找是否有指定目录,有则转入步骤409,否则转入步骤405;在403步骤中读到了目录文件的内容,该内容包含了该目录下所有子目录和文件的目录项信息(目录项信息中有目录名或文件名),程序将这些目录项中的子目录名和要查询的目的目录的目录名进行比较,如果有相同的目录名,则完成整个解析,否则转入405。
步骤405、判断目录项中是否有未搜索过的目录的目录项,有则转入步骤406,否则转入步骤408;
步骤406、根据目录项与FAT表找到目录文件的内容,转入步骤407;在步骤405中得到了目录项,在目录项可以知道该目录文件内容的起始位置,再通过FAT表就可以知道该目录文件内容的结束位置,从而得到整个目录文件的内容;
步骤407、判断目录文件的内容中是否有指定目录的目录项,如果没有找到指定的目录,则返回到405,如果找到指定的目录,则转入步骤409;
步骤408、返回False,找不到List的目录。
步骤409、返回True,输出目录内容。
在文件的读取和修改时,对于读取文件,利用通过目录解析得到的文件数据起始扇区位置,调用底层的扇区读取函数,循环读入扇区内容,直至文件末尾,将读出的内容输出到指定的位置即可。对于修改文件,将要修改的内容按照扇区大小进行拆分,循环写入文件扇区的起始位置,即可完成文件的修改。
7816数据文件访问控制的处理流程与目录文件***类似,只是访问对象的具体细节不同,参照目录文件***的执行即可。
五、防插拔掉电保护模块、缓存模块、中断和异常控制模块。
COS以及应用程序通过COS在访问外部存储设备时,除了要读取或者改写外部存储设备的内容之外,还可以进一步考虑读写速度的问题、在读写过程中发生掉电保护的问题、有效访问外部存储设备的文件***的问题等,基于此,智能卡还可以进一步包括防插拔掉电保护模块、缓存模块、中断和异常控制模块之一或者其组合,其中:
1、防插拔掉电保护模块,用于当所述文件访问控制模块根据所述配置信息在外部存储设备上进行写入数据文件操作时,将所述数据文件写入智能卡数据备份区后写入外部存储设备;当外部存储设备上电时,若所述智能卡数据备份区与外部存储设备数据文件不一致时,将所述智能卡数据备份区的数据文件写入外部存储设备。
在对外部存储设备的访问过程中,由于智能卡本身使用环境的特殊性,有可能出现访问过程中忽然掉电的情况,为了避免智能卡和外部存储设备在掉电过程中出现核心数据被破坏而导致整个智能卡不能使用的情况,可以建立防插拔掉电保护模块对卡片上的数据进行保护。具体的,当文件访问***模块需要读取外部存储设备数据时,不能直接存取外部存储设备的数据,而须通过调用防插拔模块提供的函数来完成数据的读取和修改。防插拔模块在接收到数据读取或修改的操作指令后,会先将数据写入到智能卡的备份区,备份区写入完成后,再对外部存储设备进行写入;同时,在每次重新上电时,防插拔模块会首先检查备份区是否有要恢复的数据,如果有,则根据备份区的内容恢复相应的数据文件。
具体可按以下方式实施:
在智能卡中开辟一个备份区,要写外部存储设备时,先将要写入的内容按照备份区的格式写入备份区,备份区写入完成后,再对外部存储设备进行写入。每次上电时,首先检查备份区是否有要恢复的数据,如果有,则先应根据备份区的内容进行相应的恢复。
整个备份区的数据格式可以如下:
  备份标签   数据
其中数据部分的格式可以如下:
  数据标签   数据长度(M)   数据内容(O)   地址信息(M)   校验信息(M)
其中:备份标签用于表明整个备份区内数据是否有效。如用标签0xAA表明备份区内数据有效,其他表明无效。
数据标签用于表明该数据项是否有效,如用标签0x55表明该数据项有效,否则无效。
数据长度可以采用类似BER编码规范中长度表示方式,如:
当长度<128时,使用1个字节表示。
当长度>127时,使用多个字节表示,其中第一个字节的最高位为1,低7位表示长度所占的字节数n。后续n字节表示长度,高位在前。
当第一个字节为0xFF,认为是一个无效的长度。
采用该表示方式可以保存超过256字节的数据,以适应以后的应用需求。
特别的,当长度为0的时候,可以表示数据长度为一页(页面大小根据智能芯片而定),此时数据内容项为空,数据内容保存一个备份页当中。
数据内容指需要备份的数据。当长度为0的时候,该项为空。
地址信息可以根据芯片的容量采用2/3/4字节,该项分为两个部分,块号和块内偏移,块内偏移为2个字节,块号根据芯片的容量可以为0/1/2字节。
校验信息用于验证该备份数据是否有效。
则在备份区擦除可以首先破坏备份标签,将备份标签写成0x00,令整个备份区失效,然后再擦除整个备份区。
备份区的长度为可配置项。利用OS Configuration中的Backup Address项来实现,Backup Address为两个字节,第一个字节表示备份区在基本区地址的高位,第二个字节表示备份区所占的页面数。比如FF03,表示备份区在0xFF00起始的地址,备份区占3个页。
2、缓存模块,用于根据所述文件访问控制模块操作规律在智能卡缓存区存储数据文件,所述文件访问控制模块优先从所述缓存区读取需操作的数据文件。
由于外部存储设备物理设备的特性,访问外部存储设备的速度要远远低于直接访问智能卡内部存储器的速度。因此,可以利用高速缓存模块,预先读取外部存储设备中的内容到智能卡的缓存区,用以提高访问的速度。当文件访问控制模块需要读取外部存储设备中的数据时,缓存模块会检查要访问的数据文件是否存在于缓存区中,如果存在于缓存区中,则直接返回缓存区中的数据内容给文件访问控制模块;如果缓存区中没有需要的数据,则从外部存储设备中读取相应的数据,并将相关的数据拷贝到缓存区中。缓存模块可以利用特定的算法,如根据COS读取外部存储设备的规律,预先读取外部存储设备中的数据文件到缓存中,这样COS在访问外部存储设备时,就可以直接在缓存中进行读取,能够大大提高访问的速度。
图5为高速缓存实施流程示意图,如图所示为一种较为简单的高速缓存算法,易知,也可以采用其他比较成熟的高速缓存算法,则高速缓存实施时可以包括如下步骤:
步骤501、访问外部存储设备;
步骤502、判断高速缓存中是否有对应数据文件,有则转入步骤504,否则转入步骤503;
步骤503、调用底层函数读取外部存储设备中的对应数据文件;
步骤504、返回数据文件内容;
步骤505、将临近扇区的数据文件内容拷贝到高速缓存区。
3、中断和异常控制模块,用于所述文件访问控制模块根据所述配置信息在外部存储设备上进行的数据文件操作发生中断时,保存操作执行状态,中断恢复后,根据所述保存的操作执行状态继续执行。
在访问外部存储设备的过程中可能会发生某个扇区物理损坏不能读取、找不到相应数据扇区、外部存储设备响应超时等异常情况,中断和异常控制模块则负责对这些异常事件进行相应的处理,当数据发送或者数据接收完成、数据传输时间片轮转触发相应的中断时,中断和异常处理模块完成对中断的响应,并调用相应的中断处理函数来完成处理。具体的,当异常中断发生时,在执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场。从异常中断处理程序退出时,恢复被中断的程序的执行现场即可。
处理器响应中断的时候,总是从固定的地址开始的,为了使得上层应用程序与硬件中断跳转联系起来,可以编写一段中断解析程序来进行连接。图6为中断与异常实施流程示意图,如图所示,具体实施可以包括如下步骤:
步骤601、发起中断请求;
步骤602、跳转到固定地址;
步骤603、从起始固定地址跳转至用户自定义的固定地址的内存区,其中存放中断再跳转的解析程序;
步骤604、解析程序读取中断向量表,得到中断函数的目标地址;
步骤605、跳转至目标函数地址。
部分中断向量的定义可以如下:
THOR_DRV_USART_INTERRUPT    =THOR_DRV_SET_LBIT(0),
THOR_DRV_MMC_INTERRUPT      =THOR_DRV_SET_LBIT(2),
THOR_DRV_FLASH_INTERRUPT    =THOR_DRV_SET_LBIT(3),
THOR_DRV_GPT1_INTERRUPT     =THOR_DRV_SET_LBIT(6),
THOR_DRV_GPIO_INTERRUPT     =THOR_DRV_SET_LBIT(10),
THOR_DRV_SMAP_INTERRUPT     =THOR_DRV_SET_LBIT(15),
THOR_DRV_DMA_INTERRUPT      =THOR_DRV_SET_LBIT(18)。
并定义相应的中断处理函数为:
typVoidFunc pFIQInterruptHandler;
typVoidFunc pMUARTInterruptHandler;
typVoidFunc pMMCInterruptHandler;
typVoidFunc pWDTInterruptHandler;
typVoidFunc pGPT1InterruptHandler;
typVoidFunc pGPIOInterruptHandler;
typVoidFunc pDMAInterruptHandler。
进一步的,实施中由于通过高速缓存模块和防插拔掉电保护模块对外部存储设备的访问都是基于逻辑数据的访问。而直接的物理地址寻址复杂,而且需要考虑坏块和负载均衡的情况,如果直接进行物理地址的数据文件访问的话,效率非常的低下。这样可以利用外部存储设备逻辑扇区访问接口模块封装逻辑地址与物理地址的转换、以及坏块和负载均衡的管理等问题,使得上层的文件访问操作可以方便的通过逻辑扇区访问接口模块对逻辑地址进行外部存储设备的数据访问。
外部存储设备逻辑扇区访问模块实际上是为上层提供了一种连续的、没有坏块的、以扇区为单位访问的地址空间以及存储接口。所述功能模块可以对外部存储设备的物理块进行管理,标识出坏块,并且实现将上层传来的逻辑地址映射为外部存储设备相应的物理地址。同时,由于flash的块有擦写次数的限制,所以还可以让每一个物理块有均匀的擦写机会,使新的数据尽量写到最少被使用的空闲块,而长期不变的数据要拷贝到另外的块中,原先占用的块由频繁更新的数据使用。由于FLASH写操作只能在空或已擦除的单元内进行,并且相对于读写操作,擦除操作的时间十分长。所以在更新数据时并不是把数据所在的块擦除后在写入数据,而是找一个新的空闲块写入数据,把先前的块标记为舍弃,在***空闲的时候擦除那些标记为舍弃的块。
逻辑扇区访问接口模块调用物理扇区访问接口模块中封装的函数完成对物理扇区的数据访问。不同厂商、不同FLASH结构都会导致闪存的控制命令的差异;而不同的容量会导致地址字节数不同;外部存储设备物理扇区访问模块则针对这些差异实现相应的驱动。并且对这些差异进行封装,向上层提供统一的接口,使得上层能够访问任意物理地址的数据,而不用关心控制命令序列和地址字节数。
有上述实施可以看出,即使各个智能卡公司的COS不一样,外部存储设备的存储介质及其上的文件***也不尽相同,但是本发明实施例可以实现卡片应用程序以及COS对外部存储设备快速安全有效的访问。本发明实施例通过采用层次结构的方案,将对外部存储设备的操作封装成不同的功能层次,操作时只需要调用COS最外层的功能函数即可,而具体的读写控制、缓存、防插拔掉电等各模块都相应的封装在中间层,最底层是调用外部存储设备的物理读取函数;从而构建一个快速、安全、有效,同时也便于扩展的智能卡访问外部存储设备的体系。
在本发明实施例的层次结构下,将构成***的各个部分按照不同层次进行抽象;层与层之间完全单向依赖,相邻层间通过界面相互作用,下层为上层提供服务,上层使用下层提供的服务以实现本层的功能。上层隐藏紧接下层的细节,下层所涉及的技术规范、实现技术及其复杂性完全被紧邻上层所屏蔽,越往上层其抽象程度越高,越来越呈现出统一性;而同时上层也弥补下层的缺陷和不足,提供功能更为完善的服务。
进一步的,本发明实施例在COS在访问外部存储设备时,除了读取或者改写外部存储设备的内容等操作之外,还提供了优化读写的速度、解决了在读写过程中发生的掉电保护问题、提高了有效访问外部存储设备的文件***、在外部存储设备上建立COS的目录文件结构等功能。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1、一种智能卡卡片操作***对数据文件进行操作的方法,用于对外部存储设备进行数据文件操作,其特征在于,包括如下步骤:
智能卡卡片操作***获取外部存储设备配置信息,所述配置信息包括外部存储设备的容量及文件数据格式;
当智能卡卡片操作***或智能卡应用程序进行数据文件操作时,智能卡卡片操作***根据所述配置信息在外部存储设备上进行数据文件操作。
2、如权利要求1所述的方法,其特征在于,当智能卡卡片操作***或智能卡应用程序进行ISO7816格式的数据文件操作时,智能卡卡片操作***或智能卡应用程序在所述外部存储设备的ISO7816格式的数据文件夹中进行操作;
当智能卡卡片操作***或智能卡应用程序进行目录文件***格式的数据文件操作时,智能卡卡片操作***或智能卡应用程序在所述外部存储设备的目录文件***格式的数据文件夹中进行操作。
3、如权利要求2所述的方法,其特征在于,智能卡卡片操作***获取外部存储设备配置信息时,进一步包括:当所述配置信息中不含ISO7816格式的文件数据时,创建ISO7816格式的数据文件夹;
所述当智能卡卡片操作***或智能卡应用程序进行数据文件操作时,智能卡卡片操作***根据所述配置信息在外部存储设备上进行数据文件操作,具体为:当智能卡卡片操作***或智能卡应用程序进行ISO7816格式的数据文件操作时,智能卡卡片操作***或智能卡应用程序在所述外部存储设备上创建的ISO7816格式的数据文件夹中进行操作。
4、如权利要求2所述的方法,其特征在于,当智能卡卡片操作***或智能卡应用程序进行ISO7816格式的数据文件操作时,进一步包括:当所述配置信息中不含ISO7816格式的文件数据时,创建ISO7816格式的数据文件夹;
所述智能卡卡片操作***根据所述配置信息在外部存储设备上进行数据文件操作,具体为:智能卡卡片操作***或智能卡应用程序在所述外部存储设备上创建的ISO7816格式的数据文件夹中进行操作。
5、如权利要求1至4任一所述的方法,其特征在于,智能卡卡片操作***根据所述配置信息在外部存储设备上进行数据文件操作,进一步包括如下步骤之一或者其组合:
防插拔掉电保护步骤:当智能卡卡片操作***根据所述配置信息在外部存储设备上进行写入数据文件操作时,将所述数据文件写入智能卡数据备份区后写入外部存储设备;当外部存储设备上电时,若所述智能卡数据备份区与外部存储设备数据文件不一致时,将所述智能卡数据备份区的数据文件写入外部存储设备;
缓存步骤:智能卡卡片操作***根据智能卡操作***读取外部设备的操作规律在智能卡缓存区存储数据文件,智能卡操作***优先从所述缓存区读取需操作的数据文件;
中断和异常控制步骤:智能卡卡片操作***根据所述配置信息在外部存储设备上进行的数据文件操作发生中断时,保存操作执行状态,中断恢复后,根据所述保存的操作执行状态继续执行。
6、一种智能卡,应用于与外部存储设备进行数据文件操作,其特征在于,包括外存设备管理模块、文件操作请求模块、外存设备访问接口、文件访问控制模块,其中:
外存设备管理模块,用于获取外部存储设备的配置信息,所述配置信息包括外部存储设备的容量及文件数据格式,并根据配置信息在建立智能卡与外部存储设备的连接后提供对数据文件进行操作的通道;
文件操作请求模块,用于发起对数据文件的操作请求;
外存设备访问接口,用于在接收到所述文件操作请求模块的操作请求后,根据操作请求提供对外部存储设备进行操作的操作指令;
文件访问控制模块,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行数据文件操作。
7、如权利要求6所述的智能卡,其特征在于,所述文件操作请求模块包括卡片操作***请求单元、和/或应用程序请求单元,其中:
卡片操作***请求单元,用于在卡片操作***对数据文件进行操作时,发起对数据文件的操作请求;
应用程序请求单元,用于在应用程序对数据文件进行操作时,发起对数据文件的操作请求。
8、如权利要求6所述的智能卡,其特征在于,所述外存设备访问接口包括目录文件***访问指令集存储单元、7816数据文件***访问指令集存储单元、指令提供单元,其中:
目录文件***访问指令集存储单元,用于存储目录文件***访问指令集;
7816数据文件***访问指令集存储单元,用于存储7816数据文件***访问指令集;
指令提供单元,用于在接收到所述文件操作请求模块的操作请求后,根据操作请求从目录文件***访问指令集存储单元或7816数据文件***访问指令集存储单元选取相应操作指令后,提供对外部存储设备进行操作的操作指令。
9、如权利要求6所述的智能卡,其特征在于,所述文件访问控制模块包括目录文件***访问控制单元、和/或7816数据文件访问控制单元,其中:
目录文件***访问控制单元,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行目录文件***格式的数据文件操作;
7816数据文件访问控制单元,用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上进行ISO7816数据文件格式的数据文件操作。
10、如权利要求9所述的智能卡,其特征在于,进一步包括第一创建模块、和/或第二创建模块,其中:
第一创建模块,用于在智能卡卡片操作***获取外部存储设备配置信息时,当所述配置信息中不含ISO7816格式的文件数据,则创建ISO7816格式的数据文件夹;
第二创建模块,用于当智能卡卡片操作***或智能卡应用程序进行ISO7816格式的数据文件操作时,当所述配置信息中不含ISO7816格式的文件数据时,创建ISO7816格式的数据文件夹;
所述7816数据文件访问控制单元进一步用于在接收到操作指令后,根据所述配置信息按操作指令通过所述外存设备管理模块提供的操作通道在外部存储设备上创建的ISO7816格式的数据文件夹进行ISO7816数据文件格式的数据文件操作。
11、如权利要求6至10任一所述的智能卡,其特征在于,进一步包括防插拔掉电保护模块、缓存模块、中断和异常控制模块之一或者其组合,其中:
防插拔掉电保护模块,用于当所述文件访问控制模块根据所述配置信息在外部存储设备上进行写入数据文件操作时,将所述数据文件写入智能卡数据备份区后写入外部存储设备;当外部存储设备上电时,若所述智能卡数据备份区与外部存储设备数据文件不一致时,将所述智能卡数据备份区的数据文件写入外部存储设备;
缓存模块,用于根据所述文件访问控制模块操作规律在智能卡缓存区存储数据文件,所述文件访问控制模块优先从所述缓存区读取需操作的数据文件;
中断和异常控制模块,用于所述文件访问控制模块根据所述配置信息在外部存储设备上进行的数据文件操作发生中断时,保存操作执行状态,中断恢复后,根据所述保存的操作执行状态继续执行。
CNB2007101762483A 2007-10-23 2007-10-23 一种卡片操作***对数据文件进行操作的方法及智能卡 Expired - Fee Related CN100561452C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101762483A CN100561452C (zh) 2007-10-23 2007-10-23 一种卡片操作***对数据文件进行操作的方法及智能卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101762483A CN100561452C (zh) 2007-10-23 2007-10-23 一种卡片操作***对数据文件进行操作的方法及智能卡

Publications (2)

Publication Number Publication Date
CN101140548A CN101140548A (zh) 2008-03-12
CN100561452C true CN100561452C (zh) 2009-11-18

Family

ID=39192504

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101762483A Expired - Fee Related CN100561452C (zh) 2007-10-23 2007-10-23 一种卡片操作***对数据文件进行操作的方法及智能卡

Country Status (1)

Country Link
CN (1) CN100561452C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789019B (zh) * 2010-02-11 2012-05-30 株洲南车时代电气股份有限公司 一种可移动磁盘在Windows下的控制方法
CN103544173A (zh) * 2012-07-13 2014-01-29 国民技术股份有限公司 命令处理方法、信息交互方法及sim卡和移动终端
CN102799691B (zh) * 2012-08-15 2016-05-04 深圳市宏电技术股份有限公司 文件***转换访问方法及文件***转换访问设备
CN103679236B (zh) * 2013-12-26 2017-02-15 东信和平科技股份有限公司 一种智能卡交互数据跟踪、处理的方法及***
CN103281219B (zh) * 2013-06-04 2016-08-10 东信和平科技股份有限公司 一种监听isoiec7816-3接口数据交互的方法及装置
CN106686461B (zh) * 2013-12-18 2019-09-20 青岛海信电器股份有限公司 一种多媒体文件的播放方法、装置、以及电视机
CN104484619B (zh) * 2014-12-22 2017-10-27 东信和平科技股份有限公司 一种解决客户端多逻辑通道访问pkcs#15文件冲突的方法
CN106095873B (zh) * 2016-06-06 2020-10-23 北京美屏传媒有限公司 一种为移动终端进行扩容的方法及装置
CN106354432A (zh) * 2016-08-30 2017-01-25 北京小米移动软件有限公司 数据修改方法及装置
CN108228097A (zh) * 2017-12-25 2018-06-29 中国航空工业集团公司洛阳电光设备研究所 一种基于fat32文件***的掉电保护方法
CN108733758B (zh) * 2018-04-11 2022-04-05 北京三快在线科技有限公司 酒店静态数据推送方法、装置、电子设备及可读存储介质
CN108628550B (zh) * 2018-04-28 2022-02-22 深信服科技股份有限公司 一种读取磁盘映射文件的方法、装置及***
CN108971762A (zh) * 2018-07-28 2018-12-11 北京艾丕科技有限责任公司 一种电子签名设备加工流水线及方法
CN110334063B (zh) * 2019-07-15 2024-05-14 深圳前海微众银行股份有限公司 文件***的操作方法、装置、设备及计算机可读存储介质
CN110532237B (zh) * 2019-09-05 2022-02-08 恒生电子股份有限公司 格式数据文件的并发处理方法、装置及***
CN112905546A (zh) * 2021-03-15 2021-06-04 深圳软牛科技有限公司 已删除文件的恢复方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN101140548A (zh) 2008-03-12

Similar Documents

Publication Publication Date Title
CN100561452C (zh) 一种卡片操作***对数据文件进行操作的方法及智能卡
US8028006B2 (en) Method and apparatus for exchanging sub-hierarchical structures within a hierarchical file system
CN101147119B (zh) 快闪存储器中的直接数据文件存储实施技术
CN101288045B (zh) 增强型主机接口
US7747837B2 (en) Method and system for accessing non-volatile storage devices
US7793068B2 (en) Dual mode access for non-volatile storage devices
US8849880B2 (en) Providing a shadow directory and virtual files to store metadata
CN102214109B (zh) 一种加载插件的方法及装置
US7353242B2 (en) File server for long term data archive
US20070143570A1 (en) Method and system for accessing non-volatile storage devices
CN107479922A (zh) 一种闪存数据管理方法、装置及计算机可读存储介质
CN101441634A (zh) 适用于智能卡应用环境的嵌入式文件***
CN103473296A (zh) 一种适用于云计算的回收站机制及其***
EP2174244A2 (en) Computing device having a merged directory hierarchy from multiple files stems
CN101375280A (zh) 事件结构化文件***(esfs)
CN100507919C (zh) 一种fat文件***及其处理方法
CN104035842A (zh) 一种删除和恢复内置应用程序的方法
CN102243636B (zh) 存储待保护文件信息、保护文件的方法及装置
CN110622147B (zh) 存储虚拟化***中占位符的元数据存储
KR100987320B1 (ko) 고속 파일 복구가 가능한 fat 파일시스템을 사용한데이터 처리장치 및 데이터 처리방법
US8595426B2 (en) Handling commands within a write-once read-many storage device configuration
CN103218300A (zh) 数据处理方法、存储器控制器与存储器储存装置
CN102375781A (zh) 数据保护方法、存储器控制器及可携式存储器储存装置
CN106557572A (zh) 一种安卓应用程序文件的提取方法及***
CN103257928A (zh) 闪存设备数据管理方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Ou Yingfeng

Inventor after: Xu Daxing

Inventor after: Liu Qinghai

Inventor after: Wang Youjun

Inventor before: Ou Yingfeng

Inventor before: Xu Daxing

Inventor before: Liu Qinghai

CB03 Change of inventor or designer information
CP01 Change in the name or title of a patent holder

Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee after: BEIJING WATCHDATA Co.,Ltd.

Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091118

CF01 Termination of patent right due to non-payment of annual fee