便攜式非接觸式 IC 卡讀寫器的設計
文章出處:http://5052h112.com 作者:王文強 人氣: 發(fā)表時間:2011年10月15日
引 言
經(jīng)過多年的發(fā)展和推廣,IC 卡已經(jīng)廣泛地應用于金融、電信、國防和公共事業(yè)等領(lǐng)域。
IC 卡按卡與外界數(shù)據(jù)傳送的形式來分,有接觸式 IC 卡和非接觸式 IC 卡兩種。當前使用廣泛的是接觸型 IC 卡,在這種卡片上,IC 芯片有8個觸點可與外界接觸。非接觸式 IC 卡又稱射頻卡(Radio Frequencycard),它與讀卡設備之間無需接觸,采用無線耦合和電磁感應方式與讀卡設備之間進行通信。與接觸式 IC 卡和磁卡相比,非接觸式IC卡具有操作方便、讀寫卡的速度快、防水、防污染、壽命長、能夠適應各種惡劣環(huán)境等優(yōu)點。按照工作頻率,非接觸式 IC 卡可以分為低頻卡和高頻卡兩類,低頻卡的工作頻率為125 kHz,高頻卡的工作頻率為13.56 MHz。兼容ISO14443A的非接觸式 IC 卡的工作頻率為13.56 MHz,卡內(nèi)無需電池,其工作電源由空間電磁感應所產(chǎn)生的感應電池提供。Philips公司的。Mifare系列非接觸式 IC 卡兼容ISO14443A規(guī)范,具有高強度加密機制,性能優(yōu)良,應用廣泛。
讀寫器是所有 IC 卡應用系統(tǒng)的必須基礎設備,目前市場上的絕大多數(shù)讀寫器都要與 PC 機連接才能正常使用,而且與 PC 機的接口一般為傳統(tǒng)的RS 232接口。在此將討論采用USB技術(shù)的便攜式非接觸式 IC 卡讀寫器的實現(xiàn)方法。
1 便攜式USB讀寫器的硬件原理
這里所設計的便攜式帶 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卡的應答信息,并將其解調(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)容。上述元器件以周密的邏輯設計配合,通過程序控制完成對非接觸式 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 卡設計的專用讀卡芯片,它是應用于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)和控制部分允許對器件進行配置以適應環(huán)境的影響,并使性能調(diào)節(jié)到最佳狀態(tài)。當與 MIFARE Standard 產(chǎn)品和MIFARE產(chǎn)品通信時,使用高速 CRYPT01 流密碼單元和一個可靠的非易失性密鑰存儲器。模擬電路包含一個具有極低阻抗橋驅(qū)動器輸出的發(fā)送部分。接收器可以檢測到并解碼非常弱的應答信號。
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機,只需當TXE為低時將WR由高變低即可將數(shù)據(jù)寫入緩沖區(qū),模塊可以自動處理。當PC機通過USB向讀寫器發(fā)送數(shù)據(jù)時,RXF會變低通知單片機有數(shù)據(jù)要接收,通過將RD由低變高即可讀到數(shù)據(jù)。單片機可以通過中斷方式接收來自FT245BM的數(shù)據(jù),由于兩個外部中斷都被占用,所以用定時/計數(shù)器擴展了一個INT接口。FT245BM的外部連接一個串行的E2PROM(93C46),用于存放 USB 器件標識碼、讀寫器標識符和說明、設備序列號等信息。
RC500內(nèi)部包含256個可尋址寄存器,其數(shù)據(jù)總線與 AT89S52 的數(shù)據(jù)總線相連;其復位控制輸入信號與 AT89S52的P1.6相連,單片機可以控制RC500復位;RC500的輸出中斷請求與單片機的外部中斷 INT1 相連,以隨時接收 RC500 傳過來的數(shù)據(jù)。
3 軟件的實現(xiàn)
3.1 讀寫器中單片機的軟件
讀寫器內(nèi)軟件的功能包括等待刷卡、接收并處理接收到的 PC 傳來的數(shù)據(jù)包、存儲刷卡記錄、LCD 顯示相關(guān)信息等。軟件包括主程序、IC 卡讀寫/密碼驗證等操作、時間顯示以及與 PC 通信中斷服務程序。主程序和通信中斷服務程序的流程圖如圖4所示。
3.2 PC端的軟件
讀寫器通過 USB 接口與 PC 相連,PC 端必須安裝并運行 FT245.BM的驅(qū)動程序和讀寫器應用程序。通過使用 FTDI 公司提供的虛擬串口驅(qū)動程序,對應用程序,外設看起來如同一個標準的 COM口。設置波特率的命令可以忽略,因為無論波特率如何設定,設備總是以它所能達到的最大速度進行傳輸。同時無需關(guān)心USB接口的枚舉、端點、管道、事務和傳輸方式等復雜的問題。
4 結(jié) 語
該系統(tǒng)結(jié)構(gòu)簡單實用,在實際運行中具有很高的可靠性,同時具備一定的可擴展性,并可以通過 USB 接口與計算機相連接,以進行數(shù)據(jù)通信。由于體積小,重量輕,具有很好的便攜性,擴大了其使用范圍。在此實現(xiàn)了可脫機使用的便攜式的非接觸式IC卡讀寫器。