NFC相关的技术标准是由NFC论坛(NFC Forum)负责,最早由Nokia和NXP发起,目前NFC论坛成员队伍涵盖了芯片开发商、手机制造商、电视制造商、软件厂商,以及国际金融组织等。NFC论坛成员中包含赞助会员Sponsor Members、主要会员Principal Members、共同会员Associate Members(如夏普、东芝、ZTE中兴、松下、中国银联等)、非营利会员(Non-Profit Members)、开发成员Implementer Members(三星、HTC、TCL、复旦微电子等)。
一、NFC技术标准简介
NFC技术标准主要包含四层,分别为RF Layer层、Mode Switch层、NFC Protocol层、APP层:
1.RF Layer(射频层)
NFC通信距离大概10cm左右,属于近距离通信,其底层的射频标准为ISO 18092、ISO 1443 Type A、ISO1443 Type B和Felicao
2.Mode Switch(模式切换)
一个可以将射频层数据切换到NFC Type A、Type B或NFC Type F三种机制的切换标准。
3.NFC IP1
即ISO 18092,强调其标准中的数据交换中的部分。
4.LLCP(Logic Link Control Protocol,逻辑链路控制协议)
该协议用于管理ISO 18092的NFC设备之间逻辑连接的标准,主要用于P2P模式。
5.NFC Forum Protocol Bindings
P2P模式下,高层数据传递采用的是集成传统的IP(Internet Protocol,网络之间互连的协议)、OBEX(Object Exchange,对象交换)等来实现设备间数据的传递。
6.Tag Type(标签类型)
在读写模式下NFC设备能够读取的标签的类型。其中,该标签的类型必须支持ISO 1443A/B、MIFARE、ISO 18092等标准。
7.NDEF(NFC Data Extrange Format,NFC数据交换格式)
NDEF是NFC的数据传递协议。
8.RTD(Record Type Definition,记录类型定义)
NFC NDEF数据格式中定义的数据类型。
9.Card Emulation(卡模拟)
NFC设备模拟成卡片的标准。
二、NFC标准规范
NFC底层射频协议标准包含ISO 14443 A/B、NFCIP-1(ISO 18092)、FeliCa和MIFARE。
1.ISO 14443
ISO 14443协议是非接触IC卡标准,该标准由JTC旗下SCI7的WG8开发。ISO/IEC14443的英文原版包含四部分,分别为物理特性、频谱功率和信号接口、初始化和防冲突算法、通信协议,如图1所示。
图1 ISO 14443协议栈
它定义了两种卡的类型,即Type A和Type B,两种卡均在13.56MHz无线频率下工作。这两种类型的卡之间的主要区别在于所关注的调制方式、编码方案(第二部分)和协议初始化程序(第三部分),Type A和Type B都采用第四部分中定义的通信协议。
Type A是由Philips等半导体公司最先首次开发和使用的。在亚洲等地区,Type A技术和产品占据了很大的市场份额。代表Type A非接触智能卡芯片主要有Mifare_Light(MFI IC L10系列)、MIFAREI(S50系列、内置ASIC)等。相应的Type A卡片读写设备核心ASIC芯片,以及由此组成的核心保密模块MCM(Mifare Core Module)的主要代表有RC150、RC170、RC500等,以及MCM200、MCM500等。所以,总体来说,Type A技术设计简单扼要,应用项目的开发周期可以很短,同时又能起到足够的保密作用,适用于非常多的应用场合。
Type B是一个开放式的非接触式智能卡标准,所有的读写操作都可以由具体的应用系统开发者定义。由于Type B具有开放式特点,因此每个厂家在具体设计、生产其本身的智能卡产品时,都会把其本身的一些保密特性融入其产品中,如加密的算法、认证的方式等。
2.NFCIP-1
NFCIP-1如图2所示。
图2 NFCIP-1协议栈
NFC接口和传输协议标准由NXP、诺基亚和索尼等主推,这项开放技术规格被认可为ECMA-340标准,并纳入到ISO 18092协议中。NFCIP-1标准详细规定NFC设备的调制方案、编码、传输速度与射频接口的帧格式,以及主动与被动NFC模式初始化过程中,数据冲突控制所需的初始化方案和条件。此外,这些标准还定义了传输协议,其中包括协议启动和数据交换方法等。NFCIP-1的协议栈基于ISO 14443,主要的区别是在协议栈顶部分,用一种新的命令协议代替了ISO 14443中的栈顶部分。
NFCIP-1包含主动模式和被动模式两种通信模式,不仅可以用于P2P通信,也可以用于NFCTags中。
3.MIFARE
伴随着超过50亿张智能卡和IC卡,以及超过5000万台读卡器的销售,MIFARE已成为全球大多数非接触式智能卡的技术选择,并且是自动收费领域最成功的平台。其中,MIFARE卡是目前世界上使用量最大、技术最成熟、性能最稳定、内存容量最大的一种感应式智能IC卡。
MIFARE是Philips Electronics(恩智浦半导体NXP Semiconductors的前身)所拥有的13.56MHz非接触性辨识技术。Philips不制造卡片或卡片阅读机,而是出售相关技术方案与芯片。模式是由卡片和卡片阅读机的制造商利用其技术方案来创造某方面应用的产品给普通用户。
MIFARE本身只具备记忆功能,再搭配处理器卡就能达到读写功能。MIFARE协议栈与ISO 14443的关系如图3所示。
图3 MIFARE协议栈
4.FeliCa
FeliCa是索尼公司开发的专利NFC标签技术,广泛用于支付和亚洲的运输工具应用。FeliCa标签属于日本的工业标准(基于日本工业标准JIS)X 6319-4。标签基于被动模式的ISO 18092,带有额外的认证和加密功能,与ISO 14443的关系如图4所示。
图4 FeliCa协议栈
三、NFC标签
NFC的标签主要有两种,一种是NFC论坛定义的标签类型,另外一种是非NFC论坛定义的标签类型。
NFC论坛定义的标签用于NFC通信中的小数据交互,可以存储如URL、手机号码或其他文本信息。NFC论坛定义了四种不同的标签类型,即Type 1、Type 2、Type 3、Type 4,如表1所示。
1.Type 1
Type 1标签比较便宜适合于多种NFC应用,特性如下:
(1)可读可重写,可配置成只读。
(2)96byte内存,可扩展到2kB。
(3)没有数据冲突保护。
2.Type 2
Type 2标签与Type 1类似,也是由NXP/Philips MIFARE Ultralight标签衍生出来的,特性如下:
(1)可读可重写,可配置成只读。
(2)支持数据冲突保护。
3.Type 3
Type 3标签价格比类型Type 1和Type 2的标签昂贵,特性如下:
(1)基于日本工业标准(JIS)X6319-4。
(2)在生产时定义可读,可重写或只读的属性。
(3)可变内存,每个服务最多1MB空间。
(4)支持数据冲突保护。
4.Type 4
Type4标签与Type 1类似,是由NXPDESFire标签衍生而来的,特性如下:
(1)在生产时定义可读、可重写或只读的属性。
(2)可变内存,每个服务最大32kB。
(3)支持数据冲突保护。
四、NDEF协议
为了实现NFC标签、NFC设备以及NFC设备之间的交互通信,NFC论坛定义了NFC数据交换格式(NDEF)的通用数据格式。NDEF使NFC的各种功能更加容易使用各种支持的标签类型进行数据传输,由于NDEF已经封装了NFC标签的种类细节信息,因此应用不用关心是在与何种标签通信。
NDEF是轻量级的、紧凑的二进制格式,可带有URL、vCard和NFC定义的各种数据类型。NDEF交换的信息由一系列记录(Record)组成。每条记录包含一个有效载荷,记录内容可以是URL.MIME媒质或者NFC自定义的数据类型。使用NFC定义的数据类型,载荷内容必须被定义在一个NFC记录类型定义(RTD)文档中。
NDEF的组成如图5所示。
图5 NDEF组成
其中,记录中的数据类型和大小由记录载荷的报头(Header)注明,这里的报头包含三部分,分别为Length、Type和Identifier,如表2所示。
如NDEF记录类型所述,NFC定义的数据类型需要的载荷内容被定义在RTD文档中。NFC论坛定义了以下RTD:
(1)NFC文本RTD(T),可携带Unicode字符串。文本记录可包含在NDEF信息中作为另一条记录的描述文本。
(2)NFC URIRTD(U),可用于存储网站地址、邮件和电话号码,存储成经过优化的二进制形式。
(3)NFC智能海报RTD(Sp),用于将URL、短信或电话号码编入NFC论坛标签,以及如何在设备间传递这些信息。
(4)NFC通用控制RTD。
(5)NFC签名RTD。
智能海报记录类型是将URL.SMS等信息综合到了一个Tag中,下面对RTD_TEXT、RTD_URL进行详细介绍。
1)RTD TEXT即文本记录类型,用来存储Tag中的文本信息。RTD TEXT记录内容格式如表4-9所示。
2)RTD_URL用来描述从NFC兼容的标签中取得一个URL,或者在两个NFC设备之间传输URL数据,同时也提供另一种在另一个NFC元素里存储URL的方法。
RTD_URI记录内容格式如表3所示。
其中identifier code为URI前缀标识符,其值如表4所示。
五、LLCP协议
LLCP(Logical Link Control Protocol,逻辑链路控制协议)规范为NFC论坛定义的两个NFC设备之间的上层信息单元传输提供了过程,这组过程对数据链路服务的用户展现了一个统一的链路抽象。
如图6所示,LLC构成了OSI的数据链路层的上半部分,下半部分是介质访问控制层(MAC)eMAC层由LLCP规范通过一组映射来支持,每个映射指定了LLCP对一个外部定义的MAC协议的绑定需求。
图6 LLCP和OSI的参考模型
如图6所示,LLCP可以分为以下几部分:
(1)MAC映射(Media Access Control Mapping)将一个已存在的RF协议集成到LLCP结构中,如ISO 18092协议。
(2)链路管理(Link Management)用于负责有连接和无连接的LLCPDU(Protocol DataUnit,协议数据单元)的交换以及小的PDU的聚合和分解,同时还负责对连接状态的监督。
(3)有连接传输(Connection-oriented Transport)负责所有有连接数据的交换,包括连接的建立和终止。
(4)无连接传输(Connectionless Transport)负责处理未知数据交换。
如图7所示,LLCP协议类似TCP/UDP协议,其数据传输服务分为三种。
图7 LLCP组成
(1)链路服务1提供无连接服务。
(2)链路服务2提供有连接服务。
(3)链路服务3提供无连接服务和有连接服务。