首 页    行业动态   标准公告   工作平台   组织机构   标准计划   信息查询   专题栏目   文章精选   标准书市   相关产品   会议直播
    标准编号: 标准名称:
购买标准资料
咨询服务

您的位置: 首页 -> 文章精选 -> 正文

ISO18000-6B标准中防碰撞算法的改进(1)
作者:严冰之     来源:RFID中国网     日期:2007/10/26 9:53:13
 

    摘要:本文详细分析了ISO18000-6B标准的防碰撞算法及实际阅读器设计中带来的问题,阐述了改进办法及思路,最后给出了利用该算法的阅读器的软件实现流程。

    一、前言

    早期的系统中,1次只能读/写1个射频卡。射频卡之间要保持一定距离,确保一次只有一个卡在读写区域内。很多时候不可避免地会出现多个射频卡进入识别区域时信号互相干扰的情况(即碰撞),应用起来很不方便。但这种应用很难满足越来越多的系统需求。

    由于射频卡含有可被识别的唯一信息(序列号),RFID系统的目的就是要读出这些信息。如果只有一个射频卡位于阅读器的可读范围内,则无需其他的命令形式即可直接进行阅读。如果有多个射频卡同时位于一个阅读器的可读范围内,则射频卡的应答信号就会相互干扰形成所谓的数据碰撞,从而造成阅读器和射频卡之间的通信失败。为了防止这些碰撞的产生,RFID系统中需要设置一定的相关命令,解决冲突问题,这些命令被称为“防碰撞命令或算法(anticollision algorithms)”。

    二、ISO18000-6B中防碰撞算法

    防碰撞算法由卡片支持的状态机、命令、容错校验机制及命令处理流程综合协同完成。通过硬件或者软件来实现防碰撞算法流程。

    1.卡片的状态及状态切换

 

    (图1)

    Power-Off(掉电状态):当阅读仪器不能激活标签时,标签处于该状态。

    Ready(准备好状态):当阅读器上电,标签获得波束转化来的电能供内部芯片工作时处于该状态

    ID(碰撞状态):当标签试图发送自己的卡号给阅读器时处于该状态。

    DataExchange(数据交换状态):当该标签已经被阅读器识别到,并被选择后,处于该状态。

    2. 标准中支持的命令序列

    ISO18000-6B中规定的强制命令中,实现二进制搜索算法的命令有,

    Initialize:收到该命令的卡片,卡片将从ID、DataExchange状态回到Ready状态。

    Select:收到该命令的卡片,Ready状态将进入ID状态,ID状态保持ID状态,参与防碰撞命令Fail和Success.

    DataRead:接收该命令的卡片,将从其他状态直接进入DataExchange状态

    Fail:处于ID状态的卡片会接受该命令,卡片内部计数器如果不等于0则加1,否则应该其卡号给阅读器。

    Success:处于ID状态的卡片会接受该命令,卡片内部计数器减1,如果结果为0则返回其卡号给阅读器。

    3.      标准中卡片与阅读器间通讯校验机制

    卡片与阅读器间采用CRC-16容错校验机制,。

    4.  卡片防碰撞处理流程(参考ISO/IEC 18000-6:2004(E))

     反碰撞基本处理流程就是根据标签的状态及标签支持的命令序列进行处理的,将碰撞而找到的标签切换到数据交换状态,让该卡不再参与防碰撞过程的命令,从而实现将一大堆卡片一张一张找出的过程。

     反碰撞软件算法基本流程如下:    

     阅读器可以使用GROUP_SELECT 和 GROUP_UNSELECT命令来定义所有或者部分进入感应区的标签参与碰撞过程。可以使用相关命令来运行防碰撞算法。

     对于碰撞算法,标签在硬件上应该具有以下两个硬件:

     • 一个8位计数器

     • 一个产生0或1的随机发生器

     开始,一组标签通过GROUP_SELECT命令进入ID状态并设置其内部的计数器为0。可以使用GROUP_UNSELECT命令让一部分标签返回到READY 状态,其他的能够被选择.

     按上述描述选择后,可以循环执行下面的流程:

    1)  所有处于ID状态的标签,其计数器将为0,标签会应答其ID号给阅读器。

    2)  如果超过1个标签传送, 则阅读器就会收到错误的响应。就需要继续发送FAIL command 命令.

    3)  对于接收到FAIL命令的所有标签,如果其计数器不为0,则自动加1,他们将远离应答其ID号的状态。

    对于接收到FAIL命令的所有标签,如果其计数器为0,将产生一个随机数。如果随机数为1,则其计数器加1,否则保持计数器为0,并应答其ID号给阅读器

     可能会出现以下4种情况的一种:

    4)    超过1个标签应答,则执行FAIL命令,回到步骤2(情况1)

    5)  如果所有标签产生的随机数为1,则没有应答,阅读器什么也收不到.阅读器会发送SUCCESS命令. 所有计数器减1, 对于计数器为0的标签则应答其ID号. 一般情况会回到步骤2. (情况2)

    6)  如果只有一个标签应答其ID号,并且接收正确, 阅读器应该发送带ID号的DATA_READ 命令给相应标签. 标签收到DATA_READ 命令后切换到 DATA_EXCHANGE 状态并应答其数据 阅读器应该发送SUCCESS命令,所有ID状态的标签的计数器减1.

    7)  如果只有一个计数器为1的标签则应答其ID号,重复步骤5或者步骤 6. 如果超过一个标签应答则重复步骤2. (情况3)

    8)  如果仅仅只有一个标签应答但ID号接收错误,阅读器应该发送RESEND 命令。 如果ID号接收正确,重复步骤5. 如果ID号接收多次都不正确 (出错次数可以根据系统需要进行处理), 假定超过一个标签应答,重复步骤2 (情况4)


 
本站简介 - 联系方式 - 意见与建议 - 设置首页 - 网站地图

copyright ©2004 standardcn.com. All rights reserved
机械科学研究总院 中机生产力促进中心 维护。建议浏览分辨率: XGA(1024x768)  京ICP备05033993号-27