深色模式
NFC 入门
概述
NFC 相关资料一旦看深一点,名词就会开始成片出现:ISO/IEC 14443、NDEF、MIFARE、Type A、Type B、Type F、标签类型、卡模拟。问题不在名词多,而在很多名词根本不在同一层。
想把 NFC 看明白,最重要的第一步不是钻协议位图,而是先分清:它和 RFID 的关系是什么,设备在不同模式下扮演什么角色,NDEF 和卡片芯片又不是一回事。
NFC 和 RFID 是什么关系
NFC 可以看作近距离高频 RFID 技术的一部分,工作频段通常是 13.56 MHz,强调近距离、低功耗和设备间互操作。
简单说:
RFID是更大的家族NFC是其中更偏消费电子、移动设备和近场交互的一支
因此很多 NFC 场景都会和非接触式卡片、标签、读卡器联系在一起。
NFC 常见的三种工作模式
读卡器模式
设备主动去读取标签或卡片内容。
常见场景:
- 手机读门禁卡信息
- 手机读取海报标签中的网址
- 手持终端读取物料标签
卡模拟模式
设备把自己模拟成一张卡,让外部读卡器来读。
常见场景:
- 手机模拟交通卡
- 手机钱包支付
- 门禁凭证模拟
点对点模式
两个 NFC 设备之间直接交换数据。历史上这个模式讲得很多,但在现代移动生态里,实际高频应用没有前两者那么常见。
NFC 标签和 NDEF 不是一回事
这是初学者最容易混淆的点之一。
- 标签是物理载体或芯片对象
NDEF是一种数据格式
也就是说,一张标签可以存放 NDEF 消息,但标签本身不等于 NDEF。就像硬盘里可以存文本文件,但硬盘不等于文本格式。
NDEF 在做什么
NDEF 全称是 NFC Data Exchange Format,作用是定义“数据在 NFC 里怎么组织”。
它常用来封装这些内容:
- 文本
- URL
- URI
- MIME 数据
- 自定义应用记录
这也是为什么很多 NFC 标签贴一下就能打开网页。不是因为标签天生懂网页,而是因为里面存了一条符合 NDEF 规范的 URL 记录。
Type A、Type B、Type F、Type V 是什么
这些名字描述的是底层通信技术类型或兼容关系,不是“应用内容格式”。
常见对应大致可以这样理解:
- Type A / Type B:常与
ISO/IEC 14443相关 - Type F:常与
FeliCa体系相关 - Type V:常与
ISO/IEC 15693相关
它们关心的是空口通信方式和卡片技术路线,不是“标签里到底写了什么数据”。
ISO/IEC 14443 为什么这么常见
因为大量非接触式智能卡、支付卡、门禁卡、身份证件相关体系都建立在它附近。
在 NFC 资料里频繁看到它,通常说明讨论已经靠近:
- 卡片通信层
- 读卡器与卡的交互规则
- Type A / Type B 这类底层分类
如果只是做“手机读一张 NFC 标签的 URL”,未必需要一开始就把标准全文啃完;但如果涉及门禁、支付、卡模拟或底层芯片开发,理解这层就会很重要。
MIFARE 是什么
MIFARE 是 NXP 推出的一系列非接触式卡片技术产品族,不是 NFC 的总称,也不是所有卡的统一底层。
常见的 MIFARE 家族里,不同产品能力差异很大。把 MIFARE 说成一种单一格式,通常不够准确。
MIFARE Classic 为什么总被单独提
因为它历史上非常常见,但又有自己的特殊性。
需要先分清几点:
MIFARE Classic是具体卡片产品体系- 它不是
NDEF的同义词 - 它也不是所有
NFC卡都遵循的通用逻辑
很多资料会专门讲它的扇区、块、密钥 A/B、Access Bits,就是因为它在数据组织和访问控制上有自己的规则。
Access Bits 在解决什么
MIFARE Classic 的 Access Bits 用来描述某个扇区或数据块的访问权限,例如:
- 哪些块可读
- 哪些块可写
- 是需要 Key A 还是 Key B
这属于比较底层的卡片权限控制内容。做标签入门、NDEF 编码或普通手机读写标签时,不一定一开始就需要深入到这里;但做门禁卡分析、卡片工具开发时,这部分就绕不开。
开发时先判断自己在哪一层
处理 NFC 问题时,先确认自己面对的是哪一层,能少绕很多弯:
- 想写标签内容:优先关注
NDEF - 想读卡或模拟卡:优先确认设备模式
- 想处理门禁卡或专有卡:优先确认底层卡片类型和标准
- 想做底层安全或权限分析:才需要深入
MIFARE Classic这类细节
很多项目做了半天才发现讨论对象不一致,有人在讲手机 API,有人在讲卡片标准,有人在讲某个厂商卡种。层级一错,沟通就会开始漂移。
