物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

EMZ3118 ZigBee在RFID阅读器中的应用

作者:马文琦
来源:单片机
日期:2016-07-21 14:19:27
摘要:针对目前应用广泛的有线传输射频识别阅读器,提出了一种以EMZ3118 ZigBee为无线收发器,在传统的RFID射频识别阅读器上进行无线功能拓展的无线传输射频识别系统。无线传输射频识别系统主要包括与上位机进行无线通信的功能模块和RFID射频识别阅读器模块,重点对EMZ3118 ZigBee模块的工作原理、使用配置、RFID射频读写电路的设计及工作原理进行了详细介绍。测试结果显示,该设计具有一定实际应用价值。

  引言

  射频识别(RFID)技术是一种自动识别技术,被广泛应用于动物识别、铁路车皮识别、自动高速公路收费、航空行李处理、资产跟踪、公共交通等。该系统主要包括电子标签和阅读器两部分,两者之间通过电磁波进行通信。通过这种方式阅读器可以远距离、非接触地读出电子编码中的所有信息,并通过串口将数据传输到管理主机中,供工作人员记录读取。

  实际应用中,阅读器和主机之间是通过串口或网口进行通信的,这种通信方式会造成射频识别系统布线繁琐、成本高、工程量大。一旦系统安装完成后,就不能随意变动位置,降低了系统的重复利用率。

  为了使射频识别系统能够突破位置限制、节省空间、降低成本及减小工程量,对传统的阅读器进行了重新设计,实现了阅读器和主机之间无线方式的信息交互传输。

  1 整体设计方案

  无线传输射频识别阅读器的系统结构如图1所示,主要包括ZigBee模块、主控模块、RFID射频读写模块、天线模块、USB转串通信模块和电源模块。

EMZ3118 ZigBee在RFID阅读器中的应用

  使用了一对ZigBee模块,一个设计在阅读器内,另一个独立设计成带USB接口的信息收发器,安装在上位机上。主控模块是以STM32F107VCT6 为核心的微控制系统模块,RFID射频读写模块负责数据的传输和信号的处理工作,以及对电子标签进行读写操作。核心芯片是EM4094(USB转串通信模块),主要作为备用上位机读写通道设计,当无线通信距离超出有效范围或者无线通信发生故障时,可以使用串口通信连接上位机及阅读器。天线模块采用传统设计,这里不做重点介绍。

  此外,还设计了音频报警和信号指示,分别用来提醒操作人员读卡是否成功指示阅读器通信或电源的状态。

  2 硬件电路设计

  2.1 ZigBee模块

  EMZ3118模块是基于STM32W108的一款完整的嵌入式ZigBee应用模块,带外部射频功率放大器(PA),发射功率最大为+20 dBm(100 mW)。模块提供了ZigBee/IEEES02.15.4兼容的无线解决方案,可满足低成本、远距离的无线传感网应用需求。

  EMZ3118采用先进的系统级芯片STM32W108,拥有稳定可靠的Ember ZigBee Pro协议栈、开发简单便捷、便于集成ZigBee解决方案、通信范围广、网络可靠性高。最大传输距离为1.6 km,具有24个GPIO端口、4个中断端口、支持两个串行接口、6路12位A/D端口。支持点到点、点到多点、P2Pmesh的网络协议,还提供16个直序扩频信道。EMZ3118引脚基本上都对应到STM32W108的引脚上。

  设计中使能EMZ3118的外部射频功率放大器(PA),必须进行一些简单的配置。该模块使用4个CPU引脚来控制外部功放,根据他们的功能定义做出相应的配置,如下所示。

  PA3:输出控制引脚,用于控制外部功放的供电。设置为0,外部功放电源打开;设置为1,外部功放电源关闭。

  PA6:输出控制引脚,外部功放的使能控制。设置为0,外部功放不工作;设置为1,外部功放工作。

  PA7:输出控制引脚,用于选择射频信号的输出天线。设置为0,射频信号从UFL天线接口输出;设置为1,射频信号从MMCX天线接口输出。

  PC5:外部功放收发切换控制引脚,这个引脚需要设置为特殊功能输出模式。

  本设计中EMZ3118直接使用外置天线,无需设计。

  2. 2 主控芯片

  STM32F107VCT6是意法半导体推出的全新STM32互连型(Connectivity)系列微控制器中一款性能较强的产品。该芯片基于ARM Cortex—M3内核,具有256 KBFlash和64 KB SRAM,工作频率可达72 MHz。其集成了多种高性能工业标准接口:一个全速USB(OTG)接口、两个CAN2.0B控制器、一个硬件支持IEEE1588精确时间协议 (PTP)的以太网接口(由硬件实现该协议可降低CPU开销,提高实时应用和联网设备同步通信的响应速度)。此外,该微控制器还支持以太网、USB OTG和CAN2.0B外设接口同时工作,因此只需一块芯片就能设计整合所有这些外设接口的网关设备。

  设计中使用100引脚的STM32F107VCT6,EMZ3118与主控芯片的电路连接原理如图2所示。

