增强智能卡可靠性的方法_2

文档序号:8339931阅读:来源:国知局
指令序列,则可将该指令序列和软件开关进行一定的匹配),将能提升本发明的效果O
[0036]本发明提供的这种方法一经过热插拔和电压干扰试验的实践证明一可让智能卡从数百次干扰就出现一次数据被误改写,变成一万次以上未出现过该现象,大大的增强了智能卡的可靠性,提高了产品的成品率。
【附图说明】
[0037]为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为软件开关程序调用方法A示意图;
[0039]图2为擦写程序的设计方法C示意图;
【具体实施方式】
[0040]下面将结合本发明实施例中的附图,对本发明进行具体介绍。
[0041]实施例一:
[0042]本实施例提供一种软件开关程序的调用方法。如图1所示,所述方法包括:
[0043]步骤A00、上电复位,表示智能卡嵌入式软件开始执行。
[0044]步骤A01、在程序刚开始执行,即将软件开关关闭,有利于及早的封堵程序跑飞带来不利的影响。
[0045]步骤A02、执行智能卡程序的其他初始化等工作。
[0046]步骤A03?A06、是智能卡的数据处理的简要模型,体现为一种循环处理的过程。智能卡是一种被动的设备,即上位机发数据给智能卡,智能卡接收处理并返回响应数据,然后继续等待接收下一组数据(通常称为命令)。
[0047]步骤A03、在循环体的一开始将软件开关关闭。
[0048]步骤A04、接收上位机下发的命令。
[0049]步骤A05、打开软件开关,允许在命令处理中执行擦除函数。
[0050]步骤A06、指令命令处理,通常包括命令合法性检查,然后处理命令。
[0051]如果程序跑飞到任一一个步骤,可能遇到开关为关闭的状态,也可能遇到开关为打开的状态,例如跑飞到A06,但这时“收到”的命令往往是不正确的,也不会继续往后执行。若为了提高效果,还可以设计开关的开启关闭和程序流程结合更细致的实例。
[0052]实施例二:
[0053]本实施例提供一种擦写程序的设计方法。如图2所示,所述方法包括:
[0054]步骤C01、擦写程序的目的是要将传送进来的数据烧写到非易失性存储器(EEPR0M或FLASH)上,通常硬件会提供一个缓冲区,用于存放数据,在软件正式通知硬件启动擦写后,硬件会自动将缓冲区的数据写到非易失性存储器中。此步骤是将待擦写的数据写入缓冲区。
[0055]步骤C02、检测软件开关I是否为0x6780。这里是将软件开关拆分为两个子开关,即开关I和开关2。若不同则认为当前进入本擦写程序是非法的,将去执行步骤C07。
[0056]步骤C03、检测软件开关2是否为0x904F。若不同则认为当前进入本擦写程序是非法的,将去执行步骤C07。
[0057]步骤C04、开关合法,则可以执行启动编程,即启动擦写。
[0058]步骤C05、等待硬件编程动作结束。
[0059]步骤C06、擦写程序完成并退出。
[0060]步骤C07、重新回到智能卡程序的起始地址开始重新运行(相当于重启)。也可进行其他类型的错误处理。
[0061]在本实例中,擦写函数只负责对开关进行判断,即是否可擦写是由外部正确流程中的软件开关是否打开决定的。
[0062]实施例三:
[0063]对于软件开关(Switch_Variable,表示基于变量的开关)程序设计方法,原则是开关代表的数量足够大,减少在上电时还没有关闭开关、程序就已经跑飞造成开关正好处于开启的概率。
[0064]通常可设计软件开关代表的数字在4个字节以上,即232个数据以上;
[0065]打开开关,就是给软件开关变量赋一组特殊值,例如0x6780904F。
[0066]关闭开关,就是给软件开关变量赋另一组特殊值,例如0x00000000。
[0067]总之,经实验证明本发明提供的这种增强智能卡可靠性方法,简单可行,能有效的解决程序跑飞导致的误擦写情况,有效提升了嵌入式软件产品的可靠性。
【主权项】
1.一种增强智能卡可靠性的方法,其特征在于采用一个软件开关来控制智能卡非易失性存储器擦写函数的擦写使能;将软件开关的开启和关闭操作放置在擦写函数之外,并且将软件开关的开启和关闭操作放置在智能卡程序运行的正确流程中,步骤如下: (1)在智能卡开始运行的初期,将软件开关关闭; (2)进行智能卡程序的初始化; (3)在进入智能卡应用程序处理前,将软件开关关闭; (4)等待接收智能卡应用命令; (5)接收到智能卡应用命令后,将软件开关打开; (6)处理接收到的智能卡应用命令,并返回数据,然后将软件开关关闭; (7)重复执行步骤(4)?步骤(6)。
2.如权利要求1所述的一种增强智能卡可靠性的方法,其特征在于软件开关的打开或关闭,决定了擦写操作是否被允许执行。
3.如权利要求1所述的一种增强智能卡可靠性的方法,其特征在于软件开关代表的数字要在4个字节以上,即232个数据以上,以增强数据的复杂度。
4.如权利要求1所述的一种增强智能卡可靠性的方法,其特征在于软件开关可拆成一组开关变量,以增加开关的判断次数。
5.如权利要求1所述的一种增强智能卡可靠性的方法,其特征在于软件开关等于一组特殊值时,表示开关关闭。
6.如权利要求1所述的一种增强智能卡可靠性的方法,其特征在于软件开关等于不同于步骤(4)的一组特殊值时,表示开关开启。
7.如权利要求1所述的一种增强智能卡可靠性的方法,其特征在于非易失性存储器擦写程序步骤如下: (1)将待写入的数据写入硬件擦写操作的缓冲区; (2)判断当前的软件开关是否处于开启状态,如果是关闭状态,则直接执行芯片异常中断或退出擦写程序;如果是开启状态,则执行下一步骤; 启动智能卡芯片的擦写硬件操作。
【专利摘要】本发明是一种增强智能卡可靠性的方法,属于嵌入式软件领域中的智能卡的嵌入式软件可靠性设计领域。本发明提出一种在智能卡程序中设置软件开关、通过控制软件开关,减少智能卡程序因受到干扰错误的执行了擦写函数的概率,达到增强智能卡可靠性的目的。
【IPC分类】G06F21-77, G06F21-78, G06F9-44
【公开号】CN104657684
【申请号】CN201410427123
【发明人】杨念东, 蒙卡娜
【申请人】北京中电华大电子设计有限责任公司
【公开日】2015年5月27日
【申请日】2014年8月27日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1