Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR ENHANCING STABILITY OF COMMUNICATIONS BETWEEN CONTACTLESS CARD AND CARD READER
Document Type and Number:
WIPO Patent Application WO/2014/026491
Kind Code:
A1
Abstract:
Disclosed is a method for enhancing the stability of communications between a contactless card and a card reader, which belongs to the technical field of communications. The method comprises: a card reader starting up timeout timing and a receiver, and waiting to receive data; when it has not timed out yet and a subcarrier has been detected, stopping the timeout timing; receiving the data and judging whether there is a frame error in a received data frame or not, if yes, discarding the data frame and continuing timeout timing; otherwise judging whether the CRC check and/or the parity check of the data frame is correct or not; if it is correct, judging whether there are other errors in the data frame or not, if yes, discarding the data frame and continuing timeout timing; otherwise switching off the receiver, and sending the received data to an upper computer; if it is incorrect, judging whether the length of the data frame is smaller than a preset byte or not, if yes, discarding the data frame and continuing timeout timing; otherwise judging whether the data frame is complete or not, if yes, switching off the receiver; otherwise discarding the data frame and continuing timeout timing.

Inventors:
LU ZHOU (CN)
YU HUAZHANG (CN)
Application Number:
PCT/CN2013/075258
Publication Date:
February 20, 2014
Filing Date:
May 07, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FEITIAN TECHNOLOGIES CO LTD (CN)
International Classes:
G06F3/044
Foreign References:
CN101894246A2010-11-24
CN1336619A2002-02-20
CN102156828A2011-08-17
US6585164B12003-07-01
CN102880842A2013-01-16
Attorney, Agent or Firm:
UNITALEN ATTORNEYS AT LAW (CN)
北京集佳知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种增强非接触卡与读卡器通讯稳定性的方法, 其特征在 于, 包括:

步骤 a: 读卡器启动超时计时和接收器, 等待接收卡片返回的 数据;

步骤 b: 判断是否超时, 是则关闭接收器, 向上位机发送超时 错误提示, 否则执行步骤 c;

步骤 c: 判断是否检测到副载波, 是则停止超时计时, 接收数 据帧, 执行步骤 d, 否则返回执行步骤 b, 其中, 所述副载波为读 卡器检测到的外界的载波信号;

步骤 d: 判断接收到的数据帧是否存在帧错误, 是则抛弃所述 接收到的数据帧, 继续超时计时, 返回执行步骤 b, 否则执行步骤 e;

步骤 e: 判断所述接收到的数据帧的 CRC校验和 /或奇偶校验 是否均正确, 是则执行步骤 h, 否则执行步骤 f;

步骤 f: 判断所述接收到的数据帧的长度是否小于预设字节, 是则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 b, 否则执行步骤 g;

步骤 g:判断所述接收到的数据帧是否完整,是则关闭接收器, 向上位机发送传输错误提示, 否则抛弃所述接收到的数据帧, 继续 超时计时, 返回执行步骤 b;

步骤 h: 判断所述接收到的数据帧是否存在其他错误, 是则抛 弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 b, 否则关 闭接收器, 将接收到的卡片返回的数据发送给上位机。

2、 根据权利要求 1所述的方法, 其特征在于, 所述步骤 f替 换为: 判断所述接收到的数据帧是否完整, 是则执行步骤 g, 否则 抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 b;

相应地, 所述步骤 g替换为: 判断所述接收到的数据帧的长度 是否小于预设字节,是则抛弃所述接收到的数据帧,继续超时计时, 返回执行步骤 b,否则关闭接收器,向上位机发送传输错误的提示。

3、 根据权利要 1所述的方法, 其特,在于, 所述帧错误包 收到的数据帧为空帧。

4、 根据权利要 2所述的方法, 其特,在于, 所述帧错误包 收到的数据帧为空帧。

5、 根据权利要求 1所述的方法, 其特征在于, 所述判断所述 接收到的数据帧是否完整具体为: 判断所述接收到的数据帧的位数 是否为 8的整数倍, 若为 8的整数倍则所述接收到的数据帧完整, 若不为 8的整数倍则所述接收到的数据帧不完整。

6、 根据权利要求 2所述的方法, 其特征在于, 所述判断所述 接收到的数据帧是否完整具体为: 判断所述接收到的数据帧的位数 是否为 8的整数倍, 若为 8的整数倍则所述接收到的数据帧完整, 若不为 8的整数倍则所述接收到的数据帧不完整。

7、 根据权利要求 1所述的方法, 其特征在于, 所述其他错误 包括: 数据帧的长度超过协议规定的长度或少于协议规定的最短长 度。

8、 根据权利要求 1所述的方法, 其特征在于:

所述向上位机发送超时错误提示具体为以 USB 中断管道方式 向上位机发 i ^时错误提示;

所述向上位机发送传输错误提示具体为以 USB 中断管道方式 向上位机发送传输错误提示;

所述将接收到的卡片返回的数据发送给上位机具体为: 将接收 到的卡片返回的数据以 USB中断管道方式发送给上位机。

9、 根据权利要求 1所述的方法, 其特征在于, 所述读卡器启 动超时计时和接收器之前还包括: 读卡器上电初始化, 待接收到有效指令后判断指令类型: 若所述有效指令为通知寻卡指令则执行寻卡操作并判断寻卡 操作是否成功, 若成功则向卡片发送请求选择应答指令, 并在接收 到卡片返回的选择应答响应时将所述选择应答指令发送给上位机, 将卡片在射频场响应以 USB 中断管道方式通知上位机; 若不成功 则将卡片离开射频场响应以 USB中断管道方式通知上位机;

