1、NFC 采用两个感应线圈进行数据交互,其中至少必须有一个设备产生13.56MHZ的磁场,该场被调制以方便数据传输。通讯中,一个设备处于initiator模式(就是发起通讯)另外一个设备则工作在target模式(等待initiator命令),进行通讯至少应该有两个设备。一般情况下,nfc设备默认都处于target模式,设备周期性的切换为initiator模式,切换为initiator模式后,处于发起者的设备搜索场中是否有nfc target(这就是轮询的概念),然后再次切回到target模式。如果initiator发现target,则发出一串初始命令,用于建立通讯,然后再进行数据传输。

  2、NFC 分为两种工作模式 主动通讯和被动通讯

2.1.被动通讯模式(Passive Mode

    在被动通讯模式,处于initiator模式的设备发起通讯,并产生13.56MHZ的场,target采用该场为自己充电,但不能产生自己的场,发起者通过直接场调制进行传输数据,target通过负载调制进行数据传输,双方通过ISO14443或者Felica进行编码。这种模式使得NFC设备可以和现有的非接触智能卡进行通讯。

负载调制描述了负载变化对initiator场幅度的影响,这些变化可被initiator察觉并翻译为有用信息,实现这种功能需依赖于线圈的大小,通讯距离可以达到10cm 数据通讯距离有106,212,424bps。

2.2.主动模式(Active Mode

在主动模式时,nfc设备的双方都产生RF场,每方通过采用幅移键控方法调制自己的场进行数据传输。与被动模式相比,操作距离可以达到20cm 且有更高的传输速率。为了避免冲突,发送数据的设备发起RF场,接收设备关掉自己的场当listening时,如果必要这些作用可根据需要改变。

  3、NFC设备通常提供如下通讯模式

3.1.读写器模式(Reader/Writer Mode),在读写器模式,nfc设备作为普通的读写器对非接触智能卡进行操作,如果两个或者更多的卡处于读写器的场内,读写器需采用anti-collision算法对这些卡进行选择,以选中一张卡进行通讯。Nfc读写器会判断被选中的卡是ISO14443-A/B还是Felica应用。防冲突的算法依赖于被侦测到的卡的类型。这种方式使NFC设备扮演了一个主动设备的角色。从应用的观点看,传统的读写器和nfc读写器没有什么不同,都能访问非接触智能卡。工作在这种模式下,nfc设备可以读并改变nfc被动设备(不用充电)的数据。Nfc读写器可采用正确的步骤读取标签内的信息,而不用用户干预。例如,如果发现标签内有一个URL信息,则读写设备打开一个web browser。

3.2.卡模拟模式(Card Emulation Mode),标签模式模式与读写器模式相反,nfc设备模拟一个非接触标签,这时,nfc设置仅仅工作于被动模式,由于处于卡模拟模式,,nfc设备可以作为真正的智能卡使用。因此当该“卡”处于读写器的场内时,将能收到该读写器场的影响,而且nfc设备可以包含一个安全模块,用于存储保密信息。而外部的读写器不能区分读卡器和模拟卡。这种模式对于非接触支付和票据应用是有用的,

3.3.P2P模式(Peer-to-Peer Mode),该模式下,nfc设备一旦建立了连接,就开始进行数据透传,数据的长度是任意可选的,最大传输单元是256字节,该协议主要是为了是用户尽可能快的传输他自己的数据。,在P2P会话中,不管是initiator还是target都能工作在主动模式,或者initiator工作在主动模式,而target工作在被动模式,这中方式可以减少target的能量损耗,而且如果initiator是一个不常移动的终端(例如拉卡拉)而target是一款手机的话这种方式将能极大减少target(手机)的能量消耗。

P2P模式遵从ISO18092规范)该规范允许NFC使能设备监理双向链接用以交互接触,蓝牙配对信息或者其他类型的数据。,为了建立链接,P2P的initiator搜索P2P的target以建立连接,链接建立以后,the Near Field Communcation Data Exchange Format (NDEF)将要用于数据传输。

  4、手机中的NFC整体结构如下:

NFC规范学习之一 ---整体结构的更多相关文章

  1. NFC协议学习分享

    很多同学在学习NFC协议的时候,觉得NFC的规范从底层到上层的应有尽有,有点无处下手的感觉.这里就和大家分享下我曾经学习NFC规范的经验.如果有不对的地方,也请各位同学批评指正.NFC Forum中有 ...

  2. 公司C++规范学习

    目录 公司C++规范学习 语法部分 风格/约定 公司C++规范学习 语法部分 class和struct关键字的选择:class表示被封装的用户自定义类型,不公开定义非静态数据成员,struct表示数据 ...

  3. 阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)

    浅析 阿里巴巴 Java 开发规约 (未完成) 更加优秀的页面展现请到浅析 阿里巴巴 Java 开发规约 contents 为什么要学 编程规约 P3C IDEA 插件 why-use 我们知道,一般 ...

  4. W3C规范学习

    w3c:万维网联盟(World Wide Web Consortium,W3C),又称W3C理事会.W3C组织是对网络标准制定的一个非赢利组织,W3C是万维网联盟的缩写,像HTML.XHTML.CSS ...

  5. AMD规范学习笔记

    背景 NodeJS的一套比较简洁 Moudles 规范, 使得在服务器端的模块化变得更加简单.很长一段时间,很多公司或者项目都有自己的一套模块化机制, 却未能形成一套统一的标准, NodeJS的Mou ...

  6. SpringCloud入门之YAML格式文件规范学习

    1. 认识 YAML YAML(发音 /ˈjæməl/)是一个类似 XML.JSON 的数据序列化语言.其强调以数据为中心,旨在方便人类使用:并且适用于日常常见任务的现代编程语言.因而 YAML 本身 ...

  7. Web Components 规范学习

    最新的规范在这里:http://w3c.github.io/webcomponents/explainer/ 依据规范,有以下四个组成部分: Templates Custom Elements Sha ...

  8. PSR规范学习笔记

    PSR已经经历了5次变革,如今PSR4就是最新的标准,但是还是有必要了解下5个版本的内容的,于是去php-fig网站看了下英文原版: 大概看了遍,发现这规范很多的必须很多时候只是建议,但是PHP解析器 ...

  9. JSR133规范学习

    最近在看多线程相关的东西,通过阅读JSR133的faq来加深自己对多线程的理解,里面大部分的内容比较简单(越到后面越难),但是有的部分比较难以理解还没有完全弄懂,所以这里只记录了一下比较简单的阅读笔记 ...

