CN106295767B - 一种智能卡及其工作方法 - Google Patents
一种智能卡及其工作方法 Download PDFInfo
- Publication number
- CN106295767B CN106295767B CN201610621287.9A CN201610621287A CN106295767B CN 106295767 B CN106295767 B CN 106295767B CN 201610621287 A CN201610621287 A CN 201610621287A CN 106295767 B CN106295767 B CN 106295767B
- Authority
- CN
- China
- Prior art keywords
- data
- byte
- level
- card
- etu
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Credit Cards Or The Like (AREA)
Abstract
本发明公开了一种智能卡及其工作方法,属于智能卡技术领域。本发明公开的智能卡的模块化组成部分包括第一响应模块、第一收发模块、第一判断模块、第二判断模块、第二收发模块、第三判断模块和第二响应模块,其中第一收发模块分别与第一响应模块、第一判断模块和第二判断模块相连,第一判断模块还与第二响应模块相连,第二判断模块分别与第一收发模块、第一判断模块、第二收发模块、第三判断模块和第二响应模块相连,第二收发模块还与第三判断模块相连,第三判断模块还与第二响应模块相连。本发明提供的智能卡及其工作方法,既可适用于标准类型智能卡,又可适用于非标准类型的智能卡,兼容性强、安全性高。
Description
技术领域
本发明涉及智能卡技术领域,尤其涉及一种智能卡及其工作方法。
背景技术
随着智能卡应用的普及,刷卡成为了人民日常生活的一部分,但刷卡的环境却不一定是安全的。目前,对于交易场景的识别是由终端中的安全芯片来完成的,而对于交易的主体智能卡来说,本身并不知道交易发生的场景,如果在交易过程中终端未能即时发现卡片被非法替换、或者拔除,则会导致欺骗交易的发生。
发明内容
为解决现有技术中存在的技术问题,本发明提出了一种智能卡及其工作方法。
本发明采用的技术方案如下:
一种智能卡的工作方法,包括以下步骤:
步骤S1:卡片上电,向终端返回卡片应答;
步骤S2:卡片检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令头数据;
当卡片在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则卡片将接收到的1字节的数据记录为命令头数据的1个字节,在第11、12个etu保持I/O电平为高电平,执行步骤S3;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,执行步骤S3;
进一步的,当步骤S2中判断当前接收到的1字节的数据不正确时,还包括判断当前接收到的1字节的数据是否为所述命令头数据的第一个字节,是则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,并向终端返回预设字节数据,然后执行步骤S3;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,执行步骤S3。
步骤S3:卡片根据当前记录的命令头数据判断是否接收完成所述命令头数据,是则根据所述命令头数据确定命令类型,并执行步骤S4,否则返回执行步骤S2;
步骤S4:卡片根据所述命令类型判断是否要接收命令数据,是则根据所述命令头数据确定要接收的命令数据长度并执行步骤S5,否则执行步骤S7;
步骤S5:卡片检测I/O电平,当卡片检测到I/O电平为低电平时,开始接收终端发来的命令数据;
当卡片在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则卡片将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平,执行步骤S6;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,执行步骤S6;
步骤S6:卡片根据当前记录的命令数据和所述命令数据长度判断是否接收完成所述命令数据,是则执行步骤S7,否则返回执行步骤S5;
步骤S7:卡片根据所述命令类型执行相应处理并返回响应数据给终端。
一种智能卡,包括第一响应模块、第一收发模块、第一判断模块、第二判断模块、第二收发模块、第三判断模块和第二响应模块;
所述第一响应模块,用于卡片上电后向终端返回卡片应答,并触发所述第一收发模块;
所述第一收发模块,用于收到所述第一响应模块或第一判断模块的触发时,检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令头数据,在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令头数据的1个字节,在第11、12个etu保持I/O电平为高电平,触发第一判断模块;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第一判断模块;
所述第一判断模块,用于收到所述第一收发模块的触发时,判断所述第一收发模块是否接收完成所述命令头数据,是则根据所述第一收发模块接收到的命令头数据确定命令类型,并触发所述第二判断模块,否则触发所述第一收发模块;
所述第二判断模块,用于根据所述第一判断模块确定的所述命令类型判断是否要接收命令数据,是则根据所述第一收发模块接收到的命令头数据确定要接收的命令数据长度并触发第二收发模块,否则触发第二响应模块;
所述第二收发模块,用于收到所述第二判断模块或第三判断模块的触发时,检测I/O电平,当卡片检测到I/O电平为低电平时,开始接收终端发来的命令数据,在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平,触发第三判断模块;否则在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第三判断模块;
所述第三判断模块,用于收到所述第二收发模块的触发时,根据所述第二判断模块确定的所述命令数据长度判断所述第二收发模块是否接收完成所述命令数据,是则触发第二响应模块,否则触发第二收发模块;
所述第二响应模块,用于根据所述第一判断模块确定的所述命令类型执行相应处理并返回响应数据给所述终端。
进一步的,上述第一收发模块具体包括检测单元、接收单元、第一判断单元和第二判断单元;
所述检测单元,用于收到所述第一响应模块或第一判断模块的触发时,检测I/O电平,当检测到I/O电平为低电平时,触发接收单元;
所述接收单元,用于接收终端发来的命令头数据,每当在10个etu内接收到1字节的数据时,触发第一判断单元;
所述第一判断单元,用于判断所述接收单元当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令头的1个字节,在第11、12个etu保持I/O电平为高电平,触发第一判断模块;否则触发第二判断单元;
所述第二判断单元,用于判断所述接收单元当前接收到的1字节的数据是否为所述命令头数据的第一个字节,是则将接收到的1字节的数据记录为命令头的第一个字节,在第11、12个etu保持I/O电平为高电平,并向终端返回预设字节数据,然后触发第一判断模块;否则在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第一判断模块。
本发明的有益效果如下:本发明提供的智能卡及其工作方法,既可适用于标准类型智能卡,又可适用于非标准类型的智能卡,兼容性强。本发明提供的智能卡及其工作方法,还可以实现在交易过程中防止欺骗交易的发生,应用安全性高。
附图说明
图1是本发明实施例1提供的一种智能卡的工作方法流程图;
图2是图1中所示步骤8至步骤16的具体细化图;
图3是本发明实施例3提供的一种智能卡的模块组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的实施例中,etu(elementary time unit,基本时间单元),是通信协议里面通用的一个单位,是指I/O线上传输一个比特位所用的时钟周期个数。
在卡片和终端的通信过程中,卡片每收发一个字节的数据需要12个etu:起始位(1个etu)+数据位(8个etu)+奇偶校验位(1个etu)+错误检测位(2个etu),其中,在第1至第10个etu时卡片的I/O(输入/输出端口)为电信号接收状态,其中第1个etu时卡片的I/O电平为低电平,第2至第9个etu时卡片的I/O电平根据传输的数据位进行高低电平的变化,在第11、12个etu时卡片的I/O为电信号发送状态,且卡片的I/O电平根据传输的数据位正确与否保持I/O电平为高电平或低电平。
实施例1
本实施例提供的一种卡片的工作方法,如图1所示,包括以下步骤:
步骤1:卡片上电,向终端返回卡片应答;
步骤2:卡片检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令头数据;
当卡片在10个etu内接收到1字节的数据时,执行步骤3;
步骤3:卡片判断当前接收到的1字节的数据是否正确,是则执行步骤6,否则执行步骤4;
优选的,卡片将10个etu内传输的第2至第9个比特位数据作为接收到的1字节的数据,将10个etu内传输的第10个比特位数据作为校验位,根据所述校验位验证所述接收到的1字节的数据是否正确。例如,判断第2至第10个etu中传输的比特位为“1”的个数是否为偶数个,是则判断结果为当前正在接收的1字节的数据正确,否则判断结果为当前正在接收的1字节的数据错误。
步骤4:卡片判断当前接收到的1字节的数据是否是命令头的第一个字节,是则执行步骤5,否则执行步骤13;
步骤5:卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,向终端返回预设字节数据,返回执行步骤2;
具体的,卡片在第11、12个etu保持I/O电平为低电平,在下一个etu保持I/O电平为高电平,并以etu为单位向终端返回预设字节数据。
当终端接收到卡片返回的预设字节数据时,终端根据预设字节数据可以确定当前接收数据出错的特定卡片类型,方便终端确定卡片是否被替换,从而防止欺骗交易的发生。
进一步的,本步骤还可以是,卡片在第11、12个etu保持I/O电平为低电平,根据接收到的10个etu中的第2至第9个etu中传输的比特位组成一个字节数据,将得到的一个字节数据作为预设字节数据返回给终端。
例如,向终端返回的预设字节数据为01。
优选的,上述步骤3、步骤4、步骤5还可以替换为如下内容:卡片判断当前正在接收的1字节的数据是否正确,是则执行步骤6,否则执行步骤13。
步骤6:卡片将接收到的1字节的数据记录为命令头的1个字节,在第11、12个etu保持I/O电平为高电平;
具体的,将10个etu中第2至第9个etu中传输的比特位作为接收到的1字节的数据,将所述1字节的数据记录为命令头的一个字节。
步骤7:卡片判断是否接收完长度为5个字节的命令头,是则执行步骤8,否则返回执行步骤2;
具体的,卡片判断当前接收到的命令头的字节的个数是否达到5个,是则表示接收完长度为5个字节的命令头,执行步骤8,否则返回执行步骤2。
步骤8:卡片根据命令头的第二个字节确定命令类型;
例如,若接收到的5个字节的命令头为00A4 00 00 02,根据第二个字节A4确定的命令类型为选择文件命令;
若接收到的5个字节的命令头为00B0 00 00 10,根据第二个字节B0确定的命令类型为读文件命令;
若接收到的5个字节的命令头为00D6 00 00 01,根据第二个字节D6确定的命令类型为更新文件命令。
步骤9:卡片依据所述命令类型判断是否要接收命令数据,是则执行步骤10,否则执行步骤16;
例如,若命令类型为选择文件命令或更新文件命令则需要接收命令数据,若命令类型为读文件命令则不需要接收命令数据。
步骤10:卡片向终端返回接收到的命令头的第二个字节,根据命令头的第五个字节确定命令数据的长度;
例如,接收到的命令头为00A4 00 00 02,则卡片向终端返回A4,根据命令头确定的命令数据的长度为2个字节。
步骤11:卡片检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令数据;
当卡片在10个etu内接收到1字节的数据时,执行步骤12;
步骤12:卡片判断当前接收到的1字节的数据是否正确,是则执行步骤14,否则执行步骤13;
优选的,卡片判断10个etu中的第2至第10个etu中比特位为“1”的个数是否为偶数个,是则判断结果为当前正在接收的1字节数据正确,否则判断结果为当前正在接收的1字节的数据错误。
步骤13:卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,然后返回执行步骤2;
步骤14:卡片将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平;
具体的,卡片将10个etu中的第2至第9个etu传输的比特位记录为命令数据的1个字节。
例如,10个etu中第2至第9个etu传输的比特位为00000001,则记录得到的命令数据的1个字节为01。
步骤15:卡片根据所述命令数据的长度判断命令数据是否全部接收完成,是则执行步骤16,否则返回执行步骤11;
具体的,卡片判断当前接收到的命令数据的字节个数是否达到所述命令数据的长度,是则表示全部接收完成,执行步骤16,否则返回执行步骤11。
步骤16:卡片根据命令类型执行相应处理并返回响应数据给终端,然后返回步骤2。
本实施例中,卡片既可以接收标准指令并根据标准指令的类型执行相应处理并返回响应数据给终端,也可以接收非标准指令并执行相应处理以及返回响应数据给终端,从而增强了卡片的兼容性。例如,卡片可以接收的标准指令包括读文件命令、更新文件命令等,卡片可以接收的非标准指令可以包括创建文件命令。
实施例2
本实施例中,针对卡片接收到的命令以及所执行的操作的不同,图1中所示步骤8至步骤16可细化为图2所示内容,具体包括卡片执行以下步骤:
步骤a1:根据命令头的第二个字节确定命令类型;
当命令类型是选择文件命令或更新文件命令时,执行步骤a2;当命令类型是读文件命令时,执行步骤a9;
具体的,判断命令头的第二个字节,若是第一预设值则确定命令类型是选择文件命令,若是第二预设值则确定命令类型是读文件命令,若是第三预设值则确定命令类型是更新文件命令。
进一步的,本步骤还可以包括,当所述命令头的第二字节若是第五预设值则确定命令类型是创建文件命令,执行步骤a2。若是第四预设值则确定命令类型是其他,其中第四预设值满足如下要求:高位起的第2、第3个比特位为1或者高位起的第1、第2个比特位为1。相应的,若所述命令类型是其他则向终端返回接收到的所述命令头的第二个字节,等待终端复位。当等待终端复位时,卡片与终端之间通信中断。
例如,第一预设值为A4,第二预设值为B0,第三预设值为D6,第四预设值为63或93,第五预设值为E0。
步骤a2:向终端返回接收到的命令头的第二个字节,根据命令头的第五个字节确定命令数据的长度;
例如,接收到的命令头为00D6 00 00 01,向终端返回D6,根据命令头确定的命令数据的长度为1个字节。
步骤a3:当检测到I/O电平为低电平时,开始接收终端发来的命令数据;
当卡片在10个etu内接收到1字节的数据时,执行步骤a4;
例如,10个etu内传输的10个比特位数据为0000000000,接收到的1字节的数据为0x00。
步骤a4:判断当前接收到的1字节的数据是否正确,是则执行步骤a6,否则执行步骤a5;
优选的,卡片判断10个etu内的第2至第10个etu中比特位为“1”的个数是否为偶数个,是则判断结果为当前接收到的1字节的数据正确,否则判断结果为当前接收到的1字节的数据错误。
例如,第2至第10个etu中比特位为“1”的个数为0,则本步骤判断结果为当前正在接收的1字节的数据正确。
步骤a5:在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,然后执行图1所示步骤2;
步骤a6:将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平;
具体的,卡片根据接收到的10个etu中的第2至第9个etu中传输的比特位得到命令数据的一个字节。
例如,接收到的10个etu中的第2至第9个etu中传输的比特位为000000000,则本步骤得到命令数据的一个字节为00。
步骤a7:根据所述命令数据的长度判断命令数据是否全部接收完成,是则执行步骤a8,否则返回执行步骤a3;
例如,命令数据的长度为1个字节,判断当前接收到的命令数据的字节个数是否为1,是则全部接收完成,否则未全部接收完成。
步骤a8:当所述命令类型是选择文件命令时,根据接收到的命令数据确定文件ID,根据文件ID确定当前文件,根据当前文件的文件控制信息(FCI)和表示操作成功的状态字组成响应数据返回给终端;当所述命令类型是更新文件命令时,根据接收到的命令数据更新当前文件的文件内容,将表示操作成功的状态字作为响应数据返回给终端;然后执行图1所示步骤2;
例如,接收到的选择文件命令为00A4 00 00 02 00 01,根据命令数据00 01得到文件ID,根据文件ID确定当前文件,当前文件的FCI为6F17841001020304050607080910111213141516A503880101,表示操作成功的状态字为9000,则返回给终端的响应数据为6F17841001020304050607080910111213141516A503880101 90 00。
所述根据接收到的命令数据更新当前文件的文件内容具体为,根据所述更新文件命令的命令头的第3、4字节确定偏移地址,用所述命令数据更新所述文件内容中与所述偏移地址所对应的数据。
例如,接收到的更新文件命令为00D6 00 00 01 00,当前文件的文件内容为01020304050607080910111213141516,根据命令头的第3、4字节确定的偏移地址为0x0000即文件内容的起始地址,则更新后的文件内容为00020304050607080910111213141516,返回给终端的响应数据为90 00。
进一步的,本步骤还可以包括,当所述命令类型是创建文件命令时,根据接收到的命令数据中包含的文件ID创建文件,并根据表示操作成功的状态字组成响应数据返回给终端。例如,接收到的创建文件命令为80E0000011001500000E0000000000000000FFFFFFFF,则创建文件ID为0015对应的文件的文件内容为00000E0000000000000000FFFFFFFF,返回给终端的响应数据为90 00。
步骤a9:从当前文件中读取文件内容,根据读取的文件内容和表示操作成功的状态字组成响应数据返回给终端,然后执行图1所示步骤2。
具体的,根据所述读文件命令的第3、4字节确定偏移地址,根据所述读文件命令的第5字节确定要读取的文件内容的长度,以所述偏移地址为起始地址,从当前文件的文件内容中读取与所述长度所对应的数据作为读取的文件内容。
优选的,所述当前文件的文件内容为16个字节的数据。
例如,接收到的读文件命令为00B0 00 00 10,当前文件的文件内容为01020304050607080910111213141516,根据读文件命令的第3、4字节确定的偏移地址为0x0000即文件内容的起始地址,根据第5字节确定读取的文件的内容的长度为16,则返回给终端的响应数据为01020304050607080910111213141516 9000。
实施例3
本实施例提供了一种智能卡,本实施例提供的智能卡适用于实施例1和2提供的工作方法,如图3所示,本实施例中所述智能卡(简称卡片)包括第一响应模块101、第一收发模块102、第一判断模块103、第二判断模块104、第二收发模块105、第三判断模块106和第二响应模块107;其中第一收发模块102分别与第一响应模块101、第一判断模块103和第二判断模块104相连,第一判断模块103还与第二响应模块107相连,第二判断模块104分别与第一收发模块102、第一判断模块103、第二收发模块105、第三判断模块106和第二响应模块107相连,第二收发模块105还与第三判断模块103相连,第三判断模块106还与第二响应模块107相连,上述各个组成模块的的功能具体如下:
所述第一响应模块101,用于卡片上电后向终端返回卡片应答,并触发所述第一收发模块102;
所述第一收发模块102,用于收到所述第一响应模块101或第一判断模块103的触发时,检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令头数据,在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令头数据的1个字节,在第11、12个etu保持I/O电平为高电平,触发第一判断模块103;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第一判断模块103;
所述第一判断模块103,用于收到所述第一收发模块102的触发时,判断所述第一收发模块102是否接收完成所述命令头数据,是则根据所述第一收发模块102接收到的命令头数据确定命令类型,并触发所述第二判断模块104,否则再次触发所述第一收发模块102;
所述第二判断模块104,用于根据所述第一判断模块103确定的所述命令类型判断是否要接收命令数据,是则根据所述第一收发模块102接收到的命令头数据确定要接收的命令数据长度并触发第二收发模块105,否则触发第二响应模块107;
所述第二收发模块105,用于收到所述第二判断模块104或第三判断模块106的触发时,检测I/O电平,当卡片检测到I/O电平为低电平时,开始接收终端发来的命令数据,在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平,触发第三判断模块106;否则在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第三判断模块106;
所述第三判断模块106,用于收到所述第二收发模块105的触发时,根据所述第二判断模块104确定的所述命令数据长度判断所述第二收发模块105是否接收完成所述命令数据,是则触发第二响应模块107,否则再次触发第二收发模块105;
所述第二响应模块107,用于根据所述第一判断模块103确定的所述命令类型执行相应处理并返回响应数据给所述终端。
具体的,本实施例中所述第一收发模块102包括第一验证单元;
所述第一验证单元,具体用于将10个etu内传输的第2至第9个比特位数据作为接收到的1字节的数据,将10个etu内传输的第10个比特位数据作为校验位,根据所述校验位验证所述第一收发模块102当前接收到的1字节的数据是否正确;
本实施例中所述第二收发模块105包括第二验证单元;
所述第二验证单元,具体用于用于将10个etu内传输的第2至第9个比特位数据作为接收到的1字节的数据,将10个etu内传输的第10个比特位数据作为校验位,根据所述校验位验证所述第二收发模块105当前接收到的1字节的数据是否正确。
本实施例中所述第一判断模块103,具体用于判断所述第一收发模块102当前接收到的所述命令头数据的长度是否达到预设长度,是则根据所述命令头数据的第二个字节确定命令类型,并触发所述第二判断模块104,否则再次触发所述第一收发模块102。
本实施例中所述第二判断模块104,具体用于判断所述第一判断模块103确定的所述命令类型是否是预设类型命令,是则根据所述第一收发模块102接收到的命令头数据的第五个字节确定要接收的命令数据长度并触发第二收发模块105,否则触发第二响应模块107。所述预设类型命令包括选择文件命令、更新文件命令和创建文件命令。
进一步的,本实施例中所述第一收发模块102还可以是具体包括检测单元、接收单元、第一判断单元和第二判断单元;
其中,所述检测单元,用于收到所述第一响应模块101或第一判断模块103的触发时,检测I/O电平,当检测到I/O电平为低电平时,触发接收单元;
所述接收单元,用于接收终端发来的命令头数据,每当在10个etu内接收到1字节的数据时,触发第一判断单元;
所述第一判断单元,用于判断所述接收单元当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令头的1个字节,在第11、12个etu保持I/O电平为高电平,触发第一判断模块103;否则触发第二判断单元;
所述第二判断单元,用于判断所述接收单元当前接收到的1字节的数据是否为所述命令头数据的第一个字节,是则将接收到的1字节的数据记录为命令头的第一个字节,在第11、12个etu保持I/O电平为高电平,并向终端返回预设字节数据,然后触发第一判断模块103;否则在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第一判断模块103。所述预设字节数据具体为所述命令头数据的第一个字节。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种智能卡的工作方法,其特征在于,包括:
步骤S1:卡片上电,向终端返回卡片应答;
步骤S2:卡片检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令头数据;
当卡片在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则卡片将接收到的1字节的数据记录为命令头数据的1个字节,在第11、12个etu保持I/O电平为高电平,执行步骤S3;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,执行步骤S3;
步骤S3:卡片根据当前记录的命令头数据判断是否接收完成所述命令头数据,是则根据所述命令头数据确定命令类型,并执行步骤S4,否则返回执行步骤S2;
步骤S4:卡片根据所述命令类型判断是否要接收命令数据,是则根据所述命令头数据确定要接收的命令数据长度并执行步骤S5,否则执行步骤S7;
步骤S5:卡片检测I/O电平,当卡片检测到I/O电平为低电平时,开始接收终端发来的命令数据;
当卡片在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则卡片将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平,执行步骤S6;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,执行步骤S6;
步骤S6:卡片根据当前记录的命令数据和所述命令数据长度判断是否接收完成所述命令数据,是则执行步骤S7,否则返回执行步骤S5;
步骤S7:卡片根据所述命令类型执行相应处理并返回响应数据给终端;
当所述步骤S2中判断当前接收到的1字节的数据不正确时,还包括判断当前接收到的1字节的数据是否为所述命令头数据的第一个字节,是则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,并向终端返回预设字节数据,然后执行步骤S3;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,执行步骤S3。
2.根据权利要求1所述的方法,其特征在于:所述当卡片在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,具体包括:所述卡片将10个etu内传输的第2至第9个比特位数据作为接收到的1字节的数据,将10个etu内传输的第10个比特位数据作为校验位,根据所述校验位验证所述接收到的1字节的数据是否正确。
3.根据权利要求1所述的方法,其特征在于:所述步骤S3具体为,所述卡片判断当前记录的所述命令头数据的长度是否达到预设长度,是则根据所述命令头数据的第二个字节确定命令类型,并执行步骤S4,否则返回执行步骤S2。
4.根据权利要求1所述的方法,其特征在于:所述预设字节数据具体为所述命令头数据的第一个字节。
5.根据权利要求1所述的方法,其特征在于:所述步骤S4具体为,所述卡片判断所述命令类型,若是预设类型命令则需要接收命令数据,根据所述命令头数据的第五个字节确定要接收的命令数据长度并执行步骤S5,否则执行步骤S7。
6.根据权利要求5所述的方法,其特征在于:所述预设类型命令包括选择文件命令、更新文件命令和创建文件命令。
7.一种智能卡,其特征在于:包括第一响应模块、第一收发模块、第一判断模块、第二判断模块、第二收发模块、第三判断模块和第二响应模块;
所述第一响应模块,用于卡片上电后向终端返回卡片应答,并触发所述第一收发模块;
所述第一收发模块,用于收到所述第一响应模块或第一判断模块的触发时,检测I/O电平,当检测到I/O电平为低电平时,开始接收终端发来的命令头数据,在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令头数据的1个字节,在第11、12个etu保持I/O电平为高电平,触发第一判断模块;否则卡片在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第一判断模块;
所述第一判断模块,用于收到所述第一收发模块的触发时,判断所述第一收发模块是否接收完成所述命令头数据,是则根据所述第一收发模块接收到的命令头数据确定命令类型,并触发所述第二判断模块,否则触发所述第一收发模块;
所述第二判断模块,用于根据所述第一判断模块确定的所述命令类型判断是否要接收命令数据,是则根据所述第一收发模块接收到的命令头数据确定要接收的命令数据长度并触发第二收发模块,否则触发第二响应模块;
所述第二收发模块,用于收到所述第二判断模块或第三判断模块的触发时,检测I/O电平,当卡片检测到I/O电平为低电平时,开始接收终端发来的命令数据,在10个etu内接收到1字节的数据时,判断当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令数据的1个字节,在第11、12个etu保持I/O电平为高电平,触发第三判断模块;否则在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第三判断模块;
所述第三判断模块,用于收到所述第二收发模块的触发时,根据所述第二判断模块确定的所述命令数据长度判断所述第二收发模块是否接收完成所述命令数据,是则触发第二响应模块,否则触发第二收发模块;
所述第二响应模块,用于根据所述第一判断模块确定的所述命令类型执行相应处理并返回响应数据给所述终端;
所述第一收发模块具体包括检测单元、接收单元、第一判断单元和第二判断单元;
所述检测单元,用于收到所述第一响应模块或第一判断模块的触发时,检测I/O电平,当检测到I/O电平为低电平时,触发接收单元;
所述接收单元,用于接收终端发来的命令头数据,每当在10个etu内接收到1字节的数据时,触发第一判断单元;
所述第一判断单元,用于判断所述接收单元当前接收到的1字节的数据是否正确,是则将接收到的1字节的数据记录为命令头的1个字节,在第11、12个etu保持I/O电平为高电平,触发第一判断模块;否则触发第二判断单元;
所述第二判断单元,用于判断所述接收单元当前接收到的1字节的数据是否为所述命令头数据的第一个字节,是则将接收到的1字节的数据记录为命令头的第一个字节,在第11、12个etu保持I/O电平为高电平,并向终端返回预设字节数据,然后触发第一判断模块;否则在第11、12个etu保持I/O电平为低电平之后恢复I/O电平为高电平,触发第一判断模块。
8.根据权利要求7所述的智能卡,其特征在于:所述第一收发模块包括第一验证单元;
所述第一验证单元,具体用于将10个etu内传输的第2至第9个比特位数据作为接收到的1字节的数据,将10个etu内传输的第10个比特位数据作为校验位,根据所述校验位验证所述第一收发模块当前接收到的1字节的数据是否正确;
所述第二收发模块包括第二验证单元;
所述第二验证单元,具体用于将10个etu内传输的第2至第9个比特位数据作为接收到的1字节的数据,将10个etu内传输的第10个比特位数据作为校验位,根据所述校验位验证所述第二收发模块当前接收到的1字节的数据是否正确。
9.根据权利要求7所述的智能卡,其特征在于:所述第一判断模块,具体用于判断所述第一收发模块当前接收到的所述命令头数据的长度是否达到预设长度,是则根据所述命令头数据的第二个字节确定命令类型,并触发所述第二判断模块,否则触发所述第一收发模块。
10.根据权利要求7所述的智能卡,其特征在于:所述预设字节数据具体为所述命令头数据的第一个字节。
11.根据权利要求7所述的智能卡,其特征在于:所述第二判断模块,具体用于判断所述第一判断模块确定的所述命令类型是否是预设类型命令,是则根据所述第一收发模块接收到的命令头数据的第五个字节确定要接收的命令数据长度并触发第二收发模块,否则触发第二响应模块。
12.根据权利要求11所述的智能卡,其特征在于:所述预设类型命令包括选择文件命令、更新文件命令和创建文件命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610621287.9A CN106295767B (zh) | 2016-07-31 | 2016-07-31 | 一种智能卡及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610621287.9A CN106295767B (zh) | 2016-07-31 | 2016-07-31 | 一种智能卡及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106295767A CN106295767A (zh) | 2017-01-04 |
CN106295767B true CN106295767B (zh) | 2019-03-15 |
Family
ID=57663870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610621287.9A Active CN106295767B (zh) | 2016-07-31 | 2016-07-31 | 一种智能卡及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106295767B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010111984A (ko) * | 2000-06-14 | 2001-12-20 | 김해성 | 아이에스오/아이이씨 14443 타입 에이, 타입 비 공용비접촉식 카드 리더 장치 |
CN101425120A (zh) * | 2008-11-28 | 2009-05-06 | 北京飞天诚信科技有限公司 | 读卡器及其执行方法 |
CN101582112A (zh) * | 2009-03-31 | 2009-11-18 | 北京飞天诚信科技有限公司 | 一种智能卡转换设备及其使用方法 |
CN101702195A (zh) * | 2009-10-30 | 2010-05-05 | 北京飞天诚信科技有限公司 | 时序控制方法和读卡器 |
CN102307100A (zh) * | 2011-09-08 | 2012-01-04 | 飞天诚信科技股份有限公司 | 一种数据处理装置及其数据处理方法 |
CN102346862A (zh) * | 2011-09-20 | 2012-02-08 | 飞天诚信科技股份有限公司 | 非接触式卡的认证方法和装置 |
CN103902492A (zh) * | 2014-04-21 | 2014-07-02 | 飞天诚信科技股份有限公司 | 一种读卡器的工作方法 |
CN104915616A (zh) * | 2015-05-15 | 2015-09-16 | 飞天诚信科技股份有限公司 | 一种访问智能卡的方法和读卡器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012134872A (ja) * | 2010-12-22 | 2012-07-12 | Toshiba Corp | カード状電子機器、通信端末および認証方法 |
-
2016
- 2016-07-31 CN CN201610621287.9A patent/CN106295767B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010111984A (ko) * | 2000-06-14 | 2001-12-20 | 김해성 | 아이에스오/아이이씨 14443 타입 에이, 타입 비 공용비접촉식 카드 리더 장치 |
CN101425120A (zh) * | 2008-11-28 | 2009-05-06 | 北京飞天诚信科技有限公司 | 读卡器及其执行方法 |
CN101582112A (zh) * | 2009-03-31 | 2009-11-18 | 北京飞天诚信科技有限公司 | 一种智能卡转换设备及其使用方法 |
CN101702195A (zh) * | 2009-10-30 | 2010-05-05 | 北京飞天诚信科技有限公司 | 时序控制方法和读卡器 |
CN102307100A (zh) * | 2011-09-08 | 2012-01-04 | 飞天诚信科技股份有限公司 | 一种数据处理装置及其数据处理方法 |
CN102346862A (zh) * | 2011-09-20 | 2012-02-08 | 飞天诚信科技股份有限公司 | 非接触式卡的认证方法和装置 |
CN103902492A (zh) * | 2014-04-21 | 2014-07-02 | 飞天诚信科技股份有限公司 | 一种读卡器的工作方法 |
CN104915616A (zh) * | 2015-05-15 | 2015-09-16 | 飞天诚信科技股份有限公司 | 一种访问智能卡的方法和读卡器 |
Also Published As
Publication number | Publication date |
---|---|
CN106295767A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6193859B2 (ja) | Rfidカードの管理方法及び端末 | |
CN105261130B (zh) | 一种智能pos终端 | |
EP1457901A2 (en) | System and method for simulating USB smart cards connected to USB host | |
RU2014124198A (ru) | Средство чтения смарт-карты с безопасной функцией журналирования | |
CN101931655A (zh) | 一种在线状态的提示方法与系统 | |
CN104732376B (zh) | 支付密码的重置方法、终端及系统 | |
CN107422838B (zh) | 一种穿戴式设备、解锁控制系统及解锁控制方法 | |
CN101495972A (zh) | 具有单步读取和写入命令的rf标签系统 | |
CN102982270A (zh) | 一种基于bios的计算机指纹登陆系统 | |
CN105005724A (zh) | 一种基于密码的解锁屏方法及通讯终端 | |
CN105654003B (zh) | 一种ic卡到位检测方法及装置 | |
CN105184337A (zh) | 一种nfc设备进行智能卡应用检测方法和系统 | |
CN107943724A (zh) | 一种寻找外接设备的方法、装置、终端设备及存储介质 | |
CN106295767B (zh) | 一种智能卡及其工作方法 | |
CN103873256A (zh) | 一种nfc令牌的工作方法 | |
EP3236405B1 (en) | Selecting an application on a card | |
US20210271774A1 (en) | Method for determining data falsification and electronic device for supporting same | |
EP3321772A1 (en) | Human body communication based wireless input system and implementation method therefor | |
WO2020010956A1 (zh) | 智能卡外设装置、指令处理方法、电子设备和存储介质 | |
EP2367108A2 (en) | Portable electronic device, communication device, and command processing method | |
CN104102870B (zh) | 电子签名认证扩展设备及信息处理方法 | |
CN105049562A (zh) | 一种用户识别卡的解锁方法及通讯终端 | |
CN209657346U (zh) | 一种可物理防伪的鞋服防伪rfid卡 | |
US20170206520A1 (en) | Control of applications in a mobile terminal | |
CN103326752B (zh) | 为电子设备之间通信借助接口去活的控制方法和相应设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |