0

我正在开发一个项目,以便通过 NFC 将大数据从 PC 交换到 Android 设备。我正在使用 ACR122。

以下是发送数据的一般示例:

// ADPU
FF FF 00 00 00 nn   // CLA, INS, P1, P2, Le, Lc
D4 40               // TFI, PD0
01                  // (Mi), Target

// LLCP
13 20               // DSAP, PTYPE, SSAP
00                  // Sequence
D4 40               // TFI, PD0

// SNEP
10 02               // Protocol Version, Action
nn nn nn nn         // Total SNEP Length

// NDEF Header
A2                  // First byte (MB = 1, ME = 0, Cf = 1, SR = 0, Il, TNF)
22                  // Type length
mm mm mm mm         // Payload length

// NDEF Content
61.....65           // Type (34 bytes in that case)
01.....01           // Payload (mm mm mm mm bytes)

在这里,我发送了一条记录(不是短记录)。因此 NDEF 标头允许输入 4 字节的有效负载长度。
最后,我的问题是我们如何发送关于 1 字节 APDU Lc 的如此大的有效载荷?
如果此限制仅是由于 pn532 芯片或 PS/SC 造成的,您建议使用哪些替代硬件?

谢谢你的澄清

编辑:
我在这里找到了我要找的东西:
向 Javacard 发送扩展 APDU
这是硬件问题,PN532 不支持扩展 APDU。

4

1 回答 1

0

正如您已经发现,由于 PN532 芯片的限制,ACR122 不支持扩展 APDU。

但是,无需将整个 SNEP 传输打包到单个 APDU 中。您可以将有效负载拆分为多个较小的帧并一个接一个地发送。唯一重要的是 NDEF 标头在第一帧中作为一个整体进行传输。

于 2015-11-19T02:51:21.627 回答