随机推荐

  1. 异步消息总线hornetq学习-03客户端连接hornet进行jms消息的收发-非jndi方式连接

    在上节中介绍了通过jndi方式连接到hornetq服务器上,有时候由于某些原因,我们不希望通过jndi方式连接,hornetq也支持这种方式进行 以第2章节的例子为模板,我们编写了另一个获取Conne ...

  2. 第一周:读取XML深度数据并将其重建为三维点云

    本周主要任务:学习PCL点云库,掌握利用PCL对点云处理的方法 任务时间:2014年9月1日-2014年9月7日 任务完成情况:完成了读取单幅xml深度数据,并重建三维点云并显示 任务涉及基本方法: ...

  3. Winform 水印TextBox

    方法一: public partial class WaterTextBox : TextBox { private readonly Label lblwaterText = new Label() ...

  4. Ejection chain 与交错路

    相关文献: Rego, C. (1998). "A Subpath Ejection Method for the Vehicle Routing Problem." Manage ...

  5. 如何扩大VMware虚拟机的硬盘磁盘空间大小

    首先,在虚拟机配置界面通过界面配置,直接扩大虚拟机硬盘大小: 而后,登陆虚拟机,在windows磁盘管理,更多操作中直接“重新扫描磁盘”,操作系统自动找到了多出来的磁盘空间: 最后,在老磁盘分区上通过 ...

  6. 增加字段关联插件 For PHPCMS V9 免费版

    增加字段关联插件 For PHPCMS V9 免费版 第一:增加字段选择关联 第二:关联后的效果 烈火下载友情提示:增加方法详见附件内的说明文档. 附件下载

  7. Java中 return 和finally

    1. 最简单的情形 public void main(){ String s = test(); System.out.println("s=[" + s + "]&qu ...

  8. ArcGis :正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。

    解决此异常的方法有以下两种: 方法一 把vs2005菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉  如果异常 ...

  9. 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式 (转)

    操作系统:Centos 7.1 mysql数据库版本:mysql5.7.9 mysql官方网站:http://www.mysql.com ------------------------------- ...

  10. Linux 源码安装apache 与常见错误解决

    文档原位置 一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级. 升级方式有两种,一种是通过源代码编译安装,一种是直接升 ...