在智能卡和主站之间通信的方法

文档序号:6466621阅读:425来源:国知局

专利名称::在智能卡和主站之间通信的方法
技术领域
:本发明涉及具有微控制器的卡类便携设备(portablearticle)。本发明进一步涉及具有用于容纳这种卡类便携设备的插槽的连接器。
背景技术
:智能卡(smartcard)是在ISO标准7816中定义的标准化便携设备,并且它们可以被特别用于提供保密数据的安全管理并提供识别。为了与外界通信,这些卡通常使用在上述标准的第三和第四部分定义的通信协议。具体地说,这些卡包括在参考标号T=0的情况下对本领域技术人员公知的协议,该协议执行被定义格式的命令应用协议数据单元(APDU)命令。通用串行总线(USB)标准描述了通用串行总线系统,并且已被开发以使其能够用于在例如由个人计算机构成的工作站的主站(hoststation)与例如打印机和键盘的任一外部设备之间进行数据交换,将被以简单并且快速的方式操作。该系统的使用表现了许多优点。首先,它需要两条导线VBUS和GND以为外部设备供电,以及用于数据信号差分传输的两条导线D+和D-。其次,它使数据能够以通常高于常规安装在个人计算机上的串行链路所建议的那些速率的速率传输。这些速率在全速上是12兆比特每秒(Mb/s),在低速上是1.5Mb/s。进一步来说,它与外部设备的热“即插即用”兼容,即,它与识别这种动态基础上的外部设备的主机兼容。通过这种识别,仅当所述外部设备连接时,驻留在主机的大容量存储器中的外部驱动程序才被载入所述计算机的读/写存储器。当外部设备断开连接时,相同的驱动程序才从所述读/写存储器中卸载。此外,通用串行总线能够使多达126个外部设备在单独的物理USB端口上以级联方式连接。最后,USB外部设备并不独占由计算机部件控制的硬件中断请求(IRQ)。现在,保证对主站访问的安全以及同样的对连接到所述主站的服务器的访问正变得越来越重要。相同的系统适用于在这种站的控制下保证数据传输的安全,尤其是从专用于电子邮件和浏览因特网的所述站中的应用软件中来的数据,其中该系统需要通过加密算法方式验证的数据,该方式使它能够证明所述数据并且对其签名。假设如上所述的已有技术,通过使用智能卡,经过连接到主机的USB端口并执行USB/ISO协议转换专用的智能卡阅读器,上述安全需要已经自然被满足,所述智能卡利用ISO标准7816的第三和第四部分中所述的协议操作。这种阅读器首先与使用USB系统的主机通信,其次与使用ISO系统的卡通信。不幸地是,这种阅读器非常昂贵。它们需要具有经过卡的时钟(CLK)接触区域用于产生时钟的装置,该时钟用于驱动该卡的微处理器中的中央处理器(CPU)的操作。它们还需要具有用于产生复位信号和用于经过专用接触区域将所述信号传输到卡的装置,该专用接触区域已知是复位(RST)区域。而且,当卡是纯ISO卡时,用于与卡通信的程序不具有USB系统的上述优点,该USB系统尤其涉及少量导线和高速数据速率。
发明内容本发明的目的是降低成本。在第一方面,本发明提供在诸如个人计算机的主站和诸如智能卡的具有微处理器的便携设备之间通信的方法,该方法的特点在于它包括主站将特定请求通信给具有微控制器的便携设备的步骤。有利地是,该总线系统是通用串行总线(USB)系统,并且特定请求使用所述系统的控制转换模式被通信给具有微控制器的便携设备;该特定请求是为具有微控制器的便携设备提供阅读器的功能的特定请求;微控制器包括使中央处理器与易失性存储器关联的部件,并且特定请求是触发所述部件的易失性存储器的复位的DOReset()请求;特定请求是使应答串(answerstring)能够在复位便携设备上恢复的GetATR()请求;特定请求是使主站能够将命令首标(commandheader)发送到便携设备的SendADPU()请求;特定请求是使主站能够恢复由便携设备传送的数据并恢复状态字的特定GetData()请求;特定请求是使主站能够将数据通知给便携设备的SendData()请求;特定请求是用于防止主站触发便携设备中的操作的低功耗模式的IsReady()请求;响应于使所述站能够触发所述便携设备中的低功耗模式的请求,便携设备将OS_STATUS应答发送到主站,所述响应以这种关于定义便携设备的当前状态的方式被编码;便携设备的当前状态是静默(mute)状态或其中卡当前正在进行处理的状态;具有微控制器的便携设备是微控制器卡;并且该卡的微控制器包括包含操作系统的非易失性存储器(non-volatilememory),该操作系统适于利用执行诸如在ISO7816标准中定义的那些的APDU命令的协议通信。在第二方面,本发明通过提供具有诸如智能卡的具有微控制器的便携设备解决此问题,该设备适于用总线与诸如个人计算机的主站通信;该总线连接到所述便携设备和所述主站;该设备的特点在于它适于直接与主站通信。有利地是,便携设备由智能卡构成;总线系统是USB总线系统;并且便携设备包括使中央处理器与非易失性存储器关联的部件,该非易失性存储器承载适于管理诸如在ISO标准中定义的那些的APDU命令的操作系统。本发明在阅读以下非限制性说明书时将被更好地理解。应参考附图阅读本说明书。图1示出主工作站和本发明的便携设备之间可能的连接方案;图2示出主个人计算机和本发明的智能卡之间的连接;图3是适于容纳用于根据本发明与主机连接的智能卡的连接器元件的透视图;图4是用于根据本发明与主计算机连接的智能卡的连接器元件的正视图;图5是示出涉及用于根据本发明与主计算机连接的卡的微控制器的操作的不同元件的方框图;图6是示出用于根据本发明的系统的逻辑结构的图,该系统用于在卡和主机的软件应用之间通信;图7是示出通过本发明的智能卡的通信会话如何发生的流程图;图8A和8B示出在用于由卡执行ISO1类命令(ISOtype1command)的模式中发生的处理;图9A到9D示出在用于由卡执行ISO2类命令的模式中发生的处理;和图10A到10D示出在用于由卡执行ISO3类命令的模式中发生的处理。具体实施例方式本发明尤其适用于使主站安全的环境,例如安装了如由微软(Microsoft)发行的名为Windows2000的操作系统的站,Windows2000作为商标被保护。该操作系统和被设计以操作该操作系统的某种软件应用规定了意图明确地保证数据传输安全的卡的使用,例如对email签名,并用验证算法和否认(repudiation)算法保证对计算机网络访问的安全。总之,本发明可以在任一具有与ISO标准7816的第三和第四部分兼容的操作系统的卡上实施。图1示出具有集成集线器2的主站1,所述集线器2配置了如由1998年9月23日出版的1.1版USB标准的特定端口21、22和23。所述USB端口可以连接到具有根据本发明的微控制器的便携设备3,如用于任一直接连接端口21和22的设备的情况,或经另一集线器4间接连接,如用于连接端口23的设备的情况。如图2所示,主站是例如由个人计算机1形成的工作站,并且具有微控制器的便携设备是智能卡3。智能卡3连接到不是阅读器的连接器5,所述阅读器将具有用于阅读和/或写卡,和/或用于使能这种写和/或读的主动装置。在传统方式中,计算机1具有连接到监视器12和键盘的中央单元11。中央单元11包括主板。主板尤其包括微处理器、多条易失性存储器。它连接到构成用于计算机的大容量存储器的硬盘,还连接到集成在计算机中的集线器中的至少一个USB端口。现在参照图6,可以看到主机1包括至少一个软件应用13,并使用智能卡。它还具有管理由应用程序使用的接口的软件部分PC/SC14。它还具有由两个主要逻辑部分(图6中未示出)构成的中间软件驱动程序15。第一部分通过引导装入被载入主机的读/写存储器,并提供与PC/SC软件部分14的接口,该部分模拟用于连接主机的本发明的一个或多个智能卡的阅读器的存在。这是虚拟阅读器。第二部分被存储在主机的大容量存储器中,并当卡确实连接到被寻址并被配置的主机时被载入到读/写存储器中。该第二部分用于将来自PC/SC部分或来自卡的信息传输到各自的目的地,并且它执行数据转换。它还包括用于管理USB总线上的数据分配的主机16的控制器部分。最后,它具有构成主机和外界之间的接口的硬件部分17。在图2中示出的卡3,例如由如在所述ISO标准7816中或在ETSIGSM标准11.11中描述的标准ISO格式卡或“插入(plug-in)”格式卡构成。这种卡在图3中被更详细的示出。它包括具有插入其中的电子模块的塑料卡体31,该电子模块包括经连接线连接到与所述卡体表面齐平的接触区域32的微控制器。图4示出卡3的接触区域32。作为例子,其上有8个部分。这些区域被标记为C1、C2、C3、C4、C5、C6、C7、和C8。区域C1和C5分别连接卡的微控制器的Vcc和GND焊点,并且它们用于为微控制器供电。区域C4和C8分别连接到所述微控制器的焊点D+和D-,所述焊点构成利用USB总线系统传输数据的差别对(differentialpair)。其它区域被用于利用ISO标准传输数据,不在上述USB总线系统中使用。卡3的微控制器33在图5中以图解法示出。它包括部件331,部件331将中央处理器CPU与易失性读/写存储器RAM和非易失性ROM和EEPROM存储器结合,其中ROM承载卡的操作系统。它还具有应用ISO系统的通信接口333、首先与传输系统334关联并其次与寄存器335关联的USB引擎333、以及外部块接口(externalblockinterface)(EBI)336。传输系统至少连接卡的D+和D-区域。它还连接用于供电目的的Vcc和GND区域。卡的操作系统337、EBI336、和USB引擎333在图6中被图解式地示出。如在图3中可以看到的,卡实际上被插入卡连接器5。在本发明中,连接器5是小的。它占据不超过用于卡3的USB连接器51和连接器52。在USB标准中,数据可以以两种速率传输,允许12Mb/s数据速率的全速,和允许1.5Mb/s数据速率的低速。在本发明中,数据以低速传输。因此可能根据USB总线的数据线产生内部时钟信号。其结果是,连接器5不具有任何用于支持卡3的时钟信号的装置。在USB标准中,提供四种数据传输模式。期望单独用于执行全速通信的大量(bulk)传输模式和同步(isochronous)传输模式。期望用于在低速通信中与全速通信中二者均执行的控制传输模式和中断传输模式。在本发明中,卡构成以控制传输模式直接与主机通信的USB外部设备。卡可以因此中断并处理数据,所述数据通过USB总线以低速USB信号的格式对卡寻址。它还包括具有使它能够处理USB请求、给它地址、并配置它的程序,所述USB请求专用于控制传输模式并且尤其是常规请求,所述常规请求使主机能够恢复卡的描述符(descriptor)。在USB标准中,为了恢复它们的描述符,为了将地址赋给它们,并且为了配置它们,控制传输模式被请求用于全部USB外部设备。USB标准不建议使用控制传输模式,该控制传输模式用于处理不同于在上述类型的控制步骤期间的数据传输。除了常规USB请求使它能够识别、寻址、并且配置外部设备之外,6种售主特定(vendor-specific)请求已经被定义。卡具有用于识别并处理这些售主特定请求的装置。这些售主特定请求使它能够再现与主动智能卡阅读器关联的ISO7816-3或7816-4卡的操作,同时,使用USB协议和关联数据并且不使用由阅读器构成的另外接口。这些请求尤其用于保证APDU命令被处理,并且在不初始化与主机的通信接口的情况下,初始化和重新初始化卡的微控制器。卡首先由安装在响应于发送售主特定请求的主机上的驱动程序控制,并且其次由包含在卡的微控制器和其操作系统中的USB引擎控制,二者均负责识别并处理那些请求。最后,卡操作“好像”它连接到智能卡阅读器,但是同时使用USB协议,这指的是接口的改变,即从ISO智能卡阅读器到USB连接器的改变,对于主机应用层是透明的。本发明的售主特定请求在下面的表中被定义。在该表中-在bmRequest列中给定的值识别请求的特征。如果bmRequest的值是40h,那么请求是其数据阶段被从主机向卡传输的售主特定请求。如果bmRequest的值是C0h,那么请求是其数据阶段被从卡向主机传输的售主特定请求。-在bRequest列中给定的值使USB引擎能够识别请求DoReset()和IsReady(),同时如果最低有效位被称作比特0,在比特4和5中的每一情况(occasion)仅测试1比特。-在wValue列中给定的值对每个请求是特有的。-同样的情况适用于在wIndex列中给定的值。-在wLength列中给定的值指定在请求的数据阶段中的字节数量。-在表的最后一列中给定的模式对应于USB数据传输方向。OUT指的是在数据阶段期间数据从主机向卡传输,同时IN模式指的是数据从卡向主机传输。最初,两种请求被专用于卡复位序列。这些是请求DoReset()和GetATR()。请求DoReset()用于复位微控制器和部件331的读/写存储器RAM,而不用复位与主机的通信接口。它通过包含在微控制器中的USB引擎333而被彻底地处理,并且它不需要通过卡的操作系统的干预。售主特定请求DoReset()的自动处理使智能卡本身能够产生复位信号,并且与售主特定请求GetATR()相关,以在ISO模式中保存复位信号的一般操作。请求GetATR()用于将应答串恢复以使卡复位(其中ATR代表复位应答)。该应答在ISO标准7816-3中被定义。它识别卡。将会观察到多数外部设备具有用于异常操作的情况中的复位。USB协议通过给主机发送USB热复位的可能性,来提供这种引起外部设备彻底重新初始化的环境。然而,依靠智能卡的使用的应用程序可以使用智能卡复位,用于仅重新初始化由所述卡的微控制器管理的读/写存储器。在这种情况下,不需要复位主机的通信接口,那样将会浪费时间。因此,没有正当理由使用USB热复位信号。此外,此复位信号是完全异步的,这指的是,如果任一命令被处理,那么它可以被考虑而不用管卡或正被处理的命令的状态,这是在那些目前可用于已有技术的解决方案中使用智能卡阅读器的原因,这里它是通过使用连接到微控制器的复位接触焊点的接触区域,复位微控制器和其关联存储器的阅读器。此后,四种请求被专用于处理APDU命令。这些命令中的三种是SendAPDU()、GetData()、和SendData()。SendAPDU()请求用于将ISOAPDU命令首标发送到卡,即部分类别(CLAss)、指令(INStruction)、参数P1、参数P2、以及参数P3。请求GetData()用于恢复由第2类ISO命令的环境中的卡发送的数据以及恢复由ISO标准7816定义的状态字二者,当命令的执行已经被终止时,它将在先发送的命令的结果通知给外界。请求SendData()除用于发送第3类ISO命令环境中的命令的首标参数之外,还用于发送数据。最后,第四请求是用于防止触发低功耗模式和处理APDU命令的排序的请求。这是请求IsReady()。售主特定请求IsReady()的半自动处理用于避免在执行APDUISO命令的同时转换为低功耗。由卡请求以处理APDUISO命令所需的时间不能被预见。不幸地是,当总线在一定的时间长度内没有使用时,USB协议规定低功耗模式,并且如果用于处理APDUISO命令的时间过长,这就可能发生。该请求因此防止在处理APDUISO命令的同时转变为低功耗模式,同时仍然使这种转变在其它情况下可能。更精确地说,如果命令的确正被处理,那么它使恢复这种卡的操作系统状态或正被执行的命令状态成为可能。它被包含在主机中的驱动器15周期性发送,例如5毫秒(ms)一次,同时卡正在处理APDUISO命令。它可以被包含在微控制器中的USB引擎333处理。这尤其适用于当微控制器忙或静默并且因此不能应答时。尤其是当它可用并且可以因此响应时,它也可以由卡的操作系统处理。除了以ISO模式执行常规智能卡操作并且执行标准USB外部操作之外,这组售主特定请求使它可能重新构成与卡关联的智能卡阅读器的行为。而且,对IsReady()请求的OS_STATUS响应也已经被定义。该请求被编码在一个字节上,该字节具有定义该卡的当前状态的其前四个比特,以及指定所述状态的后四个比特。因此,当比特7是1时,那就是说卡处于被称作MUTE(静默)的静默状态。当比特6是1时,那就是说卡的操作系统正在处理,并且因此该系统不能用于任何其它处理。该卡随后被称作处于BUSY(忙)状态。当比特5是1时,那就是说由卡在先接收的命令的处理已经终止,并且操作系统准备发送状态字SW1SW2。该卡随后被称作处于状态字阶段(SWP)。当比特4是1时,那就是说卡的操作系统准备发送或接收与较早命令相关的数据。该卡随后被称作处于数据传输阶段(DTP)状态。比特3、2、1和0还提供关于当前状态的信息。它们可以是有用的,例如,当命令很长时,以便避免引起超时,即,由于命令已经超过一些最大指定时间那么就采取行动。在这种情况下,其值循环增加。在其值是Fh后,它因此返回0h,从而使包含在PC内的驱动程序检测一些动作。利用USB协议在ISO标准7816的部分3和4中定义的通信协议的纯封装(pureencapsulation)将引起与事实关联的时间的损耗,该事实是仅当由主机请求这样作时卡可以在USB总线上发送信息,以及一些信息在执行APDU命令的环境中没有任何用途。通过将不但是卡的当前状态、而且是命令的当前状态通知给卡驱动程序,售主特定请求IsReady()的使用使该时间长度能够减小,因此使它可能消除在ISO7816-3中定义的过程字节步骤。如果卡的操作系统在由ATR串定义的时间长度内不返回数据,那么ISO标准7816-3规定超时管理。对于不能在该时间内处理的命令,标准还规定构成保留值的将被使用的字节60h,该保留值用于指定卡仍然在进行处理。当卡发送该字节时,它具有重新初始化用于触发超时的计数器的效果。该超时管理可以使用响应于IsReady()请求而返回的值而被再现。图7示出如何发生与本发明的智能卡的通信会话。在左边,该图示出由卡的USB引擎执行的处理,并且在右边,它示出由卡的操作系统执行的处理。由卡的操作系统执行的处理具体包括以下处理。“卡连接”到主机的USB端口。主机随后被通知卡被连接,并且它构成新的USB外部设备。计算机随后供电给具有复位它的效果的卡。该复位包括复位卡RAM、EBI336、寄存器335、以及传输系统334。“列表并且初始化卡部件”。列表是使卡能够变得可操作的USB操作,即被寻址和被配置。一旦卡已经由在先处理复位,它就可以对主机识别它本身。它在卡以描述符形式发送不同块信息到主机的列出阶段期间。主机随后将地址给卡并配置它。卡随后显示为准备使用。“GetATR()接收”。在之前的列表和初始化步骤之后,卡等待售主特定请求GetATR()。这是在该步骤授权的唯一售主特定请求。“卡返回ATR串”。一旦售主特定请求GetATR()已经被接收,卡返回ATR串。因此,在主机中的应用层中模拟了存在于与ISO标准7816单独兼容的卡的复位。“OS_STATUS=00h”。卡操作系统采取其中它准备通过将其状态字节设置为00h以处理APDUISO命令的配置。“SendAPDU()接收”。卡操作系统接收以售主特定USB请求的形式的APDU命令的首标。“OS_STATUS=BUSY”。卡操作系统准备它本身以处理APDU命令首标,并且因此变得不可使用。为了通知外界它不可使用,并且实际上通知主机,所述操作系统通过将它设置为“BUSY”来更新其状态字节。在此步骤,从主机来的请求由卡的USB引擎处理。“处理命令”。卡的操作系统正在处理APDU命令首标。在此步骤,几个情况可能发生。首先,命令是类型1的APDU命令,即由它的首标单独表示的APDU命令和其执行导致卡发送状态字,否则错误地是类型2或3ISO命令,类型2ISO命令是由它的首标定义的命令,并且其执行导致数据与状态字一起由卡发送,并且ISO类型3命令是由它的首标和由数据定义的命令,并且其执行导致卡发送状态字。在此情况下,下面的情况被执行。“OS_STATUS=SWP”。卡操作系统准备返回状态字,其可再次用于处理向该处发送的请求,并且正在等待IsReady()请求以通知主机。此状态字节被由此更新。它取值“SWP”。“IsReady()接收”。卡的操作系统随后接收售主特定请求IsReady()。此请求的任务是通知外界为“MUTE”或“BUSY”的卡的操作系统状态,否则,为“SWP”或“DTP”的APDUISO命令正被处理的状态。在本情况下,对此请求的响应是“SWP”。为了恢复状态字,它通知主机它必须发送GetData()命令。“返回OS_STATUS”。卡的操作系统将它的状态字节返回给主机并且等待售主特定请求GetData()。“GetData()接收”。在售主特定请求已经被发送给它之后,卡操作系统接收GetData()请求,用于使计算机能够恢复由卡操作系统返回的数据的目的,正像本情况中的状态字这样。“返回状态字”。响应于GetData()请求,卡的操作系统返回状态字。它随后采取一种配置,其中它准备处理新APDUISO命令,并且该系统随后返回到在先描述的步骤“OS_STATUS=00h”。类型2和3的ISOAPDU命令具有处理数据阶段的具体特征,用于ISO2命令的从卡到主机,用于ISO3命令的从主机到卡。在这两种情况下,操作系统必须通知主机它准备用于数据阶段。以下步骤随后被执行。“OS_STATUS=DTP”。卡操作系统准备用于ADPUISO命令的数据阶段。它因此可再次用于处理被发送给它的请求,并且它等待接收IsReady()请求以通知外界可用性的此状态。状态字节因此被更新。它取值“DTP”。“IsReady()接收”。卡操作系统接收售主特定请求IsReady()。此请求的目的是通知主机为“MUTE”或“BUSY”的卡的操作系统状态,否则,为“SWP”或“DTP”的现在正被处理的APDUISO命令的状态。在本情况下,对请求的响应是“DTP”。最初,此响应通知主机它必须发送GetData(P3)请求以恢复构成对APDUISO命令的响应的数据。此数据随后包括P3字节,其中P3是APDUISO命令的参数之一。在第二情况下,该响应通知主机它必须发送SendData(P3)请求以发送APDUISO命令的另外的数据。此数据那么包括P3字节,其中P3是APDUISO命令的参数之一。“返回OS_STATUS”。卡操作系统将它的状态字节返回给主机,并且期望GetData(P3)请求或SendData(P3)请求。会产生两种情况。第一种情况是用于指定情况的ISO2APDU命令,其中没有关系于命令首标的错误或在卡的当前范围中已经被检测。那么,卡的操作系统期望GetData(P3)请求。“GetData()接收”。卡操作系统已经接收GetData()请求。此请求的功能是恢复由操作系统返回的数据,诸如,在本情况下,构成对类型2的APDUISO命令的响应的数据。“卡返回数据”。一旦GetData()请求已经被接收,卡返回构成对APDUISO命令的响应的数据,并且使其本身进入其中它准备返回状态字的配置,在该情况下,系统返回上述步骤“OS_STATUS=SWP”。第二情况是在指定情况下的类型3的APDUISO命令,其中在命令首标中或在卡的当前范围中没有检测出错误。那么,卡的操作系统期望SendData(P3)请求。“SendData()接收”。卡操作系统已经接收SendData()请求。当被请求以操作类型3的APDUISO命令时,此请求使另外的数据能够被发送。“卡恢复数据”。一旦请求已经被接收,卡恢复类型3的APDUISO命令的另外的数据,并且使其本身进入使它能够处理剩余的命令数据的配置。“OS_STATUS=BUSY”。因为卡的操作系统正在处理,它不再处理任何可能被发送给它的请求。它通过将其状态字节设置为“BUSY”来表示此状态。在此步骤期间,是卡的USB引擎处理由主机发送的请求。“处理命令”。操作系统终止APDUISO命令的处理,并且使其本身进入它准备返回状态字的配置。那么,它返回上述步骤“OS_STATUS=SWP”。由卡的操作系统处理的最后的情况是在任一APDUISO命令的执行期间发生的严重错误,例如,下列的安全攻击或数据破坏。在这种情况下,卡的操作系统在以下步骤中被设置为静默。“OS_STATUS=MUTE”。卡操作系统将其状态字节更新为“MUTE”,以通知主机直到下一DoReset()请求或直到卡已经断开连接它都不可使用。在此步骤期间,是卡的USB引擎处理由主机发送的请求。由USB引擎执行的处理具体包括以下处理。当操作系统(OS)不可使用,即OS_STATUS=BUSY或OS_STATUS=MUTE时,由主机发送的请求由USB引擎处理。而且,请求DoReset()总由USB引擎处理,以便避免其自身复位中的卡操作系统的干预。因此产生三种情况。图7中未示出的第一种情况对应于未声明为正被USB引擎处理的全部请求。对于这些请求,USB引擎只是通知主机它们超范围。第二种情况是DoReset()请求和执行以下步骤。“DoReset()接收”。不论卡操作系统的状态或当前被执行的APDUISO命令的状态,此请求总是被USB引擎处理。它引起卡的CPU和它的相关存储器复位,并且因为由配置形成的USB通信接口和外部设备的地址保持原样,只有中央单元和与其相关的存储器被复位。“复位序列”。卡的CPU和其存储器被再初始化。卡的操作系统期望GetATR()请求。复位序列使卡的操作系统进入使它能够处理被发送到此的请求的状态。第三种情况是IsReady()请求发生,同时卡操作系统不可使用。以下步骤随后被执行。“IsReady()接收”。卡的操作系统接收IsReady()请求。此请求的功能是通知主机卡操作系统的“MUTE”或“BUSY”状态,或正被处理的APDUISO命令的状态。卡的操作系统不可使用,是“MUTE”或“BUSY”。其它情况由卡的操作系统处理。“USB引擎返回OS_STATUS”。USB引擎通过返回它的状态字节通知主机卡操作系统状态。这样,与它的智能卡阅读器关联的ISO卡的操作被再现。现在,图7已经被描述,以下描述构成对图8A和8B、9A到9D、以及10A到10D的解释。对于如图8A中所示的类型1APDU命令,命令首标足以执行全部命令,并且来自于卡操作系统的唯一响应是状态字。因此,在IOS协议中,通信至少分为两个步骤。在第一步骤中,计算机发送命令首标。随后,在第二步骤中,卡发送字节60h以复位用于确定超时的计数器,否则发送状态字SW1SW2(图8B)。当字节60h被发送时,由发送可能是60h的其它字节与一直发送状态字SW1SW2的最后步骤构成后续步骤。相反,在本发明中,在图8B中示出的步骤被消除。它被对由主机发送的IsReady()命令的卡的响应代替。对于类型2ISOAPDU命令,命令首标开始执行,但是卡操作系统的响应还由状态字之外的数据构成。通信一般分为四个步骤。在如图9A中示出的第一步骤中,计算机发送命令首标。第二步骤传统上被用作ISO程序。在此步骤中,计算机接收程序字节60h、INS、或SW1。当程序字节是60h时,系统返回上述情况,直到它接收INS字节或SW1字节。一旦INS或SW1程序字节已经如图9B中所示接收,那么处理如参考图9C和9D的以下描述继续。然而,应该观察到在本发明中图9B的步骤被省略。它被对由主机发送的IsReady()命令的卡的响应代替。现在参照对应于是INS的接收程序字节的图9C,卡发送数据。最后,计算机等待程序字节,直到它变为如图9D中所示的SW1。如果INS未被接收,但是SW1被直接接收,那么SW2被接收,并且命令被终止。在本发明中,除了在9D中示出的情况外,图9C和9D中示出的步骤都被保存,在图9D中示出的情况是卡返回程序字节60h。对于类型3APDU命令,除了发送数据的方向不再是从卡到计算机,而是从计算机到外,该程序与上面参考处理类型2ISO命令的程序是相同的。总之,具有微控制器的卡类便携设备已经被描述。卡类便携设备包括存储器,其包含一组允许微控制器根据第一通信协议通信的指令。卡类便携设备还包括接口,用于将根据第一通信协议的命令转换为根据第二通信协议的命令,反之亦然。第一通信协议优选地符合ISO7816-3标准,并且第二通信协议符合USB标准。优点是卡类便携设备不需要为了根据USB标准进行通信的特殊操作系统。可以使用基于操作系统的ISO7816。这种操作系统可以以相对低的成本被实现,而用于USB的特殊操作系统需要相对高的开发成本。具有构成用于容纳卡类便携设备的插槽的一端的连接器和构成在主站的USB插槽中可插入的插头的另一端也已经被描述。插槽优选地包括一组接触元件,当兼容ISO7816的卡类便携设备被插入插槽中时,所述接触元件与兼容ISO7816的卡类设备的接触区域C1、C5、C4和C8接触。权利要求1.一种具有微控制器的卡类便携设备,其特征在于,该卡类便携设备包括存储器,所述存储器包括一组指令,所述指令允许微控制器根据第一通信协议通信;以及接口,用于将根据第一通信协议的命令转换为根据第二通信协议的命令,反之亦然。2.如权利要求1的卡类便携设备,其特征在于,所述第一通信协议符合ISO7816-3标准,所述第二通信协议符合USB标准。3.一种连接器,所述连接器具有构成用于容纳卡类便携设备的插槽的一端,以及构成在主站的USB插槽中可插入的插头的另一端。4.如权利要求3的连接器,其中所述插槽包括一组接触元件,当兼容ISO7816的卡类便携设备被插入所述插槽中时,所述接触元件与所述兼容ISO7816的卡类设备的接触区域C1、C5、C4和C8接触。5.一种在诸如个人计算机的主站和具有微控制器的诸如智能卡的便携设备之间通信的方法,所述便携设备通过总线系统连接到所述主站,该方法的特征在于,它包括所述主站将特定请求通信给具有微控制器的所述便携设备的步骤。6.根据权利要求5的方法,其特征在于,所述总线系统是通用串行总线USB系统,并且利用所述系统的控制传输模式将特定请求通信给具有微控制器的所述便携设备。7.根据权利要求5的方法,其特征在于,所述特定请求是为具有微控制器的便携设备提供阅读器的功能性的特定请求。8.根据权利要求5的方法,其特征在于,所述微控制器包括使中央处理器与易失性存储器关联的部件,并且特定请求是触发所述部件的易失性存储器复位的DoReset()请求。9.根据权利要求5的方法,其特征在于,所述特定请求是GetATR()请求,所述GetATR()请求使应答串能够关于复位便携设备而被恢复。10.根据权利要求5的方法,其特征在于,所述特定请求是SendAPDU()请求,所述SendAPDU()请求使主站能够将命令首标发送到便携设备。11.根据权利要求5的方法,其特征在于,所述特定请求是特定GetData()请求,所述特定GetData()请求使主站能够恢复由便携设备发送的数据,并且恢复状态字。12.根据权利要求5的方法,其特征在于,所述特定请求是SendData()请求,所述SendData()请求使主站能够将数据信给便携设备。13.根据权利要求5的方法,其特征在于,所述特定请求是IsReady()请求,所述IsReady()请求用于防止主站触发便携设备中的操作的低功耗模式。14.根据权利要求13的方法,其特征在于,响应于使所述站能够触发所述便携设备中的低功耗模式的请求,所述便携设备将OS-STATUS应答发送到主站,所述响应以这种关于定义所述便携设备的当前状态的方式编码。15.根据权利要求14的方法,其特征在于,所述便携设备的当前状态是静默状态或其中卡当前正在进行处理的状态。16.根据权利要求5的方法,其特征在于,具有微控制器的所述便携设备是微控制器卡。17.根据权利要求16的方法,其特征在于,所述卡的所述微控制器包括非易失性存储器,所述非易失性存储器包含适于利用协议进行通信的操作系统,所述协议执行诸如那些在ISO7816标准中定义的APDU命令。全文摘要具有微控制器的卡类便携设备包括存储器,该存储器包含一组允许微控制器根据第一通信协议通信的指令。该卡类便携设备还包括用于将根据第一通信协议的命令转换为根据第二通信协议的命令的接口,反之亦然。第一通信协议优选地符合ISO7816-3标准,第二通信协议符合USB标准。文档编号G06K7/00GK1418349SQ01806522公开日2003年5月14日申请日期2001年3月15日优先权日2000年3月15日发明者尼古拉斯·德拉布克朱克,马赛厄斯·盖尔泽申请人:施蓝姆伯格系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1