TEMIC系列射頻卡讀寫(xiě)器的研制
摘要:介紹了TEMIC系列射頻卡的一種讀寫(xiě)器,它可以對(duì)ATMEL公司的TEMIC系列射頻卡E5550、E5551和T5557進(jìn)行讀寫(xiě)。通過(guò)使用這個(gè)讀寫(xiě)器,可以對(duì)上述射頻卡進(jìn)行塊寫(xiě)、塊讀、規(guī)則法、工作模式設(shè)置、密碼設(shè)置、取消密碼和更改密碼等操作。
關(guān)鍵詞:射頻卡 U2270B AT89S52
射頻卡是一種非接觸式智能IC卡,是近幾年發(fā)展起來(lái)的一項(xiàng)新技術(shù)。它沒(méi)有接觸式IC卡的電氣觸點(diǎn),而是通過(guò)無(wú)線電波進(jìn)行數(shù)據(jù)傳輸,相對(duì)于傳統(tǒng)的接觸式IC卡具有可靠性高、壽命長(zhǎng)等明顯優(yōu)勢(shì),因而得到了廣泛應(yīng)用。當(dāng)前實(shí)際應(yīng)用中主要采用的是以ATMEL公司的TEMIC系列為主的125kHz射頻卡和以PHILIPS公司的MIFARE技術(shù)為核心的13.56MHz射頻卡。
本文采用ATMEL公司的AT89S52單片機(jī)和該公司TEMIC系列射頻卡的讀寫(xiě)基站芯片U2270B研制開(kāi)發(fā)TEMIC系列射頻卡讀寫(xiě)器。
圖1
1 TEMlC系列射頻卡特性及原理
TEMIC系列射頻卡的特點(diǎn)為:
(1)低功耗、低電壓的CMOS結(jié)構(gòu);
(2)無(wú)線電源供給,無(wú)線數(shù)據(jù)傳輸;
(3)射頻頻率為100~150kHz;
(4)264bit的EEPROM,且有寫(xiě)保護(hù)功能;
(5)加密邏輯、喚醒功能,多種波特率,多種編碼方式。
TEMIC系列射頻卡內(nèi)有264bit的EEPROM,被分成8塊(block),每塊為33bit,其中bit0是lock位,此位一旦寫(xiě)"1"后,該塊數(shù)據(jù)就不能再作任何修改。8個(gè)block中,block0是控制塊,用來(lái)控制卡的各種操作特性,如同步信號(hào)、編碼方式、波特率、數(shù)據(jù)流長(zhǎng)度、加密和口令喚醒等功能的啟用關(guān)閉等;blockl~bloc6是用戶塊,用來(lái)存放用戶數(shù)據(jù)和信啟、;block7是密碼塊,若加密功能不被啟用,也可以作為用戶塊使用。
在使用射頻卡之前都要先設(shè)置射頻卡的工作模式,這可通過(guò)設(shè)置控制塊block0來(lái)完成。TEMIC系列射頻卡的工作模式設(shè)置為:基站工作在125kHz的載波頻率下,采用RF/32的傳輸波特率和Manchester編碼,使用Sequence Terminator同步信號(hào),循環(huán)發(fā)送blockl~block6的數(shù)據(jù)。在這樣的工作模式配置下,位時(shí)鐘周期T=32/RF=(32×10 6)/(125×10 3)μs=256μs。
TEMIC系列射頻卡的讀卡過(guò)程為:射頻卡先發(fā)送Sequences Terminator同步信號(hào)(粗線條部分),接著依次發(fā)送經(jīng)過(guò)Manchester編碼后的blockl~block6的數(shù)據(jù),發(fā)送完block6數(shù)據(jù)的最后一位后(bitt32),又重新開(kāi)始,不斷循環(huán)發(fā)送。讀卡的數(shù)據(jù)流如圖1所示。Manchester編碼采用由低電平向高電平的跳變表示數(shù)據(jù)位為"1",而用由高電平向低電平的跳變表示數(shù)據(jù)位為 "0"。結(jié)合Manchester編碼的這個(gè)特點(diǎn)可以這樣進(jìn)行解碼:在位時(shí)鐘周期的下降沿(即半周期)處檢測(cè)電平的變化情況,如果檢測(cè)到電平變化發(fā)生,則繼續(xù)判斷變化后的電平情況,是高電平則該位解碼為"1",低電平則解碼為"0",沒(méi)有跳變發(fā)生則視為信號(hào)異常,進(jìn)行出錯(cuò)處理。
基站給射頻卡發(fā)送數(shù)據(jù)時(shí)也要對(duì)數(shù)據(jù)進(jìn)行編碼,使數(shù)據(jù)信號(hào)加載到天線的發(fā)射信號(hào)中。TEMIC系列射頻卡的基站芯片使用一種改變發(fā)射天線負(fù)載的方式對(duì)信號(hào)進(jìn)行編碼。這可以通過(guò)打開(kāi)、關(guān)斷天線(即把CFE(2)管腳設(shè)置為高、低電子)產(chǎn)生短暫的RF信號(hào)間隔(gap)來(lái)把RF信號(hào)分割成不同長(zhǎng)短的區(qū)間的方法對(duì)數(shù)據(jù)進(jìn)行編碼。起始間隔(Start Gap)一般比數(shù)據(jù)間的間隔略長(zhǎng)、用來(lái)與射頻卡同步。一般起始間隔TStartGap =330μs,數(shù)據(jù)間間隔TGaps=300μs。在發(fā)送數(shù)據(jù)時(shí),一個(gè)時(shí)間長(zhǎng)度大約為T(mén)o=1001xs的RF區(qū)間表示數(shù)據(jù)為"0",一個(gè)時(shí)間長(zhǎng)度大約為T(mén)1=350μs的RF區(qū)間表示數(shù)據(jù)為"1"。在編寫(xiě)程序時(shí)可以使用延時(shí)中斷RF區(qū)域的方法進(jìn)行發(fā)送數(shù)據(jù)。寫(xiě)卡時(shí)基站發(fā)送給卡片的數(shù)據(jù)流(RF區(qū)域狀態(tài))如圖2所示。
圖3
陰影部分為打開(kāi)RF信號(hào)的時(shí)長(zhǎng),連接線部分為關(guān)斷RF信號(hào)的時(shí)長(zhǎng)。TEMIC系列射頻卡各段區(qū)間的時(shí)間長(zhǎng)度為:
2 系統(tǒng)的硬件構(gòu)成
本系統(tǒng)選用AT89S52單片機(jī)作為主控模塊,與TEMIC系列射頻卡讀寫(xiě)模塊、串口通信模塊和聲光提示電路共同構(gòu)成了一個(gè)TEMIC系列射頻卡讀寫(xiě)器系統(tǒng)。系統(tǒng)硬件原理圖如圖3所示。
2.1 主控模塊--AT89S52單片機(jī)
AT89S52單片機(jī)是一種低功耗、高性能的CMOS 8位單片機(jī),它具有MCS-51系列單片機(jī)的優(yōu)點(diǎn),并且在指令和管腳封裝上與MCS-51系列單片機(jī)相兼容,同時(shí)片內(nèi)具有Watchdog功能,當(dāng)程序由于某種干擾而死機(jī)時(shí),系統(tǒng)可以可靠復(fù)位,保證系統(tǒng)的正常運(yùn)行。
2.2 TEMIC系列射頻卡讀寫(xiě)模塊
其作用是完成同TEMIC系列射頻卡之間的數(shù)據(jù)通信。該讀寫(xiě)模塊以ATMEL公司TEMIC系列射頻卡的讀寫(xiě)基站芯片U2270B為核心,如圖3中右側(cè)所示。
天線:基站天線需要用戶自己繞制。一般用銅制漆包線繞直徑為3cm的圈150圈即可,電感值為1.35mH。
載波頻率fOSC:典型值為125kHz,也可以由用戶自己設(shè)定。此頻率是由流入RF(15)管腳的電流值決定的,所以通過(guò)調(diào)節(jié)RF(15)和VS(14)管腳之間的限流電阻Rf1和Rf2的值就可以改變此頻率。具體的計(jì)算公式如下:
Rf1+Rf2=(14375/fosc)-5
CIN和CHP:基站從射頻卡讀人的是經(jīng)過(guò)125kHz載波調(diào)制后的信號(hào),它通過(guò)CIN電容耦合輸入到INPUT(4)管腳,經(jīng)過(guò)低通濾波器、放大器、施密特觸發(fā)器等幾個(gè)環(huán)節(jié)后,在OUTPUT(2)管腳輸出解調(diào)后的信號(hào)。低通濾波器的截止頻率由fOSC決定,一般為fOSC/18。INPUT管腳的耦合電容CIN以及HIPASS(16)管腳的去耦電容CHP的值決定了解調(diào)電路的高通特性,有利于更進(jìn)一步濾除無(wú)用及干擾信號(hào)。CIN和CHP的值依射頻卡的數(shù)據(jù)傳輸波特率的不同而不同,波特率為fOSC/32時(shí)分別為680pF和100nF。CHP與下限截止頻率的關(guān)系如下:
fcut=1/(2×π×CHP×Ri)
式中,Ri=2.5kΩ。需要注意的是,OUTPUT管腳輸出的信號(hào)只是經(jīng)過(guò)了解調(diào),并沒(méi)有解碼。解碼任務(wù)要通過(guò)單片機(jī)編程完成。
2.3 串口通信模塊
主要由MAX232CPE構(gòu)成,用作AT89S52的串行通信接口(SCI)的TTL電平和計(jì)算機(jī)串口的RS232電子之間的轉(zhuǎn)換。計(jì)算機(jī)通過(guò)該串口通信模塊可以給AT89S52發(fā)送讀、寫(xiě)卡等命令,AT89S52通過(guò)該串口通信模塊把讀卡結(jié)果回送給計(jì)算機(jī)。
2.4 聲光提示電路
它由發(fā)光二極管和蜂鳴器構(gòu)成。如果讀寫(xiě)卡成功,發(fā)光二極管會(huì)閃一下,而且蜂鳴器也會(huì)響一聲,用于提示用戶。
3 系統(tǒng)的軟件設(shè)計(jì)
假定基站工作在125kHz的射頻頻率下,采用RF/32的傳輸波特率和Manchester編碼,使用Sequence Terminator同步信號(hào),循環(huán)發(fā)送blockl~block6的數(shù)據(jù)。
軟件采用MCS-51系列匯編語(yǔ)言按照模塊化結(jié)構(gòu)進(jìn)行編寫(xiě),主要由主程序、串口中斷程序兩大模塊組成。
主程序框圖如圖4所示。首先進(jìn)行系統(tǒng)初始化,包括初始化I/O口、設(shè)置串口波特率等,然后開(kāi)串口中斷并進(jìn)入"等待串口中斷",不斷等待串口中斷的到來(lái)。
串口中斷程序模塊執(zhí)行的功能主要是根據(jù)計(jì)算機(jī)發(fā)出的命令進(jìn)行相應(yīng)的操作(讀卡、寫(xiě)卡、取消密碼和更改密碼等)。串口中斷程序框圖如圖5所示。
讀卡協(xié)議描述:計(jì)算機(jī)通過(guò)串口給讀寫(xiě)器發(fā)送Ry命令,Y為0~6之一。當(dāng)y=0時(shí),讀卡的blockt~block6的6塊數(shù)據(jù),當(dāng)y為1~6之一時(shí),讀卡的相應(yīng)塊的數(shù)據(jù)。讀卡成功則把相應(yīng)數(shù)據(jù)通過(guò)串口回送給計(jì)算機(jī)。
寫(xiě)卡協(xié)議描述:計(jì)算機(jī)通過(guò)串口給讀寫(xiě)器發(fā)送WyPPPPPPPPXXXXXXXX命令,y為0~7之一,指定要寫(xiě)的塊;PPPPPPPP為卡的密碼;XXXXXXXX為要寫(xiě)入指定塊的數(shù)據(jù)。在加密方式下,只有密碼PPPPPPPP正確才閉以成功把數(shù)據(jù)寫(xiě)入卡中。在非加密方式下,密碼PPPPPPPP可為任意數(shù)字。
取消密碼和更改密碼:它們的命令分別為QPPPPPPPP和MPPPPPPPPpppppppp。取消密碼實(shí)際上就是把卡從加密方式改為非加密方式,通過(guò)更改控制塊block0的數(shù)據(jù)即可實(shí)現(xiàn)。更改密碼實(shí)際上是先取消密碼,然后往密碼塊block7寫(xiě)入新密碼,并把卡設(shè)為加密方式。
本文設(shè)計(jì)的TEMIC系列射頻卡讀寫(xiě)器能夠讀寫(xiě)多種TEMIC系列射頻卡,如E5550、E5551和T5557等,讀寫(xiě)距離在2~10cm范圍內(nèi)。該讀寫(xiě)器操作方便靈活,只要通過(guò)計(jì)算機(jī)串口按規(guī)定協(xié)議發(fā)送命令給它即可完成讀卡、寫(xiě)卡、取消和更改密碼等操作。本讀寫(xiě)器已經(jīng)實(shí)際應(yīng)用在溫州某非接觸式IC卡預(yù)付費(fèi)電度表的售電系統(tǒng)中,系統(tǒng)運(yùn)行良好、可靠性高。