我的理解是 ISO 14443-4 是一种传输协议https://webstore.iec.ch/preview/info_isoiec14443-4%7Bed4.0%7Den.pdf,因此限制了您可以发送/接收的数量一个命令。这并不限制您使用多个命令来发送和接收以模拟更多内存。
所以真正应该发生的事情是设备会通过 ISO 14443-4 向模拟卡发出 iso 7816-4 命令。
读取时的设备应遵守已确定为设备应支持的最大收发长度(在您的情况下,短 APDU 命令应为 256 字节),因此它应读取多个 256 字节块以读取整个文件(记忆)
请参阅 ISO 7816-4read binary
命令https://cardwerk.com/smart-card-standard-iso7816-4-section-6-basic-interindustry-commands/#chap6_1它具有偏移和长度参数
因此,对于较大的数据,基本上您在 Arduino 上的 HCE 响应代码应该从 PN532 传递一个“读取 0 到 255 字节的二进制文件”命令,您将使用 JSON 数据的前 256 个字节进行响应。
然后设备将发出第二个“读取 256 到 512 字节的二进制文件”等,直到您要返回的所有数据都已返回。
因此,它读取的模拟文件(内存)是该设备支持的短 APDU(256k)可以传输的最大大小的块。
请注意,我没有对此进行任何编码,只是对标准有所了解。
请注意,您可以获得高达 32K 存储的卡,是的,它们的成本更高,但 4Kbyte Desfire 卡的价格仅为具有 888byte 内存的 Ntag216 价格的 150% 左右。