摘要:设计了一种基于射频集成电路的主动式超高频射频识别系统,并给出了系统的硬件组成、通信协议、系统各部分的软件流程以及多应答器防碰撞算法。此系统具有作用距离远、功耗低、读取率高、扩展性和灵活性强等优点,具有很强的工程实用价值。
射频识别(RFID)是一种利用射频信号进行识别的技术,它的基本原理是利用应答器直接发射或反射的电磁波来进行通信。根据系统应答器向读写器通信方式可以分为主动式和被动式两种。主动式射频就识别系统由于其通信距离远、可靠性强、通信速率高等优点适用于军事、物流、交通、物品实时跟踪定位等领域[1]。过去由于主动式射频识别系统的应答器体积和功耗较大、电池寿命有限等因素,严重限制了主动式RFID 系统的应用和普及;近年来射频和数字集成电路以及高容量小体积电池技术的快速发展,使主动式射频识别系统在很多应用领域进入实用化阶段。
1 系统的硬件组成与通信协议设计
基于RFIC 的主动式射频识别系统设计有利于实现系统的小型化,低功耗,可靠性和灵活性,本文采用Chipcon 公司的CC1100 作为无线数据传输模块,进行系统设计。
1.1系统组成和原理
1.1.1 应答器与读写器组成
系统由应答器和读写器两部分组成,如图1 所示,应答器部分由无线传输单元、控制单元和供电单元组成;读写器部分由无线传输单元、控制单元和数据传输单元组成。
图 1 系统组成原理图
读写器中数据传输单元由两块 CC1100 组成,其中一片工作于315MHz,用于发射单频点载波,形成激活场区,另一片工作于433MHz,用于与应答器进行半双工通信;控制单元采用TI 的超低功耗单片机MSP430,降低了系统功耗。控制单元用于配置CC1100 寄存器,处理CC1100 接收到的数据,并向外提供RS232/485 接口。应答器中数据传输单元为一片CC1100,用来与读写器进行无线通信;控制单元用于配置CC1100 寄存器,并对CC1100 的状态进行管理。
1.1.2 控制单元与无线传输单元接口
CC1100 与MSP430 采用SPI 接口连接,图1 中已经给出了它们之间的连接方式。SPI 总线接口技术是一种高速、高效率的串行接口技术,主要用于扩展外设和进行数据交换。MSP430控制CC1100 进行数据发射和接收数据的流程如图2 所示。
图 2 数据发送和数据接收流程
1.2系统通信协议
应答器与读写器的非接触数据交换构成一个无线数据通信系统,数据通过CC1100 在读写器和应答器之间无线传输,本文设计了以CC1100 作为射频接口的主动式RFID 系统的通信协议,可以将基本控制,通信等功能函数编程写入控制系统,通过调用函数功能模块以完成通信功能。
1.2.1 物理层协议
系统的通信协议的物理层与ISO/IEC 18000-7[3]标准兼容,载波频率为433.92MHz;调制方式为2FSK;调制深度为+/-60KHz;数据速率为38.4Kbps;唤醒频率为315MHz。
1.2.2 数据帧格式
读写器与应答器之间的通信数据以帧的方式打包,从而提高系统通信的可靠性。读写器与应答器之间通信帧包括前导码、同步头、数据长度、传输数据和CRC 校验几部分组成。其中前导码和同步头由CC1100 自动产生,用来进行接收和发射数据同步;数据长度为数据部分总的字节数;数据部分为要传输的有用信息,它可能包括读写器向应答器发送的命令或它们之间相互交换的数据,CRC 校验为符合CRC-CCITT 的2 字节校验位,同样由CC1100 硬件电路自动产生,并紧跟数据部分。
2 系统的工作流程与软件设计
系统软件分为三部分:主机软件、读写器控制程序和应答器程序,主机软件向上层提供API 接口,并通过RS232 接口与下层读写器进行数据交换;读写器程序和应答器程序分别用来控制读写器和应答器的工作流程。这里主要介绍读写器部分程序流程和应答器部分程序流程。读写器与应答器为主从关系:通信过程由读写器发起,读写器向应答器发送命令,然后等待应答器的应答。
2.1读写器软件流程
读写器部分软件的工作流程如图 3(a)所示,读写器一直等待主机命令,接收到主机命令后,根据主机需求将命令解析成读写器对应答器相应操作,例如:提取场内所有应答器ID,对场内某些应答器的存储器进行读写等。命令发送后,读写器等待应答器的应答数据,与应答器进行无线通信。当读写器执行完主机命令,完成于应答器的通信后,将需要返回的数据或状态通过读写器与主机之间的接口上传主机,继续等待新的主机命令。
2.2应答器软件流程
图 3(b)说明了应答器的状态转移图,应答器平时处于休眠状态,当进入读写器的载波唤醒场内时,被载波唤醒,进入激活状态,如果1s 之内没有接收到命令则重新返回休眠状态。应答器接收到读写器命令后,对命令进行初步解析和操作对象判断,如果应答器确定读写器此次操作对象包含自己,则随机选择一个时隙做出相应的应答。
图3 读写器与应答器的工作流程
读写器向应答器发送的消息分为两种形式:广播消息和点对点消息。广播命令用来收集所有场内应答器的ID,或向所有场内应答器进行同一个操作。而点对点消息是针对某一个应答器进行读存储器、写存储器等操作。读写器发送广播命令后,如何分配各个应答器对信道的占用是一个十分重要的问题,第3 部分将对这个问题进行讨论。
3 系统防碰撞算法设计与实现
当两个或两个应答器同时对读写器的命令做出响应时会彼此产生干扰,使读写器无法正确接收,这种现象为“碰撞”。为了提高系统的可靠性和效率,必须尽量避免应答器碰撞的发生。系统采用基于时隙的ALOHA 算法作为系统的防碰撞算法。
时隙 ALOHA 算法的基本步骤为:每次应答器响应循环的时间被分为N 个时隙,应答器随机选择时隙应答,当不同的应答器选择同一个时隙进行应答时,则发生了碰撞,碰撞的应答器与读写器通信失败,应答器在下一个通信循环中重新与读写器建立通信。
3.1时隙ALOHA算法分析
1)时隙数
一个时隙内应答的应答器数目服从二项分布,对于给定的时隙数N 和场内应答器数n,对于选定的某一时隙,读写器能正确接收应答器应答的概率为
2)场内应答器数估计
在实际应用中,场内应答器数目是未知的,因此必须对场内应答器数进行估计。图中可以看出每个时隙可能有三种状态:空时隙、正常通信时隙和碰撞时隙。可以根据式(5)对应答器数进行估计[4]。
3.2防碰撞算法的实现
考虑到实际应用场景以及读写器的复杂程度,防碰撞算法的执行过程为:
1)读写器发送命令,命令内容包含时隙数,初始时隙数可根据具体应用场景由上位机设置。
2)应答器接收到命令后,随机选择总时隙数内的一个时隙应答;读写器接收应答器应答信息并根据此次循环内的三种时隙个数按照公式(5)估计出场内未读应答器个数,如果场内没有未读应答器则读写过程结束,否则进入第3 步。
3)读写器发送命令,选择第2 步估计的应答器数作为下次循环的时隙数,继续执行第2 步。
4 系统性能
4.1应答器工作时间
由于应答器靠电池供电,因此应答器的工作时间是系统重要指标。MSP430 和CC1100 在不工作时刻已处于休眠状态,从而达到低功耗的目的。表1(a)和(b)分别说明了MSP430 和CC1100 在不同状态下的耗电量。假设应答器有1%的时间处于场内应答,则可以计算,应答器工作时间为2 年,满足应用要求。
4.2多应答器读取
按照第 3 部分中的防碰撞算法,对系统进行测试。结果如表1(c)所示,可见系统能够有效的对多个应答器进行识别。
5 结论
本文介绍了一种主动式超高频射频识别系统的设计和实现。本系统具有低功耗、超长的应答器的工作时间,在多应答器环境下具有很高的读取率。由于系统在软硬件设计上都很灵活,因此,可以针对不同的应用对系统协议进行升级。本系统已经在矿井定位考勤系统中得到验证。
本文作者创新点:设计了一种基于RFIC 的、具有载波唤醒功能的主动式射频识别系统;将动态时隙数的时隙ALOHA 防碰撞算法应用于此系统中;对系统的功耗和应答器的读写性能分别进行了理论*估和实验测试。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。