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实 ...
随机推荐
- 异常笔记:运行hdfs copyFromLocal 上传文件报错
把本地文件系统,复制到dfs文件系统时报错的错 [hadoop@localhost ~]$ hdfs dfs -copyFromLocal /home/hadoop/mk.txt /xg_test/ ...
- Dubbo 改造普通单体项目
一.新建普通maven项目 1.首先,新建3个普通maven商城项目,模拟以往常见的Java单体应用开发,mall-interface是存放接口和公共代码部分,order-service-consum ...
- JDBC中执行sql语句的 增 , 删 , 改 , 查 的方法
executeQuery() : 执行 SELECT 语句,它几乎是使用最多的 SQL 语句 executeUpdate() : 执行 INSERT.UPDATE 或 DELETE 语句以及 S ...
- MySQL5.7主从同步--点位方式及GTID方式
MySQL5.6加入了GTID的新特性,其全称是Global Transaction Identifier,可简化MySQL的主从切换以及Failover.GTID用于在binlog中唯一标识一个事务 ...
- 厦门Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- spring-boot、mybatis整合
一.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 X ...
- Python-特殊变量
from test import test ''' __mame__ __file__ __cache__ __package__ ''' # import os # 获取这个当前文件的绝对路径 # ...
- 韩国KT软件NB-IOT开发记录V150(2)IOT maker通信相关
1. 测试的AT指令,创建端口和IP地址链接 AT#IMINIT=," 开始连接 AT#IMCONN 创建object ID AT#IMOBJMETA=,," 发送数据 AT#IM ...
- Updating Homebrew... 长时间不动解决方法
确保你已安装Homebrew 依次输入下面的命令(注意:不要管重置部分的命令,这里原作者贴出来.我也贴出来是以防需要重置的时候有参考操作命令) 替换brew.git: cd "$(brew ...
- angualarjs $location服务
$location服务 angular使用内置的$location服务来监听.操作url,包括以下功能: - 获取.监听.改变地址栏的URL: - 与URL实现双向数据绑定(地址栏变动.前进后退或者点 ...