基于单片机的非接触式IC卡的读写毕业论文.doc_第1页
基于单片机的非接触式IC卡的读写毕业论文.doc_第2页
基于单片机的非接触式IC卡的读写毕业论文.doc_第3页
基于单片机的非接触式IC卡的读写毕业论文.doc_第4页
基于单片机的非接触式IC卡的读写毕业论文.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用单片机实现非接触式IC卡读写 本科毕业论文(设计) 题 目: 基于单片机的非接触式IC卡的读写 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日 学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、 保密 ,在_年解密后适用本授权书。2、 不保密 。(请在以上相应方框内打“”)作者签名: 年 月 日 导师签名: 年 月 日 摘 要非接触式IC卡是IC卡领域的一项新兴技术,它是射频识别技术和IC卡技术相结合的产物。由于非接触式IC卡具有操作快捷、抗干扰性强、工作距离远、安全性高、便于“一卡多用”等特点,在自动收费、身份识别和电子钱包等领域具有接触式IC卡所无法比拟的优越性,具有广阔的市场前景。非接触式IC卡读卡器是非接触式IC卡应用系统的关键设备之一。本论文介绍了非接触式IC卡其特点、种类、国际标准、关键技术、典型应用和发展趋势,重点介绍了Philips公司的MIFARE技术,对MIFARE卡片和MIFARE非接触式IC卡的读写组件MFRC500进行了全面的阐述;在此基础上,论文详细地阐述了非接触式IC卡读卡器的硬件和软件设计,给出了每一部分的实际电路图和应用程序。读卡器的硬件设计包括数码管及LED状态显示电路、蜂鸣器驱动电路、MCU的连接、ZLG500AT读卡模块等几部分的设计,软件设计分为ZLG500AT模块的应用程序的设计和显示部分。关键词: IC卡、非接触式、ZLG500AT读卡模块、读卡器Abstract Contactless IC Card is one kind of new technology in the field of IC card, which is the combination of RF technology and IC card technology. Because contactless IC card has some advantages over common IC card such as its high working speed,good anti -jamming quality,long working distance, there will be a good prospect for it in many fields such as automatic pricing,identity distinguishing,electric wallet and so on. The contactless IC card reader is one of the key devices of a contactless IC card system. At first this paper generally introduces the IC card,including its feature,type,international standard,key technology and typical usage. After that the MIFARE technology developed by PHILIPS Semiconductors is introduced in detail. Based on these, the paper discusses the design of the contactless IC card reader in detail, including the circuit design and software design. The readers circuit is made up of power supply circuit,LED and display circuit,buzzer drive circuit,MCU interface circuit ,ZLG500AT read-write module and so on. The software design includes programming of ZLG500AT module and programming of main program. KEYWORDS: IC Card, contactless, ZLG500AT read-write module, Card reader目 录摘 要3Abstract4目 录5第一章 绪论71.1前言71.2 IC卡的分类81.3非接触式IC卡81.3.1非接触式IC卡的特点81.3.2非接触式IC卡的关键技术91.4 IC卡的国际标准9第二章 MIFARE技术112.1 MIFARE 1非接触式IC卡的功能组成112.1.1 RF射频接口电路112.1.2数字电路模块122.2 MIFARE 1卡片的存储结构132.3 MF RC500 读写芯片简介14第三章 硬件电路设计153.1 系统整体设计153.2单片机最小系统介绍153.2.1 AT89S52简介153.2.2 单片机复位电路163.3 MAX7219及数码管显示163.3.1 MAX7219简介163.3.2 MAX7219与单片接口电路183.4 WBL500UG模块193.4.1 概述193.4.2 基本参数193.4.3引脚定义193.4.4编程说明203.4.5通讯命令213.5蜂鸣器、工作状态指示灯与单片机接口213.5.1蜂鸣器驱动电路213.5.2工作状态指示灯电路223.6串口通信223.6.1 MAX 232芯片简介223.6.2硬件连接图23第四章 软件设计244.1非接触式IC卡处理子程序流程图244.2显示子程序244.3读写卡的实现26第五章 系统调试285.1 串口通信285.2硬件系统调试285.3软件调试29第六章 总结与展望30结束语31致 谢32参考文献33附录A 硬件电路图34附录B 软件主程序35第一章 绪论1.1 前言 IC卡的概念是70年代初提出来的1,法国布尔(BULL)公司于1976年首先创造出IC卡产品,并将这项技术应用到金融、交通、医疗、身份证明等多个行业,它将微电子技术和计算机技术结合在一起,提高了人们生活和工作的现代化程度。在此后的十几年间,除法国的布尔公司之外,世界上先后有Motorola、TI、Thomson、Hitachi、OKI、Toshiba、Sharp、Atmel、Gemplus、Schlumberger、Philips等十几家公司相继投入了智能卡芯片和卡片成品的开发与生产,形成了一个世界性的新兴技术产业。 当前,用于信息处理的卡片种类繁多,而且基本上都采用了较新的技术,IC卡脱颖而出的原因在于它对于磁卡、PET卡、光卡和凸字卡等其它种类的卡具有以下突出的特点: 存储容量大 安全性高。 对网络的要求不高。 正是由于这些特点,使得IC卡从诞生至今虽然只有短短数年,但其市场却遍布世界各地。在全球智能卡蓬勃发展之际,中国于1993年提出了“金卡工程”。金卡工程是以电子货币应用为重点的各类卡基应用系统工程,是为了实现电子货币大范围流通的跨部门、跨地区和跨世纪的系统工程。在“金卡工程”提出至今15年来,我国IC卡应用发展迅猛,累计发卡约15亿张,据不完全统计,仅2003年一年,我国发行使用各类IC卡约5.4亿张左右2。IC卡目前已在商贸、交通、电信、医疗、卫生保健、社会保险、金融、税务、工商、公安、组织机构代码和城市公共事业管理等许多领域得到广泛应用,并取得了初步的社会和经济效益。它对提高现代化管理水平和人民的生活质量,推动整个社会信息化进程具有重要作用。本课题正是在这种环境下提出的。1.2 IC卡的分类 IC卡可以按照多种方法进行分类3,根据卡中所镶嵌的集成电路的不同可以分成以下三类:(1)存储器卡 (2)逻辑加密卡 (3)CPU卡 严格意义讲,只有CPU卡才是真正的智能卡4。1.3 非接触式IC卡1.3.1 非接触式IC卡的特点 非接触式IC卡无机械触点,通过无线方式与读写设备进行通讯,与接触式IC卡相比具有一下特点5: (1)操作快捷卡与读卡器之间为无线通讯,使用时无需插拔卡及固定方向。(2)高抗干扰性 非接触式IC卡具有防冲突机制,在多张卡片同时进入读卡器工作范围时能够防止卡片之间出现数据干扰,允许多张卡片同时操作,相对接触式IC卡增加了“并行”处理能力。 (3)配合具体应用具有多种工作距离 非接触式IC卡中既有作用距离为几米、可用于高速公路收费系统5中的远距离卡,又有作用距离为几厘米、可用于电子钱包的近距离卡,使得系统配置灵活多样。 (4)高可靠性 非接触式IC卡与读卡器之间无机械接触,避免了由于接触读写而产生的各种故障,同时无需担心由于触点损坏或脱落而导致卡片失效,提高了应用的可靠性及设备和卡的寿命。 (5)可适合于多种应用 接触式IC卡的存储结构的特点使其可以一卡多用,能用于不同的系统,用户可以根据不同的应用设置不同的密码和访问条件6。 (6)高安全性 非接触式IC卡的序列号是唯一的,制造商在产品出厂前将此序列号固化于卡内芯片中,不可再更改,使用时非接触式IC卡于读卡器要进行三次相互认证,而且通讯过程中所有的数据都加密,卡内各个扇区都有自己的操作密码和访问条件。1.3.2 非接触式IC卡的关键技术 非接触式IC卡的工作特点使其在设计和制造过程中存在一些技术难点,主要集中在芯片制造和卡片封装上,这些关键技术是: (1)射频技术 非接触式IC卡是射频技术和IC卡技术相结合的产物,非接触式IC卡的射频技术有以下特殊要求:由于IC卡的尺寸限制,使大部分非接触式IC卡的内部不带电池,需要由读写设备通过无线方式供电,经过卡内的稳压电路产生芯片工作所需的直流电压。内部结构如图11: 图11 非接触式IC卡内部结构 (2)低功耗技术 对于卡内有电池和无电池的非接触式IC卡来说降低芯片功耗以提高卡片寿命和保证一定的工作距离都非常重要。卡内芯片一般采取低压低功耗CMOS工艺制造,并在电路设计中采用“休眠模式”等技术以降低功耗。 (3)封装技术 由于非接触式IC卡中需要封装天线、芯片和片外电容等部件,为确保卡片的大小、厚度、柔韧性,需要特殊的封装技术。 (4)安全技术 非接触式IC卡以卡用芯片的物理安全技术、卡片制造的安全技术和卡的通讯安全技术这三个方面的内容构成其强大的安全技术。 1.4 IC卡的国际标准非接触式IC卡表面无触点,因此接口设备与非接触式卡的通信方式与接触式卡不同,提供电源的方式也不同,为此ISO/IEC根据接口设备与IC卡作用距离的不同而定义了三个国际标准,如表11所示:表11 非接触式IC卡国际标准 标准 卡类型 作用距离(约) ISO/IEC10536 密耦合 010MM ISO/IEC 14443 近耦合 0100MM ISO/IEC 15693 疏耦合 01000MM 其中ISO/IEC 14443又分为TypeA和Type B两个标准。本课题开发的非接触式IC卡读写设备即是基于ISO/IEC 14443 TypeA标准的。 第二章 MIFARE技术2.1 MIFARE 1非接触式IC卡的功能组成 如图21所示为MIFARE 1 S50非接触式IC智能射频卡的功能组成图7。图21 MIFARE 1 S50非接触式IC智能射频卡的功能组成图 整个卡片包含了两个部分,RF射频接口电路和数字电路部分。2.1.1 RF射频接口电路 在RF射频接口电路中,主要包括有波形转换模块。它可将卡片读卡器上的13.56MHZ的无线电调制频率接收,一方面送调制/解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理,包括稳压等,最终输出供给卡片上的各电路。 POR模块主要是对卡片上的各个电路进行POWER-ON-RESET(上电复位),使各电路同步启动工作。2.1.2 数字电路模块 (1)ATR模块:Answer to Request(请求之应答)当一张MIFARE 1卡片处在卡片读卡器的天线的工作范围之内时,程序员控制读卡器向卡片发出REQUEST all(或REQUEST std)命令后,卡片的ATR将启动,将卡片Block 0中的卡片类型(TagType)号传送给读卡器,建立卡片与读卡器的第一步通信联络。 (2)AntiCollision模块:防(卡片)重叠功能 如果有多张MIFARE 1卡片处在读卡器的天线的工作范围之内时,AntiCollision模块的防重叠功能将被启动工作。 (3)Select Application模块:主要用于卡片的选择 (4)Authentication&Access Control模块:认证及存取控制模块 在确认了上述的三个步骤,确认已经选择了一张卡片时,程序员对卡片进行读写操作之前,必须对卡片上已经设置的密码进行认证,如果匹配,则允许进一步的Read/Write操作。 MIFARE 1卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。因此每个扇区可独立地应用于一个应用场合。整个卡片可以设计成“一卡通”形式来应用。三遍认证:如图22所示为三遍认证的令牌原理框图。图22三遍认证令牌原理框图 (5)Control&Arithmetic Unit控制及算术运算单元: 这一单元是整个卡片的控制中心。它主要进行对整个卡片的各个单位进行微操作控制,协调卡片的各个步骤;同时它还对各种收/发的数据进行算术运算处理,递增/递减处理,CRC运算处理,等等,是卡片中内建的MCU单元。 (6)RAM/ROM单元: RAM主要配合控制及算术运算单元,将运算的结果进行暂时存储,如果某些数据需要存储到EEPROM,则由控制及算术运算单元取出送到EEPROM存储器中;如果某些数据需要传送给读卡器,则由控制及算术运算单元取出,经过RF射频接口电路的处理,通过卡片上的天线传送给卡片读卡器。RAM中的数据在卡片失掉电源后(卡片离开读卡器天线的有效工作范围内)将被清除。同时,ROM中还固化了卡片运行所需要的必要的程序指令,由控制及算术运算单元取出去对每个单元进行微指令控制,使卡片能有条不紊地与卡片的读卡器进行数据通信。 (7)Crypto Unit数据加密单元: 该单元完成对数据的加密处理及密码保护。加密的算法可以为DES标准算法或其他。 (8)EEPROM INTERFACE/EEPROM MEMORY EEPROM存储器及其接口电路:该单元主要用于存储数据。EEPROM中的数据在卡片失掉电源后(卡片离开读卡器天线的有效工作范围内)仍将被保持,用户所要存储的数据被存放在该单元中。MIFARE 1卡片中的这一单元容量为8196bit(1 Kbyte),分为16个扇区。2.2 MIFARE 1卡片的存储结构 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为063,存贮结构如下图所示8: 图23 MIFARE 1卡片的存储结构 第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改.每个扇区的块0、块1、块2可用于存贮数据。 第04个字节为卡片的序列号,第5个字节为序列号的校验码;第6个字节为卡片的容量“SIZE”字节;第7,8个字节为卡片的类型号字节,即Tagtype字节;其他字节由厂商另加定义。数据块有两种应用方法,一种是用作一般的数据保存用,直接读写。另一种用法是用作数值块,可以进行初始化值、加值、减值、读值的运算。系统配用相应的函数完成相应的功能。2.3 MF RC500 读写芯片简介(1)概述MF RC500是应用于13.56MHz非接触式通信中高集成读卡IC系列中的一员9。该读卡IC系列利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。(2)特性u 高集成度模拟电路用于卡应答的解调和解码;u 缓冲输出驱动器使用最少数目的外部元件连接到天线;u 近距离操作(可达100mm);u 用于连接13.56MHz石英晶体的快速内部振荡器缓冲区;u 时钟频率监视;u 带低功耗的硬件复位;u 软件实现掉电模式;u 并行微处理器接口带有内部地址锁存和IRQ线;u 自动检测微处理器并行接口类型;u 易用的发送和接收FIFO缓冲区;u 支持防冲突过程;u 唯一的序列号;u 片内时钟电路;u 支持MIFARE PRO和ISO14443A(透明模式且T=“CL”);u 支持MIFARE Clasic;u Crypto1以及可靠的内部非易失性密匙存储器;u 支持MIRFARE有源天线;u 适合于高安全性的终端。第三章 硬件电路设计3.1 系统整体设计非接触式IC卡读写器系统的硬件由单片机、数码管显示器、非接触式IC卡读写模块、电源、RS232串口通信模块等构成(见图31)。PC机RS232CPU控制器 IC卡 状态显示灯 天线模块数码管显示模块RC500模块图31 非接触式IC卡读写器系统的硬件框图3.2 单片机最小系统介绍3.2.1 AT89S52简介AT89C52单片机具有如下特点10:u 与MCS51产品兼容u 具有8K可改写的Flash内u 全静态操作:0Hz24MHzu 三级程序存储器加密u 256字节内部RAMu 32根可编程的I/O线u 3个16位定时器/计数器u 8个中断源u 可编程接口 u 低功耗空闲和调电模式 3.2.2 单片机复位电路 单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可以实现初始化状态复位。为了保证应用系统可靠的复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。只要RST保持高电平,则AT89S52就可以复位;当RST从高电平变为低电平以后,单片机从主程序开始执行程序。 3.3 MAX7219及数码管显示3.3.1 MAX7219简介 MAX7219是双列直插式芯片11,如图3-3所示,其中SEGASEGF是7段驱动输出端,直接驱动LED对应的7个段(SEG DP为小数点驱动输出端)。DIG7DIG0分别接8个共阴显示器的阴极。参考MAX7219工作时序图(如图32):DIN是待显示信息的数据输入端,以串行方式移入内部的16位寄存器中寄存。CLK是时钟脉冲输入端(最大频率10MHz),在每个CLK脉冲上升沿的作用下,DIN端的1位数据被移入内部寄存器。LOAD端是装载数据输入端,在DIN端输入数据时,它应保持高电平。当一组数据(16bit)被移入内部寄存器后,由LOAD脉冲的上升沿锁定16位数据,最高位(D15)位首先被移入,然后按顺序移入,直至D0位被移入。图32输入一组数据的工作时序图 图33MAX7219 引脚图 MAX7219的所有功能与多样化操作模式都是通过内部寄存器的设定来实现的,其内部14个可寻址寄存器的功能及地址如表31所示12:表31 MAX7219内部寄存器及地址功能地 址16 进制编码D15 - D12D11D10D9D8空操作X0000X0Dig0X0001X1Dig1X0010X2Dig2X0011X3Dig3X0100X4Dig4X0101X5Dig5X0110X6Dig6X0111X7Dig7X1000X8译码模式X1001X9显示亮度X1010XA扫描界限X1011XB停机X1100XC显示测试X1111XF各内部寄存器含义如下:(1)空操作寄存器(地址X0H)。用于多片MAX7219级联,在不改变显示或不影响任意功能寄存器的条件下,它允许数据从DIN传送到DOUT。(2)译码模式寄存器(地址X9H)。该寄存器的8位二进制数的各位分别控制8个LED显示器的译码模式。当高电平时,选择硬件译码模式(BCD-B码译码),当低电平时选择软件译码模式(即送来数据为字型码)。 (3)显示亮度寄存器(地址XAH)。显示亮度可以用硬件和软件2种方法调节。通过对亮度寄存器中D3D0位写入不同的数值可实现LED显示亮度的控制,从X0H到XFH共16级可调。 (4)扫描界限寄存器(地址XBH)。用于设置LED显示器的实际扫描个数,由该寄存器的D2D0位设定,当设定值为000B111B时,表示显示器动态扫描个数为18。 (5)停机寄存器(地址XCH)。当D0=0时,MAX7219处于停机状态,所有显示器消隐,寄存器数据保持不变,当D0=1时,处于正常工作状态。 (6)显示测试寄存器(地址XFH)。当D0=0时,正常工作;当D0=1时,处于测试状态,在该状态下不管MAX7219处于什么模式,全部LED将按最大亮度显示。内部RAM地址X1HX8H分别对应于DIG0DIG7。3.3.2 MAX7219与单片接口电路 MAX7219在驱动8位以下LED显示器时,它的DIN、CLK、LOAD端分别接单片机P0P3口中的任意三条口线,注意在三条线上对地应接几十至几百pF电容。在P0口作为DIN、CLK、LOAD信号线时还应接10k左右的上拉电阻。在显示器与微处理器连接线较长时还应考虑干扰的影响。MAX7219和单片机的连接如图3-4所示。图3-4 MAX219与单片机连接图3.4 WBL500UG模块3.4.1 概述 射频读写模块是采用MIFARE技术的微型嵌入式非接触式IC卡读写模块13。内嵌ISO14443 TYPE A协议解释器,并具有射频驱动和接收功能。可以简单实现对MIFARE卡的读写操作,读写距离可达100mm。 只要通过PC机发送相应的通讯指令就可以实现对应的操作,对应的操作指令见3.4.5。3.4.2 基本参数u 工作电压:5v DCu 工作电流:100mAu 通讯接口:rs232接口 TTL电平 u 适用卡型:MIFARE ONEu 数据通讯:106K BPSu 射频频率:13.56MHzu 操作距离:100mmu 工作温度:-20-65度3.4.3 引脚定义 该模块尺寸为标准DIP32封装,天线配合模块一起使用,如图3-5所示: 天线模块: 图3-5 WBL500模块引脚图3.4.4 编程说明 在一次卡片的操作流程一定要按一下顺序执行:寻卡、密码校验、读或写卡、关闭卡片,如果任何一个操作出现错误,就应该立即关闭卡片。 寻卡模式(00或者01),如果00模式,在执行了关闭指令之后,卡片必须离开感应区再进入感应区才能寻卡成功,如果01模式,那么在执行了停机指令之后,即时卡片未离开感应区也能感应成功: 对卡片控制区的读写与数据读写相同,只是控制方式不同,同时要注意一定不要写错或者记住所写内容,否则有可能无法再对该区进行操作: 在每一个命令执行后在执行下一个命令前应该有15ms的延时; 在刚开始编程时,为了不写错卡片造成不能读写的环区,在对卡片密码区进行读写之前要将密码区的16个字节先写入一个数据块,再读出,如果写入正确,说明写入操作正确,就可以对密码区进行写操作了; 命令延时最好10ms至20ms。3.4.5 通讯命令(1)通讯测试: 下传命令:3C 04 00 60 00 00 BCC 0D(BCC为58) 成功返回:3C 01 01 BCC 0D(BCC为3C) 错误返回:3C 01 00 BCC 0D (2) 寻卡 下传命令:3C 04 01 70 00(寻卡模式00或者01) 00 BCC OD 成功返回:3C 05 四字节卡号 00 BCC 0D 错误返回:3C 01 FF BCC 0D(3)密码验证 下传命令:3C 0E 01 6C 六字节密码 认证模式 绝对块号 四字节卡号 校验位 0D 成功返回:3C 02 00 00 BCC 0D 错误返回:3C 01 FF C2 0D (4) 读卡:3C 04 01 66 00 00 BCC OD 成功返回:3C 11 00 DATA0-DATA15 BCC 0D 错误返回:3C 01 FF BCC 0D (5) 写卡:3C 13 01 67 00 DATA0-DATA15 BCC 0D 成功返回:3C 02 00 00 BCC 0D 错误返回:3C 01 FF BCC 0D(6)发光管亮一次:3C 03 01 6D 55 BCC 0D(7)蜂鸣器响一声:3C 03 01 6B 55 BCC 0D (8) 关闭卡片:3C 04 01 68 00 00 51 0D 正确返回:3C 02 00 3E 0D 错误无返回。3.5 蜂鸣器、工作状态指示灯与单片机接口3.5.1 蜂鸣器驱动电路 由于单片机的I/O口驱动能力有限,一般不能直接驱动压电式蜂鸣器,因此选用NPN型晶体管组成晶体管驱动电路。蜂鸣器驱动电路如图36所示: 图36 蜂鸣器驱动电路3.5.2 工作状态指示灯电路 要是指示灯亮只需要送低电平。指示灯电路如图37所示 图37 蜂鸣器驱动电路3.6 串口通信 3.6.1 MAX 232芯片简介 该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片14。主要特点15:u 单5V电源工作u LinBiCMOSTM工艺技术u 两个驱动器及两个接收器u 30V输入电平u 低电源电流:典型值是8mAu 符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28u ESD保护大于MIL-STD-883(方法3015)标准的2000V 图3-8 max232引脚图3.6.2 硬件连接图 图3-9 硬件连接图第4章 软件设计开 始4.1 非接触式IC卡处理子程序流程图模块初始化寻 卡密码验证 N通 过关闭卡片Y读卡或写卡 关闭卡片图4-1 IC卡处理子程序流程图结 束4.2 显示子程序#include #define uchar unsigned char#define uint unsigned int/定义Max7219端口sbit Max7219_pinCLK = P12;sbit Max7219_pinCS = P11;sbit Max7219_pinDIN = P10;void Delay_xms(uint x) uint i,j; for(i=0;ix;i+) for(j=0;j=1;i-) Max7219_pinCLK=0; Max7219_pinDIN=DATA&0x80; DATA=DATA1; Max7219_pinCLK=1; /-/功能:向MAX7219写入数据/入口参数:address、dat/出口参数:无/说明:void Write_Max7219(uchar address,uchar dat) Max7219_pinCS=0; Write_Max7219_byte(address); /写入地址,即数码管编号 Write_Max7219_byte(dat); /写入数据,即数码管显示数字 Max7219_pinCS=1; void Init_MAX7219(void) Write_Max7219(0x09, 0xff); /译码方式:BCD码 Write_Max7219(0x0a, 0x03); /亮度 Write_Max7219(0x0b, 0x07); /扫描界限;4个数码管显示 Write_Max7219(0x0c, 0x01); /掉电模式:0,普通模式:1 Write_Max7219(0x0f, 0x01); /显示测试:1;测试结束,正常显示:0void main(void) Delay_xms(50); Init_MAX7219(); Delay_xms(2000); Write_Max7219(0x0f, 0x00); /显示测试:1;测试结束,正常显示:0 Write_Max7219(1,8); Write_Max7219(2,7); Write_Max7219(3,6); Write_Max7219(4,5); Write_Max7219(5,4); Write_Max7219(6,3); Write_Max7219(7,2); Write_Max7219(8,1); while(1);4.3 读写卡的实现 完成所有的宏定义之后,初始化所有模块,让数码管显示均为0,之后经过延时,将8个数码管均显示为9。再经过延时,将数码管置0,此时调用Commu_test()函数,定义寻卡模式为01,如果成功返回,第一个数码管显示为1,否则显示为0。经过短延时,调用Search_Card(CardNo)进行寻卡,如果成功返回,第二个数码管显示为1,否则显示为0。再继续下达通讯命令进行密码验证,调用函数PSD_Verify(CardKey,CardNo),如果测试通过,得到正确的返回命令,将第三个数码管显示为1,否则显示为0。如果密码验证通过,进行读卡操作,读出卡片内部DATA0-DATA15的16个数据(IC卡的特点见1.3.2),利用第4、5、6个数码管显示3位数据(最大数据只能为256,否则会产生溢出),读卡成功,第四个数码管显示为1,否则显示为0。读卡完毕之后进行写卡操作(利用程序自定义的数组修改,修改数组内部数据即可实现写卡),写卡成功,第五个数码管显示为1,否则显示为0。如果写卡完毕,此时关闭卡片,关闭成功,第六个数码管显示为1,否则显示为0。调用Turnon_BELL(0X55)、Turnon_LED(0X55)函数控制蜂鸣器和LED的状态,操作成功对应第七个第八个数码管显示为1否则显示为0。至此对IC卡的一轮操作结束,进入下一步循环。第5章 系统调试5.1 串口通信 由于条件所限,本次调试时,没有使用仿真器,而是采用直接将程序烧录进单片机内部之后调试,每次编译之后必须通过串口下载程序,所以,串口通信是必不可少的一个环节。在制作串口通信的时候遇到了很多问题,比如在开始的时候由于接触的不多,对串口模块的原理图不是很了解,自己想当然的焊接原件,结果导致串口无法使用,后来通过查找资料,发现原来是电容的正负极焊接错误,经过重新焊接,在配合使用烧录软件的时候,发现还是无法使用,经过仔细检查觉得硬件电路不会存在问题,后来查找资料才知道是软件中的串口选择有问题,经过设置,软件能正常下载程序了,串口通信模块调试成功。在这个模块的调试过程中我学到了做任何事情要有充分的准备,不能通过自己的臆想去盲目判断,这样可能是事倍功半,磨刀不误砍柴工,做好准备工作也许我们就成功了一半!5.2 硬件系统调试 在各个模块都组装完毕,串口模块调试成功之后,就开始了硬件调试。硬件调试分几个模块进行,首先调试的是八段数码管显示模块,由于这个模块和我们平常使用的不同,不是直接对IO口进行赋值操作,它只有5个接口,一个VCC,一个GND,一个DIN,一个CS,一个CLK,在接上电源之后发现没有任何反应,通过以前的方法编程烧录进单片机,把它的DINCSCLK分别连接在单片机的P2.0P2.1P2.2接口,发现也没用任何反应,后来仔细看模块的说明书,了解到其操作流程,经过仔细修改程序,发现能正常显示了,调试通过。接下来的就是WBL500模块,由于是无线发射和接收的模块,在将它与单片机相连接,然后再与天线连接完毕之后,用IC卡去感应,通过测量输出端的电压,发现电压始终没变化,也就意味着始终没有感应到IC卡的存在,经过检查,硬件的连接应该不会有问题,后来仔细查找资料,看说明书,原来,对一个IC卡的操作必须先给模块发送通讯命令,让其开始寻卡才能搜索卡而不是直接就自动搜索是否存在IC卡。后来通过给WBL500模块发送通讯指令,通过八段数码管显示状态,当有卡进入的时候有感应,调试通过。接下的就是蜂鸣器和LED的调试,这个比较简单,调试没有问题,调试通过。通过硬件的调试,我认识到了做任何事情的时候要细心、耐心。不能急躁冒进,慢工出细活,对于学术性的东西,急着做完的态度是认可的,但是我们在真正投入其中做学问的时候一定要一丝不苟,这种钻研的精神是我学到的宝贵的财富,将使我获益终生。5.3 软件调试 其实很多软件调试在制作硬件的时候,调试硬件的时候已经调试过了,比如八段数码管的显示,还有IC卡的感应基本功能已经能实现了,只有是对IC卡的读写操作还不能进行,不能通过数码管显示IC卡中的数据,通过仔细看说明,对IC卡的操作流程基本都是一样,要通过单片机给WBL500模块发送对应的通讯指令,所以,在程序上只要将通讯的指令修改,然后将应该显示的内容对应到数码管上进行显示就可以,通过反复的编译调试,基本实现了能对IC卡进行读写,然后在数码管上进行显示,调试完毕,毕业设计基本进入尾声。通过几天的软件调试,我学到了很多东西,不仅仅是专业知识,更多的是当我们在遇到一个自己可能并不了解的难题的时候克难奋进,勇于探索的精神,也许这也是我们地大人应该具备的大无畏的探索精神,这也会让我终生受用。第六章 总结与展望 回顾非接触IC卡应用历程及其技术特点,展望未来,作者认为IC卡的发展有以下趋势:(1)建立合理的应用规范是非接触IC卡应用发展的有利保障 为了持续有序的发展IC卡的应用技术,并且有效利用已有资源,避免重复浪费,提高应用的可靠性,通用性,降低成本,使应用发展井然有序,离不开规范的支持。目前不同行业也制定了或正在制定行业应用规范,这对本行业的IC卡应用有着功不可没的作用。但是,不同行业、领域之间的IC卡如何通用,这是一个亟待解决的问题。(2)非接触IC卡应用技术模块化是一发展趋势 模块化设计为应用提供了便利,如非接触IC卡读写模块,将射频技术封装起来,作为商品出售,不但优化了设计,而且减少了外围电路,提高了可靠性和抗干扰性,为用户提供了方便的接口。(3)操作简便,价格低廉,应用灵活,安全、可靠性高是对非接触卡应用的需求趋势。 (4)大容量、高保密、支持多应用是非接触IC卡适应市场的必然趋势 随着非接触IC卡应用领域的不断扩大,对IC卡的容量、保密性和多应用的需求日益强烈。目前容量几十兆字节的IC卡已问世,随着电子工艺的不断提高,更大容量的IC卡也完全有可能成为明天的现实。非接触CPU卡等高安全性的卡片将会大大降低成本应用于我们的日常生活。 这次毕业设计是个漫长的过程,其中遇到了很多大大小小的各种各样的问题,我慢慢积累和查阅资料以及和老师同学探讨,从最基本的单片机最小系统开始,慢慢接触比较陌生的WBL500模块,最后经过几个月的奋战,终于完成了毕业设计,这个过程中,我学到了很多东西,我也觉得自己成熟了很多,也许这也是我们这次做毕业设计的另一个目的,不仅仅是要求我们要必须进一步巩固专业知识,更是要求我们通过这次毕业设计让我们养成严谨的科学态度和克难奋进的工作精神,这次毕业设计我将会终生难忘,我从中学到的这些也会让我受益一生!结束语 非接触式IC卡技术先进,具有接触式IC卡、磁卡等其他卡类不可比拟的优势,应用范围广泛,能够在大多数场合代替接触式IC卡的使用。针对不同的应用场合,非接触式IC卡可以使用同一种IC卡,但是读卡器必须针对不同的应用场合单独设计。 本课题开发成功了一种基于Philips公司MIFARE技术的非接触式IC卡读写器,它能够读写距离在20100MM范围内的符合IEC/ISO14443 TypeA标准的非接触式IC卡,作者独立完成了该读卡器的硬件和软件设计。该读卡器采用外接电源供电,LED状态显示,能够满足实际应用的需求。 致谢 四年的大学生活转眼间就要过去,在我学生生涯即将结束时,我要向那些帮助过我的老师和同学表示深深的谢意。在毕业设计过程中,我遇到了很多困难,首先要感谢我的指导老师王新梅老师,她在百忙之中还时刻关注我们的毕业设计的动态,遇到困难的时候也细心的帮助我们耐心的解决,对硬件电路和软件的设计、修正以及论文的修改都提出了许

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论