赞
踩
NFC | Near Field Communication | 近场通信 |
OEM | Original Equipment Manufacturer | 原始设备制造商 |
HW | Hardware | 硬件 |
OMAPI | Open Mobile Application Programming Interface | 开发移动应用程序编程接口 |
eSE | Embedded Secure Element | 嵌入式安全元件 |
SEMS | Secure Element Management Service | 安全元件管理服务 |
NFCC | NFC Controller | NFC控制器 |
TEE | Trusted Execution Environment | 可信执行环境 |
近场通信(英语:Near-field communication,NFC),又称近距离无线通信、近距离通信,是一套通信协议,让两个电子设备(其中一个通常是移动设备,例如智能手机)在相距几厘米之内进行通信。NFC,如同过去的电子票券智能卡一般,将允许移动支付取代或支持这类系统。NFC应用于社交网络,分享联系方式、照片、视频或文件。具备 NFC 功能的设备可以充当电子身份证和钥匙卡。NFC 提供了设置简便的低速连接,也可用于引导能力更强的无线连接。--维基百科
目前,NFC利用移动终端实现移动支付、电子票务、门禁、移动身份识别、防伪等多方面。
NFC有三种运行模式(operation mode),分别是
Reader/Write模式(简称R/W,和NFC Tag/NFC Reader相关)
Peer-to-Peer模式(简称P2P,它支持两个NFC设备交互)
NFC Card Emulation Mode(简称CE,它能把携带NFC功能的设备模拟成Smart Card,这样就能实现诸如手机支付、门禁卡之类的功能)。
NFC Reader角色。位于其内部的NFC芯片包含NFC Controller(NFC控制器,它可和Device Host或Secure Element安全单元交互)、Antenna(天线)和Contactless Front-End(非接触式前端,简称CLF,负责射频信号的调制解调等工作)三个部分。
在R/W模式中,交互操作的发起方只能是NFC Reader,故它也被称为Initiator或Active Device。
NFC Tag,由于它需要NFC Reader通过电磁感应为其提供电能,所以在R/W模式中,NFC Tag只能作为交互操作的Target(也被称为Passive Device)。NFC Forum定义了四种类型的Tag,分别为Type 1、Type 2、Type 3和Type 4。
参数 | Type 1 | Type 2 | Type 3 | Type 4 |
对应规范 | ISO 14443 Type A | ISO 14443 Type A | Felica | ISO 14443 Type A,Type B |
常见芯片名 | Topaz | MIFARE | Felica | MIFARE-DESFire |
存储容量 | 最大1KB | 最大2KB | 最大1MB | 最大64KB |
读写速率 | 106kbps | 106kbps | 212kbps | 106-424kbps |
价格 | 低 | 低 | 高 | 中等/高 |
安全性 | 数字签名保护 | 不安全 | 数字签名保护 | 可选 |
说明 | Topaz由Innovision公司推出 | MIFARE由NXP公司推出 | 由Sony公司推出,价格比较贵 | 这类芯片在出厂时就被配置好是否只读或可读写 |
根据NFC Forum的定义,R/W模式下,NFC设备之间每一次交互的数据都会封装在一个NDEF Message中,而一个NDEF Message可以包含多个NFC Record,真正的数据则封装在NFC Record中。
一个NDEF Message可包含一个或多个NFC Record。
NFC所基于的无线射频技术实际上可以支持NFC Device之间互相传递数据。为了满足NFC Device之间双向交互的需求,NFC Forum定义了P2P(Peer-to-Peer)运行模式。
Snep协议基于LLCP协议,该协议使得两个NFC Device之间能直接交换NDEF消息。
LLCP协议提供了面向连接和无连接两种数据传输方式,SNEP使用了LLCP提供的面向链接的数据传输服务。
假设Device A和Device B打开了NFC功能。当二者进入有效距离后,它们的LLC模块将进入Link Activation(链路激活)阶段:
进入Link Activation时,Device A和Device B将分别扮演Initiator和Target角色,参考资料[13]可用于确定谁来扮演Initiator或Target。
Initiator发送PAX数据包给Target。PAX全称为Parameter Exchange,它用于在两个设备间交换彼此的LLC层配置信息(如协议版本等,详情见下文)。
Target收到Initiator的PAX包后需要相应处理,例如判断协议版本是否匹配等。Target处理完后,它需要发送自己的LLC层配置信息给Initiator。
Initiator检查Target的LLC层配置参数,如果一切正常,双方Logical Link成功建立,随后可进入正常工作阶段。
双方需要通过PAX交换LLC层的配置信息。PAX属于LLCP数据包的一种。
Link被激活后,Device A和Device B将先建立面向链接的关系,然后再开展数据交互。
当LLCP建立完成后,基于LLCP的SNEP就可以正常进行工作。SNEP的工作流程非常简单,主要包括两个步骤:
SNEP客户端发送SENP Request消息给服务端进行处理。
SNEP服务端回复SNEP Response消息给客户端以告知处理结果。
NFC CE mode有两种实现:
虚拟卡模拟 : 基于硬件,这种模式下,需要提供SE单元, nfc芯片作为通信的前端模块, 将收到的操作命令, 转发到SE, 由SE负责处理。
主机卡模拟 : 基于软件,这种模式下,由运行在主机上的应用来充当SE。
虚拟卡模拟依赖SE单元, 安全单元为NFC设备上专用的微处理芯片。该芯片可以与NFC控制器集成在一起。另外也可以集成在NFC设备中的其它智能卡/安全设备中, 目前常见的SE单元的形式有
nfc 芯片内部集成的SE单元, 例如 NXP 的 PN65N
Secure SD 卡, 实际上是在SD卡内部嵌入了一个安全模块, 相关的应用可以在其上运行, 相关的国际标准为 ISO 7816, 该方案被称为NFC-SD
UICC, 即手机的SIM卡充当SE,该方案被称为NFC-SIM
在CE模式中,NFC Mobile被NFC Reader识别成一个智能卡。NFC Reader通过相关规范发送数据或控制命令给NFC Mobile中的NFCC。 当NFCC收到数据或控制命令后,将交给相关的应用程序来处理。由于CE相关的应用场景针对支付、门禁等这类对安全性要求非常高的情况,以Android手机NFC支付为例,一个完整的支付应用程序包括一个为用户提供操作界面的APK以及一些运行在安全性有绝对保障的SE中的应用程序。
下图是AOSP的NFC架构图,分为Applications、Framework、Native/Linux、HW四层
以钱包APP举例,包含可见可操作的NFC apps,钥匙管理的KeyMaster App、操控eSE的applet,这三个部分共同组成钱包APP。
与之相对应的,是向NFC apps提供能力的NFC API,提供钥匙管理能力的Keystore Framework,向applet提供能力的OMAPI Framework。
Framework通过JNI层与底层的Lib和HAL通信,Lib集成了各个功能的实际实现,而HAL则是将不同硬件的驱动进行抽象,形成统一的接口提供给Lib使用。
最底层的HW则是与对端通信的硬件。
下图是AOSP NFC的库分布
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。