专利名称:一种用于磁卡的解码和纠错方法
技术领域:
本发明涉及磁卡识别技术领域,尤其涉及一种用于磁卡的解码和纠错方法。
背景技术:
随着金融、证券、商业等领域的快速发展,磁卡作为身份的认证和识别工具而得到了广泛的应用。目前,市场上的磁卡由塑料卡片及表面贴附的磁条制作而成,磁条是由一些微小的铁磁材料附着于类似塑料胶带上形成的,铁磁材料是一种在外部磁场移走以后仍然 可以保留磁性的物质。利用磁粒附着技术,通过以不同的频率改变磁条上附着的磁粒的极性,实现了逻辑数据“O”和“I”的记录,再通过对二进制数据编码就可以在磁条上记录各种信息了。磁卡的磁条上所记录的是一系列二进制代码,这些二进制代码通过F2F编码方式编码而成。按照IS07811的标准规定,磁卡有三个磁道。其中磁道一的记录密度为210bpi,并且包含79个7位的二进制码即6位ALPHA编码+ I位奇校验位,其译码方式是6位数据位加上0x20转换成ASCII编码;磁道二的记录密度为75bpi,并且包含40个5位的二进制码即4位B⑶编码+ I位奇校验位,其译码方式是4位数据位加上0x30转换成ASCII编码;磁道三的记录密度为210bpi,并且包含107个5位二进制码即4位B⑶编码+ I位奇校验位,其译码方式和磁道二相同。这种解码方式中,刷卡时的每一个信号跳变均被记录下来,由于磁条在重复使用过程中磁性会不断地消弱,加上刷卡过程中的受静电、外部磁场的干扰、刷卡的速度等因素,会造成磁卡阅读头将磁卡上的磁记录信息转换成TTL电平脉冲的时候存在很多的干扰信号影响软件的译码过程,降低了磁卡读取的成功率。特别是在刷卡的速度上,速度的快慢直接影响着磁卡的读取准确性。因此,现有的磁卡存在着刷卡成功率低、准确性差的缺陷。
发明内容
本发明要解决的技术问题在于,提供一种以判断跳变信号是否有效的方式进行解码的方法和采用奇偶校验和纵向冗余校验(Longitudinal redundancycheck, LRC)进行纠错的方法,以提闻磁卡识别的成功率以及提闻其准确性。为解决上述技术问题,本发明采用如下技术方案。一种用于磁卡的解码和纠错方法,其包括如下步骤S10,保存每个磁道中磁信号脉冲所对应的脉宽值;s 11,根据磁信号计算出与原始信号同步的数字锁相环;S12,在同一个数据周期内,判断是否有脉冲跳变,若是,执行步骤S14,若否,执行步骤S13 ;S13,该比特位解码的数据为O ;S14,下一脉宽与当前脉宽的比值y是否满足0. 7〈y〈l. 3,若是,执行步骤S15,若否,执行步骤S16 ;S15,该比特位解码的数据为I ;S16,该比特位标记的数据为2 ;S17,判断是否为磁信号脉冲的最末位,若是,执行步骤S18,若否,返回步骤S12 ;S18,按照该磁道数据的编码规则确定数据的最初位和最末位;S19,采用奇偶校验和LRC校验将数据中标记为2的数据置I或置O。
优选地,所述步骤S15包括如下过程确定第一个脉宽为当前脉宽,初始比特位为1,设置同步数据计数器为0,计算下一脉宽与当前脉宽的比值,判断是否同步计数器小于5且所述下一脉宽与当前脉宽的比值y满足0. 7〈y〈1.3,若是,则当前比特位数据为1,同步数据计数器加1,若否,则当前比特位数据为1,同步数据计数器为O。优选地,所述同步计数器大于或等于5时,判断下一脉宽和当前脉宽的比值y若满足0. 7〈y〈l. 3,则当前比特位数据为O ;若比值y不满足0. 7〈y〈l. 3且所述下一脉宽与当前脉宽的差再与该当前脉宽的比值小于O. 7,则判断所述下一脉宽与当前脉宽的和与当前冲周期的比值z是否满足0. 7〈z〈l. 3,若是,则当前比特位数据为1,若否,则当前比特位数据为2。优选地,所述步骤S19中,采用奇偶校验方式进行纠错的具体过程为包括从数据的第一个有效I开始,找到数据的起始标志,且对该磁道数据的编码位数个比特数据而进行奇校验,将数据中存在2的比特位置I或置0,直到找到结束标志。
优选地,所述步骤S19中,用LRC校验方式进行纠错的具体过程为包括对磁道数据进行纵向奇校验,将数据中存在2的比特位置I或置O。优选地,所述步骤S19中,采用奇偶校验和LRC校验将数据中标记为2的数据置I或置O之后,若数据中所有2的比特位均被置I或置0,则提示解码成功;若数据中依然存在2,则提示解码失败。本发明公开的用于磁卡的解码和纠错算法中,需根据磁信号计算出与原始信号同步的数字锁相环200,再根据所采集的磁卡数据201而判断一个周期内是否存在跳变,将该周期内的信号进行解码而得到磁卡的信息数据203,若没有跳变,则该比特位解码为0,若存在跳变,则判断下一脉宽A与当前脉宽a的比值y是否满足0. 7〈y〈l. 3,若满足,即比值y在1±0. 3的范围内,则下一脉宽A与当前脉宽a的值趋近于相等,说明此高低跳变为有效跳变而将该比特位解码为I ;若不满足,则说明下一脉宽A与当前脉宽a的值相差较大,不能确定该跳变是否为有效跳变而将该比特位解码为2,依次地,将每一个周期内的信号进行解码,直至磁信号脉冲的最末位。之后确定解码数据的最初位和最末位,且用奇偶校验和LRC校验将数据中标记为2的数据置I或置O而完成数据纠错。上述方法中,在每一个数据周期内均采用判断跳变信号是否有效的方式进行解码,再经过奇偶校验和LRC校验将数据中标记为2的不确定的数据置I或置0,从而提高了磁卡识别的成功率以及其准确性,同时,采用此方法,无需为硬件增加价格高昂的解码芯片,节省了产品的成本。
图I为本发明公开的用于磁卡的解码和纠错方法的流程图。图2为磁卡数据的波形示意图。图3为图2所示波形示意图中的局部放大图。图4为磁卡解码的具体流程图。图5为数据纠错的具体流程图。
具体实施例方式下面结合附图和实施例对本发明作更加详细的描述。
本发明公开一种用于磁卡的解码和纠错方法,如图I所示,该方法包括如下步骤S10,保存每个磁道中磁信号脉冲所对应的脉宽值;S11,根据磁信号计算出与原始信号同步的数字锁相环;S12,在同一个数据周期内,判断是否有脉冲跳变,若是,执行步骤S14,若否,执行步骤S13 ;S13,该比特位解码的数据为O ;S14,下一脉宽与当前脉宽的比值y是否满足0. 7〈y〈l. 3,若是,执行步骤S15,若否,执行步骤S16 ;S15,该比特位解码的数据为I ;S16,该比特位标记的数据为2 ;S17,判断是否为磁信号脉冲的最末位,若是,执行步骤S18,若否,返回步骤S12 ;S18,按照该磁道数据的编码规则确定数据的最初位和最末位;S19,采用奇偶校验和LRC校验将数据中标记为2的数据置I或置O。结合图2及图3所示,上述过程中,需根据磁信号计算出与原始信号同步的数字锁相环200,再根据所采集的磁卡数据201而判断一个周期内是否存在跳变,将该周期内的信号进行解码而得到磁卡的信息数据203,若没有跳变,则该比特位解码为0,若存在跳变,则判断下一脉宽A与当前脉宽a的比值y是否满足0. 7〈y〈l. 3,若满足,即比值y在I ±0. 3的范围内,则下一脉宽A与当前脉宽a的值趋近于相等,说明此高低跳变为有效跳变而将该比特位解码为I ;若不满足,则说明下一脉宽A与当前脉宽a的值相差较大,不能确定该跳变是否为有效跳变而将该比特位解码为2,依次地,将每一个周期内的信号进行解码,直至磁信号脉冲的最末位。之后确定解码数据的最初位和最末位,且用奇偶校验和LRC校验将数据中标记为2的数据置I或置O而完成数据纠错。上述方法中,在每一个数据周期内均采用判断跳变信号是否有效的方式进行解码,再经过奇偶校验和LRC校验将数据中标记为2的不确定的数据置I或置0,从而提高了磁卡识别的成功率以及其准确性,同时,采用此方法,无需为硬件增加价格高昂的解码芯片,节省了产品的成本。如图I及图4所示,步骤S15包括如下过程确定第一个脉宽为当前脉宽,初始比特位为1,设置同步数据计数器为0,计算下一脉宽与当前脉宽的比值,判断是否同步计数器小于5且所述下一脉宽与当前脉宽的比值y满足O. 7〈y〈l. 3,若是,则当前比特位数据为1,同步数据计数器加1,若否,则当前比特位数据为1,同步数据计数器为O。当同步计数器大于或等于5时,判断下一脉宽和当前脉宽的比值y若满足0. 7〈y〈l. 3,则当前比特位数据为O ;若比值y不满足0. 7 < y〈l. 3且所述下一脉宽与当前脉宽的差再与该当前脉宽的比值小于O. 7,则判断所述下一脉宽与当前脉宽的和与该当前脉冲周期的比值z是否满足0. 7〈z〈l. 3,若是,则当前比特位数据为1,若否,则当前比特位数据为2。本实施例中,向磁卡写入数据时,在有效数据之前设有10个数据O作为前导数据,在有效数据之后设有10个数据O作为后导数据,所以,在解码前导数据的过程中,需要将前导数据用同步计数器累计加I的方法分为5组,且判断每组数据内的两个脉宽比值y是否满足0. 7〈y〈l. 3,从而判断前导数据中是否存在干扰数据1,同样地,通过该方法判断后导数据中是否存在干扰数据I。此外,该同步计数器还用于判断当前信号的脉冲周期是否与原始信号同步,其中,随着同步计数器的累计所解码的5个脉冲周期中,若每个脉冲周期内的脉宽比值y均满足O. 7〈y〈l. 3,则说明该信号的脉冲周期与原始信号已经同步。如图I及图5所示,步骤S19中,采用奇偶校验方式进行纠错的具体过程为包括从数据的第一个有效I开始,找到数据的起始标志,且对该磁道数据的编码位数个比特数据而进行奇校验,将数据中存在2的比特位置I或置0,直到找到结束标志。其中,磁道数据在编码时另外附加一位作为校验位,校验位在数据位前面,当实际数据中“I”的个数为偶数的时候,这个校验位就是“1”,否则这个校验位就是“0”,这样就可以保证该数据编码满足“I”的个数为奇数,因此,采用奇偶校验方式进行纠错时,可通过对比校验位的数据而将数据中存在2的比特位置I或置O。如图I及图5所示,步骤S19中,用LRC校验方式进行纠错的具体过程为包括对磁道数据进行纵向奇校验,将数据中存在2的比特位置I或置O。本实施例中,磁道上的数据分为6个部分冗余数据区、开始标志、数据区、结束标志、LRC校验位、冗余数据区。其中,磁道开始处存在一些冗余数据,紧接着是起始标志位,再者是数据区,后是结束标志位,之后是LRC校验位,最后又是冗余数据区。冗余数据区不含有效数据,只是用作磁道数据的 同步,由若干的数据“O”组成。对于一磁道磁道数据的开始标志是“%”,ASC编码是0x25,对应的磁道数据编码是1000101 ;对于二三磁道开始标志是“ ;”,ASC编码是0x3B,对应的磁道数据编码是11010。数据区即为有效的磁卡数据。结束标志都是“?”,但是一磁道的编码是0011111,二三磁道的编码是11111。LRC校验位为磁道上各数据的异或和,采用LRC校验方式进行纠错时,可以通过该LRC校验位而确定数据中比特位为2的数据是I还是O。本实施例中,解码开始前而判断有效数据时,以磁道上第一个I为标志。由于刷卡方向不确定而可能是正向刷卡或者反向刷卡,其产生的数据是1000101和11010时,第一个有效位都是I,解码时需正向解码一次再反向解码一次,取两次解码数据长度较长的一次的结果,因此,本发明不限制刷卡的方向。本实施例中,当数据完成解码和纠错后,计算当前的刷卡速度=磁信号脉宽值的和+磁道数X基本时间与基本脉宽值和的比值,将计算结果与ISO的标准速度进行比较,根据比较的结果提示刷卡速度的快慢,帮助刷卡人养成良好的刷卡习惯。本发明公开的用于磁卡的解码和纠错方法中,每一个数据周期内均采用判断跳变信号是否有效的方式进行解码,以令该周期所对应的比特位记录为O、I或2,再经过奇偶校验和LRC校验将数据中标记为2的不确定数据置I或置0,从而提高了磁卡识别的成功率以及其准确性。同时,通过提示刷卡速度的快慢而帮助刷卡人养成良好的刷卡习惯。另外,采用此方法时,无需为硬件增加价格高昂的解码芯片,节省了产品的成本。以上所述只是本发明较佳的实施例,并不用于限制本发明,凡在本发明的技术范围内所做的修改、等同替换或者改进等,均应包含在本发明所保护的范围内。
权利要求
1.一种用于磁卡的解码和纠错方法,其特征在于,该方法包括如下步骤 S10,保存每个磁道中磁信号脉冲所对应的脉宽值; S11,根据磁信号计算出与原始信号同步的数字锁相环; S12,在同一个数据周期内,判断是否有脉冲跳变,若是,执行步骤S14,若否,执行步骤S13 ; S13,该比特位解码的数据为O; S14,下一脉宽与当前脉宽的比值y是否满足0. 7〈y〈l. 3,若是,执行步骤S15,若否,执行步骤S16 ; S15,该比特位解码的数据为I ; S16,该比特位标记的数据为2; S17,判断是否为磁信号脉冲的最末位,若是,执行步骤S18,若否,返回步骤S 12 ; S18,按照该磁道数据的编码规则确定数据的最初位和最末位; S19,采用奇偶校验和LRC校验将数据中标记为2的数据置I或置O。
2.如权利要求I所述的解码和纠错方法,其特征在于,所述步骤S15包括如下过程确定第一个脉宽为当前脉宽,初始比特位为1,设置同步数据计数器为0,计算下一脉宽与当前脉宽的比值,判断是否同步计数器小于5且所述下一脉宽与当前脉宽的比值y满足O.7〈y〈1.3,若是,则当前比特位数据为1,同步数据计数器加1,若否,则当前比特位数据为1,同步数据计数器为O。
3.如权利要求2所述的解码和纠错方法,其特征在于,所述同步计数器大于或等于5时,判断下一脉宽和当前脉宽的比值I若满足0. 7〈y〈l. 3,则当前比特位数据为O ;若比值Y不满足0. 7〈y〈l. 3且所述下一脉宽与当前脉宽的差再与该当前脉宽的比值小于O. 7,则判断所述下一脉宽与当前脉宽的和与脉冲周期的比值z是否满足0. 7<ζ<1. 3,若是,则当前比特位数据为1,若否,则当前比特位数据为2。
4.如权利要求I所述的解码和纠错方法,其特征在于,所述步骤S19中,采用奇偶校验方式进行纠错的具体过程为包括从数据的第一个有效I开始,找到数据的起始标志,且对该磁道数据的编码位数个比特数据而进行奇校验,将数据中存在2的比特位置I或置0,直到找到结束标志。
5.如权利要求4所述的解码和纠错方法,其特征在于,所述步骤S19中,用LRC校验方式进行纠错的具体过程为包括对磁道数据进行纵向奇校验,将数据中存在2的比特位置I或置O。
6.如权利要求5所述的解码和纠错方法,其特征在于,所述步骤S19中,采用奇偶校验和LRC校验将数据中标记为2的数据置I或置O之后,若数据中所有2的比特位均被置I或置0,则提示解码成功;若数据中依然存在2,则提示解码失败。
全文摘要
本发明公开一种用于磁卡的解码和纠错方法,其包括如下步骤S10,保存每个磁道中磁信号脉冲所对应的脉宽值;S11,根据磁信号计算出与原始信号同步的数字锁相环;S12,在同一个数据周期内,判断是否有脉冲跳变,若是,执行步骤S14,若否,执行步骤S13;S13,该比特位解码的数据为0;S14,下一脉宽与当前脉宽的比值y是否满足0.7<y<1.3,若是,执行步骤S15,若否,执行步骤S16;S15,该比特位解码的数据为1;S16,该比特位标记的数据为2;S17,判断是否为磁信号脉冲的最末位,若是,执行步骤S18,若否,返回步骤S12;S18,按照该磁道数据的编码规则确定数据的最初位和最末位;S19,采用奇偶校验和LRC校验将数据中标记为2的数据置1或置0。本发明能够提高磁卡识别的成功率以及其准确性。
文档编号H03M13/15GK102930238SQ20121042806
公开日2013年2月13日 申请日期2012年10月31日 优先权日2012年10月31日
发明者熊中仕, 欧阳伟权 申请人:深圳市新国都技术股份有限公司