1. ATR(Answer to request)

读写器呼叫磁场内的卡片。卡片对呼叫做出应答。

对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26);对于已进行过读写操作并进入休眠状态的卡片。卡唤醒(WAKE-UP,0x52)。当中卡请求(REQA)仅仅能呼叫处于休闲(Idle)状态的卡片,卡唤醒(WAKE-UP)能够呼叫全部卡片。包含处于休眠(Halt)和休闲状态的卡片。

收到卡呼叫命令后,卡片将对命令做出应答(AnswerTo Request,ATQA), 读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。ATQA有两个字节,第一个字节的值没有规定(RFU),第二个字节的高两位b7b6表示卡序列号长度 (“00”为4字节,“01”为7字节,“10”为10字节), b5位的值没有规定(RFU),b4-b0表示是否遵守面向比特的防冲突机制,假设遵守,b4-b0必须有且仅有1位为1。通常情况下。Mifare
S50的ATQA是0004H。Mifare S70的ATQA是0002H。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXhzdGFycw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:'Microsoft YaHei'; font-size:14px">

2. 防冲突机制 (Anticollision Loop)

当有多张卡进入读写器操作范围时,防冲突机制会从当中选择一张进行操作,未选中的则处于空暇模式等待下一次选卡,该过程会返回被选卡的序列号。

该过程返回一个被选中的卡的序列号。序列号Serial Number存储在卡片的Block 0中,共同拥有5个字节。实际实用的为4个字节,还有一个字节为序列号Serial Number的校验字节,。智能的反冲突功能同意同一工作区域中有不止一张卡同一时候工作反冲突算法每次仅仅选择一张卡确保对被选中的卡正确运行操作并且同一区域中的其它卡不会破坏数据。

3. 选择卡片(Select Tag)

选择被选中的卡的序列号。并同一时候返回卡的容量代码。

选择被选中卡的序列号,并同一时候返回卡的容量代码Tag Size(前"08",代表容量返回值。现已改"88"。无特殊意义)。

RWD使用选择卡命令选中当中一张卡进行确认和存储器相关操作卡返回Answer To Select ATS码=08h, RWD通过ATS能够确定被选中的卡的类型。

4. 三次互相确认(3 Pass Authentication)

Mifare系列产品不仅卡片要认证读写器的身份,读写器也要认证卡片的身份,这样的认证称为相互认证。常见的认证方法是使用password或者叫口令。

口令一旦被听到。就会泄露。而password没有规律性,并且可通过随机数加密。所以相互认证是利用随机数加密验证的。Mifare系列所採用的相互认证机制被称为“三次相互认证”,例如以下图所看到的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXhzdGFycw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

a) 读写器指定要訪问的区。并选择密钥A或B。

b) 卡从位块读区密钥和訪问条件。

然后,卡向读写器发送随机数B。

(第一轮)

c) 读写器利用密钥和随机数计算回应值。回应值A连同读写器的随机数B。发送给卡(第二轮)。

d) 卡通过与自己的随机数比較。验证读写器的回应值A,再计算回应值并发送(第三轮)。

e) 读写器通过比較。验证卡的回应值。

在第一个随机数传送之后。卡与读写器之间的通讯都是加密的。认证的过程中多次提到“事先约定的算法”,究竟是什么样的算法呢。

这个没有详细规定。但有一个要求是必须的,就是这个算法一定要有password和随机数的參与。

认证过程中的不论什么一环出现差错,整个认证将告失败。必须从新開始。

5. 存储器操作

三次相互认证后可运行下列操作:

·          读(Read):读数据块

·          写(Write):写数据块

·          减值(Decrement):降低数据块内的数值,并将结果保存在暂时内部数据寄存器中。

·          加值(Increment):添加数据块内的数值。并将结果保存在数据寄存器中。

·          转存(Restore):将暂时内部数据寄存器的内容写入数值块。

·          暂停(Halt ):将卡置于暂停上作状态

文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415

版权声明:本文博客原创文章,博客,未经同意,不得转载。

