NFC规范学习之一 ---整体结构
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规范学习之一 ---整体结构的更多相关文章
- NFC协议学习分享
很多同学在学习NFC协议的时候,觉得NFC的规范从底层到上层的应有尽有,有点无处下手的感觉.这里就和大家分享下我曾经学习NFC规范的经验.如果有不对的地方,也请各位同学批评指正.NFC Forum中有 ...
- 公司C++规范学习
目录 公司C++规范学习 语法部分 风格/约定 公司C++规范学习 语法部分 class和struct关键字的选择:class表示被封装的用户自定义类型,不公开定义非静态数据成员,struct表示数据 ...
- 阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)
浅析 阿里巴巴 Java 开发规约 (未完成) 更加优秀的页面展现请到浅析 阿里巴巴 Java 开发规约 contents 为什么要学 编程规约 P3C IDEA 插件 why-use 我们知道,一般 ...
- W3C规范学习
w3c:万维网联盟(World Wide Web Consortium,W3C),又称W3C理事会.W3C组织是对网络标准制定的一个非赢利组织,W3C是万维网联盟的缩写,像HTML.XHTML.CSS ...
- AMD规范学习笔记
背景 NodeJS的一套比较简洁 Moudles 规范, 使得在服务器端的模块化变得更加简单.很长一段时间,很多公司或者项目都有自己的一套模块化机制, 却未能形成一套统一的标准, NodeJS的Mou ...
- SpringCloud入门之YAML格式文件规范学习
1. 认识 YAML YAML(发音 /ˈjæməl/)是一个类似 XML.JSON 的数据序列化语言.其强调以数据为中心,旨在方便人类使用:并且适用于日常常见任务的现代编程语言.因而 YAML 本身 ...
- Web Components 规范学习
最新的规范在这里:http://w3c.github.io/webcomponents/explainer/ 依据规范,有以下四个组成部分: Templates Custom Elements Sha ...
- PSR规范学习笔记
PSR已经经历了5次变革,如今PSR4就是最新的标准,但是还是有必要了解下5个版本的内容的,于是去php-fig网站看了下英文原版: 大概看了遍,发现这规范很多的必须很多时候只是建议,但是PHP解析器 ...
- JSR133规范学习
最近在看多线程相关的东西,通过阅读JSR133的faq来加深自己对多线程的理解,里面大部分的内容比较简单(越到后面越难),但是有的部分比较难以理解还没有完全弄懂,所以这里只记录了一下比较简单的阅读笔记 ...
随机推荐
- 线程池QueueUserWorkItem
// Test1.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- delphi 11 编辑模式 浏览模式
编辑模式 浏览模式 设置焦点 //在使用前需要Webbrowser已经浏览过一个网页 否则错误 uses MSHTML; ///获取Webbrowser编辑模式里面的内容procedure EditM ...
- 【转】DLX 精确覆盖 重复覆盖
问题描述: 给定一个n*m的矩阵,有些位置为1,有些位置为0.如果G[i][j]==1则说明i行可以覆盖j列. Problem: 1)选定最少的行,使得每列有且仅有一个1. 2)选定最少的行,使得每列 ...
- 为CentOS 加入�本地源
首先把光盘中的Packages文件夹复制到本地. [arm@Jarvis Packages]$ pwd /home/Packages 安装用于创建安装包依赖关系的软件createrepo. [arm@ ...
- android 多语言版本开发
最近项目中用用到语言切换功能,第一想到的就是资源文件,没错. 在资源文件中新建一个文件夹values-en,en表示英语,有一些还细化到地区,如values-en-rUS 即美国地区的英语,r是必需的 ...
- Python的基础--对象 转
对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识 ...
- Python学习 之 走进python
1.Python:是一种解释型的.面向对象的.带有动态语义的高级程序设计语言. 2.Python发展阶段 —CNRI时期 —BeOpen时期 —DC时期 —Python 3.0 Python里程碑:2 ...
- [转] 详解http和https的作用与区别
PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密.防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名.另外是加密,加密需要一个密钥交换算法, ...
- 小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法
SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询 ...
- 使用ReactiveCocoa开发RSS阅读器
目前已经完成的功能有对RSS的解析和Atom解析,RSS内容本地数据库存储和读取,抓取中状态进度展示,标记阅读状态,标记全部已读等.这些功能里我对一些异步操作产生的数据采用了ReactiveCocoa ...