本申请涉及集成电路领域,特别涉及一种支持crc校验的智能卡的寿命测试方法和系统。
背景技术:
智能卡是一种含有集成电路芯片的卡片,包含了微处理器、i/o接口及存储器等。提供数据的运算、访问控制及存储等功能,又称“集成电路卡”。英文名称为“integratedcircuitcard”或“smartcard”,智能卡就是一个超微型的计算机系统,包括硬件(集成电路芯片)、操作系统(cos)、基于cos的文件系统及卡片应用等。
常见的手机卡、银行卡、社保卡、身份证、物联网卡等都是智能卡。每一张智能卡都是有寿命的,使用的次数多了,工作时间长了也会老化,同时不适宜的外部环境还会加速智能卡的老化。当它接近或达到它的使用寿命时可能会出现各种各样的问题,有些可能还会给使用者带来一定程度的损失。一般地,同一类型的智能卡在相同的外部环境中的寿命基本上在一个稳定的范围之内。
现有的技术一般是不停地对卡片上的特定的常用文件进行重复的读写,直到读出的值与写入的值不同即可判断卡片已老化。该方法虽简单直接,但存在误差,有时未达到写入的值与读出值不同的最大次数之前,卡片其他方面(比如文件系统结构、重要的配置及初始值、卡片功能等)已损坏或不稳定,因为老化测试时间一般都比较长,难以及时发现故障,测试效率低下。
技术实现要素:
本申请的目的是提供一种支持crc校验的智能卡的寿命测试方法和寿命测试系统,能够提高智能卡的寿命测试效率。
为解决上述技术问题,本申请提供一种支持crc校验的智能卡的寿命测试方法,具体技术方案如下:
配置所述智能卡的crc校验类型、系统运行权限和文件内容更新列表;其中,所述智能卡置于预设量度的测试环境中,所述预设量度包括温度、湿度、酸碱度和盐度中一种或任意几种的组合;
设置卡片功能测试次数、寿命测试总次数、当前测试次数和校验频率;
读取所述智能卡,计算并保存各种crc校验类型对应的初始值;
利用卡片功能测试脚本对所述智能卡进行功能检测,若功能检测失败次数超过所述卡片功能测试次数,则智能卡测试失败;
若在所述卡片功能测试次数内检测成功,根据所述文件内容更新列表进行读写测试;
若读写测试成功,则判断所述当前测试次数是否满足校验频率;
若当前测试次数满足所述校验频率,根据所述各种crc校验类型对应的初始值对所述智能卡进行crc校验;
若crc校验成功,对所述智能卡进行功能校验;
若读写测试失败,则将所述当前测试次数作为所述智能卡的寿命;若crc校验失败或功能校验失败,则将所述当前测试次数的修正值作为所述智能卡的寿命;
若功能校验成功,则当前测试次数加一;
判断当前测试次数是否小于寿命测试总次数;
若是,返回执行根据所述文件内容更新列表进行读写测试的步骤;
若否,则将所述寿命测试总次数作为所述智能卡的寿命。
其中,根据所述文件内容更新列表进行读写测试包括:
利用文件内容更新校验脚本对所述文件内容更新列表中的文件内容进行更新,并与初始文件内容比对。
其中,包括:
crc校验类型包括coscrc校验和eepromcrc校验。
其中,还包括:
更改所述测试环境的量度,重新对所述智能卡执行寿命测试。
本申请还提供一种支持crc校验的智能卡的寿命测试系统,包括:
配置模块,用于配置所述智能卡的crc校验类型、系统运行权限和文件内容更新列表;其中,所述智能卡置于预设量度的测试环境中,所述预设量度包括温度、湿度、酸碱度和盐度中一种或任意几种的组合;设置卡片功能测试次数、寿命测试总次数、当前测试次数和校验频率;
crc计算模块,用于读取所述智能卡,计算并保存各种crc校验类型对应的初始值;
卡片功能检测模块,用于利用卡片功能测试脚本对所述智能卡进行功能检测,若功能检测失败次数超过所述卡片功能测试次数,则智能卡测试失败;
读写测试模块,用于若在所述卡片功能测试次数内所述卡片功能检测模块检测成功,根据所述文件内容更新列表进行读写测试;
crc校验模块,用于判断当前测试次数是否满足crc校验频率;并在当前测试次数满足所述crc校验频率时,根据所述各种crc校验类型对应的初始值对所述智能卡进行crc校验;
功能校验模块,用于判断所述当前测试次数是否满足功能校验频率;并在当前测试次数满足所述功能校验频率时,对所述智能卡进行功能校验;
寿命计算模块,用于所述读写测试模块读写测试失败,则将所述当前测试次数作为所述智能卡的寿命;若所述crc校验模块校验失败或所述功能校验模块校验失败,则将所述当前测试次数的修正值作为所述智能卡的寿命;判断当前测试次数是否小于寿命测试总次数;若是,返回所述读写测试模块;若否,则将所述寿命测试总次数作为所述智能卡的寿命。
其中,还包括:
二次测试模块,用于更改所述测试环境的量度,重新对所述智能卡执行寿命测试。
本申请提供一种支持crc校验的智能卡的寿命测试方法,包括:配置所述智能卡的crc校验类型、系统运行权限和文件内容更新列表;其中,所述智能卡置于预设量度的测试环境中,所述预设量度包括温度、湿度、酸碱度和盐度中一种或任意几种的组合;设置卡片功能测试次数、寿命测试总次数、当前测试次数和校验频率;读取所述智能卡,计算并保存各种crc校验类型对应的初始值;利用卡片功能测试脚本对所述智能卡进行功能检测,若功能检测失败次数超过所述卡片功能测试次数,则智能卡测试失败;若在所述卡片功能测试次数内检测成功,根据所述文件内容更新列表进行读写测试;若读写测试成功,则判断所述当前测试次数是否满足校验频率;若当前测试次数满足所述校验频率,根据所述各种crc校验类型对应的初始值对所述智能卡进行crc校验;若crc校验成功,对所述智能卡进行功能校验;若读写测试失败,则将所述当前测试次数作为所述智能卡的寿命;若crc校验失败或功能校验失败,则将所述当前测试次数的修正值作为所述智能卡的寿命;若功能校验成功,则当前测试次数加一;判断当前测试次数是否小于寿命测试总次数;若是,返回执行根据所述文件内容更新列表进行读写测试的步骤;若否,则将所述寿命测试总次数作为所述智能卡的寿命。
本申请通过将智能卡的读写测试、crc校验测试和智能卡的功能测试相结合,在进行读写测试时辅以进行crc校验测试和功能测试,使得在测试时可以尽早发现智能卡的故障问题,提高智能卡寿命测试的准确性和测试效率。本申请还提供一种智能卡的寿命测试系统具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种支持crc校验的智能卡的寿命测试方法的流程图;
图2为本申请实施例所提供的一种智能卡的寿命测试系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种支持crc校验的智能卡的寿命测试方法的流程图,该方法包括:
s101:配置所述智能卡的crc校验类型、系统运行权限和文件内容更新列表;
需要注意的是,智能卡置于预设量度的测试环境中。容易理解的是,智能卡在不同的使用环境中对应的使用寿命并不相同。在此对于测试环境的预设量度不作具体限定,包括但不限于温度、湿度、酸碱度和盐度中任一种或任意几种的组合。
crc校验类型包括coscrc校验和eepromcrc校验。当然,若该智能卡可提供其他类型的crc校验亦可在系统中进行配置,在此不一一限定。
配置系统运行权限是为了便于后续测试过程,由于测试过程中需要对智能卡进行读、写、激活、失效等操作,因此本步骤需要对这些系统权限指令进行配置,以保证测试过程中的正常使用。在此对于系统权限指令的种类不作限定,应由本领域技术人员根据实际测试需求做相应的选择设定。一般地,连接上智能卡读写器和智能卡,在系统中配置该卡片的各种权限的校验指令和校验值,包括但不限于:pin1/pin2/amd1…adm10/puk1/puk2等;配置文件内容更新列表,文件内容更新列表可以包含若干个文件,每个文件的信息包括但不限于:文件id,文件类型,文件记录号等。配置好后尝试与智能卡交互以检查这些配置项是否正确,若不正确需要修正直到正确为止,以免影响后续测试。
此外,本步骤中针对于系统权限指令和文件内容更新列表的配置具有很强的伸缩性和扩展性,即本领域技术人员根据实际测试需求选择适当的系统权限指令以及文件内容更新列表进行配置,以适应不同测试需求。
s102:设置卡片功能测试次数、寿命测试总次数、当前测试次数和校验频率;
本申请实施例中,将卡片功能测试次数用“n”表示。寿命测试总次数是在进行智能卡测试之前设定好的,作为最大读写测试次数。在此对于校验频率不作限定,应由本领域技术人员做相应设定。
s103:读取所述智能卡,计算并保存各种crc校验类型对应的初始值;
s104:利用卡片功能测试脚本对所述智能卡进行功能检测,若功能检测失败次数超过所述卡片功能测试次数,则智能卡测试失败;
在读取智能卡时同时还可以验证智能卡的初始功能。具体的,可以通过执行卡片功能测试脚本对卡片功能进行检测,确认卡片功能的初始状态是正常的。若执行n(n≥3)次测试脚本不正确,则需要通过其他的方式检查卡片是否有其他问题,终止智能卡寿命测试流程;否则继续。卡片功能测试脚本作为一个可独立的检测模块,在本申请实施例中可以采用高级脚本语言javascript或vbscript进行编写,当然也可以采用其他的脚本语言或自定义脚本语言进行编写。
s105:若在所述卡片功能测试次数内检测成功,根据所述文件内容更新列表进行读写测试;若读写测试成功,进入s106;若读写测试失败,进入s109;
通常,在进行读写测试时,还需要保存初始文件内容。初始文件内容作为一个重要监测点的原始数据保存起来,为后续该监测点的校验提供原始对比依据。容易理解的是,在本步骤中,除了针对文件内容的扫描外,还可以根据不同测试需求进行智能卡其他内容的读取和保存,例如智能卡配置项等等,在此不作具体限定。
文件内容更新校验脚本通常利用系统权限指令和预设值更新文件内容更新列表中的文件内容,再对文件内容进行读取得到实际读取值,最后比对预设值和实际读取值,借此判断读写测试是否成功。该预设值用于进行后续校验,在此不作具体限定,其可以为随机值,也可以为特定值。
s106:判断所述当前测试次数是否满足校验频率;若是,进入s107;
校验频率指的是每隔一定次数的常规读写测试进行crc校验和功能校验。本步骤实际上是根据寿命测试总次数和校验频率确定需要进行crc校验和功能校验的次数。例如寿命测试总次数为100万次,校验频率为每一万次执行一次校验,则一旦当前测试次数为一万的整数倍时需要进行crc校验和功能校验。
s107:根据所述各种crc校验类型对应的初始值对所述智能卡进行crc校验;若crc校验成功,进入s108;若crc校验失败,进入s109;
s108:对所述智能卡进行功能校验;若功能校验失败,进入s109;若功能校验成功,当前测试次数加一后进入s110;
s109:若读写测试失败,则将所述当前测试次数作为所述智能卡的寿命;若crc校验失败或功能校验失败,则将所述当前测试次数的修正值作为所述智能卡的寿命;
s110:判断当前测试次数是否小于寿命测试总次数;若是,返回s105;若否,进入s111;
s111:将所述寿命测试总次数作为所述智能卡的寿命。
需要注意的是,crc校验和功能校验是在读写测试成功的基础上进一步根据当前测试次数并结合校验频率所做的进一步测试,即在常规的读写测试的同时,通过crc校验和功能校验对智能卡的寿命测试作进一步判断。容易理解的是,在进行测试时,由于测试区域之间的关联性,即使测试时显示测试成功,仅仅意味着写入的数据和读出的数据相同,即使读写测试成功,并不意味着智能卡的功能在若干次读写测试过程中未发生变化,可能实际功能已经发生变化。因此,将crc校验和功能校验在读写测试时穿插执行,在测试时可以尽早发现智能卡的故障问题,有效提高智能卡寿命测试的准确性和测试效率。
需要注意的是,本申请实施例中先进行crc校验的判断再进行功能校验的判断,然而需要指出的是,二者并无实际校验顺序区分。无论先进行crc校验的判断再进行功能校验的判断,还是先进行功能校验的判断再进行crc校验的判断,均可以有效提高智能卡寿命测试的准确性和测试效率。
在本申请的基础上,容易想到的是,对于crc校验和功能校验的校验频率也可以不同,例如分别可以为第一校验频率和第二校验频率,在此对于第一校验频率和第二校验频率不作限定,可以相同也可以不同。可以设为每一万次测试进行一次crc校验和功能校验,或者每一千次测试检测一次等等。以功能校验为例,一旦智能卡实时功能与初始功能不同,则此时根据预设频率的上一次读写测试次数的修正值得到最低寿命。举例而言,若预设总测试次数为100万次,预设频率为每一万次测试检测一次实时功能,在实际测试过程中,第10次检测实时功能时发现异常,而此时读写验证已经正常进行了99999次,但无法确定在九万次到十万次之间的哪一次读写验证时实时功能发生了变化,保守起见对智能卡寿命值进行修正,则此时智能卡的最低寿命修正为(10-1)×10000=90000次。同理,对于crc校验过程中出现异常时的寿命计算也参照此算法。
此外,还需要注意的是,无论在何时得到智能卡的寿命,其都是在本申请实施例步骤s101中的预设量度下的寿命,仅在该预设量度下有效。
本申请实施例通过将智能卡的读写测试、crc校验测试和智能卡的功能测试相结合,在进行读写测试时辅以进行crc校验测试和功能测试,使得在测试时可以尽早发现智能卡的故障问题,提高智能卡寿命测试的准确性和测试效率。
基于上述实施例,作为优选的实施例,还包括:
更改所述测试环境的量度,重新对所述智能卡执行寿命测试。
容易理解的是,智能卡可能工作在不同环境下,用户的使用环境不同,则容易影响智能卡的寿命,例如通常高温环境下的智能卡寿命较短,有效读写次数相对于常温下较少。因此,为了便于用户准确把握智能卡在不同环境下的寿命情况,可以修改测试环境的预设量度,并重新按照上述实施例的测试过程对智能卡进行测试。在此对于预设量度的修改不作限定,其可以采用控制变量法,或者模拟实际使用环境以进行测试。
下面对本申请实施例提供的一种智能卡的寿命测试系统进行介绍,下文描述的一种智能卡的寿命测试系统与上文描述的一种支持crc校验的智能卡的寿命测试方法可相互对应参照。
参见图2,本申请还提供一种支持crc校验的智能卡的寿命测试系统,包括:
配置模块,用于配置所述智能卡的crc校验类型、系统运行权限和文件内容更新列表;其中,所述智能卡置于预设量度的测试环境中,所述预设量度包括温度、湿度、酸碱度和盐度中一种或任意几种的组合;设置卡片功能测试次数、寿命测试总次数、当前测试次数和校验频率;
crc计算模块,用于读取所述智能卡,计算并保存各种crc校验类型对应的初始值;
卡片功能检测模块,用于利用卡片功能测试脚本对所述智能卡进行功能检测,若功能检测失败次数超过所述卡片功能测试次数,则智能卡测试失败;
读写测试模块,用于若在所述卡片功能测试次数内所述卡片功能检测模块检测成功,根据所述文件内容更新列表进行读写测试;
crc校验模块,用于判断当前测试次数是否满足crc校验频率;并在当前测试次数满足所述crc校验频率时,根据所述各种crc校验类型对应的初始值对所述智能卡进行crc校验;
寿命计算模块,用于所述读写测试模块读写测试失败,则将所述当前测试次数作为所述智能卡的寿命;若所述crc校验模块校验失败或所述功能校验模块校验失败,则将所述当前测试次数的修正值作为所述智能卡的寿命;判断当前测试次数是否小于寿命测试总次数;若是,返回所述读写测试模块;若否,则将所述寿命测试总次数作为所述智能卡的寿命
功能校验模块,用于判断所述当前测试次数是否满足功能校验频率;并在当前测试次数满足所述功能校验频率时,对所述智能卡进行功能校验;
一般地,crc校验频率和功能校验频率设置为同一个值。
基于上述实施例,作为优选的实施例,该寿命测试系统还可以包括:
二次测试模块,用于更改所述测试环境的量度,重新对所述智能卡执行寿命测试。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。