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

初始字符定义了所有后继字符的解码协议。

格式字符声明了第一组接口字符和所有历史字符。

接口字符由格式字符声明的位图技术来指明。

历史字符由编码在格式字符中的一个数字来指明。

校检字符依赖于某些接口字符中参数T的值。

★ 初始字节TS

TS 有两个可能值

反向约定解码时传输的字节等于3F

正向约定解码时传输的字节等于3B

★ 格式字节T0

字节T0 由两部分组成

b8b5构成Y(1)每个等于的位指明了后继接口字节的存在。

b4b1构成:K 值为历史字节的个数,范围从015

★ 接口字节TA(i) TB(i) TC(i) TD(i)

☆ TD(i)

字节TD(i)由两部分组成

b8b5构成Y(i+1)每个等于1的位指明接口字节的存在。

位b4到b1构成参数T的值。

☆ TA(1)

FIb8b5上的时钟率转换因子的引用

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

☆ TB(1)

最高位b8总是被置为0,即它未被使用。

I1:b7,b6上最大编程电流的引用。

PI1:b5b1规定编程电压的值。

这些参数是第一代智能卡所需要的,它用EPROM而不是EEPROM作为数据存储器,而后者是当前的标准。对EEPROM编程所需的高电压和电流由终端经Vpp触点供给。然而,自从不包括内部电荷泵的智能卡已不复存在,我们可以忽略这个字节编码。

☆ TC(1)

参数 是用于从接口设备到发送字符的卡的额外保护时间,从卡发送字符到接口设备不用额外保护时间,缺省值N=0

0254范围里,在准备接收下一字符前,N指明卡要求从由卡或接口设备发送的前一个字符上沿的后续延迟。

12 etu + (Q*N/f)

公式中Q取两个值中的一个:

F/D ,T=15不存在于复位应答中时。

Fi/Di ,T=15在复位应答中时。

N=255 指明在传输协议期间两个连续前沿之间的最小延迟在传输的两个方向一致。

这个最小延迟值是

T=012etu

T=111etu

★ 历史字符

很长一段时间,没有任何标准对历史字符做出规定,结果是随着操作系统生产者而不同,它们包含了变化广泛的数据。

很多公司使用适当的字节来识别操作系统和相关的ROM掩膜的版本号。通常用ASCII编码,使之易于解释。历史字符在ATR的存在不是规定的,可以把它们全部删除掉。在某些情况下这样处理能使ATR短些并能较快送出。

在ATR中的数据元或历史字符可以包含着关于智能卡和所采用的操作系统的综合信息。例如,它们可以用来存储由智能卡支持的文件选择功能和隐含选择功能,以及有关逻辑通道的机制信息,它们也可以用来存储另外的有关发行商、卡和芯片的序列号、掩膜ROM、芯片和操作系统的版本号等信息。在ISO/IEC7816-4和-5标准中对有关数据的编码做了规定。

 

★ 校验字符

ATR的最后一个字节,为从字节T0开始,到校验和字符(TCK)之前的最后一字节的XOR校验和。这个校验和可用于除奇偶性检测之外的ATR传输的正确性核查。

复位应答ATR的基本结构和数据元的更多相关文章

  1. IC卡复位应答ATR的数据元和它们的意义

    ISO/IEC 7816-3标准中对ATR的数据串和数据元做了规定和描述.ATR的数据元和它们的意义: 数据元 说明 TS 起始字符 T0 格式字符 TA1,TB1,TC1,TD1,... 接口字符 ...

  2. IC卡复位应答ATR解析

    输入的是ATR,通过解析输出TA.TB.TC.TD的信息. 似乎没有容错处理,~~~~(>_<)~~~~ #include <stdio.h> #define TA_BIT ( ...

  3. 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 ...

  4. [Python]ctypes+struct实现类c的结构化数据串行处理

    1. 用C/C++实现的结构化数据处理 在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过str ...

  5. MySQL 5.7:非结构化数据存储的新选择

    本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL ...

  6. WordPress插件--WP BaiDu Submit结构化数据插件又快又全的向百度提交网页

    一.WP BaiDu Submit 简介 WP BaiDu Submit帮助具有百度站长平台链接提交权限的用户自动提交最新文章,以保证新链接可以及时被百度收录. 安装WP BaiDu Submit后, ...

  7. 关于oracle中创建新表时将我们要用的表的结构和数据都复制过去

    今天在oracle中遇到了一个问题,就是给我查询出来了一张表的数据,只有部分的字段,让我将这张表的结构和数据放到新的临时表中,并进行数据的查询. 我是这样做的: 如:create table tabl ...

  8. mysql,命令导入\导出表结构或数据

    在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...

  9. PLSQL怎样导出oracle表结构和数据

    1.导出表结构和数据方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出的 ...

随机推荐

  1. swfit-小知识Demo

    知识点: 重写方法.属性,自动引用计数,throws异常抛出,滚动视图,扩展语法,协议,计时器,UserDefaultsgit项目地址: https://github.com/lu459700780/ ...

  2. poj 3422 (费用流)

    从左上角到有下角k次能获得的最大值. 跟hdu 2686一样的题目,这题一个点可以重复走,只能得到一次值. #include<stdio.h> #include<string.h&g ...

  3. OpenGL中glPushMatrix和glPopMatrix的原理

    glPushMatrix.glPopMatrix操作事实上就相当于栈里的入栈和出栈. 很多人不明确的可能是入的是什么,出的又是什么. 比如你当前的坐标系原点在你电脑屏幕的左上方.如今你调用glPush ...

  4. PHP学习路径

    php学习大致可分为三个阶段: 第一阶段:基础知识,页面布局. 学习内容:html.div+css.js. 学习目标:div+css设计. 阶段二:php核心知识和数据库交互. 学习内容:php核心知 ...

  5. [转] Linux中gcc,g++常用编译选项

    http://blog.sina.com.cn/s/blog_5ff2a8a201011ro8.html gcc/g++ 在执行编译时,需要4步 1.预处理,生成.i的文件[使用-E参数] 2.将预处 ...

  6. JS HTML 单引号与双引号

    JS中,单引号和双引号其实没啥区别,看你自己习惯了. 但若双引号中再使用双引号,我们可采取"外双内单"或者"外单内双"的格式,当然如果需要的是双引号本身,则只能 ...

  7. C#解leetcode 11. Container With Most Water

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai).  ...

  8. GIT学习(一)-->Git产生的历史原因

    首先要说:Git是目前世界上最先进的分布式版本控制系统(没有之一). git的作者:Linus,林纳斯(下图就是,先膜拜一下,因为成就可不止这一点) 他是为何要写git的呢?话说 Linus虽然创建了 ...

  9. Hibernate 持久化对象的状态

    持久化对象有3种状态:1.持久化状态      2.临时状态      3.游离状态 Session 的特定方法能使对象从一个状态转换到另一个状态临时对象(transient)•    在使用代理主键 ...

  10. Android之声音管理器《AudioManager》的使用以及音量控制

    以下为网上下载然后拼接-- Android声音管理AudioManager使用 手机都有声音模式,声音.静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能.在Android手机中,我们同样可以通 ...