如何在NFC类型4标签仿真上组织大型数据文件

时间:2014-07-05 16:40:22

标签: android nfc smartcard ndef contactless-smartcard

我正在开发一个应用程序,我将数据存储在4Mbit数据闪存上,然后通过NFC通过智能手机读取数据。为此,我使用NFC前端(AS3953)和微控制器来模拟Type 4标签。 将数据拆分成264个字节的块(闪存的页面大小)并按顺序读出它们会很方便。

那么更好的结构是什么: 一个大的NDEF文件,每个文件有264个字节的记录,或者一个专用文件下的许多单个基本文件?

感谢您的投入, 安德烈亚斯

1 个答案:

答案 0 :(得分:2)

这在很大程度上取决于您希望通过解决方案实现的目标以及您定位的平台:

  1. 您可以构建遵循NFC论坛类型4标签规范的NFC标签,并仅使用NDEF数据抽象层。

    • 您的应用程序可与支持在NFC论坛类型4标签上读取和写入NDEF消息的所有设备互操作。这包括支持NFC和NFC Web API的所有当前主流移动OS平台。
    • 您只能使用65534字节的NDEF数据(包括记录标题)。
    • 您无法真正控制设备如何从/向NDEF文件读取或写入数据。具体来说,即使您将文件分成几个NDEF记录,也无法控制文件的读/写段。 (请注意,您可以控制APDU的最大数据字段大小,但没有任何东西可以阻止NFC设备读取/写入更小的块。)
    • NFC设备(例如Android会这样做)通常会在扫描标签时读取整个 NDEF消息,以执行自动操作(例如启动应用)。
  2. 您可以构建遵循NFC论坛类型4标签规范的NFC标签,并使用NDEF数据抽象层的组合(例如,存储允许您的应用自动启动并识别prorietary协议的信息) )和专有数据文件(在NFC论坛类型4标签操作规范中指定)。

    • 多个平台(例如Windows Phone 8,NFC Web API)无法访问专有数据文件。可以在Android和BlackBerry设备上访问它们。
    • 除了通常由操作系统处理的自动NDEF抽象外,您还需要手动实现命令以识别和访问prorietary数据文件(例如,在使用IsoDep类的Android上)。
    • 使用这些prorietary数据文件,您可以构建您的内存以供使用,例如每页一个文件。
    • 您不限于65534字节,而是可以有多个文件,每个文件最多65534字节。
    • NFC设备通常在扫描标签时默认只读取NDEF文件以执行自动操作。专有文件通常会被忽略。
    • 除了使用NFC论坛类型4标签操作规范的专有文件功能外,您还可以创建一个单独的应用程序(在不同的DF名称/ AID下),允许您访问数据存储器(通过ISO 7816-4标准化命令我们通过自定义命令)。
  3. 您可以根据ISO 14443 / ISO 7816-4创建完全自定义的协议。

    • 您不会(或仅部分)具有NDEF标记的功能(例如,触发自动操作,例如启动特定应用)。
    • 您的应用将与Windows Phone 8(或任何其他只允许通过NDEF抽象高级访问标记的平台)兼容。
    • 您没有通过实施NFC论坛类型4标签操作规范引入的协议开销。