Mifare1系列射频卡读卡器的开发 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

Mifare1系列射频卡读卡器的开发

来源:中国一卡通网  作者:刘志平 赵国良  发布时间:2008-07-15 10:08:34  字体:[ ]

关键字:射频卡读卡器  mifare1卡  mf  rc500  天线设计  

摘   要:Mifare1系列射频卡具有高度安全、高可靠性及分区存储结构等特点,其应用范围越来越广.文中提出了一种基于AT89S52和MF RC500实现的Mifare1射频卡读卡器的设计方法. 先介绍了系统的组成及工作原理,然后给出了系统的硬件设计,最后给出了软件设计流程和相应程序.


3 系统软件设计 

    由于本系统应用在煤矿考勤中,所以软件部分主要包括对矿工所持Mifare1卡卡号的读取以及把当天下井时长存入卡片中.读取卡号在防碰撞操作中完成,时间存人在写卡操作过程中完成.具体工作流程如图3所示。

Mifarel系列射频卡读卡器的开发

图3 系统软件流程 

    图3实际上是对一张Mifare1卡的完整操作过程,主要包括复位请求、防碰撞、选卡、密码验证、写卡等操作.其执行顺序必须依次进行,不能颠倒.下面结合实际开发经验,详细介绍对Mifare1卡的每一步操作. 

3.1 复位请求 

    当一张Mifarel卡处在读写器天线的1二作范围之内时,读写器向卡发出REQUEST all命令.卡的ATR将启动,实现复位请求.请求成功,则将卡Block 0中的卡类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络.如果不进行复位请求操作,读写器对卡的其他操作将不会进行.具体操作程序为:

3.2 防碰撞 

    如果有多张Mifare1卡处在读写器天线的工作范围之内时,读写器首先与每一张卡进行通信,取得每一张卡的ID号.由于每一张Mifarel卡都具有惟一的ID号,因此读写器根据卡的ID号来保证一次只对一张卡操作,操作成功后将返回卡的ID号.具体操作程序为:

3.3 选择卡 

    完成上面2个步骤后,就可以对某张卡进行选择操作,这时其他卡将不响应而进入空闲状态.如果通信成功,被选择的卡将返回其容量大小.具体操作程序为:

3.4 密码验证 

    一张Mifare1只有通过密码验证后才能对其EEPROM中的数据进行读写操作.为此,用户必须事先将密码编程到MF RC500的非易失性密匙存储器中,RC500将与卡片各个扇区中的密码A或密码B验证,成功后方能进行下一步操作.所以用户必须妥善保管卡片中的密码,一旦丢失,将无法对卡片进行任何操作,此卡报废.具体操作程序为: 

    M500 HostCodeKey (KeyUncode,KeyCode);6字节密码转换成12字节
    status= M500PiccAuthKey(PICC_AUTHENT1A,CardSnr,KeyCode,4)/block4密码4验证if(status! =0)//失败
    return ;

3.5 写卡 

    经过密码证实后,就可以对卡中各扇区的数据进行读、写、增值和减值等操作.下面举例说明如何把矿工下井时长写入到数据块中. 

    char value[16];
    PrepareValue(0,value);//将初始下井时长0 h格式化到value数组中
    M500PiccWrite(4,value);//存value到Block4数据块中
    PrepareValue(TimeData,value);//将当天下井时长
    TiineData格式化到value数组中
    M500PiccValue(PICC—INCREMENT,4,value,4);//Block4中数据每次做加TiineData操作

4 结束语 

    介绍了Mifare1系列射频卡的读卡器开发,并结合到实际应用中.经实践证明,本系统运行稳定,操作方便,能对有效范围内的多张卡准确无误地读写,读写距离可达7 cm,目前在煤矿考勤中发挥着重要作用.

    作者简介:刘志平(1983-- 男,硕士研究生,主要研究方向:计算机控制、应用技术

    原文下载地址:http://www.yktchina.com/BBS/disptopic.asp?boardid=4&topicid=3796&frompage=1

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