非接触式智能卡仅响应第一个 APDU 命令

Posted

技术标签:

【中文标题】非接触式智能卡仅响应第一个 APDU 命令【英文标题】:Contactless Smartcard response only to first APDU command 【发布时间】:2015-08-03 08:58:46 【问题描述】:

我正在使用 RC530 读取 SmartCard-Mastercard,但在 RC522 中存在同样的问题。 问题是每次仅在 forst 命令上响应。 我发送:

status =Request();

status =Anticoll();

status =Select();

status =RATS();

// send first APDU 

status=Command_Send(21,Transceive);//0x02,0x00,0xA4,0x04,0x00,0x0E,0x32,0x50,0x41,0x59,0x2E,0x53,0x59,0x53,0x2E,0x44,0x44,0x46,0x30,0x31,0x00+crc;

// respond OK Mastercard Debit

response OK = 6F 35 84 E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 23 BF 0C 20 61 1E 4F 07 A0 00 00 00 04 10 10 50 10 44 45 42 49 54 20 4D 41 53 54 45 52 43 41 52 44 87 01 01 90 00

// Next Select File APDU

status=Command_Send(14,Transceive)//0x02,0x00,0xA4,0x04,0x00,0x07,0xA0,0x00,0x00,0x00,0x04,0x10,0x10,0x00+crc 

// Card don´t respond

response = 00

当我尝试先发送选择文件时,卡的响应也正常。 我尝试发送两次相同的命令,第二次没有响应。 但我需要为读取记录等发送更多 APDU。 我不知道为什么 Card 不响应任何下一个 APDU 命令,只响应第一个。 有什么想法吗?

【问题讨论】:

您好,只是一个小细节:当您将代码粘贴到问题中时,您可以选择所有代码并单击 按钮。这将为您的代码提供正确的格式,并且更易于阅读。现在有人正在编辑您的问题。 【参考方案1】:

问题已解决。问题是 PCB 字节,其中必须为每个命令切换块编号。 ISO14443协议中的解释很差。

谢谢。

【讨论】:

以上是关于非接触式智能卡仅响应第一个 APDU 命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 java smartcardio 函数发送 APDU 命令以将数据写入智能卡读卡器

两个阅读器对 GET DATA 命令的响应不同

选择接触式智能卡的MF

智能卡命令系统和安全体系

APDU 命令异步调用

智能卡对 APDU 的响应中数据字段的大小是不是有任何指示?