CN103488963A - 一种解析磁卡信号的方法和装置 - Google Patents

一种解析磁卡信号的方法和装置 Download PDF

Info

Publication number
CN103488963A
CN103488963A CN201310405526.3A CN201310405526A CN103488963A CN 103488963 A CN103488963 A CN 103488963A CN 201310405526 A CN201310405526 A CN 201310405526A CN 103488963 A CN103488963 A CN 103488963A
Authority
CN
China
Prior art keywords
data
current
resolver
magnetic
card
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
CN201310405526.3A
Other languages
English (en)
Other versions
CN103488963B (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 CN201310405526.3A priority Critical patent/CN103488963B/zh
Publication of CN103488963A publication Critical patent/CN103488963A/zh
Application granted granted Critical
Publication of CN103488963B publication Critical patent/CN103488963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Transmission And Conversion Of Sensor Element Output (AREA)

Abstract

本发明公开一种解析磁卡信号的方法,包括:解析装置接收磁道上的磁卡数字信号,当检测到磁卡数字信号发生跳变时,对磁卡数字信号进行采集,得到磁卡信息;对当前位置和当前比较值进行初始化;对当前位置上及其之后的磁卡信息的值与当前比较值进行比较,根据比较结果对当前位置上的磁卡信息进行设置,得到磁卡数据;对当前分组位进行初始化;根据当前分组位将磁卡信息存储区中的磁卡数据进行分组与组合,得到当前处理字节,对当前处理字节进行字节校验;更新当前分组位,得到处理结果;对处理结果进行校验,向上位机返回处理结果或解析失败信息。

Description

一种解析磁卡信号的方法和装置
技术领域
本发明涉及信号处理领域,尤其涉及一种解析磁卡信号的方法和装置。
背景技术
磁卡利用磁性载体记录字母及数字信息,是可以用来标识身份的卡片。由于磁卡成本低廉,易于使用,便于管理,且具有一定的安全特性,使得磁卡的应用非常普及,遍布国民生活的方方面面。通常,磁卡上的磁层或磁条中具有3个磁道,用于记录有关的信息和数据。目前,读卡设备中一般使用磁卡解码芯片对磁卡信息进行解析。磁卡解码芯片成本较高,不易修改或升级,不具有通用性,如磁卡信息使用扩展标准或者自定义磁卡信息时,磁卡解码芯片不能对磁卡信息进行解析。而且,用户在每次进行刷卡的速度不一致,易导致解析过程中的错判。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种解析磁卡信号的方法和装置,易修改或升级,支持正向刷卡和反向刷卡。
本发明提供的一种解析磁卡信号的方法,包括:
步骤S1:解析装置接收磁卡数字信号,当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置对所述磁卡数字信号进行采集,得到磁卡信息,将所述磁卡信息存储在磁卡信息存储区中;
步骤S2:所述解析装置对当前位置进行初始化,根据所述磁卡信息对当前比较值进行初始化;
步骤S3:所述解析装置判断所述磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则根据比较结果对当前位置上的数据进行设置,得到磁卡数据,更新当前位置和当前比较值,执行步骤S5,否则执行步骤S4;
步骤S4:所述解析装置将当前位置之后的磁卡信息的值和当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到磁卡数据,更新当前位置和当前比较值,执行步骤S5;
步骤S5:所述解析装置判断是否已对所有磁卡信息进行设置,是则执行步骤S6,否则返回步骤S3;
步骤S6:所述解析装置对当前分组位进行初始化;
步骤S7:所述解析装置根据当前分组位将所述磁卡信息存储区中的所述磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到处理结果并存储在结果存储区中,执行步骤S8,否则返回解析失败信息;
步骤S8:所述解析装置判断是否已对所有磁卡数据进行处理,是则执行步骤S9,否则更新当前分组位,返回步骤S7;
步骤S9:所述解析装置对所述结果存储区中的所述处理结果进行校验,判断校验是否成功,是则向上位机返回所述处理结果,否则向上位机返回解析失败信息。
在步骤S1之前还包括:当磁卡通过读卡设备的卡槽时,所述读卡设备的磁头接收到所述磁卡磁道上的磁卡模拟信号,所述读卡设备对所述磁卡模拟信号进行转换得到所述磁卡数字信号。
所述步骤S1之前包括:所述解析装置判断是否在预设时间内接收到所述磁卡数字信号,是则执行步骤S1,否则返回超时信息,结束。
当磁道数量为一条时,所述步骤S1具体为:
步骤S1-A1:当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置判断跳变标志位是否置位,是则执行步骤S1-A3,否则执行步骤S1-A2;
步骤S1-A2:所述解析装置将所述跳变标志位置位,清除计数器的计数值,开启所述计数器,开始计数,返回步骤S1-A1;
步骤S1-A3:所述解析装置将计数器的当前计数值作为所述磁卡信息存储到磁卡信息存储区中,清除计数器的计数值,返回步骤S1-A1;
步骤S1-A4:当所述计数器的计数值达到预设溢出值时,采集结束,关闭所述计数器,将所述跳变标志位复位,执行步骤S2。
当磁道数量为一条以上时,所述步骤S1具体为:
步骤S1-A1’:当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置查找发生跳变的磁卡数字信号所在的输入/输出端口,判断与所述输入/输出端口对应的跳变标志位是否置位,是则执行步骤S1-A3’,否则执行步骤S1-A2’;
步骤S1-A2’:所述解析装置将与所述输入/输出端口对应的跳变标志位置位,清除与所述输入/输出端口对应的计数器的计数值,开启所述计数器,开始计数,返回步骤S1-A1’;
步骤S1-A3’:所述解析装置将与所述输入/输出端口对应的所述计数器的当前计数值顺序存储到所述磁卡信息存储区中与所述计数器对应的区域中,清除与所述输入/输出端口对应的所述计数器的当前计数值,返回步骤S1-A1’;
步骤S1-A4’:当与所述输入/输出端口对应的所述计数器中的计数值达到预设溢出值时,采集结束,关闭所述计数器,将所述跳变标志位复位,执行步骤S2。
所述步骤S1包括为:
步骤S1-B1:当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置判断跳变标志位是否置位,是则执行步骤S1-B3,否则执行步骤S1-B2;
步骤S1-B2:所述解析装置将所述跳变标志位置位,清除计数器的计数值,开启所述计数器,开始计数,返回步骤S1-B1;
步骤S1-B3:所述解析装置将所述计数器的当前计数值存储在计数存储区中,返回步骤S1-B1;
步骤S1-B4:当所述计数器的计数值达到预设溢出值时,采集结束,关闭所述计数器,将所述跳变标志位复位,执行步骤S2。
所述步骤S1还包括:
步骤S1-B5:所述解析装置初始化当前计数值;
步骤S1-B6:所述解析装置在所述计数存储区中获取当前计数值与上一个计数值之差,将差值作为所述磁卡信息存储在所述磁卡信息存储区中;
步骤S1-B7:所述解析装置判断当前计数值是否为所述计数存储区中存储的最后一个计数值,是则执行步骤S2,否则更新当前计数值,返回步骤S1-B5。
当磁道数量为一条以上时,所述步骤S1-B3具体为:
步骤a:所述解析装置根据发生跳变的磁卡数字信号所对应的输入/输出端口获取与所述输入/输出端口对应的所述磁道标识;
步骤b:所述解析装置将获取到的所述磁道标识与所述计数器的当前计数值对应存储在所述计数存储区中的存储单元中,执行步骤S1-B2。
所述步骤S1-B5至步骤S1-B7具体为:
步骤c:所述解析装置在所述计数存储区中查找具有当前磁道标识的计数值,在查找到的所有计数值中获取相邻两个计数值之差,将差值作为当前磁道标识所对应的磁道上的所述磁卡信息并将其顺序存储在所述磁卡信息存储区中;
步骤d:所述解析装置判断是否已处理所有磁道标识对应的计数值,是则执行步骤S2,否则更新当前磁道标识,执行步骤c。
当磁道数量为一条以上时,所述步骤S2至步骤S5具体为:
步骤S2-A:所述解析装置获取所述磁卡信息存储区中的一条磁道上的磁卡信息作为当前磁道的磁卡信息;对当前位置进行初始化,根据所述磁卡信息对当前比较值进行初始化;
步骤S2-B:所述解析装置判断所述磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则根据比较结果对当前位置上的数据进行设置,得到当前磁道的磁卡数据,更新当前位置和当前比较值,执行步骤S2-D,否则执行步骤S2-C;
步骤S2-C:所述解析装置将当前位置之后的其他数据和当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到当前磁道的磁卡数据,更新当前位置和当前比较值,执行步骤S2-D;
步骤S2-D:所述解析装置判断是否已对当前磁道的所有磁卡信息进行了设置,是则执行步骤S2-E,否则返回步骤S2-B;
步骤S2-E:所述解析装置判断是否已对所述磁卡信息存储区中所有磁道上的所有磁卡信息进行设置,是则执行步骤S6,否则将未设置的磁道上的磁卡信息作为当前磁道的磁卡信息,返回步骤S2-B。
所述步骤S2至步骤S5具体为:
步骤S2-0:所述解析装置对当前位置、当前脉宽和当前比较值进行初始化;
步骤S2-1:所述解析装置判断所述磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则执行步骤S2-2,否则执行步骤S2-3;
步骤S2-2:所述解析装置将当前脉宽更新为当前位置上的数据,将所述磁卡信息存储区中当前位置上的数据置为0,将下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-3:所述解析装置判断当前位置的下一位上的数据是否大于当前比较值,是则执行步骤S2-4,否则执行步骤S2-5;
步骤S2-4:所述解析装置将当前脉宽更新为当前位置的下一位上的数据,将所述磁卡信息存储区中当前位置上的数据置为0,将当前位置的下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-5:所述解析装置在当前位置之后的所有数据中查找大于当前比较值的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置;
步骤S2-6:所述解析装置判断当前位置与所述第一比较位置之间的数据个数是否为奇数,是则执行步骤S2-8,否则执行步骤S2-7;
步骤S2-7:所述解析装置判断当前位置上的数据是否大于当前位置与所述第一比较位置之间的所有数据,是则执行步骤S2-9,否则执行步骤S2-8;
步骤S2-8:所述解析装置将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据之和,将所述磁卡信息存储区中当前位置上的数据置为1,删除当前位置的下一位上的数据,将被删除数据的下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-9:所述解析装置将当前脉宽更新为当前位置上的数据,将所述磁卡信息存储区中当前位置上的数据置为0,将下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-10:所述解析装置判断是否已处理所有磁卡信息,是则执行步骤S6,否则返回步骤S2-1;
当前脉宽的初始值为所述磁卡信息存储区中的首个数据;对当前脉宽进行计算得到当前比较值。
当磁道数量为一条以上时,所述步骤S6至步骤S8具体为:
步骤A1:所述解析装置获取所述磁卡信息存储区中的一条磁道上的磁卡数据作为当前磁道的磁卡数据;所述解析装置初始化当前磁道的当前分组位;
步骤A2:所述解析装置根据当前磁道的当前分组位将所述磁卡信息存储区中的当前磁道的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到当前磁道的处理结果并存储在结果存储区中,执行步骤A3,否则返回解析失败信息,执行步骤A7;
步骤A3:所述解析装置判断是否已对当前磁道的所有磁卡数据进行解析,是则执行步骤A4,否则更新当前磁道的当前分组位,返回步骤A2;
步骤A4:所述解析装置对所述结果存储区中的当前磁道的处理结果进行校验,判断校验是否成功,是则执行步骤A5,否则执行步骤A6;
步骤A5:所述解析装置向上位机返回所述结果存储区中的当前磁道的处理结果,执行步骤A7;
步骤A6:所述解析装置向上位机返回当前磁道解析失败信息,执行步骤A7;
步骤A7:所述解析装置判断是否已解析所述磁卡信息存储区中所有磁道上的所有磁卡数据,是则执行步骤S9,否则将未处理的磁道上的磁卡数据作为当前磁道的磁卡数据,更新当前磁道的当前分组位,返回步骤A2。
所述步骤S6至步骤S8具体为:
步骤S6-0:所述解析装置初始化当前分组位;
步骤S6-1:所述解析装置按照分组方式根据当前分组位对所述磁卡数据进行分组,得到当前数据组;
步骤S6-2:所述解析装置按照组合方式对当前数据组中的数据进行组合,得到当前处理字节;
步骤S6-3:所述解析装置对当前处理字节进行字节校验,判断字节校验是否成功,是则执行步骤S6-4,否则返回解析失败信息;
步骤S6-4:所述解析装置更新当前处理字节,将当前处理字节转化为十六进制数据,将转化后的数据作为所述处理结果顺序存储在所述结果存储区中;
步骤S6-6:所述解析装置判断所述处理结果是否为预设结尾数据,是则执行步骤S6-7,否则更新当前分组位,返回步骤S6-2;
步骤S6-7:所述解析装置更新当前分组位,按照所述分组方式根据当前分组位对所述磁卡数据进行分组,得到当前数据组,按照所述组合方式对当前数据组中的数据进行组合,得到当前处理字节,执行步骤S6-8;
步骤S6-8:所述解析装置对当前处理字节进行所述字节校验,判断字节校验是否成功,是则执行步骤S6-9,否则返回解析失败信息;
步骤S6-9:所述解析装置更新当前处理字节,将当前处理字节转化为十六进制数据,将转化后的数据作为所述处理结果顺序存储在所述结果存储区中。
所述步骤S6-0与步骤S6-1具体为:
步骤S6-1’:所述解析装置判断刷卡方向是否为正向,是则根据正向刷卡方向初始化当前分组位,按照第一分组方式根据当前分组位对所述磁卡数据进行分组,按照第一组合方式对当前数据组中的数据进行组合;否则根据反向刷卡方向初始化当前分组位,按照第二分组方式根据当前分组位对所述磁卡数据进行分组,按照第二组合方式对当前数据组中的磁卡数据进行组合。
所述解析装置判断刷卡方向是否为正向的方法为:所述解析装置从所述磁卡信息存储区中的所述磁卡数据的起始位置开始查找第一个不为0的数据,判断所述第一个不为0的数据与其后面预设长度的数据的顺序组合数据是否为预设起始数据,是则表示刷卡方向为正向,否则表示刷卡方向为反向。
所述解析装置按照所述第一分组方式根据当前分组位对所述磁卡数据进行分组具体为:所述解析装置将当前分组位上的数据与其后面预设长度的数据分为一组,即为当前数据组;
所述解析装置按照所述第二分组方式根据当前分组位对所述磁卡数据进行分组具体为:所述解析装置将当前分组位上的数据与其前面预设长度的数据分为一组,即为当前数据组。
所述解析装置按照所述第一组合方式对当前数据组中的数据进行组合具体为:将当前数据组中的数据按照从后向前的顺序依次存储在当前处理字节的指定位中,将当前处理字节的其余位设置为0;
所述解析装置按照所述第二组合方式对当前数据组中的磁卡数据进行组合具体为:将当前数据组中的磁卡数据按照从前向后的顺序依次存储在当前处理字节的指定位中,将当前处理字节的其余位设置为0。
所述解析装置判断字节校验是否成功具体为:所述解析装置从当前处理字节中除字节校验位外的各个位中计算取值为1的位的个数得到所述字节校验值,判断所述字节校验值与所述字节校验位上的数据值是否一致,是则表示字节校验成功,否则表示字节校验失败。
所述解析装置更新当前处理字节具体为:所述解析装置将当前处理字节中的字节校验位上的数据设置为0。
所述解析装置对所述结果存储区中的所述处理结果进行校验,判断校验是否成功,具体为:所述解析装置将所述结果存储区中的所述处理结果的最后一个数据所在的位置设为校验位,所述解析装置对所述校验位之前的数据进行异或运算,运算结果为整体校验值,所述解析装置判断所述整体校验值与所述校验位上的数据是否一致,是则表示校验成功,否则表示校验失败。
一种解析磁卡信号的装置,包括;采集模块、初始化模块、比较模块、设置模块、更新模块、第一判断模块、处理模块、第二判断模块、存储模块、校验模块和输出模块;
所述采集模块,用于接收磁卡数字信号,当检测到所述磁卡数字信号发生跳变时,对所述磁卡数字信号进行采集,得到磁卡信息,将所述磁卡信息存储在磁卡信息存储区中;
所述初始化模块,用于对当前位置进行初始化,根据所述磁卡信息对当前比较值进行初始化,对当前分组位进行初始化;
所述比较模块,用于判断所述磁卡信息存储区中的当前位置上的磁卡信息的值是否大于当前比较值;将当前位置之后的磁卡信息的值和当前比较值进行比较;
所述设置模块,用于根据所述比较模块的比较结果对当前位置上的数据进行设置;
所述更新模块,用于更新当前位置和当前比较值;
所述第一判断模块,用于判断是否已对所有磁卡信息进行设置;
所述处理模块,用于根据当前分组位将所述磁卡信息存储区中的所述磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,更新当前处理字节,得到处理结果并存储在结果存储区中;
所述第二判断模块,用于判断是否已对所有磁卡数据进行处理,更新当前分组位;
所述存储模块,用于存储所述磁卡信息、所述磁卡数据和所述处理结果;
所述校验模块,用于对所述结果存储区中的所述处理结果进行校验,判断校验是否成功;
所述输出模块,用于向上位机返回解析失败信息或向上位机返回所述处理结果。
所述采集模块还用于判断是否在预设时间内接收到所述磁卡数字信号。
所述采集模块包括检测单元、第一判断单元、第一计数器单元、第一计数存储单元、第二判断单元和溢出处理单元;
所述检测单元,用于检测所述磁卡数字信号是否发生跳变;
所述第一判断单元,用于判断跳变标志位是否置位;
所述第一计数器单元,用于将所述跳变标志位置位,清除计数器的计数值,开启所述计数器,开始计数;
所述第一计数存储单元,用于将计数器的当前计数值作为所述磁卡信息存储到磁卡信息存储区中,清除计数器的计数值;
所述第二判断单元,用于判断计数器的计数值是否达到预设溢出值;
所述第一溢出处理单元,用于关闭所述计数器,将所述跳变标志位复位。
当磁道数量为一条以上时,所述采集模块包括检测单元、第一查找单元、第三判断单元、第二计数器单元、第二计数存储单元、清除单元、第四判断单元和第二溢出处理单元;
所述检测单元,用于检测所述磁卡数字信号是否发生跳变;
所述第一查找单元,用于查找发生跳变的磁卡数字信号所对应的输入/输出端口;
所述第三判断单元,用于判断与所述输入/输出端口对应的跳变标志位是否置位;
所述第二计数器单元,用于将与所述输入/输出端口对应的跳变标志位置位,清除与所述输入/输出端口对应的计数器的计数值,开启所述计数器;
所述第二计数存储单元,用于将与所述输入/输出端口对应的所述计数器的当前计数值顺序存储到所述磁卡信息存储区中与所述计数器对应的区域中,清除与所述输入/输出端口对应的所述计数器的当前计数值;
所述第四判断单元,用于判断与所述输入/输出端口对应的所述计数器中的计数值是否达到预设溢出值;
所述第二溢出处理单元,用于关闭所述计数器,将所述跳变标志位复位。
所述采集模块包括检测单元、第三计数器单元、第三计数存储单元、第五判断单元和第三溢出处理单元;
所述检测单元,用于检测所述磁卡数字信号是否发生跳变;
所述计数器单元,用于将所述跳变标志位置位,清除计数器的计数值,开启所述计数器;
所述第三计数存储单元,用于将所述计数器的当前计数值存储在计数存储区中;
所述第五判断单元,用于判断所述计数器单元的计数值是否达到预设溢出值;
所述第三溢出处理单元,用于关闭所述计数器,将所述跳变标志位复位。
所述采集模块还包括第一计算单元和第六判断单元;
所述第一计算单元,用于在所述计数存储区中获取当前计数值与上一个计数值之差,将差值作为所述磁卡信息存储在所述磁卡信息存储区中;
所述第六判断单元,用于判断当前计数值是否为所述计数存储区中存储的最后一个计数值。
当磁道数量为一条以上时,所述第三计数存储单元具体用于根据发生跳变的磁卡数字信号所对应的所述输入/输出端口获取与所述输入/输出端口对应的所述磁道标识。
当磁道数量为一条以上时,所述采集模块还包括第二查找单元、第二计算单元和第七判断单元;
所述第二查找单元,用于在所述计数存储区中分别查找具有当前磁道标识的计数值;
所述第二计算单元,用于在查找到的所有计数值中获取相邻两个计数值之差,将差值作为当前磁道标识所对应的磁道上的所述磁卡信息并将其顺序存储在所述磁卡信息存储区中;
所述第七判断单元,用于判断是否已处理所有磁道标识对应的计数值;更新当前磁道标识。
当磁道数量为一条以上时,所述装置还包括第一获取模块和第三判断模块;
所述第一获取模块,用于获取所述磁卡信息存储区中的一条磁道上的磁卡信息作为当前磁道的磁卡信息;
所述第三判断模块,用于判断是否已对所述磁卡信息存储区中所有磁道上的所有磁卡信息进行设置。
所述比较模块还用于判断当前位置的下一位上的数据否大于当前比较值;在当前位置之后的所有数据中查找大于当前比较值的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置;判断当前位置与所述第一比较位置之间的数据个数是否为奇数;判断当前位置上的数据是否大于当前位置与所述第一比较位置之间的所有数据;
所述设置模块还用于将所述磁卡信息存储区中当前位置上的数据置为0;将所述磁卡信息存储区中当前位置上的数据置为1,删除当前位置的下一位上的数据;
所述更新模块还用于将当前脉宽更新为当前位置上的数据;将当前脉宽更新为当前位置的下一位上的数据;将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据之和;将当前位置的下一个数据所在的位置作为当前位置;将被删除数据的下一个数据所在的位置作为当前位置。
当磁道数量为一条以上时,所述装置还包括第二获取模块和第四判断模块;
所述第二获取模块,用于获取所述磁卡信息存储区中的一条磁道上的磁卡数据作为当前磁道的磁卡数据;
所述第四判断模块,用于判断是否已解析所述磁卡信息存储区中所有磁道上的所有磁卡数据。
所述处理模块包括分组单元、组合单元、字节校验单元、更新字节单元、转化单元和更新分组位单元;
所述分组单元,用于按照分组方式对所述存储模块中的所述磁卡数据进行分组,得到当前数据组;
所述组合单元,用于按照组合方式对所述分组单元中得到的当前数据组中的数据进行组合,得到当前处理字节;
所述字节校验单元,用于对所述组合单元中得到的当前处理字节进行字节校验;
所述更新字节单元,用于更新当前处理字节;
所述转化单元,用于将所述更新字节单元中得到的当前处理字节转化为十六进制数据;
所述更新分组位单元,用于更新当前分组位。
所述处理模块还包括第八判断单元,所述第八判断单元用于判断刷卡方向是否为正向。
本发明与现有技术相比,具有以下优点:
解析装置采集并解析磁卡信号,判断刷卡方向,根据不同的刷卡方向,对磁卡信息进行不同的处理,能支持正向刷卡和反向刷卡,刷卡速度为10厘米/秒至120厘米/秒,本发明提供的对第一存储区中的磁卡信息进行转换的方法可避免因刷卡过程中刷卡速度的变化引起的错判。本发明提供的一种解析磁卡信号的方法具有普遍适用性。
附图说明
图1是磁卡模拟信号和磁卡数字信号的示意图;
图2是本发明实施例1提供的一种解析磁卡信号的方法流程图;
图3是本发明实施例2提供的一种解析磁卡信号的方法流程图;
图4是本发明实施例2提供的信号转换装置的方框图;
图5是本发明实施例2提供的一种对磁卡信息存储区中的磁卡信息进行转换的方法流程图;
图6是本发明实施例3提供的一种解析磁卡信号的方法流程图;
图7是本发明实施例4提供的一种解析磁卡信号的装置的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
磁卡上贴有记录数据信息的磁性黑条,磁性黑条通常被称作磁条。磁条由排列定向的磁粒(铁磁材料:铁性氧化粒子)组成,使用树脂粘合剂粘合在一起,并粘合在非磁基片媒介上。
利用磁的性质记录数据信息的方式称为磁记录,磁记录是电信号通过记录磁头产生磁场,对磁记录材料表面(即磁条)进行局部磁化而实现的。具体地,记录磁头由内有空隙的环形铁芯和绕在铁芯上的线圈构成。当有随时间变化的电流送入记录磁头的线圈时,由于记录磁头工作空隙处的磁阻较大,在记录磁头空隙处产生与电流变化成比例的泄露磁场,磁条与记录磁头形成闭合磁路。穿过空隙的磁力线使磁记录材料(即磁条)微小区域上的磁介质向某一方向磁化,于是磁记录材料(即磁条)的剩磁便记录下送入记录磁头的信号。如果电流(或者说磁场强度)按正弦规律变化,那么磁卡上的剩余磁通也同样按正弦规律变化。当电流为正时,就引起一个从N极到S极的磁极性;当电流反向时,磁极性也跟着反向。
在磁条上进行磁记录时,磁记录的方式为数字记录,具体为:在相邻的两个位之间存在磁化翻转,且若在一个位的中间存在磁化翻转则该位记录的为1,若在一个位的中间不存在磁化翻转则该位记录的为0。
当已记录数据信息的磁条通过读卡设备的磁头时,磁条表面的漏磁场在读卡设备的磁头线圈中产生相应的感应电动势,使磁条上的记录重现。具体地,读卡设备的磁头是用高导磁系数的软磁材料制成的铁芯,上面缠有绕组线圈,磁头前面有空隙,当磁卡上的磁条以一定的速度通过读卡设备的磁头时,对进入磁头的磁卡磁通量而言,存在两个并联的有效磁阻,即空隙的磁阻和磁头铁芯的磁阻,因为空隙的有效磁阻远大于磁头铁芯的磁阻,所以磁条上磁通量的绝大部分输入到磁头铁芯,并与磁头上线圈绕组发生交连,因而感应出电动势,从而传输了被记录的信号。
当磁条通过读卡设备的磁头时,若将磁头运动方向设为正方向,当磁条上的磁极性为N极到S极则感应出的电动势为正向,当磁条上的磁极性为S极到N极则感应出的电动势为反向,由此得到电信号,如图1所示,即磁卡模拟信号。由于磁记录时在记录1的位的中间存在磁化翻转,而记录0的位的中间不存在磁化翻转,则在磁卡模拟信号中若在一个位的时间中信号均为正或均为负则表示0,若在一个位的时间中信号由正变为负或由负变为正则表示1。
磁条划分为三个独立的磁道,按ISO7811国际标准规定,第一、第二、第三磁道可被编码的最多字符数分别为79、40、107个字符,其中包括起始和结束标记。具体地,第一磁道最多可记录79个字符(包括字母和数字),每个字符由7位编码(包括一位校验位),第一磁道是只读磁道;第二磁道最多可记录40个数字,每个字符有5位编码(包括一位校验位),第二磁道是只读磁道;第三磁道最多可记录107个数字,每一个字符由5位编码(包括一位校验位),第三磁道是读写磁道。当磁条通过读卡设备的磁头时,读卡设备的磁头可以分别得到磁条上每个磁道上产生的磁卡模拟信号。
本实施例中,解析装置设置在读卡设备中,当磁卡刷过读卡设备时,读卡设备接收到磁卡模拟信号;
实施例1
本发明的实施例1提供一种解析磁卡信号的方法,如图2所示,该方法包括:
步骤101:解析装置接收磁卡数字信号,当解析装置检测到磁卡数字信号发生跳变时,解析装置对磁卡数字信号进行采集,得到磁卡信息,将磁卡信息存储在磁卡信息存储区中;
具体地,本实施例中,在步骤101之前还包括:当磁卡通过读卡设备的卡槽时,读卡设备的磁头接收到磁卡磁道上的磁卡模拟信号,读卡设备对磁卡模拟信号进行转换得到磁卡数字信号;
步骤102:解析装置对当前位置进行初始化,根据磁卡信息对当前比较值进行初始化;
步骤103:解析装置判断磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则根据比较结果对当前位置上的数据进行设置,得到磁卡数据,更新当前位置和当前比较值,执行步骤105,否则执行步骤104;
步骤104:解析装置将当前位置之后的数据和当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到磁卡数据,更新当前位置和当前比较值,执行步骤105;
步骤105:解析装置判断是否已对所有磁卡信息进行设置,是则执行步骤106,否则返回步骤103;
步骤106:解析装置对当前分组位进行初始化;
步骤107:解析装置根据当前分组位将磁卡信息存储区中的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到处理结果并存储在结果存储区中,执行步骤108,否则返回解析失败信息;
步骤108:解析装置判断是否已对所有磁卡数据进行处理,是则执行步骤109,否则更新当前分组位,返回步骤107;
步骤109:解析装置对结果存储区中的处理结果进行校验,判断校验是否成功,是则向上位机返回处理结果,否则向上位机返回解析失败信息;
本实施例中,当磁道数量为一条以上时,步骤102至步骤105具体为:
步骤102-A:解析装置获取磁卡信息存储区中的一条磁道上的磁卡信息作为当前磁道的磁卡信息;对当前位置进行初始化,根据磁卡信息对当前比较值进行初始化;
步骤102-B:解析装置判断磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则根据比较结果对当前位置上的数据进行设置,得到当前磁道的磁卡数据,更新当前位置和当前比较值,执行步骤102-D,否则执行步骤102-C;
步骤102-C:解析装置将当前位置之后的其他数据和当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到当前磁道的磁卡数据,更新当前位置和当前比较值,执行步骤102-D;
步骤102-D:解析装置判断是否已对当前磁道的所有磁卡信息进行了设置,是则执行步骤102-E,否则返回步骤102-B;
步骤102-E:解析装置判断是否已对磁卡信息存储区中所有磁道上的所有磁卡信息进行设置,是则执行步骤106,否则将未设置的磁道上的磁卡信息作为当前磁道的磁卡信息,返回步骤102-B;
本实施例中,当磁道数量为一条以上时,步骤106至步骤108具体为:
步骤A1:解析装置获取磁卡信息存储区中的一条磁道上的磁卡数据作为当前磁道的磁卡数据;解析装置初始化当前磁道的当前分组位;
步骤A2:解析装置根据当前磁道的当前分组位将磁卡信息存储区中的当前磁道的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到当前磁道的处理结果并存储在结果存储区中,执行步骤A3,否则返回解析失败信息,执行步骤A7;
步骤A3:解析装置判断是否已对当前磁道的所有磁卡数据进行解析,是则执行步骤A4,否则更新当前磁道的当前分组位,返回步骤A2;
步骤A4:解析装置对结果存储区中的当前磁道的处理结果进行校验,判断校验是否成功,是则执行步骤A5,否则执行步骤A6;
步骤A5:解析装置向上位机返回结果存储区中的当前磁道的处理结果,执行步骤A7;
步骤A6:解析装置向上位机返回当前磁道解析失败信息,执行步骤A7;
步骤A7:解析装置判断是否已解析磁卡信息存储区中所有磁道上的磁卡数据,是则执行步骤109,否则将未处理的磁道上的磁卡数据作为当前磁道的磁卡数据,返回步骤A2。
实施例2
本发明的实施例2提供一种解析磁卡信号的方法,如图3所示,具体以解析1个磁道上的磁卡信号为例进行说明,该方法包括:
步骤201:解析装置接收磁卡数字信号,当检测到磁卡数字信号发生跳变时,对磁卡数字信号进行采集,得到磁卡信息,将采集到的磁卡信息存储在磁卡信息存储区中,并记录采集到的磁卡信息的个数;
具体地,本实施例中,步骤201之前,读卡设备的磁头接收到磁卡磁道上的磁卡模拟信号,读卡设备对磁卡模拟信号进行转换得到磁卡数字信号;
具体地,本实施例中,读卡设备包括信号转换装置,如图4所示,信号转换装置包括比较模块、R1和R2,信号转换装置接收磁头发来的磁卡模拟信号,将磁卡模拟信号转换为磁卡数字信号,将磁卡数字信号发送到解析装置;解析装置接收到的磁卡模拟信号为模拟信号,转换得到的磁卡数字信号为数字信号,如图1所示;刷卡速度快则接收到的磁卡模拟信号幅值大,刷卡速度慢则接收到的磁卡模拟信号幅值小;
本实施例中,步骤201之前还包括:
当读卡设备接收到刷卡命令时,读卡设备中的定时器开始计时;解析装置判断是否在预设时间内接收到磁卡数字信号,是则执行步骤201,否则返回超时信息,结束;
具体地,本实施例中,步骤201一种实现方法,包括:
步骤201-A1:当解析装置检测到磁卡数字信号发生跳变时,解析装置判断跳变标志位是否置位,是则执行步骤201-A3,否则执行步骤201-A2;
步骤201-A2:解析装置将跳变标志位置位,清除计数器的计数值,开启计数器,开始计数,返回步骤201-A1;
具体地,本实施例中,计数器初始值为0;
步骤201-A3:解析装置将计数器的当前计数值作为磁卡信息存储到磁卡信息存储区中,更新采集到的磁卡信息的个数,清除计数器的计数值,返回步骤201-A1;
步骤201-A4:当计数器的计数值达到预设溢出值时,采集结束,关闭计数器,将跳变标志位复位,执行步骤202;
本实施例中,步骤201的另一种实现方法,包括:
步骤201-B1:当解析装置检测到磁卡数字信号发生跳变时,解析装置判断跳变标志位是否置位,是则执行步骤201-B3,否则执行步骤201-B2;
步骤201-B2:解析装置将跳变标志位置位,清除计数器的计数值,开启计数器,开始计数,返回步骤201-B1;
步骤201-B3:解析装置将计数器的当前计数值存储在计数存储区中,返回步骤201-B1;
步骤201-B4:当计数器的计数值达到预设溢出值时,采集结束,关闭计数器,将跳变标志位复位,执行步骤202;
当解析装置检测到磁卡数字信号发生跳变时,执行以下步骤:
步骤201-B1:解析装置清除计数器的计数值,开启计数器,开始计数;
步骤201-B2:当计数器的计数值达到预设溢出值时,采集结束,关闭计数器,执行步骤201-B4;
步骤201-B3:当解析装置再次检测到转换得到的磁卡数字信号发生跳变时,将计数器的当前计数值存储在计数存储区中,返回步骤201-B2;
步骤201-B4:解析装置在计数存储区中获取所有的相邻两个计数值之差,将差值作为磁卡信息存储在磁卡信息存储区中;
步骤201-B5:解析装置初始化当前计数值;
例如,本实施例中,当前计数值的初始值为计数存储区中的第二个计数值;
步骤201-B6:解析装置在计数存储区中获取当前计数值与上一个计数值之差,将差值作为磁卡信息存储在磁卡信息存储区中;
步骤201-B7:解析装置判断当前计数值是否为计数存储区中存储的最后一个计数值,是则执行步骤202,否则更新当前计数值,返回步骤201-B5;
例如,本实施例中,磁卡信息存储区中的磁卡信息的个数为102个,磁卡信息为:1195,646,1304,1323,1096,1047,988,977,816,768,680,720,351,371,365,353,681,349,340,654,343,325,635,646,633,600,611,314,294,604,609,606,291,297,282,280,552,554,270,260,520,522,259,242,498,491,247,238,478,235,235,471,230,233,454,239,219,229,229,449,224,221,224,236,223,228,227,222,446,436,428,439,417,221,206,417,211,210,206,203,202,201,200,199,189,188,421,415,209,201,205,198,200,195,418,414,416,410,412,408,410,404;
步骤202:解析装置将磁卡信息存储区中的数据分别与当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到磁卡数据;
例如,本实施例中,设置得到的磁卡数据为:0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0;
步骤203:解析装置判断刷卡方向是否为正向,是则执行步骤204,否则执行步骤210;
具体地,本实施例中,解析装置判断刷卡方向是否为正向的方法具体为:解析装置在解析得到的磁卡数据中,从磁卡数据的起始位置开始查找第一个不为0的数据,判断该数据与其后面的三个数据的顺序组合是否为预设起始数据,是则表示刷卡方向为正向,否则表示刷卡方向为反向;优选地,本实施例中,预设起始数据为1101;
例如,本实施例中,以步骤202中所示的解析得到的磁卡数据为例,第一个不为0的数据为第13个数据,该数据与其后面的三个数据的顺序组合为1101,表示刷卡方向为正向;
例如,本实施例中,若解析得到的磁卡数据为:0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0;则第一个不为0的数据为第9个数据,该数据与其后面的三个数据的顺序组合为1110,不是1101,则表示刷卡方向为反向;
步骤204:解析装置按照第一分组方式对磁卡信息存储区中的磁卡数据进行分组,得到当前数据组;
具体地,本实施例中,解析装置按照第一分组方式对解析得到的磁卡数据进行分组,得到当前数据组,具体为:解析装置将当前分组位上的数据与其后面的4个数据分为一组,即为当前数据组;其中,当前分组位的初始位置为:从磁卡数据的起始数据开始,从前向后查找到的第一个不为0的数据所在位;
例如,本实施例中,当前分组位的初始位置为磁卡数据的第13位,则当前数据组中的数据为磁卡数据的第13个数据至第17个数据,即1,1,0,1,0;
步骤205:解析装置按照第一组合方式对当前数据组中的数据进行组合,得到当前处理字节;
具体地,本实施例中,按照第一组合方式对当前数据组中的数据进行组合,得到当前处理字节,具体为:将当前数据组中的数据按照从后向前的顺序依次存储在当前处理字节的第4位至第0位中,将当前处理字节的第5位至第7位设置为0;
例如,本实施例中,若当前数据组中的数据为1,1,0,1,0,则当前处理字节为00001011;若当前数据组中的数据为1,0,0,0,0,则当前处理字节为00000001;若当前数据组中的数据为0,1,0,0,0,则当前处理字节为00000010;若当前数据组中的数据为1,1,0,0,1,则当前处理字节为00010011;
步骤206:解析装置对当前处理字节进行字节校验,判断校验是否成功,是则执行步骤207,否则返回解析失败信息;
具体地,本实施例中,字节校验具体为:将当前处理字节中的第0位至第3位的数据作为数据内容,将当前处理字节中的第4位作为字节校验位,若当前处理字节中的第0位至第3位的数据中取值为1的数据个数为奇数时,则字节校验值为0;若当前处理字节中的第0位至第3位的数据中取值为1的数据个数为偶数时,则字节校验值为1;解析装置根据当前处理字节中的第0位至第3位的数据中取值为1的数据个数得到字节校验值,判断字节校验值与字节校验位上的数据值是否一致,是则表示通过字节校验,否则表示未通过字节校验;
例如,本实施例中,当前处理字节为00001011,当前处理字节中的第0位至第3位的数据中取值为1的数据个数为3,即字节校验值为0,当前处理字节中的第4位为字节校验位,即字节校验位上的数据为0,则当前处理字节通过字节校验;
步骤207:解析装置更新当前处理字节,将当前处理字节转化为十六进制数据后顺序存储在结果存储区中;
具体地,本实施例中,更新当前处理字节的方法为:解析装置将当前处理字节中的字节校验位上的数据设置为0;
例如,本实施例中,若当前处理字节为00001011,则更新后的当前处理字节仍为00001011,转化为十六进制数据:0x0B;若当前处理字节为00010011,则更新后的当前处理字节为00000011,转化为十六进制数据:0x03;
具体地,本实施例中,结果存储区的初始状态为空;
步骤208:解析装置判断当前处理字节转化为十六进制数据后的数据是否为预设结尾数据,是则执行步骤209,否则将与当前数据组中的最后一个数据相邻的后一位作为当前分组位,返回步骤204;
具体地,本实施例中,预设结尾数据表示磁卡数据的数据内容结束;优选地,本实施例中,预设结尾数据为0x0F;
例如,本实施例中,该步骤判断为否时,若当前数据组为磁卡数据的第13个数据至第17个数据,即1,1,0,1,0,则当前分组位更新为磁卡数据的第18位;
步骤209:解析装置将与当前数据组中的最后一个数据相邻的后一位作为当前分组位,按照第一分组方式对磁卡数据进行分组,得到当前数据组,按照第一组合方式对当前数据组中的数据进行组合,得到当前处理字节,执行步骤216;
例如,本实施例中,当前数据组中的数据为磁卡数据的第58个数据至第62个数据,即1,1,1,1,1,则当前分组位更新为磁卡数据的第63位,当前数据组中的数据更新为磁卡数据的第63个数据至第67个数据,即0,0,1,1,1,当前处理字节更新为00011100;
步骤210:解析装置按照第二分组方式对磁卡信息存储区中的磁卡数据进行分组,得到当前数据组;
具体地,本实施例中,解析装置按照第二分组方式对解析得到的磁卡数据进行分组,得到当前数据组,具体为:解析装置将当前分组位上的数据与其前面的四个数据分为一组,即为当前数据组;其中,当前分组位的初始位置为:从磁卡数据的结尾数据开始,从后向前查找到的第一个不为0的数据所在位;
例如,本实施例中,以步骤202中所示的解析得到的磁卡数据为例,解析得到的磁卡数据为:0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0;则当前分组位的初始位置为磁卡数据的第63位,则当前数据组中的数据为磁卡数据的第59个数据至第63个数据,即0,1,0,1,1;
步骤211:解析装置按照第二组合方式对当前数据组中的数据进行组合,得到当前处理字节;
具体地,本实施例中,按照第二组合方式对当前数据组中的数据进行组合,得到当前处理字节,具体为:将当前数据组中的数据按照从前向后的顺序依次存储在当前处理字节的第4位至第0位中,将当前处理字节的第5位至第7位设置为0;
例如,本实施例中,若当前数据组中的数据为磁卡数据的第54个数据至第58个数据,即0,1,0,1,1,则当前处理字节为00001011;若当前数据组中的数据为磁卡数据的第49个数据至第53个数据,即0,0,0,0,1,则当前处理字节为00000001;若当前数据组中的数据为磁卡数据的第44个数据至第48个数据,即0,0,0,1,0,则当前处理字节为00000010;若当前数据组中的数据为磁卡数据的第39个数据至第43个数据,即1,0,0,1,1,则当前处理字节为00010011;
步骤212:解析装置对当前处理字节进行字节校验,判断校验是否成功,是则执行步骤213,否则返回解析失败信息;
具体地,本实施例中,该步骤中字节校验的方法与步骤206相同;
步骤213:解析装置更新当前处理字节,将当前处理字节转化为十六进制数据后顺序存储在结果存储区中;
具体地,本实施例中,更新当前处理字节的方法为:解析装置将当前处理字节中的字节校验位上的数据设置为0;
步骤214:解析装置判断当前处理字节转化为十六进制数据后的数据是否为预设结尾数据,是则执行步骤215,否则将与当前数据组中的第一个数据相邻的前一位作为当前分组位,返回步骤210;
例如,本实施例中,当解析装置判断当前处理字节转化为十六进制数据后的数据不为预设结尾数据时,若当前数据组为磁卡数据的第59个数据至第63个数据,即0,1,0,1,1,则当前分组位更新为磁卡数据的第58位;
步骤215:解析装置将与当前数据组中的第一个数据相邻的前一位作为当前分组位,按照第二分组方式对磁卡数据进行分组,得到当前数据组,按照第二组合方式对当前数据组中的数据进行组合,得到当前处理字节;
例如,本实施例中,当前数据组中的数据为磁卡数据的第14个数据至第18个数据,即1,1,1,1,1,则当前分组位更新为磁卡数据的第13位,当前数据组中的数据更新为磁卡数据的第9个数据至第13个数据,即1,1,1,0,0,当前处理字节更新为00011100;
步骤216:解析装置对当前处理字节进行字节校验,判断校验是否成功,是则执行步骤217,否则返回解析失败信息;
步骤217:解析装置更新当前处理字节,将当前处理字节转化为十六进制数据后顺序存储在结果存储区中;
具体地,本实施例中,更新当前处理字节的方法为:解析装置将当前处理字节中的字节校验位上的数据设置为0;
例如,本实施例中,当前处理字节为00011100,则更新后的当前处理字节为00001100,转化为十六进制数据:0x0C;
步骤218:解析装置对结果存储区中的处理结果进行校验,判断是否校验成功,是则返回该处理结果,否则返回解析失败信息;
具体地,对结果存储区中的处理结果进行校验的方法为:将结果存储区中的最后一个数据所在的位置设置为校验位,解析装置对校验位之前的数据进行异或运算,运算结果为整体校验值,解析装置判断整体校验值与校验位上的数据是否一致,是则表示校验成功,否则表示校验失败;
例如,本实施例中,结果存储区中的数据为:0x0B,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x0F,0x0C,则解析装置对0x0B,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x0F进行异或运算,判断运算结果是否为0x0C,是则表示校验成功,否则表示校验失败。
具体地,本实施例步骤202中解析装置根据记录的磁卡信息的个数对磁卡信息存储区中的磁卡信息进行转换,得到二进制的磁卡数据的方法,如图5所示,包括:
步骤300:解析装置对当前位置、当前脉宽和当前比较值进行初始化;
具体地,本实施例中,磁卡信息存储区中的当前位置的初始位置为第一存储区中第2个磁卡信息所在的位置;当前比较值为当前脉宽的四分之三;当前脉宽的初始值为磁卡信息存储区中起始位置上的磁卡信息的值;当前脉宽被赋值为初始值后,解析装置将磁卡信息存储区中起始位置上的数据置为0;
步骤301:解析装置判断磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则执行步骤302,否则执行步骤303;
步骤302:解析装置将当前脉宽更新为当前位置上的数据,将磁卡信息存储区中当前位置上的数据置为0,对已处理数据个数进行计算,将下一个数据所在的位置作为当前位置,执行步骤310;
优选地,本实施例中,已处理数据个数的初始值为解析装置记录的采集到的磁卡信息的个数,该步骤中对已处理数据个数进行计算具体为:将已处理数据个数减1;除此之外,已处理数据个数的初始值也可以为0,该步骤中对已处理数据个数进行计算具体为:将已处理数据个数加1;
步骤303:解析装置判断当前位置的下一位上的数据是否大于当前比较值,是则执行步骤304,否则执行步骤305;
步骤304:解析装置将当前脉宽更新为当前位置的下一位上的数据,将磁卡信息存储区中当前位置上的数据置为0,对已处理数据个数进行计算,将当前位置的下一个数据所在的位置作为当前位置,执行步骤310;
具体地,本实施例中,该步骤中对已处理数据个数进行计算的方法与步骤302相同;
步骤305:解析装置在当前位置之后的所有数据中查找大于当前比较值的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置;
步骤306:解析装置判断当前位置与第一比较位置之间的数据个数是否为奇数,是则执行步骤308,否则执行步骤307;
步骤307:解析装置判断当前位置上的数据是否大于当前位置与第一比较位置之间的所有数据,是则执行步骤309,否则执行步骤308;
步骤308:解析装置将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据之和,将磁卡信息存储区中当前位置上的数据置为1,对已处理数据个数进行计算,删除当前位置的下一位上的数据,将被删除数据的下一个数据所在的位置作为当前位置,执行步骤310;
优选地,本实施例的该步骤中对已处理数据个数进行计算具体为:将已处理数据个数减2;除此之外,该步骤中对已处理数据个数进行计算也可以为:将已处理数据个数加2;
步骤309:解析装置将当前脉宽更新为当前位置上的数据,将磁卡信息存储区中当前位置上的数据置为0,对已处理数据个数进行计算,将下一位数据所在的位置作为当前位置,执行步骤310;
具体地,本实施例中,该步骤中对已处理数据个数进行计算的方法与步骤302相同;
步骤310:解析装置是否已将所有磁卡信息都转换成磁卡数据,是则执行步骤203,否则返回步骤301;
具体地,本实施例中,解析装置判断已处理数据个数是否达到预设值,是则表示已将磁卡信息都转换成磁卡数据,否则表示未将磁卡信息都转换成磁卡数据;优选地,本实施例中,已处理数据个数的初始值为解析装置记录的采集到的磁卡信息的个数,则预设值为0;除此之外,已处理数据个数的初始值也可以为0,则预设值为解析装置记录的采集到的磁卡信息的个数;
例如,本实施例中,磁卡信息存储区中的磁卡信息为:1195,646,1304,1323,1096,1047,988,977,816,768,680,720,351,371,365,353,681,349,340,654,343,325,635,646,633,600,611,314,294,604,609,606,291,297,282,280,552,554,270,260,520,522,259,242,498,491,247,238,478,235,235,471,230,233,454,239,219,229,229,449,224,221,224,236,223,228,227,222,446,436,428,439,417,221,206,417,211,210,206,203,202,201,200,199,189,188,421,415,209,201,205,198,200,195,418,414,416,410,412,408,410,404;则当前脉宽的初始值为1195,当前比较值的初始值为当前脉宽的四分之三,即1195×3/4=896;
将磁卡信息存储区中第1个数据设置为0;
当前位置为磁卡信息存储区中的第2个数据所在的位置,当前位置上的数据为646,解析装置判断磁卡信息存储区中的当前位置上的数据646是否大于当前比较值896,判断结果为否,则解析装置判断当前位置的下一位上的数据是否大于当前比较值,即判断磁卡信息存储区中的第3个数据1304是否大于当前比较值896,判断结果为是,则解析装置将当前脉宽更新为当前位置的下一位上的数据的值,即更新后的当前脉宽为1304,当前比较值更新为1195×3/4=978,将磁卡信息存储区中的第2个数据置为0,将下一个数据所在的位置作为当前位置,即当前位置更新为磁卡信息存储区中的第3个数据所在的位置;
当前位置为磁卡信息存储区中的第3个数据所在的位置,当前位置上的数据为1304,解析装置判断磁卡信息存储区中的当前位置上的数据1304是否大于当前比较值978,判断结果为是,则解析装置将当前脉宽更新为当前位置上的数据的值,即更新后的当前脉宽仍为1304,当前比较值仍为1195×3/4=978,将磁卡信息存储区中的第3个数据置为0,将下一个数据所在的位置作为当前位置,即当前位置更新为磁卡信息存储区中的第4个数据所在的位置;
……
当前位置为磁卡信息存储区中的第13个数据所在的位置,当前位置上的数据为351,解析装置判断磁卡信息存储区中的当前位置上的数据351是否大于当前比较值540(当前脉宽为720,720×3/4=540),判断结果为否,则解析装置判断当前位置的下一位上的数据是否大于当前比较值,即判断磁卡信息存储区中的第14个数据371是否大于当前比较值540,判断结果为否,则解析装置在当前位置之后的数据中查找大于当前比较值的数据,即解析装置在第13个数据之后的数据中查找大于当前比较值540的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置,则第一比较位置为第17个数据681所在的位置,解析装置判断当前位置与第一比较位置之间的数据的个数是否为奇数,即解析装置判断第13个数据与第17个数据之间数据的个数否为奇数,第13个数据与第17个数据之间有5个数据,判断结果为是,则解析装置将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据的和,即当前脉宽更新为第13数据351与第14个数据371的和,即更新后的当前脉宽仍为722,当前比较值更新为722×3/4=541,将磁卡信息存储区中第13个数据置为1,删除第14数据371,将被删除的数据的下一个数据所在的位置作为当前位置,即当前位置更新为磁卡信息存储区中的第15个数据365所在的位置;
……
则磁卡信息存储区中解析得到的磁卡数据为:0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0。
实施例3
本发明的实施例3提供一种解析磁卡信号的方法,如图6所示,具体以解析3个磁道上的磁卡信号为例进行说明,该方法包括:
步骤401:解析装置对不同磁道上磁卡数字信号分别进行采集,将不同的磁道上采集到的磁卡信息分别存储在磁卡信息存储区的不同区域中,并分别记录每次磁道上采集到的磁卡信息的个数;
具体地,本实施例中,步骤401之前,读卡设备将接收到的不同磁道上的磁卡模拟信号分别转换为磁卡数字信号;
具体地,本实施例中,读卡设备根据磁卡上磁道的个数接收到多路磁卡模拟信号,对每个磁道上的磁卡模拟信号分别进行转换,得到每个磁道上的磁卡数字信号;本实施例中,磁卡的一个磁条中最多可有三个磁道;
本实施例中,步骤401的一种实现方法,包括:
步骤401-A1:当解析装置检测到磁卡数字信号发生跳变时,解析装置查找发生跳变的磁卡数字信号所在的输入/输出端口,判断与输入/输出端口对应的跳变标志位是否置位,是则执行步骤401-A3,否则执行步骤401-A2;
具体地,本实施例中,不同的输入/输出端口接收不同磁道上的磁卡数字信号;优选地,第一输入/输出端口接收第一磁道上的磁卡信息,与第一输入/输出端口对应的计数器为第一计数器,第二输入/输出端口接收第二磁道上的磁卡信息,与第二输入/输出端口对应的计数器为第二计数器,第三输入/输出端口接收第三磁道上的磁卡信息,与第三输入/输出端口对应的计数器为第三计数器;本实施例中,各个计数器的初始值均为0;
步骤401-A2:解析装置将与输入/输出端口对应的跳变标志位置位,清除与输入/输出端口对应的计数器的计数值,开启计数器,开始计数,返回步骤401-A1;
例如,本实施例中,发生跳变的信息所对应的输入/输出端口为第三输入/输出端口,则清除第三计数器的计数值,开启第三计数器,第三计数器开始计数;
步骤401-A3:解析装置将与输入/输出端口对应的计数器的当前计数值顺序存储到磁卡信息存储区中与计数器对应的区域中,清除与输入/输出端口对应的计数器的当前计数值,返回步骤401-A1;
具体地,本实施例中,不同的计数器对应磁卡信息存储区中的不同区域;优选地,第一计数器的当前计数值对应保存在第一磁卡信息存储区的第一区域中,第二计数器的当前计数值对应保存在第二磁卡信息存储区的第二区域中,第三计数器的当前计数值对应保存在第三磁卡信息存储区的第三区域中;本实施例中,各个区域的初始状态均为空;
例如,本实施例中,发生跳变的信息所对应的输入/输出端口为第一输入/输出端口,则将第一计数器的当前计数值698保存在磁卡信息存储区的第一区域中;
步骤401-A4:当与输入/输出端口对应的计数器中的计数值达到预设溢出值时,采集结束,关闭计数器,将跳变标志位复位,执行步骤402;
例如,本实施例中,采集到的磁卡信息为:
磁卡信息存储区的第一区域中:
698,599,596,593,517,505,496,495,401,214,220,389,365,353,681,343,325,654,635,600,611,343,325,,646,633,300,289,365,353,681,343,325,654,635,600,611,343,325,,646,633,300,289;
磁卡信息存储区的第二区域中:
1323,1096,1047,988,977,816,768,680,720,351,371,365,353,681,349,340,654,343,325,635,646,633,600,611;
磁卡信息存储区的第三区域中:
703,652,640,638,517,505,496,495,401,214,220,390,359,353,681,343,325,654,635,600,611,343,325,,639,629,300,289,365,353,681,343,325,654,635,600,609,339,320,637,600,298,274;
本实施例中,步骤401的另一种实现方法,包括:
步骤401-B1:当解析装置检测到磁卡数字信号发生跳变时,解析装置判断跳变标志位是否置位,是则执行步骤401-B3,否则执行步骤401-B2;
步骤401-B2:解析装置将跳变标志位置位,清除计数器的计数值,开启计数器,开始计数,返回步骤401-B1;
步骤401-B3:解析装置根据发生跳变的磁卡数字信号所对应的输入/输出端口获取与输入/输出端口对应的磁道标识;
具体地,本实施例中,不同的输入/输出端口接收不同磁道上的磁卡模拟信号;磁道标识预先存储在解析装置中,优选地,第一输入/输出端口对应第一磁道标识,例如,第一磁道标识为00,第二输入/输出端口对应第二磁道标识,例如,第二磁道标识为01,第三输入/输出端口对应第三磁道标识,例如,第三磁道标识为10;计数器的初始值为0;
例如,本实施例中,当解析装置再次检测到转换得到的磁卡数字信号发生跳变时,发生跳变的信息所对应的输入/输出端口为第一输入/输出端口,则解析装置获取到的磁道标识为00;
步骤401-B4:解析装置将获取到的磁道标识与计数器的当前计数值对应存储在计数存储区中的存储单元中,执行步骤401-B2;
具体地,本实施例中,计数存储区初始状态为空;
例如,本实施例中,计数存储区中的一个存储单元的长度为32位,其中,前两位用于存储磁道标识,其余位用于存储计数器的计数值;
例如,本实施例中,解析装置获取到的磁道标识为00,计数器的当前计数值为698,则在计数存储区中的存储单元中存储的数据为:0x000002BA;若解析装置获取到的磁道标识为10,计数器的当前计数值为703,则在计数存储区中的存储单元中存储的数据为:0x800002BF;若解析装置获取到的磁道标识为01,计数器的当前计数值为1323,则在计数存储区中的存储单元中存储的数据为:0x4000052B;
例如,本实施例中,计数存储区的数据为:
0x000002BA,0x800002BF,0x00000511,0x4000052B,0x8000054B,0x00000765,0x800007D7,0x40000973,0x000009B6,0x80000A63,0x00000BBB,0x80000CEF,0x40000D8A,0x00000DB4,0x80000F7B,0x00000FA4,0x00001136,0x40001166,0x80001207,0x0000120C,0x000012E8,0x0000146D,0x80001493,0x40001537,0x000015DA,0x800015F1,0x0000173B,0x8000174F,0x40001867,0x800018AD,0x000019E4,0x80001A0B,0x40001B0F,0x00001B3B,0x80001B69,0x00001C80,0x80001CC7,0x40001DB7,0x00001F0E,0x80001F6F,0x4000205F,0x400021BE,0x80002217,0x4000231D,0x40002471,0x400025C0,0x4000284A,0x40002994,0x40002ADE;
步骤401-B5:当计数器的计数值达到预设溢出值时,采集结束,关闭计数器,将跳变标志位复位,执行步骤401-B6;
步骤401-B6:解析装置在计数存储区中查找具有当前磁道标识的计数值,在查找到的所有计数值中获取相邻两个计数值之差,将差值作为当前磁道标识所对应的磁道上的磁卡信息并将其顺序存储在磁卡信息存储区中;
例如,本实施例中,查找到的所有的与第一磁道标识对应的计数值为:698,1297,1893,2486,3003,3508,4004,4406,4620,4840,5229,5594,5947,6628,6971,7296,7950;则所有的相邻两个计数值之差为:698,599,596,593,517,505,496,402,214,220,389,365,353,681,343,325,654;差值的个数即为磁卡信息存储区的第一区域中采集到的磁卡信息的个数;
步骤401-B7:解析装置判断是否已处理所有磁道标识对应的计数值,是则执行步骤402,否则更新当前磁道标识,执行步骤401-B6;
例如,本实施例中,查找到的所有的与第二磁道标识对应的计数值为:1323,2419,3466,4454,5431,6247,6927,7607,8287,8638,8989,9329,9664,10314,10644,10974;则所有的相邻两个计数值之差为:1308,1096,1047,988,977,816,680,680,680,351,351,340,335,650,330,330;
查找到的所有的与第三磁道标识对应的计数值为:703,1355,2007,2659,3311,3963,4615,5267,5617,5967,6317,6667,7017,7367,8047,8727;则所有的相邻两个计数值之差为:698,599,596,593,517,505,496,402,214,220,389,365,353,681,343,325,654;
步骤402:解析装置将磁卡信息存储区的不同区域中的磁卡信息数据分别与当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到磁卡数据;
具体地,得到磁卡数据的方法与实施例2中步骤301至步骤310的方法相同;
例如,本实施例中,磁卡信息存储区中设置得到的磁卡数据为:
存储区磁卡信息的第一区域中:
0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0,1;
存储区磁卡信息的第二区域中:
0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0;
存储区磁卡信息的第三区域中:
0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0,1;
步骤403:解析装置获取磁卡信息存储区的第一区域中的磁卡数据;解析装置初始化第一区域的当前分组位;
步骤404:解析装置根据第一区域的当前分组位将第一区域中的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到第一区域处理结果并存储在结果存储区的第一区域中,执行步骤405,否则返回第一磁道解析失败信息,执行步骤406;
本实施例中,结果存储区的初始状态为空;
具体地,本实施例中,解析装置对磁卡信息存储区的第一区域中的磁卡数据进行处理的方法与实施例2中步骤203至步骤217的方法相同;
其中,解析装置判断刷卡方向是否为正向的方法具体为:解析装置在第一磁卡信息存储区中的磁卡数据中,从磁卡数据的起始位置开始查找第一个不为0的数据,判断该数据与其后面的六个数据的顺序组合是否为预设起始数据,是则表示刷卡方向为正向,否则表示刷卡方向为反向;
其中,第一分组方式具体为:将当前分组位上的数据与其后面的6个数据分为一组,即为当前数据组;按照第一组合方式对当前数据组中的数据进行组合具体为:将当前数据组中的数据按照从后向前的顺序依次存储在当前处理字节的第6位至第0位中,将当前处理字节的第7位设置为0;字节校验时,当前处理字节中的第0位至第5位的数据作为数据内容,当前处理字节中的第6位为字节校验位;
相应地,第二分组方式具体为:将当前分组位上的数据与其前面的6个数据分为一组,即为当前数据组;按照第二组合方式对当前数据组中的数据进行组合具体为:将当前数据组中的数据按照从前向后的顺序依次存储在当前处理字节的第6位至第0位中,将当前处理字节的第7位设置为0;
步骤405:解析装置对结果存储区中的第一区域处理结果进行校验,判断校验是否成功,是则向上位机返回结果存储区中的第一区域处理结果,执行步骤406,否则返回第一磁道解析失败信息,执行步骤406;
具体地,本实施例中,解析装置对结果存储区中的第一区域处理结果进行校验的方法与实施例2中步骤218的方法相同;
步骤406:解析装置获取磁卡信息存储区的第二区域中的磁卡数据;解析装置初始化第二区域的当前分组位;
步骤407:解析装置根据第二区域的当前分组位将第二区域中的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到第二区域处理结果并存储在结果存储区的第二区域中,执行步骤408,否则返回第二磁道解析失败信息,执行步骤409;
具体地,本实施例中,解析装置对磁卡信息存储区的第二区域中的磁卡数据进行处理的方法与实施例2中步骤203至步骤217的方法相同;
步骤408:解析装置对结果存储区中的第二区域处理结果进行校验,判断校验是否成功,是则向上位机返回结果存储区中的第二区域处理结果,执行步骤406,否则解析装置向上位机返回第二磁道解析失败信息,执行步骤409;
具体地,本实施例中,解析装置对结果存储区中的第二区域处理结果进行校验的方法与实施例2中步骤218的方法相同;
步骤409:解析装置获取磁卡信息存储区的第三区域中的磁卡数据;解析装置初始化第三区域的当前分组位;
步骤410:解析装置根据第三区域的当前分组位将第三区域中的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到第三区域处理结果并存储在结果存储区的第三区域中,执行步骤411,否则返回第三磁道解析失败信息;
具体地,本实施例中,解析装置对磁卡信息存储区的第三区域中的磁卡数据进行处理的方法与实施例2中步骤203至步骤217的方法相同;
步骤411:解析装置对结果存储区中的第三区域处理结果进行校验,判断校验是否成功,是则向上位机返回结果存储区中的第三区域处理结果,执行步骤406,否则解析装置向上位机返回第三磁道解析失败信息;
具体地,本实施例中,解析装置对结果存储区中的第三区域处理结果进行校验的方法与实施例2中步骤218的方法相同。
实施例4
本发明的实施例4提供一种解析磁卡信号的装置,如图7所示,该装置包括:采集模块501、初始化模块502、比较模块503、设置模块504、更新模块505、第一判断模块506、处理模块507、第二判断模块508、存储模块509、校验模块510和输出模块511;
采集模块501,用于接收磁卡数字信号,当检测到磁卡数字信号发生跳变时,对磁卡数字信号进行采集,得到磁卡信息,将磁卡信息存储在磁卡信息存储区中;
初始化模块502,用于对当前位置进行初始化,根据磁卡信息对当前比较值进行初始化,对当前分组位进行初始化;
比较模块503,用于判断磁卡信息存储区中的当前位置上的磁卡信息的值是否大于当前比较值;将当前位置之后的磁卡信息的值和当前比较值进行比较;
设置模块504,用于根据比较模块503的比较结果对当前位置上的数据进行设置;
更新模块505,用于更新当前位置和当前比较值;
第一判断模块506,用于判断是否已对所有磁卡信息进行设置;
处理模块507,用于根据当前分组位将磁卡信息存储区中的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,更新当前处理字节,得到处理结果并存储在结果存储区中;
第二判断模块508,用于判断是否已对所有磁卡数据进行处理,更新当前分组位;
存储模块509,用于存储磁卡信息、磁卡数据和处理结果;
校验模块510,用于对结果存储区中的处理结果进行校验,判断校验是否成功;
输出模块511,用于向上位机返回解析失败信息或向上位机返回处理结果。
采集模块501还用于判断是否在预设时间内接收到磁卡数字信号。
采集模块501包括检测单元、第一判断单元、第一计数器单元、第一计数存储单元、第二判断单元和溢出处理单元;
检测单元,用于检测磁卡数字信号是否发生跳变;
第一判断单元,用于判断跳变标志位是否置位;
第一计数器单元,用于将跳变标志位置位,清除计数器的计数值,开启计数器,开始计数;
第一计数存储单元,用于将计数器的当前计数值作为磁卡信息存储到磁卡信息存储区中,清除计数器的计数值;
第二判断单元,用于判断计数器的计数值是否达到预设溢出值;
第一溢出处理单元,用于关闭计数器,将跳变标志位复位。
当磁道数量为一条以上时,采集模块501包括检测单元、第一查找单元、第三判断单元、第二计数器单元、第二计数存储单元、清除单元、第四判断单元和第二溢出处理单元;
检测单元,用于检测磁卡数字信号是否发生跳变;
第一查找单元,用于查找发生跳变的磁卡数字信号所对应的输入/输出端口;
第三判断单元,用于判断与输入/输出端口对应的跳变标志位是否置位;
第二计数器单元,用于将与输入/输出端口对应的跳变标志位置位,清除与输入/输出端口对应的计数器的计数值,开启计数器;
第二计数存储单元,用于将与输入/输出端口对应的计数器的当前计数值顺序存储到磁卡信息存储区中与计数器对应的区域中,清除与输入/输出端口对应的计数器的当前计数值;
第四判断单元,用于判断与输入/输出端口对应的计数器中的计数值是否达到预设溢出值;
第二溢出处理单元,用于关闭计数器,将跳变标志位复位。
采集模块501包括检测单元、第三计数器单元、第三计数存储单元、第五判断单元和第三溢出处理单元;
检测单元,用于检测磁卡数字信号是否发生跳变;
计数器单元,用于将跳变标志位置位,清除计数器的计数值,开启计数器;
第三计数存储单元,用于将计数器的当前计数值存储在计数存储区中;
第五判断单元,用于判断计数器单元的计数值是否达到预设溢出值;
第三溢出处理单元,用于关闭计数器,将跳变标志位复位。
采集模块501还包括第一计算单元和第六判断单元;
第一计算单元,用于在计数存储区中获取当前计数值与上一个计数值之差,将差值作为磁卡信息存储在磁卡信息存储区中;
第六判断单元,用于判断当前计数值是否为计数存储区中存储的最后一个计数值。
当磁道数量为一条以上时,第三计数存储单元具体用于根据发生跳变的磁卡数字信号所对应的输入/输出端口获取与输入/输出端口对应的磁道标识。
当磁道数量为一条以上时,采集模块501还包括第二查找单元、第二计算单元和第七判断单元;
第二查找单元,用于在计数存储区中分别查找具有当前磁道标识的计数值;
第二计算单元,用于在查找到的所有计数值中获取相邻两个计数值之差,将差值作为当前磁道标识所对应的磁道上的磁卡信息并将其顺序存储在磁卡信息存储区中;
第七判断单元,用于判断是否已处理所有磁道标识对应的计数值;更新当前磁道标识。
当磁道数量为一条以上时,装置还包括第一获取模块和第三判断模块;
第一获取模块,用于获取磁卡信息存储区中的一条磁道上的磁卡信息作为当前磁道的磁卡信息;
第三判断模块,用于判断是否已对磁卡信息存储区中所有磁道上的所有磁卡信息进行设置。
比较模块503还用于判断当前位置的下一位上的数据否大于当前比较值;在当前位置之后的所有数据中查找大于当前比较值的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置;判断当前位置与第一比较位置之间的数据个数是否为奇数;判断当前位置上的数据是否大于当前位置与第一比较位置之间的所有数据;
设置模块504还用于将磁卡信息存储区中当前位置上的数据置为0;将磁卡信息存储区中当前位置上的数据置为1,删除当前位置的下一位上的数据;
更新模块505还用于将当前脉宽更新为当前位置上的数据;将当前脉宽更新为当前位置的下一位上的数据;将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据之和;将当前位置的下一个数据所在的位置作为当前位置;将被删除数据的下一个数据所在的位置作为当前位置。
当磁道数量为一条以上时,装置还包括第二获取模块和第四判断模块;
第二获取模块,用于获取磁卡信息存储区中的一条磁道上的磁卡数据作为当前磁道的磁卡数据;
第四判断模块,用于判断是否已解析磁卡信息存储区中所有磁道上的所有磁卡数据。
处理模块503包括分组单元、组合单元、字节校验单元、更新字节单元、转化单元和更新分组位单元;
分组单元,用于按照分组方式对存储模块中的磁卡数据进行分组,得到当前数据组;
组合单元,用于按照组合方式对分组单元中得到的当前数据组中的数据进行组合,得到当前处理字节;
字节校验单元,用于对组合单元中得到的当前处理字节进行字节校验;
更新字节单元,用于更新当前处理字节;
转化单元,用于将更新字节单元中得到的当前处理字节转化为十六进制数据;
更新分组位单元,用于更新当前分组位。
处理模块还包括第八判断单元,第八判断单元用于判断刷卡方向是否为正向。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (33)

1.一种解析磁卡信号的方法,其特征在于,所述方法包括:
步骤S1:解析装置接收磁卡数字信号,当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置对所述磁卡数字信号进行采集,得到磁卡信息,将所述磁卡信息存储在磁卡信息存储区中;
步骤S2:所述解析装置对当前位置进行初始化,根据所述磁卡信息对当前比较值进行初始化;
步骤S3:所述解析装置判断所述磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则根据比较结果对当前位置上的数据进行设置,得到磁卡数据,更新当前位置和当前比较值,执行步骤S5,否则执行步骤S4;
步骤S4:所述解析装置将当前位置之后的磁卡信息的值和当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到磁卡数据,更新当前位置和当前比较值,执行步骤S5;
步骤S5:所述解析装置判断是否已对所有磁卡信息进行设置,是则执行步骤S6,否则返回步骤S3;
步骤S6:所述解析装置对当前分组位进行初始化;
步骤S7:所述解析装置根据当前分组位将所述磁卡信息存储区中的所述磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到处理结果并存储在结果存储区中,执行步骤S8,否则返回解析失败信息;
步骤S8:所述解析装置判断是否已对所有磁卡数据进行处理,是则执行步骤S9,否则更新当前分组位,返回步骤S7;
步骤S9:所述解析装置对所述结果存储区中的所述处理结果进行校验,判断校验是否成功,是则向上位机返回所述处理结果,否则向上位机返回解析失败信息。
2.根据权利要求1所述的方法,其特征在于,在步骤S1之前还包括:当磁卡通过读卡设备的卡槽时,所述读卡设备的磁头接收到所述磁卡磁道上的磁卡模拟信号,所述读卡设备对所述磁卡模拟信号进行转换得到所述磁卡数字信号。
3.根据权利要求1所述的方法,其特征在于,所述步骤S1之前包括:所述解析装置判断是否在预设时间内接收到所述磁卡数字信号,是则执行步骤S1,否则返回超时信息,结束。
4.根据权利要求1所述的方法,其特征在于,所述步骤S1具体为:
步骤S1-A1:当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置判断跳变标志位是否置位,是则执行步骤S1-A3,否则执行步骤S1-A2;
步骤S1-A2:所述解析装置将所述跳变标志位置位,清除计数器的计数值,开启所述计数器,开始计数,返回步骤S1-A1;
步骤S1-A3:所述解析装置将计数器的当前计数值作为所述磁卡信息存储到磁卡信息存储区中,清除计数器的计数值,返回步骤S1-A1;
步骤S1-A4:当所述计数器的计数值达到预设溢出值时,采集结束,关闭所述计数器,将所述跳变标志位复位,执行步骤S2。
5.根据权利要求1所述的方法,其特征在于,当磁道数量为一条以上时,所述步骤S1具体为:
步骤S1-A1’:当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置查找发生跳变的磁卡数字信号所在的输入/输出端口,判断与所述输入/输出端口对应的跳变标志位是否置位,是则执行步骤S1-A3’,否则执行步骤S1-A2’;
步骤S1-A2’:所述解析装置将与所述输入/输出端口对应的跳变标志位置位,清除与所述输入/输出端口对应的计数器的计数值,开启所述计数器,开始计数,返回步骤S1-A1’;
步骤S1-A3’:所述解析装置将与所述输入/输出端口对应的所述计数器的当前计数值顺序存储到所述磁卡信息存储区中与所述计数器对应的区域中,清除与所述输入/输出端口对应的所述计数器的当前计数值,返回步骤S1-A1’;
步骤S1-A4’:当与所述输入/输出端口对应的所述计数器中的计数值达到预设溢出值时,采集结束,关闭所述计数器,将所述跳变标志位复位,执行步骤S2。
6.根据权利要求1所述的方法,其特征在于,所述步骤S1包括为:
步骤S1-B1:当所述解析装置检测到所述磁卡数字信号发生跳变时,所述解析装置判断跳变标志位是否置位,是则执行步骤S1-B3,否则执行步骤S1-B2;
步骤S1-B2:所述解析装置将所述跳变标志位置位,清除计数器的计数值,开启所述计数器,开始计数,返回步骤S1-B1;
步骤S1-B3:所述解析装置将所述计数器的当前计数值存储在计数存储区中,返回步骤S1-B1;
步骤S1-B4:当所述计数器的计数值达到预设溢出值时,采集结束,关闭所述计数器,将所述跳变标志位复位,执行步骤S2。
7.根据权利要求6所述的方法,其特征在于,所述步骤S1还包括:
步骤S1-B5:所述解析装置初始化当前计数值;
步骤S1-B6:所述解析装置在所述计数存储区中获取当前计数值与上一个计数值之差,将差值作为所述磁卡信息存储在所述磁卡信息存储区中;
步骤S1-B7:所述解析装置判断当前计数值是否为所述计数存储区中存储的最后一个计数值,是则执行步骤S2,否则更新当前计数值,返回步骤S1-B5。
8.根据权利要求7所述的方法,其特征在于,当磁道数量为一条以上时,所述步骤S1-B3具体为:
步骤a:所述解析装置根据发生跳变的磁卡数字信号所对应的输入/输出端口获取与所述输入/输出端口对应的所述磁道标识;
步骤b:所述解析装置将获取到的所述磁道标识与所述计数器的当前计数值对应存储在所述计数存储区中的存储单元中,执行步骤S1-B2。
9.根据权利要求8所述的方法,其特征在于,所述步骤S1-B5至步骤S1-B7具体为:
步骤c:所述解析装置在所述计数存储区中查找具有当前磁道标识的计数值,在查找到的所有计数值中获取相邻两个计数值之差,将差值作为当前磁道标识所对应的磁道上的所述磁卡信息并将其顺序存储在所述磁卡信息存储区中;
步骤d:所述解析装置判断是否已处理所有磁道标识对应的计数值,是则执行步骤S2,否则更新当前磁道标识,执行步骤c。
10.根据权利要求1所述的方法,其特征在于,当磁道数量为一条以上时,所述步骤S2至步骤S5具体为:
步骤S2-A:所述解析装置获取所述磁卡信息存储区中的一条磁道上的磁卡信息作为当前磁道的磁卡信息;对当前位置进行初始化,根据所述磁卡信息对当前比较值进行初始化;
步骤S2-B:所述解析装置判断所述磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则根据比较结果对当前位置上的数据进行设置,得到当前磁道的磁卡数据,更新当前位置和当前比较值,执行步骤S2-D,否则执行步骤S2-C;
步骤S2-C:所述解析装置将当前位置之后的其他数据和当前比较值进行比较,根据比较结果对当前位置上的数据进行设置,得到当前磁道的磁卡数据,更新当前位置和当前比较值,执行步骤S2-D;
步骤S2-D:所述解析装置判断是否已对当前磁道的所有磁卡信息进行了设置,是则执行步骤S2-E,否则返回步骤S2-B;
步骤S2-E:所述解析装置判断是否已对所述磁卡信息存储区中所有磁道上的所有磁卡信息进行设置,是则执行步骤S6,否则将未设置的磁道上的磁卡信息作为当前磁道的磁卡信息,返回步骤S2-B。
11.根据权利要求1所述的方法,其特征在于,所述步骤S2至步骤S5具体为:
步骤S2-0:所述解析装置对当前位置、当前脉宽和当前比较值进行初始化;
步骤S2-1:所述解析装置判断所述磁卡信息存储区中的当前位置上的数据是否大于当前比较值,是则执行步骤S2-2,否则执行步骤S2-3;
步骤S2-2:所述解析装置将当前脉宽更新为当前位置上的数据,将所述磁卡信息存储区中当前位置上的数据置为0,将下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-3:所述解析装置判断当前位置的下一位上的数据是否大于当前比较值,是则执行步骤S2-4,否则执行步骤S2-5;
步骤S2-4:所述解析装置将当前脉宽更新为当前位置的下一位上的数据,将所述磁卡信息存储区中当前位置上的数据置为0,将当前位置的下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-5:所述解析装置在当前位置之后的所有数据中查找大于当前比较值的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置;
步骤S2-6:所述解析装置判断当前位置与所述第一比较位置之间的数据个数是否为奇数,是则执行步骤S2-8,否则执行步骤S2-7;
步骤S2-7:所述解析装置判断当前位置上的数据是否大于当前位置与所述第一比较位置之间的所有数据,是则执行步骤S2-9,否则执行步骤S2-8;
步骤S2-8:所述解析装置将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据之和,将所述磁卡信息存储区中当前位置上的数据置为1,删除当前位置的下一位上的数据,将被删除数据的下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-9:所述解析装置将当前脉宽更新为当前位置上的数据,将所述磁卡信息存储区中当前位置上的数据置为0,将下一个数据所在的位置作为当前位置,执行步骤S2-10;
步骤S2-10:所述解析装置判断是否已处理所有磁卡信息,是则执行步骤S6,否则返回步骤S2-1;
当前脉宽的初始值为所述磁卡信息存储区中的首个数据;对当前脉宽进行计算得到当前比较值。
12.根据权利要求1所述的方法,其特征在于,当磁道数量为一条以上时,所述步骤S6至步骤S8具体为:
步骤A1:所述解析装置获取所述磁卡信息存储区中的一条磁道上的磁卡数据作为当前磁道的磁卡数据;所述解析装置初始化当前磁道的当前分组位;
步骤A2:所述解析装置根据当前磁道的当前分组位将所述磁卡信息存储区中的当前磁道的磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,是则更新当前处理字节,得到当前磁道的处理结果并存储在结果存储区中,执行步骤A3,否则返回解析失败信息,执行步骤A7;
步骤A3:所述解析装置判断是否已对当前磁道的所有磁卡数据进行解析,是则执行步骤A4,否则更新当前磁道的当前分组位,返回步骤A2;
步骤A4:所述解析装置对所述结果存储区中的当前磁道的处理结果进行校验,判断校验是否成功,是则执行步骤A5,否则执行步骤A6;
步骤A5:所述解析装置向上位机返回所述结果存储区中的当前磁道的处理结果,执行步骤A7;
步骤A6:所述解析装置向上位机返回当前磁道解析失败信息,执行步骤A7;
步骤A7:所述解析装置判断是否已解析所述磁卡信息存储区中所有磁道上的所有磁卡数据,是则执行步骤S9,否则将未处理的磁道上的磁卡数据作为当前磁道的磁卡数据,更新当前磁道的当前分组位,返回步骤A2。
13.根据权利要求1所述的方法,其特征在于,所述步骤S6至步骤S8具体为:
步骤S6-0:所述解析装置初始化当前分组位;
步骤S6-1:所述解析装置按照分组方式根据当前分组位对所述磁卡数据进行分组,得到当前数据组;
步骤S6-2:所述解析装置按照组合方式对当前数据组中的数据进行组合,得到当前处理字节;
步骤S6-3:所述解析装置对当前处理字节进行字节校验,判断字节校验是否成功,是则执行步骤S6-4,否则返回解析失败信息;
步骤S6-4:所述解析装置更新当前处理字节,将当前处理字节转化为十六进制数据,将转化后的数据作为所述处理结果顺序存储在所述结果存储区中;
步骤S6-6:所述解析装置判断所述处理结果是否为预设结尾数据,是则执行步骤S6-7,否则更新当前分组位,返回步骤S6-2;
步骤S6-7:所述解析装置更新当前分组位,按照所述分组方式根据当前分组位对所述磁卡数据进行分组,得到当前数据组,按照所述组合方式对当前数据组中的数据进行组合,得到当前处理字节,执行步骤S6-8;
步骤S6-8:所述解析装置对当前处理字节进行所述字节校验,判断字节校验是否成功,是则执行步骤S6-9,否则返回解析失败信息;
步骤S6-9:所述解析装置更新当前处理字节,将当前处理字节转化为十六进制数据,将转化后的数据作为所述处理结果顺序存储在所述结果存储区中。
14.根据权利要求13所述的方法,其特征在于,所述步骤S6-0与步骤S6-1具体为:
步骤S6-1’:所述解析装置判断刷卡方向是否为正向,是则根据正向刷卡方向初始化当前分组位,按照第一分组方式根据当前分组位对所述磁卡数据进行分组,按照第一组合方式对当前数据组中的数据进行组合;否则根据反向刷卡方向初始化当前分组位,按照第二分组方式根据当前分组位对所述磁卡数据进行分组,按照第二组合方式对当前数据组中的磁卡数据进行组合。
15.根据权利要求14所述的方法,其特征在于,所述解析装置判断刷卡方向是否为正向的方法为:所述解析装置从所述磁卡信息存储区中的所述磁卡数据的起始位置开始查找第一个不为0的数据,判断所述第一个不为0的数据与其后面预设长度的数据的顺序组合数据是否为预设起始数据,是则表示刷卡方向为正向,否则表示刷卡方向为反向。
16.根据权利要求14所述的方法,其特征在于,所述解析装置按照所述第一分组方式根据当前分组位对所述磁卡数据进行分组具体为:所述解析装置将当前分组位上的数据与其后面预设长度的数据分为一组,即为当前数据组;
所述解析装置按照所述第二分组方式根据当前分组位对所述磁卡数据进行分组具体为:所述解析装置将当前分组位上的数据与其前面预设长度的数据分为一组,即为当前数据组。
17.根据权利要求14所述的方法,其特征在于,所述解析装置按照所述第一组合方式对当前数据组中的数据进行组合具体为:将当前数据组中的数据按照从后向前的顺序依次存储在当前处理字节的指定位中,将当前处理字节的其余位设置为0;
所述解析装置按照所述第二组合方式对当前数据组中的磁卡数据进行组合具体为:将当前数据组中的磁卡数据按照从前向后的顺序依次存储在当前处理字节的指定位中,将当前处理字节的其余位设置为0。
18.根据权利要求13所述的方法,其特征在于,所述解析装置判断字节校验是否成功具体为:所述解析装置从当前处理字节中除字节校验位外的各个位中计算取值为1的位的个数得到所述字节校验值,判断所述字节校验值与所述字节校验位上的数据值是否一致,是则表示字节校验成功,否则表示字节校验失败。
19.根据权利要求13所述的方法,其特征在于,所述解析装置更新当前处理字节具体为:所述解析装置将当前处理字节中的字节校验位上的数据设置为0。
20.根据权利要求1所述的方法,其特征在于,所述解析装置对所述结果存储区中的所述处理结果进行校验,判断校验是否成功,具体为:所述解析装置将所述结果存储区中的所述处理结果的最后一个数据所在的位置设为校验位,所述解析装置对所述校验位之前的数据进行异或运算,运算结果为整体校验值,所述解析装置判断所述整体校验值与所述校验位上的数据是否一致,是则表示校验成功,否则表示校验失败。
21.一种解析磁卡信号的装置,其特征在于,所述装置包括;采集模块、初始化模块、比较模块、设置模块、更新模块、第一判断模块、处理模块、第二判断模块、存储模块、校验模块和输出模块;
所述采集模块,用于接收磁卡数字信号,当检测到所述磁卡数字信号发生跳变时,对所述磁卡数字信号进行采集,得到磁卡信息,将所述磁卡信息存储在磁卡信息存储区中;
所述初始化模块,用于对当前位置进行初始化,根据所述磁卡信息对当前比较值进行初始化,对当前分组位进行初始化;
所述比较模块,用于判断所述磁卡信息存储区中的当前位置上的磁卡信息的值是否大于当前比较值;将当前位置之后的磁卡信息的值和当前比较值进行比较;
所述设置模块,用于根据所述比较模块的比较结果对当前位置上的数据进行设置;
所述更新模块,用于更新当前位置和当前比较值;
所述第一判断模块,用于判断是否已对所有磁卡信息进行设置;
所述处理模块,用于根据当前分组位将所述磁卡信息存储区中的所述磁卡数据进行分组与组合,得到当前处理字节,判断当前处理字节是否通过字节校验,更新当前处理字节,得到处理结果并存储在结果存储区中;
所述第二判断模块,用于判断是否已对所有磁卡数据进行处理,更新当前分组位;
所述存储模块,用于存储所述磁卡信息、所述磁卡数据和所述处理结果;
所述校验模块,用于对所述结果存储区中的所述处理结果进行校验,判断校验是否成功;
所述输出模块,用于向上位机返回解析失败信息或向上位机返回所述处理结果。
22.根据权利要求21所述的装置,其特征在于,所述采集模块还用于判断是否在预设时间内接收到所述磁卡数字信号。
23.根据权利要求21所述的装置,其特征在于,所述采集模块包括检测单元、第一判断单元、第一计数器单元、第一计数存储单元、第二判断单元和溢出处理单元;
所述检测单元,用于检测所述磁卡数字信号是否发生跳变;
所述第一判断单元,用于判断跳变标志位是否置位;
所述第一计数器单元,用于将所述跳变标志位置位,清除计数器的计数值,开启所述计数器,开始计数;
所述第一计数存储单元,用于将计数器的当前计数值作为所述磁卡信息存储到磁卡信息存储区中,清除计数器的计数值;
所述第二判断单元,用于判断计数器的计数值是否达到预设溢出值;
所述第一溢出处理单元,用于关闭所述计数器,将所述跳变标志位复位。
24.根据权利要求21所述的装置,其特征在于,当磁道数量为一条以上时,所述采集模块包括检测单元、第一查找单元、第三判断单元、第二计数器单元、第二计数存储单元、清除单元、第四判断单元和第二溢出处理单元;
所述检测单元,用于检测所述磁卡数字信号是否发生跳变;
所述第一查找单元,用于查找发生跳变的磁卡数字信号所对应的输入/输出端口;
所述第三判断单元,用于判断与所述输入/输出端口对应的跳变标志位是否置位;
所述第二计数器单元,用于将与所述输入/输出端口对应的跳变标志位置位,清除与所述输入/输出端口对应的计数器的计数值,开启所述计数器;
所述第二计数存储单元,用于将与所述输入/输出端口对应的所述计数器的当前计数值顺序存储到所述磁卡信息存储区中与所述计数器对应的区域中,清除与所述输入/输出端口对应的所述计数器的当前计数值;
所述第四判断单元,用于判断与所述输入/输出端口对应的所述计数器中的计数值是否达到预设溢出值;
所述第二溢出处理单元,用于关闭所述计数器,将所述跳变标志位复位。
25.根据权利要求21所述的装置,其特征在于,所述采集模块包括检测单元、第三计数器单元、第三计数存储单元、第五判断单元和第三溢出处理单元;
所述检测单元,用于检测所述磁卡数字信号是否发生跳变;
所述计数器单元,用于将所述跳变标志位置位,清除计数器的计数值,开启所述计数器;
所述第三计数存储单元,用于将所述计数器的当前计数值存储在计数存储区中;
所述第五判断单元,用于判断所述计数器单元的计数值是否达到预设溢出值;
所述第三溢出处理单元,用于关闭所述计数器,将所述跳变标志位复位。
26.根据权利要求25所述的装置,其特征在于,所述采集模块还包括第一计算单元和第六判断单元;
所述第一计算单元,用于在所述计数存储区中获取当前计数值与上一个计数值之差,将差值作为所述磁卡信息存储在所述磁卡信息存储区中;
所述第六判断单元,用于判断当前计数值是否为所述计数存储区中存储的最后一个计数值。
27.根据权利要求25所述的装置,其特征在于,当磁道数量为一条以上时,所述第三计数存储单元具体用于根据发生跳变的磁卡数字信号所对应的所述输入/输出端口获取与所述输入/输出端口对应的所述磁道标识。
28.根据权利要求26所述的装置,其特征在于,当磁道数量为一条以上时,所述采集模块还包括第二查找单元、第二计算单元和第七判断单元;
所述第二查找单元,用于在所述计数存储区中分别查找具有当前磁道标识的计数值;
所述第二计算单元,用于在查找到的所有计数值中获取相邻两个计数值之差,将差值作为当前磁道标识所对应的磁道上的所述磁卡信息并将其顺序存储在所述磁卡信息存储区中;
所述第七判断单元,用于判断是否已处理所有磁道标识对应的计数值;更新当前磁道标识。
29.根据权利要求21所述的装置,其特征在于,当磁道数量为一条以上时,所述装置还包括第一获取模块和第三判断模块;
所述第一获取模块,用于获取所述磁卡信息存储区中的一条磁道上的磁卡信息作为当前磁道的磁卡信息;
所述第三判断模块,用于判断是否已对所述磁卡信息存储区中所有磁道上的所有磁卡信息进行设置。
30.根据权利要求21所述的装置,其特征在于,所述比较模块还用于判断当前位置的下一位上的数据否大于当前比较值;在当前位置之后的所有数据中查找大于当前比较值的数据,将查找到的第一个大于当前比较值的数据所在的位置记为第一比较位置;判断当前位置与所述第一比较位置之间的数据个数是否为奇数;判断当前位置上的数据是否大于当前位置与所述第一比较位置之间的所有数据;
所述设置模块还用于将所述磁卡信息存储区中当前位置上的数据置为0;将所述磁卡信息存储区中当前位置上的数据置为1,删除当前位置的下一位上的数据;
所述更新模块还用于将当前脉宽更新为当前位置上的数据;将当前脉宽更新为当前位置的下一位上的数据;将当前脉宽更新为当前位置上的数据与当前位置的下一位上的数据之和;将当前位置的下一个数据所在的位置作为当前位置;将被删除数据的下一个数据所在的位置作为当前位置。
31.根据权利要求21所述的装置,其特征在于,当磁道数量为一条以上时,所述装置还包括第二获取模块和第四判断模块;
所述第二获取模块,用于获取所述磁卡信息存储区中的一条磁道上的磁卡数据作为当前磁道的磁卡数据;
所述第四判断模块,用于判断是否已解析所述磁卡信息存储区中所有磁道上的所有磁卡数据。
32.根据权利要求21所述的装置,其特征在于,所述处理模块包括分组单元、组合单元、字节校验单元、更新字节单元、转化单元和更新分组位单元;
所述分组单元,用于按照分组方式对所述存储模块中的所述磁卡数据进行分组,得到当前数据组;
所述组合单元,用于按照组合方式对所述分组单元中得到的当前数据组中的数据进行组合,得到当前处理字节;
所述字节校验单元,用于对所述组合单元中得到的当前处理字节进行字节校验;
所述更新字节单元,用于更新当前处理字节;
所述转化单元,用于将所述更新字节单元中得到的当前处理字节转化为十六进制数据;
所述更新分组位单元,用于更新当前分组位。
33.根据权利要求32所述的装置,其特征在于,所述处理模块还包括第八判断单元,所述第八判断单元用于判断刷卡方向是否为正向。
CN201310405526.3A 2013-09-09 2013-09-09 一种解析磁卡信号的方法和装置 Active CN103488963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310405526.3A CN103488963B (zh) 2013-09-09 2013-09-09 一种解析磁卡信号的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310405526.3A CN103488963B (zh) 2013-09-09 2013-09-09 一种解析磁卡信号的方法和装置

Publications (2)

Publication Number Publication Date
CN103488963A true CN103488963A (zh) 2014-01-01
CN103488963B CN103488963B (zh) 2016-01-20

Family

ID=49829173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310405526.3A Active CN103488963B (zh) 2013-09-09 2013-09-09 一种解析磁卡信号的方法和装置

Country Status (1)

Country Link
CN (1) CN103488963B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740741A (zh) * 2016-01-30 2016-07-06 飞天诚信科技股份有限公司 一种磁条卡信息的解析方法及装置
CN109325375A (zh) * 2018-09-29 2019-02-12 飞天诚信科技股份有限公司 一种非接触智能卡读卡终端及其工作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2535853Y (zh) * 2002-04-28 2003-02-12 霍晓东 磁卡读写机构的数据采集、监测装置
CN102368076A (zh) * 2011-10-19 2012-03-07 福建联迪商用设备有限公司 一种刷卡速度测试方法及刷卡速度测试设备
CN103034829A (zh) * 2012-12-19 2013-04-10 福建升腾资讯有限公司 一种磁卡的软解码方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2535853Y (zh) * 2002-04-28 2003-02-12 霍晓东 磁卡读写机构的数据采集、监测装置
CN102368076A (zh) * 2011-10-19 2012-03-07 福建联迪商用设备有限公司 一种刷卡速度测试方法及刷卡速度测试设备
CN103034829A (zh) * 2012-12-19 2013-04-10 福建升腾资讯有限公司 一种磁卡的软解码方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740741A (zh) * 2016-01-30 2016-07-06 飞天诚信科技股份有限公司 一种磁条卡信息的解析方法及装置
CN105740741B (zh) * 2016-01-30 2019-01-04 飞天诚信科技股份有限公司 一种磁条卡信息的解析方法及装置
CN109325375A (zh) * 2018-09-29 2019-02-12 飞天诚信科技股份有限公司 一种非接触智能卡读卡终端及其工作方法

Also Published As

Publication number Publication date
CN103488963B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN103533161B (zh) 基于移动设备的快速拍照方法及装置、移动设备
US2436829A (en) Bipolar magnetic control record
CN103488963B (zh) 一种解析磁卡信号的方法和装置
CN107515722A (zh) 信息存储、展示方法、装置、设备及计算机存储介质
CN103324274A (zh) 一种人机交互方法和装置
CN108074624A (zh) 存储卡测试方法装置和方法、计算机设备和存储介质
WO2003017181A2 (en) Apparatus and method for reading magnetic stripes
CN104932011A (zh) 一种拾取地震波初至的方法及装置
CN1096664C (zh) 检出磁换能器产生的原始数据信号中数据脉冲的方法和装置
CN106443449A (zh) 一种基于霍尔信号的导通控制表自动生成仪及其检测方法
CN206411689U (zh) 光学点读装置
US3671935A (en) Method and apparatus for detecting binary data by polarity comparison
US3810236A (en) Data recording and verification system
JPH04503895A (ja) 二進情報を変調するための方法
CN108932954A (zh) 具有刷卡信息反馈的磁条读取器
CN103399714A (zh) 存储设备配置信息的维护系统及其使用方法
CN106330230A (zh) 卡片保护电路、卡槽、终端及卡片保护方法
CN100545933C (zh) 再生信号处理设备和光盘设备
CN101605234A (zh) 信息记录再现装置及信息记录方法
CN104572715B (zh) 矢量图形的处理方法及装置
US2932008A (en) Matrix system
CN103677566A (zh) 图片编辑方法和装置
JP3368788B2 (ja) スピンバルブ磁気抵抗素子を備えた磁気ヘッドの検査方法及び検査装置
CN208400245U (zh) 一种图书流通管理系统
CN101950264A (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
C14 Grant of patent or utility model
GR01 Patent grant