MIFARE系列6《射频卡与读写器的通信》的更多相关文章

  1. MIFARE系列6《射频卡与读写器的通讯》

    1. 复位应答(Answer to request) 读写器呼叫磁场内的卡片,卡片对呼叫做出应答.对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26):对于已进行过读写操作并进入休眠 ...

  2. Mifare系列6-射频卡与读写器的通信(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...

  3. MIFARE系列3《卡能源和数据传递》

    在MIFARE卡中,能量和数据通过天线传输,卡中天线为几匝线圈,直接连接到芯片上,不再需要额外的组件.线圈嵌入塑料中,形成了一个无源的非接触卡. 读卡器向IC发一组固定频率的电磁波,卡内有一个IC串联 ...

  4. Mifare系列2-非接触卡标准(转)

    本文转自 文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/380799 根据信号发送和接收方式的不同,ISO/IEC14443-3定 ...

  5. MIFARE系列2《非接触卡标准》

    根据信号发送和接收方式的不同,ISO/IEC14443-3定义了TYPEA.TYPEB两种卡型.它们的不同主要在于载波的调制深度及二进制数的编码方式.从读写机具向卡传送信号时,二者是通过13.56Mh ...

  6. 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】

    Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...

  7. 射频识别技术漫谈(11)——Mifare系列卡的共性

    Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...

  8. IC卡接口芯片TDA8007的读写器设计

    摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...

  9. RC522射频卡读写模块驱动(仅读取)

    目录 说明 测试结果 main RC522.h RC522.c 说明 更改了网上的源代码,仅保留了读取序列号并通过串口回传的功能.版本号:V1 感谢 https://blog.csdn.net/qq_ ...

随机推荐

  1. skyeye安装+arm-elf-gdb安装+模拟s3c44b0x+执行ucos4skyeye

    [假设你要引用.请阅读所有,这里是我的为期两天的过程只是一个记录] skyeye安装:ubuntu12.0432 llvm2.8 skyeye1.3.3 http://blog.chinaunix.n ...

  2. 可以部署在广域网执行QQ高仿版 GG2014 (源代码)

      距上次GG V3.7版本号(可在广域网部署执行的QQ高仿版 -- GG叽叽V3.7.优化视频聊天.控制很多其它相关细节)的公布.已经有50天了,这50天对于GG来说.是一个重大的飞跃. 由于这段时 ...

  3. Mongodb安装和配置

    Mongodb之安装配置 安装 Mongodb的下载地址为Mongodb官网.下载时.你能够选择是安装包或者是压缩包. 下载完毕后.双击安装包并安装. 安装完毕后.你能够在安装文件夹看到下图中所见的文 ...

  4. 一C++PSO(PSO)算法

    收集和变化PSO算法,它可用于参考实施: #include <cstring> #include <iostream> #include <cmath> #incl ...

  5. Hibernate在关于一对多,多对一双向关联映射

    [Hibernate]之关于一对多,多对一双向关联映射 因为一对多.和多对一的双向关联映射基本上一样,所以这里就一起写下来! Annotations配置 @Entity @Table(name=&qu ...

  6. OAuth做webapi认证

    OAuth做webapi认证 看到园子里面有人写的OAuth,就想把自己实现的OAuth也分享一下,关于OAuth协议这里就不再赘述. 一.作为认证服务器,首先需要提供一个可以通过appid/apps ...

  7. Extjs GridPanel 几点说明

    1. 在Ext中,表格控件必须包括列定义信息,并指定表格的数据存储器.列信息由columns定义,而数据存储器有store定义. 2. store负责把各种各样的原始数据(JSON对象数组等等)转换成 ...

  8. iOS在地图上WGS84、GCJ-02、BD-09互转解决方案

    该项目的最新进展包括地图共享模块,android同事集团开始,使用百度地图sdk,我开始回,运用iOS SDK的mapkit做,之后,问题是,用纬度和经度坐标iOS端和Android端出现了比較大偏差 ...

  9. 无法Debug SQL: Unable to start T-SQL Debugging. Could not attach to SQL Server process on

    今天SSMS debug SQL当脚本,突然错误: Unable to start T-SQL Debugging. Could not attach to SQL Server process on ...

  10. hibernate在地图的方法之一协会

    [Hibernate]之关于多对一单向关联映射 在项目的开发中多对一的单向关联映射是最常见的关联映射! 这个着重具体解说一下! 比如,我们如今一个组(Group)和人(Person) id name ...