1、NFC技术标准
在国际上,NFC技术标准主要的制定组织有NFC Forum、ETSI、ECMA和ISO四个组织。
NFC技术标准类型大致如图1所示,其的关键技术标准主要分为以下五类。
图1 NFC技术标准类型
(1)NFC设备内部实现的不同规范,也就是安全模块(SE)与非接前端的接口标准。例如,ETSI制定的SWP、HCI技术标准及NFC论坛制定的NFC控制器接口规范,还有ISO早期制定的近场通信有线接口(NFC-W)。
(2)与非接射频通信相关的标准。例如NFC Forum定义的模拟规范、数字协议规范及以及ECMA定义的ECMA 340/NFC IP-1和ECMA352/NFC IP-2规范。
(3)NFC Forum专门定义的标签操作规范,用于统一各种NFC标签及相关操作。
(4)需求标准,主要是GSMA定义的NFCUICC需求标准及NFC手机API需求规范等。
(5)各种NFC设备间通信格式规范及一些链路协议等。
与NFC技术相关的主要标准见表1。
表1 与NFC技术相关的主要标准
2、NFC Forum协议架构
前面介绍了NFC的三种工作模式,分别是读卡器模式、卡模拟模式和点对点模式,下面介绍这三种模式对应的标准协议架构。
(1)读卡器模式。
NFC Forum制定了一套规范来支持读卡器模式,如图2所示。
NDEF(NFC data exchange format)在LLCP链路被激活时使用。
NDEF定义了NFC设备之间或设备与标签之间通用的数据格式,上层应用产生由一个或多个文件生成的NDEF信息该消息交由底层LLC层传送给对方,对方可以接受后直接处理或作为中间阶段写入标签中。当其他设备接近该标签时,会读到该标签中的内容并把读到的NDEF消息传给上层应用分析和处理。NDEF由RTD(record type definition)组成,RTD定义了不同数据类型的封装格式,如URL、智能海报、文本等。
图2 读卡器模式协议架构
NFC Forum定义了四种类型的标签:
类型1:该标签是基于ISO 14443A的私有标签。这里“私有”的意思是指该标签尽管基于ISO 14443A,但是采用了私有的加密算法。该标签主要是与Innovision Topaz的产品兼容。
类型2:该标签是基于ISO 14443A的私有标签,兼容的产品是恩智浦公司的MIFARE Ultralight和MIFARE Ultralight C。
类型3:该标签兼容FeliCa产品。
类型4:该标签分为类型4A和类型4B,分别兼容ISO 14443A和ISO14443B。
类型1-4标签操作定义了如何从类型1-4的标签中读取或写入NDEF消息。
Digital相当于NFC的MAC层协议,它定义了三种NFC技术,即NFC-A/B/F分别对应着ISO 14443 TYPEA、TYPEB以及FeliCa的规范,其中包括了初始化、冲突检测等,同时它也定义了传输协议,如NFC-DEP,ISO-DEP等。这个数字协议实际上就是ISO/IEC 14443与ISO 18092的一个合体。
Activity中定义了一大堆的流程图及状态转移图,用来描述Digital规范中的内容是如何工作的Activity规范也可以看作是Digital中的一部分。Digital中定义了帧格式、编码等通信的功能,但是如何使用Digital中的定义的帧来完成通信,则是在Activity规范中定义的。
Analogue,即NFC物理层的协议,主要定义了NFC设备的射频特性,如射频场的波形、强度等。
以上三个协议是NFC通信的基础,在NFC的三种工作模式下,都要使用这三个底层的协议。在应用层,NFC Forum制定了基于NDEF的参考应用,如Connection Handover中的静态切换。第三方应用程序可以基于NDEF消息进行读写器应用的开发,同时NFC协议栈也支持一些非NDEF的应用。
(2)卡模拟模式。
在卡模拟模式下,NFC Forum没有制定其他规范来支持该模式,如图3所示。ISO 14443相关的内容都已经包含在Digital、Activity和Analogue协议中。
图3 卡模拟模式协议架构
应用层一般由应用开发者完成,比如在智能手机上开发一个模拟卡的应用,其他手机靠近后可以读取其中的内容。NFC协议栈为开发者提供了通信通道和读取命令,但是解析数据内容、设计用户界面不是NFC协议栈的任务。尽管NFC Forum制定了NDEF规范,但是在卡模拟模式的标准架构中没有给出其他协议的主要原因是目前市面上大部分ISO14443/15693的基础设施还不支持NDEF格式。
目前卡模拟模式的应用比点对点模式和读卡器模式更加广泛,因此为了兼容这些基础设施,NFCForum在卡模拟模式下没有给出其他规范,而完全由应用开发或服务提供商来决定其数据格式。
(3)点对点模式。
NFC Forum点对点通信的标准架构如图4所示。
图4 点对点模式协议架构
NFC Forum定义了LLCP(logical link control protocol)作为点对点通信的逻辑链路管理协议。LLCP主要负责链路的激活、去激活和维护,为上层应用提供面向连接服务和非连接服务,并提供协议复用和异步平衡模式等功能。
LLCP协议层至上可以是基于NDEF的应用,也可以是在NFC Forum注册的协议,如IP、OBEX。如果应用层基于这两种协议,那么NFCForum针对这两个协议分别定义了一个适配协议,用于将IP和OBEX的协议数据映射进LLCP的帧格式。目前NFC Forum只提供IP和OBEX的映射,除了这两个协议之外,如果应用开发者希望使用LLCP的功能需要自己完成映射关系。
SNEP(Simple NDEF exchange protocol):在点对点模式下定义了如何进行NDEF消息的交互。SNEP的通信模式就是请求/相应模式,及发起人向目标发送SNEP请求,Target向Initiator回应SNEP Response消息。SNEP的请求和响应消息中包含了NDEF格式的数据。NFC Forum制定的相关的参考应用规范,没有强制力,上层应用可以基于SNEP,也可以基于IP或OBEX,或者直接基于LLCP。