NFC-DEPのため、RC-S620/Sコマンドリファレンスマニュアルを読みながら試作中。
TgInitTargetの戻り値確認をしている。
対抗機がないので、PaSoRiで以前SDK for NFC Starter Kitで作ったソフトでデータ読み取りを実行させている。
NFC-DEPのInitiatorがいればいいんだけど、手元にないしね・・・
やってて気付いたのだが、212kbps/424kbpsのReadコマンドはTgInitTargetから戻ってくるのだが、106kbpsのReadコマンドは戻ってこないのだ。
UIDやSAKが取得できているので、SENS_REQは済んでるはず。
ISO/IEC 18092を読むと、ATR_REQ/RESの前に「SDD」がある。
SDDは「Single Device Detection」の略で、たぶんカード(PICC)を1枚だけ検出するための処理を指しているのだろう。
SDDのあと、ATR_REQを要求してこなければ、これはプロプライエタリなコマンドということで独自処理をして終わるようなシーケンスになっている。
ということは、106kbpsのときにターゲットが戻ってこないのではなく、212kbps/424kbpsのときにはターゲットが戻るようにRC-S620/Sが処理をしている、と考えてよいのかな。
単に106kbpsの処理がうまくできてないだけかもしれんがね。
RC-S620/Sコマンドリファレンスマニュアル Version 2.0の図8-3ではATR_REQかTarget ID取得コマンドの2択になっているけど、通常のコマンドが来ることも想定しないといかんようだ。
そして、ATR_REQと通常コマンドの場合には、TgInitTargetから戻ってくる、と。
戻ったあとでどう比較するかというと、データを見るしかなさそうだ。
nfc-smart-tagでも、戻ってきたコマンドがATR_REQかどうかを確認してから処理を進めているので、考え方は間違っていないようだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。