TRF7970をいじり始めましたが、こちらはちゃんとNFCについて勉強しないと使いこなすことができないようです。いちおう、サンプルのプログラムが用意されているので、それを改造してまずはカード検出ができることを確認してみることにしました。RF430CL330Hは ISO14443 Type Bのタグとしてしか機能しませんが、TRF7970では Type A, Type B, Type Cのカードを扱うことができるようになっています。RF430CL330Hを相手として扱えるようにしたいので、まずは Type Bの検出を試してみることにします。運転免許証が Type BのNFCだということなので、カミさんの免許証で実験してみました。

実際にやっていることはとっても単純で、ISO1443で定められている REQBというコマンドを繰り返し送信してやります。REQBとは

50で始まる12バイトが ATQB応答データです。ほんとはATQBは全部で14バイトなのですが、最後についているCRCはマイコンでは受信しない設定にしているので、表示していません。カンマのあとに表示されている1バイトの数値は、RSSIです。
というわけで、カードをかざせば、ちゃんとATQB応答を拾えることが確認できました。実際にカードのデータを読み取ろうと思うと、このあとはカードのアプリケーションに応じて必要な読み取り手順を踏まねばなりません。IC免許証のデータフォーマットは公開されているようなので、すこし勉強すれば内容の読み取りもできそうです。

実際にやっていることはとっても単純で、ISO1443で定められている REQBというコマンドを繰り返し送信してやります。REQBとは
Request Command, Type Bの意味だそうで、Type Bのカードはこのコマンドを検出すると応答として ATQB (Answer to Request of Type B)を返してくれます。リーダの上に、何度か免許証をかざしてみると、次のようなログが採れました。

50で始まる12バイトが ATQB応答データです。ほんとはATQBは全部で14バイトなのですが、最後についているCRCはマイコンでは受信しない設定にしているので、表示していません。カンマのあとに表示されている1バイトの数値は、RSSIです。
というわけで、カードをかざせば、ちゃんとATQB応答を拾えることが確認できました。実際にカードのデータを読み取ろうと思うと、このあとはカードのアプリケーションに応じて必要な読み取り手順を踏まねばなりません。IC免許証のデータフォーマットは公開されているようなので、すこし勉強すれば内容の読み取りもできそうです。
FTDIが Embedded Worldで静電容量タッチパネルに対応したFT801を発表したことには気付いていたのですが、マルチタッチに対応していたということは知りませんでした。
いかん、物欲がムクムクと。。。。
いかん、物欲がムクムクと。。。。
RF430CL330Hを使うことでNFCからBluetoothへのHandoverはできるものの、OOBを使ってのSSP接続はできたとしても面倒そうなことがわかってきました。RF430CL330Hのようなタグ機能だけのデバイスは、使うのはとっても簡単なのですが、それに伴う限界があるということですね。まずは、NFCのデータフォーマットであるNDEFについての理解が深まったのは収穫でした。簡単にデータの書き換えができて、それなりの容量(3kB)もあるので、URLやメールアドレスのような1行だけの情報だけでなく、ちょっとしたファイルや文書の配布に応用することもできそうです。

そうは言っても、「やはりOOBを使ってのSSP接続には挑戦してみたい」。と、いうわけで今度はTIのトランシーバーチップTRF7970Aを使ったDLP-7970ABPを買ってみました。こちらは、NFCの Reader/Writerとしても使えるものです。このテの製品としては、Arduino用のNFCシールドが入手しやすそうですが、タグ側と合わせてDLP Designの製品を使ってみることにしました。

右側がRF430CL330Hのタグで、左側がTRF7970AのReader/Writerです。どちらもTIのBooster Packなんですが、想定しているMCUが異なるせいなのか、ピン配置がちょっと違うようです。はなから、MSP430とかを使うつもりは無いわたしにとっては、SPIでつなぐことさせできればいいことなんですが。
タグチップの方はISO1443Bのタグにしか対応していなかったのですが、TRF7970AはType AのタグやFelicaにも対応することができるようです。しかし、そのためにはレジスタを変更して必要な読み書きの手順を踏んで処理するソフトウェアが必要となります。そこで今回は、使い慣れたSAM3Sをつかって動作実験をおこなうことにしました。

そうは言っても、「やはりOOBを使ってのSSP接続には挑戦してみたい」。と、いうわけで今度はTIのトランシーバーチップTRF7970Aを使ったDLP-7970ABPを買ってみました。こちらは、NFCの Reader/Writerとしても使えるものです。このテの製品としては、Arduino用のNFCシールドが入手しやすそうですが、タグ側と合わせてDLP Designの製品を使ってみることにしました。

右側がRF430CL330Hのタグで、左側がTRF7970AのReader/Writerです。どちらもTIのBooster Packなんですが、想定しているMCUが異なるせいなのか、ピン配置がちょっと違うようです。はなから、MSP430とかを使うつもりは無いわたしにとっては、SPIでつなぐことさせできればいいことなんですが。
タグチップの方はISO1443Bのタグにしか対応していなかったのですが、TRF7970AはType AのタグやFelicaにも対応することができるようです。しかし、そのためにはレジスタを変更して必要な読み書きの手順を踏んで処理するソフトウェアが必要となります。そこで今回は、使い慣れたSAM3Sをつかって動作実験をおこなうことにしました。
