有源RFID系统中可靠通信的研究
识符的惟一性,对帧内容中的Ox76采用了替代算法,使帧中的内容不再出现Ox76,解决了接收端的同步问题,亦可提高接收的可靠性。如果发送的数据为0x76,则用Ox77,Ox77两个字节替代;如果发送的数据为Ox77,则用Ox77,0x78两个字节替代。算法流程如图2所示。
2.2 数据帧结构
读写器对标签的操作为读/写,电子标签器件内建有MCU和FLASH,可以存储比较复杂的程序,并由程序控制标签工作。为了加强有源RFID系统结构的简单性和高效性,对指令格式进行规格化,对数据帧格式的设计亦采用简单和固定的规格,以提高通信效率。
在通信时,数据的帧格式如下:
引导区包含导言、同步字,在信道特性较好的场合,为提高识别速度,可设定16位的导言与16位的同步字。校验区通过CRC算法进行校验,引导区和校验区由CC2510硬件自动添加,在接收时由硬件自动去除。该设计中,地址区用于电子标签的识别,命令区中的命令用于完成数据查询功能或完成标签信息的生成。数据区用于数据净荷存储。在发送模式下,地址区、命令区和数据区的数据被送入RAM中的缓存区进行相应的打包操作,CC2510添加4字节的导言和同步字,加入CRC校验并发送出去。在接收模式时,包处理支持将会分解数据包,即首先进行同步字检测,接着检测地址、进行数据长度匹配并计算和检查CRC,最后将操作命令和数据净荷提交上层进行处理,从而完成1次发送和接收交互。
2.3 防冲突处理
有源RFID系统实现的重点是防碰撞算法的实现。目前。这类算法的实现方法有空分多址(SDMA)、频分多址(FDMA)、码分多址(CDMA)和时分多址(TD-MA)等。该设计方案中采用ETSI 302 208标准中基于载波侦听(CSMA)的方法。CSMA是一种分布式介质访问控制协议,在读写器覆盖范围内,各有源电子标签都能独立地决定数据帧的发送和接受。
每个有源电子标签在发送数据帧之前,首先要进行载波监听,只有介质空闲时,才允许发送帧,与FDMA和TDMA相比,能更好地利用资源。因为这种通信方式在发送数据之前,一直在检测空气中是否存在相同频率的载波,如果有相同频率的载波,就不发送数据;如果空气中没有相同频率的载波,则表明现在的空间资源没有被占用,可以发送数据。这样,不仅提高了空间资源的利用效率,同时也提高了通信的可靠性。
利用CC2510支持传输前自动清理信道访问(CCA)的功能,实现CSMA。电子标签初始化完成后,程序进入主循环程序。电子标签开始载波监听,当CCA不为1时,表示空气中没有相同的载波数据时便发送相应的数据,各个电子标签采用竞争的方式发送。CSMA发送流程图如图3所示。
2.4 重传机制
重传机制主要采用ACK(acknowledge)方式,即发送方为发送的每一数据包设置缓存和相应的重发定时器,若在定时器超时之前收到来自目的节点对此数据包的ACK控制包,则认为此数据包已经成功地传送。此时,取消对该数据包的缓存和定时,否则,将重发此数据包,并重新设置定时器。对于每个数据包,接收方都需要反馈ACK。
重传机制主要由以下功能函数实现。Init()函数用于设备初始化,设置DMA、时钟等;Send()函数用于发送数据包;ackTimeolJt()函数用于没有在规定时间内收到ACK,而重发数据包;waitForAck()函数用于等待接受ACK,既定时间内,收到ACK标示为T,反之标示为F;aekReceived()函数用于收到ACK,取消重传;Receive()函数用于接收规定格式的数据包;dataCheck()函数用于检测数据的完整和可靠;sendAck()函数用于送ACK反馈给发送方。重传机制程序流程图如图4所示。
3 测试结果
在实际环境中,对有源RFID系统的读写器和有源电子标签进行读/写测试,调制方式为MSK,数据传输率60 Kb/s,滤波带宽540 kHz。分别在不同距离上放置10个有源电子标签进行20O B收发操作。读写器的识读结果如表1和表2所示。
从以上数据可以看出:
(1)在25 m可视距离内系统识别效果良好;
(2)加入可靠通信机制后,在可视通信距离60 m内,标签与读写器之间的协议识别效果良好;随着通信距离的加大。在70 m处标签与读写器正常通信信号中CRC校验出错增多,但仍可识别大多数标签;
(3)遇到障碍物的时候,通信距离迅速减少,丢包率和CRC校验错误数增多。
4 结语
有源RFID技术与无源RFID技术相比,在技术上的优势非常明显,具有通信距离长,传输数据量大,低发射功率等特点。有源RFID系统中数据的可靠传输是最为重要的部分。本文为有源RFID系统的可靠传输提出了一种解决思路,较好地处理了这一问题。
未来有源RFID技术不仅会在各行业中被广泛采用,而且还将会