基于单片机的IC卡读写器设计
「基于单片机的IC卡读卡器设计」

「基于单片机的IC卡读卡器设计」基于单片机的IC卡读卡器是一种用于读取和处理集成电路卡(IC卡)数据的设备。
本文将介绍该读卡器的设计和实现。
一、概述IC卡是一种存储信息并能进行数据交换的智能存储卡。
它通过集成电路芯片实现对数据的存储和处理,具有容量大、安全性高等优点,被广泛应用于各种领域。
基于单片机的IC卡读卡器是一种用于读取IC卡数据并进行处理的装置。
它一般由硬件电路和软件程序两部分组成。
硬件电路包括信号接口电路、时钟电路、电源电路等;软件程序则通过单片机控制实现对读卡器的功能控制和数据处理。
二、硬件设计1.信号接口电路IC卡读卡器通常采用串行通信方式与电脑或其他设备进行通信。
因此,需要设计一个串行接口电路,通过RS232或USB等标准接口与主控设备连接。
2.时钟电路IC卡读卡器需要提供时钟信号给IC卡以确保通信的正常进行。
时钟电路一般由晶振和RC振荡电路组成,通过分频电路产生IC卡需要的时钟频率。
3.电源电路IC卡读卡器需要提供电源给IC卡,同时保证电源的稳定性和可靠性。
电源电路一般由直流电源和稳压电路组成,用于提供IC卡芯片及其他电路的工作电压和电流。
三、软件设计软件部分是IC卡读卡器的核心部分,主要负责与IC卡进行通信和进行数据处理。
1.IC卡通讯协议2.数据接收与发送读卡器需要通过串行接口从电脑或其他设备接收命令,并将命令传递给IC卡。
同时,读卡器还需要接收从IC卡返回的数据,并将数据发送给电脑或其他设备。
3.数据处理读卡器收到的数据需要进行相应的处理。
例如,读取卡号、读取存储的数据、写入数据等。
这些数据处理功能需要在软件中实现。
四、实现与测试在硬件设计完成之后,需要进行电路的制造和调试。
在软件设计完成之后,需要将软件烧录到单片机中,并与硬件连接。
完成以上步骤后,可以进行实际测试。
首先,将IC卡插入读卡器,读卡器应该能正确地识别IC卡并进行通信。
然后,输入相应的命令,读卡器应该能正确地读取IC卡存储的数据并进行显示或处理。
基于单片机的IC卡读写器设计

专业论文基于单片机的IC卡读写器设计本选题研究的目的及意义本选题的目的是利用89C51单片机设计一个IC卡读写器,在理解单片机应用原理的前提下,来提高IC卡读\写器的可靠性。
在IC卡读\写中出现问题时,能及时告警并恢复到正常状态。
理解IC的读写软件结构,用具体的软件系统来完成IC卡的读和写的功能。
对于89c51单片机它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
单片机是靠程序的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
而且现在应用单片机编写的程序可以实现高智能,高效率,以及高可靠性。
所以,深入掌握单片机的功能可以有效的用单片机来实现IC卡的读与写。
而且由于IC卡的存储容量大,安全保密性好,使用方便,具有数据处理能力,使用寿命长。
它除了涵盖传统磁卡的全部功能外,还拓展到多磁卡所不胜的领域。
目前,IC卡除了在金融系统外,在非金融系统也得到了广泛应用。
如在通信领域中的公用电话卡、移动电话的SIM卡;在交通领域中的驾驶员执照卡、停车收费卡、公共交通设施的自动收费卡及公共交通工具的自动收费卡等;另外在医疗保健、身份识别、校园及消费娱乐领域中也得到了具体的应用。
如今IC 卡已深入到人们的各项生活中,无处不在。
因此,基于单片机IC卡读写器设计的研究是一个非常有意义的课题。
2、本选题国内外研究状况综述国内外IC卡市场经过十几年的发展,目前进入到发展的调整阶段中,虽然尚存在着一些问题,但总体发展趋势已经在朝着良好的局面前进。
展望未来几年IC卡市场状况,前景将更加美好。
具体将体现在以下几个方面:1)在移动电话领域:移动电话卡仍将是市场的主流产品之一。
从出货量来看,未来五年至少将会有20亿张的数量,而发到最终用户手中的卡片也将呈增长的趋势。
特别是随着3G时代的来临,将会有大量的增长。
2)在第二代居民身份证换发领域:按照公安部的统一部署,至2008年底,将基本换发完毕,即换发9亿张。
基于单片机的IC卡读写

