STM32的RFID手持终端硬件设计
扫描二维码
随时随地手机看文章
摘要:为满足对移动手持终端高性能、低功耗、低成本的需求,设计了一种基于STM32的RFID手持终端。介绍了以STM32F103VET6为核心,CL RC632作为读卡芯片的RFID手持终端设计方案。设计了直接耦合天线、人机接口、数据存储以及数据通信等电路。实验证明,该手持终端可以读写符合ISO/IEC 14443和ISO/IEC 15693标准的射频标签,读卡距离满足使用需求。
关键词:RFID;手持终端;STM32;CLRC632;TFTLCD
引言
射频识别(Radlo Frequency Identification,RFID)技术是近年来兴起的一种自动识别技术。该技术可利用射频信号识别对象,利用电磁耦合原理交换信息。与传统的识别技术相比,RFID技术具有读卡器和射频标签无接触的特点。由于RFID技术所具有的优点,它目前被广泛应用于身份识别、电子商务、工业自动化以及交通运输等领域。但是,现有的RFID读卡器在大规模的移动应用中仍存在着一些不足,例如处理速度较慢、人机交互不够友好、成本较高、不能方便与上位机进行通信等。本文设计的RFID手持终端采用STM32F103VET6嵌入式处理器作为主控芯片,CLRC632作为射频读卡芯片,可以读写工作在13.56 MHz的多种射频标签,并且可以存储大量标签数据,与上位机进行有线或无线方式的通信。
1 RFID手持终端的整体结构
RFID手持终端系统由微控制器、射频读卡、数据存储、TFTLCD显示、键盘输入、通信模块等部分组成,RFID手持终端的结构框图如图1所示。由丁RFID手持终端属于移动没备,对功耗有较严格的要求。另外,手持终端系统需要微控制器与外部模块通过多种总线进行实时通信,因此采用了ST公司的STM32系列的微控制器作为主控端,该系列芯片基于ARM Cortcx-M3内核,具有丰富的外部接口、功能强大。同时,该系列芯片功耗极低,其功耗相当于0.5 mA/MHz。CLRC632是NXP公司生产的应用于1 3.56 MHz的非接触式射频读卡芯片,该芯片通过SPI总线与微控制器连接。数据存储模块使用了Atmel公司生产的EEPROM芯片AT24C64存储手持终端工作状态,使用大容量SD卡存储读取的标签数据以及用于显示的GBK字库、图标等数据。本手持终端采用了2.8寸的TFTLCD屏作为显示输出,支持触摸屏和键盘两种输入方式。与上位机的通信可以采用USB总线进行有线通信,也可以通过无线通信模块进行无线通信。
2 RFID手持终端的硬件设计
2.1 主控芯片及其外围接口的设计
主控芯片采用了ST公司生产的基于ARM Cortex-M3内核的嵌入式处理器STM32F103VET6。该处理器的工作频率为72MHz,支持多种通信总线,其中包括2个I2C总线接口、5个USART串行接口、3个SPI总线接口、CAN总线和USB总线。同时,该处理器还具有80个通用I/O接口、16位定时器、A/D转换器、实时时钟等功能。该处理器可以完全满足本RFID手持终端的设计需求。
为了满足RFID手持终端移动使用的需求,采用了7.4 V的锂电池进行供电。采用了AMSIII7-5.0芯片提供5 V电压,AMSIII7-3.3芯片提供3.3 V电压。AMSIII7系列芯片可以输出1A的电流,输入电压调节率小于0.2%,负载调节率小于0.4%,输出电压稳定。为了抗干扰,STM32F103VET6上的每个电源引脚都并联了去耦合的0.1μF电容,这些电容应该尽可能地靠近电源/地引脚。
STM32F103VET6需要两个外部时钟源,高速外部时钟源(HSE)和低速外部时钟源(LSE)。HSE晶振的频率是8 MHz,作用是产生精确的主时钟,用于驱动系统时钟。LSE晶振的频率是32.768kHz,作用是为片内实时时钟提供一个低功耗且高精度的时钟源,用于时钟或日历等需要计时的场合。晶振和负载电容需要尽可能地靠近芯片的引脚,以减小输出失真和启动稳定时间。负载电容值必须根据选定的品振进行调节。当选择负载电容值时,PCB板和芯片引脚的电容值也必须被计算进去。这里采用了20pF的电容作为HSE的负载电容,10 pF的电容作为LSE的负载电容。在设计PCB时,振荡电路旁边要避免有高频信号经过,走线长度越短越好。
STM32F103VET6采用4线SPI总线方式与读卡芯片CLRC632和SD卡进行通信,并与触摸屏控制器连接,完成触摸屏的压力感应;采用I2C总线方式与外部EEPROM AT24C64进行通信;采用16位的I/O接口与TFTLCD模块连接,实现系统显示输出;采用16位的I/O接口与键盘连接,最多可支持64个按键输入;采用USART串行接口实现程序的烧写和渊试,并与无线通信模块连接,实现与上位机的无线通信;采用USB总线实现与上位机的高速有线通信。
2.2 射频读卡芯片及天线网络的设计
本RFID手持终端使用NXP公司生产的CLRC632作为射频读卡芯片。该芯片是一种应用于13.56 MHz的非接触式射频标签的芯片,支持符合ISO/IEC14443和ISO/IEC15693标准的射频标签。该芯片支持10 cm的最大操作距离,与NXP公司的其他射频读卡芯片MFRC500、MFRC530、MF RC531、SLRC400引脚兼容。该芯片可以用8位并行接口或SPI总线方式与微控制器进行通信。CLRC632电路原理图如图2所示。
本文中的CLRC632使用SPI方式与主控芯片STM32F103VET6进行通信。CLRC632提供了与SPI总线标准兼容的接口,在SPI通信过程中作为从设备。SPI总线时钟信号SCK由微控制器产生,主控芯片使用MOSI数据线向CLRC632发送控制信息,CLRC632使用MISO数据线向主控芯片发送数据。
对于CLRC632,可以使用两种方法将天线连接到读卡器:直接匹配天线和50 Ω匹配天线。本文中采用直接匹配的方式将CLRC632与天线连接,包括了EMC低通滤波器、天线匹配电路与接收电路。CLRC632的工作频率是13.56 MHz,产生该频率的晶振同时也产生高次谐波。为了符合国际EMC规定,采用EMC低通滤波器抑制高次谐波。天线匹配电路与天线进行阻抗匹配,以获得最大的功率传输,增大读卡距离,同时避免阻抗失配可能对电路造成的损害。本文中的RFID手持终端采用PCB环形天线,其电感量由如下公式进行估算:
式中长度单位为cm,电感值单位为nH。l1为一圈导线的长度,取值20 cm;D1为导线的直径,取值0.1 cm;K为天线形状常数,本文中的天线是矩形天线,取值K=1.47;N为导线的圈数,取值4。代入公式,计算得L1=1857 nH。代入芯片厂家提供的表格进行计算,得到与天线并联的电容容值为132.3 pF,与天线串联的电容容值为17.5pF。在实际电路设计中,与天线并联的电容采用100 pF与22 pF电容并联得到,与天线串联的电容采用18 pF。接收电路使用了CLRC632内部产牛的VMID引脚作为输入电压。在VMID和地线之间连接了一个0.1μF电容,起到了减少干扰的作用。天线及其匹配电路原理图如图3所示(L1、L2是天线的等效电感)。
2.3 人机接口部分的设计
在RFID手持终端的使用过程中,需要向射频标签发送数据以及实现牧据存储、与上位机的数据通信等功能,这就要求输入数据和控制信息,并且将数据和控制信息直观地显示出来。RFID手持终端采用了TFTLCD进行显示输出,支持触摸屏和键盘两种方式的输入,其中触摸屏主要用于输入控制信息,键盘主要用于输入数据。
TFTLCD部分采用了26万色的TFTLCD屏幕,分辨率为320×240,可以实现友好的人机接口界面显示。TFTLCD控制器采用了Ilitek公司生产的IL19320,可以通过多种并行通信方式与微控制器通信。为了加快传输速率以显示彩色界面,这里采用了16位的并行总线与STM32F103VET6相连接。为了降低系统功耗,通过BL_VDD引脚控制屏幕背光,如果一段时间内没有对触摸屏或键盘进行操作,屏幕背光将熄灭。
TFTLCD屏幕自带电阻式触摸屏,利用压力感应进行控制。电阻式触摸屏成本低、精度高、不怕灰尘、水汽和油污,在恶劣的移动使用环境下不易损坏,吏适用于本RFID手持终端。采用了TI公司生产的ADS7846作为触摸屏控制芯片。ADS7846内部集成了12位逐次逼近型A/D转换器,转换速率为125 kHz。使用时,ADS7846通过两次A/D转换得到触点位置的X、Y坐标,通过SPI总线与STM32F103VET6通信,完成对控制信息的输入。ADS7846电路原理图如图4所示。
由于手持终端的便携性需求,TFTLCD屏幕不可能太大。这样,若通过TFTLCD屏幕显示的虚拟键盘输入数据,每个按键的空间很小,会给输入带来困难。因此,在STM32F103VET6的通用I/O口上连接了矩阵键盘,通过键盘扫描完成数据的输入。使用了STM32F103VET6的PD0~PD15共16个通用I/O口连接键盘,最多可连接64个按键,有效减少了处理器I/O资源的占用。使用时,可以根据实际需要,连接相应数量的按键。
2.4 数据存储部分的设计
STM432F103VET6内部的存储资源包括64 KB的SRAM和512 KB的Flash。为了完成对RFID手持终端工作状态、用于显示的资源以及大量射频标签数据的存储,需要对数据存储部分加以扩展。手持终端采用了Atmel公司生产的EEPROM芯片AT24C64存储手持终端工作状态。该芯片可以存储64 Kb的数据,相当于8192字节。该芯片通过I2C总线与STM32F103VET6进行通信,包括数据线SDA和时钟线SCL。由于I2C总线接口采用开漏输出,必须通过外部上拉电阻将信号线拉至高电平。综合考虑端口驱动能力和信号传输速率,选用4.7 kΩ的上拉电阻。使用时,AT24C64中存储了手持终端的ID信息,在与上位机通信时进行安全认证。AT24C64中也存储了触摸屏的校准数据,实现触摸屏和TFTLCD之间的坐标转换。SD卡体积小、容量大、传输速率快,广泛应用于移动设备。本手持终端采用了SD卡存储汉字字库、界面图片和射频卡中读取的数据。SD卡通过SPI总线与STM32F103VET6进行通信,经实验证明每秒可以传输2 MB以上的数据,可以满足手持终端对数据传输速率的要求。另外,由于SD卡可以很方便地从手持终端巾取出,也可以使用上位机的通用读卡器对SD卡进行读写,实现手持终端和上位机的数据交换。
2.5 数据通信部分的设计
RFID手持终端使用STM32F103VET6芯片内部集成的USB总线与上位机完成有线通信。USB总线支持即插即用和热插拔,使用方便。同时,USB 2.0全速总线支持480 Mbps的传输速率,可以快速将手持终端中的信息传输到上位机。为了满足手持终端的移动使用需求,采用了Sim com公司牛产的GPRS模块SIM300,它的工作频率为GSM/GPRS 900/1800 MHz,可以在低功耗的条件下,完成手持终端数据的无线传输。在使用时,通过STM32F103VET6的USART串口与SIM300模块连接,通过AT指令实现网络连接、数据发送等功能。
3 系统测试
设计了RFID手持终端的PCB板,其主板大小约为1 6 cm×9 cm,可以满足手持终端的便携需求。使用STM32F103VET6自带的ISP下载工具通过USART串口将程序下载后,使用本RFID手持终端对符合ISO/IEC14443和ISO/IEC 15693标准的射频标签进行读写,操作距离均不小于8 cm,读卡及显示速度均满足使用需求。
将读卡得到的数据存储到SD卡中,通过USB总线或GPRS模块发送到上位机,上位机可以接收到卡号、扇区、数据等信息以便进行进一步的数据处理。
结语
本文详细介绍了基于STM32F103VET6的13.56MHz RFID手持终端的硬件没计方法。该读卡器具有处理速度快、功耗低、人机交互友好、与上位机通信方便等特点,适用于多种需要移动应用的场合,尤其适用于物流行业,具有广阔的应用前景。