NFC协议学习分享

很多同学在学习NFC 协议的时候,觉得NFC 的规范从底层到上层的应有尽有,有点无处下手的感觉。这里就和大家分享下我曾经学习NFC 规范的经验。如果有不对的地方,也请各位同学批评指正。NFC Forum 中有一个所有规范的列表,可以看到目前绝大部分的规范都已经正式发布了,当然了虽然是正式发布了,但是NFC FORUM 还在不停的bug fix 。表里面并没有列出NFC FORUM 的一些新项目,如NCI NG Wireless charging 等。

在对NFC 的某一个规范进行学习之前,首先要对NFC 规范的整体架构有一个大致的了解,这样的话,才能从整体上进行把握。这里引用了NFC FORUM 中一个公开文档中的三个架构图。NFC 有三种工作模式,读卡器(R/W , 卡模拟(CE )和点对点(P2P ),那么这三种模式也对应着不同的协议架构,这个其实与蓝牙中的profile 很类似,即针对不同的应用,有不同的协议组合。

读卡器模式或读写模式:file:///C:/DOCUME~1/QWJ/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.gif

Analogue ,也就是NFC 物理层的协议,主要定义了NFC 设备的射频特性,如射频场的波形、强度等。

Digital Protocol ,数字协议。实际上这里就可以把它理解成NFC MAC 层协议,它定义了三种NFC 技术,NFC-A/B/F ,分别对应着ISO14443 TYPEA TYPEB 以及Felica 的规范,其中包括了初始化、冲突检测等。同时它也定义了传输协议,如NFC-DEP ISO-DEP 等。这个数字协议实际上就是ISO/IEC14443, ISO18092 的一个合体。 这里要说明一下,在这个架构图中其实还有一个Activity 的规范,它可以说是Digital 的一个补充。Digital 中定义了帧格式,编码等通信的功能,但是如何使用Digital 中的定义的帧来完成通信,则是在Activity 规范中定义的。Activity 中定义了一大堆的流程图及状态转移图,用来描述Digital 规范中的内容是如何工作的,这样看来其实Acitivity 规范也应该就是Digital 中的一部分。

以上这三个协议是NFC 通信的基础,在NFC 的三种模式下,都要使用这三个底层的协议。可以说这三个协议是整个NFC 通信的基础,掌握了这三个协议可以说对于NFC 的理解就成了一半。当然这也是NFC 中阅读起来最难的三个协议,当然了如果你对ISO14443/18092 有了解的话,理解起来就比价轻松了,毕竟这些底层协议与非接触卡规范是一脉相承的。

TYPE1-4 TAG OPERATION:  定义了如何从TYPE1/2/3/4 中读写NDEF 消息。这里TYPE1/2 对应着ISO14443TYPEA ,而TYPE3 对应着SONY Felica TYPE4 是一个开放的TAG 标准,即ISO14443 TYPEA TYPEB ISO 7816-4

NDEF REFERENCE APPLICATON :是NFC Forum RAF 工作组定义的一些应用规范,这些应用规范并不是强制性的,主要是提供一些参考,但实际上很多厂家都会使用RAF 提供的参考规范来开发应用,比如说连接切换(Connection handover )用于NFC 为蓝牙或WIFI 进行连接的建立。

Third Party NDEF Application :是由第三方开发的基于NDEF 消息的应用。NON-NDEF Application :如果不是基于NDEF 的应用,实际上就是直接调用Digital 协议进行应用数据的封装,即将应用数据直接映射到Digital 中定义的帧格式中。

对点模式:

Analogue/Digital/Activity 上面已经介绍过了。

LLCP :既然是P2P 连接,那么必然就牵涉到逻辑链路的管理,所以需要一个LLCP 层,用于链路的创建、拆除、维护等功能,同时还提供面向连接和无连接的服务等。

Simple NDEF Exchange protocol SNEP ):在P2P 模式下定义了如何进行NDEF 消息的交互。SNEP 的通信模式就是请求/ 相应模式,及initator Target 发送SNEPrequest Target Initiator 回应SNEP Response 消息。SNEP 的请求和响应消息中包含了NDEF 格式的数据。这里对NDEF 做一个简单的说明,其实NDEF 应该是做上层应用的开发人员直接面对的,如在ANDROID 中,基于Framework 中的NFC API 很多都是与NDEF 格式相关的。NDEF 其实就是NFC Forum 中定义的一种标准的消息格式,不仅用在了P2P 中,也用在了读卡器模式中。NDEF 是由RECORD(RTD,  记录) 组成的,真正的用户数据就是存放在RTD 中的。NFC FORUM 定义了不同的RTD 规范,如TEXT, URI Signature 等等。注意一点,在这P2P 的图和R/W 的图中,并没有显示的描述NDEF 规范。

Protocol Bindings ,这里NFC FORUM 提了两个规范一个是OBEX 的映射,另一个是IP 协议的映射,是将这些协议能够映射到LLCP 协商中。但是在NFC FORUM 中,最终取消这两个协议,是因为这两个协议并没有起到任何作用。这些都会在以后给大家介绍。file:///C:/DOCUME~1/QWJ/LOCALS~1/Temp/msohtmlclip1/01/clip_image004.gif

卡模拟模式:

从协议架构上来说,这个架构确实是这样的,貌似是比较简单的,但是个人感觉卡模拟模式还是蛮复杂的,因为随着SE( 安全单元,之前也称为NFCEE) NCI 规范的引入,不仅SE 可以模拟成卡、DH( 主机) NFCC(NFC 控制器) 也都可以模拟成卡。这在以后的介绍中也也会向大家说明。file:///C:/DOCUME~1/QWJ/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.gif

介绍完基本的NFC 协议框架后,这里简单的提一下NCI 规范,全称NFC Controller interface ,主要的作用是将DH Device host ,主机,在手机中可以看做是手机的AP )和NFCC( 可以看做手机中的NFC 芯片,如PN544 ) 之间的消息标准化,让我们的手机CPU 不用对每一个厂家的NFC 芯片都做适配,只要CPU NFC 芯片都遵守NCI 规范就可以了,当然了NFC 芯片的驱动还是要适配的,呵呵。了解蓝牙的同学应该很容易理解,这就是蓝牙规范中的HCI 接口,它们的设计理念是一致的。据说,Google 正在为Android 开发NCI

好了,今天就介绍到这吧,以后我会对每一个协议做详细的描述。欢迎同学们批评指正,共同进步。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值