×
单片机 > 单片机程序设计 > 详情

基于RFID的室内定位系统设计

发布时间:2020-06-13 发布时间:
|
  RFID读写器和标签系统均采用低功耗MCU芯片PIC16F877A作为核心控制单元,以低功耗无线射频收发器芯片CC2500为核心配合外围滤波器和天线等构成系统的通信单元。在读写器与标签进行数据通信的过程中,通过获取RSSI(ReceivedSignalStrengthIndicator,接收信号强度指示)信号推测出读写器与标签之间的距离,在获得来自于多个具有固定位置信息的标签的RSSI信号后,可以实现对读写器的无线定位。实验结果表明,该系统在室内环境中能够实现较高精度的无线区域定位。

  随着科技的进步和社会经济的发展,人们对定位服务的要求越来越高,传统的定位系统已经不能满足室内定位的需求。GPS在户外环境的定位中应用广泛,但是由于混凝土等障碍物对电磁波的阻挡,它在室内环境中是完全失效的。笔者基于有源RFID技术,采用PIC系列单片机PIC16F877A和TI公司的射频收发器芯片CC2500,设计出了一种低成本、低功耗,可以适用于室内环境的无线定位系统。

  1总体设计

  RFID室内定位系统由读写器和标签组成。其中读写器按照功能划分可以分为4个模块,如图1所示。分别是控制模块、射频通信模块、定位信息显示模块、电源模块。控制模块负责控制系统的运行,包括对各种外设的控制,以及完成定位算法的运行等。射频通信模块负责数据的收发,采用ASK调制方式,实现读写器和标签之间的数据传输。定位信息显示模块主要是显示定位目标的信息。电源模块用来给系统的各个单元提供工作电源。另外,与上位机连接的读写器通过RS-232串口与上位机进行通信,所以部分读写器还带有串口通信模块。

图1读写器系统结构

  标签主要由控制模块、射频通信模块、电源模块组成,如图2所示。

图2标签系统结构

  控制模块中的微控制器通过SPI接口与射频收发器通信,在控制模块的统一调度下,读写器与标签节点之间通过无线射频通信交换信息。在读写器的无线信号覆盖区域内,标签节点收到来自读写器的广播信号后会处于激活状态,处于激活状态的标签节点会将自己的ID号发送给读写器,然后接收读写器的请求命令,将存储于节点中的信息传送给读写器;或者接收读写器的写命令,将来自读写器的信息写入自己的存储器中。

  2系统硬件设计

  2.1控制器部分

  在系统设计中,考虑到系统的功耗、成本及性能等要求,选择Microchip公司的PIC16F877A作为系统的微控制器

  PIC16F877A是一款具有RISC结构的16位高性能单片机,内部集成了一个在线调试器(In-CircuitDebugger),可以实现在线调试和在线编程。拥有35条单字指令,8k×14个字节的FLASH程序存储器,368×8字节的RAM,8级硬件堆栈,内部看门狗定时器,低功耗休眠模式,高达25mA的吸入/拉出电流,外部具有3个定时器模块,拥有10位多通道A/D转换器,通用同步异步接收/发送器等功能模块。它具有功耗低、驱动能力强、外接电路简洁等特点,同时具有哈佛总线结构、寻址简单、指令条数少等优点。

  微控制器模块主要由PIC16F877A单片机及其外围电路组成。其电路原理图如图3所示。在读写器系统在中,PIC16F877A的RB0~RB3及RC7,RD4~RD7用作向显示模块发送显示数据的通信接口;OSC1和OSC2扩展外部时钟电路;PIC16F877A单片机通过SPI接口设置CC2500的工作参数并与CC2500交换数据。

图3单片机外围电路原理图

  2.2射频通信模块

  考虑到功耗、接收灵敏度、传输速率和芯片成本等因素,系统采用了TI公司的无线射频收发芯片CC2500作为无线通信模块控制器。CC2500是TI公司推出的一款低成本、低功耗、体积小的2.4GHz无线通信频段的收发器,工作频率波段为2400~2483.5MHz。RF收发器集成了一个数据传输率可达500kbit/s的高度,可配置的调制解调器和一个64位传输/接收FIFO(先进先出堆栈)。CC2500的寄存器配置可通过SPI接口控制。它具有载波监听和休眠模式,非常适合低功耗应用。[page]

  射频通信模块主要由CC2500收发器、传输与接收天线及其外围滤波、匹配网络组成,其中天线采用了Rainsun公司的贴片天线,系统电路原理图如图4所示。

