2014-02-12 2 views
0

В нашем проекте мы пытаемся подражать ISO14443-3 PICC в считывателе NFC ACS ACR122U и читать эту карту с телефонами NFC (Samsung S3 или S4). В случае S4 мы можем успешно общаться с эмулируемой картой, но в случае S3 нет события NFC.Ошибка эмуляции карты NFC S3 (Android 4.3) и ACR122U

Мы отметили все команды/ответы и журналы с Android (logcat), которые указывают, что S3 не может активировать LLCP-связь. Я размещаю все данные, которые у нас есть, пожалуйста, помогите нам в решении проблемы.

КОМАНДА/ответ на ACR122U (контроллер PN532 считыватель):

COMMAND:FF0000002DD48C0400000000002001FE0FBBBAA6C9890000000000000000FFFF01FE0FBBBAA6C98900000647666D01011000 
RESPONSE:D58D08E080 

COMMAND:FF00000002D486 
RESPONSE:D5870000A4040007D276000085010100 

COMMAND:FF00000004D48E6A82 
RESPONSE:D58F00 

COMMAND:FF00000002D486 
RESPONSE:D5870000A4040007D2760000850100 

COMMAND:FF00000004D48E6A82 
RESPONSE:D58F00 

COMMAND:FF00000002D486 
RESPONSE:D5870000A4040C05A00000000100 (Data we want to send to emulated card from NFC phone) 

отклика D58D08E080 указывает считыватель карт эмулировать как:

  • ISO/IEC 14443-4 PICC -> ДА
  • DEP -> NO
  • ТИП ОБРАБОТКИ -> Mifare

Теперь, когда мы помещаем S4 над читателем мы имеем следующий журнал:

02-10 10:23:13.711: I/BrcmNci(3355): -- 
02-10 10:23:13.711: I/BrcmNci(3355): TX: Type 4 Tag Command (13 bytes) 
02-10 10:23:13.711: I/BrcmNci(3355): CLA:0x00 
02-10 10:23:13.711: I/BrcmNci(3355): INS:0xA4(Select) 
02-10 10:23:13.711: I/BrcmNci(3355): P1:0x04(Name) 
02-10 10:23:13.711: I/BrcmNci(3355): P2:0x00(First or Only) 
02-10 10:23:13.711: I/BrcmNci(3355): Lc:0x07(7) 
02-10 10:23:13.711: I/BrcmNci(3355): Data(7 bytes) 
02-10 10:23:13.711: E/AudioResampler(2497): Unsupported sample format, 1 bits, 2 channels 
02-10 10:23:13.716: I/BrcmNci(3355): 00 : d2 76 00 00 85 01 01 
02-10 10:23:13.716: I/BrcmNci(3355): Le:0x00(0) 
02-10 10:23:13.716: I/BrcmNci(3355): -- 
02-10 10:23:13.716: I/AudioHardwareTinyALSA(2497): AudioStreamOutALSA::write setDevice 

02-10 10:23:13.741: I/BrcmNci(3355): -- 
02-10 10:23:13.741: I/BrcmNci(3355): RX: Type 4 Tag Response (2 bytes) 
02-10 10:23:13.746: I/BrcmNci(3355): SW:0x6A82(Not Found) 
02-10 10:23:13.746: I/BrcmNci(3355): -- 
02-10 10:23:13.746: I/BrcmNci(3355): -- 
02-10 10:23:13.746: I/BrcmNci(3355): TX: Type 4 Tag Command (12 bytes) 
02-10 10:23:13.746: I/BrcmNci(3355): CLA:0x00 
02-10 10:23:13.746: I/BrcmNci(3355): INS:0xA4(Select) 
02-10 10:23:13.746: I/BrcmNci(3355): P1:0x04(Name) 
02-10 10:23:13.746: I/BrcmNci(3355): P2:0x00(First or Only) 
02-10 10:23:13.746: I/BrcmNci(3355): Lc:0x07(7) 
02-10 10:23:13.746: I/BrcmNci(3355): Data(7 bytes) 
02-10 10:23:13.746: I/BrcmNci(3355): 00 : d2 76 00 00 85 01 00 
02-10 10:23:13.746: I/BrcmNci(3355): -- 
02-10 10:23:13.786: I/BrcmNci(3355): -- 
02-10 10:23:13.786: I/BrcmNci(3355): RX: Type 4 Tag Response (2 bytes) 
02-10 10:23:13.786: I/BrcmNci(3355): SW:0x6A82(Not Found) 
02-10 10:23:13.786: I/BrcmNci(3355): -- 

