Как эмулировать карту с ACR122U-A9
У меня есть ACR122U-A9, я хочу, чтобы карта эмулировала его. Я спрашиваю, кто сделал это? Можете ли вы дать мне несколько советов?
Теперь у меня есть и другие проблемы, когда я помещаю белую смарт-карту в этот считыватель NFC, светодиод мигает только один раз. Но когда я ставлю на него телефон, светодиод всегда мигает, пока телефон не выключится.
2 ответа
ACR122U содержит микросхему контроллера NFC PN532. PN532 поддерживает эмуляцию хост-карты через TgInitAsTarget
команда (см. руководство пользователя PN532). Чтобы передавать команды на PN532, вы должны подключиться к ACR122U, как если бы это был обычный считыватель смарт-карт (например, с использованием ПК /SC). Затем вы можете отправлять команды пакета PN532 в считывающие устройства APDU вида
> FF000000 <Lc> <Command>
и получить ответы в виде
< <Response> 9000
Таким образом, чтобы перевести ACR122 в режим эмуляции карты, вы должны сделать следующее:
ReadRegister:
> FF000000 08 D406 6305 630D 6338 < D507 xx yy zz 9000
Обновить значения регистра:
xx = xx | 0x004; // CIU_TxAuto |= InitialRFOn yy = yy & 0x0EF; // CIU_ManualRCV &= ~ParityDisable zz = zz & 0x0F7; // CIU_Status2 &= ~MFCrypto1On
WriteRegister:
> FF000000 11 D408 6302 80 6303 80 6305 xx 630D yy 6338 zz < D509 9000
SetParameters:
> FF000000 03 D412 30 < D513 9000
TgInitAsTarget
> FF000000 27 D48C 05 0400 123456 20 000000000000000000000000000000000000 00000000000000000000 00 00 < D58D xx ... 9000
куда
xx
должно быть равно 0x08.Общайтесь, используя последовательность команд TgGetData и TgSetData:
> FF000000 02 D486 < D587 xx <C-APDU> 9000
куда
xx
это код состояния (должен быть0x00
для успеха) и C-APDU это команда, отправленная от читателя.> FF000000 yy D48E <R-APDU> < D587 xx 9000
куда
yy
2 + длина R-APDU (ответ) иxx
это код состояния (должен быть0x00
для успеха).
По сути, ACR122U не предназначен для эмуляции карты, хотя от производителя все еще остается очень мало информации о том, что ее можно использовать для эмуляции карты NFC. Если это возможно, это было бы не так просто. Я предлагаю вам попробовать эмуляцию хост-карты Android (HCE на Android 4.4).
Для части 2: я попробовал с моим телефоном (Xperia Z), когда я включил чип NFC и положил телефон на картридер, ничего не произошло с обеих сторон. Возможно, вы используете функцию эмуляции карты телефона.