实验3LF低频ATA5577卡实验-V201703171.实验目的了解AT5577卡应答芯片内部存储结构;掌握EM4095阅读器程序设计;掌握本平台模块的操作过程;2.实验设备硬件:4号低频节点,公母直连串口线,低频ATA5577卡(表面一般无印刷字)等;软件:Keil,串口调试助手等;STC_ISP路径:配套光盘\第三方应用软件\STC_ISP;串口调试工具路径:配套光盘\第三方应用软件\串口调试及CRC软件\串口调试工具;源码地址:配套光盘\源代码\RFID基础实验\实验3LF低频ATA5577卡实验-V20170317;Hex路径:配套光盘\源代码\RFID基础实验\实验3LF低频ATA5577卡实验-V20170317\out3.实验原理3.1ATA5577简介ATA5577是Atmel生产的非接触、无源、可读/写、具有防碰撞能力的RFID应答芯片,中心工作频率为125kHz。兼容T5557、ATA5567、E5551、T5551等应答芯片。兼容ISO/IEC11784/11785标准。3.2ATA5577存储器结构ATA5577的操作主要是对内部存储器EEPROM进行操作。ATA5577的配置数据也存放在EEPROM中。EEPROM结构如图3.1所示:标蓝的数据位只能写入,不能传送图3.1EEPROM结构存储器EEPROM由11块(block)构成,组成2页(page)。第0页包含8块,第1页包含3块。每块有33位(bit),即ATA5577的EEPROM一共有363位。第1页的块0就是第0页的配置数据。在每块的第0位是锁存位(lockbit)。除去锁存位,第0页的块0是芯片的配置数据共32位;第0页的块1到块7是用户数据共7×32位(当需要密码保护时,块7作为密码数据);第1页的块0是第0页的配置数据共32位;第1页的块1到块2是UID/可追溯数据共64位;第1页的块3是AFE选项寄存器数据共32位。锁存位是块写保护位。初始默认为0,块可读可写。写入1后块只可读不可写。注意锁存位是一次性写入位,一旦写入,永不可再解锁,块也永不可写入数据。3.3ATA5577配置在3.2中我们已经讲到EEPROM的第0页第0块是芯片的配置数据,其结构如下图2所示。主要配置芯片的数据速率、最大块、解调方式、操作模式等。这里主要讲解最大块和操作模式配置,其他配置请参考芯片数据手册。图3.2配置数据第25、26、27是最大块(MaxBlock)配置,其数值为页读时读取的最大块数。第23、28分别是AOR(Answer-On-Request)和PWD(Password)位,用于配置芯片操作模式。ATA5577有三种操作模式,见下表1:PWDAOR在Reset/POR后工作模式11AOR模式•需要用匹配的密码唤醒后才启动调制•用于防碰撞•编程需要有效的密码10密码模式•Reset后调制启动•编程和直接访问需要有效的密码01正常模式•Reset后调制启动•编程和直接访问不需密码表1ATTA5577操作模式其它配置位按默认设置,详细请参考芯片数据手册。3.4低频接口指令协议接口指令协议见下表命令格式成功返回值失败返回读page0FFFF0128BYTE+MAXBLKFF读page1FFFF028BYTEFF写page0FFFF03BLOCK4BYTE*BLOCK00FF密码页写FFFF04BLOCK4BYTE*BLOCK4PASS00FF常规读块FFFF05BLOCK4BYTEFF常规写块FFFF06LOCKBLOCK4BYTE00FF密码读块FFFF07BLOCK4PASS4BYTEFF密码写块FFFF08LOCKBLOCK4BYTE4PASS00FF卡初始化FFFF094PASS00FF读ID卡FFFF0A5BYTEFF写ID卡FFFF0B5BYTE00FF蜂鸣器响(不用)FFFF0CT-delay设波特率FFFF0DBAUD00FF关闭串口FFFF0E00,置P0.5=0联机检测(不用)FFFF0F00,置P0.5=1FF写配置字FFFF10LOCKUPWMAXBLKAOR4PASS00FF唤醒卡(不用)FFFF114PASS00FF表2协议指令说明:头2个字节FFFF是命令头,第3个是命令字BLOCK块号,范围1-7MAXBLK最大块,常规页写范围1-7,密码页写范围1-6LOCK锁定位,0不锁定,1锁定AOR唤醒0正常,1需要唤醒UPW加密设定,0不加密,1加密,设定密码时块7内容为密码BYTE数据XBYTE为X个字节数据PASS密码4个字节BAUD波特率代码0=4800,1=9600,2=14400,3=19200,4=28800,5=38400,6=57600T-delay蜂鸣器响时间,取值0-255P0.5单片机引脚19,此为预留功能3.5低频程序设计STC单片机控制EM4095读写器芯片实现对ATA5577卡的读写。STC单片机串口接收来自串口调试助手的命令。代码如下,位于voidcom(void)interrupt4using1中断函数中。在voidprocess_data(void)函数中,单片机根据命令字的命令字的不同执行读写页、密码读写等操作。4.实验步骤第一步:打开配套光盘\源代码\RFID基础实验\实验3LF低频ATA5577卡实验-V20170317下面的“T5557-C51.uvproj”,如图4.1所示:图4.1打开工程点击左上角的,如果为0错误,那么我们的代码编译正常,如图4.2所示:图4.2编译无错误第二步:使用串口线连接电脑和低频节点的DB9接头,S1开关拨打到左边——STC串口与DB9连接,给4号节点上电,如图4.3所示:图4.3接线方式第三步:根据配套光盘\第三方应用软件\STC_ISP\STC-ISP软件使用说明书,使用STC-ISP软件将配套光盘\源代码\RFID基础实验\实验3LF低频ATA5577卡实验-V20170317\out下面的“T5557-C51.hex”下载到4号低频节点上。第四步:使用STC-ISP软件的串口功能,配置串口参数如图4.4所示:图4.4配置串口参数第五步:将第六步中红色字体的指令,添加在STC-ISP串口助手右侧,指令后面的方框打“√”如图4.5所示:图4.5添加指令信息当进行第六步实验,需要发送某条指令时,直接点击指令前面的数字即可,简化了实验的操作。第六步:读写实验,操作如下:(1)读页0,读页0需先配置最大块,再发送读页命令。除非更改配置,配置信息发送一次即可:发送:FFFF100000060000000000返回:00说明:写配置操作,不加密,最大块位6发送:FFFF01返回:1111111122222222333333334444444455555555666666660000000006说明:超出最大块的返回00000000,只需关注返回值的最后一位,是设置的最大块数6,其他数据是卡上内容,每张卡可能不一致。读页不需密码,即设置了密码也可用此命名读页。注意:读页0是不用密码都可以读到的。(2)读页1,页1的内容不可写入,可作为UID号:发送:FFFF02返回:E0150A610C4487E9(3)写页,例如将块1、块2分别写成01010101和02020202发送:FFFF03020101010102020202返回:00(4)块读:块读用于读取指定的块号内容,块号大小不受最大块(MaxBlock)数限制,可大于最大块号。例如在(1)中已设置最大块是6,下面指令用于读块7。发送:FFFF0507返回:12121212说明:07表示块7,返回的4字节数据即是块7中的数据(5)块写:例如将块3写入03030303发送:FFFF06000303030303返回:00(6)密码块读:当设置了密码时,块读需发送密码,例如以下设置密码后读块3发送:FFFF100001070012121212返回:00说明:写配置,不锁定,加密,最大块7,AOR设0,将块7的内容设为密码发送:FFFF070312121212返回:03030303说明:密码读块3的内容,返回块3的数据,块3数据在(5)中修改过注意:设置的密码必须跟页0的块7数据一样,在设置密码以后,读块是要密码的,读页0是不用密码的。如果设置密码错误,可以先读页0,然后得知页0里面块7的数据,那么这个块7的数据就是密码,然后用卡初始化指令把密码清除掉,然后再重新设置密码。(7)密码块写,在(6)中已配置了密码,不需再配置,以下密码写块4发送:FFFF0800040404040412121212返回:00(8)清除密码(卡初始化),以下操作将密码清除,密码清除只是去掉密码位(PWD),并不清除块7的数据,块7数据保持不变。发送:FFFF0912121212返回:00说明:12121212是原密码,清除,清除后块7数据仍是121212125.实验报告要求5.1参照实验步骤的操作,设置密码为“33445566”,且用密码写页0块6的数据为“AABBCCDD”,然后用密码(33445566)读页0块6的数据能够读出来,且数据就是“AABBCCDD”。