NFC CE运行模式使得携带NFC芯片的设备能充当智能卡(例如信用卡)使用。该运行模式所支持的应用场景极具吸引力,例如用支持该功能的Android智能手机来完成购票、支付,甚至充当门禁卡,汽车钥匙、公交卡等。
图8-19为CE运行模式示意图。
图8-19 CE运行模式
由图8-19可知,SE和NFC芯片(主要是指NFC Controller,简称NFCC)通过SWP(Single Wire Protocol)或S2C(SignalIn/SignalOut Connection Interface,也叫NFC Wired Interface,简称NFC-WI)来交互。一般来说,SE上面运行了一些特殊的应用程序,NFC负责将数据通过SWP或S2C传递给SE中的应用来处理。
NFCC通过HCI协议和NFC Mobile交互,而SE也可通过ISO 7816协议和NFC Mobile交互。
在CE模式中,NFC Mobile被NFC Reader识别成一个智能卡。NFC Reader通过相关规范发送数据或控制命令给NFC Mobile中的NFCC。
当NFCC收到数据或控制命令后,将交给相关的应用程序来处理。由于CE相关的应用场景针对支付、门禁等这类对安全性要求非常高的情况,以Android手机NFC支付为例,一个完整的支付应用程序包括一个为用户提供操作界面的APK以及一些运行在安全性有绝对保障的SE中的应用程序。
图8-20 SE和NFC的组合方式
总之,SE在CE模式中扮演了非常重要的角色,目前SE和NFC的组合有三种方式,如图8-20所示。这三种组合方式从上到下分别如下。
SE为一个嵌入式安全芯片,该芯片在手机出厂前就已经安装在其内部,而且无法被替换。该芯片上运行着一个小系统能够处理支付或安全方面的工作。目前,这种形式的SE还没有标准规范,可参考的模型有NXP公司的pn65芯片模块示意(如图8-21[17]所示)。
SE为一个支付型SD卡,这种卡实际上是在SD卡上嵌入了安全模块,相关应用可在这种卡上运行。该种组合方式所对应的方案也称为NFC-SD方案,这方面的国际标准有ISO 7816。中国的银联曾经主推过NFC-SD卡支付解决方案。
SE为UICC,也就是常说的手机SIM卡,这种组合方式对应的方案也称为NFC-SIM方案,目前由运营商主推。前面提到的北京市利用NFC手机充当一卡通所使用的方案就是NFC-SIM,它需要使用者先到移动运营商那换一个特殊的SIM卡。
图8-21中,NXP公司pn65 NFC芯片自身就包含一个Secure Element,即图中的SmartMX模块,该模块中运行着一个名为Java Card OS的操作系统。在Java Card OS上,用户可以安装和运行一些应用程序(称为Applets)。除了SmartMX内置的SE外,pn65也支持使用外部的SE,即图8-21中的UICC。
SE和NFC控制器连接所使用的S2C和SWP协议中,NFC-SIM方案将采用SWP,其对应的规范是ETSI TS 102613。NFC和UICC使用SWP的连接如图8-22所示。
CLF(NFC Contactless Front-End缩写)和UICC通过三条线相连。Gnd接地,Vcc提供电源。SWIO为CLF和UICC的数据连接线,数据传输率在212kbps~1.6Mbps之间,每次传输的数据包小于30字节。
注意,图中UICC的电源由CLF来提供,而非直接由手机电源来提供。这种设计方案使得手机在电池耗尽的情况下,也可通过外部电磁感应(由NFC Reader或其他NFC设备)来给CLF和UICC供电,从而确保支付请求不受手机本身的电源影响。