私は 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 のシーケンスは次のとおりです。
(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
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 時間を他の誰かが節約できるかもしれません。
リファレンス・マニュアル REF-ACR1552U-Series-1.06.pdf を確認してください。43ページ。
読者の方はドキュメントをお読みください。