若所述有效指令为 APDU指令则按指定格式向卡片发送所述 APDU指令, 执行所述步骤 a;

若所述有效指令为扩展指令则执行所述扩展指令并将操作结 果以 USB中断管道方式发送给上位机。

10、 一种增强非接触卡与读卡器通讯稳定性的方法, 其特征在 于包括:

步骤 A: 读卡器启动超时计时和接收器, 等待接收卡片返回的 数据;

步骤 B: 判断是否超时, 是则关闭接收器, 向上位机发送超时 错误提示, 否则执行步骤 C;

步骤 C: 判断是否检测到副载波, 是则停止超时计时, 接收数 据帧, 执行步骤 D, 否则返回执行步骤 B, 其中, 所述副载波为读 卡器检测到的外界的载波信号;

步骤 D: 判断接收到的数据帧是否存在帧错误, 是则抛弃所述 接收到的数据帧, 继续超时计时, 返回执行步骤 B, 否则执行步骤

E;

步骤 E: 判断所述接收到的数据帧的长度是否小于预设字节, 是则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 B, 否则执行步骤 F;

步骤 F:判断所述接收到的数据帧是否完整,是则执行步骤 G, 否则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 B;

步骤 G: 判断所述接收到的数据帧的 CRC校验和 /或奇偶校验 是否均正确, 是则执行步骤 H, 否则关闭接收器, 向上位机发送传 输骸提示;

步骤 H: 判断数据帧是否存在其他错误, 是则抛弃所述接收到 的数据帧, 继续超时计时, 返回执行步骤 B, 否则关闭接收器, 将 关闭接收器, 将接收到的卡片返回的数据发送给上位机。

11、 根据权利要求 10所述的方法, 其特征在于, 所述步骤 E 替换为: 判断所述接收到的数据帧是否完整, 是则执行步骤 F, 否 则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 B; 相应地, 所述步骤 F替换为: 判断所述接收到的数据帧的长度 是否小于预设字节,是则抛弃所述接收到的数据帧,继续超时计时, 返回执行步骤 B,否则关闭接收器,向上位机发送传输错误的提示。

12、 根据权利要求 10所述的方法, 其特,在于, 所述帧错^: 接收到的数据帧为空帧。

13、 根据权利要求 11 所述的方法, 其特,在于, 所述帧错, 接收到的数据帧为空帧。

14、 根据权利要求 10所述的方法, 其特征在于, 所述判断所 述接收到的数据帧是否完整具体为: 判断所述接收到的数据帧的位 fci否为 8的整数倍,若为 8的整数倍则所述接收到的数据帧完整, 若不为 8的整数倍则所述接收到的数据帧不完整。

15、 根据权利要求 11 所述的方法, 其特征在于, 所述判断所 述接收到的数据帧是否完整具体为: 判断所述接收到的数据帧的位 fci否为 8的整数倍,若为 8的整数倍则所述接收到的数据帧完整, 若不为 8的整数倍则所述接收到的数据帧不完整。

16、 根据权利要求 10所述的方法, 其特征在于, 所述其他错 误包括: 数据帧的长度超过协议规定的长度或少于协议规定的最短 长度。 17、 根据权利要求 10所述的方法, 其特征在于: 所述向上位机发送超时错误提示具体为以 USB 中断管道方式 向上位机发 时错误提示;

所述向上位机发送传输错误提示具体为以 USB 中断管道方式 向上位机发送传输错误提示;

所述将接收到的卡片返回的数据发送给上位机具体为: 将接收 到的卡片返回的数据以 USB中断管道方式发送给上位机。

18、 根据权利要求 10所述的方法, 其特征在于, 所述读卡器 启动超时计时和接收器之前还包括:

读卡器上电初始化, 待接收到有效指令后判断指令类型: 若所述有效指令为通知寻卡指令则执行寻卡操作并判断寻卡 操作是否成功, 若成功则向卡片发送请求选择应答指令, 并在接收 到卡片返回的选择应答响应时将所述选择应答指令发送给上位机, 将卡片在射频场响应以 USB 中断管道方式通知上位机; 若不成功 则将卡片离开射频场响应以 USB中断管道方式通知上位机;

若所述有效指令为 APDU指令则按指定格式向卡片发送所述 APDU指令, 执行所述步骤 A;

若所述有效指令为扩展指令则执行所述扩展指令并将操作结 果以 USB中断管道方式发送给上位机。

Description:
一种增强非接触卡与读卡器通讯稳定性的方法

技术领域

[0001] 本发明属于通讯技术领域,特别涉及一种增强 非接触卡与读 卡器通讯稳定性的方法。

背景技术

[0002] 非接触卡是一种新型的智能卡, 它结合了射频技术和 IC卡 技术, 其功能与接触 ID卡、 IC卡一样, 只是它无需电源, 而是由 接收天线从读卡器磁场感应取电,并处理运算 数据,反馈到读卡器。 与接触式 IC卡相比较非接触卡具有可靠性高、操作方便 防冲突、 适合多种应用、 加密性能好等优点, 因此被广泛使用。

[0003] 发明人在实现本发明的过程中发现现有技术至 少存在以下 缺点: 现有的非接触读卡器与非接触卡之间的通讯容 易受到外来射 频的干扰, 稳定性较差, 且当双方接收到错误数据帧后会直接进行 错误处理, 如报错、 重发等, 使得在干扰频繁的情况下多次接收数 据, 成功率低。

发明内容

[0004] 鉴于现有技术的不足, 为了有效的解决现有技术的不足, 本 发明提出一种增强非接触卡与读卡器通讯稳定 性的方法。

[0005] 本发明方法是通过下述技术方案实现的。

[0006] 一种增强非接触卡与读卡器通讯稳定性的方法 , 包括:

步骤 a: 读卡器启动超时计时和接收器, 等待接收卡片返回 的数据; 步骤 b : 判断是否超时, 是则关闭接收器, 向上位机发送超 时错误提示, 否则执行步骤 C;

步骤 C: 判断是否检测到副载波, 是则停止超时计时, 接收 数据帧, 执行步骤 d, 否则返回执行步骤 b, 其中, 所述副载波为 读卡器检测到的外界的载波信号;

步骤 d : 判断接收到的数据帧是否存在帧错误, 是则抛弃所 述接收到的数据帧, 继续超时计时, 返回执行步骤 b, 否则执行步 步骤 e: 判断所述接收到的数据帧的 CRC校验和 /或奇偶校 臉是否均正确, 是则执行步骤 h, 否则执行步骤 f;

步骤 f: 判断所述接收到的数据帧的长度是否小于预设 字节, 是则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 b, 否则执行步據 g;

步骤 g: 判断所述接收到的数据帧是否完整, 是则关闭接收 器, 向上位机发送传输错误提示, 否则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 b ;

步骤 h: 判断所述接收到的数据帧是否存在其他错误, 是则 抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 b, 否则 关闭接收器, 将接收到的卡片返回的数据发送给上位机。

[0007] 其中, 所述步骤 f可替换为: 判断所述接收到的数据帧是否 完整, 是则执行步骤 g, 否则抛弃所述接收到的数据帧, 继续超时 计时, 返回执行步骤 b ;

相应地, 所述步骤 g可替换为: 判断所述接收到的数据帧的 长度是否小于预设字节, 是则抛弃所述接收到的数据帧, 继续超时 计时, 返回执行步骤 b, 否则关闭接收器, 向上位机发送传输错误 的提示。

[0008] 所述帧错误包括:未接收到数据帧或接收到的 数据帧的帧头 错误或帧尾 ^或接收到的数据帧为空帧。 [0009] 所述判断所述接收到的数据帧是否完整具体为 :判断所述接 收到的数据帧的位数是否为 8的整数倍, 若为 8的整数倍则所述接 收到的数据帧完整, 若不为 8的整数倍则所述接收到的数据帧不完 整。

[0010] 所述其他错误包括:数据帧的长度超过协议规 定的长度或少 于协议规定的最短长度。

[0011] 所述向上位机发送超时错误提示具体为以 USB 中断管道方 式向上位机发送超时错误提示;

所述向上位机发送传输错误提示具体为以 USB 中断管道方 式向上位机发送传输错误提示;

所述将接收到的卡片返回的数据发送给上位机 具体为: 将接 收到的卡片返回的数据以 USB中断管道方式发送给上位机。

[0012] 所述读卡器启动超时计时和接收器之前还包括 :

读卡器上电初始化, 待接收到有效指令后判断指令类型: 若所述有效指令为通知寻卡指令则执行寻卡操 作并判断寻 卡操作是否成功, 若成功则向卡片发送请求选择应答指令, 并在接 收到卡片返回的选择应答响应时将所述选择应 答指令发送给上位 机,将卡片在射频场响应以 USB中断管道方式通知上位机;若不成 功则将卡片离开射频场响应以 USB中断管道方式通知上位机; 若所述有效指令为 APDU指令则按指定格式向卡片发送所 述 APDU指令, 执行所述步骤 a;

若所述有效指令为扩展指令则执行所述扩展指 令并将操作 结果以 USB中断管道方式发送给上位机。

[0013] 一种增强非接触卡与读卡器通讯稳定性的方法 , 包括: 步骤 A: 读卡器启动超时计时和接收器, 等待接收卡片返回 的数据;

步骤 B: 判断是否超时, 是则关闭接收器, 向上位机发送超 时错误提示, 否则执行步骤 c;

步骤 C: 判断是否检测到副载波, 是则停止超时计时, 接收 数据帧, 执行步骤 D, 否则返回执行步骤 B, 其中, 所述副载波为 读卡器检测到的外界的载波信号;

步骤 D: 判断接收到的数据帧是否存在帧错误, 是则抛弃所 述接收到的数据帧, 继续超时计时, 返回执行步骤 B, 否则执行步 骤 E;

步骤 E:判断所述接收到的数据帧的长度是否小于预 字节, 是则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 B, 否则执行步骤 F;

步骤 F: 判断所述接收到的数据帧是否完整, 是则执行步骤 G, 否则抛弃所述接收到的数据帧, 继续超时计时, 返回执行步骤 B;

步骤 G: 判断所述接收到的数据帧的 CRC校验和 /或奇偶校 验是否均正确, 是则执行步骤 H, 否则关闭接收器, 向上位机发送 传输错误提示;

步骤 H: 判断数据帧是否存在其他错误, 是则抛弃所述接收 到的数据帧, 继续超时计时, 返回执行步骤 B, 否则关闭接收器, 将关闭接收器, 将接收到的卡片返回的数据发送给上位机。

[0014] 其中,所述步骤 E可替换为:判断所述接收到的数据帧是否 完整, 是则执行步骤 F, 否则抛弃所述接收到的数据帧, 继续超时 计时, 返回执行步骤 B;

