当前位置: 首页 > 知识库问答 >
问题:

“直接传输命令”(ACR122U)和“PC_to_RDR_Escape”(ACR1251U)之间的差异

白哲茂
2023-03-14

使用ACR122U,我知道您可以使用直接传输命令将直接消息传输到NFC控制器(PN532):0xff 0x00 0x00 0x00…

当我阅读ACR1251U的手册时,它说:读取器的外设控制命令是通过使用PC_to_RDR_Escape实现的。

这到底意味着什么?这是否意味着不能向NFC控制器发送直接消息?如果可能,在哪里可以找到它使用的NFC控制器?

欢迎任何信息!

提前感谢。

共有1个答案

江光明
2023-03-14

“直接传输命令”是一种APDU格式,允许您向嵌入ACR122U读卡器设备中的PN532 NFC控制器发送本地命令。因此,这基本上定义了将本机命令装入基于APDU的协议的包装,您可以通过PC/SC与读者交谈(

 0xFF 0x00 0x00 0x00 <Lc> <DATA>

哪里

PC_to_RDR_Escape是当您发送转义命令时PC/SC堆栈调用的CCID消息(通过USB说出的设备类/协议)。例如,如果您使用Java SmartcardIO API的<code>卡。transmitControlCommand()方法,PC/SC堆栈将通过USB发送PC_to_RDR_Escape消息。读者用RDR_to_PC_Escape响应回答此消息。

类似地,如果您使用< code > card channel . transmit()方法,这会导致PS/SC堆栈发出一个(或多个?)< code>PC_to_RDR_XfrBlock消息。

正如你在这个回答中发现的,看起来你会在两种命令交换方法中使用APDU格式的“直接传输命令”。

您是否需要使用转义命令或传输命令似乎取决于读取器的固件版本。例如,对于固件版本101、102(和103?),您通常只需要传输命令,但下一代版本(2xx)似乎更喜欢/需要转义命令方法(如果它们不模拟ATR)。

 类似资料:
  • 问题内容: 好的,所以我使用了很多输入命令,并且我了解在Python2中我可以做到: 但是现在我使用Python 3,我想知道两者之间有什么区别: 和: 我什么时候必须使用一个或另一个? 问题答案: 在Python 3.x中,成为,并删除了Python2.x 。因此,通过在3.x中执行此操作: 您基本上是在2.x中执行此操作: 在3.x中执行以下操作: 与在2.x中执行此操作相同: 以下是Pyth

  • 我正在运行6个java进程,我将-xms和-xmx参数设置为每个进程1 GB,因此总堆分配为6 GB。我有8 GB的物理内存,所以在启动这6个进程之后,“free”命令应该显示6 GB是已用的,剩下2 GB但事实并非如此。相反,“free”显示只使用了1 GB,而7 GB是免费的。我有点困惑,因为我对-xms(A MB)的理解是,一个MBs的内存是由OS分配给JVM,而-xmx(B MBs)意味着

  • 问题内容: 据我了解,python将输出输出,但显然并非总是如此。例如: 在ipython中: 在python中: ipython对输出应用什么转换? 问题答案: IPython使用代替方法或标准模块来打印输出。 模块提供了在后台使用的两个功能。 函数返回对象的字符串表示形式: 函数打印对象的表示形式: IPython使用其自己的漂亮打印机,因为标准Python模块“不允许开发人员提供自己的漂亮打

  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 我对Vertx中的标准顶点和工人顶点感到困惑。它们的用例是什么?

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?