该方案在硬件上采用了MSP430F2012单片机和nRF24L01射频芯片的低功耗组合;软件上则结合了RFID定位的特点,有别于一般以识别为主要目的的标签的设计方法,并分析了其软件设计流程以及简单的防冲突能力。通过良好匹配的天线,本设计方案有效读取距离可达几十米,足以应付一般空间内定位的需求。
1.引言
射频识别(RFID)技术是采用无线射频的方式实现双向数据交换并识别身份,RFID定位正是利用了这一识别特性,利用阅读器和标签之间的通信信号强度等参数进行空间的定位。RFID标签按供电方式分为有源和无源2种,无源标签通过捕获阅读器发射的电磁波获取能量,具有成本低、尺寸小的优势;有源标签通常采用电池供电,具有通信距离远、读取速度快、可靠性好等优点,但需要考虑低功耗设计以增强电池的续航能力。本文从有源标签的设计理念出发,针对小范围空间RFID定位的需求,根据低功耗、高效率的原则进行RFID标签的设计,并阐述了其硬件组成、软件流程和防冲突能力。
2.系统硬件设计
2.1 系统结构
有源标签在设计中除了需要考虑低成本、小型化之外,最重要的是要采取低功耗设计。RFID标签从整体结构上看,通常包括2个部分:控制端和射频端,因此在选择控制芯片和射频芯片时需要优先考虑其低功耗性能。本文在此基础上选择了MSP430F2012控制芯片和nRF24L01射频芯片;天线则选用了Nordic公司的PCB单端天线;标签采用3V-500mAh纽扣电池供电。系统工作在2.4GHz全球ISM频段。系统结构框图如图1所示。
2.2 芯片选择及低功耗设计
TI推出的MSP430系列单片机是16位Flash型RISC指令集单片机,以超低功耗闻名业界。MSP430F2012芯片工作电压仅为1.8~3.6V,掉电工作模式下消耗电流为0.1μA,等待工作模式下消耗电流仅为0.5μA[4].本设计中,MSP430F2012被长时间置于等待工作模式,通过中断唤醒的方式使其短暂进入工作状态,以节省电能。MSP430F2012具有3组独立的时钟源:
片内V L O(超低功耗振荡器)、片外晶振、DCO(数字控制振荡器)。其中,片外时钟基于外部晶振;DCO由片内产生,且频率可调。显然,主系统时钟频率的高低决定着系统的功耗,尤其是选择了高速片外晶振的情况下,因此,MSP430F2012提供了在不同时钟源间进行切换的功能。
在实际设计中,通过实时重新配置基础时钟控制寄存器以实现主系统时钟和辅助系统时钟间的切换,既不失性能,又节约了能耗。
MSP430F2012具有LPM0~LPM4五种低功耗模式,合理的利用这五种预设的模式是降低MCU功耗的关键,本设计中,MSP430F2012在上电配置完毕后将直接进入LPM3模式,同时开启中断,等待外部中断信号。此外,由于MSP430F2012是一款多功能通用单片机,片内集成了较多功能模块,在上电配置时即停止所有不使用的功能模块也能起到降低系统功耗的目的。
由于R F I D标签消耗能量的近2 / 3用于无线收发, 因此选择一款超低功耗的无线收发芯片就显得至关重要。
nRF24L01是Nordic公司开发的2.4GHz超低功耗单片无线收发芯片,芯片有125个频点,可实现点对点和点对多点的无线通信,最大传输速率可达2 M b p s,工作电压为1.9~3.6V.为了凸显其低功耗性能,芯片预置了两种待机模式和一种掉电模式。更值得一提的是nRF24L01的ShockBurstTM模式及增强型ShockBurstTM模式,S h o c k B u r s t T M模式真正实现了低速进高速出,即M C U将数据低速送入nRF24L01片内FIFO,却以1Mbps或2Mbps高速发射出去。本设计正是利用了增强型ShockBurstTM模式,使得MSP430F2012即便在32768Hz低速晶振下也能通过射频端高速的将数据发射出去,既降低了功耗,又提高了效率,增强了系统防冲突和应付移动目标能力。
2.3 电路设计
本系统主要运用于RFID定位方面,除了简单的识别外,重点在于阅读器对标签信号强度的测量,因此阅读器与标签间不会有大数据量频繁的读写操作,在电路设计时可省略片外EEPROM.同时还可以省去稳压电路以节省静态电流消耗。硬件原理图如图2所示。
3.系统软件设计
系统软件设计选用了IAR EmbeddedWorkbench V4.11B平台下的C语言编程环境,设计中综合考虑了M S P 4 3 0 F 2 0 1 2和nRF24L01芯片的低功耗性能、稳定性和程序执行效率。
3.1 软件流程
本系统属于双向通信系统,标签在发送数据前处于监听状态,nRF24L01的接收功能被打开,同时MSP430F2012处于LPM3模式,直至接收到阅读器广播的“开始”
指令,并通过中断将MSP430F2012唤醒。
MSP430F2012被中断唤醒后开始判断指令是否正确,如果正确则进入正常发送周期,否则返回LPM3模式。
考虑到实时定位的需要,系统不能像一般的RFID标签那样仅仅进行有限次验证,本系统采用等间隔持续发送的模式,便于阅读器实时监测目标位置,系统设定的正常发送周期为500ms,由MSP430F2012的Timer_A定时,500ms定时开始后,标签ID通过SPI发送到FIFO,nRF24L01采用了增强型ShockBurstTM模式,发送失败则会继续重发,标签ID发送完毕后,MSP430F2012判断定时器是否超时,一旦超时则进入下个发送周期,否则处于等待状态直至超时。当阅读器停止广播“开始”指令,MSP430F2012重新进入LPM3模式以降低功耗。系统完整流程如图3所示。
3.2 防冲突设计
nRF24L01自带载波检测功能,在发送数据前先转入接收模式进行监听,确认要传输的频率通道未被占用才发送数据,利用此功能可实现简单的硬件防冲突。
考虑到本系统采用了500ms的统一发送间隔,在被定位目标众多的场合有可能发生识别冲突,因此需要在程序中合理的增加防冲突算法。ALOHA算法主要用于有源标签,其原理就是,一旦信源发生数据包碰撞,就让信源随机延时后再次发送数据。考虑到程序的复杂性势必引起处理时间的增加,也会带来额外的能耗,本系统采用了较为简单的纯ALOHA算法,即在每个500ms计时周期内随机发送标签ID,这就需要在程序中插入一个随机延时,延时时长的选择通过一个随机值函数来实现,随机延时范围为0~300ms.这种简单的防冲突算法既简化了指令,又能大幅降低冲突概率。
另外,nRF24L01传输速率为1Mbps或2Mbps,单次发送一个数据包,单个数据包最大32bytes,假设标签ID为32bytes,以2Mbps速率发送一次ID的信号宽度(传输时间)约为100~150μs,相对于500ms的整个定时周期而言微乎其微,但仍有可能出现发送饱和的状态,这时可以适当的延长计时周期以增加信道容量。较快的传输速率有助于移动目标的识别和定位,而较短的数据长度也能显着提高标签基于随机延时的防冲突能力,因此尽可能将标签ID的长度限制在32bytes以内。
3.3 部分程序代码
3.3.1 单字节SPI发送/接收函数
3.3.2 根据命令字读/写接收(发送)数据包
4.测试结果
对于R F I D系统而言,最重要的参数就是读取距离[7]和有效读取率。本次实验测试设备为标签3枚,阅读器一台,PC一台,阅读器基于MSP430F149和nRF24L01芯片设计,并通过RS232串口与PC进行通信。测试中,分别将3枚标签置于距离阅读器1 5 m、3 0 m、4 5 m处,便签I D分别为AABBCCDDFFFFFF01、AABBCCDDFFFFFF02、AABBCCDDFFFFFF03,每枚标签进行一小时(约7200次)连续读取测试。测试界面如图4所示。
从表1所示测试结果看,3 0 m以内为标签正常读取距离,可满足一般的室内应用,距离为45m时读取率则显着下降。由于天线的设计对系统性能有较大影响,通过改进标签的天线以获取较大输出功率,改进阅读器端天线接收灵敏度也能显着提高系统性能。
5.结束语
本文对基于MSP430F2012和nRF24L01的有源RFID标签的设计进行了详细的介绍。对2款芯片的低功耗性能进行了分析并提出了自己的低功耗设计方案;结合了RFID定位的特点,介绍了有别于一般以识别为主要目的的标签的设计方案,分析了其软件设计流程;针对一般空间内被识别目标众多且常处于移动状态的特点,介绍了系统的防冲突能力。整个方案的设计体现出了电路简单,尺寸小,功耗低,通过良好匹配的天线通信距离可达几十米,如需进行远距离RFID测量或定位,可在硬件上增加数字功放电路,通信距离可达500米以上。可以满足多种行业对于一般小范围空间内的定位需求。