由于NFC / ISO 14443支持从106kbps到至少424的各种通信速度(例如参见here),我想知道如何通过Android API在这些比特率之间切换,以缩短所需的时间读出ISO 14443A标签的整个记忆。
我查看了Android NFC Basics和Advanced NFC文档以及各种标记技术页面(其中一些恕我直言,理论上应支持一些更高的速度),但我无法找到任何改变比特率的提示。
我还看了一些标签数据表,其中许多支持ISO14443-4机制,通过ATS响应和PPS命令改变比特率,我想这可以通过通用transceive(byte[] data)
手动使用方法,但我认为这实际上不会改变Android设备的NFC芯片组的比特率...在这种情况下,当它切换到更高的标签时,我将失去与标签的连接速度比我想的默认106kbps。
答案 0 :(得分:2)
ISO14443使用ISO14443-4中定义的PPS命令支持106到848, 但是NFC(使用14443协议)仅定义了106kb / s且PPS过程超出了范围(NFC论坛数字规范中没有描述PPS命令)。
NFC支持从106kb / s到424的定义是因为:
因此我认为无法使用Android API更改比特率。
纳入以下评论中的其他信息:
管理NFC控制器的协议是NFC Controller Interface (NCI),其后是现代NFC控制器。
最新的Android智能手机大多使用NFC控制器芯片NXP PN547(带NXP PN7120)。虽然NCI协议没有“正式”支持在NFC-A& amp;技术中使用更高比特率。 NFCB,PN7150 User Manual表示
如果DH将PI_BIT_RATE设置为高于0x00的允许值,PN7120可以发送PPS命令。
Android source code defines PI_BIT_RATE = 0x21因此理论上NFC控制器可以发送高达212 kbit / s的PPS(在NCI规范中定义),但这取决于NFC控制器,并且无法通过Android API进行更改
platform/system/nfc/halimpl下的Android源代码树包含NXP's PN54x family和Broadcom's BCM2079x family个控制器的HAL实现(显然是used in Nexus 4 and Nexus 10 devices)。
< / LI>