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