ACR122-卡仿真

| 如何获得NFC非接触式读取器ACR122U充当标签(卡仿真模式)? 招股说明书声称该设备可以进行卡仿真,但是SDK似乎没有提供此功能的示例或文档。 有人知道怎么做这个吗? 是否需要其他软件? 请注意,我的目标平台是MS Windows。 提前致谢     
已邀请:
对于“卡模拟”或换句话说,“配置为目标并等待启动器”,请参考此处:http://code.google.com/p/nfcip-java/source/browse/trunk /nfcip-java/doc/ACR122_PN53x.txt **指令至PN532 ** 0xd4 0x8c TgInitAsTarget指令代码 0x00可接受的模式 (0x00 =全部允许,0x01 =仅允许 初始化为被动,0x02 =仅允许DEP) _6个字节(_MIFARE _)_: 0x08 0x00 SENS_RES 0x12 0x34 0x56 NFCID1 0x40 SEL_RES _18字节(_Felica _)_: 0x01 0xfe 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 NFCID2 0xc0 0xc1 0xc2 0xc3 0xc4 0xc5 0xc6 0xc7 ? 0xff 0xff系统参数? 0xaa 0x99 0x88 0x77 0x66 0x55 0x44 0x33 0x22 0x11 NFCID3 0x00? 0x00? 这是启动器激活此目标时的响应: ** PN532的回复** 0xd5 0x8d TgInitAsTarget响应代码 0x04模式 (0x04 = DEP,106kbps) 让我知道它是否有效!     
您也可以尝试以十六进制发送以下ADPU,以使读卡器处于“卡模拟”模式: 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     
为了使ACR122(或更确切地说是其中的PN532 NFC控制器芯片)进入卡仿真模式,您需要执行以下操作: 读寄存器:
> 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
其中“ 5”应等于0x08。 使用一系列TgGetData和TgSetData命令进行通信:
> FF000000 02 D486
< D587 xx <C-APDU> 9000
其中“ 5”是状态码(成功应为“ 8”),C-APDU是读取器发送的命令。
> FF000000 yy D48E <R-APDU>
< D587 xx 9000
其中“ 10”是2 + R-APDU的长度(响应),而“ 5”是状态码(成功应为“ 8”)。     
您可以使用LibNFC。它具有示例代码。 不幸的是,我仍然无法在Windows中正常工作。您可能必须为特定的驱动程序编译libnfc。 同样,许多库似乎对ACR122u的支持也很差。显然,它不是真的为此设计的。卡仿真也有一些特殊的问题(例如超时)。我们真的都需要停止ACR122u。我刚买了很受欢迎且容易掌握的东西,但现在后悔了。 对于将来遇到此问题的浏览器/搜索者:请检查libnfc网站上的兼容性部分,并购买他们推荐的产品!     

要回复问题请先登录注册