如有转载此文,请注明出处,文中引用的数据,如果有涉及到版权问题,还请告知,会立马删除。
依据前文中介绍SNEP中封装的是NEDF消息,而NDEF消息最终会用到RTD的格式进行封装,此文章会依序介绍NDEF和RTD的specification。
NDEF简介
NDEF(NFC data exchange format)是在LLCP链路被激活时使用到。
NDEF spec的主要目的有:
- 封装任意形式的文件和实体(如加密数据,XML文件等)
- 封装未知大小的文件和实体
- 组合按某种顺序出现的多个文件和实体(如含有附件的标准文件)
- 同时需要注意小负载的封装不应该增加系统的负荷。
使用场景:
上层应用产生由一个或多个文件生成的NDEF信息,该消息交由底层LLC层传送给对方,对方可以接受后直接处理或作为中间阶段写入Tag中。当其他设备接近该tag时,会读到该tag中的内容,并把读到的NDEF消息传给上层应用分析和处理。
NDEF协议
消息格式:
- NDEF消息由一个或多个NEDF Record组成
- 首个消息中MB标记置1,最后一个消息中ME标记置1
Record是NDEF消息中的最小单元。为避免发送端发送数据过大导致接收端无法处理,需要对record进行分片处理,并将第一个record中的CF标记置1,中间的record也要设置CF为1,且type_length和IL都为0,TNF为0x6(unchanged),结束的record中CF清零,且type_length和IL都为0。
NDEF完整封包格式如下:
如果Short Flag为1时,对应的封包格式如下: