一种检测非接触式cpu卡片离开射频场的方法

文档序号:6370524阅读:365来源:国知局
专利名称:一种检测非接触式cpu卡片离开射频场的方法
技术领域
本发明涉及智能卡领域,涉及到一种检测非接触式CPU卡片离开射频场的方法。
背景技术
非接触式卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。是世界上最近几年发展起来的一项新技木,它成功的将射频识别技术和IC卡读写器技术结合起来,结束了无源(卡中无电源)和免接触这ー难题,是电子器件领域的一大突破。卡片在一定距离范围(通常为5 — IOmm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作。
射频识别利用无线射频方式在读卡器和非接触式CPU卡片之间进行非接触双向传输数据,以达到目标识别和数据交换的目的。射频识别按应用频率的不同分为低频(LF)、 高频(HF)、超高频(UHF),相对应的代表性频率分别为低频135KHz以下、高频13. 56MHz、超高频860Μ 960ΜΗζ ;非接触式CPU卡片内集成电路中包括中央处理器(CPU)、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)以及片内操作系统COS等主要部分,犹如一台超小型电脑。
检测非接触式CPU卡片的过程中,发明人发现现有技术中至少存在如下问题寻卡激活以后,在卡片与上位机之间进行数据交互的间隙,无法实时地对卡片是否在射频场进行检測。通常的方法是重新进行寻卡操作,但是这样会干扰到卡片原来的操作状态。

