当前位置:   article > 正文

NFC入门介绍_nfc 编程

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/593963
推荐阅读
相关标签
  

闽ICP备14008679号