Разница между "Командой прямой передачи" (ACR122U) и "PC_to_RDR_Escape" (ACR1251U)
Я знаю, что с ACR122U вы можете передавать прямые сообщения на контроллер NFC (PN532) с помощью команды прямой передачи: 0xff 0x00 0x00 0x00...
,
Когда я читаю руководство по эксплуатации ACR1251U, оно говорит: Команды управления периферийными устройствами считывателя реализуются с помощью PC_to_RDR_Escape.
Что это точно означает? Означает ли это, что невозможно отправлять прямые сообщения на контроллер NFC? Если это возможно, где вы можете найти, какой контроллер NFC он использует?
Любая информация приветствуется!
Заранее спасибо.
1 ответ
"Команда прямой передачи" - это формат APDU, который позволяет отправлять собственные команды на контроллер NFC PN532, встроенный в устройство считывания ACR122U. Таким образом, это в основном определяет упаковку, чтобы вписать собственные команды в протокол на основе APDU, который вы общаетесь с читателем через PC/SC (& CCID):
0xFF 0x00 0x00 0x00 <Lc> <DATA>
где <DATA>
на самом деле команда для PN532.
PC_to_RDR_Escape
является сообщением CCID (класс / протокол устройства, который используется по USB), которое вызывается стеком ПК / SC при отправке команды escape. Например, если вы используете Java SmartcardIO API Card.transmitControlCommand()
метод, стек ПК / SC отправит PC_to_RDR_Escape
сообщение через USB. Читатель отвечает на это сообщение RDR_to_PC_Escape
ответ.
Точно так же, если вы используете метод CardChannel.transmit()
метод, это заставляет стек PS/SC выдавать один (или более?) PC_to_RDR_XfrBlock
сообщения через USB.
Как вы узнали из этого ответа, кажется, что вы использовали бы формат APDU "команды прямой передачи" для обоих методов обмена командами.
Необходимость использования команды escape или команды передачи зависит от версии микропрограммы считывателя. Например, для версий встроенного ПО 101, 102 (и 103?) Обычно требуется только команда передачи, но версии следующего поколения (2xx), по-видимому, предпочитают / требуют (если они не эмулируют ATR) подход к команде escape,