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

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

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

欢迎提供任何信息!

先谢谢你。

有帮助吗?

解决方案

"直接传输命令"是一种APDU格式,允许您将本机命令发送到ACR122U读取器设备中嵌入的PN532NFC控制器。所以这基本上定义了包装,以适应本机命令到基于APDU的协议中,您可以通过PC/SC(&CCID)与读者交谈:

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

哪里 <DATA> 实际上是PN532的命令。

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

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

正如你在 这个答案, ,似乎您将使用"直接传输命令"的APDU格式用于两种命令交换方法。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top