我怎樣才能獲得NFC非接觸式讀卡器ACR122U表現爲一個標籤(卡模擬模式)? 招股說明書聲稱該設備可以進行卡片仿真,但SDK似乎沒有提供此功能的示例或文檔。ACR122 - 卡仿真
有誰知道如何做到這一點? 是否需要額外的軟件? 請注意,我的目標平臺是MS Windows。
在此先感謝
我怎樣才能獲得NFC非接觸式讀卡器ACR122U表現爲一個標籤(卡模擬模式)? 招股說明書聲稱該設備可以進行卡片仿真,但SDK似乎沒有提供此功能的示例或文檔。ACR122 - 卡仿真
有誰知道如何做到這一點? 是否需要額外的軟件? 請注意,我的目標平臺是MS Windows。
在此先感謝
對於「卡仿真」,或者換句話說,「配置爲目標,等待啓動器」,請參考這裏:http://code.google.com/p/nfcip-java/source/browse/trunk/nfcip-java/doc/ACR122_PN53x.txt
** Command to PN532 ** 0xd4 0x8c TgInitAsTarget instruction code 0x00 Acceptable modes (0x00 = allow all, 0x01 = only allow to be initialized as passive, 0x02 = allow DEP only) _6 bytes (_MIFARE_)_: 0x08 0x00 SENS_RES 0x12 0x34 0x56 NFCID1 0x40 SEL_RES _18 bytes (_Felica_)_: 0x01 0xfe 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 NFCID2 0xc0 0xc1 0xc2 0xc3 0xc4 0xc5 0xc6 0xc7 ? 0xff 0xff System parameters? 0xaa 0x99 0x88 0x77 0x66 0x55 0x44 0x33 0x22 0x11 NFCID3 0x00 ? 0x00 ?
這是響應時引發劑激活此目標:
** Response from PN532 ** 0xd5 0x8d TgInitAsTarget response code 0x04 Mode (0x04 = DEP, 106kbps)
讓我知道它是否有效!
你也可以嘗試發送以下ADPU在HEX把讀者 「卡仿真」 模式:
FF 00 00 00 27 D4 8C 00 08 00 12 34 56 40 01 FE A2 A3 A4 A5 A6 A7 C0 C1 C2 C3 C4 C5 C6 C7 FF FF AA 99 88 77 66 55 44 33 22 11 00 00
Hi Marko,我回來了以下答案:D5 8D 26 1E D4 01 FE A2 A3 A4 A5 A6 A7 32 46 66 6D 01 01 10 03 02 01 04 01 96 90 – chalad 2011-04-21 13:16:07
I'n不知道這意味着什麼,但我從來沒有設法得到一個ID或讀取仿真卡的部門。 – chalad 2011-04-21 13:17:04
任何人都明白這一點?我嘗試了以上 - 獲得了與Chalad相同的響應(使用javax.smartcardio到ACR122U)。將NEXUS S放入ACR122U讀卡器時會出現這種響應。在NEXUS S日誌中,它顯示爲發現P2P目標,但獲得NFCSTATUS FAILED。我想理解TgInitAsTarget的組成部分將是必要的,以進一步進行。 – gamozzii 2011-09-01 06:34:53
可以使用LibNFC。它有這樣的示例代碼。
我仍然沒有得到這個不幸的正常工作在Windows中。您可能必須爲特定的驅動程序編譯libnfc。
此外,ACR122u似乎是相當糟糕,許多圖書館的支持。顯然它並不是真正用於這種用途。卡模擬也有一些特殊問題(例如超時)。我們都需要停止ACR122u。我剛剛買了那些很受歡迎,很容易獲得但現在很後悔的東西。
爲了未來的瀏覽器/搜索過這個即將到來:請在libnfc網站的兼容性部分,買東西,他們推薦!
用於獲取ACR122(或者更確切地說,它裏面的PN532 NFC控制器芯片)到卡模擬模式時,你會做了解以下信息:
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
成功)。
當我發送'TgInitAsTarget'我沒有得到任何迴應。答案是空的。你知道原因是什麼嗎?我把這樣的:'{(字節)爲0xFF,0×00,0×00,0×00,×27,(字節)0xD4(字節)0x8C爲0x05,0x04的0x00時,0×12,0x34,0x56儲存,爲0x20,0x00時,爲0x00,0x00時,爲0x00 ,爲0x00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00,0x00時,0×00 ,0x00}' – 2014-07-15 21:02:28
看起來這隻有當我把手機放在閱讀器上時纔有效。任何想法? – 2014-07-15 21:19:09
也許您可以使用ACR122U的p2p模型,將其設置爲啓動器的模型。我看到你的另一個問題「Android 2.3.3與基於PC的NFC閱讀器的NFC對等通信」,你需要與其他基於PC的應用程序交流。你有沒有實現它?或者你使用ACR122U來實現它? – user556615 2011-04-16 12:25:48
嗨用戶556615,我試圖使用p2p爲了讓Nexus和ACR122U進行通信,但還沒有設法得到任何地方。 – chalad 2011-04-18 06:49:01
嗨,我也嘗試使用p2p溝通Nexus和acr122u,我想使用libnfc來實現它,但沒有管理,我們有同樣的問題,如果你有新的東西,你能告訴我嗎?我的電子郵件:n[email protected] – user556615 2011-04-18 06:57:59