一种批量发行智能卡的方法及系统的制作方法

文档序号:6640710阅读:275来源:国知局
一种批量发行智能卡的方法及系统的制作方法
【专利摘要】本发明公开了一种批量发行智能卡的方法及系统,包括:预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系;还包括:在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄;启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。本发明技术方案提高了智能卡的正确率和智能卡的发行效率。
【专利说明】一种批量发行智能卡的方法及系统

【技术领域】
[0001]本发明涉及通信智能卡应用【技术领域】,尤指一种批量发行智能卡的方法及系统。

【背景技术】
[0002]智能卡的发行是指将中国操作系统(⑶S,China Operating System)和写卡的数据写入到智能卡中。
[0003]目前,在智能卡发行中通常使用以下两种方法:
[0004]方法一,使用N个自主开发的写卡模块,使用PC机控制N个写卡模块同时发卡,此种方式常见于大型发行设备上大批量智能卡的发行,其中,N>1且N为正整数。通常,在智能卡的大批量发行时,使用的都是发行设备厂商配备的写卡模块,或者在发行设备上安装自主开发的写卡模块。这些写卡模块在造价上轻则几百,多则上千,且模块中的写卡系统需要专业人员维护。最重要的是,这些写卡模块的兼容性和稳定性也有不足。
[0005]方法二,使用一个USB读卡器或一个自主开发的写卡模块进行智能卡的发行,此种方法常见于小批量桌面手工发行、测试智能卡,或者小型的只支持一个读卡器的发行设备上。由于每次只能发行一张智能卡,严重影响了智能卡的发行效率。为了节约成本以及提高智能卡的发行效率,可以采用多个USB读卡器进行智能卡的发行。
[0006]现在市面上知名公司生产的USB读卡器价格低廉,尤其是兼容性和稳定性已得到了业界的肯定,并且USB读卡器发行智能卡的速度要比写卡模块快。但是使用USB读卡器发行智能卡会存在以下两个问题:
[0007]首先,USB读卡器与智能卡不能做到——对应。现在使用的USB读卡器都是符合PC/SC标准的,使用微软winscard.dll动态库提供的接口函数,可以获得所有和PC机连接的USB读卡器名称。比如PC机上插了 N个0MNIKEY 3x21读卡器,那么它们的名称就是“OMNIKEY CardMan 3x210,OMNIKEY CardMan 3x211,OMNIKEY CardMan 3x212,0MNIKEY
CardMan 3x213,......,OMNI KEY CardMan 3x21 N”。这些名称是 PC 机按照 USB 读卡器的插入顺序分配给USB读卡器的,称之为句柄。例如,有A、B两个USB读卡器,USB读卡器A第一个插入,则句柄是0,USB读卡器B第二个插入,句柄是I ;如果USB读卡器B第一个插入,则句柄是0,USB读卡器A第二个插入,句柄是I。所以如果人为的在USB读卡器外部根据当前句柄的顺序编了序号(句柄O为一号读卡器,句柄I为2号读卡器,……,句柄N为N+1号读卡器),安装到发行设备上,那么下次启动电脑后这些句柄和编号就可能对应不上了,操作句柄O写卡,但是句柄O不是和编号I读卡器对应,写的可能是3号位置的卡或者M号位置的卡。这样,在句柄发生变化的时候,就无法确定外部编好号的USB读卡器与需要发行的智能卡的一一对应关系。这样就导致了,智能卡发行过程中会出现错误的智能卡,并且降低了智能卡的发行效率。
[0008]其次,一台PC机上如果连接过多的USB读卡器,会造成无法驱动的问题,而正常的智能卡发行设备的写卡模块都有一百个以上,这样一旦一台PC机上连接过多的USB读卡器就会造成无法正常发行智能卡,降低了智能卡的发行效率。


【发明内容】

