天天加油 - 助您成才
基于S6700芯片与ISO/IEC15693标准的读卡器设计
您正在看的电子通信论文是:基于S6700芯片与ISO/IEC15693标准的读卡器设计。

摘要:采用TI公司最新的多协议收发器芯片S6700,结合MCU设计了ISO/IEC15693读卡器,介绍S6700通信协议和ISO/ieC15693标准,给出部分子程序。S6700和MCU的接口非常简单。

    关键词:IC卡 RFID ISO/ieC15693 读卡器

1 综述

自从20世纪70年代IC卡诞生以来,在飞速发展的微电子技术的带动下,IC卡已经深入到社会生活的各个角落,各种各样的卡大大方便了人们的生活:银行的食堂卡、信用卡,公交车使用的交通卡,就餐使用的食堂卡,出入管理使用的考勤卡,打电话使用的付费电话卡,手机中使用的SIM卡等等。

IC卡又称为集成电路卡。卡片内封装有集成电路,用以存储和处理数据。IC卡的发展经历了从存储卡到智能卡,从接触式卡到非接触式卡,从近距离到远距离的过程。ISO/IEC7816标准定义的卡是接触卡,读卡机具必须和卡的触点接触才能和和卡进行信息交换,所以磨损严重,容易受污染,使用寿命低,操作速度慢。为此,非接触式卡技术迎刃而生。非接触式卡又称射频卡、感应卡,采用无线电调制方式和读卡机具进行信息交换。ISO/IEC10536定义的卡称为密耦合卡;ISO/IEC 14443定义的卡是近耦合卡(PICC),对应读卡机具简写为PCD;ISO/ieC15693对应的卡是遥耦合卡(VICC),对应的读卡机具简写为VCD。VICC比PICC具有更远的读卡距离,二者均采用13.56MHz工作频率,均具有防冲突机制。

图1所示的框图简单表示了射频卡读写系统的工作原理。

2 硬件设计

2.1 S6700芯片

S6700芯片是TI公司最新开发的针对IC卡读写的多协议收发器。它提供给用户数字接口,所以应用非常方便。ASIC能够支持的协议包括:TI TAGIT协议、ISO/IEC 15693-2、ISO/ieC 14443-2(TYPE A)等。S6700采用SSOP20封装,+5V供电,内部封装有发送调制器和接收解调器,采和曼彻斯特编码方式,典型发送功率200mW,其ESD保护符合MILSTD-883标准,有IDLE、POWER DOWN、FULL POWER三种电源管理功能。

笔者利用该ASIC结合MCU完整的实现了ISO/ieC 15693-3所规定的对VICC操作上层协议。

ISO/ieC 15693-2所规定的VCD与VICC通信物理层协议全部由ASIC实现,用户通过同步串行接口(SPI)遵照ASCI的通信求和ASIC打交道就可以实现VICC的读写操作。MCU和ASIC的通信接口有三根线:SCLOCK、DIN、DOUT,分别代表时钟线、数据输入线、数据输出线。时钟线是双向的,发送数据时由MCU控制,接收数据时由ASIC控制,在时钟的上升沿ASIC锁存数据。DOUT除了在接收数据期间的数据输出功能外,还用来表征ASIC内部FIFO的情况。DOUT内部下拉,平时为低电平。输入数据过程中,当ASIC的16位FIFO寄存器满时,DOUT线会自动跳变为高电平,直到FIFO寄存器空出,DOUT线又会跳变为低电平。在DOUT为高电平期间,输入数据无效。除了通信线外,M_ERR线用来在同时读多张卡的时候表征数据的冲突情况。同样,M_RR线内部下拉,平时为低电平,冲突时此线会升为高电平。

图2 

    所设计的应用电路如图2所示。图2中包括三个部分:ASIC典型应用电路、与MCU接口电路和天线电路。R2、L1、C5、C6组成串联谐振电路,匹配阻抗50Ω,可调电容C6用来准确调整电路谐振点在13.56MHz。如果认为ASIC 200mW输出功率不足,也可以再加一级功放电路,以提高读写距离。

对ASIC的操作有三种模式:普通模式、寄存器模式和直接模式。直接模式下,MCU要直接面向处理射频信号,比较复杂,所以此种模式一般不用。普通模式和寄存器模式操作的均是标准的数字信号,其不同在于规定芯片操作的一些参数,例如:所采用的射频协议、调制方式及传输速率是由命令序列中规定的还是由寄存器所设定的。普通模式每条指令均含有该指令使用的参数,而寄存器模式指令序列中并不含这些参数,而是由预先写入的寄存器中的数值所决定。注意,ASIC上电后必须首先初始化时间寄存器,芯片才能正常工作。

2.2 VICC——Tag-it HF-1应答器

Tag-it是TI公司为其最新开发的RFID TRANSPONDER(应答器)的注册商标,是一个产品系列。Tag-it完全和ISO/ieC15693兼容,是VICC的一种。按TI的设想,Tag-it主要应用在智能标签领域内,例如:特快专递、航空行李管理,电子门票等等。

Tag-it内有64位的UID(卡号)和8位的AFI(应用识别号)、8位的DSFID(数据存储格式),用来标识卡和特定应用的特征。卡内有2Kbit EEPROM,分成64个块,每个块32个bit。每个块均可以锁定,以保护数据免予修改。AFI、DSFID和32个块均可读可写,用以存储用户的数据。Tag-it采用13.56MHz的载波频率,工作于“READER TALKS FIRST”模式下,即:一问一答的模式。卡内有防冲突机制,可以同时读多张卡而不会造成冲突。

事实上一张卡可以有多种应用,不同的块可以存储不同应用的数据,即所谓的“一卡通”。遗憾的是,Tag-it内没有逻辑加密电路,无法实现密码功能,这限制了Tag-it在其它保密性要求较高的领域的应用。

3 通信协议

发给ASIC的命令序列必须符合ASIC通信协议和ISO/ieC15693-3规范。

3.1 命令结构

在普通模式下,命令序列结构如下:

起如位S1 命令字节(8位)* 数据 结束位ES1

*在寄存器模式下,命令字节是1位,且该位为1。

*起邕位S1:起始位波形是当SCLOCK位高电平时DIN发生一个上升沿。

*命令字节:规定ASIC与VICC通讯时的有关参数。例如,2DH,表示支持的射频协议是15693(1 out of 4),AM调制方式,调制率100%,返回数据波特率6.67kb/s。注意:命令字节的发送顺序是高位在先,即:MSB FIRST。

*数据:数据域内容由15693-3所规定。

15693-3命令的一般格式是:

起始位S1 FLAGS 命令序号 命令内容 CRC16 结束位ES1

15693命令序列中,FLAGS规定着命令内容中某些可选域存在与否。注意到S1和ES1在ASIC命令序列中已经存在,所以只须把15693命令序列中FLAGS、命令序号、命令内容、CRC16等域的内容取出填入ASIC序列中的数据域打包。注意:数据域的发送顺序是低位在先,即:LSB FIRST。

例如:发送字节20H的波形是:

    *结束位ES1:结束位波形是当SCLOCK高电平时DIN发生一个下跳沿。

3.2 响应结构

VICC响应的一般格式是:

起始位S2 FLAGS 响应内容 CRC16 结束位ES2

*起台位S2:表示VICC响应数据的开始,定义为当SCLOCK为高电平时DOUT发生一个上升沿。

*结束位ES2:表示VICC响应数据的结束,定义为当SCLOCK为高电平时DOUT发生一个下降沿。

3.3 通信过程注意的问题

①时间寄存器初始化。初始化序列是:S1 01111011 00000001 11000ES1。

②发送顺序。命令字节(8位)发送的顺序是MSB FIRST,其它数据均是LSB FIRST。

③FIFO管理。发送每一位时都要检测DOUT的电平。DOUT高电平时停止发送,直到DOUT恢复为低电平。

④时钟线切换。命令发送过程中,双向时钟SCLOCK线由MCU控制,发送完毕,在接收VICC响应之前必须进行时钟线的切换,将控制权交由ASIC控制。

MCU放弃时钟线控制波形(TRAN1):

MCU获得时线控制波形(TRAN2):

⑤CRC校验。CRC16校验是对15693-3规定的FLAGS、命令序列号、命令内容等字节的校验,不包括起始位和命令字节(8位)。

⑥适当延时。例如:发送命令字节后适当延时约100μs,以利ASIC正确动作。

3.4 举例

以读一个扇区为例,采用普通模式,VCD和VICC交互的完整过程如下:

(发送)S1(起始位)2D(命令字节)40(FLAGS)

20(读扇区命令序号)01(扇区号)00

(校验LOW BYTE)F2(校验HIGH BYTE)

ES1(结束位)TRAN1(SCLOCK切换)

(接收)S2(起始位)00(FLAGS)00(扇区安全状态)

31(数据1)32(数据2)33(数据3)34(数据4)BD 7F(校验)ES2(结束位)

3.5 关于反冲突算法