相应地, 所述步骤 F可替换为: 判断所述接收到的数据帧 的长度是否小于预设字节, 是则抛弃所述接收到的数据帧, 继续超 时计时, 返回执行步骤 B, 否则关闭接收器, 向上位机发送传输错 误的提示。

[0015] 所述帧错误包括:未接收到数据帧或接收到的 数据帧的帧头 错误或帧尾 ^或接收到的数据帧为空帧。 [0016] 所述判断所述接收到的数据帧是否完整具体为 :判断所述接 收到的数据帧的位数是否为 8的整数倍, 若为 8的整数倍则所述接 收到的数据帧完整, 若不为 8的整数倍则所述接收到的数据帧不完 整。

[0017] 所述其他错误包括:数据帧的长度超过协议规 定的长度或少 于协议规定的最短长度。

[0018] 所述向上位机发送超时 ^提示具体为以 USB 中断管道方 式向上位机发送超时错误提示;

所述向上位机发送传输错误提示具体为以 USB 中断管道方 式向上位机发送传输错误提示;

所述将接收到的卡片返回的数据发送给上位机 具体为: 将接 收到的卡片返回的数据以 USB中断管道方式发送给上位机。

[0019] 所述读卡器启动超时计时和接收器之前还包括 :

读卡器上电初始化, 待接收到有效指令后判断指令类型: 若所述有效指令为通知寻卡指令则执行寻卡操 作并判断寻 卡操作是否成功, 若成功则向卡片发送请求选择应答指令, 并在接 收到卡片返回的选择应答响应时将所述选择应 答指令发送给上位 机,将卡片在射频场响应以 USB中断管道方式通知上位机;若不成 功则将卡片离开射频场响应以 USB中断管道方式通知上位机; 若所述有效指令为 APDU指令则按指定格式向卡片发送所 述 APDU指令, 执行所述步骤 A;

若所述有效指令为扩展指令则执行所述扩展指 令并将操作 结果以 USB中断管道方式发送给上位机。

[0020] 可见, 在本发明提供的方法中, 读卡器启动超时计时和接收 器, 等待接收数据, 当尚未超时且检测到副载波时停止超时计时, 接收数据并判断接收到的数据帧是否存在帧错 误,若存在则抛弃所 述数据帧, 继续超时计时, 若不存在则判断所述数据帧的 CRC校 验和 /或奇偶校验是否正确,若正确则判断所述数 帧是否存在其他 错误, 若存在则抛弃所述数据帧, 继续超时计时, 若不存在则关闭 接收器, 将接收到的数据发送给上位机, 若不正确则判断所述数据 帧的长度是否小于预设字节, 若小于则抛弃所述数据帧, 继续超时 计时, 若不小于则判断所述数据帧是否完整, 是则关闭接收器, 否 则抛弃所述数据帧, 继续超时计时。 本发明方法的有益效果在于: 对比已有技术, 本发明方法能够实现读卡器在接收数据过程中 识别 烦扰、 滤除干扰, 具有提高通讯稳定性的效果。

附图说明

[0021] 为了更清楚的说明本发明实施例或现有技术中 的技术方案, 下面将对实施例或现有技术描述中所需要使用 的附图作简单的介 绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还 可以根据这些附图获得其他的附图。

[0022] 图 1 为本发明实施例一提供的一种增强非接触卡与 读卡器 通讯稳定性的方法流程图;

[0023] 图 2 为本发明实施例一提供的另一种增强非接触卡 与读卡 器通讯稳定性的方法流程图;

[0024] 图 3 为本发明实施例二提供的一种增强非接触卡与 读卡器 通讯稳定性的方法流程图;

[0025] 图 4 为本发明实施例二提供的另一种增强非接触卡 与读卡 器通讯稳定性的方法流程图。

具体实施方式

[0026] 下面将结合本发明实施例中的附图,对本发明 实施例中的技 术方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发 明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前 提下所获得的所有 其他实施例, 都属于本发明保护的范围。

[0027] 一种增强非接触卡与读卡器通讯稳定性的方法 , 当接收方在 接收到数据帧且校验数据(如 CRC、 奇偶校臉等)报错时, 增加 判断长度字节以及判断尾部是否含有不完整字 节, 以此来识别此数 据帧是否为干扰或被烦扰到的数据帧; 当识别出数据帧为干扰时滤 除接收到的数据帧, 等待接收正确的数据帧; 当识别出数据帧为被 干扰到的数据帧时, 进行报错或重发等一般出错处理流程。

[0028] 例如,若读卡器接收到具有以下错误的数据帧 则抛弃错误的 数据帧, 继续超时计时:

[0029] 接收到的数据帧为空帧;

[0030] 接收到的数据帧头或帧尾中代表数据帧起始或 结束的数据 不符合协议的规定;

[0031] 接收到的数据帧奇偶校验和 /或 CRC校验错误且数据帧长度 小于 4个字节;

[0032] 接收到的数据帧奇偶校验和 /或 CRC校验错误且数据位数不 是 8的整数倍;

[0033] 若读卡器接收到的数据满足以下^ K 则以 USB 中断管道 方式向上位机发送传输错误提示:

[0034] 接收到的数据帧不为空帧;

[0035] 接收到的数据帧头或帧尾中代表数据帧起始或 结束的数据 符合协议的规定;

[0036] 接收到的数据帧奇偶校验和 /或 CRC校验错误;

[0037] 接收到的数据帧长度不小于 4个字节且数据位为 8的整数 倍。

[0038] 实施例一

[0039] 参见图 1, 本发明实施例一提供了一种增强非接触卡与读 卡 器通讯稳定性的具体实现方法。 所述方法具体为: 读卡器上电初始 化后等待接收上位机发送的指令; 本实施例中, 读卡器接^緩冲 区中以 USB 中断管道方式发送的指令, 如果指令的第一字节在预 设范围内 (0x01— 0x03 ), 则为收到了有效指令; 如果读卡器未接 收到或接收到的指令的第一字节不满足预设值 , 则收到的指令不是 有效指令。 读卡器接收到有效指令后执行以下操作:

[0040] 步骤 101 : 判断指令类型, 若为通知寻卡指令则执行步骤 102, 若为 APDU指令则执行步骤 108, 若为扩展指令则执行步骤

122;

[0041] 优选地, 在本实施例中,读卡器判断接收到的指令的第 一个 字节, 若为 0x01则所述指令为通知寻卡指令, 若为 0x02则所述指 令为 APDU指令, 若为 0x03则所述指令扩展指令, 其中, 扩展指 令可以为开射频场指令、 关射频场指令、 开灯指令、 关灯指令、 蜂 鸣指令等。

[0042] 步骤 102: 执行寻卡操作并判断寻卡操作是否成功, 是则执 行步骤 103, 否则执行步骤 107;

[0043] 具体地, 对于 A型卡, 步骤 102具体为:

[0044] 步骤 A1: 向卡片发送第一请求指令: 0x52, 判断是否接收 到卡片做出的第一响应: 0x02、 0x00, 是则执行步骤 A2, 否则寻 卡失败, 执行步骤 107;

[0045] 具体的,所述第一响应为预设数据,与第一请 求指令相对应, 并不限于本实施例提供的数据。

[0046] 步骤 A2: 向卡片发送由数据 0x93、 0x20组成的数据包, 判 断是否接收到包含 UID1和 BBC 1的第二响应, 是则执行步骤 A3, 否则寻卡失败, 执行步骤 107;

[0047] 其中, UID1为 4字节卡号段的一组固定数据或由卡片动态 产生的随机数, BBC 1为 UID1的校验字节。

[0048] 步骤 A 3 : 向卡片发送由数据 0x 93 、 0x70, UID1、 BBC 1和 CRC 1组成的数据包,判断是否接收到卡片返回的 含 S1和 CRC 1 的第一确认信息,是则执行步骤 A4,否则寻卡失败,执行步骤 107;

[0049] 其中, CRC 1为校验检测码, S1标识通信开始。

[0050] 步骤 A4: 将第一确认信息与固定数据 0x40进行与运算, 判 断运算结果是否为 0x00,是则寻卡成功,且该卡片的串联级别为 1, 将该卡的卡号信息放在緩冲区中,执行步骤 103,否则执行步骤 A5;

[0051] 具体的, 当卡片串联级别为 1 时所述该卡的卡号信息为 UID1的全部 4个字节数据。

[0052] 步骤 A5: 向卡片发送由数据 0x95和 0x20组成的数据包, 判断是否接收到卡片返回的包含 UID2和 BBC2的第三响应, 是则 执行步骤 A6, 否则寻卡失败, 执行步骤 107;

[0053] 其中, UID2为 4字节卡号段的一组固定数据或由卡片动态 产生的随机数, BBC2为 UID2的校验字节。

[0054] 步骤 A6: 向卡片发送由数据 0x95、 0x70、 UID2、 BBC2和 CRC2组成的数据包,判断是否接收到卡片返回 包含 S2和 CRC2 的第二确认信息,是则执行步骤 A7,否则寻卡失败,执行步骤 107;

[0055] 其中, CRC2为校验检测码, S2标识通信开始。

[0056] 步骤 A7: 将第二确认信息与固定数据 0x40进行与运算, 判 断运算结果是否为 0x00,是则寻卡成功,且该卡片的串联级别为 2, 将该卡的卡号信息放在緩冲区中,执行步骤 103,否则执行步骤 A8;

[0057] 具体的, 当卡片串联级别为 2 时所述该卡的卡号信息为 UID1的后 3个字节数据与 UID2的全部 4个字节数据的组合。

[0058] 步骤 A8: 向卡片发送由数据 0x97和 0x20组成的数据包, 判断是否接收到卡片返回的包含 UID3和 BBC3的第四响应, 是则 执行步骤 A9, 否则寻卡失败, 执行步骤 107;

[0059] 其中, UID3为 4字节卡号段的一组固定数据或由卡片动态 产生的随机数, BBC3为 UID3的校验字节。

[0060] 步骤 A9: 向卡片发送由数据 0x97、 0x70、 UID3、 BBC3和 CRC3组成的数据包,判断是否接收到卡片返回 包含 S3和 CRC3 的第二确认信息,是则执行步骤 A10,否则寻卡失败,执行步骤 107;

[0061] 其中, CRC3为校臉检测码, S3标识通信开始。

[0062] 步骤 A10: 将第三确认信息与固定数据 0x40进行与运算, 判断运算结果是否为 0x00,是则寻卡成功,且该卡片的串联级别为 3,将该卡的卡号信息放在緩冲区中,执行步 103,否则寻卡失败, 执行步骤 107。

[0063] 具体的, 当卡片串联级别为 3 时所述该卡的卡号信息为 UID1的后 3个字节数据、 UID2的后 3个字节数据以及 UID3的全 部 4字节数据的组合。

[0064] 具体地, 对于 B型卡, 步骤 102具体为:

[0065] 步骤 B1: 向卡片发送 B型请求指令: 0x05、 0x00、 0x08、 CRC(2字节);

