2011/09/03

[felica]FeliCa LiteのD_IDはどうしたらいいのか

FeliCa Liteのユーザーズマニュアルを読んでいて、理解が難しかったのがD_IDブロック。
何度読んでもわからなかったが、自分なりの解釈を行った。


ユーザーズマニュアルは、こう書いてあると思っている。

  • [15-8]は値を変更することができない
  • [7-0]は値を変更することができない
  • D_IDに書き込みを行うと、IDdとPMmの値は変更できないが、IDmの値を変更できる
  • D_IDの3~4バイト目はR/W

また、IDmを変更しないための注意点として、以下がある。

  • システムブロックを書き換え禁止にする前にD_IDに書き込まないこと
  • 発行したら、システムブロックを書き換え禁止にすること

 

私がわからなかったのは、書き込んでいいのか悪いのか、書き込んでほしくないのかどうか、書き込んだら一体どうなるのか。そのあたりだ。


で、こういう解釈をした。

  • D_IDの3~4バイト目はR/W。ほかはRO。
  • よって、[15-8]のPMmは書き込みもできないし、書き込んでも初期値と同じ値が読める
  • [7-0]のうち、[4-3]は書き込みができる
  • [4-3]に書き込んでも、IDdが変更されるわけではなく、IDmが変更になる。
  • [4-3]に書き込んでも、読み込んだ値は初期値と同じ。
  • システムブロックを書き換え禁止にしないとD_IDへ書き込めてしまうため、IDmが(3,4バイト目だけだが)変更できてしまう。よって、発行時には書き換え禁止にすること。

使えなくなると怖いんで、実機で確かめてないけどね。

特に、[4-3]を書き込んだ後に読み込んだらどうなるのかがわからん。
ドキュメントの「値を変更することができない」は、読み込み値は常に同じということを表していると解釈した。つまり、書き込みと読み込みが非対称というわけだ。

IDブロックには「IDdを書き込む」とあるから、D_IDへの読み書きとは関係なくIDdを書けばよい。
IDdはD_IDを読み込めばいいから、IDmを変更したからといって心配はしなくていいのだろう。

0 件のコメント:

コメントを投稿

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