如何处理reader收到的S-block?

How to handle S-block received by reader?

我使用 MFRC522 作为 reader,而 Sony C4 正在执行 Google HCE 示例。 reader 正在发送帧 1:

02 00 A4 04 00 07 F0 01 02 03 04 05 06 crc1 crc2

然后 reader 接收帧 2:

f2 08 50 dd

我觉得可能是S-block或者WTX

但是 HCE 应用程序的日志显示:

received apdu 00 A4 04 00 07 F0 01 02 03 04 05 06

sending account number number 123456

即使 reader 一次又一次地发送帧 1,我总是收到相同的帧 2,为什么?

f2 08 50 dd是S-block表示等待时间延长(WTX):

  • PCB = f2:
    • 位 8..7 = '11':S 块
    • 位 6..5 = '11': S(WTX)
  • INF = 08:
    • WTXM = 8
  • EDC = 50 dd

如果reader收到来自卡的S(WTX)请求,它需要通过响应S(WTX)帧来确认这个请求。因此,例如,您可以将相同的 S(WTX) 帧发送回卡。

由于 HCE 处理通常相当慢,因此在您实际收到 APDU 的任何响应数据之前交换多个 S(WTX) 帧的情况并不少见。