射频识别技术漫谈(24)——ISO15693的防冲突与传输协议
遵守ISO15693协议的电子标签都有一个8字节共64bit的全球唯一序列号(UID),这个UID一方面可以使全球范围内的标签互相区别,更重要的是可以在多标签同时读写时用于防冲突。8字节UID按权重从高到低标记为UID7--UID0,其中UID7固定为16进制的E0H,UID6是标签制造商的代码,例如NXP的代码为04H,TI的代码为07H;UID5为产品类别代码,比如ICODE SL2 ICS20是01H,Tag-it HF-I Plus Chip为80H,Tag-it HF-I Plus Inlay为00H。剩下的UID4-UID0为制造商内部分配的号码。
电子标签数量众多,应用范围极为广泛。为了区分不同行业中的电子标签,ISO用一个字节的AFI (Application family identifier)来区分不同行业中的电子标签。AFI的高半字节表示主要行业,低半字节表示主要行业中的细分行业。其中AFI=00H表示所有行业。需要注意的是并不强制要求电子标签支持AFI,电子标签是否支持AFI是可选的,在收到"Inventory"清点命令后,如果标签不支持AFI,则标签必须立刻做出应答;如果支持AFI,则只有收到的AFI与标签存储的AFI一致才做出应答。
15693国际标准还规定了一个字节的可选的数据存储格式识别符(DSFID),用来区分标签中不同的数据存储格式。如果标签支持DSFID,在清点命令中标签将返回一个非零的DSFID,读写器可据此判断射频场中的标签是否具有期望的数据格式。
电子标签的内存最大可达8K字节,以数据块(Block)为单位进行管理,标签内最多可以有256个数据块,每个数据块最大可以有32字节。数据块的内容可以锁定以防止修改。
读写器与标签之间的数据交流使用"命令-应答"的方式,如下所示:
命令:标志(Flags)+命令码(Command code)+参数(parameters)+数据(Application data)+校验(CRC16)
应答:标志(Flags) +参数(parameters)+数据(Application data)+校验(CRC16)
可见应答除了没有应答码之外,结构与命令码类似。每一条命令及其应答都使用CRC校验以保证数据的完整性。读写器可以发出一条请求后让射频场内的所有电子标签同时应答(Addressed mode),也可以指定一个电子标签应答(Non-addressed mode)。在Non-addressed模式下,可以使用两种方法指定一个电子标签,一种是命令中给出电子标签的唯一序列号UID,另一种是命令中不给出 UID,而是在之前的步骤中先选中一个标签,使其处于选中(select)状态,然后命令中指明仅要求处于选中状态的标签做出应答。
ISO15693电子标签的防冲突与ISO14443A中基于位的防冲突类似。其最根本的一点就是基于标签有一个全球唯一的序列号。因为序列号的唯一性,所以全球范围内的任意两个标签,其64bit的序列号中总有一个bit的值是不一样的,也就是说任意两个标签的序列号总有一个bit上一个是“0”,另一个是“1”。防冲突的过程可以1位1位的进行,也可以4位4位的进行。具体的原理参见位和时隙相结合的防冲突机制。
电子标签支持的命令可以分为强制(Mandatory)命令、可选(Optional)命令和用户(Custom)命令三种。强制命令和可选命令的功能和格式在标准中都有明确而详细的定义,用户命令则由标签制造商制定。
强制命令有两个:清点(Inventory)和保持静默(Stay quiet),标签必须支持。标签最基本的功能是可以通过防冲突送出一个标签识别号,这两个命令就是实现这个功能的。如果磁场中有多个标签,使用清点命令可以得到一个标签UID,然后使用保持静默命令使其休眠;然后再使用清点命令可以得到下一个标签UID,依次类推,从而实现对射频场中的所有标签实现清点轮询。
可选命令是否支持由标签制造商决定,可以分为以下4类:
1.对整个标签操作:选择(Select)、复位(Reset to ready)、读取系统信息(Get system information);
2.对标签数据块操作:读单块(Read single block)、写单块(Write single block)、锁数据块(Lock block)、读多块(Read multiple blocks)、写多块(Write multiple blocks)、读多块安全状态(Get multiple block security status);
3.对AFI操作:写AFI(Write AFI)、锁定AFI(Lock AFI);
4.对DSFID操作:写DSFID(Write DSFID)、锁定DSFID(Lock DSFID)。
射频识别技术漫谈(24)——ISO15693的防冲突与传输协议的更多相关文章
- 射频识别技术漫谈(23)——ISO15693的载波、调制与编码
射频识别技术中的通讯大多是主从式,主动方一般是读写器,被动方称为“卡片”或“标签”.到底是叫“卡片”还是“标签”,好像也没有严格的区分.习惯上可以从以下4个方面界定:一是形状,卡片通常体积较大,更像“ ...
- 射频识别技术漫谈(2)——国际标准【worldsing 笔记】
如果你只是智能卡的用户,通常可以不必关注国际标准,但作为智能卡的专业开发人员,则至少也要对相关标准有所了解.国际标准一般都是西方人制定的,原版都是英文的,而所谓中文版往往是对原版的直译,许多情况下并未 ...
- 射频识别技术漫谈(10)——识别号的格式变化【worldsing笔记】
从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出 ...
- 射频识别技术漫谈(5)——防冲突【worldsing 笔记】
正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能 ...
- 射频识别技术漫谈(6)——通讯协议概述【worldsing笔记】
通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言 ...
- 射频识别技术漫谈(4)——数据编码【worldsing 笔记】
前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去.这里的"有用信号"指用高低电平表示的数据"0"或" ...
- 射频识别技术漫谈(25)——Felica简介
Felica是SONY公司开发的射频识别技术,该技术使用的载波频率与ISO14443A和ISO14443B一样,都是13.56MHz,所以有人把它称为ISO14443C,但SONY并没有正式接受这样的 ...
- 射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡【worlsing笔记】
Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听.数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥.现代加密技术的一大特点是加密算法公开,如果 ...
- 射频识别技术漫谈(1)——概念、分类
现代社会智能卡已经渗透到生活的方方面面,公交卡.考勤卡.身份证.手机卡等等数不胜数. 智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡 ...
随机推荐
- 谷歌识图、google识图如何知道图片相似?
转自:http://www.hahait.com/news/185.html 原理非常简单易懂.我们可以用一个快速算法,就达到基本的效果.这里的关键技术叫做“感知哈希算法”(Perceptual ha ...
- HTML之学习笔记(十一)其它标签
1.下拉列表和下拉框(select标签) winform中的ComboBox和ListBox在HTML中都是<select>标签,使用option标签添加列表中的数据. 格式: <s ...
- css组件规范
7月份研究了下 写了下总结. 笔记地址
- prototype演变
setp1 var Person = function () {}; //构造器 var p = new Person(); setp1 演变: var Person = function () {} ...
- HTML不常用元素:optgroup
在网页表单中,<optgroup>元素用于在<select>元素中创建一组选项<option>.这个可以更好的区分每一个组选项之间的区别. 这个元素包含两个属性:d ...
- android netty5.0 编译时 java.lang.NoClassDefFoundError: io.netty.channel.nio.NioEventLoopGroup
android netty5.0 编译时 java.lang.NoClassDefFoundError: io.netty.channel.nio.NioEventLoopGroup 复制netty包 ...
- 为什么要for循环以及for循环的流程
/* Name:为什么需要循环以及for循环流程 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月10日 03:16:55 Description:求1 ...
- 再探Delphi2010 Class的构造和析构顺序
发了上一篇博客.盒子上有朋友认为Class的构造和析构延迟加载.是在Unit的初始化后调用的Class的构造.在Unit的反初始化前调用的Class的析构函数. 为了证明一下我又做了个试验 unit ...
- css 自适应布局
转载一篇文章: 自适应网页设计(Responsive Web Design) 作者: 阮一峰 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小 ...
- 多线程中Local Store Slot(本地存储槽)
在Java中有一种ThreadLocal机制,为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突.从线程的角度看,就好像每一个线程都完全 ...