最核心4大NFC技术规范详解
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技术规范详解的更多相关文章
- Java基础学习总结(33)——Java8 十大新特性详解
Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...
- 学习《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF代码
<深度学习与计算机视觉 算法原理.框架应用>全书共13章,分为2篇,第1篇基础知识,第2篇实例精讲.用通俗易懂的文字表达公式背后的原理,实例部分提供了一些工具,很实用. <大数据架构 ...
- Echars 6大公共组件详解
Echars 六大组件详解 : title tooltip toolbox legend dataZoom visualMap 一.title标题详解 myTitleStyle = { color ...
- Spring Boot 最核心的 3 个注解详解
最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过.然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望 ...
- 【转】Android开发学习笔记:5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
- Android开发5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
- 【Android开发学习笔记之一】5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
- js十大排序算法详解
十大经典算法导图 图片名词解释:n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存 1.冒泡排序 1.1 原始人冒泡排序 functi ...
- Android开发之5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
随机推荐
- django第二个项目--使用模板
第一步: 创建新项目secondproject cd /tmp/django-admin startproject secondeproject 第二步: 创建一个用于放置模板文件夹 cd /tmp/ ...
- angularJS常用命令
首先使用命令行进入你要编辑的web项目目录下: (一)编译浏览项目 1:grunt build 对web项目编译: 2:grunt server 装载(在浏览器上查看页面): 3:ctrl ...
- Eclipse 乱码解决方案(UTF8 -- GBK)
UTF8 --> GBK; GBK --> UTF8 eclipse的中文乱码问题,一般不外乎是由操作系统平台编码的不一致导致,如Linux中默认的中文字体编码问UTF8, 而Wind ...
- Linux服务器配置WEB应用日志文件到指定目录
在Linux服务器上配置WEB应用程序日志到指定文件 服务器环境是 RedHat Linux, 其上运行的是 Apache + Tomcat,容器中运行的是我们公司的壹个小型电子商务网站,原来项目 ...
- UESTC_方老师分身 I CDOJ 914
方老师分身 I Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- MassMutual Interview Questions
Company MassMutual Date 30/09/15 Location Boston, MA Position Application Developer It's not a codin ...
- [Ruby学习总结]Ruby中的类
1.类名的定义以大写字母开头,单词首字母大写,不用"_"分隔 2.实例化对象的时候调用new方法,实际上调用的是类里边的initialize方法,是ruby类的初始化方法,功能等同 ...
- [Python笔记][第三章Python选择与循环]
1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...
- MySql5.1在Win7下的安装与重装问题的解决
痛苦啊痛苦,我也不知道这两天怎么了.上班没有精神,还打瞌睡,下班后又感觉很累.精力集中不起来. 这篇花了我好久的时间,我效率这么差,~\(≧▽≦)/~. 软件包下载 首先单击mysql-5.1.53- ...
- 批处理Bat实现整合定时关机或取消定时关机
@echo off :start choice /c:12 /m "输入1为设置定时关机,2为取消定时关机: " if errorlevel 2 goto cancel if er ...