NFC:APDU和SNEP长度限制

时间:2015-11-18 19:28:37

标签: nfc apdu acr122 large-data

我正在开展一个项目,以便通过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,您会建议使用哪种替代硬件?

感谢您的任何澄清

编辑:
我找到了我在这里寻找的东西:
Sending Extended APDU to Javacard
这是一个硬件问题,PN532不支持扩展APDU。

1 个答案:

答案 0 :(得分:0)

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

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