CN104765710A - 一种包含双处理器的读卡器的工作方法 - Google Patents

一种包含双处理器的读卡器的工作方法 Download PDF

Info

Publication number
CN104765710A
CN104765710A CN201510123078.7A CN201510123078A CN104765710A CN 104765710 A CN104765710 A CN 104765710A CN 201510123078 A CN201510123078 A CN 201510123078A CN 104765710 A CN104765710 A CN 104765710A
Authority
CN
China
Prior art keywords
processor
response
returns
draw
return
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
Application number
CN201510123078.7A
Other languages
English (en)
Other versions
CN104765710B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201510123078.7A priority Critical patent/CN104765710B/zh
Publication of CN104765710A publication Critical patent/CN104765710A/zh
Application granted granted Critical
Publication of CN104765710B publication Critical patent/CN104765710B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种包含双处理器的读卡器的工作方法,属于信息安全领域。所述方法包括第一处理器的操作流程和第二处理器的操作流程。第一处理器的操作流程包括:向第二处理器发送包含握手指令的数据包,直至接收到第二处理器返回的正确握手应答后,接收上位机发送的数据包并发送给第二处理器,并将第二处理器返回的应答发送给上位机;还包括:向第二处理器发送查询卡槽状态指令,以及向上位机上报卡槽状态。第二处理器的操作流程包括:接收第一处理器发送的数据包,根据数据包中的指令执行握手、查询卡槽状态等相应操作,并向第一处理器返回应答。本发明的有益效果在于既可以保障读卡器的安全性又能够有效地控制读卡器的成本。

Description

