通信系统集成

NFC中的NDEF协议

为了实现NFC标签、NFC设备以及NFC设备之间的交互通信,NFC论坛定义了NFC数据交换格式(NDEF)的通用数据格式。NDEF使NFC的各种功能更加容易使用各种支持的标签类型进行数据传输,由于NDEF已经封装了NFC标签的种类细节信息,因此应用不用关心是在与何种标签通信。

NDEF交换信息

NDEF是轻量级的、紧凑的二进制格式,可带有URL、vCard和NFC定义的各种数据类型。NDEF交换的信息由一系列记录(Record)组成。每条记录包含一个有效载荷,记录内容可以是URL.MIME媒质或者NFC自定义的数据类型。使用NFC定义的数据类型,载荷内容必须被定义在一个NFC记录类型定义(RTD)文档中。

图4-19NDEF组成

NDEF的组成

NDEF的组成如图4-19所示。其中,记录中的数据类型和大小由记录载荷的报头(Header)注明,这里的报头包含三部分,分别为Length、Type和Identifier,如表4-8所示。

表4-8 NDEF头部组成

名 称

NDEF协议对应

含 义

Length

PAYLOAD LENGTH

Payload的长度,单位是字节(octet)

Type

Type Value TNF TYPE

类型域,用来指定载荷的类型

Identifier

ID LENGTH ID

可选的指定载荷是否带有一个NDEF记录

如NDEF记录类型所述,NFC定义的数据类型需要的载荷内容被定义在RTD文档中。NFC论坛定义了以下RTD:

(1)NFC文本RTD(T),可携带Unicode字符串。文本记录可包含在NDEF信息中作为另一条记录的描述文本。

(2)NFCURIRTD(U),可用于存储网站地址、邮件和电话号码,存储成经过优化的二进制形式。

(3)NFC智能海报RTD(Sp),用于将URL、短信或电话号码编入NFC论坛标签,以及如何在设备间传递这些信息。

(4)NFC通用控制RTDO

(5)NFC签名RTDO

NFC签名RTDO

智能海报记录类型是将URL.SMS等信息综合到了一个Tag中,下面对RTD_TEXT、RTD_URL进行详细介绍。

(1)RTDTEXT即文本记录类型,用来存储Tag中的文本信息。RTDTEXT记录内容格式如表4-9所示。

表4-9 RTD_TEXT记录内容

偏移 Offset(bytes)

长度 Length(bytes)

内容 Content

0

1


1

< n >

ISO/IANA 语言码,如 fien-US

n+1

< m >

实际的文本信息,编码为UTF-8TF-6

(2)RTD_URL用来描述从NFC兼容的标签中取得一个URL,或者在两个NFC设备之间传输URL数据,同时也提供另一种在另一个NFC元素里存储URL的方法。

RTD_URI记录内容格式如表4-10所示。其中identifiercode为URI前缀标识符,其值如表4-11所示。

表4-10 RTD_URL记录内容


名称Name

偏移Offset

大小Size

Value

描述 Description

Identifier code

0

1 byte

URL Identifier code


URL field

1

N

UTF-8 String

rest URL或整个URL(如果

Idenfier code = 0x00)

表4-11 NFC RTD_URL前缀缩略表


十进制数Decimal

十六进制Hex

协议 Protocol

0

0x00

不适用无预备及URL域包含未 删节URL

1

0x01

http//www.

2

0x02

https / / www.

3

0x03

http//

4

0x04

https//

5

0x05

tel

6

0x06

mailto

7

0x07

ftp: //anonymous: anonymous©

8

0x08

ftp//ftp.

9

0x09

ftps//

10

OxOA

sftp//

11

OxOB

smb//

12

OxOC

nfs//

13

OxOD

ftp//