[0066] 步骤 B2:判断是否接收到卡片返回的 B型请求响应: 0xld、 PUPI ( 4字节)、 0x00、 0x08、 0x01、 0x00、 CRC ( 2字节), 是则 寻卡成功, 执行步骤 103, 否则寻卡失败, 执行步骤 107。

[0067] 其中, PUPI表示卡号信息。

[0068] 步骤 103: 向卡片发送清求选择应答指令;

[0069] 具体的, 在本实施例中, 请求选择应答指令为: E0、 80、 CRC。

[0070] 步骤 104: 判断是否接收到卡片返回的选择应答响应, 是则 执行步骤 105, 否则执行步骤 107;

[0071] 步骤 105:将选择应答响应以 USB中断管道方式发送给上位 机;

[0072] 步骤 106:将卡片在射频场响应以 USB中断管道方式通知上 位机, 等待接收指令, 且在接收到有效指令后执行步骤 101;

[0073] 步骤 107:将卡片离开射频场相应以 USB中断管道方式通知 上位机, 等待接收指令, 且在接收到有效指令后执行步骤 101;

[0074] 步骤 108: 按指定格式向卡片发送接收到的 APDU指令;

[0075] 具体的, 在本实施例中, 所述指定格式为: PCB、 NAD、 CID 、 APDU指令、 CRC, 其中 PCB为协议控制字节, NAD为 节点地址, CID为卡标识符, CRC为校验检测码。

[0076] 步骤 109: 启动超时计时和接收器, 等待接收卡片返回的数 据;

[0077] 步骤 110: 判断是否超时, 是则执行步骤 111, 否则执行步

[0078] 步骤 111: 关闭接收器, 以 USB中断管道方式向上位机发送 超时错误提示, 等待接收指令, 且在接收到有效指令后执行步骤

101;

[0079] 步骤 112: 判断是否检测到副载波, 是则执行步骤 113, 否 则返回执行步錄 110;

[0080] 其中, 在本实施例中, 定义读卡器向外发送的信号为载波, 读卡器检测到的外界信号为副载波。

[0081] 步骤 113: 停止超时计时, 接收数据帧;

[0082] 步骤 114: 判断接收到的数据帧是否存在帧错误, 是则执行 步骤 121, 否则执行步骤 115;

[0083] 具体的, 在本实施例中, 判断接收到的数据帧是否存在帧错 误包括, 判断是否接收到数据帧, 判断数据帧的帧头是否错误、 判 断帧尾是否错误以及判断接收到的数据帧是否 为空帧, 若上述四个 判断中至少有一个判断结果为是则接收到的数 据帧错误, 若上述四 个判断的判断结果均为否则接收到的数据帧正 确。

[0084] 帧头错误或帧尾错误具体为:帧头或帧尾的代 表数据帧起始 或结束的数据不符合协议的规定; 空帧具体为: 只包含帧头和帧尾 没有数据部分的数据帧;其中,在本实施例中 0x10代表帧头, 0x01 代表帧尾。 [0085] 步骤 115: 判断接收到的数据帧的 CRC校验和 /或奇偶校验 是否正确, 是则执行步骤 119, 否则执行步骤 116;

[0086] 步錄 116: 判断数据帧的长度是否小于预设字节, 是则执行 步骤 121, 否则执行步骤 117;

[0087] 优选地, 在本实施例中, 所述预设字节为 4字节。

[0088] 步骤 117: 判断数据帧是否完整, 是则执行步骤 118, 否则 执行步骤 121;

[0089] 具体地, 在本实施例中, 所述判断数据帧是否完整具体为判 断数据帧的位数是否为 8的整数倍,若为 8的整数倍则数据帧完整, 若不为 8的整数倍则数据帧不完整。

[0090] 步骤 118: 关闭接收器, 以 USB中断管道方式向上位机发送 传输错误提示, 等待接收指令, 且在接收到有效指令后执行步骤

101;

[0091] 步骤 119:判断数据帧是否存在其他错误,是则执行 骤 121, 否则执行步骤 120;

[0092] 其中,所述其它错误如数据帧长度超过协议规 定的长度或少 于协议规定的最短长度。

[0093] 步骤 120: 关闭接收器, 将接收到的卡片返回的数据以 USB 中断管道方式发送给上位机, 等待接收指令, 且在接收到有效指令 后执行步骤 101;

[0094] 步骤 121: 抛弃错误的数据帧, 继续超时计时, 返回执行步 骤 110;

[0095] 步骤 122: 根据接收到的指令执行相应操作, 并将操作结果 以 USB中断管道方式发送给上位机。

[0096] 本实施例以请求亮灯指令为例,读卡器接收到 上位机发送的 请求亮灯指令后, 进行亮灯操作, 并将操作成功信息或操作失败信 息以 USB中断管道方式发送给上位机。 操作成功信息为 0x00, 操 作失败信息为 0x01。 [0097] 参见图 2, 图 1中的步骤 116和步骤 117还可以替换为步骤 116' 和步骤 117', 具体如下:

[0098] 步骤 116' :判断所述接收到的数据帧是否完整,是则执 步 骤 117', 否则执行步骤 121;

[0099] 步骤 117' :判断数据帧的长度是否小于预设字节,是则 行 步骤 121, 否则执行步骤 118;

[0100] 优选地, 在本实施例中, 所述预设字节为 4字节。

[0101] 实施例二

[0102] 参见图 3, 本发明实施例二提供了一种增强非接触卡与读 卡器通讯稳定性的具体实现方法。 所述方法具体为: 读卡器上电初 始化后等待接收上位机发送的指令; 本实施例中, 读卡器接收从緩 冲区中以 USB 中断管道方式发送的指令, 如果指令的第一字节在 预设范围内 (0x01— 0x03 ), 则为收到了有效指令; 如果读卡器未 接收到或接收到的指令的第一字节不满足预设 值, 则收到的指令不 是有效指令。 读卡器接收到有效指令后执行以下操作:

[0103] 步骤 201: 判断指令类型, 若为通知寻卡指令则执行步骤 202, 若为 APDU指令则执行步骤 208, 若为扩展指令则执行步骤

222;

[0104] 优选地, 在本实施例中, 读卡器判断接收到的指令的第一 个字节, 若为 0x01则所述指令为通知寻卡指令, 若为 0x02则所述 指令为 APDU指令, 若为 0x03则所述指令扩展指令, 其中, 扩展 指令可以为开射频场指令、 关射频场指令、 开灯指令、 关灯指令、 蜂鸣指令等。

[0105] 步骤 202: 执行寻卡操作并判断寻卡操作是否成功, 是则 执行步骤 203, 否则执行步骤 207;

[0106] 具体地, 对于 A型卡, 步骤 202具体为:

[0107] 步骤 A1: 向卡片发送第一请求指令: 0x52, 判断是否接 收到卡片做出的第一响应: 0x02、 0x00, 是则执行步骤 A2, 否则 寻卡失败, 执行步骤 207;

[0108] 具体的, 所述第一响应为预设数据, 与第一请求指令相对 应, 并不限于本实施例提供的数据。

[0109] 步骤 A2: 向卡片发送由数据 0x93、 0x20组成的数据包, 判断是否接收到包含 UID1 和 BBC 1 的第二响应, 是则执行步骤 A3, 否则寻卡失败, 执行步骤 207;

[0110] 其中, UID1为 4字节卡号段的一组固定数据或由卡片动 态产生的随机数, BBC 1为 UID1的校验字节。

[0111] 步骤 A3: 向卡片发送由数据 0x93、 0x70、 UID1、 BBC 1 和 CRC 1 组成的数据包, 判断是否接收到卡片返回的包含 S1 和 CRC 1 的第一确认信息, 是则执行步骤 A4, 否则寻卡失败, 执行 步骤 207;

[0112] 其中, CRC 1为校验检测码, S1标识通信开始。

[0113] 步骤 A4: 将第一确认信息与固定数据 0x40进行与运算, 判断运算结果是否为 0x00,是则寻卡成功,且该卡片的串联级别为 1, 将该卡的卡号信息放在緩冲区中, 执行步骤 203, 否则执行步骤 A5;

[0114] 具体的, 当卡片串联级别为 1 时所述该卡的卡号信息为 UID1的全部 4个字节数据。

[0115] 步骤 A5: 向卡片发送由数据 0x95和 0x20组成的数据包, 判断是否接收到卡片返回的包含 UID2和 BBC2的第三响应, 是则 执行步骤 A6, 否则寻卡失败, 执行步骤 207;

[0116] 其中, UID2为 4字节卡号段的一组固定数据或由卡片动 态产生的随机数, BBC2为 UID2的校验字节。

[0117] 步骤 A6: 向卡片发送由数据 0x95、 0x70、 UID2、 BBC2 和 CRC2组成的数据包, 判断是否接收到卡片返回的包含 S2和 CRC2 的第二确认信息, 是则执行步骤 A7, 否则寻卡失败, 执行 步骤 207; [0118] 其中, CRC2为校验检测码, S2标识通信开始。

[0119] 步骤 A7: 将第二确认信息与固定数据 0x40进行与运算, 判断运算结果是否为 0x00,是则寻卡成功,且该卡片的串联级别为 2, 将该卡的卡号信息放在緩冲区中, 执行步骤 203, 否则执行步骤 A8;

[0120] 具体的, 当卡片串联级别为 2 时所述该卡的卡号信息为 UID1的后 3个字节数据与 UID2的全部 4个字节数据的组合。

[0121] 步骤 A8: 向卡片发送由数据 0x97和 0x20组成的数据包, 判断是否接收到卡片返回的包含 UID3和 BBC3的第四响应, 是则 执行步骤 A9, 否则寻卡失败, 执行步骤 207;

[0122] 其中, UID3为 4字节卡号段的一组固定数据或由卡片动 态产生的随机数, BBC3为 UID3的校验字节。

[0123] 步骤 A9: 向卡片发送由数据 0x97、 0x70、 UID3、 BBC3 和 CRC3 组成的数据包, 判断是否接收到卡片返回的包含 S3 和 CRC3的第二确认信息, 是则执行步骤 A10, 否则寻卡失败, 执行 步骤 207;

[0124] 其中, CRC3为校验检测码, S3标识通信开始。

[0125] 步骤 A10: 将第三确认信息与固定数据 0x40进行与运算, 判断运算结果是否为 0x00,是则寻卡成功,且该卡片的串联级别为 3,将该卡的卡号信息放在緩冲区中,执行步 203,否则寻卡失败, 执行步骤 207。

[0126] 具体的, 当卡片串联级别为 3 时所述该卡的卡号信息为 UID1的后 3个字节数据、 UID2的后 3个字节数据以及 UID3的全 部 4字节数据的组合。

[0127] 具体地, 对于 B型卡, 步骤 202具体为:

[0128] 步骤 B1: 向卡片发送 B型请求指令: 0x05、 0x00、 0x08、 CRC(2字节);

