NFC进场通信总结概述

简介

本文介绍Nokia设备所支持的近场通信技术(NFC)及相关的功能。旨在为使用 Qt/Symbian/Java™ API为Nokia手机开发应用的开发者 刚开始接触NFC开发时提供有用的信息。

什么是NFC?

NFC是Near Field Communication的缩写,即近场通信。这是一种短距离无线电技术,使得两台设备在接触或靠得很近时互相通信。

  • NFC是一种开放平台技术,由NFC论坛标准化。
  • NFC基于RFID的扩展。NFC工作在13.56 MHz的频率。
  • NFC通信距离最大10cm。但是为了在Nokia手机上获得最佳用户体验,建议两台手机互相接触。
  • NFC标准支持不同的数据传输率如 106 kBps, 212 kBps, 和424 kBps。

标签和读取器

两台设备进行基于NFC的通信时,可能是一台设备做为读/写者,另一个做为标签。

标签

标签是一个简单的薄薄的设备,包含一个天线和小容量的存储空间。标签是一个被动设备,由电磁场提供电力。标签的内存有只读,可擦写,只能写一次 这些不同的类型。 NFC1tag.PNG

读取器

读取器是一个主动设备,产生无线电信号与标签通信。在被动通信模式,当读取器与被动设备靠得很近时,读取器为被动设备提供电力。

NFC2Reader.PNG

NFC模式

通信模式

NFC设备支持两种通信模式。

主动模式

在这种模式,目标设备和发起通信设备都有动力,互相之间可以轮流传输信号。

被动模式

发起设备差生无线电信号,目标设备由这个信号的电磁场提供动力。目标设备通过调制电磁场回应发起设备。

操作模式

NFC可以运行在ISO/IEC 18092, NFC IP-1, 和ISO/IEC 14443三种无线智能卡标准下(contactless smart card standard)

读/写

在这种模式,开启NFC功能的手机可以读写任何支持的标签, 读取其中的NFC数据格式标准的数据。

点对点

在这种模式下,两个NFC设备可以交换数据。 例如,你可以分享启动蓝牙或Wi-Fi连接的参数来启动 蓝牙或Wi-Fi连接。你可以交换如虚拟名片或数字相片等数据。点对点模式符合ISO/IEC 18092标准。
注意:NFC的symbian实现现在支持建立蓝牙连接,还不支持Wi-Fi。Java实现还不支持点对点模式。

模拟卡片

支持NFC的手机在与标签交互时扮演读取器的角色。在这种模式手机也可做为标签或被读取的无线卡片。 注意:Symbian和Java实现还不支持这种模式。

NFC3CardEmulation.PNG

NFC用例

本章我们来看看NFC的使用场景和案例

用于启动服务

在这种场景中,你可以使用带有NFC功能的Nokia手机触及NFC标签,接收URL,电话号,文本,然后可以用这些来定义启动某项服务所需要得信息。

智能海报是这种应用的例子,在智能海报背面贴上NFC标签,当带有NFC功能的Nokia手机触及NFC标签时,手机读取标签的信息,然后根据信息的种类,Nokia手机会打开一个视频流,或打开网页浏览器,或询问用户是否愿意拨打一个电话。

NFC4SmartPoster.PNG

用于分享

带有NFC功能的手机可以在点对点模式下分享数据。

例如,两台具有NFC的Nokia手机可以分享名片信息。当一个用户选择要分享的联系人信息后,手机向另一台手机在NFC无线范围内发送一个无线信号,另一台手机会识别NFC数据格式中包含的分享信息。

注意:分享不是通过NFC完成的。NFC会初始化蓝牙服务,分享实际是通过蓝牙完成的。

用于连接设备

NFC能帮助建立设备链接,而不需要任何配置或安装。例如,只需用带NFC的手机触及蓝牙耳机即可建立蓝牙配对。蓝牙耳机中内置一个NFC标签,其中有建立蓝牙配对所需要的所有信息,信息保存成NFC数据格式。这里手机扮演一个读取者的角色。