基于单片机的IC卡读写系统实验目的:1.学会并掌握可keil软件的使用;2.学会并掌握protues软件的使用;3.实现基于单片机的IC卡读写;4.通过实验巩固单片机相关知识和检验自身动手能力实验要求:掌握单片机相关知识,利用单片机控制和射频模块组合来读写IC卡,并实现软硬件的仿真模拟。
lC卡读卡器以MCS-51系列单片机作为核心构成,主要用于家庭和机构门锁的开关,具有安全稳定的特点,在识别,删除,添加,自动开锁时,用于对IC卡进行读写操作。
实验设备和仪器:1.89c51单片机最小系统2.射频模块RC522,智能IC卡以及其他附加电路实验内容:本次实验设计是由小组五个成员共同完成基于单片机的IC卡读写系统并完成实物搭建和撰写实验报告。
方案一:实验步骤:1.利用protues画电路图,电路图如图1所示:图1:方案一电路图2.模拟刷卡后显示,如图二:图2:方案一实现图3.根据电路图编写C语言代码:代码如下:#include "reg52.h"#include "main.h"#include "mfrc522.h"#include <string.h>#include "LCD1602.h"#include "DS1302.h"#define uchar unsigned char#define uint unsigned intsbit Speak = P2^7;//蜂鸣器sbit RED = P3^4; //红色指示灯sbit GREEN = P3^3;//绿色指示灯sbit Relay = P3^2; //继电器sbit KEY1 = P1^3;//小时加按键sbit KEY2 = P1^4; //小时减按键sbit KEY3 = P1^5; //分钟加按键sbit KEY4 = P1^6; //分钟减按键sbit KEY5 = P1^7; //添加删除卡sbit KEY = P2^6; //开门unsigned char idata RevBuffer[30];unsigned char Card_Num;void iccardcode();//系统初始化void InitializeSystem()//IC卡初始化{PcdReset(); //IC卡初始化PcdAntennaOff(); //IC卡初始化PcdAntennaOn(); //IC卡初始化M500PcdConfigISOType( 'A' );//IC卡初始化}unsigned char idata UID[4],Temp[4];//读取卡号数组unsigned char Table[3];//显示数组unsigned char Num;unsigned char Count,Countf,Count1,Count2,Count3,Count4,Count5,C_flag;//卡序号void Auto_Reader(void) //自动寻卡{if(PcdRequest(0x52,Temp)==0) //找到卡{if(PcdAnticoll(UID)==0){Speak=0;delay_10ms(20);Speak=1;//蜂鸣器提示Table[0]=UID[0]/100+0x30; //卡号显示Table[1]=UID[0]/10%10+0x30; //卡号显示Table[2]=UID[0]%10+0x30; //卡号显示LCD1602_Disp_ZF(0x80+0x40,"Num: ",16); //卡号显示LCD1602_Disp_ZF(0x84+0x40,Table,3); //卡号显示Count = UID[0]; //判断卡是不是有效if((Count==Count1)||(Count==Count2)||(Count==Count3)||(Count==Cou nt4)||(Count==Count5)){LCD1602_Disp_ZF(0x88+0x40,"Welcome",7); //卡有效GREEN = 0;Relay=0;delay_10ms(200);Relay=1;GREEN = 1; //绿灯亮,打开继电器C_flag=1;}else{LCD1602_Disp_ZF(0x88+0x40,"Error ",7);//卡无效RED = 0;delay_10ms(500);RED = 1; //红灯亮C_flag=2;}delay_10ms(200);LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//显示初始界面}}}uchar DS1302_Table[7]={0}; //读取时间值void Display_LCD2(uchar Dis_Hour,uchar Dis_Min,uchar Dis_Sec)//显示时间值{uchar Dis_Table[8]="11:22:33";Dis_Table[0] = Dis_Hour/10+0x30;Dis_Table[1] = Dis_Hour%10+0x30;Dis_Table[3] = Dis_Min/10+0x30;Dis_Table[4] = Dis_Min%10+0x30;Dis_Table[6] = Dis_Sec/10+0x30;Dis_Table[7] = Dis_Sec%10+0x30;LCD1602_Disp_ZF(0x85,Dis_Table,8);//显示时间值}void Run_DS1302(void){uchar sec, min, hour, day, month, week, year;v_W1302(0x8f, 0);sec = bcdtodec(uc_R1302(0x81)); //读出DS1302中的秒v_W1302(0x8f, 0);min = bcdtodec(uc_R1302(0x83)); //读出DS1302中的分v_W1302(0x8f, 0);hour = bcdtodec(uc_R1302(0x85)); //读出DS1302中的小时v_W1302(0x8f, 0);day = bcdtodec(uc_R1302(0x87)); //读出DS1302中的日v_W1302(0x8f, 0);month = bcdtodec(uc_R1302(0x89)); //读出DS1302中的月v_W1302(0x8f, 0);week = bcdtodec(uc_R1302(0x8b)); //读出DS1302中的星期v_W1302(0x8f, 0);year = bcdtodec(uc_R1302(0x8d)); //读出DS1302中的年DS1302_Table[0]=year;DS1302_Table[1]=month;DS1302_Table[2]=day;DS1302_Table[3]=week;DS1302_Table[4]=hour;DS1302_Table[5]=min;DS1302_Table[6]=sec;Display_LCD2(DS1302_Table[4],DS1302_Table[5],DS1302_Table[6]);//显示时间值}void main(void){InitializeSystem();LCD1602_init();//Money_1=x24c02_read(0X01);//x24c02_write(0X03,Money_3);LCD1602_Disp_ZF(0x80,"Time:",5);//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//LCD1602_Disp_ZF(0x80+0x40,"Num:",4);//ISP_ERASE(0x2c00); //注意:字节编程时必须要先要擦除整个扇区//for(i=0;i<255;i++)// ISP_PROGRAM(0x2c00+i, 0x00);while (1){//////////////////////////if(!KEY){Speak=0;delay_10ms(20);Speak=1;//蜂鸣器提示LCD1602_Disp_ZF(0x88+0x40,"Welcome",7); //卡有效GREEN = 0;Relay=0;delay_10ms(200);Relay=1;GREEN = 1; //绿灯亮,打开继电器delay_10ms(200);LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//显示初始界面}Run_DS1302(); //时间显示//delay_10ms(200);if(!KEY1) //调节小时加{delay_10ms(50);if(!KEY1) //调节小时加{DS1302_Table[4]++; //调节小时加Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节小时加}}if(!KEY2) //调节小时减{delay_10ms(50);if(!KEY2) //调节小时减{ //调节小时减DS1302_Table[4]--; //调节小时减Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0);//调节小时减}}//////////////////////////////////if(!KEY3) //调节分钟加{delay_10ms(50); //调节分钟加if(!KEY3){DS1302_Table[5]++; //调节分钟加Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节分钟加}}if(!KEY4) //调节分钟减{delay_10ms(50); //调节分钟减if(!KEY4) //调节分钟减{DS1302_Table[5]--; //调节分钟减Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节分钟减}}if(!KEY5) //添加删除卡{delay_10ms(50);if(!KEY5) //添加删除卡{if(C_flag==2) //添加卡{//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40," Register Card! ",16);Countf++;if(Countf==6)Countf=1;if(Countf==1) Count1 = Count;//记忆卡号if(Countf==2) Count2 = Count; //记忆卡号if(Countf==3) Count3 = Count; //记忆卡号if(Countf==4) Count4 = Count; //记忆卡号if(Countf==5) Count5 = Count;//记忆卡号}if(C_flag==1)//删除卡{//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40," Clean Card! ",16);if(Count==Count1)Count1=0;//删除卡号if(Count==Count2)Count2=0; //删除卡号if(Count==Count3)Count3=0; //删除卡号if(Count==Count4)Count4=0; //删除卡号if(Count==Count5)Count5=0; //删除卡号}Speak=0;delay_10ms(200);Speak=1;LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);C_flag =0;while(!KEY5);}}//////////////////////}}void iccardcode(){unsigned char cmd;unsigned char status;cmd = RevBuffer[0];switch(cmd){case 1: // Halt the card //终止卡的操作status= PcdHalt();;RevBuffer[0]=1;RevBuffer[1]=status;break;case 2: // Request,Anticoll,Select,return CardType(2 bytes)+CardSerialNo(4 bytes)// 寻卡,防冲突,选择卡返回卡类型(2 bytes)+ 卡系列号(4 bytes)status= PcdRequest(RevBuffer[1],&RevBuffer[2]);if(status!=0){status= PcdRequest(RevBuffer[1],&RevBuffer[2]);if(status!=0){RevBuffer[0]=1;RevBuffer[1]=status;break;}}RevBuffer[0]=3;RevBuffer[1]=status;break;case 3: // 防冲突读卡的系列号MLastSelectedSnrstatus = PcdAnticoll(&RevBuffer[2]);if(status!=0){RevBuffer[0]=1;RevBuffer[1]=status;break;}//memcpy(MLastSelectedSnr,&RevBuffer[2],4);RevBuffer[0]=5;RevBuffer[1]=status;break;case 4: // 选择卡 Select Card//status=PcdSelect(MLastSelectedSnr);if(status!=MI_OK){RevBuffer[0]=1;RevBuffer[1]=status;break;}RevBuffer[0]=3;RevBuffer[1]=status;break;case 5: // Key loading into the MF RC500's EEPROM//status = PcdAuthState(RevBuffer[1], RevBuffer[3], DefaultKey, MLastSelectedSnr);// 校验卡密码RevBuffer[0]=1;RevBuffer[1]=status;break;case 6:RevBuffer[0]=1;RevBuffer[1]=status;break;case 7:RevBuffer[0]=1;RevBuffer[1]=status;break;case 8: // Read the mifare card// 读卡status=PcdRead(RevBuffer[1],&RevBuffer[2]);if(status==0){RevBuffer[0]=17;}else{RevBuffer[0]=1;}RevBuffer[1]=status;break;case 9: // Write the mifare card// 写卡下载密码status=PcdWrite(RevBuffer[1],&RevBuffer[2]);RevBuffer[0]=1;RevBuffer[1]=status;break;case 10:PcdValue(RevBuffer[1],RevBuffer[2],&RevBuffer[3]);RevBuffer[0]=1;RevBuffer[1]=status;break;case 12: // 参数设置PcdBakValue(RevBuffer[1], RevBuffer[2]);RevBuffer[0]=1; //contactRevBuffer[1]=0;break;}}4.实物验证结果如图4所示:图4:实物验证结果实物验证可以实现IC卡的读写,由于每个开发板不同,相比仿真程序,对实物验证程序进行了略微的修改,最小系统的LCD1602口不能使用使用外接杜邦线,为了稳定最终选择重新字节焊接板子,最终能达到要求。
基于51单片机的智能IC卡读写器设计

基于51单片机的智能IC卡读写器设计本IC卡读写器是以51单片机为核心展开设计。
该单片机是一种低功耗,高性能的8为CMOS型单片机,片内带有可读存储器,片上的PEROM允许在线对程序存储器重新编程。
它具有如下主要的能特点:1、工作电压范围4.2—5V2、256*8位内部RAM3、32条可编程IO口线4、3个可工作于4重模式的16位定时计数器5、6个中断源两个中断优先级6、具有四种工作模式的全双工串行口,可编程串行中断7、低功耗的待机工作模式和掉电工作模式。
IC卡座引脚在8个引脚中,VCC的工作电压为2.5到5V低电压供电。
SCL与SDA是IC卡上与逻辑控制有关的引出端线。
其中,SCL为串行时钟,所有的地址数据及读写控制命令等信号均从SDA端输入输出。
引脚T.P为微动开关的两个触点,此开关在无IC卡状态,处于断开状态,有卡插入时,IC卡插座上得微动开关闭合。
因此,此开关往往是用来判断是否插入IC卡的传感器件。
IC卡座引脚分布(1)单片机的信号通过小功率三极管9012控制系统的5V电源切入IC卡座,如果IC卡上电,则发光二极管被点亮,起读写指示作用。
每次对IC卡读写完成后,便及时下电,以减少插拔时带电的可能性。
(2)为了保证任意拔插IC卡时,IC卡处于断电状态,本读写器将IC卡的拔卡处理设计成由最高级中断程序来实现,且采用边沿触发方式。
同时,利用IC卡座的IC卡微动检测开关及时检测拔卡动作。
为了避免机械触点开关在动合过程中抖动而引起中断重入,甚至引起系统死机。
IC卡工作的基本原理是:射频读写器向IC卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在这个电荷的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据。
毕业设计-基于AT89C51单片机的IC卡读写控制系统设计

基于89C51的IC卡读写控制系统设计摘要在IC卡管理应用系统中,作为IC卡数据读写的终端IC卡读写器是必不可少的。
IC卡读写器除了完成基本的IC卡数据读写功能外,还要完成数据收集传送、控制命令输入和显示输出、提供上位机控制管理接口和数据加密处理等等功能。
本文主要介绍了一种IC卡读写终端的设计,IC卡读写终端是一个单片机嵌入式应用系统。
论文介绍了实现IC卡数据存储的控制方法,并以西门子公司的SLE4442型逻辑加密卡为基础,详细介绍了单片机控制IC卡数据读写的软、硬件实现方法。
关键词:单片机;IC卡;控制系统ABSTRACTBeing interface device of IC cards, the IC card read-write terminal is necessary in all IC card information management systems. Besides fulfilling the base function of IC card data reading and writing, IC card read-write terminals also need other functions such as collecting data transferring, user command inputting and display message outputting, control interface providing, data encrypting and so on. To design a read-write terminal with needed functions and excellent performance is a key to composing an efficient IC card management application system. This paper introduces the designing of a type IC card read-write terminal mainly. The terminal is a MCU embedded application system.The paper has introduced the reading and writing technique of IC card data.The paper has specified the software and hardware realization of IC card data reading and writing on the base of SLE4442 which is a kind of Smart Card with Security Logic made by SIEMENS.Keyword: Micro controller unit ;IC card; Control system目录摘要 .............................................................................................................................. I ABSTRACT................................................................................................................... II 目录 ....................................................................................................................... III 图表目录 ....................................................................................................................... I V 第一章绪论 . (1)1.1 引言 (1)1.2 IC卡的发展和使用情况 (1)1.3 IC卡应用技术 (2)第二章SLE4442卡接口电路和读写控制 (5)2.1 接触式IC卡的接口电路和一般控制 (5)2.1.1 IC卡供电电路 (5)2.1.2 IC卡卡座接口电路 (5)2.2 SLE4442芯片 (6)2.2.1 芯片的特点 (6)2.2.2 芯片的引脚配置 (6)2.2.3 芯片的功能 (7)第三章系统的软硬件实现 (10)3.1 读写终端整体结构设计 (10)3.2 控制芯片AT89C51 (11)3.2.1 主要功能部件 (12)3.2.2 AT89C51接口分配及系统电路设计 (12)3.3 AT89C51与IC卡接口电路 (13)3.4 键盘及其接口技术 (14)3.5 显示器接口设计技术 (17)3.5.1 LED显示器基本原理 (17)3.5.2 LED显示电路的软件和硬件设计 (18)3.6 IC卡读写程序设计 (20)3.6.1 IC卡的命令格式 (20)3.6.2 IC卡读写程序 (20)第四章IC卡系统安全问题 (23)4.1 对IC卡及其系统的潜在攻击 (23)4.2 IC卡管理系统的安全性考虑 (24)第五章总结与展望 (26)参考文献 (27)致谢 ....................................................................................... 错误!未定义书签。
基于单片机的IC卡读写器设计

