在对NFC的某一个规范进行学习之前,首先要对NFC规范的整体架构有一个大致的了解,这样的话,才能从整体上进行把握。这里引用了NFC FORUM中一个公开文档中的三个架构图。NFC有三种工作模式,读卡器(R/W),卡模拟(CE)和点对点(P2P),那么这三种模式也对应着不同的协议架构,这个其实与蓝牙中的profile很类似,即针对不同的应用,有不同的协议组合。
Analogue,也就是NFC物理层的协议,主要定义了NFC设备的射频特性,如射频场的波形、强度等。
Digital Protocol,数字协议。实际上这里就可以把它理解成NFC的MAC层协议,它定义了三种NFC技术,NFC-A/B/F,分别对应着ISO14443 TYPEA、TYPEB以及Felica的规范,其中包括了初始化、冲突检测等。同时它也定义了传输协议,如NFC-DEP,ISO-DEP等。这个数字协议实际上就是ISO/IEC14443, ISO18092的一个合体(ISO-DEP基于ISO 14443, NFC-DEP基于18092)。
这里要说明一下,在这个架构图中其实还有一个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;
Analogue/Digital/Activity上面已经介绍过了。
1.1 操作模型
最重要的NFC与操作模型相关的标准是NFCIP-1和NFCIP-2。
NFCIP-1整合了两个RFID通讯协议:MIFARE和FeliCa,扩充了新的通讯可能性和新的传输协议。NFCIP-2整合了NFC中RFID读取者的功能。这是NFC与大多数RFID设备相兼容的方式。
RFID有严格的一个或多个被动组件(tags)和一个主动组件(reader),NFC打破这种观点。对于NFC设备而言,它可以与其它每一个组件通讯,包括标签和读者/写者。为了保证这种方式,NFC论坛定义了如下几种操作模型:点对点模型(Peer to Peer Mode),读者/写者模型(Reader/Writer Mode)和卡模拟模型(Card Emulation Mode)。系统综述在图1中给出,根据算法决定使用哪种模式,获取其它在NFCIP-2中定义范围内的NFC设备的信息。
鉴于大多数RFID读者被设计成只有主动设备的范围内,对于NFC设备,假设这个是不可取的,因此要用到碰撞避免(collision avoidance)。作为适当的可用性,设备识别的速度保持在200ms以上。很多NFC设备是移动的拥有有限的电量,高速的识别跟耗能。这将一直有一个折衷在快速识别和能量消耗之间。
1.1.1 点对点模式
点对点模式能够在两台NFC设备之间通讯。开始通讯的设备称作发起者(Initiator),另外一个称作目标(Target)。
点对点模式的协议栈与OSI Reference Model很相似,但是点对点模式只有4层:物理层(Physical),媒体接入控制层(Media Access Control),逻辑链路控制层(Logical Link Control)和应用层(Application)。物理层和应用层与OSI Reference Model一样。MAC和LLC组成数据链路层,如图-2所示。物理层和MAC层在NFCIP-1中定义,LLC层是NFC论坛定义的技术规范。
主动通讯模式和被动通讯模式在NFCIP-1中是有差别的:
“在主动通讯模式中,发起者和目标共享他们自己的RF域来实现通讯,发起者开始NFCIP-1通讯,目标在主动通讯模式中使用自生RF域中的调制来响应一个发起者的命令。”
“在被动通讯模式中,发起者产生RF域并开始通讯,目标在被动通讯模式使用负荷调制方案来响应发起者命令。”
这两种模式的主要区别是发起者和目标的能量消耗。在主动通信模式中产生RF域的能量是有发起者和目标共同承担的,而在被动的沟通模式中发起者必须供应产生域所需要的能量。
为了保证完整的通讯,NFCIP-1定义了如下协议流:在默认情况下,所有的设备应该保存在目标模式,不产生RF域。只有在响应应用和应用定义使用主动或被动通讯模式时设备才切换为发起者模式。发起者在产生RF域之前必须检查是否有其它活跃发送者保证没有其它通讯被干扰。如果没有其它RF域被检查到,发起者就开始通讯并通知目标使用主动或被动通讯模式和传输速度。在通讯结束,两个设备都要切回到目标模式并且停用他们的RF域。
在MAC层,只有发起者能开始数据传输,LLCP保证异步平衡模式(ABM)。此外目标能够启动一个数据发送和错误恢复。LLCP能够管理多个应用在同一时刻多点接入的多路技术。它提供了一个用最少的协议开销的连接传输协议,高层协议使用的流量控制机制。也提供面向连接的传输协议,它保证数据单元的逐一传送。LLCP不提供安全的数据传输模式。
1.1.2 读者/写者模式
读者/写者模型允许NFC设备与NFC论坛标签通讯。这些标签是典型的被动组件。因此,这种模式也被称为被动模式。这些标签出现在海报或其它地方,它们通过被NFC设备扫描将所存储的设备传送给NFC设备。他们能包含单一信息(例如网络地址)或者在设备上执行活动(例如连接无线网络)。这种模式完全兼容ISO/IEC 14443和FeliCa技术,正因为这样,所以NFC设备能够当作读者/写者在存在RFID基础设施。NFC论坛不包含附近系统(Vicinity systems)到读者/写者模式,但是NFCIP-2包含。
1.1.3 卡模拟模式
可选的卡模拟设备允许NFC设备与已知的RFID读者通讯。这些设备可以模拟一个或多个RFID智能卡。这种模式是有可能的使用现有的非接触式的基础设施,例如:支付或接入控制。智能卡的模拟可以用于应用或在称作安全元件(Secure Element)。安全元件像真实智能卡的设备,只是作为NFC设备传输数据的接口。
与读者/写者模式结合,有可能实现与点对点模式相似的模式,但是这样更简单,因为不需要在点对点模式中的协议栈。与正确的硬件实现就可能使用这种模式即使NFC设备切断或者缺少能量