射频识别技术漫谈(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个触点,使用时插在卡 ...
随机推荐
- Javascript 原型和原型链
先来了解一下Javascript中的原型:”原型也是一个对象,原型可以用来实现继承...“ 对于 原型,构造函数,以及实例之间的关系:“每个(构造)函数都有一个原型属性,原型对象都包含一个指向构造函数 ...
- Asp.Net写文本日志
底层代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespac ...
- 学习PS必须弄懂的专业术语
在学习PS的过程中,我们经常会遇到一些专业术语,下面我们来对一些常用的.比较难理解的术语进行简单讲解. 像素:像素是构成图像的最基本元素,它实际上是一个个独立的小方格,每个像素都能记录它所在的位置和颜 ...
- VirtualBox 中ubuntu访问window下共享目录
1,vbox中设置window需要共享给vbox中ubuntu的文件夹,主要要注意共享文件夹名称windowShare. 2,在ubuntu中挂载windowShare. sudo mount -t ...
- ThinkPHP第二十一天(JQuery元素获取,parents属性,toggle方法,确认弹出对话框使用)
1.JQuery用法 A:$(function(){code...});表示当页面载入完毕后执行 B:获取元素方法:根据class名称 $('.classname'),根据ID名称 $('#IDnam ...
- 四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法
四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法 原创文章,欢迎转载,转载请注明出处 最近时间花在最多的地方就是STM32的I2C上了.之前就知道STM32的I2C并不好用, ...
- 逻辑(if)、关系、数字、条件运算符
if语句 if-else if-else if(a==0){1} else if (a>0){2} else{3} 特点:1.2.3只有一个括号会被执行 陷阱 1.if(a!=0) ...
- 自增或自减例子:i++和++i的相同点和不同点
/* Name:++i和i++的区别 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月15日 02:40:27 Description:熟悉前自增或自减的 ...
- 15-C语言结构体
目录: 一.大型软件开发 二.头文件和static 三.结构体 四.联合 五.枚举 回到顶部 一.大型软件开发 将一个代码中的内容,拆分成多个文件,最后的可执行文件只要一个. 操作步骤: 1 原来只有 ...
- Node爬虫
Node爬虫 参考 http://www.cnblogs.com/edwardstudy/p/4133421.html 所谓的爬虫就是发送请求,并将响应的数据做一些处理 只不过不用浏览器来发送请求 需 ...