一种ic卡读卡器及其接口扩展方法

文档序号:10570313阅读:299来源:国知局
一种ic卡读卡器及其接口扩展方法
【专利摘要】本发明公开了一种IC卡读卡器及其接口扩展方法,属于IC卡领域。本发明提供的IC卡读卡器包括:主控模块、电源模块、电源控制模块、信号选择传递模块、信号分路模块和具有多个IC卡接口的IC卡接口模块。本发明提供的IC卡读卡器的接口扩展方法包括:IC卡读卡器上电初始化之后循环执行通信处理和IC卡接口状态查询,并在执行过程中根据需求进行IC卡接口的切换。本发明的有益效果在于:使用本发明提供的技术方案能够实现与多张IC卡的同时通信,避免了一些应用场景下需要使用多个IC卡读卡器才能实现与多个IC卡的通信的麻烦。
【专利说明】
一种IC卡读卡器及其接口扩展方法
技术领域
[0001]本发明涉及IC卡领域,尤其涉及一种IC卡读卡器及其接口扩展方法。
【背景技术】
[0002]IC卡(Integrated Circuit Card,集成电路卡),又称智能卡(Smart card)、智慧卡(Intelligent card)、微电路卡(Microcircuit card)或微芯片卡等,是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片的形式。IC卡读卡器,是读写IC卡的机具设备,分为接触式IC卡读卡器、非接触式IC卡读卡器和双界面IC卡读卡器。由于接触式IC卡读卡器通常只具有一个IC卡接口,仅可以与一张IC卡进行通信,因此,现有技术中,在需要同时与多张IC卡进行交互的应用场景下,通常需要使用多个IC卡读卡器。

【发明内容】