ISO/ieC 15693中描述的VICC反冲突算法非常费解,笔者通过实践摸索解决了这个问题,此处作为一简单说明。该算法基本上是一种搜索算法,卡内相对应的是一种比较应答机制。举例说明,假如READER磁场范围内有两张卡,其UID分别是E00700000158D1D2和E0070000015869E8,这样当READER采用NON-ADDRESSED模式指令去读的时候,两张卡均会回答,M_ERR线会跳变为高电平表示数据冲突。INVENTORY命令用来查询当前磁场范围内卡的卡号,专用用于解决冲突问题。其参数包括:FLAGS、COMMAND、MASKLENGTH、MASKVALUE。一种最简单的情况,设定:FLAGS.6=Nb_slots_flag=1,MAKLENGTH=4,MASKVALUE=0,当命令序列发送后,MASKVALUE会被自动与卡的UID的最低位比较,因为0≠2≠8,所以两张卡均不回答。同样的命令,如果MASKVALUE=2,则第一张卡就会回答;当MASKVALUE=8时第二张卡回答。如果两张卡的卡号是:E00700000158D1D2和E0070000015869E2,则当MASKLENGTH=4,MASKVALUE=2时两张卡均回答,就会发生冲突。解决的方法是:令MASKLENGTH=8,MASKVALUE=X2,X从0到F自增。这样,X2=D2时第一张卡回答,X2=E2时,第二张卡回答。依此类推。卡的UID最低位冲突的概率为62‰,最低两位冲突的榔为4‰。理解了此算法,就很容易理解标准中所描述的复杂算法。笔者采用这种逐位搜索算法编的读多卡程序,连续读3张卡的时间不超过500ms。

4 软件设计

笔者利用仿真器和PC机作为调试工具,采用8051汇编语言编程并调试通过了ISO/ieC15693-3所要求的所有命令。软件的主要功能包括:从PCRS232口接收命令数据,进行一次分拣处理后打包成ASIC命令序列,并发送给VICC。然后,接收VICC的响应,进行一定的分拣处理后通过RS232发送给PC机。本文只描述有关与VICC通信的部分。程序见网络补充版。http://www.dpj.com.cn。

排行

  1. 论会计和审计中的重要性原则
  2. 新世纪会计的发展趋势
  3. 利用DVI实现双屏幕超宽图像显示
  4. 2.4GHz DSSS收发器芯片组RFW320原
  5. 中小企业如何吸引人才
  6. 论张家界市旅游业可持续发展
  7. 我国国内旅游业发展的现状、趋势
  8. 公允价值计量属性研究
  9. 打造人力资源管理新模式——来自
  10. 一种数码相机成像和视频处理前端
  11. 单片机复位电路的可靠性分析
  12. Protel软件在高频电路布线中的技
  13. 室内设计七大新趋势
  14. 浅谈混凝土的施工温度与裂缝
  15. CTE翻板型滤池
  16. 加入WTO后铁路建设监理行业的改革
  1. 2.4GHz DSSS收发器芯片组RFW320原
  2. 打造人力资源管理新模式——来自
  3. 论知识经济的社会文化观与现代管
  4. 利用DVI实现双屏幕超宽图像显示
  5. 论会计和审计中的重要性原则
  6. 三峡大坝混凝土快速施工方案及工
  7. 论内部控制
  8. 一种实用的中频数字接收机设计
  9. 中小企业如何吸引人才
  10. 论张家界市旅游业可持续发展
  11. 我国国内旅游业发展的现状、趋势
  12. 水土保持发展的战略目标及建议
  13. 论物流成本研究
  14. 新世纪会计的发展趋势
  15. 树立以人为本的改革观
  16. 《可再生能源开发利用促进法》对
  1. 树立以人为本的改革观
  2. 论张家界市旅游业可持续发展
  3. 打造人力资源管理新模式——来自
  4. 新世纪会计的发展趋势
  5. 企业人才管理的探索
  6. 论内部控制
  7. VPN技术综述及应用
  8. 红外通讯协议在嵌入式系统中的实
  9. 提供 64 级对数调光的白光 LED 驱
  10. 深化环境资源法学研究 促进人与自
  11. 环保自力救济性质分析与对策研究
  12. 我国国内旅游业发展的现状、趋势
  13. 中小企业如何吸引人才
  14. ADC信噪比的分析及高速高分辨率A
  15. 可视化编程串行控制中文字库液晶
  16. 利用DVI实现双屏幕超宽图像显示

最近更新

  • 推荐阅读
  • 电子通信论文《基于S6700芯片与ISO/IEC15693标准的读卡器设计》基于S6700芯片与ISO/IEC15693标准的读卡器设计