发明内容
为解决现有技术存在的缺陷,本发明提供了ー种在不影响非接触式CPU卡片原先操作状态的条件下,实时检测非接触式CPU卡片是否离开射频场的方法。
一种检测非接触式CPU卡片离开射频场的方法,包括
步骤A :读卡器获取指令,并判断所述指令是否为有效指令,是则执行步骤B,否则执行步骤C ;
步骤B :所述读卡器判断所述有效指令的类型,
如是通知寻卡指令,则执行步骤D ;
如是APDU指令,则将所述APDU指令发送给卡片,并将卡片返回的响应以USB中断管道方式发送给上位机,返回步骤A ;
如是扩展指令,则根据所述扩展指令进行操作,并将操作结果以USB中断管道方式发送给上位机,返回步骤A ;
步骤C :所述读卡器判断卡片在射频场的标志是否置位,是则执行步骤E,否则执行步骤D;
步骤D :所述读卡器向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则将卡片在射频场的标志置位,并将卡片在射频场的响应以USB中断管道方式发送给上位机,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A;
步骤E :所述读卡器向卡片发送检测指令,并判断是否成功接收卡片返回的检测响应,是则保存所述检测响应,执行步骤F,否则执行步骤G ;
步骤F :所述读卡器将卡片在射频场的标志置位,并将卡片在射频场的响应以USB中断管道方式发送给上位机,返回步骤A ;
步骤G :所述读卡器将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A。
其中,所述将卡片在射频场的响应以USB中断管道方式通知上位机,具体包括
判断记录的卡片状态是否为卡片在射频场,是则返回步骤A,否则用所述卡片在射频场更新所述记录的卡片状态,返回步骤A ;
所述将卡片离开射频场的响应以USB中断管道方式通知上位机,具体包括
判断记录的卡片状态是否为卡片离开射频场,是则返回步骤A,否则用所述卡片离开射频场更新所述记录的卡片状态,返回步骤A。
其中,所述判断所述指令是否为有效指令,具体包括
所述读卡器接收从缓冲区中以中断方式发送的指令,如所述指令的第一字节与预设字符相符,则接收到有效指令,否则未接收到有效指令。
其中,所述步骤A之前包括所述读卡器上电进行初始化,打开通信中断使能;
所述方法还包括当所述读卡器检测到通信中断时进入通信中断处理,包括
步骤SI :所述读卡器关闭通信中断使能,清除通信中断标志;
步骤S2 :所述读卡器接收上位机下发的指令,并判断是否为有效指令,是则将所述指令的标志置位,打开所述通信中断使能并退出通信中断处理;否则打开所述通信中断使能并退出通信中断处理;
所述步骤A具体包括所述读卡器判断所述指令的标志是否置位,如置位则将所述指令的标志复位,顺序执行步骤B,如未置位则执行步骤C。
其中,所述步骤S2中判断是否为有效指令,具体包括
判断所述指令的第一字节是否与预设字符相符,是则接收到有效指令,否则未接收到有效指令。
其中,所述步骤E中所述读卡器向卡片发送检测指令,具体包括
如果所述读卡器是第一次发送检测指令,则所述读卡器向卡片发送第一预设字符串;如果所述读卡器不是第一次发送检测指令,则所述读卡器根据所述检测响应确定将要发送的检测指令,如所述检测响应最后一个比特位的值为O,则所述读卡器向卡片发送所述第一预设字符串;如所述检测响应最后一个比特位的值为1,则所述读卡器向卡片发送第 ニ预设字符串。
其中,所述步骤E中判断是否成功接收卡片返回的检测响应,具体包括
如检测指令为所述第一预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第一检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应;如检测指令为所述第二预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第二检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应。
其中,所述步骤B具体包括
步骤Bll :所述读卡器判断所述有效指令的类型,如是通知寻卡指令则执行步骤D,如是APDU指令则执行步骤B12,如是扩展指令则执行步骤B13 ;
步骤B12 :所述读卡器将所述APDU指令发送给卡片,判断是否接收到所述卡片返回的响应,是则将所述卡片在射频场的标志置位,并将所述接收到的响应以USB中断管道方式返回给上位机,返回步骤A ;否则将所述卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ;
步骤B13 :所述读卡器根据扩展指令进行操作,并将操作结果以USB中断管道方式返回给上位机,返回步骤A。
其中,所述步骤D具体包括
步骤Dll :所述读卡器向卡片发送第一请求指令,并判断是否接收到所述卡片返回的第一响应,是则执行步骤D12,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ;
步骤D12 :所述读卡器向所述卡片发送包含0x93和0x20的第二请求指令,并获取所述卡片返回的第一确认信息;
步骤D13 :所述读卡器根据所述第一确认信息与固定数据计算得到第一数据,并判断所述第一数据是否为0x00,是则所述卡片的串联级别为1,将卡号信息放在缓冲区中,顺序执行步骤D18,否则执行步骤D14 ;
步骤D14 :所述读卡器向所述卡片发送包含0x95和0x20的第三请求指令,并获取所述卡片返回的第二确认信息;
步骤D15 :所述读卡器根据所述第二确认信息与所述固定数据计算得到第二数据,并判断所述第二数据是否为0x00,是则所述卡片的串联级别为2,将卡号信息放在所述缓冲区中,顺序执行步骤D18,否则执行步骤D16 ;
步骤D16 :所述读卡器向所述卡片发送包含0x97和0x20的第四请求指令,并获取第三确认信息;
步骤D17 :所述读卡器根据所述第三确认信息与所述固定数据计算得到第三数据,并判断所述第三数据是否为0x00,是则所述卡片的串联级别为3,将卡号信息放在所述缓冲区中,顺序执行D18,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ;
步骤D18 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤D19,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ;
步骤D19 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应和卡片在射频场的响应分别以USB中断管道方式发送给所述上位机,返回步骤A。
其中,所述步骤D具体包括
步骤D21 :所述读卡器向所述卡片发送第五请求指令,并判断是否接收到所述卡片返回的第五响应,是则执行步骤D22,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ;
步骤D22 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤D23,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以US B中断管道方式发送给上位机,返回步骤A ;
步骤D23 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应和卡片在射频场的响应分别以USB中断管道方式发送给所述上位机,返回步骤A。
一种检测非接触式CPU卡片离开射频场的方法,包括
步骤a :读卡器打开定时中断使能;
步骤b :所述读卡器等待接收上位机发送的指令,并判断是否接收到有效指令,是则判断所述有效指令的类型,如是通知寻卡指令,则执行步骤c ;如是APDU指令,则执行步骤d ;如是扩展指令,则执行步骤e ;否则执行步骤f ;
步骤c :所述读卡器关闭定时中断使能,向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则将卡片在射频场的标志置位,打开定时中断使能,继续执行步骤f;否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ;
步骤d:所述读卡器关闭定时中断使能,将所述APDU指令发送给卡片,并判断是否接收到卡片返回的响应,是则将卡片在射频场的标志置位,并将接收到的响应以USB中断管道方式发送给上位机,打开定时中断使能,继续执行步骤f ;否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ;
步骤e :所述读卡器关闭定时中断使能,根据所述扩展指令进行操作,并将操作结果以USB中断管道方式发送给上位机,打开定时中断使能,继续执行步骤f ;
步骤f :所述读卡器判断所述卡片在射频场的标志是否置位,是则将卡片在射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;否则卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;
当所述读卡器接收到定时中断触发时进入定时中断处理,包括
步骤g :所述读卡器关闭定时中断使能,清除定时中断标志;
步骤h :所述读卡器判断卡片在射频场的标志是否置位,是则执行步骤i,否则向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则执行步骤1,否则执行步骤m ;
步骤i :所述读卡器向卡片发送检测指令,并判断是否成功接收卡片返回的检测响应,是则保存所述检测响应,执行步骤1,否则执行步骤m ;
步骤I :所述读卡器打开定时中断使能,退出定时中断处理;
步骤m:所述读卡器将所述卡片在射频场的标志复位,打开定时中断使能,退出定时中断处理。
其中,所述步骤c具体包括
步骤cll :所述读卡器关闭定时中断使能,向卡片发送第一请求指令,并判断是否接收到所述卡片返回的第一响应,是则执行步骤cl2,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ;
步骤cl2 :所述读卡器向所述卡片发送包含0x93和0x20的第二请求指令,并获取所述卡片返回的第一确认信息;
步骤cl3 :所述读卡器根据所述第一确认信息与固定数据计算得到第一数据,并判断所述第一数据是否为0x00,是则所述卡片的串联级别为1,将卡号信息放在缓冲区中,顺序执行步骤cl8,否则执行步骤cl4 ;
步骤cl4 :所述读卡器向所述卡片发送包含0x95和0x20的第三请求指令,并获取所述卡片返回的第二确认信息;
步骤cl5 :所述读卡器根据所述第二确认信息与所述固定数据计算得到第二数据,并判断所述第二数据是否为0x00,是则所述卡片的串联级别为2,将卡号信息放在所述缓冲区中,顺序执行步骤cl8,否则执行步骤cl6 ;
步骤cl6 :所述读卡器向所述卡片发送包含0x97和0x20的第四请求指令,并获取第三确认信息;
步骤cl7 :所述读卡器根据所述第三确认信息与所述固定数据计算得到第三数据,并判断所述第三数据是否为0x00,是则所述卡片的串联级别为3,将卡号信息放在所述缓冲区中,顺序执行cl8,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ;
步骤cl8 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤cl9,否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f;
步骤cl9 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应以USB中断管道方式发送给所述上位机,打开定时中断使能,继续执行步骤f。
其中,所述步骤c具体包括
步骤c21 :所述读卡器关闭定时中断使能,向所述卡片发送第五请求指令,并判断是否接收到所述卡片返回的第五响应,是则执行步骤c22,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ;
步骤c22 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤c23,否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f;
步骤c23 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应以USB中断管道方式发送给所述上位机,打开定时中断使能,继续执行步骤f。
其中,所述步骤b中如未接收到有效指令时,继续等待接收指令;
所述步骤C-步骤f、步骤I-步骤m分别替换为步骤c’ -步骤e’、步骤I’ -步骤m’ ;步骤c’ 所述读卡器关闭定时中断使能,向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则将卡片在射频场的标志置位,并以USB中断管道方式给上位机发送卡片在射频场的响应,返回步骤a ;否则将卡片在射频场的标志复位,并以USB中断管道方式给上位机发送卡片离开射频场的响应,返回步骤a ;
步骤d’ 所述读卡器关闭定时中断使能,将所述APDU指令发送给卡片,并判断是否接收到卡片返回的响应,是则将卡片在射频场的标志置位,并将接收到的响应和卡片在射频场的响应分别以USB中断管道方式发送给上位机,返回步骤a;否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;步骤e’ 所述读卡器关闭定时中断使能,则根据所述扩展指令进行操作,并将操作结果以USB中断管道方式发送给上位机,返回步骤a ;
步骤I’:所述读卡器将所述卡片在射频场的标志置位,并将卡片在射频场的响应以USB中断管道方式发送给上位机,打开定时中断使能,退出定时中断处理;
步骤m’ 所述读卡器将所述卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,打开定时中断使能,退出定时中断处理。
其中,所述步骤c ’具体包括
步骤c,11 :所述读卡器关闭定时中断使能,向卡片发送第一请求指令,并判断是否接收到所述卡片返回的第一响应,是则执行步骤c’12,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方 式发送给上位机,返回步骤a;
步骤c’ 12 :所述读卡器向所述卡片发送包含0x93和0x20的第二请求指令,并获取所述卡片返回的第一确认信息;
步骤c’ 13 :所述读卡器根据所述第一确认信息与固定数据计算得到第一数据,并判断所述第一数据是否为0x00,是则所述卡片的串联级别为1,将卡号信息放在缓冲区中,顺序执行步骤c’ 18,否则执行步骤c’ 14 ;
步骤c’ 14 :所述读卡器向所述卡片发送包含0x95和0x20的第三请求指令,并获取所述卡片返回的第二确认信息;
步骤c’ 15 :所述读卡器根据所述第二确认信息与所述固定数据计算得到第二数据,并判断所述第二数据是否为0x00,是则所述卡片的串联级别为2,将卡号信息放在所述缓冲区中,顺序执行步骤c’ 18,否则执行步骤c’ 16;
步骤c’ 16 :所述读卡器向所述卡片发送包含0x97和0x20的第四请求指令,并获取第ニ确认信息;
步骤c’ 17 :所述读卡器根据所述第三确认信息与所述固定数据计算得到第三数据,并判断所述第三数据是否为0x00,是则所述卡片的串联级别为3,将卡号信息放在所述缓冲区中,顺序执行c’ 18,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;
步骤c’ 18 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤c’19,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;
步骤c’ 19 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应和卡片在射频场的响应分别以USB中断管道方式发送给所述上位机,返回步骤a。
其中,所述步骤c ’具体包括
步骤C,21 :所述读卡器关闭定时中断使能,向所述卡片发送第五请求指令,并判断是否接收到所述卡片返回的第五响应,是则执行步骤c’22,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;
步骤c’ 22 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤c’23,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a。
其中,所述将卡片在射频场的响应以USB中断管道方式通知上位机,具体包括
判断记录的卡片状态是否为卡片在射频场,是则返回步骤a,否则用所述卡片在射频场更新所述记录的卡片状态,返回步骤a ;
所述将卡片离开在射频场的响应以USB中断管道方式通知上位机,具体包括
判断记录的卡片状态是否为卡片离开射频场,是则返回步骤a,否则用所述卡片离开射频场更新所述记录的卡片状态,返回步骤a。
其中,所述判断所述指令是否为有效指令,具体包括
所述读卡器接收从缓冲区中以中断方式发送的指令,如所述指令的第一字节与预设字 符相符,则接收到有效指令,否则未接收到有效指令。
其中,所述读卡器向卡片发送检测指令,具体包括
如果所述读卡器是第一次发送检测指令,则所述读卡器向卡片发送第一预设字符串;如果所述读卡器不是第一次发送检测指令,则所述读卡器根据所述检测响应确定将要发送的检测指令,如所述检测响应最后一个比特位的值为O,则所述读卡器向卡片发送所述第一预设字符串;如所述检测响应最后一个比特位的值为1,则所述读卡器向卡片发送第
ニ预设字符串。
其中,所述判断是否成功接收卡片返回的检测响应,具体包括
如检测指令为所述第一预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第一检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应;
如检测指令为所述第二预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第二检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应。
本发明技术方案的有益效果为读卡器在空闲的时间里,读卡器会定时的向卡片发送检测指令,实现对卡片是否在射频场的实时检測。


