一种磁卡的软解码方法技术

技术编号:8563185 阅读:353 留言:0更新日期:2013-04-11 04:56
本发明专利技术提供一种磁卡的软解码方法,包括如下步骤:刷卡时记录磁道信号边沿变化的时刻值,将边沿变化的时刻值转换成脉宽序列;对磁道前导的一段比特0所对应的脉宽值取平均值,计算得到初始基准脉宽,基准脉宽称为参考T值;依赖于参考T值对缓冲区中的脉宽序列进行解码,并且每解码出一个比特值,就用此比特值对应的脉宽值重新计算参考T值;依次解码,直至脉宽缓冲区中的数据全部解码为对应的比特值;最后将比特值解码为磁道数据。若解码失败,则则启动反向解码,以提高刷卡的成功率。本发明专利技术通过硬件电路上对磁卡信息转化的电信号采集并处理,完成信号录入后,启动软件分析、优化解码,抗干扰能力强且适应性好。

【技术实现步骤摘要】

本专利技术涉及一种基于软件优化算法的磁卡解码方法。
技术介绍
针对磁卡解码,目前行业内都普遍采用硬解码方案,即采购专用磁卡解码芯片或模组来实现刷卡功能。硬解码方案存在的缺点完全依赖于硬件电路将磁道上的磁信号转化为解析后的数字比特流。而由于国内所用银行卡发卡环境限制大都在发行时写卡存在较大人为因素影响、如银行卡用户保管不当引起的磁信息磨损、刷卡过程中人为因素的影响等,而这些因素的影响对于硬解码来说很难适应,会导致无法解码等现象。
技术实现思路
本专利技术要解决的技术问题,在于提供,通过软件分析、优化的解码过程,部分消除各个环节引入的人为干扰,提高解码成功率。本专利技术是这样实现的,包括如下步骤步骤10、刷卡时记录磁道信号边沿变化的时刻值,通过减法运算将边沿变化的时刻值转换成脉宽序列;步骤20、对磁道的一段前导0值脉宽取平均值,计算得到初始基准脉宽,我们将基准脉宽称为参考T值;步骤30、依赖于当前的参考T值解码出下一个比特值; 步骤40、若脉宽还未全部解码为比特数据,则用所述比特值对应的脉宽值重新计算参考T值后回到步骤30 ;若全部解码完毕,进入步骤50 ;步骤50、校验解码出的比特流数据;步骤60、若校验正确,返回正确的磁道数据后结束流程;若校验出错,进入步骤70 ;步骤70、判断是否已经尝试过反向解码,若否,则启动反向解码;若是,则结束。进一步的,本专利技术所述步骤20中初始基准脉宽,即初始参考T值的获取方式是步骤21、取8个前导0对应的脉宽值;步骤22、计算平均值,并取平均值的3/4标记为al,取平均值的5/4标记为a2 ;步骤22、假设8个脉宽值中存在m(0彡m彡8)个大于a2或小于al的数据,如果m值为0,则此平均值被定义为初始基准脉宽,也就是初始参考T值,并进入步骤30 ;如果m值不为0,则丢弃这m个数据,并从缓冲区中再取m个数据补充,然后回到步骤22 ;进一步的,本专利技术所述步骤30中比特值的解码方法是假设在脉宽序列缓冲区中,当前待解码的脉宽值称之为脉宽1,当前值往后的第I个脉宽值称之为脉宽2,当前值往后的第2个脉宽值称之为脉宽3 ;将参考T的3/4标记为al,参考T的5/4标记为a2 ;将脉宽1、脉宽2、脉宽3分别标记为kl,k2,k3 ;步骤31、判断kl〈al,并且k2〈al是否成立,是,则进行步骤32,否,则将kl解码为比特O后进入步骤40 ;步骤32、判断kl+k2〈al,并且kl+k2+k3〈a2是否成立,是,则将kl、k2、k3合并解码为比特O ;否,则将kl、k2合并解码为比特I ;之后均进入步骤40,进行重新算参考T,之后进入步骤33 ;步骤33、判断缓冲区中的脉宽值是否都已经解码为比特数据?是,则结束,否,则回到步骤31。进一步的,本专利技术所述步骤40中计算参考T值是采用“跟随加窗”算法,所述“跟随加窗”算法为将用于计算参考T值的8个数据存在缓冲“窗口 ”内,此缓冲“窗口”在后续解码过程中始终保持为8个数据大小,并且每个数据对应磁卡的I个比特值;在整个解码过程中,使用先进先出的方式更新缓冲“窗口”内的值;在本次解码出的数据为比特O (或比特I)之后,则先丢弃最先进入“窗口”的那个数据,然后将比特O (或比特I)对应的脉宽值更新到“窗口”内,并重新计算平均值,此平均值即为最新的参考T值;判断解码是否结束?若是,则结束,并进入步骤50 ;若否,则回到步骤30。进一步的,本专利技术所述步骤70中反向解码算法为步骤71、将脉宽缓冲区的数据反向存储;即将缓冲区中的第I个数据与最后I个数据对换位置,第2个数据与倒数第2个数据对换位置,依此类推;步骤72、进入步骤20 ;第一次解码是从前导O开始,而本次解码是从尾随O开始,故称之为反向解码。 本专利技术具有如下优点通过硬件电路上对磁卡信息转化的电信号放大、整形、采集、存储,完成信号录入后,启动软件分析、优化的解码过程;因此具有两优点I)抗干扰能力强对存储下来的磁道信号数据进行软件分析,并应用多种补偿算法,部分消除各个环节引入的人为干扰,抗干扰能力强,提高解码成功率。2)适应性好可以在软件上对获取的磁道信号数据应用多种算法(如跟随加窗算法,反向解码算法,算术平均过滤算法),从而更好的适应不同人的刷卡习惯,以及因长期使用引起磁道损耗而引起的信号变形。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1为本专利技术方法涉及的磁卡的磁道信息的分布情况示意图。图2为本专利技术方法总的流程图。图3为本专利技术方法中比特值的解码方法的流程图。图4为本专利技术方法中采用“跟随加窗”算法计算参考T值的流程图。具体实施方式首先我们先了解一下磁卡的磁道信息的分布情况,如图1所示,a)对应于磁道信息中的比特O值,b)对应于磁道信息中的比特I值。整个磁道的信息分布为“前导0+有效信息+尾随0”,在本专利技术中,我们会先根据前导或尾随0(在实际算法中,我们是取8个O算平均值)算出一个参考T值,参考T值可以认为就是a)中两个t之间的宽度值。然后,我们再根据参考T值来判断后续的数据。有效信息区的信号与c)图类似,如果在一个参考T的时间内,波形有发生翻转,则这个比特值被识别为I个比特I ;反之,在T时间内,没有翻转发生,则识别为比特O,直到解码结束。如图2所示,本专利技术是这样实现的,包括如下步骤步骤10、刷卡时记录磁道信号边沿变化的时刻值,通过减法运算将边沿变化的时刻值转换成脉宽序列;步骤20、对磁道的一段前导0值脉宽取平均值,计算得到初始基准脉宽,我们将基准脉宽称为参考T值;步骤30、依赖于当前的参考T值解码出下一个比特值;步骤40、若脉宽还未全部解码为比特数据,则用所述比特值对应的脉宽值重新计算参考T值后回到步骤30 ;若全部解码完毕,进入步骤50 ;步骤50、校验解码出的比特流数据;步骤60、若校验正确,返回正确的磁道数据后结束流程;若校验出错,进入步骤70 ;步骤70、判断是否已经尝试过反向解码,若否,则启动反向解码;若是,则结束。该步骤中反向解码算法为步骤71、将脉宽缓冲区的数据反向存储;即将缓冲区中的第I个数据与最后I个数据对换位置,第2个数据与倒数第2个数据对换位置,依此类推;步骤72、进入步骤20 ;第一次解码是从前导0开始,而本次解码是从尾随0开始,故称之为反向解码。本专利技术为双向解码方案,即当正向解码解不出来的时候,软件自动补充反向解码的方式进行重试(所谓正向,即按刷卡的方向对原始数据进行解码)。这个主要是为了解决数据在数学上的一个特点,举例来说,如采集到的数据为{ 2,2,3,3 },则从左到右看,值从2到3,数值变化了 50%,而从右到左看,数据从3到2,数值变化了 33%,这种方式可以对刷卡速率从慢到快发生突变的情况具有非常优良的适应能力。如图4所示,所述步骤20中计算初始参考T值是采用“算术平均过滤”算法,所述“算术平均过滤”算法为步骤21、取8个前导0对应的脉宽值;步骤22、计算脉宽的平均值,并取平均值的3/4标记为al,取平均值的5/4标记为a2 ;步骤22、假设8个脉宽值中存在m个大于a2或小于al的数据,如果m值为0,则此平均值被定义为初始基准脉宽,也就是初始参考T值,并进入步骤30 ;如果m值不为0,则丢弃这m个数据,并从缓冲区中再取m个数据补充,然后回到步骤22 本文档来自技高网...

【技术保护点】
一种磁卡的软解码方法,其特征在于:包括如下步骤:步骤10、刷卡时记录磁道信号边沿变化的时刻值,通过减法运算将边沿变化的时刻值转换成脉宽序列;步骤20、对磁道的一段前导0值脉宽取平均值,计算得到初始基准脉宽,我们将基准脉宽称之为参考T值;步骤30、依赖于当前的参考T值解码出下一个比特值;步骤40、若脉宽还未全部解码为比特数据,则用所述比特值对应的脉宽值重新计算参考T值后回到步骤30;若全部解码完毕,进入步骤50;步骤50、校验解码出的比特流数据;步骤60、若校验正确,返回正确的磁道数据后结束流程;若校验出错,进入步骤70;步骤70、判断是否已经尝试过反向解码,若否,则启动反向解码;若是,则结束。

【技术特征摘要】
1.一种磁卡的软解码方法,其特征在于包括如下步骤 步骤10、刷卡时记录磁道信号边沿变化的时刻值,通过减法运算将边沿变化的时刻值转换成脉宽序列; 步骤20、对磁道的一段前导O值脉宽取平均值,计算得到初始基准脉宽,我们将基准脉宽称之为参考T值; 步骤30、依赖于当前的参考T值解码出下一个比特值; 步骤40、若脉宽还未全部解码为比特数据,则用所述比特值对应的脉宽值重新计算参考T值后回到步骤30 ;若全部解码完毕,进入步骤50 ; 步骤50、校验解码出的比特流数据; 步骤60、若校验正确,返回正确的磁道数据后结束流程;若校验出错,进入步骤70 ; 步骤70、判断是否已经尝试过反向解码,若否,则启动反向解码;若是,则结束。2.根据权利要求1所述的一种磁卡的软解码方法,其特征在于所述步骤20中初始基准脉宽,即初始参考T值的获取方式是 步骤21、取8个前导O对应的脉宽值; 步骤22、计算平均值,并取平均值的3/4标记为al,取平均值的5/4标记为a2 ; 步骤22、假设8个脉宽值中存在m个大于a2或小于al的数据,如果m值为0,则此平均值被定义为初始基准脉宽,也就是初始参考T值,并进入步骤30 ;如果m值不为0,则丢弃这m个数据,并从缓冲区中再取m个数据补充,然后回到步骤22。3.根据权利要求1所述的一种磁卡的软解码方法,其特征在于所述步骤30中比特值的解码方法是 假设在脉宽序列缓冲区中,当前待解码的脉宽值称之为脉宽1,当前值往后的第I个脉宽值称之为脉宽2,当前值往后的第2个脉宽值称之为脉宽3 ;将参考T的3/4标记为al,参考T的5/4标...

【专利技术属性】
技术研发人员:陈成秋高刚强张登峰余杭军
申请(专利权)人:福建升腾资讯有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1