发明内容
有鉴于此,本发明的主要目的在于提供一种SD卡与主控设备之间的数据交互方法及系统,能够很好地实现SD卡与主控设备的交互,且能支持远程应用,从而扩大SD卡的应用范围。
为达到上述目的,本发明的技术方案是这样实现的:
一种SD卡与主控设备之间的数据交互方法,包括:
将网络服务器嵌入到SD卡中,提供相应的资源和服务;
主控设备通过HTTP协议访问SD卡上的资源和服务。
所述主控设备通过HTTP协议访问SD卡上的资源和服务为:
网络浏览器根据用户操作,将相应的命令和/或数据通过网络传输模块传输到主控设备的承载无关协议BIP网关;
主控设备的BIP网关对来自网络传输模块的命令和/或数据进行TCP/IP协议到BIP协议的转换,之后传输到主控设备的应用协议数据单元APDU编解码模块;
主控设备的APDU编解码模块根据来自主控设备的BIP网关的命令和/或数据执行相应的编码操作及信令控制,并通过主控设备的SD卡传输模块将编码后的命令和/或数据传输到SD卡的SD卡传输模块;
SD卡的APDU编解码模块对SD卡的SD卡传输模块接收的命令和/或数据进行解码并进行相应的信令控制;
SD卡的BIP网关对SD卡的APDU编解码模块解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换后,传输到网络服务器;
网络服务器根据来自SD卡的BIP网关的命令和/或数据进行相应的处理,并返回相应的命令和/或数据。
所述网络服务器返回相应的命令和/或数据为:
SD卡的BIP网关对来自网络服务器返回的命令和/或数据进行TCP/IP协议到BIP协议的转换;
SD卡的APDU编解码模块对SD卡的BIP网关返回的命令和/或数据进行编码并进行相应的信令控制,以及将编码后的命令和/或数据通过SD卡的SD卡传输模块、主控设备的SD卡传输模块传输到主控设备的APDU编解码模块;
主控设备的APDU编解码模块对来自主控设备的SD卡传输模块的命令和/或数据进行解码并进行相应的信令控制;
主控设备的BIP网关对主控设备的APDU编解码模块解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换,并将转换后的命令和/或数据通过网络传输模块传输到网络浏览器。
所述BIP网关具有两种模式:服务器模式和客户端模式;其中,所述BIP网关运行在服务器模式时,执行BIP协议到TCP/IP协议,或者TCP/IP协议到BIP协议的转换;所述BIP网关运行在客户端模式时,将SD卡作为客户端访问远端服务器,支持远程应用下载。
所述APDU编解码模块对命令和/或数据进行编码为:将APDU嵌入到包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2;
所述APDU编解码模块对命令和/或数据进行解码为:将APDU从包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中提取出来,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2。
该方法还包括:定义APDU最大长度,当APDU长度小于所述APDU最大长度时,不足以0补齐。
所述APDU最大长度为TCP/IP包最大长度+APDU开销。
一种SD卡与主控设备之间的数据交互系统,包括:SD卡和主控设备,
所述SD卡,用于通过嵌入网络服务器提供相应的资源和服务;
所述主控设备,用于通过HTTP协议访问SD卡上的资源和服务。
所述主控设备包括:网络浏览器、网络传输模块、BIP网关、APDU编解码模块和SD卡传输模块;所述SD卡包括:SD卡传输模块、APDU编解码模块、BIP网关和网络服务器;其中,
所述网络浏览器,用于根据用户操作,将相应的命令和/或数据通过网络传输模块传输到主控设备的承载无关协议BIP网关;
所述主控设备的BIP网关,用于对来自网络传输模块的命令和/或数据进行TCP/IP协议到BIP协议的转换,之后传输到主控设备的APDU编解码模块;
所述主控设备的APDU编解码模块,用于根据来自所述BIP网关的命令和/或数据执行相应的编码操作及信令控制,并通过主控设备的SD卡传输模块将编码后的命令和/或数据传输到SD卡的SD卡传输模块;
所述SD卡的APDU编解码模块,用于对SD卡的SD卡传输模块接收的命令和/或数据进行解码并进行相应的信令控制;
所述SD卡的BIP网关,用于对SD卡的APDU编解码模块解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换后,传输到网络服务器;
所述网络服务器,用于根据来自SD卡的BIP网关的命令和/或数据进行相应的处理,并返回相应的命令和/或数据。
所述SD卡的BIP网关,还用于对来自网络服务器返回的命令和/或数据进行TCP/IP协议到BIP协议的转换;
所述SD卡的APDU编解码模块,还用于对SD卡的BIP网关返回的命令和/或数据进行编码并进行相应的信令控制,以及将编码后的命令和/或数据通过SD卡的SD卡传输模块、主控设备的SD卡传输模块传输到主控设备的APDU编解码模块;
所述主控设备的APDU编解码模块,还用于对来自主控设备的SD卡传输模块的命令和/或数据进行解码并进行相应的信令控制;
所述主控设备的BIP网关,还用于对主控设备的APDU编解码模块解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换,并将转换后的命令和/或数据通过网络传输模块传输到网络浏览器。
所述BIP网关具有两种模式:服务器模式和客户端模式;其中,所述BIP网关运行在服务器模式时,执行BIP协议到TCP/IP协议,或者TCP/IP协议到BIP协议的转换;所述BIP网关运行在客户端模式时,将SD卡作为客户端访问远端服务器,支持远程应用下载。
所述APDU编解码模块对命令和/或数据进行编码为:将APDU嵌入到包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2;
所述APDU编解码模块对命令和/或数据进行解码为:将APDU从包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中提取出来,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2。
本发明SD卡与主控设备之间的数据交互方法及系统,将网络服务器嵌入到SD卡中,从而主控设备通过HTTP协议访问SD卡上的资源和服务。本发明通过在SD卡中嵌入网络服务器,使主控设备能够通过HTTP协议访问SD卡上的资源和服务,所以,SD卡能够很好的实现与主控设备的交互,将不再以存储、安全为主,从而应用于范围较广。
具体实施方式
本发明的基本思想是:将网络服务器嵌入到SD卡中,从而主控设备通过HTTP协议访问SD卡上的资源和服务。
图1为本发明SD卡与主控设备之间的数据交互方法流程示意图,如图1所示,该方法包括:
步骤101:将网络服务器嵌入到SD卡中,以提供相应的资源和服务。
步骤102:主控设备通过HTTP协议访问SD卡上的资源和服务。
需要说明的是,主控设备可以是终端设备,也可以是其他与SD卡连接并用于SD卡控制的各种控制设备,如带有SD卡插槽的笔记本电脑、带有智能SD卡插槽的PDA等。由于使用HTTP协议来交换数据,可以使用网络浏览器作为主控设备应用程序的用户界面。本发明中网络浏览器作为应用程序的用户界面,通过URL标识的SD卡应用可以被网络浏览器触发,应用可以执行一种特殊任务也可以同步的创建内容并返回网络浏览器,页面包含了应用的列表,用户打开网络浏览器,访问这个页面就可以看到所有存储在SD卡内的应用,当用户选择了某个应用的超级链接,就可以进入到该应用的二级管理页面。二级管理页面列举了应用可能的操作,用户继续点击页面上的链接,就可完成应用之类的管理操作。
需要说明的是,由于网络浏览器是使用TCP/IP协议来发送HTTP消息,SD卡可以使用承载无关协议(BIP)来传输HTTP协议,这样必须通过BIP网关来完成TCP/IP协议到BIP协议的转换,该转换过程可以由相应的BIP网关来完成。需要说明的是,BIP网关一般具有服务器模式和客户端模式,其运行在服务器模式时,用来提供SD卡和主控单元的数据交换,即BIP协议到TCP/IP协议,或者TCP/IP协议到BIP协议的转换;工作在客户端模式时,将SD卡作为客户端访问远端服务器,支持远程应用下载。
需要说明的是,SD卡与主控设备的物理接口采用标准的SD卡接口SD/SPIBUS接口,主控设备与SD卡的信令交互都基于应用协议数据单元(ApplicationProtocol Data Unit,APDU)完成相关命令传输,具体将APDU消息内嵌在通信格式中。
本发明根据SD卡的物理接口、传输帧格式、传输速率特点,提供一种基于SD卡的通信结构,APDU被嵌入到以下通信结构中,通过该结构可以简单实现基于SD卡接口,完成APDU的传递。SD卡和主控设备都必须遵循这个结构。
图2为本发明一通信结构的示意图,如图2所示,整个格式包括:一个起始位、一个结束位、两个字节的循环冗余校验码(CRC)校验位以及APDU,其中APDU由两个字节的长度字段和APDU命令/响应组成,长度字段定义为APDU长度加2。本发明还可以定义APDU最大长度,当APDU长度小于该APDU最大长度时,不足以0补齐。本发明还可以定义APDU最大长度为TCP/IP包最大长度+APDU开销,一次将TCP/IP传送完成,提高传输效率。而现有的智能卡协议最大传输长度一般受制于ISO7816接口,比如,SIM卡的最大长度有的定义为255字节,当传输的TCP/IP包大于255字节时,需要拆包进行传输。相比之下,本发明利用了SD卡高速传输的特点定义通信结构,提高了传输效率。
需要说明的是,现有访问Smart Card Web Server地址使用的是本地地址127.0.0.1,及特定端口3516,则本地地址(localhost)127.0.0.1可以被主控设备上的HTTP应用来寻址BIP网关,不同的应用可以使用不同的端口,即本发明可以采用端口定义的方式来区分智能卡与SD卡,例如,可以将SD卡端口定义为3517,从而手机用户只需要在网络浏览器上输入http://127.0.0.1:3517就能访问SD卡里的相关应用了。
需要说明的是,本发明还可以提供RESET SD命令,使SD执行ATR(Answer To Reset)过程。本发明一RESET SCWS命令结构如下所示:
表1
P1=‘01’时,执行ISO7816-3规定的冷复位,如硬件不支持,执行热复位;P1=‘81’时,执行ISO7816-3规定的热复位。
图3为本发明SD卡与主控设备之间数据交互方法的详细流程示意图,如图3所示,该方法具体包括:
步骤301:网络浏览器根据用户操作,将相应的命令和/或数据通过网络传输模块传输到主控设备的BIP网关。
步骤302:主控设备的BIP网关对来自网络传输模块的命令和/或数据进行TCP/IP协议到BIP协议的转换,之后传输到主控设备的APDU编解码模块。
步骤303:主控设备的APDU编解码模块根据来自主控设备的BIP网关的命令和/或数据执行相应的编码操作及信令控制,并通过主控设备的SD卡传输模块将编码后的命令和/或数据传输到SD卡的SD卡传输模块。
步骤304:SD卡的APDU编解码模块对SD卡的SD卡传输模块接收的命令和/或数据进行解码并进行相应的信令控制。
步骤305:SD卡的BIP网关对SD卡的APDU编解码模块解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换后,传输到网络服务器。
步骤306:网络服务器根据来自SD卡的BIP网关的命令和/或数据进行相应的处理,并返回相应的命令和/或数据。
网络服务器返回相应的命令和/或数据的具体过程为:
SD卡的BIP网关对来自网络服务器返回的命令和/或数据进行TCP/IP协议到BIP协议的转换。
SD卡的APDU编解码模块对SD卡的BIP网关返回的命令和/或数据进行编码并进行相应的信令控制,以及将编码后的命令和/或数据通过SD卡的SD卡传输模块、主控设备的SD卡传输模块传输到主控设备的APDU编解码模块。
主控设备的APDU编解码模块对来自主控设备的SD卡传输模块的命令和/或数据进行解码并进行相应的信令控制。
主控设备的BIP网关对主控设备的APDU编解码模块解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换,并将转换后的命令和/或数据通过网络传输模块传输到网络浏览器。
上述BIP网关具有两种模式:服务器模式和客户端模式;其中,所述BIP网关运行在服务器模式时,执行BIP协议到TCP/IP协议,或者TCP/IP协议到BIP协议的转换;所述BIP网关运行在客户端模式时,将SD卡作为客户端访问远端服务器,支持远程应用下载。
上述APDU编解码模块对命令和/或数据进行编码为:将APDU嵌入到包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2;
上述APDU编解码模块对命令和/或数据进行解码为:将APDU从包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中提取出来,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2。
可以定义APDU最大长度,当APDU长度小于所述APDU最大长度时,不足以0补齐,所述APDU最大长度为TCP/IP包最大长度+APDU开销。
图4为本发明SD卡与主控设备之间的数据交互系统结构示意图,如图4所示,该系统包括主控设备41和SD卡42,主控设备41进一步包括:网络浏览器411、网络传输模块412、BIP网关413、APDU编解码模块414和SD卡传输模块415;SD卡42包括:SD卡传输模块421、APDU编解码模块422、BIP网关423和网络服务器424;其中,
网络浏览器411,用于根据用户操作,将相应的命令和/或数据通过网络传输模块412传输到BIP网关413。网络传输模块412运行在主控设备上应用和BIP网关之间,用于通过网络通信协议将来自网络浏览器411的命令和/或数据传输到BIP网关413,所述网络通信协议包括TCP/IP协议栈、HTTP协议等。
BIP网关413,用于对来自网络传输模块的命令和/或数据进行TCP/IP协议到BIP协议的转换,之后传输到APDU编解码模块414;以及对APDU编解码模块414解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换,并将转换后的命令和/或数据通过网络传输模块412传输到网络浏览器411。SD卡不支持TCP/IP协议,BIP网关主要是提供一个让SD卡能访问主控设备各种高速通道,也就是借用主控设备高速通道完成BIP网关和SD卡的通信。
BIP网关可以分为Client模式和Server模式两种模式,其通过Server模式用来提供主控设备网络浏览器访问卡内网络服务器的通道。
主控设备开机向SD卡发送Open Channel命令,建立与网络服务器之间的连接。服务器之后一直处于侦听请求状态,之后通过Send Data/Receive Data命令发送接收命令。
APDU编解码模块414,用于根据来自BIP网关413的命令和/或数据执行相应的编码操作及信令控制,并通过SD卡传输模块415将编码后的命令和/或数据传输到SD卡传输模块421;以及对来自SD卡传输模块415的命令和/或数据进行解码并进行相应的信令控制。
所述命令包括但不限于:
Open Channel:这一命令要求主控设备打开一个高速通道,SD卡应提供打开通道必须的全部信息;
Close Channel:这一命令要求主控设备关闭指定某一的高速通道;
Send Data:这一个命令要求主控设备通过指定通道发送SD卡上的数据;
Receive Data:这一命令要求主控设备通过响应命令将指定通道的数据传送到SD卡上。
控制设备对SD卡的驱动控制按SD卡的种类不同,而有所差别,SD卡一般支持SPI Bus或SD Bus两种模式。
APDU编解码模块422,用于对SD卡传输模块421接收的命令和/或数据进行解码并进行相应的信令控制;以及对BIP网关423返回的命令和/或数据进行编码并进行相应的信令控制;以及将编码后的命令和/或数据通过SD卡传输模块421、SD卡传输模块415传输到APDU编解码模块414。
BIP网关423,用于对APDU编解码模块422解码后的命令和/或数据进行BIP协议到TCP/IP协议的转换,之后传输到网络服务器424;以及对网络服务器424返回的命令和/或数据进行TCP/IP协议到BIP协议的转换。
网络服务器424,用于根据来自BIP网关423的命令和/或数据进行相应的处理,并返回相应的命令和/或数据。SD卡应用包括传统SD卡的存储及安全功能。SD卡能够与运行在主控模块上的客户端HTTP应用进行交互。SD卡根据HTTP应用要求返回相关的xHTML页面。
所述BIP网关具有两种模式:服务器模式和客户端模式;其中,所述BIP网关运行在服务器模式时,执行BIP协议到TCP/IP协议,或者TCP/IP协议到BIP协议的转换;所述BIP网关运行在客户端模式时,将SD卡作为客户端访问远端服务器,支持远程应用下载。
所述APDU编解码模块对命令和/或数据进行编码为:将APDU嵌入到包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2;
所述APDU编解码模块对命令和/或数据进行解码为:将APDU从包括一个起始位、一个结束位、两个字节的循环冗余校验码CRC校验位以及APDU的通信结构中提取出来,所述APDU由两个字节的长度字段和APDU命令/响应组成,所述长度字段定义为APDU长度加2。
传统的SD卡一般没有CPU处理器,为实现本发明需要支持CPU或未处理器完成相应的功能。为完成发明在SD卡上增加应用处理器,SD卡侧的硬件功能框图如图5所示。
下面结合附图对技术方案的实施作进一步的详细描述。
本实施例以移动终端为主控设备,图6为本发明实施例SD卡与主控设备之间的数据交互系统结构示意图。
本实施例中,移动终端支持网络浏览器、HTTP协议、TCP/IP、BIP协议和APDU协议。但BIP协议、APDU协议一般针对智能卡(如SIM卡),其低层协议为ISO7816接口。
为实现本发明,且使移动终端改动最小。本实施例扩展移动终端APDU模块,增加SD卡传输模块以及APDU复用功能。
本地地址(localhost)127.0.0.1被主控设备上的HTTP应用来寻址BIP网关。访问Smart Card Web Server地址使用的是本地地址127.0.0.1,及特定端口3516。不同的应用可以使用不同的端口。
本发明可以采用端口定义的方式来区分智能卡与SD卡。如可以将SD卡端口定义为3517,从而手机用户只需要在网络浏览器上输入http://127.0.0.1:3517就能访问SD卡里的相关应用了。
SD卡传输模块定义基于SD卡APDU的通信结构,为移动终端与SD卡的通信协议,其中APDU嵌在该通信格式中。
移动终端上的SD卡一般采用Micro SD卡。本实施例的Micro SD卡不仅包括传统的存储及安全功能还有新增的SCWS业务。因为传统的SD卡一般没有CPU处理器,为实现本发明需要支持CPU或未处理器完成相应的功能。本实施例采用智能SD卡。
在智能SD卡里嵌入了一个网络服务器,并提供了相应应用。通过URL标识的SD卡上的应用可以被网络浏览器触发。应用可以执行一种特殊任务也可以同步的创建内容并返回网络浏览器。页面包含了应用的列表,用户打开网络浏览器,访问这个页面就可以看到所有存储在卡内应用,当用户选择了某个应用的超级链接,就可以进入到该应用的二级管理页面。二级管理页面列举了应用可能的操作,用户继续点击页面上的链接,就可完成应用之类的管理操作。
本实施例中,BIP支持远程下载,通过Open Channel参数选择支持BIP客户端模式。即SD卡可以作为客户端进行访问远端服务器,完成远程下载功能。
本发明通过在SD卡上实现SCWS功能。这种网页浏览的模式可以使信息交互变得更加简单。SCWS既充分利用了终端网络浏览器强大的用户交互能力无需额外开发独立的UI界面,又充分利用HTTP、TCP/IP协议栈的通讯能力,减少了终端和SD卡在应用层数据交互的复杂性。为SD卡的业务推广提供了广阔的空间。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。