EMZ3118 ZigBee在RFID阅读器中的应用

  图2中,EMZ3118和主控芯片之间进行SPI通信,EMZ3118为主控芯片的从设备。PA6为主控芯片在主动模式下的数据输入端(SDO);PA7 为主控芯片在主动模式下的数据输出端(SDI);PA5为串口时钟(SCK);PA4为从设备选择端(NSS),用来使能ZigBee模块;PA3用来控制EMZ3118的外部Rx/Tx切换逻辑控制端。

  2.3 RFID射频读写模块

  RFID射频读写模块中的核心器件是EM4094芯片,是一款集成收发器芯片,可用于构成RFID阅读器的模拟前端读写基站模块。EM4094支持所有EM公司频率为13.56 MHz的收发器芯片,支持ISO15693协议、ISO14443协议和Sony Felicia协议。

  EM4094三个不同的电源引脚分别是VDDA1、VDDA2和VDD。其中,VDDA1和VDDA2为内部天线驱动器ANT1、ANT2供电,每个驱动器需要独立供电。由于两个驱动器可能产生较大的电流,为了给天线提供足够电能,需要在VDDA1及VDDA2引脚间接入一个3.3 μF电容,再分别并联一个1 nF和100 nF的电容,对电源进行滤波和去耦。VDD用于给其他的内部逻辑电路供电。在这个电源线上同样并联一个1 nF和100nF的电容对电源进行滤波和去耦。这3个电源施加相同的电压(5 V或3.3 V),所有电源线都应当与模拟地相连。

  在OSCOUT和OSCIN两端外接13.56 MHz的晶振,用来提供脉冲信号,该信号被送至天线驱动器输出端。为了保证晶振的起振以及稳定性,在晶振两端跨接两个NPO电容。NPO电容的大小由EM4094芯片的可选跨导和晶振参数决定。

  为了确保阅读器内部芯片的稳定性及可靠性,分别用100 nF和1 nF的电容对带隙参考输出(AGD)电压进行去耦。

  引脚ANT1和ANT2是两个天线驱动器的输出端,它们可同相或反相驱动,如果将阅读器天线与EM4094芯片集成到同一块PCB板上,便可选用直接天线连接的方法。这种情况下,天线线圈和串联的电容形成LC振荡回路,回路的谐振频率设计为阅读器的频率。串联一个电阻可以抑制品质因数,且将天线电流设计在 EM4094额定电流值以下。当工作于其谐振频率时,天线即可获得较高的输出功率。

  引脚RFIN1、RFIN2是该芯片接收链上的输入引脚,用来解调芯片收发器发送过来的数据。该引脚上的电压应设计在VDD和GND之间,这两个输入设计必须具有相同性能及相同灵敏度。另外,外接一个阻抗匹配电路,这两个输入端就可用于解调输入相位或幅度来调制信号。没有使用的输入引脚要通过一个10 nF电容接到模拟地,高灵敏度的输入引脚使得读卡器即使在电子标签最小的电源级别上,还能具有较远的读写距离。

  引脚EN用于关闭或使能阅读器电子电路,该引脚可由一个外部单片机进行控制。

  在SPI串行通信模式下,引脚DIN用于数据输入,引脚DOUT用于数据输出,引脚DCLK用于SPI总线的时钟信号。SPI接口可用来对读写器芯片内部的位寄存器进行设置,并参与不同模块参数的设定。在正常模式下,可通过在DIN引脚上施加逻辑电平来关闭或打开天线驱动器。在DOUT引脚上可直接读取引脚DIN上的应答信息。

  RFID射频读写模块电路工作原理图如图3所示。

EMZ3118 ZigBee在RFID阅读器中的应用

  2.4 天线模块

  天线负责发送阅读器对电子标签的读写指令,同时接收标签返回的数据。在射频识别系统中,天线线圈可看作两个相互耦合的电感。两个电感谐振频率必须设计在阅读器工作频率(即13.56 MHz)附近,才能使得电感的耦合程度最高,因此必须先知道天线线圈的电感值,再搭配适当的电容值,根据不同的应用计算出天线的品质因数和电感的电阻值。

  本设计中,参考demo板的参数设计,在PCB板上印刷天线线圈、矩形形状。圈数为4圈,线圈外圈长6.8cm、宽5.5 cm、线宽1 mm、线间距0.2 mm、并联一个3.3kΩ的电阻,容性的阻抗匹配网络(8.2 pF+120 pF并联)电容值串联56 pF+680 pF并联后的电容值。

  USB转串口通信模块采用常用电路,电源模块相关电路除了给芯片EM4094两个独立供电电源使用了磁珠隔离,其他的也采用了常用电路。

  3 软件设计

  3.1 上位机软件设计

  上位机软件主要实现对远端阅读器的读写操作。上位机软件通过RS485口向EMZ3118发送带有阅读器地址的读写指令,EMZ3118将指令无线传输给远端EMZ3118接收并解析。符合接收阅读器地址的指令会发送给主控芯片,主控芯片进一步解析指令后对阅读器进行相关读写操作,并监测阅读器对指令执行的结果是否正确,同时将相关的结果数据原路径传输给上位机,阅读器的工作状态实时显示在工作状态灯上。本设计中的上位机采用C#开发。

  3.2 下位机软件设计

  下位机软件包括ZigBee模块本身的收发配置、阅读器驱动及工作程序设计、主控芯片的初始化及网络通信程序设计,以及系统控制、串行 Flash存储、硬件外围模块驱动、EMZ3118为ZigBee模块的Host驱动、其他接口驱动等。本文重点介绍EMZ3118的Host驱动,软件架构如图4所示。

EMZ3118 ZigBee在RFID阅读器中的应用

  EMZ3118为ZigBee模块的Host驱动,完成STM32F107与EMZ3118模块的SPI通信并提供通用SPI读写能力。代码框架如下所示:

  Assemble Command and put it into cmdbuf.

  While(get_EMZ3118_int_status());

  Spi_send_data(cmdbuf,cmdlen);

  Recvlen=spi_rec_data(resbuf);

  Handle response buffer.

  其中,函数get_EMZ3118_int_status()用于获取模块/INT状态。

  结语

  经过实际测试,本系统能够通过无线传感网络远程对RFID射频识别阅读器进行读写操作,同时控制RFID射频识别阅读器对电子标签进行读写操作。系统工作稳定可靠、传输数据正确、反应时间短,具有较高实际应用价值。