编程PC / SC读卡器时的ATR命令

时间:2011-06-09 06:58:58

标签: smartcard nfc smartcard-reader mifare pcsc

我已经检查了MIFARE Ultralight和TOPAZ / Jewel IC标签的编程界面。 API很好地描述了如何在卡上保存字节,如何寻址存储器块,如何进行所有操作,如读取,读取,使用OTP(一次性可编程)功能,如何读取ROM字节,如何从空闲切换到就绪状态(REQA,WUPA命令),它表示命令是否受CRC保护,如何访问标签UID等。

当开始编程NFC阅读器(ACR122U或SCL010)时,我发现PCD(阅读器)和PICC(标签)之间的所有通信都是从ATR(应答复位)命令开始的,这在Internet上有所描述。命令PCD发送给PICC以进行识别。

但是没有任何标签文档提到ATR命令 - 所有与标签通信时的通信(PQR)都以REQA,WUPA命令开始,以便将卡切换到就绪模式。

我的理解是ATR是由PC / SC基于读卡器与之通信的NFC卡构建的。一旦读者检测到基于它的标签是什么类型的技术,就会创建ATR。另外根据文档,针对不同NFC读取器的ATR对于相同的NFC标签是不同的。

我是对的吗? PC / SC是否构建了ATR?

BR 斯登

2 个答案:

答案 0 :(得分:14)

简短回答:

  • 您对PCSC阅读器生成的ATR是正确的
  • 我认为无论非接触式卡的读者如何,ATR都将保持不变

答案很长:

ATR适用于联系人卡片,在ISO 7816中有规定。对于无接触卡,可以使用PC / SC读卡器(IFD)生成ATR。

ATR的构建基于:

  • ISO 14443 A型卡的ATS(选择答案)
  • ISO 14443 B类卡的ATQB和ATTRIB字节

ATR将成为形式 3B 8X 80 01 HB_ATS Parity_Byte 其中X是ATS的历史字节数(HB_ATS)。

非接触式卡ATR的确切结构见3.1.3.2.3节 PC / SC规范。

鉴于唯一的变量是ATS,无论读者如何,它都应该是相同的。

- 席德

答案 1 :(得分:1)

ATR包含固定字段和可选字段(条件)。因此,根据字段的某些值,可能会省略后续字段,因此不同读者的ATR可能不同,但它们都符合标准。

查看智能卡教程here 简而言之,ATR框架如下:
enter image description here