[发明专利]增强智能卡可靠性的方法有效
申请号: | 201410427123.3 | 申请日: | 2014-08-27 |
公开(公告)号: | CN104657684B | 公开(公告)日: | 2018-01-30 |
发明(设计)人: | 杨念东;蒙卡娜 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | G06F21/77 | 分类号: | G06F21/77;G06F21/78;G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102209 北京市昌平区北七家未*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 增强 智能卡 可靠性 方法 | ||
技术领域
本发明属于嵌入式软件领域中的智能卡软件范畴,特别涉及智能卡可靠性方法。
背景技术
智能卡是一种IC卡,卡内的集成电路包括中央处理器CPU、ROM、EEPROM(或其它介质)、RAM和存储在卡内的智能卡软件和数据。
智能卡通常有电压保护、频率保护等硬件可靠性保护措施,但仍然存在在某些非正常工作条件下(如电源不稳定、带电插拔、电磁干扰等的条件),智能卡程序指针跑飞的情况。智能卡程序指针跑飞,通常会使程序返回错误的状态。根据智能卡应用的特点,程序跑飞会带来两种后果。一是对于大多数程序跑飞的情况而言,程序将可能返回错误状态,仅会造成应用中断,因为智能卡应用的上位机及后台服务器通常有针对应用中断的处理,因此影响很小;另一种后果是,因为智能卡内是有擦写程序的,如果程序跑飞并调用了擦写程序导致擦写了不应该擦写的数据甚至擦写了程序代码,则卡片会成为无效卡片。如果在生产环节出现此问题,会造成成品率的下降;如果在用户手中出现此问题,则给持卡人带来不便,造成发卡商投诉率上升。
通常嵌入式软件中为提高可靠性级别时,会采用N版本程序设计的方法,即设计N个相同功能的相异程序,各版本先后运算出来的结果相互比较来确定输出。但这种方法会造成开发周期长,性能较低,占用空间大,通常而言是不适合智能卡的应用场景的。
芯片硬件有时也会采取一些可靠性的设计,例如硬件设计为在擦写等动作前要先写入一定的指令序列,否则不启动擦写。但通常擦写函数是将该指令序列和启动擦写放在一个函数中的,一旦程序跑飞到函数入口,则会顺序写入指令序列和启动擦写,就会造成误擦写。
发明内容
智能卡由于本身的特点,需要嵌入式软件来增强智能卡整体的可靠性。在智能卡可靠性问题中较严重的一种问题,就是智能卡在受到干扰时程序指针跑飞造成程序代码或数据被误擦写的情况。本发明正是为解决这一问题而设计的一种方法。
本发明提供的这种增强智能卡可靠性的方法,设计了一个软件开关来控制智能卡非易失性存储器擦写函数的擦写使能,将软件开关的开启和关闭操作放置在擦写函数之外,同时将软件开关的开启和关闭操作和正确的程序运行流程紧密结合。如果软件开关没有打开,则程 序不会执行擦写函数或硬件的擦写指令。将软件开关的开启和关闭操作和正确的程序运行流程紧密结合,则使得程序跑飞时软件开关极大概率的处于关闭状态。从而当程序没有按正常的程序流程执行而跑飞到擦写函数时,擦写函数或硬件的擦写指令不会被成功执行。
本发明包含如下软件开关程序调用方法A:
(1)在智能卡开始运行的初期,将软件开关关闭;
(2)进行智能卡程序的初始化;
(3)在进入智能卡应用程序处理前,将软件开关关闭;
(4)等待接收智能卡应用命令;
(5)接收到智能卡应用命令后,将软件开关打开;
(6)处理接收到的智能卡应用命令(含有调用擦写程序),并返回数据,然后将软件开关关闭;
(7)重复执行步骤4~步骤6。
该方法有效果的依据之一是:如果是因为干扰程序跑飞,几乎不能完整的执行步骤4~步骤6,特别是执行在第4步的接收环节中,就会因为收不到正确的命令而中止,因此在程序跑飞到擦写函数时,软件开关会极大概率的处于关闭的状态。
本发明包含如下软件开关(Switch_Variable,采用变量的开关)程序设计方法B:
(1)软件开关的打开或关闭,决定了擦写操作是否被允许执行;
(2)软件开关代表的数字要在4个字节以上,即232个数据以上;
(3)软件开关可拆成一组开关变量,以增加开关的判断次数,例如1个变量表示1个字节的子开关或1个变量表示2个字节的子开关;
(4)软件开关等于一组特殊值时,表示开关关闭,例如0x00000000;
(5)软件开关等于一组特殊值时,表示开关开启,例如0x6780904F。
本发明包含如下结合了软件开关的非易失性存储器的擦写程序的设计方法C:
(1)将待写入的数据写入硬件擦写操作的缓冲区;
(2)调用判断软件开关函数。该函数功能是判断软件开关(Switch_Variable,表示基于变量的开关)是否处于开启状态(由上述的方法A、方法B决定),如果是关闭状态,则直接执行芯片异常中断或退出擦写程序;如果是开启状态,则执行下一步骤;
(3)启动智能卡芯片的擦写硬件操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410427123.3/2.html,转载请声明来源钻瓜专利网。