77 智能卡ATR TA1通信速率计算

1 前言

        智能卡读卡器在读卡前期会以默认标准通信速率9600与卡片交互,期间可通过卡片返回的ATR值中TA1字段获取卡片支持的最大通信速率,然后读卡器通过PPS指令与卡片协商更改通信速率,最后以协商的速率进行通信。

        起初默认9600波特率是比较慢的,所以通过提速可加快智能卡读卡器与卡片的交互速度。那么怎么获取或计算得到卡片的通信速率呢?这就是本文所要记录的。

2 实验背景

        这两天在弄智能卡高速读卡器,目前该款读卡器已实现2.5M通信速率读写,但是该读卡器还未兼容普通卡读卡,所以就要把普通卡读卡的功能合入进来。

        在功能合入过程中,遇到普通卡读卡速度慢的问题,最后发现是普通卡读取没有做自适应速率功能,而是一直以9600速率进行读写,所以导致时间没有达到要求。

        而卡片到底支持多少的通信速率呢?ATR不会直接返回类似9600、115200字段的,那么是怎么得到卡片的通信速率呢?

        下面我们正式开始。

3 通信速率计算

        在此之前列举一点点基础知识(抄别人的)。

(1)ATR也叫复位应答,是一个字节序列,这些字节是由卡作为对复位命令的响应发送给读卡器的。在I/O电路上,每个成功的复位操作都会导致I/O上的一个由初始字符TS开始,后跟最多32个字符的复位应答。ATR的作用是告诉读卡器,我是一张什么样的卡片,以便读卡器知道接下来该以什么样的方式和卡片通信。

(2)ISO/IEC 7816-3标准中对ATR的数据串和数据元做了规定和描述。

数据元

说明

TS

起始字符

T0

格式字符

TA1,TB1,TC1,TD1,...

接口字符

T1,T2,... ,TK

历史字符

TCK

校验字符

(3)ATR的基本数据结构和数据元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值