一种安全可靠的IC卡读写器系统

发布者:明理厚德最新更新时间:2021-01-22 来源: eefocus关键字:IC卡  MCS-51 手机看文章 扫描二维码
随时随地手机看文章

1 IC卡读写器概述


人们日常生活中经常接触到磁卡和IC卡,它们是根据卡片上的信息载体的不同而划分的。卡片及其读写器都属于人机接口的输入输出设备。磁卡是在卡片上贴一条窄窄的磁带来记录信息的,它主要用于车船票、信用卡、电话磁卡、旅馆门钥匙等。IC卡则为近几年才出现的新型卡片,在卡片上嵌有IC(E2PROM,有的还有CPU)。由于它保存的信息比较可靠安全、可以高达几万次的读写,所以大量应用于公交车票、饭票、保健卡、收费系统等。下面介绍一种以XICOR公司的X76F100为卡片的、用于存取款的IC卡读写器方案。


2 硬件组成


图1为IC卡及其读写器硬件电路图。其中读写器由单片机、键盘、显示、监控电路等部分组成。IC卡采用XICOR公司的X76F100Y。

2.1 IC卡及卡座


X76F100为128×8位的保密串行FLASH E2PROM,其中读密码和写密码分别为64位。图2为其智能卡Smart Card封装的引脚图。把芯片封装在一个卡片上,将卡片插入IC卡读写器的卡座中,读写器就可以对它进行读写,实现加密、查询、存款、取款等功能。


IC卡座有8个引脚,当X76F100Y插入时,正好同这几个引脚相连。另外还有两个固定端,其中一个固定端同卡座上一个弹簧片相连,两个触点和簧片就相当于一个常闭开关。当卡未插入时,簧片闭合,P3.2脚保持低电平;当卡插入时,簧片被顶开,P3.2脚变为高电平。当单片机检测到P3.2脚变高,通过P1.3使X76F100的RST引脚变高,使其复位。


2.2 单片机


单片机采用LG公司的GMS97C52。它有8K字节的ROM,256个字节的RAM以及32个I/O口,P1口与串行器件X25045和X76F100连接,P0、P2口用于键盘和显示,P3口中P3.2用于检测IC卡是否插入,其余7个口,可作其它功能扩充。

2.3 监控电路


监控电路采用X25045芯片,它包括看门狗定时器、电压监控电路和E2PROM存贮器。其功能是:上掉电时对GMS97C52产生RESET信号;看门狗对系统进行监控,防止死机。


2.4键盘电路


为了方便,键盘接口电路用I/O口实现,它为4×4结构,16个键。其中数字键11个,功能键4个,回车键1个。


数字键:0、1、2、3、4、5、6、7、8、9、←(退格)。


功能键:查询?、存储+、取款-、改密码*。


查询?:用户通过读密码可以查询卡中所存的款额。


存款+:用户通过写密码可以将款存入卡中。


取款-:用户通过写密码可以从卡中取款。


改密码*:分为修改读密码和写密码。为方便起见,令读密码和写密码一


致,按此键将同时修改读密码和写密码。


回车键:8位密码或存取款数输入完确认,以及新密码输入完确认。


2.5 显示电路


显示部份采用LED显示器,也用I/O口实现。用于显示系统状态、输入的密码或所要存取的款额以及出错信息等。


由于GMS97C52的驱动电流有限,在P0、P2口加反向器SN74F04,增加驱动能力。它的吸入电流为64mA,输出电流为15mA,可以保证位选所需的吸入电流。


3 程序设计


3.1 主程序流程图


主程序流程图如图3所示。

开机后,系统处于待机状态,不断查询P3.2脚电平,当X76F100插入读写器卡座时,P3.2脚电平变高,单片机检测到P3.2高电平信号时,使P1.3脚电变高,如果此时为低电,X76F100复位,输出32位固定的“同步复位响应”数据。然后循环扫描键盘显示程序,进行存款、取款、查询或改密码。一次操作完成后返回,然后不断循环。


3.2 循环键盘显示程序


