基于51单片机的 非接触式ic卡读卡器毕业设计.doc
-
资源ID:4147841
资源大小:1,014KB
全文页数:33页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于51单片机的 非接触式ic卡读卡器毕业设计.doc
毕业设计说明书专业班级: 学生姓名: 设计题目: 非接触式IC卡读卡器设计 指导教师: 教研室主任: 系(教学)主任: 完成时间: 摘 要 本文介绍了以AT89S52单片机作为微控制器,以射频技术为核心,基于PHILIPS公司MF-RC500模块的非接触式IC卡读写器,阐述了该系统的组成、工作原理以及相应的软硬件设计。本文阐述了非接触式IC卡技术的基本原理,并对其读卡器在工程上的设计和开发作了研究。论文描述了IC卡系统的发展和现状,通过对射频识别技术原理的研究,揭示了射频IC卡系统的工作原理。介绍了Type A 型常用的卡片MF1 IC S50和对应读卡器的设计方法和电路 (使用专用射频读卡集成芯片RC500),并详细阐述了系统各个模块的组成和原理,给出了天线的设计规范。然后根据课题要求详细介绍了自主设计的一款Type A 型读卡器的核心部件射频模块的实现方案和具体电路。最后介绍了系统设计的软件部分,重点介绍了RC500的主要特性、基本指令集以及与Mifare1非接触IC卡数据通信的一些重要模块的编程思路和编程方法,给出了两个编程实例。关键词:微控制器;非接触式IC卡;读写器;MF-RC500;射频识别 目 录1 绪论11.1 课题研究的背景和意义11.2 目前国内外研究现状11.3 本课题设计的主要工作和任务22读卡器系统方案设计与实现32.1 IC卡介绍32.2 读卡器基本原理32.3 总体方案论证42.3.1 各模块选择与论证42.3.2 总体方案确定53 系统硬件设计与实现63.1 电源模块63.2 显示模块63.3 系统时钟模块73.4 存储模块83.5 MF-RC500读写模块93.5.1 MF-RC500介绍93.5.2 天线模块的设计103.5.3 MF-RC500与AT89S52连接图123.6 通信模块133.7 AT89S52芯片144 系统软件设计与实现174.1 软件设计环境174.2 主程序的设计174.3读/写卡程序设计184.3.1 MF-RC500指令说明184.3.2 读/写卡程序流程图204.4 读卡器外围基本电路程序的设计214.4.1 显示程序设计214.4.2 键盘程序设计224.4.3 E2PROM程序的编写234.5 通信部分程序设计245 系统调试255.1调试过程255.2调试中发现的问题与解决方法25结论26致谢27参考文献28附录A总电路图291 绪论1.1 课题研究的背景和意义 IC卡是集成电路卡(Integrated Circuit Card)的英文简称,在有些国家也称之为智能卡、微芯片卡等,IC卡是在较为原始的磁卡的基础上发展起来的,它的最初设想是由日本人提出来的。1969年12月,日本的有村国孝提出一种制造安全可靠的信用卡方法,并于1970年获得专利,那时叫ID卡(Identification Card)。1974年,法国的罗兰·莫雷诺(Roland Moreno)发明了带集成电路芯片的塑料卡片,并取得了专利权,这就是早期的IC卡。早期的IC卡系统是接触式的,它有其本身不可克服的缺点,如接触磨损、交易速率慢、难以维护、基础设施投入大等。随着信息业和服务业的全球化,在一些场合,对信息载体的便携性、安全性及易用性等方面提出更高的要求,于是非接触式IC卡以其无机械磨损、容易维护、方便使用等优点,成为IC卡中潜力最大的新军而备受国内外业界的瞩目。 非接触式IC卡系统是当今世界先进的射频技术和IC卡技术相结合的产物,是世界上最近几年发展起来的一项新技术,它成功地将射频识别技术和IC技术结合起来,解决了无源和免接触这一难题,是电子器件领域的一大突破,使卡片在靠近读写器表面时即可完成卡中数据的读写操作。非接触式IC卡一经问世,便立即引起广泛的关注。非接触式IC卡操作方便、抗干扰性高、可靠性高、安全性高的特点,使得它在一些接触式IC卡不适用或者无法使用的场所,具有无可比拟的优势,被广泛应用于公交、收费、门禁系统、考勤系统等领域。目前非接触式IC卡有很多不同的标准,如IS014443A和IS014443B等,符合不同标准的卡片在不同的领域内相互渗透和竞争。卡片类型的多样性决定了读卡器的多样性,而市场的多样性则决定了即使是同类型的应用,也可能使用不同类型的卡片,若读卡器只能读取某一种类型的卡片,那么在处理这个应用时,必将需要多台读卡器,造成资源的重复浪费,这样的读卡器必将不能适应市场的需求,这就对读卡器的读卡能力提出了更高的要求。设计出一种能读取多种类型卡片的读卡器,既是市场应用的需求,也是未来的发展趋势。目前,读卡器已经开始大量应用于各种“一卡通”系统中,这些应用对读卡器的功能要求越来越高,除了传统的对卡号的读取之外,需要能够对卡片进行更高层的数据操作,与PC设备之间能进行信息交流。为了适应这种发展趋势,非接触式IC卡的读卡器的开发与设计也迅速发展起来。1.2 目前国内外研究现状智能卡的发展历史并不久远,而且全球各地发展不均衡,其中欧洲发展得最早、最好。智能IC卡源于七十年代的欧洲和日本,后来由法国人提出的将处理器置入IC卡卡片中的思想得到了广泛接受,由于其具有完善的密码功能从而有效的解决了智能卡的舞弊行为。随后智能卡在1977-1998年间得到了迅速发展。九十年代初期,智能卡开始应用于GSM数字移动通讯、有线电视的收费等领域。在美国,智能卡发展相对迟缓,但随着智能卡在欧洲的成功使用,其在美国产生巨大影响,尽管如此,美国在智能卡技术等领域仍处于世界领先地位。 据Innovation国际发明组织统计,2005年10月到2006年9月全世界IC卡硬件产业中,IC卡及其读写设备数量分别为42000万张和877000台,其中法国分别占98%和71%,处于世界领先地位。 我国对IC卡行业的发展始于1994年,当时的中央领导特别是江泽民同志高度重视IC卡行业,高瞻远瞩,指示要发展我国自己的IC卡事业,建立“金卡工程”。虽然至今也只有短短的十几年左右时间,但是己经取得了不小的成就。我国自1994年实施“金卡”工程以来,推动了金融电子化、商业和流通领域电子化的步伐,使我国银行业务得到迅速发展,并逐渐波及医疗、交通、社会保险、税务等领域。在我国,智能卡在各种应用领域全面开花,目前超过10个政府部门和行业推广应用了智能卡。目前在我国,随着金卡工程建设的不断深入发展,IC卡系统已在众多领域获得广泛应用,并取得了初步的社会效益。随着政府管理和支持力度的加大、技术研发水平的提升,IC卡市场竞争格局将发生深刻的变化。随着政府智能卡项目的启动,国内企业技术实力和工艺流程的优化,使得国外品牌市场份额受到很大程度的限制,而国内品牌将会有快速的发展。今后的几年,是我国IC卡系统应用向纵深发展的时期。我国IC卡系统市场格局必将由无序走向有序,市场竞争必将由有限走向无限,IC卡系统市场将逐步走向成熟。但是对于尖端的CPU卡及非接触式IC智能射频卡的制卡技术及其相应的读/写卡设备技术,仍处于落后状态。这极大地制约了IC卡行业的发展,特别是在要求有极高安全性和保密性的金融行业中,制约了我国金卡工程的实施和发展。设计和开发出更好的读卡设备,对加快我国IC卡行业的发展,特别是尖端的CPU卡及非接触式IC智能射频卡的推广应用,有着重大的意义。1.3 本课题设计的主要工作和任务非接触式IC卡代表了IC卡发展的方向,同接触式IC卡相比其独有的优点使其能够在绝大多数场合代替接触式IC卡的使用,而在非接触式IC 卡应用系统中非接触式IC卡读卡器是关键设备。根据课题设计要求,本课题将开发一种基于飞利浦公司MF-RC500读卡芯片的非接触式IC卡读卡器,其具有以下特点:能识别TYPEA型卡片,读取卡号,并有防冲突功能;能对TYPEA 的卡片进行高层操作;可以使用RS232通信接口输出来与上位机之间通信;可根据实际需求将其作为门禁系统中的读卡器,或者一卡通系统中的读卡器。本设计完成后所要达到的主要指标有: (1) 显示系统:液晶屏显示,能显示系统时钟和卡片信息等; (2) 按键操作:能实现对系统的设置和卡上数据的操作; (3) 机器读卡速度:0.5秒可完成一次打卡过程,读卡距离为5至10厘米; (4) 保密性和防伪性:能辨认卡的密码,非授权范围内的卡作报警处理; (5) 存储容量:每台读写器最多可存储2000条记录。 本设计中需要解决的若干关键技术有: (1) 射频识别技术; (2) 软件的安全机制; (3) 由于射频的特殊性给系统调试带来的困难。 该读写器完成以后,既可独立使用,完成基本功能,外扩简单接口后,就能构成IC卡考勤、门禁、售饭一卡通等系统,在公交、校园、娱乐场所等方面有广泛的应用前景。 2读卡器系统方案设计与实现2.1 IC卡介绍目前经常接触到的IC卡有两种:接触式和非接触式的IC卡。接触式的IC卡通过机械触点从读写器获取能量和交换数据;非接触式IC卡通过线圈射频感应从读写器获取能量和交换数据,所以又称射频卡。日前在社会上常见的是接触式IC卡,它具有存储量大,可实现一卡多用等功能。但是,这类卡的读写操作速度较慢,操作也不方便,每次读写时必须把卡插入到读写器中才能完成数据交换,这样在读写卡片频繁的场合就很不方便,而且读写器的触点和卡片上IC卡的触脚暴露在外,容易损坏和搞脏而造成接触不良。 非接触式智能卡又称射频卡,是近几年发展起来的新技术。它是根据射频电磁感应原理产生的,它的操作只需将卡放在读写器一定距离内就能实现数据交换。它成功地将射频识别技术和IC卡技术结合起来,将具有微处理器的集成电路芯片和天线封装于塑料基片之中。读写器采用兆频段及磁感应技术,通过无线方式对卡片中的信息进行读写并采用高速率的半双工通信协议。其优点是应用范围广、操作方便。因此,在公交、门禁、娱乐场所等方面有广泛的应用前景。目前我国引进的射频卡主要以PHILIPS公司的MIFARE卡为主。 本系统在调试过程中使用的是PHILIPS公司的MFI IC S50,其属于TYPEA型卡,下面对其做一些简述:Mifare1 IC 卡的核心是PHILIPS公司MF1 IC S50系列微模块,它确定了卡片的特性以及卡片读写器的诸多性能。Mifare1 IC智能卡内建有高速的MCU,卡片上除了IC微晶片及一副高效率天线外,无任何其他元件;卡片上无源,工作时的电源能量由读写器天线发送无线电载波信号耦合到卡片上天线而产生电能;它与读写器通信使用握手式半双工通信协议。2.2 读卡器基本原理非接触式IC卡读写器以射频识别技术为核心,读写器内主要使用专用的读写处理芯片,它是读/写操作的核心器件,其功能包括调制、解调、产生射频信号、安全管理和防碰撞机制。其内部结构分为射频区和接口区:射频区内含调制解调器和电源供电电路,直接与天线连接;接口区有与单片机相连的端口,还具有与射频区相连的收/发器、数据缓冲器、防碰撞模块和控制单元。这是与智能IC卡实现无线通信的核心模块,也是读写器读写智能IC卡的关键接口芯片。读写器工作时,不断地向外发出一组固定频率的电磁波,当有卡靠近时,卡片内有一个LG串联谐振电路,其频率与读写器的发射频率相同,这样在电磁波的激励下,LG谐振电路产生共振,从而使电容充电有了电荷。在这个电容另一端,接有一个单向导电的电子泵,将电容内的电荷送到另一个电容内存储。当电容器充电达到一定电压值时,此电容就作为电源为卡片上的其他电路提供工作电压,将卡内数据发射出去或接收读写器发出的数据与保存。读卡器的工作过程如下: (1) 读卡器将载波信号经天线向外发送; (2) 卡进入读卡器的工作区域后,卡内天线和电容组成的谐振回路接收读卡器发射的载波信号,射频接口模块将其转换成电源电压、复位信号,使卡片激活; (3) 存取控制模块将存储器中信息调制到载波上,经卡上天线送给读卡器;(4) 读卡器对接收到的信号进行解调、解码后送至后台计算机; (5) 后台计算机根据卡号的合法性,针对不同应用做出相应的处理和控制。2.3 总体方案论证2.3.1 各模块选择与论证 (1)控制器 采用ATMEL公司的AT89S52作为系统的控制器。AT89S52单片机算术运算功能强、软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等特点,使其在各个领域应用广泛。AT89S52是我们熟悉的控制器,编程比较熟悉,易于掌握。 (2)RFID读卡芯片 NXP公司(原飞利浦半导体公司)是较早进入RFID芯片行业的国际半导体公司,在射频读写芯片上产品较全。MF-RC500芯片就是NXP公司生产的。MF-RC500是高整合的13.56MHz非接触IC卡读写芯片,整合了所有主动非接触通信方式和协议,MF-RC500支持ISO 14443A&B的所有层的通信方案;内部收发器部分能够驱动近耦合设计的天线而不需要另外的电路;数字部分能处理完整的ISO14443帧数据还有错误检测;具有合适的并行接口,可以直接与8位的微处理器相连,并且支持SPI兼容接口。由于MF-RC500能够满足设计需求,而且应用范围比其他的芯片更广,资料齐备,于是选择MF-RC500作为本设计的射频接口芯片。 (3)显示模块 使用液晶显示屏显示各种信息。液晶显示屏具有轻薄短小、低耗电量、平面直角显示以及影像稳定不闪烁等优势,并且符合本系统显示信息量多的需求,利用LCD自带的字符库,进行编程就可以实现所需信息的显示,其不必利用控制芯片创建字符库,既节省了资源,又省去了该部分的大量编程任务。为了使人机界面更加友好,操作更加方便,采用LCD液晶显示。 (4)键盘模块 采用矩阵式按键。矩阵式按键接口适用于按键数量较多,又不想使用专用键盘芯片的场合。这种方式的按键接口由行线和列线组成,按键位于行、列的交叉点上。这种方的优点是可以节省很多I/O资源,相对于专用键盘可以节省成本,且更为灵活。缺点是需要用软件处理消抖、重键等。由于该系统要求具有对卡片进行读/写操作,系统时钟的设置等,用到的按键较多,故采用矩阵式按键。 (5)系统时钟和存储芯片的选择 刷卡时要记录刷卡的时间,用外接硬件时钟芯片的办法,为系统提供一个准确可靠的时钟,用3V备用电池保证在系统掉电时也能正常走时。在此选用体积小、接口简单的实时时钟芯片DS1302。它是美国Dallas公司推出的低功耗串行通信接口专用芯片,采用3线串行方式与单片机进行数据通信。 采用AT24C64作数据存储器。AT24C64是串行E2PROM存储器,支持I2C总线数据传输协议,8K存储器容量,用两根线与CPU构成串行接口。由于本设计采用的AT89S52单片机不具备I2C总线接口,因此采用软件法加以解决。 2.3.2 总体方案确定 根据上述分析,系统设计方案如下:本IC卡读写器拟以ATMEL公司的AT89S52单片机作为微控制器,采用MF-RC500芯片作为射频卡读/写模块,采用DS1302作为系统时钟,以AT24C64作为不掉电存储器,采用LCD显示,以RS232接口和计算机通信,组成一套功能齐全的非接触IC卡读写系统。当IC卡在天线区域经过时,单片机自动需求对IC卡进行读写,再把读/写卡的时间一起存到存储器中,计算机可以通过串口把相关读/写卡信息读到计算机上,再进行统计、报表和打印输出等。系统框图如图2.1所示。 显示模块 复位 报警存储模块外连串口供电电源键盘模块时钟模块At89s52芯片射频芯片2.1 IC卡读写器系统结构框图3 系统硬件设计与实现3.1 电源模块该电源按常规设计,为系统工作提供所需电源,其输入为220V、50Hz交流电,输出电压等级为±5V,电路原理图如图3.1所示。该部分主要采用78系列稳压器,结构简单,调整方便,输出电压纹波小。当所需电流超过稳压器标定值时,可采用外接功率管的方法来扩大输出电流。市电交流220V经变压器降压为交流6V,经过全桥整流输出直流电流,再经过1000F的电解电容滤波,除去整流后的交流成分,送至各三端稳压器,输出需要的电压。经过各三端稳压器稳压后,在LM7805输出端输出+5V直流电压,LM7905输出的端输出-5V直流电压。图3.1 ±5V直流稳压电源3.2 显示模块本系统的人机接口部分采用LCD显示、3×2矩阵式键盘,用来实现对IC 卡的操作和系统设置等功能。LCD型号为ACM1602A,该字符型液晶显示模块由字符型液晶显示屏,具有字符发生器ROM可显示192种字符,有64个字节的自定义字符RAM,可自定义8个5×8点阵字符或四个5×11点阵字符。 在此系统中采用LCD分屏显示,每一屏第一行的首地址是80H,第二行的首地址是0C0H;每行写入16个字节,每屏写入二行(第一行为系统的时间,第二行为卡片的信息)。ACM1602A集成度高,其内部已经带有驱动电路,所以不用再为其设计驱动电路,由于1602是一个并口器件所以占用单片机的接口资源较多,为节省单片机接口资源使用了一个74HC595进行串口转并口,使1602与单片机进行间接连接,LCD与单片机的连结图如图3.2所示。图3.2 LCD显示电路3.3 系统时钟模块刷卡时要记录刷卡的时间,用外接硬件实时时钟芯片的办法,为系统提供一个准确可靠的时钟,用3V备用电池保证在系统掉电时也能正常走时,在此选用体积小、接口简单的实时时钟芯片DS1302。 (1)时钟芯片介绍 DS1302是美国DALLAS公司开发的具备功耗低、接口容易串行实时时钟芯片。在本设计中使用的DS1302为8脚DIP封装形式,其中1脚和8脚为电源电压引脚,单电源供电时接8脚,双电源供电时,主工作电源接1脚,备份电源接8脚。2脚和3脚为32.768KHz晶振引脚;5脚RST为复位端,若其被置为低电平,则中止所有数据传送,I/O脚变为高阻态,系统复位;6脚I/O为数据输人/输出端;7脚SCLK为串行时钟输入端,所有地址/命令字节和数据字节都是在时钟的同步控制下从I/O脚串行输入输出的。DS1302通过SCLK、I/O、RST三根线与外部进行同步串行通信。 (2)DS1302与单片机的连接在本设计中采用单片机的P1.0-P1.2与DS1302进行数据通信,以提供系统所需的时钟,其连接方法如图3.3所示。图3.3 DS1302与单片机接口电路3.4 存储模块 在本设计中采用串行E2PROM芯片AT24C64作数据存储器。AT24C64 是ATMEL公司生产的采用I2C总线标准常用的串行E2PROM 存储芯片,其支持I2C总线数据传输协议,64K(bit)存储器容量,用两根线与CPU构成串行接口。AT24C64一般具有两种写入方式,一种是字节写入方式,还有一种是页写入方式。AT24C64的读操作有当前地址读、随机读、多字节读三种方式。AT24C64其主要管脚功能描述如下:SCL,串行时钟。这是一个输入管脚,用于产生器件所有数据发送或接收的时钟;SDA,串行数据/地址。这是一个双向传输端,用于传送地址和所有数据的发送或接收;A0、A1、A2,器件地址输入端,这些输入端用于多个器件并联时设置器件地址。 AT24C64其主要管脚功能如下:在系统中采用单片机的P3.3、P3.4口与AT24C64进行连接,其与单片机的接口接法电路如图3.4所示,由于本系统中采用到的AT89S52单片机不具备I2C总线接口,因此采用软件法加以解决。 图3.4 AT24C64与单片机接口电路3.5 MF-RC500读写模块 3.5.1 MF-RC500介绍 PHILIPS公司的MF-RC500是应用于13.56MHz非接触式通信中高集成读卡IC系列中的一员。该读卡IC系列利用先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。MF-RC500支持IS014443A所有的层,其功能框图如下: 图3.5 MF-RC500的功能框图 MF-RC500内部包括并行微控制器接口、双向FIFO缓冲区、中断、数据处理单元、状态控制单元、安全和密码控制单元、模拟电路接口及天线接口。MF-RC500外部接口包括数据总线、地址总线、控制总线、电源等。MF-RC500 的并行微控制器接口自动检测连接的8位并行接口的类型。它包含了一个双向FIFO缓冲区和一个可配置的中断输出,这样就为连接各种MCU提供了很大的灵活性,即使使用非常低成本的器件也能满足高速非接触式通信的要求。数据处理部分执行数据的并行-串行转换。状态和控制部分允许对器件进行配置以使性能调节到最佳状态。模拟电路包含一个具有非常低阻抗桥驱动器输出的发送部分,这使得最大操作距离可达100mm,接收器可以检测到非常弱的应答信号。MF-RC500管脚如3.6所示。图3.6 MF-RC500管脚图该器件为32脚SO封装,器件使用了3个独立的电源以实现在EMC特性和信号解耦方面达到最佳性能。MF-RC500具有出色的RF性能并且模拟和数字部分可适应不同的操作电压,其驱动、模拟、数字部分分别使用单独电源供电。 表3.1 天线连接管脚为了驱动天线,MF-RC500通过TXl和TX2提供13.56MHz的能量载波。根据寄存器的设定对发送数据进行调制得到发送的信号。智能卡采用RF场的负载调制进行响应。天线拾取的信号经过天线匹配电路送到RX脚,RC500内部接收器对信号进行检测、处理,然后将数据发送到并行接口由微控制器进行读取。表3.2 MF-RC500并行口控制管脚3.5.2 天线模块的设计 为了同非接触式智能卡通信,读卡器内必须有能发射和接收射频信号的天线。天线用于产生磁通量,而磁通量用于向应答器提供电源并在阅读器和应答器之间传送信息。因此,对读卡器天线的构造有了三个基本的要求: 1)使天线线圈的电流i1最大,用于产生最大的磁通量; 2)功率匹配,以最大程度地利用产生磁通量的可用能量; 3)足够的带宽,以无失真地传送数据调制的载波信号。 (1)天线尺寸和读写距离 由于MF-RC500是低功耗设计,因此卡和天线之间的耦合系数必须符合一定的值,卡和天线之间的耦合系数不能低于0.3。天线一般设计为三圈,可以设计为圆形或者方形天线。天线的直径必须介于0.5-1.5mm之间。表3.3 给出了卡和天线的耦合系数为0.3 时的天线大小和读写距离关系表。表3.3 天线大小和读写距离关系表根据技术指标以及尺寸等方面的要求,要本设计中读写器天线参数如下: 天线形状:方形天线 天线圈数:三圈 几何尺寸:65mm×54mm 天线导体直径:1mm (2)EMC电路及接收电路 EMC电路:射频识别系统的工作频率为13.56MHz,是由一个石英晶振产生的,同时它还产生更高频率的谐波,为了确保能够有效抑制三次,五次和更高次的谐波对信号的干扰作用,需要有一个低通滤波器来滤除这些高次谐波。 接收电路:MF-RC500内部的信号接收部分使用由子载波的双边带调制出的信号,为了减少干扰,在地和VMID间接了一个电容,接收部分需要在Rx和VMID脚之间接一个电阻分压结构。另外,在天线线圈和分压器之间串一个电容会获得质量更高的信号。滤波器与接收电路的电路原理图如图3.7所示。图3.7 EMC及接收电路(4)天线电路图天线电路图如图3.8所示。 图3.8 天线电路图中电容C2A_a、C2A_b、C2A_a、C2A_b、(通称C2)的值是由天线的电感值决定的,且需要根据天线的形状进行调整。C2电容的大小严格影响读卡器的性能,这就需要在确定了卡的类型之后在实际的使用环境中进行试验,确定不同的C2值,使读卡器具有最好的性能表现。 RC500有一个内部信号驱动管脚AUX,当读卡器发出某一指令时,可以使用示波器观察该引脚的输出信号,不断改变卡与读卡器之间的距离和C2值,示波器输出不同的波形,根据不同的波形即可确定读卡器最好性能的C2值。在本课题设计中,根据天线的参数进行试验,得到的最终C2值如表3.4所示。 表3.4 C2电容值表(5)天线的品质因数和匹配电阻 用于电感耦合式射频识别系统的天线,其特征值是谐振频率f0和品质因数Q。较高的品质因数Q值会使天线线圈中的电流强度大,由此改善对应答器的功率改善情况。与之相反,天线的传输带宽刚好与品质因数成反比例变化,选择的品质因数过高会导致带宽缩小从而明显地减弱应答器接收到的调制边带。 3.5.3 MF-RC500与AT89S52连接图 M F-RC500与AT89S52连接图如图3.9所示,图中单片机AT89S52作为控制核心,主要完成数据采集、处理、存储及控制电路工作;MF-RC500 支持不同的微控制器接口,一个智能的自动检测逻辑可以自动适应系统总线的并行接口。图中使用信号NCS选择芯片。对于MF-RC500,若要使用独立的地址和数据总线与微控制器相连,必须将ALE脚连接到DVDD,若使用复用的地址和数据总线与控制器接口,必须将ALE脚连到微控制器的ALE信号。在本设计中,该读写器采用地址数据总线复用方式与微控制器相连。在对MF-RC500进行读写操作时,若要使用NWR和NRD与微控制器相连,则这两个引脚应该连接到微控制器的读写管脚上。图中使AT89S52的WR和RD管脚分别与MF-RC500的NWR管脚和NRD管脚相连来控制读写使能;MF-RC500工作频率由石英晶体而产生,同时与OSCIN管脚相连可作为外部时钟;P3.2管脚与MF-RC500的IRQ管脚相连用以接收中断请求;由图可以看出,本系统采用中断(INT0)工作模式,即MCU利用MF-RC500提供中断信息对其进行控制。另外,根据系统的需要,可以采用查询方式对MF-RC500进行操作。图3.9 MF-RC500与AT89S52连接图 3.6 通信模块本智能卡读写器采用RS232标准来实现读卡器和上位机之间的通信,能实现RS232通信协议的芯片很多,其中MAXIM公司生产的MAX232是一款比较优良的RS232通信芯片。选取它的主要依据在于:单5V电源供电,与读卡器里其它芯片的工作电压相同;符合所有EIA/232E标准;多路输入输出。MAX232其引脚功能说明如表3.5所示。 表3.5 MAX232引脚说明在硬件电路连接上采用三线制(RXD、TXD、GND)软握手的零MODEM方式,即将PC机和单片机的发送数据线(TXD)与接收数据(RXD)交叉连接,二者的地线(GND)直接相连,而其它信号线、如握手信号均不用,而采用软件握手,这样既可以实现预定的任务又可以简化电路设计、节约成本。MAX232与AT89S52的电路连接如图3.10所示。 图3.10 MAX232与AT89S52的连接图3.7 AT89S52芯片下面,我们来了解非接触IC卡读写器的核心部分,它是整套系统的大脑,无论是人机操作,还是时钟、数据存储的应用,以及下文中提及的各个相关模块,从接线到程序都与它有着紧密的联系。它就是单片机芯片。我们先简单了解一下单片机是什么。单片机最早被用在工业控制领域,但是经过很长一段时间,现代人类生活中所用的几乎每件电子和机械产品中都会有可能集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。下面我们对本次设计选用的单片机进行了解AT89S52这一产品与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。AT89S52的外形封装有以下列四个(图3.7.A)(图3.7.B):(图3.7.A)分别是左40管脚、右44管脚的AT89S52芯片(图3.7.B)分别为左44管脚、右42管脚的AT89S52芯片本设计挑选的AT89S52芯片,共有40个与外部电路连接的管脚,包括32个可编程I/O口,下面我们简单介绍一下该芯片的管脚功能。P0口:P0口双向I/O口。作为输出口, 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1口是一个具有内部上拉电阻的8位双向I/O口。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 引脚第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入使用。P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口,作为输入使用时,因被外部拉低的引脚由于内部电阻,也将输出电流。P3口亦作为AT89S52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。P3口第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST 复位输入。PSEN 程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器,EA端必须保持低电平(接地)。需注意的是:如果加密位被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。4 系统软件设计与实现非接触智能卡系统的软件设计可分为四部分,分别为主程序设计、RC500的读/写程序的设计、读卡器外围基本电路的应用程序设计和通信部分程序的设计。主程序主要包括:IC卡读/写/密码验证/擦除操作程序,RC500通信中断处理程序,键盘中断处理程序,PC机通信中断处理程序,显示程序及存储器读写程序等,对MF-RC500的应用程序的设计也即是对MF-RC500操作指令的程序设计,对读卡器外围基本电路程序的设计包括LCD显示程序设计、键盘扫描程序设计、数据存储程序设计和RS232通信程序设计。4.1 软件设计环境 一个好的程序设计思想,加上适当的编译软件、仿真器和编程器,是单片机软件开发的基本要求。本系统程序的设计以模块化和结构化的设计思想为指导。单片机开发所使用的语言一般为汇编语言。汇编语言的优点是代码生成效率高,程序运行速度快,其缺点是程序的读性和可移植性都较差,而且用汇编语言编写单片机应用系统程序的周期长,调试和排错比较困难。C语言是一种通用的计算机程序设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可用来编写一般的应用程序。用它编写的程序,具有较好的可读性和可移植性。有经验表明,用C语言编写的程序生成代码的效率仅比用汇编语言编写的程序1020%。德国Keil软件公司的C51编译器可以直接对8051单片机的内部特殊功能寄存器和I/O口进行操作,直接访问片内或片外存储器,还可以进行各种位操作,能产生简洁、高效率的程序代码,在代码质量上可以与汇编语言相媲美。因此系统在设计中多数的程序使用了C语言进行设计,少数的一些程序用汇编语言编写,用C语言进行调用。 4.2 主程序的设计 读卡器工作的过程是一个复杂的程序执行过程,要执行一系列的操作指令,调用多个函数。其主要包括键盘扫描、LCD显示、读写E2PROM、读/写卡及与上位机通信等。这一系列的操作必须按固定的顺序进行。在没MF1卡进入射频天线有效范围内时,在LCD液晶上显示当前时钟,当有MF1卡进入到射频天线的有效范围内时,读卡程序验证卡及密码成功后,将卡号和读卡时间作为一条记录存入E2PROM存储器中,并在LCD显示器上显示该卡的卡号等信息。 读卡器的主程序主要由下位机来完成,单片机中的程序主要包括:IC卡读/写/密码验证/擦除操作程序,与RC500通信中断处理程序,键盘中断处理程序,与PC机通信中断处理程序,显示程序及存储器读写程序等等。读卡器的主程序流程图如图4.1所示。图4.1 读卡器主程序流程图 4.3读/写卡程序设计4.3.1 MF-RC500指令说明 MCU对MIFARE非接触式智能卡的控制是通过MF-RC500来实现的,MF-RC500是MCU和MIFARE非接触式智能卡之间的通信载体。MCU对MF-RC500的控制是以MCU发出MF-RC500的指令来达到的,MF-RC500收到指令之后执行这些指令。MF-RC500的指令主要有:Request std,Request all,Anticollision,Select,Authentication,Read,Write,它们可以完成MCU对MIFARE 非接触式智能卡的很多应用场合的控制。 MCU对MF-RC500的某一指令操作不是简单的一条指令所能完成的,必须有一个程序的序列来完成,其中有对MF-RC500硬件内核寄存器的读/写以及根据读出的硬件内核寄存器的内容进行语言软件上的判断和设置。不同的指令将设置不同的MF-RC500内部寄存器以及应有不同的编程语言程序序列。MF-RC500具体指令说明及程序设计如下: (1)“Answer to Request”(应答或复位应答) 表4.1 复位应答指令Request指令将通知MF-RC500在天线有效的工作范围内寻找WARE卡片。如果有MIFARE卡片