支持B類CPU卡的5 V接觸式讀寫器設計
文章出處:http://5052h112.com 作者:秦海俊,劉旭儒,史儀凱 人氣: 發表時間:2011年10月08日
自從1993年推出“金卡工程”以來,我國金融和流通領域逐漸進入了電子貨幣時代,各種接觸式IC卡讀寫器得到了廣泛應用。它將微電子技術和計算機技術結合在一起,提高了人們生活和工作的現代化程度。
接觸式集成電路(IC)卡國際標準(ISO/IEC 7816)由國際標準化組織(ISO)和國際電子技術委員會(IEC)共同制定,該標準對接觸式IC卡領域的物理特性、電信號和傳輸協議等各個方面進行了統一規范。根據該標準,按照供給卡的電源電壓不同而將卡分為A、B兩類,即5 V電壓的A類卡和3 V電壓的B類卡[1]。傳統的接觸式IC卡讀寫器大多采用A類接口設備或B類接口設備,只能對單一的A類卡或B類卡進行操作,而具有AB類接口設備的讀寫器卻應用不多。隨著接觸式IC卡在日常生活中的廣泛應用,具有AB類接口的讀寫器將有廣闊的市場。本文設計的讀寫器采用5 V的電源電壓供電,可以實現對B類卡的全功能讀寫,該技術可以解決在5 V的系統中對A類卡和B類卡進行同時讀寫的問題。
1 系統硬件設計
本文中的IC卡讀寫器采用ATMEL公司的高性能、低功耗的8位AVR微處理器ATMEGA32,電平轉換芯片采用美國國家半導體公司(National Semiconductor)的LM1117-3.3,可以給卡座提供3.3 V的電源電壓。微處理器與卡座之間的接口轉換電路采用德州儀器公司(TI)的SN74TVC3010器件,該芯片可以對10路信號同時進行轉換,完全可滿足讀寫器設計的需要。讀寫器硬件電路結構如圖1所示,該讀寫器主要由3部分組成。
(1)電源。主要是為整個讀寫器提供穩定的5 V和3 V的電源電壓。5 V電源通過USB口由上位機直接提供,可以作為讀寫器內微處理器、蜂鳴器電路、光電指示電路的電源。5 V電源電壓通過LM1117-3.3芯片的轉換后可以得到穩定的3.3 V的電平,為后續的SN74TVC3010接口電路、卡座提供電源電壓。具體的電路如圖2所示。
(2)數據交換。PC機與讀寫器的數據交換也即是與ATMEGA32單片機之間的數據交換,PC機通過上位機軟件向單片機發送命令以實現對卡片的讀寫操作。本讀卡器采用RS232串口與PC機進行通信,由于接口電平的不同,在讀卡器內部應用MAX232芯片實現了不同電平間的轉換[2]。
(3)讀寫器與CPU卡的通信。在讀卡器上有一個常閉型接觸卡座,這是讀寫器與CPU卡進行通信的接口,通過符合ISO 7816標準要求的8個觸點實現與CPU卡的連接[3]。
SN74TVC3010為一雙向電平轉換器件,在轉換過程中不需要方向控制信號。SN74TVC3010芯片包含由11個N 溝道導通晶體管組成的晶體管陣列,陣列中的所有晶體管都具有相同的電氣特性,它們的門在內部連接在一起,因此,其中的任一個晶體管都可以作為參考晶體管,其他的作為導通晶體管,每個導通晶體管的低壓端上的最大正電壓限制為由參考晶體管設置的電壓。由于晶體管是對稱制造的,且I/O 信號是雙向經過每個晶體管,所以每位的任一端口連線可用作低壓端[4]。
本文設計的讀寫器中參考晶體管的一端通過1個200 kΩ電阻接5 V電源,另一端接3.3 V電源,如圖3所示。當數據從卡座向單片機傳輸時,電壓達到3.3 V,導通晶體管關閉,單片機管腳上的電平通過上拉電阻拉至5 V。當數據從單片機向卡座傳輸時,卡座端的電壓被鉗位在3.3 V左右。這樣可準確地實現單片機與卡片之間的正常通信。
2 底層固件設計
本讀寫器固件編程采用C語言編寫,編程環境為IAR Embedded Workbench,仿真及下載底層固件在AVR Studio 4中完成。固件的整體結構如圖4所示。