电子说
“实现一种便携式射频识别读写系统。在对RFID系统的组成和原理进行分析的基础上,提出基于PIC16F874控制器和RI—R6C一001A射频芯片实现读写器的设计方法;给出相应的电路原理和程序流程以及部分程序。
”
引言
随着计算机和嵌入式系统的发展,IC卡已经融入人们的日常生活,并发展成几大类,其中非接触IC卡的出现引起了人们的特别关注。与之相应,能够读取非接触IC卡内信息的读写器(阅读器)也在不断地发展和更新。非接触式卡又称射频卡(应答器),它使用无线电调制方式和阅读器进行信息交换。
通常根据以下几种标准来设计,即ISO/IEC10536标准、ISO/IEC14443标准、ISO/IEC15693标准。根据ISO/IEC10536标准设计的卡称为“密耦合卡”,对应的阅读器也相应遵循ISO/IEC10536标准设计;根据ISO/IEC14443标准设计的卡是近耦合卡,对应的阅读器遵循ISO/IEC14443标准设计;根据ISO/IEC15693标准设计的卡是遥耦合卡,对应的阅读器遵循ISO/IEC15693标准设计。遥耦合卡比近耦合卡具有更远的读卡距离,但二者均采用13.56 MHz工作频率,均具有防冲突机制[1]。
本文以射频识别技术的实际应用为背景,以智能车辆识别系统的设计为实例,阐述了使用一种TI公司生产的工作于13.56 MHz的典型射频IC卡进行系统开发的方法。该系统采用性价比较高的PIC16F874单片机作为主控器件,具有更强的研究性、实用性和推广性。
1系统总体结构及方案设计
本系统采用基于IS015693协议的TI公司的工作于13.56 MHz的射频标签(RI-I02-112A,RI-I03-112A等)为射频信息钮,由基于RI-R6C一001A[2]的射频信息钮读头模块、天线、单片机、电源稳压模块(UA7805)、串口通信电路(MAX232)、液晶显示电路(SED1335、MAX749)[3]、无线收发模块(AYG一59C)[4]等组成。电源稳压模块把整个系统的工作电压稳定在5 V,MAX749芯片主要是为液晶模块提供所需的负电压。系统总体结构框图如图1所示。
把此系统用于城市的公交车运行情况的统计上,前提是要把每辆公交车上贴一个射频卡,在每一个站牌处安装一个由阅读器组成的系统(包括阅读器、液晶模块、无线收发模块)。该系统的工作过程如下:
首先,由应用软件通过单片机(PIC16F874)向射频信息钮读卡模块(RI-R6C一001A)发出指令(如读射频卡的UID),射频信息钮读卡模块把单片机发过来的数据按所选择的射频协议(ISO15693)[5]的要求对数据进行编码和调制,然后经过天线发送出去。此时,在阅读距离范围内的电子标签(射频卡)收到此命令,经过认证,如果正确,则按命令的要求把自己的UID发送出去(如果错误,则返回错误信息)。
读卡模块经过天线收到此信息,对其进行解调和解码后,通过SPI串口送给单片机。单片机把收到的数据通过RS232串口送给收发模块(AYG一59C),收发模块以短消息的形式把数据发送给控制中心,然后控制中心把收到的数据以短消息群发的形式送给各个智能站牌。站牌处的无线收发模块收到此信息后,通过串口RS232送给单片机。单片机把此信息送给液晶显示模块,通过液晶显示模块乘客就可以知道公交车行驶的情况。
2系统硬件设计
硬件主要包括单片机MCU、RI一R6C-001A、液晶显示器、时钟电路、匹配电路及接口等外围电路。下面给出各部分的详细说明及相关设计。 2.1 MCU部分
图2为MCU加外围器件的应用原理[6],也即控制部分电路原理。
控制部分首先辅助RI-R6C一001A工作。因为RI-R6C一001A芯片要正常工作,实现射频阅读器的功能,不但要有外围电路,而且还要有控制器对其进行适当的控制。PIC16F874控制器有丰富的位操作指令,有SPI串行口和精简的指令集,能够很容易地模拟RI-R6C-001A传送数据的时序以及时钟切换的时序。
由于RI-R6C一001A对外只提供4个引脚(DOUT、DIN、SCLOCK、M-ERR),所以控制器的接口电路相对较简单。DOUT、DIN、SCLOCK三个引脚分别连接到单片机的SPI串行口SDI、SDO、SCK三根线上,用来实现数据的串行传输。M-ERR引脚用来检测接收到射频卡中的数据是否发生错误(若有错误,则此引脚变为高电平),因此把此引脚接到单片机的外部中断输入33引脚,用于检测接收数据是否有错误,进而单片机对其作出相应的处理。
由于RI-R6C一001A在接收射频卡中的数据并把它发送给控制器时,要求控制器对其发送的数据是否结束作出判断,并且RI-R6C-001A不发送数据时就不再送时钟,所以在此电路设计中把RI-R6C一001A的SCLOCK引脚也接到了具有电压变化中断功能的RB4引脚。RB4引脚外接一个二极管,与软件结合起来,要求当控制器供应时钟时,RB4引脚处于高电平输出状态,经过二极管,RB4引脚不会输入时钟;
当RI-R6C-001A供应时钟时,RB4引脚处于输入状态,SCLOCK信号输入此引脚,从而可以对发送数据是否结束作出相应的判断。其次控制器还要适时控制LCD的液晶显示,图2中,ADJ、CTRL是与MAX749相连的,提供LCD所需的-20 V电压;C5、C6、C7、E4、E7以及DO~D7是与LCD相连的控制信号与数据信号;同时也通过MAX232控制无线收发模块AYG一59C数据的发送和接收。
2.2射频部分
微处理器与RI-R6C一001A之间的通信主要通过几根连线实现,图3所示为射频芯片加外围器件的应用原理[2]。
射频电路由三大部分组成:RI-R6C一001A应用电路,与单片机相连的接口电路,天线发送、接收电路。在RI-R6C-001A应用电路中,L1、L2、C2组成的T型网络以及L3、C9组成的LC网络都起滤波作用,使RI-R6C-001A通过天线接收的数据不至于流向发送端TX-OUT,因为此芯片发送数据时频率是13.56 MHz,而接收信号的副载波频率是13.56 MHz/28和13.56 MHz/32(FM)或13.56 MHz/32(AM),R-MOD端的电阻R2决定发送信号的调制深度;
R3、L4、C10、C11组成串联谐振电路,匹配阻抗为50 Ω。可调电容C11用来准确调整电路谐振点在13.56 MHz,这一设计有利于阅读器正确的收/发信息。
3系统软件设计
RI-R6C-001A射频芯片正常工作时,一个基本的请求、应答时序如图4所示。
由图4可知,当控制器由发送转换为接收过程中,它同时由主动转化为被动,由发送时钟转换为接收时钟。这里有时钟切换问题。
a时刻表示控制器发送数据结束(发送数据时由控制器送出时钟);b时刻控制器把DIN置高电平,为SCLOCK准备一个控制模式的转换或者准备一个结束信号ES1;c时刻DIN下降,控制器明确表明把SCLOCK的控制权交给射频芯片RI-R6C一001A(此时SCLOCK=O,并且控制器和射频芯片RI-R6C-001A的时钟线都处于输出状态);
d时刻DIN再次置高电平,表明控制器离开对总线的控制,直到DIN下降从而要求收回时钟的控制权。在d时刻,SCLOCK仍然等于O,但控制器的SCLOCK引脚为输入状态,射频芯片RI-R6C-001A的SCLOCK引脚为输出状态。d时刻之后,射频芯片RI-R6C-001A便开始把接收到的从标签过来的数据送给控制器,以便下一步对收到的数据进行处理。
当射频芯片RI-R6C-001A控制时钟时,它将发送一个S2给控制器。S2对应于标签发过来的SOF,然后接着发送数据7位(图中所示)和一个ES2对应于标签过来的EOF。e时刻表示标签过来的数据射频芯片RI-R6C-001A传送结束。e时刻之后,控制器把DIN置低的目的是收回时钟的控制权,DIN引脚再一次出现一个高电平脉冲,表示控制器收回了对时钟的控制权,在高电平脉冲期间时钟将改变方向。根据需要,可以再进行下一次发送指令。
在智能车辆识别系统中,阅读器对应答器的操作主要是读标签的UID,因此,实现软件时,应严格按照图4所示的时序要求。其实,阅读器对接收到的一系列数据先进行判断,然后决定执行什么命令,再将该命令转换为应答器所能接受的无线处理方式。注意,由于阅读器对命令的分析和执行都需要时间,所以要保证操作完成的速度和正确性。
例如,在发命令CMD之后,要有一个很短的时间延迟,再发二进制数据,以确保RI-R6C-001A能正确地动作。操作指令和参数均用十六进制数表示;同时,阅读器按照ISO15693无线协议规范,将命令信息包调制发出。当得到应答器的应答信息后,再向控制器发送操作结果信息。命令处理过程实际上是命令的解释和执行过程。下面以读一个标签的UID为例(其他命令的用法与之类似),给出系统的工作流程,如图5所示。
下面是读标签UID的程序段[5-6]:
由SPI口模拟的RI-R6C-001A的时序结果如图6所示。图6中,上升沿采样数据,两幅图中均有两个信号,上面的是时钟信号SCLOCK,下面的是数据线DIN。起始位后,发送的数据是十六进制的7D,紧接着是停止位,然后又是一个起始位,依次循环。从时序图中可以看出,用SPI口能完全模拟该射频芯片的协议。
结语
本系统在完成硬件和软件设计后进行了制版、调试和测试。经过测试,阅读器完成了与IC卡之间的数据传输,已经可以使用。系统中程序的设计采用PIC16F87X汇编语言和C语言,通过利用PC机、仿真器以及MPLAB ICE集成开发环境,完成了软件的调试。如果硬件和软件设计合理,则可进一步提高其可靠性和安全性,再加上成本低廉、读写电路简单,应用必然会更加广泛。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !