支持B类CPU卡的5 V接触式读写器设计
文章出处:http://www.nexussmartsolutions.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所示。