用于买票

带NFC的手机可以用于票务应用,作为车票可以替代传统物理车票。使用是手机接触读票器。用户,可以在售票机支付后,用手机接触售票机给手机票充值。这里NFC手机扮演卡片的角色,工作在模拟卡片模式。

要使用NFC手机作为旅行票,手机里必须有一个叫保密元素(secure element)的保密环境。保密环境运行票务应用,这里保存比如,剩余的旅行时间,或预付的旅程。

注意:票务用例目前不被Nokia手机支持。

用于支付

带NFC的手机可以像信用卡一样用于支付。 支付时,用户必须将手机与支付终端接触。这里NFC手机扮演一个卡片(带芯片的信用卡),支付终端是读取者,工作在模拟卡片模式。

NFC手机必须有保密元素,在其中像基于芯片的信用卡一样运行支付应用程序。

注意:支付用例目前不被Nokia手机支持。

NFC标签

NFC标签可以用在如海报的应用,记录少量信息提供给活动的NFC设备。储存的数据可以包括任何数据例如URL,电话号码或日历信息等。

为了使不同NFC标签提供者和NFC设备制造商的产品相互协作,NFC论坛定义了四种标签。

要查看目前Symbian和MeeGo 1.2支持的标签,请看‘NFC 标准和标签支持’。

NFC论坛标签种类

NFC 论坛是一个推广NFC技术的联盟,NFC论坛推出技术规范来保证设备和服务之间的配合,并为市场提供NFC技术培训。

在NFC论坛的技术规范网站http://www.nfc-forum.org/specs/spec_list/查看NFC论坛的标签种类。 标签的规范定义了实现 阅读器/擦写器的技术信息和相应的与之互动的NFC设备的控制功能

标签类型1

类型1标签比较便宜适合于多种NFC应用。

  • 基于ISO-14443A标准
  • 可读可重写,可配置成只读
  • 96 byte内存,可扩展到2KB
  • 传输速率 106kbits/s
  • 没有数据冲突保护
  • 市场上有兼容的产品 ———— Innovision Topaz, Broadcom BCM20203

NFC论坛设备如何操作类型1标签,如何发现,读取和写入NDEF数据(参看章节'NDEF')参看类型1标签操作规范:http://www.nfc-forum.org/specs/spec_list/

标签类型2

类型2与类型1类似,也是由NXP/Philips MIFARE Ultralight标签衍生而来的。

  • 基于ISO-14443A标准
  • 可读可重写,可配置成只读
  • 传输速率 106kbits/s
  • 支持数据冲突保护
  • 市场上有兼容的产品 ———— NXP MIFARE Ultralight

标签类型3

类型3由索尼FeliCa标签的非保密部分衍生而来。比类型1,2的标签昂贵。

  • 基于日本工业标准(JIS) X 6319-4
  • 在生产时定义可读,可重写或只读的属性。
  • 可变内存,每个服务最多1MB空间
  • 支持两种传输速率: 212或424kbits/s
  • 支持数据冲突保护
  • 市场上有兼容的产品 ———— Sony FeliCa

标签类型4

类型4与类型1类似,是由NXP DESFire标签衍生而来的。

  • 基于ISO-14443A标准
  • 在生产时定义可读,可重写或只读的属性。
  • 可变内存,每个服务最大32kB
  • 支持三种传输速率: 106,212或424kbits/s
  • 支持数据冲突保护
  • 市场上有兼容的产品 ———— NXP DESFire, SmartMX-JCOP

NXP规范标签类型

这是由NXP半导体定义的私有标签类型。

MIFARE类型经典标签

  • 基于ISO-14443A标准
  • 可读可重写,可配置成只读
  • 可变内存192/768/3584 bytes
  • 传输速率 106kbits/s
  • 支持数据冲突保护
  • 市场上有兼容的产品 ———— NXP MIFARE Classic 1K, MIFARE Classic 4K, and Classic Mini

更多关于 MIFARE经典标签的信息请查看 NXP网站:http://www.nxp.com/.

NFC相关规范

更多关于Symbian和MeeGo 1.2 Harmattan平台支持的标准请看'NFC标准和支持的标签'一章。

ISO 14443

ISO 14443是著名的国际标准,原来是为非接触芯片卡片在13.56MHz无线电通信设计的。 ISO 14443 从无线层到命令协议定义了一个协议栈。 无线层ISO14443-2有两个版本,具有不同的调制和bit编码方法。称为A,B版。类似的,ISO 14443指定了两个版本的包框架和底层协议部分(ISO 14443-3)。 ISO协议栈的最高层定义了传输信息的命令接口(ISO 14443-4)。

NFC5ISO14443.PNG

NFCIP-1

两台NFC设备间的点到点通信是由近场通信--接口和协议规范,NFCIP-1定义的机制实现的。这个NFC关键规范也被称为ISO 18092和ECMA-340。

NFCIP-1的协议栈基于ISO 14443. 主要的不同时一个新的命令协议,替换了之前协议栈的最高层。

NFCIP-1 包括两个通信模块使得NFC设备之间能工作在点对点的模式,也支持与基于NFCIP-1的NFC标签通信。

NFC6NFCIP.PNG

MIFARE

MIFARE 指由NXP半导体开发的NFC标签类型。MIFARE标签被广泛用于运输工具应用的内存卡。 ISO 14443定义了从无线层到命令协议的协议栈。

NFC7MIFARE.PNG

FeliCa

FeliCa是Sony公司开发的的专利NFC标签技术,被广泛用于专买支付和亚洲的运输工具应用。FeliCa标签也被集成在移动FeliCa系统的手机模型中。Felica标签属于日本的工业标准。标签基于被动模式的ISO 18902,带有额外的认证和加密功能。

NFC8FeliCa.PNG

NFC论坛标准

NDEF NFC数据交换格式

为实现标签和NFC设备,及NFC设备之间的交互通信,NFC论坛定义了称为NFC数据交换格式(NDEF)的通用数据格式。

NDEF是轻量级的紧凑的二进制格式,可带有URL,vCard和NFC定义的各种数据类型。

NDEF使得NFC的各种功能能容易的中使用各种支持的标签类型传输数据,因为NDEF封装了标签的种类细节信息,使得应用不用关心与何种标签在通信。

NDEF交换的信息由一系列记录组成。每条记录包含一个有效载荷。自爱和内容可以似乎URL,MIME媒质,或NFC定义的数据类型。使用NFC定义的数据类型,载荷内容必须被定义在一个NFC记录类型定义(RTD)文件中。

记录中数据的类型和大小由记录载荷的头部注明。

头部包含,类型域用来指定载荷的类型。载荷的长度数的单位是字节(octet)。可选的指定载荷是否带有一个NDEF记录。

类型域的值由类型名字格式指定,请在NFC论坛网站http://www.nfc-forum.org/specs/spec_list/ 的NDEF技术规范的3.2.6章查看支持的类型及相应的TNF值。

NFC9NDEF.PNG

RTD 记录类型定义

NFC论坛定义了几种优化的记录类型,用在NDEF记录中。每个NFC论坛记录类型定义在记录类型定义(RTD)文档中
NFC定义了一下RTD:

  • NFC文本RTD
  • NFC URI RTD
  • NFC 智能海报 RTD
  • NFC 通用控制 RTD
  • NFC 签名 RTD

最简单的文本记录类型,可携带Unicode字符串。文本记录可包含在NDEF信息中作为另一条记录的描述文本。 URI记录类型可用于存储网站地址,邮件,和电话号码,存储成经过优化的二进制形式。

智能海报RTD第一了如何将,URL,短信或电话号码编入NFC论坛标签,及如何在设备间传递这些信息。

LLCP 逻辑链路控制协议

