1998年,飞利浦、索尼和诺基亚创建了 NFC论坛,宗旨是推动NFC的发展普及和规范化。论坛至今共推出了5大类技术规范:
协议技术规范(Protocol Technical Specification);
数据交换格式技术规范(Data Exchange Format Technical Specification);
NFC标签类型技术规范(NFC Forum Tag Type Technical Specifications) ;
记录类型定义技术规范(Record Type Definitionf Technical Specifications);
参考应用技术规范(Reference Application Technical Specifications)

本文将介绍技术开发最核心的前4点规范。

一、协议技术规范

NFC论坛的协议技术规范又包含了3个技术规范,分别为:

  1、NFC的逻辑链路控制协议技术规范(NFC Logical Link Control Protocol(LLCP) Technical Specification):定义了 OSI模型第2层的协议,以支持两个具有NFC功能的设备之间的对等通信。LLCP是一个紧凑的协议,基于业界标准IEEE802.2,旨在支持有限的数据传输要求,如小文件传输或网络协议,这反过来又会为应用程序提供可靠的服务环境。NFC的LLCP与ISO IIEC18092标准相比,同样为对等应用提供了一个坚实的基础,但前者加强了后者所提供的基本功能,且不会影响原有的NFC应用或芯片组的互操作性。

  2、NFC数字协议技术规范:本规范强调了用于NFC设备通信所使用的数字协议,提供了在ISO I IEC 18092和ISO I IEC 14443标准之上的一种实现规范。该规范定义了常见的特征集,这个特征集可以不做进一歩修改就可用于诸如金融服务和公共交通领域的重大NFC技术应用。它还涵盖了 NFC设备作为发起者、目标、读写器和卡仿真器这四种角色所使用的数字接口以及半双工传输的协议。NFC设备间可以使用该规范中给出的位级编码、比特率、帧格式、协议和命令集等来交换数据并绑定到LLCP协议。

  3、NFC活动技术规范:该规范解释了如何使用NFC数字协议规范与另–个NFC设备或NFC Forum标签来建立通信协议。参考应用技术规范包括了 NFC论坛连接切换技术标准(NFC Forum Connection Handover Technical Specification),其中定义了两个NFC设备使用其他无线通信技术建立连接所使用的结构和交互序列。该规范一方面使开发人员可以选择交换信息的载体,如两个NFC手机之间选择蓝牙或WiFi来交换数据;另一方面与NFC兼容的通信设备可以定义在连接建立阶段需要在NFC数据交换格式报文中承载的所需的信息。

二、NFC数据交换格式技术规范(NDEF )

  NDEF,定义了NFC设备之间以及设备与标签之间传输数据的一种消息封装格式。该协议认为设备之间传输的信息可以封装成一个NDEF消息,而一个消息可以由多个NDEF记录构成,如图所示。

  单个NDEF记录包含了多部头域和有效载荷域。首部包含了五个标志位(MB,ME,CF,SR,IL)、标签类型分类TNF、长度可变区域的长度信息、类型识别位、一个可选的记录标识符(ID)。如表所示。上图中R1至Rn表示有n个记录,其中R1的MB位值为1是表示一个消息开始,Rn记录的ME位为1表示消息结束,中间的记录这两位值为0。

MB和ME位:用于标志一个消息相对应的开始和结束的记录。

CF值为1时,说明存在下一个记录。

SR定义了负载域(Payload)的长度。0值表示Payload Length域的大小是一个4字节的无符号整数。1值表示一个字节的无符号整数。该标志位用于减少短记录的内存浪费。

IL为1 ,则需要给出可选ID域以及它的相关长度域的值。

TNF(Type Name Format)的定义如下表所示。

三、NFC标签类型技术规范

  NFC论坛目前提出的标签类型规范可兼容下面4类NFC标签。

  第一类型标签是基于14443A协议,标签内存最小为96个字节,可动态扩充。如果标签只涉及到简单的读写存储,例如实现简单的智能海报功能,该类标签是完全可用的。此类标签主要用于实现读取信息,具有操作简单,成本小等优点。

  第二类标签同样基于14443A协议,但仅支持phlips公司提供MIFARE UltraLight类型卡。

  第三类型标签是由SONY独家提供的Fecila技术类型。

  第四类型标签兼容14443A/B协议,该类标签属于智能标签,接收应用协议数据单元(APDU,Application Protocol Data Unit)指令,拥有较大的存储空间,能完成一些认证或安全算法,可用于实现智能交互和双界面标签的相关操作。此类标签应用范围广泛,可以适应未来不断的研究开发。

四、记录类型定义技术规范

  NFC论坛给出了多种类型不同的5种RTD,分别是:”U” URI记录、”Sp” Smart Poster记录、”Sig” Signature记录、”T”简单文本记录和”Gc”控制类型记录。

