NDEFとは
NFC Data Exchange Formatと呼ばれるもので、NFCでデータのやり取りをする際に使われるデータ・フォーマットです。
仕様書はこちらにあります
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#ndefts
この内容についてNFC Labにて発表をしました。
資料はこちらです。
http://www.slideshare.net/tomorrowkey/ndef-13784268
Ndefの構成
NDEFには一つのNdef Messageが含まれます。
またNdef Messageには0個以上のNdef Recordが含まれます。
Ndef Recordの構成
Ndef Recordは大きくヘッダとペイロードの2つに分けることができます。
- ヘッダ
- MB(Message Begin)
- 1bit
- このフラグが1になっていると、最初のNdef Recordであることを表します。
- ME(Message End)
- 1bit
- このフラグが1になっていると、最後のNdefRecordであることを表します。
- CR(Chunked Flag)
- 1bit
- このフラグが1になっていると、分割されたNdef Messageであることを表します。
- SR(Short Record)
- 1bit
- このフラグが1になっていると、Ndef Message全体が255Byte以下であることを表します。
- またその場合、Payload Lengthが1Byteになります。(データサイズの節約になります)
- IL(ID Length)
- 1bit
- このフラグが1になっていると、IDが格納されていることを表します。
- TNF(Type Name Format)
- 3bit
- TYPEの種類を表します。
- 0x00 Empty
- 0x01 NFC Forum well-known-type
- 0x02 Media-type as define in RFC2046
- 0x03 Absolute URI as define in RFC 3986
- 0x04 NFC Forum external type
- 0x05 Unknown
- 0x06 Unchanged
- 0x07 Reserved
- ここの内容によってTYPE の解釈が変わります。
- TYPE LENGTH
- 1Byte
- TYPEフィールドの長さを表します。
- 符号なし整数
- PAYLOAD LENGTH
- 1Byte or 4Byte
- PAYLOADの長さを表します。
- ビッグエンディアン、符号なし整数
- SRが1だった場合、1Byteになります。
- ID LENGTH
- 1Byte
- IDの長さを指定します。
- 符号なし整数
- TYPE
- TYPE LENGTHによって長さが変わります。
- TNFの値によって内容の解釈が変わります。
- 例えば0x01 NFC Forum well-known-type だった場合
- 'T' -> Text
- 'U' -> URI
- 'Sp' -> Smart Poster
- ID
- ILによって存在しない場合があります。
- ID LENGTHによって長さが変わります。
- Ndef RecordのIDを設定することができます。
- MB(Message Begin)
- ペイロード
- データ本体
- TYPEとTNFによってフォーマットが異なります。
- well-known-typeについては別エントリにて解説します。
カスタマー開発部 山下智樹
記載されている会社名、および商品名等は、各社の商標または登録商標です。
0 コメント:
コメントを投稿