背景技术
智能卡又叫IC卡,是一种将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片中的卡片。智能卡种类繁多,根据嵌装的芯片来划分,分成存储器卡和微处理器卡两大类;根据卡片与外界的数据传送形式来划分,可分为接触式和非接触式两种。本发明中的智能卡是指接触式的微处理器卡,包括GSM系统中的SIM卡、CDMA系统中UIM卡、PHS系统中的PIM卡以及3G系统中的USIM卡等。智能卡的基本特性和功能在ISO/IEC7816系列标准中有所规定。
目前,智能卡已广泛用于电信、金融、政府、交通、医疗、公共管理、互联网等领域。尤其是在移动通信领域,SIM卡作为一种应用在移动通信领域的智能卡,不仅得到了广泛应用,而且还有效促进了移动通信技术的迅速发展和普遍应用。SIM卡也是当今智能卡应用最成功的典范。
长期以来,智能卡集成电路和软件技术一直沿用了其诞生以来的基本设计理念和内部架构。一方面,智能卡技术获得了巨大的商业成功;另一方面,智能卡技术也受到越来越多其它新技术的挑战,如果不能够在技术平台上尽快地实施升级,智能卡也面临着被淘汰的危险。随着对数据安全和存储容量需求的提高,传统智能卡的接口传输速度就成为开展新应用的瓶颈了。
传统智能卡的接口规范是由ISO 7816标准来规定的,其传输速率通常在几kbps(kilobits per second,千位/秒)到几百kbps之间,实际上最常用的速率一般不超过115.2kbps。假设以该速率传输一首MP3歌曲,通常其大小在4.5M字节左右,则需要三百多秒,如果考虑到传输的开销和容错等因素,时间还会加长。由于现代密码算法的安全强度和复杂度加大,导致智能卡与外界交换和处理的数据量也越来越大,传统的较低的传输速率越来越制约着新的安全应用的发展,比如多媒体数据的实时加/解密、编/解码或DRM应用。另外,由于存储技术的发展,智能卡上的存储空间和存储内容也越来越多,接口速度低与存储容量高之间的矛盾也越来越尖锐,因此有必要为智能卡增加高速数据接口,提高其外部数据传输速率。
由于传统智能卡只集成了ISO/IEC7816接口通讯协议,该协议只能在特定的智能卡终端设备上读取智能卡内容,由于接口的不通用导致无法与使用标准接口的计算机设备、电信设备等直接相连。这种局限性限制了智能卡在相关领域的应用和发展。因此,为智能卡增加标准和主流的传输接口,可扩大其应用领域;考虑到目前各种应用领域采用的接口标准不统一,在智能卡上集成多种高速数据接口并进行复用是一种可行的解决办法。
为智能卡增加高速数据接口的工作已经进行很久了,比如通过USB接口来扩展应用,其局限性在于这些方案是针对增加某种特定接口的;本发明旨在解决多种高速数据接口集成和复用的方法,并提出了ISO/IEC 7816与高速数据接口同时进行数据通信以实现智能卡系统的多模工作,以及通过协议检测来识别通信模式的方法。
发明内容
本发明的目的在于针对传统智能卡的外部数据传输速率低、接口单一、应用领域和范围受限的问题,提供一种在智能卡ISO/IEC7816接口的基础上,集成多种高速数据接口的方法,使ISO/IEC7816接口和其它任一种高速数据接口既可以单独/独立工作,也可以同时/协同工作;同时,既可以根据外部输入的高速数据接口信号和类型灵活选择和控制高速数据接口的开启或关断,也可以通过ISO/IEC7816接口信号灵活选择和控制高速数据接口的开启或关断,以及通过控制各种接口的工作模式来降低智能卡功耗;同时,本发明还要提供能够实现上述方法的新型智能卡。
为实现上述目的,本发明所提供的在智能卡上集成多种数据传输接口的方法,是在ISO/IEC7816接口通讯协议的基础上,将ISO/IEC7816接口信号所未用的三条管脚C4、C6、C8进行信号复用,在此三条管脚上集成多种高速数据接口;并采用双总线对高速数据接口和ISO/IEC7816接口分别进行控制和传输;控制器和相关电路对输入的高速数据接口信号进行检测和识别,确定其接口类型和通信协议,选通并开启对应的高速数据接口的工作电路,同时关断其余高速数据接口的工作电路。
如上所述的在智能卡上集成多种数据传输接口的方法,其中,高速数据接口为USB接口、SD接口和MMC接口。
如上所述的在智能卡上集成多种数据传输接口的方法,其中,管脚信号复用的方法是将管脚C4、C8分别作为USB接口的差分数据线D+、D-,并在此基础上,将管脚C4作为SD接口的DATO线以及MMC接口的DAT线,将管脚C8作为SD接口及MMC接口的CMD线,将管脚C6作为三种接口的时钟信号线。
如上所述的在智能卡上集成多种数据传输接口的方法,其中,在上电时先将所有高速数据接口的工作电路关闭,然后再根据具体的输入信号开启相应的通信工作电路;或者,在上电时将所有高速数据接口的工作电路打开,然后根据输入的信号类型,关掉不需要的高速数据接口的工作电路。
如上所述的在智能卡上集成多种数据传输接口的方法,其中,智能卡的数据传输采用的双总线结构,可以是两条高速总线的形式,或者一条高速总线、一条低速总线的形式。
一种集成多种数据传输接口的新型智能卡,包括基于ISO/IEC7816接口通讯协议的UART通信模块,在ISO/IEC7816接口信号所未用的三条管脚C4、C6、C8上集成多种高速数据通讯模块的接口,各通讯模块通过总线与SoC控制器连接,SoC控制器还连接有用于对各通讯模块的输入/输出控制电路信号进行甄别和控制的输入/输出选择电路和高速通信模块选择电路。
如上所述的集成多种数据传输接口的新型智能卡,其中,高速数据通讯模块包括USB通信模块、SD通信模块和MMC通信模块。
如上所述的集成多种数据传输接口的新型智能卡,其中,管脚C4、C8分别连接USB通讯模块接口的差分数据线D+、D-,并在此基础上,使管脚C4连接SD通讯模块接口的DAT0线以及MMC通讯模块接口的DAT线,管脚C8连接SD通讯模块接口及MMC通讯模块接口的CMD线,管脚C6连接三种通讯模块接口的时钟信号线。
如上所述的集成多种数据传输接口的新型智能卡,其中,UART通信模块通过低速总线与SoC控制器连接,高速数据通讯模块通过高速总线与SoC控制器连接;或者,UART通信模块通过一条高速总线与SoC控制器连接,高速数据通讯模块通过另一条高速总线与SoC控制器连接。
本发明的有益效果如下:(1)利用其保留的ISO/IEC7816接口和管脚排列布局,仍然可以在传统的智能卡终端设备上使用,实现最大的兼容性;(2)利用其新增的标准/通用的接口,新型智能卡不需要专用的智能卡读卡终端,使用标准接口就可以和计算机等外部设备直接连接使用;(3)利用其新增的高速数据接口,可以快速地交换数据,缩短通讯和操作时间,提高传输效率;(4)利用其通用的标准接口,配以简单的物理连接的适配器,可以将新型智能卡当作通用存储卡/设备使用;(5)多种标准或通用的接口集成在一起,可以方便地使用在不同类型的读取设备上,有效扩大使用范围,同时提高使用的便捷性。
具体实施方式
下面结合说明书附图和具体实施方式对本发明作进一步的描述。
为了在智能卡中实现多种接口传输协议,同时保持新型智能卡与传统的读卡终端设备实现最大的兼容性,一方面必须保证传统智能卡8个触点的排列次序和连接形式不变(以实现兼容性),另一方面必须对部分管脚进行信号复用(以实现多种数据传输接口协议)。在新型智能卡的所有接口中,智能卡传统的和基本的功能要求决定了ISO/IEC7816接口信号具有优先权,所有其他接口信号不能与它产生冲突和复用。因此,在本发明中,将高速数据接口和ISO/IEC7816接口分开,采用独立的通信模块和不同的总线分别进行控制和通信,它们之间根据应用的需要,既可以独立工作,也可以协同/同时工作。
智能卡的管脚排列和布局如图1所示。
根据ISO标准规定,芯片触点从左上角到右下角顺序地编号。根据ISO/IEC 7816-2,智能卡触点名称和功能如下表所示:
触点 |
名称 |
功能 |
C1 |
Vcc |
电源输入 |
C2 |
RST |
复位输入 |
C3 |
CLK |
时钟输入 |
C4 |
RFU |
为未来应用保留,目前未使用 |
C5 |
GND |
接地 |
C6 |
Vpp |
编程电压(一般不再使用) |
C7 |
I/O |
串行通信输入输出 |
C8 |
RFU |
为未来应用保留,目前未使用 |
根据对智能卡管脚排列的分析,可以看出,ISO/IEC7816接口信号实际上只使用了其中的5条管脚触点,有3条管脚(C4、C6、C8)未用,由此可以看出,一方面可供复用的管脚数量非常少,只能利用这三条管脚实现高速信号复用,另一方面需要同时集成多种接口,因此对所选用的接口类型就有比较严格的要求:首先,数据传输线不能过多,最多只能有三条;其次,从智能卡的外形限制以及和外部终端通信的便捷性来看,其接口类型以数字接口最佳;第三,这些接口还必须适合智能卡应用要求,比如功耗较低、物理传输层为包传输、非面向连接的、可支持特殊应用(如流传输)等;第四,同时为了增强智能卡的适应性,新增的高速数据接口须具有可扩展性好、标准化程度高、使用范围广、易于连接等特点;第五,由于要在智能卡三个管脚上集成多种接口,各种接口的电气信号特征需要尽量一致,以防止由于不同接口的电气特征的差异所造成的集成困难和通信故障,也必须考虑在智能卡内部对各种接口的信号进行电气隔离,防止干扰。所有这些限制条件和要求导致在智能卡集成多种高速数据接口是一项非常有挑战性的工作。
根据上述条件和要求,从众多的标准或流行接口中,选择USB(Univer-sal Serial Bus,通用串行总线)、SD(Secure Digital Card,安全数字卡)、MMC(MultiMedia Card,多媒体卡)三种接口作为新型智能卡的高速数据接口。
USB接口是一种广泛应用在PC领域的总线接口技术,具备连接单一化、软件自动侦测以及热插拔、即插即用的功能。USB采用四线电缆,其中两根为电源供应,另两根是差分数据线(D+、D-),通过差模方式串行传输,信号采用了NRZI(Non-Return to Zero Inverted,非归零倒置)脉冲编码和比特填充方式。
MMC接口设计非常简单:只有7针。在接口中,电源供应是3针(包括电源Vcc以及数字地和模拟地),而数据操作只用3针的串行总线,即CMD、DAT、CLK三线。MMC的操作电压为2.7伏-3.6伏,写/读电流只有27mA和23mA,功耗很低。它的读写模式包括流式、多块和单块。高速MMC卡(MMCplus和MMCmobile)最快速率可达到52Mbps,支持双电压功能,既能运行在现有的2.7-3.6V电压环境下,也能胜任更低的1.65-1.95V电压。
SD接口由MMC接口发展而来。SD卡为9引脚,其主要引脚的定义与MMC卡并没有太大的区别。SD卡接口除了保留MMC的7针外,还在两边加多了2针作为数据线,目的是通过把传输方式由串行变成并行,以提高传输速度。但它仍然支持单线数据线的传输模式,在这种情况下,除了电源供应外,其真正需要的传输线也只有三线(即CMD、CLK、DAT0三线)。
除了上述三种接口外,IEEE1394接口也是值得关注的一种接口,可以作为本发明的候选接口之一。
在保证实现功能要求的基础上,本发明采用管脚复用的方法,将智能卡的C4管脚作为USB接口的D+,C8作为D-。
根据USB协议的规定,USB接口传输数据的时钟精度要求比较高。对于低速传输,例如,根据USB版本1.1的控制传输和中断传输,以1.5Mbps速率,数据信号误差在±1.5%(或15000ppm)范围内;对于全速传输,例如,根据USB版本1.1的等时传输或大容量传输,以12Mbps速率,数据信号误差在±0.25%(或2500ppm)范围内;对于USB 2.0的高速传输模式,其数据信号发送速率为480Mbps,信号误差在±500ppm范围内。由此可见,要实现USB通信,须提供高精度的时钟信号。虽然目前的陶瓷振荡器、晶体振荡器、谐振器或其它振动装置的精度可以满足上述的精度要求,但由于智能卡的厚度非常薄、芯片封装面积极其有限,其厚度、体积都导致其不能用在智能卡内;虽然曾有方案提出将振荡器安装在卡片的片基上,与芯片通过连线相接,但这种不仅增加了智能卡的制造复杂度和成本,而且这种方案仅适用大卡形式的智能卡,相比之下,采用外置时钟源,即由终端设备/读卡器来提供高精度的时钟源是行之有效的方法。终端设备不受体积、厚度的影响,完全可以采用高精度的时钟源。因此,本发明采用时钟外置方案,智能卡内部不提供USB通信所需要的高精度时钟,由外部的终端设备/读卡器来提供此高精度时钟,通过智能卡管脚C6引入到芯片内部,从而实现USB接口传输功能。
在选定USB接口复用方案的基础上,则要求SD/MMC接口的CMD、CLK、DAT/DAT0三条线的布局要与USB接口尽量保持电气上的兼容性,以减少实现的复杂度和难度,这样,可将USB接口所用的两条数据线的管脚(C4、C8)也当作SD/MMC接口的数据类型的传输线使用,即当作DAT0/DAT和CMD线。C6则可以当作三种接口的时钟信号线。
本实施例中,具体的管脚复用方案如下表和图2所示。
由于USB、SD、MMC是通过公用的I/O进行管脚复用与外界通信,为防止多个接口同时打开造成的信号短路,同一时间最多只能有一种高速数据接口输出信号,因此,在新型智能卡内部,一方面,必须对输入的高速数据接口信号进行识别,以确定其接口类型和通信协议;另一方面,根据选定的高速数据接口类型,选通和开启对应的高速数据接口的工作电路,并关断其余高速数据接口的工作电路,以便同一时间在智能卡管脚上最多只有一种高速数据接口信号输出,以防止不同的高速数据接口信号发生混乱以及相互干扰。
高速数据接口的输入/输出控制可以有两种实现方案,分别如图3和图4所示。图3所示为集中统一控制方案,由SoC控制器对高速数据接口的输入/输出进行集中统一控制;图4所示则为分散独立控制方案,高速数据接口的输入/输出控制由各个高速通信模块自己控制,通过控制各个通信模块的工作与否来控制同一时间只有一种输出电路处于工作状态。
由于ISO/IEC7816接口的传输速率较低,而USB、SD、MMC的传输速率较高,为了提高数据传输效率和吞吐量,在新型智能卡内部,设置独立的低速接口控制器来实现ISO/IEC7816接口的通信功能;同时,为了实现多种接口同时传输数据,新型智能卡采用双总线结构,ISO/IEC7816接口接到一条总线上,高速数据接口则接到另一条总线上,将低速接口控制器和高速数据接口控制器分别接到不同的总线上,由SoC控制器5来选择和控制总线的使用。SoC控制器5既可以单独启用一条总线来选择一种接口进行数据传输,也可以同时启用两条总线在ISO/IEC7816接口和高速数据接口上同时传输数据独立控制数据传输,既可以提高数据吞吐量和传输效率,还可以提高智能卡接口的扩展性和适应性,扩大其应用范围。双总线既可以是同一类型的总线,如均是高速总线,也可以是不同类型的总线,如一个是高速总线,另一个是低速总线。为了与高速数据接口适配,与高速数据接口一同工作的总线必须是高速总线,以保证实现数据的高速传输。这样,新型智能卡可以根据不同的应用场合来选择不同的总线工作模式,从而提高新型智能卡的兼容性,扩大其使用范围。
由于智能卡对功耗要求比较高,新型智能卡必须对多种高速数据接口进行控制(选通或关断),以降低卡片的功耗。根据对接口的使用状况,新型智能卡有多种工作模式。新型智能卡在上电初始化芯片后,根据外设输入的接口信号的不同选择进入到不同的工作模式。如果只有ISO/IEC7816接口信号,则卡片进入低功耗工作模式,关掉所有的高速通信接口工作电路,只有ISO/IEC7816通信电路工作,新型智能卡按照传统智能卡的工作流程进行工作;如果只有高速数据接口信号,假设是USB信号,则进入高速通信模式,启用USB通信模块及相关电路,关掉另外两种高速数据接口(即SD、MMC)和ISO/IEC7816接口相应的工作电路,按照对应的高速数据接口协议(即USB协议)进行工作。如果既有ISO/IEC7816接口信号,又有高速数据接口信号,假设是USB信号,则进入复合通信模式,同时启用ISO/IEC7816通信电路和USB通信电路,仍然关掉其余的高速数据接口电路。如果在任意某一状态,某部分工作电路在一段时间内没有任何操作,则此部分电路进入休眠模式以节电;当有新的指令到来后,智能卡就唤醒相应的工作电路,恢复到原来的工作状态。
本实施例中,由于采用双总线独立通信的结构,新型智能卡可以根据应用的需要,可以通过模式转换指令在各种通信模式之间进行互换,以重新开启或关闭某个接口,但同时最多只能有一种高速通信接口处于工作状态。
本发明优选实施例的管脚分配如图2所示,各种接口的内部连接和控制关系如图3所示。
本实施例中,智能卡由SoC控制器5、低速总线3、高速总线8、UART(ISO/IEC7816)通信模块2、输入/输出选择电路4、USB通信模块7、SD通信模块9、MMC通信模块10以及相应的输入控制电路15、输出控制电路(11、12、13)、高速通信模块选择电路6等几部分组成。
每个通信模块负责对一种接口信号进行识别和处理,UART(ISO/IEC7816)通信模块2负责处理ISO/IEC7816接口信号,USB通信模块负责处理USB接口信号,SD通信模块负责处理SD接口信号,MMC通信模块负责处理MMC接口信号。若某通信模块对输入的信号判断为有效信号,则它向SoC控制器5发出中断请求;SoC控制器5根据此中断请求的类型,开始控制相应的通信模块进行通信。
UART(ISO/IEC7816)通信模块2通过低速总线3与SoC控制器5相连。在智能卡上电时,若接口1有信号,UART(ISO/IEC7816)通信模块2产生ISO/IEC7816中断请求,发送给SoC控制器5;SoC控制器5根据此中断类型,通过低速总线3与UART(ISO/IEC7816)通信模块2进行通信,启动ISO/IEC7816接口信号处理流程,实现传统智能卡的功能。
输入控制电路15和输出控制电路11、12、13由SoC控制器5来控制其是否选通,同一时间只有一个电路处于工作状态,即或者输入控制电路15工作,或者输出控制电路11、12、13三个中的一个电路工作。
当智能卡上电时,SoC控制器5开启高速数据接口输入控制电路15。当智能卡的高速数据接口管脚14有信号输入时,信号同时输入到各个高速通信模块7、9、10中,各个高速通信模块对进行识别,如果为有效信号,则产生中断请求信号发送给SoC控制器5。假设输入的是USB信号,则USB模块产生中断请求。SoC控制器5接收到USB模块的中断请求后,通过高速通信模块选择电路6开启USB通信模块7的输出接口控制电路13,关闭其它高速通信模块9、10及其输出接口控制电路12、11;同时,SoC控制器5根据此中断类型,启动USB接口信号处理流程,通过高速总线8与USB通信模块7进行通信,开始USB接口通信。
智能卡上电时,高速通信模块处可以根据需要处于开启或关闭状态。从降低功耗的角度出发,智能卡可以在上电时先不开启所有高速通信模块的工作电路,或者只开启其中的输入信号识别电路,然后在判断没有ISO/IEC7816信号输入的情况下或者根据SoC控制器的指令再开启高速通信模块。从提高响应速度的角度出发,智能卡也可以在上电时,先将所有高速通信模块打开,然后根据中断请求关掉不需要的通信模块工作电路。
在图4所示实例中,高速数据接口的输入/输出电路16、17、18是由各个高速通信模块独立控制的。通过高速通信模块选择电路6来选择一个高速通信模块工作,同时保证只有一个输出电路可以工作;然后由该模块来控制其输入/输出电路是处于输入状态还是处于输出状态。
高速通信模块选择电路6是一个两输入三输出电路。由于两线输入最多只有四种输出状态,因此,选用其中的三种状态作为三种高速通信模块的使能控制信号,剩下一种状态作为三种高速通信模块均不接通的信号,从而保证同一时间最多只有一种高速通信模块被选通,也就实现了同一时间最多只有一种高速数据接口工作的功能。
在启用ISO/IEC7816接口后,若需要同时启用某个高速通信接口,则可以通过ISO/IEC7816接口发送相应的APDU指令给SoC控制器,由SoC控制器启动相应接口的工作电路。
考虑到在此公开的对本发明的描述和特殊的实施例,本发明的其他实施例对于本领域的技术人员来说是显而易见的。这些说明和实施例仅作为例子来考虑,它们都属于由所附权利要求所指示的本发明的保护范围和精神之内。