一种网络化 RFID 读写器及其防冲突方法 【技术领域】
本发明涉及无线射频识别技术领域和局域网技术领域, 尤其是涉及一种网络化 RFID( 射频识别 ) 读写器及其防冲突方法。背景技术
无线射频识别系统是由读写器和标签通过无线通信方式构成的一种通信系统, 有 极其广泛的应用前景。工作在超高频段的第二代无线射频识别技术由于其标签体积小、 识 别距离可达 1m 以上、 信息传输速率快而将全面取代其第一代产品。然而, 由于无线电波在 实际环境中传播过程的复杂性、 电子标签电能供应受限 ( 如无源标签 )、 冲突等原因, 使得 第二代无线射频识别系统的产品的标签识别率、 识别速度等指标尚不够理想, 限制了无线 射频识别技术的大面积推广使用。国内外已有的研究成果表明, 采用单一天线模块的读写 器所构成的无线射频识别系统, 面临如下两个主要问题 :
一、 在不能调整读写器天线的方位角或标签 ( 天线 ) 朝向的情况下, 即使距离较 近, 也总会存在少量特定朝向的标签不能被识别的情况, 也就是说, 若不能调整读写器或标 签的天线朝向, 识别率无法达到 100%, 换句话说, 若读写器只用一个天线模块, 即使采用相 对静止或简单移动物品标签的朝向的方法, 也存在少量正常标签不能被正确识别的可能。
二、 受信息传输速率限制和不同标签同时应答读写器时会导致冲突的影响, 读写 器识别标签的速率不够高, 满足不了一些需要快速识别场合的需要。虽然采用多个读写器 系统同时工作, 可以进一步提高识别速率, 但增加设备所需的经济成本较大。 发明内容
为了克服现有技术存在的上述缺陷, 本发明提供一种标签识别率可达 100%, 识别 速率高, 实现成本较低的网络化 RFID 读写器及其防冲突方法。
本发明的技术方案是 :
本发明之网络化 RFID 读写器包括一个中心模块和至少 1 个天线模块, 中心模块与 各天线模块通过局域网相连。
中心模块以广播方式向所有天线模块发送信息, 以轮询方式接收各天线模块上传 的标签识别信息, 中心模块负责控制与管理全部天线模块的标签识别过程、 收集各天线模 块识别的标签信息 ; 每个天线模块接受中心模块的指令并通过无线接口识别其作用范围内 的部分或全部电子标签并将识别标签的信息报告给中心模块。
处于相邻近空间的天线模块使用互不相同的无线电波工作频段, 而在空间上距离 较远、 具有几乎不重叠的作用范围的天线模块可以使用相同的工作频段。不同天线模块可 以同时与各自作用范围内的标签通信以获取标签的信息。
中心模块是一个集数据运算与处理, 能与多个天线模块双向通信的开放式数字系 统, 中心模块可连接到后台计算机网络, 实现与后台计算机的通信。 中心模块本身可以是一 台配备适当接口的普通台式计算机, 或以高档 DSP 系统、 高档 ARM 核为基础的嵌入式系统,具有相应的操作系统和标准的局域网络通信协议及 RFID 系统应用程序和天线模块访问应 用程序接口。
网络化 RFID 读写器中心模块的硬件结构包括中央处理器, 中央处理器与局域网 接口 I 双向连接, 中央处理器与存储器 I 双向连接, 中央处理器与通用串行总线接口双向连 接, 中央处理器与其它高速数据接口双向连接。
所 述 其 它 高 速 数 据 接 口 主 要 包 括 PCI( 外 设 组 件 互 联 ) 接 口 及 其 升 级 版 本 PCI-Express 和 SCSI( 小 型 计 算 机 系 统 接 口 ) 新 一 代 接 口 SCSI-3Ultra160、 SCSI-3Ultra320 等。
中央处理器是中心模块的运算和控制中心, 能够执行程序, 对存储器 I、 局域网接 口 I、 通用串行总线接口进行访问和控制 ; 局域网接口 I 用于与天线模块通信, 即向天线模 块发送指令及附加信息或接收天线模块上报给中心模块的信息 ; 存储器 I 用于存放程序或 支持程序运行所需的数据和运行结果 ; 通用串行总线接口供中心模块与后台计算机进行高 速通信, 即接受后台计算机的指令等信息或向后台计算机提供所识别的标签信息 ; 其它高 速数据接口是备用的、 采用其他技术标准的数据接口, 如 100M 局域网接口, 用于取代通用 串行总线接口实现中心模块和后台计算机间的高速双向数据传输。 天线模块硬件包括基带处理系统, 基带处理系统包括运算器、 控制器及无线电频 道控制字, 基带处理系统与局域网接口 II 双向连接, 基带处理系统与存储器 II 双向连接, 基带处理系统与数 / 模变换单元相连, 数 / 模变换单元与变频部件相连, 变频部件与模 / 数 变换单元相连, 模 / 数变换单元与基带处理系统相连, 变频部件与射频前端双向连接, 射频 前端与收发天线双向连接。
由运算器、 控制器及无线电频道控制字组成的基带处理系统是天线模块的控制与 运算中心, 具有普通单片机级别以上的运算功能, 并负责对局域网接口 II、 存储器 II、 模/ 数变换单元、 数 / 模变换单元、 变频部件的控制。局域网接口 II 用于天线模块和中心模块 间的通信, 即供天线模块接受中心模块的指令信息或向中心模块上报本模块的标签识别信 息; 存储器 II 用于存储天线模块的工作程序及支持程序运行所需的数据和执行结果 ; 数/ 模变换单元用于将数字基带信号变换为相应的模拟信号 ; 模 / 数变换单元用于将模拟信号 转换为数字信号, 供基带处理系统处理 ; 变频部件的功能包括调制与解调、 中频信号与射频 信号的频率转换, 该频率转换的变频间隔可由基带处理系统中设定的无线电频道控制字确 定, 即通过更改该控制字可以修改变频前后的频率差 ; 射频前端负责对接收到的或待发送 的高频信号进行滤波、 低噪声放大 ; 收发天线实现电子信号与电磁波的相互转换, 使天线模 块能通过无线电波与标签进行通信。 无线电频道控制字在网络化读写器初始化时由中心模 块按频率规划方案写入, 在以后调整频率规划时可以对其进行修改。
基带处理系统可采用较低档 DSP 或新型功能较强的单片机作为核心部件, 或者基 带处理系统是以普通档次 ARM 核为基础的嵌入式系统, 基带处理系统装有标准的局域网通 信协议和应用程序。
中心模块对各天线模块的轮询周期是指中心模块按约定顺序对每个天线模块完 成一轮询问、 使有信息帧就绪的天线模块在被询问时可以立即通过局域网总线向中心模块 发送其信息帧所经历的总时间。
天线模块向中心模块发送的信息按帧组织 ; 一帧对应一个天线模块按中心模块的
指示对其作用范围内的某一组标签进行一次或较少的有限次数试图识别的过程, 当中心模 块询问到一个天线模块时, 若该模块的识别尝试尚未完成因而暂时不能构造信息帧, 则该 天线模块无需发送信息, 若其识别尝试过程已完成, 则天线模块将该过程识别的标签信息 及碰撞细节信息组织成一帧信息发送给中心模块。
本发明之网络化 RFID 读写器的防冲突方法概括为 : 中心模块根据各天线模块发 送的最近一帧信息中所包含的识别标签情况, 估算出每一天线模块作用范围内的剩余待识 别标签数或剩余待识别标签集合的标识码特征, 并进行子集划分, 将相应的待识别标签数 或标签标识码的子集特征码作为帧控制参数发给对应天线模块。 天线模块根据中心模块设 定的帧控制参数对选定标签子集执行识别过程, 随后将执行结果组织成帧的格式, 待轮询 机会到来时发送给中心模块。中心模块根据各天线模块发送的信息帧, 重复上述分析与决 策过程, 发送新的帧控制信息, 天线模块执行指定范围的标签子集识别过程。如此循环, 直 到各天线模块作用范围内标签识别完毕为止。
本发明之网络化 RFID 读写器的防冲突方法可采用基于时隙 Aloha 算法的防冲突 方法或基于树型分叉算法的防冲突方法。
采用基于不同算法的防冲突方法, 天线模块向中心模块发送的信息帧结构不同。
目前, 局域网技术已很成熟, 采用局域网实现近距离的数据设备之间的通信是一 种成本低廉的方案, 本发明提出一种由一个中心模块和多个天线模块协同工作、 各模块间 通过局域网进行信息传输的 RFID 系统读写器, 可以解决现有技术面临的上述两个问题。其 主要基础是 : (1) 通过距离足够近的、 朝向相互正交的最多三组天线模块, 可以识别其共同 作用范围内的全部标签 ; (2) 空间邻近的不同天线模块采用不同的信道, 可以避免互相干 扰, 使各模块识别电子标签的过程同时进行, 从而大大提高系统识别标签的速率。
使用本发明, 能以较低成本实现近距离数据设备间快速通信, 识别率可达 100%, 识别速率高, 实现成本较低。 附图说明
图 1 是本发明所示实施例读写器结构示意图 ; 图 2 是网络化 RFID 读写器中心模块的硬件结构示意图 ; 图 3 是网络化 RFID 读写器天线模块的硬件结构示意图 ; 图 4 是为图 1 所示实施例天线模块信息帧轮询周期图 ; 图 5 是采用时隙 Aloha 算法时天线模块向中心模块发送的信息帧结构示意图 ; 图 6 是采用树型分叉算法时天线模块向中心模块发送的信息帧结构示意图 ; 图 7 是采用时隙 Aloha 算法时中心模块的防冲突处理流程图 ; 图 8 是采用时隙 Aloha 算法时天线模块的防冲突处理流程图 ; 图 9 是采用树型分叉算法时中心模块的防冲突处理流程图 ; 图 10 是采用树型分叉算法时天线模块的防冲突处理流程图。具体实施方式
以下结合附图和实施例对本发明作进一步说明。
实施例 1 :本发明之网络化 RFID 读写器实施例包括一个中心模块 1 和 N 个 (N ≥ 1) 天线模 块, N 个天线模块分别为第一天线模块 2-1、 第二天线模块 2-2、 第三天线模块 2-3、…第 N 天线模块 2-N, 中心模块 1 与各天线模块通过局域网 3 相连。
中心模块 1 以广播方式向所有天线模块发送信息, 以轮询方式接收各天线模块上 传的标签识别信息, 即就是由中心模块 1 依确定秩序轮流询问各天线模块, 是否有已组织 好的标签信息要传送, 有则接收相应天线模块的信息, 否则跳过该模块、 继续询问下一天线 模块。各天线模块仅在其被轮询的时间片内, 才可以向中心模块 1 提供其识别标签情况的 有关信息, 天线模块之间不能直接通信。中心模块 1 负责控制与管理全部天线模块的标签 识别过程、 收集各天线模块识别的标签信息。每个天线模块接受中心模块 1 的指令并通过 无线接口识别其作用范围内的部分或全部电子标签并将识别标签的信息报告给中心模块 1。
所采用的局域网技术, 是实时性较强的现场总线系统如控制域总线 CAN 或从应用 层加强实时性的 100Mbps 以上速率的工业以太网。
处于相邻近空间的天线模块使用互不相同的无线电波工作频段, 而在空间上距离 较远、 具有几乎不重叠的作用范围的天线模块可以使用相同的工作频段。不同天线模块可 以同时与各自作用范围内的标签通信以获取标签的信息。 中心模块 1 是一个集数据运算与处理, 能与多个天线模块双向通信的开放式数字 系统, 中心模块 1 可连接到后台计算机网络, 实现与后台计算机的通信。中心模块 1 本身可 以是一台配备适当接口的普通台式计算机, 或以高档 DSP 系统、 高档 ARM 核为基础的嵌入式 系统, 具有相应的操作系统和标准的局域网络通信协议及 RFID 系统应用程序和天线模块 访问应用程序接口。
参照图 2, 网络化 RFID 读写器中心模块 1 的硬件结构包括中央处理器 1-1, 中央处 理器 1-1 与局域网接口 I1-2 双向连接, 中央处理器 1-1 与存储器 I1-3 双向连接, 中央处理 器 1-1 与通用串行总线接口 1-4 双向连接, 中央处理器 1-1 与其它高速数据接口 1-5 双向 连接。
所 述 其 它 高 速 数 据 接 口 主 要 包 括 PCI( 外 设 组 件 互 联 ) 接 口 及 其 升 级 版 本 PCI-Express 和 SCSI( 小 型 计 算 机 系 统 接 口 ) 新 一 代 接 口 SCSI-3Ultra160、 SCSI-3Ultra320 等。
中央处理器 1-1 是中心模块的运算和控制中心, 能够执行程序, 对存储器 I1-3、 局 域网接口 I1-2、 通用串行总线接口 1-4 进行访问和控制 ; 局域网接口 I1-2 用于与天线模块 通信, 即向天线模块发送指令及附加信息或接收天线模块上报给中心模块的信息 ; 存储器 I1-3 用于存放程序或支持程序运行所需的数据和运行结果 ; 通用串行总线接口 1-4 供中 心模块 1 与后台计算机进行高速通信, 即接受后台计算机的指令等信息或向后台计算机提 供所识别的标签信息 ; 其它高速数据接口 1-5 是备用的、 采用其他技术标准的数据接口, 如 100M 局域网接口, 用于取代通用串行总线接口实现中心模块 1 和后台计算机间的高速双向 数据传输。
参照图 3, 天线模块硬件包括基带处理系统 10-1, 基带处理系统 10-1 包括运算器 10-11、 控制器 10-12 及无线电频道控制字 10-13, 基带处理系统 10-1 与局域网接口 II10-2 双向连接, 基带处理系统 10-1 与存储器 II10-3 双向连接, 基带处理系统 10-1 与数 / 模变
换单元 10-4 相连, 数 / 模变换单元 10-4 与变频部件 10-5 相连, 变频部件 10-5 与模 / 数变 换单元 10-6 相连, 模 / 数变换单元 10-6 与基带处理系统 10-1 相连, 变频部件 10-5 与射频 前端 10-7 双向连接, 射频前端 10-7 与收发天线 10-8 双向连接。
由运算器 10-11、 控制器 10-12 及无线电频道控制字 10-13 组成的基带处理系统 10-1 是天线模块的控制与运算中心, 具有普通单片机级别以上的运算功能, 并负责对局域 网接口 II10-2、 存储器 II10-3、 模 / 数变换单元 10-6、 数 / 模变换单元 10-4、 变频部件 10-5 的控制。局域网接口 II10-2 用于天线模块和中心模块 1 间的通信, 即供天线模块接受中心 模块 1 的指令信息或向中心模块 1 上报本模块的标签识别信息 ; 存储器 II10-3 用于存储天 线模块的工作程序及支持程序运行所需的数据和执行结果 ; 数 / 模变换单元 10-4 用于将 数字基带信号变换为相应的模拟信号 ; 模 / 数变换单元 10-6 用于将模拟信号转换为数字信 号, 供基带处理系统 10-1 处理 ; 变频部件 10-5 的功能包括调制与解调、 中频信号与射频信 号的频率转换, 该频率转换的变频间隔可由基带处理系统 10-1 中设定的无线电频道控制 字 10-13 确定, 即通过更改该控制字可以修改变频前后的频率差 ; 射频前端 10-7 负责对接 收到的或待发送的高频信号进行滤波、 低噪声放大 ; 收发天线实现电子信号与电磁波的相 互转换, 使天线模块能通过无线电波与标签进行通信。无线电频道控制字 10-13 在网络化 读写器初始化时由中心模块 1 按频率规划方案写入, 在以后调整频率规划时可以对其进行 修改。 无线电频道控制字 10-13 的值经数 / 模变换单元 10-4 转换成相应模拟电平, 使变 频部件 10-5 产生相应频段的载波。中心模块 1 会保存各天线模块的频道控制字。设定各 天线模块工作频段的原则是尽量减少邻近天线模块间的同频干扰和邻频干扰, 由于无线电 频谱的紧缺性, 当系统中天线模块数量超过一定数量时, 需要进行频率重用, 即容许空间上 有足够距离的不同天线模块使用同一工作频段。
基带处理系统可采用较低档 DSP 或新型功能较强的单片机作为核心部件, 或者基 带处理系统是以普通档次 ARM 核为基础的嵌入式系统, 基带处理系统装有标准的局域网通 信协议和应用程序。
参照图 4, 中心模块 1 对各天线模块的轮询周期是指中心模块 1 按约定顺序对每个 天线模块完成一轮询问、 使有信息帧就绪的天线模块在被询问时可以立即通过局域网总线 向中心模块发送其信息帧所经历的总时间。图 4 中符号 N 表示天线模块总数, M 表示某轮 轮询轮次或序号, Fij 表示第 i 轮轮询中第 j 个天线模块向中心模块发送的信息帧, 帧所含 信息的结构与系统采用的防冲突算法的类型有关。
天线模块向中心模块发送的信息按帧组织。 一帧对应一个天线模块按中心模块的 指示对其作用范围内的某一组标签进行一次或较少的有限次数试图识别的过程, 当中心模 块询问到一个天线模块时, 若该模块的识别尝试尚未完成因而暂时不能构造信息帧, 则该 天线模块无需发送信息, 若其识别尝试过程已完成, 则天线模块将该过程识别的标签信息 及碰撞细节信息组织成一帧信息发送给中心模块。
天线模块以预定顺序 ( 在系统初始化时设定, 需要时可重新调整 ) 对各天线模块 进行轮询。由于每一天线模块在一个特定的时间内识别的标签情况呈现随机性, 在其被轮 询时可能有信息要传输, 也可能暂未准备好信息无需传输, 因此, 一个特定的轮询周期内, 有信息要传输的天线模块集合及他们要传输的信息长度都呈现随机性。 每个天线模块要传
输的信息按帧组织, 各天线模块的信息帧长度是随机可变的。各天线模块根据标签识别情 况构造信息帧, 中心模块读取信息帧并为各天线模块发出恰当的后续任务的指令。
本实施例中, 网络化 RFID 读写器的防冲突方法采用基于时隙 Aloha 算法的防冲突 方法。
参照图 5, 采用基于时隙 Aloha 算法的防冲突方法时, 天线模块向中心模块发送的 信息帧结构包括天线模块号、 目的地址 / 中心模块、 帧长 / 时隙数、 空闲时隙数、 碰撞时隙 数、 标签标志 1、…标签标志 m、 帧结束标志。
在 Aloha 类防冲突机制下, 天线模块需要设定一个帧长 ( 一帧所含时系数 ), 向其 作用范围内的待响应标签告知此值, 令它们随机选定一个不超过帧长的时隙进行响应。天 线模块则记录一帧内各标签的响应情况, 将每个时隙分成三类 : 空闲、 碰撞、 仅一个标签应 答, 对于仅一个标签响应的时隙, 在该时隙内还需进一步确定标签的标识。 天线模块号字段 用于区分帧的发送者, 中心模块号用于区分接收节点, 由于它的唯一性, 该字段可以缺省。 帧长 / 时隙数字段表明该天线模块现采用的帧长, 由于帧长对时隙 Aloha 算法的识别效率 有重要影响, 随着标签的识别过程的推进, 需要对待识别标签数作较准确的估计, 并依据此 标签数估计值设定新的帧长, 因此, 各天线模块的帧长值需要动态调整。 尽管各天线模块在 初始化时, 可设定相同帧长, 但在识别过程中, 一般都要根据各天线模块的情况随机进行调 整, 故在同一时刻观察, 各天线模块的帧长通常是互不相同的。 中心模块 1 的处理速度和网络传输速率必须足够快。例如, 一个含 100 个天线模 块的网络化读写器, 按 UHF 频段 ISO18000-6C 标准, 每个天线模块其空中接口信息速率可达 640kbps, 要保证每一天线模块的信息帧及时传达到中心模块, 中心模块与天线模块间网络 的信息速率容量不能低于 64Mbps。同时, 为了保证各天线模块在上报信息帧后能及时得到 中心模块的指令, 需要中心模块以尽快的速度, 对上报信息帧进行处理并作出决策、 给出新 的指令。如果采用处理速度为 600MIPS 的 DSP 或 Pentium 系列处理器, 则在任一天线模块 与其标签间通过空中接口传输 1 比特信息的时间内, 处理器大约可执行 1000 条指令, 基本 上足以处理一帧信息并及时作出决策及发出新的指令。
若将由中心模块所发起的轮询周期缩短至一个时隙 ( 空中接口部分的时间度量 单位 ), 则可最大限度地减少各天线模块的等待时间, 提高各天线模块的时间利用率。
参照图 7, 采用基于时隙 Aloha 算法的防冲突方法时, 中心模块的防冲突处理流程 步骤如下 :
执行步骤 501, 初始化, 为各天线模块设定相同的初始帧长, 确定天线模块数 T ; 执 行完步骤 501 后, 执行步骤 502, 将各天线模块的帧长广播到各天线模块 ; 再执行步骤 503, 指示各天线模块按指定帧长识别标签, 用循环变量 I 表示某个待询问的天线模块编号, 开 始时令 I = 1, 准备轮询 ; 执行完步骤 503 后, 执行步骤 504, 询问第 I 个天线模块信息帧是 否就绪, 若是, 则执行步骤 505, 接收该天线模块的信息帧, 根据处理帧内包含的已识别标签 信息, 估计该天线模块作用范围内剩余待识别标签数, 并将其设定为该天线模块新的帧长, 执行完步骤 505 后, 执行步骤 506, 将 I+1 后重新赋值给 I ; 若第 I 个天线模块信息帧未准 备就绪, 则直接执行步骤 506, 将 I+1 后重新赋值给 I ; 给 I 重新赋值后, 执行步骤 507, 询问 I 是否大于系统中天线模块的总数 T, 若否, 则返回到步骤 504, 若是, 则执行步骤 508, 判断 是否所有天线模块待识别标签数都为 0, 若所有天线模块待识别标签数都为 0, 则执行步骤
509, 结束, 所有标签识别完毕, 若并不是所有天线模块待识别标签数都为 0, 则返回到 502。
步骤 505 中, 对任一天线模块, 根据现帧长 L 和一帧内识别标签情况 ( 空闲时隙 数 n0, 仅一个标签响应的时隙数 n1, 碰撞时隙数 nc) 来估计待识别标签数的方法是 : 根据现 帧长 L、 空闲时隙数 n0 可得出该帧内对天线模块作出相应的标签数的一个估计值 m0 ; 同时, 根据现帧长 L、 碰撞时隙数 nc 可得出该帧内对天线模块作出相应的标签数的另一个估计值 m2。取 m0 和 m2 的几何平均 m′作为该帧内对天线模块作出相应的标签数的一个较好估计。 m′ -n1 就是剩余待识别标签数的一个估计, 可将它设为该天线模块下一帧的帧长。 欲求 m0、 m2, 可根据时隙 Aloha 协议的特点通过解下列方程获得 :
m′则容易根据下式获得 :具体实施时, 为了最大限度地减少中心模块反复求解方程 (1)、 (2) 及根据 (3) 式 计算 m′的时间, 由于 n0、 nc、 L 均为整数且只能在有限范围内取值, 可以先将各种可能出现 的 (n0, nc, L) 组合下的 m′值都算出来并存储在一个表中, 这样, 中心模块在收到天线模块 发来的帧信息后, 可通过查表快速得到一帧中对该天线模块作出相应的标签数 m′, 进而估 计出该天线模块内剩余待识别标签数为 m′ -n1。按时隙 Aloha 协议的特点, 新的帧长可以 取为 m′ -n1。当估算出的剩余标签数为 0 或负数时, 需要将估计的剩余标签数稍加修改, 方法是 : 如果该帧中无碰撞发生, 可以确认剩余待识别标签数为 0, 否则, 将剩余待识别标 签数修改为一个很小的数, 如 2。 中心模块再根据此天线模块内剩余待识别标签数指定下一 帧所用帧长。
参照图 8, 采用基于时隙 Aloha 算法的防冲突方法时, 天线模块的防冲突处理流程 步骤如下 :
执行步骤 601, 接受中心模块指定的帧长 LF 及识别标签的指令, 将该帧长广播给 其作用范围内待识别的标签, 使每一待识别的标签随机选择一个序号介于 1 ~ LF 的时隙对 天线模块予以应答, 并为各类时隙的计数器赋初值 n0 ← 0, n1 ← 0, nc ← 0, Ts ← 1(n0 为空 闲时隙数, n1 为仅一个标签响应的时隙数, nc 为碰撞时隙数, Ts 为当前时隙号 ) ; 执行完步
骤 601 后, 执行步骤 602, 判断时隙 Ts 是否空闲, 若空闲, 则执行步骤 603, 将空闲时隙计数 值增 1, 即 n0 ← n0+1, 执行完步骤 603 后, 执行步骤 607, 检查当前时隙序号 Ts 是否等于帧 长 LF ; 若步骤 602 中, 时隙 Ts 不空闲, 则执行步骤 604, 判断时隙 Ts 内是否仅一个标签响 应, 若是, 则执行步骤 605, 获取该标签标识并保存, 使之随后保持静默, 并将仅一个标签响 应 ( 可正常识别 ) 的时隙计数值增 1, 即 n1 ← n1+1, 执行完步骤 605 后, 也执行步骤 607, 检 查当前时隙序号 Ts 是否等于帧长 LF ; 若步骤 604 中, 时隙 Ts 内不是仅一个标签响应, 则执 行步骤 606, 将碰撞时隙计数值增 1, 即 nc ← nc+1 ; 执行完步骤 606 后, 也执行步骤 607, 检查 当前时隙序号 Ts 是否等于帧长 LF, 若否, 则执行步骤 609, 将 Ts 增 1, 即 Ts ← Ts+1, 执行完 步骤 609 后, 返回步骤 602, 步骤 607 中, 若当前时隙序号 Ts 等于帧长 LF, 则执行步骤 608,用 LF, n0, n1, nc 及本帧所识别标签的标识构造帧信息, 然后将信息帧就绪标志置位, 执行完 步骤 608 后, 返回步骤 610, 等待轮询时机, 再执行步骤 611, 判断发送时机是否已到, 即判断 该天线模块是否收到中心模块轮询信号并要求其发送信息帧, 若是, 则执行步骤 612, 向中 心模块发送所构造的当前帧信息, 若否, 则返回步骤 610。 一帧完毕, 等待中心模块新一轮识 别一帧的指示。
基于时隙 Aloha 算法的防冲突方法易于实现, 但效率相对较低。
实施例 2 :
本实施例与实施例 1 的区别在于, 网络化 RFID 读写器的防冲突方法采用效率较 高, 但复杂性也高的基于树型分叉算法的防冲突方法。
参照图 6, 采用基于树型分叉算法的防冲突方法时, 天线模块向中心模块发送的信 息帧结构包括天线模块号、 目的地址 / 中心模块、 子集特征码、 冲突标志、 识别标签数、 标签 标志 1/ 冲突位置指示、…标签标志 n、 帧结束标志。
在树型分叉类防冲突机制下, 天线模块发送的信息帧是对其试图识别中心模块指 定的标签子集的执行结果的汇报。试图识别指定标签子集的结果分三种可能 : 一种是, 标 签子集为空, 既无碰撞, 也无识别的标签, 此时, 碰撞标志为假 ( 复位 ), 识别标签数为 0 ; 另 一种是, 发生了碰撞, 且发生碰撞的标签标识位数超过了设定门限, 天线模块因存储短缺, 不宜进一步作冲突分解, 此时需将冲突标志置为真 ( 置位 ), 识别标签数为 0( 为其它值无 意义 ), 并将各冲突位置记录下来, 与其它无碰撞位 ( 该子集内所有标签标识的这些位都是 对应一致的 ) 构造一个与标签标识等长度的冲突位置指示, 以便中心模块在收到天线模块 的帧后作进一步的冲突分解 ; 最后一种是, 发生了碰撞, 但标签标识的冲突位数在设定的门 限以下 ( 含等于 ) 或者子集内仅 1 个标签, 此时, 天线模块可以直接识别出或经过少量次 数的冲突分解就可识别出指定子集内的全部标签, 统计出识别的标签数并记录各标签的标 识, 将冲突标志复位, 将识别出的标签数及各标签的标识填入即将上报的信息帧的相应字 段中。
参照图 9, 采用基于树型分叉算法的防冲突方法时, 中心模块的防冲突处理流程步 骤如下 :
执行步骤 701, 初始化 : 确定天线模块数 T, 确定各天线模块能直接分解的冲突集 的冲突位数 Mc( 采用 2 进制, 如 Mc 取为 2, 则该冲突集最多含 4 个标签 ), 设定各天线模块 初次识别标签集为其作用范围内的全部标签, 为每一天线模块开辟一块相应的堆栈空间, 用于记录各模块冲突分解过程, 将标签全集码压入各天线模块堆栈 ; 执行步骤 702, 判断各 天线模块的堆栈是否都为空, 若是, 则执行步骤 703, 全部标签识别完毕, 程序结束, 若否, 则 执行步骤 704, 从各非空堆栈栈顶弹出相应天线模块待识别子集码, 并通知到各天线模块 ; 执行完步骤 704 后, 执行步骤 705, 指示各天线模块识别指定子集内的标签, 令 I = 1, 准备 轮询 ; 执行完步骤 705 后, 执行步骤 706, 询问第 I 个天线模块, 是否有信息帧就绪, 若否, 执 行步骤 712, 使 I 的值增 1, 即 I ← I+1, 若是, 则执行步骤 707, 接收信息帧, 根据帧中所含冲 突标志作后续处理 ; 执行完步骤 707 后, 执行步骤 708, 判断是否存在冲突, 若存在冲突, 则 执行步骤 709, 根据接收帧所含冲突位置取 ( 二进制 ) 位权最高冲突位将现子集划分为两 个子集, 该位为 1 的子集码先入栈, 为 0 的另一子集码后入栈, 执行完步骤 709 后, 执行步骤 712, 使 I 的值增 1, 即 I ← I+1, 步骤 708 中, 若不存在冲突, 则执行步骤 710, 判断帧信息中所含子集是否为非空, 若为非空, 则执行步骤 711, 读取标签数字段值并记录该模块在该帧 中识别的各标签的标识, 执行完步骤 711 后, 执行步骤 712, 使 I 的值增 1, 即 I ← I+1, 步骤 710 中, 若帧信息中所含子集为空, 则直接执行步骤 712, 使 I 的值增 1, 即 I ← I+1 ; 执行完 步骤 712 后, 执行步骤 713, 判断 I 是否大于 T, 若大于, 则返回步骤 702, 若不大于, 则返步骤 706。
参照图 10, 采用基于树型分叉算法的防冲突方法时, 天线模块的防冲突处理流程 步骤如下 :
执行步骤 801, 接受中心模块指定的子集标识及识别标签的指令, 选择其作用范围 内的指定标签子集, 发出识别指令使选定标签响应天线模块的指令 ; 执行完步骤 801 后, 执 行步骤 802, 判断是否无标签响应, 若无标签响应, 则执行步骤 803, 判定子集内标签数 n 为 0, 冲突标志 F 为 0, 执行完步骤 803 后, 执行步骤 809, 用子集标识码, n, F 及所识别标签的 标识或冲突位置等构造帧信息, 信息帧就绪标志置位 ; 步骤 802 中, 若有标签响应, 则执行 步骤 804, 判断是否仅一个标签响应, 若是仅一个标签响应, 可正确识别, 则执行步骤 805, 获取该标签标识并保存, 使之随后保持静默, 判定子集内标签数 n 为 1, 冲突标志 F 为 0, 执 行完步骤 805 后, 执行步骤 809, 用子集标识码, n, F 及所识别标签的标识或冲突位置等构 造帧信息, 信息帧就绪标志置位 ; 若步骤 804 判定结果为否, 则执行步骤 806, 判断标签标识 冲突位数是否不大于设定门限 Mc, 若是, 执行步骤 807, 执行树分叉冲突分解算法, 识别子 集内的全部标签, 使之随后保持静默, 记录子集内标签数 n 和各标签标识, 冲突标志 F 置 0, 执行完步骤 807 后, 执行步骤 809, 用子集标识码, n, F 及所识别标签的标识或冲突位置等 构造帧信息, 信息帧就绪标志置位 ; 步骤 806 中, 若标签标识冲突位数大于设定门限 Mc, 则 执行步骤 808, 需要告知中心模块将冲突集划分成两个以上更小子集, 设定识别标签数 n 为 0, 冲突标志 F 为 1, 记录所有标识冲突位置, 执行完步骤 808 后, 执行步骤 809, 用子集标识 码, n, F 及所识别标签的标识或冲突位置等构造帧信息, 信息帧就绪标志置位, 执行完步骤 809 后, 执行步骤 810, 等待轮询时机, 再执行步骤 811, 判断发送时机是否已到, 中心模块询 问该模块是否有信息帧就绪, 若发送时机已到, 则执行步骤 812, 向中心模块发送当前帧信 息, 若发送时机未到, 则返回步骤 810。
其余同实施例 1。