一种智能sd卡及访问智能sd卡的方法

文档序号:6572813阅读:147来源:国知局

专利名称::一种智能sd卡及访问智能sd卡的方法
技术领域
:本发明涉及数据访问技术,特别是涉及一种智能SD卡及访问智能SD卡的方法。
背景技术
:SD卡(SecureDigitalMemoryCard)是一种基于半导体快闪记忆器的新一代记忆设备,体积小巧,却拥有高记忆容量、快速数据传输率和极大的移动灵活性,多用于为手机、MP3随身听、数码摄像机、数码相机等提供额外的存储空间。当在普通SD卡(包括MiniSD等各种尺寸)内挂接智能芯片后,就称为智能SD卡,因此智能SD卡除提供传统的存储功能外,还提供智能卡服务。目前,对SD卡内嵌的智能卡的访问是通过驱动程序的方式。因此,智能SD卡与普通SD卡的访问方式不同,普通SD卡是通过文件系统的方式供外部设备访问,即普通SD卡可兼容各种外部设备的访问;访问智能SD卡的存储空间也通过文件系统的方式,但访问内嵌的智能卡则需要安装相应的驱动程序,通过驱动程序提供的接口完成对智能SD卡的读写操作。但是,驱动程序是根据使用设备的类型来编写,设备类型不同,相应的就需要编写不同的驱动程序,其中每种驱动程序提供给外部设备的接口各不相同。这样,所述基于驱动程序访问的方式只能供少数几种设备使用智能SD卡内嵌的智能卡,实际应用中不可能为每一类设备都编写驱动程序,因此限制了智能SD卡的使用范围。此外,智能SD卡可提供各种不同的应用服务,如借货记应用、借货记小额支付应用、电子钱包应用等用于支付的金融应用或其他行业应用。如果访问智能SD卡内嵌的智能卡是通过驱动程序提供的接口(API)来进行,则必须定义该智能SD卡支持的设备类型列表,这样支持市场上主流的设备是可行的,但应用的发布和维护将变得非常困难。例如,对于支付应用或支付应用复合行业应用,比如金融支付应用复合公共交通应用,这类应用要求尽可能地覆盖最大的应用面,通过应用接口的方式必须对所有通过智能SD卡内智能卡通讯的应用模块单独编写程序,如发卡程序、空中下载和空中充值程序等。
发明内容本发明所要解决的技术问题是提供一种智能SD卡及访问智能SD卡的方法,以解决各种智能SD卡的驱动程序互不兼容的问题。为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案一种智能SD卡,包括SD接口,用于以文件系统的形式向外部设备提供访问接口,所述文件系统中设置智能卡接口文件;SD存储器,用于提供存储空间;智能卡,用于提供应用服务;SD控制器,用于识别外部设备对所述文件系统的操作,若是对智能卡接口文件的操作,则访问智能卡;否则,访问SD存储器。其中,所述SD控制器将外部设备对智能卡接口文件的写操作,解析为对智能卡发送命令,将读操作解析为接收智能卡返回的响应数据。其中,所述智能卡接口文件存放于文件系统的根目录下,文件长度为0字节,属性设为隐藏。其中,所述智能卡提供与SD控制器通讯的接口。所述智能SD卡还包括近距离非接触式芯片,与所述智能卡连接,用于提供对智能卡的近距离非接触式访问。一种访问智能SD卡的方法,包括应用程序对智能卡接口文件执行写操作,通知SD控制器建立与智能卡的通讯连接;应用程序读接口文件,通过SD控制器接收智能卡返回的响应数据;连接建立成功,应用程序将智能卡操作命令写入接口文件,SD控制器向智能卡转发所述命令;应用程序读接口文件,通过SD控制器接收智能卡返回的响应数据。所述方法还包括SD控制器记录与智能卡的通讯状态,并返回给应用程序,如果通讯状态正常则应用程序继续读写智能卡接口文件。所述方法还包括应用程序将每次操:作的标识号写入接口文件,并在读文件时读取标识号,判断与写入的标识号是否匹配,如果不匹配则进行容错处理。其中,应用程序按照以下步骤接收智能卡返回的响应数据智能卡向SD控制器返回命令响应信息,SD控制器识别所述命令响应信息,如果标识有凄t据返回,则SD控制器自动发送获取命令,获取响应数据;当SD控制器接收完所有的响应数据,应用程序进行读取。或者,应用程序按照以下步骤接收智能卡返回的响应数据智能卡向SD控制器返回命令响应信息,SD控制器直接緩存供应用程序读取;应用程序识别所述命令响应信息,如果标识有数据返回,则通过SD控制器发送获取命令;智能卡根据所述获取命令,向SD控制器返回响应数据,应用程序进行读取。根据本发明提供的具体实施例,本发明公开了以下技术效果首先,利用普通SD卡提供给各种设备的接口是文件系统,将访问智能卡的接口映射到所述文件系统的一个文件上(智能卡接口文件),外部应用程序通过访问该智能卡接口文件实现对智能卡的访问。智能SD卡通过SD控制器控制应用程序的各类操作,将对接口文件的写操作视为对智能卡发送命令,将读操作视为接收智能卡返回的响应数据,SD控制器实现对SD卡存储功能和智能卡服务的双重控制。上述方法通过定义一个通用的接口文件,将对该文件的读写都间接映射到SD卡内嵌的智能卡,实现对智能卡的操作,从而实现了免驱动的智能SD卡访问方式,任何可访问SD卡的上层应用程序通过该接口都可以方便地访问到SD卡内嵌的智能卡。其次,在应用程序访问智能卡的过程中,提出一种高效率的数据接收方式SD控制器收到智能卡返回的命令响应信息后,通过识别确认还有数据返回时,自动向智能卡发送获取命令,直到SD控制器接收到所有的响应数据,应用程序再进行读取。由于SD控制器是将所有的响应数据返回给应用程序,与每次收到智能卡的任何响应数据都不做处理,直接供应用程序读取的方式相比,节省了SD控制器与应用程序的交互次数和时间,从而提高了数据响应效率。再次,在对智能SD卡的操作流程中提供一种容错机制,应用程序在写接口文件时写入一个本次操作的标识号,当读文件时SD控制器将标识号一同返回,如果与写入的标识号不匹配,则操作过程可能出现异常,此时应用程序将进行容错处理,重新执行写文件和读文件操作。图l是现有^t术中普通SD卡的接口示意图;图2是本发明实施例所述智能SD卡的接口示意图;图3是本发明实施例所述访问智能SD卡的步骤流程图;图4是本发明提供的另一种智能SD卡实施例的接口示意图。具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。普通SD卡为各种设备提供存储功能时的接口是文件系统,该接口是一个通用接口,因此能够实现免驱动访问,本发明即利用SD卡的接口文件实现对SD卡内的智能卡的访问操作,从而实现智能SD卡的免驱动访问方式。参照图1,是现有技术中普通SD卡的接口示意图。一张普通的SD卡主要包括接口101、控制器102和存储器103,SD卡由存储器103提供存储空间,控制器103负责控制外部设备对存储器103的访问,接口IOI提供外部设备与SD卡的连接。其中,所述接口101由文件系统实现,在图l示例中,文件系统的根目录下列出了"我的音乐"、"游戏"、"春游照片"、"文件1"、"文件2"等文件或文件夹,在外部设备访问SD卡时,通过访问所述文件或文件夹,SD控制器102即获知外部命令,然后将访问命令解析为对存储器103的各类操作。参照图2,是本发明实施例所述智能SD卡的接口示意图。所述智能SD卡是在普通SD卡内嵌入智能卡芯片,同时提供存储功能和智能卡服务的SD卡,如图所示,包括SD接口201、SD控制器202、SD存储器203和智能卡204。其中,所述SD存储器203仍提供存储功能,智能卡204提供各种应用服务,SD控制器202负责控制外部设备对SD存储器203或智能卡204的访问,SD接口201在原有功能上还提供了访问智能卡204的通用接口,通过所述SD接口201,各种外部设备都可以访问SD卡内的智能卡204。如前所述,普通SD卡提供给各种设备的接口是一个文件系统,外部设备对文件的操作被视为是对存储器的操作。利用所迷原理,智能SD卡的接口201同样提供一个文件系统,但在该文件系统中设置一个智能卡接口文件,SD控7制器202将对该文件的读写都间接映射到SD卡内嵌的智能卡204,实现对智能卡204的操作,从而实现了免驱动的智能SD卡访问方式,任何可访问SD卡的外部设备通过该接口201都可以方便地访问到SD卡内嵌的智能卡204。如果文件系统的根目录下建有多个智能卡接口文件,表明SD卡内嵌了多张提供不同服务的智能卡。所迷智能卡接口文件具有如下的属性和特点第一,如图2所示,智能卡接口文件设置在文件系统的根目录下,与"我的音乐"、"游戏"、"春游照片"、"文件1"、"文件2"等文件或文件夹位于同一目录,便于管理和操作;第二,智能卡接口文件是一个虚拟文件,普通文件如"文件1"等在SD存储器203中有真实的物理位置,而智能卡接口文件是通过SD控制器202虚拟的文件,当外部设备读写该文件时,SD控制器202并不会将读写的内容写到SD存储器203里,而是解释成对智能卡204的操作指令;第三,智能卡接口文件不占用SD存储器203的存储空间,但为了避免用户担心占用空间,将文件长度固定为0字节,并且将文件属性设为隐藏。对于智能卡204,外部设备首先向其发送命令,智能卡204才响应数据,对应到所述智能卡接口文件,需要先对该文件写操作,然后才能读操作获取数据。相应的,SD控制器202将外部设备对智能卡接口文件的写操作解析为发送命令到智能卡204,将对该文件的读操作解析为接收命令的响应数据。如果是对根目录下其他文件的读写操作,SD控制器202将解析为对SD存储器203的操作命令。外部设备对智能SD卡的所有操作命令将按照一定格式被SD控制器202解析,参照表l,是写智能卡接口文件的数据格式<table>tableseeoriginaldocumentpage8</column></row><table>表l写数据格式参照表2,是表l中命令码的定义:<table>tableseeoriginaldocumentpage9</column></row><table>表2命令码定义外部设备准备最终写入到智能卡204的数据按照表1格式组织,其中"命令码"定义了对智能卡204的操作类型,如表2所示,SD控制器202解析"命令码",从而获知如何操作智能卡204。"APDU"是智能卡204提供给外部访问的接口,SD控制器202通过该接口与智能卡204进行交互,该接口定义的命令格式即为APDU命令,而外部设备发送给智能SD卡的命令直接是APDU命令,所以SD控制器202可以直接将APDU命令转发给智能卡204执行。关于APDU命令的详细内容属于智能卡及其规范的描述范围,本发明实施例在此不再详述。优选设置"标识码",用于为每次访问操作做一标记,应用程序通过判断所述标识码来判别操作命令与返回的响应数据是否一致,避免操作命令和命令响应不对应的问题。参照表3,是读智能卡接口文件的数据格式<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>表3读数据格式智能卡接口文件在初始时没有任何数据,只有发送了写命令以后,外部设备才可以去读该文件,从文件的内容中得知上次命令的处理结果或响应数据。读取的文件内容按照表3格式解释,其中"APDU命令执行状态码"也称为命令响应码,用于标识命令的执行状态,如执行完毕或等待接收数据等状态。优选设置,"通讯状态码"定义了SD控制器202与智能卡204交互的通讯情况,外部设备优先识别所述通讯状态码是否正确,然后才识别后续数据,通讯状态码定义如下<table>tableseeoriginaldocumentpage10</column></row><table>表4通讯状态码定义上述表1-表4只是作为一种实施例进行说明,并不限定接口文件的格式。以上内容介绍了一种智能SD卡的通用接口,各种类型的外部设备通过该接口即可访问SD卡内嵌的智能卡。基于所述智能SD卡,本发明还提供了访问该智能SD卡的方法实施例,参照图3,是所述访问智能SD卡的步骤流程图。由于外部设备对智能SD卡的访问实际上是安装在设备上的应用程序对智能SD卡的访问,所以下面将以应用程序对SD卡内智能卡的访问为例进行i兑明。步骤301,外部应用程序(简称应用)打开智能SD卡上的智能卡接口文件,如果打开失败,则结束。步骤302,应用程序执行写文件搡作,通过发送命令通知SD控制器建立与智能卡的通讯链路。步骤303,SD控制器收到操作系统写文件指令,识别出操作系统试图写智能卡接口文件,就知道是对智能卡操作;SD控制器继续判断写入的内容,根据表1和表2的写文件格式,解析出步骤302的命令是获取智能卡的ATR(AnswerToReset,自动复位响应)信息,则对智能卡进行上电复位并建立通讯链接,取得智能卡的ATR信息。其中,所述上电复位是指智能卡自动将自己的相关信息(如通讯参数等)传递给SD控制器,以便SD控制器正确识别智能卡的类型并对其进行相应的操作。优选的,SD控制器记录本次内部通讯状态,如果通讯状态正常则继续下一步骤,否则在文件内容中设置响应的错误代码并结束处理。SD控制器将与智能卡的通讯状态码、智能卡返回的命令响应码及ATR信息一起写入到接口文件的内容緩存中,供应用程序读取。步骤304,应用程序读文件内容,将内容按表3的格式解释,得知SD控制器的响应(即通讯链路是否建立),如果通讯链路建立成功,则继续后续步骤,否则结束。步骤305,应用程序根据业务的逻辑继续将智能卡命令(即APDU命令)写入到接口文件中。步骤306,SD控制器解析出命令操作是向智能卡转发APDU命令,则转发APDU命令,并记录本次通讯状态。智能卡执行命令并向SD控制器返回命令响应,SD控制器将与智能卡的通讯状态码、智能卡返回的命令响应码及响应数据一起写入到接口文件的内容緩存中,供应用程序读取。步骤307,应用程序读文件获取响应数据,并识别通讯状态码,如果正常则继续,否则结束。应用程序与智能SD卡之间反复执行上述步骤,直到应用程序对智能卡的所有操作全部结束。在上述步骤中,应用程序通过SD控制器接收智能卡响应数据有两种模式,即SD控制器转发APDU命令给智能卡后,接收智能卡的响应数据和命令响应码,这时SD控制器的后续动作有两种处理方式一种是SD控制器接收到智能卡的任何响应数据和命令响应码都不作处理,直接写入文件緩存中供应用程序读取。进一步举例详细说明如果智能卡尚有数据返回,则智能卡会返回61XX代码,表示命令正常执行,请发送取数命令读取数据;应用程序收到这样的命令响应码后,继续发送取数命令,通过SD控制器获取上次命令的返回数据,这次智能卡才会返回真实的数据。上述方式比较透明,SD控制器对应用程序和智能卡之间的操作不作任何干预,但存在的问题是如果智能卡分多次返回响应数据,应用程序就需要发送多次取数命令才能获取全部数据。为节省时间以及应用程序与SD控制器之间的交互次数,SD控制器接收到命令响应码后进行识别,如果智能卡还有数据返回,则SD控制器自动发送取数命令给智能卡取得上次命令的响应数据,然后写入文件緩存;SD控制器重复执行以上步骤,直到智能卡返回所有的响应数据。这样,就节省了时间,提高了效率。优选的,在对智能SD卡的操作流程中,还提供了一种容错机制。由于应用程序访问智能SD卡的过程中可能出现操作命令与命令响应数据不对应的情况,例如应用程序发送给智能SD卡2个命令,分别是命令A和命令B,但由于某种原因智能SD卡先返回命令B的响应数据,再返回命令A的响应,如果应用程序不加以识别,就会把操作命令与命令响应错位。因此,本实施例提供了一种容错机制,应用程序在写接口文件时写入一个本次操作的标识号,当读文件时SD控制器将标识号一同返回,如果与写入的标识号不匹配,则操作过程可能出现异常,此时应用程序将进行容错处理,重新执行写文件和读文件操作。本发明优选的,还提供了另一种智能SD卡,参照图4所示,是一种增加NFC(NearFieldCommunication,近距离无线通信)芯片的智能SD卡,包括SD接口401、SD控制器402、SD存储器403、智能卡404和NFC芯片405。与图2相比较,该智能SD卡在智能卡404上连接了一个NFC芯片405,该芯片是支持NFC技术的智能卡芯片,与天线406相连,用于实现智能SD卡的非接触式访问。所述NFC技术由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,可在短距离内与兼容设备进行识别和数据交换。由于NFC芯片提供了非接触式访问方式,所以内嵌了NFC芯片的智能SD卡在与外部设备(或应用程序)进行交互时,不需要按照上述建立智能卡接口的方式,而是通过天线406即可与兼容设备进行识别和数据交换。图3所示方法中未详述的部分可以参见图2所示示意图的相关部分,为了篇幅考虑,在此不再详述。以上对本发明所提供的一种智能SD卡及访问智能SD卡的方法,进行了详实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种智能SD卡,其特征在于,包括:SD接口,用于以文件系统的形式向外部设备提供访问接口,所述文件系统中设置智能卡接口文件;SD存储器,用于提供存储空间;智能卡,用于提供应用服务;SD控制器,用于识别外部设备对所述文件系统的操作,若是对智能卡接口文件的操作,则访问智能卡;否则,访问SD存储器。2、根据权利要求1所述的智能SD卡,其特征在于所述SD控制器将外部设备对智能卡接口文件的写操作,解析为对智能卡发送命令,将读操作解析为接收智能卡返回的响应数据。3、根据权利要求1所述的智能SD卡,其特征在于所述智能卡接口文件存放于文件系统的根目录下,文件长度为Q字节,属性设为隐藏。4、根据权利要求1所述的智能SD卡,其特征在于所述智能卡提供与SD控制器通讯的接口。5、根据权利要求1所述的智能SD卡,其特征在于,还包括近距离非接触式芯片,与所述智能卡连接,用于提供对智能卡的近距离非接触式访问。6、一种访问智能SD卡的方法,其特征在于,包括应用程序对智能卡接口文件执行写操作,通知SD控制器建立与智能卡的通讯连接;应用程序读接口文件,通过SD控制器接收智能卡返回的响应数据;连接建立成功,应用程序将智能卡操作命令写入接口文件,SD控制器向智能卡转发所述命令;应用程序读接口文件,通过SD控制器接收智能卡返回的响应lt据。7、根据权利要求6所述的方法,其特征在于,还包括SD控制器记录与智能卡的通讯状态,并返回给应用程序,如果通讯状态正常则应用程序继续读写智能卡接口文件。8、根据权利要求6所述的方法,其特征在于,还包括应用程序将每次操作的标识号写入接口文件,并在读文件时读取标识号,判断与写入的标识号是否匹配,如果不匹配则进行容错处理。9、根据权利要求6所述的方法,其特征在于,应用程序按照以下步骤接收智能卡返回的响应数据智能卡向SD控制器返回命令响应信息,SD控制器识别所述命令响应信息,如果标识有数据返回,则SD控制器自动发送获取命令,获取响应数据;当SD控制器接收完所有的响应数据,应用程序进行读取。10、根据权利要求6所述的方法,其特征在于,应用程序按照以下步骤接收智能卡返回的响应数据智能卡向SD控制器返回命令响应信息,SD控制器直接緩存供应用程序读取;应用程序识别所述命令响应信息,如果标识有数据返回,则通过SD控制器发送获取命令;智能卡根据所述获取命令,向SD控制器返回响应数据,应用程序进行读取。全文摘要本发明公开了一种智能SD卡及访问智能SD卡的方法,解决各种智能SD卡的驱动程序互不兼容的问题。所述智能SD卡包括SD接口、SD存储器、智能卡和SD控制器。所述访问智能SD卡的方法包括应用程序对智能卡接口文件执行写操作,通知SD控制器建立与智能卡的通讯连接;应用程序读接口文件,通过SD控制器接收智能卡返回的响应数据;连接建立成功,应用程序将智能卡操作命令写入接口文件,SD控制器向智能卡转发所述命令;应用程序读接口文件,通过SD控制器接收智能卡返回的响应数据。本发明提供的方法实现了免驱动的智能SD卡访问方式,任何可访问SD卡的上层应用程序通过该接口都可以方便地访问到SD卡内嵌的智能卡。文档编号G06K19/07GK101383017SQ20071004574公开日2009年3月11日申请日期2007年9月6日优先权日2007年9月6日发明者朔何,孟宏文,佳胡申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1