使用ACR122U,我知道您可以使用直接传输命令0xff 0x00 0x00 0x00...
将直接信息传输到NFC控制器(PN532)。
当我阅读ACR1251U的手册时,它说:阅读器的外围设备控制命令通过使用PC_to_RDR_Escape 实现。
这是什么意思?这是否意味着无法将直接消息发送到NFC控制器?如果可能,您在哪里可以找到它使用的NFC控制器?
欢迎提供任何信息!
提前致谢。
答案 0 :(得分:3)
"直接传输命令"是一种APDU格式,允许您将本机命令发送到嵌入在ACR122U读卡器设备中的PN532 NFC控制器。所以这基本上定义了包装以适应本机命令到基于APDU的协议,你通过PC / SC(& CCID)与读者交谈:
0xFF 0x00 0x00 0x00 <Lc> <DATA>
其中<DATA>
实际上是PN532的命令。
PC_to_RDR_Escape
是CCID消息(通过USB说出的设备类/协议),当您发送转义命令时,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
条消息。
正如您在this answer中发现的那样,似乎您将使用&#34;直接传输命令的#APDU格式&#34;对于两种命令交换方法。
是否需要使用escape命令或transmit命令似乎取决于阅读器的固件版本。例如,对于固件版本101,102(和103?),您通常只需要传输命令,但下一代版本(2xx)似乎更喜欢/要求(如果他们不能模拟ATR)逃生命令方法。