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.

[参考译文] TRF7970A:用于大型数据传输的卡仿真与 P2P 模式

Guru**** 2539500 points
Other Parts Discussed in Thread: TRF7970A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/992347/trf7970a-card-emulation-vs-p2p-mode-for-large-data-transfer

器件型号:TRF7970A

您好!

我有以下问题。

  • 使用卡仿真模式时、一个数据包中可以传输的最大数据大小是多少? 目的是传输20kB 的数据。 如何做到这一点? 是否有要参考的软件示例? 还是对等模式更适合20kB 数据传输?  
  • 卡仿真模式支持 Android 和 iOS 两者? 还是需要考虑对等模式?

任何指针都会有所帮助。

谢谢、Jasraj

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jasraj、

    我必须与一位同事一起检查、并在接下来的几天内回来。

    此致、

    赫尔化

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 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。
       那么、我们如何实现254字节的数据包大小。[/quot]

    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、

    关于20kByte 传输,示例项目应将3597字节 MIME 映像作为可传输消息之一。 这种大型消息是一个很好的示例、并提供了可进一步扩展的大型数据传输的基本原理。 对于示例代码、我们只使用了闪存中的静态映像、但您实际上可以为此使用任何数据源。 我建议从演示开始处理更大的传输。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ralph:

    我们尝试使用了您在上一次聊天中提到的 NFC 堆栈。
    并将 NFC 配置为在卡仿真模式下工作、但在将代码与项目合并时、我们面临存储器溢出问题。

    那么、您能否为我们提供仅具有卡仿真功能的优化堆栈?

    请告诉我们您使用哪种 Android Mobile 应用与 NFC 芯片通信。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、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。