基于ISO14443 TypeA标准读写器的设计与实现
扫描二维码
随时随地手机看文章
摘要:文中以ST公司的超低功耗单片机STMS8L152C6T6为主控芯片,控制恩智浦公司的高集成度读写器芯片MFRC1522,设计实现了遵循ISO/IEC14443AA协议的读写器模块,该模块提供了用户二次开发功能。可方便地集成到用户应用系统中。同时读写摸块还具有在线编程特性,因此可以很方便地供用户使用读写摸块继续开发RFID卡应用产品。
关键词:STM8L;低功耗;RFID;MFRC522
射频识别作为一种非接触式的自动识别技术,已从物联网应用领域扩展至工业监控领域。针对这一需求研究射频识别技术、开发相应产品已成了相关科技人员的重点研究方向之一 。本文介绍的基于ISO14443 TypeA标准的低功耗RFID读写器正是基于上述需求研发的。
1 低功耗STM8L控制芯片
在互补金属氧化物半导体(CMOS)数字逻辑电路中,功耗取决于静态功耗和动态功耗两个因素之和。静态功耗主要由晶体管的偏置电流和漏电流产生;动态功耗则取决于电源电压和工作时钟频率当CMOS逻辑电路以一定时钟频率运行时,静态功耗与动态功耗相比是可以忽略的。但在低功耗模式下、时钟不再运行时,静态功耗则是主要的功耗源。因此,功耗主要取决于微控制器单元(MCU)的芯片面积、MCU电源电压、时钟频率、激活的外设数目或使用的MCU功能数目、工作模式等。
依据上述因素来分析STFM8L如何降低功耗。
MCU电源电压。STM8L工作电压为1.8~3.6 V,其芯片中嵌入了2个稳压器,主稳压器(MVR)和低功耗稳压器(LPVR),在不同的功能模式对内部数字电路提供1.65 V以上电压。
时钟频率。在运行模式下,可选择STM8L内部两种时钟源(16 MHz内部高速RC振荡器(HSI)和128 kHz的内部低速RC振荡器(LSI)),且不影响外设时钟情况下,降低CPU的时钟频率。(CPU时钟分频数为1到128)
减少外设时钟配置。STM8L通过设置外设门控时钟(PCG)来减少未使用的外没时钟来降低功耗。
工作模式。STM8L芯片具有4种主要的低功耗模式。有低功耗运行模式(CPU运行模式下功耗为5.4μA)、低功耗等待模式(CPU停止,外设保持工作,功耗为3.3μA)、活跃暂停模式(CPU停止,自动唤醒模式打开,功耗为1.0μA)、暂停模式(所有时钟关闭,自动唤醒模式关闭,功耗为0.4μA)。
因此,STM8L在多种低功耗模式下低于MSP430、HCS08和Microchip的nanoWattXLP,在现有的RFTD读写器MCU选型下为超低功耗芯片之一。
2 硬件组成
读写器如图1所示,包括MCU、读卡器芯片、天线及其滤波匹配电路、RS232接口、RS485接口、LCD显示、蜂鸣器、工作指示灯等基本模块。在该结构中MCU通过SPI方式与MFRC522连接,供电电压均为3.3 V,所以不需要外围的电压转换电路,外接一个天线及简单的滤波匹配电路,即可实现与卡片的通信。同时,通信接口加入了可用于工业现场设备通信或与其它设备通信的RS485接口。
MCU选用ST公司的超低功耗单片机STM8L152C6T6,该单片机是一款8位微控制器,高达16MIPS的CPU性能和1.8~3.6 V的电压范围,有助于现有的8位系统向电压更低的电源过渡。存储器包括2 kB的内部SRAM、多达32 kB的Flash和1 kB的EERPOM。芯片内部包含12位ADC/DAC转换器,最多有25条通道,转换时间小于3 ms;先进的16位控制定时器,其它外设包括一个I2C接口、一个USART接口和一个SPI接口。其性能优于51系列,性价比高十TI公司的16位芯片MSP430。
读写器芯片采用Philips公司推出的MFRC522,该芯片是一款针对智能仪表领域的符合ISO14443A协议的射频卡操作芯片,采用统一的3.3 V供电,内置13.56 MHz无源天线驱动,且具有多种串行接口 (I2C、SPI、UART)。相比较MFRC500、MFRC531及CLRC632等一系列典型产品,MFRC522具有低电压、低功耗、低成本、体积小、与主控器件通讯方便的特点。
控制端的主控芯片STM8L通过对MFRC522寄存器操作来控制芯片,芯片收到STM8L发来的命令后,通过天线按照ISO14443A协议格式向附近发出13.56 MHz频率的调制信号与卡片通讯。
2.1 MFRC522与MCU接口
控制端扩展口为扩展板提供3.3 V电源以及由主控芯片STM8L引出的GPIO口,所以设计时MFRC522使用SPI总线与STM8L的GPIO模拟SPI总线相连。硬件电路如图2所示(STM8L与MFRC522的连接电路图)
通信中的时钟信号由MCU产生,MFRC522芯片设置为从机模式,接收来自MCU的数据以设置奇存器,并负责射频接口通信中相关数据的收发。当选择SPI模式时,需IIC引脚为低电平,EA引脚为高电平,相应的SDA和D7、D6、D5分别用作MFSDA、MFMISO、MFMOSI、MFSCK。
2.2 天线及匹配电路
MFRC522根据其寄存器的设定对发送数据进行调制得到发送的信号,通过天线驱动引脚TX1和TX2驱动的天线以13.56 MHz的电磁波形式发送出去。在其射频范围内的RFID卡采用RF场的负载调制进行响应。天线接收到卡片的响应信号经过天线匹配电路送到MFRC522的接收引脚RX,芯片内部的接收器对接收信号进行解调、译码,并根据寄存器的设定进行处理,最后将数据通过SPI总线发送给控制端的STM8L。
为了获得稳定、可靠的射频信号,天线部分的电路设计非常关键。在设计读写模块的天线电路时,主要分为三个模块,天线线圈(Coil)匹配电路(Matching Circuit)和EMC滤波电路(EMCFilter),如图3所示。
(1) EMC滤波电路
为了减少信号线上的干扰,使用了EMC低通滤波电路。MFRC522的天线引脚TX1、TX2、RX以及参考电压VMID先经过EMC低通滤波电路,然后再与天线匹配电路连接。
低通滤波电路参数计算
得出:L0=1μH,C0=136 pF。
L0、C0组成了MFRC522射频发送信号的滤波电路;R1、R2、C3、C4组成了接收信号的滤波电路,为了达到良好的电磁兼容,在制作印刷电路板(PCB)时,这部分的电路必须紧靠MFRC522的天线引脚RX、TX1、TX2。
本设计选用的参数组成低通滤波器,谐振频率为13.65 MHz,可以起到滤除13.56 MHz信号高次谐波的作用,如上公式(1)。
(2)天线及匹配电路
为了给RFID卡提供足够的能量,天线与卡片间必须实现紧耦合,耦合系数最少为0.3(耦合系数为0时,即由于距离太远或磁屏蔽导致完全去耦;耦合系数为1即全耦合)。因此本设计为三圈的80 mmX45 mm矩形天线,可等效为半径约3.4 cm的等面积环形天线,其有效工作距离为0~3cm。此时,天线线圈产生的电感,有下列公式计算:
其中:I1为环形天线一圈的周长;D1为导线直径或PCB板上天线导线的宽度;K为天线形状系数(圆形天线为1.07,矩形天线为1.47);N1为天线的圈数;p为与线圈结构相关的系数,印刷电路板线圈取1.8。因此,由公式(2)可计算出天线线圈的电感值约为705 nH。
在匹配电路中,电容Cs、Cp的值由天线本身和环境影响来决定。由于天线电感和电容的实际值由不同的参数决定,如PCB类型、导线的厚度、线圈间的距离、附近环境等,要得到最优的性能,Cs、Cp的值要在实际设计中进行调谐,初始值由天线电感决定。
(3)品质因数
天线品质因数Q是保证天线正确调谐和性能的一个重要指标。较高的品质因数Q值会使天线线圈中的电流强度大些,由此改善了对电子标签的功率传送情况。与此相反,天线的传输带宽刚好与品质因数Q值成反比。选择的品质因数过高会导致带宽缩小,从而明显地减弱电子标签接收到的调制边带。
通常情况,由于元件的容差和对温度的依靠,ISO14443A标准中Q因子值常取35,来保证正确的数据传输。ISO14443A标准的波特率是106 kHz/s,数据从读写器传输到卡使用频率为13.56 MHz,脉宽T=3 μs的改进Miller编码,调制深度为100%的ASK信号。
根据带宽B的定义
以及时间与带宽乘积的规定
B·T≥1
求得:Q≤f0·T=13.56 MHz·3μs=40.68
关于天线的重要参数——品质因数Q,计算公式如下
若经公式(3)汁算的Q值过高时,会导致带通变窄,从而影响调制信号的发送。可以在天线的两边分别串联电阻Rest,增加天线阻抗,以降低Q值。相当于天线增加电阻,Rest的值用下面的公式算出
式中:ω=2πf0;La为天线电感;Q为拟调整值;Rest为天线电阻。
(4)天线电阻的估算
在ISO14443A标准的工作频率为13.56 MHz,在这个频率范围内不足以用DC电阻RDC来描述天线线圈,电阻的集肤效应(skin effect)不能忽略。所以,需用天线线圈的AC电阻Rant描述。由于不可能计算天线线圈完整的Rant,所以由经验公式估算天线调谐时的Rant。公式如下
ρ为铜的电阻率;L为微带线长度;S为微带线截面积。
3 应用软件
本节将重点介绍渎卡器的软件设计。软件设计思想:
(1)读卡器读取射频天线范围内的Mifarel射频卡数据;
(2)系统MCU将读取数据进行分析处理,符合条件,则进入下一步;
(3) MCU将卡片数据与当前时间一同存入单片机内部的EEPROM,并在LCD上显示卡数据;
(4)在数据上传服务器时,将单片机内部EEPROM存入的信息通过串口RS232传给PC。
该读写器设备配有RS485工业网络接口,方便与工业现场的485总线相对接。用户也可通过增加高级命令接口函数进行二次开发,并在STM8S/A/L系列以及STM32巾互相移植。
3.1 软件功能概述
读写模块的软件要实现两个基本功能,一是实现在线编程,可将用户应用程序在线写入到STM8L Flash存储区的用户程序空间,支持用户的二次开发;二是实现对RFID卡的操作,提供方便的函数给用户应用程序调用,包括与RFID卡通信的底层通信函数以及供外部调用的高层命令接口函数。软件构成如图4所示。
(1)监控程序。驻留在芯片中的监控程序可以实现用户应用程序的在线写入。其内部包含了通信握手、Flash擦除、Flash写入、数据接收与发送及断点调试处理等主要功能。
(2)底层通信函数。底层通信函数主要文现MFRC522与射频卡之间的通信,并进行基本的功能操作,如:询卡函数、防冲突函数、选中卡片函数、密码验证函数等。
(3)高层命令接口。高层命令是基础命令的集成,它是为方便用户系统使用特别提供的。用高层命令可极大地提高用户系统的二次开发速度。该类命令接口函数包括得卡序列号函数(Card GetSn)、读卡片数据块函数(ReadCard)、写卡片数据块函数(WriteCard)等。
(4)应用程序。接收PC机发来的读写卡操作高层命令,直接执行事先封装好的读写卡操作函数。
3.2 MCU程序设计
主控MCU上电后,首先将控制脚的电位进行重置,例如蜂呜器,LED灯等,然后将MFRC522进行复位(RESET),并且将其天线进行重新开启。当MFRC522天线正确开启后,一旦卡片到达可响应范围后,就能够被MFRC522进行检测以及读取,而主控MCU就会循环的读取MFRC522是否有卡片数据进行了传输。当有卡片信息被读取的时候,就对该卡片的数据进行“打包”,然后传输给上位机。流程图如图5所示。
同样,主控MCU也要循环检测是否收到了来自上位机的命令。如果有命令收取,则首先对其完整性以及准确性进行校验,如果没有通过校验,则将本帧数据抛弃,不予响应,如果通过了校验则执行对应的命令,并且执行那个结果“打包”,发送给上位机,并继续进行卡片、上位机命令的循环检测。
4 结束语
本文介绍了射频芯片MFRC522在读写器终端中的应用设计,对硬件、软件设计方面均进行了详细阐述。经实践验证,本系统能够准确采集射频卡中的ID信息,并最终成功传送给服务器端。此读写器可供二次开发,适合便携式射频识别系统应用,对RFID的推广具有一定的实用价值。