NFC:什么是近场通信模块及其工作原理

作者: IT Sectr 发布日期: 2026-03-23 阅读时间: 8 分钟

NFC (Near Field Communication) —— 一种短距离无线通信技术,允许设备在10厘米以内的距离交换数据。NFC在手机中用于非接触式支付、文件传输和标签读取。根据Grand View Research,2025的数据,NFC芯片市场已达到345亿美元,这得益于NFC在智能手机和全球支付基础设施中的大规模采用。

要点

  • NFC —— 一种在13.56 MHz频率上工作的无线通信标准,传输距离可达10厘米。
  • NFC的三种工作模式:读/写(R/W)、点对点(P2P)和卡模拟(Card Emulation)。
  • NFC与蓝牙的区别在于速度较低(424 kb/s),但无需配对即可即时工作。
  • NFC天线嵌入在智能手机的后盖或电池中,通过安全元件连接到控制器。
  • 非接触式支付(Google Pay、Apple Pay)—— NFC在移动设备中最广泛的应用。

什么是NFC?

NFC(近场通信)是一种短距离无线数据传输标准,工作频率为13.56 MHz。该技术基于RFID(射频识别),向后兼容ISO 14443——非接触式智能卡标准。数据传输速度取决于所选模式,分别为106、212或424 kb/s。

与蓝牙不同,NFC无需配对过程——设备在靠近时即可即时交换数据。最大通信距离为10厘米,可提供天然的防拦截保护。根据NFC论坛的数据,全球超过30亿台设备支持该技术,并且这个数字每年增长15-20%。

NFC标准由NFC论坛开发——这是一个由索尼、飞利浦和诺基亚于2004年成立的联盟。第一部带NFC的手机(诺基亚6131)于2006年问世,但大规模普及是在2011年Android 4.0(Ice Cream Sandwich)发布和2014年Apple Pay推出之后开始的。如今,几乎所有价格在150美元以上的智能手机都支持NFC。

NFC在手机中的工作模式

NFC控制器在智能手机中支持三种工作模式,每种模式都针对其任务类别设计。模式之间的切换根据交互设备类型自动进行。

读/写模式(Reader/Writer)

在此模式下,手机充当NFC标签的主动读取器。当靠近NFC标签——贴纸、手环或海报时——手机会从标签内存中读取数据。标签包含48字节到32 KB的存储器,存储URL、文本或命令。Android Beam(已被Nearby Share取代)使用此模式传输链接和联系人。

点对点模式(P2P)

两台NFC设备直接交换数据。一台设备作为发起方,另一台作为目标方。LLCP(逻辑链路控制协议)标准管理连接,SNEP(简单NDEF交换协议)管理数据格式。P2P模式用于快速传输联系人、链接或启动蓝牙配对。P2P模式下的速度可达424 kb/s。

卡模拟模式(Card Emulation)

手机模拟非接触式智能卡——支付卡、交通票或门禁卡。外部NFC设备(POS终端、闸机)与手机交互的方式与普通塑料卡相同。此模式用于Apple Pay、Google Pay和Samsung Pay。支付安全由安全元件(Secure Element)保证——这是一种隔离芯片,用于存储支付卡数据。

模式使用示例需要安全元件
Reader/Writer读取带URL的NFC标签
Peer-to-Peer在手机之间传输联系人
Card Emulation通过Google Pay支付

NFC与蓝牙:技术对比

NFC和蓝牙低功耗(Bluetooth LE)是两种常被比较的短距离技术。NFC在连接建立速度(0.1秒)上胜出,无需配对,但在数据传输速度和传输距离上逊色。蓝牙低功耗需要配对(2-5秒),但提供高达2 Mb/s的速度和最高100米的传输距离。

实际上,NFC和蓝牙并非竞争关系,而是相互补充。NFC用于启动连接(切换):只需将手机靠近设备,NFC即可传输蓝牙连接参数(NFC蓝牙切换)。之后,设备切换到蓝牙进行快速文件传输或音频流传输。

智能手机中NFC的硬件架构

智能手机的NFC模块由三个组件组成:NFC控制器、NFC天线和安全元件(用于安全操作)。NFC控制器是一个独立的芯片或组合通信模块的一部分(NFC + 蓝牙 + Wi-Fi,例如高通的WCN3990)。它管理无线电接口和交换协议。

NFC天线是柔性基板(FPC)或电池外壳上的印刷线圈。天线尺寸为20×30 mm,匝数为3-5。天线通过调谐到13.56 MHz频率的匹配电路连接到控制器。根据恩智浦半导体的数据,天线的有效工作需要精确计算电感和品质因数。

安全元件(eSE)——独立的加密芯片(NXP P71、三星S3K)或SoC中的隔离区域(iSE——集成安全元件)。它存储支付卡数据并为HCE(主机卡模拟)执行加密操作。安全元件与Android/iOS隔离:只有NFC控制器可以通过SWP(单线协议)总线上的APDU命令访问它。

cpp
// 用于与安全元件交互的APDU命令示例
const uint8_t SELECT_APDU[] = {
    0x00, 0xA4, 0x04, 0x00,            // CLA, INS, P1, P2
    0x07,                               // 数据长度(7字节)
    0xA0, 0x00, 0x00, 0x00,             // RID —— 已注册
    0x03, 0x10, 0x10,                   // PIX —— 应用标识符
    0x00                                // Le —— 期望响应长度
};

// 通过NFC控制器向安全元件发送命令
NfcStatus nfcStatus = sendApdu(SELECT_APDU, sizeof(SELECT_APDU));

NFC在移动设备中的应用

NFC在手机中用于四种主要场景:非接触式支付、交通、门禁和任务自动化。最广泛的应用是支付系统:Apple Pay、Google Pay和Samsung Pay。它们使用带HCE(主机卡模拟)或安全元件的卡模拟模式来模拟银行卡。

全球交通系统(莫斯科地铁、伦敦地铁、纽约MTA)都通过移动钱包接受NFC支付。在日本,基于NFC的FeliCa(索尼)技术自2004年以来一直用于出行、购物和办公室门禁。配备FeliCa芯片的智能手机,如日本市场的iPhone,支持Suica和PASMO。

NFC标签(NFC Tags)可实现智能家居场景的自动化:将手机靠近床边的标签——闹钟将开启,通知将关闭。在Android上,这通过Android Beam / NFC Tools实现,在iOS上通过快捷指令和NFC触发器实现。一些智能手机还使用NFC进行快速充电——Qi标准使用NFC来识别充电器。

代码示例:在Android上读取NFC标签

Android通过Intent System提供处理NFC标签的API。当标签靠近手机时,系统会创建一个包含标签的intent,应用程序以NDEF(NFC数据交换格式)格式接收数据。以下是一个从NFC标签读取URL或文本的Activity示例。

kotlin
class NfcReaderActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_nfc)
        handleNfcIntent(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleNfcIntent(intent)
    }

    private fun handleNfcIntent(intent: Intent) {
        if (intent.action == NfcAdapter.ACTION_NDEF_DISCOVERED) {
            val rawMessages = intent
                .getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)
            rawMessages?.forEach { rawMsg ->
                val msg = rawMsg as NdefMessage
                msg.records.forEach { record ->
                    val payload = String(record.payload)
                    println("NFC数据:$payload")
                }
            }
        }
    }
}

要使NFC工作,需要在清单中声明android.permission.NFC权限,并为ACTION_NDEF_DISCOVERED、ACTION_TECH_DISCOVERED或ACTION_TAG_DISCOVERED配置intent-filter。Android会根据NDEF记录类型自动过滤NFC标签——这允许应用程序仅对具有特定MIME类型或URL前缀的标签作出反应。请注意,NFC天线通常位于手机后盖的上部——要读取标签,需要将手机的上部靠近标签。

常见问题

通过Google Pay支付时需要开启NFC吗?

是的,非接触式支付需要在手机设置中开启NFC。Google Pay在靠近终端时会自动激活NFC,即使屏幕关闭也是如此(在Android 10+并安装Google Wallet的设备上)。对于Apple Pay,NFC会自动开启,无需手动激活。

NFC的传输距离是多少?

NFC的标准距离最远10厘米。实际上,为了可靠连接,建议将手机保持在距离读取器2-4厘米的位置。较近的距离使NFC比蓝牙更安全——攻击者无法远程读取数据。

能否通过NFC感染病毒?

理论上,NFC标签可能包含指向恶意网站的链接,但这需要用户操作——点击链接。通过NFC自动感染是不可能的,因为该技术不支持在未经确认的情况下执行代码或安装文件。Android和iOS操作系统会阻止潜在危险的NFC操作。

如何检查手机是否有NFC?

在Android上:打开设置 → 连接 → NFC(或在设置中搜索"NFC")。在iPhone上:所有iPhone 6及更新型号都支持NFC。一些制造商会在外壳或包装盒上标记NFC符号。您也可以使用Play Market中的NFC Check应用进行诊断。

NFC会消耗手机电池吗?

NFC仅在活动模式——数据传输时——消耗电能。在待机模式下,NFC控制器几乎不消耗电能(0.01 mA)。开启NFC不会影响手机的电池续航时间。这使它区别于蓝牙,蓝牙即使在待机模式下也会消耗电能。

总结

  • NFC —— 一种在13.56 MHz频率上工作的无线通信标准,传输距离可达10厘米,速度可达424 kb/s。
  • NFC的三种工作模式:读/写模式(读取标签)、点对点模式(数据交换)、卡模拟模式(支付卡模拟)。
  • 非接触式支付 —— NFC在智能手机中的主要应用,通过Google Pay、Apple Pay和Samsung Pay实现。
  • NFC无需配对 —— 连接在0.1秒内建立,比蓝牙更快。
  • 硬件架构包括NFC控制器、FPC天线和安全元件,用于安全交易。
  • NFC标签用于场景自动化:静音、启动应用、管理智能家居。
  • Android NFC API允许通过Intent System读取NDEF标签,并根据数据类型进行过滤。

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读