NFC学习笔记(2)——NFC基础知识
书接上文
在等待PN532板子到货的同时,需要了解一些NFC的知识。
NFC卡分为5类
* I 型卡(不支持防冲突)
* II 型卡 Mifare Ultralight卡
* III 型卡 Sony FeliCa卡
* IV 型卡 NXP DESFire卡
* V 型卡 NXP Mifare Classic卡
平时最常使用的是NXP Mifare Classic卡。
除了III 型卡(Sony的FeliCa,基本只在日本使用),其他的卡都是基于ISO-14443A标准
传输速率在106Kbps,存储空间最大到KB级别
除了I 型卡外,其他类型卡都支持防冲突
所有类型卡片都有只读和可读写卡两种
NDEF
NDEF(NFC Data Exchange Format),NFC数据交互格式
该格式规定了NFC如何交换数据
NDEF由二进制数据构成,由这些二进制数据构成message
一个message由多个record构成
每个record由header和payload组成
header包含record的元数据,如长度、record类型等
payload为message的内容
NFC可传输的数据很短,一般只由一个message构成
NDEF结构图见下图:
以快递地址举例子
一个快递地址就是一个message
快递地址由多个字段构成,省、市、区县、街道、小区,收件人,联系电话
每个字段就是一个record,多个record构成一个完成的message
一个record由头和载荷组成
头记载了这个record的信息,载荷就是要传输的数据
record头记录的信息有:
* TNF(1字节)
* 类型长度(1字节)
* 载荷长度(4字节)
* ID长度(1字节)
* 载荷类型(变长)
* 载荷ID(变长)
从载荷长度为4字节可以看出,理论上载荷最大长度为,当然,这个只是理论值,一般NFC卡片的存储容量在KB级
下面聊一聊TNF(Type Name Format)
TNF由一个字节构成,8个位分别代表
* message开始(1 bit)
* message结束(1 bit)
* 块标识(1 bit)
* 短record(1 bit)
* ID长度(1 bit)
* 类型格式(3 bits)
上面说到一个message由多个record构成,message中第一个record,message开始位为1;message中最后一个record,message结束位为1;中间的record开始位结束位都为0;如果一个message只有一个record,开始位结束位都为1
块标识为1时表明record分块传输
短record标识为1时载荷长度使用短record
ID长度位为1时存在ID长度域
TNF由3位构成,也就是说有8种情况:
0:空
空record,没有类型或载荷
1:Well-Known
NFC协会定义的预置类型
2:MIME media-type
RFC2046定义的网络媒体类型
3:Absolute URI
RFC3986定义的URI
4:External
基于NFC协会定义的用户定义值
5:Unknown
该类型未知,类型长度必须位0
6:Unchanged
只在分块传输的中间和结束record中出现,类型长度必须为0
7:Reserved
NFC协会保留类型
如果传输长度大于4个字节所定义的长度(),则需要分块传输
相信一般用不到分块传输的情况
好了,今天就先写到这。