非接触IC卡在考勤机上的应用.docx
文本预览下载声明
【Word版本下载可任意编辑】
PAGE
1 - / NUMPAGES 1
非接触IC卡在考勤机上的应用
非接触IC卡在考勤机上的应用 张智勇 张智奇 赛宝计量检测中心 广深铁路股份公司 本文所设计的非接触IC卡考勤机,是在参考传统机械式考勤机的根底上所作出的进一步的改良。传统的机械式考勤机虽然较可靠,但由于其将考勤数据记录在纸片上,大量的考勤数据需要人工统计,既费时又费力,而且容易出错。本文所介绍考勤机采用电子时钟,计时准确,操作方便,考勤数据通过RS485总线上传给计算机,统计快捷又准确。 1、 系统工作原理 本考勤机以完全兼容与MCS-5l系列微处理机的ATMEL公司的AT89C52单片机作为微控制器,采用I2C总线的PCF8583作为考勤机时钟,以I2C总线的多片(可选)AT24C64作为考勤机的不掉电存储器,采用大屏幕点阵LCD显示,并以RS485接口和计算机通信。组成了一套功能齐全的非接触IC卡考勤系统。当IC卡在天线区域经过时,单片机自动把IC卡里边的相关信息读到考勤机上,再把打卡时间一起存到存储器里边,计算机可以通过RS485串口把相关打卡信息读到计算机上,再开展统计、报表和打印输出等。其基本原理框图如下: 2、非接触IC卡数据编码格式 MIFAREl IC卡的是PHILIPS公司的Mifarel IC S50系列微模块,内建高速CMOS EEPROM和MCU,并自带一副高效率射频天线。它总共有1 kBytes的容量,其中又分为16个扇区(Sector),每个扇区分为4个块(Block),每块16Bytes,考勤卡只需要使用其中的一个扇区(1扇区),地址编码如下: Block0 地址0-3:自定义员工工号 地址4-7:员工工号的反码 地址8-15:备用 Blockl和Block2地址备用 Block3 地址0-5:密码A(KEYA) 地址6-9:状态字节 地址工0-15:密码B(KEYB) 3、非接触IC卡读写的硬件实现 非接触IC卡的读写采用PHILIPS公司的读写模块MFCM200。此模块自带天线接口,通过天线接口连接读写天线,直接从IC卡读写数据。单片机直接从数据总线读写天线区域的IC卡数据。IC卡读写的硬件原理如下列图所示: 4、非接触IC卡读写的软件实现 MFCM200能执行有限的一些指令,并将这些指令传输到MIFAREl卡片上。 每一个指令包含7个独立的步骤,每一个步骤在不同的指令执行中有不一样的时序。以下是MFCM200通信基本指令集。 Request:寻卡 Anticoll:防重叠(碰撞) Select:选卡片 Authentication:密码 Loadkey:力口载密码 Read:读数据 Write:写数据 Increment:土曾值 Decrement:减值 Restore:存储 Transfer:传送 Halt:停止 在每读写IC卡数据时,必须按顺序先执行Request、Anticoll、Select、Authentication等指令,然后才能执行Read和Write指令,下面重点介绍Read和Write指令的使用。 (1)Read读数据指令 Read指令允许单片机通过MFCM200来读取MIFAREl卡片上完整的16个Bytes的数据块(Data blocks)。 只有在预先Authentication指令完成后,才允许开展对Mifare l卡片上的某一数据扇区开展Read指令操作。 Read指令操作只能一个块(B1ock)一个块地读,即只能16个字节性地读取。如果只要求某Block中的几个字节的数据,也只能一个整块16个字节一起读取,由程序员选取指定的字节。 从卡片上读到的数据必须由单片机开展校验,以确保数据的有效性。 子程序清单如下: ,
显示全部