[0009]为了解决上述技术问题,本发明提供了一种批量发行智能卡的方法及系统,能够提高智能卡的正确率和智能卡的发行效率。
[0010]为了达到本发明目的,本发明提供了一种批量发行智能卡的方法,包括:预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系;还包括:
[0011]在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄;
[0012]启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。
[0013]进一步地,生成与USB读卡器的编号对应的USB读卡器的句柄,具体包括:
[0014]PC机停用与该PC机连接的各个USB读卡器;
[0015]依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄。
[0016]进一步地,依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄,具体包括:
[0017]遍历该PC机上连接的各个USB读卡器,当识别到某一个USB读卡器时,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号;
[0018]启用该USB读卡器,获取与该USB读卡器的编号相对应的USB读卡器的句柄,直到获取该PC机上全部USB读卡器的句柄。
[0019]进一步地,启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,具体包括:
[0020]获取该PC机上已启用的USB读卡器的总数目;
[0021]启动与该PC机上已启用的USB读卡器的总数目相等的写卡线程;
[0022]将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应。
[0023]进一步地,该方法还包括:监测PC机上连接的各个USB读卡器的状态;
[0024]当监测到某个USB读卡器被拔掉时,获取该USB读卡器的设备范例ID ;根据获得的设备范例ID,在预先存储的对应关系中查找与该设备范例ID对应的USB读卡器的编号;停止与该USB读卡器的编号对应的写卡线程。
[0025]进一步地,上述PC机为从PC机;该方法之前还包括:主PC机将来自智能卡发行设备的写卡信息发送给对应的从PC机。
[0026]进一步地,该方法之后还包括:从PC机将写卡完成状态信息发送给主PC机;主PC机将各个从PC机发送的写卡完成状态信息组合后发送给智能卡发行设备。
[0027]本发明还提供了一种批量发行智能卡的系统,包括:建立模块,用于预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系;
[0028]还包括PC机,用于:在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄;启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。
[0029]进一步地,上述PC机,具体用于:
[0030]停用与该PC机连接的各个USB读卡器;
[0031]依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄。
[0032]进一步地,上述PC机,还具体用于:
[0033]遍历该PC机上连接的各个USB读卡器,当识别到某一个USB读卡器时,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号;
[0034]启用该USB读卡器,获取与该USB读卡器的编号相对应的USB读卡器的句柄,直到获取该PC机上全部USB读卡器的句柄。
[0035]进一步地,上述PC机,具体用于:
[0036]获取该PC机上已启用的USB读卡器的总数目;
[0037]启动与该PC机上已启用的USB读卡器的总数目相等的写卡线程;
[0038]将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应。
[0039]进一步地,上述PC机,还用于:监测PC机上连接的各个USB读卡器的状态;
[0040]当监测到某个USB读卡器被拔掉时,获取该USB读卡器的设备范例ID ;根据获得的设备范例ID,在预先存储的对应关系中查找与该设备范例ID对应的USB读卡器的编号;停止与该USB读卡器的编号对应的写卡线程。
[0041]进一步地,该系统还包括:智能卡发行设备,用于将写卡信息发送给PC机;接收PC机发送的写卡完成状态信息。
[0042]进一步地,上述PC机为从PC机;该系统还包括:主PC机和智能卡发行设备;其中,
[0043]主PC机,用于将来自智能卡发行设备的写卡信息发送给对应的从PC机;其中,从PC机包括一个或一个以上的PC机。
[0044]进一步地,从PC机,还用于将写卡完成状态信息发送给主PC机;
[0045]主PC机,还用于将各个从PC机发送的写卡完成状态信息组合后发送给智能卡发行设备。
[0046]本发明技术方案包括:预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系;还包括:在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄;启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。本发明技术方案提高了智能卡的正确率。

【专利附图】

【附图说明】
[0047]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0048]图1为本发明批量发行智能卡的方法的流程图;
[0049]图2为本发明批量发行智能卡的系统的结构示意图。

