复位应答ATR的基本结构和数据元
根据定义,复位应答是一系列字节的值,这些字节是由卡作为对复位命令的响应发送给接口设备的 ,在I/O电路上,每个字节在一个异步字符中传输。每个成功的复位操作,都会导致I/O上的一个初始字符TS,TS后面按照下面的次序,跟有最多32个字符。

初始字符定义了所有后继字符的解码协议。
格式字符声明了第一组接口字符和所有历史字符。
接口字符由格式字符声明的位图技术来指明。
历史字符由编码在格式字符中的一个数字来指明。
校检字符依赖于某些接口字符中参数T的值。
★ 初始字节TS
TS 有两个可能值
反向约定解码时传输的字节等于3F
正向约定解码时传输的字节等于3B
★ 格式字节T0
字节T0 由两部分组成
位b8到b5构成Y(1):每个等于1 的位指明了后继接口字节的存在。
位b4到b1构成K :K 值为历史字节的个数,范围从0到15。

★ 接口字节TA(i) TB(i) TC(i) TD(i)
☆ TD(i)
字节TD(i)由两部分组成
位b8到b5构成Y(i+1):每个等于1的位指明接口字节的存在。
位b4到b1构成参数T的值。

☆ TA(1)

FI:位b8到b5上的时钟率转换因子的引用

DI:位b4到b7上波特率校正因子的引用

☆ TB(1)
最高位b8总是被置为0,即它未被使用。
I1:位b7,b6上最大编程电流的引用。
PI1:位b5到b1规定编程电压的值。

这些参数是第一代智能卡所需要的,它用EPROM而不是EEPROM作为数据存储器,而后者是当前的标准。对EEPROM编程所需的高电压和电流由终端经Vpp触点供给。然而,自从不包括内部电荷泵的智能卡已不复存在,我们可以忽略这个字节编码。
☆ TC(1)
参数 N 是用于从接口设备到发送字符的卡的额外保护时间,从卡发送字符到接口设备不用额外保护时间,缺省值N=0。
在0到254范围里,在准备接收下一字符前,N指明卡要求从由卡或接口设备发送的前一个字符上沿的后续延迟。
12 etu + (Q*N/f)
公式中Q取两个值中的一个:
F/D ,当T=15不存在于复位应答中时。
Fi/Di ,当T=15在复位应答中时。
N=255 指明在传输协议期间两个连续前沿之间的最小延迟在传输的两个方向一致。
这个最小延迟值是
T=0时12etu
T=1时11etu

★ 历史字符
很长一段时间,没有任何标准对历史字符做出规定,结果是随着操作系统生产者而不同,它们包含了变化广泛的数据。
很多公司使用适当的字节来识别操作系统和相关的ROM掩膜的版本号。通常用ASCII编码,使之易于解释。历史字符在ATR的存在不是规定的,可以把它们全部删除掉。在某些情况下这样处理能使ATR短些并能较快送出。
在ATR中的数据元或历史字符可以包含着关于智能卡和所采用的操作系统的综合信息。例如,它们可以用来存储由智能卡支持的文件选择功能和隐含选择功能,以及有关逻辑通道的机制信息,它们也可以用来存储另外的有关发行商、卡和芯片的序列号、掩膜ROM、芯片和操作系统的版本号等信息。在ISO/IEC7816-4和-5标准中对有关数据的编码做了规定。
★ 校验字符
ATR的最后一个字节,为从字节T0开始,到校验和字符(TCK)之前的最后一字节的XOR校验和。这个校验和可用于除奇偶性检测之外的ATR传输的正确性核查。
复位应答ATR的基本结构和数据元的更多相关文章
- IC卡复位应答ATR的数据元和它们的意义
ISO/IEC 7816-3标准中对ATR的数据串和数据元做了规定和描述.ATR的数据元和它们的意义: 数据元 说明 TS 起始字符 T0 格式字符 TA1,TB1,TC1,TD1,... 接口字符 ...
- IC卡复位应答ATR解析
输入的是ATR,通过解析输出TA.TB.TC.TD的信息. 似乎没有容错处理,~~~~(>_<)~~~~ #include <stdio.h> #define TA_BIT ( ...
- ATR的基本结构与意义(无历史字符部分)
Reset 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 96 复位应答 ATR TS( The Initial character ...
- [Python]ctypes+struct实现类c的结构化数据串行处理
1. 用C/C++实现的结构化数据处理 在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过str ...
- MySQL 5.7:非结构化数据存储的新选择
本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL ...
- WordPress插件--WP BaiDu Submit结构化数据插件又快又全的向百度提交网页
一.WP BaiDu Submit 简介 WP BaiDu Submit帮助具有百度站长平台链接提交权限的用户自动提交最新文章,以保证新链接可以及时被百度收录. 安装WP BaiDu Submit后, ...
- 关于oracle中创建新表时将我们要用的表的结构和数据都复制过去
今天在oracle中遇到了一个问题,就是给我查询出来了一张表的数据,只有部分的字段,让我将这张表的结构和数据放到新的临时表中,并进行数据的查询. 我是这样做的: 如:create table tabl ...
- mysql,命令导入\导出表结构或数据
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...
- PLSQL怎样导出oracle表结构和数据
1.导出表结构和数据方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出的 ...
随机推荐
- 深入了解JavaScript中的for循环
在ECMAScript5中,有三种for循环,分别是: 简单for循环 for-in forEach 在ES6中,新增了一种循环 for-of 简单for循环 const arr = [1, 2, 3 ...
- solr ,hadoop ,lucene,nutch 的关系和区别
apache lucene是apache下一个著名的开源搜索引擎内核,基于Java技术,处理索引,拼写检查,点击高亮和其他分析,分词等技术. nutch和solr原来都是lucene下的子项目.但后来 ...
- Android URI简单介绍
就Android平台而言,URI主要分三个部分:scheme, authority and path.当中authority又分为host和port.格式例如以下: scheme://host:por ...
- arm-linux移植MT7601Uusb无线网卡(小度wifi,360随身WIFI 2代)
前段时间移植过RT3070.RT5370 http://blog.csdn.net/ofaith12345/article/details/24138399 发现各种arm移植都大同小异,所以就不要纠 ...
- 【C语言天天练(二一)】内联函数
引言:调用函数时,一般会由于建立调用.传递參数.跳转到函数代码并返回等花费掉一些时间,C语言的解决的方法是使用类函数宏.在C99中,还提出了第二种方法:内联函数. 内联 ...
- My.Ioc 代码示例——谈一谈如何实现装饰器模式,兼谈如何扩展 My.Ioc
装饰器模式体现了一种“组合优于继承”的思想.当我们要动态为对象增加新功能时,装饰器模式往往是我们的好帮手. 很多后期出现的 Ioc 容器都为装饰器模式提供了支持,比如说 Autofac.在 My.Io ...
- C# WebService 基础实例
1.整个Demo结构:如下图: 2.新建项目--选择asp.net web服务应用程序TestWebService 3.重新命名Service1.asmx为MyService.asmx 4.右键MyS ...
- OC - 19.pthread和NSThread
简介 恰当的使用多线程编程可以提供任务的执行效率和系统资源的利用率 多线程是为了提高资源利用率,和应用程序的响应速度,多个线程共享应用资源 每个应用程序都有一个主线程,通常用来做UI界面刷新等 比较耗 ...
- UITabBarController自定义二之xib
UITabBarController自定义二之xib 新建一个xib文件 在UITabBarController的子类方法viewDidLoad方法中加载xib 1.-(void)viewDidLoa ...
- iOS中常用的四种数据持久化技术
iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...