物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  支付  >  正文

金融终端中磁卡读卡器的实现

作者:龚翔字 陈俊 任毅
来源:中国一卡通网
日期:2008-01-31 17:56:52
摘要:随着经济的发展,磁卡在金融、商业、通信、安全、证券等领域得到了广泛的运用。文章在较为详细地说明磁卡的基本结构及读写原理和数据记录方式的基础上。完成磁卡读卡器硬件架构的实现和软件的设计思想、程序流程图,并且论述了正向刷卡和反向刷卡的软件译码方法。

1引言 

    磁条卡是一种运用磁性物质制成的标识卡。目前。它广泛的被制作成为银行卡,身份识别卡,公交卡,电话卡,公路交费卡等等,有着比较广泛的运用领域。磁条卡有使用便利,数据可长期保存,可反复擦写,携带方便,价格低廉便于普及等优点。本设计是一款智能金融终端的刷卡部分.运用M3—2200作为磁信号的硬件转换芯片,运用一款以ARM7TDMI为内核的东芯SEP3203作为主处理器 

2磁条卡原理

2.1磁条卡的材料及分类 

    磁条卡的正面由聚氯乙烯、聚氯醋酸乙烯或者是ABS工程塑料制作而成:反面则是具有磁性材料的一面.磁性面上有涂磁区一般分为三个磁道,用于记录固定或可变数据及冗余数据。按照磁性材料分布,磁卡可分为:全面涂磁卡、贴磁条卡、局部涂磁卡;按照磁卡的矫顽力可分为:高矫顽力磁卡(1500奥斯特以上)、低矫顽力磁卡(300奥斯特)。

2.2磁卡的读写原理 

    磁条卡的读写都是由磁头执行的,磁头由三部分组成:软磁性磁芯、线圈、磁路间隙。软磁性磁芯组成磁路,它由低矫顽力和 高导磁率的软磁化材料构成。线圈的作用是把线圈中的变化的电动势变成变化的磁通或者是将线圈中变化的磁通变成变化的电 动势。磁路间隙的作用是形成漏磁。

    为了将数据信息写入磁卡,首先要进行编码如:调频制(FM)。调相制(PM),改进调频制(MFM,F2F)等。将经过编码的信号电流通人写磁头,并且使写磁头与磁卡磁性面贴近,写磁头与磁卡间以一定的速度进行相对运动,磁轨被磁化,信息即被写入到磁卡磁轨之上。 实际的操作是将磁轨贴近磁路间隙,并且以一定的速度通过磁头,磁通因为磁路间隙处的磁阻较大而主要通过磁卡的磁性体来构成磁通回路,使磁轨被磁化,且借助剩磁效应.完成数据信息的写入。 

    磁卡数据的读出是写入的反向过程,是将磁轨上的磁信号转变成电信号,通过二进制编码转化成二进制信号。最后将二进制信号转变成源信号。实际操作是将磁轨贴近磁路间隙,且磁轨以一定的速度通过磁头,使磁头磁路有磁通变化.根据电磁感应定律,磁头线圈产生感应电势,即磁轨上的磁信号转变成电信号,磁头线圈两端产生电压信号,通过二进制译码磁卡上的信息被读出。

3数据译码方式 

3.1磁卡数据记录方式 

    磁卡上的数据记录是按照IS07811的标准规定,有三个磁道。一磁道的数据记录密度为210bpi,最多可记录79个字母和数字,每个字符由7位编码.一磁道是只读磁道。二磁道的数据记录密度为75bpi,最多可记录40个数字,每个字符有5位编码,二磁道也是只读磁道。三磁道的数据记录密度是210bpi,最多可以记录107个数字,每一个字符由5位编码,三磁道是读写磁道。在银行系统的运用中。所有的银行磁条卡都运用二磁道。根据各个银行规定可以选择运用三磁道.一磁道暂不使用。
 
    以二磁道为例,每5个bit组成一个byte的数据,p1,c4,c3,c2,c1,其中p1表示奇偶校验位,e1一e4表示数据位,一共可以表示16 种字符.在这些字符当中含有10个阿拉伯数字和6个其他字符。磁道上的数据是逻辑取反的,即磁道上取到的为1的数据,实际表示逻辑0。将取反后得到数据的低四位再加上0X30可以取到相应ASIC码。磁道上的数据可以大体分为6个部分(见表1),磁道开始有一些冗余数据,紧接着是起始标志位,再者是数据区,后是结束标志位。在这之后是LRC(纵向冗余校验位),最后又是冗余数据区。二磁道从开始标志位到结束标志位一共最多可以有40个数据。

    冗余数据区不含有效数据,只是用作磁道数据的同步,由若干的1组成,取反后全为数据0。一般在软件译码时,只有当检测到连续出现5位连续1(即表示逻辑0)的冗余数据时,才认为磁道已经开始。开始标志位。磁道上的数据是101O0,取反后是01011。值为0x0B,加上0X30后为字符‘;’。数据区(见表2)包含主账号,字段分隔符,失效日期,服务代码,附加数据。其译码方式与开始标志位相同。结束标志位值为OxlF。其转化成ASIC码为字符‘?’。LRC(纵向冗余校验位)为磁道上各字符的异或和。由于刷卡方向不定.可能为正向刷卡或者是反向刷卡。所以在判断有效数值时以磁道上第一个0(取反即为1)为标志,这是因为无论是使其标志位0x0B还是OxlF其第一个有效位都是0 (取反即为1)。

3.2软件译码方式 

    经过硬件解调电路出来的信号共有5路,将两个磁道分别对应的时钟CLK信号接主处理器的中断信号,两个磁道数据端分别接主处理器的I/O信号。GradPresent磁卡在线信号CP接主处理器的I/O信号。当刷卡时CP信号为低,且在CLK中断信号为低电平时触发,主处理器在数据口取数据。(取其中的一路信号时序图.见图1)

    作正向刷卡数据处理,首先,将接收到的数据一起存放在一段内存区内,判断当第一位为0(取反为1)的数据开始作为有效数据每五个bit取反作为一个字节的数据。第一个数据为0x0B且有能够在40个字节的数据之内有OxlF判断为正向数据接收成功。 

    反向刷卡有50%的几率,作反向刷卡时,数据处理是从所有磁道上接收的数据的最后一个bit开始往前每5个bit组成一个byte。当第一位为0(取反为逻辑1)的数据开始做每5个bit取反作为一个字节的解码操作,第一个数据为0XOB且在107数据之内有0x1F出现判断为反向数据接收成功。之后将接收成功的数据转化成相应的ASIC码。

图2 一个磁道的软件译码流程图 

    磁卡作为一种记录数据的有效载体,其数据信息的安全性和准确性是很高的。但是在一些操作不当的情况下,还是会出现一些数据错误的情况。在手动刷卡时,要求速度控制在每秒3英寸到50英寸的范围内,过快、过慢或者是不必要的抖动都会引起数据错误。在解码软件中,在判断正向和反向处理的数据是否正确,除了判断起始标志位和结束标志位。还要对每一个byte(取反后的数据)的数据作奇偶校验位的检测,在这里具体是作奇校验即一个byte中低四位数据加上奇偶校验位(即最高位)中1的个数 是奇数时有效,为偶数时,判断为刷卡错误。而且,若是刷卡到一半时就将卡从卡槽中拿出,也可通过在线信号CP是否为低来加以判断。

4磁卡读卡器硬件架构 

    整个读卡器部分有磁头,译码芯片和以ARM 主处理器为核心的CUP模块。选用的ARM芯片一东芯SEP3203是东南大学自主研制的一款以ARM7TDMI为IP内核的32位RISC芯片,工作主频可以达到75MHz,可以满足刷卡器中断的上来的频率,该处理器有丰富的I/O资源和中断口资源和其他的接口资源。刷卡得到的数据可以高效率的通过ARM 芯片处理,并且可以通过其他接口如串行口等将数据导出,或者是将数据保存到FLASH中。CUP模块由SEP3203,FLSAH,SDRAM 和相应的外围电路组成。

    硬件译码芯片选择了台湾中青科技的M3—2200。该芯片可以同时接两路信号进行译码,满足同时接二磁道和三磁道数据的要求,采用改进调频制(F2F)输出信号,每秒钟可以输出200—10000个信号给CPU。此译码芯片的一端接磁头,由磁头上输入两路信号给芯片;输出信号两组,每一组有两路信号,分别是:DATA和、CLK.其中DATA信号接CUP的GPIO口作普通信号使用,CLK接GPIO口作为中断口使用,且是低电平触发。此外,还有一路GradPresent磁卡在线信号cp,此信号低电平有效,接主处理器的GPIO口作为普通信号使用。

图3 刷卡器部分硬件线路图 

5结论 

    本设计在介绍磁卡的制作材料,分类,工作原理和磁卡记录方式及读写原理,采用了一块工作主频达到75MHz的ARM芯片作为CUP模块,同时运用M3—2200作为硬件译码芯片,实现了刷卡器部分的硬件部分。并且,较为详尽的介绍了软件译码方式和正向刷卡和反向刷卡的软件处理方案,设计思想和对刷卡速度的要求。同时,还给出了软件译码流程图。.作为智能交易终端的刷卡部分,经过实际使用,情况良好。

作者简介:
龚翔宇(1982一),男,东南大学国家ASIC 中心,硕士研究生,研究方向:芯片系统与嵌入式系统;
陈俊(1982一),男,东南大学国家ASIC中心,硕士研究生,研究方向:嵌入式系统设计;
任毅(1983一),男,东南大学国家ASIC 中心,硕士研究生,研究方向:芯片系统与嵌入式系统。

参考文献:
[1] 银行卡磁条信息使用格式和使用规范[s].
[2] 陈丽,等 磁卡原理及其应用[M].北京:工科物理,1998(2).
[3] 张江陵等.电子计算机磁盘存贮器[M].北京:国防工业出版社.1981.31.
[4] 时龙兴,凌明,王学香.嵌入式系统[M].北京:电子工业出版社.2006.