- UID
- 799481
|
基于TRF7960的多协议射频读卡器设计方案
引言 无线射频识别技术(RFID)作为一项先进的自动识别和数据采集技术,已经广泛应用到生产制造、物流管理、公共安全等各个领域,并带动了读写机具和各类应用产品及系统的开发、生产和推广应用。目前,在我国应用于13.56 MHz的无线射频识别技术领域主要有2个ISO标准,一个是IS014443,另一个是ISO15693。ISO14443定义了TYPE A、TYPE B两种类型协议,通信速率为106 kb/s,它们的区别主要在于载波的调制深度及位的编码方式。ISO15693读写距离较远,而ISO14443读写距离稍近,但后者应用较广泛。这三种协议的卡在各个领域都有着比较广泛的应用,而国内现有的13.56 MHz的射频读卡器,一般仅支持一种协议,且功能较为单一。基于这种现状,本文提出了基于TI公司的TRF7960射频芯片和宏晶公司的 STCllF32XE高速单片机来设计多协议射频读卡器的设计方案。在该读卡器上扩展了点阵图形液晶LCD和串行存储器W25X80以及USB芯片PL2303等外围设备。LCD可以显示各种图形和汉字,串行存储器用来存储点阵字库、图形库等,USB芯片使得该读卡器省去了串口和电源供电端口,可以通过该USB接口和PC管理软件通信。该读卡器使用方便,简单,成本低,电路运行稳定,可以应用到各种场合。
1 读卡器的硬件设计
STCllF32XE单片机是宏晶科技公司设计生产的单时钟/机器周期(IT)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8~12倍。内部集成高可靠复位电路,可用在高速通信、智能控制、强干扰等场合。STCllF32XE内部有32 KB的Flash,29 KB的EEPROM和1 280字节的SRAM。本文采用的STCllF32XE是LQFP-44引脚,除了EA、ALE、PSEN和RST引脚可以定义为通用I/O外,还多了1 个P4口。编程支持ISP下载功能,使用起来比较方便。
TRF7960是TI(德州仪器)公司推出的高频(13.56MHz)多标准射频识别(RFID)阅读器IC产品系列之一。TRF7960采用超小32-pin QFN的高级封装设计,支持ISO/IEC 14443A/B、ISO/IEC 15693、ISO/IEC 18000-3以及TI公司的非接触支付商务与Tag-It应答器产品系列。采用TRF7960的读卡器为微控制器提供了内部时钟,只需1个13.56 MHz的晶振就能工作,而不需要2个标准晶体,从而有助于降低终端读卡器产品的总物料单成本。由于组件很少,读卡器IC耗电、占用的空间也很少,因此可以解决敏感度和噪声衰减问题。其他集成功能还包括故障检查、数据格式化、成帧以及适合多读卡器环境的防碰撞支持等。TRF7960与微控制器之间通信可以使用8位并行或者串行(SPI)的灵活的通信方式。该芯片还具有宽泛的操作电压(2.7~5.5 V)。TRF7960非常适用于安全访问控制、产品认证以及非接触支付系统等应用。
为了使用STCllF32XE单片机内部1 KB的扩展SRAM,此处采用的是8位并行模拟总线接口方式,用单片机的P1口和TRF7960的DO~D7相连,用P2.6、P2.7、P3.2作为控制线分别和TRF7960的DATA CLK、EN、IRQ引脚相连。需要注意,为了使TRF7960通信接口支持5 V的逻辑电平,应该把TRF7960的VDD_I/O引脚接5 V电压。采用模拟总线方式是一种通用的方法,特别是对于不支持总线扩展的单片机更为重要。该设计中使用模拟总线的方式可防止TRF7960和单片机内部的 SRAM发生总线冲突。图1是读卡器的系统硬件原理图。
PL2303是Prolific:公司生产的USB总线转接芯片,可以实现USB转串口,用于为计算机扩展异步串行口,或者将普通的串口设备直接升级到USB总线。PL2303完全兼容USBl.1、USB2.0;3~5 V调节输出,可以满足不同的电压输出接口;全双工发送和接收(RXD、TXD);MODEM控制线(RTS、CTS、DTR、DSR、DCD和 RI);5、6、7或8位数据格式;奇偶校验或无校验;1位、1位半或2位停止位;可编程的波特率75 b/s~6 Mb/s等。因此,PL2303是移动系统和嵌入式系统的理想选择,其小封装能够嵌入任何连接件和手持设备。PL2303在工作模式和休眠模式都具有很低的功耗,非常适合总线供电场合使用。USB芯片使得该读卡器省去了串口和电源供电端口,可以通过该USB接口和PC管理软件通信。
显示屏采用的是基于ST7565S控制器的图形点阵LCD模块,分辨率为128×64,支持串行接口,不带汉字库。为了能使该读卡器可以应用在诸如图书馆图书管理方面和其他需要需要汉字显示的场合,采用华邦公司生产的串行存储器W25X80,自行设计了GB2312汉字库和其他图片库。串行Flash存储器以其体积小、密度高、功耗低、价位低、操作简单而备受青睐,Winbond公司生产的Flash存储器W25X80为8 Mb串行Fla-sh,大小为1 MB,分为4096页,每页为256字节的存储单元,且带有256个字节的缓冲区,SPI的接口方式。使用Flash自行设计汉字库不仅操作十分简单,并且可以灵活地适用于多个设计方案。
系统硬件电路设计应该注意的地方如下:
①尽量让滤波电容靠近芯片,特别是10 nF的电容,这样对高频信号进行有效的滤波;
②尽量减少布线地的回路,所以要求接地的过孔尽量靠近元器件或者IC的接地端;
③2个电感的放置应该成90°的方向,这样主要减少2个电感之间的耦合;
④数字地和模拟地最好是在不同的地方,最好通过磁珠或电感进行连接;
⑤保证芯片中间的部分足够接地,可以在电路板上打9个孔,让芯片充分接地和散热;
⑥布线时尽量减少辅线的长度,特别是射频前端,让元器件保持紧凑、射频输出前端最好保持畅通的输出;
⑦在电路中最好加一些测试点,方便调节硬件电路;
⑧尽量避免在射频线路中通过数字信号。
2 读卡器的软件设计
设计好硬件平台之后,就需要设计系统的软件模块。在软件模块设计中STCllF32XE单片机和TRF7960之间的模拟通信是最关键的一步,因为只有打通了底层通信的关键环节,STCllF32XE才能进一步通过控制TRF7960实现读/写卡的基本操作。为了实现这一步,首先要弄清楚 TRF7960的读写时序。
起始条件是CLK为高,然后先发送8位地址,再发送数据。发送格式在时钟的下降沿进行发送,当CLK为高时,在A/D有1个下降沿,表示结束。根据该时序图可以写出STCllF32XE单片机从TRF7960读/写1个字节的C语言实现代码:
STCllF32XE单片机主要就是通过调用这两个最基本的函数来实现对TRF7960进行复杂的读/写控制的。采用模拟总线通信方式的最大好处就是用C语言写的代码很容易移植到不支持总线扩展的各种单片机上,增加了软件模块的可复用性和可移植性。
打通了底层通信的关键环节之后,就可以一步一步地编写调试各个软件模块。图3是读卡器多协议自适应功能软件模块流程。 |
|