2093136_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2093136_ja-JP

2093136_ja-JP

ICODE SLIタグはwrite_single_blockコマンドに対して64 01エラーを返します

私は Windows 11 ノートPCと ACS ACR1552 リーダーを使用しています。

ACS スクリプト ツール (v5.02) を使用して、APDU を NXP ICODE SLI タグに送信しています。

透過セッションを作成し、プロトコルを 15693/Layer3 に設定し、透過交換カプセル化を使用して APDU をタグに送信します。

GET_SYSTEM_INFO と READ_SINGLE_BLOCK は正常に動作するようです。

WRITE_SINGLE_BLOCK は「64 01」エラーを返しますが、実際にデータを書き込んでいるように見えます。

この 64 01 応答の意味や原因に関する情報は見つかりませんでした。

誰かこれについて説明できますか?

私が使用している APDU のシーケンスは次のとおりです。

  • APDU #4はブロック0のデータを11 22 33 44として読み取ります。
  • APDU #5はブロック0のデータを12 34 56 78に書き込みますが、64 01エラーが発生します。
  • APDU #6 はブロック 0 のデータを 12 34 56 78 として読み取ります。これは、前の書き込みが実際に機能したことを示しています。

(1)透過的なセッションを確立する
< FF C2 00 00 02 81 00 00
> C0 03 00 90 00 90 00

; (2)透過的な交換 - スイッチプロトコルをSwitchProtocolRf::ISO15693 SwitchProtocolLayer::PART3へ
< FF C2 00 02 04 8F 02 02 03
> C0 03 00 90 00 8F 01 00 90 00

; (3)システム情報を取得する
< FF C2 00 01 04 95 02 02 2B 00
> C0 03 00 90 00 92 01 00 96 02 00 00 97 0F 00 0F 2E 98 5C 8A 00 01 04 E0 00 00 1B 03 01 90 00

; (4)セキュリティステータスを含むユーザーブロック0の読み取り
< FF C2 00 01 05 95 03 42 20 00 00
> C0 03 00 90 00 92 01 00 96 02 00 00 97 06 00 00 00 11 22 33 90 00

(5)ブロック0に12345678を書き込む
< FF C2 00 01 09 95 07 02 21 00 12 34 56 78 00
> C0 03 01 64 01 90 00

; (6)セキュリティステータス付きユーザーブロック0の読み取り
< FF C2 00 01 05 95 03 42 20 00 00
> C0 03 00 90 00 92 01 00 96 02 00 00 97 06 00 00 12 34 56 78 90 00

(7)透過セッションを終了する
< FF C2 00 00 02 82 00 00
> C0 03 00 90 00 90 00


Re: ICODE SLI tag returns a 64 01 error for a write_single_block command

icode SLIX/SLIX2 タグの読み取り/書き込み時にもまったく同じ問題が発生しました。書き込みは機能していましたが、64 01 タイムアウトが発生しました。

書き込みと同じトランザクション内にタイマー オプションを含めることで、コマンドのタイムアウトを調整することで、この問題を解決できました。

例: ブロック0に「00 01 02 03」を書き込む

> ff c2 00 01 10 5f 46 04 40 42 0f 00 95 07 02 21 00 00 01 02 03 00

透過コマンド
コマンドのサイズ(0x10 = 16バイトが続く)
タイムアウトコマンド
デバイスへのコマンド


ご覧のとおり、応答は正しくなりました。

このコマンドは、基本的に元の投稿者の質問に示されているものと同じですが、緑のセクションが追加されています。ドキュメントに従って、1 秒のタイムアウトを設定します (これはおそらく過剰です)。

5f 46 = タイマーデータオブジェクト
04 = 長さ
40 42 0f 00 = 1,000,000 (マイクロ秒、LSBが先頭)、つまり 000f4240h = 1,000,000

おそらく元の投稿者にとっては役に立たないかもしれませんが、これによって私が費やした 2 ~ 3 時間を他の誰かが節約できるかもしれません。

Re: ICODE SLI tag returns a 64 01 error for a write_single_block command
ありがとう@jimmychan 。はい、6401 を含むエラー コードと説明のリストを確認しました。元の投稿に記載した APDU シーケンスを考慮して、このエラーの原因を理解しようとしています。
 
タグがユーザーメモリへの単一ブロック書き込みコマンドに応答しない理由をご存知ですか?私が考えた例としては、書き込み操作にリーダーが待機している時間よりも時間がかかる可能性があるということです。リーダーをより長く待機するように設定してみましたが、これまでのところ、この方法で問題を解決することはできませんでした。また、SLI または DNA の仕様書にはこれに関する言及がないので、これが問題であるとは思えません。
 
繰り返しになりますが、タグが応答しない理由を理解するためのご助力いただければ幸いです。
 
ありがとう - ドリュー
Re: ICODE SLI tag returns a 64 01 error for a write_single_block command

リファレンス・マニュアル REF-ACR1552U-Series-1.06.pdf を確認してください。43ページ。

Re: ICODE SLI tag returns a 64 01 error for a write_single_block commandこんにちは@jimmychan - リーダーのドキュメントを読みました。そのドキュメントから、私が使用しているコマンド構文を取得しました。私の知る限り、コマンド構文は正しいです。6401 エラーはリーダーから発生しているということですか?ドキュメントの中で、特に確認すべき部分はありますか?

ご協力に感謝します。

ドリュー
Re: ICODE SLI tag returns a 64 01 error for a write_single_block command

読者の方はドキュメントをお読みください。

ACR1552U - USB NFCリーダ IV | ACS

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎01-12-2026 03:19 AM
更新者: