《单片机教程单片机读写IC卡.ppt》由会员分享,可在线阅读,更多相关《单片机教程单片机读写IC卡.ppt(16页珍藏版)》请在第壹文秘上搜索。
1、第37章 单片机读写智能IC卡 智能IC(Intelligent Card)卡,是指一张集成了部分电路的卡片。其一般采用固定大小,其内部的电路主要用于存储和处理数据。智能IC卡一般简称为智能卡或者IC卡。ATM取款机、公交卡以及学校的饭卡均是智能IC卡。IC卡带来了灵活方便的身份识别和支付等功能,目前已广泛应用于交通、校园、金融、电信、医疗以及门禁系统等领域。 本章主要介绍智能IC的概述,常用的智能IC卡芯片及其读写方式。本章还通过一个实例,介绍了51系列单片机如何读写智能IC卡。37.1 智能IC卡概述 从本质上说,智能IC卡是部分集成电路的组合。IC卡制作成标准大小的卡片形式,是为了方便携
2、带以及便于读写操作。智能IC卡目前已经深入到我们生活的方方面面。这里主要介绍IC卡的分类,以及常见的接触式IC卡和非接触式IC卡。37.1.1 智能IC卡分类 智能IC卡按照用途来分,可以分为如下几类: 身份识别,例如门禁卡、居民身份证等。 支付工具,例如ATM取款机、公交卡、学校的饭卡等。 加密/解密,例如数据备份卡、加密IC卡等 信息,例如手机的SIM卡等。 智能IC卡按照使用的方式来分,可以分为接触式IC卡和非接触式IC卡: 接触式IC卡通过机械触点从IC卡读写设备获取能量和交换数据; 非接触式IC卡通过射频感应从读写设备获取能量和交换数据。非接触式IC卡又称为射频卡。37.1.2 接触
3、式IC卡接触式IC卡是在卡片上引出了机械触点的IC卡。接触式IC卡内部的芯片通过机械触点来进行数据读写操作。使用时,将IC卡插入读写器的插槽内,由读写器完成对芯片的读出和写入操作。接触式IC卡每次读写时,都必须把IC卡正确插入到读写器中才能完成数据的交换。因此,存在着操作不方便、触点易磨损、读写速度慢等缺点。但是接触式IC卡制作起来比较简单,成本也比较低,目前使用的非常广泛。本章就以接触式IC卡为主进行介绍。Atmel公司的IC卡芯片是目前市场上最常见的。其提供了存储器型、逻辑加密型等多种IC卡类型,可广泛应用于多种场合。37.1.3 非接触式IC卡非接触式IC卡没有明显的触点,其内部除了存储
4、单元、控制逻辑外,还集成有感应线圈。非接触式IC卡通过线圈射频感应从读写设备获取能量和交换数据。在使用时,将非接触式IC卡放在读写器附近一定的距离之内,读写器通过射频为IC卡内部的电路提供能量,并通过一定的协议完成数据的交换。非接触式IC卡由于不存在机械触点,因此使用方便快捷、不易损坏。非接触式IC卡制作比较复杂,成本也比较高,其常用于使用频繁、可靠性要求高的场合。目前,很多应用领域的智能IC卡都开始使用非接触式IC卡。Philips公司的Mifare技术是当今非接触式智能IC射频卡的主流技术,目前已经被指定为非接触式IC卡的国际标准(ISO/IEC 14443A标准)。现在一些大型的IC卡制
5、造商、IC卡读写器制造商以及相关软件设计公司等都以Philips公司的Mifare技术作为标准。37.2 智能IC卡芯片 本章以接触式智能IC为例进行介绍。最常见的接触式智能IC卡,其内部芯片采用Atmel公司的AT45DB041。这里便以该芯片为例,介绍IC卡的操作。37.2.1 IC卡芯片AT45DB041简介AT45DB041是Atmel公司生产的4M位串行数据Flash,支持ISP在系统重编程(擦写和编程),可用于语音、图像和数据的存储,特别适合于存储器型IC的设计。AT45DB041D是最新的型号,其主要功能特性如下:单2.5V供电或2.7V3.6V单电源供电。串行接口结构,兼容SP
6、I串行外设接口。支持页编程操作,可在单周期完成编程,2048页(264字节/页)主内存。可进行页擦除或块擦除。具有2个SRAM数据缓冲器,可以允许在系统重编程时接收数据。可以连续进行读操作。具有内部程序和控制定时器。具有硬件数据保护功能。低功耗,输入输出兼容CMOS和TTL电平。最大66MHz的工作频率。100000次擦写次数。数据可以保存20年以上。37.2.2 AT45DB041D的内存空间及其读写AT45DB041D共有4MB的内存空间,其结构按照页面、块和扇区来组织,分别介绍如下:以页面为单元,AT45DB041D内存中共分为2046页,每页共264个字节。以块为单元,AT45DB04
7、1D内存中共分为256块,每块共2112个字节,8页构成一块。以扇区为单元,AT45DB041D内存中共分为6个扇区,扇区0由8页构成,相当于第0块;扇区1由248页构成,对应第1块到第31块;扇区2由256页构成,对应第32块到第63块;扇区3、4、5均为512页构成,每个扇区对应64块的空间。在对AT45DB041D的内存空间进行操作时,所有编程写操作都以页面为基本单位,而擦除操作可以选择页面操作或者块操作。37.2.3 AT45DB041D的指令 对IC卡芯片AT45DB041D的读写操作由主控制器发送指令来实现。由于AT45DB041D采用串行接口,指令执行时,首先CS为低电平,然后启
8、动SCK时钟控制SI输入脚,并装载指令代码和操作对象的地址,完成一条指令的输入。 其中,操作对象的寻址主要包括4M的主内存寻址和BUFFER寻址。BUFFER寻址通过BFA8BFA0共9位地址来实现,可以定位BUFFER内具体字节的地址。AT45DB041D的4M主内存区寻址通过PA10PA0和BA8BA0来实现的。其中,PA10PA0共11位地址,用于确定页面的位置;BA8BA0共9位地址,用于确定页面内具体字节的位置。37.3 单片机读写智能IC卡实例 采用AT45DB041D芯片的IC卡本质上属于存储器件,可以通过其SPI串行接口来对其进行读写操作。在实际使用时,一般都规定好信息的特殊存
9、储格式,以满足不同场合的需要。这里为了方便,只介绍如何使用单片机读写IC卡芯片AT45DB041D,用户可以根据需要自行定义数据信息的格式。 由于IC卡芯片AT45DB041D采用串行SPI接口,因此需要选择带有SPI总线接口的单片机。标准的8051单片机没有集成SPI总线控制器,这里选择Atmel公司带有SPI接口的AT89S8253单片机。37.3.1 电路图 采用Atmel公司的AT89S8253单片机来读写IC卡的电路原理图,电路图中,所使用的元器件列表,如表所示。37.3.2 SPI接口单片机AT89S8253简介 AT89S8253是Atmel公司生产的8位微处理器,它与51单片机
10、完全兼容,但在P1端口(P1.4 P1.7)上扩展了SPI接口。其主要功能特性如下: 2.7V5.5V工作电压。 12KB的在系统重编程可下载Flash和256B的内部RAM。 2KB的EEPROM存储器。 32位和8051兼容的可编程I/O线。 3个16位定时/计数器和9个中断源。 SPI串行接口。 可编程看门狗定时器。37.3.3 建立项目 这里采用Keil C51软件,进行程序设计。具体操作步骤如下:37.3.4 IC卡芯片AT45DB041D读写子函数 对IC卡芯片AT45DB041D的读写需要使用相关的指令,并满足一定的时序。这里将用到的函数封装成子函数的形式,方便调用。37.3.5
11、 主程序 这里使用AT89S8253单片机来读写IC卡芯片AT45DB041D。主函数中首先初始化串行口为模式1,波特率为4800bit/s。接着通过while循环语句来扫描串口输入,根据输入数据来调用函数执行不同的功能。37.4 小结 本章主要介绍了智能IC卡的相关知识。其中对目前市场上广泛使用的AT45DB041D接触式IC卡芯片进行了详细介绍,包括芯片的功能、内存空间和指令。本章还通过一个具体的实例,介绍了如何使用单片机对IC卡芯片进行读写操作。由于IC卡芯片采用SPI串行数据接口,这里使用了带有SPI接口的AT89S8253单片机进行读写操作。智能IC卡目前得到广泛的使用,读者应该熟练掌握本章内容。