在不佩戴智能卡的EEPROM的情况下重复存储和更新字节



我想管理一个单字节计数器,每次向智能卡发送特定命令时,该计数器都会递增。达到 255 后,此计数器将始终重置为 0。

有没有另一种方法可以管理此计数器,而不会因过多的EEPROM写入而最终佩戴卡?是否可以在不使用EEPROM的情况下计算/存储此计数器?

如果不是问题,每年更换卡,不需要任何特殊处理,因为某些硬件制造商支持500.000次写入访问。在任何情况下,在真正的样品卡上运行更新过程直到磨损,以找出真正的限制。

否则,您可以尝试以下操作:

  • 写入计数器的过程可能需要访问权限。确保每个会话仅获得一次此权限(否则最漂亮的方案不会改善任何东西)。

  • 尝试减少实际的更新过程,例如通过检索会话开始时的计数器值并更新 RAM 副本(在主机应用程序中)并写入非易失性仅每 10、100 或其他合理的间隔内存一次。如果这是还是不够,尽量在大范围内分发信息文件,其中 big 表示大大大于页面大小,因此您确保真正解决不同的内存页。

您可以将此计数器存储在基于某些唯一 ID 读取卡的设备上。

或者,您可以使用多个字节来存储一个字节,这样它就不会磨损得那么快。示例实现是首先将所有零,然后将第一个字节更新为 1,然后更新为 2,读取时只能使用最大。当您必须重置时,将所有字节重置为零。

四个字节的示例:

  1. 0-0-0-0
  2. 1-0-0-0
  3. 1-2-0-0
  4. 1-2-3-0
  5. 1-2-3-4
  6. 5-2-3-4
  7. 252-253-254-255
  8. 0-0-0-0

请注意,每次写入操作仅修改一个字节,但重置除外。

最新更新