引言
射频识别(rfid)技术是一种自动识别技术,被广泛应用于动物识别、铁路车皮识别、自动高速公路收费、航空行李处理、资产跟踪、公共交通等。该系统主要包括电子标签和阅读器两部分,两者之间通过电磁波进行通信。通过这种方式阅读器可以远距离、非接触地读出电子编码中的所有信息,并通过串口将数据传输到管理主机中,供工作人员记录读取。
实际应用中,阅读器和主机之间是通过串口或网口进行通信的,这种通信方式会造成射频识别系统布线繁琐、成本高、工程量大。一旦系统安装完成后,就不能随意变动位置,降低了系统的重复利用率。
为了使射频识别系统能够突破位置限制、节省空间、降低成本及减小工程量,对传统的阅读器进行了重新设计,实现了阅读器和主机之间无线方式的信息交互传输。
1 整体设计方案
无线传输射频识别阅读器的系统结构如图1所示,主要包括zigbee模块、主控模块、rfid射频读写模块、天线模块、usb转串通信模块和电源模块。
使用了一对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所示。
图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所示。
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模块的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射频识别阅读器对电子标签进行读写操作。系统工作稳定可靠、传输数据正确、反应时间短,具有较高实际应用价值。
暖通空调中的物联网是如何实现连接的
SiC外延层的缺陷控制研究
手把手教你学LabVIEW视觉设计
电子制图设计以及DFX
如何同时使用Canny和 Sobel边缘检测器检测图像中的边缘
ZigBee模块在RFID射频识别阅读器中有着怎样的作用
重磅发布 | 国内首款4GHz,12bit高分辨率示波器 & 8G放大器芯片
OPPO Find X怎么样?它的处理器是什么?
大唐移动推出面向市场成熟可用的C-V2X车联网系统解决方案
虚拟专用服务器如何利用Ai来重塑
华为MatePad的背部真机照曝光,共有四种配色推出
官方再为LG G6造势: 防尘防水性能逆天
灯饰实体市场进入相对低迷期,经营方向向左走还是向右走?
新型UltiMaker PET CF可用于多种金属成型的弯曲模具
鸿利智汇推出第三代调光双色TOP产品
预付费智能电表平台关于电改政策的设计与应用
基于场景的V2X功能测试用例开发思考
TMS320F2812和DSP2812完成的带式输送机多路温度检测系统
2020年全国各省发电量排行
意法半导体发布STM32Cube.AI开发工具