简介

本文介绍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的通信时,可能是一台设备做为读/写者,另一个做为标签。

标签

标签是一个简单的薄薄的设备,包含一个天线和小容量的存储空间。标签是一个被动设备,由电磁场提供电力。标签的内存有只读,可擦写,只能写一次 这些不同的类型。 NFC进场通信总结概述-LMLPHP

读取器

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

NFC进场通信总结概述-LMLPHP

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实现还不支持这种模式。

NFC进场通信总结概述-LMLPHP

NFC用例

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

用于启动服务

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

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

NFC进场通信总结概述-LMLPHP

用于分享

带有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)。

NFC进场通信总结概述-LMLPHP

NFCIP-1

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

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

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

NFC进场通信总结概述-LMLPHP

MIFARE

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

NFC进场通信总结概述-LMLPHP

FeliCa

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

NFC进场通信总结概述-LMLPHP

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

NFC进场通信总结概述-LMLPHP

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描述
QLlcpServerNFC LLCP 基于socket的服务器
QLlcpSocketNFC LLCP socket
QNdefFilter过滤符合条件的 NDEF 消息的过滤器
QNdefMessageNFC NDEF 消息
QNdefNfcTextRecordNFC 文本 RTD
QNdefNfcUriRecordNFC URI RTD
QNdefRecordNFC 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:

APIDescription
NFC Discovery API提供订阅和发现标签和NDEF消息的方法
NFC Tag Extension API提供实现和访问(读/写)各种NFC目标的方法
NDEF API提供处理NDEF消息和访问NDEF消息的方法
NFC Peer-to-Peer APIProvides 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处理的支持:

RTDIdentifier
Bluetooth 2.0urn:nfc:ext:nokia.com:bt
Bluetooth 2.1application/vnd.bluetooth.ep.oob
Handover Requesturn:nfc:wkt:Hr
Handover Selecturn:nfc:wkt:Hs
Smart Posterurn:nfc:wkt:Sp
URI recordurn:nfc:wkt:U

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

支持的MIME类型

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

类型子类型
image支持所有子类型
audio支持所有子类型
text支持所有子类型
video支持所有子类型
applicationvnd.Nokia.ringing-tone
applicationvnd.symbian.install
applicationjava-archive
applicationx-java-archive
applicationvnd.wap

处理智能海报RTD

05-11 21:55