我想管理一个单字节计数器,每次向智能卡发送特定命令时,该计数器都会递增。达到 255 后,此计数器将始终重置为 0。
有没有另一种方法可以管理此计数器,而不会因过多的EEPROM写入而最终佩戴卡?是否可以在不使用EEPROM的情况下计算/存储此计数器?
如果不是问题,每年更换卡,不需要任何特殊处理,因为某些硬件制造商支持500.000次写入访问。在任何情况下,在真正的样品卡上运行更新过程直到磨损,以找出真正的限制。
否则,您可以尝试以下操作:
-
写入计数器的过程可能需要访问权限。确保每个会话仅获得一次此权限(否则最漂亮的方案不会改善任何东西)。
-
尝试减少实际的更新过程,例如通过检索会话开始时的计数器值并更新 RAM 副本(在主机应用程序中)并写入非易失性仅每 10、100 或其他合理的间隔内存一次。如果这是还是不够,尽量在大范围内分发信息文件,其中 big 表示大大大于页面大小,因此您确保真正解决不同的内存页。
您可以将此计数器存储在基于某些唯一 ID 读取卡的设备上。
或者,您可以使用多个字节来存储一个字节,这样它就不会磨损得那么快。示例实现是首先将所有零,然后将第一个字节更新为 1,然后更新为 2,读取时只能使用最大。当您必须重置时,将所有字节重置为零。
四个字节的示例:
- 0-0-0-0
- 1-0-0-0
- 1-2-0-0
- 1-2-3-0
- 1-2-3-4
- 5-2-3-4
- 。
- 252-253-254-255
- 0-0-0-0
请注意,每次写入操作仅修改一个字节,但重置除外。