一种包含双处理器的读卡器的工作方法
技术领域
本发明涉及信息安全领域,尤其涉及一种包含双处理器的读卡器的工作方法。
背景技术
读卡器作为一种读卡设备,广泛应用于各个领域。读卡器的涵义覆盖范围较广,种类也颇多,如接触式读卡器、非接触式读卡器、单界面读卡器、双界面读卡器、多卡座接触式读卡器等等。通用读卡器仅包含一个处理器,如果要增强读卡器的安全性,那么对读卡器中的处理器的要求也必然提高,如要求处理器本身带有较高级别的高性能安全管理功能等,但高性能的处理器种类较少,可选择性差,并且采用高性能的处理器还会提高读卡器的成本。
发明内容
本发明的目的是为了克服现有技术的缺陷,提供一种提高通信安全性的方法。
本发明方法是通过下述技术方案实现的:
本发明提供一种包含双处理器的读卡器的工作方法,包括第一处理器的操作流程和第二处理器的操作流程:
第一处理器的操作流程包括:
步骤S10、判断是否已完成握手操作,若已完成握手操作则执行步骤S11,若未完成则向第二处理器发送包含握手指令的数据包,直至接收到所述第二处理器返回的正确握手应答后,执行步骤S11;
步骤S11、判断是否接收到上位机发送的数据包,是则将所述上位机发送的数据包发送给所述第二处理器,并将所述第二处理器返回的应答发送给所述上位机,返回步骤S10,否则直接返回步骤S10;
所述第一处理器的操作流程还包括:向所述第二处理器发送包含查询卡槽状态指令的数据包,根据所述第二处理器返回的应答判断是否需要向上位机上报卡槽状态,是则向上位机上报卡槽状态,返回步骤S10;否则直接返回步骤S10;
第二处理器的操作流程包括:
步骤S20、判断是否接收到所述第一处理器发送的数据包,是则执行步骤S21,否则重新执行步骤S20;
步骤S21、判断接收到的数据包中包含的指令的类型,若为握手指令则向所述第一处理器返回握手应答,返回步骤S20;若为查询卡槽状态指令则执行步骤S22;否则根据所述接收到的数据包中包含的指令执行相应操作,并向所述第一处理器返回相应应答,返回步骤S20;
步骤S22、查询当前时刻卡槽的状态,向所述第一处理器返回包含查询到的卡槽状态的应答,返回步骤S20。
进一步地,所述步骤S11中,所述将所述上位机发送的数据包发送给所述第二处理器之后,还可以包括:判断在预设时间内是否接收到所述第二处理器返回的应答,若未接收到则向所述上位机返回超时提示信息,返回步骤S10,若接收到则执行所述将所述第二处理器返回的应答发送给所述上位机;
所述执行所述将所述第二处理器返回的应答发送给所述上位机之前,还可以包括判断所述第二处理器返回的应答是否为预设类型的应答,若为预设类型的应答则将所述第二处理器返回的应答发送给所述上位机,然后重新判断在预设时间内是否接收到所述第二处理器返回的应答;若不为预设类型的应答则执行所述将所述第二处理器返回的应答发送给所述上位机;
所述判断所述第二处理器返回的应答是否为预设类型的应答,可以具体包括:判断所述第二处理器返回的应答是否满足第一个字节等于预设字节数据,且第八个字节的最高位和次高位分别等于第一预设位数据和第二预设位数据,是则所述第二处理器返回的应答为预设类型的应答,否则所述第二处理器返回的应答不为预设类型的应答;
所述步骤S21中还可以包括:若接收到的数据包中包含的指令为发送数据指令,则获取所述发送数据指令中的APDU,将获取到的APDU发送给智能卡,并判断所述智能卡返回的数据是否为延时申请,是则向所述第一处理器发送所述预设类型的应答,返回步骤S20,否则根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤S20;
所述步骤S21中还可以包括:若接收到的数据包中包含的指令为上电指令,则初始化智能卡接口,给所述智能卡上电,接收所述智能卡返回的复位应答,根据所述复位应答设置传输协议类型和所述智能卡接口,并向所述第一处理器返回应答,返回步骤S20;
所述传输协议类型可以包括:异步半双工字符传输协议和异步半双工分组传输协议;
所述根据所述复位应答设置传输协议类型可以具体包括:当所述复位应答中不包含预设参数、或者包含预设参数且预设参数的低半字节为第一预设值时,设置传输协议类型为所述异步半双工字符传输协议;当所述复位应答中包含预设参数且所述预设参数的低半字节等于第二预设值、或者包含预设参数且所述预设参数中包含低半字节等于第二预设值的预设参数时,设置所述传输协议类型为所述异步半双工分组传输协议;
所述将获取到的APDU发送给智能卡之前,还可以包括判断所述传输协议类型,若为所述异步半双工分组传输协议,则执行所述将获取到的APDU发送给智能卡,若为所述异步半双工字符传输协议,则执行以下步骤:
步骤1-1、发送获取到的APDU的数据头给所述智能卡,判断所述智能卡返回的数据是否为预设过程字节,是则向所述第一处理器发送预设类型的应答,返回步骤S20,否则执行步骤1-2;
步骤1-2、判断是否有APDU数据域需要发送,是则向所述智能卡发送APDU数据域,接收所述智能卡返回的数据,并根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤S20,否则根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤S20。
所述步骤S21中,所述向所述第一处理器返回握手应答时,还可以包括置位握手成功标志;
所述步骤S22可以具体包括:检查所述握手成功标志是否被置位,若被置位则查询当前时刻卡槽的状态,向所述第一处理器返回包含上报标志和查询到的卡槽状态的应答,并记录查询到的卡槽状态,返回步骤S20;若未被置位则查询当前时刻卡槽的状态,判断查询到的卡槽状态与上一次记录的卡槽状态是否相同,若相同则向所述第一处理器返回包含查询到的卡槽状态的应答,返回步骤S20,若不相同则向所述第一处理器返回包含上报标志和查询到的卡槽状态的应答,并记录查询到的卡槽状态,返回步骤S20;
所述根据所述第二处理器返回的应答判断是否需要向上位机上报卡槽状态,可以具体包括:判断所述第二处理器返回的应答中是否包含上报标志,是则需要向上位机上报卡槽状态,否则不需要向上位机上报卡槽状态;
所述向上位机上报卡槽状态,可以具体包括:将所述第二处理器返回的应答中包含的卡槽状态发送给所述上位机。
所述根据所述第二处理器返回的应答判断是否需要向上位机上报卡槽状态,可以具体包括:判断是否存在上一次记录的卡槽状态,且所述上一次记录的卡槽状态与所述第二处理器返回的应答中包含的卡槽状态相同,是则不需要向上位机上报卡槽状态,否则需要向上位机上报卡槽状态;
所述向上位机上报卡槽状态,可以具体包括:将所述第二处理器返回的应答中包含的卡槽状态发送给所述上位机,并记录所述第二处理器返回的应答中包含的卡槽状态。
所述步骤S10之前还可以包括:所述第一处理器进行初始化,判断USB枚举是否成功,是则执行所述步骤S10,否则等待USB枚举成功。
所述步骤S20之前还可以包括:所述第二处理器进行初始化。
或者,第一处理器的操作流程包括:
步骤A10、判断是否已完成握手操作,若已完成握手操作则执行步骤A11,若未完成则向第二处理器发送包含握手指令的数据包,直至接收到所述第二处理器返回的正确握手应答后,执行步骤A11;
步骤A11、判断是否接收到上位机发送的数据包,是则将所述上位机发送的数据包发送给所述第二处理器,并将所述第二处理器返回的应答发送给所述上位机,执行步骤A12,否则直接执行步骤A12;
步骤A12、判断串口接收标志是否被置位,是则将接收缓存中的数据发送给所述上位机,返回步骤A11,否则直接返回步骤A11;
所述第一处理器的操作流程还包括:当所述第一处理器接收到串口中断时,接收所述第二处理器发送的最新查询到的卡槽状态,并将接收到的卡槽状态存放到所述接收缓存中,置位串口接收标志,退出串口中断;
第二处理器的操作流程包括:
步骤A20、查询当前时刻卡槽的状态,记录查询到的卡槽状态;
步骤A21、判断是否收到所述第一处理器发送的数据包,是则执行步骤A22,否则重新执行步骤A21;
步骤A22、判断接收到的数据包中包含的指令的类型,若为握手指令则向所述第一处理器返回握手应答,并发送最新查询到的卡槽状态给所述第一处理器,返回步骤A21,否则根据所述接收到的数据包中包含的指令执行相应操作,并向所述第一处理器返回相应应答,返回步骤A21;
所述第二处理器的操作流程还包括:查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同,若相同则返回步骤A21,若不相同则记录查询到的卡槽状态,发送最新查询到的卡槽状态给所述上位机,返回步骤A21。
进一步地,所述步骤A11中,所述将所述上位机发送的数据包发送给所述第二处理器之后,还可以包括:判断在预设时间内是否接收到所述第二处理器返回的应答,若未接收到则向所述上位机返回超时提示信息,执行步骤A12,若接收到则执行所述将所述第二处理器返回的应答发送给所述上位机;
所述执行所述将所述第二处理器返回的应答发送给所述上位机之前,还可以包括判断所述第二处理器返回的应答是否为预设类型的应答,若为预设类型的应答则将所述第二处理器返回的应答发送给所述上位机,然后重新判断在预设时间内是否接收到所述第二处理器返回的应答;若不为预设类型的应答则执行所述将所述第二处理器返回的应答发送给所述上位机;
所述判断所述第二处理器返回的应答是否为预设类型的应答,可以具体包括:判断所述第二处理器返回的应答是否满足第一个字节等于预设字节数据,且第八个字节的最高位和次高位分别等于第一预设位数据和第二预设位数据,是则所述第二处理器返回的应答为预设类型的应答,否则所述第二处理器返回的应答不为预设类型的应答;
所述步骤A22中还可以包括:若接收到的数据包中包含的指令为发送数据指令,则获取所述发送数据指令中的APDU,将获取到的APDU发送给智能卡,并判断所述智能卡返回的数据是否为延时申请,是则向所述第一处理器发送所述预设类型的应答,执行步骤A23,否则根据所述智能卡返回的数据向所述第一处理器返回应答,执行步骤A23;
所述步骤A22中还可以包括:若接收到的数据包中包含的指令为上电指令,则初始化智能卡接口,给所述智能卡上电,接收所述智能卡返回的复位应答,并根据所述复位应答设置传输协议类型和所述智能卡接口,并向所述第一处理器返回应答,执行步骤A23;
所述传输协议类型可以包括:异步半双工字符传输协议和异步半双工分组协议;
所述根据所述复位应答设置传输协议类型可以具体包括:当所述复位应答中不包含预设参数、或者包含预设参数且预设参数的低半字节为第一预设值时,设置传输协议类型为所述异步半双工字符传输协议;当所述复位应答中包含预设参数且所述预设参数的低半字节等于第二预设值、或者包含预设参数且所述预设参数中包含低半字节等于第二预设值的预设参数时,设置所述传输协议类型为所述异步半双工分组传输协议;
所述将获取到的APDU发送给智能卡之前,还可以包括判断所述传输协议类型,若为所述异步半双工分组传输协议,则执行所述将获取到的APDU发送给智能卡,若为所述异步半双工字符传输协议,则执行以下步骤:
步骤2-1、发送获取到的APDU的数据头给所述智能卡,判断所述智能卡返回的数据是否为预设过程字节,是则向所述第一处理器发送预设类型的应答,返回步骤A21,否则执行步骤2-2;
步骤2-2、判断是否有APDU数据域需要发送,是则向所述智能卡发送APDU数据域,接收所述智能卡返回的数据,并根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤A21,否则根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤A21。
所述查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同之前,还可以包括:判断是否到达卡槽状态定时查询时间,若未到达则返回步骤A21,若到达则执行所述查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同。
所述步骤A10之前还可以包括:所述第一处理器进行初始化,判断USB枚举是否成功,是则执行所述步骤A10,否则等待USB枚举成功。
所述步骤A20之前还可以包括:所述第二处理器进行初始化。
本发明方法的有益效果在于,本发明中提供的方法适用于包含双处理器的读卡器,第一处理器控制与上位机的交互,第二处理器控制与卡的交互和物理防拆检测等,采用本发明提供的方法,配合通常的物理防拆等安全机制,就能够实现在保障读卡器的安全性的同时有效控制读卡器的成本。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中提供的读卡器的结构示意图;
图2为本发明实施例二中提供的第一处理器的操作流程图;
图3为本发明实施例二中提供的第二处理器的操作流程图;
图4为本发明实施例二中提供的当数据包中包含的指令为发送数据指令时,第二处理器的操作流程图;
图5为本发明实施例四中提供的第一处理器的操作流程图;
图6为本发明实施例四中提供的第二处理器的操作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种包含双处理器的读卡器的工作方法,如图1所示,所述读卡器包括第一处理器、第二处理器、外围电路(如晶体、LED等)、智能卡接口和USB接口;第一处理器和外围电路分别与第二处理器相连,第一处理器可以通过USB接口与上位机连接,第二处理器可以通过智能卡接口与智能卡相连;具体地第一处理器可以通过串口、SPI(Serial Peripheral Interface,串行外设接口)、I2C(Inter-Integrated Circuit)总线等与第二处理器相连。
所述读卡器的工作方法包括:第一处理器的操作流程和第二处理器的操作流程。
第一处理器的操作流程包括:
步骤S10、第一处理器判断是否已完成握手操作,若已完成握手操作则执行步骤S11,若未完成则向第二处理器发送包含握手指令的数据包,直至接收到第二处理器返回的正确握手应答后,执行步骤S11;
步骤S11、第一处理器判断是否接收到上位机发送的数据包,是则将上位机发送的数据包发送给第二处理器,执行步骤S12,否则返回步骤S10;
步骤S12、第一处理器判断在预设时间内是否接收到第二处理器返回的应答,是则将第二处理器返回的应答发送给上位机,返回步骤S10,否则向上位机返回超时提示信息,返回步骤S10;
第一处理器的操作流程还包括:第一处理器向第二处理器发送包含查询卡槽状态指令的数据包,根据第二处理器返回的应答判断是否需要向上位机上报卡槽状态,是则向上位机上报卡槽状态,返回步骤S10,否则直接返回步骤S10;
第二处理器的操作流程包括:
步骤S20、第二处理器判断是否接收到第一处理器发送的数据包,是则执行步骤S21,否则重新执行步骤S20;
步骤S21、第二处理器判断接收到的数据包中包含的指令的类型,若为握手指令则向第一处理器返回握手应答,返回步骤S20;若为查询卡槽状态指令则执行步骤S22;否则根据接收到的数据包中包含的指令执行相应操作,并向第一处理器返回相应应答,返回步骤S20;
步骤S22、第二处理器查询当前时刻卡槽的状态,向第一处理器返回包含查询到的卡槽状态的应答,返回步骤S20。
本实施例中,第一处理器根据第二处理器返回的应答判断是否需要向上位机上报卡槽状态,具体包括:第一处理器判断第二处理器返回的应答中是否包含上报标志,是则需要向上位机上报卡槽状态,否则不需要向上位机上报卡槽状态;相应地:
第二处理器向第一处理器返回握手应答时,还包括置位握手成功标志;
步骤S22具体包括:第二处理器检查握手成功标志是否被置位,若被置位则查询当前时刻卡槽的状态,向第一处理器返回包含上报标志和查询到的卡槽状态的应答,并记录查询到的卡槽状态,返回步骤S20;若未被置位则查询当前时刻卡槽的状态,判断查询到的卡槽状态与上一次记录的卡槽状态是否相同,若相同则向第一处理器返回包含查询到的卡槽状态的应答,返回步骤S20,若不相同则向第一处理器返回包含上报标志和查询到的卡槽状态的应答,并记录查询到的卡槽状态,返回步骤S20;
第一处理器向上位机上报卡槽状态,具体为将第二处理器返回的应答中包含的卡槽状态发送给上位机。
或者,本实施例中,第一处理器根据第二处理器返回的应答判断是否需要向上位机上报卡槽状态,具体包括:第一处理器判断是否存在上一次记录的卡槽状态,且上一次记录的卡槽状态与第二处理器返回的应答中包含的卡槽状态相同,是则不需要向上位机上报卡槽状态,否则需要向上位机上报卡槽状态;相应地:
第一处理器向上位机上报卡槽状态,具体为将第二处理器返回的应答中包含的卡槽状态发送给上位机;
第一处理器向上位机上报卡槽状态之后,还包括记录第二处理器返回的应答中包含的卡槽状态。
实施例二
本发明实施例二在实施例一的基础上,提供一种实施例一中所述的读卡器的一种具体工作方法,所述方法包括第一处理器的操作流程和第二处理器的操作流程。
如图2所示,第一处理器的操作流程包括:
步骤101、第一处理器进行初始化;
具体地,第一处理器进行初始化包括:第一处理器初始化硬件寄存器、初始化软件标志和清空临时缓存等操作。
步骤102、第一处理器判断USB枚举是否成功,是则执行步骤103,否则重新执行步骤102;
步骤103、第一处理器检查握手标志是否被置位,是则执行步骤104,否则执行步骤107;
具体地,当第一处理器接收到上位机发送的SetConfiguration指令并执行成功时握手标志被置位。
步骤104、第一处理器生成并发送包含握手指令的数据包给第二处理器,等待第二处理器返回握手应答;
步骤105、第一处理器判断是否接收到正确的握手应答,是则执行步骤106,否则返回步骤104;
步骤106、第一处理器复位握手标志,执行步骤107;
步骤107、第一处理器判断是否接收到上位机发送的数据包,是则执行108,否则执行步骤115;
步骤108、第一处理器将上位机发送的数据包发送给第二处理器,等待第二处理器返回应答,并开始统计等待时间;
步骤109、第一处理器判断是否接收到第二处理器返回的应答,是则执行步骤110,否则执行步骤113;
步骤110、第一处理器判断第二处理器返回的应答是否为预设类型的应答,是则执行步骤111,否则执行步骤112;
具体地,第一处理器判断第二处理器返回的应答是否为预设类型的应答,包括:第一处理器检查第二处理器返回的应答的第一个字节、第八个字节的高两位,若第二处理器返回的应答的第一个字节为预设字节数据,且第八个字节的最高位和次高位分别为第一预设位数据和第二预设位数据,则第二处理器返回的应答为预设类型的应答,否则第二处理器返回的应答不为预设类型的应答;
优选地,预设字节数据为80h,第一预设位数据为1,第二预设位数据为0。
步骤111、第一处理器将第二处理器返回的应答发送给上位机,继续等待第二处理器返回应答,并重置等待时间,返回步骤109;
具体地,第一处理器将第二处理器返回的应答通过USB接口以批量传输方式发送给上位机,以向上位机申请延时。
步骤112、第一处理器将第二处理器返回的应答发送给上位机,执行步骤115;
具体地,第一处理器将第二处理器返回的应答通过USB接口以批量传输方式发送给上位机。
步骤113、第一处理器判断等待时间是否超过预设时间,是则执行步骤114,否则返回步骤109;
步骤114、第一处理器向上位机返回超时提示信息,执行步骤115;
具体地,第一处理器通过USB接口以批量传输方式向上位机发送超时提示信息。
步骤115、第一处理器生成并发送包含查询卡槽状态指令的数据包给第二处理器,等待第二处理器返回应答,待接收到第二处理器返回的应答后执行步骤116;
步骤116、第一处理器判断第二处理器返回的应答中是否包含上报标志,是则执行步骤117,否则返回步骤103;
步骤117、第一处理器将第二处理器返回的应答中的卡槽状态上报给上位机,返回步骤103。
具体地,第一处理器通过USB接口以中断传输方式将第二处理器返回的应答中的卡槽状态上报给上位机。
如图3所示,第二处理器的操作流程包括:
步骤201、第二处理器进行初始化;
具体地,本实施例中,第二处理器进行初始化包括:第二处理器初始化硬件寄存器、初始化软件标志和清空临时缓存等操作;卡槽的状态包括有卡和无卡。
步骤202、第二处理器判断是否接收到第一处理器发送的数据包,是则执行步骤203,否则重新执行步骤202;
步骤203、第二处理器判断数据包中包含的指令的类型,若为握手指令则执行步骤204,若为查询卡槽状态指令则执行步骤205,否则执行步骤212;
具体地,第二处理器判断数据包中包含的指令的类型,包括:第二处理器检查数据包的第一个字节,当数据包的第一个字节为F0h时,判定数据包中包含的指令为握手指令,当数据包的第一个字节为65h时,判定数据包中包含的指令为查询卡槽状态指令。
步骤204、第二处理器置位握手成功标志,并向第一处理器返回握手应答,返回步骤202;
步骤205、第二处理器检查握手成功标志是否被置位,是则执行步骤206,否则执行步骤208;
步骤206、第二处理器查询当前时刻卡槽的状态,向第一处理器返回包含上报标志和查询到的卡槽状态的应答,记录查询到的卡槽状态;
步骤207、第二处理器复位握手成功标志,返回步骤202;
步骤208、第二处理器查询当前时刻卡槽的状态;
步骤209、第二处理器判断查询到的卡槽的状态与上一次记录的卡槽状态是否相同,是则执行步骤210,否则执行步骤211;
步骤210、第二处理器向第一处理器返回包含查询到的卡槽状态的应答,返回步骤202;
步骤211、第二处理器向第一处理器返回包含上报标志和查询到的卡槽状态的应答,记录查询到的卡槽状态,返回步骤202;
步骤212、第二处理器根据数据包中包含的指令执行相应操作,向第一处理器返回相应应答,返回步骤202。
进一步地,步骤203中还可以包括:
若数据包中包含的指令为设置参数指令,则第二处理器根据设置参数指令中的参数数据设置智能卡接口,并向第一处理器返回应答,返回步骤202;其中,设置智能卡接口包括设置智能卡接口的IO和寄存器等;
和/或若数据包中包含的指令为上电指令,则第二处理器初始化智能卡接口,给智能卡上电,接收智能卡返回的ATR(Answer To Reset,复位应答),根据ATR设置智能卡接口和传输协议类型,并向第一处理器返回应答,返回步骤202;其中,初始化智能卡接口包括初始化智能卡接口的IO和寄存器等;设置智能卡接口包括设置智能卡接口的IO和寄存器等;设置传输协议类型包括:当ATR中不包含预设参数、或者包含预设参数且预设参数的低半字节为第一预设值时,设置传输协议类型为异步半双工字符传输协议(T=0),当ATR中包含预设参数且预设参数的低半字节等于第二预设值、或者包含预设参数且预设参数中包含低半字节等于第二预设值的预设参数时,设置传输协议类型为异步半双工分组传输协议(T=1);本实施例中,预设参数具体为TD,ATR中可能包含一个或多个按顺序编号的预设参数,如TD1、TD2、TD3,第一预设值具体为0000b,第二预设值具体为0001b。
和/或若数据包中包含的指令为下电指令,则第二处理器复位智能卡接口模块,给智能卡下电,并向第一处理器返回应答,返回步骤202;
和/或若数据包中包含的指令为发送数据指令,则第二处理器执行如图4所示的流程:
步骤1-1、获取发送数据指令中包含的APDU;
步骤1-2、判断传输协议类型,若为T=0则执行步骤1-3,若为T=1则执行步骤1-7;
步骤1-3、向智能卡发送APDU数据头,接收智能卡返回的数据;
步骤1-4、判断智能卡返回的数据是否为预设过程字节,是则执行步骤1-9,否则执行步骤1-5;
具体地,预设过程字节为0x60。
步骤1-5、判断是否有APDU数据域需要发送,是则执行步骤1-6,否则执行步骤1-10;
步骤1-6、向智能卡发送APDU数据域,接收智能卡返回的数据,执行步骤1-10;
步骤1-7、向智能卡发送APDU,接收智能卡返回的数据;
步骤1-8、判断智能卡返回的数据是否为延时申请,是则执行步骤1-9,否则执行步骤1-10;
具体地,判断智能卡返回的数据是否为延时申请,包括:检查智能卡返回的数据的第二个字节,当智能卡返回的数据的低5位为00011时,判定智能卡返回的数据为延时申请。
步骤1-9、向第一处理器发送预设类型的应答,返回步骤202;
例如,向第一处理器发送应答为80 00 00 00 00 00 01 80 00 03。
步骤1-10、根据智能卡返回的数据向第一处理器返回相应应答,返回步骤202。
本实施例中,第二处理器通过检查数据包的第一个字节确定数据包中包含的指令的类型,当数据包的第一个字节为61h时,确定数据包中包含的指令为设置参数指令,当数据包的第一个字节为62h时,确定数据包中包含的指令为上电指令,当数据包的第一个字节为63h时,确定数据包中包含的指令为下电指令,当数据包的第一个字节为6fh时,确定数据包中包含的指令为发送数据指令。
实施例三
本发明实施例三在本发明实施例一的基础上,提供当本发明实施例一中所述的读卡器的第一处理器和第二处理器之间通过串口进行连接时,所述读卡器的另外一种工作方法,所述方法包括第一处理器的操作流程和第二处理器的操作流程。
第一处理器的操作流程包括:
步骤A10、第一处理器判断是否已完成握手操作,若已完成握手操作则执行步骤A11,若未完成则向第二处理器发送包含握手指令的数据包,直至接收到第二处理器返回的正确握手应答后,执行步骤A11;
步骤A11、第一处理器判断是否接收到上位机发送的数据包,是则将上位机发送的数据包发送给第二处理器,并将第二处理器返回的应答发送给上位机,执行步骤A12,否则直接执行步骤A12;
步骤A12、第一处理器判断串口接收标志是否被置位,是则将接收缓存中的数据发送给所述上位机,返回步骤A11,否则直接返回步骤A11;
第一处理器的操作流程还包括:当第一处理器接收到串口中断时,接收第二处理器发送的最新查询到的卡槽状态,并将接收到的卡槽状态存放到所述接收缓存中,置位串口接收标志,退出串口中断;
第二处理器的操作流程包括:
步骤A20、第二处理器查询当前时刻卡槽的状态,记录查询到的卡槽状态;
步骤A21、第二处理器判断是否收到第一处理器发送的数据包,是则执行步骤A22,否则重新执行步骤A21;
步骤A22、第二处理器判断接收到的数据包中包含的指令的类型,若为握手指令则向第一处理器返回握手应答,并发送最新查询到的卡槽状态给第一处理器,返回步骤A21,否则根据接收到的数据包中包含的指令执行相应操作,并向第一处理器返回相应应答,返回步骤A21;
第二处理器的操作流程还包括:第二处理器查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同,若相同则返回步骤A21,若不相同则记录查询到的卡槽状态,发送最新查询到的卡槽状态给上位机,返回步骤A21。
实施例四
本发明实施例四在本发明实施例三的基础上,提供当本发明实施例一中所述的读卡器的第一处理器和第二处理器之间通过串口进行连接时,所述读卡器的另外一种具体工作方法,所述方法包括第一处理器的操作流程和第二处理器的操作流程。
如图5所示,第一处理器的操作流程包括:
步骤301、第一处理器进行初始化;
具体地,第一处理器进行初始化包括:第一处理器初始化硬件寄存器、初始化软件标志和清空临时缓存等操作。
步骤302、第一处理器判断USB枚举是否成功,是则执行步骤303,否则重新执行步骤302;
步骤303、第一处理器使能串口中断,检查握手标志是否被置位,是则执行步骤304,否则执行步骤307;
具体地,握手标志当第一处理器接收到上位机发送的SetConfiguration指令并执行成功时被置位。
步骤304、第一处理器通过串口向第二处理器发送包含握手指令的数据包,等待第二处理器返回握手应答;
步骤305、第一处理器判断是否接收到正确的握手应答,是则执行步骤306,否则返回步骤304;
步骤306、第一处理器复位握手标志,执行步骤307;
步骤307、第一处理器判断是否接收到上位机发送的数据包,是则执行步骤308,否则执行步骤315;
步骤308、第一处理器将上位机发送的数据包通过串口发送给第二处理器,等待第二处理器返回应答,并开始统计等待时间;
步骤309、第一处理器判断是否接收到第二处理器返回的应答,是则执行步骤310,否则执行步骤313;
步骤310、第一处理器判断第二处理器返回的应答是否为预设类型的应答,是则执行步骤311,否则执行步骤312;
具体地,第一处理器判断第二处理器返回的应答是否为预设类型的应答,包括:第一处理器检查第二处理器返回的应答的第一个字节、第八个字节的高两位,若第二处理器返回的应答的第一个字节为80h,第八个字节的最高两位为10,则第二处理器返回的应答为预设类型的应答,否则第二处理器返回的应答不为预设类型的应答。
步骤311、第一处理器将第二处理器返回的应答发送给上位机,继续等待第二处理器返回应答,并重置等待时间,返回步骤309;
具体地,第一处理器将第二处理器返回的应答通过USB接口以批量传输方式发送给上位机,以向上位机申请延时。
步骤312、第一处理器将第二处理器返回的应答发送给上位机,执行步骤315;
具体地,第一处理器将第二处理器返回的应答通过USB接口以批量传输方式发送给上位机。
步骤313、第一处理器判断等待时间是否超过预设时间,是则执行步骤314,否则返回步骤309;
步骤314、第一处理器向上位机返回超时提示信息,执行步骤315;
具体地,第一处理器通过USB接口以批量传输方式向上位机发送超时提示信息。
步骤315、第一处理器检查串口接收标志是否被置位,是则执行步骤316,否则返回步骤303;
步骤316、第一处理器将接收缓冲区中的数据发送给上位机,清空接收缓冲区,复位串口接收标志,返回步骤303;
所述第一处理器的操作流程还包括:当第一处理器接收到串口中断时,第一处理器读取串口接收到的数据,并将串口接收到的数据保存在临时缓存中,检查串口接收状态,若串口接收状态为第一状态,则将临时缓存中的数据复制到接收缓冲区中,设置串口接收状态为第二状态,退出串口中断,若串口接收状态为第二状态,则将临时缓存中的数据复制到接收缓冲区中,设置串口接收状态为第一状态,置位串口接收标志,退出串口中断,若串口接收状态为其他状态时,设置串口接收状态为第一状态,退出串口中断。
如图6所示,第二处理器的操作流程包括:
步骤401、第二处理器进行初始化,查询当前时刻卡槽的状态,记录查询到的卡槽状态;
具体地,本实施例中,第二处理器进行初始化包括:第二处理器初始化硬件寄存器、初始化软件标志和清空临时缓存等操作;卡槽的状态包括有卡和无卡。
步骤402、第二处理器判断是否接收到第一处理器发送的数据包,是则执行步骤403,否则执行步骤406;
步骤403、第二处理器判断数据包中包含的指令的类型,若为握手指令则执行步骤404,否则执行步骤405;
具体地,第二处理器判断数据包中包含的指令的类型,包括:第二处理器检查数据包的第一个字节,当数据包的第一个字节为F0h时,判定数据包中包含的指令为握手指令。
步骤404、第二处理器置位上报标志,并通过串口向第一处理器返回握手应答,执行步骤406;
步骤405、第二处理器根据数据包中包含的指令执行相应操作,通过串口向第一处理器返回相应应答,执行步骤406;
具体地,步骤405包括:
当数据包中包含的指令为设置参数指令时,第二处理器根据设置参数指令中的参数数据设置智能卡接口,并向第一处理器返回应答,执行步骤406;其中,设置智能卡接口包括设置智能卡接口的IO和寄存器等;
和/或当数据包中包含的指令为上电指令时,第二处理器初始化智能卡接口,给智能卡上电,接收智能卡返回的ATR,根据ATR设置智能卡接口和传输协议类型,并向第一处理器返回应答,执行步骤406;其中,初始化智能卡接口包括初始化智能卡接口的IO和寄存器等;设置智能卡接口包括设置智能卡接口的IO和寄存器等;设置传输协议类型包括:当ATR中不包含预设参数、或者包含预设参数且预设参数的低半字节为第一预设值时,设置传输协议类型为异步半双工字符传输协议(T=0),当ATR中包含预设参数且预设参数的低半字节等于第二预设值、或者包含预设参数且预设参数中包含低半字节等于第二预设值的预设参数时,设置传输协议类型为异步半双工分组传输协议(T=1);本实施例中,预设参数具体为TD,ATR中可能包含一个或多个按顺序编号的预设参数,如TD1、TD2、TD3,第一预设值具体为0000,第二预设值具体为0001。
和/或当数据包中包含的指令为下电指令时,第二处理器复位智能卡接口模块,给智能卡下电,并向第一处理器返回应答,执行步骤406;
和/或当数据包中包含的指令为发送数据指令时,第二处理器执行以下操作:
步骤2-1、获取发送数据指令中包含的APDU;
步骤2-2、判断传输协议类型,若为T=0则执行步骤2-3,若为T=1则执行步骤2-7;
步骤2-3、向智能卡发送APDU数据头,接收卡片返回的数据;
步骤2-4、判断智能卡返回的数据是否为预设过程字节,是则执行步骤2-9,否则执行步骤2-5;
具体地,预设过程字节为0x60。
步骤2-5、判断是否有APDU数据域需要发送,是则执行步骤2-6,否则执行步骤2-10;
步骤2-6、向智能卡发送APDU数据域,接收智能卡返回的数据,执行步骤2-10;
步骤2-7、向智能卡发送APDU,接收智能卡返回的数据;
步骤2-8、判断智能卡返回的数据是否为延时申请,是则执行步骤2-9,否则执行步骤2-10;
具体地,判断智能卡返回的数据是否为延时申请,包括:检查智能卡返回的数据的第二个字节,当智能卡返回的数据的低5位为00011时,判定智能卡返回的数据为延时申请。
步骤2-9、向第一处理器发送预设类型的应答,执行步骤406;
例如,向第一处理器发送应答为80 00 00 00 00 00 01 80 00 03。
步骤2-10、根据智能卡返回的数据向第一处理器返回相应应答,执行步骤406。
本实施例中,第二处理器通过检查数据包的第一个字节确定数据包中包含的指令的类型,当数据包的第一个字节为61h时,确定数据包中包含的指令为设置参数指令,当数据包的第一个字节为62h时,确定数据包中包含的指令为上电指令,当数据包的第一个字节为63h时,确定数据包中包含的指令为下电指令,当数据包的第一个字节为6f时,确定数据包中包含的指令为发送数据指令。
步骤406、第二处理器判断是否到达卡槽状态定时查询时间,是则执行步骤407,否则执行步骤409;
步骤407、第二处理器查询当前时刻卡槽的状态,判断当前时刻卡槽的状态与上次记录的卡槽状态是否相同,是则执行步骤409,否则执行步骤408;
步骤408、第二处理器记录查询到的卡槽状态,置位上报标志,执行步骤409;
步骤409、第二处理器检查上报标志是否被置位,是则执行步骤410,否则返回步骤402;
步骤410、第二处理器将最新查询到的卡槽状态通过串口发送给第一处理器,复位上报标志,返回步骤402。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (23)

