ISO15693的Inventory指令看起来比较让人迷糊,想明白其流程,我认为以下几点是必须了解的:

  第一、ISO15693标签的几种状态,资料上有,这里罗嗦重复一下:

1.PowerOff状态

2.就绪态

3.静默态

4.选中态

其中选中态是可选的,而前三种是必须支持的。

  第二、卡片操作的几个概念:

1.寻址模式,所谓寻址模式,就是读卡设备每次操作卡片前必须带上该卡的UID(不要问我UID是什么,我会拍死你的)。  这就好比老师再给学生上课,老师喊起立,大家都站起来,如果老师喊某某某起立,那么其他人就不用站起来,只需要某某某站起来,读卡设备就像老师,而UID就像每个学生的学号。

  第三、指令域

  FLAG域 + Command域 + Parameter域 + Data域 + CRC校验域(这个一般不用软件处理,目前市场上的读卡设备其硬件都支持自动添加校验,用户只需要将初值配好即可)

防冲突的过程:

  1.发送Inventory命令,这时FLAG域的Address_flag位应设置为0,选slot16模式。

  2.没有接收到response时,发送EOF命令,切换到下一个slot。收到响应时,判断CRC校验位和冲突检测寄存器的值,同时出现CRC错误和冲突检测寄存器的值不为0时表示有冲突,如果冲突检测寄存器的值为0而CRC不为0可以断定为校验错误,去调调天线吧!

  3.由于卡片回送UID时是LSB优先回送,所以冲突寄存器的值一定是冲突发生的位(从右向左数),冲突寄存器的值就是MaskLength的值,冲突的位,有两种配置方法,每种配置方法其实都殊路同归,如果将冲突的位配置为1,那么防冲突首先选出的卡号将是所有参与防冲突指令的卡片中卡号发最大的,反之则是最小的,无论哪种都不影响最终结果。MaskValue的值就是从有至左一直到冲突位截至的字节数,不足一个字节的全部补0.

  4.重新发送Inventory命令,这次发送时需要将FLAG域的Address_flag置位1。即告诉VICC,与MaskValue值中由MaskLength确定的有效位相同的VICC回答,有冲突时继续。

  5.没有冲突时发送EOF并切换到下一个slot。直至slot16.

ISO15693协议的Inventory的更多相关文章

  1. 射频识别技术漫谈(24)——ISO15693的防冲突与传输协议

    遵守ISO15693协议的电子标签都有一个8字节共64bit的全球唯一序列号(UID),这个UID一方面可以使全球范围内的标签互相区别,更重要的是可以在多标签同时读写时用于防冲突.8字节UID按权重从 ...

  2. 射频识别技术漫谈(23)——ISO15693的载波、调制与编码

    射频识别技术中的通讯大多是主从式,主动方一般是读写器,被动方称为“卡片”或“标签”.到底是叫“卡片”还是“标签”,好像也没有严格的区分.习惯上可以从以下4个方面界定:一是形状,卡片通常体积较大,更像“ ...

  3. iso15693芯片读写工具套件 icode-slix2读写 nfc type 5 tag读写

    iso15693芯片读写工具套件 icode-slix2读写 nfc type 5 tag读写校验套件 iso15693工具套件支持icode-slix,icode-slix2芯片的读写,支持iso1 ...

  4. RFID Hacking③:使用ProxMark3嗅探银行闪付卡信息

    0×00 前言 RFID是Radio Frequency Identification的缩写,术语为射频识别,俗称电子标签.按照工作频率的不同,RFID标签可以分为低频(LF).高频(HF).超高频( ...

  5. 记录使用微信小程序的NFC和蓝牙功能读取15693芯片的开发历程

    开发目标: (1) 对于Android手机,直接通过微信小程序调用手机的NFC功能,对15693协议的芯片进行读写操作: (2)对于苹果手机(及没有NFC模块的手机),通过微信小程序的蓝牙功能连接到蓝 ...

  6. Proxmark3命令帮助

    Proxmark3命令帮助     目录 [隐藏]  1 使用技巧 2 help 主帮助命令(基于r830以及以下版本) 3 hw 硬件检测相关命令 4 data 图形窗口/缓冲区数据操作等命令 5  ...

  7. RFID编码

    信号编码系统包括信源编码和信道编码两大类,器作用是把要传输的信息尽可能的与传输信道相匹配,并提供对信息的某种保护以防止信息受到干扰.信源编码与信源译码的目的是提高信息传输的有效性以及完成模数转换等:信 ...

  8. NFC芯片选型及基本电路框架

    RFID作为一项专业度较高的技术,在一些公司,可能还会专门招聘专业的RFID工程师.本篇阐述的涉及到的只是基本选型设计.电路框架,关于RFID天线调试.低功耗检卡调试等,后续再其他篇章会继续更新! N ...

  9. 6.Swift协议|扩展|访问权限|异常调试|类型转换|运算函数|ARC|类类型初试化器|值类型初始化器

    1. 协议(Protocol):与OC之间唯一不同的是Swift中的协议不管是属性还时方法全部是必须实现的 /** protocol*/ protocol FullNamed { /** 计算属性申明 ...

随机推荐

  1. struct--------构造函数对结构体初始化的影响

    struct--------构造函数对结构体初始化的影响. 没有构造函数时使用如下: struct ClassBook{  int number;  int age; }; int main() { ...

  2. JVM运行数据区

    1.java虚拟机在运行的时候会把内存分为以下几个区域,如图:

  3. 从XML文件乱码问题,探寻其背后的原理

    出现应用程序读取XML文件乱码的场景: 加入xml文件以<?xml version="1.0" encoding="utf-8" ?> 格式的:如果 ...

  4. 再探java基础——对面向对象的理解(2)

    对象.类和抽象类的区别 对象是一个具体的事物,类是对具有相同属性和行为的一组对象的抽象,对象是类的一个一个人的具体实例:抽象类是一种特殊的类,是对类的进一步抽象,抽象类不能被实例化. 类.抽象类和接口 ...

  5. C#解leetcode 152. Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  6. 关于异常的疑难解答:System.Runtime.InteropServices.COMException

    COMException exception is thrown when an unrecognized HRESULT is returned from a COM method call.&qu ...

  7. android对象序列化Parcelable浅析

    一.android序列化简介 我们已经知道在Android使用Intent/Bindler进行IPC传输数据时,需要将对象进行序列化. JAVA原本已经提供了Serializable接口来实现序列化, ...

  8. ASP.NET菜鸟之路之Response小例子

    背景 我是一个ASP.NET菜鸟,暂时开始学习ASP.NET,在此记录下我个人敲的代码,没有多少参考价值,请看到的盆友们为我点个赞支持我一下,多谢了. Response.Write Redirect ...

  9. cxf客户端代码设置设置访问用户名、密码、证书域名不匹配认证通过

    最近和第三方联调,需要调用对方的wsdl,但是调用必须的设置用户名.密码验证.在soapUI里面设置用户名.密码调用通过.但是怎么转换成JAVA代码呢,搜索了好多解决方案,现将代码截图如下: 1.SO ...

  10. 你好,C++(38)从问题描述中发现对象的属性和行为 6.4 工资程序成长记:类与对象(上)

    6.4  工资程序成长记:类与对象 “夜半三更哟,盼天明:寒冬腊月哟,盼春风.若要盼得哟,涨工资,岭上……”自从上次老板许诺给小陈涨工资以后,一转眼又过去几个月了,可是涨工资的事一点动静都没有.小陈只 ...