NFCは普及しつつあります。しかし、多くの用語や規格があるため、最初の一歩を踏み出すのは大変なことです。この記事は、初心者向けにこれらの手順を明確化し、簡素化することを目的としています。
NFCはNear Field Communicationの略で、短距離、低データレート、低コストのプロトコルです。これは、 WI-FI そして ブルートゥース 13.56MHz RFIDのサブセットです。NFCは、データ交換のための非接触型トランザクションを可能にし、BluetoothやWIFIなどのより複雑な通信のセットアップを簡素化するために導入されています。たとえば、Bluetooth Low Energyのバージョン4.0および4.1には、NFCを使用せずに暗号化用の一時キーを安全に交換する方法がありません。したがって、NFCは「モノのインターネット」の接続において重要な役割を果たすことになっています。さらに、NFCはスマートフォン市場で広く普及しており、2015年にはスマートフォンの50% がNFCと互換性がありました。NFCは、タップ アンド ペイ アプリケーション用のPOS端末から、タップ アンド ペア アプリケーションを備えた消費者環境、タップ アンド エクスチェンジ アプリケーション用の家電製品やヘルスケアまで、ますます多くのアプリケーションで存在感を増しています。
NFCとRFIDは同義語として使用されることもあるため、両者の違いが混乱を招くことがあります。しかし、NFCは実際には RFID。NFCは、デバイス間のより複雑な交換を可能にすることでRFIDを基盤として設計されています。混乱の根本的な原因は、NFCリーダーを使用してパッシブRFIDタグを読み取り、限られた量のメモリに書き込むことが依然として可能であるという事実です。
RFIDは識別用に設計されました。RFIDタグには少量のデータを保存でき、RFIDリーダーから読み書きできますが、データ量は数千バイトに制限されます。RFIDは、リーダーから電力を供給されているときはパッシブですが、独自の電源を持っているときはアクティブです。
関連商品を見る
RFID交換には、ターゲットとイニシエーターの2つの要素が関係します。イニシエーター (タグ リーダーまたはリーダー/ライター) は、無線フィールドを生成し、フィールド内の任意のターゲットからの応答をリッスンすることで交換を開始します。ターゲットであるタグは、イニシエーターからの送信を受信すると応答します。一意の識別番号 (UID) で応答します。
RFIDにはISO(国際標準化機構)によって定められたさまざまな規格があります。標準では、無線周波数、データ転送速度、データ形式、および (オプションで) プロトコルのレイヤーが定義されます。かなり具体的な場合もあります。たとえば、ISO-11784標準は動物の追跡用に開発されました。最も一般的なのは、支払いシステムやスマート カードで使用するために開発されたISO-14443標準です。この標準に基づいて多くのNFCアプリケーションが開発されました。
前述のように、NFCはRFIDの拡張として考えることができるため、多くの特性 (アクティブまたはパッシブ通信モード、通信の開始方法、ハードウェア層) を共有しています。ただし、NFCターゲットは、メモリから静的データを配信するだけでなく、交換ごとに一意のコンテンツを生成し、それをイニシエーターに返すことができます。たとえば、NFCを使用して2台の電話機間でアドレス データを交換する場合、NFCターゲット デバイスは、この特定のイニシエーターを以前に認識したことがない場合にのみ、限定された情報を提供するようにプログラムできます。
2つのNFCデバイス間で通信するために、NFCでは3つのモードが定義されています。
- リーダーモード: リーダー/ライターがタグとの通信を実行します。タグはリーダー/ライターの要求にのみ応答できます。
- カードエミュレーション: デバイスはタグやカードのように動作します。
- P2Pモード: 双方向のデータ交換。
テクノロジーが普及すると、さまざまなベンダーのデバイスが相互に通信できるように標準化が必要になります。標準化団体は3つ存在します。
- ISO: 国際標準化機構: ISO 14443およびISO 15693
- NFCフォーラム: http://nfc-forum.org
- ITU: 地域組織
関連商品を見る
さまざまな周波数を使用できます: 低周波 (125-135 kHz)、超高周波 (418-458 MHzまたは860-960 MHz)、高周波 (13.56 MHz)。最新のものは低コストで標準化されているため、ほとんどのシリコン企業の主な焦点となっています。ISO-14443では短距離 (最大10 cm) が指定され、ISO-15693では長距離 (最大100 cm) が指定されています。
ISO仕様の中で、ISO14443の物理インターフェースはタイプAまたはタイプBとして定義されています。どちらのタイプも13.56MHzで動作しますが、信号インターフェースは異なります。
- タイプA:
o リーダーからタグへ: ミラー符号化 (遅延符号化とも呼ばれる) による100% 振幅変調
o タグからリーダーへ: OOK (On-Of-Keying) マンチェスター符号化
- タイプB:
o リーダーからタグへ: NRZ (Non Return to Zero) 符号化データによるRFフィールドの10% 振幅変調
o タグからリーダーへ: NRZ-L符号化データによる847.5kHzサブキャリアのBPSK
タイプFの定義もありますが、これは日本市場に限定されているため、開発者が頻繁に遭遇することはありません。
通信するために、リーダーはタグに電力を供給する電磁場を生成します。リーダーは搬送周波数を変調してタグに情報を提供します。次に、タグはリーダー フィールドを変調してリーダーに応答を提供します (後方散乱コンセプト)。
ソフトウェアの観点から見ると、NFCを把握することは、NFCデータ交換フォーマット (NDEF) を理解することです。NDEF (NFCデータ交換フォーマット) は、NFCタグにデータを保存し、データを送信するためのフォーマットを定義します。
NDEFメッセージには複数のレコードを含めることができます。各レコードは、レコード ヘッダーとレコード ペイロードの2つのセクションに分割されます。各レコードに特定のデータが含まれる複数のレコードで構成された1つのNDEFメッセージを使用することをお勧めします。たとえば、一般的な名刺の例では、名前のレコードを1つ、電話番号のレコードを1つ、住所のレコードを1つ用意する方が適切です。
実際、ヘッダー内の一部の情報はペイロードをどのように解釈する必要があるかを説明しているため、メッセージをレコードに分割する方が効率的です。
ヘッダーを詳細に見ると、ペイロード長などの一般的な情報の次に、TNT + フラグ バイトとペイロード タイプ バイトの2つのバイトが重要です。
タイプ名形式のTNF標準。3ビットでコード化されており、次の8つの値が可能です。
0: タイプもペイロードもない空のレコード。
1: よく知られている: NFCフォーラムによって事前に定義されたいくつかのタイプまたは仕様の1つ。
2: MIMEメディア タイプ: RFC 2046で定義されているインターネット メディア タイプ。
3: RFC 3986で定義されている絶対URI。
4: 外部: NFCフォーラムのレコード タイプ定義のルールに基づくユーザー定義の値。
5: 不明: タイプは不明です。型の長さは0でなければなりません。
6: 変更なし: チャンク化されたペイロードの中間レコードと終了レコードのみ。タイプの長さは0でなければなりません。NFCはほとんどの場合短いメッセージを使用するため、チャンク化されたペイロードはほとんど使用されず、したがってこのTNFもほとんど使用されません。
7: 将来の使用のためにNFCフォーラムによって予約されています。
最も頻繁に使用されるTNFは、TNF 1 (よく知られている)、TNF 2 (MIMEメディア タイプ)、およびTNF 4 (外部) です。たとえば、Androidは、Android Application Recordで呼び出される外部タイプを使用して、アプリの起動をトリガーします。
ペイロード タイプ (レコード タイプとも呼ばれます) は、ペイロードの内容をより具体的に説明します。
たとえば、TNF 1 (既知の) のレコードのレコード タイプは、テキスト メッセージの場合は「T」、URIメッセージの場合は「U」、ペイロードがスマート ポスターの場合は「SP」になります。TNF 2 (MIMEメディア タイプ) のレコードは、"text/html"、"text/json"、"image/gif" など、いくつかの異なるレコード タイプのいずれかになります。
TNFとレコード タイプ (またはペイロード) の組み合わせにより、ペイロードをどのように解釈する必要があるかに関する貴重な情報が得られます。
関連商品を見る
最後に、NFCフォーラムによって定義されたもう1つの重要な概念は、タイプ タグの種類です。これは、さまざまなNFCタグ プロバイダーとNFCデバイス メーカー間の相互運用性を保証するために行われます。4つのタイプ タグが指定されます。
- タイプ1
o ISO/IEC 14443A仕様に基づいています。タグは読み取りまたは書き換え可能ですが、ユーザーはタグを読み取り専用に設定できます。使用可能なメモリは96バイトで、2 KBまで拡張可能です。
- タイプ2
oタイプ1と非常に似ていますが、歴史的にはタイプ1よりも低いメモリ サイズで使用されていました。ただし、新しいタイプ2タグは、大容量で、高速読み取り、カウンター、またはユーザーが構成可能なパスワード保護などの追加機能を備えてリリースされています。これらの追加機能のおかげで、このタイプは非常に一般的です。
- タイプ3
o Sony FeliCaシステムに基づいています。メモリ容量は2kByte、データ通信速度は212kbit/sです。より複雑な操作が可能になります。
- タイプ4
o ISO14443AおよびB規格と互換性があるように定義されています。読み取り/書き換え可能または読み取り専用にすることができます。メモリ容量は最大32kバイト、通信速度は106kビット/秒から424kビット/秒です。
NFCにはさらに多くの仕様がありますが、この短い概要により、エンジニアはこれらの仕様をNFCおよびRFIDの世界にマッピングすることができ、アプリケーションの開発でどのパスに従うかを決定するための基礎が提供されます。