一种智能卡写保护机制的实现
编者按: 摘要:提出一种智能卡写保护的实现方法,该方法将一次数据写入分成两步进行,在保证正常读写功能的同时,重点讨论了如何在意外掉电的情况下完成可靠的写操作。同时利用该机制实现了事务回滚功能,为卡片应用提供了更大的灵活性。通过对已实现系统的掉电测试,分析了应用该方法后的系统性能的变化及对电力业务的影响。 引言 随着微电子技术的发展,各种各样的智能卡开始进入人们的生活。不论是手机卡、银行卡、水卡、电卡还是社保卡、门禁卡甚至是身份证都是智能卡在不同行业的应用。由于智能卡的应用非常广泛,应用环境千差万别,
加入镜像读写机制后,对存储区的读写流程如下:
卡片的一般写入流程如图1所示,图2为业务向文件中写重要数据时的写入流程。
业务应用中会有一些文件的写操作,其中有一些数据比较重要,需要确保数据写入的安全可靠。此时应用应该采用以下操作:
(1)设置镜像写保护标志位,此标志为全局变量。
(2)业务数据的写入,这些业务可能分若干次写入不同的文件。
(3)完成镜像保护。该操作由三个过程组成,首先清除写保护标志位,然后设置镜像数据恢复标志,最后提交镜像区数据将数据写入实际物理地址并清除镜像数据恢复标志。
应用在写操作1、写操作2和写操作3过程中随时可以放弃此次写操作,已经完成的写操作不会对系统产生任何影响。这种写操作的处理方法为系统实现事务回滚提供了基础。
卡片在上电后会检查镜像数据恢复标志,决定是否回写镜像区数据。
现分析卡片断电对系统的影响。
假设断电发生在写操作1和写操作2之间,重新上电检查镜像数据恢复标志后,没有数据需要恢复,系统对镜像区初始化后正常工作。虽然数据写入失败但是保证了业务数据的不会混乱。
如果断电发生在数据提交阶段,此时镜像数据恢复标志已经置位,重新上电后系统会重新提交,成功后清除标志并初始化镜像区。这样保证数据在断电情况下写入成功。
以上描述了镜像写及掉电后数据恢复的过程。考虑这种情况,在业务进行中,如果数据写了两次,还没有从镜像区提交到实际地址区,此时如果应用需要读取文件内容,该内容如果恰好在镜像区尚未提交,直接从对应物理地址读数则会产生错误。所以镜像机制还需要提供镜像读功能。
对于镜像读,根据目标数据的地址在数据读取分三种情况处理:
(1)数据全部都在实际地址,直接从目标地址读取数据。
(2)数据全部在镜像区,在镜像区读取数据。
(3)数据部分在镜像区,部分在实际地址。分别在不同位置读取数据。
为了分辨数据所处位置,需要遍历表2中所定义的写保护管理表。
以上讨论了镜像读写的实现机制。下面说明加入该机制对系统性能的影响。
![](https://webstorage.eepw.com.cn/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码