0

私たちのプロジェクトでは、NFC リーダー ACS ACR122U で ISO14443-3 PICC をエミュレートし、そのカードを NFC 電話 (Samsung S3 または S4) で読み取ろうとしています。S4 の場合、エミュレートされたカードと正常に通信できますが、S3 の場合、NFC イベントはありません。

S3 が LLCP 通信をアクティブ化できないことを示す Android (logcat) からのすべてのコマンド/応答とログを記録しました。私たちが持っているすべてのデータを投稿しています。問題の解決にご協力ください。

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 --> いいえ
  • フレーミング タイプ --> ミファーレ

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

また、NFC イベントに登録している Android アプリは起動されません。S3 とカード リーダー間の互換性の問題か、S3 の NFC 実装の問題のようです。

両方とも同じ OS バージョン (つまり、Android 4.3) を使用している場合に、2 つの電話間で通信の違いが生じる理由を教えてください。S3 が「LLCP アクティベーション メッセージ」を超えないのはなぜですか?

私たちが使用している両方の電話のシステム情報は、ここで見つけることができます

4

1 に答える 1

0

ISO-DEP カード エミュレーションのみを使用する場合は、ACR122U NFC デバイスをパッシブ ISO 14443-4 PICC エミュレーション用に正しく登録することをお勧めします。

現在、次のように 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 パラメータ、NFCID3t、および ATR_RES 汎用バイトをゼロに設定する必要があります。さらに、より有用な UID 値と有効な ATQA (ビット フレームのアンチクロス ビットが設定されているもの) を設定する必要があります。それが必要かどうかはわかりませんが、パッシブ モード フラグも設定することをお勧めします。

D4 8C (TgInitAsTarget)
  05 (Mode = PICC only | passive mode only)
  0400 (ATQA/SENS_RES)
  012345 (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 デバイスでは、追加の構成レジスタを設定したい場合があります。詳細については、この回答を参照してください。

于 2014-02-12T07:23:10.973 に答える