MIFARE系列6《射频卡与读写器的通信》
发布日期:2025-04-14 02:30:17 浏览次数:14 分类:精选文章

本文共 1012 字,大约阅读时间需要 3 分钟。

ATR(Answer to Request)

ATR(Answer to Request)是卡片在接收到读写器的命令后所做出的响应。卡片在进入磁场时会处于休闲状态(Idle),读写器通过发送卡请求命令(REQA)唤醒卡片。卡唤醒命令(WAKE-UP)则可以唤醒处于休眠状态或休闲状态的卡片。

卡片接收到命令后,会发送ATQA(Answer To Request)响应。ATQA由两个字节组成,第二个字节的高两位用于表示卡片序列号长度(如“00”表示4字节,“01”表示7字节,“10”表示10字节),低两位则用于防冲突机制。Mifare S50的ATQA通常为0004H,而Mifare S70的ATQA为0002H。

防冲突机制(Anticollision Loop)

在多张卡片同时进入读写器的操作范围时,防冲突机制会通过反冲突算法选择一张卡片进行操作。未被选中的卡片会处于空闲状态等待下一次选卡。该过程会返回被选中的卡片序列号。

卡片序列号通常由5个字节组成,其中前4个字节实际使用,最后一个字节为校验字节。反冲突算法确保在同一工作区域内只有一张卡片被选中,从而避免数据冲突。

选择卡片(Select Tag)

读写器通过发送选择卡命令(Select Command),指定要访问的区并选择密钥A或B。卡片读取区密钥和访问条件,并返回卡片容量代码(Tag Size)。通过ATS码(08h)读写器可以确定被选中的卡片类型。

三次相互认证(3 Pass Authentication)

Mifare卡片的认证机制不仅要求卡片认证读写器的身份,还要求读写器认证卡片的身份。这种相互认证通常采用随机数加密的方式。具体流程如下:

  • 读写器指定访问区并选择密钥A或B。
  • 卡片读取区密钥和访问条件。
  • 卡片发送随机数B。
  • 读写器利用密钥和随机数计算回应值A,并发送给卡片。
  • 卡片通过与自身随机数比较,验证回应值A并计算回应值发送给读写器。
  • 读写器通过比较卡片的回应值,完成认证过程。

    存储器操作

    经过三次相互认证后,读写器可以执行以下存储器操作:

    • 读(Read):读取数据块
    • 写(Write):写入数据块
    • 减值(Decrement):降低数据块内的数值并存储到内部数据寄存器
    • 加值(Increment):增加数据块内的数值并存储到数据寄存器
    • 转存(Restore):将内部数据寄存器内容写入数值块
    • 暂停(Halt):将卡片置于暂停状态
    上一篇:MIF格式详解,javascript加载导出 MIF文件示例
    下一篇:Midjourney 完整版教程(从账号注册到设计应用)

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年05月08日 06时29分22秒