图4CC2500外围电路原理图

  CC2500通过4线SPI兼容接口(SI,SO,SCLK和CSN)与PIC16F877A相连,这个接口用作写入和读取数据。SI为数据输入线,SO为数据输出线,SCLK为时钟线,CSN为片选信号线,低电平有效。SPI接口的状态控制线还包含一个读/写信号控制线。CC2500的状态寄存器里指示一些系统的工作状态信息。

  2.3电源模块

  RFID室内定位系统一般主要布置在楼宇、仓储建筑物等的内部,有些具有移动性,所以节点大多数需要采用电池供电,在元器件的选取中,尽量选择低功耗器件以降低系统功耗,2.4~3.6V的电压可以使系统中所有的器件和模块正常工作。因此,实际中采用与之电压匹配的高能纽扣锂电池作为供电电源。

  2.4电磁兼容与抗干扰设计

  在设计2.45GHz的RFID系统时要考虑电磁兼容性(EMC),以保证读写器和标签在设定的电磁环境和规定的安全界限内运行。在系统设计中,元件的选择和电路设计是影响电磁兼容的重要因素,对于射频通信模块需要去耦电容来去除元件状态转换引起的噪声电压,并且要注意信号源和信号终端的阻抗匹配。PCB上的导线同样具有阻抗、电感、电容特性,因此在PCB布局和布线也考虑了电磁兼容性等问题。布局是按照信号流程放置元件,尽量缩短元件之间的连接,CC2500底部通过多个过孔与地层连接。滤波电容尽量靠近器件放置,同时,为了抗电磁干扰,把数字电源和模拟电源、数字地和模拟地隔离开来。RFID定位系统节点的布设位置应尽量避开高大障碍物,以减少对电磁波的阻隔,影响传输性能。

  3系统软件设计

  3.1定位算法的选择

  本RFID定位系统采用LANDMARC定位原理。LANDMARC定位算法适用于有源RFID室内定位。它将具有固定位置信息的标签作为定位系统中的坐标参考点,通过参考点标签与移动读写器之间的通信,获取两者之间的无线射频信号强度值RSSI,继而获取读写器与多个参考标签之间的RSSI值,根据RSSI与通信距离之间的对应关系,获取读写器与多个参考标签之间的距离关系。LANDMARC算法可以通过比较读写器与参考标签之间RSSI值的大小来获得离读写器距离最近的几个参考标签,然后根据这几个最邻近参考标签的坐标,并结合它们的权重,可计算出读写器的坐标。

  3.2RFID定位算法

  无线信号的接收信号强度和信号传输距离的关系可以用式(1)来表示,其中RSSI是接收信号强度,d是收发节点之间的距离,n是信号传播因子。

  由式(1)中可以看出,常数A和n的值决定了接收信号强度和信号传输距离的关系。射频参数A和n用于描述网络操作环境。射频参数A被定义为用dBm表示的距发射器1m时接收到信号平均能量的绝对值。如平均接收能量为-40dBm,那么参数A被定为40。射频参数n指出了信号能量随着距收发器距离增加而衰减的速率,其数值的大小取决于无线信号传播的环境。

  RSSI值受周围环境的影响较大,具有时变特性,有时会偏离式(1)的描述,根据接收信号强度估计出的距离d就会有较大误差。通过大量数据分析,采用了-个噪声模型,即环境衰减因素模型,可有效补偿环境影响带来的误差,如式(2)所示。

  上式中EAF(dBm)为环境影响因素,它的值取决于室内环境,是靠大量的数据累积的经验值。EAF(dBm)是一个随机变量,但为了增强实用性,将其固定为-个值。通过大量比较实验环境下测得的RSSI值与理想状态下的RSSI值,得到试验环境EAF(dBm)大概为11dBm,A取值45,n取值3.5。

  在采集到RSSI值后,依据式(2)就可以得到读写器到标签的距离,通过LANDMARC三边测量定位算法就可以定位出读写器的位置。如图5所示。

图5三边测量定位示意图

  假设标签1的坐标为p1(x1,y1),标签2的坐标为p2(x2,y2),标签3的坐标为p3(x3,y3),读写器坐标为p(x,y)。则读写器坐标计算公式为:

  由式(2)可以计算出读写器的坐标位置为:

  3.3RFID定位系统的工作流程

  定位算法以MPLABIDE7.4为开发平台,采用C语言编写,经过编译、连接后生成机器代码,下载到读写器程序存储器中。RFID定位系统软件流程图如图6所示。

图6定位系统流程图

  4结束语。

  笔者介绍了一种基于PIC16F877A和CC2500的有源RFID读写器和标签的硬件系统设计及室内RFID定位方法,对读写器和标签系统的各个模块及运行于读写器中的定位算法及其工作流程进行了详细介绍。该有源RFID定位系统在小规模的室内实验中表现出较好的定位精度。

关键字:RFID读写器  无线射频收发器  PIC16F877A

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
LCD驱动-JZ2440