基于MSP430和nRF24L01的有源RFID标签应用设计

发布者:备战最新更新时间:2020-09-09 来源: eepw关键字:MSP430  nRF24L01  有源RFID标签 手机看文章 扫描二维码
随时随地手机看文章

  本文介绍了有源标签的设计理念出发,针对煤矿井下一般小范围空间RFID定位的需求,根据低功耗、高效率的原则进行RFID标签的设计。系统在硬件上采用了单片机和nRF24L01射频芯片的低功耗组合;软件上则结合了RFID定位的特点,介绍了有别于一般以识别为主要目的的标签的设计方法,并分析了其软件设计流程以及简单的防冲突能力。通过良好匹配的天线,本设计有效读取距离可达几十米,足以应付一般空间内定位的需求。


  1.引言

  射频识别(RFID)技术是采用无线射频的方式实现双向数据交换并识别身份,RFID定位正是利用了这一识别特性,利用阅读器和标签之间的通信信号强度等参数进行空间的定位。


  RFID标签按供电方式分为有源和无源2种[1],无源标签通过捕获阅读器发射的电磁波获取能量,具有成本低、尺寸小的优势;有源标签通常采用电池供电,具有通信距离远、读取速度快、可靠性好等优点[2],但为了满足煤矿井下定位,需要考虑低功耗设计以增强电池的续航能力。本文从有源标签的设计理念出发,针对小范围空间RFID定位的需求,根据低功耗、高效率的原则进行RFID标签的设计,并阐述了其硬件组成、软件流程和防冲突能力。


  2.系统硬件设计

  2.1系统结构

  有源标签在设计中除了需要考虑低成本、小型化之外,最重要的是要采取低功耗设计。


  RFID标签从整体结构上看,通常包括2个部分:控制端和射频端,因此在选择控制芯片和射频芯片时需要优先考虑其低功耗性能。本文在此基础上选择了MSP430F2012控制芯片和nRF24L01射频芯片;天线则选用了Nordic公司的PCB单端天线;标签采用3V-500mAh纽扣电池供电。系统工作在2.4GHz频段。系统结构框图如图1所示。

基于MSP430和nRF24L01的有源RFID标签应用设计

  图1 系统结构框图


  2.2芯片选择及低功耗设计

  TI推出的MSP430系列单片机是16位Flash型RISC指令集单片机[3],以超低功耗闻名业界。


  MSP430F2012芯片工作电压仅为1.8~3.6V,掉电工作模式下消耗电流为0.1μA,等待工作模式下消耗电流仅为0.5μA.本设计中,MSP430F2012被长时间置于等待工作模式,通过中断唤醒的方式使其短暂进入工作状态,以节省电能。MSP430F2012具有3组独立的时钟源:片内VLO、片外晶振、DCO.其中,片外时钟基于外部晶振;DCO由片内产生,且频率可调。显然,主系统时钟频率的高低决定着系统的功耗,尤其是选择了高速片外晶振的情况下,因此,MSP430F2012提供了在不同时钟源间进行切换的功能。在实际设计中,通过实时重新配置基础时钟控制寄存器以实现主系统时钟和辅助系统时钟间的切换,既不失性能,又节约了能耗。


  MSP430F2012具有LPM0~LPM4五种低功耗模式,合理的利用这五种预设的模式是降低MCU功耗的关键,本设计中,MSP430F2012在上电配置完毕后将直接进入LPM3模式,同时开启中断,等待外部中断信号。此外,由于MSP430F2012是一款多功能通用单片机,片内集成了较多功能模块,在上电配置时即停止所有不使用的功能模块也能起到降低系统功耗的目的。


  nRF24L01是Nordic公司开发的2.4GHz超低功耗单片无线收发芯片,芯片有125个频点,可实现点对点和点对多点的无线通信,最大传输速率可达2Mbps,工作电压为1.9~3.6V[4].为了凸显其低功耗性能,芯片预置了两种待机模式和一种掉电模式。更值得一提的是nRF24L01的ShockBurstTM模式及增强型ShockBurstTM模式[4],真正实现了低速进高速出,即MCU将数据低速送入nRF24L01片内FIFO,却以1Mbps或2Mbps高速发射出去。本设计正是利用了增强型ShockBurstTM模式,使得MSP430F2012即便在32768Hz低速晶振下也能通过射频端高速的将数据发射出去,既降低了功耗,又提高了效率,增强了系统防冲突和应付移动目标能力。


  2.3电路设计

  本系统主要运用于RFID定位方面,除了简单的识别外,重点在于阅读器对标签信号强度的测量,因此阅读器与标签间不会有大数据量频繁的读写操作,在电路设计时可省略片外EEPROM.同时还可以省去稳压电路以节省静态电流消耗。硬件原理图如图2所示。

基于MSP430和nRF24L01的有源RFID标签应用设计

  图2 硬件原理图


  3.系统软件设计

  3.1软件流程

  本系统属于双向通信系统,标签在发送数据前处于监听状态,nRF24L01的接收功能被打开,同时MSP430F2012处于LPM3模式,直至接收到阅读器广播的“开始”指令,并通过中断将MSP430F2012唤醒。MSP430F2012被中断唤醒后开始判断指令是否正确,如果正确则进入正常发送周期,否则返回LPM3模式。


  考虑到实时定位的需要,系统不能像一般的RFID标签那样仅仅进行有限次验证,本系统采用等间隔持续发送的模式,便于阅读器实时监测目标位置,系统设定的正常发送周期为500ms,由MSP430F2012的Timer_A定时,500ms定时开始后,标签ID通过SPI发送到FIFO,nRF24L01采用了增强型ShockBurstTM模式,发送失败则会继续重发,标签ID发送完毕后,MSP430F2012判断定时器是否超时,一旦超时则进入下个发送周期,否则处于等待状态直至超时。当阅读器停止广播“开始”指令,MSP430F2012重新进入LPM3模式以降低功耗。


  系统完整流程如图3所示。

基于MSP430和nRF24L01的有源RFID标签应用设计

  图3 软件流程图


  3.2防冲突设计

  nRF24L01自带载波检测功能,在发送数据前先转入接收模式进行监听,确认要传输的频率通道未被占用才发送数据,利用此功能可实现简单的硬件防冲突。


  考虑到本系统采用了500ms的统一发送间隔,在被定位目标众多的场合有可能发生识别冲突,因此需要在程序中合理的增加防冲突算法。ALOHA算法主要用于有源标签,其原理就是,一旦信源发生数据包碰撞,就让信源随机延时后再次发送数据。考虑到程序的复杂性势必引起处理时间的增加,也会带来额外的能耗,本系统采用了较为简单的纯ALOHA算法,即在每个500ms计时周期内随机发送标签ID,这就需要在程序中插入一个随机延时,延时时长的选择通过一个随机值函数来实现,随机延时范围为0~300ms.这种简单的防冲突算法既简化了指令,又能大幅降低冲突概率。


  外,n R F 2 4 L 0 1传输速率为1 M b p s或2Mbps,单次发送一个数据包,单个数据包最大32bytes,假设标签ID为32bytes,以2Mbps速率发送一次ID的信号宽度(传输时间)约为100~150μs,相对于500ms的整个定时周期而言微乎其微,但仍有可能出现发送饱和的状态,这时可以适当的延长计时周期以增加信道容量。较快的传输速率有助于移动目标的识别和定位,而较短的数据长度也能显着提高标签基于随机延时的防冲突能力,因此尽可能将标签ID的长度限制在32bytes以内。


  4.测试结果

  对于RFID系统而言,最重要的参数就是读取距离[5]和有效读取率。本次实验测试设备为标签3枚,阅读器一台,PC一台,阅读器基于和nRF24L01芯片设计,并通过RS232串口与PC进行通信。测试中,分别将3枚标签置于距离阅读器15m、30m、45m处,便签ID分别为AABBCCDDFFFFFF01、AABBCCDDFFFFFF02、AABBCCDDFFFFFF03,每枚标签进行一小时(约7200次)连续读取测试。 从表1测试结果看,30m以内为标签正常读取距离,可满足一般的室内应用,距离为45m时读取率则显着下降。由于天线的设计对系统性能有较大影响[6],通过改进标签的天线以获取较大输出功率,改进阅读器端天线接收灵敏度也能显着提高系统性能。

基于MSP430和nRF24L01的有源RFID标签应用设计

  5.结束语

  本文对基于和nRF24L01的有源RFID标签的设计进行了详细的介绍。对2款芯片的低功耗性能进行了分析并提出了自己的低功耗设计方案;结合了RFID定位的特点,介绍了有别于一般以识别为主要目的的标签的设计方法,分析了其软件设计流程;针对一般空间内被识别目标众多且常处于移动状态的特点,介绍了系统的防冲突能力。整个系统电路简单,尺寸小,功耗低,通过良好匹配的天线通信距离可达几十米,可以满足煤矿行业井下一般小范围空间内的定位需求。

关键字:MSP430  nRF24L01  有源RFID标签 引用地址:基于MSP430和nRF24L01的有源RFID标签应用设计

上一篇:基于MSP430F2012和nRF24L01低功耗RFID定位设计
下一篇:基于MSP430F2012和nRF24L01的低功耗RFID设计方案

推荐阅读最新更新时间:2024-11-06 20:01