循环扫描键盘显示程序如图4所示,它采用程控扫描方式。键盘实际操作的顺序是:先按功能键,然后依次输入8位(十进制)密码,按回车键确认。当存取款时,随后输入所存取的款额;当修改密码时,随后输入8位新密码,输完后按回车键确认。若输入密码正确,显示IC卡内存款的余额或改密码成功信息(SUCCESS)。若密码不正确,提示重新输入,允许输入密码4次。


为了记录操作中正在进行的状态,在键盘程序中设置了多个指针。


(1)KEY 有否按键按下标志。00H表示无键按下,01H表示有键按下。此标志用于判断按键是否已松开,防止误操作。


(2)FUN为功能键指针,00H表示无功能键按下,01H表示存款(ADD),02H表示取款(SUB),03H表示查询(IQUIRE),04H表示改密码(CHANGE PASSWORD)。


(3)DIG为允许数字键输入标志,00H表示不允许,01H表示允许。此标志主要是防止输入多余的密码,或输入的款数超出限额。


(4)NUM表示输入第几个数字,00H表示无数字输入,01H~08H表示输入密码,09H~10H表示输入款数或新密码,若NUM为11H,显示出错信息。


3.3 X76F100读程序举例

图4 循环键盘显示程序流程图


X76F100为I2C总线E2PROM。SCL为时钟输入,SDA为双向数据输入输出线。通过片输入来控制对器件的访问。下面以页写为例,先结合时序说明X76F100的工作过程,然后给出程序。


页写时序如图5所示。在该系统中,GMS97C52为主机,X76F100为从机。首先主机向从机发一个START命令,产生开始条件,然后发写命令字。当从机接到命令后,向主机发一个应答信号NACK。然后跟随8字节密码,随后进入一个写周期,写周期结束后进行密码应答轮询ACK Polling。X76F100要求主机用专用的应答命令55H进行应答轮询。如果输入的密码正确,将返回一个“ACK”。如果密码不正确,将返回“no-ACK”,重试计数器加1,返回到启始位置,提示重新送入写命令字和8字节密码。若密码正确,主机接着送入8个字节的数据,ACK响应成功后,主机发出STOP命令完成写操作。下面是用写密码进行页写的程序。

图5 页写时序图(需要密码)











关键字:IC卡  MCS-51 引用地址:一种安全可靠的IC卡读写器系统

上一篇:MCS-51单片机外中断软件编程简介
下一篇:单片机程序远程下载方法(包括STC单片机)

推荐阅读最新更新时间:2024-11-13 17:56

mcs-51单片机的中断源和中断向量
1、外部 中断 0、1;分别由引脚/INT0、/INT1的电平信号引起。 2、定时/ 计数器 0、1;分别由T0、T1的溢出引起。 3、串行口发送、接收;发送完一个字节或接收到一个字节引起。 上述共5个中断源。 4、定时/计数器2;由T2的溢出或T2EX引脚负跳变引起。只是52型才有。 中断入口地址: INT0-------------------0003H T0----------------------000BH INT1-------------------0013H T1----------------------001BH SCOM-----------------0023H *T2--------
[单片机]
[汇编学习笔记]MCS-51寻址方式
MCS-51指令的寻址方式有七种: 1.立即寻址 操作数直接出现在指令中,操作数可以为#da ta或#da ta16 MOV A,#da ta MOV DPTR,#da ta16 2.间接寻址 操作数的单元地址直接出现在指令中,这一寻址方式可以进行内部存储单元的访问。它包括: (1)特殊功能寄存器地址空间。这也是惟一可寻址特殊功能寄存器(SFR,高128字节)的寻址方式。 MOV A,P1 MOV TCON,A (2)内部RAM的低128字节 MOV A,76H MOV A,43H 3.寄存器寻址 MOV A,R1 这种寻址方式中,寄存器中的内容就是操作数,可用来访
[单片机]
MCS-51系列单片机的引脚中有多少根I/O线?
问题:. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大? 解答:80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
[单片机]
SST39SF040与MCS-51的接口设计
2.1 硬件设计 硬件设计就是搭建合适的接口电路,将SST39SF040连接到MCS-51的系统总线上。根据SST39SF040和MCS-51系列单片机的结构特性,我们发现SST39SF040的数据线和读、写信号线可以很容易地连接到MCS-51的系统总线上,所以要考虑的主要问题是SST39SF040地址线的连接。由于其容量已经超出了MCS-51的寻址范围,19根地址线无法全部连接到MCS-51的地址总线上,因此必须在该系统中进行进一步的存储器扩展。存储器扩展通常可利用单片机空闲的I/O口线作为页面地址输出引脚来实现。但是许多应用系统当中,单片机的I/O口线都是非常紧张的,在没有多余的I/O口线时,页面地址就必须提前从数据
[单片机]
SST39SF040与<font color='red'>MCS-51</font>的接口设计
MCS-51单片机之液晶显示
用MCS-51单片机来驱动液晶显示本已不属于单片机本身的知识了,我所用到的液晶是1602液晶屏,主要是要自已去查看相关芯片的文档,所以自然对英语阅读能力是一个不小的挑战.在看文档的时候,我们也只需要注意几个相对重要的问题,而不用面对大篇的文档而不知何去何从,第一重要当然是液晶的时序图了,只有掌握了时序图后我们才能写出合理正确的程序,除此之外,还有相关引角的作用也是必不可少的. 在编写相关程序时,首先是将相关位进行设置,将RW接地即可,还有就是要合理设置RS位和EN位了,它们分别是读写选择位,命令数据先择位,使能位了,在操作时序的时候,我们主要也是来操作EN位来以时序进行控制的所以,她是极其重要的.接下来,我们就可以向芯片写
[单片机]
MCS-51】编译指令系统
51单片机是一种广泛应用于嵌入式系统中的芯片,具有极高的性价比和通用性。在51单片机开发过程中,编译指令系统是非常重要的组成部分。本文将从编译原理、汇编语言和编译指令系统等方面对51单片机编译指令系统进行详细介绍。 1. 编译原理 编译指令系统是一种将高级语言转换为机器指令的过程。在编译指令系统中,编译器将源代码文件转换为目标代码文件,这个过程通常被称为编译。编译过程主要包括以下几个步骤: (1) 词法分析:将源代码分割成一个个有意义的单元,例如关键字、运算符、标识符等。 (2) 语法分析:将分割后的单元按照语法规则进行归类和组合,构成语法树。 (3) 语义分析:在语法树上进行类型检查和语义分析,确定变量类型和作用域等信息。
[单片机]
【<font color='red'>MCS-51</font>】编译指令<font color='red'>系统</font>
MCS-51系列单片机位控制转移指令(5)
布尔处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的。布尔变量也即开关变量,它是以位(bit)为单位进行操作的。 在物理结构上,MCS-51单片机有一个布尔处理机,它以进位标志做为累加位,以内部RAM可寻址的128个为存储位。 既然有布尔处理机功能,所以也就有相应的布尔操作 指令 集,下面我们分别谈论。 .位控制转移指令(5) 位控制转移指令是以位的状态作为实现程序转移的判断条件,介绍如下: JC rel ; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。 JNC rel ; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC
[单片机]
MCS-51系列单片机并行P0口的特性及操作
一、P0口特性: P0口为三态双向I/O口。对于内部有程序存贮器的单片机基本系统(如定制的8051),P0口可以作为输入/输出口使用,直接连外部的输入/输出设备;也可以作为系统扩展的地址/数据总线口。对于内部没有程序存贮器的单片机(如8031),P0口只能作为地址/数据总线口使用。   1、P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁动器的Q端时,P0口作为双向I/O口使用。      这时,CPU发来的控制信号为低 电平 ,使输出驱动 电路 的上拉场效应管T1截止。P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;由于P0口输出电路是漏极开路的电路,必须外接10kΩ拉高 电
[单片机]
<font color='red'>MCS-51</font>系列单片机并行P0口的特性及操作
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved