社保系列11《ATR》
1) 冷复位(Cold Reset)
当IC卡的电源电压和其他信号从静止状态中复苏且申请复位信号时,IC卡产生的复位。
2) 热复位(Warm Reset)
在时钟(CLK)和电源电压(VCC)处于激活状态的前提下,IC卡收到复位信号时产生的复位。
1. 缺省模式
当IC卡上电时,COS向卡外发送“复位应答”序列,返回:3B6D0000,0081,543100,8660,1108160000xx(固定标识,T1-T2芯片制造商标识符,T3-T5操作系统版本,T6-T7卡片制造商标识符,T8-TD卡片序列号)说明:
- 这个序列总是以3B 6D 00 00打头。
- 芯片制造商标识符 = 0081(代表华大)0085(代表华虹) 0087 (代表大唐) 0090(FM)
- 芯片操作系统信息 = 543100(54是“T”,代表Turbo COS/SS 3.1)
- 卡片制造商标识符 = 86 60(代表东信和平)。
|
符号 |
值 |
说明 |
|
TS |
3B |
正向约定,首先传送的是字符最低有效位 |
|
T0 |
6D |
TB1、TC1 存在,历史字符为13个 |
|
TB1 |
00 |
无须额外编程电压 |
|
TC1 |
00 |
无须额外的保护时间 |
|
T1-T2 |
0090 |
芯片提供机构注册标识号 |
|
T3-T5 |
543116 |
芯片提供方或卡操作系统提供方自定义(T4为COS版本号) 54为cos名称 31为cos版本号。 16为这款芯片容量 |
|
T6-T7 |
8660 |
卡片制造机构注册标识号 |
|
T8-TD |
YYYYYY+ZZZZZZ |
YYYYYY为时间日期:110816 ZZZZZZ为卡序列号:000001~000020 依序递增 |
复位应答中回送字符的最大个数(包括历史字符,但不包括TS)为32个。
1.1 TS(初始字符)
TS有两个功能:向终端提供一个便于位同步的已知位模式,并指定解释后续字符的逻辑约定。 对于正向逻辑约定,I/O 的高电平状态等效于逻辑l,并且该数据字节的最低位在起始位之后首先发送,第1个半字节LHHL用于位同步。
基本响应:IC卡将回送的TS为:(H)LHHLHHHLLH——正向约定,值为3B,即从IO口向外传送数据时,先传送低位。
1.2 T0(格式字符)
T0由两部分组成,高半字节(b5-b8)表示后续控制字符TA1 、TB1 、TC1 和TD1 是否存在,b5-b8位设置成逻辑1,表明TA1到TD1存在;相应地,低半字节(b1-b4)表明可选历史字符的数目(0到15)
基本响应:IC卡应回送T0。x的值表示要回送的可选历史字符的数目。
|
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
|
|
2x |
0 |
0 |
1 |
0 |
x |
x |
x |
x |
|
3x |
0 |
0 |
1 |
1 |
x |
x |
x |
x |
|
6x |
0 |
1 |
1 |
0 |
x |
x |
x |
x |
|
7x |
0 |
1 |
1 |
1 |
x |
x |
x |
x |
|
8x |
1 |
0 |
0 |
0 |
x |
x |
x |
x |
|
9x |
1 |
0 |
0 |
1 |
x |
x |
x |
x |
|
Cx |
1 |
1 |
0 |
0 |
x |
x |
x |
x |
|
Dx |
1 |
1 |
0 |
1 |
x |
x |
x |
x |
1.3 TA1到TA3(接口字符)
在复位应答后的终端和IC卡信息交换期间,TA1到TA3表示传输控制参数F、D、N、P、I、X及U的值。TA1到TC1和TA3传送的信息将用于后续数据交换。
TA1传送FI和DI的值,其中:
——FI用于确定F的值,F为时钟速率转换因子。用于修改复位应答之后终端所提供的时钟频率。
——DI用于确定D的值,D为比特速率调节因子。用于调整复位应答之后所使用的位持续时间。
TA1 传送FI(用于确定时钟速率转换因子F的值)和 DI(用于确定比特速率调节因子D的值)的值,复位应答期间缺省值分别为十进制的372和1。若不回送TA1,则在整个后续信息交换过程中仍继续使用缺省值F=372 和D=1 。
TA2的存在与否表示IC卡是以特定模式还是以协商模式工作。 基本响应:IC卡将不回送TA2,TA2不存在表示以协商模式工作。
TA3传送XI和UI的值,其中:
——XI在b8、b7位中定义,用于确定时钟停止指示符X的值。X向接口设备表明是否支持时钟停止,如果支持,则在时钟停止时CLK端上的电平状态见表14。
——UI在b1到b6位中定义,用于确定类别指示符U的值。U向接口设备表明卡所接受的操作条件。
TD1 表示是否有后续的接口字符及后续传输所使用的协议。选用 T=0 协议时,不回送 TD1 。选用 T=1协议时,TD1 应为十六进制的81H ,表示TD2存在,且后续传输协议为T=1协议。
TD2 在选用T=1协议时,其值为十六进制的31H,表示TA3(IC卡信息域字节数,大小为10H到FEH)和TB3(低半字节指示字符等待时间整数CWI的值,取值范围0到4;高半字节指示块等待时间整数BWI的值,取值范围0到5)存在且后续传输协议为T=1协议。
下面是其中一些常用芯片测试的返回值,参考:
Ø 华大:
3B6D0000 0081 544436 8660 440200 000001
3B6D0000 0081 544000 8660 440100 0000A6
Ø 大唐:
3B6D0000 0087 545000 8660 000000 000001
Ø 复旦:
3B6B0000 2090 000000 0000 16FE81 530000
3B6D0000 0090 202090 0090 000066 560BA1
Ø NXP
3B6D0000 0081 4D2208 8660 122226 200001
3B8D8001 0081 4D2208 8660 122226 200001 3B(CONTACTLESS)
3B6C0000 4A43 455356 3230 5F5034 310000 (NEW)
2. 协商模式
卡上电复位或热复位后,卡发送的复位应答结构如下:
|
3B |
7x('0'~'F') |
FD |
00 |
00 |
历史字节(0~15字节) |
3. 特定模式
卡片在该模式下,返回复位应答后,将直接使用特定波特率因子FD进行通讯,不接受协商命令。
|
3B |
FX(1~F) |
FD |
00 |
00 |
10 |
80 |
历史字节(0~15字节) |
典型时钟频率:f = 3.5712MHZ,FD值如下:
|
F |
D |
Fi |
Di |
分频比 |
典型通讯速率 |
|
1001 |
0001 |
512 |
1 |
512 |
6975 bps |
|
1001 |
0010 |
512 |
2 |
256 |
13950bps |
|
1001 |
0011 |
512 |
4 |
128 |
27900bps |
|
1001 |
0100 |
512 |
8 |
64 |
55800bps |
|
1001 |
0101 |
512 |
16 |
32 |
111600bps |
|
1001 |
0110 |
512 |
32 |
16 |
223200kbps |
|
1001 |
0111 |
512 |
64 |
8 |
446400bps |
|
0001 |
0001 |
372 |
1 |
372 |
9600bps |
|
0001 |
0010 |
372 |
2 |
186 |
19200bps |
|
0001 |
0011 |
372 |
4 |
93 |
38400bps |
|
0011 |
1000 |
744 |
12 |
62 |
57600bps |
|
0001 |
1000 |
372 |
12 |
31 |
115200bps |
社保系列11《ATR》的更多相关文章
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...
- Java 集合系列 11 hashmap 和 hashtable 的区别
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证码实现和底层修改
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证码实现和底层修改 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
- saltstack自动化运维系列11基于etcd的saltstack的自动化扩容
saltstack自动化运维系列11基于etcd的saltstack的自动化扩容 自动化运维-基于etcd加saltstack的自动化扩容# tar -xf etcd-v2.2.1-linux-amd ...
- C#程序集系列11,全局程序集缓存
全局程序集缓存(GAC:Global Assembly Cache)用来存放可能被多次使用的强名称程序集.当主程序需要加载程序集的时候,优先选择到全局程序集缓存中去找寻需要的程序集. 为什么需要全局程 ...
- 【转】Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...
- Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现
我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理.@pdai Spring框架系列 ...
- .Net程序员学用Oracle系列(11):系统函数(下)
1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...
- 【 D3.js 入门系列 — 11 】 入门总结
D3 新专题首页 一转眼,这个入门系列已经积累了二十二篇文章之多,我想作为 D3.js 这款数据可视化工具的入门来说已经足够了.相信仅仅要看完本系列.以后全然能够在辅以查询的情况下完毕大部分可视化工作 ...
随机推荐
- 关于conversation generation的论文笔记
对话模型此前的研究大致有三个方向:基于规则.基于信息检索.基于机器翻译.基于规则的对话系统,顾名思义,依赖于人们周密设计的规则,对话内容限制在特定领域下,实际应用如智能客服,智能场馆预定系统.基于信息 ...
- 慕课网-安卓工程师初养成-2-5 如何命名Java变量
来源:http://www.imooc.com/code/1221 如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理---变量名! 需要注意,给酒店房间起名字时可以是数字 ...
- SQL基本语句(2)
使用Insert语句插入新数据 语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),… INSERT [INTO] tbl ...
- Type-base dispatch
In the previous section we added two Time objects, but you also might want to add an integer to a Ti ...
- iOS copy&mutableCopy理解
Copy&mutableCopy 通过copy方法可以创建可变或不可变对象的不可变副本,通过mutableCopy可以创建可变或不可变对象的可变副本. 拷贝分为浅拷贝和深拷贝: 浅拷贝:指 ...
- WebView 获取网页点击事件
网页上的点击按钮 本身绑定了URL,点击的时候webview 会在下面的这个方法中加载URL - (BOOL)webView:(UIWebView*)webView shouldStartLoadWi ...
- windows bat 文件
windows下的bat文件即批处理文件或批处理脚本,英文为BATCH, BAT文件是无格式的文本文件. 在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件 ...
- Android 之 下拉框(Spinner)的使用
下拉列表 Spinner. Spinner的使用,可以极大提高用户的体验性.当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来.供用户选择. Demo如下,可以留作参考 一.使用数组作为数 ...
- 用代码给TABLE 添加字段,设置属性并编译
AOTTableFieldList AOTTableFieldList ,TableFieldNode; TableName tableName = "SML_InventTableExt& ...
- rem是如何实现自适应中的?
使用rem 然后根据媒体查询实现自适应.跟使用JS来自适应也是同个道理,不过是js更精确一点.使用媒体查询: html { font-size: 62.5% } @media only screen ...