使用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命令方法。