簡體   English   中英

來自帶有 Jewel/Topaz512 NFC 標簽的 ACR122U 閱讀器的“超時,目標尚未應答”

[英]“Time Out, the target has not answered” from ACR122U reader with Jewel/Topaz512 NFC tags

我正在構建一個 Windows/Java 程序(使用javax.smartcardio )以使用 ACR122U 設備(內部帶有 PN532 NFC Controller 芯片)與 Jewel/Topaz512 標簽(來自 Innovision/Broadcom)進行通信。

我實現了 Topaz512 協議(來自此數據表),但我的命令只有一半有效

  • 一些有效的命令: RID, RALL, READ, WRITE-NE, RSEG
  • 一些不起作用的命令: WRITE-E, READ8, WRITE-E8, WRITE-NE8

使用 WRITE-NO-ERASE 命令的示例

例如,這是我發送 WRITE-NO-ERASE 命令時得到的結果:

命令: FF:00:00:00:0C:D4:40:01:1A:7F:42:38:01:9A:00:17:E8

在哪里:

  • D4:40:01是 InDataExchange 命令,
  • 1A:7F:42是 WRITE-NO-ERASE 命令(值:0x42,塊 0x0F,字節 7),
  • 38:01:9A:00是 4 字節的標簽 UID,
  • 17:E8是 CRC。

響應: D5:41:00:42:90:00

這里的響應是正確的: 0x42 狀態字節 ( 0x00 ) 通知一切順利。

使用 WRITE-WITH-ERASE 命令的示例

這是我發送 WRITE-WITH-ERASE 命令時得到的結果:

命令: FF:00:00:00:0C:D4:40:01:53:7F:42:38:01:9A:00:28:6E

在哪里:

  • D4:40:01是 InDataExchange 命令,
  • 53:7F:42是 WRITE-WITH-ERASE 命令(值:0x42,塊 0x0F,字節 7),
  • 38:01:9A:00是 4 字節的標簽 UID,
  • 28:6E是 CRC。

回復: D5:41:01:90:00

在這里,狀態字節 ( 0x01 ) 通知 PN532 檢測到超時。 (來自PN532 文檔(p67):“超時,目標未回答 - 0x01”)

此外,當我刪除 PN532 超時(使用FF:00:00:00:06:D4:32:02:00:00:00 )非工作命令不響應D5:41:01:90:00 ,但等待再長一點,我就沒有反應了。

編輯 2020-04-20

我只是嘗試使用 gscriptor(來自pcsc-tools套件)執行命令,我得到了相同的行為。 這是我的結果:

劇本:

FF 00 00 00 06 D4 32 05 02 02 02

# SAMConfiguration
FF 00 00 00 04 D4 14 01 00

# SetParameters
FF 00 00 00 03 D4 12 04

# InListPassiveTarget: Jewel mode
FF 00 00 00 04 D4 4A 01 04

# InDataExchange: RID
FF 00 00 00 04 D4 40 01 78

# InDataExchange: RALL
FF 00 00 00 04 D4 40 01 00

# InDataExchange: RSEG 0-3
FF 00 00 00 05 D4 40 01 10 00
FF 00 00 00 05 D4 40 01 10 20
FF 00 00 00 05 D4 40 01 10 40
FF 00 00 00 05 D4 40 01 10 60

##########

# GetFirmwareVersion
FF 00 00 00 02 D4 02

# GetGeneralStatus
FF 00 00 00 02 D4 04

##########

# RFConfiguration: No timeout
FF 00 00 00 06 D4 32 02 00 00 00

# InDataExchange: READ-1
FF 00 00 00 05 D4 40 01 01 7F

# InDataExchange: READ-8
FF 00 00 00 05 D4 40 01 02 00

# InDataExchange: WRITE-E-1
FF 00 00 00 06 D4 40 01 53 7F 42

# InDataExchange: WRITE-E-8
FF 00 00 00 0C D4 40 01 55 02 01 02 03 04 05 06 07 08

# InDataExchange: WRITE-NE-1
FF 00 00 00 06 D4 40 01 1A 7F 42

# InDataExchange: WRITE-NE-8
FF 00 00 00 0C D4 40 01 1B 02 01 02 03 04 05 06 07 08

結果:


