IC卡保险柜控制器设计管理论文

时间:2022-06-25 09:25:00

IC卡保险柜控制器设计管理论文

摘要:详细阐述IC卡保险柜控制器的原理、硬件设计和软件设计等内容;给出电路原理图和主程序流程图。

关键词: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所列。

表1SLE4442命令

字节1控制字节字节2地址字节字节3数据字节操作

B7B6B5B4B3B2B1B0A7A0D7D0

00110000地址无效读/从给定的字节地址至用户存储器结束

00111000地址输入数据编程输入地址对应的用户存储区

00110100无效无效读保护存储器

00111100地址无效写保护存储器中的保护位

00110001地址无效读保密存储器

00111001地址输入数据写/编程输入址对应的保密存储器

00110011地址输入数据比较可编程密码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:MOVR0,#30H;设置存放IC卡读入数据的首地址为30H

LCALLRESET;调IC卡复位子程序

MOVR2,#10H;读IC卡数据的个数送R2

LCALLSTART;调起始条件子程序

MOVR5,#00110000B;发送读的命令码

LCALLSPOUT;调发送一个字节子程序

MOVR5,#20H;发送IC卡的起始地址

LCALLSPOUT

MOVR5,#00H;将数据00H发送出去

LCALLSPUT

LCALLSTOP;调停止条件子程序

READ1:LCALLSPINC;调数据采集子程序

MOVA,R6

MOV@R0,A

INCR0

DJNZR2,READ1

LCALLPLUSE;调发送脉冲子程序

RET;读IC卡数据子程序结束

写子程序

WRT:LCALLRESET;写IC卡数据子程序开始,调IC卡复位子程序

MOVR2,#10H;写入IC卡的字节个数送R2

MOVR1,#40H;将40H为首地址的内容写入IC卡

MOVR4,#30H;R4中放的是写到IC卡起始地址30H

WRT1:LCALLSTART;调起始条件子程序

MOVR5,#00111000B;发送写的命令码

LCALLSPOUT

MOVA,R4;发出要写入的IC卡地址

MOVR5,A

LCALLSPOUT

MOVA,@R1;写入IC卡数据

MOVR5,A

LCALLSPOUT

LCALLSTOP;调停止条件子程序

LCALLPROCE;调一个编程过程子程序

INCR1;数据指针加1,直到数据写完

INCR4

DJNZR2,WRT1

RET;写子程序结束

PROCE:MOVR3,#0FFH;一个编程过程子程序

PROC1:SETBP1.2

NOP

CLRP1.2

DJNZE3,PROC1

RET

SPINC:MOVR3,#08H;数据采集子程序

SPIN1:CLRP1.2

MOVC,P1.4

MOVA,R6

RLCA

MOVR6,A;读出的一字节内容送R6

SETBP1.2

DJNZR3,SPIN1

RET

SPOUT:MOVR3,#08H;一字节发送子程序

MOVA,R5

SPTC1:CLRP1.2

RLCA

MOVP1.4,C

NOP

SETBP1.2

DJNZR3,SPTC1

RET

START:SETBP1.2;起始条件子程序

NOP

CLRP1.4

NOP

RET

STOP:CLRP1.2;停止条件子程序

NOP

CLRP1.4

NOP

SETBP1.2

CLRC

NOP

SETBP1.2

NOP

CLRP1.2

RET

RESET:SETBP1.3;复位IC卡子程序

NOP

CLRP1.3

NOP

RET

END

保险柜的安全性能是本控制器系统设计的出发点之一,为此,在软件上,将IC卡分为母卡和子卡,母卡由管理人员掌握,子卡由客人掌握。在每次客人走后,将母卡插入保险柜,那么原来的开机子卡宣布作废,这时可以插入一个新的卡形成一个新的子卡。母卡的功能是负责生成新的子卡,而不负责开门,从而确保了保险柜的安全性能。

结束语

该IC卡保险柜控制器具有结构简单、功耗低、体积小、成本低等特点,完全达到了用户的要求,目前已投入了小批量的生产。如果将现有的产品稍作改动和扩展,就能实现其他的功能。例如,给它扩展上一个语音芯片,即可进行语音提示或报警;如果将本控制器应用于防盗门就可制成IC卡防盗门,从而实现对传统防盗门的更新换代,具有广阔的市场前景。