[0129] 步骤 B2:判断是否接收到卡片返回的 B型请求响应: 0xld、 PUPI ( 4字节)、 0x00、 0x08、 0x01、 0x00、 CRC ( 2字节), 是则 寻卡成功, 执行步骤 203, 否则寻卡失败, 执行步骤 207。

[0130] 其中, PUPI表示卡号信息。

[0131] 步骤 203: 向卡片发送请求选择应答指令;

[0132] 具体的, 在本实施例中, 请求选择应 ^旨令为: E0、 80、 CRC。

[0133] 步骤 204: 判断是否接收到卡片返回的选择应答响应, 是 则执行步骤 205, 否则执行步骤 207;

[0134] 步骤 205:将选择应答响应以 USB中断管道方式发送给上 位机;

[0135] 步骤 206:将卡片在射频场响应以 USB中断管道方式通知 上位机, 等待接收指令, 且在接收到有效指令后执行步骤 201;

[0136] 步骤 207:将卡片离开射频场相应以 USB中断管道方式通 知上位机, 等待接收指令, 且在接收到有效指令后执行步骤 201;

[0137] 步骤 208: 按指定格式向卡片发送接收到的 APDU指令;

[0138] 具体的, 在本实施例中, 所述指定格式为: PCB、 NAD、 CID 、 APDU指令、 CRC , 其中 PCB为协议控制字节, NAD为 节点地址, CID为卡标识符, CRC为校验检测码。

[0139] 步骤 209: 启动超时计时和接收器, 等待接收卡片返回的 数据;

[0140] 步骤 210: 判断是否超时, 是则执行步骤 211, 否则执行 步骤 212;

[0141] 步骤 211: 关闭接收器, 以 USB中断管道方式向上位机发 时错误提示, 等待接收指令, 且在接收到有效指令后执行步骤

201;

[0142] 步骤 212: 判断是否检测到副载波, 是则执行步骤 213, 否则返回执行步據 210; [0143] 其中,在本实施例中,定义读卡器向外发送的 信号为载波, 读卡器检测到的外界信号为副载波。

[0144] 步骤 213: 停止超时计时, 接收数据帧;

[0145] 步骤 214: 判断接收到的数据帧是否存在帧错误, 是则执 行步骤 221, 否则执行步骤 215;

[0146] 判断接收到的数据帧是否存在帧错误包括, 判断是否接收 到数据帧, 判断数据帧的帧头是否 、 判断帧尾是否错误以及判 断接收到的数据帧是否为空帧,若上述四个判 断中至少有一个判断 结果为是则接收到的数据帧错误, 若上述四个判断的判断结果均为 否则接收到的数据帧正确。

[0147] 帧头错误或帧尾错误如帧头或帧尾中代表数据 帧起始或 结束的数据不符合协议的规定; 空帧为只包含帧头和帧尾没有数据 部分的数据帧, 具体地, 在本实施例中 0x10代表帧头, 0x01代表 帧尾。

[0148] 步骤 215: 判断数据帧的长度是否小于预设字节, 是则执 行步骤 221, 否则执行步骤 216;

[0149] 优选地, 在本实施例中, 所述预设字节为 4字节。

[0150] 步骤 216: 判断数据帧是否完整, 是则执行步骤 217, 否 则执行步骤 221;

[0151] 具体地, 在本实施例中, 所述判断数据帧是否完整为判断 数据帧的位数是否为 8的整数倍, 若为 8的整数倍则数据帧完整, 若不为 8的整数倍则数据帧不完整。

[0152] 步骤 217: 判断接收到的数据帧的 CRC校验和 /或奇偶校 验是否正确, 是则执行步骤 219, 否则执行步骤 218;

[0153] 步骤 218: 关闭接收器, 以 USB中断管道方式向上位机发 送传输错误提示, 等待接收指令, 且在接收到有效指令后执行步骤

201;

[0154] 步骤 219: 判断数据帧是否存在其他错误, 是则执行步骤 221 , 否则执行步骤 220;

[0155] 其中, 所述其它错误如数据帧长度超过协议规定的长 度或 少于协议规定的最短长度。

[0156] 步骤 220:关闭接收器,将接收到的卡片返回的数据 USB 中断管道方式发送给上位机, 等待接收指令, 且在接收到有效指令 后执行步骤: 201;

[0157] 步骤 221: 抛弃错误的数据帧, 继续超时计时, 返回执行 步骤 210;

[0158] 步骤 222: 根据接收到的指令执行相应操作, 并将操作结 果以 USB中断管道方式发送给上位机。

[0159] 本实施例以请求亮灯指令为例,读卡器接收到 上位机发送 的请求亮灯指令后, 进行亮灯操作, 并将操作成功或操作失败信息 以 USB中断管道方式发送给上位机。 操作成功信息为 0x00, 操作 失败信息为 0x01。

[0160] 参见图 4, 步骤 215和步骤 216还可以替换为步骤 215' 和步骤 216', 具体如下:

[0161] 步骤 215': 判断所述接收到的数据帧是否完整,是则执行 步骤 216', 否则执行步骤 221;

[0162] 步骤 216' : 判断数据帧的的长度是否小于预设字节,是则 执行步骤 221, 否则执行步骤 217;

[0163] 优选地, 在本实施例中, 所述预设字节为 4字节。

[0164] 以上所述, 仅为本发明的具体实施方式, 但本发明的保护 范围并不局限于此,任何熟悉本技术领域的技 术人员在本发明揭露 的技术范围内, 可轻易想到变化或替换, 都应涵盖在本发明的保护 范围之内。 因此, 本发明的保护范围应所述以权利要求的保护范 围 为准。