通过CCID接口让NFC智能手机实现近场通信
NFC手机通过CCID接口完成近场通信所需解决的主要问题就是在ISO14433规范中扩展CLF的功能,令CLF支持CCID,并从定制终端开始将CLF的此种功能发展成为NFC手机的标配。
本文引用地址://m.amcfsurvey.com/article/201610/309252.htmNFC手机配SWP SIM卡是目前国际规范定义的组合,SWP SIM卡需要NFC手机的支持,手机的NFC功能也只是为SWP SIM卡服务。但随着智能卡技术的演进,这一切未必一成不变。本文通过对现有的SWP与CCID技术的简要分析和对比,创造性的提出一种NFC手机通过CCID接口完成近场通信的方法和原理,并简述这种方法对手机SIM卡、终端、终端应用的影响和未来还须完成的工作。
1.背景
SIM卡如果要在移动支付和众多移动网络应用中承担重任,最好能支持非接通信并拥有大容量。
大容量SIM卡要支持非接通信功能,必须具备以下条件:
(1)终端、卡的技术规范;
(2)终端、卡的测试规范;
(3)终端、卡的测试环境、模拟环境;
而现实情况是:
(1)没有大容量SIM卡及其终端的非接技术规范,现行的普通容量SWP卡只定义了ISO/IEC 7816、SWP两种接口;联通大容量SIM卡及终端技术规范完善了ISO/IEC 7816中USB接口的定义及使用,但在之上叠加SWP功能,却绝不是简单照抄照搬国际规范,必须解决物理接口的选择(“SWP和CCID”或“ISO/IEC 7816、SWP和CCID”)、逻辑通道的选择(ISO/IEC 7816、SWP、CCID、大容量)、ISO/IEC 7816、SWP、CCID、大容量中任何两个以上并发等技术难点;
(2)现有含两个接口的SWP普通SIM卡的测试规范,即ETSI TS 102 694,在涉及到有USB接口的地方以FFS-For Fut-ure Study带过,留待实现;
(3)现在测试SWP普通SIM卡,使用Com-prion公司的ICC Spectro,测试内容依照ETSI现有规范实现,围绕ISO/IEC 7816、SWP两个接口展开,而针对USB-IC、SWP的测试环境、模拟环境尚待开发。
所以,SWP大容量SIM卡的实现不是简单的硬件、软件、协议的叠加,我们需要换一种思路,探讨更为可行的更具优势的解决方案:不通过SWP协议实现NFC功能。
2.SWP、7816、CCID的简单比较
SWP是单线协议Single Wire Proto-col的缩写,是由Gemalto公司前身之一的Axalto提出的基于SIM卡C6引脚的单线连接方案,属于物理层协议。简单来说,就是用一根数据线沟通SIM卡与NFC模块,再通过NFC模块的CLF与外部通讯。当NFC手机通过CLF前端接收POS机数据后,便通过C6管脚传给SWP卡。CLF与POS机之间的射频场频率为13.56MHz,通讯速率有106、212、424、847kbps几档,目前使用106、212kbps居多。SWP规范要求每比特(bit)宽从590ns到10us,换算通讯速率小于2Mbps。
ISO/IEC 7816国际规范是接触式智能卡必须遵循的规范,普通手机SIM卡在物理、电气特性方面遵循该规范。目前大多数手机支持的ISO/IEC 7816接口传输速率在100kbps量级。
CCID(Integrated Circuit(s)Cards Interface Devicechip card inter-face device)规范定义了在USB通道上进行APDU(应用协议数据单元)封包格式及应用协议。符合CCID规范的USB设备既可以是读卡器,也可以是集成了CCID与智能卡功能的一体设备,遵循中国联通规范大容量SIM卡便是这样的一体设备。
微软公司在其Windows 2000及以上的操作系统上提供并支持CCID驱动,使设备生产厂商可以轻松的开发使用符合CCID接口标准的设备。同时,CCID接口标准支持PC/SC接口调用,使广大开发者可以方便的对信息安全设备进行开发操作,在其它开源操作系统如Linux的众多版本上,也有许多开源的CCID驱动可供开发者和使用者使用。多数采用Android操作系统的智能手机也支持CCID驱动并提供PC/SC编程接口。图1所示为CCID协议定义的范围示意图。
![图1 CCID协议定义的范围示意图](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_0.jpg)
图1 CCID协议定义的范围示意图
联通即将上市的大容量SIM卡为USB全速设备,总线速率达12Mbps,支持CCID协议。未来更可能升级为传输速率达480Mbps的USB高速接口,甚至传输速率为5Gbps的全双工USB 3.0。
3.NFC手机的近场数据传输
SWP SIM卡基于SWP协议通过C6触点与内置在终端的CLF进行数据通信。CLF与射频天线连接,负责射频信号的接收、发送和上层转发,基于ISO/IEC 14443国际标准完成底层工作。
4.大容量卡模型
SIM卡的8个管脚功能示意图如图2所示,C6可以是SWP卡的传输通道,C4、C8为USB D+、D-。目前,中国联通大容量SIM卡支持C4、C8管脚进行USB数据传输,应用协议包括CCID、海量存储器,C6留待将来使用。图3所示为大容量卡模型。
![图2 SWP卡工作模式示意图](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_1.jpg)
图2 SWP卡工作模式示意图
![图3大容量卡模型](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_2.jpg)
图3大容量卡模型
5.使用CCID代替SWP
通常情况下,SWP软件设计基于SWP标准和HCP(主机控制协议)标准。HCP标准是SWP协议之上的标准协议,定义了数据链路层之上的协议层——HCP路由层、HCP消息层以及应用层。底层SWP协议和上层HCP协议组成的协议栈共同完成NFC芯片与UICC通信的完整协议。该架构协议层级较多,实现、测试开销较大。图4所示为Android系统手机平台的架构图,原理图如图5所示。
![图4 Android系统手机平台的架构图](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_3.jpg)
图4 Android系统手机平台的架构图
![图5 使用SWP协议的HCI架构图](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_4.jpg)
图5 使用SWP协议的HCI架构图
现在,我们设想在大容量SIM卡中采用CCID协议替换SWP+HCP协议的方式完成对非接数据的读写,原理图如图6所示。那么Android系统手机平台LINUX KERNEL部分将变为如图7所示。
![图6 使用CCID协议的架构图](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_5.jpg)
图6 使用CCID协议的架构图
![图7 新概念下Android系统手机平台](http://m.amcfsurvey.com/editerupload/fetch/20160912/309252_1_6.jpg)
图7 新概念下Android系统手机平台
从图6可以看到:CLF前端以通常方式接收数据传给终端,终端应用程序不需要通过SWP协议将数据传递给SIM卡,而是将NDEF格式的数据通过CCID传递给SIM卡。下面分析一下使用CCID代替SWP对SIM卡、手机和终端应用产生的影响。
5.1 对SIM卡的影响
支持SWP的用户卡必须同时支持ISO/IEC 7816和SWP两个协议栈,需要用户卡的COS是多任务操作系统,并且这两部分独立管理。在SWP线上传输的是准数字信号,需要特定的接收和解调电路,信号的噪声容限较低。而CCID接口是大容量卡必备的,所以,支持大容量卡的终端可以只支持CCID一种接口。采用CCID协议来替换SWP+ISO/IEC 7816或SWP+CCID甚至SWP+CCID+iso/IEC 7816协议,将减少大容量卡硬件芯片的SWP和ISO/IEC 7816电路部分,使得硬件处理和COS处理更加简化,功耗降低。一些技术处理和难点如物理接口的选择、逻辑通道的选择、ISO/IEC 7816、SWP、CCID、大容量中任何两个以上并发等问题都将迎刃而解。此套方案,SIM卡需要增加处理NDEF (NFC Data Exchanger Format)格式的数据。
5.2 对手机终端的影响
首先,CCID使大容量SIM卡变成扩展的手机存储空间,开放的大容量区域易于用户下载和自行管理,无论是通信还是存取数据都给用户带来前所未有的良好体验。
第二,支持CCID的NFC手机需升级手机操作系统,手机可以先搜索SWP通道,如果存在,就将数据通过SWP通道发给SIM卡,如果不存在,就通过CCID通道发给SIM卡。所以,支持CCID的NFC手机并不影响对原有SWP卡的支持。
第三,由于SIM卡的安全特性和身份识别特性,它可以作为PSAM卡,与终端一同成为一个拥有一定权限的可信平台和认证中心,承担安全认证的功能。所以拥有NFC功能的手机除了一卡通应用,还可以承载更多应用:
(1)可以成为POS终端,对银行卡进行余额查询和扣费。
(2)可以辩别身份证的真伪,了解持卡人的信用状况。
(3)可以将煤气费、水费、电费等信息写入标签置于门外供查表员读取和查表员与用户互动。
5.3 对终端应用的影响
由于通信速率的提升,刷卡速度将会提升。目前,无论是全卡方案,还是SWP方案,刷卡速度都是工程师们致力解决的问题,目前城市一卡通中要求刷卡速度低于300ms,而影响这一结果的因素有二:
(1)通信速率,通信方面对整个刷卡所占比重极小,随着CCID接口速度的提升,几乎可以忽略。
(2)芯片对数据的处理速度占消费应用的绝大多数时间,大容量卡是为应用服务的,其芯片的CPU处理速度一定远高于目前普通SIM卡,所以,采用大容量卡进行近场通信,其速度不再是问题。
5.4 需解决的问题及影响
首先,CLF前端需要增加CCID通道,并支持CCID协议。因此,ISO/IEC 14433规范中关于CLF的描述需要修正,终端厂家也需要支持。
第二,大容量SIM卡需要增加处理NDEF(NFC Data Exchanger Format)格式的数据。
第三,普通支持SWP卡的NFC终端据称可以在关机时支持1000次刷卡,而CCID代替SWP的方案不支持关机操作,必须开机刷卡。但这种影响对使用者而言并非很大,因为使用手机近场支付的应用场景很多,一种是小额支付,不需要密码,如公交刷卡;一种是大额支付,需要密码,如商场消费。对于后一种情况,关机即便可以刷卡也是不方便不安全的。因此,不支持关机操作不会给应用的开发推广造成困扰。
总之,NFC手机通过CCID接口完成近场通信所需解决的主要问题就是在ISO14433规范中扩展CLF的功能,令CLF支持CCID,并从定制终端开始将CLF的此种功能发展成为NFC手机的标配。
评论