CN101702195A - 时序控制方法和读卡器 - Google Patents
时序控制方法和读卡器 Download PDFInfo
- Publication number
- CN101702195A CN101702195A CN200910236987A CN200910236987A CN101702195A CN 101702195 A CN101702195 A CN 101702195A CN 200910236987 A CN200910236987 A CN 200910236987A CN 200910236987 A CN200910236987 A CN 200910236987A CN 101702195 A CN101702195 A CN 101702195A
- Authority
- CN
- China
- Prior art keywords
- control value
- preset control
- bit
- level
- card reader
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims description 41
- 238000006243 chemical reaction Methods 0.000 claims description 25
- 238000012423 maintenance Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 3
- 230000006854 communication Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000005096 rolling process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种时序控制方法和读卡器,属于智能卡技术领域。所述方法包括:读卡器开启时序控制器,将IO电平驱动为低电平,将第一个比特位转换为电平发送出去;当时序控制器达到第一预设控制值时,开始按照约定协议依次将第二个比特位至第九个比特位转换为电平发送出去,在时序控制器依次达到第二至第九预设控制值时,依次完成第二至第九个比特位的发送;根据约定协议计算第十个比特位,并将第十个比特位转换为电平发送出去,当时序控制器达到第十预设控制值时,第十个比特位发送完成,读卡器将电平驱动为高电平。所述读卡器包括时序控制模块、发送模块和计算模块。本发明实现了更精准的时序控制。
Description
技术领域
本发明涉及智能卡技术领域,特别涉及一种时序控制方法和读卡器。
背景技术
IC卡(Integrated Circuit Card,集成电路卡)是继磁卡之后出现的又一种新型信息工具,IC卡是通过卡里的集成电路进行信息存储的。IC卡在有些国家和地区也称智能卡(smartcard)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片的形式。目前,IC卡已经十分广泛地应用于包括金融、交通、社保等很多领域。
IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD(Interface Device)。IFD内的CPU通过一个接口电路与IC卡相连并进行通信。根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C(Inter-Integrated Circuit)通信等不同的IC卡读写芯片来作为IFD内的CPU。
在现有技术中,IC卡读写器通常在开放过程中使用固定的频率,并且波特率和基本时间互为倒数,波特率由复位应答ATR(Answer To Reset)中的TA1的值决定。由于IC卡传输类型多样,所以波特率种类多样,不仅导致时序多变,而且造成了IC卡读写器固件程序在设计上比较复杂。另外,由于IC卡读写器与IC卡之间的通讯和IC卡的时钟频率关系密切,一旦IC卡的时钟频率改变,则所有涉及时序控制的参数也随之改变,而且,在通讯过程中要随时记录IC卡的时钟频率,以及频繁地根据最新的时钟频率进行时序控制计算,从而导致通讯过程中的计算量增大,时序控制麻烦,影响IC卡读写器与IC卡的通讯效率,且频繁变化的时钟频率也会带来IC卡读写器与IC卡之间较高的通讯误码率。
发明内容
为了克服现有技术的缺点,本发明实施例提供了一种时序控制方法和读卡器。所述技术方案如下:
一种时序控制方法,用于读卡器向智能卡发送数据,所述方法包括:
所述读卡器开启时序控制器,将IO电平驱动为低电平,将第一个比特位转换为电平发送出去;
当所述时序控制器达到第一预设控制值时,所述读卡器将待发送数据字节变换为第二个比特位至第九个比特位,并按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,在所述时序控制器依次达到第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值和第九预设控制值时,依次完成所述第二个比特位至第九个比特位的发送;
根据所述约定协议计算第十个比特位,并将所述计算得到的第十个比特位转换为电平发送出去,当所述时序控制器达到第十预设控制值时,所述第十个比特位发送完成,所述读卡器将电平驱动为高电平。
所述约定协议包括正向协议和反向协议。
所述按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,具体包括:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为所述数据字节最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
根据所述约定协议计算第十个比特位,具体包括:
当所述约定协议是正向协议时,采用偶校验方式计算出第十个比特位;
当所述约定协议是反向协议时,采用奇校验方式计算出第十个比特位。
所述时序控制器是计数器,所述读卡器开启时序控制器具体为:所述读卡器将所述计数器清零,开始计数。
所述第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值和第十预设控制值是根据时钟率转换因子和波特率调整因子预先设定的不同的计数值。
所述时序控制器是定时器,所述读卡器开启时序控制器具体为:所述读卡器加载所述定时器,清零并开始计时。
所述第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值和第十预设控制值中的任一项是一个计时值,且为预先根据时钟率转换因子、波特率调整因子和智能卡的时钟频率设定的。
所述读卡器将电平驱动为高电平之后,还包括:
所述读卡器判断是否需要对数据位进行确认;
如果需要确认,则接收所述智能卡发来的电平,在所述时序控制器达到第十一预设控制值时,对所述接收的电平进行采样,并根据采样值判断所述第二个比特位至第九个比特位是否发送成功,然后在所述时序控制器达到第十二预设控制值时,保持电平为高电平;
如果不需要确认,则当所述时序控制器达到所述第十一预设控制值时,保持电平为高电平。
所述时序控制器为定时器,所述第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值、第十预设控制值、第十一预设控制值和第十二预设控制值均相同。
一种读卡器,所述读卡器包括:
时序控制模块,用于当所述读卡器向智能卡发送数据时,控制时序;
发送模块,用于将IO电平驱动为低电平,将第一个比特位转换为电平发送出去,当所述时序控制模块达到第一预设控制值时,所述读卡器将待发送数据字节变换为第二个比特位至第九个比特位,按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,在所述时序控制模块依次达到第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值和第九预设控制值时,依次完成所述第二个比特位至第九个比特位的发送,并将第十个比特位转换为电平发送出去,当所述时序控制器达到第十预设控制值时,所述第十个比特位发送完成,并将电平驱动为高电平;
计算模块,用于根据约定协议计算出所述第十个比特位。
所述发送模块按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,具体包括:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述数据字节中的第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为数据最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
所述时序控制模块具体为计数器或定时器。
所述读卡器还包括:
判断模块,用于在所述第十个比特位发送完成之后,判断是否需要对数据位进行确认;
处理模块,用于如果所述判断模块判断出需要对数据位进行确认,则接收所述智能卡发来的电平,在所述时序控制模块达到第十一预设控制值时,对所述接收的电平进行采样,并根据采样值判断所述第二个比特位至第九个比特位是否发送成功,然后当所述时序控制模块达到第十二预设控制值时,保持电平为高电平,如果所述判断模块判断出不需要确认,则当所述时序控制模块达到第十一预设控制值时,保持电平为高电平。
本发明实施例提供的上述技术方案,在不考虑智能卡的时钟频率的情况下,通过计数智能卡的时钟频率的个数,来完成对时序的控制,并简化了读卡器的程序结构,提高了读卡器与智能卡之间数据收发的稳定性,可以实现更精准的时序控制,降低了时序控制的复杂度和通讯误码率,同时代码还可以任意移植,具有良好的可移植性。上述技术方案完全实现了一个与智能卡时钟频率无关的一个时序控制平台,只要能够获取到卡片的参数F和D,就可以使用在任何的硬件平台的读卡器上。
附图说明
图1是本发明实施例提供的读卡器和智能卡之间的一种传输字符的时序图;
图2是本发明实施例提供的读卡器和智能卡之间的另一种传输字符的时序图;
图3是本发明实施例1提供的采用计数方式进行时序控制的方法流程图;
图4是本发明实施例2提供的采用定时方式进行时序控制的方法流程图;
图5是本发明实施例3提供的读卡器结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种时序控制方法,用于读卡器向智能卡发送数据,包括:
所述读卡器开启时序控制器,将IO电平驱动为低电平,将第一个比特位转换为电平发送出去;
当所述时序控制器达到第一预设控制值时,所述读卡器将待发送数据字节变换为第二个比特位至第九个比特位,并按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,在所述时序控制器依次达到第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值和第九预设控制值时,依次完成所述第二个比特位至第九个比特位的发送;
根据所述约定协议计算第十个比特位,并将所述计算得到的第十个比特位转换为电平发送出去,当所述时序控制器达到第十预设控制值时,所述第十个比特位发送完成,所述读卡器将电平驱动为高电平。
在本发明实施例中,读卡器与智能卡在进行通讯之前,预先设定读卡器与智能卡之间采用的协议类型,预先设定读卡器与智能卡之间信息交互时采用的校验方式,预先设定是否需要对数据位进行确认,预先设定数据传输过程中的时序控制器的控制值,读卡器根据该预先设定的控制值进行时序控制,即在到达该控制值时,读卡器发送或接收数据。其中,时序控制器的控制值是根据时钟率转换因子和波特率调整因子的值来设定的。所述时序控制器可以具体为计数器或定时器,当为计数器时,预设的控制值为计数值,当为定时器时,预设的控制值为定时值。
本发明实施例中读卡器与智能卡之间传输的字符有两种,一种长度为11个比特位,另一种长度为12个比特位。参见图1,为读卡器和智能卡传输字符时序图,该时序图是不需要对数据位进行确认的时序图,当前字符包括11个比特位,第1个为起始位,第2-9个为数据位,第10个为奇偶校验位,第11个为停止位。参见图2,为读卡器和智能卡传输字符时序图,该时序图是需要对数据位进行确认的时序图,当前字符包括12个比特位,第1个为起始位,第2-9个为数据位,第10个为奇偶校验位,第11个为校验结果传输位,第12个为停止位。
实施例1
参见图3,本实施例提供了一种通过计数器计数的方式来实现时序控制的方法,用于读卡器在与智能卡通讯时向智能卡发送数据的应用场景。
本实施例中,采用计数器计数来控制时序,具体地,所述计数器使用智能卡的CLK信号作为时钟源,与智能卡的工作时钟一直保持同步,并按照该时钟源进行计数。
本实例中,预先设定时钟率转换因子为372,波特率调整因子是1,则每个比特位的持续时间是372个时钟周期,即当计数器的计数值达到372个时钟周期或372个时钟周期的整数倍时,则认为当前完成对一个比特位的传输。并且,预先根据时钟率转换因子372和波特率调整因子1设定好计数器的计数值来控制数据的接收和发送,设定好的计数器的值可以存储在一个二维数组中,当读卡器进行采样时,直接查找该数组,从该数组中读出相应的计数值来进行采样,从而可以加快读卡器和智能卡之间的交互速度,提高通讯效率,减轻读卡器CPU的负担。
本发明实施例中,任一个预设计数值优选地设置为一个计数值,举例说明,如表1所示。
表1
预设计数值 | 计数值 |
第一预设计数值 | 372 |
第二预设计数值 | 744 |
第三预设计数值 | 1116 |
第四预设计数值 | 1488 |
第五预设计数值 | 1860 |
第六预设计数值 | 2232 |
第七预设计数值 | 2604 |
第八预设计数值 | 2976 |
第九预设计数值 | 3348 |
第十预设计数值 | 3720 |
第十一预设计数值 | 4092 |
第十二预设计数值 | 4464 |
表1中的计数值均为372个时钟周期的整数倍,用于控制发送数据,当计数器的计数值达到表1中设定的值时,读卡器接收或发送数据。上述方式通过计数卡时钟频率个数,而不直接考虑卡时钟的实际频率,简化了时序控制,又由于计数器使用智能卡的CLK信号作为时钟源,实现了更精准的时序控制。
本发明实施例中,读卡器要发送的字符帧是存储在读卡器的临时数据缓存中的,并将待发送数据字节变换为比特位,按照约定协议转换为电平的形式发送出去,该字符帧包括一个起始位,数据字节(8个数据位),一个奇偶校验位,一个停止位;该字符帧该可能包含一个校验结果传输位。
上述方法具体包括:
步骤301:读卡器清空计数器的计数值i,即设置i=0,本实例中按照每个比特位持续时间为372个时钟周期开始计数,读卡器设置一个变量j,该变量用于统计数据位的发送情况,初始值为0;
步骤302:读卡器将IO电平驱动为低电平,并开始按照约定协议发送临时数据缓存中的起始位即当前字符帧的第一个比特位,具体为将起始位按照约定协议转换为相应的电平发送出去,当计数器的计数值等于第一预设计数值,即计数器计数值是372时,读卡器完成对起始位的发送,变量j变为1;
其中,将起始位按照约定协议转换为相应的电平发送出去,具体包括:
当约定协议采用的是正向协议时,读卡器将临时数据缓存中的起始位,转换为相应的电平,如果起始位是0,则转换为低电平,如果起始位是1,则转换为高电平,然后发送转换后的电平;
当约定协议采用的是反向协议时,读卡器将临时数据缓存中的起始位,转换为相应的电平,如果起始位是0,则转换为高电平,如果起始位是1,则转换为低电平,然后发送转换后的电平。
步骤303:读卡器开始按照约定协议发送临时数据缓存中的当前数据位,即将当前数据位按照约定协议转换为相应的电平发送出去,当计数器的计数值达到第二至第九预设计数值中的任一个时,读卡器完成对当前比特位的发送,将变量j递增1;
本实施例中,读卡器是按照约定协议将临时数据缓存中的数据位发送出去,具体如下:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为所述数据字节最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
其中,第二至第九预设计数值分别是744、1116、1488、1860、2232、2604、2976、3348,具体参见表1或表2。
步骤304:读卡器判断变量j是否小于9,如果是,则说明8个数据位还未发送完成,返回执行步骤303,否则,8个数据位已经发送完成,执行步骤305;
上述步骤303~304为循环发送8个数据位的过程,当计数器的计数值达到第九预设计数值时,8个数据位发送完成。
步骤305:读卡器根据约定协议,对已传输的数据进行计算,得到奇偶校验位即当前字符帧的第十个比特位;
当约定协议是正向协议时,采用偶校验方式计算出奇偶校验位作为第十个比特位;
当约定协议是反向协议时,采用奇校验方式计算出奇偶校验位作为第十个比特位。
步骤306:读卡器按照约定协议将计算得到的奇偶校验位转换为电平后发送出去,当计数器的计数值等于第十预设计数值时,即计数器的计数值是3720时,奇偶校验位发送完成,并将IO电平驱动为高电平;
按照约定协议将奇偶校验位转换为电平的过程与步骤302中转换方式的描述相同,此处不再赘述。
步骤307:读卡器判断是否要对数据位进行确认,如果是,则执行步骤308,否则,则执行步骤311;
步骤308:读卡器接收智能卡发来的电平,当计数器计数达到第十一预设计数值时,即计数器的计数值是4092时,开始采样智能卡发来的电平,并将采样到的电平值作为校验结果传输位;
本实施例中,当需要对数据位进行确认时,校验结果传输位用于智能卡向读卡器发送标识,读卡器收到该标识后,可以根据该标识判断出上述8个数据位即当前字符帧的第二至第九个比特位是否成功发送给了智能卡,如果该标识为1,此时校验结果传输位是1,即智能卡发来的电平为高电平时,代表智能卡对读卡器发送的8个数据位奇偶校验成功,即读卡器成功发送该8个数据位;如果该标识为0,此时校验结果传输位是0,即智能卡发来的电平为低电平时,代表智能卡对读卡器发送的第二至第九个比特位奇偶校验失败,即读卡器发送该8个数据位失败,从而读卡器后续会重新发送一次该数据,以使得智能卡能够接收到正确的数据。
步骤309:读卡器根据采样智能卡发来的电平得到的校验结果传输位,判断上述8个数据位是否发送成功,即判断该校验结果传输位是1还是0,如果是1,则表示8个数据位成功的发送给智能卡,如果是0,则表示8个数据位发送失败;
步骤310:当计数器的计数值等于第十二预设计数值4464时,校验结果传输位接收完成,读卡器保持IO电平为高电平,即发送停止位,当前字节发送流程结束;
步骤311:当计数器计数达到第十一预设计数值时,读卡器保持IO电平为高电平,即发送停止位,当前字节发送流程结束。
实施例2
参见图4,本实施例提供了一种通过定时器定时的方式来实现时序控制的方法,用于读卡器与智能卡通讯时向智能卡发送数据的应用场景。
本实施例中,采用定时器定时来控制时序,具体地,所述定时器使用智能卡的CLK信号作为时钟源,与智能卡的工作时钟一直保持同步,并按照该时钟源进行定时。
本实例中,预先设定时钟率转换因子为372,波特率调整因子是1,则每个比特位的持续时间是372个时钟周期,预先设定智能卡的时钟频率是4MHz,所以当定时器的定时值达到93微秒时,则认为当前完成对一个比特位的定时传输,并根据预先设定的定时器的定时值来控制数据的接收和发送,在具体实现时,智能卡的时钟频率可以根据具体情况进行设置和调整,相应地,定时器的定时值达到不同的值完成一个比特位的定时传输。
本实例中,预先设定中断标记,通过判断中断标记的状态来判断是否达到定时时间,具体的实现方法是:中断标记为1,则说明定时时间到,然后重新装载定时器,开启下一个比特位的定时后,定时下一个比特位,同时将中断标记清零。
本发明实施例中,读卡器要发送的字符帧是存储在读卡器的临时数据缓存中的,并将待发送数据字节变换为比特位,按照约定协议转换为电平的形式发送出去,该字符帧包括一个起始位,数据字节(8个数据位),一个奇偶校验位,一个停止位;该字符帧该可能包含一个校验结果传输位。
上述方法具体包括:
步骤401:读卡器装载定时器,本实例中按照每个比特位持续时间为93微秒(μs)进行定时,读卡器设置一个变量i,计数中断次数,初始值是0;
步骤402:读卡器将IO电平驱动为低电平,并开始按照约定协议发送临时数据缓存中的起始位即当前字符帧的第一个比特位,具体是将起始位按照约定协议转换为相应的电平发送出去,当定时器的定时值等于第一预设定时值,即93微秒(μs)时,读卡器完成对起始位的发送,变量i递增1,并重新装载定时器,清零,开始对下一个比特位进行定时;
步骤403:读卡器按照约定协议将临时数据缓存中待发送的8个数据位(第二个至第九个比特位)中的当前数据位转换为相应的电平后发送出去,当定时器的定时值达到第二至第九预设定时值中的任一个时,当前数据位发送完成,变量i递增1,并重新装载定时器,清零,开启下一个比特位的定时;
本实施例中,读卡器将临时数据缓存中待发送数据位按照约定协议转换为相应的电平发送出去,具体包括:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为所述数据字节最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
所述第二至第九预设定时值均为93微秒。
步骤404:读卡器判断变量i是否小于9,如果是,则8个数据位还未发送完成,返回执行步骤403,否则,8个数据位已经发送完成,执行步骤405;
上述步骤403~404为循环发送8个数据位的过程。具体地,读卡器按照约定协议依次发送临时数据缓存中的待发送数据位。
步骤405:读卡器根据约定协议,对已传输的数据进行计算,得到奇偶校验位;该预先设定的校验方式包括:奇校验或偶校验;
当约定协议是正向协议时,采用偶校验方式计算出奇偶校验位作为第十个比特位;
当约定协议是反向协议时,采用奇校验方式计算出奇偶校验位作为第十个比特位。
步骤406:读卡器按照约定协议将计算得到的奇偶校验位转换为相应的电平后发送出去,当定时器的定时值等于第十预设定时值时,奇偶校验位发送完成,重新装载定时器,开启下一个比特位的定时,并将IO电平驱动为高电平;
本实施例中,第十预设定时值为93微秒。
步骤407:读卡器判断是否要对数据位进行确认,如果是,则执行步骤408,否则,则执行步骤411;
步骤408:读卡器接收智能卡发来的电平,当定时器的定时值达到第十一预设定时值时,开始采样智能卡发来的电平,并且重新装载定时器,开启下一个比特位的定时;
本实施例中,当需要对数据位进行确认时,校验结果传输位用于智能卡向读卡器发送标识,读卡器收到该标识后,可以根据该标识判断出上述8个数据位即当前字符帧的第二至第九个比特位是否成功发送给了智能卡,如果该标识为1,此时校验结果传输位是1,即智能卡发来的电平为高电平时,代表智能卡对读卡器发送的8个数据位奇偶校验成功,即读卡器成功发送该8个数据位;如果该标识为0,此时校验结果传输位是0,即智能卡发来的电平为低电平时,代表智能卡对读卡器发送的8个数据位奇偶校验失败,即读卡器发送该8个数据位失败,从而读卡器后续会重新发送一次该数据,以使得智能卡能够接收到正确的数据。
所述第十一预设定时值的最佳值为93微秒。
步骤409:读卡器根据采样智能卡发来的电平得到的校验结果传输位,判断上述8个数据位是否发送成功,即判断该校验结果传输位是1还是0,如果是1,则表示8个数据位成功发送给智能卡,如果是0,则表示8个数据位发送失败;
步骤410:当定时器的定时值达到第十二预设定时值时,校验结果传输位接收完成,按照约定协议将临时数据缓存中的停止位转换为相应的电平后发送出去,具体为:读卡器保持IO电平为高电平,当前字节发送流程结束;
步骤411:当定时器的定时值达到第十一预设定时值时,按照约定协议将临时数据缓存中的停止位转换为相应的电平后发送出去,具体为:读卡器保持IO电平为高电平,当前字节发送流程结束。
本实施例中,第十二预设定时值与第一至第十一预设定时值均相同,均为93微秒。
本实例中,通过查询中断标记来判断预设的定时时间是否达到的,并根据中断标记来判断当前字符帧是否发送完成的。
本实施例中涉及到的将比特位转换为电平的方式均与步骤302中转换方式的描述相同,此处不再赘述。
实施例3
参见图5,本实施例提供了一种读卡器,具体包括:
时序控制模块501,用于当读卡器向智能卡发送数据时,控制时序;
发送模块502,用于将IO电平驱动为低电平,将第一个比特位转换为电平发送出去,当时序控制模块达到第一预设控制值时,读卡器发送待发送数据字节,并将待发送数据字节变换为第二个比特位至第九个比特位,按照约定协议依次将第二个比特位至第九个比特位转换为电平发送出去,在时序控制模块依次达到第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值和第九预设控制值时,依次完成第二个比特位至第九个比特位的发送,并将第十个比特位转换为电平发送出去,当时序控制器达到第十预设控制值时,第十个比特位发送完成,并将IO电平驱动为高电平;
计算模块503,用于根据约定协议计算出第十个比特位。
本实施例中,上述约定协议包括正向协议和反向协议。
其中,发送模块502按照约定协议依次将第二个比特位至第九个比特位转换为电平发送出去,具体包括:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为所述数据字节最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
本实施例中,时序控制模块501可以具体为计数器或者定时器。当为计数器时,第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值和第十预设控制值是根据时钟率转换因子和波特率调整因子预先设定的不同的计数值。具体地可以为表1所示的各个值。
当时序控制模块501具体为定时器时,第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值和第十预设控制值中的任一项是一个计时值,且为预先根据时钟率转换因子、波特率调整因子和智能卡的时钟频率设定的。
本实施例中,进一步地,读卡器还包括:
判断模块,用于在第十个比特位发送完成并将IO电平驱动为高电平之后,判断是否需要对数据位进行确认;
处理模块,用于如果判断模块判断出需要对数据位进行确认,则接收智能卡发来的电平,在时序控制模块达到第十一预设控制值时,对接收的电平进行采样,并根据采样值判断第二个比特位至第九个比特位是否发送成功,然后在时序控制模块501达到第十二预设控制值时,将最后一个比特位即停止位转换为电平发送出去,具体为保持IO电平为高电平,如果判断模块判断出不需要确认,则在时序控制模块501达到第十二预设控制值时,将最后一个比特位即停止位转换为电平发送出去,具体为保持IO电平为高电平。
本发明实施例提供的上述技术方案,在不考虑智能卡的时钟频率的情况下,通过计数智能卡的时钟频率的个数或通过定时位持续时间,来完成对时序的控制,并简化了读卡器的程序结构,提高了读卡器与智能卡之间数据收发的稳定性,可以实现更精准的时序控制,降低了时序控制的复杂度和通讯误码率,同时代码还可以任意移植,具有良好的可移植性。上述技术方案完全实现了一个与智能卡时钟频率无关的一个时序控制平台,只要能够获取到卡片的参数F和D,就可以使用在任何的硬件平台的读卡器上。
本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种时序控制方法,用于读卡器向智能卡发送数据,其特征在于,所述方法包括:
所述读卡器开启时序控制器,将IO电平驱动为低电平,将第一个比特位转换为电平发送出去;
当所述时序控制器达到第一预设控制值时,所述读卡器将待发送数据字节变换为第二个比特位至第九个比特位,并按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,在所述时序控制器依次达到第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值和第九预设控制值时,依次完成所述第二个比特位至第九个比特位的发送;
根据所述约定协议计算第十个比特位,并将所述计算得到的第十个比特位转换为电平发送出去,当所述时序控制器达到第十预设控制值时,所述第十个比特位发送完成,所述读卡器将电平驱动为高电平。
2.根据权利要求1所述的方法,其特征在于,所述约定协议包括正向协议和反向协议。
3.根据权利要求2所述的方法,其特征在于,所述按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,具体包括:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为所述数据字节最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
4.根据权利要求3所述的方法,其特征在于,根据所述约定协议计算第十个比特位,具体包括:
当所述约定协议是正向协议时,采用偶校验方式计算出第十个比特位;
当所述约定协议是反向协议时,采用奇校验方式计算出第十个比特位。
5.根据权利要求1所述的方法,其特征在于,所述时序控制器是计数器,所述读卡器开启时序控制器具体为:所述读卡器将所述计数器清零,开始计数。
6.根据权利要求5所述的方法,其特征在于,所述第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值和第十预设控制值是根据时钟率转换因子和波特率调整因子预先设定的不同的计数值。
7.根据权利要求1所述的方法,其特征在于,所述时序控制器是定时器,所述读卡器开启时序控制器具体为:所述读卡器加载所述定时器,清零并开始计时。
8.根据权利要求7所述的方法,其特征在于,所述第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值和第十预设控制值中的任一项是一个计时值,且为预先根据时钟率转换因子、波特率调整因子和智能卡的时钟频率设定的。
9.根据权利要求1所述的方法,其特征在于,所述读卡器将电平驱动为高电平之后,还包括:
所述读卡器判断是否需要对数据位进行确认;
如果需要确认,则接收所述智能卡发来的电平,在所述时序控制器达到第十一预设控制值时,对所述接收的电平进行采样,并根据采样值判断所述第二个比特位至第九个比特位是否发送成功,然后在所述时序控制器达到第十二预设控制值时,保持电平为高电平;
如果不需要确认,则当所述时序控制器达到所述第十一预设控制值时,保持电平为高电平。
10.根据权利要求9所述的方法,其特征在于,所述时序控制器为定时器,所述第一预设控制值、第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值、第九预设控制值、第十预设控制值、第十一预设控制值和第十二预设控制值均相同。
11.一种读卡器,其特征在于,所述读卡器包括:
时序控制模块,用于当所述读卡器向智能卡发送数据时,控制时序;
发送模块,用于将IO电平驱动为低电平,将第一个比特位转换为电平发送出去,当所述时序控制模块达到第一预设控制值时,所述读卡器将待发送数据字节变换为第二个比特位至第九个比特位,按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,在所述时序控制模块依次达到第二预设控制值、第三预设控制值、第四预设控制值、第五预设控制值、第六预设控制值、第七预设控制值、第八预设控制值和第九预设控制值时,依次完成所述第二个比特位至第九个比特位的发送,并将第十个比特位转换为电平发送出去,当所述时序控制器达到第十预设控制值时,所述第十个比特位发送完成,并将电平驱动为高电平;
计算模块,用于根据约定协议计算出所述第十个比特位。
12.根据权利要求11所述的读卡器,其特征在于,所述发送模块按照约定协议依次将所述第二个比特位至第九个比特位转换为电平发送出去,具体包括:
当所述约定协议是正向协议时,按照1是高电平,0是低电平的转换方式,将所述数据字节中的第二个比特位至第九个比特位分别转换为电平,并按照从高位到低位的顺序依次发送出去,所述第二个比特位为数据最高位;
当所述约定协议是反向协议时,按照0是高电平,1是低电平的转换方式,将所述第二个比特位至第九个比特位分别转换为电平,并按照从低位到高位的顺序依次发送出去,所述第二个比特位为数据最低位。
13.根据权利要求11所述的读卡器,其特征在于,所述时序控制模块具体为计数器或定时器。
14.根据权利要求11所述的读卡器,其特征在于,所述读卡器还包括:
判断模块,用于在所述第十个比特位发送完成之后,判断是否需要对数据位进行确认;
处理模块,用于如果所述判断模块判断出需要对数据位进行确认,则接收所述智能卡发来的电平,在所述时序控制模块达到第十一预设控制值时,对所述接收的电平进行采样,并根据采样值判断所述第二个比特位至第九个比特位是否发送成功,然后当所述时序控制模块达到第十二预设控制值时,保持电平为高电平,如果所述判断模块判断出不需要确认,则当所述时序控制模块达到第十一预设控制值时,保持电平为高电平。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910236987A CN101702195B (zh) | 2009-10-30 | 2009-10-30 | 时序控制方法和读卡器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910236987A CN101702195B (zh) | 2009-10-30 | 2009-10-30 | 时序控制方法和读卡器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101702195A true CN101702195A (zh) | 2010-05-05 |
CN101702195B CN101702195B (zh) | 2012-10-03 |
Family
ID=42157110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910236987A Expired - Fee Related CN101702195B (zh) | 2009-10-30 | 2009-10-30 | 时序控制方法和读卡器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101702195B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295767A (zh) * | 2016-07-31 | 2017-01-04 | 飞天诚信科技股份有限公司 | 一种智能卡及其工作方法 |
CN106960168A (zh) * | 2016-01-11 | 2017-07-18 | 杭州海康威视数字技术股份有限公司 | 一种卡号数据获取方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271939A (ja) * | 1994-03-30 | 1995-10-20 | Mitsubishi Denki Semiconductor Software Kk | 非接触icカード,カードリーダライタ及びカード装置 |
CN101539983A (zh) * | 2008-03-20 | 2009-09-23 | 上海锐帆信息科技有限公司 | 防冲突有源只读rfid的一种实现方法 |
-
2009
- 2009-10-30 CN CN200910236987A patent/CN101702195B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960168A (zh) * | 2016-01-11 | 2017-07-18 | 杭州海康威视数字技术股份有限公司 | 一种卡号数据获取方法及装置 |
CN106960168B (zh) * | 2016-01-11 | 2020-02-04 | 杭州海康威视数字技术股份有限公司 | 一种卡号数据获取方法及装置 |
CN106295767A (zh) * | 2016-07-31 | 2017-01-04 | 飞天诚信科技股份有限公司 | 一种智能卡及其工作方法 |
CN106295767B (zh) * | 2016-07-31 | 2019-03-15 | 飞天诚信科技股份有限公司 | 一种智能卡及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101702195B (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信系统和方法 | |
CN101441724B (zh) | Ic卡、信息处理装置、通信类型识别设备及其方法和计算机程序产品 | |
CN101325090B (zh) | 通过使循环冗余码线路相对于数据线路偏移改善等待时间 | |
CN1617157A (zh) | 无接触接近自动化数据收集系统和方法 | |
EP1845475A1 (en) | Communication medium, communication medium processing apparatus, and communication medium processing system | |
CN103414497B (zh) | 为电子设备之间通信借助转发的控制方法和相应的设备 | |
CN101510249A (zh) | 一种多电子标签清点方法 | |
CN105306323A (zh) | 一种can总线通信的方法及装置 | |
CN105453449A (zh) | 非接触式通信方法确定电路、非接触式通信电路、以及ic卡 | |
CN101789069B (zh) | 时序控制方法和读卡器 | |
CN102546107A (zh) | 接触式卡片与读卡设备间的数据传输方法、系统和转接卡 | |
CN102664043A (zh) | 实现移动支付的智能sd卡测试的装置及方法 | |
CN101702195B (zh) | 时序控制方法和读卡器 | |
CN101252411B (zh) | 射频识别数据通信中数据帧结尾的检测方法 | |
CN116506530B (zh) | 一种误码率低的多协议rfid读写器 | |
CN100573491C (zh) | 串行传输控制器与串行传输解码器及其串行传输方法 | |
CN102521197A (zh) | 一种利用低成本mcu的uart实现iso7816协议的方法 | |
CN105809231A (zh) | 多频多用途电子标签及其使用方法 | |
CN102142093A (zh) | 一种存储卡操作方法及装置 | |
CN101620662B (zh) | 一种基于闪速存储器的智能卡下载数据的方法 | |
CN103809918A (zh) | 储存媒体、存取系统及方法 | |
CN102810219A (zh) | 基于射频识别的标签交易方法及系统 | |
CN104881694A (zh) | 一种基于rfid双协议的数据读写方法、终端及系统 | |
CN101901362B (zh) | 非接触应用自动切换方法及切换装置 | |
EP1675418A1 (en) | Method and apparatus for control of data synchronization between a user equipment and a user authentication card |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121003 |
|
CF01 | Termination of patent right due to non-payment of annual fee |