加密IC卡保险柜控制器的设计
随着社会的进步和为民生活水平的提高,
为们出差、旅游和度假的机会日益增加。在宾馆、饭店等居住场所都需要一保险柜来保存贵重物品和易失物品,即便在家里,也往往需要有一个地方来保存一些单据等物品。传统的手段已不能满足人们对其安全性和灵活性要求,把应用愈来愈广泛的IC卡技术应用到保险柜上,可以充分满足这方面的需求。例如,根据客户要求,可以给每个房间配备一个带有IC卡电子门锁的保险柜供他们存放物品;待客人走后,可以灵活地对保险柜的密码进行重新设置,更换IC卡。下面对我们自行设计的加密型IC卡保险柜的核心部件--控制器件一详细的介绍。
一、控制器的硬件设计
本系统的主要任务是完成对IC卡的识别和控制,因此,首先介绍一下所选用的IC卡。
1.SLE4442加密IC卡简介
目前市场上的IC卡种类较多,比较有代表性的有ATMEL公司的AT系列和SIEMENS公司的SLE系列。我们根据用户的要求和市场的供给情况选用了SIEMENS公司设计的SLE4442卡。此卡的特点是:
(1)卡内有2K位的存储容量和完全独立的可编程逻辑代码存储器(PSC);
(2)多存储器结构,其中包括256×8位EEPROM,32×1位PROM的4×8位EEPROM型加密存储器;
(3)串行口满足ISO7816同步传递协议;
(4)每一字节的擦除/写入时间为2.5ms;
(5)存储器可擦除1000次以上,数据可保存10年以上。
SLE4442型IC卡的触点排列及功能如图1所示。
SLE4442芯片的传送协议包括4种模式。
(1)复位和复位响应
复位可在操作期间任何时候进行。在复位响应期间,任何开始和停止条件均被禁止。复位与复位响应时序如图2所示。
(2)命令方式
每个命令由起始条件、1个3字节长的命令和停止条件构成。命令方式时序如图3所示。
起始条件:CLK处于高状态H期间,I/O的下降沿。
停止条件:CLK处于高状态H期间,I/O的上升沿。
(3)输出数据方式
在这种试上,IC卡发送数据至接口设备IFD。在CLK上第一个下降沿后,I/O上第一位有辩效,最后一个数据位之后,需要一个额外的时钟脉冲,以设置I/O处于高状态,同时准备IC卡接收新的命令。在这种方式下,任何开始和停止条件均被禁止。输出数据方式时序如图4所示。
(4)处理方式
在第一个CLK的下降沿,将I/O线从高状态H切换至低状态L并开始处理,直到低状态L的I/O被设置成高状态H结束。在这种方式下,任何开始和停止条件均被禁止。处理方式时序如图5所示。
SLE4442卡共有7个命令,每个命令包括3个字节,其命令格式及功能如表1所列。
表1 SLE4442命令
字节1控制字节 字节2地址字节 字节3数据字节 操 作
B7 B6 B5 B4 B3 B2 B1 B0 A7A0 D7D0
0 0 1 1 0 0 0 0 地址 无 效 读/从给定的字节地址至用户存储器结束
0 0 1 1 1 0 0 0 地址 输入数据 编程输入地址对应的用户存储区
0 0 1 1 0 1 0 0 无效 无 效 读保护存储器
0 0 1 1 1 1 0 0 地址 无 效 写保护存储器中的保护位
0 0 1 1 0 0 0 1 地址 无 效 读保密存储器
0 0 1 1 1 0 0 1 地址 输入数据 写/编程输入址对应的保密存储器
0 0 1 1 0 0 1 1 地址 输入数据 比较可编程密码PSC字节
这里只介绍比较可编程密码PSC命令的使用。比较过程由4个步骤组成:
①写错误计数器EC(至少1位)。地址0。密码比较结果将在错误计数器中反馈,3次密码出错IC卡被阻塞。
②比较PSC字节1,地址1。写完错误计数器之后,以不同的命令格式送入3个密码字节。密码比较成功,将通过刷新错误计数器来识别,然后施加上操作电压,就可以对所有存储器进行读写操作了。
③比较PSC字节2,地址2。
④比较PSC字节3,地址3。
芯片在出厂时可根据用户的专门要求将可编程加密代码(PSC)存储器中编入一个专用代码。这样在使用时,就必须合法地得到这个代码,从而防止非法窃用或伪造卡片。
2.系统组成及工作原理
本系统的硬件主要由单片机、串行EEPROM、电磁阀和IC卡读/写插座组成。具体电路如图6所示。
电路中的单片机AT89C2051是89C51的简化体。20引脚为DIP封装。片内有2K字节闪烁存储器,128字节RAM,15条I/O线,全双工串行口。P1.0、P1.1分别作为片内精确模拟电压比较器的正、负输入端;P1.2作为IC卡的复位端;P1.3、P1.4分别作为IC卡的时钟线与数据线;P3.7作为IC卡工作指示灯的控制端;P1.5作为非法操作的声音报警控制;P3.4作为电磁阀门SW1的控制端。图中的U5是串行EEPROM--AT24C01,它的作用是用来随机存储每个IC卡的密码等;U4为电压比较器,用来监测电源电压:如果电源电压下降至4.5V左右就会产生报警信号。为了使系统更可靠地工作,采用CD4060设计了单片机看门狗电路,由4060定时产生一个复位脉冲,对单片机进行复位操作。整个电路设计中,充分考虑了能源的节约问题,所以在IC卡插入前整个电路的大部分芯片没有供电,只有门电路U1工作;当IC卡插入后,由于IC卡座的开关接通,促使门电路U1触发翻转,由T1导通使其他芯片得到供电。如果在使用过程中客人忘记拔出IC卡,电路除了要产生报警信号外,还会在30s(秒)后自动停止供电。
二、控制器的软件设计
该软件包括三部分:
(1)IC卡信息的读取及AT24C01数据的读取;
(2)比较校验数据,修改存储器数据;
(3)各种控制功能的实现,包括门锁开启,声、光报警等操作。
限于篇幅,这里只给出了利用51汇编语言编写的加密IC卡SLE4442的读/写程序,并给出了主程序的流程图,如图7所示。
读子程序
READ:MOV R0,#30H ;设置存放IC卡读入数据的首地址为30H
LCALL RESET ;调IC卡复位子程序
MOV R2,#10H ;读IC卡数据的个数送R2
LCALL START ;调起始条件子程序
MOV R5,#00110000B ;发送读的命令码
LCALL SPOUT ;调发送一个字节子程序
MOV R5,#20H ;发送IC卡的起始地址
LCALL SPOUT
MOV R5,#00H ;将数据00H发送出去
LCALL SPUT
LCALL STOP ;调停止条件子程序
READ1:LCALL SPINC ;调数据采集子程序
MOV A,R6
MOV @R0,A
INC R0
DJNZ R2,READ1
LCALL PLUSE ;调发送脉冲子程序
RET ;读IC卡数据子程序结束
写子程序
WRT:LCALL RESET ;写IC卡数据子程序开始,调IC卡复位子程序
MOV R2,#10H ;写入IC卡的字节个数送R2
MOV R1,#40H ;将40H为首地址的内容写入IC卡
MOV R4,#30H ;R4中放的是写到IC卡起始地址30H
WRT1:LCALL START ;调起始条件子程序
MOV R5,#00111000B ;发送写的命令码
LCALL SPOUT
MOV A,R4 ;发出要写入的IC卡地址
MOV R5,A
LCALL SPOUT
MOV A,@R1 ;写入IC卡数据
MOV R5,A
LCALL SPOUT
LCALL STOP ;调停止条件子程序
LCALL PROCE ;调一个编程过程子程序
INC R1 ;数据指针加1,直到数据写完
INC R4
DJNZ R2,WRT1
RET ;写子程序结束
PROCE:MOV R3,#0FFH ;一个编程过程子程序
PROC1:SETB P1.2
NOP
CLR P1.2
DJNZ E3,PROC1
RET
SPINC:MOV R3,#08H ;数据采集子程序
SPIN1:CLR P1.2
MOV C,P1.4
MOV A,R6
RLC A
MOV R6,A ;读出的一字节内容送R6
SETB P1.2
DJNZ R3,SPIN1
RET
SPOUT:MOV R3,#08H ;一字节发送子程序
MOV A,R5
SPTC1:CLR P1.2
RLC A
MOV P1.4,C
NOP
SETB P1.2
DJNZ R3,SPTC1
RET
START:SETB P1.2 ;起始条件子程序
NOP
CLR P1.4
NOP
RET
STOP:CLR P1.2 ;停止条件子程序
NOP
CLR P1.4
NOP
SETB P1.2
CLR C
NOP
SETB P1.2
NOP
CLR P1.2
RET
RESET:SETB P1.3 ;复位IC卡子程序
NOP
CLR P1.3
NOP
RET
END
保险柜的安全性能是本控制器系统设计的出发点之一,为此,在软件上,将IC卡分为母卡和子卡,母卡由管理人员掌握,子卡由客人掌握。在每次客人走后,将母卡插入保险柜,那么原来的开机子卡宣布作废,这时可以插入一个新的卡形成一个新的子卡。母卡的功能是负责生成新的子卡,而不负责开门,从而确保了保险柜的安全性能。
加密IC卡保险柜控制器的设计相关推荐
- 手机NFC如何格式化加密IC卡
前言 加密类型的M1卡或者CUID卡,如果需要写入新的数据,是无法跟UID卡一样直接覆盖写入的,必须先格式化变成空白卡才能重写新的数据,以下提供详细教学 准备工具 下载"NFC Reader ...
- android关于IC卡读写及加密解密
byte[] key = {(byte) 0xA0, (byte) 0xB7, (byte) 0xA5, (byte) 0xC5, (byte) 0x80, (byte) 0x88}; Tag tag ...
- 非接触IC卡技术及应用
互联网INTERNET的产生及其在全球范围内的飞速发展,使人类进入了信息盛世时代.IC(集成电路)智能卡正在并已经融入当今信息技术的主流.它以其高度的信息集成,高度的安全性,成为市场的宠物.其中非接触 ...
- 学习使用USB-TTL驱动PN532来读写IC卡
学习使用USB-TTL驱动PN532来读写IC卡 PN532简介 PN532模块 使用前准备 硬件接线 软件设置 读取数据 写入数据 写入完成 总结 原文链接:https://www.yourcee. ...
- 漏洞已破解 你手中的IC卡一卡通还安全吗?
"听说有人把IC卡密码破解了,我使用的北京市政交通一卡通还安全吗?"近日,读者王女士给本报来电话. IC卡是现实生活中最常用的一种小额支付卡.和银行卡不同的是IC卡背面没有磁条,其 ...
- 电梯ic卡信息服务器的线怎么接,电梯IC卡分层制器安装接线图.doc
电梯IC卡分层制器安装接线图 电梯IC卡分层控制器安装接线说明 端子及接线说明: 12V电源端子------------------稳压电源(12V) 读卡器485通讯端子(+-)--------控制 ...
- 【IoT库】NB-iot技术、Lora技术、IC卡技术在三表的应用
背景 三表是指的水表 .电表.燃气表,是日常生活中家家户户都要用到的,通过使用量来统计数据,作为居民去缴费的依据,在过去都是以人工的方式上门抄表,效率低交通不便,统计的时长和数据不一致,存在很大出入, ...
- IC卡·一卡一密加密 动态数据防伪方案实现
一卡一密加密算法实现·EncryptionOneCardOneKey 注:当前函数加密算法过于简单,只用于文档说明举例,用户在具体程序中应设计更加完善复杂的加密算法以保证系统安全性 /******** ...
- 公交IC卡读写器设计指南
采用PHILIPS公司的Mifaue卡作IC卡,设计以射频技术为核心,以单片机为控制器的IC卡读写器在公交自动收费系统中的应用.制作的IC卡读写器可以实现制卡.售卡.自动收费等功能,具有安全.实用.方 ...
最新文章
- Database Connection String
- [Java并发编程(二)] 线程池 FixedThreadPool、CachedThreadPool、ForkJoinPool?为后台任务选择合适的 Java executors...
- bazel 链接第三方动态库_C语言学习篇(31)——linux中制作动态链接库
- Faas 和无服务器架构
- 被乔布斯遗忘的VR:纽约大学教授解密苹果与虚拟现实的尘封往事
- Oracle LAST_DAY(d)
- nginx代理人server结合tomcat采用
- go 调用其他文件函数_一文读懂Go中软件包概念
- 程序员必定会爱上的10款软件
- 兼容浏览器的insertAdjacentHTML
- c语言中eles后面分号的作用,C语言 if else 语句详细讲解
- git新建和删除远程分支
- php jmail实例,Jmail发邮件的例子
- android服务端与客户端
- 【ImgtuUtil】路过图床基础 Java 工具类(支持登录、上传、删除图片等操作)
- html留言板原理,js实现留言板
- 系统盘修复计算机命令,win10系统无法正常开机提示引导文件丢失使用命令修复的方法 无需U盘...
- 如何选择一款适合自己的医疗险,看保通来详解
- 数据结构 实验14(1-2班):(深入理解索引存储结构)三元组存储的稀疏矩阵建立行列索引并求鞍点
- OA系统-收入支出模块
热门文章
- CorelDRAW插件-GMS插件开发-标准、渐变、调色板填充的形状-CDR插件(六)
- pixfllow光流传感器数据获取及悬停程序编写
- 微信小程序(四) 节点查询 | wx.createSelectorQuery
- android 目录详解,Android源码目录结构详解
- ==06-07第一网络大事件---熊猫烧香==
- 微信接口返回的状态码
- 邮件中html内嵌图片,邮件内嵌html
- Unity C# 将String字符串转换为16进制Byte数组
- word文档批量转换为html格式
- 基于tkinter界面requests爬虫实现的学生事务管理平台自动填写系统