移动支付这事情热了总归还是会回归理性,就如同之前的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不小心包含了,小样,往哪跑,我做的晚,啥都包括!