引言
随着现代信息技术和超大规模集成电路的发展,RFID技术在服务领域、货物销售与后勤分配、商业部门、生产企业和材料流通领域得到了越来越广泛的应用。射频识别技术的基本原理是利用射频信号和空间耦合(电感耦合或电磁耦合)或雷达反射的传输特性,实现对被识别物体的自动识别。
RFID系统不局限于视线,识别距离远。射频识别卡具有可读写能力,可携带大量数据,可工作在潮湿、干燥等恶劣环境下,同时具有难以伪造和智能性较高等优点。与此同时,不同的射频标签编码规则、不同的空中接口协议、大量而复杂的RFID数据如何处理等问题严重阻碍了RFID技术发挥其巨大作用。基于这种现状,本文结合防碰撞算法提出了嵌入式平台下的RFID读写器设计方案。
1 RFID系统结构原理
无线射频识别技术是一种非接触的自动识别技术,常称为感应式电子晶片或近接卡、感应卡、非接触卡、电子标签、电子条码等。完整的RFID阅读系统是由读写器(Reader)、应答器(Transponder)、天线(Antenna)三部分组成。其动作原理为Reader通过Antenna发射特定频率的无线电波能量给Transponder,用以驱动Transponder电路将內部ID Code送出,此时Reader便接收此ID Code。由于此ID Code的唯一性,所以RFID读写器可以实现对物体或商品的自动识别。RFID系统框图如图1所示。系统由中间件、读写器、应答器等部分组成。
图1 RFID系统框图
射频识别系统的基本工作方式分为全双工(Full Duplex)和半双工(Half Duplex)。无论是哪种工作方式,其信息的发送都包括编码、调制、信道传输三个步骤。对于数字通信来说,编码和调制方式的选择显得尤为重要。
读写器与电子标签之间的数据传输需要3个主要的功能块,RFID系统基本通信结构框图如图2所示。
图2 RFID系统基本通信结构框图
2 系统硬件设计
系统的核心是Samsung公司的ARM9芯片S3C2440A。RFID读写器系统硬件电路采用模块化设计方案,将主控模块(核心板)与扩展模块电路(底板)分开设计。主控制模块包含了最小系统的设计,包括处理器S3C2440A、内存SDRAM、非易失存储器Nand Flash、电源转换电路、LED指示电路以及一些旁通电容电路。整体的RFID读写器系统的硬件设计主要包括主控制模块、射频模块、扩展底板Power、JTAG、UART、USB A/B、LCD/TouchScreen、LAN、SD、Audio、LED、Reset等电路。
2.1 主控制模块设计
系统采用了两片16位的SDRAM H57V256GTR芯片组成了32位的64 MB系统内存。SDRAM与S3C2440A连接的32条数据线中,高16位DATA[31..16]和低16位DATA[15..0]分别与两片SDRAM相连; H57V256GTR有13根行地址线、9根列地址线、2根BANK选择线 BA0~BA1。S3C2440与SDRAM连接时要注意:
◆ SDRAM的A[0..2]连到CPU的ADDR[2..14];
◆ BA0、BA1的地址连接,BA0、BA1代表了SDRAM的最高地址位。
主控制模块的电路连接框图如图3所示。
图3 主控制模块的电路连接框图
2.2 接口电路设计
S3C2440A具有丰富的外设接口控制器,每个接口都有相应的内部控制逻辑单元(电路驱动)和可编程的控制寄存器,因此对这些标准接口进行电路设计就变得很简单。本系统中外部模块主要通过USB接口与处理器通信,USB接口电路如图4所示。
图4 USB接口电路
S3C2440A具有两个USB主机控制器,兼容USB1.0和USB1.1协议,支持低速和全速模式。这两个USB主机控制器既可以作为主机口,又可以作为从设备口用,主要是看D+或D-数据线所接的上拉电阻的阻值。本课题由于要在终端平台上外接模块,所以终端平台的USB端口作为主机口。又由于终端平台需要与PC机通信,而PC机的USB端口都是作主机的,所以终端平台又要提供USB端口作为从机口。这样,在设计中就将S3C2440A的USB0作为主机口用,而将USB1通过跳线选择来兼容主机口和设备口。
2.3 RFID读写器设计
TRF7960芯片内部包含了一个51核,但是这个51核主要是用来负责接收处理器数据(命令)并处理数据(编码)后通过射频电路发送出去,或是从射频电路接收信号并进行处理(解码)后再送回给处理器。通过TI公司的微处理器MSP430F2370与射频前端芯片配合,可有效地提高读写器的性能。
在读写器模块设计时加入了USB转UART的桥接器芯片CP2102。加入该芯片一方面可以通过USB的连接器与终端平台互连,实现即插即用的功能;另一方面可以通过终端平台上的USB主控制器提供5 V的电源,系统设计的读写器模块正是采用这种方式供电的。RFID读写器模块的原理图如图5所示。
图5 RFID读写器模块原理图
3 系统软件设计
系统软件设计主要实现嵌入式系统移植及防碰撞算法。当在读写器的天线区域中有多个射频标签时,同时到达的信号会产生信道争用的问题。信号互相干扰,发生碰撞。防碰撞技术利用排队论及抗噪声技术来解决这个问题,通过RFID系统一次可以完成对多个射频标签的识别。防碰撞技术的优劣决定了RFID系统的性能。系统软件总体架构包括:扩展层,提供RFID读写器的固件程序,支持多种数据采集模块;设备层,提供RFID系统运行的硬件环境和提供多种物理接口;系统层,提供RFID系统运行的软件环境;中间层,提供开发系统的基础软件框架和应用型RFID中间件;应用层,与业务相关的应用软件。
3.1 防碰撞算法分析
在RFID系统中,评价防碰撞算法优劣的指标有防碰撞速度、准确率、信道利用率、稳定性、安全性和成本等。目前业界推崇的防碰撞方法主要有ALOHA算法(又称应答器控制算法)和二进制树形搜索算法(又称读写器控制算法)。ALOHA防冲突算法由于延迟时间和检测时间是随机分布的,是一种不确定性算法,可分为非时隙、时隙以及自适应ALOHA防冲突算法。其中自适应ALOHA方法的信道利用率最高,它的优点是能显著提高识别速率,缺点是复杂度明显提高。它仅适用于只读型电子标签。二进制树形搜索算法的优点是防冲突能力较强、数据结构和指令简单,缺点是支持的存储容量较小,不适合UID过长的电子标签。这里利用二进制树形搜索算法实现功能。
二进制搜索算法是利用逐步减少发生冲突的位的方法来完成对标签的识别的。该算法的前提条件是读写器必须能够准确地发现发生冲突的位。因此,在该算法中,标签返回信号的编码方式使用了Manchester编码。在Manchester编码方式中,每个信号位中间引入跳变来同时代表不同的数值和同步信息。一个负电平到正电平的跳变代表逻辑“0”,而一个正电平到负电平的跳变则代表逻辑“1”。在数据传输过程中,“没有变化"的状态是不允许的。因此,当一个读写器收到标签的返回信号后,如果发现某些位信号的状态没有发生改变,那么读写器就能够判断这些位一定发生了冲突。Manchester编码原理如图6所示。 39图6中有两个标签同时处于读写器的读写范围内。当读写器发送读标签命令时,两个标签都返回它们的识别码给读写器。从图中可以看出,标签1识别码的第5位和第2位的值分别是逻辑“0”和逻辑“1”,而标签2的识别码的第5位和第2位分别是逻辑“1”和逻辑“0”。所以,当读写器收到它们的返回信号时,这两位的状态不会改变,从而读写器知道这两位发生了冲突,由此实现多标签防碰撞。图中的虚线表示标签返回信号中发生冲突的位。
图6 Manchester编码原理
3.2 多协议模式分析
在上电后,首先对TRF7960进行初始化设置。为控制TRF7960实现读/写卡等操作,首先得明确TRF7960的读写时序。起始条件是CLK为高,然后发送8位地址,再在发送时钟的下降沿进行数据发送。当CLK为低时,信号发送上升沿表示操作已经结束。在TRF7960内部有两个主要配置寄存器:芯片状态控制寄存器和ISO控制寄存器,00h和01h分别是它们的地址。芯片状态寄存器可以控制电源模式、RF输出开关等。ISO控制寄存器则负责ISO协议选择,它通过设定参数protocol,选择不同的协议工作方式。例如当protocol为0x01时,为ISO15693协议;当protocol为0x02时,为ISO14443A协议;当protocol为0x03时,为ISO14443B协议。根据指定协议进行相应的读写操作, 在设定时间内, 若有FIFO中断或发送结束中断产生,则采集数据并保存。这样就实现了多协议、防碰撞多标签RFID读写器系统。