CN109388616B - 一种智能卡文件系统的管理方法 - Google Patents
一种智能卡文件系统的管理方法 Download PDFInfo
- Publication number
- CN109388616B CN109388616B CN201810979810.4A CN201810979810A CN109388616B CN 109388616 B CN109388616 B CN 109388616B CN 201810979810 A CN201810979810 A CN 201810979810A CN 109388616 B CN109388616 B CN 109388616B
- Authority
- CN
- China
- Prior art keywords
- file
- directory
- control item
- data storage
- storage space
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种智能卡文件系统的管理方法,该方法包括步骤1,智能卡首先接收相应的卡初始化命令,创建目录控制项表和文件控制项表;步骤2,进行主目录、目录和文件的创建;步骤3,进行目录与文件的访问;步骤4,接收到写入文件数据指令,将命令执行过程中产生的或者携带的数据写入到文件指定数据存储对应的区域;若写入过程中文件指定数据存储区域出现故障,则启动文件数据写入故障容错机制,将文件数据存储到智能卡数据存储空间的另一区域。
Description
技术领域
本发明涉及智能卡操作系统设计领域,具体的说,涉及了一种智能卡文件系统的管理方法。
背景技术
目前基于智能卡操作系统的文件管理在ISO/IEC 7816系列标准中没有明确的技术规范,因此,智能卡操作系统中的文件管理依据相关应用目标进行设计与实现,常见的文件管理模式有借鉴计算机硬盘文件管理的文件分配表(FAT)模式,采用文件标识、长度和值域(TLV)嵌套结构的文件管理模式和基于链表结构的目录控制项和文件控制项构建的目录与目录、目录与文件之间相互隶属的文件管理模式。这几种文件管理模式由于在目录创建时就规定了目录的文件数据存储空间,限制了目录下文件创建的数量及文件数据存储空间,且文件数据存储器的利用率不高,可扩展性较差;当向存储器写入文件数据发生写入错误时,将导致文件数据存储失败而丢失文件数据,最终甚至会导致智能卡因数据存储错误而报废。
随着智能卡数据存储器容量的不断增加,一般智能卡在满足应用功能的文件数据存储后,数据存储器往往还有较大的剩余空间,因此,提高智能卡存储器的使用效率,充分利用这些剩余空间来延长智能卡的使用寿命和可扩展性,将产生良好的社会效益和经济效益。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供了一种能够延长智能卡生命周期的智能卡文件系统的管理方法。
为了实现上述目的,本发明所采用的技术方案是:一种智能卡文件系统的管理方法,该管理方法包括以下步骤:
步骤1,智能卡首先接收相应的卡初始化命令,创建目录控制项表和文件控制项表,所述目录控制项表包括主目录控制项和目录控制项,所述文件控制项表包括文件控制项;
步骤2,进行主目录、目录和文件的创建,通过所述主目录控制项、所述目录控制项和所述文件控制项中的控制参数,构建智能卡文件系统中不同级目录之间、同级目录之间、目录与文件之间、文件与文件之间的层次关系,各文件控制项与文件数据存储器存在唯一的一种映射关系;
步骤3,通过所述主目录控制项、所述目录控制项和所述文件控制项中的控制参数进行目录与文件的访问;
步骤4,接收到写入文件数据指令,将命令执行过程中产生的或者携带的数据写入到文件指定数据存储对应的区域;若写入过程中文件指定数据存储区域出现故障,则启动文件数据写入故障容错机制,将文件数据存储到智能卡数据存储空间的另一区域。
基于上述,所述主目录控制项包括备份主目录控制项首地址(BMFFA)、目录标识符(MFID)、主目录链首指针(MDLHP)、主目录链尾指针(MDLTP)、剩余文件数据空间首地址(RFDHFA)、主目录文件链表首指针(MDFLHP)、主目录文件表链尾指针(MDFLTP)、剩余文件数据存储空间(RFDSS)、主目录其他控制参数(MDOCP)和CRC校验码;
所述目录控制项包括目录控制项首地址(DCFA)、目录标识符(DIRID)、同级目录链表指针(PDP)、下级目录链首指针(NDLHP)、下级目录链尾指针(NDLTP)、文件链表首指针(FLHP)、文件链表尾指针(FLTP)、目录其他控制参数(DOCP)和CRC校验码;其中,目录标识由根目录标识符外的任意2字节组成,目录标识是查找目录是否存在的参数之一,每个目录必须有一个目录标识,且同级目录的目录标识均不相同;
所述文件控制项包括文件控制项首地址(FCFA)、文件标识符(FID)、文件链表指针(FLP)、文件类型(FT)、文件数据首地址(FDFA)、文件数据存储空间(FDSS)、文件读权限(FRP)、文件写权限(FWP)、文件其他控制参数(FOCP)和CRC码;其中,文件标识符由2字节组成,是文件查找的参数之一,同一目录下的文件标识符不能相同;文件链表指针指向本目录下的下一个文件控制项首地址,构成本目录下所有文件控制项链表结构;文件数据首地址指向本文件数据存储空间的第一个字节地址,也是文件访问控制的上界;文件存储空间定义了文件需要存储的数据量,与文件数据首地址结合规定了文件访问控制的下界;文件类型规定文件存储数据的结构。
基于上述,步骤1中,创建目录控制项表和文件控制项表具体包括以下步骤:
步骤1.1,智能卡接收相应的卡初始化命令,对智能卡中数据存储器区域进行初始化检验,将整个数据存储区进行清除处理,自动创建一个主目录控制项;
步骤1.2,在主目录控制项后根据命令中的参数决定创建目录控制项表和文件控制项表的数量,创建相应数量的空目录控制项和空文件控制项;
步骤1.3,将智能卡中的数据存储区划分文件管理参数区,控制项表区域和文件数据存储区;
步骤1.4,在文件管理参数区设置主目录控制项首地址、目录控制项首地址、文件控制项首地址、文件数据存储区首地址、备份主目录控制项首地址相关控制参数,并将文件数据存储空间首地址和文件数据存储空间大小分别写入到主目录控制项中的剩余文件数据空间首地址和剩余文件数据存储空间,至此,空的目录控制项表和空的文件控制项表创建完成。
基于上述,步骤2中创建主目录包括以下步骤:
步骤2.1,接收创建主目录命令,检测主目录标识符、相关参数和命令序列是否符合相关规定,若创建主目录命令不满足相关规定或者主目录已经存在,则禁止创建主目录,否则执行下一步;
步骤2.2,根据智能卡控制参数首地址读取主目录控制参数,并赋值给对应的备份主目录控制项首地址、目录标识符、剩余文件数据空间首地址、剩余文件数据存储空间参数,将接收的主目录其他控制参数赋值给对应参数区,然后将所有链表指针全部设置为空即00H,重新计算主目录控制项的CRC校验码;
步骤2.3,将主目录控制项数据回写到主目录控制项首地址开始的区域,主目录创建完成。
基于上述,步骤2中,目录的创建包括以下步骤:
步骤2.4,接收创建目录命令,检测相关参数和命令序列是否符合相关规定,若创建目录命令不满足相关规定,则禁止创建目录,否则执行下一步;
步骤2.5,从当前目录的下级目录链首指针指示的目录控制项开始,到下级目录链尾指针指示的目录控制项为止,查找所要创建的目录标识符和目录名是否存在,若存在则创建目录终止,否则执行下一步;
步骤2.6,从目录控制项表头开始,依次查找第一个出现的空目录控制项,若目录控制项表中无空目录控制项,则禁止创建目录,否则执行下一步;
步骤2.7,判断当前目录的下级目录链尾指针是否为空,若为空则将该下级目录链首指针和尾指针赋值为空目录控制项首地址,若不为空则将该下级目录链尾指针指示的目录控制项中的同级目录链表指针赋值为空目录控制项首地址,并将该下级目录链尾指针赋值为空目录控制项首地址;
步骤2.8,将接收到的创建目录命令里的相关参数写入到新创建的空目录控制项中,重新计算修改过参数的目录控制项和新创建的目录控制项的CRC码,并覆盖原有对应控制项数据,目录创建正常结束。
基于上述,步骤2中,文件创建过程包括以下步骤:
步骤2.9,接收创建文件命令,检测相关参数和命令序列是否符合相关规定,若创建文件命令不满足相关规定,则禁止创建文件,否则执行下一步;
步骤2.10,从当前目录的文件链表首指针指示的文件控制项开始,到文件链表尾指针指示的文件控制项为止,查找所要创建的文件标识符和文件名是否存在,若存在则创建文件终止,否则执行下一步;
步骤2.11,从第一个文件控制项表开始,依次查找第一个出现的空文件控制项,若文件控制项表中无空文件控制项,则禁止创建文件,否则待创建的新文件控制项存在,执行下一步;
步骤2.12,判断剩余文件数据存储空间是否大于或等于新建文件数据申请空间,若小于,则智能卡剩余文件数据存储空间小于新创建文件的文件数据存储空间,禁止创建文件,否则执行下一步;
步骤2.13,将新文件控制项中的文件数据首地址赋值为剩余文件数据空间首地址,将新文件控制项赋值为接收到的创建文件命令中的相关参数,至此新文件控制项与智能卡文件数据存储区确定了唯一的映射关系;
步骤2.14,修改主目录控制项的剩余文件数据存储空间和剩余文件数据空间首地址,即将剩余文件数据存储空间赋值为剩余文件数据存储空间与新创建文件的文件数据存储空间之差,将剩余文件数据空间首地址赋值为剩余文件数据空间首地址与新创建文件的文件数据存储空间之和;
步骤2.15,判断当前目录文件链表尾指针是否为空,若为空则将当前文件链表首指针和尾指针均赋值为新文件控制项首地址,若不为空则将文件链表尾指针指示的文件控制项中的文件链表指针赋值为新文件控制项首地址,将当前目录控制项中的文件链表尾指针也赋值为新文件控制项首地址;
步骤2.16,主目录控制项、当前目录控制项和修改参数的各文件控制项重新计算CRC码,并覆盖原有对应控制项数据区,文件创建正常结束。
基于上述,步骤3中,目录与文件的访问包括目录与文件的选择,
目录选择方法为:
目录与文件主目录选择包括默认、文件名和目录标识符三种方式,主目录是文件系统的根;
除主目录外,任何一个目录一定是另一个目录的子目录,任何一个文件一定是某一目录下的文件,根据目录与目录、目录与文件的相互隶属关系,从当前目录的下级目录链首指针开始到下级目录链尾指针为止,依次查找目录控制项中的目录标识符或者目录名,若查找到相同目录标识符或者目录名,则被选择的目录存在,则选中该目录且该目录成为当前目录;否则查找的目录不存在;
当选择某一目录后,则可进行相应的文件选择,文件选择方法为:以当前目录控制项中文件链表首指针开始到文件链表尾指针为止,依次将各文件控制项中的文件标识符和文件名与选择文件命令中给出的文件标识符和文件名相比较,若均不等则所查找的文件不存在于当前目录下;若均相等则所要选择的文件存在,并选中该文件,将该文件控制项中的相关控制参数作为文件访问控制条件。
基于上述,步骤3中,目录与文件的访问还包括目录与文件的删除,
文件删除流程如下:
步骤1,选择要删除的文件,并判断该文件是当前目录下的最后一个文件,若不是则禁止执行删除操作,否则执行下一步;
步骤2,释放文件占用的数据存储空间,以及文件控制项中文件数据首地址为起始地址,文件数据存储空间为偏移量,对文件数据存储空间进行擦除操作;并将文件数据存储空间释放到主目录控制项中;
步骤3,释放文件控制项,依据目录控制项中文件链表首指针和文件链表尾指针,修改文件链表尾指针指向被删除文件的上一个文件控制项,同时最后一个文件控制项中的文件链表指针设置为空;被删除文件的文件控制项除文件控制项首地址外其余各参数设置为00H,所有修改过的目录控制项和文件控制项重新计算CRC校验码,并将其各控制项写入到对应区域,至此,目录下最后一个文件删除完成;
目录删除时要同时删除该目录下的所有文件控制链表,并释放各文件所申请的数据存储空间,其目录的删除过程如下:
步骤1,选择要删除的目录,依据目录中文件链表的首尾指针,判断该目录是否为空目录,若不为空目录,则依据文件的删除方法,先执行文件删除操作删除目录下的所有文件,直到目录为空目录为止。若目录为空目录则执行下一步,否则重复执行第一步;
步骤2,释放子目录控制项,依据下级目录链首指针和下级目录链尾指针,将下级目录链尾指针指向被删除目录的上一个目录控制项首地址,且上个目录的同级目录链表指针设置为空;同时将删除目录的控制项除目录控制项首地址外其余各参数设置为无效,并重新计算所有修改过参数的目录控制项的CRC校验码,并回写到相对应的存储区,至此,指定目录删除完成。
基于上述,步骤4的具体步骤为:
步骤4.1,判断写入命令序列的完整性与合法性,若不满足相应规则,则给出相应错误状态指示并结束指令的执行,否则转入下一步;
步骤4.2,判断指定的写入数据存储区域是否超越文件控制项规定的文件数据存储区域,若超越则给出文件数据存取越界指示错误,结束指令的执行,否则转入下一步;
步骤4.3,依据文件数据首地址和文件数据存储空间两个参数,将需要写入的数据写入到由文件数据首地址和文件数据存储空间规定的区域,读出该区域的数据并与需要写入的数据进行比较,若两者相等,则写入数据操作正确执行,指令正常结束,否则执行下一步;
步骤4.4,重复第一步操作,在规定的次数内写入的数据与读出的数据完全相同,则命令正确执行且正常结束;否则,执行下一步;
步骤4.5,判断剩余文件数据存储空间是否大于或等于该文件数据存储空间,若剩余文件数据存储空间小于该文件数据存储空间,则智能卡剩余文件数据存储空间小于故障文件的文件存储空间,智能卡因数据存储器故障而不能正确执行命令,给出相应故障警告而终止命令执行;否则执行下一步;
步骤4.6,启动文件数据写入故障容错机制,将文件数据存储到智能卡数据存储空间的另一区域。
基于上述,所述故障容错机制包括以下步骤:
步骤4.61,以文件数据首地址为源地址,文件数据存储空间为偏移量,将文件数据拷贝到缓冲数据存储区,并依据写入命令参数更新缓冲存储区数据,形成新的文件数据;将文件全部数据写入到以剩余文件数据空间首地址为起始目标地址,文件数据存储空间为偏移量的文件数据存储区;无论数据是否写入正确,均执行下一步;
步骤4.62,将工作文件控制项中文件数据首地址赋值为剩余文件数据空间首地址,并计算其CRC校验码,至此工作文件控制项与智能卡文件数据存储区确定了唯一新的映射关系;
步骤4.63,修改主目录控制项的剩余文件数据存储空间和剩余文件数据空间首地址,即将剩余文件数据存储空间赋值为剩余文件数据存储空间与工作文件的文件数据存储空间之差,将剩余文件数据空间首地址赋值为剩余文件数据空间首地址与工作文件的文件数据存储空间之和,并计算其CRC码,覆盖原有对应主目录和文件控制项;将写入的文件数据读出与缓冲区存储的文件数据进行比较,若相等写入数据正确则命令正常执行完成;否则返回执行步骤4.5,至此,文件数据写入故障容错机制执行完毕。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,本发明提供一种智能卡文件系统的管理方法,该管理方法在满足文件数据存取边界检测安全策略的同时,实现文件数据存取的物理地址与文件隶属的目录无关,而只与智能卡的整个数据存储空间相关联;通过灵活构建多级目录和目录下的多个文件,当智能卡完成初始化后还有剩余空间且投入使用时,根据应用需要可柔性扩展目录下的文件数量与文件数据存储空间,解决了智能卡操作系统中目录与文件的柔性构建与在满足文件数据存储空间要求前提下的任意扩展问题;同时本发明还使得在写文件数据出现存储错误时,可简便地在智能卡剩余数据存储区重新给文件分配新的数据存储空间,保障文件数据正确地进行存取操作,从而解决容错问题。本发明增强了智能卡操作系统的健壮性和普适性,在提高智能卡数据存储器利用率的同时,能有效延长智能卡的生命周期。
附图说明
图1是本发明的目录控制项和文件控制项数据结构示意图。
图2是本发明的目录所属文件链及与数据存储器的对应关系图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
本发明公开了一种基于目录控制项链表和文件控制项链表结构的智能卡文件管理方法,该方法包括目录控制项表和文件控制项表的建立、目录和文件的创建,即目录控制链表和文件控制链表的创建,目录与文件的查找与删除,写文件数据方法等四个基本方法。本发明所指的基本方法应用于智能卡操作系统中,在我国有极其广泛的应用,如银行IC卡、社会保障卡、SIM卡、市民卡、暂住证、公交卡、居民健康卡等操作系统中,是智能卡操作系统的核心功能之一。
1、目录控制项表和文件控制项表的建立
智能卡初始化时,根据目录和文件的数量,在文件控制区创建相应数量的目录控制项表和文件控制项表并预留适当的扩展用控制项表,为创建目录控制链和相应的文件控制链做准备,同时也是构建目录与目录之间、目录与文件之间隶属关系的基础。
具体的,目录控制项表和文件控制项表的建立包括以下步骤:
步骤1.1,智能卡接收相应的卡初始化命令,对智能卡中数据存储器区域进行初始化检验,将整个数据存储区进行清除处理,自动创建一个主目录控制项;
步骤1.2,在主目录控制项后根据命令中的参数决定创建目录控制项表和文件控制项表的数量,创建相应数量的空目录控制项和空文件控制项;其中,空目录项中的目录标识符为FFFFH,空文件控制项的文件标识为0000H,依据实际控制项中参数的多少来决定各控制项的长度;
智能卡预初始化时,根据具体应用要求规划目录控制项和文件控制项数量,在数据存储区中开辟文件管理区并预留部分扩展区域,集中建立指定数量的目录控制项和文件控制项,并将所有的指针和地址设置成空或无效,该控制区属于智能卡内部控制管理区,对外不可进行任何操作,从而保护控制区的安全而增强文件系统的健壮性;
步骤1.3,将智能卡中的数据存储区划分文件管理参数区,控制项表区域和文件数据存储区;
步骤1.4,在文件管理参数区设置主目录控制项首地址、目录控制项首地址、文件控制项首地址、文件数据存储区首地址、备份主目录控制项首地址相关控制参数,并将文件数据存储空间首地址和文件数据存储空间大小分别写入到主目录控制项中的剩余文件数据空间首地址和剩余文件数据存储空间,至此,空的目录控制项表和空的文件控制项表创建完成。
具体的, 如图1所示,所述主目录控制项包括备份主目录控制项首地址(BMFFA)、目录标识符(MFID)、主目录链首指针(MDLHP)、主目录链尾指针(MDLTP)、剩余文件数据空间首地址(RFDHFA)、主目录文件链表首指针(MDFLHP)、主目录文件表链尾指针(MDFLTP)、剩余文件数据存储空间(RFDSS)、主目录其他控制参数(MDOCP)和CRC校验码。
所述主目录控制项首地址为智能卡文件管理的入口地址,设计时根据智能卡的存储器组织形式及数据存储管理需要确定唯一特定的物理地址;备份主目录控制项首地址(BMFFA)存储备份目录存储区的首地址,在备份存储区存放整个备份目录项;所述主目录标识符依据ISO/IEC 7816的规定固定为3F00;所述主目录链首指针指向根目录下第一个目录控制项首地址,主目录链尾指针指向根目录下最后一个目录的首地址,构建起根目录下的目录控制链表;所述剩余文件数据空间首地址为当前智能卡文件数据存储空间的首地址,也是当前建立文件和给文件重新分配地址时文件数据首地址;所述剩余文件数据存储空间为当前智能卡还能分配的文件数据存储空间大小;所述主目录文件链表首指针指向根目录下第一个文件控制项首地址,主目录文件链表尾指针指向根目录下最后一个文件控制项首地址,上述两个文件指针构建起根目录下文件控制链表;所述主目录其他控制参数包括主目录文件名长度和文件名、智能卡管理系统创建和终止时间、以及创建权限、删除权限、访问权限、终止权限等根据智能卡的安全策略、功能与应用需求确定;所述CRC校验码为2字节,是对前述各参数进行相应运算后的校验码。
所述目录控制项由目录控制项首地址(DCFA)、目录标识符(DIRID)、同级目录链表指针(PDP)、下级目录链首指针(NDLHP)、下级目录链尾指针(NDLTP)、文件链表首指针(FLHP)、文件链表尾指针(FLTP)、目录其他控制参数(DOCP)和CRC校验码组成。
所述目录标识由除根目录标识符外的任意2字节组成,目录标识是查找目录是否存在的参数之一,每个目录必须有一个目录标识,且同级目录的目录标识均不相同;所述同级目录链表指针指向同级目录的目录控制项首地址,当该指针为空时表明该目录控制项是同级目录控制链中最后一个,且上级目录控制项中的下级目录链尾指针指向该目录控制项首地址;所述下级目录链表首指针指向该目录的下级目录控制项的首地址,该指针为空时,表明该目录没有下级目录;所述下级目录链尾指针指向本目录最后一个下级目录控制项的首地址,该目录中下级目录链尾指针指向的目录控制项中的同级目录链表指针一定为空,所述下级目录链首指针和所述下级目录链尾指针构建起当前目录下的子目录链表;所述文件链表首指针指向本目录下第一个文件的文件控制项首地址,所述文件链表尾指针指向本目录下最后一个文件的文件控制项首地址,这两个文件链表指针构建起当前目录下的文件链表。上述指针和地址根据存储器寻址方式和大小确定其长度,一般由2字节或者4字节组成;目录其他控制参数包括目录名长度和目录名、目录创建权限、目录删除权限、目录访问权限、目录创建时间等,根据目录的具体应用需求确定其参数数量和各参数的长度,2字节的CRC校验码是对目录控制项前面所有字节运算得到的校验码。
所述文件控制项由文件控制项首地址(FCFA)、文件标识符(FID)、文件链表指针(FLP)、文件类型(FT)、文件数据首地址(FDFA)、文件数据存储空间(FDSS)、文件读权限(FRP)、文件写权限(FWP)、文件其他控制参数(FOCP)和CRC码组成。
其中,所述文件标识符由2字节组成,是文件查找的参数之一,同一目录下的文件标识符不能相同;所述文件链表指针指向本目录下的下一个文件控制项首地址,构成本目录下所有文件控制项链表结构;所述文件数据首地址指向本文件数据存储空间的第一个字节地址,也是文件访问控制的上界;所述文件存储空间定义了文件需要存储的数据量,与文件数据首地址结合规定了文件访问控制的下界;所述文件类型规定文件存储数据的结构,一般有二进制文件、定长记录文件、变长记录文件、循环文件、密钥文件等类型;所述读操作权限和写操作权限规定对文件数据进行读写操作时,智能卡操作系统所处的安全状态。所述文件其他控制参数根据文件功能与类型不同进行定义,如文件名长度及文件名、记录数、记录号、删除权限、终止权限、记录长度、创建时间、最后修改时间等;2字节的CRC校验码是对文件控制项前面所有字节运算得到的校验码。
2、目录和文件的创建
智能卡初始化时,根据具体应用需要创建主目录和相关应用子目录之间的层次关系,并制定各自目录相关的安全规则;然后,在指定目录下创建工作文件,规定工作文件的类型、访问控制规则、并与数据存储空间绑定在一起;只要智能卡文件数据存储空间的大小满足需要,则目录下文件的数量和占用存储空间的大小可随应用需求确定。
同一目录下不同的文件数据存储空间可连续分配也可间隔分配,但同一文件的数据必须连续存储在一个连续的数据存储空间。创健文件时若将申请的文件数据存储空间与主目录下剩余文件数据存储空间进行比较,满足文件数据存储的需要时,则将主目录控制项中的剩余文件数据存储空间首地址赋值给文件控制项中的文件数据存储首地址,文件数据存储空间为申请的文件数据存储空间,修改主控制项中的剩余文件数据存储空间首地址和剩余文件数据存储空间值,则完成了文件数据与智能卡数据存储空间一一对应的映射关系。
如图2所示,主目录为操作系统的根目录,所有其他目录和文件都隶属于根目录下。创建目录时,首先查找到一个空的目录控制项,根据所建目录隶属关系的不同,将目录控制项首地址写入到主目录链首指针和链尾指针、同级目录链表指针或者下级目录链首指针和链尾指针。若将目录控制项首地址写入到主目录链首指针和主目录链尾指针,则在主目录下创建了第一个子目录,若继续创建根目录下的另一个子目录,则将新的目录控制项首地址写入到主目录下已创建好的子目录控制项的同级目录链首指针和主目录链尾指针,即创建了根目录下的另一个子目录,依照上述方式能构建根目录下任意多个子目录,根目录控制项中的主目录链首指针和主目录链尾指针与各子目录的同级目录链表指针一起构建起了主目录下的子目录链表。依据上述三个参数,能遍历根目录下的二级子目录。若在某一选中的子目录下创建下级子目录即三级子目录,则将查找到的一个空的目录控制项首地址写入到选中子目录控制项对应的下级目录链首指针和下级目录链尾指针,与主根目录下构建子目录相似,可构建起任意二级子目录下的三级子目录链表。类似根据应用需要可构建任意级的下级子目录链表,其遍历方式与根目录下的二级子目录的遍历方式相同。
具体的,创建目录时通过创建目录命令得到相应控制参数,如目录标识符、目录名、其它控制参数等,其主目录创建过程如下:
步骤2.1,接收创建目录命令,检测主目录标识符、相关参数和命令序列是否符合相关规定,若创建命令序列不满足相关规定或者主目录已经存在,则禁止创建主目录,否则执行下一步;
步骤2.2,根据智能卡控制参数首地址读取主目录控制参数,并赋值给对应的备份主目录控制项首地址BMFFA、目录标识符MFID、剩余文件数据空间首地址RFDHFA、剩余文件数据存储空间参数RFDSS参数,将接收的主目录其他控制参数如主目录文件名长度和文件名、智能卡管理系统创建时间、以及创建权限、删除权限、访问权限、终止权限等赋值给对应参数区,所有链表指针全部设置为空即00H,重新计算主目录控制项的CRC校验码;
步骤2.3,将主目录控制项数据回写到主目录控制项首地址开始的区域,则主目录创建完成。
所有目录均隶属于主目录下,主目录下的子目录简称为二级子目录,二级子目录下的子目录简称为三级子目录,即X目录下的子目录简称为(X+1)级子目录;子目录的嵌套关系与层次无关,只与目录控制项的数量有关。
具体的,目录的创建过程如下:
步骤2.4,接收创建目录命令,检测相关参数和命令序列是否符合相关规定,若创建命令序列不满足相关规定,则禁止创建目录,否则执行下一步;
步骤2.5,从当前目录的下级目录链首指针NDLHP指示的目录控制项开始,到下级目录链尾指针NDLTP指示的目录控制项为止,查找所要创建的目录标识符和目录名是否存在,若存在则创建目录终止,否则执行下一步;
步骤2.6,从目录控制项表头开始,依次查找第一个出现的空目录控制项,若目录控制项表中无空目录控制项,则禁止创建目录,否则执行下一步;
步骤2.7,判断当前目录的下级目录链尾指针是否为空,若为空则当前目录的下级目录链首指针NDLHP和下级目录链尾指针NDLTP赋值为空目录控制项首地址DCFA,若不为空则下级目录链尾指针NDLTP指示的目录控制项中的同级目录链表指针PDP赋值为空目录控制项首地址DCFA,当前目录的下级目录链尾指针NDLTP赋值为空目录控制项首地址DCFA;
步骤2.8,新创建的空目录控制项写入接收到的相关参数,重新计算修改过参数的目录控制项和新创建的目录控制项的CRC码,并覆盖原有对应控制项数据,目录创建正常结束。
文件隶属于目录,目录控制项中的文件链表首指针指向文件控制项的首地址,而隶属于该目录的所有文件控制项通过第一个文件控制项的文件链表指针依次链接在一起,目录控制项中的文件链表尾指针指向目录下最后一个文件控制项首地址。因而,通过目录控制项中的文件链表首尾指针与文件控制项中的文件链表指针,将目录下的所有文件链接在一起,即通过目录控制项和该目录下的文件控制项,能定位该目录下的每一个文件,而实现对目录下全部文件的遍历与访问控制。文件控制项通过文件数据首地址和文件数据存储空间与智能卡的数据存储器相关联,这两个参数唯一确定了某文件数据在智能卡数据存储中的起始地址和存储空间大小。
在目录下创建文件时,首先查找到一个空的文件控制项,然后判断根目录剩余文件数据存储空间能否满足文件数据存储空间的需要,若剩余文件数据存储空间小于文件数据存储空间,则禁止该目录下本次文件的创建;否则,目录下创建第一个文件,将文件控制项的首地址填写到目录控制项中的文件链表首尾指针;其他文件创建时在已有最后一个文件控制项的文件链表指针中填写文件控制项首地址,并修改目录控制项中文件链表尾指针指向该文件控制项首地址;文件数据首地址填写剩余文件数据空间首地址,同时将根目录控制项中的剩余文件数据空间首地址加上文件数据存储空间,形成创建新的下一个文件时的文件数据首地址,根目录控制项中剩余文件数据存储空间减去文件数据存储空间形成智能卡新的剩余文件数据存储空间。将更新后的根目录控制项、子目录控制项和新组建的文件控制项写回到原来对应控制项存储区,目录下的一个文件创建完成。
文件必须创建在某一已经存在的目录下,创建文件时通过创建文件命令得到相应控制参数,如文件标识符、文件申请空间、读权限、写权限、其它控制参数等,其文件创建过程如下:
步骤2.9,接收创建文件命令,检测相关参数和命令序列是否符合相关规定,若创建命令序列不满足相关规定,则禁止创建文件,否则执行下一步;
步骤2.10,从当前目录的文件链表首指针指示的文件控制项开始,到文件链表尾指针指示的文件控制项为止,检索所要创建的文件标识符和文件名是否存在,若存在则创建文件终止,否则执行下一步;
步骤2.11,从第一个文件控制项表开始,依次查找第一个出现的空文件控制项,若文件控制项表中无空的文件控制项,则禁止创建文件,否则执行下一步;
步骤2.12,判断剩余文件数据存储空间RFDSS是否大于或等于新建文件数据申请空间,若RFDSS小于文件数据申请空间,则智能卡剩余文件数据存储空间小于创建文件所需要的文件数据存储空间,禁止创建文件,否则执行下一步;
步骤2.13,将新创建的文件控制项中文件数据首地址FDFA赋值为剩余文件数据空间首地址RFDHFA即FDFA=RFDHFA、将新创建的空文件控制项赋值为接收到的相关参数,至此新建文件控制项与智能卡文件数据存储区确定了唯一的映射关系;
步骤2.14,修改主目录控制项的剩余文件数据存储空间RFDSS和剩余文件空间首地址RFDHFA,即RFDSS=RFDSS-创建文件的FDSS、RFDHFA= RFDHFA +创建文件的FDSS;
步骤2.15,判断当前目录文件链表尾指针FLTP是否为空,若为空则将当前文件链表首指针FLHP和当前文件链尾指针FLTP赋值为新建文件控制项首地址FCFA,若不为空则将文件链表尾指针FLTP指示的文件控制项中的文件链表指针FLP赋值为新建文件控制项首地FCFA址,当前目录控制项中的文件链表尾指针FLTP赋值为新建文件控制项首地址FCFA;
步骤2.16,主目录控制项、当前目录控制项和修改参数的各文件控制项计算CRC码,并覆盖原有对应控制项数据区,文件创建正常结束。
3、目录与文件的访问
目录与文件的访问包括目录与文件的选择;具体的,目录选择方法为:
目录与文件主目录选择包括默认、文件名和目录标识符三种方式,主目录是文件系统的根;
除主目录外,任何一个目录一定是另一个目录的子目录,任何一个文件一定是某一目录下的文件,根据目录与目录、目录与文件的相互隶属关系,从当前目录的下级目录链首指针NDLHP开始到下级目录链尾指针NDLTP为止,依次查找目录控制项中的目录标识符或者目录名,若查找到相同目录标识符或者目录名,则被选择的目录存在;否则查找的目录不存在。
每条目录选择命令确定当前目录的下级目录链表中是否存在要选择的目录,若选择的目录存在,则选中该目录且该目录成为当前目录,依据该方案能方便地实施当前目录下所有子目录的枚举,查找定位所要选择的目录。
当选择某一目录后,则可进行相应的文件选择。具体的,文件选择方法为:以当前目录控制项中文件链表首指针FLHP开始到文件链表尾指针FLTP为止,依次将各文件控制项中的文件标识符和文件名与选择文件命令中给出的文件标识符和文件名相比较,若均不等则所查找的文件不存在;若相等则所要选择的文件存在,将文件控制项中的相关控制参数作为文件访问控制条件,只有满足访问控制条件时,才能对文件数据进行读出与写入操作。否则将禁止对文件数据进行读出与写入操作,以确保文件数据安全可靠。
本发明通过构建基于链表结构的目录控制项和文件控制项,在目录控制项中通过同级和下级目录链指针构建不同层次的目录结构关系,通过文件链表指针构建本目录下所有工作文件的文件控制项链表;智能卡全部的文件数据存储空间均在主目录(MF)控制项中由剩余文件数据存储空间首地址和剩余文件数据存储空间两个参数进行指示;在文件控制项中文件链表指针指向同级目录工作文件的控制项首地址,文件数据首地址则指向该文件数据在智能卡数据存储器中的首地址,文件数据存储空间则表明该文件占用数据存储空间的大小,文件数据首地址和文件数据存储空间是该文件数据访问控制的安全边界;通过目录控制项和文件控制项中的控制参数,构建起智能卡文件管理系统中不同级目录之间、同级目录之间、目录与文件之间、文件与文件之间的层次关系,各文件控制项与文件数据存储器存在唯一的一种映射关系,在文件进行数据读写操作时检测写入或读出数据的操作安全边界,从而可方便实现文件访问控制时的边界检测功能。
目录与文件的访问还包括目录与文件的删除,为了以最小的管理开销实现目录与文件的删除功能,达到删除目录与文件后不进行存储空间的数据搬移,并能回收该文件的存储空间,规定删除文件时只能在文件链表的尾端进行,且该文件为最后一个与数据存储区建立地址映射的文件,删除目录下的子目录时也只能在目录链表的尾端进行,若不考虑删除文件数据存储空间的回收则无上述要求。
文件删除时同时释放该文件所占用的数据存储空间和文件控制项,具体的,文件删除流程如下:
a.选择要删除的文件,并判断该文件是当前子目录下的最后一个文件,若不是则禁止执行删除操作,否则执行下一步;
b.释放文件占用的数据存储空间FDSS,并以文件控制项中文件数据首地址FDFA为起始地址,以文件数据存储空间FDSS为偏移量,对文件数据存储空间FDSS进行擦除操作;并将文件数据存储空间FDSS释放到主目录控制项中,即剩余文件数据空间首地址RFDHFA=剩余文件数据空间首地址RFDHFA–删除文件的FDSS、剩余文件数据存储空间RFDSS=剩余文件数据存储空间RFDSS+删除文件的FDSS;
c.释放文件控制项,依据目录控制项中文件链表首指针FLHP和文件链表尾指针FLTP,将文件链表尾指针FLTP指向被删除文件的上一个文件控制项,同时将最后一个文件控制项中的文件链表指针FLP设置为空,即FLTP=被删除文件的上一个文件控制项的文件控制项首地址FCFA,FLTP→FLP=空;被删除文件的文件控制项除文件控制项首地址FCFA外其余各参数设置为00H,所有修改过的目录控制项和文件控制项重新计算CRC校验码,并将其各控制项写入到对应区域,至此,目录下最后一个文件删除完成。
目录删除时要同时删除该目录下的所有文件控制链表,并释放各文件所申请的数据存储空间,其目录的删除过程如下:
步骤a,选择要删除的目录,依据目录中文件链表的首尾指针,判断该目录是否为空目录,若不为空目录,则依据文件的删除方法,先执行文件删除操作删除目录下的所有文件,直到目录为空目录为止。若目录为空目录则执行下一步,否则重复执行第一步;
步骤b,释放子目录控制项,依据下级目录链首指针NDLHP和下级目录链尾指针NDLTP,将下级目录链尾指针NDLTP指向被删除目录的上一个目录控制项首地址DCFA,且上个目录的同级目录链表指针PDP设置为空,即NDLTP=被删除子目录的上一个目录控制项的DCFA,NDLTP→PDP=空;同时将被删除目录的控制项除目录控制项首地址DCFA外其余各参数设置为无效,并重新计算所有修改过参数的目录控制项的CRC校验码,并回写到相对应的存储区,至此,指定目录删除完成。
4、文件数据写入
当智能卡正常工作接收到写入文件数据指令时,执行将命令执行过程中产生的或者携带的数据写入到文件指定数据存储对应的区域;若写入过程中文件指定数据存储区域出现故障,则启动文件数据写入故障的容错机制,通过修改文件控制项中文件数据首地址,重新分配该文件的数据存储空间,将文件数据存储到另一数据存储区域,使得在文件数据存储区域出现故障的情况下,仍能保证文件数据的正常存储与使用,达到延长智能卡生命周期的目的;否则智能卡将由于剩余文件数据存储空间不够而导致文件数据存储错误,最后只能终止智能卡生命周期而报废。
具体的,文件数据写入的具体步骤为:
步骤4.1,判断写入命令序列的完整性与合法性,若不满足相应规则,则给出相应错误状态指示并结束指令的执行,否则转入下一步;
步骤4.2,判断指定的写入数据存储区域是否超越文件控制项规定的文件数据存储区域,若超越则给出文件数据存取越界指示错误,结束指令的执行,否则转入下一步;
步骤4.3,依据文件数据首地址和文件数据存储空间两个参数,将需要写入的数据写入到由文件数据首地址和文件数据存储空间规定的区域,读出该区域的数据并与需要写入的数据进行比较,若两者相等,则写入数据操作正确执行,指令正常结束,否则执行下一步;
步骤4.4,重复第一步操作,在规定的次数内写入的数据与读出的数据完全相同,则命令正确执行且正常结束;否则,执行下一步;
步骤4.5,判断剩余文件数据存储空间是否大于或等于该文件数据存储空间,若剩余文件数据存储空间小于该文件数据存储空间,则智能卡剩余文件数据存储空间小于故障文件的文件存储空间,智能卡因数据存储器故障而不能正确执行命令,给出相应故障警告而终止命令执行;否则执行下一步;
步骤4.6,启动文件数据写入故障容错机制,将文件数据存储到智能卡数据存储空间的另一区域。
具体的,所述故障容错机制包括以下步骤:
步骤4.61,以文件数据首地址为源地址,文件数据存储空间为偏移量,将文件数据拷贝到缓冲数据存储区,并依据写入命令参数更新缓冲存储区数据,形成新的文件数据;将文件全部数据写入到以剩余文件数据空间首地址为起始目标地址,文件数据存储空间为偏移量的文件数据存储区;无论数据是否写入正确,均执行下一步;
步骤4.62,将工作文件控制项中文件数据首地址赋值为剩余文件数据空间首地址,并计算其CRC校验码,至此工作文件控制项与智能卡文件数据存储区确定了唯一新的映射关系;
步骤4.63,修改主目录控制项的剩余文件数据存储空间和剩余文件数据空间首地址,即将剩余文件数据存储空间赋值为剩余文件数据存储空间与工作文件的文件数据存储空间之差,将剩余文件数据空间首地址赋值为剩余文件数据空间首地址与工作文件的文件数据存储空间之和,并计算其CRC码,覆盖原有对应主目录和文件控制项;将写入的文件数据读出与缓冲区存储的文件数据进行比较,若相等写入数据正确则命令正常执行完成;否则返回执行步骤4.5,至此,文件数据写入故障容错机制执行完毕。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (10)
1.一种智能卡文件系统的管理方法,其特征在于:
步骤1,智能卡首先接收相应的卡初始化命令,创建目录控制项表和文件控制项表,所述目录控制项表包括主目录控制项和目录控制项,所述文件控制项表包括文件控制项;
步骤2,进行主目录、目录和文件的创建,通过所述主目录控制项、所述目录控制项和所述文件控制项中的控制参数,构建智能卡文件系统中不同级目录之间、同级目录之间、目录与文件之间、文件与文件之间的层次关系,各文件控制项与文件数据存储器存在唯一的一种映射关系;
步骤3,通过所述主目录控制项、所述目录控制项和所述文件控制项中的控制参数进行目录与文件的访问;
步骤4,接收到写入文件数据指令,将命令执行过程中产生的或者携带的数据写入到文件指定数据存储对应的区域;若写入过程中文件指定数据存储区域出现故障,则启动文件数据写入故障容错机制,将文件数据存储到智能卡数据存储空间的另一区域。
2.根据权利要求1所述的智能卡文件系统的管理方法,其特征在于:
所述主目录控制项包括备份主目录控制项首地址(BMFFA)、目录标识符(MFID)、主目录链首指针(MDLHP)、主目录链尾指针(MDLTP)、剩余文件数据空间首地址(RFDHFA)、主目录文件链表首指针(MDFLHP)、主目录文件表链尾指针(MDFLTP)、剩余文件数据存储空间(RFDSS)、主目录其他控制参数(MDOCP)和CRC校验码;
所述目录控制项包括目录控制项首地址(DCFA)、目录标识符(DIRID)、同级目录链表指针(PDP)、下级目录链首指针(NDLHP)、下级目录链尾指针(NDLTP)、文件链表首指针(FLHP)、文件链表尾指针(FLTP)、目录其他控制参数(DOCP)和CRC校验码;其中,目录标识由根目录标识符外的任意2字节组成,目录标识是查找目录是否存在的参数之一,每个目录必须有一个目录标识,且同级目录的目录标识均不相同;
所述文件控制项包括文件控制项首地址(FCFA)、文件标识符(FID)、文件链表指针(FLP)、文件类型(FT)、文件数据首地址(FDFA)、文件数据存储空间(FDSS)、文件读权限(FRP)、文件写权限(FWP)、文件其他控制参数(FOCP)和CRC码;其中,文件标识符由2字节组成,是文件查找的参数之一,同一目录下的文件标识符不能相同;文件链表指针指向本目录下的下一个文件控制项首地址,构成本目录下所有文件控制项链表结构;文件数据首地址指向本文件数据存储空间的第一个字节地址,也是文件访问控制的上界;文件存储空间定义了文件需要存储的数据量,与文件数据首地址结合规定了文件访问控制的下界;文件类型规定文件存储数据的结构。
3.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,步骤1中,创建目录控制项表和文件控制项表具体包括以下步骤:
步骤1.1,智能卡接收相应的卡初始化命令,对智能卡中数据存储器区域进行初始化检验,将整个数据存储区进行清除处理,自动创建一个主目录控制项;
步骤1.2,在主目录控制项后根据命令中的参数决定创建目录控制项表和文件控制项表的数量,创建相应数量的空目录控制项和空文件控制项;
步骤1.3,将智能卡中的数据存储区划分文件管理参数区,控制项表区域和文件数据存储区;
步骤1.4,在文件管理参数区设置主目录控制项首地址、目录控制项首地址、文件控制项首地址、文件数据存储区首地址、备份主目录控制项首地址相关控制参数,并将文件数据存储空间首地址和文件数据存储空间大小分别写入到主目录控制项中的剩余文件数据空间首地址和剩余文件数据存储空间,至此,空的目录控制项表和空的文件控制项表创建完成。
4.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,步骤2中创建主目录包括以下步骤:
步骤2.1,接收创建主目录命令,检测主目录标识符、相关参数和命令序列是否符合相关规定,若创建主目录命令不满足相关规定或者主目录已经存在,则禁止创建主目录,否则执行下一步;
步骤2.2,根据智能卡控制参数首地址读取主目录控制参数,并赋值给对应的备份主目录控制项首地址、目录标识符、剩余文件数据空间首地址、剩余文件数据存储空间参数,将接收的主目录其他控制参数赋值给对应参数区,然后将所有链表指针全部设置为空即00H,重新计算主目录控制项的CRC校验码;
步骤2.3,将主目录控制项数据回写到主目录控制项首地址开始的区域,主目录创建完成。
5.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,步骤2中,目录的创建包括以下步骤:
步骤2.4,接收创建子目录命令,检测相关参数和命令序列是否符合相关规定,若创建目录命令不满足相关规定,则禁止创建目录,否则执行下一步;
步骤2.5,从当前目录的下级目录链首指针指示的目录控制项开始,到下级目录链尾指针指示的目录控制项为止,查找所要创建的目录标识符和目录名是否存在,若存在则创建目录终止,否则执行下一步;
步骤2.6,从目录控制项表头开始,依次查找第一个出现的空目录控制项,若目录控制项表中无空目录控制项,则禁止创建目录,否则执行下一步;
步骤2.7,判断当前目录的下级目录链尾指针是否为空,若为空则将该下级目录链首指针和尾指针赋值为空目录控制项首地址,若不为空则将该下级目录链尾指针指示的目录控制项中的同级目录链表指针赋值为空目录控制项首地址,并将该下级目录链尾指针赋值为空目录控制项首地址;
步骤2.8,将接收到的创建目录命令里的相关参数写入到新创建的空目录控制项中,重新计算修改过参数的目录控制项和新创建的目录控制项的CRC码,并覆盖原有对应控制项数据,目录创建正常结束。
6.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,步骤2中,文件创建过程包括以下步骤:
步骤2.9,接收创建文件命令,检测相关参数和命令序列是否符合相关规定,若创建文件命令不满足相关规定,则禁止创建文件,否则执行下一步;
步骤2.10,从当前目录的文件链表首指针指示的文件控制项开始,到文件链表尾指针指示的文件控制项为止,查找所要创建的文件标识符和文件名是否存在,若存在则创建文件终止,否则执行下一步;
步骤2.11,从第一个文件控制项表开始,依次查找第一个出现的空文件控制项,若文件控制项表中无空文件控制项,则禁止创建文件,否则待创建的新文件控制项存在,执行下一步;
步骤2.12,判断剩余文件数据存储空间是否大于或等于新建文件数据申请空间,若小于,则智能卡剩余文件数据存储空间小于新创建文件的文件数据存储空间,禁止创建文件,否则执行下一步;
步骤2.13,将新文件控制项中的文件数据首地址赋值为剩余文件数据空间首地址,将新文件控制项赋值为接收到的创建文件命令中的相关参数,至此新文件控制项与智能卡文件数据存储区确定了唯一的映射关系;
步骤2.14,修改主目录控制项的剩余文件数据存储空间和剩余文件数据空间首地址,即将剩余文件数据存储空间赋值为剩余文件数据存储空间与新创建文件的文件数据存储空间之差,将剩余文件数据空间首地址赋值为剩余文件数据空间首地址与新创建文件的文件数据存储空间之和;
步骤2.15,判断当前目录文件链表尾指针是否为空,若为空则将当前文件链表首指针和尾指针均赋值为新文件控制项首地址,若不为空则将文件链表尾指针指示的文件控制项中的文件链表指针赋值为新文件控制项首地址,将当前目录控制项中的文件链表尾指针也赋值为新文件控制项首地址;
步骤2.16,主目录控制项、当前目录控制项和修改参数的各文件控制项重新计算CRC码,并覆盖原有对应控制项数据区,文件创建正常结束。
7.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,步骤3中,目录与文件的访问包括目录与文件的选择,
目录选择方法为:
目录与文件主目录选择包括默认、文件名和目录标识符三种方式,主目录是文件系统的根;
除主目录外,任何一个目录一定是另一个目录的子目录,任何一个文件一定是某一目录下的文件,根据目录与目录、目录与文件的相互隶属关系,从当前目录的下级目录链首指针开始到下级目录链尾指针为止,依次查找目录控制项中的目录标识符或者目录名,若查找到相同目录标识符或者目录名,则被选择的目录存在,则选中该目录且该目录成为当前目录;否则查找的目录不存在;
当选择某一目录后,则可进行相应的文件选择,文件选择方法为:以当前目录控制项中文件链表首指针开始到文件链表尾指针为止,依次将各文件控制项中的文件标识符和文件名与选择文件命令中给出的文件标识符和文件名相比较,若均不等则所查找的文件不存在于当前目录下;若均相等则所要选择的文件存在,并选中该文件,将该文件控制项中的相关控制参数作为文件访问控制条件。
8.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,步骤3中,目录与文件的访问还包括目录与文件的删除,
文件删除流程如下:
a.选择要删除的文件,并判断该文件是当前目录下的最后一个文件,若不是则禁止执行删除操作,否则执行下一步;
b.释放文件占用的数据存储空间,以及文件控制项中文件数据首地址为起始地址,文件数据存储空间为偏移量,对文件数据存储空间进行擦除操作;并将文件数据存储空间释放到主目录控制项中;
c.释放文件控制项,依据目录控制项中文件链表首指针和文件链表尾指针,修改文件链表尾指针指向被删除文件的上一个文件控制项,同时最后一个文件控制项中的文件链表指针设置为空;被删除文件的文件控制项除文件控制项首地址外其余各参数设置为00H,所有修改过的目录控制项和文件控制项重新计算CRC校验码,并将其各控制项写入到对应区域,至此,目录下最后一个文件删除完成;
目录删除时要同时删除该目录下的所有文件控制链表,并释放各文件所申请的数据存储空间,其目录的删除过程如下:
步骤a,选择要删除的目录,依据目录中文件链表的首尾指针,判断该目录是否为空目录,若不为空目录,则依据文件的删除方法,先执行文件删除操作删除目录下的所有文件,直到目录为空目录为止;
若目录为空目录则执行下一步,否则重复执行第一步;
步骤b,释放子目录控制项,依据下级目录链首指针和下级目录链尾指针,将下级目录链尾指针指向被删除目录的上一个目录控制项首地址,且上个目录的同级目录链表指针设置为空;同时将删除目录的控制项除目录控制项首地址外其余各参数设置为无效,并重新计算所有修改过参数的目录控制项的CRC校验码,并回写到相对应的存储区,至此,指定目录删除完成。
9.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于:步骤4的具体步骤为:
步骤4.1,判断写入命令序列的完整性与合法性,若不满足相应规则,则给出相应错误状态指示并结束指令的执行,否则转入下一步;
步骤4.2,判断指定的写入数据存储区域是否超越文件控制项规定的文件数据存储区域,若超越则给出文件数据存取越界指示错误,结束指令的执行,否则转入下一步;
步骤4.3,依据文件数据首地址和文件数据存储空间两个参数,将需要写入的数据写入到由文件数据首地址和文件数据存储空间规定的区域,读出该区域的数据并与需要写入的数据进行比较,若两者相等,则写入数据操作正确执行,指令正常结束,否则执行下一步;
步骤4.4,重复第一步操作,在规定的次数内写入的数据与读出的数据完全相同,则命令正确执行且正常结束;否则,执行下一步;
步骤4.5,判断剩余文件数据存储空间是否大于或等于该文件数据存储空间,若剩余文件数据存储空间小于该文件数据存储空间,则智能卡剩余文件数据存储空间小于故障文件的文件存储空间,智能卡因数据存储器故障而不能正确执行命令,给出相应故障警告而终止命令执行;否则执行下一步;
步骤4.6,启动文件数据写入故障容错机制,将文件数据存储到智能卡数据存储空间的另一区域。
10.根据权利要求1或2所述的智能卡文件系统的管理方法,其特征在于,所述故障容错机制包括以下步骤:
步骤4.61,以文件数据首地址为源地址,文件数据存储空间为偏移量,将文件数据拷贝到缓冲数据存储区,并依据写入命令参数更新缓冲存储区数据,形成新的文件数据;将文件全部数据写入到以剩余文件数据空间首地址为起始目标地址,文件数据存储空间为偏移量的文件数据存储区;无论数据是否写入正确,均执行下一步;
步骤4.62,将工作文件控制项中文件数据首地址赋值为剩余文件数据空间首地址,并计算其CRC校验码,至此工作文件控制项与智能卡文件数据存储区确定了唯一新的映射关系;
步骤4.63,修改主目录控制项的剩余文件数据存储空间和剩余文件数据空间首地址,即将剩余文件数据存储空间赋值为剩余文件数据存储空间与工作文件的文件数据存储空间之差,将剩余文件数据空间首地址赋值为剩余文件数据空间首地址与工作文件的文件数据存储空间之和,并计算其CRC码,覆盖原有对应主目录和文件控制项;将写入的文件数据读出与缓冲区存储的文件数据进行比较,若相等写入数据正确则命令正常执行完成;否则返回执行步骤4.5,至此,文件数据写入故障容错机制执行完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810979810.4A CN109388616B (zh) | 2018-08-27 | 2018-08-27 | 一种智能卡文件系统的管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810979810.4A CN109388616B (zh) | 2018-08-27 | 2018-08-27 | 一种智能卡文件系统的管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388616A CN109388616A (zh) | 2019-02-26 |
CN109388616B true CN109388616B (zh) | 2020-09-11 |
Family
ID=65417654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810979810.4A Active CN109388616B (zh) | 2018-08-27 | 2018-08-27 | 一种智能卡文件系统的管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388616B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241393B (zh) * | 2019-07-18 | 2024-04-19 | 国民技术股份有限公司 | 文件存储方法、终端和计算机可读存储介质 |
CN111159767A (zh) * | 2019-12-31 | 2020-05-15 | 郑州信大捷安信息技术股份有限公司 | 一种智能卡模式下v2x应用的密钥容器管理方法 |
CN111240599B (zh) * | 2020-01-17 | 2021-06-25 | 北京马赫谷科技有限公司 | 数据流存储方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11213107A (ja) * | 1998-01-26 | 1999-08-06 | Hitachi Ltd | Icカードのファイル管理方法 |
CN101383017A (zh) * | 2007-09-06 | 2009-03-11 | 中国银联股份有限公司 | 一种智能sd卡及访问智能sd卡的方法 |
CN101576966A (zh) * | 2009-06-02 | 2009-11-11 | 中兴通讯股份有限公司 | 一种读写存储卡的方法及装置 |
CN103150225A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于应用级代理的对象并行存储系统磁盘满异常容错方法 |
CN104573571A (zh) * | 2015-02-04 | 2015-04-29 | 郑州信大捷安信息技术股份有限公司 | 一种智能卡安全文件系统的生成方法 |
-
2018
- 2018-08-27 CN CN201810979810.4A patent/CN109388616B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11213107A (ja) * | 1998-01-26 | 1999-08-06 | Hitachi Ltd | Icカードのファイル管理方法 |
CN101383017A (zh) * | 2007-09-06 | 2009-03-11 | 中国银联股份有限公司 | 一种智能sd卡及访问智能sd卡的方法 |
CN101576966A (zh) * | 2009-06-02 | 2009-11-11 | 中兴通讯股份有限公司 | 一种读写存储卡的方法及装置 |
CN103150225A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于应用级代理的对象并行存储系统磁盘满异常容错方法 |
CN104573571A (zh) * | 2015-02-04 | 2015-04-29 | 郑州信大捷安信息技术股份有限公司 | 一种智能卡安全文件系统的生成方法 |
Non-Patent Citations (2)
Title |
---|
Advances in smart cards;Josep Domingo-Ferrer 等;《Computer Networks》;20070620;第51卷(第9期);2219-2222 * |
一种基于多应用智能卡文件系统的研究与实现;耿伟华 等;《计算机应用与软件》;20140915;第31卷(第9期);53-56 * |
Also Published As
Publication number | Publication date |
---|---|
CN109388616A (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388616B (zh) | 一种智能卡文件系统的管理方法 | |
CN103577121B (zh) | 一种基于Nand Flash的高可靠线性文件存取方法 | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US7765180B2 (en) | Database re-organizing system and database | |
US8151060B2 (en) | Semiconductor memory system having a snapshot function | |
CN103345472B (zh) | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 | |
US6779001B1 (en) | Transactional file system for realizing atomic update of plural files by transactions | |
US6484937B1 (en) | Method for storing data in a chip card rewritable memory | |
CN103577574B (zh) | 一种基于nand flash的高可靠线性文件系统 | |
CN105760113B (zh) | 基于nand闪存的高速存储设备及文件管理方法 | |
CN110018989B (zh) | 一种快照比对的方法和装置 | |
CN109478159B (zh) | 损坏数据块的在线修复 | |
US20020041517A1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
EP1435576A2 (en) | Method and apparatus for block-oriented memory management provided in smart card controllers | |
CN104573571B (zh) | 一种智能卡安全文件系统的生成方法 | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN112631953A (zh) | 固态硬盘数据trim方法、装置、电子设备及存储介质 | |
CN115470216B (zh) | 一种基于ftl的智能物联表的存储管理方法及存储介质 | |
CN111159767A (zh) | 一种智能卡模式下v2x应用的密钥容器管理方法 | |
CN115712500A (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN110287695B (zh) | 一种Java卡及其临时对象的管理方法 | |
CN104077078B (zh) | 读存储区、更新存储区的方法及装置 | |
CN106294189B (zh) | 内存碎片整理方法及装置 | |
Zhang et al. | The research of data recovery on Windows file systems | |
EP1046996A1 (en) | Memory defragmentation in chipcards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Management Method for Smart Card File System Effective date of registration: 20230412 Granted publication date: 20200911 Pledgee: China Construction Bank Corporation Zhengzhou Jinshui sub branch Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2023980037751 |