一种基于单片机直接读写的IC卡读卡器
基于PIC单片机的IC卡读写器的设计

基于PIC单片机的IC卡读写器的设计何建平,杨向萍(东华大学机械学院,上海 200051)jphe@摘要:本文介绍了以PIC16C74单片机为核心的IC卡读写器的系统设计,系统实现了IC卡及外部存储器的读写、PC机与单片机的串行通讯、硬件上实现了串口供电的工作方式,系统具有实用性强稳定性高等特点。
[关键词]:PIC单片机;IC卡读写;串行通讯;串口供电IC(integrated circuit card) 卡在当今社会被广泛应用,除在金融系统外,在非金融系统,如在交通领域中的驾驶员执照卡、停车收费卡、公共交通设施的自动收费卡及公共交通工具的自动收费卡,在医疗保健、个人身份识别、预收费仪表、校园及消费娱乐领域中也得到了具体的应用。
随着时间的推移,IC卡的应用将会越来越广泛。
它给人们的工作和生活带来极大的方便,相信在不远的将来, IC卡会真正走进我们的工作和生活中。
在使用IC进行信息交流的过程中离不开IC 卡读写器,IC卡读写器就是能将数据信息写入IC卡或将IC卡内部的数据信息读入或擦除的电子接口设备。
IC卡读写器的性能将直接影响读写的可靠性、准确性和实用性。
1.IC卡读写器功能要求本设计IC卡读写器是一种接触式逻辑加密卡的读写器,IC卡选用Siemens公司的SLE4442卡,它是具有加密逻辑的2kbit EEPROM卡,具有以下主要特点: 3字节密码,密码有效后才能更改数据;连续三次密码给错则卡自毁;特定的存储区写保护;使用密码移交方式来保护卡移交的安全性;器件保证1万次读写循环,10 年数据保存期。
设计的IC卡读写器主要有如下特点与功能。
(1)此读写器须完成IC卡和外部存储器的读写功能。
(2)提供相应外部控制信息,与PC机进行信息的交换,实现PC机对读写器的控制。
(3)在硬件上采用串口供电的方式工作,实现了实用性强、稳定性高的特点。
2.硬件电路设计2.1微处理器芯片的选用本读写器是以美国Microchip公司生产的PIC16C74单片机为核心展开设计的。
「基于单片机的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卡存储的数据并进行显示或处理。
基于STM32单片机的RFID读卡器机构的设计与实现

基于STM32单片机的RFID读卡器机构的设计与实现而RFID读卡器是将RFID技术应用到实际生活中的重要设备之一,它通过读取RFID标签上存储的信息,实现对目标对象的识别和追踪。
本文将介绍一种基于STM32单片机的RFID读卡器机构的设计与实现,通过STM32单片机与RFID模块的结合,实现了RFID读卡器的基本功能,并具备了一定的扩展性和灵活性,为实际应用提供了可靠的技术支持。
一、设计方案1.硬件设计该RFID读卡器的硬件设计基于STM32F103单片机和RC522 RFID模块。
STM32F103是一款性能强大的ARM Cortex-M3内核单片机,具有丰富的外设资源和强大的处理能力;而RC522 RFID模块是一款广泛应用的13.56MHz射频识别模块,具有稳定的性能和广泛的兼容性。
硬件设计主要包括STM32F103单片机、RC522 RFID模块、天线、外部存储器和显示屏。
STM32F103单片机作为主控芯片,负责控制整个系统的工作流程;RC522 RFID模块用于实现RFID标签的读写功能;天线用于接收RFID标签发送的射频信号;外部存储器用于存储读取的RFID标签信息;显示屏用于显示读取到的RFID标签信息。
软件设计主要包括系统初始化、RFID读取、数据处理和信息显示等功能。
系统初始化阶段,主要包括对STM32F103单片机和RC522 RFID模块进行初始化设置,建立通信连接,为后续的RFID读取做准备。
RFID读取阶段,主要包括对天线发射接收信号,对RFID标签进行识别和读取,将读取的数据传输到STM32F103单片机进行处理。
数据处理阶段,主要包括对读取到的数据进行解析和存储,为后续的数据处理和应用提供支持。
信息显示阶段,主要包括将处理后的数据显示在外部的显示屏上,方便用户查看和管理。
二、实现过程在硬件设计方面,首先进行了系统的整体布局设计,确定了各个模块的连接方式和布局位置,保证整个系统能够正常工作和稳定运行。
基于单片机的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时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据。
基于单片机的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卡读写器设计摘要:随着社会的进步和现代化程度的不断提高,人类所拥有的信息种类和数量都在成倍地增长,每天都要处理许多与个人有关的信息,而这些信息管理十分不便。
因此,在实际生活中IC卡的应用范围非常广泛,它有助于解决问题。
IC卡读写器是IC卡和计算机之间的传输媒介,它与计算机之间通过串行口相连,本文主要应用89C2051单片机为核心对SLE4442卡进行读写控制。
接触式IC卡是IC卡领域的一项新兴技术,它是射频识别技术和IC卡技术相结合的产物。
首先在绪论中介绍了课题的开发意义及功能概述。
其次在主要描述了系统硬件工作原理,并介绍了IC卡SLE4442的内部结构及原理图,论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能及工作过程。
本系统是以单片机的基本语言汇编语言来进行软件设计,指令的执行速度快。
最后具体描述了各个功能模块的软、硬件调试。
本文撰写的主导思想是软、硬件结合,以硬件为基础,来进行各功能模块的编写。
关键词:读写控制,单片机,IC卡。
Abstract: Raise continuously along with the progress and modern degree of the society, the information category and quantities that the mankind own all Be becoming doubly a growth, want to handle to be many and personal everyday relevant of information, but these information managements is very inconvenient.The application of the IC card is very extensive in the real life. it contributes to solve problem。
基于单片机的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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南华大学电气工程学院《单片机课程设计》设计课程:基于单片机IC卡读卡器指导教师:朱卫华学院:电气工程学院班级:通信1101班学生姓名:邹光宗学号:20114400126摘要:IC卡读写器是IC卡和计算机之间的传输媒介,它与计算机之间通过串行口相连,本文主要应用AT89C51单片机为核心对SLE4442卡进行读写控制。
接触式IC卡是IC卡领域的一项新兴技术,它是射频识别技术和IC卡技术相结合的产物。
首先介绍了课题的开发意义及功能概述。
其次在主要描述了系统硬件工作原理,并介绍了IC卡SLE4442的内部结构及原理图,论述了本次设计所应用的各硬件接口技术和各个接口模块的功能及工作过程。
本系统是以单片机的基本语言汇编语言来进行软件设计,指令的执行速度快。
最后具体描述了各个功能模块的调试。
本文撰写的主导思想是软、硬件结合,以硬件为基础,来进行各功能模块的编写。
关键词:单片机IC卡直接读写Abstract:IC card's reading and write a machine is the IC card and of the calculator deliver medium, it goes to connect with each other with of the calculator through a string, this text applies a single slice of AT89C51 machine for the core mainly to the SLE4442 card to carry on reading and write a control. The contact type IC card is a newly arisen technique of the IC card realm, it is the outcome that the radio frequency identifies the technique and the IC card technique to combine together.First introduces the overview development significance and function research.Secondly, in the mainly describes the working principle of the system hardware,and introduces the internal structure and principle diagram of IC card SLE4442,discussed the function and working process of the application of the design of the hardware interface technology and the interface module. This system on software design with the assembler language, the instruction carries out the speed quick.Finally describes the debugging of each function module. The main idea of this writing is soft, hardware, hardware based, prepared to carry out every function module.Keywords: Single slice machine IC card Directly read and write目录第一章系统设计方案 (1)1.1 任务与要求 (1)1.2 方案设计 (1)第二章系统芯片介绍 (2)2.1 STC89C52单片机介绍 (2)2.1.1 STC89C52简介 (2)2.1.2 STC89C52特性 (3)2.1.3 STC89C52参数 (3)2.2 IC卡SLE4442介绍 (4)2.2.1 SLE4442简介 (4)2.2.2 SLE4442主要指标 (4)2.2.3 SLE4442引脚配置 (5)2.2.4 SLE4442芯片的操作命令格式 (5)2.3 MAX232介绍 (6)第三章IC卡读卡器的系统设计 (8)3.1 电路设计 (8)3.2 电路分解 (8)第四章检测与调试 (12)4.1 硬件调试 (12)4.2 软件调试 (12)心得体会 (12)附录 (13)软件程序 (13)元器件清单 (23)参考文献 (23)第一章 系统设计方案1.1 任务与要求本次设计任务题目要求为:一种基于单片机直接读写的IC 卡读卡器。
要求计算机用串口通信直接对由单片机和IC 卡构成的读卡器进行读写。
1.2 方案设计本文主要设计以STC89C51单片机为核心的IC 卡读卡器。
IC 卡是一种集成电路卡,它的读/写设备是每个IC 卡应用系统必不可缺的周边设备。
IC 卡读卡器就是能将数据信息“写入”或“读出”的电子接口设备。
该设备通过IC 卡的6个触点向IC 卡提供电源并与IC 卡相互交换信息。
系统框图:图1.1 系统设计框图单片机 AT89C51串口通信计算机IC 卡座 IC 卡第二章系统芯片介绍2.1 STC89C52单片机介绍2.1.1 STC89C52简介图2.1 STC89C52引脚图STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外 STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
2.1.2 STC89C52特性STC89C52RC单片机:8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;AT89S52单片机:8K字节程序存储空间;256字节数据存储空间;自带2KB的EEPROM存储空间;2.1.3 STC89C52参数1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051;2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机);3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz;4. 用户应用程序空间为8K字节;5. 片上集成512 字节RAM;6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻;7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片;8. 具有EEPROM 功能;9. 共3 个16 位定时器/计数器。
即定时器T0、T1、T2;10.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒;11. 通用异步串行口(UART),还可用定时器软件实现多个UART;12. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级);13. PDIP封装。
2.2 IC卡SLE4442介绍2.2.1 SLE4442简介SLE4442是由德国西门子公司设计的逻辑加密存储卡。
它具有2K位的存储容量和完全独立的可编程加密代码存储器。
内部电压提升电路保证了芯片能够以单5V电压供电,较大的存储器容量能够满足应用领域的各种要求。
是目前国内应用较多的一种IC卡芯片。
SLE4442IC卡芯片主要包括三个存储器:256×8位EEPROM型主存储器、32×1位PROM型保护存储器和4×8位EEPROM型加密存储器。
传送协议是在接口设备IFD与IC卡的集成电路之间的两线连接协议,SLE4442芯片的协议类型为S=10(同步卡协议)。
I/O线上数据变化只在CLK信号的下降沿才有效。
传送协议包括4种模式:复位和复位响应、命令模式、输出数据模式、处理模式。
2.2.2 SLE4442主要指标1.面向字节寻址;2.采用多存储器结构:主存储器、保护型存储器、加密存储器;3.线连接协议,触点和串行接口满足ISO7816同步传送协议;4.芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms;5.复位响应(ATR)符合ISO/IEC7816-3协议;6.存储器采用至少10 000次的擦除/写入周期,数据保持时间至少为10年;7. 额外特性:数据仅能在正确输入24位可编程安全码(安全存储器)之后才能改变。
2.2.3 SLE4442引脚配置芯片的引脚与国际标准兼容,引脚的定义和功能说明如表3-1所示。
表2-2 SLE4442引脚功能引脚卡触点符号功能1 2 3 4 5 6 C1C2C3C4C5C6VCCRSTCLKGNDNCI/O操作电压5V复位时钟地未用双向数据线(漏极开路)2.2.4 SLE4442芯片的操作命令格式每条命令包含三个字节,其顺序如表3-2所示。
表3-2命令顺序MSB控制字 LSB MSB地址字 LSB MSB数据字 LSB B7 B6 B5 B4 B3 B2 B1 B0 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0命令的传送总是从控制字节开始。
首先传送字节的最低位LSB(即B0)。
控制字节传送完毕以后,依次传送地址字节和数据字节,传送顺序均从各字节最低位开始。