根据定义复位应答是一系列字节的值,这些字节是由卡作为对复位命令的响应发送给接口设备的 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. 强迫症和拖延症患者如何应对马桶4(遨游Maxthon)“上次未关闭页面”丢失的问题

    强迫症和拖延症患者如何应对马桶4(遨游Maxthon)“上次未关闭页面”丢失的问题 用了马桶好多年,虽然一直bug不断,经常假死丢数据坑爹什么的,但是总得来说还是略有感情,不忍舍弃. 马桶一直有一个好 ...

  2. 多队列网卡简介以及Linux通过网卡发送数据包源码解读

    http://blog.csdn.net/yanghua_kobe/article/details/7485254 首先我们看一下一个主流多队列网卡(E1000)跟多核CPU之间的关系图: 非多队列: ...

  3. 为什么app都是异步编程

    对本文题目首先需要了解一下什么是异步编程,异步编程即多线程编程. 多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径. 在具体理解多线程之前先看一个都理解的例子: 在系统级别内,程序并排 ...

  4. Java基础知识强化之集合框架笔记04:Collection集合的基本功能测试

    1. Collection集合的基本功能测试: package cn.itcast_01; import java.util.ArrayList; import java.util.Collectio ...

  5. Android(java)学习笔记240:多媒体之图形颜色的变化

    1.相信大家都用过美图秀秀中如下的功能,调整颜色: 2. 下面通过案例说明Android中如何调色: 颜色矩阵 ColorMatrix cm = new ColorMatrix(); paint.se ...

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

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

  7. 在CSS文件中引入其他CSS文件

    引入CSS的方法有两种,一种是@import,一种是link 一.@import url('地址');二.<link href="地址" rel="styleshe ...

  8. 对ajax的hack的分析

    先上原文链接:对jQuery ajax请求成功(失败)回调执行前的统一处理(兼容较老版本jQuery) 原文中已经提到了使用场景了,我觉得这非常适合单页面应用,还有backbone应用中.毕竟ajax ...

  9. Ajax简单应用-购物车

    1. 2. 3. 4. 5. 6.

  10. 一起学makefile

    Unix.Linux必学知识哈哈,网上看到一哥们写得挺好挺详细的,直接复制地址就分享哈哈哈. 跟我一起写 Makefile(一) 概述 跟我一起写 Makefile(二) make是如何工作的 跟我一 ...