02-10 10:23:14.996: I/BrcmNci(3355): -- 
02-10 10:23:14.996: I/BrcmNci(3355): RX: Type 4 Tag Response (2 bytes) 
02-10 10:23:14.996: I/BrcmNci(3355): SW:0x9000(Command Completed) 
02-10 10:23:14.996: I/BrcmNci(3355): -- 

Но в случае, если мы пытаемся использовать S3, мы получаем только этот журнал:

01-07 03:16:47.555: D/NFCJNI(2694): Discovered P2P Target 
01-07 03:16:47.555: D/NfcService(2694): LLCP Activation message 
01-07 03:16:48.880: D/NFCJNI(2694): Discovered P2P Target 
01-07 03:16:48.885: D/NfcService(2694): LLCP Activation message 
01-07 03:16:51.860: D/NFCJNI(2694): Discovered P2P Target 
01-07 03:16:51.860: D/NfcService(2694): LLCP Activation message 
01-07 03:16:53.185: D/NFCJNI(2694): Discovered P2P Target 
01-07 03:16:53.185: D/NfcService(2694): LLCP Activation message 
01-07 03:16:58.870: D/NFCJNI(2694): Discovered P2P Target 
01-07 03:16:58.870: D/NfcService(2694): LLCP Activation message 

И любое Android приложение регистрация на какое-либо событие NFC не проснулась. Кажется, что это проблема совместимости между S3 и устройством для чтения карт или проблема с реализацией NFC с S3.

Не могли бы вы почему-то объяснить, почему разница между этими двумя телефонами одинакова, когда обе имеют одинаковую версию ОС (то есть Android 4.3). Почему S3 не выходит за рамки «сообщения активации LLCP»?

Информация о системе обоих телефонов, которые мы используем, можно найти здесь

ответ

0

Если вы хотите использовать только эмуляцию ISO-DEP карты, вы можете правильно зарегистрируйте устройство NFC ACR122U для пассивной эмуляции PICC ISO 14443-4.

В настоящее время используется команда TgInitAsTarget следующим образом:

D4 8C (TgInitAsTarget) 
    04 (Mode = PICC only) 
    0000 (ATQA/SENS_RES = invalid) 
    000000 (NFCID1t/UID = 0x80000000) 
    20 (SAK/SEL_RES = ISO 14443-4 supported) 
    01FE0FBBBAA6C9890000000000000000FFFF (FeliCaParams) 
    01FE0FBBBAA6C9890000 (NFCID3t) 
    06 47666D010110 (6 ATR_RES general bytes) 
    00 (0 historical bytes) 

Однако, как вы не хотите использовать NFC-DEP режим/режим FeliCa, вы определенно хотите, чтобы установить FeliCa Params, в NFCID3t и общие байты ATR_RES равны нулю. Кроме того, вы хотели бы установить более полезное значение UID и действительный ATQA (тот, который установлен на одном из битов антиклассификации битового кадра). Я не уверен, что это необходимо, но я предлагаю вам также установить флаг пассивного режима.

D4 8C (TgInitAsTarget) 
    05 (Mode = PICC only | passive mode only) 
    0400 (ATQA/SENS_RES) 
(NFCID1t/UID) 
    20 (SAK/SEL_RES = ISO 14443-4 supported) 
    000000000000000000000000000000000000 (FeliCaParams) 
    00000000000000000000 (NFCID3t) 
    00 (no ATR_RES general bytes) 
    00 (no historical bytes) 

Кроме того, вы можете установить дополнительные конфигурационные регистры на некоторых устройствах ACR122U. См. this answer для получения дополнительной информации.

 Смежные вопросы

  • Нет связанных вопросов^_^