NFC学习总结二
移动支付这事情热了总归还是会回归理性,就如同之前的10几年间的几次轮回一样。字面上看,移动支付比支付大也不大可能,有相同,有扩展,有交集有不通才是。
NFC这事情也是说了快十年了,真心希望它能回归到其就是一个小小的接入技术上来,开放,大多数开发者能如同呼叫一个通用的接入一样用它。
NFC这事也不应该赖上移动支付,俩位都锁在那锁了10年了,其实维基上的一句描述写的不错:“NFC offers a low speed connection with extremely simple setup, and can be used to bootstrap more capable wireless connection. It could for example , replace the pairing step of establishing Bluetooth connections or the configuration of Wi Fi networks”。看来这哥们真的是接的快,传的慢。不论怎样,如果不仅仅把NFC绑在支付上,或者说80%的NFC场景不是支付的话,可能NFC还真能小小的改变你我的生活。
但是这么一个小玩意,参与的公司多,乱,杂,背景不通,诉求不同,有电信领域的,有金融领域的,有卡商,有手机厂商等等,结果是规范乱,实现乱,认证不断延期,尤其是规范乱这事儿,实在是晕,一会儿14443,一会儿18092,一会儿用NDEF,一会儿又SNEP,还有ISO-DEP ,不待这么玩的。
是需要把各个点捋清除,分享之。
书归正传,先从最基本的一出说起-认知的模型,我觉得还是OSI分层协议描绘的清晰些个,大多数通信场景,往这一套,立马了然。
先看看OSI 在wiki上的描述,这是各层的功能和跑的数据单元
题外话,其实琢磨SWP(single wired protocol)也可以往这上面套,啥I frame, S frame的,没错,上面不是写这frame和Datagram了嘛,没错,就是这,SWP 就在这层。
花开两朵,单表一支,咱们再说回NFC,把OSI7层协议套用过来,NFC的3中方式或者叫使用场景更合适些个:卡模式,读写模式,点对点模式
在OSI上都逐个有所对应,到此忽然发现,原来天天和人白话NFC啊移动支付啥的原来卡模式里面不用NDEF, SNEP 等等,以及展现层上的 RTD, 到此,一脑门子汗,不总结不知道。
另外从NFC往OSI的套图上也看的出来, connection handover在读写模式和P2P模式的应用层都占了位置,这就了然了,为啥NFC Forum在讨论应用和测试规范时候,connection handover比较看重,一者这个还真实和其他技术比如非接触卡的区别,二者应用场景也很诱人!
卡模式方面:
似乎层4,5,6都没有涉及到,应用层也是各个支付方式自己实现自己的。 ISO-DEP基于ISO 14443, NFC-DEP基于18092,这就是NFC乱的地方,一个层上出这么多七七八八的协议,差异不大还各说个的,到底有啥差异,稍候在叙。所以在物理层(射频,或者说耦合更合适些个),数字链路层和网络层实现了NFC技术(比如ISO-DEP)之上,就是各个应用paypass paywave的实现,简单明了,要不怎么说卡模式呢,其实跟卡实现的各层一样,姑且把google wallet也放在这个模式里面,G公司的支付这部分有点胡搞,当然现在改变为在卡短实现虚拟卡的方式似乎又有些起色。
读写模式:
好了来个少复杂的,各层都有,从射频到RTD,从物理层到应用,如果真有终端的话,我倒是觉得这个比支付吸引人一些,商场地图,应用下载,歌迷会等等,可以让想象力再飞一会!实现NFC的手机里面,这个功能应该是第一波实现的,需要引起重视的是在RTD上面实现的(或者说需要实现的)connection handover,不能把read/write模式就想象成POS机,那非自己玩死自己不可,想象一下噻,在星巴克 NFC check in, 然后app connection handover把你的能的支付在后台处理,或者加上优惠券,不比Square和星巴克的合作酷?星巴克不能接着合作可咱可试试 cold stone冰激凌,或者HM服装,总之不去日本人的店就成。其实东支付的市场需要深度挖,觉不仅仅是发个SD卡涮卡的事情,要是就刷卡了还有啥创新,大家就都奔着银行那532分成去了,这部读写模式已然能刷出花样!深度的用户场景看来需要下篇单独写了。
P2P模式:
来个更多交互的,点对点。已然是从层一物理层到层7应用层都引入了,除了NFC技术上使用了 基于ISO 18092的NFC-DEP之外,还有有别与其他的LLCP,SNEP。NDEF部分是读写模式和P2P都用到了,故而也不算独有或者邪门的地方了。
说说邪门的:
LLCP:基于IEEE 802.2的规范的。某种程度上依然算是层2实现的紧凑协议。初衷是可以更好的支持小应用的有限数据传输,所以,应用得小,真得小,或者说行为简单,换个名片,微博互粉,相互识别一串数(比如磁条卡号码啥的),数据得小,大了我不玩了,还是突出NFC的那个描述:“NFC offers a low speed connection with extremely simple setup”。另外LLCP的涉及也是为了支持一些网络协议如OBEX,TCP/IP啥的。说到着,对照OSI7层协议的模型,再看看LLCP的英文: logical link control protocol,逻辑链路控制协议,就全对上号。OSI是个好模型,一个模型走边天下噻!
SNEP:专门为P2P设计的,就是为了P2P 的时候使用NDEF交换信息,名字就能看出来:Simple NDEF exchange protocol,还是建立连接更简单(虽然数据的速度慢),回到刚才NFC的特点描述的那段洋文: “NFC offers a low speed connection with extremely simple setup”。了然!
另外读写模式上NFC技术使用ISO-DEP(基于14443), P2P 使用了基于18092的NFC-DEP,这个两个基础规范虽说差异不大,还是变态般的分列出来,回头细聊。
NFC场强,射频和耦合:
不少地方把NFC的物理部分叫射频,其实这个无线电射频还是两码事,这个还是叫耦合比较好点(couple), 轮询放给出能量和时钟和bit流请求,收听放给出反馈。之所以不用读卡器和卡是因为NFC的世界里象尽量淡化读卡器,卡,而是用NFC device( 啥都能当),至少这是2003年他们开始耍时候的想法。
稍微看看NFC论坛提及的测试方式,抓狂级,涉及14个点上不同的速度和角度的测试,先得找到贴着 DUT得0点位置,由此演化出同一水平面上得4个附加位置,再提升5厘米,上一个平面上2个圆环加圆心9个点共14个,测试相应耦合场,波形,敏感度,载波等等。
由此来看,NFC 还是属于proximity这种贴近式得方式。
关于两个混乱协议
ISO 18092:因该说兼容14443,为NFC设计得协议以解决如何交换数据流的问题。定义了 NFC 设备通讯的两种模式:poller模式和listen模式。并且分别定义了两种模式的选择和射频场防冲突方法、设备防冲突方法,定义了不同波特率通讯速率下的编码方式、调制解调方式等等最最底层的通讯方式和协议。 在 NFC 的世界里没有读卡器,没有卡,只有 NFC 设备。 初始设计是为了提供贴近式,后来增加了对 ISO15693(接近式) 的兼容,说实话,每必要,说拿手机隔着1米半搞啥呢?不过也比一定(仔细想下),比如不知道哪一代Iphone要实现数字家庭遥控的话,加入还考虑家里就是死活不装WiFi的人家儿,用这么距离的vicinity也没准噻!
ISO 14443非接触卡片用的不赘述了,被18092不小心包含了,小样,往哪跑,我做的晚,啥都包括!
NFC学习总结二的更多相关文章
- crawler4j 学习(二)
		
crawler4j 学习(二) 实现控制器类以制定抓取的种子(seed).中间数据存储的文件夹.并发线程的数目: public class Controller { public static voi ...
 - 从零开始学习jQuery (二) 万能的选择器
		
本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...
 - Android Animation学习(二) ApiDemos解析:基本Animators使用
		
Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...
 - AspectJ基础学习之二搭建环境(转载)
		
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...
 - WPF的Binding学习笔记(二)
		
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
 - AJax 学习笔记二(onreadystatechange的作用)
		
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
 - MyBatis学习系列二——增删改查
		
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
 - MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
		
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
 - MyBatis学习 之 二、SQL语句映射文件(1)resultMap
		
目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...
 
随机推荐
- windows简易使用composer 安装国内镜像
			
1.下载composer.phar文件 地址: https://getcomposer.org/download/ 从下面选择一个 2.下载成功,新建项目(找到已有的项目文件夹)文件夹(D:\PHP ...
 - Python对文件目录的操作
			
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录 ...
 - yii学习笔记(7),数据库操作,联表查询
			
在实际开发中,联表查询是很常见的,yii提供联表查询的方式 关系型数据表:一对一关系,一对多关系 实例: 文章表和文章分类表 一个文章对应一个分类 一个分类可以对应多个文章 文章表:article 文 ...
 - java的值传递机制
			
一.练习:编写Java程序,将二维数组中的行列互调显示出来. 代码1为自己编写: package com.xxgpra.CH6; public class Hangliehudiao_pra4 { p ...
 - c语言杨氏矩阵算法
			
杨氏矩阵 有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在.时间复杂度小于O(N);数组:1 2 32 3 43 4 5 1 3 42 4 54 5 ...
 - POJ-3436:ACM Computer Factory (Dinic最大流)
			
题目链接:http://poj.org/problem?id=3436 解题心得: 题目真的是超级复杂,但解出来就是一个网络流,建图稍显复杂.其实提炼出来就是一个工厂n个加工机器,每个机器有一个效率w ...
 - 十分钟部署Anemometer作为Mysql慢查询可视化系统
			
前言 采用Anemometer将Mysql慢查询日志可视化,可以更便捷的查询慢查询日志,并根据时间戳进行历史查询.如下是单机版Anemometer部署的演示,实际应用中,为安全起见,建议把anemom ...
 - Java设计模式(3)——创建型模式之抽象工厂模式(Abstract Factory)
			
一.概述 抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式.抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象. UML图: 其他的过多概念不再 ...
 - 构建工具——maven的补充
			
1.安装jar到本地仓库 有时候有部分jar由于在maven的中央仓库,只能引用本地的,可以将jar安装到本地仓库进行操作(请先确保mvn命令可以正常运行) mvn install:install-f ...
 - PHP.50-TP框架商城应用实例-前台2-商品推荐
			
商品推荐 {抢购,新品,精品,热卖}效果如下 1.在商品表增加促销价格与促销起始时间和结束时间三个字段,字段推荐楼层与排序在后面用到 注意:在增加datetime类型字段时,要添加默认值{datet ...