ndef 详解

ndef 全称 nfc data exchange format 即 nfc 数据交换格式

组成:

ndef message 由 多个 nfc record 组成

1 nfc record 包括 nfc record header(数据头)和 nfc record payload(数据荷载)两部分

2 nfc record header

在这里插入图片描述

其中第一个字节最重要 包含 MB ME CF SR IL TNF

2.1 MB(message begin)消息开始的地方 一般用于开头 且置1

2.2 ME(message end)消息结束的地方 一般用于结尾 且置1

2.3 CF(chunk flag)是否分块

2.4 SR(short record)如果设置该值,则上图的 pay length 只需要1个, 表示payload数据长度被限制在255个字节之内。

2.5 IL(id_length标志)表示 header 是否含有 id 和 id length 这两个字段

2.6 TNF(type name format )用于指明 payload 的类型 具体可见图

在这里插入图片描述

        2.6-a:empty 空的 表示是一个空的 nfc record

        2-6-b:nfc forum well-Known type 定义了一些常见的数据格式  如下:

  • URI Record Type:用于存储URI数据,对应Type字段取值为"U"。
  • Text Record Type:用于存储文本数据,对应Type字段取值为"T"。
  • Signature Record Type:用于存储数字签名数据,对应Type字段取值为"Sig"。
  • Smart Poster Record Type:智能海报,用于存储与该海报相关的一些资讯信息,如图片、相关介绍等,对应Type字段取值为"Sp"
  • Generic Control Record Type:用于传递控制信息,对应Type字段取值为"Gc"

        2-6-c:MIME (Multipurpose Internet Mail Extensions)多用途 internet 扩展。遵循 RFC2046规范。如果取值为 MIME,则 type 字段可以取值为:“text/plain”,“img/png"。

        2-6-d:Absolute URI 即绝对的 uri 地址,遵循 rfc 3986 规范。如绝对 uri 为:”http://www.baidu.com“。则其相对 uri 为:”www.baidu.com“。

        2-6-e:nfc forum external type 

为第三方组织定义的类型,目前NFC Forum没有定义相关的数据类型。

        2-6-f:unknown 代表Payload中的数据类型未知,它和MIME类型"application/octet-stream"有些类似,这种类型的数据由相应的应用程序来解析。

        2-6-g:unchanged:这种类型的数据用于NFC Record分片。例如一个大的数据需要通过多个NFC Record来承载,除第一个NFC Record分片外,该数据对应的其他NFC Record分片都必须设置TNF为Unchanged。

2.7:type length 是 record header 中 type 字段的长度

2.8:pay load length 3 ~ 0: 这四个字段共同指明 payload 字段的长度 如果 SR 字段被设置,则 record header 只包含一个 payload length字段。

2.9:ID length  用于表示 ID 字段的长度,如果 IL 字段未设置,则 ID 和 ID length 字段都将不存在。

2.10:type 

  • URI Record Type:用于存储URI数据,对应Type字段取值为"U"。
  • Text Record Type:用于存储文本数据,对应Type字段取值为"T"。
  • Signature Record Type:用于存储数字签名数据,对应Type字段取值为"Sig"。
  • Smart Poster Record Type:智能海报,用于存储与该海报相关的一些资讯信息,如图片、相关介绍等,对应Type字段取值为"Sp"
  • Generic Control Record Type:用于传递控制信息,对应Type字段取值为"Gc"

2.11:ID  需要配合URI类型的Payload一起使用,它使得一个NFC Record能通过ID来指向另外一个NFC Record。

2.12:pay load

 1 文本型  0xd1,0x01,0x0F,0x54,0x02,0x65,0x6E, 0x68,0x65,0x6c,0x6c,0x6F,0x2c,0x77,0x6F,0x72 ,0x6c ,0x64 ,0x21 

在这里插入图片描述

D1(1101 0001B)对应 MB ME CF SR IL TNF    TNF 为 0x01

01  type 的长度

0F payload 的长度

54 type 的类型 对应 ”T“

02 对应语言码字段的长度 

65 6E 表示为 “en”

 68 65 6C 6F 2C 77 6F 72 6C 64 21   payload 的内容 对应 ASCII 码  结果为 ”Hello,World!“。

ascII 对照表:

ASCII码表,ASCII码一览表,ASCII码对照表完整版-ASCII码中文站

2 网址型:0xD1 ,0x01 ,0x09 ,0x55 ,0x01 ,0x2E,0x6E ,0x66 ,0x63 ,0x2E ,0x63 ,0x6F ,0x6D

在这里插入图片描述

在这里插入图片描述

D1 (11010001B) 对应 MB ME CF SR IL TNF    TNF 为 0x01

01 type 的长度

08  payload 的长度

55 对应 ”U“ 即 url

01  identifier code  对应表二 为 http://www

6E 66 63 2E 63 6F 6D  对用ASCII表,即 “nfc.com"。

参考:

高通 NFC开发基础知识 之 “NDEF及NFC Record”_yujixuan@blog的博客-CSDN博客_nfcwellknown

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值