一种智能卡文件系统管理方法

文档序号:6464179阅读:250来源:国知局
专利名称:一种智能卡文件系统管理方法
技术领域
本发明属于嵌入式软件领域中的智能卡操作系统范畴。
背景技术
智能卡是一种IC卡,卡内的集成电路包括中央处理器CPU、 EEPROM (或其它介质)、 RAM和固化在卡内的智能卡操作系统COS。
智能卡操作系统的功能之一就是管理卡内的各项数据和文件,也就是所说的文件系统。 智能卡文件系统多采用按物理空间顺序存储的方式或其他非连续存储方式,顺序存取是 最简单的文件存取,当打开文件时,文件的存取指针指向第一个信息单位,如第一个字节或 第一个记录,每存取一个信息单位存取指针加1,指向下一个信息单位,如此类推。顺序存 取缺点是文件不易动态增长,浪费预留空间,不利于文件的插入、删除、空间的重新分配和 移动,存在外部碎片等问题,很难达到完整意义的文件系统的要求,即对文件和数据反复的 添加、删除和变更等。

发明内容
随着应用功能需求的日益增多,对文件和数据反复的添加、删除和变更等操作的需求越 来越多,本发明正是为解决这一问题而设计的一种方法,解决了对文件数据反复做添加、删 除和变更占用空间大小等操作,及卡内数据空间重复利用、碎片整理的问题,可以对智能卡 空间进行回收管理,提高了智能卡的使用效率和寿命。
本发明主要是提供一种智能卡文件系统管理的方法,涉及智能卡内部文件数据结构的设 计和数据访问、操作等一系列的管理方法。解决了对文件数据反复做添加、删除和变更占用 空间大小等操作,及卡内数据空间重复利用、碎片整理的问题。
本发明采用一种DAT (数据分配表)的方式管理智能卡内部空间。以簇的方式管理每一块 实际物理空间,簇于簇之间存在逻辑关系。不同的数据或文件可以占用不连续的簇。同时提 出相应的一套文件结构模式。
术语定义-
DAT : Data Allocation Table,数据分配表。
Cluster (簇)DAT文件系统所能管理的最小单元,其大小字节数必须是8的倍数。一 般是32, 64, 128字节。MF: master file DF: directory file EF: elementary file
系统物理存储结构如图1所示,智能卡存储空间被划分为系统数据区、数据分配表DAT 区、MF主目录区、DF目录区和EF透明文件区,采用数据分配表DAT的方式管理智能卡内 部空间,以簇的方式管理每一块实际物理空间,簇于簇之间存在逻辑关系,DAT表按顺序依 次记录各簇的使用情况,不同的数据或文件占用不连续的簇;目录区记录该目录的文件属性 和下级文件DF和EF的地址信息,文件区记录了一个EF的属性和文件体。
其中,在COS系统数据区的后面紧跟着DAT表区,在DAT表中,DAT表的每一项所表 示的含义是,该簇表示的空间在DAT表中的体现的管理信息记录,称作簇登记项。在DAT 表中,簇编号也即为登记项的编号。
本发明中DAT文件系统每个簇登记项占16bit, 2个字节的长度。DAT表按顺序依次记录 了各簇的使用情况,是一种位示图法。每簇的使用情况用16位二进制填写,未被分配的簇相
应位置写零;巳分配的簇相应位置填入非零值。具体为如果该簇是文件的最后一簇,填入
的值为7FFFH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号, 这样正好将文件占用的各簇构成一个簇链,保存在DAT表中,如图1所示。 一个文件往往需 要占用很多个簇。同一个文件不一定会完整地存放在一个连续的存储空间内,而是分成若干 段,像链子一样地存放。在文件名记录中,指向文件存储的链头所在的DAT簇,而该簇的 DAT表存放下一个链子的DAT簇值,如果是文件结尾,使用一个文件结束标志,表示到达链 尾,这样就标识了文件的链式存储。簇的空间大小以及DAT区、目录区所占空间大小由卡操 作系统根据用户空间大小计算得到。
图3表示了一种通过DAT表示方式来描述数据的例子如一个文件总共占了 3簇空间, 它的首簇是第0000H簇,第2簇占了第0001H簇,第3簇0003H簇,那么在DAT项号第 0000项上标记它的下一簇是第几簇(第0001H簇),然后在DAT项号第0001项上标记它的 下一簇是第几簇(第0003H簇),最后在DAT项号第0003项上标记它是最后一簇(7FFF)。
内存中保存当前目录区的簇号、当前EF的簇号,即文件通道信息。文件系统底层处理模 块通过DAT表和文件通道信息给上层提供逻辑连续的读写函数。
目录区记录了该目录的文件属性和下级文件(DF/EF)的地址信息。其中MF总是紧随在 DAT区后面的。
文件区记录了一个EF的属性和文件体。它可能有多个不连续的簇存储,为方便描述,用 相对簇号来表示。目前一般的智能卡不支持对卡内数据空间重复利用,或是隐含碎片整理不好的问题,从 而不能完成某些特定应用。
本发明提供的这种智能卡文件系统管理的方法,解决了对文件数据反复做添加、删除和 变更占用空间大小等操作时,对卡内数据空间重复利用、碎片整理的问题,使得智能卡能够 满足更丰富的应用需求。


