歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠信通企業(yè)
全國咨詢熱線:40000-63966
興邦電子,中國水控機第一品牌

聯(lián)系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

實現(xiàn)以RFID卡仿真磁卡的模塊設(shè)計

文章出處:http://overnightmodel.com 作者:沈文龍   人氣: 發(fā)表時間:2011年09月23日

[文章內(nèi)容簡介]:設(shè)計一種能從射頻識別(RFID)卡讀取數(shù)據(jù),而后又仿真磁卡格式輸出的模塊,借助這種模塊,能在不改變原有應(yīng)用系統(tǒng)的基礎(chǔ)上,將系統(tǒng)的磁卡替換為RFID卡.本文介紹的模塊選擇H4001作為替代磁卡的RFID卡,模塊本身則主要由天線、非接觸式射頻卡讀寫基站芯片U2270B和單片機AT89C2051構(gòu)成.在介紹應(yīng)用電路的同時,分析了RFID卡、磁卡的相關(guān)編碼格式,提出實現(xiàn)RFID卡信息讀取、磁卡仿真輸出的方法和步驟,并給出了相應(yīng)的程序流程圖.

    2O世紀8O年代,以磁卡和條形碼作為信息載體,各種身份識別逐漸廣泛應(yīng)用于我國服務(wù)領(lǐng)域、物流與企業(yè)管理領(lǐng)域.射頻識別(radio frequency identification,RFID)卡具有非接觸、操作方便、可靠、識別率高、壽命長等突出優(yōu)點,2O世紀9O年代起大規(guī)模應(yīng)用于眾多領(lǐng)域.目前仍有大量基于磁卡和條碼的應(yīng)用系統(tǒng)正在或即將投入使用,這些系統(tǒng)在設(shè)計時不少是把磁卡或條碼解碼部分作為獨立的模塊加以考慮.基于此,提出以下設(shè)想:若能夠采用廉價只讀RFID卡取代磁卡或條碼,而讓RFID卡閱讀模塊直接替換原來的磁卡機芯或條碼解碼模塊,那么,整個系統(tǒng)不需做什么改動,即可投入運行或繼續(xù)使用.這樣,不論改造舊系統(tǒng)或過渡到采用RFID卡的新系統(tǒng),都可提高效率,減少浪費,在當前仍有市場和積極的意義.本文介紹的模塊只考慮以只讀的RFID卡替代不需修改信息的磁卡(其他情況讀寫卡程序有所不同).

1 模塊組成和工作原理 

   本仿真模塊的功能就是解碼讀取只讀RFID卡的信息(通常就是簡單的序列號,并仿真磁卡機芯輸出美國銀行家協(xié)會(American banker S association,ABA)磁卡格式數(shù)據(jù),其組成框圖見圖1. 

實現(xiàn)以RFID卡仿真磁卡的模塊設(shè)計

圖1 仿真模塊的組成框圖

    模塊的關(guān)鍵部分是天線、ATMEL的射頻卡讀寫基站芯片U2270B和單片機AT89C2051.工作時,基站芯片U2270B通過天線(一般使用銅制漆包線繞制直徑3 cm、線圈100圈即可,電感值為1.35 mH)以約125 kHz的調(diào)制射頻信號為RFID卡提供能量(電源),同時能接收來自H4001的信息,并以曼徹斯特編碼(Manchester)輸出.而AT89C2051則是從U2270B得到H4001卡的64位信息,根據(jù)曼徹斯特編碼規(guī)則進行解碼,對數(shù)據(jù)加以校驗,獲取其中代表1O位十進制序列號的32位二進制數(shù),并轉(zhuǎn)換成對應(yīng)的ABA磁卡格式數(shù)據(jù),再從/CLD、CLK、DATA 3根信號線仿真磁卡機芯輸出數(shù)據(jù).

2 RFID卡H4001及曼徹斯特編碼 

    圖1所示模塊中,配套使用的RFID卡是EM Microelectronic公司的H4001,該卡屬于無源的低頻RFID卡,典型工作頻率為125 kHz,工作所需要的能量是通過電磁耦合單元或天線,以非接觸的方式傳送.當獲得足夠能量后,H4001便不斷循環(huán)地往外部發(fā)送其自身的序列號等64位信息.

    發(fā)送時要對數(shù)據(jù)進行曼徹斯特編碼和信號調(diào)制.規(guī)則如下:在每個時鐘周期(對應(yīng)1位數(shù)據(jù))的中間位置,當數(shù)據(jù)位為“0”時電平由高向低跳變,而數(shù)據(jù)位為“1”時電平由低向高跳變;本模塊的另一種表示方法則恰好相反,其波形如圖2所示.

 一個典型數(shù)據(jù)序列的Manchester編碼波形圖

圖2 一個典型數(shù)據(jù)序列的Manchester編碼波形圖

    對于采用曼徹斯特編碼的H4001,其數(shù)據(jù)速率為RF/64.假設(shè)基站工作時的射頻頻率是125 kHz,則對應(yīng)1位的時鐘(CLOCK)的周期( T)µs.

3 基站芯片U2270B與模塊電路 

    射頻卡的讀寫需要由射頻卡基站芯片來完成數(shù)據(jù)的調(diào)制、發(fā)射和射頻的接收以及數(shù)據(jù)的解調(diào)任務(wù).ATMEL公司生產(chǎn)的U2270B是一種低成本、性能完善的低頻(100—150 kHz)射頻卡基站芯片,采用Man—chester編碼和雙相編碼,可用于讀取H4001 RFID卡.參照文獻[3]和[5],針對H4001 RFID卡,采用U2270B設(shè)計的射頻識別卡讀取模塊的電路見圖3.

基于U2270B的REID卡讀取模塊電路圖

圖3 基于U2270B的REID卡讀取模塊電路圖

    通過調(diào)整U2270B的第15腳(RF端)所接電阻的大小,可將內(nèi)部振蕩頻率固定在125 kHz.計算公式如下:

    讀卡時,RFID卡發(fā)射來的經(jīng)過125 kHz載波調(diào)制后的信號由基站天線接收后,饋送到U2270B的第4 腳(Input)處,在第2腳(Output)輸出解調(diào)后的Manchester編碼的數(shù)據(jù)信號,送給微處理器.應(yīng)當說明,射頻卡H4001返回的是采用Manchester編碼的數(shù)據(jù)流,基站U2270B負責信號的接收、整流和解調(diào)工作,而解碼工作由單片機AT89C2051完成.

第1頁第2頁第3頁

4 磁卡的磁道及ABA編碼 

    根據(jù)ISO有關(guān)標準規(guī)定,磁卡或存折上的磁條劃分為3個磁道.第2道數(shù)據(jù)標準最初由ABA規(guī)定,第2磁道上記錄信息包含SS、PAN、FS、ADATA、ES和LRC等6項內(nèi)容.其中,SS為起始標志,其代碼0BH;PAN為主帳號;FS為域分隔符0DH;ADATA為附加數(shù)據(jù);ES為結(jié)束標志,其代碼0FH;LRC為縱向冗余校驗字符,低4位分別是從SS到ES各字符的值按位異或操作的結(jié)果.具體應(yīng)用時可根據(jù)實際情況做些修改,在本模塊中用RFID卡的序列號取代PAN,無需FS域和ADATA域.在SS之前及LRC之后都增加若干同步時鐘.

    ISO有關(guān)標準還規(guī)定了該磁道編碼字符集(表1).

表1 第2道數(shù)據(jù)編碼字符集

第2道數(shù)據(jù)編碼字符集

    表1中各字符編碼由BCD碼(4位二進制數(shù))另加1位奇校驗表示,即用P、B3、B2、B1、B0表示1個十進制位或控制/標志符,且P+ B3+B2+B1+B0=1.如ES(結(jié)束標志)的代碼是0FH,加了校驗的BCD碼則為1FH,對應(yīng)的字符是‘?’.

    刷卡時按上述規(guī)定解碼磁卡信息,各字符的裝配順序由低位到高位.這需要磁頭、放大整形電路、時鐘與數(shù)據(jù)分離解碼電路(可用專門電路或軟件解碼),解碼后由3根信號線CLK、DATA和/CLD 把信息傳遞給有關(guān)處理單元進行解釋處理.本模塊并不需要解碼磁卡信息,但是要求仿真ABA磁卡信息,并由CLK、DATA、/CLD信號線輸出.3根信號線的用途如下.(1)CLK(CLOCK)同步時鐘信號,1個周期對應(yīng)1位二進制.(2)DATA數(shù)據(jù)輸出端,在各CLK周期中間位置之前,確定其輸出電平.若發(fā)送“0”,則DATA置為高;反之,發(fā)送“1”則DATA置為低.(3)/CLD(CARD LOAD),有效(低電平)時表示已檢測到磁卡,正在刷卡.接收處理單元應(yīng)做好接收準備.它必須比CLK、DATA先有效,后撤消. 

    手工刷卡速度范圍一般是10—120 cm·s-1,對應(yīng)的CLK周期變化范圍很大.為了便于后續(xù)處理,仿真輸出可取一個穩(wěn)定的較大值,滿足絕大多數(shù)應(yīng)用系統(tǒng)的要求,因此,本模塊設(shè)定為3 ms.

5 模塊的軟件設(shè)計 

    參照圖1,U2270B接收114001的信息,并通過U2270B的Output腳把解調(diào)的數(shù)據(jù)輸出給AT89C2051 進行解碼.AT89C2051除了對H4001卡信息解碼,還需進行二進制到十進制數(shù)據(jù)轉(zhuǎn)換,仿真ABA編碼格式輸出數(shù)據(jù)等.本文介紹AT89C2051軟件核心部分的設(shè)計思路和程序流程.

5.1 H4001輸出的64位數(shù)據(jù)的解碼 

    參照圖2的Manchester編碼,其解碼方法如下:在每個位時鐘周期的中間位置檢測電平的變化情況,如果檢測到電平由低變高則該位解碼為“0”;反之,電平由高變低則解碼為“1”.若未發(fā)生變化則視為信號異常進行出錯處理. 

    這里存在如何檢測、界定時鐘周期的起始位置、中間位置問題,各種卡的做法并不一致.H4001沒有專門的硬同步信號,不能檢測特殊信號作為起始標志,而是規(guī)定64位數(shù)據(jù)位的前9位固定為全“1”,最后1位設(shè)定為“0”,作為起始和結(jié)束標志或設(shè)定為同步信息.分析連續(xù)的若干位“1”和連續(xù)若干位“0”,其波形非常相似,所以實際解碼時,應(yīng)該先檢測到1位“0”,再接著檢測連續(xù)的9位“1”,那么可以肯定,后續(xù)的54 個信息位便是40位真正的數(shù)據(jù)和14位相關(guān)的奇偶校驗位,有關(guān)數(shù)據(jù)排列順序見文獻[4].可以想象,這里不應(yīng)該實際上也不可能再次出現(xiàn)1位“0”后跟隨連續(xù)的9位“1”.接下來是最后1位,必須是“0”,如此繼續(xù)下一循環(huán),否則便是出錯.為了提高效率,可以在循環(huán)內(nèi)邊檢測校驗,邊解碼保存H4001卡的信息,其程序流程如圖4所示.

 H4001卡數(shù)據(jù)的解碼程序流程圖

圖4 H4001卡數(shù)據(jù)的解碼程序流程圖

    圖4未對解碼得到的40位二進制(BIN)數(shù)據(jù)進一步分解.其中前8位是客戶標識代碼,用于區(qū)別不同的系或客戶;后32位表示該卡的序列號,一般需要轉(zhuǎn)換為l0 位的十進制數(shù).例如,在該模塊上檢測到某卡的64位二進制數(shù)據(jù)串如下:111111111 00011 10001 00000 00000 10010 10100 00000 10111 10010 0001l 1001 0.其中最先出現(xiàn)的是起始標志9位“1”,然后l0組5位的數(shù)據(jù),各組的最后1位是本組的偶校驗碼(從實際解碼得到的數(shù)據(jù)看,它們都是正確的),接著的1組4位數(shù)據(jù)“1001”是這l0組數(shù)據(jù)的縱向冗余校驗碼(LRC)或偶校驗碼,最后1組是1位的結(jié)束標志“0”.第1組、第2組數(shù)據(jù)“0001”、“1000”(剔除校驗碼,下同)代表客戶編號或版本號,第3組到第1O組數(shù)據(jù)是以二進制表示的本卡號:0000 0000 1001 1010 0000 1011 1001 0001(高位在先),轉(zhuǎn)換成十進制,得到的序列號是0010095505.再分別計算這l0組第1,2,3,4位的偶校驗碼,應(yīng)該分別是1,0,0,1,正好是解碼得到的LRC.所以,這64位數(shù)據(jù)串是正確讀出的0010095505號H4001 RFID卡上數(shù)據(jù).

第1頁第2頁第3頁

5.2 仿真ABA格式磁卡的解碼輸出 

    在得到l0位十進制的序列號后再仿真ABA磁卡格式數(shù)據(jù)輸出.先把每1位十進制數(shù)位以BCD碼再加1位奇校驗碼表示(統(tǒng)稱字符),輸出時在這些表示序列號的字符前后還需增加其他附加字符或代碼,用作同步信號、起止標志、校驗碼.典型的輸出卡號的程序流程如圖5所示.

仿真ABA格式磁卡輸出卡號的程序流程圖

圖5 仿真ABA格式磁卡輸出卡號的程序流程圖

    無數(shù)據(jù)輸出時,/CLD信號應(yīng)一直為高電平,檢測到正確卡號后準備發(fā)送數(shù)據(jù)時把它置低,并維持到發(fā)送過程結(jié)束;CLK信號線在延時3—5 ms后開始以設(shè)定的頻率發(fā)出占空比為50% 的方波(時鐘),直到全部發(fā)送完畢;DATA在具體數(shù)據(jù)的前后,要發(fā)送5位以上“0”,作為同步信號,起始標志0BH(加校驗位,發(fā)送順序ll010),數(shù)據(jù)之后發(fā)送結(jié)束標志0FH(加校驗位,發(fā)送順序11 1 11),5位LRC,還有5位以上“0”.⋯0’的表示方法是在CLK上半周結(jié)束前,把DATA線置高,一直維持到下一CLK周期;“1”則是在CLK上半周結(jié)束前,把DATA線置低,一直維持到下一CLK周期.

6 結(jié)束語 

    根據(jù)上述方案設(shè)計的模塊能較好地讀取H4001的信息并仿真ABA磁卡格式輸出數(shù)據(jù)(卡號).在調(diào)試過程中發(fā)現(xiàn),即使卡片沒有進人模塊發(fā)送與接收的有效區(qū)域,或者說模塊未真正收到H4001的信息,在U2270B的OUTPUT端也偶有信號輸出,但是沒什么規(guī)律;在卡片進人有效區(qū)后,信號漸漸變得有規(guī)律,信號周期接近標準的512信號.在判斷“O1”信號時一定要確認其周期在512左右,如果不合則應(yīng)舍去,繼續(xù)等待,直到檢測出滿足符合周期要求的“O1”才開始接著往下解碼,提取數(shù)據(jù). 

    另外,不排除在接收過程中由于干擾等因素造成錯誤.由于H4001不斷循環(huán)發(fā)送64位卡內(nèi)信息,因此,可以直接放棄本循環(huán)的解碼與轉(zhuǎn)換,而等待下一輪(相隔約33 ms)再進行解碼與轉(zhuǎn)換.這樣犧牲33 ms時間換取低誤碼率、漏碼率,整體性能遠超出磁卡閱讀器.這種模塊實現(xiàn)方案性能可靠,具有高性價比,完全滿足應(yīng)用需求.

作者簡介:沈文龍(1963一),男,福建莆田學院電子信息工程系,高級工程師.研究方向:嵌入式系統(tǒng)及其應(yīng)用.
Emafl:williptxy@126.com.

參考文獻
[1]曉玲,王正華.從Ic卡到RFID[J].中國集成電路,2007,16(4):75.
[2]陳大才.射頻識別(RFID)技術(shù)[M].北京:電子工業(yè)出版社,2001:193.
[3]王文理,田云霞,王麗.TEMIC系列射頻卡讀寫器的開發(fā)設(shè)計[J].自動化技術(shù)與應(yīng)用,2006,25(7):39—40.
[4]朱偉,薛有為,高玉.H4001非接觸式Ic卡讀卡程序的研究[J].電子工程師,2002,28(7):39—40.
[5]馬秀麗,李瑩,華宇寧.一種非接觸式射頻卡基站讀寫電路的設(shè)計與應(yīng)用[J].金卡工程,2003,7(8):53—55.
[6]許丹,徐平.維根及ABA磁卡編碼產(chǎn)生器[J].金卡工程,2004,8(5):5l一52.

第1頁第2頁第3頁

本文關(guān)鍵詞:rfid卡,射頻識別卡,u2270b,磁,fid卡,射頻識別卡,u2270b,磁卡,id卡,射頻識別卡,u2270b,磁卡,,d卡,射頻識別卡,u2270b,磁卡,仿,卡,射頻識別卡,u2270b,磁卡,仿真,,射頻識別卡,u2270b,磁卡,仿真模,射頻識別卡,u2270b,磁卡,仿真模塊,頻識別卡,u2270b,磁卡,仿真模塊,,識別卡,u2270b,磁卡,仿真模塊,射,別卡,u2270b,磁卡,仿真模塊,射頻,卡,u2270b,磁卡,仿真模塊,射頻卡
回到頂部