金融終端中磁卡讀卡器的實現
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.