NFC学习笔记(2)——NFC基础知识

2025-05-09 15:59:33

书接上文

在等待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个字节所定义的长度(),则需要分块传输

相信一般用不到分块传输的情况

好了,今天就先写到这。