1.一种包含双处理器的读卡器的工作方法,其特征在于,所述方法包括第一处理器的操作流程和第二处理器的操作流程;
所述第一处理器的操作流程包括:
步骤S10、判断是否已完成握手操作,若已完成握手操作则执行步骤S11,若未完成则向第二处理器发送包含握手指令的数据包,直至接收到所述第二处理器返回的正确握手应答后,执行步骤S11;
步骤S11、判断是否接收到上位机发送的数据包,是则将所述上位机发送的数据包发送给所述第二处理器,并将所述第二处理器返回的应答发送给所述上位机,返回步骤S10,否则直接返回步骤S10;
所述第一处理器的操作流程还包括:向所述第二处理器发送包含查询卡槽状态指令的数据包,根据所述第二处理器返回的应答判断是否需要向上位机上报卡槽状态,是则向上位机上报卡槽状态,返回步骤S10;否则直接返回步骤S10;
所述第二处理器的操作流程包括:
步骤S20、判断是否接收到所述第一处理器发送的数据包,是则执行步骤S21,否则重新执行步骤S20;
步骤S21、判断接收到的数据包中包含的指令的类型,若为握手指令则向所述第一处理器返回握手应答,返回步骤S20;若为查询卡槽状态指令则执行步骤S22;否则根据所述接收到的数据包中包含的指令执行相应操作,并向所述第一处理器返回相应应答,返回步骤S20;
步骤S22、查询当前时刻卡槽的状态,向所述第一处理器返回包含查询到的卡槽状态的应答,返回步骤S20。
2.如权利要求1所述的方法,其特征在于,所述步骤S11中,所述将所述上位机发送的数据包发送给所述第二处理器之后,还包括:判断在预设时间内是否接收到所述第二处理器返回的应答,若未接收到则向所述上位机返回超时提示信息,返回步骤S10,若接收到则执行所述将所述第二处理器返回的应答发送给所述上位机。
3.如权利要求2所述的方法,其特征在于,所述执行所述将所述第二处理器返回的应答发送给所述上位机之前,还包括判断所述第二处理器返回的应答是否为预设类型的应答,若为预设类型的应答则将所述第二处理器返回的应答发送给所述上位机,然后重新判断在预设时间内是否接收到所述第二处理器返回的应答;若不为预设类型的应答则执行所述将所述第二处理器返回的应答发送给所述上位机。
4.如权利要求3所述的方法,其特征在于,所述判断所述第二处理器返回的应答是否为预设类型的应答,具体包括:判断所述第二处理器返回的应答是否满足第一个字节等于预设字节数据,且第八个字节的最高位和次高位分别等于第一预设位数据和第二预设位数据,是则所述第二处理器返回的应答为预设类型的应答,否则所述第二处理器返回的应答不为预设类型的应答。
5.如权利要求3所述的方法,其特征在于,所述步骤S21中还包括:若接收到的数据包中包含的指令为发送数据指令,则获取所述发送数据指令中的APDU,将获取到的APDU发送给智能卡,并判断所述智能卡返回的数据是否为延时申请,是则向所述第一处理器发送所述预设类型的应答,返回步骤S20,否则根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤S20。
6.如权利要求5所述的方法,其特征在于,所述步骤S21中还包括:若接收到的数据包中包含的指令为上电指令,则初始化智能卡接口,给所述智能卡上电,接收所述智能卡返回的复位应答,根据所述复位应答设置传输协议类型和所述智能卡接口,并向所述第一处理器返回应答,返回步骤S20;
所述传输协议类型包括:异步半双工字符传输协议和异步半双工分组传输协议。
7.如权利要求6所述的方法,其特征在于,所述根据所述复位应答设置传输协议类型具体包括:当所述复位应答中不包含预设参数、或者包含预设参数且预设参数的低半字节为第一预设值时,设置传输协议类型为所述异步半双工字符传输协议;当所述复位应答中包含预设参数且所述预设参数的低半字节等于第二预设值、或者包含预设参数且所述预设参数中包含低半字节等于第二预设值的预设参数时,设置所述传输协议类型为所述异步半双工分组传输协议。
8.如权利要求6所述的方法,其特征在于,所述将获取到的APDU发送给智能卡之前,还包括判断所述传输协议类型,若为所述异步半双工分组传输协议,则执行所述将获取到的APDU发送给智能卡,若为所述异步半双工字符传输协议,则执行以下步骤:
步骤1-1、发送获取到的APDU的数据头给所述智能卡,判断所述智能卡返回的数据是否为预设过程字节,是则向所述第一处理器发送预设类型的应答,返回步骤S20,否则执行步骤1-2;
步骤1-2、判断是否有APDU数据域需要发送,是则向所述智能卡发送APDU数据域,接收所述智能卡返回的数据,并根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤S20,否则根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤S20。
9.如权利要求1所述的方法,其特征在于,所述步骤S21中,所述向所述第一处理器返回握手应答时,还包括置位握手成功标志;
所述步骤S22具体包括:检查所述握手成功标志是否被置位,若被置位则查询当前时刻卡槽的状态,向所述第一处理器返回包含上报标志和查询到的卡槽状态的应答,并记录查询到的卡槽状态,返回步骤S20;若未被置位则查询当前时刻卡槽的状态,判断查询到的卡槽状态与上一次记录的卡槽状态是否相同,若相同则向所述第一处理器返回包含查询到的卡槽状态的应答,返回步骤S20,若不相同则向所述第一处理器返回包含上报标志和查询到的卡槽状态的应答,并记录查询到的卡槽状态,返回步骤S20;
所述根据所述第二处理器返回的应答判断是否需要向上位机上报卡槽状态,具体包括:判断所述第二处理器返回的应答中是否包含上报标志,是则需要向上位机上报卡槽状态,否则不需要向上位机上报卡槽状态;
所述向上位机上报卡槽状态,具体包括:将所述第二处理器返回的应答中包含的卡槽状态发送给所述上位机。
10.如权利要求1所述的方法,其特征在于,所述根据所述第二处理器返回的应答判断是否需要向上位机上报卡槽状态,具体包括:判断是否存在上一次记录的卡槽状态,且所述上一次记录的卡槽状态与所述第二处理器返回的应答中包含的卡槽状态相同,是则不需要向上位机上报卡槽状态,否则需要向上位机上报卡槽状态;
所述向上位机上报卡槽状态,具体包括:将所述第二处理器返回的应答中包含的卡槽状态发送给所述上位机,并记录所述第二处理器返回的应答中包含的卡槽状态。
11.如权利要求1所述的方法,其特征在于,所述步骤S10之前还包括:所述第一处理器进行初始化,判断USB枚举是否成功,是则执行所述步骤S10,否则等待USB枚举成功。
12.如权利要求1所述的方法,其特征在于,所述步骤S20之前还包括:所述第二处理器进行初始化。
13.一种包含双处理器的读卡器的工作方法,其特征在于,所述方法包括第一处理器的操作流程和第二处理器的操作流程;
所述第一处理器的操作流程包括:
步骤A10、判断是否已完成握手操作,若已完成握手操作则执行步骤A11,若未完成则向第二处理器发送包含握手指令的数据包,直至接收到所述第二处理器返回的正确握手应答后,执行步骤A11;
步骤A11、判断是否接收到上位机发送的数据包,是则将所述上位机发送的数据包发送给所述第二处理器,并将所述第二处理器返回的应答发送给所述上位机,执行步骤A12,否则直接执行步骤A12;
步骤A12、判断串口接收标志是否被置位,是则将接收缓存中的数据发送给所述上位机,返回步骤A11,否则直接返回步骤A11;
所述第一处理器的操作流程还包括:当所述第一处理器接收到串口中断时,接收所述第二处理器发送的最新查询到的卡槽状态,并将接收到的卡槽状态存放到所述接收缓存中,置位串口接收标志,退出串口中断;
所述第二处理器的操作流程包括:
步骤A20、查询当前时刻卡槽的状态,记录查询到的卡槽状态;
步骤A21、判断是否收到所述第一处理器发送的数据包,是则执行步骤A22,否则重新执行步骤A21;
步骤A22、判断接收到的数据包中包含的指令的类型,若为握手指令则向所述第一处理器返回握手应答,并发送最新查询到的卡槽状态给所述第一处理器,返回步骤A21,否则根据所述接收到的数据包中包含的指令执行相应操作,并向所述第一处理器返回相应应答,返回步骤A21;
所述第二处理器的操作流程还包括:查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同,若相同则返回步骤A21,若不相同则记录查询到的卡槽状态,发送最新查询到的卡槽状态给所述上位机,返回步骤A21。
14.如权利要求12所述的方法,其特征在于,所述步骤A11中,所述将所述上位机发送的数据包发送给所述第二处理器之后,还包括:判断在预设时间内是否接收到所述第二处理器返回的应答,若未接收到则向所述上位机返回超时提示信息,执行步骤A12,若接收到则执行所述将所述第二处理器返回的应答发送给所述上位机。
15.如权利要求14所述的方法,其特征在于,所述执行所述将所述第二处理器返回的应答发送给所述上位机之前,还包括判断所述第二处理器返回的应答是否为预设类型的应答,若为预设类型的应答则将所述第二处理器返回的应答发送给所述上位机,然后重新判断在预设时间内是否接收到所述第二处理器返回的应答;若不为预设类型的应答则执行所述将所述第二处理器返回的应答发送给所述上位机。
16.如权利要求15所述的方法,其特征在于,所述判断所述第二处理器返回的应答是否为预设类型的应答,具体包括:判断所述第二处理器返回的应答是否满足第一个字节等于预设字节数据,且第八个字节的最高位和次高位分别等于第一预设位数据和第二预设位数据,是则所述第二处理器返回的应答为预设类型的应答,否则所述第二处理器返回的应答不为预设类型的应答。
17.如权利要求15所述的方法,其特征在于,所述步骤A22中还包括:若接收到的数据包中包含的指令为发送数据指令,则获取所述发送数据指令中的APDU,将获取到的APDU发送给智能卡,并判断所述智能卡返回的数据是否为延时申请,是则向所述第一处理器发送所述预设类型的应答,执行步骤A23,否则根据所述智能卡返回的数据向所述第一处理器返回应答,执行步骤A23。
18.如权利要求17所述的方法,其特征在于,所述步骤A22中还包括:若接收到的数据包中包含的指令为上电指令,则初始化智能卡接口,给所述智能卡上电,接收所述智能卡返回的复位应答,并根据所述复位应答设置传输协议类型和所述智能卡接口,并向所述第一处理器返回应答,执行步骤A23;
所述传输协议类型包括:异步半双工字符传输协议和异步半双工分组协议。
19.如权利要求18所述的方法,其特征在于,所述根据所述复位应答设置传输协议类型具体包括:当所述复位应答中不包含预设参数、或者包含预设参数且预设参数的低半字节为第一预设值时,设置传输协议类型为所述异步半双工字符传输协议;当所述复位应答中包含预设参数且所述预设参数的低半字节等于第二预设值、或者包含预设参数且所述预设参数中包含低半字节等于第二预设值的预设参数时,设置所述传输协议类型为所述异步半双工分组传输协议。
20.如权利要求18所述的方法,其特征在于,所述将获取到的APDU发送给智能卡之前,还包括判断所述传输协议类型,若为所述异步半双工分组传输协议,则执行所述将获取到的APDU发送给智能卡,若为所述异步半双工字符传输协议,则执行以下步骤:
步骤2-1、发送获取到的APDU的数据头给所述智能卡,判断所述智能卡返回的数据是否为预设过程字节,是则向所述第一处理器发送预设类型的应答,返回步骤A21,否则执行步骤2-2;
步骤2-2、判断是否有APDU数据域需要发送,是则向所述智能卡发送APDU数据域,接收所述智能卡返回的数据,并根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤A21,否则根据所述智能卡返回的数据向所述第一处理器返回应答,返回步骤A21。
21.如权利要求13所述的方法,其特征在于,所述查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同之前,还包括:判断是否到达卡槽状态定时查询时间,若未到达则返回步骤A21,若到达则执行所述查询当前时刻卡槽的状态,并判断与上一次记录的卡槽状态是否相同。
22.如权利要求13所述的方法,其特征在于,所述步骤A10之前还包括:所述第一处理器进行初始化,判断USB枚举是否成功,是则执行所述步骤A10,否则等待USB枚举成功。
23.如权利要求13所述的方法,其特征在于,所述步骤A20之前还包括:所述第二处理器进行初始化。
CN201510123078.7A 2015-03-20 2015-03-20 一种包含双处理器的读卡器的工作方法 Active CN104765710B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510123078.7A CN104765710B (zh) 2015-03-20 2015-03-20 一种包含双处理器的读卡器的工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510123078.7A CN104765710B (zh) 2015-03-20 2015-03-20 一种包含双处理器的读卡器的工作方法

Publications (2)

Publication Number Publication Date
CN104765710A true CN104765710A (zh) 2015-07-08
CN104765710B CN104765710B (zh) 2018-02-23

Family

ID=53647550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510123078.7A Active CN104765710B (zh) 2015-03-20 2015-03-20 一种包含双处理器的读卡器的工作方法

Country Status (1)

Country Link
CN (1) CN104765710B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297800A (zh) * 2019-06-29 2019-10-01 飞天诚信科技股份有限公司 一种主控芯片与安全芯片之间稳定通信的实现方法及系统
WO2021169690A1 (zh) * 2020-02-27 2021-09-02 Oppo广东移动通信有限公司 处理器通信方法和装置、电子设备、计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWM246733U (en) * 2003-01-28 2004-10-11 Inmax Technology Corp Card reader of IC card for health insurance
CN200947210Y (zh) * 2006-09-18 2007-09-12 深圳市德卡科技有限公司 智能卡的集成读写器
CN103902492A (zh) * 2014-04-21 2014-07-02 飞天诚信科技股份有限公司 一种读卡器的工作方法
CN104281825A (zh) * 2014-09-29 2015-01-14 飞天诚信科技股份有限公司 一种基于智能sd卡的读卡器的工作方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWM246733U (en) * 2003-01-28 2004-10-11 Inmax Technology Corp Card reader of IC card for health insurance
CN200947210Y (zh) * 2006-09-18 2007-09-12 深圳市德卡科技有限公司 智能卡的集成读写器
CN103902492A (zh) * 2014-04-21 2014-07-02 飞天诚信科技股份有限公司 一种读卡器的工作方法
CN104281825A (zh) * 2014-09-29 2015-01-14 飞天诚信科技股份有限公司 一种基于智能sd卡的读卡器的工作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
严旭等: "一种基于双CPU的无线通讯数据采集系统设计", 《中国仪器仪表》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297800A (zh) * 2019-06-29 2019-10-01 飞天诚信科技股份有限公司 一种主控芯片与安全芯片之间稳定通信的实现方法及系统
WO2021169690A1 (zh) * 2020-02-27 2021-09-02 Oppo广东移动通信有限公司 处理器通信方法和装置、电子设备、计算机可读存储介质