石家庄铁道大学毕业设计基于单片机的IC卡读写器设计The Design of the IC Card Read-Write Device Based on single chip microcomputer2012 届电气工程系专业学号学生姓名指导教师陈东阳完成日期 2012年 5月 15日毕业设计成绩单学生姓名学号班级专业毕业设计题目基于单片机的IC卡读写器设计指导教师姓名指导教师职称评定成绩指导教师得分评阅人得分答辩小得分组组长成绩:院长(主任)签字:年月日毕业设计任务书题目基于单片机的IC卡读写器设计学生姓名学号班级专业自动化承担指导任务单位石家庄铁道大学导师姓名陈东阳导师职称副教授一、主要内容设计一款读写器,能通过与计算机通信,由计算机发送新数据到单片机,完成对卡的读/写。
IC卡应用于消费电子产品对IC卡的管理,如电卡,饭卡,购物卡,娱乐消费卡等其他消费费系统充值与管理。
这里设计的读写器能实现简单的读写与显示功能。
二、技术参数和要求1、使用SLE4442卡,密码用123456。
2、33-36区域放置AA 55 80 FE四个字节作为卡片识别代码。
3、37区域放置能消费值MN(钱包值MN<=99)4、38区域放置MN的备份NN,5、39区域放置工作时间TT(TT<=99)6、读取卡信息上传到计算机7、注册有效卡并对其进行充值管理。
8、其他要求:写卡成功失败都要有声光提示;有写卡状态指示;电路原理图设计,protel印刷电路图设计。
提出系统设计框图,提出相应的解决方案。
论文正文不少于1.5万字,查阅文献资料不少于15篇,其中外文文献2篇以上,翻译与课题有关的外文资料不少于3000汉字。
一、结构框图◆整体分三部分单片机部分,读写卡模块,232模块部分。
◆接口电路部分属于IC卡槽和上位机相连的部分,也是IC卡能与单片进行通话的部分。
◆数码显示部分是显示IC卡存储器内数值的部分。
◆单片机与IC卡完成通信,对卡进行写操作。
基于单片机的IC卡读卡器设计
基于单片机的IC卡读卡器设计第1章绪论本章介绍了IC卡的发展历史和应用情况,说明了现代IC卡技术的基础知识,最后分析了目前常见的IC卡读写器终端,并提出了本课题中IC卡读写器的设计目标。
1.1 IC卡的发展和使用应用情况卡片是作为个人身份识别的手段而引进的,而作为交易凭证的卡片则早在19世纪80年代就萌芽于英国了,1950年,美国商人设计了第一张现代的塑料信用卡,1951年美国富兰克林银行作为金融机构率先发行了信用卡,到60年代中期,人们在塑料金融交易卡的背面贴上磁条,发展成为能够自动读取信息进行在线处理的磁卡,磁卡因为结构简单,价格低廉,得到迅速推广。
IC卡是近年从欧洲开始出现的,IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)、和Security(安全性)。
因而发展迅速,在金融、通讯、交通等众多领域中后来居上,即使那些磁卡已经普及应用的范围也将被取而代之。
IC卡不仅改变了现有多种卡的使用方法和功能作用,还不断开创出新的应用领域。
将IC卡和其他设备组成系统就能提供非常丰富的服务功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。
随着信息技术的发展,IC卡作为一种先进的信息存储介质,它的应用己经渗透到各国的经济、社会生活、军事等各个方面,将来更有着广阔的发展空间。
1.2 IC卡应用技术IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用范围以外,还提供了许多磁卡所不具备的应用特性。
正是这些特性,使IC卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。
IC 卡虽然有很强的功能,但仅当IC 卡加入到应用系统中,构成发行商、应用系统和持卡人之间的数据传输媒介时,才能有效地发挥其优势。
一个好的IC卡应用系统,应具备良好的应用特性和性能价格比,还要有好的安全特性。
IC卡最初是为了解决金融交易中的安全性问题而设计的,它带来全新的交易概念与巨大的优势。
基于89C51单片机IC卡读写器的设计
基于89C51单片机IC卡读写器的设计摘要IC卡目前在各行各业得到了广泛的应用,本文介绍了接触式IC卡的工作原理,并以存储卡AT24C01为基础,详细分析了软件控制IC卡与计算机交换数据的软、硬件实现。
关键词89C51单片机;IC卡读写器;UART接口0 引言IC卡是集成电路卡(Integrted Circuit Card)的简称,目前在各行各业得到了广泛的应用。
本文采用单片机作为控制核心,对接触式IC卡芯片进行读写操作,并可以通过RS232接口和上位计算机进行通信,把卡内数据传到计算机内或是把计算机的数据存储到IC卡中。
1 接触式IC卡的基本原理接触式IC卡是通过触点与外界的接触实现电气连接进行数据的读写,适用于用卡次数不多且环境较好的场合。
接口电路简单,成本低廉而且其读写器的制造成本较低。
IC卡接口电路作为IC卡与IFD内的CPU进行通信的唯一通道,为保证通信和数据交换的安全与可靠,本文基于存储IC卡AT24C01为例进行介绍。
1)AT24C01的写操作写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
2)AT24C01的读操作读操作有3种基本操作:当前地址读、随机读和顺序读。
最常见的是顺序读的时序图。
应当注意的是:最后一个读操作的第9个时钟周期不是“不关心“。
为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。
AT24C01片内地址在接收到每一个数据字节地址后自动加1,故装载一页以内规定数据字节时,只须输入首地址,若装载字节多于规定的最多字节数,数据地址将“上卷”,前面的数据被覆盖;连续读操作时为了指定首地址,需要两个伪字节写来给定器件地址和片内地址,重复一次启动信号和器件地址(读),就可读出该地址的数据。
由于伪字节写中并未执行写操作,地址没有加1。
以后每读取一个字节,地址自动加1。
在读操作中接收器接收到最后一个数据字节后不返回肯定应答(保持SDA高电平)随后发停止信号。
基于单片机的ic卡读写系统设计毕业(设计)论文
基于单片机的IC卡读写系统设计摘要随着社会的发展和现代化程度的不断发展,我们人类的信息数量和种类都在加倍地增长,每天都要处理很多和个人有关的信息,而这些信息管理非常不便。
因此,在现实生活中IC卡的应用范围十分广泛,它有助于我们解决问题。
IC卡读写系统是IC卡和计算机之间的传输媒介载体,它与计算机之间通过串行口相接,接触式IC卡是IC卡领域的一项新技术,它是射频识别技术和IC卡技术相结合的产物。
重点介绍系统硬件工作原理,并给出和介绍了SLE4442系列IC卡的内部结构和原理图,阐述了本次毕业设计所采用的各硬件接口技术和各个接口模块的功能及工作过程。
关键词:单片机;IC卡;读写系统目录1 硬件设计思路 (1)2 硬件论证方案 (1)3 硬件各模块的设计 (2)3.1 89C2051单片机的简介 (2)3.3 SLE4442IC卡的简介 (10)4 传送协议 (13)4.1 复位和复位响应 (13)4.2 命令模式 (13)4.3 输出数据模式 (14)4.4 处理数据模式 (15)5 SLE4442卡的应用 (15)5.2 芯片的复位方式 (15)5 .2 芯片的操作命令格式 (16)5.3 SLE4442卡的接口技术 (17)6 IC卡的接口电路 (17)6.1 IC卡的插入/退出识别与上电/下电控制技术: (18)1 硬件设计思路IC卡的应用领域非常广泛。
在IC卡的触点和读/写设备的触点良好接触之前,读/写设备不应对IC卡施加有关信号,以免造成不可预料的损坏。
IC卡读/写设备作为系统和用户交换的接口,必将面对各种各样复杂的应用环境。
因此,在设计阶段应注意IC卡读/写设备环境。
作为操作系统,管理IC卡的硬件资源和数据资源是其基本任务.IC卡上的硬件资源包括CPU,ROM,EEPROM和RAM及通讯接口,这些都由IC卡上操作系统统一管理, 使外部不能直接控制这些资源,使IC卡对外表现为一个"黑匣子",从而加强了系统的保密性能. 智能卡通讯管理主要功能是执行智能IC卡的信息传送协议, 接收读写器发出的指令,并对指令传递是否正确进行判断.一般可采用奇偶检,CRC校验等方式判断传输错误.对于采用分组传输协议的系统, 还可以通过分组长度变化来检出错误。
小黄本参考资料
1.题目名称:基于单片机的IC卡读写器设计主要技术参数:1. IC卡读写器设计工作在13.56MHz,天线接受距离可达10cm2.键盘电路的工作电压范围:+3.3V—5.5V。
工作温度范围:-40℃—+85℃。
3.单片射频收发器工作电压为5V4芯片工作电压范围为1.8V—6.0V。
课题内容及工作量:本选题首先对基于单片机IC卡读写器的总体概述,再针对系统所使用的单片机的性能和发展情况做了简单介绍,对设计IC卡的A TMEL89c51芯片做性能方面的说明。
同时,本选题对IC卡读写器的硬件、软件分析设计,对各部分电路进行介绍,最终完成系统硬件的电路。
将设计的软件反复的模拟运行、调试,修改简化的软件系统,进而完成IC卡读写器的读与写的功能。
分析温度检测装置的工作原理及过程,提出远程无线测温仪的整体设计方案。
1.要求完成温度检测电路、键盘和显示电路、串口通信和无线传输电路和存储电路等模块的电路原理图的设计。
2.软件设计采用Keil C51开发环境,要求完成程序模块规划及各个模块的设计与编程,实现对IC卡信息的处理过程的编程和调试。
3.要求最后通过系统软硬件联机调试,完成远程IC卡读卡器的设计,并给出设计过程中遇到的问题分析与结果处理。
主要参考资料:[1]Klaus Finkenzeller著.陈大才译.射频识别(RFID)技术[M].北京:电子工业出版社,2001.[2]游战清,李苏剑.无线射频识别技术(RFID)理论与应用[M].北京:电子工业出版社,2004.[3]中华人民共和国科学技术部等十五部委.中国射频识别(RFID)技术政策白皮书[R].北京:中华人民共和国科学技术部,2006. 2-3[4]Klaus Finkenzeller. RFID handbook Rachel translated. Second Edition. 2003.[5]尹应增.微波射频技术研究[D].西安:西安电子科技大学,2002.[6]马秀丽.MIFARE非接触式IC卡的技术特点及应用浅析[J].金卡工程,2005, (3):35-36.[7]贺利芳,范俊波.非接触式IC卡技术及其发展和应用[J].通信与信息技术,2003,(7): 23-24.[8]杨肇敏,张忠会.初论非接触IC卡技术[J].计算机工程与应用,1999, (12): 44-47.[9]白雅君,朱朝勇,董宝青.IC卡技术与应用[M].大连:大连理工大学出版社,1996. 18-23.[10]王爱英.智能卡技术[M].北京:清华人学出版社,2000. 45-155.[11]Pravin Varaiya .Smart Cards on Smart Roads:problems of control [J].IEEETransaction Automatic control, 1993,38(2):195-207.[12]Markantonakis, Konstantinos, Mayes Keiht. An overview of the global platform smartcard specification[J].Information Security Technical Report, 2003,8(1):17-29[13]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1997.[14]Philips Semiconduetors. APPLICATION NOTE-Mifare MFRC500 Basic Function Library [EB/OL]., 2001.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
石家庄铁道大学毕业设计
基于单片机的IC卡读写器设计The Design of the IC Card Read-Write Device Based on single chip microcomputer
2012 届电气工程系
专业
学号
学生姓名
指导教师陈东阳
完成日期 2012年 5月 15日
毕业设计成绩单
学生姓名学号班级专业毕业设计题目基于单片机的IC卡读写器设计
指导教师姓名
指导教师职称
评定成绩
指导教师得分
评阅人得分
答辩小
得分
组组长
成绩:
院长(主任)签字:
年月日
毕业设计任务书
题目基于单片机的IC卡读写器设计
学生姓名学号班级专业自动化
承担指导任务单位石家庄铁道大学导师
姓名
陈东阳
导师
职称
副教授
一、主要内容
设计一款读写器,能通过与计算机通信,由计算机发送新数据到单片机,完成对卡的读/写。
IC卡应用于消费电子产品对IC卡的管理,如电卡,饭卡,购物卡,娱乐消费卡等其他消费费系统充值与管理。
这里设计的读写器能实现简单的读写与显示功能。
二、技术参数和要求
1、使用SLE4442卡,密码用123456。
2、33-36区域放置AA 55 80 FE四个字节作为卡片识别代码。
3、37区域放置能消费值MN(钱包值MN<=99)
4、38区域放置MN的备份NN,
5、39区域放置工作时间TT(TT<=99)
6、读取卡信息上传到计算机
7、注册有效卡并对其进行充值管理。
8、其他要求:
写卡成功失败都要有声光提示;有写卡状态指示;
电路原理图设计,protel印刷电路图设计。
提出系统设计框图,提出相应的解决方案。
论文正文不少于1.5万字,查阅文献资料不少于15篇,其中外文文献2篇以上,翻译与课题有关的外文资料不少于3000汉字。
一、结构框图
◆整体分三部分单片机部分,读写卡模块,232模块部分。
◆接口电路部分属于IC卡槽和上位机相连的部分,也是IC卡能与单片进行通话的部分。
◆数码显示部分是显示IC卡存储器内数值的部分。
◆单片机与IC卡完成通信,对卡进行写操作。
并将数据通过232部分与计算机通信。
◆232模块部分,电平转换,通过这部分完成计算机与单片机的通信。
◆编程提示:计算机将要写的数据先发送到单片机,单片机再完成对卡的读写操作
三、应收集的资料及参考文献
1、参考及查阅资料
◆RS232,数码显示
◆I2C总线
◆通信协议
2、通讯协议
上位机通过查询命令,读取写入数据,协议如下:
上位机(计算机)发送:
AA 55 81 00 81 ED
读卡器返回数据串:
AA 55 01 N ABC,,,, Y ED
现在解释一下这个协议的含义。
先解释AA 55 81 00 81 ED
AA 55 是帧头,81是命令码,如果有很多命令的话,就靠这个数据区分。
00是数据长度,因为没有要下发的数据,所以是0,81代表的是校验和,是除去帧头外的前面所有数据的累加和,进位去掉。
这里只有 81 00,所以校验和还是81,ED是帧尾,表示数据串结束。
再解释AA 55 01 N ABC,,,, Y ED
AA 55还是帧头。
01是针对于81命令的返回码,就是将命令码加上80后舍掉进位的数据。
如果命令码是91,它的返回码就是11,以此类推。
N表示这个数据串里面要传递的真正有意义的数据个数。
即从N 与Y 之间有多少个字节。
ABC,,,,就是要传递的字节数据。
Y是校验和,就是从01开始到数据结束,所有字节累加和。
ED是帧尾。
例如上位机发送读卡命令如下:
AA 55 83 00 83 ED
解释 AA 55帧头, 83 读卡命令码, 00 0个没有数据,83 是命令码83和数据个数00的累加验和,ED 是结束码
单片机执行命令后返回数据如下:
有效卡:AA 55 03(命令返回码) 04(有效数据个数) MN(钱包值) NN(一次消费值) TT (一次运行时间) Y(累加校验和) ED
无效卡:AA 55 03( 83命令返回码) 01(有效数据个数) 55 (无效卡数据) 59 (03 01 55 累加校验和) ED
上位机发送命令如下:
AA 55 82 03 MN NN TT Y ED
(82 是充值命令,其他参照上面解释)
单片机执行后返回命令如下:
写卡成功:AA 55 02 (82返回命令码) 01(数据长度)01(成功数据) 04(累加校验和) ED
写卡失败:AA 55 02 (82返回命令码) 01(数据长度)02(失败数据)05(累加校验和) ED
其他命令如注册有效卡等命令按这个规定自行编写。
上位机发送和接受命令,可以通过串口调试助手完成。
STC单片机官网上的程序下载软件都有这个功能,波特率用9600。
串口方式选择1个起始位,8个数据位,一个停止位。
五、进度计划
第一周~第二周开题报告
第三周~第四周资料收集,方案设计
第五周~第七周系统设计
第八周中期检查
第九周~第十二周系统调试和论文撰写
第十三~第十四周论文审核
第十五周~第十六周答辩
教研室主任签字时间
毕业设计开题报告
题目基于单片机的IC卡读写器设计
学生姓名学号班级专业自动化
一、研究背景
IC卡是集成电路卡(Integrated Circuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip Card)或微电路卡(Microcircuit Card)。
IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是数据不易丢失的存储器(ROM, EPROM.EPROM), 保护逻辑电路,或者CPU。
IC卡最初是为了解决金融交易中的安全性问题而设计的,它带来全新的交易概念与巨大的优势。
按照IC卡与读写器的数据交换方式,IC卡可分为接触型IC卡和非接触型IC卡。
所谓接触型IC卡就是在使用时通过有形的金属电极触点将卡的集成电路与外部接口电路直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡。
其特点是在卡的表面有符合IS07816标准的多个金属触点。
IC卡的出现已经有了40年左右的时间,人们根据系统的需要,设计了各种各样的IC卡读写器,IC卡读写器是IC卡与应用系统间的桥梁,在ISO国标标准中称之为接口设备IFD(Interface Device).IFD内的cpu通过一个接口电路与ic卡相连并进行通信。
IC卡最早是在70年代初提出来的,由法国布尔公司于1976年首先创造出来,并将这项技术应用到金融、交通、医疗、身份证、餐饮等多个行业。
将IC卡作为一种先进的信息存储介质,和其他设备组成系统就能提供非常丰富的服务功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。
与其相关的配套产品IC卡读写装置,它为一些生产厂家所带来的利益也是非常巨大的。
IC卡越来越广泛的应用,一定会带动读写装置的广泛应用。
随着信息技术的不断发展,IC卡芯片的制作成本将不断降低,IC卡也会以其独有的安全性和使用灵活性最终取代磁条卡。
IC卡发展的如此迅疾自然也会导致其读写器的性能越来越好,功能也越来越强。
IC卡读写器现在在银行、消费办公场所到处可见。
今天我们用的校园一卡通,在卡务中心就是通过IC卡读写器将IC卡与电脑相连来进行充值的,所以本设计将对IC卡读写器装置展开研究。
二、国内外研究概况
IC(Integrated Circuit)卡是1970年由法国人Roland Moreno发明的,他第一次将可编程设置的IC芯片放于卡片中,使卡片具有更多功能。
法国布尔(BULL)公司于1976年首先创造出IC 卡产品,并将这项技术应用到金融、交通、医疗、身份证明等多个行业,它将微电子技术和计算机技术结合在一起,提高了人们生活和工作的现代化程度。
第一代IC卡的最初设想是由日本人提出来的。
1969年12月,日本的有村国孝(KunitakaArimura)提出一种制造安全可靠的信用卡方法,并于1970年获得专利,那时叫ID卡(IdentificationCard)。
第二代IC卡在1974年,法国的罗兰·莫雷诺(RolandMoreno)发明了带集成电路芯片的塑料卡片,并取得了专利权,这就是早期的IC卡。
第三代IC卡是1976年法国布尔(Bull)公司研制出世界第一枚IC卡。
第四代,1984年,法国的PTT(Posts,Telegraphs andTelephones)将IC卡用于电话卡,由于IC卡良好的安全性和可靠性,获得了意想不到的成功。
随后,国际标准化。