




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
射频识别技术漫谈(1)概念、分类 现代社会智能卡已经渗透到生活的方方面面,公交卡、考勤卡、身份证、手机卡等等数不胜数。智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡座上,典型的如手机卡以及以前的公用电话卡。非接触式智能卡没有触点,卡上也没有电源,通过读卡器产生的电磁场获得能量并与读写器交换信息。由于非接触式智能卡的无源和免接触特性,卡的使用寿命和安全性大大提高,目前应用越来越广泛。根据安全等级,智能卡可分为存储器卡、逻辑加密卡和CPU卡。存储器卡就像一个无人看守且大门敞开的仓库,什么人都可以随便在卡中存取数据;逻辑加密卡则给仓库加了一把锁,只有有钥匙(密码)的人才能打开使用。CPU卡则如同安排了专人看守仓库,卡里面有CPU芯片,存储数据要验证口令,且可能不同的应用有不同口令,存取数据受到更加严格的控制,安全性最高。非接触式IC卡通过磁场从读写器获得能量并交换数据。这里的磁场通常称为射频场(Radio Frequency Field),所以这种卡片也通常称为射频卡,这种技术称为射频识别(Radio Frequency Identification,RFID)技术。不管叫什么名字,其实质都是一样的,都是无线电通讯,本质上与广播、电视、手机通讯并无区别。无线电通讯中很少有直接发射有用信号的,通常使用调制解调技术,将有用信号调制在某一频率的载波上,接收方收到调制信号后解调得到有用信号。非接触式IC卡的常用载波频率有125KHz、134.2KHz、13.56MHz、2.45GHz等,通常载波频率越高,数据的传送速率越高,技术上也较复杂。虽然都是免接触,不同卡的有效操作距离是不一样的。有些卡号称免接触,但读卡距离非常短,只有0-2厘米,这种卡被称为CICC卡(Close-Couple ICC),一般翻译成密耦合卡;有些卡的操作距离远一点,可以达到10厘米,这种卡被称为PICC卡(ProximityICC),我们叫它接近卡;还有一种更远的,至少可以达到半米或更远,这种卡被称为VICC卡(Vicinity ICC),中文称疏耦合卡。业内还有一些不成文的习惯叫法。一般的卡片操作通常都是主从式,即读卡器作为主动方发送命令,卡片收到命令后作出反应,这种卡片我们称之为IC卡。有一类比较简单的卡,卡内只存储了一个识别号,通常只要进入射频场获得能量后就不停的主动发送这个识别号,这类卡习惯称ID卡。当然这些叫法只是习惯,事实上IC是集成电路的意思,以上卡片都应叫IC卡,不过习惯的力量往往是很大的,时间长了,大家也就接受这种称呼了。本人随后将就射频识别技术进行一系列的“漫谈”。所谓“漫谈”,非正规也。我写的既不是技术文档,更不是教材,只是本人十年来开发射频识别卡的一些点滴体会,用不太严谨的语言表达出来而已。另外由于我对125KHz,134.2KHz和13.56MHz比较熟悉,相关的射频卡都开发过,所以之后关于射频识别技术的叙述都是基于这3种频率。射频识别技术漫谈(2)国际标准 如果你只是智能卡的用户,通常可以不必关注国际标准,但作为智能卡的专业开发人员,则至少也要对相关标准有所了解。国际标准一般都是西方人制定的,原版都是英文的,而所谓中文版往往是对原版的直译,许多情况下并未准确说出实际的意思,所以如果想看这些标准,还是看原版好。以下仅简单介绍比较重要的关于智能卡的国际标准。以后的叙述我可能很少提及这些标准,不读这些标准也不影响朋友们继续往下读,但是正所谓没有规矩,不成方圆,在这里只是告诉大家,之后的叙述都是基于这些国际标准的。一、ISO 7810:规定了识别卡的物理特性,比如卡的形状、尺寸等。二、ISO 7816:身份证集成电路卡国际标准。这个标准包含的部分比较多,目前还在陆续发布与补充。7816是接触式IC卡必须遵循的国际标准,其中的有些部分也适用于非接触式智能卡。第一部分规定了接触式智能卡的物理特性;第二部分规定了接触式智能卡的触点尺寸与位置;第三部分规定了接触式智能卡的电信号和传输协议;第四部分规定了接触式智能卡与外界交互的接口组织、安全和命令;第五部分规定了接触式智能卡应用的命名方式与注册系统;第六部分规定了接触式智能卡与外界交互的数据元素;第七部分规定了接触式智能卡用于结构化查询语句的命令;第八部分规定了接触式智能卡安全操作命令;第九部分规定了接触式智能卡的卡管理命令;第十部分规定了同步卡的电信号和复位应答;第十一部分规定了使用生物统计法的个人认证;第十二部分规定了接触式智能卡USB电信号接口和操作时序;第十三部分规定了多应用环境下的应用管理命令;第十四部分好像没有;第十五部分规定了加密信息应用.修改件1:加密信息应用的实例。三、ISO 10536:密耦合卡(CICC)的国际标准。第一部分规定了CICC的物理特性;第二部分规定了CICC的耦合区域的尺寸和位置;第三部分规定了CICC的电信号和复位规程。四、ISO 14443:接近卡(PICC)的国际标准。第一部分规定了PICC的物理特性;第二部分规定了PICC的射频功率和信号接口;第三部分规定了PICC的的初始化和防冲突算法;第四部分规定了PICC的传输协议。五、ISO 15693:疏耦合卡(VICC)的国际标准。第一部分规定了VICC的物理特性;第二部分规定了VICC的空中接口和初始化;第三部分规定了VICC的防冲突和传输协议。六、ISO 11784/11785:动物识别编码的国际标准。11784规定了动物识别信号的编码结构;11785规定了动物识别的一些技术概念。七、ISO 10373:规定了识别卡的测试方法。这么多标准看了让人头都大了,其实作为一个RFID的开发和应用者来说,并不是所有这些协议都需要看的。首先如果你不造卡,物理部分就不用看了,厂家做出来什么样就是什么样;信号接口了解一下就行,因为每种卡片通常都有专用的接口芯片,除非从天线到CPU接口你自己全部用分立器件搭建,否则你应该花更多时间研究专用接口芯片的说明书;卡的通讯协议是我们最应该关注的,因为它需要开发人员在软件中实现;而动物识别编码的国际标准是做动物识别卡时用,它规定了卡片发送动物识别信息的编码规则,属于智能卡的应用范畴。射频识别技术漫谈(3)能量、调制 无源和免接触是非接触式IC卡相对于接触式IC卡的两大特点。无源是指卡片上没有电源,免接触是指对卡片的读写操作不必和读写器接触。非接触式智能卡也是IC卡,而卡上的IC即集成电路工作时肯定是需要电源的,卡片自身没有电源而又不和读写器接触,那么电源从哪里来的呢?其实回答这个问题非常简单,那就是电磁感应。读写器产生一个电磁场,卡片上的天线是一个LC振荡电路,且这个振荡电路的共振频率和读写器电磁场的频率一致。当卡片进入读写器的射频场,卡上的振荡电路起振,电路振荡意味着有电子的流动,有电子的流动就可以用二极管让电子积累,电子的积累就会形成电压,有了电压智能卡就能工作了。卡片获得能量的方式大体就是这样,具体的实现方法,如果不打算自己做卡就没必要深究,只要懂得原理就可以了。如果还不明白,想想变压器吧,变压器的原边和副边也是绝缘的,但能量却可以从原边传递到副边,射频卡获得能量的方式就相当于变压器的副边。能量有了,那么读写器和卡片又是如何进行信息交流的呢?既然是免接触,那就只有通过无线电传输了。无线电传输很少有直接发送信号的,一般都是选定某一频率的载波,也就是正弦波,发送方把有用信号调制在载波上,接收方解调收到的信号,把载波去掉得到有用信号。无论电视、广播、手机通讯还是射频卡,其基于无线电通讯的原理都是一样的。载波(正弦波)有三要素,幅度、频率和相位,相应的有用信号对载波的调制也有三种:调幅、调频和调相。调幅是改变载波的幅度记录有用信号,调频是改变载波的频率记录有用信号,调相是改变载波的相位记录有用信号。调幅电路简单,容易受干扰,调频和调相结构复杂些,但抗干扰能力强,一个简单的例子是你的收音机FM(调频)比AM(调幅)声音好听的多。另外,调幅和调频要求载波频率远大于有用信号的最高频率,通常要10倍以上,而调相则无此要求,载波频率可以高于、等于(2BPSK)甚至低于(4BPSK,16BPSK)有用信号的频率。基于上述三种调制的特点,射频卡通讯距离最大不过几米,平常用的接近卡(PICC)最大距离才10公分,在这么短的距离范围内形成一个相对较强的局部射频场,几乎可以不用考虑干扰。射频卡上没有电源,尤其成本考虑,自然要求卡上电路越简单越好。所以,调幅虽然易受干扰但电路结构简单,成为射频卡调制的首选。调幅有一个指标叫调制系数,也就是衡量有用信号对载波幅度的调制有多大。调制系数为0,相当于没有调制,调制系数为1则相当于把载波的幅度调为0,一般调制系数都在0.1-0.9之间。显然由于射频卡需要从磁场中获得能量,如果调制系数接近1,意味着磁场关闭了,时间短了还行,时间长了卡上的电源必然会消失,卡片的基本工作条件都没有了,但调制系数大抗干扰能力强,容易解调。相反,调制系数小,卡片可以获得稳定的能量供应,但抗干扰能力弱,解调困难一些。在读写器与卡片的信息交流过程中,读写器产生射频场,向卡片发送数据时调制自己产生的射频场,这很好理解。但卡片是被动的,不仅不能产生射频场,还要从读写器的射频场中获取能量,那又如何通过调制射频场向读写器回送数据呢?射频识别技术中采用了一种叫做负载调制的方法。其原理也非常简单,还是以变压器为例,我们都有这样的常识,如果变压器的副边突然接入一个大的负载,变压器原边电压就会瞬间降低,切除负载,变压器的原边电压就会马上恢复。前面说了,射频卡相当于变压器的副边,卡内也有这样一个负载,接通负载时射频场的振荡幅度会减小,切除负载,射频场的幅度会恢复。卡片通过负载是否接入来表示发送的数据,读写器探测到射频场的幅度改变,就能知道卡片发送什么数据了。这就是卡片回送数据的原理。射频识别技术漫谈(4)数据编码 前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去。这里的“有用信号”指用高低电平表示的数据“0”或“1”。那么如何用高低电平表示数据“0”或“1”呢?最简单的办法就是用高电平表示“1”,用低电平表示“0”,这种代码叫全宽码,如下图所示:这种编码方式存在的最大缺陷就是数据容易失步。上图的数据我们看的很清楚,但是想想如果发送方连续发送100个“0”或100个“1”,就会有100个单位的连续高电平或100个单位的连续低电平。这种情况下,接收方极有可能把数据的个数数错,把100数成99或101,这就是数据失步。所以这种编码很少直接采用。这就要求使用的编码既能让接收方知道发送方传送的是“1”还是“0”,又能让接收方正确分辨出每个二进制比特。实际的射频识别技术中采用的数据编码主要有以下几种,它们都能满足上述要求。1.曼侧斯特(Manchester)码如下图所示,曼侧斯特码每位数据的中心都有跳变,上升沿表示数据“1”,下降沿表示数据“0”,或者反之。当发送连续的“0”或“1”时,则在数据的开始部分增加一个状态转换沿。2.两相(Biphase)码两相码每位数据的开始处都有跳变,数据中心有跳变表示“1”,数据中心无跳变表示“0”,或者反之。3.频移键控(FSK)码频移键控码用不同的脉冲频率表示数据,脉冲频率高表示“1”,脉冲频率低表示“0”,或者反之。4.相移键控(FSK)码相移键控码用数据的开始处有没有相位翻转表示数据的变化,有相位的翻转表示数据发生了翻转(上一位如果是“0”,则当前发送“1”;上一位如果是“1”,则当前发送“0”),无相位的翻转表示数据没有发生变化(上一位如果是“0”,则当前发送“0”;上一位如果是“1”,则当前发送“1”),或者反之。5.米勒(Miller)码如图,米勒码用数据中心是否有跳变表示数据。数据中心有跳变表示“1”,数据中心无跳变表示“0”。当发送连续的“0”时,则在数据的开始处增加一个跳变防止失步。6.修正的米勒(Modified Miller)码修正的米勒码是ISO14443A规定使用的数据编码。数据中间有个窄脉冲表示“1”,数据中间没有窄脉冲表示“0”,当有连续的“0”时,从第二个“0”开始在数据的起始部分增加一个窄脉冲。该标准还规定起始位的开始处也有一个窄脉冲,而结束位用“0”表示。如果有两个连续的位开始和中间部分都没有窄脉冲,则表示无信息。7.副载波调制的曼侧斯特(Manchester)码副载波调制的曼侧斯特码也是ISO14443A规定使用的数据编码,在卡片向PCD回送数据时使用。副载波调制码元的右半部分表示数据“0”,副载波调制码元的左半部分表示数据“1”。射频识别技术中采用的编码方法还有许多种,有些是上述几种的变形。但无论采用什么编码方法,其原则都应该是数据利于传送和识别,且不能失步,有时候还要配合下面将要叙述的卡片防冲突。射频识别技术漫谈(5)防冲突 正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作。但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突。防冲突机制是非接触式智能卡特有的问题。在接触式智能卡的操作中是不存在冲突的,因为接触式智能卡的读写器有一个专门的卡座,而且一个卡座只能插一张卡片,不存在读写器同时面对两张以上卡片的问题。常见的非接触式智能卡中的防冲突机制主要有以下几种:1.面向比特的防冲突机制。ISO14443A中使用这种防冲突机制,其原理是基于卡片有一个全球唯一的序列号。比如Mifare1卡,每张卡片有一个全球唯一的32位二进制序列号。显而易见,卡号的每一位上不是“1”就是“0”,而且由于是全世界唯一,所以任何两张卡片的序列号总有一位的值是不一样的,也就说总存在某一位,一张卡片上是“0”,而另一张卡片上是“1”。当两张以上卡片同时进入射频场,读写器向射频场发出卡呼叫命令,问射频场中有没有卡片。这些卡片同时回答“有卡片”;然后读写器发送防冲突命令“把你们的卡号告诉我”,收到命令后所有卡片同时回送自己的卡号。可能这些卡片卡号的前几位都是一样的。比如前四位都是1010,第五位上有一张卡片是“0”而其他卡片是“1”,于是所有卡片在一起说自己的第五位卡号的时候,由于有卡片说“0”,有卡片说“1”,读写器听出来发生了冲突。读写器检测到冲突后,对射频场中的卡片说,让卡号前四位是“1010”,第五位是“1”的卡片继续说自己的卡号,其他的卡片不要发言了。结果第五位是“1”的卡片继续发言,可能第五位是“1”的卡片不止一张,于是在这些卡片回送卡号的过程中又发生了冲突,读写器仍然用上面的办法让冲突位是“1”的卡片继续发言,其他卡片禁止发言,最终经过多次的防冲突循环,当只剩下一张卡片的时候,就没有冲突了,最后胜出的卡片把自己完整的卡号回送给读写器,读写器发出卡选择命令,这张卡片就被选中了,而其他卡片只有等待下次卡呼叫时才能再次参与防冲突过程。上述防冲突过程中,当冲突发生时,读写器总是选择冲突位为“1”的卡片胜出,当然也可以指定冲突位为“0”的卡片胜出。上述过程有点拟人化了,实际情况下读写器是怎么知道发生冲突了呢?在前面的数据编码中我们已经提到,卡片向读写器发送命令使用副载波调制的曼侧斯特(Manchester)码,副载波调制码元的右半部分表示数据“0”,副载波调制码元的左半部分表示数据“1”,当发生冲突时,由于同时有卡片回送“0”和“1”,导致整个码元都有副载波调制,读写器收到这样的码元,就知道发生冲突了。这种方法可以保证任何情况下都能选出一张卡片,即使把全世界同类型的所有卡片都拿来防冲突,最多经过32个防冲突循环就能选出一张卡片。缺点是由于卡序列号全世界唯一,而卡号的长度是固定的,所以某一类型的卡片的生产数量也是一定的,比如常见的Mifare1卡,由于只有4个字节的卡序列号,所以其生产数量最多为2的32次方,即4294967296张。2.面向时隙的防冲突机制ISO14443B中使用这种防冲突机制。这里的时隙(timeslot)其实就是个序号。这个序号的取值范围由读写器指定,可能的范围有1-1、1-2、1-4、1-8、1-16。当两张以上卡片同时进入射频场,读写器向射频场发出卡呼叫命令,命令中指定了时隙的范围,让卡片在这个指定的范围内随机选择一个数作为自己的临时识别号。然后读写器从1开始叫号,如果叫到某个号恰好只有一张卡片选择了这个号,则这张卡片被选中胜出。如果叫到的号没有卡片应答或者有多于一张卡片应答,则继续向下叫号。如果取值范围内的所有号都叫了一遍还没有选出一张卡片,则重新让卡片随机选择临时识别号,直到叫出一张卡片为止。这种办法不要求卡片有一个全球唯一序列号,所以卡片的生产数量没有限制,但是理论上存在一种可能,就是永远也选不出一张卡片来。3.位和时隙相结合的防冲突机制ISO15693中使用这种机制。一方面每张卡片有一个7字节的全球唯一序列号,另一方面读写器在防冲突的过程中也使用时隙叫号的方式,不过这里的号不是卡片随机选择的,而是卡片唯一序列号的一部分。叫号的数值范围分为0-1和0-15两种。其大体过程是,当有多张卡片进入射频场,读写器发出清点请求命令,假如指定卡片的叫号范围是0-15,则卡片序列号最低4位为0000的卡片回送自己的7字节序列号。如果没有冲突,卡片的序列号就被登记在PCD中。然后读写器发送一个帧结束标志,表示让卡片序列号最低4位为0001的卡片作出应答;之后读写器每发送一个帧结束标志,表示序列号的最低4位加1,直到最低4位为1111的卡片被要求应答。如果此过程中某一个卡片回送序列号时没有发生冲突,读写器就可选择此张卡片;如果巡检过程中没有卡片反应,表示射频场中没有卡片;如果有卡片反应的时隙发生了冲突,比如最低4位是1010的卡片回送卡号时发生了冲突,则读写器在下一次防冲突循环中指定只有最低4位是1010的卡片参与防冲突,然后用卡片的5-8位作为时隙,重复前面的巡检。如果被叫卡片的5-8位时隙也相同,之后再用卡片的9-12位作为时隙,重复前面的巡检,依次类推。读写器可以从低位起指定任意位数的序列号,让卡号低位和指定的低位序列号相同的卡片参与防冲突循环,卡片用指定号前面的一位或4位作为时隙对读写器的叫号作出应答。由于卡片的序列号全球唯一,所以任何两张卡片总有某个连续的4位二进制数不一样,因而总能选出一张卡片。另外需要说明的是,TTF(Tag Talk First)的卡片一般是无法防冲突的。这种卡片一进入射频场就主动发送自己的识别号,当有多张卡片同时进入射频场时就会发生不读卡的现象。这时只有靠卡片的持有者自己去避免冲突了。射频识别技术漫谈(6)通讯协议概述 通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等。在这里通迅的双方指的是读写器和卡片。首先是谁先发起通讯,很显然有两种,读写器先发言和卡片先发言。前一种叫Reader Talk First,简称为RTF;后一种叫Tag Talk First,简称为TTF。我们知道,卡片从读写器产生的射频场获得工作时需要的能量,一般认为应该是读写器主动,卡片被动才对,这也是人之常情。所以多数功能稍复杂的卡片都是采用RTF模式,即读写器问,卡片回答。读写器没有命令,卡片是无论如何也不能主动说话的。但是有些卡片功能单一,每次与读写器的交流中只会回答一个问题,而且每次内容都相同。对于这种卡片,似乎再让读写器每次先提问已经没有什么意义了,还不如每次与读写器交流直接让卡片先说它那永远不会变的一句话得了,于是就有了TTF模式。TTF模式的卡片一般都是我们常说的ID卡,即识别卡,ID卡每次说的相同的一句话都是一个识别号,读写器利用这个识别号确定持卡者的身份。其次是交流的秩序。对TTF卡片当然没什么秩序可言了,一进入射频场卡片就自说自话。但对RTF的卡片一般有严格的顺序,如下图所示:第一步是读写器呼叫卡,如果射频场中有读写器支持的卡片,卡片将回送一个应答,告诉读写器自己是什么类型的卡片。然后读写发出命令选中卡片,如果射频场中有多张卡片,通常还要进行防冲突循环以便决出唯一张卡片进行操作。第三步是进行认证,一方面读写器要认证卡片是合法的,另一方卡片也要认证读写器是合法的。如果认证顺利通过,就可以进行正常的读写数据操作了。这些步骤并不都是必须的,有些简单的卡片,要求操作前用户把卡片放到读写器上,读写器直接对其进行读写操作,前面的3步都省了;有些卡片没有密码,当然不需要相互认证;有些卡片不支持防冲突,同时有多张卡片时将无法操作;还有些卡片将呼叫和防冲突用一个步骤代替。所以对于具体的卡片,要仔细阅读其说明书,进行具体的分析。还有一类卡片既可以工作在TTF模式,又可以工作在RTF模式。两种模式之间的切换一般有两种方式:一种是卡片刚进入射频场上电复位后会等待一个固定时间,在这段时间内如果有读写器的命令,则工作在RTF模式,如果没有收到命令则进入TTF模式。另一种是卡片上电后主动在RTF与TTF之间不停的切换,在TTF模式下发送完一个识别号后,立即进入RTF模式等待读写器的命令,如果有命令则执行命令,没有命令则退出RTF模式返回TTF模式继续发送识别号,之后进行下一次的切换。最后还有一个全双工(Full Duplex,FDX)和半双工(Half Duplex,HDX)的概念。在有线通讯中,我们知道全双工就是通讯双方可以同时双向通讯,半双工就是虽能双向通讯,但某一时刻只能有一个方向通讯。一般来说当然是全双工好,如果技术上能实现全双工,当然最好不用半双工;成本上全双工贵,半双工便宜。但在射频识别技术中FDX和HDX并不是这个意思。在ISO11785中对FDX和HDX的定义如下:FDX:标签和读写器在读写器产生的磁场没有消失的情况下进行通讯。HDX:标签和读写器在读写器产生的磁场停止之后进行通讯。RFID技术中FDX的例子如Mifare系列卡片,HDX的例子如TI公司的134.2KHz标签,如RI-TRP-WR2B。目前的射频卡FDX比较多,因为射频卡无源,需要从读写器的射频场取电,射频场不消失,卡片可以源源不断的取电,对卡片内部的储能电路要求不高。缺点是卡片回送数据时因为自己不能产生射频场,只能被动发送,所以一般采取负载调制的方法回送数据。HDX在读写器的射频场停止后回送数据,读写器对卡片数据的识别解调容易。缺点是对卡片的储能电路要求较高,而且回送数据量有限。成本上HDX也未必比FDX便宜。射频识别技术漫谈(7)ID卡 ID(Identification)是识别的意思,ID卡就是识别卡。ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡。射频ID卡一般都工作在TTF模式,进入射频场得电后不停地发送自己的识别号。最初识别卡是用来识别人的,用5个字节40位二进制数表示,可以识别大约一万亿人,估计是因为考虑到一万亿太多了,一般ID卡使用时只使用低位的4个字节,而把最高位的一个字节作为厂家标识或版本号使用。这样4字节32位二进制数可以识别43亿人,在当时全世界每人一个识别号也足够了。当然后来又发展到卡号可以随便复制,这是后话。为了检查数据传输中是否发生了错误,射频识别卡对每个字节都增加了两个校验位,其中高半字节一个,低半字节一个,这样每个字节增加到10位二进制数,5个字节共有50位。为了校验数据的整体性错误,射频ID卡还增加了一个4位的纵向冗余检验,这样整个ID卡数据增加到54位。当进入射频场时,如果卡片直接回送这5个字节,那么读写器很难确定起始位和结束位,所以射频识别卡又增加了9个二进制“1”在前面作起始位,增加了一个二进制“0”在后面作结束位,这样ID卡就有了64位数据,正好8个字节。其排列如下图所示:例如卡号为2100A5EAD9的卡片,其编码格式为1111111119个“1”的起始位,也叫头部00101“2”00011“1”00000“0”00000“0”10100“A”01010“5”11101“E”10100“A”11011“D”10010“9”11000列偶校验和结束位“0”射频ID卡的数据编码一般使用曼侧斯特码或两项码,传送数据的速率用传送一位二进制数据使用几个单位载波表示。常用的有64载波,32载波,16载波,在125KHz的频率下,一个载波的时间是8微秒,因此相应的位宽为512微秒,256微秒,128微秒。对应的数据传输速率为2K(1953)、4K(3906)、8K(7813)。我们平常使用的大多是2K曼侧斯特编码的ID卡。下图是使用HTRC110芯片读卡时,卡号为2100A5EAD9的卡片从数据输出脚DOUT输出的实测波形。软件解码时可以使用查询或中断检测跳变,配合定时器确定脉宽,根据跳变沿的方向确定数据。为了和128位的动物识别标签相区别,业内一般称这种64位的ID卡格式为“ID64格式”。射频识别技术漫谈(8)动物标签 动物标签也是工作在TTF模式的ID(Identification)卡。之所以通常称为动物标签,估计是因为一来和识别人的ID卡相区分,二是因为动物不如人听话,人的ID卡可以做成卡片形状拿在手上,而动物不会用四肢持卡,要么做成小玻璃管状用设备注射到皮下,例如小狗小猫等宠物,要么做成耳钉订在耳朵上,例如猪耳标,要么做成环状套在腿上,例如信鸽的脚环。动物识别标签的通讯方式分为全双工(FDX)和半双工(HDX),全双工是标签回送数据时读卡器产生的射频场不消失,半双工是标签回送数据时读卡器产生的射频场消失。目前市场上以全双工模式居多,下面具体说明全双工模式。尽管生物物种不停地灭绝,但国际标准的制定者们还是坚定的认为世界上的动物比人多的多,所以全双工模式的动物标签足足有128位,是ID64识别卡的两倍。按顺序依次是11位的头部,64位的识别码,16位的CRC校验,24位的尾部。另外还有13位的控制位。11位的头部是固定的“00000000001”,用来引导和同步。64位的识别码是标签的主体部分,包括1位动物识别标志,14位的保留位,1位附加数据标志,10位国家码和38位识别号。动物识别标志表示这个标签是不是动物标签,为1表示是动物标签,为0表示不是动物标签。14位的保留位保留将来使用(RFU)。附加数据标志位表示在64位的识别码之后是否有另外的数据需要接收,1表示有,0表示没有,一般情况此位为0。10位国家码一共可以表示1024个国家,世界上本来就没有这么多国家,于是规定其中的900-998用来表示独立的标签制造商,999表示这个标签是一个测试用的标签,标签的序列号可能不是全国唯一的。38位的识别号表示在一个国家之内的唯一序列号,当然是在国家码不等于999的情况下。16位的CRC校验用来对前面的64位识别码进行错误检查,看是否在传输的过程中发生了错误。24位的尾码没有规定什么内容,一般填0。前面的64位的识别码,16位的CRC校验,24位的尾部共有104位13个字节.为了有效区分和校验这13个字节,规定在每个字节的后面增加一个固定的“1”,共增加了13位,这就是控制位。所以控制位并不是在识别号的最后面,而是在中间13个字节每个字节的后面都有一位控制位“1”。标签回送数据时先回送低位字节,再回送高位字节,每个字节先送最低有效位(LSB),后送最高有效位(MSB),如下图所示:例如,一个标签的保留位是8003(01 1111 0100 0011),国家编码是156(00 1001 1100),国内唯一序列号是9138702(00 0000 0000 0000 10001011 0111 0100 0000 1110),尾部全0(0000 0000 0000 0000 0000 0000),动物标志为1,有附加数据(1),标签的64位识别码是10111110 10000111 00100111 00000000 00000000 10001011 01110010 00001110,即十六进制的0xBE872700008B720E。它的CRC16=0x2C72(00101100 01110010),动物标签一般使用两相(Biphase)码,则其发送波形如下:再比如,我手头有一个注射式动物标签如下图:打开后的样子:放在读写器上,从HTRC110的DOUT脚捕捉到波形如下:则可以写出以下形式1000000000011个头部111000101序列号SN7-SN0:C5H101100000序列号SN15-SN8: 60H101000110序列号SN23-SN16:46H111010100序列号SN31-SN24:D4H100100000序列号SN37-SN32:20H;国家码C1-C0:00H101100010国家码C9-C2:62H100000000保留位留位R6-R0=0,没有附加数据110000000动物标识=1,保留位R13-R7=0101010101CRC16校验低位字节:55H111101110CRC16校验高位字节:EEH100000000尾部TR7-TR06: 00H100000000尾部TR15-TR8: 00H100000000尾部TR23-TR16:00H根据以上数据列表,可以知道,该标签的国家代码是392(188H),国内唯一序列号是141000335557(20D44660C5H)。你也看到了,包装上写着呢。射频识别技术漫谈(9)动物标签HDX 半双工(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,标签回送数据的顺序如下:MSBLSB011111108位头部1111000038位国内唯一序列号000000110000000000000000110000001111100110位国家代码000000011位附加数据,14位保留数据100000001位动物标识1101011016位CRC校验010111010101011024位尾部0011010000010010波形使用最简单的非归零码,此处不再画出。需要说明的是,因为非归零码容易失步,所以一般读卡芯片解调后输出数据都使用两条线,一条数据线和一条时钟线。比如TI的芯片RI45538,它的第15脚是RXDT,用来输出数据,第16脚是RXCK,用来输出时钟。射频识别技术漫谈(10)识别号的格式变化 从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里。ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出在读卡器上,是读卡器对卡片识别号采用了不同的输出格式。下面以第7节中提到的ID卡(其卡号是16进制的2100A5EAD9H)为例,说明常见的识别号输出格式。1.ASCII码与16进制真值变换在嵌入式系统里,数据的存储一般以字节为单位,字节的表示范围为16进制的00-FFH,这就是16进制的真值。而计算机显示数据一般使用可见字符的ASCII码,ASCII码使用一个字节表示原来16进制真值数据的半个字节。比如ASCII用30H-39H表示16进制的0-9,用41-46H表示16进制的A-F。对于上面的卡号,在16进制显示模式下,如果使用16进制真值,输出结果为21 00 A5 EA D9如果使用ASCII码输出,则变成了32 31 30 30 41 35 45 41 44 392.大小端模式变换如果我们把识别号看成一个数,按多数人的习惯,一般要先输出数据的高位部分,再输出数据的低位部分。对于卡号2100A5EAD9H到底是左边的21是最高位,还是右边的D9是最高位呢?这就是大小端模式的问题。如果认为左边是高位,就是大端模式,如果认为右边是高位,就是小端模式。所以识别号2100A5EAD9H在大端模式下输出就是.21 00 A5 EA D9在小段模式下输出就是D9 EA A5 00 213.识别号的整体与部分输出ID卡的识别号有5个字节,通常情况下使用低位的4个字节。有的用户需要ID号的全部信息,就会输出全部5个字节。有时一个单位的人数较少,为方便记录,只使用低位的2个或3个字节。使用的字节数越少,表示的数值范围越小,越容易发生重号。仅使用两个或3个字节的用户,一般在购卡时会购买一个低位连续的号段,同时让高位字节固定。比如如果想只使用低位的两个字节,则可以固定高位3个字节为2100A5H, 低位两个字节从0000-1000H,也就是将2100A50000-2100A51000H范围的识别卡买断。这样在单位内部使用时就不会重号了。实际上只要高位的三个字节相同,根据卡号的唯一性,低位的两个字节无论如何也不会相同的。如果卡号不唯一,情况将另当别论,“关于ID卡的复制”后面还要述及。2100A5EAD9H在大端模式下输出5个字节21 00 A5 EA D9输出4个字节00 A5 EA D9输出3个字节A5 EA D9输出2个字节EA D94.16进制与10进制转换对于卡片的用户来说,10进制相对于16进制更容易记忆和接受,所以许多读卡器都把卡号转换成10进制输出。多数情况下,是将低位的4个字节转换为10位的10进制数,当然也可以把5个字节转换为13位的10进制数、把3个字节转换为8位的10进制数、把2个字节转换为5位的10进制数输出。2100A5EAD9H整体5字节转换为13位10进制数结果为141744794329右边4字节转换为10进制0010873561右边3字节转换为10进制10873561右边2字节转换为10进制601215.数据的韦根格式这里的韦根指的是韦根数据转换格式,而不是韦根信号传输接口。韦根数据格式只使用识别号的低位三个字节,这三个字节的第一个字节转换成一个3位的10进制数,后两个字节转换成一个5位的10进制数,然后把两部分组合成一个8位的10进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年致远学院第一批次人才引进考前自测高频考点模拟试题及1套参考答案详解
- 2025合同样本:购房定金合同示范文本
- 2025江苏宿迁市泗洪县卫健系统引进高层次人才33名模拟试卷及答案详解(全优)
- 2025广东广州市百万英才汇南粤广州中医药大学第三附属医院招聘14人模拟试卷带答案详解
- 广西柳州市2026届高三上学期9月月考试题 物理 含答案
- 2025湖北恩施州宣恩县园投人力资源服务有限公司招聘多家企业人员人员考前自测高频考点模拟试题及答案详解(全优)
- 火力电厂考试题库及答案
- 电商直播考试题库及答案
- 海油电焊考试题库及答案
- 咖啡大师考试题库及答案
- 中医馆诊所标准服务流程及日常工作指导细则-范本
- 音乐的职场价值提升个人魅力与工作效率
- 人工智能在智能物流领域的应用练习题
- 关于养成好习惯的广播稿
- 2025变压器振动监测与故障诊断装置
- 工程对赌协议合同模板
- 盒饭采购合同协议
- 8《大家来合作》公开课一等奖创新教学设计 (含2课时表格式)
- 钟祥旅游景点
- YY频道模板文档
- 2024-2025学年人教版八年级上册地理每日默写知识点(背诵版)
评论
0/150
提交评论