您好!
我有以下问题。
- 使用卡仿真模式时、一个数据包中可以传输的最大数据大小是多少? 目的是传输20kB 的数据。 如何做到这一点? 是否有要参考的软件示例? 还是对等模式更适合20kB 数据传输?
- 卡仿真模式支持 Android 和 iOS 两者? 还是需要考虑对等模式?
任何指针都会有所帮助。
谢谢、Jasraj
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好 Jasraj、
如果我记住正确的话、数据包大小被限制在254字节-这将基于 NDEF 规范。
[引用 userid="60058" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer "]或者点对点模式是否更适合20kB 数据传输? [/报价]根据我们的测试、由于开销降低、P2P 的速度至少比卡仿真快2倍。 但是、这两种模式都是可行的。
[引用 userid="60058" url="~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer ]\n 如何做到这一点? 任何要参考的软件示例?[/引用]我们的卡仿真软件是一个很好的起点、应用手册包含使用此软件进行20kB 文件传输的指标(尽管已经非常过时): https://www.ti.com/lit/pdf/sloa208
[引用 userid="60058" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer 上的内容]卡仿真模式支持 Android 和 iOS 两种? [/报价]是的、虽然我不熟悉 iOS 应用程序支持这种大型数据文件传输功能的内容。 早在2014-2015年、此版本对 Android 的支持非常有限、虽然扩展了 Android 版本、但我不确定 iOS 有哪些内容可用于测试如此大的文件传输。 尽管卡仿真的发现可能比对等模式更容易。
您好 Ralph Jacobi、
感谢您的回答。
1.@Ralph:如果我记对了,数据包大小限制为254字节,这将基于 NDEF 规范。
根据 TRF7970A 数据表、控制器有127字节的 FIFO、因此一次只有127字节的数据包可以是 Tx 或 RX。
那么、我们如何实现254字节的数据包大小。
此外 、当我尝试使用时、使用 Android 应用程序的卡仿真模式、即"NFC 工具"、在写入数据字节超过100时出错。
3. 是否可以共享一个示例代码,在这里它处理的数据字节高达20KB。 (即多个数据包)
4. 除了实际数据外,还有几个字节是从 Android 应用程序中写入的,您能提供 其中的重要内容吗?
您好、Jinesh、
[引用 userid="442037" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer/3667370 #3667370"] 根据 TRF7970A 数据表、控制器具有127字节 FIFO、因此每次只有127字节的数据包可以是 Tx 或 RX。FIFO 用作缓冲器以存储 MCU 通信的数据、并可在传输期间重新加载新数据。 从器件的角度来看、TRF7970A 射频数据包的大小没有限制、但 NFC 标准对数据包大小有限制。
TRF7970A FIFO 具有水印、用于指示何时需要将数据读出或写入 FIFO、所使用的 SPI 接口比无线传输快得多。
[引用 userid="442037" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer/3667370 #3667370"]此外、当我尝试使用 Android 应用程序的卡仿真模式时、即"NFC 工具"、在写入数据字节超过100时出错。由于在 PC 和 LaunchPad 之间用于此演示的 USB 接口、GUI 存在限制。 它旨在显示堆栈的基本功能、但进一步的开发将由客户处理。 所有挂钩都已到位、以支持更多。
[引用 userid="442037" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer/3667370 #3667370"]是否可以共享示例代码、其中处理的数据字节高达20KB。 (即多个数据包)[/quot]不幸的是、我不再有该示例。
[引用 userid="442037" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer/3667370 #3667370"]除了实际数据外,还有一些来自 Android 应用程序的字节,请您提供 其中的重要内容。这些是 NFC 论坛定义的 NDEF 格式的一部分。 您可以阅读第2.2节和第3节中的详细信息。 应用手册中对此进行了详细说明。
您好、Jinesh、
[引用 userid="442037" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer/3673212 #3673212"]那么,您能否仅为我们提供具有卡仿真功能的优化堆栈?您可以使用所提供的堆栈轻松实现此目的。 转至 nfclink/source/headers 文件夹中的 nfc_config.h 文件、并将#define 语句更改为:
#define NFC_P2P_ACTIVE_INIT_ENABLED 0x00 #define NFC_P2P_ACTIVE_TARG_ENABLED 0x00 #define NFC_P2P_PASSIVE_INIT_ENABLED 0x00 #define NFC_P2P_PASSIVE_TARG_ENABLED 0x00 #define NFC_CE_T4TA_ENABLED 0x01 #define NFC_CE_T4TB_ENABLED 0x01 #define NFC_RW_T2T_ENABLED 0x00 #define NFC_RW_T3T_ENABLED 0x00 #define NFC_RW_T4TA_ENABLED 0x00 #define NFC_RW_T4TB_ENABLED 0x00 #define NFC_RW_T5T_ENABLED 0x00[引用 userid="442037" URL"~/support/wireless-connectivity/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer/3673212 #3673212"]请告诉我们您使用哪种 Android Mobile 应用程序与 NFC 芯片通信。
我目前没有任何要推荐的应用程序、但目前 Android 商店中任何受到好评的应用程序都应该是可靠的候选程序。
尊敬的 Ralph Jacobi:
当我们从 Mobile 应用程序传输数据时 ,API ISO_7816_4_processReceivedRequest()被调用了两次。
INS_INDEX 值都是0xD6。
我想、首次调用 API 时、缓冲区不会包含数据。 但第二次它具有实际数据。
那么、我们如何在代码中区分这2个调用、因为我们将传输多个数据包。
此外、是否可以让 NFC 演示工作。
因为我们早就向 Jasraj 要求了同样的东西。
谢谢你。
此致、
Jinesh Punatar。
您好、Jinesh、
我在这个级别上已经离开了很多年了、所以我不记得0xD6的 INS_INDEX 与什么相关、但我的直觉是、第一个调用是读取数据大小、第二个调用是读取其余的数据。 这是一个标准 NFC 过程、其中 NDEF 消息的标头有一个"功能容器"、其中包含读取剩余 NDEF 内容所需的信息。 首先读取功能容器(CC)、然后读取实际的消息内容。 我会检查应用程序是否首先读取 CC。