MSP430G2553定时器中断实验
/////////////////////////////////////////////////////////////////// // msp430G2553的定时器中断控制LED每秒钟进行亮熄变化 /////////////////////////////////////////////////////////////////// #include void led_init(); void timer_init(); void delay(int); //---------------------------------- void led_init() { P1DIR|=(1 6); //P1.6为LED } //--
[单片机]
MSP430(G2553)用看门狗定时器来产生周期信号
#include msp430g2553.h #include intrinsics.h volatile unsigned int i = 0; // 中断服务子程序中所用到的全局变量, 最好定义成 volatile 型, 具体原因和用法可以参考我的其他博文介绍 void main (void) { WDTCTL = WDT_MDLY_0_5; // 周期 0.5ms, 设置可参考下面头文件中的截段 IE1 |= WDTIE; // 使能WDT中断 P2DIR |= BIT2; // P2.2输出 _EINT(); // 使能全局中断 for (
[单片机]
基于nRF24L01和Actel FPGA的智能探测系统设计
摘要:设计了基于nRF24L01无线数据传输芯片和Fusion StartKit开发板的智能探测系统。通过开启nRF24L01的ACK PAYLOAD功能实现车载系统与上位机之间的双向通信,采用Actel公司带有APB3总线的8051S软核在Fusion StartKit开发板上构建片上系统,使用MFC编写Windows环境下的人机交互界面,实现了具有实时数据传送、自动避障、远程操控等功能的智能探测系统。   目前一些恶劣或危险的环境人类仍然无法置身其中进行现场检测,如出现险情的矿井地道、地形崎岖的岩洞等,很难取得现场的参数。在这种情况下只有借助于智能探测装置。因智能小车控制方便、行动灵活,对比其他载体工具更容易胜任探测任务,因此成
[工业控制]
基于<font color='red'>nRF24L01</font>和Actel FPGA的智能探测系统设计
MSP430 IIC通信
#include msp430f149.h #define OP_READ 0xa1 //器件地址读 #define OP_WRITE 0xa0 //器件地址写 #define uchar unsigned char #define uint unsigned int #define SDA_OUT P1DIR |= BIT3 #define SDA_IN P1DIR &= ~BIT3 #define SCL_OUT P1DIR |= BIT2 #define SCL_IN P1DIR &= ~BIT2 #define SDA_H P1OUT |= BIT3 #d
[单片机]
MSP430与液晶显示器的串行接口方案
摘要:针对利用微控制器(MCU)控制液晶显示驱动器(LCD)的应用开发实例,提出一种采用串行方式来设计微控制器和液晶显示驱动器之间接口的方案。该方案是在现有点阵式液晶显示屏上附加一个MCU,通过程序设计利用MCU的I/O端口去模拟I2C串行总线,从而实现利用MCU去控制LCD的目的;同时介绍一种在图符液晶显示系统中显示动态曲线的技术和实现方法。 关键词:液晶显示驱动器 I2C串行总线 MSP430 1 概述 点阵式液晶与外部的硬件接口简单,能以点阵或图形方式显示出各种信息,因此在电子设计中得到广泛应用。但是,对它的接口设计必须遵循一定的硬件和时序规范,不同的液晶显示驱动器,可能需要采用不同的接口方式和控制指令才能够实现所需
[应用]
msp430 内存Flash 读写
  1、msp430的存储结构采用冯。依曼结构,即RAM和Flash在同一个寻址空间内统一编址,没有代码空间和数据空间之分。   2、Flash是以段为为基本结构进行存储的。总体上分三部分:   Flash主存储区: 用于存储程序代码,被分成4个扇区,每个扇区分128seg, 每个seg段 大小为 64 * 1024 / 128 = 512B。 Flash控制器可以以位、字节、或者字的格式写入Flash控制器。但是控制器最小的擦除单位是段 。   BSL存储区: 是存储器的引导加载存储器,可以用于存储引导加载程序,分4段,每段512B,每段可以单独擦除、信息存储区: 主要用于存储需要掉电后永久保存的数据,分4段,每段128
[单片机]
<font color='red'>msp430</font> 内存Flash 读写
MSP430F5438A DMA操作实验
简介: 1.学会操作 F5438 的 DMA 模块操作,了解 DMA 寄存器的组成 2.掌握 DMA 传输原理和三种传输模式传输过程 3.编程实现利用 DMA 以字节模式将字符串传到上位机 4. 功能:利用 DMA 将数据以 1S 一次的速度传送到发送缓冲器中进行发送 5.现象:在上位机上看到 hello world!输出 1,DMA介绍 2,DMA的特性 3,DMA控制器结构框图 4,DMA寻址方式 5,DMA传输方式 DMA有六种传输模式:单字或者单字节传输;块传输;突发块传输;重复单字或者单字节传输;重复块传输;重复突发块传输。前三个,传输完成后DMAEN自动复位;再次传输时
[单片机]
<font color='red'>MSP430</font>F5438A DMA操作实验
msp430 FLASH 字节读写程序
/***** 430 FLASH 字节读写程序 *************************/ 430的数据RAM 与FLASH的读写 #define FLASH_ADDRESS 0x1000 //定义FLASH信息区地址B段 void flash_erase(unsigned char*); void read_flash(unsigned char *pc_byte, unsigned char *array,unsigned char amount); void write_flash(unsigned char *pc_byte,unsigned char *array,unsign
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved