思索网:WWW.4SO.NET
网站首页
设为首页
加入收藏
社区论坛
联系我们
网站地图
发现个人价值
提高企业内涵
一切源于思索
首页
企业之家
公关文秘
免费论文
网上办公指南
操作系统
多媒体应用
现代教学
下载中心
专题报道
推荐文章
评论
English Article
IT资讯
网页设计
网站运营
编程开发
平面设计
网络安全
工具下载
站内搜索
最新文章
热门文章
论坛
栏目列表
工科论文
管理学论文
公共管理论文
经济学论文
法律论文
政治学论文
会计审计论文
艺术论文
其它类论文
证券金融论文
论文指导
财政税收论文
工商管理论文
财务管理论文
计算机论文
医学论文
哲学论文
教育论文
电子商务
首页
>
免费论文
>
计算机论文
> 基于S6700芯片与ISO/IEC15693标准的读卡器设计
基于S6700芯片与ISO/IEC15693标准的读卡器设计
日期:
2006-06-10 04:27:15
来源:
请您记住思索网的网址:
http://www.4so.net
[加入收藏夹]
摘要:
采用TI
公司
最新的多协议收发器芯片S6700,结合MCU设计了ISO/IEC15693读卡器,介绍S6700通信协议和ISO/IEC15693标准,给出部分子程序。S6700和MCU的接口非常简单。
关键词:
IC卡RFIDISO/IEC15693读卡器
1综述
自从20世纪70年代IC卡诞生以来,在飞速发展的微电子技术的带动下,IC卡已经深入到社会生活的各个角落,各种各样的卡大大方便了人们的生活:银行的食堂卡、信用卡,公交车使用的交通卡,就餐使用的食堂卡,出入管理使用的考勤卡,打电话使用的付费电话卡,手机中使用的SIM卡等等。
IC卡又称为集成电路卡。卡片内封装有集成电路,用以存储和处理数据。IC卡的发展经历了从存储卡到智能卡,从接触式卡到非接触式卡,从近距离到远距离的过程。ISO/IEC7816标准定义的卡是接触卡,读卡机具必须和卡的触点接触才能和和卡进行信息交换,所以磨损严重,容易受污染,使用寿命低,操作速度慢。为此,非接触式卡技术迎刃而生。非接触式卡又称射频卡、感应卡,采用无线电调制方式和读卡机具进行信息交换。ISO/IEC10536定义的卡称为密耦合卡;ISO/IEC14443定义的卡是近耦合卡(PICC),对应读卡机具简写为PCD;ISO/IEC15693对应的卡是遥耦合卡(VICC),对应的读卡机具简写为VCD。VICC比PICC具有更远的读卡距离,二者均采用13.56MHz工作频率,均具有防冲突机制。
图1所示的框图简单表示了射频卡读写系统的工作原理。
2硬件设计
2.1S6700芯片
S6700芯片是TI
公司
最新开发的针对IC卡读写的多协议收发器。它提供给用户数字接口,所以应用非常方便。ASIC能够支持的协议包括:TITAGIT协议、ISO/IEC15693-2、ISO/IEC14443-2(TYPEA)等。S6700采用SSOP20封装,+5V供电,内部封装有发送调制器和接收解调器,采和曼彻斯特编码方式,典型发送功率200mW,其ESD保护符合MILSTD-883标准,有IDLE、POWERDOWN、FULLPOWER三种电源管理功能。
笔者利用该ASIC结合MCU完整的实现了ISO/IEC15693-3所规定的对VICC操作上层协议。
ISO/IEC15693-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。如果认为ASIC200mW输出功率不足,也可以再加一级功放电路,以提高读写距离。
对ASIC的操作有三种模式:普通模式、寄存器模式和直接模式。直接模式下,MCU要直接面向处理射频信号,比较复杂,所以此种模式一般不用。普通模式和寄存器模式操作的均是标准的数字信号,其不同在于规定芯片操作的一些参数,例如:所采用的射频协议、调制方式及传输速率是由命令序列中规定的还是由寄存器所设定的。普通模式每条指令均含有该指令使用的参数,而寄存器模式指令序列中并不含这些参数,而是由预先写入的寄存器中的数值所决定。注意,ASIC上电后必须首先初始化时间寄存器,芯片才能正常工作。
2.2VICC——Tag-itHF-1应答器
Tag-it是TI
公司
为其最新开发的RFIDTRANSPONDER(应答器)的注册商标,是一个产品系列。Tag-it完全和ISO/IEC15693兼容,是VICC的一种。按TI的设想,Tag-it主要应用在智能标签领域内,例如:特快专递、航空行李管理,电子门票等等。
Tag-it内有64位的UID(卡号)和8位的AFI(应用识别号)、8位的DSFID(数据存储格式),用来标识卡和特定应用的特征。卡内有2KbitEEPROM,分成64个块,每个块32个bit。每个块均可以锁定,以保护数据免予修改。AFI、DSFID和32个块均可读可写,用以存储用户的数据。Tag-it采用13.56MHz的载波频率,工作于“READERTALKSFIRST”模式下,即:一问一答的模式。卡内有防冲突机制,可以同时读多张卡而不会造成冲突。
事实上一张卡可以有多种应用,不同的块可以存储不同应用的数据,即所谓的“一卡通”。遗憾的是,Tag-it内没有逻辑加密电路,无法实现密码功能,这限制了Tag-it在其它保密性要求较高的领域的应用。
3通信协议
发给ASIC的命令序列必须符合ASIC通信协议和ISO/IEC15693-3规范。
3.1命令结构
在普通模式下,命令序列结构如下:
起如位S1
命令字节(8位)*
数据
结束位ES1
*在寄存器模式下,命令字节是1位,且该位为1。
*起邕位S1:起始位波形是当SCLOCK位高电平时DIN发生一个上升沿。
*命令字节:规定ASIC与VICC通讯时的有关参数。例如,2DH,表示支持的射频协议是15693(1outof4),AM调制方式,调制率100%,返回数据波特率6.67kb/s。注意:命令字节的发送顺序是高位在先,即:MSBFIRST。
*数据:数据域内容由15693-3所规定。
15693-3命令的一般格式是:
起始位S1
FLAGS
命令序号
命令内容
CRC16
结束位ES1
15693命令序列中,FLAGS规定着命令内容中某些可选域存在与否。注意到S1和ES1在ASIC命令序列中已经存在,所以只须把15693命令序列中FLAGS、命令序号、命令内容、CRC16等域的内容取出填入ASIC序列中的数据域打包。注意:数据域的发送顺序是低位在先,即:LSBFIRST。
例如:发送字节20H的波形是:
*结束位ES1:结束位波形是当SCLOCK高电平时DIN发生一个下跳沿。
3.2响应结构
VICC响应的一般格式是:
起始位S2
FLAGS
响应内容
CRC16
结束位ES2
*起台位S2:表示VICC响应数据的开始,定义为当SCLOCK为高电平时DOUT发生一个上升沿。
*结束位ES2:表示VICC响应数据的结束,定义为当SCLOCK为高电平时DOUT发生一个下降沿。
3.3通信过程注意的问题
①时间寄存器初始化。初始化序列是:S1011110110000000111000ES1。
②发送顺序。命令字节(8位)发送的顺序是MSBFIRST,其它数据均是LSBFIRST。
③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
(校验LOWBYTE)F2(校验HIGHBYTE)
ES1(结束位)TRAN1(SCLOCK切换)
(接收)S2(起始位)00(FLAGS)00(扇区安全状态)
31(数据1)32(数据2)33(数据3)34(数据4)BD7F(校验)ES2(结束位)
3.5关于反冲突算法
ISO/IEC15693中描述的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。
本文地址:
http://www.4so.net/thesis/chiphead/55328.html
将本页加入收藏夹
将地址复制到剪贴板发送给好友
若发现本文有误或版权问题点击这里
热门信息
相关文章
[
计算机论文
]
网络办公自动化系统开发分析
[
计算机论文
]
中小企业办公自动化系统的设计与
[
计算机论文
]
学生档案管理系统
[
计算机论文
]
三维连续网络结构增强金属基复合
[
计算机论文
]
ASP技术访问WEB数据库
[
计算机论文
]
智能网络存储方案
[
计算机论文
]
基于网络的视频通讯系统(txx17)
[
计算机论文
]
计算机网络中的交换技术(txx15)
[
计算机论文
]
论网络教育中个别化学习和协作学
[
计算机论文
]
网络经济与中国企业发展
基于89C51的计算机可锁定加密键盘设计
基于MSP430的极低功耗系统设计
基于ARM的IEEE802.11bMAC层协议IP核设计
基于GSM短消息接口的MC3一体化遥测系统
基于OMAPl510双核架构的移动多媒体通信终端的设计与实现
基于DS80C320的路由器交换网板控制模块的设计与实现
基于DSP和以太网的数据采集处理系统
基于Verilog-HDL的轴承振动噪声电压峰值检测
基于CPLD/FPGA的半整数分频器的设计
基于Nios平台的光信号采集片上系统设计
文章评论
收藏本文
打印本文
关闭窗口