🔌 ATR 在线解码器(Answer To Reset)

解析 ISO7816-3 智能卡复位应答(ATR)。输入十六进制 ATR 字节序列,自动解码 TS 初始字符T0 格式字符TAi/TBi/TCi/TDi 接口字符Historical Bytes 历史字节,识别 T=0 协议T=1 协议,提取时钟速率、波特率、编程电压等参数。

输入智能卡上电复位后返回的完整 ATR 字节序列。

ATR 复位应答详解

ATR(Answer To Reset,复位应答)是 ISO/IEC 7816-3 标准定义的智能卡复位后自动发送的字节序列。当终端对卡片执行冷复位或热复位后,卡片首先发送 ATR,终端据此配置后续通信参数。ATR 是智能卡与终端建立通信的第一步,理解 ATR 结构对智能卡开发和读卡器调试至关重要。

ATR 字节布局

TS(初始字符):3B 表示正向约定(Direct Convention),3F 表示反向约定(Inverse Convention)。T0(格式字符):高 4 位(Y1)指示后续存在哪些接口字符(TA1/TB1/TC1/TD1),低 4 位(K)指定历史字节数量。接口字符提供通信参数:TA1 设置时钟速率转换因子和波特率调整因子;TB1 指定编程电压和擦除时间;TC1 设置额外保护时间;TD1 指示传输协议类型(T=0、T=1、T=14)并标记是否有后续接口字符。每个 TDi 字节可指向下一组 TA(i+1)/TB(i+1)/TC(i+1)/TD(i+1)。

传输协议

T=0 是面向字符的半双工协议,每个命令和响应以字符为单位传输。T=1 是面向块的半双工协议,数据以块(Block)为单位传输,支持错误检测和重传。T=14 用于同步卡(如某些存储卡),较少见。对于 T=1 协议的 ATR,末尾必须包含 TCK(校验字节),值为 ATR 所有字节的异或和(不含 TS);T=0 协议的 ATR 不含 TCK。

历史字节与实际应用

K 个历史字节(由 T0 的低 4 位指定)通常包含芯片制造商信息、型号、操作系统版本和状态指示。在 PC/SC 接口中,读卡器将 ATR 作为字节数组返回给上层应用,可直接粘贴到本工具进行解析。不同卡片类型的 ATR 长度差异很大:SIM 卡的 ATR 通常约 20 字节,银行卡约 15-20 字节,某些 Java Card 可能长达 30+ 字节。ATR 中还可能包含全局接口字节(TA3/TB3 等),用于指定特定协议参数或数据交换速率协商。