CN106934310A - 一种测试智能卡的方法及读卡器 - Google Patents
一种测试智能卡的方法及读卡器 Download PDFInfo
- Publication number
- CN106934310A CN106934310A CN201710101618.0A CN201710101618A CN106934310A CN 106934310 A CN106934310 A CN 106934310A CN 201710101618 A CN201710101618 A CN 201710101618A CN 106934310 A CN106934310 A CN 106934310A
- Authority
- CN
- China
- Prior art keywords
- test
- instruction
- response
- parameter
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/0095—Testing the sensing arrangement, e.g. testing if a magnetic card reader, bar code reader, RFID interrogator or smart card reader functions properly
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Facsimiles In General (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种测试智能卡的方法及读卡器,所述方法包括:读卡器接收来自上位机的指令,当接收到来自上位机的第一测试指令后,根据第一测试指令得到准备指令;向智能卡发送准备指令;获取来自智能卡的准备应答;根据准备应答向上位机报告第一测试应答;当接收到来自上位机的第二测试指令后,根据第二测试指令得到防冲突指令;向智能卡发送防冲突指令;获取来自智能卡的防冲突应答;根据防冲突应答向上位机报告第二测试应答,当接收到来自上位机的第三测试指令后,根据第三测试指令得到选择指令;向智能卡发送选择指令;获取来自智能卡的选择应答;根据选择应答向上位机报告第三测试应答,本发明使非接智能卡的测试变得可控,简单。
Description
技术领域
本发明涉及智能卡领域,特别涉及一种测试智能卡的方法及读卡器。
背景技术
现有技术中,读卡器直接将预设的准备指令、防冲突指令和选择指令发送给非接智能卡,并且读卡器发送每条指令后均不向外部返回相应指令的应答结果,因此如果出现读卡器和非接智能卡通讯异常的情况,外部无法得知非接智能卡在哪个指令环节中出现问题。并且由于现有技术中的读卡器,对预设的准备指令、防冲突指令和选择指令的发送都有严格的时间控制,从而又增加了测试非接智能卡的难度。
发明内容
本发明提供了一种测试智能卡的方法及读卡器,解决了上述技术问题。
本发明提供了一种测试智能卡的方法,包括:
步骤s1:读卡器接收来自上位机的指令,当接收到来自上位机的第一测试指令后,执行步骤s2;当接收到来自上位机的第二测试指令后,执行步骤s4;当接收到来自上位机的第三测试指令后,执行步骤s6;
步骤s2:所述读卡器根据所述第一测试指令得到包括准备参数的准备指令;向智能卡发送所述准备指令;获取来自所述智能卡的准备应答;
步骤s3:所述读卡器根据所述准备应答向所述上位机报告第一测试应答,返回步骤s1;
步骤s4:所述读卡器根据所述第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;向智能卡发送所述防冲突指令;获取来自所述智能卡的防冲突应答;
步骤s5:所述读卡器根据所述防冲突应答向所述上位机报告第二测试应答,返回步骤s1;
步骤s6:所述读卡器根据所述第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;向智能卡发送所述选择指令;获取来自所述智能卡的选择应答;
步骤s7:所述读卡器根据所述选择应答向所述上位机报告第三测试应答,返回步骤s1。
本发明还提供了一种测试智能卡的读卡器,包括:第一接收模块、第二接收模块、第三接收模块、准备指令模块、防冲突指令模块、选择指令模块、第一发送模块、第二发送模块、第三发送模块、第一获取模块、第二获取模块、第三获取模块、第一报告模块、第二报告模块和第三报告模块;
所述第一接收模块,用于接收来自上位机的第一测试指令;
所述第二接收模块,用于接收来自上位机的第二测试指令;
所述第三接收模块,用于接收来自上位机的第三测试指令;
所述准备指令模块,用于根据所述第一接收模块接收到的所述第一测试指令得到包括准备参数的准备指令;
所述防冲突指令模块,用于根据所述第二接收模块接收到的所述第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
所述选择指令模块,用于根据所述第三接收模块接收到的所述第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;
所述第一发送模块,用于向智能卡发送所述准备指令;
所述第二发送模块,用于向智能卡发送所述防冲突指令;
所述第三发送模块,用于向智能卡发送所述选择指令;
所述第一获取模块,用于获取来自智能卡的准备应答;
所述第二获取模块,用于获取来自智能卡的防冲突应答;
所述第三获取模块,用于获取来自智能卡的选择应答;
所述第一报告模块,用于根据所述准备应答向所述上位机报告第一测试应答;
所述第二报告模块,用于根据所述防冲突应答向所述上位机报告第二测试应答;
所述第三报告模块,用于根据所述选择应答向所述上位机报告第三测试应答。
本发明的有益效果:本发明提供了一种测试智能卡的方法及读卡器。所述读卡器接收来自外部的测试指令,并根据相应的测试指令得到准备指令、防冲突指令和选择指令,向非接智能卡发送相应指令,并且每条指令发送后,均根据非接智能卡的应答向外部返回测试结果,使非接智能卡的测试变得可控,简单。
附图说明
图1为本发明实施例1提供的一种测试智能卡的方法的流程图;
图2为本发明实施例2提供的一种测试智能卡的方法的流程图;
图3为本发明实施例3提供的一种测试智能卡的方法的流程图;
图4为本发明实施例4提供的一种测试智能卡的读卡器的结构方框图。
具体实施方法
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供了一种测试智能卡的方法,如图1所示,包括:
步骤s1:读卡器接收来自上位机的指令,当接收到来自上位机的第一测试指令后,执行步骤s2;当接收到来自上位机的第二测试指令后,执行步骤s4;当接收到来自上位机的第三测试指令后,执行步骤s6;
步骤s2:读卡器根据第一测试指令得到包括准备参数的准备指令;向智能卡发送准备指令;获取来自智能卡的准备应答;
本实施例中,智能卡具体为非接智能卡。
具体地,读卡器根据第一测试指令得到包括准备参数的准备指令;清空应答寄存器,向智能卡发送准备指令;获取来自智能卡的准备应答;从应答寄存器中获取来自智能卡的准备应答。
步骤s3:读卡器根据准备应答向上位机报告第一测试应答,返回步骤s1;
步骤s4:读卡器根据第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;向智能卡发送防冲突指令;获取来自智能卡的防冲突应答;
具体地,读卡器根据第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;清空应答寄存器,向智能卡发送防冲突指令;从应答寄存器中获取来自智能卡的防冲突应答;
步骤s5:读卡器根据防冲突应答向上位机报告第二测试应答,返回步骤s1;
步骤s6:读卡器根据第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;向智能卡发送选择指令;获取来自智能卡的选择应答;
具体地,读卡器根据第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;清空应答寄存器,向智能卡发送选择指令;从应答寄存器中获取来自智能卡的选择应答;
步骤s7:读卡器根据选择应答向上位机报告第三测试应答,返回步骤s1。
需说明的是,本实施例中,读卡器通过自身的智能芯片按照从低位到高位的顺序向非接场中的智能卡发送指令的二进制编码,通过自身的智能芯片按照从低位到高位的顺序接收来自非接场中的智能卡的应答的二进制编码,并请其存储在应答寄存器中。
本实施例中,根据第一测试指令得到包括准备参数的准备指令,具体为:读卡器从第一测试指令中获取包括准备参数的准备指令;
根据第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令,具体为:读卡器从第二测试指令中获取包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
根据第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令,具体为:读卡器从第三测试指令中获取包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令。
本实施例中,根据第一测试指令得到包括准备参数的准备指令,具体为:读卡器根据第一测试指令中的准备参数组织包括准备参数的准备指令;
本实施例中,准备参数具体为初始化参数或者唤醒参数;准备指令包括初始化指令或者唤醒指令;
组织包括准备参数的准备指令具体为:若准备参数为初始化参数,将初始化参数作为初始化指令;若准备参数为唤醒参数,将唤醒参数作为唤醒指令;
根据第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令,具体为:读卡器根据第二测试指令中的串联级别参数、有效数据参数和卡标识参数组织包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
组织包括串联级别参数、有效数据参数和卡标识参数的防冲突指令具体为:根据串联级别参数设置防冲突指令的第一个字节上的数据,根据有效数据参数设置防冲突指令的第二个字节上的数据,根据卡标识参数设置防冲突指令的第二个字节之后的数据,得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令。
根据第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令,具体为:读卡器根据第三测试指令中的串联级别参数、有效数据参数和卡标识参数组织包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令。
组织包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令,具体为:根据第三测试指令中的串联级别参数、有效数据参数和卡标识参数计算第一校验值,根据串联级别参数设置选择指令的第一个字节上的数据,根据有效数据参数设置选择指令的第二个字节上的数据,根据卡标识参数设置选择指令的第三到第七字节上的数据,根据第一校验值设置卡标识参数之后的数据,得到包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令;
组织包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令,或者具体为:根据串联级别参数设置选择指令的第一个字节上的数据,根据有效数据参数设置选择指令的第二个字节上的数据,根据卡标识参数设置选择指令的第三到第七字节上的数据,根据第三测试指令中的第一校验值设置卡标识参数之后的数据,得到包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令。
本实施例中,向智能卡发送防冲突指令之前还包括:设置防冲突测试;向智能卡发送防冲突指令之后,还包括获取防冲突测试结果;第二测试应答中还包括防冲突测试结果。
进一步地,第二测试指令中包括防冲突测试参数;
设置防冲突测试之前还包括:根据防冲突测试参数判断是否设置防冲突测试,如果是,则设置防冲突测试,继续;否则,向智能卡发送防冲突指令,获取来自智能卡的防冲突应答,执行步骤s5。
本实施例中,步骤s5可以用具体包括:
步骤a1:读卡器根据防冲突测试结果判断在当前串联级别下是否存在卡片响应冲突,如果是,则执行步骤a2;否则,执行步骤a3;
步骤a2:读卡器根据防冲突测试结果中的防冲突位置更新有效数据参数,根据防冲突位置和防冲突应答获取卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括防冲突测试结果、有效数据参数和卡标识参数的第二测试应答,返回步骤s1;
步骤a3:读卡器将卡标识参数更新为防冲突应答,将有效数据参数更新为第二预设值,向上位机报告包括防冲突测试结果、更新后的有效数据参数和更新后的卡标识参数第二测试应答,返回步骤s1。
本实施例中,步骤s5还可以具体为:向上位机报告包括防冲突应答的第二测试应答,返回步骤s1。
本实施例中,步骤s7可以具体为:向上位机报告包括选择应答的第三测试应答,返回步骤s1。
本实施例中,步骤s7还可以具体包括:
步骤b1:读卡器根据选择应答判断智能卡是否处于工作状态,如果是,则向上位机报告智能卡处于工作状态,返回步骤s1;否则,执行步骤b2;
步骤b2:读卡器将串联级别参数更新为下一串联级别值,将有效数据参数更新为第一预设值,将卡标识更新为空,向上位机报告包括更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答,返回步骤s1。
本实施例中,向智能卡发送选择指令之前,还包括:设置应答校验测试;第三测试应答中包括:应答校验测试结果;
根据选择应答向上位机报告第三测试应答之前还包括:获取应答校验测试结果。
进一步地,第三测试指令中还包括:应答校验测试参数;
设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送选择指令,获取来自智能卡的选择应答,执行步骤s7。
本实施例中,向智能卡发送准备指令和/或防冲突指令和/或选择指令之前,还包括:设置数据传输测试;
若向智能卡发送准备指令之前,设置数据传输测试;则第一测试应答中包括:数据传输测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取数据传输测试结果;
若向智能卡发送防冲突指令之前,设置数据传输测试;则第二测试应答中包括:数据传输测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取数据传输测试结果;
若向智能卡发送选择指令之前,设置数据传输测试;则第三测试应答中包括:数据传输测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取数据传输测试结果。
进一步地,第一测试指令中和/或第二测试指令中和/或第三测试指令中包括:数据传输测试参数;
若第一测试指令中包括数据传输测试参数,则设置传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送准备指令,获取来自智能卡的准备应答,执行步骤s3;
若第二测试指令中包括数据传输测试参数,则设置传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送防冲突指令,获取来自智能卡的防冲突应答,执行步骤s5;
若第三测试指令中包括数据传输测试参数,则设置传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送选择指令,获取来自智能卡的选择应答,执行步骤s7。
本实施例中,数据传输测试可以但不限于为:数据帧测试或奇偶校验测试或者接收超时测试或者其他测试。
本实施例中,步骤s1中还可以包括:当接收到来自上位机的第四测试指令后,执行步骤s8;当接收到来自上位机的第五测试指令后,执行步骤s10;
步骤s8:读卡器根据第四测试指令得到获取通讯数据指令;向智能卡发送获取通讯数据指令;获取来自智能卡的通讯数据应答;
步骤s9:读卡器根据通讯数据应答向上位机报告第四测试应答;
步骤s10:读卡器根据第五测试指令得到通讯协商指令;向智能卡发送通讯协商指令;获取来自智能卡的通讯协商应答;
步骤s11:读卡器根据通讯协商应答,向上位机报告第五测试应答;返回步骤s1。
进一步地,根据第四测试指令得到获取通讯数据指令,具体为:读卡器根据第三预设值设置获取通讯数据指令中的第一字节上的数据,根据第四测试指令中的第一参数和第二参数设置获取通讯数据指令中的第二字节上的数据;根据获取通讯数据指令中的第一字节和第二字节上的数据计算第二校验值,将第二校验值设置在获取通讯数据指令中的第二字节后,得到获取通讯数据指令;
根据第五测试指令得到通讯协商指令,具体为:读卡器根据第五测试指令中的第二参数设置通讯协商指令中的第一字节上的数据;根据第五测试指令中的第四参数设置通讯协商指令中的第二字节上的数据;根据第五测试指令中的第五参数设置通讯协商指令中的第三字节上的数据,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令。
本实例中,根据第四测试指令得到获取通讯数据指令,还可以具体为:从第四测试指令中获取获取通讯数据指令;
根据第五测试指令得到通讯协商指令,还可以具体为:从第五测试指令中获取通讯协商指令。
本实施例中,向智能卡发送获取通讯数据指令和/或通讯协商指令之前,还包括:设置应答校验测试;
若读卡器向智能卡发送获取通讯数据指令之前,设置应答校验测试;则第四测试应答中包括:应答校验测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取应答校验测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置应答校验测试;第五测试应答中包括:应答校验测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取应答校验测试结果。
进一步地,第四测试指令中和/或第五测试指令中包括:还包括:应答校验测试参数;
若第四测试指令中包括应答校验测试参数,则设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送获取通讯数据指令,获取来自智能卡的通讯数据应答;执行步骤s9;
若第五测试指令中包括应答校验测试参数,则设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送通讯协商指令,获取来自智能卡的通讯协商应答;执行步骤s11。
本实施例中,向智能卡发送准备指令和/或防冲突指令和/或选择指令和/或获取通讯数据指令和/或通讯协商指令之前,还包括:设置数据传输测试;
若向智能卡发送准备指令之前,设置数据传输测试;则第一测试应答中包括:数据传输测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取数据传输测试结果;
若向智能卡发送防冲突指令之前,设置数据传输测试;则第二测试应答中包括:数据传输测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取数据传输测试结果;
若向智能卡发送选择指令之前,设置数据传输测试;则第三测试应答中包括:数据传输测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取数据传输测试结果;
若向智能卡发送获取通讯数据指令之前,设置数据传输测试;则第四测试应答中包括:数据传输测试结果;根据通讯数据应答向上位机报告第四测试应答,之前还包括:获取数据传输测试结果;
若向智能卡发送通讯协商指令之前,设置数据传输测试;则第五测试应答中包括:数据传输测试结果;根据通讯协商应答向上位机报告第五测试应答,之前还包括:获取数据传输测试结果。
进一步地,第一测试指令中和/或第二测试指令中和/或第三测试指令中和/或第四测试指令中和/或第五测试指令中包括:数据传输测试参数;
若第一测试指令中包括数据传输测试参数,则设置数据传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送准备指令,获取来自智能卡的准备应答,执行步骤s3;
若第二测试指令中包括数据传输测试参数,则设置数据传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送防冲突指令,获取来自智能卡的防冲突应答,执行步骤s5;
若第三测试指令中包括数据传输测试参数,则设置数据传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送选择指令,获取来自智能卡的选择应答,执行步骤s7;
若第四测试指令中包括数据传输测试参数,则设置数据传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送获取通讯数据指令,获取来自智能卡的通讯数据应答;执行步骤s9;
若第五测试指令中包括数据传输测试参数,则设置数据传输测试之前,还包括:根据数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送通讯协商指令,获取来自智能卡的通讯协商应答;执行步骤s11。
本实施例中,步骤s1中还包括:当接收到来自上位机的第六测试指令后,执行步骤s12;
步骤s12:读卡器根据第六测试指令得到包括挂起参数的第六测试指令;向智能卡发送第六测试指令;获取来自智能卡的挂起应答;
步骤s13:读卡器根据挂起应答向上位机报告第六测试应答。
本实施例提供了一种测试智能卡的方法,读卡器接收来自外部的测试指令,并根据相应的测试指令得到准备指令、防冲突指令和选择指令,向非接智能卡发送相应指令,并且每条指令发送后,均根据非接智能卡的应答向外部返回测试结果,使非接触智能卡的测试变得可控,简单。
实施例2
本实施例提供了一种测试智能卡的方法的流程图,如图2所示,包括:
步骤201:读卡器等待接收来自上位机的指令;若指令为开启非接场指令,则执行步骤202;若指令为第一测试指令,则执行步骤203;若指令为第二测试指令,则执行步骤206;若指令为第三测试指令,则执行步骤210;若指令为第四测试指令,则执行步骤214;若指令为第五测试指令,则执行步骤218;若指令为第六测试指令,则执行步骤222;若指令为关闭非接场指令,则执行步骤226;
本实施例中,读卡器可以根据接收到的指令的指令标识判断指令的类型。
步骤202:读卡器开启非接场,返回步骤201;
步骤203:读卡器根据第一测试指令中的准备参数组织初始化指令或唤醒指令,清空应答寄存器,向智能卡发送初始化指令或唤醒指令;
具体地,读卡器获取第一测试指令中的第二个字节上的数据,并将其作为第一测试指令的指令标识,根据第一测试指令中的指令标识从第一测试指令中获取准备参数,根据准备参数组织初始化指令或者唤醒指令;清空应答寄存器,向智能卡发送初始化指令或唤醒指令;
例如:上位机获取第一测试指令81 03 26 00 00中的第二个字节上的数据03,并将其作为第一测试指令的指令标识,根据第一测试指令中的指令标识03从第一测试指令中获取第一测试指令中第三字节上的数据26,并将其作为初始化指令,清空应答寄存器,向智能卡发送初始化指令26。
本实施例中,初始化指令具体为REQA指令,唤醒指令具体为WUPA指令。本实施例中,智能卡具体为非接智能卡。
步骤204:读卡器从应答寄存器中获取来自卡片的准备应答;
例如:读卡器从应答寄存器中获取来自智能卡的准备应答为48 00。
步骤205:读卡器根据准备应答封装第一测试应答,将第一测试应答返回给上位机,返回步骤201;
具体地,读卡器根据准备应答封装包括准备应答的第一测试应答,将第一测试应答返回给上位机,返回步骤201。
例如:读卡器根据准备应答48 00封装包括准备应答的第一测试应答48 00 9000,将第一测试应答48 00 90 00,返回给上位机,返回步骤201。
步骤206:读卡器从第二测试指令中获取串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln),组织包括串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)的防冲突指令;
其中,读卡器从第二测试指令中获取串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)具体为:读卡器获取第二测试指令中的第二个字节上的数据,并将其作为第二测试指令的指令标识,根据第二测试指令中的指令标识从第二测试指令中获取串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)。
例如:上位机获取第二测试指令81 04 93 20 00中的第二个字节上的数据04,并将其作为第二测试指令的指令标识,根据第二测试指令中的指令标识04获取第二测试指令中第三字节上的数据93,并将其作为串联级别参数(SEL)93,获取第二测试指令中第四字节上的数据20,并将其作为有效数据参数(NVB)20,获取第二测试指令中第五字节上的数据00,并将其作为卡标识参数(UID Cln)的长度,根据卡标识参数(UID Cln)的长度00,得到卡标识参数(UID Cln)为空值。
其中,组织包括串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)的防冲突指令,具体为,读卡器将串联级别参数设置在防冲突指令的第一个字节上,将有效数据参数设置在防冲突指令的第二个字节上,将卡标识参数设置在有效数据参数之后,得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令。
例如,读卡器将串联级别参数93设置在防冲突指令的第一个字节上,将有效数据参数20设置在防冲突指令的第二个字节上,得到包括串联级别参数和有效数据参数的防冲突指令93 20。
本实施例中,防冲突指令具体为ANTICOLLISION指令。
步骤207:读卡器清空应答寄存器,向智能卡发送防冲突指令;
本实施例中,读卡器向智能卡发送防冲突应答之前还包括:设置防冲突应答。
其中,设置防冲突应答具体为:读卡器将测试寄存器中的防冲突测试标志位置位。
需要说明的是,读卡器上电后,复位测试寄存器中的所有标志位。
步骤208:读卡器从应答寄存器中获取来自卡片的防冲突应答;从错误寄存器中获取防冲突测试结果;
本实施例中,防冲突测试结果包括:防冲突错误标识和/或防冲突位置。
具体地,读卡器从应答寄存器中获取来自智能卡的防冲突应答;从错误第一寄存器中获取包括防冲突错误标识的错误码和/或从错误第二寄存器中获取防冲突位置。
例如:读卡器从应答寄存器中获取来自智能卡的防冲突应答88 04 31 37 8A,从错误第一寄存器中获取包括防冲突错误标识的错误码00;从错误第二寄存器中获取防冲突位置00。
本实施例中,错误码中包括防冲突标志位,防冲突错误标识具体为防冲突标志位上的数据。本实施例中,错误码可以但不限于为1个字节,防冲突标志位可以但不限于为错误码中的第五比特位(从低位到高位)。
本实施中,防冲突位置为具有冲突的多张(两张或两张以上)智能卡接收到来自读卡器的防冲突指令后,各自向读卡器返回的信息的二进制编码(从低位到高位)中的第一个数值不同的比特位所在的位置。
需说明的是,当读卡器上电后,读卡器复位错误第一寄存器中的错误码中的所有标志位;当读卡器的智能芯片检测出存在卡片响应冲突后,置位错误第一寄存器中的错误码中的防冲突标志位,获取防冲突位置,并将防冲突位置存储到错误第二寄存器中。
更加详细地,读卡器的智能芯片向智能卡发送防冲突指令后,根据接收到来自卡片的数据判断出是否存在卡片响应冲突,如果是,则读卡器的智能芯片根据接收到来自智能卡的数据获取防冲突应答,将其存储在应答寄存器中,根据接收到来自智能卡的数据获取防冲突位置,将防冲突位置存储到错误寄存器中;并置位错误第一寄存器中的错误码中的防冲突标志位;否则,将接收到的来自智能卡的数据作为防冲突应答,并将其存储在应答寄存器中。
步骤209:读卡器根据防冲突应答和防冲突测试结果封装第二测试应答,将第二测试应答返回给上位机,返回步骤201;
本步骤可以具体为:读卡器将包括防冲突应答、包括防冲突错误标识的错误码和防冲突位置的第二测试应答,返回给上位机;
例如:读卡器将包括防冲突应答88 04 31 37 8A、包括防冲突错误标识的错误码00和防冲突位置00的第二测试应答88 04 31 37 8A 00 00 90 00返回给上位机。
本步骤又可以具体包括:
步骤209-1:读卡器根据错误码和/或防冲突位置判断在当前串联级别下是否存在卡片响应冲突,如果是,则执行步骤209-2;否则,执行步骤209-3;
具体地,读卡器获取错误码,检测错误码中的防冲突标志位是否被置位,如果是,则判断在当前串联级别下存在卡片响应冲突,则执行步骤209-2;否则,判断在当前串联级别下不存在卡片响应冲突,执行步骤209-3。
或者读卡器获取防冲突位置,判断防冲突位置是否为00,如果是,则判断在当前串联级别下不存在卡片响应冲突,执行步骤209-3;否则判断在当前串联级别下存在卡片响应冲突,则执行步骤209-2。
或者读卡器获取错误码和防冲突位置,检测错误码中的防冲突标志位是否被置位且判断防冲突位置是否不为00,如果是,则判断在当前串联级别下是否存在卡片响应冲突,如果是,则执行步骤209-2;否则,判断在当前串联级别下不存在卡片响应冲突,执行步骤209-3;
步骤209-2:读卡器根据防冲突位置更新有效数据参数,根据防冲突位置和防冲突应答获取卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括错误码、防冲突位置、有效数据参数和卡标识参数的第二测试应答,返回步骤201;
具体地,读卡器从错误第二寄存器中获取防冲突位置,根据防冲突位置得到增加的有效比特位数,计算有效数据参数所表示的有效比特位总数与增加的有效比特位数的和,根据计算得到的结果更新有效数据参数,在防冲突应答中获取防冲突位置之前(包括防冲突位置)的所有比特位上的数据,并将获取到的数据的中的防冲突位置上的数据设置为第一数值,并将得到的数据作为卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括错误码、防冲突位置、有效数据参数和卡标识参数的第二测试应答,返回步骤201;
优选地,第一数值为1。
例如,读卡器从错误第二寄存器中获取防冲突位置为04,根据防冲突位置04得到增加的有效比特位数为4个比特位,计算有效数据参数20所表示的有效比特位总数16与增加的有效比特位数4的和,根据计算得到的结果20作为更新后的效数据参数所表示的有效比特位总数,将20除以8得到的整数2,即0010作为更新后的有效数据参数的高四位;将20除以8得到的余数4,作为更新后的有效数据参数的低四位0100,即更新后的有效数据参数的为00100100,即更新后的有效数据参数为24;在防冲突应答00 00 00 00 00的二进制编码(从低位到高位)00000000……中获取防冲突位置即第四比特位上的数据之前(包括防冲突位置)的所有比特位上的数据0000,并将获取到的数据的中的防冲突位置即第四比特位上的数据设置为第一数值1,得到0001,即08,并将08作为卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括错误码00、防冲突位置04、有效数据参数24和卡标识参数08的第二测试应答,返回步骤201;
步骤209-3:读卡器将卡标识参数更新为防冲突应答,将有效数据参数更新为第二预设值,向上位机报告包括错误码、防冲突位置、更新后的有效数据参数和更新后的卡标识参数第二测试应答,返回步骤201。
本实施例中,第二预设值为70。
例如:读卡器将卡标识参数更新为防冲突应答88 04 31 37 8A、将有效数据参数更新为第二预设值70,向上位机报告包括错误码00、防冲突位置00、更新后的有效数据参数70和更新后的卡标识参数88 04 31 37 8A的第二测试应答8804 31 37 8A 70 00 00 9000,返回步骤201。
步骤210:读卡器从第三测试指令中获取串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln),根据串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UIDCln)计算第一校验值,组织包括串联级别参数(SEL)、有效数据参数(NVB)、卡标识参数(UIDCln)和第一校验值的选择指令;
其中,读卡器从第三测试指令中获取串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)具体为:读卡器获取第三测试指令中的第二个字节上的数据,并将其作为第三测试指令的指令标识,根据第三测试指令中的指令标识从第三测试指令中获取串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)。
例如:上位机获取第三测试指令81 05 93 70 05 88 04 31 37 8A中的第二个字节上的数据05,并将其作为第三测试指令的指令标识,根据第三测试指令中的指令标识05获取第三测试指令中第三字节上的数据93,并将其作为串联级别参数(SEL)93,获取第三测试指令中第四字节上的数据70,并将其作为有效数据参数(NVB)70,获取第三测试指令中第五字节上的数据05,并将其作为卡标识参数(UID Cln)的长度05,根据卡标识参数(UIDCln)的长度05,获取第五字节之后(不包括第五字节)数据长度为5个字节的数据88 04 3137 8A,并将其作为卡标识参数(UID Cln)。
其中,根据串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)计算第一校验值,组织包括串联级别参数(SEL)、有效数据参数(NVB)、卡标识参数(UID Cln)和第一校验值的选择指令,具体为:根据串联级别参数、有效数据参数和卡标识参数计算第一校验值,将串联级别参数设置在选择指令的第一个字节上,将有效数据参数设置在选择指令的第二个字节上,将卡标识参数设置在选择指令的第三到第七字节上,将第一校验值设置在卡标识参数之后,组织包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令。
例如:根据串联级别参数93、有效数据参数70和卡标识参数88 04 31 37 8a计算第一校验值CRC_A。将串联级别参数93设置在选择指令的第一个字节上,将有效数据参数设置在选择指令的第二个字节上70,将卡标识参数88 04 31 378a设置在选择指令的第三到第七字节上,将第一校验值CRC_A设置在卡标识参数之后,组织包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令93 70 88 04 31 37 8a CRC_A。
本实施例中,第三测试指令中,还可以包括:第一校验值;相应地,步骤210可以被替换为:读卡器从第三测试指令中获取串联级别参数(SEL)有效数据参数(NVB)、卡标识参数(UID Cln)和第一校验值,根据串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)和第一校验值,组织包括串联级别参数(SEL)、有效数据参数(NVB)、卡标识参数(UID Cln)和第一校验值的选择指令。
本实施例中,选择指令具体为SELECT指令。
步骤211:读卡器清空应答寄存器,向智能卡发送选择指令;
步骤212:读卡器从应答寄存器中获取来自卡片的选择应答;
步骤213:读卡器根据选择应答封装第三测试应答,将第三测试应答返回给上位机,返回步骤201;
本步骤可以具体为:读卡器根据选择应答封装包括选择应答的第三测试应答,将第三测试应答返回给上位机,返回步骤201;
例如:读卡器根据选择应答封装24封装包括选择应答的第三测试应答 2490 00,将第三测试应答返回给上位机,返回步骤201;
本步骤还可以具体为:读卡器根据选择应答判断卡是否处于工作状态,如果是,则向上位机报告卡片处于工作状态,返回步骤201;否则,更新串联级别参数、有效数据参数和卡标识参数,向上位机报告包括更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答,返回步骤201;
具体地,读卡器获取选择应答的二进制编码的第一个字节的第三比特位上(从低位到高位算起)的数据,判断其是否为第一数值,如果是,则判断卡未处于工作状态,则将串联级别参数更新为下一串联级别值,将有效数据参数更新为第一预设值,将卡标识更新为空,向上位机报告包括更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答,返回步骤201;如果不为第一数值,则判断卡处于工作状态,则向上位机报告卡片处于工作状态,返回步骤201。
本实施例中,串联级别可以包括三级,分别为:串联级别1、串联级别2和串联级别3,其串联级别值分别为第一串联级别值93、第二串联级别值95和第三串联级别值97。其中,串联级别1的下一串联级别为串联级别2,串联级别2的下一串联级别为串联级别3。第一预设值为20。
例如:读卡器获取选择应答24CRC_A的二进制编码00100100……的第一个字节24的第三比特位上(从低位到高位算起)的数据,判断其为第一数值1,则判断卡未处于工作状态,则将串联级别参数更新为下一串联级别值即第二串联级别值95,将有效数据参数更新为第一预设值20,将卡标识更新为空,将更新后的串联级别参数95、有效数据参数20和卡标识参数作为第三测试应答,向上位机报告第三测试应答,返回步骤201。
再例如:读卡器获取选择应答20CRC_A的二进制编码00100000……的第一个字节20的第三比特位上(从低位到高位算起)的数据,判断其数值为0,不为第一数值1,则判断卡处于工作状态,则向上位机报告卡片处于工作状态,返回步骤201。
步骤214:读卡器从第四测试指令中获取第一参数和第二参数,根据第一参数和第二参数组织获取通讯数据指令;
其中,读卡器从第四测试指令中获取第一参数和第二参数,具体为:读卡器获取第四测试指令中的第二个字节上的数据,并将其作为第四测试指令的指令标识,根据第四测试指令中的指令标识从第四测试指令中获取第一参数和第二参数。
例如:上位机获取第四测试指令81 06 08 00 00中的第二个字节上的数据06,并将其作为第四测试指令的指令标识,根据第四测试指令中的指令标识06获取第四测试指令中第三字节上的数据08,并将其作为第一参数,获取第四测试指令中第四字节上的数据00,并将其作为第二参数。
其中,根据第一参数和第二参数组织获取通讯数据指令具体为:读卡器将第三预设值设置在获取通讯数据指令中的第一字节上;将第一参数的二进制编码左移四位,得到获取通讯数据指令中的第二字节上的数据的高四位,将第二参数的二进制编码的低四位作为获取通讯数据指令中的第二字节上的数据的低四位;根据获取通讯数据指令中的第一字节和第二字节上的数据计算第二校验值,将第二校验值设置在获取通讯数据指令中的第二字节后,得到获取通讯数据指令。
例如:将第三预设值E0设置在获取通讯数据指令中的第一字节上;将第一参数08的二进制编码00001000左移四位,得到获取通讯数据指令中的第二字节上的数据的高四位1000,将第二参数00的二进制编码00000000的低四位0000作为获取通讯数据指令中的第二字节上的数据的低四位;根据获取通讯数据指令中的第一字节和第二字节上的数据计算第二校验值CRC,将第二校验值设置在获取通讯数据指令中的第二字节后,得到获取通讯数据指令E0 80CRC。
本实施例中,获取通讯数据指令具体为RATS指令。
步骤215:读卡器清空应答寄存器,向智能卡发送获取通讯数据指令;
步骤216:读卡器从应答寄存器中获取来自卡片的获取通讯数据应答;
例如:读卡器从应答寄存器中获取来自智能卡的获取通讯数据应答0e 75f7b1 024a 43 4f 50 32 34 32 52 32。
步骤217:读卡器根据获取通讯数据应答封装第四测试应答,将第四测试应答返回给上位机,返回步骤201;
例如:读卡器根据获取通讯数据应答0e 75 f7 b1 02 4a 43 4f 50 32 34 32 5232封装第四测试应答0e 75 f7 b1 02 4a 43 4f 50 32 34 32 52 32 90 00,将第四测试应答返回给上位机,返回步骤201。
步骤218:读卡器从第五测试指令中获取第三参数、第四参数和第五参数,组织包括第三参数、第四参数和第五参数的通讯协商指令;
其中,读卡器从第五测试指令中获取第三参数、第四参数和第五参数,具体为:读卡器获取第五测试指令中的第二个字节上的数据,并将其作为第五测试指令的指令标识,根据第五测试指令中的指令标识获取第三参数、第四参数和第五参数。
例如:读卡器从第五测试指令81 08 00 00 03 00 11 0F中的第二个字节上的数据08,并将其作为第三测试指令的指令标识,根据第三测试指令中的指令标识08获取第五测试指令中第六字节上的数据00,并将其作为第三参数00,获取第五测试指令中第七字节上的数据11,并将其作为第四参数11,获取第五测试指令中第八字节上的数据0F,并将其作为第五参数0F。
其中根据第三参数、第四参数和第五参数组织通讯协商指令,具体为:将1101作为通讯协商指令的第一字节上的数据的高四位,将第三参数的二进制编码的低四位作为通讯协商指令中的第一字节上的数据的低四位;将第四参数设置在通讯协商指令中的第二字节上;将第五参数设置在通讯协商指令中的第三字节上,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令。
例如,将1101作为通讯协商指令的第一字节上的数据的高四位,将第三参数00的二进制编码00000000的低四位0000作为通讯协商指令中的第一字节上的数据的低四位;将第四参数11设置在通讯协商指令中的第二字节上;将第五参数0F设置在通讯协商指令中的第三字节上,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值CRC,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令D0 11 0FCRC。
本实施例中,通讯协商指令具体为PPS指令。
其中,根据第三参数、第四参数和第五参数组织通讯协商指令,还可以具体为:将第三参数设置在通讯协商指令中的第一字节上;将第四参数设置在通讯协商指令中的第二字节上;将第五参数设置在通讯协商指令中的第三字节上,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令。
例如:当上位机获取到第五测试指令为81 08 00 00 03 D0 11 0F时,将第三参数D0设置在通讯协商指令中的第一字节上;将第四参数11设置在通讯协商指令中的第二字节上;将第五参数0F设置在通讯协商指令中的第三字节上,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值CRC,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令D0 11 0F CRC。
步骤219:读卡器清空应答寄存器,向智能卡发送通讯协商指令;
步骤220:读卡器从应答寄存器中获取来自卡片的通讯协商应答;
例如:读卡器从应答寄存器中获取来自卡片的通讯协商应答d0。
步骤221:读卡器根据通讯协商应答封装第五测试应答,将第五测试应答返回给上位机,返回步骤201;
例如:读卡器根据通讯协商应答d0封装第五测试应答d0 90 00,将第五测试应答返回给上位机,返回步骤201。
步骤222:读卡器从第六测试指令中获取挂起参数,根据挂起参数组织挂起指令;
步骤223:读卡器清空应答寄存器,向智能卡发送挂起指令;
步骤224:读卡器从应答寄存器中获取来自卡片的挂起应答;
步骤225:读卡器根据挂起应答封装第六测试应答,向上位机返回第六测试应答,返回步骤201;
步骤226:读卡器关闭非接场,返回步骤201。
需说明的是,本实施例中,上位机和读卡器之间通讯的指令和指令应答的格式均符合APDU(ApplicationProtocolDataUnit,应用协议数据单元)协议。
本实施例中,读卡器向智能卡发送选择指令和/或获取通讯数据指令和/或通讯协商指令之前,还包括:设置应答校验测试;
本实施例中,应答校验测试具体为CRC校验测试,用于测试智能卡返回的应答中的CRC是否正确。
若读卡器向智能卡发送选择指令之前,还包括:设置应答校验测试;第三测试应答中包括:应答校验测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取应答校验测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置应答校验测试;则第四测试应答中包括:应答校验测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取应答校验测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置应答校验测试;第五测试应答中包括:应答校验测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取应答校验测试结果。
其中,设置应答校验测试具体为:读卡器将测试寄存器中的应答校验测试标志位置位。
其中,获取应答校验测试结果具体为:从错误第一寄存器中获取应答校验测试结果标识,将其作为应答校验测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的应答校验测试标志位上的数据,并将其作为应答校验测试结果标识,若应答校验测试结果标识为第一数值,则表示智能卡返回的选择应答中存在校验错误;否则,表示智能卡返回的应答中不存在校验错误。
本实施例中,应答校验测试标志位可以但不限于为错误码中的第二比特位(从低位到高位)。
进一步地,第三测试指令和/或第四测试指令中和/或第五测试指令中包括:还包括:应答校验测试参数;
若第三测试指令中包括应答校验测试参数,设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送选择指令,执行步骤212;
若第四测试指令中包括应答校验测试参数,则设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤216;
若第五测试指令中包括应答校验测试参数,则设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送通讯协商指令,执行步骤220。
本实施例中,读卡器向智能卡发送初始化指令或唤醒指令和/或防冲突指令和/或选择指令和/或获取通讯数据指令和/或通讯协商指令和/或挂起指令之前,还包括:设置数据帧测试;
若向智能卡发送初始化指令或唤醒指令之前,设置数据帧测试;第一测试应答中包括:数据帧测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取数据帧测试结果;
若向智能卡发送防冲突指令之前,设置数据帧测试;第二测试应答中包括:数据帧测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取数据帧测试结果;
若向智能卡发送选择指令之前,设置数据帧测试;第三测试应答中包括:数据帧测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取数据帧测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置数据帧测试;则第四测试应答中包括:数据帧测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取数据帧测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置数据帧测试;第五测试应答中包括:数据帧测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取数据帧测试结果;
若读卡器向智能卡发送挂起之前,设置数据帧测试;第六测试应答中包括:数据帧测试结果;根据挂起应答向上位机报告第六测试应答之前还包括:获取数据帧测试结果;
其中,设置数据帧测试具体为:读卡器将测试寄存器中的数据帧测试标志位置位。
其中,获取数据帧测试结果具体为:从错误第一寄存器中获取数据帧测试结果标识,将其作为数据帧测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的数据帧测试标志位上的数据,并将其作为数据帧测试结果标识,若数数据帧测试结果标识为第一数值,则表示智能卡返回的应答中存在数据帧错误;否则,表示智能卡返回的应答中不存在数据帧错误。
本实施例中,数据帧测试标志位可以但不限于为错误码中的第三比特位(从低位到高位)。数据帧错误具体为智能卡返回的应答的第一个比特位上的数据出现错误。
进一步地,第一测试指令和/或第二测试指令中和/或第三测试指令和/或第四测试指令中和/或第五测试指令和/或第六测试指令中还包括:数据帧测试参数;
若第一测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送初始化指令或唤醒指令,执行步骤204;
若第二测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送防冲突指令,执行步骤208;
若第三测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送选择指令,执行步骤212;
若第四测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤216;
若第五测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送通讯协商指令,执行步骤220;
若第六测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送挂起指令,执行步骤224。
本实施例中,向智能卡发送初始化指令或唤醒指令和/或防冲突指令和/或选择指令和/或获取通讯数据指令和/或通讯协商指令和/或挂起指令之前,还包括:设置奇偶校验测试;
若向智能卡发送初始化指令或唤醒指令之前,设置奇偶校验测试;第一测试应答中包括:奇偶校验测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取奇偶校验测试结果;
若向智能卡发送防冲突指令之前,设置奇偶校验测试;第二测试应答中包括:奇偶校验测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取奇偶校验测试结果;
若向智能卡发送选择指令之前,设置奇偶校验测试;第三测试应答中包括:奇偶校验测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取奇偶校验测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置奇偶校验测试;则第四测试应答中包括:奇偶校验测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取奇偶校验测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置奇偶校验测试;第五测试应答中包括:奇偶校验测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取奇偶校验测试结果;
若读卡器向智能卡发送挂起之前,设置奇偶校验测试;第六测试应答中包括:奇偶校验测试结果;根据挂起应答向上位机报告第六测试应答之前还包括:获取奇偶校验测试结果;
其中,设置奇偶校验测试具体为:读卡器将测试寄存器中的奇偶校验测试标志位置位。
其中,获取奇偶校验测试结果具体为:从错误第一寄存器中获取奇偶校验测试结果标识,将其作为奇偶校验测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的奇偶校验测试标志位上的数据,并将其作为奇偶校验测试结果标识,若数奇偶校验测试结果标识为第一数值,则表示智能卡返回的应答中存在奇偶校验错误;否则,表示智能卡返回的应答中不存在奇偶校验错误。
本实施例中,奇偶校验测试标志位可以但不限于为错误码中的第四比特位(从低位到高位)。
进一步地,第一测试指令和/或第二测试指令中和/或第三测试指令和/或第四测试指令中和/或第五测试指令和/或第六测试指令中还包括:奇偶校验测试参数;
若第一测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送初始化指令或唤醒指令,执行步骤204;
若第二测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送防冲突指令,执行步骤208;
若第三测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送选择指令,执行步骤212;
若第四测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤216;
若第五测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送通讯协商指令,执行步骤220;
若第六测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送挂起指令,执行步骤224。
本实施例中,读卡器向智能卡发送初始化指令或唤醒指令和/或防冲突指令之前和/或选择指令和/或获取通讯数据指令和/或通讯协商指令和/或挂起指令之前,还包括:设置接收超时测试;
若向智能卡发送初始化指令或唤醒指令之前,设置接收超时测试;第一测试应答中包括:接收超时测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取接收超时测试结果;
若向智能卡发送防冲突指令之前,设置接收超时测试;第二测试应答中包括:接收超时测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取接收超时测试结果;
若向智能卡发送选择指令之前,设置接收超时测试;第三测试应答中包括:接收超时测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取接收超时测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置接收超时测试;则第四测试应答中包括:接收超时测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取接收超时测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置接收超时测试;第五测试应答中包括:接收超时测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取接收超时测试结果;
若读卡器向智能卡发送挂起之前,设置接收超时测试;第六测试应答中包括:接收超时测试结果;根据挂起应答向上位机报告第六测试应答之前还包括:获取接收超时测试结果;
其中,设置接收超时测试,具体为:读卡器将测试寄存器中的接收超时测试标志位置位。
其中,获取接收超时测试结果具体为:从错误第一寄存器中获取接收超时测试结果标识,将其作为接收超时测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的接收超时测试标志位上的数据,并将其作为接收超时测试结果标识,若接收超时测试结果标识为第一数值,则表示在接收智能卡返回的应答过程中存在接收超时错误;否则,表示在接收智能卡返回的应答过程中不存在接收超时错误。
本实施例中,接收超时测试标志位可以但不限于为错误码中的第六比特位(从低位到高位)。本实施例中,接收超时错误包括射频模块超时错误和访问超时错误。
进一步地,第一测试指令和/或第二测试指令中和/或第三测试指令和/或第四测试指令中和/或第五测试指令和/或第六测试指令中还包括:接收超时测试参数;
若第一测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送初始化指令或唤醒指令,执行步骤204;
若第二测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送防冲突指令,执行步骤208;
若第三测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送选择指令,执行步骤212;
若第四测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤216;
若第五测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送通讯协商指令,执行步骤220;
若第六测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送挂起指令,执行步骤224。
实施例3
本实施例提供了一种测试智能卡的方法的流程图,如图3所示,包括:
步骤301:读卡器等待接收来自上位机的指令;若指令为开启非接场指令,则执行步骤302;若指令为第一测试指令,则执行步骤303;若指令为第二测试指令,则执行步骤306;若指令为第三测试指令,则执行步骤310;若指令为第四测试指令,则执行步骤314;若指令为第五测试指令,则执行步骤318;若指令为第六测试指令,则执行步骤322;若指令为关闭非接场指令,则执行步骤326;
本实施例中,读卡器可以根据接收到的指令的指令标识判断指令的类型。
步骤302:读卡器开启非接场,返回步骤301;
步骤303:读卡器从第一测试指令中获取包括准备参数的初始化指令或唤醒指令,清空应答寄存器,向智能卡发送初始化指令或唤醒指令;
具体地,读卡器获取第一测试指令中的第二个字节上的数据,并将其作为第一测试指令的指令标识,根据第一测试指令中的指令标识从第一测试指令中获取包括准备参数的初始化指令或者唤醒指令;清空应答寄存器,向智能卡发送初始化指令或唤醒指令;
例如:上位机获取第一测试指令81 03 26 00 00中的第二个字节上的数据03,并将其作为第一测试指令的指令标识,根据第一测试指令中的指令标识03从第一测试指令中获取包括准备参数26的初始化指令26,清空应答寄存器,向智能卡发送初始化指令26。
本实施例中,初始化指令具体为REQA指令,唤醒指令具体为WUPA指令。本实施例中,智能卡具体为非接智能卡。
步骤304:读卡器从应答寄存器中获取来自卡片的准备应答;
例如:读卡器从应答寄存器中获取来自智能卡的准备应答为48 00。
步骤305:读卡器根据准备应答封装第一测试应答,将第一测试应答返回给上位机,返回步骤301;
具体地,读卡器根据准备应答封装包括准备应答的第一测试应答,将第一测试应答返回给上位机,返回步骤301。
例如:读卡器根据准备应答48 00封装包括准备应答的第一测试应答48 0090 00,将第一测试应答48 00 90 00,返回给上位机,返回步骤301。
步骤306:读卡器从第二测试指令中获取包括串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)的防冲突指令;
其中,读卡器从第二测试指令中获取包括串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UID Cln)的防冲突指令具体为:读卡器获取第二测试指令中的第二个字节上的数据,并将其作为第二测试指令的指令标识,根据第二测试指令中的指令标识从第二测试指令中获取包括串联级别参数(SEL)、有效数据参数(NVB)和卡标识参数(UIDCln)的防冲突指令。
例如:上位机获取第二测试指令81 04 93 20 00中的第二个字节上的数据04,并将其作为第二测试指令的指令标识,根据第二测试指令中的指令标识04获取第二测试指令中的第三到第五字节上的数据,并将第三字节上的数据93作为防冲突指令中的串联级别参数(SEL)93,将第二测试指令中第四字节上的数据20作为防冲突指令中的有效数据参数(NVB)20,将第二测试指令中第五字节上的数据00,作为卡标识参数(UID Cln)的长度,得到包括串联级别参数93和有效数据参数20的防冲突指令93 20。
本实施例中,防冲突指令具体为ANTICOLLISION指令。
步骤307:读卡器清空应答寄存器,向智能卡发送防冲突指令;
本实施例中,读卡器向智能卡发送防冲突应答之前还包括:设置防冲突应答。
其中,设置防冲突应答具体为:读卡器将测试寄存器中的防冲突测试标志位置位。
需要说明的是,读卡器上电后,复位测试寄存器中的所有标志位。
步骤308:读卡器从应答寄存器中获取来自卡片的防冲突应答;从错误寄存器中获取防冲突测试结果;
本实施例中,防冲突测试结果包括:防冲突错误标识和/或防冲突位置。
具体地,读卡器从应答寄存器中获取来自智能卡的防冲突应答;从错误第一寄存器中获取包括防冲突错误标识的错误码和/或从错误第二寄存器中获取防冲突位置。
例如:读卡器从应答寄存器中获取来自智能卡的防冲突应答88 04 31 37 8A,从错误第一寄存器中获取包括防冲突错误标识的错误码00;从错误第二寄存器中获取防冲突位置00。
本实施例中,错误码中包括防冲突标志位,防冲突错误标识具体为防冲突标志位上的数据。本实施例中,错误码可以但不限于为1个字节,防冲突标志位可以但不限于为错误码中的第五比特位(从低位到高位)。
本实施中,防冲突位置为具有冲突的多张(两张或两张以上)智能卡接收到来自读卡器的防冲突指令后,各自向读卡器返回的信息的二进制编码(从低位到高位)中的第一个数值不同的比特位所在的位置。
需说明的是,当读卡器上电后,读卡器复位错误第一寄存器中的错误码中的所有标志位;当读卡器的智能芯片检测出存在卡片响应冲突后,置位错误第一寄存器中的错误码中的防冲突标志位,获取防冲突位置,并将防冲突位置存储到错误第二寄存器中。
更加详细地,读卡器的智能芯片向智能卡发送防冲突指令后,根据接收到来自卡片的数据判断出是否存在卡片响应冲突,如果是,则读卡器的智能芯片根据接收到来自智能卡的数据获取防冲突应答,将其存储在应答寄存器中,根据接收到来自智能卡的数据获取防冲突位置,将防冲突位置存储到错误寄存器中;并置位错误第一寄存器中的错误码中的防冲突标志位;否则,将接收到的来自智能卡的数据作为防冲突应答,并将其存储在应答寄存器中。
步骤309:读卡器根据防冲突应答和防冲突测试结果封装第二测试应答,将第二测试应答返回给上位机,返回步骤301;
本步骤可以具体为:读卡器将包括防冲突应答、包括防冲突错误标识的错误码和防冲突位置的第二测试应答,将第二测试应答返回给上位机;返回步骤301;
例如:读卡器将包括防冲突应答88 04 31 37 8A、包括防冲突错误标识的错误码00和防冲突位置00的第二测试应答88 04 31 37 8A 00 00 90 00返回给上位机,返回步骤301。
本步骤又可以具体包括:
步骤309-1:读卡器根据错误码和/或防冲突位置判断在当前串联级别下是否存在卡片响应冲突,如果是,则执行步骤309-2;否则,执行步骤309-3;
具体地,读卡器获取错误码,检测错误码中的防冲突标志位是否被置位,如果是,则判断在当前串联级别下存在卡片响应冲突,则执行步骤309-2;否则,判断在当前串联级别下不存在卡片响应冲突,执行步骤309-3。
或者读卡器获取防冲突位置,判断防冲突位置是否为00,如果是,则判断在当前串联级别下不存在卡片响应冲突,执行步骤309-3;否则判断在当前串联级别下存在卡片响应冲突,则执行步骤309-2。
或者读卡器获取错误码和防冲突位置,检测错误码中的防冲突标志位是否被置位且判断防冲突位置是否不为00,如果是,则判断在当前串联级别下是否存在卡片响应冲突,如果是,则执行步骤309-2;否则,判断在当前串联级别下不存在卡片响应冲突,执行步骤309-3;
步骤309-2:读卡器根据防冲突位置更新有效数据参数,根据防冲突位置和防冲突应答获取卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括错误码、防冲突位置、有效数据参数和卡标识参数的第二测试应答,返回步骤301;
具体地,读卡器从错误第二寄存器中获取防冲突位置,根据防冲突位置得到增加的有效比特位数,计算有效数据参数所表示的有效比特位总数与增加的有效比特位数的和,根据计算得到的结果更新有效数据参数,在防冲突应答中获取防冲突位置之前(包括防冲突位置)的所有比特位上的数据,并将获取到的数据的中的防冲突位置上的数据设置为第一数值,并将得到的数据作为卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括错误码、防冲突位置、有效数据参数和卡标识参数的第二测试应答,返回步骤301;
优选地,第一数值为1。
例如,读卡器从错误第二寄存器中获取防冲突位置为04,根据防冲突位置04得到增加的有效比特位数为4个比特位,计算有效数据参数20所表示的有效比特位总数16与增加的有效比特位数4的和,根据计算得到的结果20作为更新后的效数据参数所表示的有效比特位总数,将20除以8得到的整数2,即0010作为更新后的有效数据参数的高四位;将20除以8得到的余数4,作为更新后的有效数据参数的低四位0100,即更新后的有效数据参数的为00100100,即更新后的有效数据参数为24;在防冲突应答00 00 00 00 00的二进制编码(从低位到高位)00000000……中获取防冲突位置即第四比特位上的数据之前(包括防冲突位置)的所有比特位上的数据0000,并将获取到的数据的中的防冲突位置即第四比特位上的数据设置为第一数值1,得到0001,即08,并将08作为卡标识防冲突码,将卡标识参数更新为卡标识防冲突码,向上位机报告包括错误码00、防冲突位置04、有效数据参数24和卡标识参数08的第二测试应答,返回步骤301;
步骤309-3:读卡器将卡标识参数更新为防冲突应答,将有效数据参数更新为第二预设值,向上位机报告包括错误码、防冲突位置、更新后的有效数据参数和更新后的卡标识参数第二测试应答,返回步骤301。
本实施例中,第二预设值为70。
例如:读卡器将卡标识参数更新为防冲突应答88 04 31 37 8A、将有效数据参数更新为第二预设值70,向上位机报告包括错误码00、防冲突位置00、更新后的有效数据参数70和更新后的卡标识参数88 04 31 37 8A的第二测试应答8804 31 37 8A 70 00 00 9000,返回步骤301。
步骤310:读卡器从第三测试指令中获取包括串联级别参数(SEL)、有效数据参数(NVB)、卡标识参数(UID Cln)和第一校验值的选择指令;
具体地,读卡器获取第三测试指令中的第二个字节上的数据,并将其作为第三测试指令的指令标识,根据第三测试指令中的指令标识从第三测试指令中获取包括串联级别参数(SEL)、有效数据参数(NVB)、卡标识参数(UID Cln)和第一校验值的选择指令;
例如:上位机获取第三测试指令81 05 93 70 07 88 04 31 37 8A CRC_A中的第二个字节上的数据05,并将其作为第三测试指令的指令标识,根据第三测试指令中的指令标识05获取第三测试指令中第三到最后一个字节上的数据93 70 06 88 04 31 37 8ACRC_A,并将第三字节上的数据作为选择指令中的串联级别参数(SEL)93,将第三测试指令中第四字节上的数据70,作为选择指令中的有效数据参数(NVB),将第三测试指令中第五字节上的数据07,并将其作为卡标识参数(UID Cln)和第一校验值的数据长度之和,将第三测试指令中第六到第九字节上的数据作为选择指令中的卡标识参数(UID Cln),将将第三测试指令中的第九字节之后(不包括第九字节)的数据作为选择指令中的第一校验值,得到包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令93 70 88 04 31 378a CRC_A。
本实施例中,选择指令具体为SELECT指令。
步骤311:读卡器清空应答寄存器,向智能卡发送选择指令;
步骤312:读卡器从应答寄存器中获取来自卡片的选择应答;
步骤313:读卡器根据选择应答封装第三测试应答,将第三测试应答返回给上位机,返回步骤301;
本步骤可以具体为:读卡器根据选择应答封装包括选择应答的第三测试应答,将第三测试应答返回给上位机,返回步骤301;
例如:读卡器根据选择应答封装24封装包括选择应答的第三测试应答24 90 00,将第三测试应答返回给上位机,返回步骤301;
本步骤还可以具体为:读卡器根据选择应答判断卡是否处于工作状态,如果是,则向上位机报告卡片处于工作状态,返回步骤301;否则,更新串联级别参数、有效数据参数和卡标识参数,向上位机报告包括更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答,返回步骤301;
具体地,读卡器获取选择应答的二进制编码的第一个字节的第三比特位上(从低位到高位算起)的数据,判断其是否为第一数值,如果是,则判断卡未处于工作状态,则将串联级别参数更新为下一串联级别值,将有效数据参数更新为第一预设值,将卡标识更新为空,向上位机报告包括更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答,返回步骤301;如果不为第一数值,则判断卡处于工作状态,则向上位机报告卡片处于工作状态,返回步骤301。
本实施例中,串联级别可以包括三级,分别为:串联级别1、串联级别2和串联级别3,其串联级别值分别为第一串联级别值93、第二串联级别值95和第三串联级别值97。其中,串联级别1的下一串联级别为串联级别2,串联级别2的下一串联级别为串联级别3。第一预设值为20。
例如:读卡器获取选择应答24CRC_A的二进制编码00100100……的第一个字节24的第三比特位上(从低位到高位算起)的数据,判断其为第一数值1,则判断卡未处于工作状态,则将串联级别参数更新为下一串联级别值即第二串联级别值95,将有效数据参数更新为第一预设值20,将卡标识更新为空,将更新后的串联级别参数95、有效数据参数20和卡标识参数作为第三测试应答,向上位机报告第三测试应答,返回步骤301。
再例如:读卡器获取选择应答20CRC_A的二进制编码00100000……的第一个字节20的第三比特位上(从低位到高位算起)的数据,判断其数值为0,不为第一数值1,则判断卡处于工作状态,则向上位机报告卡片处于工作状态,返回步骤301。
步骤314:读卡器从第四测试指令中获取获取通讯数据指令;
具体为:读卡器获取第四测试指令中的第二个字节上的数据,并将其作为第四测试指令的指令标识,根据第四测试指令中的指令标识从第四测试指令中获取获取通讯数据指令。
例如:上位机获取第四测试指令81 06 00 00 04 E0 80 CRC中的第二个字节上的数据06,并将其作为第四测试指令的指令标识,根据第四测试指令中的指令标识06获取第四测试指令中第六字节到最后一个字节之间的数据E0 80CRC,并将其作为获取通讯数据指令。
本实施例中,获取通讯数据指令具体为RATS指令。
步骤315:读卡器清空应答寄存器,向智能卡发送获取通讯数据指令;
步骤316:读卡器从应答寄存器中获取来自卡片的获取通讯数据应答;
例如:读卡器从应答寄存器中获取来自智能卡的获取通讯数据应答0e 75 f7 b102 4a 43 4f 50 32 34 32 52 32。
步骤317:读卡器根据获取通讯数据应答封装第四测试应答,将第四测试应答返回给上位机,返回步骤301;
例如:读卡器根据获取通讯数据应答0e 75 f7 b1 02 4a 43 4f 50 32 34 32 5232封装第四测试应答0e 75 f7 b1 02 4a 43 4f 50 32 34 32 52 32 90 00,将第四测试应答返回给上位机,返回步骤301。
步骤318:读卡器从第五测试指令中获取通讯协商指令;
具体为:读卡器获取第五测试指令中的第二个字节上的数据,并将其作为第五测试指令的指令标识,根据第五测试指令中的指令标识从第五测试指令中获取通讯协商指令。
例如:上位机获取第五测试指令81 08 00 00 05 D0 11 0F CRC中的第二个字节上的数据08,并将其作为第三测试指令的指令标识,根据第三测试指令中的指令标识08从第五测试指令中获取第六字节到最后字节之间的数据D0 11 0F CRC,将获取到的数据D011 0F CRC作为通讯协商指令。
本实施例中,通讯协商指令具体为PPS指令。
步骤319:读卡器清空应答寄存器,向智能卡发送通讯协商指令;
步骤320:读卡器从应答寄存器中获取来自卡片的通讯协商应答;
例如:读卡器从应答寄存器中获取来自卡片的通讯协商应答d0。
步骤321:读卡器根据通讯协商应答封装第五测试应答,将第五测试应答返回给上位机,返回步骤301;
例如:读卡器根据通讯协商应答d0封装第五测试应答d0 90 00,将第五测试应答返回给上位机,返回步骤301。
步骤322:读卡器从第六测试指令中获取挂起参数,根据挂起参数组织挂起指令;
步骤323:读卡器清空应答寄存器,向智能卡发送挂起指令;
步骤324:读卡器从应答寄存器中获取来自卡片的挂起应答;
步骤325:读卡器根据挂起应答封装第六测试应答,向上位机返回第六测试应答,返回步骤301;
步骤326:读卡器关闭非接场,返回步骤301。
需说明的是,本实施例中,上位机和读卡器之间通讯的指令和指令应答的格式可以均符合APDU(ApplicationProtocolDataUnit,应用协议数据单元)协议。
本实施例中,读卡器向智能卡发送选择指令和/或获取通讯数据指令和/或通讯协商指令之前,还包括:设置应答校验测试;
本实施例中,应答校验测试具体为CRC校验测试,用于测试智能卡返回的应答中的CRC是否正确。
若读卡器向智能卡发送选择指令之前,还包括:设置应答校验测试;第三测试应答中包括:应答校验测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取应答校验测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置应答校验测试;则第四测试应答中包括:应答校验测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取应答校验测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置应答校验测试;第五测试应答中包括:应答校验测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取应答校验测试结果。
其中,设置应答校验测试具体为:读卡器将测试寄存器中的应答校验测试标志位置位。
其中,获取应答校验测试结果具体为:从错误第一寄存器中获取应答校验测试结果标识,将其作为应答校验测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的应答校验测试标志位上的数据,并将其作为应答校验测试结果标识,若应答校验测试结果标识为第一数值,则表示智能卡返回的选择应答中存在校验错误;否则,表示智能卡返回的应答中不存在校验错误。
本实施例中,应答校验测试标志位可以但不限于为错误码中的第二比特位(从低位到高位)。
进一步地,第三测试指令和/或第四测试指令中和/或第五测试指令中包括:还包括:应答校验测试参数;
若第三测试指令中包括应答校验测试参数,设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送选择指令,执行步骤312;
若第四测试指令中包括应答校验测试参数,则设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤316;
若第五测试指令中包括应答校验测试参数,则设置应答校验测试之前,还包括:根据应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送通讯协商指令,执行步骤320。
本实施例中,读卡器向智能卡发送初始化指令或唤醒指令和/或防冲突指令和/或选择指令和/或获取通讯数据指令和/或通讯协商指令和/或挂起指令之前,还包括:设置数据帧测试;
若向智能卡发送初始化指令或唤醒指令之前,设置数据帧测试;第一测试应答中包括:数据帧测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取数据帧测试结果;
若向智能卡发送防冲突指令之前,设置数据帧测试;第二测试应答中包括:数据帧测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取数据帧测试结果;
若向智能卡发送选择指令之前,设置数据帧测试;第三测试应答中包括:数据帧测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取数据帧测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置数据帧测试;则第四测试应答中包括:数据帧测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取数据帧测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置数据帧测试;第五测试应答中包括:数据帧测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取数据帧测试结果;
若读卡器向智能卡发送挂起之前,设置数据帧测试;第六测试应答中包括:数据帧测试结果;根据挂起应答向上位机报告第六测试应答之前还包括:获取数据帧测试结果;
其中,设置数据帧测试具体为:读卡器将测试寄存器中的数据帧测试标志位置位。
其中,获取数据帧测试结果具体为:从错误第一寄存器中获取数据帧测试结果标识,将其作为数据帧测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的数据帧测试标志位上的数据,并将其作为数据帧测试结果标识,若数数据帧测试结果标识为第一数值,则表示智能卡返回的应答中存在数据帧错误;否则,表示智能卡返回的应答中不存在数据帧错误。
本实施例中,数据帧测试标志位可以但不限于为错误码中的第三比特位(从低位到高位)。数据帧错误具体为智能卡返回的应答的第一个比特位上的数据出现错误。
进一步地,第一测试指令和/或第二测试指令中和/或第三测试指令和/或第四测试指令中和/或第五测试指令和/或第六测试指令中还包括:数据帧测试参数;
若第一测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送初始化指令或唤醒指令,执行步骤304;
若第二测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送防冲突指令,执行步骤308;
若第三测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送选择指令,执行步骤312;
若第四测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤316;
若第五测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送通讯协商指令,执行步骤320;
若第六测试指令中包括数据帧测试参数,则设置数据帧测试之前,还包括:根据数据帧测试参数判断是否设置数据帧测试,如果是,则设置数据帧测试,继续;否则,向智能卡发送挂起指令,执行步骤324。
本实施例中,向智能卡发送初始化指令或唤醒指令和/或防冲突指令和/或选择指令和/或获取通讯数据指令和/或通讯协商指令和/或挂起指令之前,还包括:设置奇偶校验测试;
若向智能卡发送初始化指令或唤醒指令之前,设置奇偶校验测试;第一测试应答中包括:奇偶校验测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取奇偶校验测试结果;
若向智能卡发送防冲突指令之前,设置奇偶校验测试;第二测试应答中包括:奇偶校验测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取奇偶校验测试结果;
若向智能卡发送选择指令之前,设置奇偶校验测试;第三测试应答中包括:奇偶校验测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取奇偶校验测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置奇偶校验测试;则第四测试应答中包括:奇偶校验测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取奇偶校验测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置奇偶校验测试;第五测试应答中包括:奇偶校验测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取奇偶校验测试结果;
若读卡器向智能卡发送挂起之前,设置奇偶校验测试;第六测试应答中包括:奇偶校验测试结果;根据挂起应答向上位机报告第六测试应答之前还包括:获取奇偶校验测试结果;
其中,设置奇偶校验测试具体为:读卡器将测试寄存器中的奇偶校验测试标志位置位。
其中,获取奇偶校验测试结果具体为:从错误第一寄存器中获取奇偶校验测试结果标识,将其作为奇偶校验测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的奇偶校验测试标志位上的数据,并将其作为奇偶校验测试结果标识,若数奇偶校验测试结果标识为第一数值,则表示智能卡返回的应答中存在奇偶校验错误;否则,表示智能卡返回的应答中不存在奇偶校验错误。
本实施例中,奇偶校验测试标志位可以但不限于为错误码中的第四比特位(从低位到高位)。
进一步地,第一测试指令和/或第二测试指令中和/或第三测试指令和/或第四测试指令中和/或第五测试指令和/或第六测试指令中还包括:奇偶校验测试参数;
若第一测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送初始化指令或唤醒指令,执行步骤304;
若第二测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送防冲突指令,执行步骤308;
若第三测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送选择指令,执行步骤312;
若第四测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤316;
若第五测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送通讯协商指令,执行步骤320;
若第六测试指令中包括奇偶校验测试参数,则设置奇偶校验测试之前,还包括:根据奇偶校验测试参数判断是否设置奇偶校验测试,如果是,则设置奇偶校验测试,继续;否则,向智能卡发送挂起指令,执行步骤324。
本实施例中,读卡器向智能卡发送初始化指令或唤醒指令和/或防冲突指令之前和/或选择指令和/或获取通讯数据指令和/或通讯协商指令和/或挂起指令之前,还包括:设置接收超时测试;
若向智能卡发送初始化指令或唤醒指令之前,设置接收超时测试;第一测试应答中包括:接收超时测试结果;根据准备应答向上位机报告第一测试应答之前还包括:获取接收超时测试结果;
若向智能卡发送防冲突指令之前,设置接收超时测试;第二测试应答中包括:接收超时测试结果;根据防冲突应答和防冲突测试结果向上位机报告第二测试应答之前还包括:获取接收超时测试结果;
若向智能卡发送选择指令之前,设置接收超时测试;第三测试应答中包括:接收超时测试结果;根据选择应答向上位机报告第三测试应答之前还包括:获取接收超时测试结果;
若读卡器向智能卡发送获取通讯数据指令之前,设置接收超时测试;则第四测试应答中包括:接收超时测试结果;根据通讯数据应答向上位机报告第四测试应答之前还包括:获取接收超时测试结果;
若读卡器向智能卡发送通讯协商指令之前,设置接收超时测试;第五测试应答中包括:接收超时测试结果;根据通讯协商应答向上位机报告第五测试应答之前还包括:获取接收超时测试结果;
若读卡器向智能卡发送挂起之前,设置接收超时测试;第六测试应答中包括:接收超时测试结果;根据挂起应答向上位机报告第六测试应答之前还包括:获取接收超时测试结果;
其中,设置接收超时测试,具体为:读卡器将测试寄存器中的接收超时测试标志位置位。
其中,获取接收超时测试结果具体为:从错误第一寄存器中获取接收超时测试结果标识,将其作为接收超时测试结果。
更加具体地,从错误第一寄存器中获取错误码,获取错误码中的接收超时测试标志位上的数据,并将其作为接收超时测试结果标识,若接收超时测试结果标识为第一数值,则表示在接收智能卡返回的应答过程中存在接收超时错误;否则,表示在接收智能卡返回的应答过程中不存在接收超时错误。
本实施例中,接收超时测试标志位可以但不限于为错误码中的第六比特位
(从低位到高位)。本实施例中,接收超时错误包括射频模块超时错误和访问超时错误。
进一步地,第一测试指令和/或第二测试指令中和/或第三测试指令和/或第四测试指令中和/或第五测试指令和/或第六测试指令中还包括:接收超时测试参数;
若第一测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送初始化指令或唤醒指令,执行步骤304;
若第二测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送防冲突指令,执行步骤308;
若第三测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送选择指令,执行步骤312;
若第四测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送获取通讯数据指令,执行步骤316;
若第五测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送通讯协商指令,执行步骤320;
若第六测试指令中包括接收超时测试参数,则设置接收超时测试之前,还包括:根据接收超时测试参数判断是否设置接收超时测试,如果是,则设置接收超时测试,继续;否则,向智能卡发送挂起指令,执行步骤324。
实施例4
本实施例提供了一种测试智能卡的读卡器,如图4所示,包括:第一接收模块01、第二接收模块02、第三接收模块03、准备指令模块04、防冲突指令模块05、选择指令模块06、第一发送模块07、第二发送模块08、第三发送模块09、第一获取模块10、第二获取模块11、第三获取模块12、第一报告模块13、第二报告模块14和第三报告模块15;
第一接收模块01,用于接收来自上位机的第一测试指令;
第二接收模块02,用于接收来自上位机的第二测试指令;
第三接收模块03,用于接收来自上位机的第三测试指令;
准备指令模块04,用于根据第一接收模块01接收到的第一测试指令得到包括准备参数的准备指令;
防冲突指令模块05,用于根据第二接收模块02接收到的第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
选择指令模块06,用于根据第三接收模块03接收到的第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;
第一发送模块07,用于向智能卡发送准备指令;
第二发送模块08,用于向智能卡发送防冲突指令;
第三发送模块09,用于向智能卡发送选择指令;
第一获取模块10,用于获取来自智能卡的准备应答;
第二获取模块11,用于获取来自智能卡的防冲突应答;
第三获取模块12,用于获取来自智能卡的选择应答;
第一报告模块13,用于根据准备应答向上位机报告第一测试应答;
第二报告模块14,用于根据防冲突应答向上位机报告第二测试应答;
第三报告模块15,用于根据选择应答向上位机报告第三测试应答。
本实施例中,智能卡具体为非接智能卡。
本实施例中,准备指令模块04,具体用于从第一接收模块01接收到的第一测试指令中获取包括准备参数的准备指令;
防冲突指令模块05,具体用于从第二接收模块02接收到的第二测试指令获取包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
选择指令模块06,用于从第三接收模块03接收到的第三测试指令获取包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令。
本实施例中,准备指令模块04可以具体包括:第一组织单元;防冲突指令模块05可以具体包括:第二组织单元;选择指令模块06可以具体包括:第三组织单元;
第一组织单元,用于根据第一接收模块01接收到的测试指令中的准备参数组织包括准备参数的准备指令;
本实施例中,准备参数具体为初始化参数或者唤醒参数;准备指令包括初始化指令或者唤醒指令;
第一组织单元,具体用于若准备参数为初始化参数,将初始化参数作为初始化指令;若准备参数为唤醒参数,将唤醒参数作为唤醒指令。
第二组织单元,用于根据第二接收模块02接收到的第二测试指令中的串联级别参数、有效数据参数和卡标识参数组织包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
第二组织单元,具体用于根据串联级别参数设置防冲突指令的第一个字节上的数据,根据有效数据参数设置防冲突指令的第二个字节上的数据,根据卡标识参数设置防冲突指令的第二个字节之后的数据,得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令。
第三组织单元,用于根据第三接收模块03接收到的第三测试指令中的串联级别参数、有效数据参数和卡标识参数组织包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;
第三组织单元,具体用于根据第三测试指令中的串联级别参数、有效数据参数和卡标识参数计算第一校验值,根据串联级别参数设置选择指令的第一个字节上的数据,根据有效数据参数设置选择指令的第二个字节上的数据,根据卡标识参数设置选择指令的第三到第七字节上的数据,根据第一校验值设置卡标识参数之后的数据,得到包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令;
第三组织单元,或者具体用于根据串联级别参数设置选择指令的第一个字节上的数据,根据有效数据参数设置选择指令的第二个字节上的数据,根据卡标识参数设置选择指令的第三到第七字节上的数据,根据第三测试指令中的第一校验值设置卡标识参数之后的数据,得到包括串联级别参数、有效数据参数、卡标识参数和第一校验值的选择指令。
本实施例中提供的读卡器,还可以包括:第一设置模;
第一设置模块,用于设置防冲突测试;
第三获取模块12,还用于获取防冲突测试结果;
第二报告模块14,具体用于根据防冲突应答向上位机报告包括防冲突测试结果的第二测试应答。
进一步地,本实施例中提供的读卡器还可以包括第一判断模块;第二测试指令中包括防冲突测试参数;
第一判断模块,用于根据防冲突测试参数判断是否设置防冲突测试;
第一设置模块,具体用于当第一判断模块判断为是后,设置防冲突测试;
第二发送模块08,具体用于当第一设置模块设置防冲突测试后,向智能卡发送防冲突指令;当第一判断模块判断为否后,向智能卡发送防冲突指令。
进一步地,第二报告模块14,具体包括:第一判断单元、第一更新单元、第二更新单元、第一报告单元和第二报告单元;
第一判断单元,用于根据第二获取模块11获取到的防冲突测试结果判断在当前串联级别下是否存在卡片响应冲突;
第一更新单元,用于当第一判断单元判断为是后,根据防冲突测试结果中的防冲突位置更新有效数据参数,根据防冲突位置和防冲突应答获取卡标识防冲突码,将卡标识参数更新为卡标识防冲突码;
第一报告单元,用于向上位机报告包括防冲突测试结果、第一更新单元更新的有效数据参数和卡标识参数的第二测试应答;
第二更新单元,用于当第一判断单元判断为否后,将卡标识参数更新为防冲突应答,将有效数据参数更新为第二预设值;
第二报告单元,用于向上位机报告包括第二更新单元更新的防冲突测试结果、更新后的有效数据参数和更新后的卡标识参数第二测试应答。
本实施例中,第二报告模块14,可以具体用于向上位机报告包括第二获取模块11获取到的防冲突应答的第二测试应答。
本实施例中,第三报告模块15,可以具体用于向上位机报告包括第三获取模块12获取到的选择应答的第三测试应答。
本实施例中,第三报告模块15,可以具体包括:第二判断单元、第三更新单元、第三报告单元和第四报告单元;
第二判断单元,用于根据第三获取模块12获取到的选择应答判断智能卡是否处于工作状态;
第三报告单元,用于当第二判断单元判断为是后,向上位机报告智能卡处于工作状态;
第三更新单元,用于当第二判断单元判断为否后,将串联级别参数更新为下一串联级别值,将有效数据参数更新为第一预设值,将卡标识更新为空;
第四报告单元,用于向上位机报告包括第三更新单元更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答。
本实施例中提供的读卡器,还可以包括:第二设置模块;
第二设置模块,用于设置应答校验测试;
本实施例中,应答校验测试具体为CRC校验测试,用于测试智能卡返回的应答中的CRC是否正确。
第三获取模块12,还用于获取应答校验测试结果;
第三报告模块15,具体用于根据选择应答向上位机报告包括应答校验测试结果的第三测试应答。
进一步地,本实施例中提供的读卡器还可以包括:第二判断模块;第三测试指令中还包括:应答校验测试参数;
第二判断模块,用于根据应答校验测试参数判断是否设置应答校验测试;
第二设置模块,具体用于当第二判断模块判断为是后,设置应答校验测试;
第三发送模块09,具体用于当第二设置模块设置应答校验测试后,向智能卡发送选择指令;当第二判断模块判断为否后,向智能卡发送选择指令。
本实施例中提供的读卡器,还可以包括:第三设置模块;
第三设置模块,用于设置数据传输测试;
若第三设置模块,具体用于当第一发送模块07向智能卡发送准备指令之前,设置数据传输测试;则:第一获取模块10还用于获取数据传输测试结果;第一报告模块13具体用于根据准备应答向上位机报告包括数据传输测试结果的第一测试应答;
若第三设置模块,具体用于当第二发送模块08向智能卡发送防冲突指令之前,设置数据传输测试;则:第二获取模块11还用于获取数据传输测试结果;第二报告模块14具体用于根据防冲突应答向上位机报告包括数据传输测试结果的第二测试应答;
若第三设置模块,具体用于当第三发送模块09向智能卡发送选择指令之前,设置数据传输测试;则:第三获取模块12还用于获取数据传输测试结果;第三报告模块15具体用于根据选择应答向上位机报告包括数据传输测试结果的第三测试应答。
进一步地,本实施例中提供的读卡器还可以包括:第三判断模块;第一测试指令中和/或第二测试指令中和/或第三测试指令中包括:数据传输测试参数;
第三判断模块,用于根据数据传输测试参数判断是否设置数据传输测试;
第三设置模块,具体用于若第一测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;若第二测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;若第三测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;
第一发送模块07,具体用于当第三设置模块设置数据传输测试后,向智能卡发送准备指令;若第一测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送准备指令;
第二发送模块08,具体用于当第三设置模块设置数据传输测试后,向智能卡发送防冲突指令;若第二测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送防冲突指令;
第三发送模块09,具体用于当第三设置模块设置数据传输测试后,用于向智能卡发送选择指令;若第三测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送选择指令。
本实施例中提供的读卡器,还可以包括:第四接收模块、第五接收模块、获取通讯数据指令模块、通讯协商指令模块、第四获取模块、第五获取模块、第四发送模块、第五发送模块、第四报告模块和第五报告模块;
第四接收模块,用于接收来自上位机的第四测试指令;
第五接收模块,用于接收来自上位机的第五测试指令;
获取通讯数据指令模块,用于根据第四测试指令得到获取通讯数据指令;
第四发送模块,用于向智能卡发送获取通讯数据指令;
第四获取模块,用于获取来自智能卡的通讯数据应答;
第四报告模块,用于根据通讯数据应答向上位机报告第四测试应答;
通讯协商指令模块,用于根据第五接收模块接收到的第五测试指令得到通讯协商指令;
第五发送模块,用于向智能卡发送通讯协商指令;
第五获取模块,用于获取来自智能卡的通讯协商应答;
第五报告模块,用于根据通讯协商应答向上位机报告第五测试应答。
进一步地,获取通讯数据指令模块,具体用于根据第三预设值设置获取通讯数据指令中的第一字节上的数据,根据第四测试指令中的第一参数和第二参数设置获取通讯数据指令中的第二字节上的数据;根据获取通讯数据指令中的第一字节和第二字节上的数据计算第二校验值,将第二校验值设置在获取通讯数据指令中的第二字节后,得到获取通讯数据指令;
通讯协商指令模块,具体用于根据第五测试指令中的第二参数设置通讯协商指令中的第一字节上的数据;根据第五测试指令中的第四参数设置通讯协商指令中的第二字节上的数据;根据第五测试指令中的第五参数设置通讯协商指令中的第三字节上的数据,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令。
本实施例中,获取通讯数据指令模块,还可以具体用于从第四测试指令中获取获取通讯数据指令;
通讯协商指令模块,还可以具体用于从第五测试指令中获取通讯协商指令。
本实施例中提供的读卡器,还可以包括:第二设置模块;第二设置模块,用于设置应答校验测试;
若第二设置模块,具体用于在第四发送模块向智能卡发送获取通讯数据指令之前,设置应答校验测试;则:第四获取模块还用于获取应答校验测试结果;第四报告模块,具体用于根据通讯数据应答向上位机报告包括应答校验测试结果的第四测试应答;
若第二设置模块,具体用于在第五发送模块向智能卡发送通讯协商指令之前,设置应答校验测试;则第五获取模块还用于获取应答校验测试结果;第五报告模块,具体用于根据通讯协商应答向上位机报告包括应答校验测试结果的第五测试应答。
进一步地,本实施例中提供的读卡器,还可以包括:第二判断模块;第四测试指令中和/或第五测试指令中包括:还包括:应答校验测试参数;
第二判断模块,用于根据应答校验测试参数判断是否设置应答校验测试;
第二设置模块,具体用于若第四测试指令中包括应答校验测试参数且当第二判断模块判断为是后,设置应答校验测试;若第五测试指令中包括应答校验测试参数且当第二判断模块判断为是后,设置应答校验测试;
第四发送模块,具体用于当第二设置模块设置应答校验测试后,向智能卡发送获取通讯数据指令;若第四测试指令中包括应答校验测试参数且当第二判断模块判断为否后,向智能卡发送获取通讯数据指令;
第五发送模块,具体用于当第二设置模块设置应答校验测试后,向智能卡发送通讯协商指令;若第五测试指令中包括应答校验测试参数且当第二判断模块判断为否后,向智能卡发送通讯协商指令。
本实施例中提供的读卡器,还可以包括:第三设置模块;
第三设置模块,用于设置数据传输测试;
若第三设置模块,具体用于当第一发送模块07向智能卡发送准备指令之前,设置数据传输测试;则:第一获取模块10还用于获取数据传输测试结果;第一报告模块13具体用于根据准备应答向上位机报告包括数据传输测试结果的第一测试应答;
若第三设置模块,具体用于当第二发送模块08向智能卡发送防冲突指令之前,设置数据传输测试;则:第二获取模块11还用于获取数据传输测试结果;第二报告模块14具体用于根据防冲突应答向上位机报告包括数据传输测试结果的第二测试应答;
若第三设置模块,具体用于当第三发送模块09向智能卡发送选择指令之前,设置数据传输测试;则:第三获取模块12还用于获取数据传输测试结果;第三报告模块15具体用于根据选择应答向上位机报告包括数据传输测试结果的第三测试应答;
若第三设置模块,具体用于当第四发送模块向智能卡发送获取通讯数据指令之前,设置数据传输测试;则:第四获取模块还用于获取数据传输测试结果;第四报告模块具体用于根据通讯数据应答向上位机报告包括数据传输测试结果的第四测试应答;
若第三设置模块,具体用于当第五发送模块向智能卡发送通讯协商指令之前,设置数据传输测试;则第五获取模块还用于获取数据传输测试结果;第五报告模块具体用于根据通讯协商应答向上位机报告包括数据传输测试结果的第五测试应答。
进一步地,本实施例中提供的读卡器还可以包括:第三判断模块;第一测试指令中和/或第二测试指令中和/或第三测试指令中和/或第四测试指令中和/或第五测试指令中包括:数据传输测试参数;
第三判断模块,用于根据数据传输测试参数判断是否设置数据传输测试;
第三设置模块,具体用于若第一测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;若第二测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;若第三测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;若第四测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;若第五测试指令中包括数据传输测试参数且当第三判断模块判断为是后,设置数据传输测试;
第一发送模块07,具体用于当第三设置模块设置数据传输测试后,向智能卡发送准备指令;若第一测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送准备指令;
第二发送模块08,具体用于当第三设置模块设置数据传输测试后,向智能卡发送防冲突指令;若第二测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送防冲突指令;
第三发送模块09,具体用于当第三设置模块设置数据传输测试后,向智能卡发送选择指令;若第三测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送选择指令;
第四发送模块,具体用于当第三设置模块设置数据传输测试后,向智能卡发送获取通讯数据指令;若第四测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送获取通讯数据指令;
第五发送模块,具体用于当第三设置模块设置数据传输测试后,向智能卡发送通讯协商指令;若第五测试指令中包括数据传输测试参数且当第三判断模块判断为否后,向智能卡发送通讯协商指令。
本实施例中提供的读卡器,还可以包括:第六接收模块、挂起指令模块、第六发送模块、第六获取模块和第六报告模块;
第六接收模块,用于接收来自上位机的第六测试指令;
挂起指令模块,用于根据第六接收模块接收到的第六测试指令得到包括挂起参数的第六测试指令;
第六发送模块,用于向智能卡发送第六测试指令;
第六获取模块,用于获取来自智能卡的挂起应答;
第六报告模块,用于根据挂起应答向上位机报告第六测试应答。
本实施例提供了一种测试智能卡的读卡器,读卡器接收来自外部的测试指令,并根据相应的测试指令得到准备指令、防冲突指令和选择指令,向非接智能卡发送相应指令,并且每条指令发送后,均根据非接智能卡的应答向外部返回测试结果,使非接触智能卡的测试变得可控,简单。
以上所述,仅为本发明较佳的具体实施方法,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (44)
1.一种测试智能卡的方法,其特征在于,包括:
步骤s1:读卡器接收来自上位机的指令,当接收到来自上位机的第一测试指令后,执行步骤s2;当接收到来自上位机的第二测试指令后,执行步骤s4;当接收到来自上位机的第三测试指令后,执行步骤s6;
步骤s2:所述读卡器根据所述第一测试指令得到包括准备参数的准备指令;向智能卡发送所述准备指令;获取来自所述智能卡的准备应答;
步骤s3:所述读卡器根据所述准备应答向所述上位机报告第一测试应答,返回步骤s1;
步骤s4:所述读卡器根据所述第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;向智能卡发送所述防冲突指令;获取来自所述智能卡的防冲突应答;
步骤s5:所述读卡器根据所述防冲突应答向所述上位机报告第二测试应答,返回步骤s1;
步骤s6:所述读卡器根据所述第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;向智能卡发送所述选择指令;获取来自所述智能卡的选择应答;
步骤s7:所述读卡器根据所述选择应答向所述上位机报告第三测试应答,返回步骤s1。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一测试指令得到包括准备参数的准备指令,具体为:所述读卡器从所述第一测试指令中获取包括准备参数的准备指令;
所述根据所述第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令,具体为:所述读卡器从所述第二测试指令中获取包括所述串联级别参数、所述有效数据参数和所述卡标识参数的防冲突指令;
所述根据所述第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令,具体为:所述读卡器从所述第三测试指令中获取包括第一校验值、所述串联级别参数、所述有效数据参数和所述卡标识参数的选择指令。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一测试指令得到包括准备参数的准备指令,具体为:所述读卡器根据所述第一测试指令中的所述准备参数组织包括准备参数的准备指令;
所述根据所述第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令,具体为:所述读卡器根据所述第二测试指令中的所述串联级别参数、所述有效数据参数和所述卡标识参数组织包括所述串联级别参数、所述有效数据参数和所述卡标识参数的防冲突指令;
所述根据所述第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令,具体为:所述读卡器根据所述第三测试指令中的所述串联级别参数、所述有效数据参数和所述卡标识参数组织包括第一校验值、所述串联级别参数、所述有效数据参数和所述卡标识参数的选择指令。
4.根据权利要求3所述的方法,其特征在于,所述准备参数具体为初始化参数或者唤醒参数;所述准备指令包括初始化指令或者唤醒指令;
所述组织包括准备参数的准备指令具体为:若所述准备参数为所述初始化参数,将所述初始化参数作为所述初始化指令;若所述准备参数为所述唤醒参数,将所述唤醒参数作为所述唤醒指令;
所述组织包括所述串联级别参数、所述有效数据参数和所述卡标识参数的防冲突指令具体为:根据所述串联级别参数设置所述防冲突指令的第一个字节上的数据,根据所述有效数据参数设置所述防冲突指令的第二个字节上的数据,根据所述卡标识参数设置所述防冲突指令的第二个字节之后的数据,得到包括所述串联级别参数、所述有效数据参数和所述卡标识参数的所述防冲突指令;
所述组织包括第一校验值、所述串联级别参数、所述有效数据参数和所述卡标识参数的选择指令,具体为:根据所述第三测试指令中的所述串联级别参数、所述有效数据参数和所述卡标识参数计算所述第一校验值,根据所述串联级别参数设置所述选择指令的第一个字节上的数据,根据所述有效数据参数设置所述选择指令的第二个字节上的数据,根据所述卡标识参数设置所述选择指令的第三到第七字节上的数据,根据所述第一校验值设置所述卡标识参数之后的数据,得到包括所述串联级别参数、所述有效数据参数、所述卡标识参数和所述第一校验值的选择指令;
所述组织包括第一校验值、所述串联级别参数、所述有效数据参数和所述卡标识参数的选择指令,或者具体为:根据所述串联级别参数设置所述选择指令的第一个字节上的数据,根据所述有效数据参数设置所述选择指令的第二个字节上的数据,根据所述卡标识参数设置所述选择指令的第三到第七字节上的数据,根据所述第三测试指令中的第一校验值设置所述卡标识参数之后的数据,得到包括所述串联级别参数、所述有效数据参数、所述卡标识参数和所述第一校验值的选择指令。
5.根据权利要求1所述的方法,其特征在于,所述向智能卡发送所述防冲突指令之前还包括:设置防冲突测试;所述向智能卡发送所述防冲突指令之后,还包括获取防冲突测试结果;所述第二测试应答中还包括防冲突测试结果。
6.根据权利要求5所述的方法,其特征在于,所述第二测试指令中包括防冲突测试参数;
所述设置防冲突测试之前还包括:根据所述防冲突测试参数判断是否设置防冲突测试,如果是,则设置防冲突测试,继续;否则,向所述智能卡发送所述防冲突指令,获取来自所述智能卡的防冲突应答,执行步骤s5。
7.根据权利要求5所述的方法,其特征在于,所述步骤s5具体包括:
步骤a1:所述读卡器根据所述防冲突测试结果判断在当前串联级别下是否存在卡片响应冲突,如果是,则执行步骤a2;否则,执行步骤a3;
步骤a2:所述读卡器根据所述防冲突测试结果中的防冲突位置更新有效数据参数,根据所述防冲突位置和所述防冲突应答获取卡标识防冲突码,将所述卡标识参数更新为所述卡标识防冲突码,向所述上位机报告包括所述防冲突测试结果、所述有效数据参数和所述卡标识参数的第二测试应答,返回步骤s1;
步骤a3:所述读卡器将所述卡标识参数更新为防冲突应答,将所述有效数据参数更新为第二预设值,向所述上位机报告包括所述防冲突测试结果、更新后的有效数据参数和更新后的卡标识参数第二测试应答,返回步骤s1。
8.根据权利要求1所述的方法,其特征在于,步骤s5具体为:向所述上位机报告包括所述防冲突应答的第二测试应答,返回步骤s1。
9.根据权利要求1所述的方法,其特征在于,所述步骤s7具体为:向所述上位机报告包括所述选择应答的第三测试应答,返回步骤s1。
10.根据权利要求1所述的方法,其特征在于,所述步骤s7具体包括:
步骤b1:所述读卡器根据选择应答判断智能卡是否处于工作状态,如果是,则向所述上位机报告智能卡处于工作状态,返回步骤s1;否则,执行步骤b2;
步骤b2:所述读卡器将所述串联级别参数更新为下一串联级别值,将所述有效数据参数更新为第一预设值,将卡标识更新为空,向所述上位机报告包括更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答,返回步骤s1。
11.根据权利要求1所述的方法,其特征在于,所述向智能卡发送所述选择指令之前,还包括:设置应答校验测试;所述第三测试应答中包括:应答校验测试结果;
所述根据所述选择应答向上位机报告第三测试应答之前还包括:获取应答校验测试结果。
12.根据权利要求11所述的方法,其特征在于,所述第三测试指令中还包括:应答校验测试参数;
所述设置应答校验测试之前,还包括:根据所述应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送所述选择指令,获取来自所述智能卡的选择应答,执行步骤s7。
13.根据权利要求1所述的方法,其特征在于,所述向智能卡发送所述准备指令和/或所述防冲突指令和/或所述选择指令之前,还包括:设置数据传输测试;
若所述向智能卡发送所述准备指令之前,设置数据传输测试;则所述第一测试应答中包括:数据传输测试结果;所述根据所述准备应答向上位机报告第一测试应答之前还包括:获取数据传输测试结果;
若所述向智能卡发送所述防冲突指令之前,设置数据传输测试;则所述第二测试应答中包括:数据传输测试结果;根据所述防冲突应答和所述防冲突测试结果向上位机报告第二测试应答之前还包括:获取数据传输测试结果;
若所述向智能卡发送所述选择指令之前,设置数据传输测试;则所述第三测试应答中包括:数据传输测试结果;根据所述选择应答向上位机报告第三测试应答之前还包括:获取数据传输测试结果。
14.根据权利要求13所述的方法,其特征在于,所述第一测试指令中和/或所述第二测试指令中和/或第三测试指令中包括:数据传输测试参数;
若所述第一测试指令中包括数据传输测试参数,则所述设置传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述准备指令,获取来自所述智能卡的准备应答,执行步骤s3;
若所述第二测试指令中包括数据传输测试参数,则所述设置传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述防冲突指令,获取来自所述智能卡的防冲突应答,执行步骤s5;
若所述第三测试指令中包括数据传输测试参数,则所述设置传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述选择指令,获取来自所述智能卡的选择应答,执行步骤s7。
15.根据权利要求1所述的方法,其特征在于,所述步骤s1中还包括:当接收到来自上位机的第四测试指令后,执行步骤s8;当接收到来自上位机的第五测试指令后,执行步骤s10;
步骤s8:所述读卡器根据所述第四测试指令得到获取通讯数据指令;向智能卡发送所述获取通讯数据指令;获取来自所述智能卡的通讯数据应答;
步骤s9:所述读卡器根据所述通讯数据应答向上位机报告第四测试应答;
步骤s10:所述读卡器根据第五测试指令得到通讯协商指令;向智能卡发送通讯协商指令;获取来自所述智能卡的通讯协商应答;
步骤s11:所述读卡器根据所述通讯协商应答,向上位机报告第五测试应答;返回步骤s1。
16.根据权利要求15所述的方法,其特征在于,所述根据所述第四测试指令得到获取通讯数据指令,具体为:所述读卡器根据第三预设值设置所述获取通讯数据指令中的第一字节上的数据,根据所述第四测试指令中的第一参数和第二参数设置获取通讯数据指令中的第二字节上的数据;根据所述获取通讯数据指令中的第一字节和第二字节上的数据计算第二校验值,将所述第二校验值设置在所述获取通讯数据指令中的第二字节后,得到获取通讯数据指令;
所述根据第五测试指令得到通讯协商指令,具体为:所述读卡器根据所述第五测试指令中的第二参数设置通讯协商指令中的第一字节上的数据;根据所述第五测试指令中的第四参数设置所述通讯协商指令中的第二字节上的数据;根据所述第五测试指令中的第五参数设置所述通讯协商指令中的第三字节上的数据,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令。
17.根据权利要求15所述的方法,其特征在于,所述根据所述第四测试指令得到获取通讯数据指令,具体为:从所述第四测试指令中获取获取通讯数据指令;
所述根据第五测试指令得到通讯协商指令,具体为:从所述第五测试指令中获取通讯协商指令。
18.根据权利要求15所述的方法,其特征在于,所述向智能卡发送所述获取通讯数据指令和/或所述通讯协商指令之前,还包括:设置应答校验测试;
若所述读卡器向智能卡发送所述获取通讯数据指令之前,设置应答校验测试;则所述第四测试应答中包括:应答校验测试结果;所述根据所述通讯数据应答向上位机报告第四测试应答之前还包括:获取应答校验测试结果;
若所述读卡器向智能卡发送通讯协商指令之前,设置应答校验测试;所述第五测试应答中包括:应答校验测试结果;所述根据所述通讯协商应答向上位机报告第五测试应答之前还包括:获取应答校验测试结果。
19.根据权利要求18所述的方法,其特征在于,所述第四测试指令中和/或所述第五测试指令中包括:还包括:应答校验测试参数;
若所述第四测试指令中包括应答校验测试参数,则所述设置应答校验测试之前,还包括:根据所述应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送所述获取通讯数据指令,获取来自所述智能卡的通讯数据应答;执行步骤s9;
若所述第五测试指令中包括应答校验测试参数,则所述设置应答校验测试之前,还包括:根据所述应答校验测试参数判断是否设置应答校验测试,如果是,则设置应答校验测试,继续;否则,向智能卡发送所述通讯协商指令,获取来自所述智能卡的通讯协商应答;执行步骤s11。
20.根据权利要求15所述的方法,其特征在于,所述向智能卡发送所述准备指令和/或所述防冲突指令和/或所述选择指令和/或所述获取通讯数据指令和/或所述通讯协商指令之前,还包括:设置数据传输测试;
若所述向智能卡发送所述准备指令之前,设置数据传输测试;则所述第一测试应答中包括:数据传输测试结果;所述根据所述准备应答向上位机报告第一测试应答之前还包括:获取数据传输测试结果;
若所述向智能卡发送所述防冲突指令之前,设置数据传输测试;则所述第二测试应答中包括:数据传输测试结果;根据所述防冲突应答和所述防冲突测试结果向上位机报告第二测试应答之前还包括:获取数据传输测试结果;
若所述向智能卡发送所述选择指令之前,设置数据传输测试;则所述第三测试应答中包括:数据传输测试结果;根据所述选择应答向上位机报告第三测试应答之前还包括:获取数据传输测试结果;
若所述向智能卡发送所述获取通讯数据指令之前,设置数据传输测试;则所述第四测试应答中包括:数据传输测试结果;所述根据所述通讯数据应答向上位机报告第四测试应答,之前还包括:获取数据传输测试结果;
若所述向智能卡发送通讯协商指令之前,设置数据传输测试;则所述第五测试应答中包括:数据传输测试结果;所述根据所述通讯协商应答向上位机报告第五测试应答,之前还包括:获取数据传输测试结果。
21.根据权利要求20所述的方法,其特征在于,所述第一测试指令中和/或所述第二测试指令中和/或第三测试指令中和/或所述第四测试指令中和/或所述第五测试指令中包括:数据传输测试参数;
若所述第一测试指令中包括数据传输测试参数,则所述设置数据传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述准备指令,获取来自所述智能卡的准备应答,执行步骤s3;
若所述第二测试指令中包括数据传输测试参数,则所述设置数据传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述防冲突指令,获取来自所述智能卡的防冲突应答,执行步骤s5;
若所述第三测试指令中包括数据传输测试参数,则所述设置数据传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述选择指令,获取来自所述智能卡的选择应答,执行步骤s7;
若所述第四测试指令中包括数据传输测试参数,则所述设置数据传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述获取通讯数据指令,获取来自所述智能卡的通讯数据应答;执行步骤s9;
若所述第五测试指令中包括数据传输测试参数,则所述设置数据传输测试之前,还包括:根据所述数据传输测试参数判断是否设置数据传输测试,如果是,则设置数据传输测试,继续;否则,向智能卡发送所述通讯协商指令,获取来自所述智能卡的通讯协商应答;执行步骤s11。
22.根据权利要求1所述的方法,其特征在于,所述步骤s1中还包括:当接收到来自上位机的第六测试指令后,执行步骤s12;
步骤s12:所述读卡器根据所述第六测试指令得到包括挂起参数的第六测试指令;向智能卡发送第六测试指令;获取来自智能卡的挂起应答;
步骤s13:所述读卡器根据挂起应答向上位机报告第六测试应答。
23.一种测试智能卡的读卡器,其特征在于,包括:第一接收模块、第二接收模块、第三接收模块、准备指令模块、防冲突指令模块、选择指令模块、第一发送模块、第二发送模块、第三发送模块、第一获取模块、第二获取模块、第三获取模块、第一报告模块、第二报告模块和第三报告模块;
所述第一接收模块,用于接收来自上位机的第一测试指令;
所述第二接收模块,用于接收来自上位机的第二测试指令;
所述第三接收模块,用于接收来自上位机的第三测试指令;
所述准备指令模块,用于根据所述第一接收模块接收到的所述第一测试指令得到包括准备参数的准备指令;
所述防冲突指令模块,用于根据所述第二接收模块接收到的所述第二测试指令得到包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
所述选择指令模块,用于根据所述第三接收模块接收到的所述第三测试指令得到包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令;
所述第一发送模块,用于向智能卡发送所述准备指令;
所述第二发送模块,用于向智能卡发送所述防冲突指令;
所述第三发送模块,用于向智能卡发送所述选择指令;
所述第一获取模块,用于获取来自智能卡的准备应答;
所述第二获取模块,用于获取来自智能卡的防冲突应答;
所述第三获取模块,用于获取来自智能卡的选择应答;
所述第一报告模块,用于根据所述准备应答向所述上位机报告第一测试应答;
所述第二报告模块,用于根据所述防冲突应答向所述上位机报告第二测试应答;
所述第三报告模块,用于根据所述选择应答向所述上位机报告第三测试应答。
24.根据权利要求23所述的读卡器,其特征在于,所述准备指令模块,具体用于从所述第一接收模块接收到的第一测试指令中获取包括准备参数的准备指令;
所述防冲突指令模块,具体用于从所述第二接收模块接收到的所述第二测试指令获取包括串联级别参数、有效数据参数和卡标识参数的防冲突指令;
所述选择指令模块,用于从所述第三接收模块接收到的所述第三测试指令获取包括第一校验值、串联级别参数、有效数据参数和卡标识参数的选择指令。
25.根据权利要求23所述的读卡器,其特征在于,所述准备指令模块具体包括:第一组织单元;所述防冲突指令模块具体包括:第二组织单元;所述选择指令模块具体包括:第三组织单元;
所述第一组织单元,用于根据所述第一接收模块接收到的所述测试指令中的所述准备参数组织包括准备参数的准备指令;
所述第二组织单元,用于根据所述第二接收模块接收到的所述第二测试指令中的所述串联级别参数、所述有效数据参数和所述卡标识参数组织包括所述串联级别参数、所述有效数据参数和所述卡标识参数的防冲突指令;
所述第三组织单元,用于根据所述第三接收模块接收到的所述第三测试指令中的所述串联级别参数、所述有效数据参数和所述卡标识参数组织包括第一校验值、所述串联级别参数、所述有效数据参数和所述卡标识参数的选择指令。
26.根据权利要求25所述的读卡器,其特征在于,所述准备参数具体为初始化参数或者唤醒参数;所述准备指令包括初始化指令或者唤醒指令;
所述第一组织单元,具体用于若所述准备参数为所述初始化参数,将所述初始化参数作为所述初始化指令;若所述准备参数为所述唤醒参数,将所述唤醒参数作为所述唤醒指令;
所述第二组织单元,具体用于根据所述串联级别参数设置所述防冲突指令的第一个字节上的数据,根据所述有效数据参数设置所述防冲突指令的第二个字节上的数据,根据所述卡标识参数设置所述防冲突指令的第二个字节之后的数据,得到包括所述串联级别参数、所述有效数据参数和所述卡标识参数的所述防冲突指令;
所述第三组织单元,具体用于根据所述第三测试指令中的所述串联级别参数、所述有效数据参数和所述卡标识参数计算所述第一校验值,根据所述串联级别参数设置所述选择指令的第一个字节上的数据,根据所述有效数据参数设置所述选择指令的第二个字节上的数据,根据所述卡标识参数设置所述选择指令的第三到第七字节上的数据,根据所述第一校验值设置所述卡标识参数之后的数据,得到包括所述串联级别参数、所述有效数据参数、所述卡标识参数和所述第一校验值的选择指令;
所述第三组织单元,或者具体用于根据所述串联级别参数设置所述选择指令的第一个字节上的数据,根据所述有效数据参数设置所述选择指令的第二个字节上的数据,根据所述卡标识参数设置所述选择指令的第三到第七字节上的数据,根据所述第三测试指令中的第一校验值设置所述卡标识参数之后的数据,得到包括所述串联级别参数、所述有效数据参数、所述卡标识参数和所述第一校验值的选择指令。
27.根据权利要求23所述的读卡器,其特征在于,还包括:第一设置模块;
所述第一设置模块,用于设置防冲突测试;
所述第三获取模块,还用于获取防冲突测试结果;
所述第二报告模块,具体用于根据所述防冲突应答向所述上位机报告包括所述防冲突测试结果的第二测试应答。
28.根据权利要求27所述的读卡器,其特征在于,还包括第一判断模块;所述第二测试指令中包括防冲突测试参数;
所述第一判断模块,用于根据所述防冲突测试参数判断是否设置防冲突测试;
所述第一设置模块,具体用于当所述第一判断模块判断为是后,设置防冲突测试;
所述第二发送模块,具体用于当所述第一设置模块设置防冲突测试后,向所述智能卡发送所述防冲突指令;当所述第一判断模块判断为否后,向所述智能卡发送所述防冲突指令。
29.根据权利要求27所述的读卡器,其特征在于,所述第二报告模块,具体包括:第一判断单元、第一更新单元、第二更新单元、第一报告单元和第二报告单元;
所述第一判断单元,用于根据所述第二获取模块获取到的防冲突测试结果判断在当前串联级别下是否存在卡片响应冲突;
所述第一更新单元,用于当所述第一判断单元判断为是后,根据所述防冲突测试结果中的防冲突位置更新有效数据参数,根据所述防冲突位置和所述防冲突应答获取卡标识防冲突码,将所述卡标识参数更新为所述卡标识防冲突码;
所述第一报告单元,用于向所述上位机报告包括所述防冲突测试结果、第一更新单元更新的所述有效数据参数和所述卡标识参数的第二测试应答;
所述第二更新单元,用于当所述第一判断单元判断为否后,将所述卡标识参数更新为防冲突应答,将所述有效数据参数更新为第二预设值;
所述第二报告单元,用于向所述上位机报告包括所述第二更新单元更新的所述防冲突测试结果、更新后的有效数据参数和更新后的卡标识参数第二测试应答。
30.根据权利要求23所述的读卡器,其特征在于,所述第二报告模块,具体用于向所述上位机报告包括所述第二获取模块获取到的所述防冲突应答的第二测试应答。
31.根据权利要求23所述的读卡器,其特征在于,所述第三报告模块,具体用于向所述上位机报告包括所述第三获取模块获取到的所述选择应答的第三测试应答。
32.根据权利要求23所述的读卡器,其特征在于,所述第三报告模块,具体包括:第二判断单元、第三更新单元、第三报告单元和第四报告单元;
所述第二判断单元,用于根据所述第三获取模块获取到的所述选择应答判断智能卡是否处于工作状态;
所述第三报告单元,用于当所述第二判断单元判断为是后,向所述上位机报告智能卡处于工作状态;
所述第三更新单元,用于当所述第二判断单元判断为否后,将所述串联级别参数更新为下一串联级别值,将所述有效数据参数更新为第一预设值,将卡标识更新为空;
所述第四报告单元,用于向所述上位机报告包括所述第三更新单元更新后的串联级别参数、有效数据参数和卡标识参数的第三测试应答。
33.根据权利要求23所述的读卡器,其特征在于,还包括:第二设置模块;
所述第二设置模块,用于设置应答校验测试;
所述第三获取模块,还用于获取应答校验测试结果;
所述第三报告模块,具体用于根据所述选择应答向所述上位机报告包括所述应答校验测试结果的第三测试应答。
34.根据权利要求33所述的读卡器,其特征在于,还包括:第二判断模块;所述第三测试指令中还包括:应答校验测试参数;
所述第二判断模块,用于根据所述应答校验测试参数判断是否设置应答校验测试;
所述第二设置模块,具体用于当所述第二判断模块判断为是后,设置应答校验测试;
所述第三发送模块,具体用于当所述第二设置模块设置应答校验测试后,向智能卡发送所述选择指令;当所述第二判断模块判断为否后,向智能卡发送所述选择指令。
35.根据权利要求23所述的读卡器,其特征在于,还包括:第三设置模块;
所述第三设置模块,用于设置数据传输测试;
若所述第三设置模块,具体用于当所述第一发送模块向所述智能卡发送所述准备指令之前,设置数据传输测试;则:所述第一获取模块还用于获取数据传输测试结果;所述第一报告模块具体用于根据所述准备应答向所述上位机报告包括所述数据传输测试结果的第一测试应答;
若所述第三设置模块,具体用于当所述第二发送模块向智能卡发送所述防冲突指令之前,设置数据传输测试;则:所述第二获取模块还用于获取数据传输测试结果;所述第二报告模块具体用于根据所述防冲突应答向所述上位机报告包括所述数据传输测试结果的第二测试应答;
若所述第三设置模块,具体用于当所述第三发送模块向智能卡发送所述选择指令之前,设置数据传输测试;则:所述第三获取模块还用于获取数据传输测试结果;所述第三报告模块具体用于根据所述选择应答向所述上位机报告包括所述数据传输测试结果的第三测试应答。
36.根据权利要求35所述的读卡器,其特征在于,还包括:第三判断模块;所述第一测试指令中和/或所述第二测试指令中和/或第三测试指令中包括:数据传输测试参数;
所述第三判断模块,用于根据所述数据传输测试参数判断是否设置数据传输测试;
所述第三设置模块,具体用于若所述第一测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;若所述第二测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;若所述第三测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;
所述第一发送模块,具体用于当所述第三设置模块设置数据传输测试后,向所述智能卡发送所述准备指令;若所述第一测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述准备指令;
所述第二发送模块,具体用于当所述第三设置模块设置数据传输测试后,向所述智能卡发送所述防冲突指令;若所述第二测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述防冲突指令;
所述第三发送模块,具体用于当所述第三设置模块设置数据传输测试后,用于向所述智能卡发送所述选择指令;若所述第三测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述选择指令。
37.根据权利要求23所述的读卡器,其特征在于,还包括:第四接收模块、第五接收模块、获取通讯数据指令模块、通讯协商指令模块、第四获取模块、第五获取模块、第四发送模块、第五发送模块、第四报告模块和第五报告模块;
所述第四接收模块,用于接收来自上位机的第四测试指令;
所述第五接收模块,用于接收来自上位机的第五测试指令;
所述获取通讯数据指令模块,用于根据所述第四测试指令得到获取通讯协商参数指令;
所述第四发送模块,用于向智能卡发送所述获取通讯数据指令;
所述第四获取模块,用于获取来自所述智能卡的通讯数据应答;
所述第四报告模块,用于根据所述通讯数据应答向上位机报告第四测试应答;
所述通讯协商指令模块,用于根据所述第五接收模块接收到的第五测试指令得到通讯协商指令;
所述第五发送模块,用于向智能卡发送通讯协商指令;
所述第五获取模块,用于获取来自所述智能卡的通讯协商应答;
所述第五报告模块,用于根据所述通讯协商应答向上位机报告第五测试应答。
38.根据权利要求37所述的读卡器,其特征在于,所述获取通讯数据指令模块,具体用于根据第三预设值设置所述获取通讯数据指令中的第一字节上的数据,根据所述第四测试指令中的第一参数和第二参数设置获取通讯数据指令中的第二字节上的数据;根据所述获取通讯数据指令中的第一字节和第二字节上的数据计算第二校验值,将所述第二校验值设置在所述获取通讯数据指令中的第二字节后,得到获取通讯数据指令;
所述通讯协商指令模块,具体用于根据所述第五测试指令中的第二参数设置通讯协商指令中的第一字节上的数据;根据所述第五测试指令中的第四参数设置所述通讯协商指令中的第二字节上的数据;根据所述第五测试指令中的第五参数设置所述通讯协商指令中的第三字节上的数据,根据通讯协商指令中的第一字节、第二字节和第三字节上的数据计算第三校验值,将第三校验值设置在通讯协商指令中的第三字节后,得到通讯协商指令。
39.根据权利要求37所述的读卡器,其特征在于,所述获取通讯数据指令模块,具体用于从所述第四测试指令中获取获取通讯数据指令;
所述通讯协商指令模块,具体用于从所述第五测试指令中获取通讯协商指令。
40.根据权利要求37所述读卡器,其特征在于,还包括:第二设置模块;所述第二设置模块,用于设置应答校验测试;
若所述第二设置模块,具体用于在所述第四发送模块向智能卡发送所述获取通讯数据指令之前,设置应答校验测试;则:所述第四获取模块还用于获取应答校验测试结果;所述第四报告模块,具体用于根据所述通讯数据应答向上位机报告包括所述应答校验测试结果的第四测试应答;
若所述第二设置模块,具体用于在所述第五发送模块向智能卡发送通讯协商指令之前,设置应答校验测试;则所述第五获取模块还用于获取应答校验测试结果;所述第五报告模块,具体用于根据所述通讯协商应答向上位机报告包括所述应答校验测试结果的第五测试应答。
41.根据权利要求40所述的读卡器,其特征在于,还包括:第二判断模块;所述第四测试指令中和/或所述第五测试指令中包括:还包括:应答校验测试参数;
所述第二判断模块,用于根据所述应答校验测试参数判断是否设置应答校验测试;
所述第二设置模块,具体用于若所述第四测试指令中包括所述应答校验测试参数且当所述第二判断模块判断为是后,设置应答校验测试;若所述第五测试指令中包括所述应答校验测试参数且当所述第二判断模块判断为是后,设置应答校验测试;
所述第四发送模块,具体用于当所述第二设置模块设置应答校验测试后,向所述智能卡发送所述获取通讯数据指令;若所述第四测试指令中包括所述应答校验测试参数且当所述第二判断模块判断为否后,向所述智能卡发送所述获取通讯数据指令;
所述第五发送模块,具体用于当所述第二设置模块设置应答校验测试后,向所述智能卡发送所述通讯协商指令;若所述第五测试指令中包括所述应答校验测试参数且当所述第二判断模块判断为否后,向所述智能卡发送所述通讯协商指令。
42.根据权利要求37所述的读卡器,其特征在于,还包括:第三设置模块;
所述第三设置模块,用于设置数据传输测试;
若所述第三设置模块,具体用于当所述第一发送模块向所述智能卡发送所述准备指令之前,设置数据传输测试;则:所述第一获取模块还用于获取数据传输测试结果;所述第一报告模块具体用于根据所述准备应答向所述上位机报告包括所述数据传输测试结果的第一测试应答;
若所述第三设置模块,具体用于当所述第二发送模块向智能卡发送所述防冲突指令之前,设置数据传输测试;则:所述第二获取模块还用于获取数据传输测试结果;所述第二报告模块具体用于根据所述防冲突应答向所述上位机报告包括所述数据传输测试结果的第二测试应答;
若所述第三设置模块,具体用于当所述第三发送模块向智能卡发送所述选择指令之前,设置数据传输测试;则:所述第三获取模块还用于获取数据传输测试结果;所述第三报告模块具体用于根据所述选择应答向所述上位机报告包括所述数据传输测试结果的第三测试应答;
若所述第三设置模块,具体用于当所述第四发送模块向智能卡发送所述获取通讯数据指令之前,设置数据传输测试;则:所述第四获取模块还用于获取数据传输测试结果;所述第四报告模块具体用于根据所述通讯数据应答向上位机报告包括所述数据传输测试结果的第四测试应答;
若所述第三设置模块,具体用于当所述第五发送模块向智能卡发送通讯协商指令之前,设置数据传输测试;则所述第五获取模块还用于获取数据传输测试结果;所述第五报告模块具体用于根据所述通讯协商应答向上位机报告包括所述数据传输测试结果的第五测试应答。
43.根据权利要求42所述的读卡器,其特征在于,还包括:第三判断模块;所述第一测试指令中和/或所述第二测试指令中和/或第三测试指令中和/或所述第四测试指令中和/或所述第五测试指令中包括:数据传输测试参数;
所述第三判断模块,用于根据所述数据传输测试参数判断是否设置数据传输测试;
所述第三设置模块,具体用于若所述第一测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;若所述第二测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;若所述第三测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;若所述第四测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;若所述第五测试指令中包括数据传输测试参数且当所述第三判断模块判断为是后,设置数据传输测试;
所述第一发送模块,具体用于当所述第三设置模块设置数据传输测试后,向所述智能卡发送所述准备指令;若所述第一测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述准备指令;
所述第二发送模块,具体用于当所述第三设置模块设置数据传输测试后,向所述智能卡发送所述防冲突指令;若所述第二测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述防冲突指令;
所述第三发送模块,具体用于当所述第三设置模块设置数据传输测试后,向所述智能卡发送所述选择指令;若所述第三测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述选择指令;
所述第四发送模块,具体用于当所述第三设置模块设置数据传输测试后,向所述智能卡发送所述获取通讯数据指令;若所述第四测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向所述智能卡发送所述获取通讯数据指令;
所述第五发送模块,具体用于当所述第三设置模块设置数据传输测试后,向智能卡发送通讯协商指令;若所述第五测试指令中包括数据传输测试参数且当所述第三判断模块判断为否后,向智能卡发送通讯协商指令。
44.根据权利要求23所述的读卡器,其特征在于,还包括:第六接收模块、挂起指令模块、第六发送模块、第六获取模块和第六报告模块;
所述第六接收模块,用于接收来自上位机的第六测试指令;
所述挂起指令模块,用于根据所述第六接收模块接收到的所述第六测试指令得到包括挂起参数的第六测试指令;
所述第六发送模块,用于向智能卡发送第六测试指令;
所述第六获取模块,用于获取来自智能卡的挂起应答;
所述第六报告模块,用于根据挂起应答向上位机报告第六测试应答。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710101618.0A CN106934310B (zh) | 2017-02-24 | 2017-02-24 | 一种测试智能卡的方法及读卡器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710101618.0A CN106934310B (zh) | 2017-02-24 | 2017-02-24 | 一种测试智能卡的方法及读卡器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106934310A true CN106934310A (zh) | 2017-07-07 |
CN106934310B CN106934310B (zh) | 2019-09-13 |
Family
ID=59423120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710101618.0A Active CN106934310B (zh) | 2017-02-24 | 2017-02-24 | 一种测试智能卡的方法及读卡器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106934310B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108288008A (zh) * | 2018-02-08 | 2018-07-17 | 飞天诚信科技股份有限公司 | 一种卡片激活的方法及装置 |
CN109542699A (zh) * | 2018-10-31 | 2019-03-29 | 北京中电华大电子设计有限责任公司 | 一种7816接口唤醒智能卡芯片Standby的验证方法 |
CN110069952A (zh) * | 2019-03-27 | 2019-07-30 | 百富计算机技术(深圳)有限公司 | 终端测试方法、装置和终端测试系统 |
CN113342653A (zh) * | 2021-06-07 | 2021-09-03 | 星汉智能科技股份有限公司 | 基于密钥协商的5g智能卡测试方法、装置及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005120006A1 (en) * | 2004-06-02 | 2005-12-15 | Elisa Oyj | Method for observing operation of a smart card, the smart card for a terminal, and an intrusion protection system |
CN101023434A (zh) * | 2004-07-15 | 2007-08-22 | 万事达卡国际股份有限公司 | 非接触式卡支付系统的冲突检测和避免方案 |
CN102722687A (zh) * | 2012-05-30 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种检测非接触式cpu卡片离开射频场的方法 |
CN103400096A (zh) * | 2013-08-20 | 2013-11-20 | 东信和平科技股份有限公司 | 双用读卡器,nfc-sim卡读卡器及其测试方法 |
CN104869534A (zh) * | 2015-05-22 | 2015-08-26 | 东信和平科技股份有限公司 | 一种基于手机应用远程检测智能卡的方法及系统 |
CN104915616A (zh) * | 2015-05-15 | 2015-09-16 | 飞天诚信科技股份有限公司 | 一种访问智能卡的方法和读卡器 |
CN105068910A (zh) * | 2015-08-13 | 2015-11-18 | 大唐微电子技术有限公司 | 一种智能卡的测试方法和装置 |
-
2017
- 2017-02-24 CN CN201710101618.0A patent/CN106934310B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005120006A1 (en) * | 2004-06-02 | 2005-12-15 | Elisa Oyj | Method for observing operation of a smart card, the smart card for a terminal, and an intrusion protection system |
CN101023434A (zh) * | 2004-07-15 | 2007-08-22 | 万事达卡国际股份有限公司 | 非接触式卡支付系统的冲突检测和避免方案 |
CN102722687A (zh) * | 2012-05-30 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种检测非接触式cpu卡片离开射频场的方法 |
CN103400096A (zh) * | 2013-08-20 | 2013-11-20 | 东信和平科技股份有限公司 | 双用读卡器,nfc-sim卡读卡器及其测试方法 |
CN104915616A (zh) * | 2015-05-15 | 2015-09-16 | 飞天诚信科技股份有限公司 | 一种访问智能卡的方法和读卡器 |
CN104869534A (zh) * | 2015-05-22 | 2015-08-26 | 东信和平科技股份有限公司 | 一种基于手机应用远程检测智能卡的方法及系统 |
CN105068910A (zh) * | 2015-08-13 | 2015-11-18 | 大唐微电子技术有限公司 | 一种智能卡的测试方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108288008A (zh) * | 2018-02-08 | 2018-07-17 | 飞天诚信科技股份有限公司 | 一种卡片激活的方法及装置 |
CN108288008B (zh) * | 2018-02-08 | 2021-12-28 | 飞天诚信科技股份有限公司 | 一种卡片激活的方法及装置 |
CN109542699A (zh) * | 2018-10-31 | 2019-03-29 | 北京中电华大电子设计有限责任公司 | 一种7816接口唤醒智能卡芯片Standby的验证方法 |
CN110069952A (zh) * | 2019-03-27 | 2019-07-30 | 百富计算机技术(深圳)有限公司 | 终端测试方法、装置和终端测试系统 |
CN110069952B (zh) * | 2019-03-27 | 2021-07-13 | 百富计算机技术(深圳)有限公司 | 终端测试方法、装置和终端测试系统 |
US12118423B2 (en) | 2019-03-27 | 2024-10-15 | Shenzhen Zolon Technology Co., Ltd. | Method, apparatus, and system for testing terminal |
CN113342653A (zh) * | 2021-06-07 | 2021-09-03 | 星汉智能科技股份有限公司 | 基于密钥协商的5g智能卡测试方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106934310B (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106934310A (zh) | 一种测试智能卡的方法及读卡器 | |
CN103248420B (zh) | 检测光纤连接的方法、标识光纤连接的方法及系统和装置 | |
JPS63502150A (ja) | 双方向デ−タ遠隔測定システム | |
CN103458004B (zh) | 物联网设备签约信息变更方法和设备 | |
CN103677671A (zh) | 一种电口模块的数据读写方法和系统 | |
CN104217566A (zh) | Ii型采集器的智能搜表方法与系统 | |
CN107589920A (zh) | 用于芯片的复位方法、电子设备、存储介质及设备 | |
CN206523899U (zh) | 一种电力备件的管理系统 | |
CN205881158U (zh) | 一种用电现场使用的终端测试设备 | |
CN106598895A (zh) | 一种功能小板识别系统和方法 | |
CN202998098U (zh) | 光模块端口测试装置 | |
CN109618364A (zh) | 终端上行通讯模块检测系统及检测方法 | |
CN109428783A (zh) | 网络设备测试方法及装置 | |
CN103634163B (zh) | 一种测试采集终端远程通信单元互换性的方法 | |
CN108037965A (zh) | 一种读写目标芯片的方法及装置 | |
CN103856411A (zh) | 路由器的uart接口连接的切换系统 | |
CN106802645A (zh) | 一种fpga单粒子翻转故障模拟系统和方法 | |
CN107994957A (zh) | 一种无线网络设备信号小范围覆盖方法 | |
CN107864199A (zh) | 物联网通信方法、装置及物联网通信的实现装置 | |
CN102710025A (zh) | 一种电力系统通信装置及方法 | |
CN106533508A (zh) | 一种基于物联网的通信设备及通信方法 | |
CN206948301U (zh) | 一种eSIM卡的切换装置 | |
CN102594514B (zh) | 信令链路接入和识别的方法 | |
CN109324553A (zh) | 一种标准化检测模块接口 | |
CN108614491A (zh) | 一种可编程逻辑控制器通讯系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |