历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2021年01月22日 | 一种安全可靠的IC卡读写器系统

2021-01-22 来源:eefocus

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 页写时序图(需要密码)











推荐阅读

史海拾趣

ATM [Advanced Technical Materials]公司的发展小趣事

在20世纪初期,电子技术和机械自动化的发展为ATM的出现奠定了基础。1939年,美国的Luther Simjian提出了ATM的设计雏形,并成功说服一家公司制作了样板试验产品。然而,由于当时的技术限制和公众接受度不高,这些早期ATM并未得到广泛应用。

广东长利光电(Changli Optoelectronic)公司的发展小趣事

进入21世纪,广东长利光电开始将目光投向国际市场。公司积极参加各种国际展览和交流活动,与世界各地的客户建立了广泛的联系。凭借优质的产品和服务,公司逐渐在国际市场上崭露头角。为了更好地服务全球客户,广东长利光电在中国设立了多个办事处,并建立了完善的销售和服务网络。

Enovation Controls LLC公司的发展小趣事

随着公司的发展,广东长利光电逐渐意识到质量管理的重要性。为了提升产品质量,公司决定引进ISO9001质量管理体系。在实施过程中,公司对生产流程进行了全面的梳理和优化,确保了每一个生产环节的严格控制。这一举措不仅提升了产品的合格率,还为公司赢得了更多的客户信任和市场份额。

EBK Kruger GmbH & Co KG公司的发展小趣事

随着全球环保意识的提高,EBK Kruger积极响应绿色生产的号召。公司投入大量资金研发环保型电子产品,并优化生产流程以减少能源消耗和废弃物排放。通过这些努力,EBK Kruger不仅降低了生产成本,还提升了企业的社会责任感,赢得了更多客户的支持和信任。

DESCO公司的发展小趣事

为了进一步提升竞争力,DESCO公司进行了多次收购和资源整合。例如,在XX年,公司成功收购了美国一家知名的防静电产品制造商,获得了其先进的生产技术和销售渠道。这次收购使DESCO公司的产品线更加丰富,市场覆盖面更加广泛。此外,公司还加强了与其他企业的战略合作,共同开发新产品、拓展新市场。

Conxall公司的发展小趣事

在快速发展的同时,Conxall公司始终牢记企业的社会责任。公司积极参与公益事业,捐资助学、扶贫济困。同时,公司还注重环保和可持续发展,采用环保材料和节能技术,努力降低生产过程中的能耗和排放。这些举措不仅赢得了社会的广泛赞誉,也为公司的长远发展奠定了良好的社会基础。

这些故事虽然是以虚构的Conxall公司为背景,但其中所蕴含的创新、突破、拓展、合作和社会责任等要素,是任何一个成功的电子行业企业都不可或缺的品质。希望这些故事能够满足您的需求。

问答坊 | AI 解惑

康华光模电下载

经典模拟电路教程…

查看全部问答>

电子元器件识别

请教高手:两个稳压二极管头对头连接是什么元件?有什么作用?如何测试?谢谢!…

查看全部问答>

寻找一款ARM9双核的MP2530F 开发板

如题,有没有MP2530F的开发板?价格多少,或有类似的介绍吗 谢谢…

查看全部问答>

6410

为什么6410的串口数据都要走USB呢。。。小弟不才。。不知道怎么了不让他走USB。。。…

查看全部问答>

关于movx指令向外部器件端口地址送数据问题,急盼高手指点!

#define DIGPORT  XBYTE[0x0200]               //定义字位口 #define WORDPORT XBYTE[0x0100]               //定义字型口 #d ...…

查看全部问答>

LED的几种分类方式

replyreload += \',\' + 743913;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

STM32中断

STM32中的NVIC中断向量表 0x00000058EXTI0的中断地址 保存了中断函数的入口地址   这个地址里面保存的是不是中断函数在STM32   xxxflash中的首地址呢?   程序运行是xxxflash的内容要调入内存中 这两个地址的映射关系是怎 ...…

查看全部问答>

求助TDA7419设置问题

各位高手大侠,我目前用TDA7419做音频处理,结果是MCU与TDA7419的I2C通信正常了,TDA7419都能正常ACK。但是就是没有声音出来。 请求各位高手帮帮忙指点小弟。 我的外部硬件设置是,外部MUTE脚悬空,其他的是SE2先做一路输入,输入信号为1V  ...…

查看全部问答>

u-boot_smdkv210 分析二:启动代码start.s分析

u-boot_smdkv210 分析二:启动代码start.s分析1.链接文件 . = 0x00000000;. = ALIGN(4); .text      : {   cpu/s5pc11x/start.o    (.text)   cpu/s5pc11x/s5pc110/cpu_init.o   ...…

查看全部问答>

我的猜题

本帖最后由 paulhyde 于 2014-9-15 03:23 编辑    …

查看全部问答>