#はじめに
NFCには3種類のモードがあります。
3種類もあります。
- リーダライダモード
- カードエミュレーションモード
- P2P通信モード
さて、組み込み機器からNFCでスマートフォンと連携させたいと考えたとき、どうやるのを考えるでしょう?
もちろん、各モードには明確な目的があって設計されていますが、他のモードでもやろうと思えば代用できたりする場面があったりします。
ので、各モードがどういったときに便利なのかを考えてみることにしました。
#セキュリティについて
どのモードにおいても、セキュリティは確保されません。
通信している時点で、物理的特性により10cm以内に存在していることは保証されますが、
チェックサム以上の通信の健全性の保証はありません。
通信における暗号化や、漏出対策などは各自で行う必要があります。
スマートフォンを読み取り装置として使うモードです。
組み込み機器側はタグとして振る舞います。
利用例
- ポスター広告(QRコードと同等)
- 体温計・歩数計のデータ取り込み
- 機器の設定転送・ログ取り出し
- 電子値札の書き換え
- Bluetoothペアリング
- Wi-Fi設定の配信
傾向
スマートフォン連携は本質ではなくおまけ。あるいは、業務用端末を使うことを想定している。
スマートフォンは読み取りに行く側。
利点
- (利用シーン次第ですが)静的なタグを読み取ること代用することができます。
- 組み込み機器側の電源が切れているときでも無線電力を使って不揮発メモリの情報が読み取れます。
- NDEFを使ってブラウザを自動的に立ち上げたりできます。
- NDEFのみiPhoneで利用できます。
- アプリ側のタイミングは比較的自由です。
- もっとも広く使われている使い方であり、対応している機器が多いです。
- 省電力
- PCでも利用しやすい
欠点
- スマートフォンがないと機能しない機能になります。
- 組み込み機器側は常にスマートフォンの要求を待機します。
- 読み出しは常にスマートフォン側で行う必要があります。
- スマートフォン側の通信タイミングや操作が支配的になります。
- NDEF以外の場合は読み取りのために常にアプリを立ち上げている必要があります。
- NDEF以外の場合はプロトコルは自分で考える必要があります。
- 大容量のデータのやり取りには向いていません。
- 同期的通信になります。
チップ例
- Felica Plug
- Felica Link
- NFC PLUG
スマートフォンがHCEでタグとして振る舞い、組み込み機器側が読み取り装置として振る舞うモードです。
利用例
- セキュリティロック(カードとスマートフォン併用)
- 店頭における電子決済
- スポーツクラブの会員証やポイントカード
傾向
スマートフォンを持っていない人でも、NFCカードを発行することで利用できる。
スマートフォンは読み取ってもらう側。
利点
- カードと平行して使うことができ、スマートフォンがなくても機能します。
- 組み込み機器側の通信タイミングや操作が支配的になります。
- アプリを立ち上げていなくても自動で立ち上がるためバックグラウンドで通信が可能です。(HCE-F除く)
- ロック画面でも通信可能です(スリープ中は無理な様子)
欠点
- HCEのないスマートフォンでは利用できません
- プロトコルを自分で考える必要があります。
- 利用には電源が入っている必要があります。
- バッテリー駆動の機器の場合は読み取り開始の操作が必要です。
- アプリ側は基本的に迅速に応答する必要があります。
- ポーリングを繰り返すため消費電力が大きい。
- 組み込み機器側から繰り返し読み取りを行う必要があります。
- iPhoneで利用できない
- PCで利用しにくいでしょう。(API的に)
- 大容量のデータのやり取りには向いていません。
- 同期的通信になります。
チップ例
- Felica Link (搬送波生成回路付き)
- RC-S620
スマートフォンと組み込み機器が対等な立場で振る舞うモードです。
利用例
- スマートフォン同士のデータ交換
- スマートフォン同士のデータ交換(BTSSP)
- スマートフォンとPCのデータ交換
- 組み込み機器に対するWi-Fi設定の転送?
傾向
データ交換
利点
- LLCPを使い通信します。
- NFCの本来の想定された使い方なので、対応機器が広い...はずです
- TCPやUDP相当の通信を行うことができます。
- 組み込み機器間で通信することも可能です。
- 大容量のデータのやり取りや、継続的な通信を行うことができます。
- 非同期で通信を行うことができます。
欠点
- SNEP以外で対応している機器を正直見たことがありません。
- NDEF以外で動くんでしょうか?
- DEP・LLCP・SNEPとスタックするためソフトウェアが複雑になります。
- 通信中はかざし続ける必要がある上、通信速度が低速なので辛い。
- Androidですらまともに使えるのか不明(OSが握っててアプリに開放されていないように見える)
- 利用には電源が入っている必要があります。
- (なお、おサイフケータイと干渉する模様)
チップ例
- Felica Link (搬送波生成回路付き)
- RC-S620