【问题标题】:Difference between 'Direct Transmit Command' (ACR122U) and 'PC_to_RDR_Escape' (ACR1251U)“直接传输命令”(ACR122U)和“PC_to_RDR_Escape”(ACR1251U)之间的区别
【发布时间】:2014-08-01 15:59:30
【问题描述】:

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

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

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

欢迎提供任何信息!

提前致谢。

【问题讨论】:

    标签: nfc apdu smartcard-reader pcsc acr122


    【解决方案1】:

    “直接传输命令”是一种 APDU 格式,允许您将本地命令发送到嵌入在 ACR122U 读取器设备中的 PN532 NFC 控制器。因此,这基本上定义了包装,以使本机命令适合您通过 PC/SC(和 CCID)与阅读器对话的基于 APDU 的协议:

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

    &lt;DATA&gt; 实际上是 PN532 的命令。

    PC_to_RDR_Escape 是 PC/SC 堆栈在您发送转义命令时调用的 CCID 消息(通过 USB 朗读的设备类/协议)。例如,如果您使用 Java SmartcardIO API 的 Card.transmitControlCommand() 方法,PC/SC 堆栈将通过 USB 发送 PC_to_RDR_Escape 消息。读者以RDR_to_PC_Escape 回复此消息。

    同样,如果您使用CardChannel.transmit() 方法,这会导致 PS/SC 堆栈通过 USB 发出一个(或更多?)PC_to_RDR_XfrBlock 消息。

    正如您在this answer 中发现的那样,您似乎将“直接传输命令”的 APDU 格式用于两种命令交换方法。

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

    【讨论】:

    • 不,Card.transmitControlCommand()(或 C 中的 SCardControl使用 PC_to_RDR_Escape 与 PC/SC 阅读器设备通信。 “直接发送命令”APDU 结构只是在该链路上使用的一种帧格式(对于 ACR122U,不确定 ACR1251U 是否存在该命令)。因此,如果您想发送为 ACR1251U 定义的任何外围控制命令,您可以使用Card.transmitControlCommand()(和IOCTL_..._ESCAPE_COMMAND)发送。
    • 对不起,我正在重写我的评论,但您回复得很快!谢谢,这个命令很有帮助。
    • 所以如果我明白这一点:ACR1251U 手册说你可以使用E0 00 00 18 00 来获取固件版本。如果我将它与Card.transmitControlCommand() 一起使用,它将与PC_to_RDR_Escape 交谈。所以这个'escape approuch'和ACR122U的0xFF 0x00 0x00 0x00 &lt;Lc&gt; &lt;DATA&gt; approuch效果一样吗?到目前为止,我看到 ACR1251 没有“直接传输命令”。这是否与ACR122U只有一个接口(ACR122U PCSC接口)而ACR1251U有两个(ACR1251 PCSC SAM接口和ACR1251 PCSC PICC接口)有关?
    • 您可以认为FF 00 00 00 &lt;Lc&gt; &lt;DATA&gt; 只是另一个命令,例如E0 00 00 18 00
    • 如果你想发送类似TgInitAsTarget的命令(这是PN53x芯片特有的命令),你需要确定你是否可以直接向ACR1251U的NFC芯片发送命令,你需要找出他们在其中使用的芯片(当然,该芯片需要支持等效的东西)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2020-09-09
    • 2019-07-19
    相关资源
    最近更新 更多