Tag标签
  • 传统
  • 图文
  • 卡片
全部文章

闭于磁卡的根本学问

磁卡

  关于磁卡的基本知识_计算机软件及应用_IT/计算机_专业资料。本文意在对磁卡的基本构造和工作方式做一个简要的介绍。

  关于磁卡的基本常识 本文档的目的在于普及与银行卡业务相关的软硬件人员最基本的银行卡片 知识, 在于提供给各项目负责人一个一个了解银行磁卡的引子。对于想要细究银 行磁卡以及磁卡解码电路等方面的资深技术人员可以直接忽略本文档。 一、磁条卡的概念、相关规范标准 磁条卡是一种磁记录介质卡片。它由高强度、耐高温的塑料或纸质涂覆塑料 制成,能防潮、耐磨且有一定的柔韧性,携带方便、使用较为稳定可靠。通常, 磁卡的一面印刷有说明提示性信息,如插刷卡方向;另一面则有磁层或磁条,具 有 2-3 个磁道以记录有关信息数据。广泛应用于管理公共运输、停车场、电话、 电影院、船运、俱乐部、宾馆房间和银行卡纪录等等。 抗 磁:简单讲,是用来衡量磁条抵抗因受外界磁场影响而造成数据损失 的能力,又称抗消磁性。磁抗(矫顽磁力)单位是 OE(奥斯特) 。 低磁抗条:普通抗消磁性磁条,磁抗一般为 300~650OE。 高磁抗条:具有较高抗消磁性磁条,磁抗一般为 2750,3500 和 4000OE。 磁条卡的标准,国际标准 ISO/IEC7811-1,2,3,4,5,6,国家标准有 GB/T15120。 详细规定了磁条卡的介质、物理尺寸、磁条数据位置、角度、磁性强度、磁条数 据位的宽度、磁条数据的前导 0 等等。 二、卡片硬件构成: 如上图,磁卡一般包含 3 个磁道,Track1,2,3 的每个磁道宽度相同,大约 在 2.80mm(0.11 英寸)左右,用于存放用户的数据信息;相邻两个 Track 约有 0.05mm (0.02 英寸)的间隙(Gap) ,用于区分相邻的两个磁道;整个磁带宽度在 10.29 毫米 (0.405) 左右 (如果是应用 3 个 Track 的磁卡) , 或是在 6.35 毫米 (0.25 英寸)左右(如果是应用 2 个 Track 的磁卡) 。实际上我们所接触看到的银行磁 卡上的磁带宽度会加宽 1~2mm 左右,磁带总宽度在 12~13mm 之间。 在磁带上,记录 3 个有效磁道数据的起始数据位置和终结数据位置不是在磁 带的边缘,而是在磁带边缘向内缩减约 7.44mm(0.293 英寸时)为起始数据位置 (引导 0 区) ;在磁带边缘向内缩减约 6.93mm(0.273 英寸)为终止数据位置(尾 随 0 区) ;这些标准是为了有效保护磁卡上的数据不易被丢失。因为磁卡边缘上 的磁记录数据很容易因物理磨损而被破坏。 按照国标 GB/T 15120 的相关规定,银行磁卡磁道位置最大可以上下偏移 0.5mm(同一磁条边沿最上可以到达位置与最下可以到达位置之间的距离最大为 1mm) ,磁道的宽度一般为 2.8mm 左右,而 C730 要求的读磁卡磁头的磁道宽度 为 1.4?0.1mm,C730 磁头定位孔允许偏差的距离为?0.05mm,在最坏情况下, 磁头定位偏差 0.1mm, 磁头磁道宽度为 1.5mm, 磁头磁条允许活动空间为 1.7mm, 因此只要所有构件定位均符合设计要求,则无论上边沿卡还是下边沿卡,磁头磁 条始终保持在卡片磁道中,从而保证了刷卡的可靠性。 磁道(Track1,Track2,Track3)使用的数字和字符: 磁卡上 3 个 Track 一般都是使用“位”(bit)方式来编码的。根据数据所在的 Track 不同,5 个 bit 或 7 个 bit 组成一个字节。 Track1(IATA):记录密度为 210BPI;可以记录 0~9 数字及 A~Z 字母等; 总共可以记录多达 79 个数字或字符 (包含起始结束符和校验符) ; 每个字符 (一 个字节)由 7 个 bit 组成。由于 Track1 上的信息不仅可以用数字 0~9 来表示, 还能用字母 A~Z 来表示信息, 因此 Track1 上信息一般记录了磁卡的使用类型、 范围等一些“标记”性、“说明”性的信息。例如银行用卡中,Track1 记录了用户的 姓名,卡的有效使用期限以及其他的一些“标记”信息。 Track2 (ABA) : 记录密度为 75BPI; 可以记录 0~9 数字, 不能记录 A~Z 字 符;总共可以记录多达 40 个数字(包含起始结束符和校验符) ;每个数据(一个 字节)由 5 个 bit 组成。 Track3 (THRIFT) : 记录密度为 210BPI; 可以记录 0~9 数字, 不能记录 A~ Z 字母;总共可以记录多达 107 个数字或字符(包含起始结束符和校验符) ;每 个字符(一个字节)由 5 个 bit 组成。由于 Track2 和 Track3 上的信息只能用 数字 0~9 等来表示, 不能用字母 A~Z 来表示信息, 因此在银行用卡中, Track2, 3 一般用以记录用户的帐户信息、款项信息等等,当然还有一些银行所要求的特 殊信息等。由于目前我们产品只支持二、三磁道数据解码,因此对于一磁道信号 不作介绍。 三、数据在磁条上的存储方式 数据存储在磁条上通常采用双频相位相干记录,数据由数据位和定时位一起 构成,在两个时钟之间产生的磁通翻转记为“1” ,无磁通翻转记为“0” 。数据按 照字符的同步序列记录,而不插入间隙,数据存储格式如下图: 四、磁卡数据存储结构 4.1 每字节数据构成: 二、三磁道数据每字节均由 5bit 构成,按照正向刷卡方向,数据构成结构如下 图: 正向刷卡正确的情况下,首先获得数据 B0(即该字节最低位 bit0),然后依次 B1、B2、B3、P,其中 P 为该字节的奇偶校验位。如果逆向刷卡,则首先获得 的是该字节的奇偶校验位。国标 GB15120 中规定磁卡采用奇校验,即保证每个 字节中的 1 的个数为奇数个。磁卡数据中的起始、结束和纵向冗余校验字节本身 都有奇偶校验。 4.2 数据构成: 二三磁道数据构成结构都是一样的,即包括一个起始位、若干个数据位、一 个结束位、一个冗余校验位,构成结构图如下图: 对于正向刷卡过程,最先获得的是 D0 数据,也就是磁卡该磁道的起始标记位。 而如果逆向刷卡,则首先得到的是校验位,即磁卡该磁道的最后一个有效数据。 磁卡磁道最后一个字节为纵向冗余校验位。纵向冗余校验的规则是:磁卡数据每 一个字节对应的位上的 1 的个数为偶数个。纵向冗余校验包含了起始、结束、分 隔以及冗余校验字节本身,但是应当注意的是,冗余校验位只对数据位校验,对 奇偶校验位不做冗余校验。 注意:按照国标 GB15120 规定,磁卡二磁道数据最大 40 字节,磁卡三磁道 数据最长 107 字节,各自包括 1 个起始位、1 个结束位和 1 个冗余校验位,也就 是说,磁卡二磁道有效数据最长不会超过 37 字节;三磁道有效数据最长不会超 过 104 字节。 五、磁卡硬件解码原理: 按照磁卡数据构成格式, 磁卡解码电路通过磁头检测到磁卡中磁信号在固定 时间内磁信号的变化,将磁信号转化为 0、1 数据流输出,我们目前使用的磁卡 解码芯片选用 M3-2200-33(双磁道,工作电压为 3.3V~5V) ,在刷卡开始时,系 统进入刷卡模式, 轮询磁卡时钟输出脚电平变化, 在时钟下降沿读取 1bit 解码数 据。 M3-2200-33 工作电压为 3.3V?5%,待机电流 1.2mA,解码电路工作电压为 1mA,解码速率为 200bps~15000bps。工作时序如下: 六、磁卡解码驱动设计原理: 反推磁卡数据及磁卡刷卡流程,磁卡解码驱动应当包含如下几部分:获取 磁卡数据(bit 流)、解码、冗余校验。 6.1 获取数据: 在 C730-2 驱动中,获取数据方式为:在刷卡过程中(硬件表现为磁卡解码 芯片 CLS 信号输出低电平),在磁卡解码芯片时钟信号下降沿时读取 1 个 bit 数 据。为了降低内存消耗,C730-2 驱动中,在获取数据的同时,将数据按照 16 bit 一个字节的方式存储,存储顺序为:先到 bit 存储在最高位,一个字节存满则启 用下一个字节,即第一个 bit 存储在第一个字节的最高位上,依次类推。 6.2 解码过程: 磁卡解码过程最重要的是获取起始位。GB15120 中规定,二、三磁道的数 据均以 0X0B 开始,0X0F 结束,为了兼顾刷卡方向,解码程序涉及大致思想如 下: 在第一个非零数据位开始的前 5 个 bit 位解码为 0X0B,而紧接着的下 5bit 解码不等于 0X1F(最高位 “1” 为奇偶校验位),则判定该方向为正确的刷卡方向; 如果不符合,则尝试逆向解码。如果正反向均解不出来,则判定该次解码失败。 解码在获得启示字节之后, 每 5bit 为一个字节, 用奇偶校验判定每一个字节是否 正确。 程序以 0X1F 作为判定解码结束的依据, 在获取到 0X1F 后且下一个字节(下 5bit)奇偶检验正确,则判定解码过程结束,将磁卡数据送交冗余校验。 程序存在的危险:在非常偶然条件下,刷卡过程出现错误造成某个字节为 全 1,而下一个字节的奇偶检验正确,非常巧合的情况下,上述获取的数据恰好 能完成冗余校验, 则此时我们把这错误数据当成了正确的解码数据,而且基本上 没有其他手段来验证其正确性,只能依赖银行系统来验证。 6.3 纵向荣誉校验: 纵向冗余校验算法思想很简单,就是将所有数据全部按位异或,若结果为 0,则判定刷卡、解码正确,否则认定校验错误。

上一篇:

下一篇:

本站文章于2019-10-05 09:54,互联网采集,如有侵权请发邮件联系我们,我们在第一时间删除。 转载请注明:闭于磁卡的根本学问 磁卡