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. C# 函数覆盖总结学习

    覆盖类成员:通过new关键字修饰虚函数表示覆盖该虚函数.一个虚函数被覆盖后,任何父类变量都不能访问该虚函数的具体实现.public virtual void IntroduceMyself(){... ...

  2. Delphi调用Dll的的2种写法

         unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, F ...

  3. Android 实现书籍翻页效果----完结篇

    By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 之前由于种种琐事,暂停了这个翻页效果的实现,终于在这周末完成了大部分功能,但是这里只是给出了一个基本的雏形,没有添 ...

  4. springmvc03 非注解和注解处理器映射器和适配器

    1其它非注解处理器映射器和适配器 .1BeanNameUrlHandlerMapping(映射器) 根据请求url(XXXX.action)匹配spring容器bean的 name 找到对应的bean ...

  5. MHA手动切换 原创1(主故障)

    MHA提供了3种方式用于实现故障转移,分别自动故障转移,需要启用MHA监控: 在无监控的情况下的手动故障转移以及基于在线手动切换. 三种方式可以应对MySQL主从故障的任意场景.本文主要描述在无监控的 ...

  6. VRP相关知识整理

    一.扩展问题分类: ★ the capacitated vehicle routing problem (CVRP) , 即classical VRP ★ the vehicle routing pr ...

  7. PAT 1018

    1018. Public Bike Management (30) There is a public bike service in Hangzhou City which provides gre ...

  8. 解决Download interrupted: Connection to https://dl-ssl.google.com refused的问题

    运行->drivers->etc->hosts 加入一行 74.125.237.1 dl-ssl.google.com ok! =================上述方法已经失效, ...

  9. mysql 优化工具

    explain  profiling 建议提供以下信息 show table status like 'audit';show create table audit;show index from a ...

  10. 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

    端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相 ...