便攜式非接觸式IC卡讀寫器的設(shè)計
經(jīng)過多年的發(fā)展和推廣,IC卡已經(jīng)廣泛地應(yīng)用于金融、電信、國防和公共事業(yè)等領(lǐng)域。
IC卡按卡與外界數(shù)據(jù)傳送的形式來分,有接觸式IC卡和非接觸式IC卡兩種。當(dāng)前使用廣泛的是接觸型IC卡,在這種卡片上,IC芯片有8個觸點可與外界接觸。非接觸式IC卡又稱射頻卡(Radio Frequencycard),它與讀卡設(shè)備之間無需接觸,采用無線耦合和電磁感應(yīng)方式與讀卡設(shè)備之間進行通信。與接觸式IC卡和磁卡相比,非接觸式IC卡具有操作方便、讀寫卡的速度快、防水、防污染、壽命長、能夠適應(yīng)各種惡劣環(huán)境等優(yōu)點。按照工作頻率,非接觸式IC卡可以分為低頻卡和高頻卡兩類,低頻卡的工作頻率為125 kHz,高頻卡的工作頻率為13.56 MHz。兼容ISO14443A的非接觸式IC卡的工作頻率為13.56 MHz,卡內(nèi)無需電池,其工作電源由空間電磁感應(yīng)所產(chǎn)生的感應(yīng)電池提供。Philips公司的。Mifare系列非接觸式IC卡兼容ISO14443A規(guī)范,具有高強度加密機制,性能優(yōu)良,應(yīng)用廣泛。
讀寫器是所有IC卡應(yīng)用系統(tǒng)的必須基礎(chǔ)設(shè)備,目前市場上的絕大多數(shù)讀寫器都要與PC機連接才能正常使用,而且與PC機的接口一般為傳統(tǒng)的RS 232接口。在此將討論采用USB技術(shù)的便攜式非接觸式IC卡讀寫器的實現(xiàn)方法。
1 便攜式USB讀寫器的硬件原理
這里所設(shè)計的便攜式帶USB接口的IC卡讀寫器由微控制器(MCU)、射頻發(fā)射和接收處理單元、USB接口電路、電源電路、液晶顯示(LCD)模塊、實時時鐘以及外部Flash存儲器組成。它的結(jié)構(gòu)如圖1所示。
讀寫器以8位單片機AT89S52作為主控制單元。讀寫器的射頻(Radio Frequency)發(fā)射和接收處理單元是單片機與非接觸式IC卡之間的“橋梁”,它一方面可以將單片機發(fā)送給IC卡的指令和數(shù)據(jù)調(diào)制在13.56 MHz的振蕩信號上,通過高頻天線發(fā)射出去;另一方面接收來自IC卡的應(yīng)答信息,并將其解調(diào)成數(shù)字信號傳送給單片機,實現(xiàn)單片機與IC卡之間的雙向通信,它與單片機之間采用并行接口方式連接。
FT245BM是USB接口單元的主要元件,它是單片機與PC機之間的通信“橋梁”,其內(nèi)部包含一個串行接口引擎(SIE),實現(xiàn)數(shù)據(jù)的并行轉(zhuǎn)串行和串行轉(zhuǎn)并行過程。
DS12C887為系統(tǒng)提供實時時鐘,液晶顯示模塊HY12864E平時顯示時間,讀卡時顯示所讀到的內(nèi)容。上述元器件以周密的邏輯設(shè)計配合,通過程序控制完成對非接觸式IC卡的讀寫。由于內(nèi)置了鋰離子電池及其充電電路,因此讀寫器可以脫機使用,大大增加了靈活性。脫機使用時,讀卡的同時將讀卡記錄存儲在讀寫器的閃存中。并可以通過USB接口與PC機進行通信,以進行PC機對讀寫器的控制操作.如發(fā)送數(shù)據(jù)到IC卡、調(diào)閱讀卡記錄等。
2 讀寫器的硬件電路
2.1 微控制器
微控制器采用AT89S52芯片,該器件使用Atmel公司的高密度非易失性存儲器制造技術(shù),可以通過一根并口線方便地進行在系統(tǒng)編程(In System Program-ming)。
2.2 RC500芯片介紹
RC500是Philips公司為Mifare卡設(shè)計的專用讀卡芯片,它是應(yīng)用于13.56 MHz非接觸式通信中高集成度IC系列中的一員。該系列利用先進的調(diào)制和解調(diào)概念,完全集成了在13.56 MHz下所有類型的被動非接觸式通信方式和協(xié)議。
并行微控制器接口自動檢測連接的8位并行接口的類型,它包含一個易用的雙向FIFO緩沖區(qū)和一個可配置的中斷輸出。這樣就為連接各種MCU提供了很大的靈活性。數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行一串行轉(zhuǎn)換。它支持的幀包括CRC和奇偶校驗,以完全透明的方式進行操作,因而支持ISO14443A的所有層。狀態(tài)和控制部分允許對器件進行配置以適應(yīng)環(huán)境的影響,并使性能調(diào)節(jié)到最佳狀態(tài)。當(dāng)與MIFARE Standard產(chǎn)品和MIFARE產(chǎn)品通信時,使用高速CRYPT01流密碼單元和一個可靠的非易失性密鑰存儲器。模擬電路包含一個具有極低阻抗橋驅(qū)動器輸出的發(fā)送部分。接收器可以檢測到并解碼非常弱的應(yīng)答信號。
RC500的工作頻率為13.56 MHz,它可以在有效的發(fā)射空間內(nèi)形成一個13.56 MHz的交流電磁場,為處于發(fā)射區(qū)域的非接觸式IC卡提供能量,同時卡或RC500需要傳送的數(shù)據(jù)信息也被調(diào)制在這個頻率上。RC500與非接觸式IC卡之間能量的傳遞和數(shù)據(jù)雙向傳輸?shù)倪^程是初級和次級兩個線圈之間的耦合過程,從讀寫器發(fā)射給卡的數(shù)據(jù)信息在調(diào)制前采用米勒(Miller)編碼,而從卡到讀寫器的數(shù)據(jù)信息采用曼徹斯特(Manchester)編碼。
2.3 FT245BM芯片介紹
FT245BM是一種單片的USB到并行的雙向接口芯片。它與單片機之間利用8個雙向數(shù)據(jù)線和4個握手協(xié)議實現(xiàn)并行接口。其片內(nèi)的串行接口引擎和USB協(xié)議引擎可以完成USB 2.0規(guī)范的所有協(xié)議和功能。FT245BM工作時需要一個6 MHz外部晶振,通過片內(nèi)的時鐘倍頻電路可以為SIE提供一個48 MHz的工作時鐘,同時還為片內(nèi)的微控制器接口單元、串行存儲器接口單元提供一個12 MHz的工作時鐘。
2.4 硬件電路
帶USB接口的非接觸式IC卡讀寫器的硬件電路原理圖的主體部分如圖3所示。
FT245BM的并行數(shù)據(jù)總線和AT89S52的P0口相連;它的讀寫控制信號(RD,WR)分別與AT89S52的P3.0和P3.1相連;TXE為發(fā)送緩沖區(qū)空信號,與P3.4相連;RXF為接收緩沖區(qū)滿信號,與P3.5相連。要從讀寫器發(fā)送數(shù)據(jù)到PC機,只需當(dāng)TXE為低時將WR由高變低即可將數(shù)據(jù)寫入緩沖區(qū),模塊可以自動處理。當(dāng)PC機通過USB向讀寫器發(fā)送數(shù)據(jù)時,RXF會變低通知單片機有數(shù)據(jù)要接收,通過將RD由低變高即可讀到數(shù)據(jù)。單片機可以通過中斷方式接收來自FT245BM的數(shù)據(jù),由于兩個外部中斷都被占用,所以用定時/計數(shù)器擴展了一個INT接口。FT245BM的外部連接一個串行的E2PROM(93C46),用于存放USB器件標(biāo)識碼、讀寫器標(biāo)識符和說明、設(shè)備序列號等信息。
RC500內(nèi)部包含256個可尋址寄存器,其數(shù)據(jù)總線與AT89S52的數(shù)據(jù)總線相連;其復(fù)位控制輸入信號與AT89S52的P1.6相連,單片機可以控制RC500復(fù)位;RC500的輸出中斷請求與單片機的外部中斷INT1相連,以隨時接收RC500傳過來的數(shù)據(jù)。
3 軟件的實現(xiàn)
3.1 讀寫器中單片機的軟件
讀寫器內(nèi)軟件的功能包括等待刷卡、接收并處理接收到的PC傳來的數(shù)據(jù)包、存儲刷卡記錄、LCD顯示相關(guān)信息等。軟件包括主程序、IC卡讀寫/密碼驗證等操作、時間顯示以及與PC通信中斷服務(wù)程序。主程序和通信中斷服務(wù)程序的流程圖如圖4所示。
3.2 PC端的軟件
讀寫器通過USB接口與PC相連,PC端必須安裝并運行FT245.BM的驅(qū)動程序和讀寫器應(yīng)用程序。通過使用FTDI公司提供的虛擬串口驅(qū)動程序,對應(yīng)用程序,外設(shè)看起來如同一個標(biāo)準(zhǔn)的COM口。設(shè)置波特率的命令可以忽略,因為無論波特率如何設(shè)定,設(shè)備總是以它所能達到的最大速度進行傳輸。同時無需關(guān)心USB接口的枚舉、端點、管道、事務(wù)和傳輸方式等復(fù)雜的問題。
4 結(jié) 語
該系統(tǒng)結(jié)構(gòu)簡單實用,在實際運行中具有很高的可靠性,同時具備一定的可擴展性,并可以通過USB接口與計算機相連接,以進行數(shù)據(jù)通信。由于體積小,重量輕,具有很好的便攜性,擴大了其使用范圍。在此實現(xiàn)了可脫機使用的便攜式的非接觸式IC卡讀寫器。