【问题标题】:How to change ISO 14443 bit rate via the NFC API?如何通过 NFC API 更改 ISO 14443 比特率?
【发布时间】:2017-12-06 05:18:00
【问题描述】:

由于 NFC/ISO 14443 支持从 106kbps 到至少 424 的各种通信速度(例如参见 here),我想知道如何通过 Android API 在这些比特率之间切换以缩短读取时间出 ISO 14443A 标签的整个内存。

我查看了 Android NFC BasicsAdvanced NFC 文档以及各种标签技术页面(恕我直言,其中一些理论上应该支持更高的速度),但我找不到任何改变位的提示费率。

我还查看了一些标签数据表,其中许多支持 ISO14443-4 机制,以通过 ATS 响应和 PPS 命令更改比特率,我想可以通过通用 transceive(byte[] data) 方法手动使用,但我认为这实际上不会改变 Android 设备的 NFC 芯片组的比特率……在这种情况下,当它切换到比我猜的默认 106kbps 更高的速度时,我会失去与标签的连接。

【问题讨论】:

    标签: android nfc rfid


    【解决方案1】:

    ISO14443 支持使用 ISO14443-4 中定义的 PPS 命令从 106 到 848, 但 NFC(使用 14443 协议)仅定义 106kb/s,PPS 程序不在范围内(NFC 论坛数字规范中未描述 PPS 命令)。

    NFC 支持从 106kb/s 到 424 的定义是因为:

    • ISO14443 部分支持 106kb/s
    • Felica 部分支持 212kb/s 和 424kb/s

    因此我认为使用 Android API 更改比特率是不可能的。

    编辑 1:

    结合以下 cmets 的其他信息:

    【讨论】:

    • 感谢您的回复。我可以访问 NFC 数字协议的 1.0 版,该协议在 4A 型标签平台的 RATS 响应下表示,标签可以指示支持更高比特率,以响应 FSDI 设置为 Fh 的 RATS 命令。它还指出“将在本规范的下一版本中指定更高的比特率”。不幸的是,我无法访问当前的 2.0 版本来确认,但这听起来很有希望……当然,前提是 Android 将提供一个 API 来实际允许更改比特率。
    • 我也无法访问“NFC 数字协议 v2.0”。但是,我研究了 Android 源代码中 NFC 协议的低级实现。最后,最新的 Android 智能手机大多使用 NXP PN547(与 NXP PN7120)。在其(公共)用户手册中指出:[NCI](管理 NFC 控制器的协议)不“正式”支持在 NFC-A 和 NFCB 技术中使用更高的比特率,但它也表明“PN7120 可以发送如果 DH 将 PI_BIT_RATE 设置为高于 0x00" 的允许值,则执行 PPS 命令。
    • Android 源代码在其中定义源代码 PI_BIT_RATE = 0x21,因此理论上 NFC 控制器可以发送高达 212 kbit/s(在 NCI 规范中定义)的 PPS,但这取决于 NFC 控制器和Android API 肯定无法更改
    • 感谢这些详细的更新。您能否提供指向您提到的这些 Android 源代码中 NFC 协议的低级实现的指针?我快速浏览了一下,但没有低于 AOSP 代码中的BasicTagTechnology...那么我很乐意接受您的回答。
    • 您可以查看HCI 也可以查看名为 (NCI)[cardsys.dk/download/NFC_Docs/… 的 NFC 论坛标准,现代 NFC 控制器紧随其后,因为 NFC 论坛规格不公开,我不能提供最新的出版物,您还可以查看PN7120 的数据表,它是当今大多数智能手机带来的 NFC 控制器
    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多