[0003]本发明为了解决现有技术的问题,提供一种IC卡读卡器及其接口扩展方法。
[0004]本发明是通过下述技术方案实现的:
[0005 ] 一方面,本发明提供一种IC卡读卡器,包括主控模块、电源模块、电源控制模块、信号选择传递模块、信号分路模块和具有多个IC卡接口的IC卡接口模块;
[0006]其中,所述主控模块,用于向所述电源控制模块输出控制信号,向所述信号选择传递模块输出控制信号、复位信号和数据信号,向所述信号分路模块输出时钟信号,还用于对所述IC卡接口模块中的IC卡接口进行卡到位检测;
[0007]所述电源模块,用于为所述电源控制模块提供电源信号;
[0008]所述电源控制模块,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号为所述IC卡接口模块中相应的IC卡接口提供电源信号;
[0009]所述信号选择传递模块,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号选择连通所述IC卡接口模块中相应的IC卡接口,向当前连通的IC卡接口传递所述主控模块输出的复位信号和数据信号;
[0010]所述信号分路模块,用于将所述主控模块输出的时钟信号分路后提供给所述IC卡接口模块中的各IC卡接口。
[0011 ]进一步地,所述主控模块可以包括IC卡接口芯片;
[0012]所述信号选择传递模块可以包括复位信号选择传递电路和数据信号选择传递电路;其中,复位信号选择传递电路,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号选择连通所述IC卡接口模块中相应的IC卡接口,向当前连通的IC卡接口传递所述主控模块输出的复位信号;数据信号选择传递电路,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号选择连通所述IC卡接口模块中相应的IC卡接口,向当前连通的IC卡接口传递所述主控模块输出的数据信号,向所述主控模块传递当前连通的IC卡接口输出的数据信号;
[0013]所述信号分路模块可以包括:时钟信号分路电路,用于接收所述主控模块输出的时钟信号,将所述时钟信号分路后输出到所述IC卡接口模块的各IC卡接口。
[0014]更进一步地,所述复位信号选择传递电路可以包括:模拟开关、高压输出驱动器和上拉电阻,所述高压输出驱动器的数量和所述上拉电阻的数量与所述IC卡接口模块中的IC卡接口的数量相对应;
[0015]所述数据信号选择传递电路包括:模拟开关、高压输出驱动器、上拉电阻和限流电阻,所述高压输出驱动器的数量、所述上拉电阻的数量和所述限流电阻的数量与所述IC卡接口模块中的IC卡接口的数量相对应;
[0016]所述时钟信号分路电路可以包括:高压输出驱动器和上拉电阻,所述高压输出驱动器的数量和所述上拉电阻的数量与所述IC卡接口模块中的IC卡接口的数量相对应。
[0017]另一方面,本发明还提供一种IC卡读卡器的接口扩展方法,包括IC卡读卡器上电初始化之后循环执行通信处理和IC卡接口状态查询,其中:
[0018]所述通信处理包括:
[0019]接收上位机下发的指令,从所述指令中获取目标接口序号,判断所述目标接口序号对应的IC卡接口是否为当前有效接口,是则根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机,否则将所述IC卡接口作为目标接口,切换目标接口为当前有效接口,根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机;
[0020]所述IC卡接口状态查询包括:
[0021]查询各IC卡接口的卡片插入状态,判断各IC卡接口的卡片插入状态是否发生变化,对发生变化的IC卡接口:若IC卡接口当前的卡片插入状态为有卡插入,则向所述上位机报告有卡片插入所述IC卡接口 ;若1(3卡接口当前的卡片插入状态为无卡插入,则判断所述IC卡接口是否为当前有效接口,是则对所述IC卡接口下电,向所述上位机报告卡片从所述IC卡接口拔出,否则记录当前有效接口为原有效接口,将所述IC卡接口作为目标接口,切换目标接口为当前有效接口,对所述IC卡接口下电,向所述上位机报告卡片从所述IC卡接口拔出,将所述原有效接口作为目标接口,切换目标接口为当前有效接口。
[0022]所述根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机包括:若所述指令为上电指令,则对所述IC卡接口上电,接收所述IC卡接口中的卡片返回的自动复位响应,设置所述IC卡接口的接口状态为有卡插入且卡片已激活,将所述自动复位响应返回给所述上位机。
[0023]所述对所述IC卡接口上电,接收所述IC卡接口中的卡片返回的自动复位响应,设置所述IC卡接口的接口状态为有卡插入且卡片已激活,具体包括:
[0024]步骤1、判断所述IC卡接口的卡片插入状态,若为无卡插入则向所述上位机返回错误码,若为有卡插入则执行步骤2;
[0025]步骤2、根据所述上电指令中的电压选择参数设置IC卡接口芯片的内部电压,启动IC卡接口芯片的上电时序,判断是否接收到所述IC卡接口中的卡片返回的自动复位响应,是则执行步骤3,否则向所述上位机返回错误码;
[0026]步骤3、设置所述IC卡接口的接口状态为有卡插入且卡片已激活。
[0027]所述步骤3具体包括:
[0028]步骤3-1、解析接收到的自动复位响应,若解析成功则设置所述IC卡接口的接口状态为有卡插入且卡片已激活,若解析失败则执行步骤3-2;
[0029]步骤3-2、对所述IC卡接口进行热复位,判断是否接收到卡片返回的自动复位响应,是则执行步骤3-3,否则向所述上位机返回错误码;
[0030]步骤3-3、解析接收到的自动复位响应,若解析成功则设置所述IC卡接口的接口状态为有卡插入且卡片已激活,若解析失败则向所述上位机返回错误码。
[0031 ]所述根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机包括:若所述指令为传输数据块指令,则根据所述指令向所述IC卡接口中的卡片发送通信指令,接收卡片返回的应答数据,根据所述应答数据向所述上位机返回指令应答。
[0032]所述接收所述IC卡接口返回的自动复位响应之后,还包括从接收到的自动复位响应中获取通信协议类型,将获取到的通信协议类型保存为所述IC卡接口的通信协议类型;
[0033]所述向所述IC卡接口中的卡片发送通信指令具体包括根据所述IC卡接口的通信协议类型向所述IC卡接口中的卡片发送通信指令。
[0034]所述切换目标接口为当前有效接口具体包括:
[0035]步骤al、判断当前和IC卡接口芯片连通的IC卡接口的接口状态是否为有卡插入且卡片已激活,是则根据当前IC卡接口芯片的硬件寄存器的值备份当前和IC卡接口芯片连通的IC卡接口的通信配置信息,执行步骤a2,否则执行步骤a2;
[0036]步骤a2、根据目标接口的工作电压设置IC卡接口芯片的内部电压;
[0037]步骤a3、判断目标接口的接口状态是否为有卡插入且卡片已激活,是则获取目标接口的通信配置信息,根据目标接口的通信配置信息重新配置IC卡接口芯片的硬件寄存器的值,连通目标接口和IC卡接口芯片,否则连通目标接口和IC卡接口芯片,并复位目标接
□ O
[0038]所述IC卡读卡器上电初始化包括:分别创建与各IC卡接口对应的缓存区,并初始化缓存区中的数据;
[0039]所述根据当前IC卡接口芯片的硬件寄存器的值备份当前和IC卡接口芯片连通的IC卡接口的通信配置信息,具体包括:将当前IC卡接口芯片的硬件寄存器的值缓存到与当前和IC卡接口芯片连通的IC卡接口对应的缓存区;
[0040]所述获取目标接口的通信配置信息,具体包括:读取与所述目标接口对应的缓存区中缓存的硬件寄存器的值。
[0041]所述查询各IC卡接口的卡片插入状态,判断各IC卡接口的卡片插入状态是否发生变化,包括依次对各个IC卡接口执行以下操作:
[0042]步骤1、查询IC卡接口当前的卡片插入状态,读取IC卡接口的卡片插入状态记录;
[0043]步骤2、判断IC卡接口当前的卡片插入状态与IC卡接口的卡片插入状态记录中的卡片插入状态是否一致,是则IC卡接口的卡片状态未发生变化,否则IC卡接口的卡片状态发生变化。
[0044]本发明的有益效果在于:本发明提供的IC卡读卡器具有多个IC卡接口,通过本发明提供的技术方案能够实现与多张IC卡的同时通信,避免了一些应用场景下需要使用多个IC卡读卡器才能实现与多个IC卡的通信的麻烦。
【附图说明】
[0045]为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]图1为本发明实施例1提供的一种IC卡读卡器的结构方框图;
[0047]图2为本发明实施例1提供的一种IC卡读卡器的具体方框图;
[0048]图3为本发明实施例1以两个IC卡接口为例提供的一种IC卡读卡器的电路图;
[0049]图4为本发明实施例3提供的一种IC卡读卡器的接口扩展方法的通信流程图;
[0050]图5为本发明实施例3中提供的对目标序号对应的IC卡接口进行上电的流程图;
[0051]图6为本发明实施例3提供的一种IC卡读卡器的接口扩展方法的接口轮询流程图;
[0052]图7为本发明实施例3提供的设置目标接口为当前有效接口的流程图。
【具体实施方式】
[0053]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]实施例1
[0055]本实施例提供一种IC卡读卡器,如图1所示,包括:主控模块11、电源模块12、电源控制模块13、信号选择传递模块14、信号分路模块15以及IC卡接口模块16,其中,IC卡接口模块16中包括多个IC卡接口(IC卡接口 1、IC卡接口2.....1C卡接口η,η彡2),具体地:
[0056]主控模块11分别与电源控制模块13、信号选择传递模块14、信号分路模块15以及IC卡接口模块16中的各IC卡接口相连,用于向电源控制模块13输出控制信号,向信号选择传递模块14输出复位信号、数据信号以及控制信号,向信号分路模块15输出时钟信号,对IC卡接口模块16中的各IC卡接口进行卡到位检测;
[0057]电源模块12与电源控制模块13相连,用于为电源控制模块13提供电源信号;
[0058]电源控制模块13还与IC卡接口模块16中的各IC卡接口相连,用于接收主控模块11输出的控制信号,并根据接收到的控制信号为IC卡接口模块16中相应的IC卡接口供电;例如,IC卡接口模块16包括3个IC卡接口: IC卡接口 1、IC卡接口 2和IC卡接口 3,若电源控制模块13接收到的控制信号为00,则为IC卡接口 I供电,若电源控制模块13接收到的控制信号为01,则为IC卡接口2供电,若电源控制模块13接收到的控制信号为10则为IC卡接口3供电;
[0059]信号选择传递模块14还与IC卡接口模块16中的各IC卡接口相连,用于接收主控模块11输出的控制信号,并根据接收到的控制信号选择连通IC卡接口模块16中相应的IC卡接口,向当前连通的IC卡接口传递主控模块11输出的复位信号和数据信号;例如,IC卡接口模块16包括2个IC卡接口: IC卡接口 I和IC卡接口 2,若信号选择传递模块14接收到的控制信号为0,则选择连通IC卡接口 I,若信号选择传递模块14接收到的控制信号为I,则选择连通IC卡接口 2;
[0060]信号分路模块15还与IC卡接口模块16中的各IC卡接口相连,用于将主控模块11输出的时钟信号分路后输出到IC卡接口模块16中的各IC卡接口。
[0061]进一步地,本实施例中,如图2所示,信号选择传递模块14可以包括复位信号选择传递电路141和数据信号选择传递电路142,信号分路模块15包括时钟信号分路电路151,具体地:
[0062]复位信号选择传递电路141与主控模块11和IC卡接口模块16中的各IC卡接口相连,用于接收主控模块11输出的控制信号,并根据接收到的控制信号选择连通IC卡接口模块16中相应的IC卡接口,向当前连通的IC卡接口传递主控模块11输出的复位信号;
[0063]数据信号选择传递电路142与主控模块11和IC卡接口模块16中的各IC卡接口相连,用于接收主控模块11输出的控制信号,并根据接收到的控制信号选择连通IC卡接口模块16中相应的IC卡接口,向当前连通的IC卡接口传递主控模块11输出的数据信号,还用于向主控模块11传递当前连通的IC卡接口输出的数据信号;
[0064]时钟信号分路电路151与主控模块11和IC卡接口模块16中的各IC卡接口相连,用于接收主控模块11输出的时钟信号,将时钟信号分路后输出到IC卡接口模块16中的各IC卡接口。
[0065]更进一步地,本实施例中,复位信号选择传递电路141可以包括:模拟开关、高压输出驱动器和上拉电阻,其中,高压输出驱动器的数量和上拉电阻的数量与IC卡接口模块16中的IC卡接口的数量相对应;数据信号选择传递电路142可以包括:模拟开关、高压输出驱动器、上拉电阻和限流电阻,其中,高压输出驱动器的数量、上拉电阻的数量和限流电阻的数量与IC卡接口模块16中的IC卡接口的数量相对应;时钟信号分路电路151可以包括:高压输出驱动器和上拉电阻,其中,高压输出驱动器的数量和上拉电阻的数量与IC卡接口模块16中的IC卡接口的数量相对应。例如,本实施例以两个IC卡接口为例提供一种IC卡读卡器的具体电路,如图3所示,主控模块包括IC卡接口芯片,复位信号选择传递电路包括模拟开关1、高压输出驱动器U1、高压输出驱动器U2、上拉电阻Rl和上拉电阻R2;数据信号选择传递电路包括模拟开关2、高压输出驱动器U3、高压输出驱动器U4、高压输出驱动器U5、高压输出驱动器U6、上拉电阻R3、上拉电阻R4、上拉电阻R5、上拉电阻R6、限流电阻R7、限流电阻R8、限流电阻R9和限流电阻R10;时钟信号分路电路包括高压输出驱动器U7、高压输出驱动器U8、上拉电阻Rl I和上拉电阻Rl 2,具体地:
[0066]IC卡接口芯片的电源控制1管脚与电源控制模块13相连,RST管脚和切换控制1l与模拟开关I相连,数据1管脚和切换控制102与模拟开关2相连,CLK管脚与高压输出驱动器U7的输入端以及高压输出驱动器U8的输入端分别相连,⑶ETl管脚与IC卡接口 I的⑶ET管脚相连,⑶ET2管脚与IC卡接口 2的⑶ET管脚相连;
[0067]模拟开关I的两个输出端分别与高压输出驱动器Ul和高压输出驱动器U2的输入端相连;
[0068]高压输出驱动器Ul的输出端与IC卡接口 I的RST管脚相连,以及通过上拉电阻Rl与电源控制模块13相连;
[0069]高压输出驱动器U2的输出端与IC卡接口 2的RST管脚相连,以及通过上拉电阻R2与电源控制模块13相连;
[0070]模拟开关2的一个输出端与高压输出驱动器U3的输入端相连,以及通过限流电阻R8与高压输出驱动器U4的输出端相连,且该输出端还通过上拉电阻R5与IC卡接口芯片的VCC管脚相连;模拟开关2的另一个输出端与高压输出驱动器U5的输入端相连,以及通过限流电阻RlO与高压输出驱动器U6的输出端相连,且该输出端还通过上拉电阻R6与IC卡接口芯片的VCC管脚相连;
[0071]高压输出驱动器U3的输出端通过限流电阻R7与IC卡接口 I的1管脚相连,以及通过限流电阻R7和上拉电阻R3与电源控制模块13相连;
[0072]高压输出驱动器U4的输入端与IC卡接口 I的1管脚相连,以及通过上拉电阻R3与电源控制模块13相连;
[0073]高压输出驱动器U5的输出端通过限流电阻R9与IC卡接口2的1管脚相连,以及通过限流电阻R9和上拉电阻R4与电源控制模块13相连;
[0074]高压输出驱动器U6的输入端与IC卡接口 2的1管脚相连,以及通过上拉电阻R4与电源控制模块13相连;
[0075]高压输出驱动器U7的输出端与IC卡接口 I的CLK管脚相连,以及通过上拉电阻Rll与电源控制模块13相连;
[0076]高压输出驱动器U8的输出端与IC卡接口 2的CLK管脚相连,以及通过上拉电阻R12与电源控制模块13相连。
[0077]实施例2
[0078]本实施例提供一种IC卡读卡器的接口扩展方法,所涉及的IC卡读卡器(以下简称读卡器)具有多个IC卡接口,但同一时刻只有一个有效的IC卡接口。所述方法包括:
[0079]读卡器上电初始化之后循环执行通信处理和IC卡接口状态查询;
[0080]所述通信处理具体包括:接收上位机下发的指令,从所述指令中获取目标接口序号,判断所述目标接口序号对应的IC卡接口是否为当前有效接口,是则根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机,否则将所述IC卡接口作为目标接口,切换目标接口为当前有效接口,根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机;
[0081]执行IC卡接口状态查询具体包括:查询各IC卡接口的卡片插入状态,判断各IC卡接口的卡片插入状态是否发生变化,对发生变化的IC卡接口执行以下操作:若IC卡接口当前的卡片插入状态为有卡插入,则向所述上位机报告有卡片插入所述IC卡接口 ;若1(:卡接口当前的卡片插入状态为无卡插入,则判断所述IC卡接口是否为当前有效接口,是则对所述IC卡接口下电,向所述上位机报告卡片从所述IC卡接口拔出,否则记录当前有效接口为原有效接口,将所述IC卡接口作为目标接口,切换目标接口为当前有效接口,对所述IC卡接口下电,向所述上位机报告卡片从所述IC卡接口拔出,将所述原有效接口作为目标接口,切换目标接口为当前有效接口。
[0082]实施例3
[0083]本实施例提供一种IC卡读卡器的接口扩展方法,包括读卡器上电初始化之后循环执行通信处理流程和卡槽状态轮询流程,具体可以先执行通信处理流程,也可以先执行卡槽状态轮询流程。本实施例中的IC卡读卡器具有多个IC卡接口,但同一时刻只有一个有效的IC卡接口,本实施例中称之为当前有效接口,读卡器工作过程中能够根据需要切换任意IC卡接口为当前有效接口。
[0084]如图4所示,通信处理流程包括:
[0085]步骤201、接收上位机下发的指令,从指令中获取目标接口序号;
[0086]具体地,从上位机下发的指令的第六个字节获取目标接口序号;例如,上位机下发的指令的第六个字节为OO,表示目标接口序号为I。
[0087]步骤202、判断目标接口序号是否超过读卡器支持的接口的序号范围,是则向上位机返回错误码,通信处理流程结束,否则执行步骤203;
[0088]具体地,预先定义读卡器各IC卡接口的序号,例如,读卡器的IC卡接口数量为3个,预先定义IC卡接口的序号依次为1、2、3,则读卡器支持的接口的序号范围为I?3,若目标接口序号为2,则目标接口序号没有超过读卡器支持的接口序号范围,若目标接口序号为4,则目标接口序号超出了读卡器支持的接口序号范围。
[0089]步骤203、判断目标接口序号对应的IC卡接口是否为当前有效接口,是则执行步骤205,否则执行步骤204;
[0090]本实施例中,读卡器上电初始化时设置默认IC卡接口为当前有效接口;
[0091]进一步地,读卡器上电时设置有效接口序号变量,且该变量的初始值为默认IC卡接口的序号,例如该变量的初始值为I;
[0092]判断目标接口序号对应的IC卡接口是否为当前有效接口具体为:判断有效接口序号变量的值是否为目标接口序号,是则目标接口序号对应的IC卡接口为当前有效接口,否则目标接口序号对应的IC卡接口不是当前有效接口 ;
[0093]例如,有效接口序号变量的值为I,从上位机下发的指令中获取到的目标接口序号为2,则通过比较判定目标接口序号对应的IC卡接口不是当前有效接口。
[0094]步骤204、将目标接口序号对应的IC卡接口作为目标接口,将目标接口设置为当前有效接口,执行步骤205;
[0095]进一步地,本实施例中,将目标接口设置为当前有效接口之后还包括:更新有效接口序号变量的值为目标接口序号。
[0096]步骤205、根据上位机下发的指令对目标接口序号对应的IC卡接口执行操作,向上位机返回指令应答,通信处理流程结束。
[0097]具体地,步骤205包括:判断上位机下发的指令的类型,若为上电指令则对目标接口序号对应的IC卡接口中的卡片上电,接收卡片返回的自动复位响应(Answer To Reset,ATR),设置目标接口序号对应的IC卡接口的接口状态为有卡插入且卡片已激活,并将ATR返回给上位机,通信流程结束;若为传输数据块指令则根据上位机下发的指令向目标接口序号对应的IC卡接口中的卡片发送通信指令,接收卡片返回的应答数据,根据卡片返回的应答数据向上位机返回指令应答,通信流程结束;否则根据上位机下发的指令执行相应操作,并根据操作结果向上位机返回指令应答,通信流程结束;
[0098]具体地,根据上位机下发的指令的第一个字节判断指令的类型,若上位机下发的指令的第一个字节为62,则上位机下发的指令为上电指令,若上位机下发的指令的第一个字节为6f,则上位机下发的指令为传输数据块指令。
[0099]进一步地,如图5所示,对目标接口序号对应的IC卡接口中的卡片上电,接收卡片返回的自动复位响应(Answer To Reset,ATR),设置目标接口序号对应的IC卡接口的接口状态为有卡插入且卡片已激活,并将ATR返回给上位机,可以具体包括:
[0100]步骤2-1、判断目标接口序号对应的IC卡接口的卡片插入状态,若为有卡插入则执行步骤2-2,否则向上位机返回错误码;
[0101]步骤2-2、根据上电指令中的电压选择参数设置IC卡接口芯片的内部电压;
[0102]具体地,上电指令的第八个字节为电压选择参数,根据上电指令的第八字节的值设置IC卡接口芯片的内部电压,若上电指令的第八个字节的值为00,则设置IC卡接口芯片的内部电压为自动电压选择模式,若上电指令的第八个字节的值为01,则设置IC卡接口芯片的内部电压为5伏,若上电指令的第八个字节的值为02,则设置IC卡接口芯片的内部电压为3伏,若上电指令的第八个字节的值为03,则设置IC卡接口芯片的内部电压为1.8伏。
[0103]步骤2-3、对目标接口序号对应的IC卡接口中的卡片上电;
[0104]具体地,步骤2-3包括:启动IC卡接口芯片的上电时序;
[0105]步骤2-4、判断是否接收到卡片返回的ATR,是则执行步骤2-5,否则向上位机返回错误码;
[0106]步骤2-5、对卡片返回的ATR进行解析,从ATR中获取通信协议类型;
[0107]进一步地,步骤2-5中还可以包括从ATR中获取通信速率、通信模式、额外保护时间和工作等待时间等卡片参数;
[0108]更进一步地,步骤2-5中还可以包括根据卡片返回的ATR对IC卡接口芯片进行通信配置,具体包括根据卡片返回的ATR设置IC卡接口芯片的硬件寄存器的值。
[0109]步骤2-6、判断ATR是否解析成功,是则设置目标接口序号对应的IC卡接口的接口状态为有卡插入且卡片已激活,记录目标接口序号对应的IC卡接口的工作电压,保存通信协议类型,将卡片返回的ATR返回给上位机,否则执行步骤2-7;
[0110]具体地,判断ATR是否解析成功具体包括:判断解析得到的通信速率、通信协议类型、通信模式、额外保护时间和工作等待时间等卡片参数是否满足IS07816协议的规定,若满足则ATR解析成功,若不满足则ATR解析不成功。
[0111]步骤2-7、对目标接口序号对应的IC卡接口进行热复位;
[0112]步骤2-8、判断是否接收到卡片返回的ATR,是则执行步骤2-9,否则向上位机返回错误码;
[0113]步骤2-9、对卡片返回的ATR进行解析;
[0114]进一步地,步骤2-9中还可以包括从ATR中获取通信速率、额外保护时间和工作等待时间等卡片参数;
[0115]更进一步地,步骤2-9中还可以包括根据卡片返回的ATR对IC卡接口芯片进行通信配置,具体包括根据卡片返回的ATR设置IC卡接口芯片的硬件寄存器的值。
[0116]步骤2-10、判断ATR是否解析成功,是则设置目标接口序号对应的IC卡接口的接口状态为有卡插入且卡片已激活,记录目标接口序号对应的IC卡接口的工作电压,保存通信协议类型,将卡片返回的ATR返回给上位机,否则向上位机返回错误码;
[0117]本实施例中,步骤2-9中还包括:从ATR中获取通信协议类型,将获取到的通信协议类型保存为当前有效接口的通信协议类型;相应地,根据上位机下发的指令向当前有效接口中插入的卡片发送通信指令,接收卡片返回的数据,根据卡片返回的数据向上位机返回指令应答,可以具体包括:将传输数据块指令去除CCID封装后得到通信指令,获取当前有效接口对应的通信协议类型,根据获取到的通信协议类型将通信指令发送给当前有效卡槽中插入的卡片,接收卡片返回的数据,对卡片返回的数据进行CCID封装后返回给上位机;所述通信协议类型包括T = O和T = I。
[0118]进一步地,将传输数据块指令去除CCID封装具体包括:去除传输数据块指令的第一至第十个字节;对卡片返回的数据进行CCID封装包括:为卡片返回的数据添加CCID协议头。
[0119]如图6所示,接口状态轮询流程包括:
[0120]步骤301、根据轮询条件查找当前询问接口;
[0121]例如,轮询条件为按照序号从小到大的顺序依次询问各个IC卡接口,则首次执行步骤301时,查找序号最小的IC卡接口作为当前询问接口,执行步骤302,非首次执行步骤301时,查找序号与上一次循环中询问的IC卡接口的序号相邻且大于上一次循环中询问的IC卡接口的序号的IC卡接口,作为当前询问接口,执行步骤302。
[0122]步骤302、读取当前询问接口的卡片插入状态记录,检测当前询问接口当前的卡片插入状态;
[0123]具体地,检测当前询问接口当前的卡片插入状态包括:检查IC卡接口芯片上与当前询问接口对应的卡到位检测1管脚的电平,若IC卡接口芯片上与当前询问接口对应的卡到位检测1管脚的电平为预设电平,则当前询问接口当前的卡片插入状态为有卡插入,若IC卡接口芯片上与当前询问接口对应的卡到位检测1管脚的电平不为预设电平,则当前询问接口当前的卡片插入状态为无卡插入;
[0124]例如,若IC卡接口芯片上与当前询问接口对应的卡到位检测1管脚为低电平,则当前询问接口当前的卡片插入状态为有卡插入,若IC卡接口芯片上与当前询问接口对应的卡到位检测1管脚为高电平,则当前询问接口的卡片插入状态为无卡插入。
[0125]步骤303、判断当前询问接口的卡片插入状态是否有改变,是则执行步骤304,否则执行步骤311;
[0126]步骤303具体包括:判断当前查询接口当前的卡片插入状态与当前询问接口的卡片插入状态记录中记录的卡片插入状态是否相同,若相同则当前询问接口的卡片插入状态没有改变,执行步骤304,若不相同则当前询问接口的卡片插入状态有改变,执行步骤311;
[0127]例如,当前查询接口当前的卡片插入状态为有卡插入,而当前询问接口的卡片插入状态记录中记录的卡片插入状态为无卡插入,则当前询问接口的卡片插入状态有改变。
[0128]步骤304、判断当前询问接口当前的卡片插入状态,若为有卡插入则执行步骤305,若为无卡插入则执行步骤306;
[0129]步骤305、更新当前询问接口的卡片插入状态记录为有卡插入,设置当前询问接口的接口状态为有卡插入且卡片未激活,向上位机上报有卡片插入当前询问接口,执行步骤311;
[0130]步骤306、更新当前询问接口的卡片插入状态记录为无卡插入,设置当前询问接口的接口状态为无卡插入;
[0131 ]步骤307、判断当前询问接口是否为当前有效接口,是则执行步骤308,否则执行步骤309;
[0132]步骤308、对当前询问接口下电,执行步骤311;
[0133]步骤309、记录当前有效接口为原有效接口,将当前询问接口作为目标接口,设置目标接口为当前有效接口,对当前询问接口下电;
[0134]步骤310、将原有效接口作为目标接口,设置目标接口为当前有效接口,执行步骤311;
[0135]步骤311、根据轮询条件判断轮询是否结束,是则结束接口状态轮询,否则返回步骤 301。
[0136]例如,轮询条件为按照序号从小到大的顺序依次询问各个IC卡接口,则步骤311中判断本次循环中询问的IC卡接口是否为读卡器各IC卡接口的序号中序号最大的IC卡接口,是则轮询结束,否则轮询未结束。
[0137]进一步地,步骤311中,当根据轮询条件判断轮询结束时还可以包括:检查是否全部IC卡接口都已下电,是则关闭IC卡接口芯片的时钟信号输出,结束接口状态轮询,否则结束接口状态轮询。
[0138]进一步地,本实施例中,如图7所示,设置目标接口为当前有效接口具体包括:
[0139]步骤1-1、判断当前有效接口的接口状态是否为有卡插入且卡片已激活,是则执行步骤1-2,否则执行步骤1-3;
[0140]本实施例中,IC卡接口的接口状态包括以下三种:无卡插入,有卡插入且卡片未激活,和有卡插入且卡片已激活。
[0141]步骤1-2、备份IC卡接口芯片与当前有效接口之间的通信配置信息,执行步骤1-3;
[0142]本实施例中,IC卡读卡器上电初始化时,分别创建与各个IC卡接口对应的缓存区,并初始化缓存区中的数据;优选地,初始化缓存区中的数据为O;
[0143]相应地,备份IC卡接口芯片与当前有效接口之间的通信配置信息包括:将IC卡接口芯片的硬件寄存器的当前值缓存到与当前有效接口对应的缓存区。
[0144]步骤1-3、根据目标接口的工作电压设置IC卡接口芯片的内部电压;
[0145]具体地,读卡器上电初始化时,设置各IC卡接口的工作电压为默认电压(通常为1.8V),当对应IC卡接口上电成功后,若该IC卡接口的工作电压与默认电压不同,则更新该IC卡接口的工作电压为其实际工作电压。
[0146]步骤1-4、判断目标接口的接口状态,若为有卡插入且卡片已激活则执行步骤1-5,否则执行步骤1-7;
[0147]步骤1-5、获取IC卡接口芯片与目标接口之间的通信配置信息,根据获取到的配置信息对IC卡接口芯片进行通信配置,执行步骤1-6;
[0148]本实施例中,根据获取到的配置信息对IC卡接口芯片进行通信配置具体为:读取与目标接口对应的缓存区中缓存的硬件寄存器的值,根据获取到的硬件寄存器的值重新配置IC卡接口芯片中的硬件寄存器的值。
[0149]步骤1-6、连通目标接口和IC卡接口芯片,当前流程结束;
[0150]本实施例中,步骤1-6包括:IC卡接口芯片向信号选择传递模块发送控制信号,信号选择传递模块选择连通目标接口 ;
[0151 ]步骤1-7、连通目标接口和IC卡接口芯片,并复位目标接口,当前流程结束。
[0152]本实施例中,步骤1-7包括:1C卡接口芯片向信号选择传递模块发送复位信号和控制信号,信号选择传递模块连通目标接口,并向目标接口传递复位信号。
[0153]进一步地,上述【具体实施方式】中,读卡器上电初始化时设置默认IC卡接口为当前有效接口,并且记录当前有效接口序号为所述默认接口的序号,若读卡器上电初始化设置各IC卡接口均为无效状态,则步骤1-1之前还包括:
[0154]步骤1-0、判断是否存在当前有效接口,是则执行步骤1-1,否则执行步骤1-3;
[0155]具体地,判断是否存在当前有效接口包括:判断读卡器中是否有记录的当前有效接口序号,是则存在当前有效接口,否则不存在当前有效接口。
[0156]以上所述的实施例只是本发明较优选的【具体实施方式】,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
【主权项】
1.一种IC卡读卡器,其特征在于,包括:主控模块、电源模块、电源控制模块、信号选择传递模块、信号分路模块和具有多个IC卡接口的IC卡接口模块; 所述主控模块,用于向所述电源控制模块输出控制信号,向所述信号选择传递模块输出控制信号、复位信号和数据信号,向所述信号分路模块输出时钟信号,还用于对所述IC卡接口模块中的IC卡接口进行卡到位检测; 所述电源模块,用于为所述电源控制模块提供电源信号; 所述电源控制模块,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号为所述IC卡接口模块中相应的IC卡接口提供电源信号; 所述信号选择传递模块,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号选择连通所述IC卡接口模块中相应的IC卡接口,向当前连通的IC卡接口传递所述主控模块输出的复位信号和数据信号; 所述信号分路模块,用于将所述主控模块输出的时钟信号分路后提供给所述IC卡接口模块中的各IC卡接口。2.如权利要求1所述的读卡器,其特征在于,所述主控模块包括IC卡接口芯片。3.如权利要求1所述的读卡器,其特征在于,所述信号选择传递模块包括: 复位信号选择传递电路,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号选择连通所述IC卡接口模块中相应的IC卡接口,向当前连通的IC卡接口传递所述主控模块输出的复位信号; 数据信号选择传递电路,用于接收所述主控模块输出的控制信号,并根据接收到的控制信号选择连通所述IC卡接口模块中相应的IC卡接口,向当前连通的IC卡接口传递所述主控模块输出的数据信号,向所述主控模块传递当前连通的IC卡接口输出的数据信号。4.如权利要求3所述的读卡器,其特征在于,所述复位信号选择传递电路包括:模拟开关、高压输出驱动器和上拉电阻,所述高压输出驱动器的数量和所述上拉电阻的数量与所述IC卡接口模块中的IC卡接口的数量相对应。5.如权利要求3所述的读卡器,其特征在于,所述数据信号选择传递电路包括:模拟开关、高压输出驱动器、上拉电阻和限流电阻,所述高压输出驱动器的数量、所述上拉电阻的数量和所述限流电阻的数量与所述IC卡接口模块中的IC卡接口的数量相对应。6.如权利要求1所述的读卡器,其特征在于,所述信号分路模块包括:时钟信号分路电路,用于接收所述主控模块输出的时钟信号,将所述时钟信号分路后输出到所述IC卡接口模块的各IC卡接口。7.如权利要求6所述的读卡器,其特征在于,所述时钟信号分路电路包括:高压输出驱动器和上拉电阻,所述高压输出驱动器的数量和所述上拉电阻的数量与所述IC卡接口模块中的IC卡接口的数量相对应。8.—种IC卡读卡器的接口扩展方法,包括:IC卡读卡器上电初始化之后循环执行通信处理和IC卡接口状态查询,其特征在于: 所述通信处理包括: 接收上位机下发的指令,从所述指令中获取目标接口序号,判断所述目标接口序号对应的IC卡接口是否为当前有效接口,是则根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机,否则将所述IC卡接口作为目标接口,切换目标接口为当前有效接口,根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机; 所述IC卡接口状态查询包括: 查询各IC卡接口的卡片插入状态,判断各IC卡接口的卡片插入状态是否发生变化,对发生变化的IC卡接口:若IC卡接口当前的卡片插入状态为有卡插入,则向所述上位机报告有卡片插入所述IC卡接口 ;若1(3卡接口当前的卡片插入状态为无卡插入,则判断所述IC卡接口是否为当前有效接口,是则对所述IC卡接口下电,向所述上位机报告卡片从所述IC卡接口拔出,否则记录当前有效接口为原有效接口,将所述IC卡接口作为目标接口,切换目标接口为当前有效接口,对所述IC卡接口下电,向所述上位机报告卡片从所述IC卡接口拔出,将所述原有效接口作为目标接口,切换目标接口为当前有效接口。9.如权利要求8所述的方法,其特征在于,所述根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机包括:若所述指令为上电指令,则对所述IC卡接口上电,接收所述IC卡接口中的卡片返回的自动复位响应,设置所述IC卡接口的接口状态为有卡插入且卡片已激活,将所述自动复位响应返回给所述上位机。10.如权利要求9所述的方法,其特征在于,所述对所述IC卡接口上电,接收所述IC卡接口中的卡片返回的自动复位响应,设置所述IC卡接口的接口状态为有卡插入且卡片已激活,具体包括: 步骤1、判断所述IC卡接口的卡片插入状态,若为无卡插入则向所述上位机返回错误码,若为有卡插入则执行步骤2; 步骤2、根据所述上电指令中的电压选择参数设置IC卡接口芯片的内部电压,启动IC卡接口芯片的上电时序,判断是否接收到所述IC卡接口中的卡片返回的自动复位响应,是则执行步骤3,否则向所述上位机返回错误码; 步骤3、设置所述IC卡接口的接口状态为有卡插入且卡片已激活。11.如权利要求10所述的方法,其特征在于,所述步骤3具体包括: 步骤3-1、解析接收到的自动复位响应,若解析成功则设置所述IC卡接口的接口状态为有卡插入且卡片已激活,若解析失败则执行步骤3-2; 步骤3 - 2、对所述IC卡接口进行热复位,判断是否接收到卡片返回的自动复位响应,是则执行步骤3-3,否则向所述上位机返回错误码; 步骤3-3、解析接收到的自动复位响应,若解析成功则设置所述IC卡接口的接口状态为有卡插入且卡片已激活,若解析失败则向所述上位机返回错误码。12.如权利要求9所述的方法,其特征在于,所述根据所述指令对所述IC卡接口执行操作,返回指令应答给所述上位机包括:若所述指令为传输数据块指令,则根据所述指令向所述IC卡接口中的卡片发送通信指令,接收卡片返回的应答数据,根据所述应答数据向所述上位机返回指令应答。13.如权利要求12所述的方法,其特征在于: 所述接收所述IC卡接口返回的自动复位响应之后,还包括从接收到的自动复位响应中获取通信协议类型,将获取到的通信协议类型保存为所述IC卡接口的通信协议类型; 所述向所述IC卡接口中的卡片发送通信指令具体包括根据所述IC卡接口的通信协议类型向所述IC卡接口中的卡片发送通信指令。14.如权利要求9所述的方法,其特征在于,所述切换目标接口为当前有效接口具体包 括: 步骤al、判断当前和IC卡接口芯片连通的IC卡接口的接口状态是否为有卡插入且卡片已激活,是则根据当前IC卡接口芯片的硬件寄存器的值备份当前和IC卡接口芯片连通的IC卡接口的通信配置信息,执行步骤a2,否则执行步骤a2; 步骤a2、根据目标接口的工作电压设置IC卡接口芯片的内部电压; 步骤a3、判断目标接口的接口状态是否为有卡插入且卡片已激活,是则获取目标接口的通信配置信息,根据目标接口的通信配置信息重新配置IC卡接口芯片的硬件寄存器的值,连通目标接口和IC卡接口芯片,否则连通目标接口和IC卡接口芯片,并复位目标接口。15.如权利要求14所述的方法,其特征在于,所述IC卡读卡器上电初始化包括:分别创建与各IC卡接口对应的缓存区,并初始化缓存区中的数据; 所述根据当前IC卡接口芯片的硬件寄存器的值备份当前和IC卡接口芯片连通的IC卡接口的通信配置信息,具体包括:将当前IC卡接口芯片的硬件寄存器的值缓存到与当前和IC卡接口芯片连通的IC卡接口对应的缓存区; 所述获取目标接口的通信配置信息,具体包括:读取与所述目标接口对应的缓存区中缓存的硬件寄存器的值。16.如权利要求8所述的方法,其特征在于,所述查询各IC卡接口的卡片插入状态,判断各IC卡接口的卡片插入状态是否发生变化,包括依次对各个IC卡接口执行以下操作: 步骤1、查询IC卡接口当前的卡片插入状态,读取IC卡接口的卡片插入状态记录; 步骤2、判断IC卡接口当前的卡片插入状态与IC卡接口的卡片插入状态记录中的卡片插入状态是否一致,是则IC卡接口的卡片状态未发生变化,否则IC卡接口的卡片状态发生变化。
【文档编号】G06K7/00GK105930754SQ201610428529
【公开日】2016年9月7日
【申请日】2016年6月16日
【发明人】陆舟, 于华章
【申请人】飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1