'Direct Transmit Command' (ACR122U) 和'PC_to_RDR_Escape' (ACR1251U) 之间的区别



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

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

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

欢迎提供任何信息!

"直接传输命令"是一种APDU格式,允许您向嵌入在ACR122U读取器设备中的PN532 NFC控制器发送本地命令。所以这基本上定义了包装,以适应本地命令进入基于apdu的协议,你通过PC/SC与阅读器交谈(&赛迪):

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

其中<DATA>实际上是PN532的命令。

PC_to_RDR_Escape是CCID消息(通过USB说话的设备类/协议),当您发送escape命令时,由PC/SC堆栈调用。例如,如果您使用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消息

正如您在这个答案中发现的那样,似乎您将对两个命令交换方法使用"直接传输命令"的APDU格式。

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

相关内容

  • 没有找到相关文章

最新更新