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



我正在读取智能卡-万事达卡与RC530,但在RC522同样的问题。问题是每次只响应第一个命令。我发送:

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

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

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

谢谢。

最新更新