'直接发射命令'(ACR122U)和'PC_to_RDR_Escape'(ACR1251U)之间的区别
-
02-01-2020 - |
题
使用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)转义命令方法。