Forum中有一个所有规范的列表,可以看到目前绝大部分的规范都已经正式发布了,当然了虽然是正式发布了,但是NFC FORUM还在不停的bug fix。表里面并没有列出NFC
FORUM的一些新项目,如NCI NG和Wireless charging等。
TYPEA TYPEB以及Felica的规范,其中包括了初始化、冲突检测等。同时它也定义了传输协议,如NFC-DEP,ISO-DEP等。这个数字协议实际上就是ISO/IEC14443,
ISO18092的一个合体。这里要说明一下,在这个架构图中其实还有一个Activity的规范,它可以说是Digital的一个补充。Digital中定义了帧格式,编码等通信的功能,但是如何使用Digital中的定义的帧来完成通信,则是在Activity规范中定义的。Activity中定义了一大堆的流程图及状态转移图,用来描述Digital规范中的内容是如何工作的,这样看来其实Acitivity规范也应该就是Digital中的一部分。
TYPEA TYPEB和ISO 7816-4;
handover)用于NFC为蓝牙或WIFI进行连接的建立。
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规范。
FORUM中,最终取消这两个协议,是因为这两个协议并没有起到任何作用。这些都会在以后给大家介绍。file:///C:/DOCUME~1/QWJ/LOCALS~1/Temp/msohtmlclip1/01/clip_image004.gif
host,主机,在手机中可以看做是手机的AP)和NFCC(可以看做手机中的NFC芯片,如PN544等)之间的消息标准化,让我们的手机CPU不用对每一个厂家的NFC芯片都做适配,只要CPU和NFC芯片都遵守NCI规范就可以了,当然了NFC芯片的驱动还是要适配的,呵呵。了解蓝牙的同学应该很容易理解,这就是蓝牙规范中的HCI接口,它们的设计理念是一致的。据说,Google正在为Android开发NCI。
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设备切断或者缺少能量