为加强点对点模式的操作,NFC论坛定义了一个链路级的协议称为 逻辑链路控制协议(LLCP)。 在NFC点对点协议栈中,LLCP提供对NFCIP-1/ISO18092的额外支持。

LLCP提供两种链路层连接,都支持收发数据,使用下面的数据交换方法:

  • 定向连接传输, 这里数据交换是可知的
  • 无连接传输,这里数据交换不可知

在Nokia手机中所使用NFC

Qt API

Qt NFC API包含在跨平台的Qt Mobility工程中。做为connectivity API的一部分,集成在Qt SDK中。

注意:截止本文发布时间,NFC API可能还处在技术预览阶段。

更多关于Qt Mobility API的NFC信息,请参阅 http://doc.qt.nokia.com/qtmobility-1.2.0-tp1/connectivity-api.html. Qt Mobility 信息请参阅 Qt Mobility 开发

用例

Qt NFC API支持一下用例:

  • 与NFC论坛标签和NFC论坛设备交互
  • 目标发现和丢失
  • 注册NDEF消息 handler
  • 向NFC论坛标签读写NDEF消息
  • 发送指定标签命令
  • 用于点对点通信的客户端和服务器的LLCP socket连接

API 描述
QLlcpServer NFC LLCP 基于socket的服务器
QLlcpSocket NFC LLCP socket
QNdefFilter 过滤符合条件的 NDEF 消息的过滤器
QNdefMessage NFC NDEF 消息
QNdefNfcTextRecord NFC 文本 RTD
QNdefNfcUriRecord NFC URI RTD
QNdefRecord NFC NDEF 记录
QNearFieldManager 通过这个类访问NFC事件的通知
QNearFieldTagType1 与NFC Tag Type 1 标签通信的接口
QNearFieldTagType2 与NFC Tag Type 2 标签通信的接口
QNearFieldTagType3 与NFC Tag Type 3 标签通信的接口
QNearFieldTagType4 与NFC Tag Type 4 标签通信的接口
QNearFieldTarget 与目标设备通信的接口

例子

  • NFC注释URL: 从NFC标签显示包含在NDEF消息中的URL,包含标题和图片。
  • NDEF编辑器: 创建Connectivity API支持的NDEF记录保存到支持的NFC论坛标签中。

Symbian API

Symbian^3 提供下列NFC API:

API Description
NFC Discovery API 提供订阅和发现标签和NDEF消息的方法
NFC Tag Extension API 提供实现和访问(读/写)各种NFC目标的方法
NDEF API 提供处理NDEF消息和访问NDEF消息的方法
NFC Peer-to-Peer API Provides LLCP API for peer-to-peer communication between NFC devices
NFC Content Handler API 提供订阅和接收NDEF消息的ECOM插件接口

用例

Symbian API 支持一下用例:

  • 创建内容处理器插件
  • 建立蓝牙连接
  • 分享文件或数据
  • 读取NDEF信息
  • 发现NFC标签
  • 与NFC论坛类型4标签交换数据
  • 读取NFC论坛类型1,2,3标签
  • 向NFC论坛类型1,2,3标签写数据
  • 使用(无连接)LLCP 栈传输和接收“Hello World!”ASCII文本
  • 使用(定向连接)LLCP 栈传输和接收“Hello World!”ASCII文本

注意:NFC的Symbian实现不支持模拟卡模式的操作。

例子

  • 使用NFC栈和AIW框架分享: 演示了标签发现,NDEF发现API(Tag Discovery API,NDEF Discovery API),和各种标签上的读写操作
  • 标签发现和NDEF发现: 演示了如何通过NFC通道建立两台设备的配对,并使用次级通讯渠道(如蓝牙)分享文件。通过使用AIW框架,演示了如何分享vCard和vCal。

在Nokia开发者文档库查看Symbian^3 开发者库中的NFC Symbian API,并下载例子: http://library.developer.nokia.com/topic/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-7A72B008-901E-454D-AD93-F99555CA904A.html#GUID-7A72B008-901E-454D-AD93-F99555CA904A.

Java API

JSR 257 Contactless Communication API 1.0 在Symbian 设备上支持NFC功能。 Contactless Communication API使中间件(MIDlet)能使用移动设备上的NFC功能。中间件能读写标签(集成电路)上的小量数据。

用例

Contactless Communication API支持下列用例:

  • 发现非接触目标
  • 与非接触目标间交换数据

注意:NFC的Java实现不支持模拟卡模式或点对点模式的操作。

 

例子

  • UIDReader: 显示如何创建从非接触目标中读取数据的中间件
  • URLWriter: 显示如何创建件向非接触目标写入数据的中间件

参看Nokia开发者文档库中Java开发者库的NFC Java API用例并下载例子: http://library.developer.nokia.com/index.jsp?topic=/Java_Developers_Library/GUID-9248DD7F-23BE-40A6-A8DC-823783443F10.html.

支持NFC的Nokia手机

在下面链接查看支持NFC的Nokia手机信息:

http://www.developer.nokia.com/Devices/Device_specifications/?filter1=all&filter2=nfc.

支持的NFC标准和标签种类

Symbian和MeeGo 1.2 Harmattan平台都支持下列NFC标准和标签:

  • NFC A technology
  • NFC B technology
  • NFC F technology (JIS 6319-A)
  • ISO DEP protocol (ISO 14443)
  • NFC DEP protocol (NFCIP1 - ISO 18092)

支持下列NFC论坛标签种类

  • NFC 论坛标签种类 1
  • NFC 论坛标签种类 2
  • NFC 论坛标签种类 3
  • NFC 论坛标签种类 4
   注意: NFC的Java实现不支持NFC 论坛标签种类 4

其他支持的专利标签种类:

  • MIFARE Classic

Nokia手机中的NFC数据处理

Symbian实现中应用程序不能在后台处理保留RTD如 智能海报,URI, 蓝牙耳机,和其他通用MIME类型。

当发现一个包含保留RTD的标签时(参看下面的章节)应用程序的UI前台会收到一个callback,类似的,分享(或快捷设置)智能当应用程序在前台是触发。

尽管如此,用户可以定义自己的数据类型,这样应用程序在前台后台都可以处理用户自定义数据类型。

NDEF记录处理

Symbian实现支持多NDEF记录处理,首先读取第一条记录,检查是否有处理器(NFC DIscovery API 或者一个NFC Content Handler API 客户端)更具记录类型来处理数据。如果有,则停止处理,将整个NDEF消息交给特定的处理器。。 如果第一条记录没找到处理器,则移向第二条,重复查找过程。就是说,如果找到一个记录的任何处理器,则整个NDE消息都交给这个处理器处理。

注意: 支持多NDEF记录但不支持多NDEF消息。

支持的保留RTD

NFC的Symbian实现提供对一下RTD处理的支持:

RTD Identifier
Bluetooth 2.0 urn:nfc:ext:nokia.com:bt
Bluetooth 2.1 application/vnd.bluetooth.ep.oob
Handover Request urn:nfc:wkt:Hr
Handover Select urn:nfc:wkt:Hs
Smart Poster urn:nfc:wkt:Sp
URI record urn:nfc:wkt:U

要处理保留RTD,应用程序必须在前台,不能从后台进程读取保留NDEF,参见 “ Nokia手机中的NFC数据处理 ”章节。

支持的MIME类型

Symbian实现可以从NFC标签中读取一下文件类型:

类型 子类型
image 支持所有子类型
audio 支持所有子类型
text 支持所有子类型
video 支持所有子类型
application vnd.Nokia.ringing-tone
application vnd.symbian.install
application java-archive
application x-java-archive
application vnd.wap

处理智能海报RTD

posted @ 2017-11-29 17:17  焦少  阅读(3617)  评论(0编辑  收藏  举报