【具体实施方式】
[0050]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0051]图1为本发明批量发行智能卡的方法的流程图,如图1所示,预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系;还包括:
[0052]步骤101:在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄。具体包括:
[0053]PC机停用与该PC机连接的各个USB读卡器;
[0054]依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄。
[0055]其中,预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系,具体包括:将各个带有编号的USB读卡器一个一个的单独插到PC机上,使用微软winscard.dll动态库提供的接口函数获取已插到PC机上的USB读卡器的设备范例ID,并将获得的USB读卡器的设备范例ID与该USB读卡器的编号对应存储。
[0056]其中,依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄,具体包括:
[0057]遍历该PC机上连接的各个USB读卡器,当识别到某一个USB读卡器时,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号;
[0058]启用该USB读卡器,获取与该USB读卡器的编号相对应的USB读卡器的句柄,直到获取该PC机上全部USB读卡器的句柄。
[0059]需要说明的是,停用PC机上连接的各个USB读卡器,是为了消除之前PC机为各个USB读卡器分配的句柄。另外,获取与该USB读卡器的编号相对应的USB读卡器的句柄,是指,在启用该USB读卡器时,PC机会为该USB读卡器分配一个句柄,分配的这个句柄即为与该USB读卡器的编号相对应的USB读卡器的句柄。
[0060]其中,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号,包括:
[0061]在预先存储的对应关系中找到与获得的该USB读卡器的设备范例ID相对应的编号,确定为该USB读卡器的编号。
[0062]其中,写卡信息包括发送智能卡传输到位开始写卡的信息和写卡数据等,写卡数据包括:cos系统和写卡数据。
[0063]需要说明的是,使用Setupap1.dll 中的 SetupDiSetClassInstallParams O和 SetupDiCallClassInstallerO 停用各个 USB 读卡器;使用 Setupap1.dll 中的 SetupDiEnumDeviceInfoO 识别 USB 读卡器;使用 SetupDiGetDeviceRegistryProperty ()获取设备范例 ID ;使用 SetupDiSetClassInstallParamsO 和SetupDiCallClassInstaller O 启用 USB 读卡器。
[0064]步骤102:启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。
[0065]进一步地,在写卡完成后,该方法还包括:各个USB读卡器将各自连接的智能卡的写卡完成状态发送给PC机。其中,写卡完成状态信息包括:写卡成功或写卡失败。
[0066]进一步地,写卡完成后,该PC机发送写卡完成状态信息。
[0067]其中,启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,具体包括:
[0068]获取该PC机上已启用的USB读卡器的总数目;
[0069]启动与该PC机上已启用的USB读卡器的总数目相等的写卡线程;
[0070]将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应。
[0071]其中,将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应,包括:将USB读卡器的编号对应的该USB读卡器的句柄与编号为该USB读卡器的编号的写卡线程绑定。
[0072]举例说明,当确定的USB读卡器的编号为3时,此时将该USB读卡器的句柄与3号写卡线程绑定。需要说明的是,之所以要把句柄和写卡线程绑定,是因为在具体的操作中,是依据句柄来对读卡器进行的操作。
[0073]其中,每个写卡线程中执行的写卡函数都一样,只是里面的一个参数不同,就是上述提到的句柄不一样。
[0074]上述步骤,可以在实际写卡中不直接关注和面对读卡器的句柄,而是通过设备范例ID的外部编号将将句柄和写卡线程绑定在一起,直接面对的是写卡线程,即写M号位置的卡,就使用M号线程,也就是使用M号编号的USB读卡器。而每次写卡前通过Setupapi中函数对所有USB读卡器的句柄的重新分配就保证了句柄和写卡线程的正确的对应关系。只要中途不拔掉读卡器,这些对应关系就不会改变。
[0075]进一步地,该方法还包括:监测PC机上连接的各个USB读卡器的状态;
[0076]当监测到某个USB读卡器被拔掉时,获取USB读卡器的设备范例ID ;根据获得的设备范例ID,在预先存储的对应关系中查找与该设备范例ID对应的USB读卡器的编号;停止与该USB读卡器的编号对应的写卡线程。
[0077]进一步地,上述PC机为从PC机;
[0078]该方法之前还包括:主PC机将来自智能卡发行设备的写卡信息发送给对应的从PC机。
[0079]其中,从PC机可以包括一个或一个以上。
[0080]相应地,本发明方法之后还包括:从PC机将写卡完成状态信息发送给主PC机;主PC机将各个从PC机发送的写卡完成状态信息组合后发送给智能卡发行设备。
[0081]需要说明的是,关于如何组合各个从PC机发送的写卡完成状态信息,属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
[0082]本发明方法中,通过将USB读卡器的编号与每次PC机分配给该USB读卡器的句柄对应,并将USB读卡器的编号与写卡线程的编号对应,从而该USB读卡器的句柄与写卡线程的编号绑定在一起,这样实现了直接面对的是写卡线程,即写M号位置的卡,就使用M号线程,也就是使用M号编号的USB读卡器。而每次写卡前通过Setupapi中函数对所有USB读卡器的句柄的重新分配就保证了句柄和写卡线程的正确的对应关系。提高了智能卡的正确率。通过主PC机和从PC机的共同作业,提升了智能卡的发行效率。通过USB读卡器替代现有技术中的写卡模块,降低了写卡成本,以及提高了智能卡发行的准确性与确定性。
[0083]图2为本发明批量发行智能卡的系统的结构示意图,如图2所示,包括:建立模块和与一个以上的USB读卡器相连的PC机。其中,
[0084]建立模块,用于预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系。
[0085]PC机,在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄;启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。
[0086]其中,USB读卡器与PC通过USB集线器相连。
[0087]其中,PC机,具体用于:
[0088]停用与该PC机连接的各个USB读卡器;
[0089]依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄。
[0090]进一步地,PC机,还具体用于:
[0091]遍历该PC机上连接的各个USB读卡器,当识别到某一个USB读卡器时,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号;
[0092]启用该USB读卡器,获取与该USB读卡器的编号相对应的USB读卡器的句柄,直到获取该PC机上全部USB读卡器的句柄。
[0093]以及,
[0094]PC机,具体用于:
[0095]获取该PC机上已启用的USB读卡器的总数目;
[0096]启动与该PC机上已启用的USB读卡器的总数目相等的写卡线程;
[0097]将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应。
[0098]进一步地,PC机还用于,监测PC机上连接的各个USB读卡器的状态;
[0099]当监测到某个USB读卡器被拔掉时,获取该USB读卡器的设备范例ID ;根据获得的设备范例ID,在预先存储的对应关系中查找与该设备范例ID对应的USB读卡器的编号;停止与该USB读卡器的编号对应的写卡线程。
[0100]进一步地,该系统还包括:智能卡发行设备,用于将写卡信息发送给PC机;接收PC机发送的写卡完成状态信息。
[0101]进一步地,上述PC机为从PC机;该系统还包括:主PC机,用于将来自智能卡发行设备的写卡信息发送给对应的从PC机;其中,从PC机可以包括一个或一个以上的PC机。
[0102]进一步地,上述从PC机,还用于将写卡完成状态信息发送给主PC机;
[0103]上述主PC机,还用于将各个从PC机发送的写卡完成状态信息组合后发送给智能卡发行设备。
[0104]其中,写卡完成状态信息包括:写卡成功或写卡失败。
[0105]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
[0106]以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种批量发行智能卡的方法,其特征在于,预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系;还包括: 在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄; 启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。
2.根据权利要求1所述的方法,其特征在于,所述生成与USB读卡器的编号对应的USB读卡器的句柄,具体包括: PC机停用与该PC机连接的各个USB读卡器; 依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄。
3.根据权利要求2所述的方法,其特征在于,所述依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄,具体包括: 遍历该PC机上连接的各个USB读卡器,当识别到某一个USB读卡器时,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号; 启用该USB读卡器,获取与该USB读卡器的编号相对应的USB读卡器的句柄,直到获取该PC机上全部USB读卡器的句柄。
4.根据权利要求2所述的方法,其特征在于,所述启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,具体包括: 获取该PC机上已启用的USB读卡器的总数目; 启动与该PC机上已启用的USB读卡器的总数目相等的写卡线程; 将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:监测PC机上连接的各个USB读卡器的状态; 当监测到某个USB读卡器被拔掉时,获取所述USB读卡器的设备范例ID ;根据获得的设备范例ID,在预先存储的对应关系中查找与所述设备范例ID对应的USB读卡器的编号;停止与所述USB读卡器的编号对应的写卡线程。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述PC机为从PC机;该方法之前还包括:主PC机将来自智能卡发行设备的写卡信息发送给对应的从PC机。
7.根据权利要求6所述的方法,其特征在于,该方法之后还包括:从PC机将写卡完成状态信息发送给主PC机;主PC机将各个从PC机发送的写卡完成状态信息组合后发送给智能卡发行设备。
8.一种批量发行智能卡的系统,其特征在于,包括:建立模块,用于预先建立与PC机连接的USB读卡器的编号与USB读卡器的设备范例ID的对应关系; 还包括PC机,用于:在接收到写卡信息时,生成与USB读卡器的编号对应的USB读卡器的句柄;启动与该PC机上与已获得的各个USB读卡器的句柄相对应的写卡线程,进行写卡操作。
9.根据权利要求8所述的系统,其特征在于,所述PC机,具体用于: 停用与该PC机连接的各个USB读卡器; 依次启用各个USB读卡器,并获取与各个USB读卡器的编号相对应的USB读卡器的句柄。
10.根据权利要求9所述的系统,其特征在于,所述PC机,还具体用于: 遍历该PC机上连接的各个USB读卡器,当识别到某一个USB读卡器时,获取该USB读卡器的设备范例ID,确定该USB读卡器的编号; 启用该USB读卡器,获取与该USB读卡器的编号相对应的USB读卡器的句柄,直到获取该PC机上全部USB读卡器的句柄。
11.根据权利要求9所述的系统,其特征在于,所述PC机,具体用于: 获取该PC机上已启用的USB读卡器的总数目; 启动与该PC机上已启用的USB读卡器的总数目相等的写卡线程; 将获得的各个USB读卡器的句柄与启动的各个写卡线程的编号一一对应。
12.根据权利要求8所述的系统,其特征在于,所述PC机,还用于:监测PC机上连接的各个USB读卡器的状态; 当监测到某个USB读卡器被拔掉时,获取所述USB读卡器的设备范例ID ;根据获得的设备范例ID,在预先存储的对应关系中查找与所述设备范例ID对应的USB读卡器的编号;停止与所述USB读卡器的编号对应的写卡线程。
13.根据权利要求8所述的系统,其特征在于,该系统还包括:智能卡发行设备,用于将写卡信息发送给PC机;接收PC机发送的写卡完成状态信息。
14.根据权利要求8-13任意一项所述的系统,其特征在于,所述PC机为从PC机;该系统还包括:主PC机和智能卡发行设备;其中, 主PC机,用于将来自智能卡发行设备的写卡信息发送给对应的从PC机;其中,从PC机包括一个或一个以上的PC机。
15.根据权利要求14所述的系统,其特征在于,所述从PC机,还用于将写卡完成状态信息发送给主PC机; 所述主PC机,还用于将各个从PC机发送的写卡完成状态信息组合后发送给智能卡发行设备。
【文档编号】G06K13/08GK104484685SQ201410844049
【公开日】2015年4月1日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】冯飞, 侯朝晖, 郑辉 申请人:北京大唐智能卡技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1