图1为系统物理存储结构
图2为2个字节的16位DAT表项;
图3为文件分配表中每个簇号可取的表项值及其含义;
图4为通过DAT表示方式来描述数据的例子;
图5为MF的目录区结构;
图6为DF的目录区结构;
图7为文件区结构;
图8为对DAT所管理的文件/数据的读写流程图
具体实施例方式
以下通过具体实施方式
对本发明进行具体介绍。
内存中保存当前目录区的簇号、当前EF的簇号,即文件通道信息。文件系统底层处理模 块通过DAT表和文件通道信息给上层提供数据逻辑连续的读写函数。
目录区记录了该目录的文件属性和下级文件(DF/EF)的地址信息。其中MF总是紧随在 DAT区后面的。
文件区记录了一个EF的属性和文件体。它可能有多个不连续的簇存储,为方便描述,用 相对簇号来表示。
具体对智能卡的操作涉及多个方面,下面举例说明本发明在实际操作中的实施方式。 例如要修改3F00 (MF)下的7F20 (DF)中的6F01 (EF,透明文件)的数据,典型的 DAT处理流程如下.
(1) 査找3F00(MF)文件。规定3F00 (MF)从第O簇开始,首地址为0x0000。根据簇 号和簇大小的乘积算出3F00 (MF)文件的起始地址。
(2) 査找7F20 (DF)文件。在从(1)中找到的3F00 (MF)的目录区(见图5)里, 检索"下级文件IDi"是否有等于"7F20"的项。若没有,则报告文件不存在;若有,则可获得该项的"文件IDi的首簇号"。则7F20 (DR文件的起始地址就等于文件IDi的首簇号 和簇大小的乘积。
(3) 查找6F01 (EF)文件。在从2)中找到的7F20 (DF)的目录区(见图6)里,检 索"下级文件IDi"是否有等于"6F01"的项。若没有,则报告文件不存在;若有,则可获 得该项的"文件IDi的首簇号"。则6F01 (EF)文件的起始地址就等于"文件IDi的首簇号" 和簇大小的乘积。
(4) 检査文件属性是否满足要求。
*读出"文件格式"字段,比较是否是"透明文件"类型。如果是,则第3、 4字节
为文件长度;如果不是,则执行错误报告; *检査"写属性"字段,判断是否之前通过允许写的密钥验证,如果允许写,则跳
到4,3);如果不允许写,则执行错误报告; *检査"目的偏移地址"和"数据长度"是否在6F01 (EF)文件的数据范围内。首
先将"目的偏移地址"与"数据长度"相加,比较是否超出"文件大小";如果小
于等于,则跳到5);如果大于,则执行错误报告。
(5) 计算"目的偏移地址"的绝对地址。该操作要检索DAT表。根据"目的偏移地址" 计算出"相对簇号",然后从6F01 (EF)的首簇号(参照图3的文件和簇号的对应关系)开 始查找"相对簇号"指向的绝对簇号A;并计算簇内绝对地址。
(6) 在簇A中写入修改数据。如果簇内可写空间x大于数据长度y,则写过程结束;否 则,写入"簇内可写空间"长度的数据,数据长度y变更为y减去x的值。
(7) 然后在DAT表中查找下一个属于6F01 (EF)文件的簇B,重复执行6)步骤。 本发明提供的这种智能卡文件系统管理的方法,解决了对文件数据反复做添加、删除和
变更占用空间大小等操作时,对卡内数据空间重复利用、碎片整理的问题,使得智能卡能够 满足应用需求。
权利要求
1、一种智能卡文件系统管理方法,其特征在于智能卡存储空间被划分为系统数据区、数据分配表DAT区、MF主目录区、DF目录区和EF透明文件区,采用数据分配表DAT的方式管理智能卡内部空间,以簇的方式管理每一块实际物理空间,簇于簇之间存在逻辑关系,DAT表按顺序依次记录各簇的使用情况,不同的数据或文件占用不连续的簇;目录区记录该目录的文件属性和下级文件DF和EF的地址信息,文件区记录了一个EF的属性和文件体。
2、 如权利要求1所述的一种智能卡文件系统管理方法,其特征在于MF主目录区在数据分配 表DAT区后面。
3、 如权利要求1所述的一种智能卡文件系统管理方法,其特征在于簇的空间大小以及DAT 区、目录区所占空间大小由卡操作系统根据用户空间大小计算得到。
全文摘要
本发明是一种智能卡文件系统管理方法,属于嵌入式软件领域中的智能卡操作系统领域。本发明主要是提供一种智能卡文件系统管理的方法,涉及智能卡内部文件数据结构的设计,和数据访问、操作等一系列的管理方法,解决了对文件数据反复做添加、删除和变更占用空间大小等操作,及卡内数据空间重复利用、碎片整理的问题。本发明采用一种DAT(Data Allocation Table数据分配表)的方式管理智能卡内部空间。以簇的方式管理每一块实际物理空间,簇于簇之间存在逻辑关系。不同的数据或文件可以占用不连续的簇。本发明主要用于高端智能卡的操作系统设计,例如OTA,USIM等智能卡。
文档编号G06F17/30GK101593193SQ200810113118
公开日2009年12月2日 申请日期2008年5月28日 优先权日2008年5月28日
发明者杨念东 申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1