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