引 言
经过多年的发展和推广,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)。
微控制器采用AT89S52芯片,该器件使用Atmel公司的高密度非易失性存储器制造技术,可以通过一根并口线方便地进行在系统编程(In System Program-ming)。
2.2 RC500 芯片介绍
RC500 是Philips公司为 Mifare 卡设计的专用读卡芯片,它是应用于13.56 MHz非接触式通信中高集成度 IC 系列中的一员。该系列利用先进的调制和解调概念,完全集成了在13.56 MHz下所有类型的被动非接触式通信方式和协议。
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卡读写器。