PCD数据传输格式-1

ISO14443A-4协议定义了近场通信(NFC)中PCD(读卡器)与PICC(卡片)间的数据传输格式,包括三种块类型:I-BLOCK(数据块)、R-BLOCK(确认块)和S-BLOCK(控制块)。以下是每种块的示例及说明:


1. I-BLOCK(数据块)

用于传输应用数据,如APDU命令或响应。

读卡器发送APDU命令(SELECT)

  • 帧结构
    [PCB][CID][INF][CRC]
    • PCB:
      0x02
      (I-BLOCK,块号0,无链接;假设Chaining位为0,块号0)
    • CID:
      0x00
      (卡标识符,可选)
    • INF: APDU指令
      00 A4 04 00 02 3F 00
      (SELECT文件)
    • CRC: 校验值(示例:
      87 2A

完整帧

02 00 00 A4 04 00 02 3F 00 87 2A

卡片响应数据(成功)

  • PCB:
    0x03
    (I-BLOCK,块号1,无链接)
  • INF: 状态字
    90 00
    (操作成功)
  • CRC: 示例值
    45 67

完整帧

03 90 00 45 67

2. R-BLOCK(确认块)

用于流控制,确认数据接收(ACK)或请求重传(NAK)。

卡片发送ACK(确认块号0)

  • PCB:
    0xA2
    (R-BLOCK,ACK,块号0;假设ACK位为0,块号0)
  • CRC: 示例值
    12 34

完整帧

A2 12 34

卡片发送NAK(请求重传块号1)

  • PCB:
    0xB3
    (R-BLOCK,NAK,块号1;假设NAK位为1,块号1)
  • CRC: 示例值
    56 78

完整帧

B3 56 78

3. S-BLOCK(控制块)(C0 C1 C2 C3 C4)

用于管理协议参数或控制操作(如复位、静默)。

读卡器发送DESELECT请求

  • PCB:
    0xC2
    (S-BLOCK请求,DESELECT命令)
  • CRC: 示例值
    AB CD

完整帧

C2 AB CD

卡片确认DESELECT操作

  • PCB:
    0xD2
    (S-BLOCK响应,操作成功)
  • CRC: 示例值
    12 34

完整帧

D2 12 34

关键字段说明

  1. PCB(协议控制字节)

    • I-BLOCK:最高两位为
      00
      ,块号(Bit 5),链接标识(Bit 4)。
    • R-BLOCK:最高两位为
      10
      ,ACK/NAK(Bit 5),块号(Bit 4)。
    • S-BLOCK:最高两位为
      11
      ,请求/响应标识(Bit 5),命令码(低4位)。
  2. CID:卡标识符(可选),用于多卡场景。

  3. INF:应用数据或控制参数。

  4. CRC:校验字段,确保帧完整性。


流程示例

  1. 读卡器发送I-BLOCK携带SELECT命令。
  2. 卡片回复R-BLOCK确认接收(ACK)。
  3. 读卡器继续发送I-BLOCK数据。
  4. 若数据传输完成,读卡器发送S-BLOCK请求释放卡片(DESELECT)。
  5. 卡片响应S-BLOCK确认操作。

通过合理组合这三种块类型,ISO14443A-4协议实现了高效可靠的数据交换与设备管理。

posted @ 2025-05-13 16:12  流水江湖  阅读(124)  评论(0)    收藏  举报