Разница между "Командой прямой передачи" (ACR122U) и "PC_to_RDR_Escape" (ACR1251U)
-
02-01-2020 - |
Вопрос
Я знаю, что с ACR122U вы можете передавать прямые сообщения на контроллер NFC (PN532), используя команду direct transmit: 0xff 0x00 0x00 0x00...
.
Когда я читал руководство к ACR1251U, там говорилось: Команды управления периферийными устройствами считывателя реализуются с помощью PC_to_RDR_Escape.
Что именно это означает?Означает ли это, что невозможно отправлять прямые сообщения на контроллер NFC?Если это возможно, где вы можете найти, какой NFC-контроллер он использует?
Любая информация приветствуется!
Заранее благодарю.
Решение
"Команда прямой передачи" - это формат APDU, который позволяет отправлять собственные команды на NFC-контроллер PN532, встроенный в считывающее устройство ACR122U.Таким образом, это в основном определяет перенос, позволяющий встроить собственные команды в протокол на основе APDU, по которому вы общаетесь с читателем через PC / SC (& CCID):
0xFF 0x00 0x00 0x00 <Lc> <DATA>
где <DATA>
на самом деле это команда для PN532.
PC_to_RDR_Escape
это сообщение CCID (класс устройства / протокол, передаваемый по USB), которое вызывается стеком PC / SC при отправке escape-команды.Например, если вы используете 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) подход escape command.