基于S6700芯片和Tag-it协议标准的读写器

   2023-10-05 互联网2020
核心提示:  0 引言  目前广泛应用于包装品、书刊、生产线等的条形码技术极有可能被一种全新的高科技射频识别技术(RFID)所取代。RFID的

  0 引言

  目前广泛应用于包装品、书刊、生产线等的条形码技术极有可能被一种全新的高科技射频识别技术(RFID)所取代。RFID的基本工作原理:由读写器发射特定频率的无线电磁波,当非接触IC卡接近读写器时,非接触IC卡接收电磁波能量,并将能量存储起来作为收发器所需的电能,而此时非接触IC卡也开始动作,将卡内存储的识别资料以无线电波的方式传送给读写器,最后等待读写器对资料的的进一步操作。

  1 硬件设计

  1 多协议读写器模块-S6700芯片

  本文的射频识别系统包括读写器、非接触IC卡、天线和PALM设备。S6700芯片是读写器的核心部分。该芯片是TI公司开发的针对非接触IC卡读写的多协议收发器。它工作在13.56Mhz频率下,采用SSOP20封装,+5V供电,内部封装有发送调制器和接收解调器,采用曼彻斯特编码方式。 S6700芯片能够支持以下三种协议:TI TAG-IT协议、ISO/IEC 15693-2、ISO/IEC 14443-2(TYPE A)。

  S6700芯片和单片机的通信主要通过时钟线(SCLOCK)、数据输入线(DIN)、数据输出线(DOUT)来完成的(见图一)。S6700芯片上M_ERR线主要表征通信的正确性。

  1) Sclock时钟线是双向的。在IC卡响应S6700命令之前必须进行时钟线的切换,将控制权交由S6700芯片控制。而当响应完成时MCU又将夺回时钟线的控制权。

  2) Din是S6700芯片数据输入线。当MCU发送数据给S6700芯片时,MCU主要依赖该线传送数据和命令给S6700芯片。

  3) Dout是S6700芯片数据输出线。当IC卡向S6700芯片发送回应数据时,S6700芯片通过该线向MCU数据输出。其次DOUT线还用来表征S6700芯片内部数据缓冲区的情况。(后面将详细介绍数据缓冲部分)

  4) M_ERR线。在同时读多张卡的时候表征数据的冲突情况。M_ERR线平时为低电平,存在多卡冲突时此线会升为高电平。

  2 通信协议

  S6700芯片规定一系列的时序,必须严格按照它的时序来一步步的完成操作。

  图二 BASIC REQUEST/RESPONSE的完整时序图

  其中S6700芯片的Sclock时钟线、Din时钟线、Dout时钟线分别由MCU的P1.2线、P1.4线和P1.5线控制。

  2.1 指令时序结构

  下面将对图二中S6700芯片一些基本指令的时序结构加以说明。

  1) Transmitter Off Command(发送器关闭命令)

  图三所示时序作用是快速关闭S6700芯片的载波信号。

  2) Transmitter On Command(发送器开启命令)

  载波可以被每条指令自动开启(除了configuration commands)。最快开启载波的方法是在寄存器模式下执行一条不带数据域的指令。

  3) Clock Switch Command(时钟切换命令)

  命令发送过程中,双向时钟线SCLOCK由MCU控制,发送完毕,在接收卡响应之前必须进行时钟线的切换,将控制权交由S6700芯片控制。而当响应完成时MCU又将夺回时钟线的控制权,因此就涉及到时钟切换的问题。

  a. TRAN1:在TRAN1过程中,MCU把SCLOCK线的控制权交给读写器。当读写器取得SCLOCK线的控制权后,IC卡会发出S2(相当于卡发出的开始帧),然后发出数据和ES2(相当于卡发出的结束帧)。MCU放弃时钟接口控制波形。

  b. TRAN2:在TRAN2过程中,MCU夺回SCLOCK线的控制权。

  4) FIFO Command

  因为MCU无法控制读写器向IC卡的写卡速度,所以S6700芯片必须提供一种机制暂时存储来自MCU的数据,这种机制就是缓存器管理机制。S6700芯片有一个16bit的FIFO。在写卡过程中当DOUT为高电平时,SCLOCK将无时钟信号,这时说明S6700芯片缓存器已满,并要求MCU停止发送数据。于是MCU必须等待直到DOUT又变为低电平才能继续发送数据,这时表明S6700芯片缓存器已清空。

  以上仅仅介绍了S6700芯片的一些基本时序命令。下面将具体介绍读写器和IC卡相互通信的规则。读写器按照Tag-it协议规定的帧结构向IC卡发出请求指令。IC卡接收到请求后会回复相应的状态信息和数据。

  2.2非接触IC卡请求结构

  命令帧的典型结构位:起始位S1,指令字,数据域,停止位ES1。其中S1和ES1各为1Bit,指令字为8Bit,数据域长度则要根据具体指令的不同而不同。

  因为本文对S6700芯片的操作采用普通模式,所以下面以普通模式为例加以说明。

  在普通模式下,命令帧结构如表一。

  1) 起始位S1:它用来表征一条命令的开始。S1时序图如下:

  2) 命令字节:S6700芯片用一个字节来规定读写器与非接触IC卡通讯时的有关参数。例如,00011011B,表示支持的射频协议是Tag-it,FM调制方式,调制深度100%,返回数据波特率26.69kbit/s。注意:命令字节的发送顺序是高位在先,即:MSB FIRST。

  3) 欲写入非接触IC卡内的数据:数据内容符合Tag-it协议的规定即Tag-it帧结构。下面举例S6700芯片使用的Get_Version Request Command(获取版本请求命令)命令来具体描述命令内容的意义。命令格式为0000000011000。

  4) 束位ES1:结束位波形是当SCLOCK高电平时DIN发生一个下降沿。它用来表征一条命令的结束。 ES1时序图如下:

  2.3 非接触IC卡响应结构(见表二)

  1)起始位S2:表示非接触IC卡响应数据的开始,定义为当SCLOCK为高电平时DOUT产生一个上升沿。

  2)响应内容:以上述对应Get_Version请求命令的响应命令Get_Version响应命令为例:

  3)结束位ES2:表示非接触IC卡响应数据的结束,定义为当SCLOCK为高电平时DOUT发生一个下降沿。

  3 PALM和读写器的整合

  现在市面上的读写器设备硬件主要包括一个读写头模块、LCD模块、单片机控制模块和键盘输入模块。整个设备成品体积较大携带不方便,操作也不具备通用性。为了解决上述的一些不足。本文提出了PALM和读写器整合的方案。

  硬件上选用具有Palm操作系统的PDA设备——PALM。Palm自带的输入设备和LCD大大减少了开发的成本和周期。Palm操作系统提供了丰富的语言包,因此不需要在硬件上扩展汉字模块。PALM和读写器整合的设计使得整个射频识别系统外形小巧、携带方便。

  软件上采用J2ME来开发PALM上的应用程序。采用J2ME开发程序的主要优势包括:首先,J2ME提供给Palm的虚拟机KVM大小不到300KB,减小了Palm的开销。其次,用J2ME开发出来的应用程序占用内存非常小。最后J2ME提供KVM的插件实现程序的跨平台机制。

  整个系统运行过程如下:通过串口用户利用PALM设备上开发的程序发送命令数据给单片机。然后单片机根据收到的命令控制S6700芯片,后者产生相关的非接触IC卡的命令数据,并发送给非接触IC卡。非接触IC卡收到命令,经过处理后向S6700芯片返回响应数据。最后由单片机对接收数据进行处理后传送给PALM设备并由程序进行处理。

  4 结束语

  如今RFID的发展及应用十分迅猛,在不久的将来射频识别产品的市场将会十分巨大。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