1、简单文本记录(“T”, NFC Text RTD Technical Specification):提供了一种有效的方法通过使用RTD机制和NDEF格式以多种语言存储text字符串。它包含了描述性文本,以及语言和编码信息。一般和别的记录一起使用,用于描述记录的内容或功能。

2、URI记录(“U”, NFC URI RTD Technical Specification):提供了一种有效的方法通过使用RTD机制和NDEF格式以多种语言存储统一资源描述符URI (Uniform Resource Identifier )。该记录涵盖了 URL、e-mail地址、电话号码以及SMS信息

3、Smart Poster记录(“Sp ” , NFC Smart Poster RTD Technical Specification):定义了一种用来在NFC标签上存放、或是在设备之间传输URL、SMS或电话号码的类型。Smart Poster RTD构建在RTD机制和NDEF格式的基础之上,并使用了 URI RTD和Text RTD作为构建模块。

4、控制类型记(“Gc”, NFC Generic Control RTD Technical Specification):提供了一个NFC设备、标签或卡(源设备)通过NFC通信以一种简单的方式向另一个NFC设备(目标设备)来请求一个特定动作(例如启动一个应用或设置一种模式)。

5、Signature记录(“Sig”, NFC Signature RTD Technical Specification):规定了对单个或多个NDEF记录进行签名时所使用的格式。定义了需要的和可选的签名RTD域,并提供了一个合适的签名算法和证书类型以用来创建一个签名。并没有定义或强制使用某个特定的PKI或证书系统,也没有定义Signature RTD使用的新算法。证书的验证和撤销过程超出了该规范的范围。

最核心4大NFC技术规范详解的更多相关文章

  1. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  2. 学习《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF代码

    <深度学习与计算机视觉 算法原理.框架应用>全书共13章,分为2篇,第1篇基础知识,第2篇实例精讲.用通俗易懂的文字表达公式背后的原理,实例部分提供了一些工具,很实用. <大数据架构 ...

  3. Echars 6大公共组件详解

    Echars 六大组件详解 : title  tooltip toolbox legend  dataZoom visualMap 一.title标题详解 myTitleStyle = { color ...

  4. Spring Boot 最核心的 3 个注解详解

    最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过.然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望 ...

  5. 【转】Android开发学习笔记:5大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...

  6. Android开发5大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...

  7. 【Android开发学习笔记之一】5大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...

  8. js十大排序算法详解

    十大经典算法导图  图片名词解释:n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存 1.冒泡排序 1.1  原始人冒泡排序 functi ...

  9. Android开发之5大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...

随机推荐

  1. sql 添加约束

    在表中添加约束,基本常用的有两种类型,一个是创建表时同时添加约束,另一个是创建好表通过修改表添加约束,在这里是创建表时同时添加约束,但是有两种不同的用写法. 在这里列举出一些创建约束的形式,共参考(均 ...

  2. sqlserver系统表操作

    查询表名中包含‘user’的方法Select * From sysobjects Where name like '%user%' 如果知道列名,想查找包含有该列的表名,可加上系统表syscolumn ...

  3. 对发给Application.Handle消息的三次执行(拦截)消息的过程

    unit Main; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms ...

  4. C# Directory类

    Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多个目录. 2.Dele ...

  5. Unity 使用实体类

    故事的由来: 正在开发打飞机的游戏,遇到这样的数据结构,游戏有很多关卡-> 每个关卡有几波怪物->每一波里面有怪物和数量 [] 关卡 { []波{ {怪物,数量},{怪物,数量},{怪物, ...

  6. Unity屏幕射线碰撞

    Layers层: 从Layers设置看来,最多支持32层.  图层的值开始依次 0^2,1^2, 2^2, 3^3 依次增加. 当摄像机Culling Mask属性 Nothing= –1 Eveni ...

  7. Android开发之Intent.Action

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的開始.比較经常使用. Input:nothing Out ...

  8. cocos2d-x-2.2.5项目创建--命令行创建

    Gavin:downloads DavidLik$ cd cocos2d-x-2.2.5/ Gavin:cocos2d-x-2.2.5 DavidLik$ cd tools/ Gavin:tools ...

  9. Eclipse SVN插件的帐号、password改动

    问题描写叙述: Eclipse的SVN插件Subclipse做得非常好,在svn操作方面提供了非常强大丰富的功能.但到眼下为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,并且一旦用户的 ...

  10. unix系统非roo账号安装JDK

    AIX系统用户rusky(非root用户,没有权限修改/etc/profile和/etc/environment文件 )直接解压JDK.zip文件,解压后把JAVA目录拷贝到/home/rusky目录 ...