NFC入门介绍

缩写词

NFCNear Field Communication近场通信
OEMOriginal Equipment Manufacturer原始设备制造商
HWHardware硬件
OMAPIOpen Mobile Application Programming Interface开发移动应用程序编程接口
eSEEmbedded Secure Element嵌入式安全元件
SEMSSecure Element Management Service安全元件管理服务
NFCCNFC ControllerNFC控制器
TEETrusted Execution Environment可信执行环境

一、什么是NFC

近场通信(英语:Near-field communication,NFC),又称近距离无线通信近距离通信,是一套通信协议,让两个电子设备(其中一个通常是移动设备,例如智能手机)在相距几厘米之内进行通信。NFC,如同过去的电子票券智能卡一般,将允许移动支付取代或支持这类系统。NFC应用于社交网络,分享联系方式、照片、视频或文件。具备 NFC 功能的设备可以充当电子身份证钥匙卡。NFC 提供了设置简便的低速连接,也可用于引导能力更强的无线连接。--维基百科

目前,NFC利用移动终端实现移动支付、电子票务、门禁、移动身份识别、防伪等多方面。

NFC有三种运行模式(operation mode),分别是

  1. Reader/Write模式(简称R/W,和NFC Tag/NFC Reader相关)

  2. Peer-to-Peer模式(简称P2P,它支持两个NFC设备交互)

  3. NFC Card Emulation Mode(简称CE,它能把携带NFC功能的设备模拟成Smart Card,这样就能实现诸如手机支付、门禁卡之类的功能)。

二、NFC模式介绍

1.Reader/Write模式

  • 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。

2.P2P模式

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的工作流程非常简单,主要包括两个步骤:

  1. SNEP客户端发送SENP Request消息给服务端进行处理。

  2. SNEP服务端回复SNEP Response消息给客户端以告知处理结果。

3.CE模式

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

1.AOSP NFC架构

下图是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的库分布

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值