图I是本发明实施例I提供的一种检测非接触式CPU卡片离开射频场的方法流程 图2 (I)和图2 (2)是本发明实施例2提供的一种细化的检测非接触式CPU卡片离开射频场的方法流程 图2’(I)和图2’(2)是本发明实施例2提供的另ー种细化的检测非接触式CPU卡片离开射频场的方法流程 图3 (I)和图3 (2)是本发明实施例3提供的一种细化的检测非接触式CPU卡片离开射频场的方法流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进ー步地详细描述。本发明实施例中,提到的读卡器以非接触式读卡器为例,卡片为非接触式CPU卡片。
实施例I
參见图1,实施例I提供了ー种检测卡片离开射频场的方法,具体包括
步骤101 :读卡器上电初始化;
本实施例中,卡片在射频场标志初始为O。
步骤102 :接收指令,并判断是否收到有效指令;
是,执行步骤110 ;否,执行步骤103。
本实施例中,读卡器接收从缓冲区中以USB中断管道方式发送的指令。如果指令的第一字节在预设范围内(0x01——0x03),则为收到了有效指令。例如接收到的指令的第一字 节为0x01,则接收到了有效指令。如果读卡器未收到或收到的指令的第一字节不满足预设值,则收到的指令不是有效指令。
步骤103 :判断卡片在射频场标志是否为I ;
是,执行步骤104 ;否,执行步骤111。
步骤104 :执行检测卡片操作;
本实施例中,如果读卡器执行检测卡片操作是第一次执行时,则下发的检测指令为0xB2;
如果读卡器执行检测卡片操作不是第一次,则根据上次接收卡片返回的检测指令响应的第一个字节的最后ー个bit位的值来确定下发的检测指令。例如最后ー个bit位值为I时,则读卡器向卡片下发的检测指令为0xB2 ;最后ー个bit位值为O时,则下发的检测指令为 0xB3。
读卡器定时向卡片发送检测指令过程中,如有指令被中断时,读卡器发送下一条检测指令时,指令会发生改变,例如
读卡器向卡片发送检测指令0xB2,卡片成功做出相应的响应0xA3后被中断指令中断,读卡器则执行一条中断指令,中断指令执行完成后读卡器再发送的检测指令为0xB3。
所述执行检测卡片操作具体包括以下步骤
步骤A :读卡器定时向卡片发送检测指令;
本实施例中,读卡器每隔预设时间向卡片发送检测指令,优选的预设时间为5ms。
步骤B :接收卡片做出的检测指令响应,然后执行步骤105 ;
本实施例中,接收到的响应为0xA3或0xA2或其他数据。
步骤105 :判断是否成功接收卡片检测指令响应;
是,执行步骤107 ;否,执行步骤106。
具体判断方法为
如果读卡器向卡片发送的检测指令是0xB2,则当读卡器接收到卡片返回0xA3时为成功接收卡片检测指令响应;
如果读卡器向卡片发送的检测指令是0xB3,则当读卡器接收到卡片返回0xA2时为成功接收卡片检测指令响应。
当读卡器接收到其他响应或收到与其发送的检测指令不匹配的响应时,认为未成功接收卡片检测指令响应。
步骤106 :将卡片离开射频场响应以USB中断管道方式通知上位机,卡片在射频场标志清O,然后执行步骤109,也可执行步骤102 ;
本实施例中,具体的卡片离开射频场响应为0x50、0x02。
步骤107 :将卡片在射频场响应以USB中断管道方式通知上位机,卡片在射频场标志置1,然后执行步骤108,也可执行步骤102 ;
本实施例中,具体的卡片在射频场响应为0x50、0x03。
步骤108 :接收指令,并判断是否收到有效指令;
是,执行步骤110 ;否,返回步骤104。
本实施例中步骤108的判断方法可參照步骤102,在此不再赘述。
步骤109 :接收指令,并判断是否收到有效指令;
是,执行步骤110 ;否,执行步骤111。
本实施例中步骤110的判断方法可參照步骤102,在此不再赘述。
步骤110 :判断指令类型;
本实施例中,如果读卡器接收的数据第一字节为0x01,是通知寻卡指令,则执行步骤
111。
接收的数据第一字节为0x02,是APDU指令,则执行步骤115 ;
接收的数据第一字节为0x03,是扩展指令,则执行步骤118 ;
本实施例中,扩展指令可以为开、关射频场指令,开、关灯指令,蜂鸣指令等。
步骤111 :执行寻卡操作,并判断操作是否成功;
本实施例中,对于A型卡片,寻卡操作具体包括
步骤A-I :向卡片发送第一请求指令;
本实施例中,第一请求指令具体为0x52。
步骤A-2 :判断是否接收到卡片做出的第一响应;
本实施例中,第一响应为预设的数据,与第一请求指令相对应,优选为两个字节的数据,如 0x02、0x00。
是,执行步骤B-I ;
否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选的预设时间为10ms。
步骤B-I :向卡片发送2字节数据包0x93、0x20 ;
步骤B-2 :获取卡片返回的第一确认信息;
本实施例中,获取卡片返回的第一确认信息的过程包括
步骤B-21 :向卡片发送2字节数据包0x93和0x20 ;
步骤B-22 :判断是否收到第二响应数据;
本实施例中,第二响应数据包括WDl和BCCl,UIDl为4字节卡号段的ー组固定数据或由卡片动态产生的随机数,BCCl为WDl的校验字节;
是,执行步骤B-23 ;
否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选的预设时间为10ms。
步骤B-23 :向卡片发送0x93、0x70、UIDU BCCl和CRCl组成的数据包;CRC1为校验检测码;步骤B-24 :判断是否接收到卡片返回的第一确认信息;
是,获取第一确认イ目息,执行步骤C-I。
否,关闭射频场,读卡器等待预设时间后自动打开射频场,执行步骤106,优选的预设时间为IOms ;
本实施例中,该第一确认信息由SI和CRCl组成,SI表示通信开始。
步骤C-I :获取第一确认信息与固定数据做与运算得到的第一数据;
本实施例中,固定数据为0x40。
步骤C-2 :判断第一数据是否为0x00 ;
是,该卡片的串联级别为1,将卡号信息放在缓冲区中,并执行步骤112 ;
否,执行步骤D-I。
步骤D-I 向卡片发送2字节数据包0x95和0x20 ;
步骤D-2 :获取卡片返回的第二确认信息;
本实施例中,获取第二确认信息的过程包括
步骤D-21 向卡片发送2字节数据包0x95和0x20 ;
步骤D-22 :判断是否接收到卡片返回的第三响应数据;
本实施例中,第三响应数据包括WD2和BCC2,UID2为4字节卡号段,BCC2为WD2的校验字节。
是,执行步骤D-23 ;
否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选的预设时间设置为IOms ;
步骤D-23 向卡片发送0x95、0x70、UID2, BCC2和CRC2组成的数据包;
步骤D-24 :判断是否接收到卡片返回的第二确认信息;
是,获取卡片返回的第二确认信息,执行步骤E-1。
否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选的预设时间设置IOms ;
本实施例中,第二确认信息由S2和CRC2组成,S2表示通信开始。
步骤E-I :获取第二确认信息与固定数据做与运算得到的第二数据;
本实施例中,固定数据为0x40。
步骤E-2 :判断第二数据是否为0x00 ;
是,该卡片的串联级别为2,将卡号信息放在缓冲区中,并执行步骤112 ;
否,执行步骤F-I。
步骤F-I 向卡片发送2字节数据包0x97和0x20 ;
步骤F-2 :获取第二确认信息;
本实施例中,获取第二确认信息的过程包括
步骤F-21 向卡片发送2字节数据包0x97和0x20 ;
步骤F-22 :判断是否接收到卡片返回的第四响应数据;
本实施例中,第四响应数据包括WD3和BCC3,WD3为4字节卡号段,BCC3为WD3的校验字节;
是,执行步骤F-23 ;否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选时间设置为IOms ;
步骤F-23 向卡片发送0x97、0x70、UID3, BCC3和CRC3组成的数据包;
步骤F-24 :判断是否接收到卡片返回的第三确认信息;
本实施例中,第三确认信息由S3和CRC3组成,S3表示通信开始。
是,获取第二确认信息,执行步骤G-I ;
否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选的预设时间设置为IOms ;
步骤G-I :获取第三确认信息与固定数据做与运算得到的第三数据;
本实施例中,固定数据为0x40。
步骤G-2 :判断第三数据是否为0x00 ;
是,该卡片的串联级别为3,将卡号信息放在缓冲区中,并执行步骤112 ;
否,关闭射频场,读卡器等待预设时间后自动打开射频场,然后执行步骤106,优选的预设时间设置为IOms ;
本实施例中,串联级别I对应UIDl,nDl中4个字节为全部卡号;
串联级别2对应WDl和WD2的串联,其中WDl中第一个字节无效,只取后3个字节,UID2取全部4字节,串联级别2共7字节数据;
串联级别3对应UIDl、UID2和WD3的串联,其中WDl和UID2的第一个字节无效,只取各自后3个字节,UID3取全部4字节,串联级别3共10字节的数据。
对于B型卡,其实现方式如下
步骤 ー读卡器向卡片发送B型请求指令;
本实施例中,具体的B型请求指令为5字节的数据0x05、0x00、0x08、CRC(2byte)。
步骤ニ 判断是否接收到卡片返回的B型请求响应;
是,执行步骤112 ;否,执行步骤106。
本实施例中,B型请求响应具体为
0xld、PUPI(4bytes)、0x00、0x08、0x01、0x00、CRC(2bytes);其中 PUPI 表示:卡号信息。
步骤112 :向卡片发送请求选择应答指令;
本实施例中,具体的请求选择应答指令为E0、80、CRC。
步骤113 :判断是否接收到选择应答响应;
是,执行步骤114 ;否,执行步骤106。
步骤114 :将选择应答响应以USB中断管道方式发送给上位机;
然后执行步骤107。
步骤115 :按指定格式向卡片发送A数据;
本实施例中,指定格式具体为PCB、NAD/CID、A数据、CRC,此处PCB表示协议控制字节;NAD表示结点地址;CID表示卡标识符;CRC表示校验检测码。
步骤116 :判断是否接收到卡片返回的B数据;
是,执行步骤117 ;否,执行步骤106。
步骤117 :将B数据以USB中断管道方式发送给上位机;
然后执行步骤107。步骤118 :执行相应指令,并将处理结果以USB中断管道方式发送给上位机;本实施例以请求亮灯指令为例,读卡器接收到上位机发送的请求亮灯指令后,进行亮灯操作,并将操作成功或操作失败信息以USB中断管道方式发送给上位机。操作成功信息为0x00,操作失败信息为0x01。
本发明实施例中涉及到的卡片在射频场和不在射频场的响应均以USB中断管道方式通知上位机,并将已通知的卡片在射频场响应保存;下次准备通知前,判断保存的响应和将要发送的响应是否一致,一致则不需要上传通知,否则通知上位机卡片在射频场,并保存响应。
实施例2
參见图2 (1)、2 (2),实施例2提供了ー种检测卡片离开射频场的方法,具体包括 步骤201 :读卡器上电初始化;
打开定时中断。
本实施例中,卡片在射频场标志初始为O。
步骤202 :接收指令;
本实施例中,读卡器接收的指令,可以为上位机发送的通知寻卡指令、APDU指令、扩展指令。
步骤203 :判断是否接收到有效指令;
是,执行步骤204 ;否,执行步骤213。
判断方法同实施例I中的步骤102。
步骤204 :判断指令类型;
本实施例中,如果读卡器接收到的指令第一字节为0x01,是通知寻卡指令,则执行步骤
205 ;
接收到的指令第一字节为0x02,是APDU指令,则执行步骤217 ;
接收到的指令第一字节为0x03,是扩展指令,则执行步骤223 ;
本实施例中,扩展指令可以为开、关射频场指令,开、关灯指令,蜂鸣指令等。
步骤205 :关闭定时中断;
步骤206 :将卡片在射频场标志清O ;
步骤207 :执行寻卡操作,并判断操作是否成功;
是,执行步骤208 ;否,执行步骤216。
本实施例中,具体寻卡操作同实施例I中步骤111。
步骤208 :向卡片发送请求选择应答指令;
本实施例中,具体的请求选择应答指令为E0、80、CRC。
步骤209 :接收并判断是否接收到选择应答响应;
是,执行步骤210 ;否,执行步骤216。
步骤210 :以USB中断管道方式向上位机发送选择应答响应;
步骤211 :将卡片在射频场标志置I ;
步骤212 :打开定时中断;
步骤213 :判断卡片在射频场标志是否为I ;
是,执行步骤214 ;否,执行步骤215。步骤214 :以USB中断管道方式向上位机发送卡片在射频场响应;
然后执行步骤202。
本实施例中,具体在射频场响应为0x50、0x03。
步骤215 :以USB中断管道方式向上位机发送卡片离开射频场响应;
然后执行步骤202。
本实施例中,具体的离开射频场响应为0χ50、0χ02。
步骤216 :将卡片在射频场标志清0,然后执行步骤212 ;
步骤217 :关闭定时中断;
步骤218 :按指定格式向卡片发送A数据;
本实施例中,指定格式具体为PCB、NAD/CID、A数据、CRC,此处PCB表示协议控制字节;NAD表示结点地址;CID表示卡标识符;CRC表示校验检测码。
步骤219 :判断是否接收到卡片返回的B数据;
是,执行步骤220 ;否,执行步骤222。
步骤220 以USB中断管道方式向上位机发送B数据;
步骤221 :将卡片在射频场标志置I,然后执行步骤212 ;
步骤222 :将卡片在射频场标志清0,然后执行步骤212 ;
步骤223 :关闭定时中断;
步骤224 :执行相应指令,并将处理结果以USB中断管道方式发送给上位机,然后执行步骤212 ;
具体操作方法同实施例I中步骤118。
如图2 (2)所示,定时中断操作具体为
步骤2-1 :进入定时中断;
本实施例中,执行中断周期为预设时间,优选为每5ms进行一次中断。
步骤2-2 :关闭中断;
步骤2-3:清中断;
步骤2-4 :判断卡片在射频场标志是否为I ;
是,执行步骤2-5 ;否,执行步骤2-9。
步骤2-5 :执行检测卡片操作;
本实施例中,具体检测卡片操作同实施例I中步骤104。
步骤2-6 :判断是否成功接收卡片检测指令响应;
是,执行步骤2-7 ;否,执行步骤2-8。
本实施例中,具体判断操作同实施例I中步骤105。
步骤2-7 :打开中断,退出;
步骤2-8 :将卡片在射频场标志清0,然后执行步骤2-7 ;
步骤2-9 :执行寻卡操作并判断操作是否成功;
本实施例中,具体的操作同实施例I中步骤111。
是,执行步骤2-10 ;否,执行步骤2-7。
步骤2-10 :向卡片发送请求选择应答指令;
本实施例中,具体请求选择应答指令为EO、80、CRC。步骤2-11 :判断是否接收到卡片的选择应答响应;
是,执行步骤2-12 ;否,执行步骤2-7。
步骤2-12 :以USB中断管道方式向上位机发送选择应答响应,然后执行步骤2-13 ; 步骤2-13 :将卡片在射频场标志置1,然后执行步骤2-7 ;
本发明实施例中涉及到的卡片在射频场和离开射频场的响应均以USB中断管道方式通知上位机,并将已通知的卡片在射频场响应保存;下次准备通知前,判断保存的响应和将要发送的响应是否 一致,一致则不需要上传通知,否则通知上位机卡片在射频场,并保存响应。
本实施例也可以为另ー种方法如下
參见图2’ (I)所示
步骤201’ 读卡器上电初始化;
打开定时中断。
本实施例中,卡片在射频场标志初始为O。
步骤202’ 接收指令;
本实施例中,读卡器接收的指令,可以为上位机发送的通知寻卡指令、APDU指令、扩展指令。
步骤203’ 判断是否接收到有效指令;
是,执行步骤204’ ;否,执行步骤202’。
判断方法同实施例I中的步骤102。
步骤204’ 判断指令类型;
本实施例中,如果读卡器接收到的指令第一字节为0x01,是通知寻卡指令,则执行步骤205,;
接收到的指令第一字节为0x02,是APDU指令,则执行步骤214’ ;
接收到的指令第一字节为0x03,是扩展指令,则执行步骤218’ ;
本实施例中,扩展指令可以为开、关射频场指令,开、关灯指令,蜂鸣指令等。
步骤205’ 关闭定时中断;
步骤206’ 将卡片在射频场标志清O ;
步骤207’ 执行寻卡操作,并判断操作是否成功;
是,执行步骤208’ ;否,执行步骤212’。
本实施例中,具体寻卡操作同实施例I中步骤111。
步骤208’ 向卡片发送请求选择应答指令;
本实施例中,具体的请求选择应答指令为E0、80、CRC。
步骤209’ 接收并判断是否接收到选择应答响应;
是,执行步骤210’ ;否,执行步骤212’。
步骤210’ 以USB中断管道方式向上位机发送选择应答响应;
步骤211’ 以USB中断管道方式向上位机发送卡片在射频场响应,卡片在射频场标志置1,然后执行步骤213’ ;
本实施例中,具体在射频场响应为0x50、0x03。
步骤212’ 以USB中断管道方式向上位机发送卡片离开射频场响应,卡片在射频场标志清O ;
本实施例中,具体的离开射频场响应为0χ50、0χ02。
步骤213’ 打开定时中断,然后执行步骤202’ ;
步骤214’ 关闭定时中断;
步骤215’ 按指定格式向卡片发送A数据;
本实施例中,指定格式具体为PCB、NAD/CID、A数据、CRC,此处PCB表示协议控制字节;NAD表示结点地址;CID表示卡标识符;CRC表示校验检测码。
步骤216’判断是否接收到卡片返回的B数据;
是,执行步骤217’ ;否,执行步骤212’。
步骤217’ 以USB中断管道方式向上位机发送B数据,然后执行步骤211’。
步骤218’ 关闭定时中断;
步骤219’ 执行相应指令,并将处理结果以USB中断管道方式发送给上位机,然后执行步骤213’。
具体操作方法同实施例I中步骤118。
如图2’(2)所示,定时中断操作具体为
步骤2-1’ 进入定时中断;
本实施例中,执行中断周期为预设时间,优选为每5ms进行一次中断。
步骤2-2’ 关闭中断;
步骤2-3’ 清中断;
步骤2-4’ 判断卡片在射频场标志是否为I ;
是,执行步骤2-5’ ;否,执行步骤2-10’。
步骤2-5’ 执行检测卡片操作;
本实施例中,具体检测卡片操作同实施例I中步骤104。
步骤2-6’ 判断是否成功接收卡片检测指令响应;
是,执行步骤2-7’ ;否,执行步骤2-8’。
本实施例中,具体判断操作同实施例I中步骤105。
步骤2-7’ 将卡片在射频场响应以USB中断管道方式通知上位机,卡片在射频场标志置1,然后执行步骤2-9’ ;
步骤2-8’ 将卡片离开射频场响应以USB中断管道方式通知上位机,卡片在射频场标志清O ;
步骤2-9’ 打开中断,退出;
步骤2-10’ 执行寻卡操作并判断操作是否成功;
是,执行步骤2-11’ ;否,执行步骤2-8’。
本实施例中,具体的操作同实施例I中步骤111。
步骤2-11’ 向卡片发送请求选择应答指令;
本实施例中,具体请求选择应答指令为EO、80、CRC。
步骤2-12’ 判断是否接收到卡片的选择应答响应;
是,执行步骤2-13’ ;否,执行步骤2-8’。
步骤2-13’ -MUSB中断管道方式向上位机发送选择应答响应,然后执行步骤2-7’ ;本发明实施例中涉及到的卡片在射频场和离开射频场的响应均以USB中断管道方式通知上位机,并将已通知的卡片在射频场响应保存;下次准备通知前,判断保存的响应和将要发送的响应是否一致,一致则不需要上传通知,否则通知上位机卡片在射频场,并保存响应。
实施例3
參见图3 (1)、3 (2),实施例3提供了ー种检测卡片离开射频场的方法,具体包括 步骤301 :读卡器上电初始化;
打开通信中断。
本实施例中,指令标志初始为O,卡片在射频场标志初始为O。
步骤302 :判断指令标志是否为I ;
是,执行步骤311 ;否,执行步骤303。
步骤303 :判断卡片在射频场标志是否为I ;
是,执行步骤304 ;否,执行步骤311。
步骤304 :执行检测卡片操作;
本实施例中,具体检测卡片操作同实施例I中步骤104。
步骤305 :判断是否成功接收卡片检测指令响应;
是,执行步骤306 ;否,执行步骤308。
本实施例中,具体判断操作同实施例I中步骤105。
步骤306 :将卡片在射频场响应以USB中断管道方式通知上位机,卡片在射频场标志置I,然后执行步骤307,也可以执行步骤302 ;
本实施例中,具体的卡片在射频场响应为0x50、0x03。
步骤307 :判断指令标志是否为I ;
是,执行步骤310 ;否,返回步骤304。
步骤308 :将卡片离开射频场响应以USB中断管道方式通知上位机,卡片在射频场标志清0,然后执行步骤309,也可以执行步骤302 ;
步骤309 :判断指令标志是否为I ;
是,执行步骤310 ;否,执行步骤311。
步骤310 :指令标志清0,判断指令类型;
本实施例中,如果读卡器接收的数据第一字节为0x01时,是通知寻卡指令,则执行步骤 311 ;
为0x02时,是APDU指令,则执行步骤315 ;
为0x03吋,是扩展指令,则执行步骤318 ;
本实施例中,扩展指令可以为开、关射频场指令,开、关灯指令,蜂鸣指令等。
步骤311 :执行寻卡操作并判断操作是否成功;
是,执行步骤312 ;否,执行步骤308。
本实施例中,具体寻卡操作同实施例I中步骤111。
步骤312 :向卡片发送请求选择应答指令;
本实施例中,具体请求选择应答指令为EO、80、CRC。
步骤313 :判断是否接收到卡片的选择应答响应;是,执行步骤314 ;否,执行步骤308。
步骤314 :将选择应答响应以USB中断管道方式发送给上位机;
然后执行步骤306。
步骤315 :按指定格式向卡片发送A数据;
本实施例中,指定格式具体为PCB、NAD/CID、A数据、CRC,此处PCB表示协议控制字节;NAD表示结点地址;CID表示卡标识符;CRC表示校验检测码。
步骤316 :判断是否接收到卡片返回的B数据;
是,执行步骤317 ;否,执行步骤308。
步骤317 :将B数据以USB中断管道方式发送给上位机;
然后执行步骤306。
步骤318 :执行相应指令,并将处理结果以USB中断管道方式发送给上位机,然后执行步骤302。
具体操作方法同实施例I中步骤118。
本实施例中,如果发生通信中断,则进入中断处理,如图3 (2)所示,具体步骤如下 步骤3-1 :进入通信中断;
步骤3-2 :关闭中断;
步骤3-3:清中断;
步骤3-4 :接收指令,并判断是否收到有效指令;
是,执行步骤3-5 ;否,执行步骤3-6。
本实施例中,具体的判断方法同步骤307。
步骤3-5 :指令标志置I ;
步骤3-6 :打开中断,退出;
本发明实施例中涉及到的卡片在射频场和离开射频场的响应均以USB中断管道方式通知上位机,并将已通知的卡片在射频场响应保存;下次准备通知前,判断保存的响应和将要发送的响应是否一致,一致则不需要上传通知,否则通知上位机卡片在射频场,并保存响应。
权利要求
1.一种检测非接触式CPU卡片离开射频场的方法,其特征在于,包括 步骤A :读卡器获取指令,并判断所述指令是否为有效指令,是则执行步骤B,否则执行步骤C ; 步骤B :所述读卡器判断所述有效指令的类型, 如是通知寻卡指令,则执行步骤D ; 如是APDU指令,则将所述APDU指令发送给卡片,并将卡片返回的响应以USB中断管道方式发送给上位机,返回步骤A ; 如是扩展指令,则根据所述扩展指令进行操作,并将操作结果以USB中断管道方式发送给上位机,返回步骤A ; 步骤C :所述读卡器判断卡片在射频场的标志是否置位,是则执行步骤E,否则执行步骤D; 步骤D :所述读卡器向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则将卡片在射频场的标志置位,并将卡片在射频场的响应以USB中断管道方式发送给上位机,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤E :所述读卡器向卡片发送检测指令,并判断是否成功接收卡片返回的检测响应,是则保存所述检测响应,执行步骤F,否则执行步骤G ; 步骤F :所述读卡器将卡片在射频场的标志置位,并将卡片在射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤G :所述读卡器将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A。
2.如权利要求I所述的方法,其特征在于,所述将卡片在射频场的响应以USB中断管道方式通知上位机,具体包括 判断记录的卡片状态是否为卡片在射频场,是则返回步骤A,否则用所述卡片在射频场更新所述记录的卡片状态,返回步骤A ; 所述将卡片离开射频场的响应以USB中断管道方式通知上位机,具体包括 判断记录的卡片状态是否为卡片离开射频场,是则返回步骤A,否则用所述卡片离开射频场更新所述记录的卡片状态,返回步骤A。
3.如权利要求I所述的方法,其特征在于,所述判断所述指令是否为有效指令,具体包括 所述读卡器接收从缓冲区中以中断方式发送的指令,如所述指令的第一字节与预设字符相符,则接收到有效指令,否则未接收到有效指令。
4.如权利要求I所述的方法,其特征在于,所述步骤A之前包括 所述读卡器上电进行初始化,打开通信中断使能; 所述方法还包括当所述读卡器检测到通信中断时进入通信中断处理,包括 步骤SI :所述读卡器关闭通信中断使能,清除通信中断标志; 步骤S2 :所述读卡器接收上位机下发的指令,并判断是否为有效指令,是则将所述指令的标志置位,打开所述通信中断使能并退出通信中断处理;否则打开所述通信中断使能并退出通信中断处理;所述步骤A具体包括所述读卡器判断所述指令的标志是否置位,如置位则将所述指令的标志复位,顺序执行步骤B,如未置位则执行步骤C。
5.如权利要求4所述的方法,其特征在于,所述步骤S2中判断是否为有效指令,具体包括 判断所述指令的第一字节是否与预设字符相符,是则接收到有效指令,否则未接收到有效指令。
6.如权利要求I所述的方法,其特征在于,所述步骤E中所述读卡器向卡片发送检测指令,具体包括如果所述读卡器是第一次发送检测指令,则所述读卡器向卡片发送第一预设字符串;如果所述读卡器不是第一次发送检测指令,则所述读卡器根据所述检测响应确定将要发送的检测指令,如所述检测响应最后一个比特位的值为O,则所述读卡器向卡片发送所述第一预设字符串;如所述检测响应最后一个比特位的值为1,则所述读卡器向卡片发送第ニ预设字符串。
7.如权利要求6所述的方法,其特征在于,所述步骤E中判断是否成功接收卡片返回的检测响应,具体包括 如检测指令为所述第一预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第一检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应; 如检测指令为所述第二预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第二检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应。
8.如权利要求7所述的方法,其特征在于,所述步骤B具体包括 步骤Bll :所述读卡器判断所述有效指令的类型,如是通知寻卡指令则执行步骤D,如是APDU指令则执行步骤B12,如是扩展指令则执行步骤B13 ; 步骤B12 :所述读卡器将所述APDU指令发送给卡片,判断是否接收到所述卡片返回的响应,是则将所述卡片在射频场的标志置位,并将所述接收到的响应以USB中断管道方式返回给上位机,返回步骤A ;否则将所述卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤B13 :所述读卡器根据扩展指令进行操作,并将操作结果以USB中断管道方式返回给上位机,返回步骤A。
9.如权利要求8所述的方法,其特征在于,所述步骤D具体包括 步骤Dll :所述读卡器向卡片发送第一请求指令,并判断是否接收到所述卡片返回的第一响应,是则执行步骤D12,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤D12 :所述读卡器向所述卡片发送包含0x93和0x20的第二请求指令,并获取所述卡片返回的第一确认信息; 步骤D13 :所述读卡器根据所述第一确认信息与固定数据计算得到第一数据,并判断所述第一数据是否为0x00,是则所述卡片的串联级别为1,将卡号信息放在缓冲区中,顺序执行步骤D18,否则执行步骤D14 ; 步骤D14 :所述读卡器向所述卡片发送包含0x95和0x20的第三请求指令,并获取所述卡片返回的第二确认信息; 步骤D15 :所述读卡器根据所述第二确认信息与所述固定数据计算得到第二数据,并判断所述第二数据是否为0x00,是则所述卡片的串联级别为2,将卡号信息放在所述缓冲区中,顺序执行步骤D18,否则执行步骤D16 ; 步骤D16 :所述读卡器向所述卡片发送包含0x97和0x20的第四请求指令,并获取第三确认信息; 步骤D17 :所述读卡器根据所述第三确认信息与所述固定数据计算得到第三数据,并判断所述第三数据是否为0x00,是则所述卡片的串联级别为3,将卡号信息放在所述缓冲区中,顺序执行D18,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤D18 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤D19,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤D19 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应和卡片在射频场的响应分别以USB中断管道方式发送给所述上位机,返回步骤A。
10.如权利要求8所述的方法,其特征在于,所述步骤D具体包括 步骤D21 :所述读卡器向所述卡片发送第五请求指令,并判断是否接收到所述卡片返回的第五响应,是则执行步骤D22,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤D22 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤D23,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤A ; 步骤D23 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应和卡片在射频场的响应分别以USB中断管道方式发送给所述上位机,返回步骤A。
11.一种检测非接触式CPU卡片离开射频场的方法,其特征在于,包括 步骤a :读卡器打开定时中断使能; 步骤b :所述读卡器等待接收上位机发送的指令,并判断是否接收到有效指令,是则判断所述有效指令的类型,如是通知寻卡指令,则执行步骤c ;如是APDU指令,则执行步骤d ;如是扩展指令,则执行步骤e ;否则执行步骤f ; 步骤c :所述读卡器关闭定时中断使能,向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则将卡片在射频场的标志置位,打开定时中断使能,继续执行步骤f;否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ; 步骤d:所述读卡器关闭定时中断使能,将所述APDU指令发送给卡片,并判断是否接收到卡片返回的响应,是则将卡片在射频场的标志置位,并将接收到的响应以USB中断管道方式发送给上位机,打开定时中断使能,继续执行步骤f ;否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ;步骤e :所述读卡器关闭定时中断使能,根据所述扩展指令进行操作,并将操作结果以USB中断管道方式发送给上位机,打开定时中断使能,继续执行步骤f ; 步骤f :所述读卡器判断所述卡片在射频场的标志是否置位,是则将卡片在射频场的响应以USB中断管道方式发送给上位机,返回步骤a ;否则卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ; 当所述读卡器接收到定时中断触发时进入定时中断处理,包括 步骤g :所述读卡器关闭定时中断使能,清除定时中断标志; 步骤h :所述读卡器判断卡片在射频场的标志是否置位,是则执行步骤i,否则向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则执行步骤1,否则执行步骤m ; 步骤i :所述读卡器向卡片发送检测指令,并判断是否成功接收卡片返回的检测响应,是则保存所述检测响应,执行步骤1,否则执行步骤m ; 步骤I :所述读卡器打开定时中断使能,退出定时中断处理; 步骤m:所述读卡器将所述卡片在射频场的标志复位,打开定时中断使能,退出定时中断处理。
12.如权利要求11所述的方法,其特征在于,所述步骤c具体包括 步骤cll :所述读卡器关闭定时中断使能,向卡片发送第一请求指令,并判断是否接收到所述卡片返回的第一响应,是则执行步骤cl2,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ; 步骤cl2 :所述读卡器向所述卡片发送包含0x93和0x20的第二请求指令,并获取所述卡片返回的第一确认信息; 步骤cl3 :所述读卡器根据所述第一确认信息与固定数据计算得到第一数据,并判断所述第一数据是否为0x00,是则所述卡片的串联级别为1,将卡号信息放在缓冲区中,顺序执行步骤cl8,否则执行步骤cl4 ; 步骤cl4 :所述读卡器向所述卡片发送包含0x95和0x20的第三请求指令,并获取所述卡片返回的第二确认信息; 步骤cl5 :所述读卡器根据所述第二确认信息与所述固定数据计算得到第二数据,并判断所述第二数据是否为0x00,是则所述卡片的串联级别为2,将卡号信息放在所述缓冲区中,顺序执行步骤cl8,否则执行步骤cl6 ; 步骤cl6 :所述读卡器向所述卡片发送包含0x97和0x20的第四请求指令,并获取第三确认信息; 步骤cl7 :所述读卡器根据所述第三确认信息与所述固定数据计算得到第三数据,并判断所述第三数据是否为0x00,是则所述卡片的串联级别为3,将卡号信息放在所述缓冲区中,顺序执行cl8,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ; 步骤cl8 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤cl9,否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f; 步骤cl9 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应以USB中断管道方式发送给所述上位机,打开定时中断使能,继续执行步骤f。
13.如权利要求11所述的方法,其特征在于,所述步骤c具体包括 步骤c21 :所述读卡器关闭定时中断使能,向所述卡片发送第五请求指令,并判断是否接收到所述卡片返回的第五响应,是则执行步骤c22,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f ; 步骤c22 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤c23,否则将卡片在射频场的标志复位,打开定时中断使能,继续执行步骤f; 步骤c23 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应以USB中断管道方式发送给所述上位机,打开定时中断使能,继续执行步骤f。
14.如权利要求11所述的方法,其特征在于,所述步骤b中如未接收到有效指令吋,继续等待接收指令; 所述步骤C-步骤f、步骤I-步骤m分别替换为步骤c’ -步骤e’、步骤I’ -步骤m’ ; 步骤c’ 所述读卡器关闭定时中断使能,向卡片发送寻卡指令,并判断是否接收到卡片返回的寻卡响应,是则将卡片在射频场的标志置位,并以USB中断管道方式给上位机发送卡片在射频场的响应,返回步骤a ;否则将卡片在射频场的标志复位,并以USB中断管道方式给上位机发送卡片离开射频场的响应,返回步骤a ; 步骤d’ 所述读卡器关闭定时中断使能,将所述APDU指令发送给卡片,并判断是否接收到卡片返回的响应,是则将卡片在射频场的标志置位,并将接收到的响应和卡片在射频场的响应分别以USB中断管道方式发送给上位机,返回步骤a ;否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ; 步骤e’所述读卡器关闭定时中断使能,则根据所述扩展指令进行操作,并将操作结果以USB中断管道方式发送给上位机,返回步骤a ; 步骤I’:所述读卡器将所述卡片在射频场的标志置位,并将卡片在射频场的响应以USB中断管道方式发送给上位机,打开定时中断使能,退出定时中断处理; 步骤m’ 所述读卡器将所述卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,打开定时中断使能,退出定时中断处理。
15.如权利要求14所述的方法,其特征在于,所述步骤c’具体包括 步骤c,11 :所述读卡器关闭定时中断使能,向卡片发送第一请求指令,并判断是否接收到所述卡片返回的第一响应,是则执行步骤c’12,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a; 步骤c’ 12 :所述读卡器向所述卡片发送包含0x93和0x20的第二请求指令,并获取所述卡片返回的第一确认信息; 步骤c’ 13 :所述读卡器根据所述第一确认信息与固定数据计算得到第一数据,并判断所述第一数据是否为0x00,是则所述卡片的串联级别为1,将卡号信息放在缓冲区中,顺序执行步骤c’ 18,否则执行步骤c’ 14; 步骤c’ 14 :所述读卡器向所述卡片发送包含0x95和0x20的第三请求指令,并获取所述卡片返回的第二确认信息; 步骤c’ 15 :所述读卡器根据所述第二确认信息与所述固定数据计算得到第二数据,并判断所述第二数据是否为0x00,是则所述卡片的串联级别为2,将卡号信息放在所述缓冲区中,顺序执行步骤c’ 18,否则执行步骤c’ 16; 步骤c’ 16 :所述读卡器向所述卡片发送包含0x97和0x20的第四请求指令,并获取第ニ确认信息; 步骤c’ 17 :所述读卡器根据所述第三确认信息与所述固定数据计算得到第三数据,并判断所述第三数据是否为0x00,是则所述卡片的串联级别为3,将卡号信息放在所述缓冲区中,顺序执行c’ 18,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ; 步骤c’ 18 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤c’19,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ; 步骤c’ 19 :所述读卡器将卡片在射频场的标志置位,并将所述选择应答响应和卡片在射频场的响应分别以USB中断管道方式发送给所述上位机,返回步骤a。
16.如权利要求14所述的方法,其特征在于,所述步骤c’具体包括 步骤C,21 :所述读卡器关闭定时中断使能,向所述卡片发送第五请求指令,并判断是否接收到所述卡片返回的第五响应,是则执行步骤c’22,否则关闭射频场,等待预设时间后自动打开射频场,将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a ; 步骤c’ 22 :所述读卡器向所述卡片发送请求选择应答指令,并判断是否接收到卡片返回的选择应答响应,是则执行步骤c’23,否则将卡片在射频场的标志复位,并将卡片离开射频场的响应以USB中断管道方式发送给上位机,返回步骤a。
17.如权利要求11至16任意一项所述的方法,其特征在干, 所述将卡片在射频场的响应以USB中断管道方式通知上位机,具体包括 判断记录的卡片状态是否为卡片在射频场,是则返回步骤a,否则用所述卡片在射频场更新所述记录的卡片状态,返回步骤a ; 所述将卡片离开在射频场的响应以USB中断管道方式通知上位机,具体包括 判断记录的卡片状态是否为卡片离开射频场,是则返回步骤a,否则用所述卡片离开射频场更新所述记录的卡片状态,返回步骤a。
18.如权利要求11所述的方法,其特征在于,所述判断所述指令是否为有效指令,具体包括 所述读卡器接收从缓冲区中以中断方式发送的指令,如所述指令的第一字节与预设字符相符,则接收到有效指令,否则未接收到有效指令。
19.如权利要求11所述的方法,其特征在于,所述读卡器向卡片发送检测指令,具体包括 如果所述读卡器是第一次发送检测指令,则所述读卡器向卡片发送第一预设字符串;如果所述读卡器不是第一次发送检测指令,则所述读卡器根据所述检测响应确定将要发送的检测指令,如所述检测响应最后一个比特位的值为0,则所述读卡器向卡片发送所述第一预设字符串;如所述检测响应最后一个比特位的值为1,则所述读卡器向卡片发送第ニ预设字符串。
20.如权利要求19所述的方法,其特征在于,所述判断是否成功接收卡片返回的检测响应,具体包括 如检测指令为所述第一预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第一检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应; 如检测指令为所述第二预设字符串,所述读卡器判断接收到所述卡片返回的响应是否为第二检测响应,是则成功接收卡片返回的检测响应并进行保存,否则未成功接收卡片返回的检测响应。
全文摘要
本发明公开一种检测非接触CPU卡离开射频场的方法,涉及智能卡领域。为解决不能进行实时检测CPU卡片离开射频场的问题而发明。该方法包括接收并判断是否接收到上位机发送的有效指令,根据接收到的指令进行相应的操作。为通知寻卡指令时,进行寻卡操作,判断是否收到返回的信息;根据返回的信息获取非接触式卡的卡号信息;为APDU指令时,按指定格式向卡片发送A数据,判断是否收到响应,将操作结果发送给上位机;为扩展指令时,执行相应操作,并将操作结果发送给上位机。当未接收到有效指令时,则判断卡片在射频场标志,如果,卡片在射频场,则进行检测卡片操作,并将操作结果发送给上位机。如果,卡片不在射频场,则进行寻卡操作。
文档编号G06K7/00GK102722687SQ20121017413
公开日2012年10月10日 申请日期2012年5月30日 优先权日2012年5月30日
发明者于华章, 陆舟 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1