2012/01/29

[felica]TSN

小ネタだ。

ポーリングコマンドで、TSNが指定できる。
Time Slot Numberだ。

ポーリングコマンドではPOL_RESを送信して、カードからPOL_REQを受信する。
RF領域に複数のカードがあった場合、POL_RESに対して複数のPOL_REQが返ってくる。
もし同じタイミングで返信したり、片方が返信している最中にもう片方が返信すると、無線データが壊れてしまう。

NFC-Fでは(FeliCaでは、なのかも)、POL_REQにTSNを指定し、この値+1のタイムスロットを返信時間として使っていいことにしている。
仕様書では、返信開始までが2.417ms、そこからタイムスロット1つが1.208msと書かれている。
この時間は、212kHz*512と、212kHz*256に相当する。FeliCaの遅い周波数は212kbpsなので、それをタイマにしているのだろう。

タイムスロットの例を見ると、POL_RESがずれて返信されていた。
ということは、これを使えば複数枚の結果を受けとることができるんじゃなかろうか?


そう思って試してみたが、常に同じカードの結果が1つだけ返ってきた。

推測だが、

  • 返信するタイムスロットはランダムではなく、カードで固定になっている
  • InListPassiveTargetは最初に返ってきたPOL_RESの結果を返す

というところじゃないだろうか。

よく見れば、InListPassiveTargetのNbTgは0か1ではないか。
2枚以上ってのはないことになる。
うーむ。

PN533でもそうだったので、市販のR/Wチップでは複数枚に対応する必要がないってことで機能削減されていると考えた方がよさそうだ。
なんとかできると面白いかなー、と思ったのだがね。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。