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. Thread+Handler 线程 消息循环(转载)

    近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子. andriod提供了 Handler 和 Looper 来满足线程间的通信.例如一个子线程从网络上下载了一副图 ...

  2. socket通信简单介绍

    “一切皆Socket!” 话虽些许夸张,可是事实也是,如今的网络编程差点儿都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间怎样通信,如我们每天打开浏 ...

  3. android152 笔记 4

    42. Android中Task任务栈的分配. 首先我们来看下Task的定义,Google是这样定义Task的:a task is what the user experiences as an &q ...

  4. Python学习 之 数据类型(邹琪鲜 milo)

    1.Python中的数据类型:数字.字符串.列表.元组.字典 2.数字类型包括整型.长整型.浮点型.复数型 type(number):获取number的数据类型 整型(int):范围:-2,147,4 ...

  5. java_DAO类基本设计

    package cn.itcast.oa.base; import java.util.List; public interface BaseDao<T> { void save(T en ...

  6. 使用mii-tool设置网卡速率

    转载:http://washion2008.blog.163.com/blog/static/144227201001711537158/ 在ubuntu中,mii-tool 是属于net-tools ...

  7. vi/vim使用进阶: 剑不离手 – quickfix

    转载:http://easwy.com/blog/archives/advanced-vim-skills-quickfix-mode/ 本节所用命令的帮助入口: :help quickfix :he ...

  8. iOS10全新推送功能的实现

    从iOS8.0开始推送功能的实现在不断改变,功能也在不断增加,iOS10又出来了一个推送插件的开发(见最后图),废话不多说直接上代码: 在开始之前需要打开一个推送开关,不然无法获取deviceToke ...

  9. 几个常用myeclipse快捷键

    Ctrl + D:直接删除光标所在行 Alt + ↑:向上移动光标所在行 Alt + ↓:向下移动光标所在行 Ctrl + Alt + ↑:直接向上复制光标所在行内容 Ctrl + Alt + ↓:直 ...

  10. Android防微信首页左右滑动切换

    大家看到微信首页切换效果有没有觉得很炫,滑动切换,点击底部bar瞬间切换,滑动切换渐变效果,线上效果图: 之前也在博客上看到别人的实现,再次基础上,我做了些优化.首先说下实现原理,大神略过,o(╯□╰ ...