积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 单片机 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
基于S6700芯片与ISO/IEC15693标准的读卡器设计
 
作者:北京理工大学 窦建革 北京邮电大学 窦春燕   来源:单片机及嵌入式系统应用    点击数:146   更新时间:2008-4-17
您可以添加到网摘 让更多人关注此文章:

    

摘要:采用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。



相关文章
· 广州市民今起率先享受“刷”手机乘地铁[192]
· 基于射频识别技术的联机型门禁系统设计[106]
· 基于nRF9E5的有源超高频RFID系统设计[168]
· 基于RFID的预付费电能表的设计[116]
· RFID系统的组态管理软件设计[146]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
英特尔芯片未来技术:探索移动小设备投
Camstar帮助中国医疗器械制造商
中华英才网将被全盘收购
破国外垄断 中国移动存储标
IC设计面临三重挑战 ED
手机电视芯片方案需求多变
北京德尔威科技有限公司与台湾佳营电子
全球手机芯片市场战局将出现重大变革
北京奥运安保系统首次成功运用射频识别
英特尔开发空气传电技术
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
液晶问题...
[原创]本公司长期批发各种滑冰...
[原创]本公司长期超低价批发各...
[原创]本公司长期超低价批发种...
[原创]本公司长期批发各种酒、...
[原创]本公司长期低价批发各种...
[原创]长期低价批发各种母婴用...
[原创]本公司长期批发各种饮料...
[推荐]通讯上通用的一个GSM...
用两个电容代替一个?...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网