Also Published As

Publication number Publication date
CN104765710B (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
US20200366135A1 (en) Near field communication and wireless power
EP1764703B1 (en) A system for providing access to multiple data buffers of a data retaining and processing device
KR101725536B1 (ko) Pcie 프로토콜 스택을 이용하는 저전력 phy의 동작을 위한 디바이스, 방법 및 시스템
CN107908589B (zh) I3c验证从设备、主从设备的通信验证系统及方法
CN108255776B (zh) 一种兼容apb总线的i3c主设备、主从系统及通信方法
CN104901859A (zh) 一种axi/pcie总线转换装置
CN101581964B (zh) 计算机系统及外围设备驱动方法
CN104021101A (zh) 基于lpc1768平台的usb接口系统及实现方法
JP2010086524A (ja) 省電力機能を有するブリッジ装置
EP2815555B1 (en) Communication bridging between devices via multiple bridge elements
US8817287B2 (en) Image forming apparatus, method for controlling the same, and storage medium
CN101393542B (zh) 通过gpio端口支持usb接口的嵌入式设备及方法
CN103106166A (zh) 一种协议无关、可支持目标读写操作的pcie ip核用户逻辑接口设计方法
CN104270740A (zh) 一种共卡槽t卡和sim卡的检测方法
CN106649158B (zh) 通过i2c接口读写内部寄存器堆的装置及方法
CN202018576U (zh) 单片机通信模块
CN101350995B (zh) 一种移动终端模块间唤醒方法及应用该方法的多模终端
CN105718396B (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
CN104765710A (zh) 一种包含双处理器的读卡器的工作方法
CN106533621A (zh) 基于简化的modbus协议的永磁同步电机实时监控的通讯方法
CN212112457U (zh) 一种总线控制器
CN102323914A (zh) 一种自动检测韦根输入的控制器接口及控制方法
CN101477637B (zh) 一种数据通信方法、系统及智能卡读写器
CN103838694A (zh) 一种fpga高速读取usb接口数据的方法
CN116541329A (zh) 一种数据传输方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant