移动支付这事情热了总归还是会回归理性,就如同之前的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的基本概念的更多相关文章

  1. Android下NFC的简单使用

    现在很多手机已经配备了NFC(Near Field Communication 近场通信)的功能,我就为此专门研究过,可以到本文末尾下载源代码. Android官方资料:http://develope ...

  2. linux_添加定时任务,每5min清理下某个文件夹下的文件

    性能测试的过程中会生成大量的日志文件,导致无法继续进行,linux可以增加一个定时任务,进行定时清理 1. 先编写一个sh脚本,该sh脚本用于文件夹文件清理,脚本编写完成后拷贝到服务器上,且授予权限 ...

  3. 某些浏览器具有dns缓存功能,大家更改域名指向,建议清理下浏览器缓存

    最近遇到一个很郁闷的问题,在我们的的ngnix服务器上原来默认的网址需要更改.更改后,重启了ngnix.可是在客户端使用360浏览器打开网址.地址还是指向旧地址.直接输入服务器 IP地址转向了新地址, ...

  4. java多线程下的所的概念

    锁和synchronized关键字     为了同步多线程,Java语言使用监视器(monitors),一种高级的机制来限定某一 时刻只有一个线程执行一段受监视器保护的代码.监视器的行为是通过锁来实现 ...

  5. Java并发之多线程下竞态条件概念的理解

    一.简述 竞态条件(Race Condition):计算的正确性取决于多个线程的交替执行时序时,就会发生竞态条件. 二.常见竞态条件分析 最常见的竞态条件为 1.先检测后执行 执行依赖于检测的结果,而 ...

  6. SSIS平台下的对象和概念

    包即经检索.执行和保存的工作单元,是最重要的 Integration Services 对象. 控制流元素(任务和容器),用于在包中生成控制流.控制流元素准备或复制数据,与其他进程进行交互,或实现重复 ...

  7. 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

  8. Red Hat5下源码安装mysql5.6过程记录

    1.安装cmake包 [root@edu soft]# tar -xzf cmake-.tar.Z [root@edu soft]# cd cmake- [root@edu cmake-]# ./co ...

  9. windows、ubuntu下eclipse搭建java、Python环境问题总结

    前两篇博文分别讲述了如何在windows.ubuntu下用eclipse搭建java.python环境,下面就针对本人遇到的问题做一个总结. 一.windows下关于java环境变量JAVA_HOME ...

随机推荐

  1. 优盘文件系统(FOR C)

    优盘上的数据按照其不同的特点和作用大致可分为5 部分:MBR 区.DBR 区.FAT 区.FDT区和DATA 区. 主引导记录(MBR) 绝对扇区号为:MBR_LBA=0x00000000 处是主引导 ...

  2. SCSI接口图文详解

    目前存储设备的接口有五大类:IDE.SCSI.USB,并行口,串口,其中并行口与串口的速度非常慢,不提也罢,最主要的就是IDE,usb,SCSI.IDE(Integrated Drive Electr ...

  3. Qt wrappers for OS X Cocoa widgets

    Qt wrappers for OS X Cocoa widgetshttps://github.com/MikeMcQuaid/Qocoa

  4. WPF笔记(2.4 Grid)——Layout

    原文:WPF笔记(2.4 Grid)--Layout 第一章已经简单介绍过这个容器,这一节详细介绍.Grid一般是用表格(Grid.Row 和Grid.Column )的,比StackPanel更细致 ...

  5. COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)

    源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...

  6. Pros and Cons of T4 in Visual Studio 2008

    Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008 Pros and Cons of T4 in Visual Studio 2008 Po ...

  7. Java Service Wrapper

    Java Service Wrapper 将Java 应用程序部署成Windows系统服务Java Service Wrapper 1 Product Overview 1 Editions 2 Me ...

  8. Java中取小数点后两位(四种方法)

    摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法)   一 Long是长整型,怎么有小数,是double吧     java.text.D ...

  9. Linux进程笔记

    进程及作业管理 Uninterruptible sleep: 不可中断的睡眠Interruptible sleep:可中断睡眠 kernel:init: COW: Copy On Write, 写时复 ...

  10. 【转】100行代码实现最简单的基于FFMPEG+SDL的视频播放器

    FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手.我刚接触FFMPEG的时候也感觉不知从何学起. 因此我把自己做项目过程中实现的一个非常简单的视频播放器 ...