您可以添加到网摘 让更多人关注此文章:
0 引言
射频识别技术(RFID)是利用射频方式进行远距离通信以达到物品识别的目的,可以用来追踪和管理几乎所有物理对象。RFID系统一般包括阅读器和标签两个部分,按照这两部分通信频率的不同,系统分为低频(135 kHz以下)、高频(13.56 MHz)、超高频UHF(860~960 MHz)和微波(2.4 GHz以上)频段几大类。ISO/IEC 18000是基于物品管理的射频识别的国际标准,按工作频率分为7部分,其中第6部分规定的UHF频段因为适合远距离识别并且对环境影响较小而成为目前RFID产品发展的热点。以下简要介绍了ISO/IEC18000-6B协议的内容,并给出了一种标签逻辑部分的设计方法。
1 ISO/IEC18000-6B协议简介
1.1 传输机制
ISO/IEC18000-6B协议的传输机制是基于“阅读器先发言”的。阅读器到标签之间的数据传输采用ASK调制曼彻斯特(Manchester)编码,调制深度是11%或99%,位速率为10 kb/s或40 kb/s(采用40 kb/s)。标签到阅读器之间的数据传输是反向散射调制,即通过调制入射并反向散射给阅读器来传输信息,采用FM0编码,数据速率是40 kb/s。
1.2 阅读器命令格式
阅读器与标签以帧为单位进行数据传输。阅读器到标签的一帧通常由帧头探测段、帧头、分隔符、命令、参数、数据和CRC组成,见图1。各部分内容、功能介绍如下。
帧头探测段(preamble detect):400μs稳定的未经调制的载波信号,用来给标签充电;
帧头(preamble):包含9 bit的曼彻斯特码格式0,标志着通信的起始,即:010101010101010101;
分隔符(delimiter):一定数量、一定格式的数据,作为间隔,为将来的命令扩展做准备;
命令参数(parameter)和数据(data):取决于前面的命令;
校检(CRC-16):检验错误,采用标准的16 bitCRC-CCITT。
1.3 标签的回答格式
标签以帧为单位把数据传送回阅读器,一帧通常由静默、返回帧头、数据和CRC组成,见图2。以下为各部分介绍。
静默(quiet):标签在没有接收到命令之前或者接收到错误的命令之后,始终保持一种静止状态。只有接收到有效的阅读器命令,才返回帧头和数据;
返回帧头:为一固定数据“00 00 01 01 01 0101 01 01 01 00 01 10 11 00 01”;
数据:取决于命令以及命令处理的结果;
CRC采用16 bit的数据编码。
1.4 工作流程与防冲突机制
ISO/IEC18000-6B协议支持多枚标签同时工作。多枚标签同时工作时,先用选择或反选择命令选出UID的某些位符合要求的标签(即处于识别状态),之后进入防冲突机制进行冲突处理,随机选出一枚标签,对其进行读写等操作。完成一枚标签的操作后再次进入防冲突,寻出并处理另一枚标签,直到全部操作完毕。
防冲突机制需要两种硬件电路,一个8位的计数器和一个01随机数发生器。防冲突时,阅读器发命令,所有处于识别状态并且内部计数器为0的标签将发送它们的UID。若这样的标签有一个以上,阅读器发“FAIL”命令,令内部计数器不等于0的标签将自己的计数器加1;内部计数器等于0的标签将加上一个“1”或“0”的随机数,如若仍然为0再次发送它们的UID。这之后有三种结果:处于识别状态并且内部计数器为0的标签多于1,重复前面步骤;处于识别状态并且内部计数器为0的标签等于1,选出了标签;没有处于识别状态并且内部计数器为0的标签,那么阅读器发“SUCCESS'’命令使标签计数器全减1,重复前面加随机数的步骤。这是种基于概率的防冲突机制。
2 逻辑部分设计与低面积方案
2.1 逻辑部分设计
阅读器与标签以帧为单位进行数据传输,设计的时候则以标签一帧的接收处理直至返回帧结束为一次完整命令。一次完整命令从上电复位或者上一命令结束开始,按照帧的格式,进入400μs帧头探测段,然后从帧头的第一个0中采样取得半bit信息,用于以后的编解码。等确认过帧头和分割符,则进入Manchester解码和相关数据处理的阶段,此为接收帧信号的主要阶段。解码结束如果CRC正确,就可以开始对命令进行相应处理。先进行命令相关的状态处理,同时返回帧的静默。约200μs后,发送返回帧头,进入命令相关的读写数据处理,编码返回值,并加上CRC的结果,最后复位,等待下一命令的到来。图3为按照命令执行步骤而设计的电路结构框图。以下详细说明各个部分。
上电复位Rst:Rst是刚上电时的异步复位,标签的各种状态初始化,标签一次上电只工作一次。
命令结束复位Nrst:Nrst为工作中的同步复位。当标签命令接收上有错误(如解码错、CRC错等,指错误命令),或者处理完一次正确命令,都对其中的一些寄存器清零,等待下一次命令到来。
帧头探测:帧头探测段探测400μs稳定的未经调制的载波信号。探测时进行信号输入Din为1的记数,预设1 M工作频率下400μs。当Din为0时则清零重新开始记数,得到稳定的400 μs。这也可以去除解码错误导致的复位之后还有可能存在Din的剩余部分数据,以避免当成下一次帧头。
半bit采样:采样为帧头9个01的第一个0的一段,记录其点数到5位的C_halfbit,用于以后的编解码。由于模拟部分进来的时钟会有偏差,设计时并不将半bit理论上12.5个采样点定死。5位C halfbit值从0到31,解码时要求C_halfbit加6不能溢出,所以最多25,是12.5的2倍,即工作频率上限2 MHz。另外解码时要求C_halfbit加5不能大于一个bit的点数,C halfbit至少有6,约12.5的一半,即工作频率下限为0.5 MHz。
确认帧头和分割符:帧头和分割符是固定值,根据C_halfbit点数设定电平变换范围和次数。如果出错,进入Nrst,复位重新开始下一命令。Manchester解码:曼彻斯特码以0到1二位表示传输值零(图4中11~13),以1到0二位表示传输值1(图4中13~15),其特点是一位码中间(如12和14处)必有0与1的跳变。解码时从跳变处开始计数,在C_halfbit值加5与2倍的C_halfbit加6之间,若是出现Din与上一个时钟的Din不同,则说明有变号,也就是说解码成功,码值为上一个Din的值。如图4中13~14那一段,为1解出传输值1然后重新开始记数解下一码。若是记数超出上面的范围,那么认为解码错误,进入Nrst。至于第1位码,它前面是分割符,从分割符“1100111010'’的最后一个0起始处开始解曼彻斯特码即可。解码的同时判断Cmd、Add1(解码时用)、Add2(编码时用)、Byt等,并将相应内容存下来,在需要与EEPROM比较时进行实时比较。全部解码值随解码的过程都送入CRC,到设定的判定条件进行判断,正确的话继续进行下一步,错误则进Nrst。
没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。 更多评论
|
|
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。 |
|
|