Sending: FF 00 00 00 06 D4 32 05 02 02 02
Received: D5 33 90 00
Normal processing.

Sending: FF 00 00 00 04 D4 14 01 00
Received: D5 15 90 00
Normal processing.

Sending: FF 00 00 00 03 D4 12 04
Received: D5 13 90 00
Normal processing.

Sending: FF 00 00 00 04 D4 4A 01 04
Received: D5 4B 01 01 0C 00 38 01 9A 00 90 00
Normal processing.

Sending: FF 00 00 00 04 D4 40 01 78
Received: D5 41 00 12 4C 38 01 9A 00 90 00
Normal processing.

Sending: FF 00 00 00 04 D4 40 01 00
Received: D5 41 00 12 4C 38 01 9A 00 00 10 25 00 00 10 3F
00 01 03 F2 30 33 02 03 F0 02 03 03 E3 D1 01 DF
54 02 65 6E 30 31 32 33 34 35 36 37 38 39 30 30
31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 55 55 AA
AA 12 4C 06 00 01 E0 00 00 00 00 00 00 90 00
Normal processing.

Sending: FF 00 00 00 05 D4 40 01 10 00
Received: D5 41 00 38 01 9A 00 00 10 25 00 00 10 3F 00 01
03 F2 30 33 02 03 F0 02 03 03 E3 D1 01 DF 54 02
65 6E 30 31 32 33 34 35 36 37 38 39 30 30 31 32
33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 55 55 AA AA 12
4C 06 00 01 E0 00 00 00 00 00 00 00 00 00 00 00
00 00 47 90 00
Normal processing.

Sending: FF 00 00 00 05 D4 40 01 10 20
Received: D5 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 90 00
Normal processing.

Sending: FF 00 00 00 05 D4 40 01 10 40
Received: D5 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 90 00
Normal processing.

Sending: FF 00 00 00 05 D4 40 01 10 60
Received: D5 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 90 00
Normal processing.

Sending: FF 00 00 00 02 D4 02
Received: D5 03 32 01 06 07 90 00
Normal processing.

Sending: FF 00 00 00 02 D4 04
Received: D5 05 01 00 01 01 00 00 02 80 90 00
Normal processing.

Sending: FF 00 00 00 06 D4 32 02 00 00 00
Received: D5 33 90 00
Normal processing.

Sending: FF 00 00 00 05 D4 40 01 01 7F
Received: D5 41 00 47 90 00
Normal processing.

Sending: FF 00 00 00 05 D4 40 01 02 00
Received:
wrong SW size for:

Sending: FF 00 00 00 06 D4 40 01 53 7F 42
Received:
wrong SW size for:

Sending: FF 00 00 00 0C D4 40 01 55 02 01 02 03 04 05 06
07 08
Received:
wrong SW size for:

Sending: FF 00 00 00 06 D4 40 01 1A 7F 42
Received: D5 41 00 47 90 00
Normal processing.

Sending: FF 00 00 00 0C D4 40 01 1B 02 01 02 03 04 05 06
07 08
Received:
wrong SW size for:

Script was executed without error...

前段時間,我詳細研究了這一點,並得出結論,NXP 的 PN532 NFC controller 芯片的固件存在問題,導致其無法成功接收帶有 NFC Forum Type 1 標簽(Topaz/Jewel 品牌)的一些命令。 如前所述,ACR122U 基於此芯片。

當我嘗試使用WRITE-E8 (0x54)命令一次寫入 8 個字節塊時,收到的響應是0x01 ,等待標簽響應的超時。

我試過的東西不起作用:

包括InDataExchange中的 UID 回顯,我什至使用了 UID 回顯的字節順序,但結果仍然相同。

使用inCommunicateThru命令而不是InDataExchange並在應用程序級別計算 CRC1 和 CRC2 值(結果相同)

我得出的最后結論是:

PN532 無法寫入 Type 1 標簽上的0x10和更大的頁面,這使得無法在 Topaz 512 等流行型號上寫入 memory 的全系列。

推薦:

這個問題與 2012 年有關,當時 Topaz 512 是一款非常低成本但高 memory NFC 標簽。 現在有了 NAG215 和 NTAG216 型號,我推薦使用那些具有高 memory 並且與 NFC 讀卡器通用兼容性的型號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM