一种数据通信方法、系统及智能卡读写器的制作方法

文档序号:6483627阅读:386来源:国知局
专利名称:一种数据通信方法、系统及智能卡读写器的制作方法
技术领域
本发明涉及智能卡技术,尤其涉及一种数据通信方法、系统及一种智能卡 读写器。
背景技术
智能卡读写器是一种对智能卡进行读写操作的设备,可以是一个单独的设 备与计算机和其它系统互联,也可以作为一个单元部件嵌入到其它系统中。
智能卡读写器具有传输智能卡应用层指令的功能,执行一次完整的应用层
指令的流程如下
第一步,智能卡读写器按特定通信协议接收上位机发出的应用层指令; 第二步智能卡读写器遵循智能卡的协议标准,将所述应用层指令发送给 智能卡;
第三步智能卡按照所述应用层指令执行相应的操作;
第四步智能卡将操作执行后的响应消息返回给智能卡读写器;
第五步智能卡读写器将接收到的响应消息返回给上位机。
通过以上五步的描述,执行一个应用层指令的总时长为智能卡对指令的执
行时长加上第一步、第二步、第四步和第五步中数据传输时长。
如果将上述对指令的执行过程应用于智能卡生产初始化之类的业务时,由
于应用层指令中携带大量的数据,因此,智能卡读写器接收上位机发送的指令
将会持续一个较长的时间,如果是针对大量的智能卡进行初始化业务时,指令
传输时间越长生产效率越^f氐
发明内容
本发明实施例提供一种数据通信方法、系统及一种智能卡读写器,可以节 约上位机向智能卡读写器发送数据指令的传输时间,有效地提高系统通信效率。
一种数据通信方法,所述方法包括以下步骤
智能卡读写器接收上位机发送的第 一数据指令,并将接收到的所述第 一数 据指令发送给智能卡;
在接收到智能卡返回的响应消息之前,智能卡读写器接收上位机发送的第 二数据指令;
智能卡读写器将智能卡返回的响应消息上报给上位机; 上位机根据接收到的响应消息,指示智能卡读写器对第二数据指令进行处理。
一种数据通信系统,所述系统包括上位机、智能卡读写器和智能卡,其

所述上位机,用于向智能卡读写器发送第一数据指令和第二数据指令,并 接收响应消息,根据接收到的响应消息,指示智能卡读写器对第二数据指令进 行处理;
所述智能卡读写器,用于将接收到的第一数据指令发送给所述智能卡,在 接收到智能卡返回的响应消息之前,接收所述第二数据指令,以及将接收到的 所述智能卡返回的响应消息发送给上位机后,根据上位机的指示对第二数据指 令进行处理;
所述智能卡,用于接收智能卡读写器发送的第一数据指令,并返回响应消息。
一种智能卡读写器,所述智能卡读写器包括第一指令接收模块、第一指 令发送模块、第二指令接收模块、响应消息转发模块和第二指令发送模块,其 中
第 一指令接收模块,用于接收第 一数据指令;指令发送模块,用于发送所述第一数据指令,并触发第二指令接收模块;
第二指令接收模块,用于接收第二数据指令,并触发响应消息转发模块;
响应消息转发模块,用于转发接收到的响应消息;
指令处理模块,用于根据指示对所述第二数据指令进行处理。
本发明实施例在智能卡响应当前数据指令的同时,由智能卡读写器并行从
上位机处接收后续将要执行的数据指令,节约了上位机和联机智能卡读写器之
间的通信时间。


图1为本发明实施例一中进行数据通信的方法步骤示意图; 图2为本发明实施例二中进行数据通信的方法步骤示意图; 图3为本发明实施例三中进行数据通信的系统结构示意图; 图4为本发明实施例四中智能卡读写器的结构示意图。
具体实施例方式
为了实现本发明目的,在智能卡对当前的数据指令进行操作而智能卡读写 器处于空闲状态时,智能卡读写器从上位机处获得下一条数据指令,并存储获 得的下一条数据指令,当智能卡读写器将执行当前数据指令的响应消息返回给 上位机后,可以直接将存储的下一条数据指令发送给智能卡,而不需再从上位 机处获得下一条数据指令。由于智能卡读写器从上位机处获取下一条数据指令 与智能卡对当前数据指令并行执行,因此,从占用时间的角度看,相当于取消 了上位机发送下一条数据指令的传输过程,如果是针对大量的智能卡执行数据 指令时,利用本发明可以有效地提高生产效率。本发明实施例中涉及的智能卡 读写器可以是作为单元部件嵌入到其它系统中的联4几智能卡读写器。本发明实 施例中所涉及的数据指令可以为应用层数据指令(Application protocol data unit, APDU),该数据指令中携带大量的数据信息,智能卡利用数据指令中的数据信息执行相应的操作。本发明中所涉及的响应消息可以包含执行结果,也
可以包含其它数据信息,上位机可以利用响应消息中的其它婆:据信息确定下一 条数据指令。
下面结合说明书附图对本发明实施例进^f亍详细描述。
如图l所示,为本发明实施例一中进行数据通信的方法步骤示意图,从图 中可以看出,本方法包括以下步骤
步骤101:智能卡读写器接收上位机发送的第一数据指令。
智能卡读写器作为单独的设备和上位机之间通信时,釆用串口方式或USB 方式,而作为一个单元部件嵌入到其它系统中时,从主控单元(相当于上位机 的单元部件)中获取数据指令的方式有I2C、 SPI和串口方式等。不同的通信 方式对应的传输速率有极大的差异,因此,上位机向智能卡读写器发送第一数 据指令所需的时长也不同。对于I2C或串口的通信方式,最高传输速率只有几 百Kbps,在第一数据指令中包含的数据量较大时,传输将可能会持续一个较 长的时间。
步骤102:智能卡读写器将所述第一数据指令发送给智能卡。 智能卡读写器与智能卡之间的通信速率时间取决于智能卡所遵循的标准 协议,例如,接触式CPU智能卡遵循IS07816-3通信协议,通信速率在9600bps 至384kbps之间;釆用USB和SD卡通信的大容量智能卡的通信速率在1Mbps 以上。对于非接触式智能卡,智能卡读写器与非接触式智能卡之间采用的通信 协议有IS014443协议、ISOl5693及ISOl8092,这些协议所支持的智能卡与 智能卡读写器之间的典型通信速率为106kbps、 212kbps和424kbps。 步骤103:智能卡读写器接收上位机发送的第二数据指令。 本步骤的执行时间在接收到智能卡返回的响应消息之前,即智能卡在执行 接收到的第 一数据指令的过程中。
在智能卡读写器向智能卡发出第 一数据指令之后,并且在接收第二数据指 令之前,智能卡读写器将向上位机上报自身处于空闲的状态,要求上位机发送第二数据指令。上位机在获知智能卡读写器处于空闲状态时,发出将第二数据 指令。
步骤104:智能卡读写器接收智能卡返回的响应消息,并将该响应消息发 送给上^f立才几。
智能卡对第 一数据指令执行完毕后,将向智能卡读写器返回执行的响应消息。
步骤105:上位机根据接收到的响应消息,指示智能卡读写器对第二数据 指令进行处理。
步骤105执行完毕后,可以返回至步骤103,继续向上位机上报智能卡读 写器处于空闲状态,请求获得下一条数据指令。
在步骤105中,上位机需要根据接收到的响应消息判断是否允许执行第二 数据指令,如果允许,则指示智能卡读写器向智能卡发送所述第二数据指令, 否则,指示智能卡读写器停止向智能卡发送所述第二数据指令。在不同的情况 下,上位机判断是否允许执行第二数据指令的方式不同
如果智能卡返回的响应消息的内容是"操作正常",则认为可以执行下一 条数据指令,因此指示智能卡读写器向智能卡发送所述第二数据指令;如果智 能卡返回的响应消息的内容是"操作失败",则需要重新执行第一数据指令, 不能执行第二数据指令。
如果上位机根据返回的响应消息重新确定了接下来需要执行的数据指令, 而重新确定的数据指令与第二数据指令相同,则指示智能卡读写器向智能卡发 送所述第二数据指令,否则,指示智能卡读写器停止向智能卡发送所述第二数 据指令。
在上位机根据接收到的响应消息确定需要执行第二数据指令时,上位机指 示读卡器向智能卡发送所述第二数据指令的方法有多种,包括但不限于以下几 种
第 一种方式上位机通过硬件触发方式指示所述智能卡读写器向智能卡发送所述第二数据指令,由于硬件触发的方式占用的时长要远远低于上位机向智 能卡读写器发送数据指令的时长,因此,基本上在执行一条数据指令时能够节
约上位机向智能卡读写器传输数据指令持续的时间。
第二种方式上位机通过软件触发方式指示所述智能卡读写器向智能卡发 送所述第二数据指令。这里的软件触发方式可以是软件生成的触发指令,在触 发指令中携带是否发送第二数据指令的标识,由于这种触发指令携带的信息量 少,因此传输时间低于上位机向智能卡读写器发送数据指令的时长。
第三种方式上位机向所述智能卡读写器发送第三数据指令,智能卡读写 器在完成接收所述第三数据指令之前接受触发,向智能卡发送所述第二数据指 令。具体地,由于本发明中涉及的数据指令的数据包头中可以携带用于指示该 指令为APDU指令的信息,因此,智能卡读写器在接收到数据包头中的一、两 个字节的信息就能够确定上位机发出了相应的指示,要求智能卡读写器发送第 二数据指令,则智能卡读写器一边继续接收第三数据指令, 一边将存储的第二 数据指令发送给智能卡。通过传输第三数据指令来指示智能卡读写器的方法可
以节约的时长为(上位机向智能卡读写器传输第二数据指令的时长)-(智能 卡读写器接收第三数据指令的数据包头的时长)。
在本发明实施例一的方案中,智能卡读写器和上位机之间的通信握手机制 可以通过软件或者硬件握手信号来实现,智能卡读写器可以通过与上位机之间 的通信握手机制通知上位机自身可发送或接收数据指令。软件握手信号是指通 过特定格式通信数据包,告知对端自身的通信状态。硬件握手信号功能与软件 握手信号功能相同,只不过是通过硬件机制来实现以上功能,硬件握手信号更 有利于提高通信效率。
通过步骤101至步骤105的描述,可以在执行一条数据指令的过程中取消 上位机向智能卡读写器发送数据指令的步骤,实际减少的时间为=(上位机向 智能卡读写器发送数据指令的时间)-(上位机指示智能卡读写器的时间)。
例如,在现有方法中,初始时连续执行两条相同的数据指令所需的时间为
102T1+2T2+2T3+2T4+2T5,其中,2T1表示上位机向智能卡读写器发送两条数据 指令的传输时间、2T2表示智能卡读写器向智能卡发送两条数据指令的传输时 间、2T3表示智能卡对两条数据指令的响应时间、2T4表示智能卡读写器接收 智能卡返回的两条响应消息的传输时间、2T5表示智能卡读写器向上位机发送 两条响应消息的传输时间。而应用本发明实施例一的方法后,连续执行两条相 同的数据指令所需的时间为Tl+2T2+2T3+2T4+2T5+t,其中,2T2、 2T3、 2T4、 2T5的含义与现有方法相同,Tl表示上位机向智能卡读写器发送第一条数据指 令的传输时间,由于第二条数据指令的传输过程是在T4时间内执行的,因此, 执行两条相同的数据指令所需的总时间内只有一个Tl, t表示上位机指示智能 卡读写器的发送第二数据指令的时间,由于Tl远远大于t,因此,从执行第二 条数据指令时开始,后续每执行一条数据指令就可以节约(Tl-t)的时间,对 于每年需要制造数千万张智能卡而言,可以大大提高生产效率。
本发明实施例二通过高速发卡板的实例来说明实施例一的方案。高速发卡 板应用于智能卡的生产初始化环节,实现对智能卡初始化的功能。假设,在本 实施例二中,智能卡读写器内嵌在高速发卡板中,作为高速发卡板的智能卡读 写模块存在,高速发卡板还包含一个主控模块,该主控模块可以为ARM9处理 器,其中运行的操作系统为嵌入式Linux操作系统,其功能与上位机类似,利 用智能卡的初始化数据形成APDU指令,并发送给智能卡读写模块。
主控模块与智能卡读写模块之间采用SPI方式通信,主控模块采用SPI主 模式,智能卡读写模块采用SPI从模式,智能卡读写模块通过硬件信号线向主 控模块输出信号,指示智能卡读写器的空闲状态,该硬件信号与软件相配合构 成两个模块之间的握手机制。在本实施例二中,主控模块通过向智能卡读写模 块发送数据指令来指示智能卡读写模块是否发送緩存中的数据指令。
如图2所示,实施例二的方法包括以下步骤
步骤201:初始化智能卡读写模块。
步骤202:主控模块开始向智能卡读写模块发送数据包。步骤203:智能卡读写模块在接收到数据包的包头部分时(还未完成数据 包的接收),根据包头部分的信息判断正在接收的数据包是否为APDU指令; 若是,则执行步骤204;否则,执行步骤208。
在本发明实施例二中,假设以主控模块发出的APDU指令作为主控模块指 示智能卡读写模块是否向智能卡发送数据指令的触发条件。
步骤204:判断緩存中是否存在还未执行的APDU指令,若存在,则执行 步骤205;否则,执行步骤206。
本步骤的执行过程很短,本步骤执行完成后,智能卡读写模块还未完成数 据包的接收。
步骤205:将緩存的APDU指令发送给智能卡,并继续接收主控模块发送 的数据包,并在接收完成后将数据包放置在緩存中,然后跳转至步骤207。
在本步骤中,从主控模块处接收数据包和向智能卡发送APDU指令是并行 执行的。
步骤206:继续接收主控模块发送的数据包,在接收完成后将数据包发送 给智能卡,并再次接收主控模块发送的下一个APDU指令,然后跳转至步骤 207。
接收到的下一个APDU指令存储在緩存中。
步骤207:智能卡读写模块接收智能卡返回的响应消息,并将该响应消息 返回给主控模块,并跳转至步骤202。
步骤208:智能卡读写模块根据接收到的数据包执行相应操作,若该操作 是结束梯:作,则停止;否则,重新开始。
与本发明实施例 一属于同 一发明构思下的,本发明实施例三还提供一种数 据通信系统,如图3所示,所述系统包括上位才几ll、智能卡读写器12和智 能卡13,其中所述上位机11用于向智能卡读写器12发送第一数据指令和第 二数据指令,并接收响应消息,根据接收到的响应消息,指示智能卡读写器12 对第二数据指令进行处理;所述智能卡读写器12用于将接收到的第一数据指令发送给所述智能卡13,在接收到智能卡13返回的响应消息之前,接收所述 第二数据指令,以及将接收到的所述智能卡13返回的响应消息发送给上位机 11后,根据上位机11的指示对第二数据指令进行处理;智能卡13用于接收智 能卡读写器12发送的第一数据指令,并返回响应消息。
另外,所述智能卡读写器12用于向上位机11上报自身处于空闲的消息, 通知上位机11发送所述第二数据指令。
所述上位机11用于根据接收到的响应消息判断是否执行所述第二数据指 令,若要执行,则指示智能卡读写器12向智能卡13发送所述第二数据指令; 否则,指示智能卡读写12器停止向智能卡13发送所述第二数据指令。
进一步地,所述上位机11用于通过软件触发方式或硬件触发方式指示所 述智能卡读写器12向智能卡13发送所述第二数据指令。或者,所述上位机11 用于向所述智能卡读写器12发送第三数据指令,所述智能卡读写器12用于在 完成接收所述第三数据指令之前,向智能卡13发送所述第二数据指令。
本发明实施例四还提供一种智能卡读写器,该智能卡读写器与实施例一和 实施例三中的智能卡读写器功能相同,与实施例二中的智能卡读写模块功能相 同,如图4所示,所述智能卡读写器包括第一指令接收模块21、指令发送模 块22、第二指令接收才莫块23、响应消息转发模块24和指令处理模块25,其中 第一指令接收模块21用于接收第一数据指令;指令发送模块22用于发送所述 第一数据指令,并触发第二指令接收模块23;第二指令接收模块23用于接收 第二数据指令,并触发响应消息转发模块24;响应消息转发模块24用于转发 接收到的响应消息,并触发指令处理模块25;指令处理模块25用于根据指示 对所述第二数据指令进行处理。
所述智能卡读写器还包括状态通知模块26,用于上报所述智能卡读写器处 于空闲的消息。
进一步地,如果智能卡读写器能够通过外界的软件触发对第二数据指令进 行处理,则第一指令接收模块21可以接收用于触发的第三数据指令,并在完成接收所述第三数据指令之前,指示所述指令处理模块25发送所述第二数据指令。
本发明的有益之处在于节约了上位机和智能卡读写器之间的通信时间,也
就是节省了包含大数据量的APDU指令的通信传输时间,这种通信方法可以提 高智能卡数据指令的执行时间,提高了系统效率,特别地,对于智能卡生产初 始化之类的APDU指令而言,由于APDU指令中包含的数据量远远大于响应 消息的数据量和触发信号的数据量,因此,对系统效率提高的作用更加明显。 同时本方案对于通信速率较慢(如普通串口)但又对完成时间严格要求的数据 指令而言也具有重要意义,即使上位机和智能卡读写器之间所采用传输方式速 度较快,随着智能卡技术的发展,由于APDU指令包含的数据量越来越多,也 可以有效减少传输时间,提高系统效率。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1权利要求
1、一种数据通信方法,其特征在于,所述方法包括以下步骤智能卡读写器接收上位机发送的第一数据指令,并将接收到的所述第一数据指令发送给智能卡;在接收到智能卡返回的响应消息之前,智能卡读写器接收上位机发送的第二数据指令;智能卡读写器将智能卡返回的响应消息上报给上位机;上位机根据接收到的响应消息,指示智能卡读写器对第二数据指令进行处理。
2、 如权利要求1所述的方法,其特征在于,智能卡读写器将所述第一数 据指令发送给智能卡之后,并且智能卡读写器接收上位机发送的第二数据指令 之前,还包括以下步骤智能卡读写器向上位机上报自身处于空闲的消息,通知上位机发送所述第 二数据指令。
3、 如权利要求1所述的方法,其特征在于,上位机根据接收到的响应消 息,指示智能卡读写器对第二数据指令进行处理,包括以下步骤所述上位机根据接收到的响应消息判断是否执行所述第二数据指令; 若是,则指示智能卡读写器向智能卡发送所述第二数据指令; 否则,指示智能卡读写器停止向智能卡发送所述第二数据指令。
4、 如权利要求3所述的方法,其特征在于,指示智能卡读写器向智能卡 发送所述第二数据指令,包括所述上位机通过软件触发方式或硬件触发方式指示所述智能卡读写器向 智能卡发送所述第二数据指令。
5、 如权利要求3所述的方法,其特征在于,指示智能卡读写器向智能卡 发送所述第二数据指令,包括所述上位^/L向所述智能卡读写器发送第三数据指令;智能卡读写器将所述第二数据指令发送给智能卡包括 智能卡读写器在完成接收所述第三数据指令之前,向智能卡发送所述第二 数据指令。
6、 一种数据通信系统,其特征在于,所述系统包括上位机、智能卡读 写器和智能卡,其中所述上位机,用于向智能卡读写器发送第一数据指令和第二数据指令,并 接收响应消息,根据接收到的响应消息,指示智能卡读写器对第二数据指令进 行处理;所述智能卡读写器,用于将接收到的第一数据指令发送给所述智能卡,在 接收到智能卡返回的响应消息之前,接收所述第二数据指令,以及将接收到的 所述智能卡返回的响应消息发送给上位机后,根据上位机的指示对第二数据指 令进行处理;所述智能卡,用于接收智能卡读写器发送的第一数据指令,并返回响应消自
7、 如权利要求6所述的系统,其特征在于,所述智能卡读写器,用于向上位机上报自身处于空闲的消息,通知上位机 发送所述第二数据指令。
8、 如权利要求6所述的系统,其特征在于,所述上位机,用于根据接收到的响应消息判断是否执行所述第二数据指 令,若要执行,则指示智能卡读写器向智能卡发送所述第二数据指令;否则, 指示智能卡读写器停止向智能卡发送所述第二数据指令。
9、 如权利要求8所述的系统,其特征在于,所述上位机,用于通过软件触发方式或硬件触发方式指示所述智能卡读写 器向智能卡发送所述第二数据指令。
10、 如权利要求8所述的系统,其特征在于, 所述上位机,用于向所述智能卡读写器发送第三数据指令;所述智能卡读写器,用于在完成接收所述第三数据指令之前,向智能卡发 送所述第二数据指令。
11、 一种智能卡读写器,其特征在于,所述智能卡读写器包括第一指令 接收模块、第一指令发送模块、第二指令接收模块、响应消息转发模块和第二 指令发送模块,其中第一指令接收模块,用于接收第一数据指令;指令发送模块,用于发送所述第一数据指令,并触发第二指令接收模块; 第二指令接收模块,用于接收第二数据指令,并触发响应消息转发模块; 响应消息转发^^莫块,用于转发接收到的响应消息; 指令处理模块,用于根据指示对所述第二数据指令进行处理。
12、 如权利要求11所述的智能卡读写器,其特征在于,所述智能卡读写 器还包括状态通知模块,用于上报所述智能卡读写器处于空闲的消息。
13、 如权利要求11所述的智能卡读写器,其特征在于, 所述第一指令接收模块,用于接收第三数据指令,并在完成接收所述第三数据指令之前,指示所述指令处理模块发送所述第二数据指令。
全文摘要
本发明公开了一种数据通信方法,包括智能卡读写器接收上位机发送的第一数据指令,并将接收到的所述第一数据指令发送给智能卡;在接收到智能卡返回的响应消息之前,智能卡读写器接收上位机发送的第二数据指令;智能卡读写器将智能卡返回的响应消息上报给上位机,上位机根据接收到的响应消息,指示智能卡读写器对第二数据指令进行处理。通过本发明,节约了上位机发送数据指令的传输时间,可以有效地提高系统通信效率。本发明公开了一种数据通信系统及一种智能卡读写器。
文档编号G06K17/00GK101477637SQ20091007671
公开日2009年7月8日 申请日期2009年1月15日 优先权日2009年1月15日
发明者徐宏强, 刚 林 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1