半双工(HDX,Half Duplex)技术是ISO11784/11785中规定的另一种标签与读写器之间的通讯方式。读写器先打开射频场对标签充电以激活标签,然后关闭磁场,标签在读写器磁场关闭的情况下向读写器传送数据。不过HDX虽然是在动物标签标准中规定,但似乎更多的应用于和动物联系不大的工业识别领域。这也没什么大惊小怪的,标准是标准,实际应用中适合的才是最好的,就像信鸽虽然是动物,但许多信鸽的脚环识别号其实是ID64格式。

与全双工(FDX)相比,HDX 通常识别能力更强,因为HDX读写器的射频场在HDX标签响应期间关闭,从而读写器可以专注于接收来自标签的信号,同时也消除了读写器射频场对标签信号的干扰。HDX采用移频键控(FSK)技术,发送数据“1”使用124.2KHz的频率,发送数据“0”使用134.2KHz的频率。数据的传送速率大约8Kbps,基本上是FDX的两倍。实际工作时读写器持续打开射频场至少50毫秒,以激活标签,在读写器关闭射频场3毫秒的时间之内,标签开始回送识别数据,如下图所示:


因为标签回送数据时读写器的射频场已经消失,回送数据完全使用标签自己之前储存的能量,所以标签如何节能降耗非常重要。为此,一方面HDX传送数据的速率比FDX快一倍,另一方面尽量减少不必要的数据传输,除了64位的识别数据必须完整回送外,其它部分只要不是非传不可的数据,标签是能省则省。头部由FDX的11位减少为8位,同时省略了FDX的13位控制位,这样一共比FDX少传送16位,正好两个字节。整个数据帧的位数也从128位减少到112位。同FDX一样,数据发送时先送最低有效位(LSB)再送最高有效位(MSB),传送的顺序如下图所示:


例如,一个标签的保留位是0,国家编码是999(10进制),国内唯一序列号是1008(10进制),尾部是123456(16进制),动物标志为1,有附加数据(1),64位识别码的16进制数为0x8001F9C0000003F0,它的CRC16=0x5DD6,标签回送数据的顺序如下:

MSB  LSB

0  1  1  1  1  1  1  0 8位头部

1  1  1  1  0  0  0  0  38位国内唯一序列号
0  0  0  0  0  0  1  1

0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0

1  1  0  0  0  0  0  0

1  1  1  1  1  0  0  1  10位国家代码

0  0  0  0  0  0  0  1  1位附加数据,14位保留数据

1 0  0  0  0  0  0  0  1位动物标识

1  1  0  1  0  1  1  0  16位CRC校验

0  1  0  1  1  1  0  1

0  1  0  1  0  1  1  0  24位尾部

0  0  1  1  0  1  0  0

0  0  0  1  0  0  1  0

波形使用最简单的非归零码,此处不再画出。需要说明的是,因为非归零码容易失步,所以一般读卡芯片解调后输出数据都使用两条线,一条数据线和一条时钟线。比如TI的芯片RI45538,它的第15脚是RXDT,用来输出数据,第16脚是RXCK,用来输出时钟。

 

本文来自新浪网

射频识别技术漫谈(9)——动物标签HDX【worldsing笔记】的更多相关文章

  1. 射频识别技术漫谈(8)——动物标签【worldsing笔记】

    动物标签也是工作在TTF模式的ID(Identification)卡.之所以通常称为动物标签,估计是因为一来和识别人的ID卡相区分,二是因为动物不如人听话,人的ID卡可以做成卡片形状拿在手上,而动物不 ...

  2. 射频识别技术漫谈(9)——动物标签HDX

    半双工(HDX,Half Duplex)技术是ISO11784/11785中规定的另一种标签与读写器之间的通讯方式.读写器先打开射频场对标签充电以激活标签,然后关闭磁场,标签在读写器磁场关闭的情况下向 ...

  3. 射频识别技术漫谈(7)——ID卡【worldsing笔记】

    ID(Identification)是识别的意思,ID卡就是识别卡.ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡. 射频ID卡 ...

  4. 射频识别技术漫谈(2)——国际标准【worldsing 笔记】

    如果你只是智能卡的用户,通常可以不必关注国际标准,但作为智能卡的专业开发人员,则至少也要对相关标准有所了解.国际标准一般都是西方人制定的,原版都是英文的,而所谓中文版往往是对原版的直译,许多情况下并未 ...

  5. 射频识别技术漫谈(5)——防冲突【worldsing 笔记】

    正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能 ...

  6. 射频识别技术漫谈(10)——识别号的格式变化【worldsing笔记】

    从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出 ...

  7. 射频识别技术漫谈(6)——通讯协议概述【worldsing笔记】

    通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言 ...

  8. 射频识别技术漫谈(4)——数据编码【worldsing 笔记】

    前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去.这里的"有用信号"指用高低电平表示的数据"0"或" ...

  9. 射频识别技术漫谈(3)——能量、调制【worldsing 笔记】

    无源和免接触是非接触式IC卡相对于接触式IC卡的两大特点.无源是指卡片上没有电源,免接触是指对卡片的读写操作不必和读写器接触.非接触式智能卡也是IC卡,而卡上的IC即集成电路工作时肯定是需要电源的,卡 ...

随机推荐

  1. ExtJS4 MVC开发教程:搭建开发环境

    原文地址:http://www.lihuai.net/qianduan/extjs/864.html 博主系列教程:http://www.lihuai.net/qianduan/extjs 在所有的J ...

  2. [矩阵快速幂]HDOJ4565 So Easy!

    题意:给a, b, n, m 求 $\left \lceil ( a+ \sqrt b )^n \right \rceil$ % m 看到 $( a+ \sqrt b )^n$ 虽然很好联想到共轭 但 ...

  3. Discuz模版与插件 安装时提示“对不起,您安装的不是正版应用...”解决方法

    关于出现“对不起,您安装的不是正版应用..”的解决办法 有些插件和风格在安装时出现不能安装的现象,出现以下提示:       对不起,您安装的不是正版应用,安装程序无法继续执行       点击这里安 ...

  4. JS插件excanvas的使用方法

     这个还没有想好怎么写,等写好后再发布 试用了excanvas.js,生成静态统计图 IE下使用excanvas.js的注意事项

  5. Qt 二进制文件读写(使用“魔术数字”)

    今天开始进入 Qt 的另一个部分:文件读写,也就是 IO.文件读写在很多应用程序中都是需要的.Qt 通过 QIODevice 提供了IO的抽象,这种设备(device)具有读写字节块的能力.常用的IO ...

  6. 212. Word Search II

    题目: Given a 2D board and a list of words from the dictionary, find all words in the board. Each word ...

  7. python学习笔记五--文件

    任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...

  8. ASP.NET多次点击提交按钮以及Session超时和丢失过期问题

    1.ASP.NET防止多次点击提交按钮 对于一个按钮,要让变成恢色的,只要this.disabled=true就可以了,可是在.NET里,添加了OnClick事件后,就无法提交信息了.所以要加上以下代 ...

  9. debug类和trace类的区别

    在 .net 类库中有一个 system.diagnostics 命名空间,该命名空间提供了一些与系统进程.事件日志.和性能计数器进行交互的类库.当中包括了两个对开发人员而言十分有用的类——debug ...

  10. Android开发之实用小知识点汇总-2

    1.EditText 中将光标移到文字末尾: EditText mEdit = (EditText)this.findViewById(R.id.EditText01); mEdit .setText ...