4 rfid smartcard nfc pcsc contactless-smartcard
是否可以使用ATR来确定我是否有ISO14443A或ISO14443B型卡?如果有,怎么样?
正如mictter正确解释的那样,真正的 AT R仅适用于ISO 7816接触卡.我可以按照ISO 14443等效可能是ATQA/ATQB的论证,因为这是激活后从标签获得的第一个答案,但我宁愿说ATR的等价是ATQA + SAK + ATS的组合(对于类型A)和ATQB的组合+对ATTRIB的回答(对于类型B).
关于您看到的ATR ,我认为这是根据PC/SC规范的PC/SC仿真ATR .
对于智能卡(ISO 14443-4传输协议),此ATR将具有该形式
3B 8n 80 01 T[1]..T[n] xx
Run Code Online (Sandbox Code Playgroud)
有T[1]到T[n]是
T[1] T[2] T[3] T[4]),ATQB协议信息字段(T[5] T[6] T[7])和ATTRIB MBLI字段(T[8])的串联.因此,您可以进行某种形式的匹配来猜测它是A型还是B型智能卡.也就是说,如果ñ == 8和参数T[1]来T[n]匹配您期望的B型卡的这些领域的东西.我仍然怀疑你会得到任意卡的可靠结果.
对于非接触式存储卡,情况肯定更好.对于这些卡,模拟的ATR看起来像这样:
3B 8n 80 01 T[1]..T[n] xx
Run Code Online (Sandbox Code Playgroud)
与T[1]到T[n]包含应用标识符存在指示符(标记4F).因此T[1],以T[n]通常是这个样子:
80 4F yy A000000306 ss nnnn 00000000
Run Code Online (Sandbox Code Playgroud)
与ss识别该卡的协议:
0x01: ISO 14443-1 Type A
0x02: ISO 14443-2 Type A
0x03: ISO 14443-3 Type A
0x05: ISO 14443-1 Type B
0x06: ISO 14443-2 Type B
0x07: ISO 14443-3 Type B
Run Code Online (Sandbox Code Playgroud)
并nnnn识别卡名称(有关完整列表,请参阅PC/SC规范).
ATR 仅适用于接触式智能卡。对于非接触式卡,其等效项称为 ATQ,有两种变体:ATQ-A 和 ATQ-B,分别适用于两种 ISO14443 类型。
所以我建议的方式是:
非接触式读卡器的驱动程序应将此信息传递给您的软件。我建议您获取 ISO 14443-3 标准的副本,它解释了卡发现和防冲突协议的初始步骤,以便您可以看到 A 型和 B 型之间的差异。