2013年5月21日火曜日

EPCの謎に迫る1


現在入手できるUHFのパッシブタグはEPC Class1 Generation2(「じぇんつー」とかいいます)という規格になっています。この規格ではタグのメモリが「EPCバンク」「TIDバンク」「Userバンク」「Reservedバンク」の4つのバンクから構成されています。

EPCバンクは書き換え可能で通常は96bitを使います。
TIDバンクはチップ製造時にタグ固有の値が書き込まれ、書き換えができないようになっています。
Userバンクはユーザが自由に読み書きできるように用意されている領域で、チップによって容量などが違います。
Reservedバンクは、タグのアクセス時などに使用するアクセスパスワードを保存する領域です。

この4つのバンクの中で非常によく使うのがEPCバンクです。
リーダでタグの読取をするとまずはこのEPCバンクの値が飛んできます。
その後、EPCの値を指定して、UserバンクやTIDバンクにアクセスします。

例として、EPCの値がそれぞれA、B、Cの3つのタグがあるところでリーダで読取を行うと、A、B、Cが一度に取得できます。その後、じゃあ、AさんのTIDは何かな?などと使用します。
つまり、EPCの値はタグを識別するために利用するものなのです。

しかしながら、EPCの値は書き換え可能です。ということは同じEPCの値を持つタグもすぐに作れます。というかチップメーカによって出荷時のEPCの値の扱いが違っていて、Alienのタグは出荷時に固有のEPCの値がエンコードされていますが、昔のImpinjのタグは同じEPCの値がエンコードされています。

じゃあ同じEPCの値のタグがいっぱいあったとき、読み書きはどのように動作するのでしょうか?
ということで実験してみました。

実験で使用するのはAlienのタグ3種類とNordicID製のMorphicです。カッコイイですね。

まずは普通に読んでみます。ちゃんと3枚読めました。E20~というのがEPCの値です。16進数で12桁(96bit)になってますね。Alienは出荷時に固有の値が書き込まれていますから、3枚とも違う値になっています。

これからこのタグのEPCの値を変更します。わかりやすいように1にしました。リストから書き換えたいタグを選択して、EPCライトボタンを押すとEPCの値が変更されます。これを3回繰り返して、3枚とも同じEPCの値にしてしまいます。

この状態で普通に読取をしてみると、なんとタグが1個になってしまいました。同じEPCの値なので同じタグということになっちゃったんですね。

ここからさらに、1から2へとライトをやってみます。3枚に向けてやった場合、3枚とも書き変わってしまうのか?

3枚に均等に電波があたるように(見えないのでわかりませんから感覚です)してEPCライトボタンを押します。

タグが2個になりました!1枚ずつ調べると、1枚だけ書き変わっていました。すべて書き変わることはないようです。

ではどういう基準で1枚が選択されるのでしょうか。距離で決まるのか?ということでいろいろ試しました。

何回か試したところ、3種類のタグの中でGタグと呼ばれている感度がよいとされているタグが書き変わることが多かったです。距離についてもより近い方が書き変わりやすかった気がします。(このあたりは主観です)

0 件のコメント:

コメントを投稿